@vellumai/web 0.11.4-staging.1 → 0.11.4-staging.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (343) hide show
  1. package/README.md +0 -8
  2. package/dist/assets/{BundleConfirmPage-BbdN3tFL.js → BundleConfirmPage-Blq6GhVG.js} +1 -1
  3. package/dist/assets/{Trans-Ch_EPHgV.js → Trans-CPcWO-v6.js} +1 -1
  4. package/dist/assets/{about-page-B-1ST2gv.js → about-page-CTTTxSzr.js} +1 -1
  5. package/dist/assets/{access-DgWVDTc-.js → access-wabdRUmQ.js} +1 -1
  6. package/dist/assets/{account-page-Bjw-Whl-.js → account-page-DINYg3Rl.js} +1 -1
  7. package/dist/assets/{account-shell-7DXx2oD4.js → account-shell-DQFZ4C79.js} +1 -1
  8. package/dist/assets/{acp-run-actions-D3BHB3kZ.js → acp-run-actions-CkYR2vBH.js} +1 -1
  9. package/dist/assets/{acp-run-detail-panel-CMV1hamc.js → acp-run-detail-panel-Dt_Dcegh.js} +4 -4
  10. package/dist/assets/{acp-run-store-DpbMRWeI.js → acp-run-store-k9Syb04D.js} +1 -1
  11. package/dist/assets/activity-steps-panel-B9N9npP8.js +1 -0
  12. package/dist/assets/{add-credential-modal-CAorWf5a.js → add-credential-modal-Bn2SkYV8.js} +1 -1
  13. package/dist/assets/{add-credits-modal-NK9YUVin.js → add-credits-modal-lFCQGz49.js} +1 -1
  14. package/dist/assets/ai-page-DuZ_jor4.js +1 -0
  15. package/dist/assets/{api-xbjYCkk-.js → api-C72Ea0va.js} +1 -1
  16. package/dist/assets/{api-asaDrkTi.js → api-Dppu0jIX.js} +1 -1
  17. package/dist/assets/{api-key-screen-BLsynLtR.js → api-key-screen-CbIBGdOH.js} +1 -1
  18. package/dist/assets/{app-card-oG9LxSg9.js → app-card-BrtrF2PU.js} +1 -1
  19. package/dist/assets/{assistant-status-panel-CdJKE_VM.js → assistant-status-panel-DUB7x8Cv.js} +1 -1
  20. package/dist/assets/{auth-store-BDMYc7te.js → auth-store-B9pHhreb.js} +2 -2
  21. package/dist/assets/{avatar-random-cVA-5Ukx.js → avatar-random-Ux7JUtwk.js} +1 -1
  22. package/dist/assets/{background-task-actions-Cf2kEaWh.js → background-task-actions-D3TOUuY8.js} +1 -1
  23. package/dist/assets/{background-task-detail-panel-DWGWcjjS.js → background-task-detail-panel-nHViOVhW.js} +1 -1
  24. package/dist/assets/{background-task-store-eQZGVUDr.js → background-task-store-r1LOGfBn.js} +1 -1
  25. package/dist/assets/{billing-page-scyDxDPK.js → billing-page-BtPUFL3X.js} +3 -3
  26. package/dist/assets/{bookmarks-page-JMPRm3As.js → bookmarks-page-BA7-0dXF.js} +1 -1
  27. package/dist/assets/{browser-CZ10MkOr.js → browser-DwONNRIj.js} +2 -2
  28. package/dist/assets/{build-state-DdpPjDMZ.js → build-state-bnyw3m5Y.js} +1 -1
  29. package/dist/assets/channels-page-route-Da6XgpGs.js +9 -0
  30. package/dist/assets/{chat-sgiUoK1u.js → chat-BfpNzA77.js} +1 -1
  31. package/dist/assets/chat-DRdXDFUk.js +3 -0
  32. package/dist/assets/{chat-avatar-B1G491hG.js → chat-avatar-RM6-aunH.js} +1 -1
  33. package/dist/assets/chat-markdown-message-DWQZLyLI.js +1 -0
  34. package/dist/assets/{checkout-continuation-ChMQkpyi.js → checkout-continuation-B34WX6T6.js} +1 -1
  35. package/dist/assets/{checkout-page-Cpk90EXc.js → checkout-page-ZxCMmuwz.js} +1 -1
  36. package/dist/assets/checkout-return-target-CpckAKDY.js +1 -0
  37. package/dist/assets/{client-perf-C4GkD7vz.js → client-perf-Daz5cYUH.js} +1 -1
  38. package/dist/assets/command-palette-C6h4Ip2u.js +1 -0
  39. package/dist/assets/{command-palette-window-page-BP9A8L2v.js → command-palette-window-page-BKbM5K6f.js} +1 -1
  40. package/dist/assets/{companion-surface-page-B0hbyF1T.js → companion-surface-page-BbU9Hj0z.js} +1 -1
  41. package/dist/assets/{composer-settings-BMKJP4Ik.js → composer-settings-DYfbHO-e.js} +1 -1
  42. package/dist/assets/{connect-page-DKFPwsN0.js → connect-page-DxRMNc2U.js} +1 -1
  43. package/dist/assets/{consent-controls-hAYNW2he.js → consent-controls-Dz0ScMsh.js} +1 -1
  44. package/dist/assets/contacts-page-route-C-7wKpdG.js +1 -0
  45. package/dist/assets/{conversation-cache-DY3GhyFA.js → conversation-cache-ztu3M4pz.js} +1 -1
  46. package/dist/assets/{conversation-list-fetchers-CVKv5BpN.js → conversation-list-fetchers-eA7yZMEu.js} +1 -1
  47. package/dist/assets/{conversation-navigation-Bw3eQBGU.js → conversation-navigation-tCTlvwgs.js} +1 -1
  48. package/dist/assets/{conversation-queries-7BVaya69.js → conversation-queries-DkkuIyRB.js} +1 -1
  49. package/dist/assets/{credential-entry-page-BxNWgyvZ.js → credential-entry-page-DqEK_3ve.js} +1 -1
  50. package/dist/assets/credentials-page-Nx8MKxw7.js +1 -0
  51. package/dist/assets/{csv-preview-Ba7nV5mb.js → csv-preview-DfyT2oPn.js} +1 -1
  52. package/dist/assets/{daily-reset-time-i6mZWgVc.js → daily-reset-time-B28vdbVK.js} +1 -1
  53. package/dist/assets/debug-page-F58Vngs5.js +4 -0
  54. package/dist/assets/{deploy-dialogs-CG-65xs0.js → deploy-dialogs-Dr5UW72X.js} +1 -1
  55. package/dist/assets/{deploy-store-eps_MrT7.js → deploy-store-BAIpED5W.js} +1 -1
  56. package/dist/assets/{detail-card-CC0br9gQ.js → detail-card-BvBqhvvy.js} +1 -1
  57. package/dist/assets/{detail-drawer-BpdqER__.js → detail-drawer-zQohjzAF.js} +1 -1
  58. package/dist/assets/{detail-shell-Bmyv2wPh.js → detail-shell-6omiDynS.js} +1 -1
  59. package/dist/assets/developer-page-BgkajhCF.js +1 -0
  60. package/dist/assets/{diagnostics-CeLo0IQo.js → diagnostics-B6s70M5A.js} +1 -1
  61. package/dist/assets/{doctor-handoff-store-D1gIUvVD.js → doctor-handoff-store-DbvChP6h.js} +1 -1
  62. package/dist/assets/{document-viewer-container-Bywwxt6G.js → document-viewer-container-CiSaZjGT.js} +2 -2
  63. package/dist/assets/{document-viewer-page-qJKfO2Qb.js → document-viewer-page-B41ybONf.js} +1 -1
  64. package/dist/assets/{emails-page-B0--yw62.js → emails-page-zqESuC5i.js} +1 -1
  65. package/dist/assets/{esm-CoB42w1C.js → esm-BAZfwa77.js} +2 -2
  66. package/dist/assets/{esm-DyAueRRL.js → esm-BpO8b4iY.js} +2 -2
  67. package/dist/assets/esm-C-oF6bck.js +2 -0
  68. package/dist/assets/{esm-BbX6z_Bm.js → esm-CuIRAuen.js} +2 -2
  69. package/dist/assets/{esm-_vI9--3B.js → esm-CyDcfaYH.js} +2 -2
  70. package/dist/assets/{esm-BKg0nbmu.js → esm-D7eT5n3U.js} +2 -2
  71. package/dist/assets/{esm-B4xcxzQN.js → esm-tXi8GsTV.js} +2 -2
  72. package/dist/assets/eye-bbox-BR5NO1BX.js +1 -0
  73. package/dist/assets/file-editor-B2BJsOt0.js +1 -0
  74. package/dist/assets/file-markdown-EG3aJEi8.js +2 -0
  75. package/dist/assets/first-run-scope-mN3YhjgX.js +1 -0
  76. package/dist/assets/{funnel-events-BddkbWqn.js → funnel-events-CH_O9aTg.js} +1 -1
  77. package/dist/assets/general-page-C6eGuDih.js +1 -0
  78. package/dist/assets/{haptics-DafZDCxm.js → haptics-BhuZvnto.js} +2 -2
  79. package/dist/assets/{hatching-screen-BKfkDhPr.js → hatching-screen-Ceyfxgc-.js} +1 -1
  80. package/dist/assets/{home-page-route-B6vQYv0r.js → home-page-route-DdXLgyeu.js} +1 -1
  81. package/dist/assets/{home-tool-permission-card-IF0-aLrT.js → home-tool-permission-card-NAxzVd1l.js} +1 -1
  82. package/dist/assets/{hosting-screen-BJ5SfJoU.js → hosting-screen-D05jZjLX.js} +1 -1
  83. package/dist/assets/{i18n-zb2mgr1B.js → i18n-BR-AyG5b.js} +2 -2
  84. package/dist/assets/identity-page-route-BlKLitBM.js +7 -0
  85. package/dist/assets/{index-xicEUutS.js → index-CKyw1JVb.js} +3 -3
  86. package/dist/assets/index-DJ5ObIDJ.css +2 -0
  87. package/dist/assets/{ingest-B9D2Cyin.js → ingest-BwYkhorN.js} +1 -1
  88. package/dist/assets/inspect-page-m1poii66.js +9 -0
  89. package/dist/assets/integrations-page-Duhjka1l.js +1 -0
  90. package/dist/assets/{intelligence-layout-BESJ3-1s.js → intelligence-layout-ld1yOf08.js} +1 -1
  91. package/dist/assets/{invalidate-memory-queries-CS15Vuec.js → invalidate-memory-queries-YJf2XJ5P.js} +1 -1
  92. package/dist/assets/{invalidate-plugin-queries-DvUskShG.js → invalidate-plugin-queries-CySCFK8G.js} +1 -1
  93. package/dist/assets/latest-assistant-text-CDrxmzc0.js +24 -0
  94. package/dist/assets/{library-detail-page-BBfYWKvm.js → library-detail-page-v5CrGIps.js} +1 -1
  95. package/dist/assets/{library-page-BgbT6zej.js → library-page-BUnsZHzU.js} +1 -1
  96. package/dist/assets/{local-runtime-upgrade-SQQhJhOk.js → local-runtime-upgrade-Bwp6_dxW.js} +1 -1
  97. package/dist/assets/{login-flow-CTw5lXLx.js → login-flow-imrf1-ub.js} +1 -1
  98. package/dist/assets/{login-page-D2GAHcR7.js → login-page-C8owPhpB.js} +1 -1
  99. package/dist/assets/{logout-page-Cukoglve.js → logout-page-DfY78j6S.js} +1 -1
  100. package/dist/assets/{logs-layout-B4KDB9Sb.js → logs-layout-Dox-b2zq.js} +1 -1
  101. package/dist/assets/{media-preview-DjetaJpN.js → media-preview-6mD4wHKW.js} +1 -1
  102. package/dist/assets/{memory-page-route-Bnyvrbhn.js → memory-page-route-Cen_nGPc.js} +1 -1
  103. package/dist/assets/{memory-router-playground-page-8M60K9iJ.js → memory-router-playground-page-BvNM2MJO.js} +1 -1
  104. package/dist/assets/{message-files-panel-Cwlkr5w4.js → message-files-panel-CECqngl9.js} +1 -1
  105. package/dist/assets/{messages-D0PQ2X1S.js → messages-ctx0P03F.js} +1 -1
  106. package/dist/assets/{metric-card-SnROKwaj.js → metric-card-CRmU_rxS.js} +1 -1
  107. package/dist/assets/{multi-activity-group-CenHDhpe.js → multi-activity-group-DuW4ziR3.js} +1 -1
  108. package/dist/assets/native-anchor-BE-YHt8Q.js +1 -0
  109. package/dist/assets/native-deep-link-DliAfHU5.js +2 -0
  110. package/dist/assets/{native-file-DWbiI8L-.js → native-file-B9kJgftd.js} +2 -2
  111. package/dist/assets/{navigation-resolver-jn3fW9IN.js → navigation-resolver-CDeIpFuD.js} +1 -1
  112. package/dist/assets/{not-found-CRrNNxgD.js → not-found-mMT3d6dm.js} +1 -1
  113. package/dist/assets/{notifications-D7I0R0Np.js → notifications-Dx3P9a9Q.js} +1 -1
  114. package/dist/assets/{notifications-page-D6Llk4Q-.js → notifications-page-COU3Z3YY.js} +1 -1
  115. package/dist/assets/{oauth-complete-page-E47i6-KO.js → oauth-complete-page-D5uYsl41.js} +1 -1
  116. package/dist/assets/{oauth-connection-utils-BnF9kIoa.js → oauth-connection-utils-SS0qmAK4.js} +1 -1
  117. package/dist/assets/{oauth-popup-complete-page-Be9bz47B.js → oauth-popup-complete-page-BLw62jns.js} +1 -1
  118. package/dist/assets/open-workspace-file-DFo0Oq0o.js +2 -0
  119. package/dist/assets/{operational-status-DswnmGh5.js → operational-status-BsKLhv9Z.js} +1 -1
  120. package/dist/assets/{page-shell-CUz7vDVT.js → page-shell-DD_mHkHn.js} +1 -1
  121. package/dist/assets/{pairing-page-B93qLwkU.js → pairing-page-CI_qOlWo.js} +1 -1
  122. package/dist/assets/{pdf-file-preview-aTyWAALx.js → pdf-file-preview-5NsoLZLI.js} +1 -1
  123. package/dist/assets/{pdf-preview-CFuSHh-t.js → pdf-preview-DEWKJD0r.js} +2 -2
  124. package/dist/assets/{personality-page-Do1Q8mUB.js → personality-page-CI8jnXQp.js} +1 -1
  125. package/dist/assets/{plans-page-CxRb_Kby.js → plans-page-BlxaE-cv.js} +1 -1
  126. package/dist/assets/{platform-detection-BIfuAgU8.js → platform-detection-D4gxJctC.js} +1 -1
  127. package/dist/assets/{platform-login-notice-CaNQOYUj.js → platform-login-notice-CM-AbOQ7.js} +1 -1
  128. package/dist/assets/{platform-loopback-page-205CvkDI.js → platform-loopback-page-BLNuk6f2.js} +1 -1
  129. package/dist/assets/{preview-error-CdFTgKSI.js → preview-error-B-1p750d.js} +1 -1
  130. package/dist/assets/{privacy-page-Beg9rE7-.js → privacy-page-0K-bsvKl.js} +1 -1
  131. package/dist/assets/{privacy-screen-EFJ-aTdl.js → privacy-screen-DgDOXFfw.js} +1 -1
  132. package/dist/assets/profile-pickers-DBCSE_FG.js +1 -0
  133. package/dist/assets/{provider-callback-page-BKDWiQis.js → provider-callback-page-BN9NQV7v.js} +1 -1
  134. package/dist/assets/{provider-signup-page-CsCS7GAV.js → provider-signup-page-CTwmzSoF.js} +1 -1
  135. package/dist/assets/{provisioning-targets-CSwI177z.js → provisioning-targets-CFe7Jgy1.js} +1 -1
  136. package/dist/assets/{push-registration-CVotM2hK.js → push-registration-CIhXf1CF.js} +2 -2
  137. package/dist/assets/{remove-from-device-dialog-BGul1xBz.js → remove-from-device-dialog-DSScuMVd.js} +1 -1
  138. package/dist/assets/{research-mock-page-DDwmtrZR.js → research-mock-page-bhSrGrBh.js} +1 -1
  139. package/dist/assets/research-onboarding-route-CKyfP6oo.js +50 -0
  140. package/dist/assets/{research-results-view-DDjp2hBc.js → research-results-view-7psD5IrG.js} +1 -1
  141. package/dist/assets/{retire-confirm-dialog-Cz64ywTF.js → retire-confirm-dialog-BD1rkM8j.js} +1 -1
  142. package/dist/assets/{review-terms-screen-Bros6R87.js → review-terms-screen-XIGeusDw.js} +1 -1
  143. package/dist/assets/routes-lLsbgbrj.js +24 -0
  144. package/dist/assets/{runtime-upgrade-banner-WHzYN73y.js → runtime-upgrade-banner-BeO8tW05.js} +2 -2
  145. package/dist/assets/{sandbox-bridge-ajRoXgYL.js → sandbox-bridge-BismgxxG.js} +1 -1
  146. package/dist/assets/{schedules-DjkLl0OP.js → schedules-DVJx5NG9.js} +1 -1
  147. package/dist/assets/schedules-page-DRr8EB5D.js +1 -0
  148. package/dist/assets/{select-assistant-screen-CALuntMj.js → select-assistant-screen-Cbta9HDV.js} +1 -1
  149. package/dist/assets/{self-hosted-servers-CsywZANM.js → self-hosted-servers-omz1yNrQ.js} +1 -1
  150. package/dist/assets/{setting-row-JYdvkVjj.js → setting-row-BgrWOMW9.js} +1 -1
  151. package/dist/assets/settings-DKVDS49I.js +1 -0
  152. package/dist/assets/{settings-divider-gaQk2Yl5.js → settings-divider-HtBTQzlA.js} +1 -1
  153. package/dist/assets/{settings-layout-vTkMzpIY.js → settings-layout-BdUaFkyr.js} +1 -1
  154. package/dist/assets/{settings-navigation-Dp0sDZAh.js → settings-navigation-vp8wtiyE.js} +1 -1
  155. package/dist/assets/{share-feedback-modal-DiQP_cCZ.js → share-feedback-modal-D9fAEU5y.js} +2 -2
  156. package/dist/assets/{sidebar-tree-CSPhTnBf.js → sidebar-tree-9BVzkS4K.js} +1 -1
  157. package/dist/assets/{signup-page-B2mbu3qd.js → signup-page-lzOszv4S.js} +1 -1
  158. package/dist/assets/{site-favicon-dST102dp.js → site-favicon-BvIzxzVw.js} +1 -1
  159. package/dist/assets/{skill-detail-page-BZO12fh5.js → skill-detail-page-BdSINra9.js} +2 -2
  160. package/dist/assets/skill-detail-panel-88oHOdSH.js +1 -0
  161. package/dist/assets/{skills-DdBQ-tNs.js → skills-HuNDpwX2.js} +1 -1
  162. package/dist/assets/{sounds-page-sGA-Nc8o.js → sounds-page-CeZjxvIu.js} +1 -1
  163. package/dist/assets/{src-DjIqxQVd.js → src-njXJqrpo.js} +3 -3
  164. package/dist/assets/{start-screen-DeVoGKX1.js → start-screen-B1dP4bbA.js} +1 -1
  165. package/dist/assets/status-badge-pill-BuiIFTz-.js +1 -0
  166. package/dist/assets/stt-language-picker-modal-BK_1xcYe.js +1 -0
  167. package/dist/assets/subagent-detail-panel-CkxNHVOv.js +4 -0
  168. package/dist/assets/{subagent-store-ChHk8ZsH.js → subagent-store-B0Ftpguk.js} +1 -1
  169. package/dist/assets/{superpowers-page-Dk3g_Of2.js → superpowers-page-B_1_d4LI.js} +1 -1
  170. package/dist/assets/{system-events-page-XYxGo8gh.js → system-events-page-BBVNKwBJ.js} +1 -1
  171. package/dist/assets/{telegram-setup-wizard-DgdjP2o8.js → telegram-setup-wizard-D_Vwl3_I.js} +1 -1
  172. package/dist/assets/{text-preview-BJRoXOON.js → text-preview-BIeJHE0-.js} +1 -1
  173. package/dist/assets/{theme-stage-page-DPIsJBUJ.js → theme-stage-page-gWlI1Nzt.js} +1 -1
  174. package/dist/assets/{tiptap-document-editor-Cjd5FCBm.js → tiptap-document-editor-BunsgiVU.js} +1 -1
  175. package/dist/assets/toggle-ibKLySIy.js +1 -0
  176. package/dist/assets/{tool-detail-panel-CeDWOdH-.js → tool-detail-panel-DhzIzJ1Y.js} +2 -2
  177. package/dist/assets/{upgrade-cancel-page-D24RCdAz.js → upgrade-cancel-page-BiXIXlae.js} +1 -1
  178. package/dist/assets/{upgrade-success-page-A6d7PRGt.js → upgrade-success-page-C3ptzfvo.js} +1 -1
  179. package/dist/assets/{use-assistant-capability-CYKqSbfq.js → use-assistant-capability-B55Ji4gD.js} +1 -1
  180. package/dist/assets/use-assistant-identity-details-0JMOrf_F.js +1 -0
  181. package/dist/assets/{use-attachment-preview-DvVweDZY.js → use-attachment-preview-jmFGN8h6.js} +2 -2
  182. package/dist/assets/{use-attachment-squares-ELH7PQrT.js → use-attachment-squares-BSKsILdv.js} +1 -1
  183. package/dist/assets/{use-bookmarks-B4g9FKC7.js → use-bookmarks-gJWrPT2g.js} +1 -1
  184. package/dist/assets/{use-checkout-dismiss-refresh-CkeQGnJ0.js → use-checkout-dismiss-refresh-vVysV2xK.js} +1 -1
  185. package/dist/assets/{use-command-palette-sections-D0RCkx0m.js → use-command-palette-sections-BFV15eUp.js} +1 -1
  186. package/dist/assets/{use-copy-to-clipboard-oZUc3_ey.js → use-copy-to-clipboard-BeG7f_tZ.js} +1 -1
  187. package/dist/assets/{use-edge-swipe-Bde-t-dW.js → use-edge-swipe-BxVxJfNS.js} +1 -1
  188. package/dist/assets/use-edge-swipe-back-DpMHlX97.js +2 -0
  189. package/dist/assets/{use-edit-app-BZv0JIfX.js → use-edit-app-BlsO9Zav.js} +1 -1
  190. package/dist/assets/use-element-size-DeouS2c2.js +1 -0
  191. package/dist/assets/use-invite-link-dialog-TjRVy1GF.js +1 -0
  192. package/dist/assets/{use-is-org-ready-CWNhmJ2b.js → use-is-org-ready-DyYOTCvQ.js} +1 -1
  193. package/dist/assets/{use-onboarding-login-Zjbfg9rl.js → use-onboarding-login-DMUDDVUi.js} +1 -1
  194. package/dist/assets/{use-platform-assistant-id-Bafo85js.js → use-platform-assistant-id-BE6AIost.js} +1 -1
  195. package/dist/assets/{use-platform-gate-DzpdjzIz.js → use-platform-gate-zft2-meL.js} +1 -1
  196. package/dist/assets/{use-return-to-short-circuit-pEcvMXUl.js → use-return-to-short-circuit-LcamIc_k.js} +1 -1
  197. package/dist/assets/use-side-list-room-C1msxm__.js +1 -0
  198. package/dist/assets/{use-skill-actions-CeeCY9Uf.js → use-skill-actions-oBpczwnY.js} +1 -1
  199. package/dist/assets/use-sticky-profiles-D6xRVCOS.js +1 -0
  200. package/dist/assets/use-stt-language-selection-D7DxP7Eo.js +1 -0
  201. package/dist/assets/{use-subagent-card-data-BIb6t3HE.js → use-subagent-card-data-DOp8Etmj.js} +1 -1
  202. package/dist/assets/use-touch-mobile-CXJ4hTiW.js +1 -0
  203. package/dist/assets/{use-transcript-message-by-id-DUV4woMl.js → use-transcript-message-by-id-D5hHvanI.js} +1 -1
  204. package/dist/assets/{use-transcript-messages-BLtVYqAv.js → use-transcript-messages-BL55GFRr.js} +1 -1
  205. package/dist/assets/{use-voice-sample-preview-BY_J5WVl.js → use-voice-sample-preview-CLWX7j-h.js} +1 -1
  206. package/dist/assets/{useTranslation-Dn8TOHE6.js → useTranslation-DxUSOwQs.js} +1 -1
  207. package/dist/assets/{viewer-store-D3KM2E2N.js → viewer-store-DWY4BtGj.js} +1 -1
  208. package/dist/assets/voice-page-C3q84Y4H.js +1 -0
  209. package/dist/assets/{voice-providers-note-BLOdThkh.js → voice-providers-note-CuMBTzti.js} +1 -1
  210. package/dist/assets/{web-D8nAsA9l.js → web-S8v4qZ8W.js} +1 -1
  211. package/dist/assets/{web-5yJbtoui.js → web-zM0OZM8V.js} +1 -1
  212. package/dist/assets/{welcome-screen-U_A3pIDj.js → welcome-screen-Cy46Bw63.js} +1 -1
  213. package/dist/assets/workflow-detail-panel-CM1Jep4m.js +1 -0
  214. package/dist/assets/{workflow-store-Dgz97WCS.js → workflow-store-Bpg1fqWU.js} +1 -1
  215. package/dist/assets/workspace-page-eCfV4q3_.js +1 -0
  216. package/dist/assets/{workspace-tree-query-C6kx2Bkh.js → workspace-tree-query-BfWSVQB5.js} +1 -1
  217. package/dist/index.html +109 -108
  218. package/package.json +1 -1
  219. package/dist/assets/activity-steps-panel-DEgGLFtM.js +0 -1
  220. package/dist/assets/ai-page--36Riirz.js +0 -1
  221. package/dist/assets/channels-page-route-CoHtlp77.js +0 -9
  222. package/dist/assets/chat-5s_HqBzL.js +0 -3
  223. package/dist/assets/chat-markdown-message-Btoc6C1G.js +0 -1
  224. package/dist/assets/checkout-return-target-CYf9SBig.js +0 -1
  225. package/dist/assets/command-palette-D79Jq26W.js +0 -1
  226. package/dist/assets/contacts-page-route-9Y1S_HAN.js +0 -1
  227. package/dist/assets/credentials-page-BVg_keF0.js +0 -1
  228. package/dist/assets/debug-page-4N-Zj-ts.js +0 -4
  229. package/dist/assets/developer-page-CQS354Wk.js +0 -1
  230. package/dist/assets/esm-b7JWOeNl.js +0 -2
  231. package/dist/assets/file-editor-CSWBRXC5.js +0 -1
  232. package/dist/assets/file-markdown-CyzsCI8p.js +0 -2
  233. package/dist/assets/first-run-scope-Cc45jqTq.js +0 -1
  234. package/dist/assets/general-page-C3gmPYF3.js +0 -1
  235. package/dist/assets/identity-page-route-D7kzw3D3.js +0 -7
  236. package/dist/assets/index-BPNYOrwT.css +0 -2
  237. package/dist/assets/inspect-page-EDi2BOrZ.js +0 -9
  238. package/dist/assets/integrations-page-DC4dbZvc.js +0 -1
  239. package/dist/assets/latest-assistant-text-Bhqw0WEB.js +0 -24
  240. package/dist/assets/mobile-sidebar-drawer-CA_YsRi_.js +0 -1
  241. package/dist/assets/native-anchor-txt0veYo.js +0 -1
  242. package/dist/assets/native-deep-link-EZIezcy9.js +0 -1
  243. package/dist/assets/open-workspace-file-D2FXjNVn.js +0 -2
  244. package/dist/assets/profile-pickers-CKLILvRc.js +0 -1
  245. package/dist/assets/research-onboarding-route-BviJKsoz.js +0 -50
  246. package/dist/assets/routes-Q2DdFIGG.js +0 -24
  247. package/dist/assets/schedules-page-Bodkcg3J.js +0 -1
  248. package/dist/assets/settings-DGaRub9k.js +0 -1
  249. package/dist/assets/skill-detail-panel-CEepQHmY.js +0 -1
  250. package/dist/assets/status-badge-pill-DxtUb8z3.js +0 -1
  251. package/dist/assets/stt-language-picker-modal-CihIASi8.js +0 -1
  252. package/dist/assets/subagent-detail-panel-C9Y7dfKo.js +0 -4
  253. package/dist/assets/toggle-C-v4x7_A.js +0 -1
  254. package/dist/assets/use-assistant-identity-details-BVjzLgp6.js +0 -1
  255. package/dist/assets/use-edge-swipe-back-BWEVQPEJ.js +0 -2
  256. package/dist/assets/use-element-size-G76uplCp.js +0 -1
  257. package/dist/assets/use-invite-link-dialog-DgDcqWMz.js +0 -1
  258. package/dist/assets/use-sticky-profiles-BN2tBekP.js +0 -1
  259. package/dist/assets/use-touch-mobile-JVxY9M-0.js +0 -1
  260. package/dist/assets/voice-list-uy2Kwdwg.js +0 -1
  261. package/dist/assets/voice-page-Bi7r475U.js +0 -1
  262. package/dist/assets/workflow-detail-panel-fguePScg.js +0 -1
  263. package/dist/assets/workspace-page-Cp11wrja.js +0 -1
  264. /package/dist/assets/{a2a-invite-B5XOcUL6.js → a2a-invite-BNCOmr8h.js} +0 -0
  265. /package/dist/assets/{account-IaNiNsKu.js → account-CtIKBm9p.js} +0 -0
  266. /package/dist/assets/{android-consumption-only-eY-NLtwG.js → android-consumption-only-CwC2kibz.js} +0 -0
  267. /package/dist/assets/{animated-avatar-D9mX2duB.js → animated-avatar--_W54iT9.js} +0 -0
  268. /package/dist/assets/{app-info-xT5AH6o4.js → app-info-DFgKdE7W.js} +0 -0
  269. /package/dist/assets/{app-types-B4-pVNnY.js → app-types-BY00pXhT.js} +0 -0
  270. /package/dist/assets/{apple-logo-CVMvoWvp.js → apple-logo-Biu93CTa.js} +0 -0
  271. /package/dist/assets/{archive-redirect-page-CfCci8ho.js → archive-redirect-page-bx5xRoCl.js} +0 -0
  272. /package/dist/assets/{avatar-renderer-khj83dWw.js → avatar-renderer-Bja-CJEM.js} +0 -0
  273. /package/dist/assets/{avatar-subagent-B68bxt0O.js → avatar-subagent-C1J2pUFc.js} +0 -0
  274. /package/dist/assets/{avatar-tone-CQWYpANf.js → avatar-tone-CTq4cNAY.js} +0 -0
  275. /package/dist/assets/{billing-redirect-page-XcpsfvIl.js → billing-redirect-page-Dp-j37M1.js} +0 -0
  276. /package/dist/assets/{build.umd-Bg-JE3PW.js → build.umd-CKImEzO1.js} +0 -0
  277. /package/dist/assets/{channels-DkTY8D9c.js → channels-C4uOLymq.js} +0 -0
  278. /package/dist/assets/{common-XXvgM1Lv.js → common-CPxc0tHz.js} +0 -0
  279. /package/dist/assets/{community-page-CB9oMqgC.js → community-page-D1uzvBFw.js} +0 -0
  280. /package/dist/assets/{contacts-gateway-D0hHW9dI.js → contacts-gateway-Dp40T_dj.js} +0 -0
  281. /package/dist/assets/{contacts-Dnxb4zeF.js → contacts-pvrehYPe.js} +0 -0
  282. /package/dist/assets/{copy-to-clipboard-SOu7HUET.js → copy-to-clipboard-DRZUoOti.js} +0 -0
  283. /package/dist/assets/{credential-requests-DvnleKK2.js → credential-requests-BsmEdX7t.js} +0 -0
  284. /package/dist/assets/{danger-zone-redirect-page-BIYa_At7.js → danger-zone-redirect-page-DY3LtITR.js} +0 -0
  285. /package/dist/assets/{definitions-BLBMbDPd.js → definitions-BNyfuzue.js} +0 -0
  286. /package/dist/assets/{definitions-BLHO5zVb.js → definitions-DMGv-AVM.js} +0 -0
  287. /package/dist/assets/{devices-redirect-page-DJtEpVr7.js → devices-redirect-page-BXqfVWSd.js} +0 -0
  288. /package/dist/assets/{dictation-overlay-page-DLZGCPP_.js → dictation-overlay-page-DR63_PvH.js} +0 -0
  289. /package/dist/assets/{diff-rows-C_ARHWq3.js → diff-rows-ZG9FwscH.js} +0 -0
  290. /package/dist/assets/{edit-chat-session-CcwN_rea.js → edit-chat-session-B38z6oPP.js} +0 -0
  291. /package/dist/assets/{emoji-catalog-data-BGlYkVas.js → emoji-catalog-data-Dqyvj5Ne.js} +0 -0
  292. /package/dist/assets/{environment-store-CR6vnG9G.js → environment-store-DCU3hheH.js} +0 -0
  293. /package/dist/assets/{esm-DgDCYysh.js → esm-Bbh10TA1.js} +0 -0
  294. /package/dist/assets/{esm-BYiovSCx.js → esm-C0OhtIaa.js} +0 -0
  295. /package/dist/assets/{format-date-Cl5z8sZt.js → format-date-mZFhGVxR.js} +0 -0
  296. /package/dist/assets/{format-file-size-B3w8pfkS.js → format-file-size-D7QcCVUg.js} +0 -0
  297. /package/dist/assets/{home-CF1B7GqE.js → home-CoA1W6RA.js} +0 -0
  298. /package/dist/assets/{intelligence-Dcw50PsN.js → intelligence-Bpz4mQfO.js} +0 -0
  299. /package/dist/assets/{keyboard-shortcuts-redirect-page-BSNa3QLh.js → keyboard-shortcuts-redirect-page-BUEUuL5W.js} +0 -0
  300. /package/dist/assets/{library-CCXCwc6z.js → library-CxAscKuj.js} +0 -0
  301. /package/dist/assets/{link-click-BhQuhukA.js → link-click-c4p6nI2M.js} +0 -0
  302. /package/dist/assets/{logs-nlP1em1X.js → logs-BlQUbg5S.js} +0 -0
  303. /package/dist/assets/{machine-sizes-Bx2eSjOW.js → machine-sizes-D5IsW7GE.js} +0 -0
  304. /package/dist/assets/{onboarding-C6ZFK4YA.js → onboarding-C-LQqXEa.js} +0 -0
  305. /package/dist/assets/{onboarding-step-layout-CFCN1Nnk.js → onboarding-step-layout-Cksqlmsb.js} +0 -0
  306. /package/dist/assets/{optimistic-lifecycle-EXwQgNvb.js → optimistic-lifecycle-DIWfvuIw.js} +0 -0
  307. /package/dist/assets/{page-empty-state-DRbcD4aa.js → page-empty-state-Df3EP_DE.js} +0 -0
  308. /package/dist/assets/{password-reset-page-Cmbeaggq.js → password-reset-page-0k2eeyou.js} +0 -0
  309. /package/dist/assets/{pdf-BUxbm1S7.js → pdf-CpDfklza.js} +0 -0
  310. /package/dist/assets/{plugin-attribution-B_3pbh6m.js → plugin-attribution-TebhIznA.js} +0 -0
  311. /package/dist/assets/{plugin-detail-page-C0zaBBon.js → plugin-detail-page-N3j9G0yc.js} +0 -0
  312. /package/dist/assets/{plugins-page-BuN35WCX.js → plugins-page-BPSPELgG.js} +0 -0
  313. /package/dist/assets/{preview-skeleton-BLpm3j7s.js → preview-skeleton-BreSI6Ln.js} +0 -0
  314. /package/dist/assets/{profile-metadata-BxP0WOpJ.js → profile-metadata-DAXhAdlI.js} +0 -0
  315. /package/dist/assets/{provider-key-CzUfGGE_.js → provider-key-CR8jz-eM.js} +0 -0
  316. /package/dist/assets/{quick-input-page-DYc7eXbP.js → quick-input-page-Mw2f8F3_.js} +0 -0
  317. /package/dist/assets/{radio-card-nav-BOpJqAoO.js → radio-card-nav-BubfTKOh.js} +0 -0
  318. /package/dist/assets/{remote-web-COoOfi7K.js → remote-web-Di_UF41i.js} +0 -0
  319. /package/dist/assets/{schedules-DhrUSTxo.js → schedules-BaUXJBRS.js} +0 -0
  320. /package/dist/assets/{schedules-630osdOz.js → schedules-JL1Laub-.js} +0 -0
  321. /package/dist/assets/{security-redirect-page-D9_08zix.js → security-redirect-page-Ce11_hfW.js} +0 -0
  322. /package/dist/assets/{signup-shell-BLq9UcAD.js → signup-shell-XnqyIHQa.js} +0 -0
  323. /package/dist/assets/{skill-icon-BEzVeada.js → skill-icon-xO9VGnPV.js} +0 -0
  324. /package/dist/assets/{skills-page-CpajWLSk.js → skills-page-bnp9x1iR.js} +0 -0
  325. /package/dist/assets/{system-events-redirect-page-CdqIVW5m.js → system-events-redirect-page-W8knAadR.js} +0 -0
  326. /package/dist/assets/{terminal-B8-uO_zb.js → terminal-B4go-vP8.js} +0 -0
  327. /package/dist/assets/{three-dot-indicator-BFNMvd3i.js → three-dot-indicator-BhUevb3V.js} +0 -0
  328. /package/dist/assets/{usage-redirect-page-Bk755PQU.js → usage-redirect-page-DXcbB81p.js} +0 -0
  329. /package/dist/assets/{use-active-assistant-id-Cgt1z2rZ.js → use-active-assistant-id-Btl1-4sB.js} +0 -0
  330. /package/dist/assets/{use-local-file-info-CowxNLsG.js → use-local-file-info-Dz017Fii.js} +0 -0
  331. /package/dist/assets/{use-skill-detail-files-2agjQ-pp.js → use-skill-detail-files-Bzwall4_.js} +0 -0
  332. /package/dist/assets/{use-supports-credentials-settings-BBUFotal.js → use-supports-credentials-settings-D9oEIOk9.js} +0 -0
  333. /package/dist/assets/{weather-forecast-display-BMFPvW83.js → weather-forecast-display-BRi0CN73.js} +0 -0
  334. /package/dist/assets/{web-DT7CHk3X.js → web-Bc0yxcTg.js} +0 -0
  335. /package/dist/assets/{web-CnTPI_xz.js → web-DUcCWo6-.js} +0 -0
  336. /package/dist/assets/{web-CpFPB7iN.js → web-DnUU5XRV.js} +0 -0
  337. /package/dist/assets/{web-DfzBW3mJ.js → web-DoWs0tX8.js} +0 -0
  338. /package/dist/assets/{web-BXqKHeFH.js → web-DprnafKw.js} +0 -0
  339. /package/dist/assets/{web-fHk-S0Kt.js → web-bVuMezJ9.js} +0 -0
  340. /package/dist/assets/{web-D2fHQj5v.js → web-xXRFVuHp.js} +0 -0
  341. /package/dist/assets/{workspace-CCzLdd4F.js → workspace-B3DIYRpz.js} +0 -0
  342. /package/dist/assets/{xterm-CfcAttTO.js → xterm-5SK_xX72.js} +0 -0
  343. /package/dist/assets/{xterm-addon-fit-CmOTEB5O.js → xterm-addon-fit-Bov_2YwK.js} +0 -0
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Cdvvw9J5.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-DSjqKLvM.js";import{d as i,p as a}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as o}from"./QueryClientProvider-CMu7CkQU.js";import{t as s}from"./useQuery-Bz-fbQ-m.js";import{t as c}from"./useInfiniteQuery-Dk8q0n49.js";import{t as l}from"./useMutation-CXGTrp4W.js";import{t as u}from"./jsx-runtime-D3ZM-ToX.js";import{t as d}from"./cn-DFWryB3N.js";import{t as f}from"./typography-BeUa5Fd-.js";import{L as p,W as m,o as h}from"./src-DjIqxQVd.js";import{t as g}from"./calendar-DFz-eSzk.js";import{t as _}from"./chart-column-DupTx7Uc.js";import{t as v}from"./chevron-down-B_6pb9kS.js";import{t as y}from"./chevron-right-Dx_5VMo6.js";import{t as b}from"./circle-alert-DEIiXMF-.js";import{t as x}from"./clock-DSx5dIWv.js";import{t as S}from"./coins-B6rJlYQ0.js";import{t as C}from"./loader-circle-oY5laABh.js";import{t as w}from"./play-kF4y_ovX.js";import{t as T}from"./repeat-PaQ1rsKC.js";import{t as E}from"./settings-bHOjP4mt.js";import{t as D}from"./trash-2-DL_3_16e.js";import{t as O}from"./notice-C9v3KOP3.js";import{t as k}from"./tag-D0oiSRye.js";import{t as A}from"./modal-Bt1DPFgW.js";import{n as j,t as M}from"./input-BG94bPcH.js";import{t as ee}from"./toggle-C-v4x7_A.js";import{n as N}from"./toast-BrKo5b4d.js";import{t as P}from"./confirm-dialog-DNaRfy4W.js";import{t as F}from"./select-B86W_Hs8.js";import{t as I}from"./skeleton-CzdJByjE.js";import{o as L}from"./i18n-zb2mgr1B.js";import{t as R}from"./useTranslation-Dn8TOHE6.js";import{a as z,l as te,n as ne,o as re,r as B,s as V}from"./profile-pickers-CKLILvRc.js";import{d as H}from"./routes-C293MsBG.js";import{B as ie,Ct as ae,I as oe,L as se,R as ce,S as le,Zt as ue,_t as de,an as fe,b as pe,bt as me,on as he,p as ge,u as _e,vt as ve,x as ye,xt as be,y as xe,yt as Se,z as Ce}from"./react-query.gen-vkBavCkI.js";import{n as we,r as Te}from"./conversation-navigation-Bw3eQBGU.js";import{n as Ee}from"./use-is-mobile-BONxmNg6.js";import{t as De}from"./effective-timezone-BHJf6K2g.js";import{t as Oe}from"./assistant-feature-flag-store-j3wC3wtf.js";import{t as ke}from"./use-effective-timezone-CEgnEQb7.js";import{t as Ae}from"./use-assistant-capability-CYKqSbfq.js";import{t as je}from"./use-active-assistant-id-Cgt1z2rZ.js";import{n as Me}from"./detail-shell-Bmyv2wPh.js";import{n as Ne}from"./schedules-630osdOz.js";import{t as Pe}from"./detail-card-CC0br9gQ.js";import{n as Fe,t as Ie}from"./detail-drawer-BpdqER__.js";import{a as Le,c as Re,i as ze,n as Be,o as Ve,r as He,s as Ue,t as We}from"./schedules-DhrUSTxo.js";import{i as Ge,n as Ke,t as qe}from"./profile-metadata-BxP0WOpJ.js";import{t as Je}from"./page-empty-state-DRbcD4aa.js";var U=e(n(),1),Ye={frequency:`daily`,minute:0,hour24:9,weekdays:[1],dayOfMonth:1},W=[{value:0,letter:`S`,short:`Sun`,full:`Sunday`},{value:1,letter:`M`,short:`Mon`,full:`Monday`},{value:2,letter:`T`,short:`Tue`,full:`Tuesday`},{value:3,letter:`W`,short:`Wed`,full:`Wednesday`},{value:4,letter:`T`,short:`Thu`,full:`Thursday`},{value:5,letter:`F`,short:`Fri`,full:`Friday`},{value:6,letter:`S`,short:`Sat`,full:`Saturday`}],Xe=[1,2,3,4,5];function G(e,t,n){return Number.isFinite(e)?Math.min(n,Math.max(t,Math.round(e))):t}function Ze(e){let t=Array.from(new Set(e.map(e=>G(e,0,6)).filter(e=>Number.isInteger(e)))).sort((e,t)=>e-t);return t.length>0?t:[1]}function Qe(e){let t=G(e.minute,0,59),n=G(e.hour24,0,23);switch(e.frequency){case`hourly`:return`${t} * * * *`;case`daily`:return`${t} ${n} * * *`;case`weekly`:return`${t} ${n} * * ${Ze(e.weekdays).join(`,`)}`;case`monthly`:return e.dayOfMonth===`last`?`${t} ${n} L * *`:`${t} ${n} ${G(e.dayOfMonth,1,28)} * *`}}function $e(e,t){let n=G(e,0,23),r=G(t,0,59),i=n<12?`AM`:`PM`;return`${n%12==0?12:n%12}:${String(r).padStart(2,`0`)} ${i}`}function et(e){let t=[`th`,`st`,`nd`,`rd`],n=e%100;return`${e}${t[(n-20)%10]??t[n]??t[0]}`}function tt(e){let t=Ze(e),n=new Set(t);if(t.length===7)return`every day`;if(t.length===5&&Xe.every(e=>n.has(e)))return`every weekday`;if(t.length===2&&n.has(0)&&n.has(6))return`every weekend`;if(t.length===1)return`every ${W[t[0]]?.full??`day`}`;let r=t.map(e=>W[e]?.short??``),i=r.pop();return`every ${r.join(`, `)} & ${i}`}function nt(e){let t=$e(e.hour24,e.minute);switch(e.frequency){case`hourly`:{let t=G(e.minute,0,59);return`Runs every hour at :${String(t).padStart(2,`0`)}`}case`daily`:return`Runs every day at ${t}`;case`weekly`:return`Runs ${tt(e.weekdays)} at ${t}`;case`monthly`:return e.dayOfMonth===`last`?`Runs on the last day of every month at ${t}`:`Runs on the ${et(G(e.dayOfMonth,1,28))} of every month at ${t}`}}var K=u(),rt=[{value:`hourly`,label:`Hourly`},{value:`daily`,label:`Daily`},{value:`weekly`,label:`Weekly`},{value:`monthly`,label:`Monthly`}],it=Array.from({length:12},(e,t)=>{let n=t+1;return{value:String(n),label:String(n)}}),at=Array.from({length:12},(e,t)=>{let n=t*5,r=String(n).padStart(2,`0`);return{value:r,label:r}}),ot=[...Array.from({length:28},(e,t)=>{let n=t+1;return{value:String(n),label:et(n)}}),{value:`last`,label:`Last day`}],st=[{value:`AM`,label:`AM`},{value:`PM`,label:`PM`}];function ct(e,t){let n=e%12;return t===`PM`?n+12:n}function lt(e){try{let t=new Intl.DateTimeFormat(`en-US`,{timeZone:e,timeZoneName:`short`}).formatToParts(new Date).find(e=>e.type===`timeZoneName`)?.value;return t&&t!==e?`${e} · ${t}`:e}catch{return e}}function ut({isOpen:e,assistantId:t,onClose:n,onCreated:r}){return(0,K.jsx)(A.Root,{open:e,onOpenChange:e=>{e||n()},children:e?(0,K.jsx)(dt,{assistantId:t,onClose:n,onCreated:r}):null})}function dt({assistantId:e,onClose:t,onCreated:n}){let i=ke(),[a,o]=(0,U.useState)(``),[s,c]=(0,U.useState)(``),[l,u]=(0,U.useState)(``),[d,f]=(0,U.useState)(`simple`),[p,m]=(0,U.useState)(Ye),[h,g]=(0,U.useState)(``),[_,v]=(0,U.useState)(!1),[y,b]=(0,U.useState)(null),x=a.trim(),S=s.trim(),C=l.trim(),w=h.trim(),T=(0,U.useMemo)(()=>d===`simple`?Qe(p):w,[d,p,w]),E=(0,U.useMemo)(()=>d===`simple`?nt(p):w||`Enter a cron expression to continue.`,[d,p,w]),D=(0,U.useMemo)(()=>lt(i),[i]),O=x.length>0&&S.length>0&&C.length>0&&T.length>0&&!_;return(0,K.jsxs)(A.Content,{size:`md`,children:[(0,K.jsxs)(A.Header,{children:[(0,K.jsx)(A.Title,{children:`Create schedule`}),(0,K.jsx)(A.Description,{children:`Schedule a recurring instruction for your assistant. Runs in execute mode — the message is delivered to the assistant on each fire.`})]}),(0,K.jsxs)(`form`,{onSubmit:async t=>{if(t.preventDefault(),O){v(!0),b(null);try{await We(e,{name:x,description:S,expression:T,message:C,timezone:i}),v(!1),n()}catch(e){b(e instanceof Error?e.message:`Failed to create schedule.`),v(!1)}}},children:[(0,K.jsx)(A.Body,{children:(0,K.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,K.jsx)(M,{label:`Name`,placeholder:`Morning briefing`,value:a,onChange:e=>o(e.target.value),required:!0,autoFocus:!0,fullWidth:!0}),(0,K.jsx)(j,{label:`Description`,placeholder:`What is this schedule for?`,value:s,onChange:e=>c(e.target.value),required:!0,fullWidth:!0,rows:2}),(0,K.jsx)(gt,{label:`Repeat`,children:d===`simple`?(0,K.jsx)(ft,{cadence:p,onChange:m}):(0,K.jsx)(ht,{value:h,onChange:g,onUseSimple:()=>f(`simple`)})}),(0,K.jsx)(_t,{summary:E,mono:d===`advanced`&&w.length>0,timezoneLabel:D}),d===`simple`?(0,K.jsx)(`button`,{type:`button`,onClick:()=>{g(e=>e||Qe(p)),f(`advanced`)},className:`self-start text-body-small-default text-[var(--content-tertiary)] underline-offset-2 transition-colors hover:text-[var(--content-default)] hover:underline`,children:`Advanced — write a cron expression`}):null,(0,K.jsx)(j,{label:`Message`,placeholder:`What should the assistant do on each fire?`,value:l,onChange:e=>u(e.target.value),required:!0,fullWidth:!0,rows:4}),y?(0,K.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:y}):null]})}),(0,K.jsxs)(A.Footer,{children:[(0,K.jsx)(r,{variant:`outlined`,onClick:t,type:`button`,children:`Cancel`}),(0,K.jsx)(r,{variant:`primary`,type:`submit`,disabled:!O,children:_?`Creating…`:`Create schedule`})]})]})]})}function ft({cadence:e,onChange:t}){return(0,K.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,K.jsx)(m,{items:rt,value:e.frequency,onChange:n=>t({...e,frequency:n}),ariaLabel:`How often the schedule runs`}),e.frequency===`hourly`?(0,K.jsx)(q,{label:`At minute`,children:(0,K.jsx)(F,{options:at,value:String(e.minute).padStart(2,`0`),onChange:n=>t({...e,minute:Number(n)}),"aria-label":`Minute`,className:`w-24`})}):null,e.frequency===`weekly`?(0,K.jsx)(q,{label:`On these days`,children:(0,K.jsx)(mt,{value:e.weekdays,onChange:n=>t({...e,weekdays:n})})}):null,e.frequency===`monthly`?(0,K.jsx)(q,{label:`On day`,children:(0,K.jsx)(F,{options:ot,value:e.dayOfMonth===`last`?`last`:String(e.dayOfMonth),onChange:n=>t({...e,dayOfMonth:n===`last`?`last`:Number(n)}),"aria-label":`Day of month`,className:`w-32`})}):null,e.frequency===`hourly`?null:(0,K.jsx)(q,{label:`At time`,children:(0,K.jsx)(pt,{hour24:e.hour24,minute:e.minute,onChange:(n,r)=>t({...e,hour24:n,minute:r})})})]})}function pt({hour24:e,minute:t,onChange:n}){let r=e<12?`AM`:`PM`,i=e%12==0?12:e%12;return(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(F,{options:it,value:String(i),onChange:e=>n(ct(Number(e),r),t),"aria-label":`Hour`,className:`w-[72px]`}),(0,K.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`:`}),(0,K.jsx)(F,{options:at,value:String(t).padStart(2,`0`),onChange:t=>n(e,Number(t)),"aria-label":`Minute`,className:`w-[72px]`}),(0,K.jsx)(`div`,{className:`w-[112px]`,children:(0,K.jsx)(m,{items:st,value:r,onChange:e=>n(ct(i,e),t),ariaLabel:`AM or PM`})})]})}function mt({value:e,onChange:t}){let n=new Set(e),r=e=>{let r=new Set(n);r.has(e)?r.size>1&&r.delete(e):r.add(e),t([...r].sort((e,t)=>e-t))};return(0,K.jsx)(`div`,{className:`flex gap-1.5`,children:W.map(e=>{let t=n.has(e.value);return(0,K.jsx)(`button`,{type:`button`,onClick:()=>r(e.value),"aria-pressed":t,"aria-label":e.full,title:e.full,className:d(`flex h-9 w-9 items-center justify-center rounded-md border text-body-medium-default transition-colors`,t?`border-[var(--border-active)] bg-[var(--surface-active)] text-[var(--content-emphasised)]`:`border-[var(--field-border)] text-[var(--content-tertiary)] hover:border-[var(--border-active)] hover:text-[var(--content-default)]`),children:e.letter},e.value)})})}function ht({value:e,onChange:t,onUseSimple:n}){return(0,K.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,K.jsx)(M,{placeholder:`0 9 * * *`,value:e,onChange:e=>t(e.target.value),fullWidth:!0,className:`font-mono`,"aria-label":`Cron expression`,helperText:`Standard 5-field cron (minute hour day month weekday). RRULE expressions are also accepted.`}),(0,K.jsx)(`button`,{type:`button`,onClick:n,className:`self-start text-body-small-default text-[var(--content-tertiary)] underline-offset-2 transition-colors hover:text-[var(--content-default)] hover:underline`,children:`← Back to the simple builder`})]})}function gt({label:e,children:t}){return(0,K.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:e}),t]})}function q({label:e,children:t}){return(0,K.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1.5`,children:[(0,K.jsx)(`span`,{className:`min-w-[88px] text-body-small-default text-[var(--content-tertiary)]`,children:e}),t]})}function _t({summary:e,mono:t,timezoneLabel:n}){return(0,K.jsxs)(`div`,{className:`flex items-start gap-3 rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-lift)] px-3.5 py-3`,children:[(0,K.jsx)(x,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,K.jsxs)(`div`,{className:`min-w-0`,children:[(0,K.jsx)(`p`,{className:d(`text-body-medium-default text-[var(--content-default)]`,t&&`break-all font-mono`),children:e}),(0,K.jsxs)(`p`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[`Times use your timezone — `,n,`.`]})]})]})}function vt(e=De(),t=Date.now()){return Ge(Ke,e,t)}function J(e){return e?new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`,hour12:!0}):`—`}function yt(e){return e==null?`—`:e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`}var bt=new Intl.NumberFormat(void 0,{style:`currency`,currency:`USD`,minimumFractionDigits:2,maximumFractionDigits:2});function Y(e){return e==null||!Number.isFinite(e)?`—`:bt.format(e)}function xt(e){return`${e.toLocaleString()} ${e===1?`run`:`runs`}`}function St(e){let t=Math.round(e/6e4);return t>=60&&t%60==0?`Every ${t/60} hr`:`Every ${t} min`}function Ct(e){if(!e)return;let t=new Set,n=[];for(let r of e)for(let e of r.runs)t.has(e.id)||(t.add(e.id),n.push(e));return n}function wt(e){return!!e.conversationId&&e.conversationExists===!0&&e.conversationArchivedAt==null}function Tt(e){return wt(e)?e.conversationId??null:null}function X(e){return typeof e==`string`&&e.length>0}function Et(e){return e.status===`pending`||e.status===`superseded`}function Dt(e){return e.status!==`skipped`&&e.status!==`missed`&&!Et(e)}var Ot={heartbeat:`system-heartbeat`,consolidation:`system-consolidation`,retrospective:`system-memory-retrospective`};function kt(e){if(e.cronExpression)return e.timezone?`Cron: ${e.cronExpression} (${e.timezone})`:`Cron: ${e.cronExpression}`;let t=St(e.intervalMs);return e.activeHoursStart!=null&&e.activeHoursEnd!=null&&(t+=` (${e.activeHoursStart}:00–${e.activeHoursEnd}:00)`),t}function At(e){return St(e.intervalMs)}var jt=`After conversation activity`;function Mt(e){return e.status!==`fired`&&e.status!==`cancelled`}function Nt(e,t){return Mt(e)?e.status===`firing`?!1:e.nextRunAt==null||!e.enabled&&e.nextRunAt<=t:!0}function Pt(e,t){let n=[],r=[],i=[];for(let a of e)a.isOneShot?Nt(a,t)?i.push(a):r.push(a):n.push(a);return n.sort((e,t)=>e.enabled===t.enabled?(e.nextRunAt??1/0)-(t.nextRunAt??1/0):e.enabled?-1:1),r.sort((e,t)=>(e.nextRunAt??1/0)-(t.nextRunAt??1/0)),i.sort((e,t)=>{let n=e.lastRunAt??e.nextRunAt??0;return(t.lastRunAt??t.nextRunAt??0)-n}),{recurring:n,upcomingOneTime:r,pastOneTime:i}}function Ft(e,t,n=!0){return{queryKey:[{_id:`schedulesUsagesummaryGet`,path:{assistant_id:e??``},_tz:t}],queryFn:()=>e?ze(e,vt(t)):Promise.resolve([]),enabled:n,staleTime:1e4}}function It(e){return{scheduleId:e,runCount:0,totalEstimatedCostUsd:0,eventCount:0}}function Lt(e,t,n){let r=(t??[]).filter(e=>{let t=e.startedAt??e.createdAt;return Dt(e)&&t>=n.from&&t<=n.to});return{scheduleId:e,runCount:r.length,totalEstimatedCostUsd:r.reduce((e,t)=>{let n=t.estimatedCostUsd;return typeof n==`number`&&Number.isFinite(n)?e+n:e},0),eventCount:0}}function Rt(e,t,n){let r=!!e&&n?.enabled!==!1,{data:i}=s({...ge({path:{assistant_id:e}}),enabled:r,staleTime:6e4}),{data:a}=s({..._e({path:{assistant_id:e}}),enabled:r,staleTime:6e4}),o=i?.callSites.find(e=>e.id===t)?.defaultProfile??null;return o==null?{key:null,label:null}:{key:o,label:(a?qe(a):{})[o]?.displayName??o}}function zt(e,n,r){let i=Rt(e,`mainAgent`),[a,o]=(0,U.useState)(!1),s=(0,U.useMemo)(()=>i.key?n.filter(e=>Mt(e)&&e.inferenceProfile!==i.key).length:0,[i.key,n]),c=i.label,u=l({mutationFn:t=>Le(e,null,t),onSuccess:e=>{o(!1),r(),N.success(e===0?`Every schedule already runs on ${c}.`:`Moved ${e} ${e===1?`schedule`:`schedules`} to ${c}.`)},onError:e=>{t(e,{context:`schedules_rebase_inference_profile`}),N.error(`Failed to move the schedules.`)}});return{defaultProfileLabel:c,offDefaultCount:s,canRebase:s>0,requestRebase:()=>o(!0),dialogProps:{open:a&&i.key!=null,profileLabel:c,offDefaultCount:s,isPending:u.isPending,onConfirm:()=>{i.key&&u.mutate(i.key)},onCancel:()=>o(!1)}}}function Bt({open:e,profileLabel:t,offDefaultCount:n,isPending:r,onConfirm:i,onCancel:a}){return(0,K.jsx)(P,{open:e,title:`Use ${t} for every schedule?`,message:`${n} of the schedules below ${n===1?`runs`:`run`} on a different model. This moves every schedule, including reminders your assistant set aside for later, onto ${t}, your current default. Schedules you deliberately put on another model move too.`,confirmLabel:`Move schedules`,isPending:r,onConfirm:i,onCancel:a})}function Vt({status:e}){return(0,K.jsx)(`span`,{className:`inline-block h-2 w-2 rounded-full`,style:{backgroundColor:e===`ok`||e===`completed`?`var(--system-positive-strong)`:e===`error`||e===`failed`?`var(--system-negative-strong)`:`var(--content-tertiary)`},"aria-label":e??`unknown`})}function Ht({scheduleName:e,usage:t,onOpenUsage:n}){if(t.status===`loading`)return(0,K.jsxs)(`div`,{"aria-label":`Loading schedule usage`,className:`flex w-[156px] shrink-0 items-center justify-end gap-3`,children:[(0,K.jsx)(I,{as:`span`,className:`h-5 w-16`}),(0,K.jsx)(I,{as:`span`,className:`h-5 w-16`})]});let r=t.status===`error`,i=r?`--`:Y(t.summary.totalEstimatedCostUsd),a=r?`--`:xt(t.summary.runCount),o=t.status===`ready`&&!(t.summary.totalEstimatedCostUsd>0),s=t.status===`ready`&&t.summary.runCount===0,c=o?`text-[var(--content-tertiary)]`:`text-[var(--content-default)]`,l=s?`text-[var(--content-tertiary)]`:`text-[var(--content-default)]`;return(0,K.jsxs)(`div`,{className:`flex w-[156px] shrink-0 items-center justify-end gap-3 text-right text-body-small-default`,children:[n?(0,K.jsx)(`button`,{type:`button`,onClick:n,"aria-label":`View usage for ${e}`,className:`min-w-[64px] cursor-pointer rounded px-1 py-0.5 text-right transition-colors hover:bg-[var(--surface-hover)] ${c}`,children:i}):(0,K.jsx)(`span`,{"aria-label":`Cost for ${e} in the last 7 days: ${i}`,className:`block min-w-[64px] px-1 py-0.5 ${c}`,children:i}),(0,K.jsx)(`span`,{"aria-label":`Runs for ${e} in the last 7 days: ${a}`,className:`block min-w-[64px] px-1 py-0.5 ${l}`,children:a})]})}function Ut({name:e,subtitle:t,enabled:n,nextRunAt:r,lastRunAt:i,usage:a,helperText:o,statusLabel:s,statusTone:c=`neutral`,onClick:l}){return(0,K.jsx)(`div`,{className:`flex flex-wrap items-center gap-3 rounded-md px-2 py-3 transition-colors hover:bg-[var(--surface-hover)] [&+&]:border-t [&+&]:border-[var(--border-base)]`,children:(0,K.jsxs)(`button`,{type:`button`,onClick:l,"aria-label":`Open ${e}`,className:`flex min-w-0 flex-1 cursor-pointer flex-wrap items-center gap-3 text-left focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:[(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,K.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e})}),(0,K.jsx)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:t}),o?(0,K.jsx)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--content-secondary)]`,children:o}):null,(0,K.jsxs)(`div`,{className:`mt-0.5 flex flex-wrap items-center gap-x-3 gap-y-1 text-body-small-default text-[var(--content-tertiary)]`,children:[r?(0,K.jsxs)(`span`,{children:[`Next: `,J(r)]}):null,i?(0,K.jsxs)(`span`,{children:[`Last: `,J(i)]}):null]})]}),(0,K.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-end gap-3`,children:[(0,K.jsx)(Ht,{scheduleName:e,usage:a}),s?(0,K.jsx)(k,{tone:c,children:s}):(0,K.jsx)(`span`,{className:`h-2 w-2 rounded-full`,style:{backgroundColor:n?`var(--system-positive-strong)`:`var(--content-disabled)`},"aria-label":n?`enabled`:`disabled`}),(0,K.jsx)(y,{className:`h-4 w-4 text-[var(--content-tertiary)]`})]})]})})}function Wt({heartbeatConfig:e,consolidationConfig:t,retrospectiveConfig:n,heartbeatUsage:r,consolidationUsage:i,retrospectiveUsage:a,isLoading:o,hasError:s,onRetry:c,onSelectHeartbeat:l,onSelectConsolidation:u,onSelectRetrospective:d}){let f=e!=null,p=t?.available===!0,m=n?.available===!0,g=f||p||m;if(!o&&!s&&!g)return null;let _=[...f?[r]:[],...p?[i]:[],...m?[a]:[]].filter(e=>e.status===`ready`),y=_.reduce((e,t)=>e+(t.summary.totalEstimatedCostUsd??0),0),b=o?(0,K.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,K.jsx)(C,{className:`h-5 w-5 animate-spin text-stone-400`})}):s&&!g?(0,K.jsxs)(O,{tone:`error`,children:[`Failed to load system jobs.`,` `,(0,K.jsx)(`button`,{type:`button`,onClick:c,className:`cursor-pointer underline hover:no-underline`,children:`Retry`})]}):(0,K.jsxs)(`div`,{children:[f?(0,K.jsx)(Ut,{name:`Heartbeat`,subtitle:kt(e),enabled:e.enabled,nextRunAt:e.nextRunAt,lastRunAt:e.lastRunAt,usage:r,onClick:l}):null,p?(0,K.jsx)(Ut,{name:`Consolidation`,subtitle:At(t),enabled:t.enabled,helperText:t.enabled?void 0:`Memory is off, so consolidation is paused.`,nextRunAt:t.nextRunAt,lastRunAt:t.lastRunAt,usage:i,statusLabel:t.enabled?void 0:`Paused`,statusTone:`warning`,onClick:u}):null,m?(0,K.jsx)(Ut,{name:`Memory retrospective`,subtitle:jt,enabled:n.enabled,helperText:n.enabled?void 0:`Retrospectives are turned off in Memory settings.`,nextRunAt:n.nextRunAt,lastRunAt:n.lastRunAt,usage:a,statusLabel:n.enabled?void 0:`Paused`,statusTone:`warning`,onClick:d}):null,s?(0,K.jsx)(`div`,{className:`pt-3 first:pt-0`,children:(0,K.jsxs)(O,{tone:`error`,children:[`Some system jobs failed to load.`,` `,(0,K.jsx)(`button`,{type:`button`,onClick:c,className:`cursor-pointer underline hover:no-underline`,children:`Retry`})]})}):null]});return(0,K.jsx)(Pe,{children:(0,K.jsx)(h.Root,{type:`multiple`,children:(0,K.jsxs)(h.Item,{value:`system-jobs`,children:[(0,K.jsxs)(h.Trigger,{className:`group justify-between gap-3`,children:[(0,K.jsxs)(`span`,{className:`flex min-w-0 flex-wrap items-baseline gap-x-2 gap-y-1 text-left`,children:[(0,K.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-secondary)]`,children:`System`}),(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Built-in jobs managed by the assistant runtime`})]}),(0,K.jsxs)(`span`,{className:`flex shrink-0 items-center gap-3`,children:[_.length>0?(0,K.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[Y(y),` (7d)`]}):null,(0,K.jsx)(v,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform group-data-[state=open]:rotate-180`})]})]}),(0,K.jsx)(h.Content,{children:(0,K.jsx)(`div`,{className:`mt-3`,children:b})})]})})})}var Gt={disabled:`heartbeat is disabled`,outside_active_hours:`outside active hours`,overlap:`previous run was still active`,pre_first_user_message:`waiting for the first conversation`,max_consecutive_runs:`consecutive-run cap reached`,max_daily_runs:`daily run cap reached`,quiesced:`assistant was shutting down`};function Kt(e){return e.status===`missed`?`Missed while the assistant was offline`:`skipReason`in e&&e.skipReason?`Skipped — ${Gt[e.skipReason]??e.skipReason}`:null}function Z(e,t){return{id:e.id,jobId:t,status:e.status,startedAt:e.startedAt??e.scheduledFor,finishedAt:e.finishedAt,durationMs:e.durationMs,output:Kt(e),error:e.error,conversationId:e.conversationId,conversationExists:e.conversationExists,conversationArchivedAt:e.conversationArchivedAt,estimatedCostUsd:e.estimatedCostUsd,createdAt:e.createdAt,...`title`in e?{title:e.title}:{}}}function qt(e){return e.runs.filter(e=>!Et(e)).map(e=>Z(e,`heartbeat`))}function Jt(e){return e.runs.map(e=>Z(e,`consolidation`))}function Yt(e){return e.runs.map(e=>Z(e,`retrospective`))}var Q=1e4;function Xt(e,t,n,r,i){return e?{status:`loading`}:t?{status:`error`}:{status:`ready`,summary:Lt(n,r,i)}}function Zt(e,n){let r=o(),i={path:{assistant_id:e??``}},{data:a,isLoading:c,isError:l,refetch:u}=s({...oe(i),enabled:!!e,staleTime:Q}),{data:d,isLoading:f,isError:p,refetch:m}=s({...xe(i),enabled:!!e,staleTime:Q}),{data:h,isLoading:g,isError:_,refetch:v}=s({...de(i),enabled:!!e,staleTime:Q}),y={path:{assistant_id:e??``},query:{limit:100}},{data:b,isLoading:x,isError:S,refetch:C}=s({...ie(y),select:qt,enabled:!!e&&a!=null,staleTime:Q}),{data:w,isLoading:T,isError:E,refetch:D}=s({...le(y),select:Jt,enabled:!!e&&d?.available===!0,staleTime:Q}),{data:O,isLoading:k,isError:A,refetch:j}=s({...me(y),select:Yt,enabled:!!e&&h?.available===!0,staleTime:Q}),M=(0,U.useMemo)(()=>vt(n),[n]),ee=(0,U.useMemo)(()=>Xt(x,S,Ot.heartbeat,b,M),[b,S,x,M]),P=(0,U.useMemo)(()=>Xt(T,E,Ot.consolidation,w,M),[w,E,T,M]),F=(0,U.useMemo)(()=>Xt(k,A,Ot.retrospective,O,M),[O,A,k,M]),I=t=>{if(!e)return;let n={heartbeat:{config:oe(i).queryKey,runs:ie(y).queryKey,infinite:Ce(i)},consolidation:{config:xe(i).queryKey,runs:le(y).queryKey,infinite:ye(i)},retrospective:{config:de(i).queryKey,runs:me(y).queryKey,infinite:Se(i)}}[t];r.invalidateQueries({queryKey:n.config}),r.invalidateQueries({queryKey:n.runs}),r.invalidateQueries({queryKey:n.infinite})},L=he({onSuccess:e=>{e.ran?N.success(`Heartbeat started.`):N.info(`Heartbeat skipped.`)},onError:e=>{t(e,{context:`heartbeat_run_now`}),N.error(`Failed to run heartbeat.`)},onSettled:()=>I(`heartbeat`)}),R=ue({onSuccess:e=>{e.ran?N.success(`Consolidation queued.`):N.info(`Consolidation already queued or running.`)},onError:e=>{t(e,{context:`consolidation_run_now`}),N.error(`Failed to run consolidation.`)},onSettled:()=>I(`consolidation`)}),z=fe({onSuccess:e=>{se(r,i,e),N.success(e.enabled?`Heartbeat enabled.`:`Heartbeat disabled.`)},onError:e=>{t(e,{context:`heartbeat_toggle`}),N.error(`Failed to toggle heartbeat.`)}});return{heartbeatConfig:a,consolidationConfig:d,retrospectiveConfig:h,heartbeatUsage:ee,consolidationUsage:P,retrospectiveUsage:F,isLoading:c||f||g,hasError:l||p||_,isHeartbeatRunning:L.isPending,isConsolidationRunning:R.isPending,isHeartbeatLoading:c,isHeartbeatError:l,isConsolidationLoading:f,isConsolidationError:p,isRetrospectiveLoading:g,isRetrospectiveError:_,refetchHeartbeat:u,refetchConsolidation:m,refetchRetrospective:v,runHeartbeatNow:()=>{e&&L.mutate({path:{assistant_id:e}})},runConsolidationNow:()=>{e&&R.mutate({path:{assistant_id:e}})},toggleHeartbeat:t=>{e&&z.mutate({body:{enabled:t},path:{assistant_id:e}})},refetchAll:()=>{u(),m(),v(),C(),D(),j()}}}function Qt(e){return/^plugin:([^/]+)\//.exec(e??``)?.[1]??null}var $t=`Default (assistant's main model)`,en=`Custom call-site model`;function tn(e,t){return t?.[e]?.displayName??e}function nn(e,t){if(e==null)return;if(e.provider!=null||e.model!=null)return en;let n=e.profile?.trim();return n?`Override (${tn(n,t)})`:void 0}function rn({assistantId:e,pinnedProfile:t,defaultCallSite:n=`mainAgent`,fallbackLabel:r=$t,respectCallSiteOverride:i=!1}){let a=t==null,{data:o}=s({..._e({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),c=(0,U.useMemo)(()=>o?qe(o):{},[o]),{label:l}=Rt(e,n,{enabled:a}),u=a&&i?nn(o?.llm?.callSites?.[n],c):void 0,d=t==null?u??(l==null?r:`Default (${l})`):tn(t,c);return(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,K.jsx)(`span`,{className:`text-[var(--content-secondary)]`,children:`Model profile`}),(0,K.jsx)(`span`,{className:`min-w-0 text-right`,children:d})]})}function an(e,t,n){let r=te(e?.profiles??{},e?.profileOrder??[]);return[{value:null,label:`Default`},...re(r,[t],n).map(e=>{let t=ne(e,r,n);return{value:e.name,label:B(e),...t?{issue:t}:{},...t===`undispatchable`?{reason:z(e)}:{}}})]}function on(e,t){let{data:n}=s({..._e({path:{assistant_id:e}}),enabled:!!e,staleTime:6e4}),r=V();return(0,U.useMemo)(()=>an(n?.llm,t,{requireOwnProviderAndModel:r}),[n?.llm,t,r])}function sn({assistantId:e,value:t,onChange:n,disabled:r=!1,isSaving:i=!1,className:a,includeDefaultOption:o=!0,placeholder:s,variant:c,menuAlign:l}){return(0,K.jsx)(F,{value:t,onChange:n,onSelectNone:()=>n(null),options:on(e,t).filter(e=>o||e.value!=null).map(e=>({...e.issue===`undispatchable`?{icon:(0,K.jsx)(b,{className:`h-3.5 w-3.5 text-[var(--system-mid-strong)]`}),...e.reason?{tooltip:e.reason}:{}}:{},value:e.value,label:e.label})),disabled:r||i,placeholder:s,className:a,variant:c,menuAlign:l,"aria-label":`Model profile`})}function cn({children:e}){return(0,K.jsx)(f,{variant:`label-small-default`,as:`div`,className:`mb-2 uppercase tracking-wider text-[var(--content-tertiary)]`,children:e})}function $({label:e,value:t}){return(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-4 py-1`,children:[(0,K.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-secondary)]`,children:e}),(0,K.jsx)(`span`,{className:`min-w-0 text-right text-body-medium-lighter text-[var(--content-default)]`,children:t})]})}function ln({schedule:e,assistantId:n,isPast:r}){let{t:i}=R(`schedules`),a=o(),s=ae({path:{assistant_id:n}}),c=l({mutationFn:t=>Re(n,e.id,{inferenceProfile:t}),onMutate:async t=>{await a.cancelQueries({queryKey:s});let n=a.getQueryData(s)?.find(t=>t.id===e.id)?.inferenceProfile;return a.setQueryData(s,n=>n?.map(n=>n.id===e.id?{...n,inferenceProfile:t}:n)),{previousProfile:n}},onError:(n,r,o)=>{let c=o?.previousProfile;c!==void 0&&a.setQueryData(s,t=>t?.map(t=>t.id===e.id?{...t,inferenceProfile:c}:t)),t(n,{context:`schedule_update_inference_profile`}),N.error(i(`scheduleDetail.modelChangeFailed`))},onSettled:()=>a.invalidateQueries({queryKey:s})});return e.mode===`workflow`?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)($,{label:i(`scheduleDetail.modelProfile`),value:i(`scheduleDetail.notUsedForWorkflow`)}),(0,K.jsx)(`p`,{className:`pb-1 text-body-small-default text-[var(--content-tertiary)]`,children:i(`scheduleDetail.modelProfileWorkflowNote`)})]}):r?(0,K.jsx)(`div`,{className:`py-1 text-body-medium-lighter text-[var(--content-default)]`,children:(0,K.jsx)(rn,{assistantId:n,pinnedProfile:e.inferenceProfile})}):(0,K.jsx)($,{label:i(`scheduleDetail.modelProfile`),value:(0,K.jsx)(sn,{assistantId:n,value:e.inferenceProfile,onChange:t=>{t&&t!==e.inferenceProfile&&c.mutate(t)},includeDefaultOption:!1,placeholder:i(`scheduleDetail.chooseModel`),isSaving:c.isPending,variant:`ghost`,menuAlign:`end`,className:`-my-1 -mr-2`})})}function un({icon:e,value:t,label:n}){return(0,K.jsxs)(`div`,{className:`flex items-center gap-3 rounded-lg border border-[var(--border-base)] bg-[var(--surface-lift)] p-3`,children:[(0,K.jsx)(`span`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-md bg-[var(--surface-sunken)] text-[var(--content-secondary)]`,children:e}),(0,K.jsxs)(`div`,{className:`min-w-0`,children:[(0,K.jsx)(`div`,{className:`truncate text-body-large-default text-[var(--content-default)]`,children:t}),(0,K.jsx)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:n})]})]})}function dn({usage:e}){let{t}=R(`schedules`);return e.status===`loading`?(0,K.jsx)(`div`,{className:`grid grid-cols-2 gap-3 pt-2`,children:Array.from({length:2},(e,t)=>(0,K.jsx)(I,{className:`h-[60px] rounded-lg`},t))}):e.status===`error`?null:(0,K.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 pt-2`,children:[(0,K.jsx)(un,{icon:(0,K.jsx)(S,{className:`h-4 w-4`}),value:Y(e.summary.totalEstimatedCostUsd),label:t(`scheduleDetail.costLabel`,{days:7})}),(0,K.jsx)(un,{icon:(0,K.jsx)(T,{className:`h-4 w-4`}),value:xt(e.summary.runCount),label:t(`scheduleDetail.runsLabel`,{days:7})})]})}function fn(e){return e.exists&&e.archivedAt==null}function pn({run:e,index:t,isExpanded:n,disableDirectOpen:r,onOpenConversation:i,onToggleDetails:a}){let{t:o}=R(`schedules`),s=Tt(e),c=e.conversations??(s?[{id:s,title:null,exists:!0,archivedAt:null}]:[]),l=X(e.output),u=X(e.error),f=!r&&c.length===1&&fn(c[0])?c[0].id:null,p=!f&&(c.length>0||l||u),m=`schedule-run-details-${t}`,h=!!f||p,g=(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(Vt,{status:e.status}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`div`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:J(e.startedAt)}),(0,K.jsxs)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[yt(e.durationMs),` ·`,` `,Y(e.estimatedCostUsd)]}),e.status===`error`&&e.error?(0,K.jsxs)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--system-negative-strong)]`,children:[e.error.slice(0,120),e.error.length>120?`…`:``]}):null]}),h?(0,K.jsx)(y,{className:d(`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform`,p&&n?`rotate-90`:``)}):null]}),_=p&&n?(0,K.jsx)(`div`,{id:m,className:`px-2 pb-3`,children:(0,K.jsxs)(`div`,{className:`space-y-3 rounded-md border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3`,children:[c.length>0?(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:o(`scheduleDetail.conversations`)}),(0,K.jsx)(`div`,{className:`space-y-1`,children:c.map(e=>fn(e)?(0,K.jsx)(`button`,{type:`button`,onClick:()=>i(e.id),className:`block w-full truncate text-left text-body-small-default text-[var(--content-default)] hover:underline`,children:X(e.title)?e.title:o(`scheduleDetail.conversation`)},e.id):(0,K.jsxs)(`span`,{className:`block truncate text-body-small-default text-[var(--content-tertiary)] italic`,children:[X(e.title)?e.title:o(`scheduleDetail.conversation`),` `,e.exists?o(`scheduleDetail.conversationArchived`):o(`scheduleDetail.conversationUnavailable`)]},e.id))})]}):null,l?(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:o(`scheduleDetail.output`)}),(0,K.jsx)(`pre`,{className:`max-h-64 overflow-auto whitespace-pre-wrap break-words text-body-small-default font-mono text-[var(--content-default)]`,children:e.output})]}):null,u?(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:o(`scheduleDetail.error`)}),(0,K.jsx)(`pre`,{className:`max-h-64 overflow-auto whitespace-pre-wrap break-words text-body-small-default font-mono text-[var(--system-negative-strong)]`,children:e.error})]}):null]})}):null;return f?(0,K.jsx)(`div`,{children:(0,K.jsx)(`button`,{type:`button`,onClick:()=>i(f),"aria-label":o(`scheduleDetail.openRunConversationAria`,{time:J(e.startedAt)}),className:`flex w-full cursor-pointer items-center gap-3 px-2 py-3 text-left shadow-none transition-colors hover:bg-[var(--surface-hover)] focus:outline-none`,children:g})}):p?(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`button`,{type:`button`,onClick:()=>a(e.id),"aria-label":o(`scheduleDetail.toggleRunDetailsAria`,{time:J(e.startedAt)}),"aria-expanded":n,"aria-controls":m,className:`flex w-full cursor-pointer items-center gap-3 px-2 py-3 text-left shadow-none transition-colors hover:bg-[var(--surface-hover)] focus:outline-none`,children:g}),_]}):(0,K.jsx)(`div`,{className:`flex items-center gap-3 px-2 py-3`,children:g})}function mn({runs:e,isLoading:t,disableDirectOpen:n,onOpenConversation:r}){let{t:i}=R(`schedules`),[a,o]=(0,U.useState)(null);return t?(0,K.jsx)(`div`,{className:`flex items-center justify-center py-6`,children:(0,K.jsx)(C,{className:`h-5 w-5 animate-spin text-stone-400`})}):!e||e.length===0?(0,K.jsx)(`p`,{className:`py-2 text-body-medium-lighter text-[var(--content-tertiary)] italic`,children:i(`scheduleDetail.noRunsYet`)}):(0,K.jsx)(`div`,{className:`divide-y divide-[var(--border-base)]`,children:e.map((e,t)=>(0,K.jsx)(pn,{run:e,index:t,isExpanded:a===e.id,disableDirectOpen:n,onOpenConversation:r,onToggleDetails:e=>o(t=>t===e?null:e)},e.id))})}function hn({schedule:e,assistantId:n,usage:a,isPast:o=!1,isMobile:c,onClose:l,onDeleted:u}){let{t:f}=R(`schedules`),p=i(),{data:m,isLoading:h}=s({queryKey:be({path:{assistant_id:n,id:e.id}}),queryFn:()=>He(n,e.id),staleTime:1e4}),[g,v]=(0,U.useState)(!1),[y,b]=(0,U.useState)(!1),[x,S]=(0,U.useState)(!1),w=Qt(e.sourceKey),T=w!==null&&!e.enabled,E=async()=>{v(!0);try{await Ve(n,e.id)}catch(e){t(e,{context:`schedule_run_now`}),N.error(f(`scheduleDetail.runFailed`))}finally{v(!1)}},O=async()=>{S(!0);try{await Be(n,e.id),u()}catch(e){t(e,{context:`schedule_delete`}),N.error(f(`scheduleDetail.deleteFailed`)),S(!1),b(!1)}};return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`div`,{className:d(`flex h-full flex-col bg-[var(--surface-overlay)]`,!c&&`rounded-[var(--radius-xl)] border border-[var(--border-base)]`),children:[(0,K.jsx)(Me,{title:e.name,headerActions:w?void 0:(0,K.jsx)(r,{variant:`dangerOutline`,leftIcon:(0,K.jsx)(D,{className:`h-3.5 w-3.5`}),onClick:()=>b(!0),children:f(`scheduleDetail.delete`)}),closeLabel:f(`scheduleDetail.closeAria`),closeTooltip:f(`scheduleDetail.close`),onClose:l}),(0,K.jsxs)(`div`,{className:`flex-1 space-y-6 overflow-y-auto px-[var(--app-spacing-lg)] py-[var(--app-spacing-lg)]`,children:[e.description?(0,K.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-secondary)]`,children:e.description}):null,(0,K.jsxs)(`section`,{children:[(0,K.jsx)(cn,{children:f(`scheduleDetail.details`)}),(0,K.jsxs)(`div`,{className:`rounded-lg border border-[var(--border-base)] bg-[var(--surface-lift)] px-4 py-2`,children:[e.cadenceDescription?(0,K.jsx)($,{label:f(`scheduleDetail.cadence`),value:e.cadenceDescription}):null,(0,K.jsx)($,{label:f(`scheduleDetail.mode`),value:e.mode}),(0,K.jsx)(ln,{schedule:e,assistantId:n,isPast:o}),(0,K.jsx)($,{label:f(`scheduleDetail.status`),value:e.enabled?f(`scheduleDetail.enabled`):f(`scheduleDetail.disabled`)}),(0,K.jsx)($,{label:f(`scheduleDetail.nextRun`),value:J(e.nextRunAt)}),e.lastRunAt?(0,K.jsx)($,{label:f(`scheduleDetail.lastRun`),value:(0,K.jsxs)(`span`,{className:`flex items-center justify-end gap-2`,children:[(0,K.jsx)(Vt,{status:e.lastStatus}),J(e.lastRunAt)]})}):null]})]}),(0,K.jsx)(dn,{usage:a}),(0,K.jsxs)(`section`,{children:[(0,K.jsx)(cn,{children:f(`scheduleDetail.recentRuns`)}),(0,K.jsx)(mn,{runs:m?.runs,isLoading:h,disableDirectOpen:e.mode===`script`,onOpenConversation:e=>we(p,e)})]})]}),(0,K.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-t border-[var(--border-hover)] p-[var(--app-spacing-lg)]`,children:[w?(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:f(`scheduleDetail.managedByPlugin`,{plugin:w})}):(0,K.jsx)(`span`,{}),(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(r,{variant:`outlined`,leftIcon:(0,K.jsx)(_,{className:`h-3.5 w-3.5`}),onClick:()=>p(H.settings.usageForSchedule(e.id)),children:f(`scheduleDetail.viewUsage`)}),e.mode===`script`?(0,K.jsxs)(K.Fragment,{children:[T?(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:f(`scheduleDetail.turnOnToRun`)}):null,(0,K.jsx)(r,{variant:`primary`,leftIcon:g?(0,K.jsx)(C,{className:`h-3.5 w-3.5 animate-spin`}):void 0,onClick:()=>void E(),disabled:g||T,children:f(g?`scheduleDetail.running`:`scheduleDetail.runNow`)})]}):null]})]})]}),(0,K.jsx)(P,{open:y,title:f(`scheduleDetail.delete`),message:f(`scheduleDetail.deleteConfirmMessage`,{name:e.name}),confirmLabel:f(`scheduleDetail.confirmDelete`),cancelLabel:f(`scheduleDetail.cancel`),destructive:!0,isPending:x,onConfirm:()=>void O(),onCancel:()=>b(!1)})]})}function gn(e){if(e.status===`loading`)return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(I,{as:`span`,className:`h-4 w-12`}),(0,K.jsx)(I,{as:`span`,className:`h-4 w-10`})]});if(e.status===`error`)return(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`—`});let{summary:t}=e;return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:Y(t.totalEstimatedCostUsd)}),(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:xt(t.runCount)})]})}function _n({name:e,badge:t,metaParts:n,usage:r,enabled:i,selected:a,onClick:o,onToggle:s,toggleAriaLabel:c}){return(0,K.jsxs)(`div`,{className:`flex items-center gap-3 rounded-md px-2 py-3 transition-colors [&+&]:border-t [&+&]:border-[var(--border-base)] ${a?`bg-[var(--surface-active)]`:`hover:bg-[var(--surface-hover)]`}`,children:[s?(0,K.jsx)(ee,{checked:i,onChange:s,"aria-label":c}):null,(0,K.jsxs)(`button`,{type:`button`,onClick:o,className:`flex min-w-0 flex-1 cursor-pointer items-center gap-4 text-left focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:[(0,K.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,K.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e}),t]}),n.length>0?(0,K.jsx)(`span`,{className:`flex min-w-0 items-center gap-2 text-label-small-default text-[var(--content-tertiary)]`,children:n.map((e,t)=>(0,K.jsxs)(U.Fragment,{children:[t>0?(0,K.jsx)(`span`,{className:`h-[3px] w-[3px] shrink-0 rounded-full bg-[var(--content-tertiary)]`}):null,(0,K.jsx)(`span`,{className:`truncate`,children:e})]},t))}):null]}),(0,K.jsxs)(`div`,{className:`flex shrink-0 items-center gap-4`,children:[gn(r),(0,K.jsx)(y,{className:`h-4 w-4 text-[var(--content-tertiary)]`})]})]})]})}function vn({schedule:e,usage:t,selected:n,onClick:r,onToggle:i}){let{t:a}=R(`schedules`),o=e.isOneShot?``:e.cadenceDescription.trim(),s=e.lastRunAt??e.nextRunAt,c=[o,s?J(s):``].filter(Boolean),l=Qt(e.sourceKey);return(0,K.jsx)(_n,{name:e.name,badge:l?(0,K.jsx)(k,{tone:`info`,children:l}):void 0,metaParts:c,usage:t,enabled:e.enabled,selected:n,onClick:r,onToggle:i,toggleAriaLabel:i?a(`scheduleRow.toggleAria`,{name:e.name}):void 0})}function yn({recurring:e,oneTime:t,pastOneTime:n,usageForSchedule:i,isLoading:a,isError:o,refetch:s,onToggle:c,onSelectSchedule:l,selectedScheduleId:u,onStartNewChat:d,onCreateSchedule:f,pastOpen:p,onPastOpenChange:m,onRebaseProfiles:_,defaultProfileLabel:v,systemTasksSlot:b}){let{t:x}=R(`schedules`),S=e=>(0,K.jsx)(vn,{schedule:e,usage:i(e.id),selected:e.id===u,onClick:()=>l(e.id),onToggle:t=>c(e.id,t)},e.id),C=e=>(0,K.jsx)(vn,{schedule:e,usage:i(e.id),selected:e.id===u,onClick:()=>l(e.id)},e.id),w=n.length>0?(0,K.jsx)(h.Root,{type:`single`,collapsible:!0,className:`mt-3`,value:p?`past`:``,onValueChange:e=>m(e===`past`),children:(0,K.jsxs)(h.Item,{value:`past`,children:[(0,K.jsxs)(h.Trigger,{className:`group gap-[var(--app-spacing-xs)] px-2 text-label-small-default text-[var(--content-tertiary)]`,children:[(0,K.jsx)(y,{size:14,"aria-hidden":!0,className:`shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,K.jsx)(`span`,{children:x(`schedulesPanel.pastToggle`,{count:n.length})})]}),(0,K.jsx)(h.Content,{children:(0,K.jsx)(`div`,{className:`pt-1`,children:n.map(C)})})]})}):null;return(0,K.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[a?(0,K.jsx)(`div`,{className:`space-y-3`,children:Array.from({length:2},(e,t)=>(0,K.jsx)(I,{className:`h-12 rounded-md`},t))}):o&&e.length===0?(0,K.jsx)(O,{tone:`error`,actions:(0,K.jsx)(`button`,{type:`button`,onClick:s,className:`cursor-pointer underline hover:no-underline`,children:x(`schedulesPanel.retry`)}),children:x(`schedulesPanel.loadFailed`)}):e.length===0&&t.length===0&&n.length===0?(0,K.jsx)(Je,{icon:g,title:x(`schedulesPanel.emptyTitle`),description:x(`schedulesPanel.emptyDescription`),actions:(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(r,{variant:`primary`,size:`regular`,onClick:d,children:x(`schedulesPanel.newConversation`)}),(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:x(`schedulesPanel.emptyActionsSeparator`)}),(0,K.jsx)(r,{variant:`outlined`,size:`regular`,onClick:f,children:x(`schedulesPanel.createSchedule`)})]})}):(0,K.jsxs)(`div`,{children:[_&&v?(0,K.jsx)(`div`,{className:`mb-1 flex min-w-0 justify-end`,children:(0,K.jsx)(r,{variant:`outlined`,size:`compact`,onClick:_,className:`max-w-full truncate`,children:x(`schedulesPanel.useProfileForAll`,{profile:v})})}):null,e.map(S),t.length>0?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`p`,{className:`mt-3 px-2 text-label-small-default text-[var(--content-tertiary)]`,children:x(`schedulesPanel.oneTimeHeading`)}),t.map(C)]}):null,w]}),b?(0,K.jsx)(`div`,{className:`mt-[var(--app-spacing-lg)]`,children:b}):null]})}function bn({runs:e,isLoading:t,emptyMessage:n=`No runs yet.`,hasMore:a=!1,isLoadingMore:o=!1,onLoadMore:s}){let c=i(),[l,u]=(0,U.useState)(null),d=a&&s?(0,K.jsx)(`div`,{className:`flex justify-center pt-3`,children:(0,K.jsx)(r,{variant:`outlined`,size:`compact`,onClick:s,disabled:o,leftIcon:o?(0,K.jsx)(C,{className:`h-3.5 w-3.5 animate-spin`}):void 0,children:o?`Loading…`:`Load more`})}):null;return(0,K.jsx)(Pe,{title:`Recent runs`,children:t?(0,K.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,K.jsx)(C,{className:`h-5 w-5 animate-spin text-stone-400`})}):!e||e.length===0?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`p`,{className:`py-4 text-center text-body-medium-lighter text-[var(--content-tertiary)] italic`,children:n}),d]}):(0,K.jsxs)(`div`,{className:`divide-y divide-[var(--border-base)]`,children:[e.map((e,t)=>{let n=Tt(e),r=X(e.output),i=X(e.error),a=e.status===`skipped`||e.status===`missed`,o=!n&&!a&&(r||i),s=l===e.id,d=`schedule-run-details-${t}`;return(0,K.jsxs)(`div`,{children:[(0,K.jsx)(p,{label:(0,K.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-3`,children:[(0,K.jsx)(Vt,{status:e.status}),(0,K.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(`span`,{className:`block truncate text-body-medium-lighter text-[var(--content-default)]`,children:X(e.title)?e.title:J(e.startedAt)}),(0,K.jsxs)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[X(e.title)?`${J(e.startedAt)} · `:``,a?(0,K.jsx)(K.Fragment,{children:r?e.output:e.status===`missed`?`Missed`:`Skipped`}):(0,K.jsxs)(K.Fragment,{children:[yt(e.durationMs),` ·`,` `,Y(e.estimatedCostUsd)]}),e.status===`error`&&e.error&&(0,K.jsxs)(`span`,{className:`ml-2 text-[var(--system-negative-strong)]`,children:[e.error.slice(0,80),e.error.length>80?`…`:``]})]})]}),n||o?(0,K.jsx)(y,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform ${s?`rotate-90`:``}`}):null]}),onSelect:n?()=>we(c,n):o?()=>u(s?null:e.id):void 0,"aria-label":`Run at ${J(e.startedAt)}`,"aria-expanded":o?s:void 0,"aria-controls":o?d:void 0,className:`h-auto py-2.5 gap-3 -mx-2 px-2`}),o&&s?(0,K.jsx)(`div`,{id:d,className:`px-2 pb-3`,children:(0,K.jsxs)(`div`,{className:`space-y-3 rounded-md border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3`,children:[r?(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:`Output`}),(0,K.jsx)(`pre`,{className:`max-h-64 overflow-auto whitespace-pre-wrap break-words text-body-small-default font-mono text-[var(--content-default)]`,children:e.output})]}):null,i?(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-secondary)]`,children:`Error`}),(0,K.jsx)(`pre`,{className:`max-h-64 overflow-auto whitespace-pre-wrap break-words text-body-small-default font-mono text-[var(--system-negative-strong)]`,children:e.error})]}):null]})}):null]},e.id)}),d]})})}var xn={heartbeat:`heartbeatAgent`,consolidation:`memoryV2Consolidation`,retrospective:`memoryRetrospective`};function Sn({children:e}){return(0,K.jsx)(f,{variant:`label-small-default`,as:`div`,className:`mb-2 uppercase tracking-wider text-[var(--content-tertiary)]`,children:e})}function Cn({kind:e,assistantId:t,systemTasks:n,canOpenMemorySettings:a,isMobile:o,onClose:s}){let{t:l}=R(`schedules`),u=i(),{heartbeatConfig:p,consolidationConfig:m,retrospectiveConfig:h}=n,g,_,v,y,b,x,S;e===`heartbeat`?(g=l(`systemTaskDetail.nameHeartbeat`),_=p?kt(p):``,v=p?.enabled??!1,y=p?.nextRunAt??null,b=p?.lastRunAt??null,x=n.isHeartbeatRunning,S=n.runHeartbeatNow):e===`consolidation`?(g=l(`systemTaskDetail.nameConsolidation`),_=m?At(m):``,v=m?.enabled??!1,y=m?.nextRunAt??null,b=m?.lastRunAt??null,x=n.isConsolidationRunning,S=n.runConsolidationNow):(g=l(`systemTaskDetail.nameRetrospective`),_=jt,v=h?.enabled??!1,y=h?.nextRunAt??null,b=h?.lastRunAt??null,x=!1,S=void 0);let T=e!==`heartbeat`,D=e===`retrospective`,k=T&&!v,A=x||k,j=l(T?v?`systemTaskDetail.statusManagedOn`:`systemTaskDetail.statusPaused`:v?`scheduleDetail.enabled`:`scheduleDetail.disabled`),M=D&&h?.available===!0,N=l(M?`systemTaskDetail.pausedRetrospectiveSwitchedOff`:D?`systemTaskDetail.pausedRetrospective`:`systemTaskDetail.pausedConsolidation`),P=T&&v&&a,F={path:{assistant_id:t},query:{limit:25}},I=e===`heartbeat`?ce(F):e===`consolidation`?pe(F):ve(F),{data:L,isLoading:z,fetchNextPage:te,hasNextPage:ne,isFetchingNextPage:re}=c({queryKey:I.queryKey,queryFn:I.queryFn,initialPageParam:{path:F.path,query:{}},getNextPageParam:e=>e.nextCursor??void 0,staleTime:1e4}),B=Ct(L?.pages.map(t=>({runs:t.runs.filter(e=>!Et(e)).map(t=>Z(t,e))}))),V=B?.find(e=>Dt(e)&&e.status!==`running`),ie=b??V?.finishedAt??V?.startedAt??null;return(0,K.jsxs)(`div`,{className:d(`flex h-full flex-col bg-[var(--surface-overlay)]`,!o&&`rounded-[var(--radius-xl)] border border-[var(--border-base)]`),children:[(0,K.jsx)(Me,{titleNode:(0,K.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,K.jsx)(f,{variant:`title-medium`,title:g,className:`truncate py-0.5 leading-snug text-[var(--content-default)]`,children:g}),_?(0,K.jsx)(f,{variant:`body-small-default`,as:`p`,className:`truncate text-[var(--content-tertiary)]`,children:_}):null]}),closeLabel:l(`scheduleDetail.closeAria`),closeTooltip:l(`scheduleDetail.close`),onClose:s}),(0,K.jsxs)(`div`,{className:`flex-1 space-y-6 overflow-y-auto px-[var(--app-spacing-lg)] py-[var(--app-spacing-lg)]`,children:[(0,K.jsxs)(`section`,{children:[(0,K.jsx)(Sn,{children:l(`scheduleDetail.details`)}),(0,K.jsxs)(`div`,{className:`space-y-2 rounded-lg border border-[var(--border-base)] bg-[var(--surface-lift)] px-4 py-3 text-body-medium-lighter`,children:[(0,K.jsx)(rn,{assistantId:t,defaultCallSite:xn[e],fallbackLabel:l(`systemTaskDetail.fallbackModelProfile`),respectCallSiteOverride:!0}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,K.jsx)(`span`,{className:`text-[var(--content-secondary)]`,children:l(`scheduleDetail.status`)}),(0,K.jsxs)(`span`,{className:`flex items-center gap-2 text-[var(--content-default)]`,children:[(0,K.jsx)(`span`,{children:j}),T?null:(0,K.jsx)(ee,{checked:v,onChange:n.toggleHeartbeat,"aria-label":l(`scheduleDetail.toggleAria`,{name:g})})]})]}),D?null:(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,K.jsx)(`span`,{className:`text-[var(--content-secondary)]`,children:l(`scheduleDetail.nextRun`)}),(0,K.jsx)(`span`,{className:`text-[var(--content-default)]`,children:J(y)})]}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,K.jsx)(`span`,{className:`text-[var(--content-secondary)]`,children:l(`scheduleDetail.lastRun`)}),(0,K.jsx)(`span`,{className:`text-[var(--content-default)]`,children:J(ie)})]})]}),k?(0,K.jsx)(O,{tone:`warning`,className:`mt-4`,actions:a?(0,K.jsx)(r,{variant:`outlined`,size:`compact`,onClick:()=>u(`${H.settings.developer}?tab=memory`),children:l(M?`systemTaskDetail.openMemorySettings`:`systemTaskDetail.turnOnMemory`)}):void 0,children:N}):null]}),(0,K.jsx)(bn,{runs:B,isLoading:z,hasMore:ne,isLoadingMore:re,onLoadMore:()=>void te()})]}),P||S?(0,K.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end gap-2 border-t border-[var(--border-hover)] p-[var(--app-spacing-lg)]`,children:[P?(0,K.jsx)(r,{variant:`outlined`,leftIcon:(0,K.jsx)(E,{className:`h-3.5 w-3.5`}),onClick:()=>u(`${H.settings.developer}?tab=memory`),children:l(`systemTaskDetail.memorySettings`)}):null,S?(0,K.jsx)(r,{variant:`primary`,leftIcon:x?(0,K.jsx)(C,{className:`h-3.5 w-3.5 animate-spin`}):(0,K.jsx)(w,{className:`h-3.5 w-3.5`}),onClick:S,disabled:A,children:l(x?`scheduleDetail.running`:`scheduleDetail.runNow`)}):null]}):null]})}function wn(e){let n=ke(),[r]=(0,U.useState)(()=>Date.now()),{data:i,isLoading:a,isError:o,refetch:c}=s(Ne(e)),{data:l,isLoading:u,isError:d}=s(Ft(e,n,!0)),{recurring:f,oneTime:p,pastOneTime:m}=(0,U.useMemo)(()=>{let e=Pt(i??[],r);return{recurring:e.recurring,oneTime:e.upcomingOneTime,pastOneTime:e.pastOneTime}},[r,i]),h=(0,U.useMemo)(()=>new Map((l??[]).map(e=>[e.scheduleId,e])),[l]);return{recurring:f,oneTime:p,pastOneTime:m,usageForSchedule:(0,U.useCallback)(e=>u?{status:`loading`}:d?{status:`error`}:{status:`ready`,summary:h.get(e)??It(e)},[d,u,h]),handleToggle:(0,U.useCallback)(async(n,r)=>{if(e)try{await Ue(e,n,r),c()}catch(e){t(e,{context:`schedule_toggle`}),N.error(L(`schedules:scheduleDetail.toggleFailed`))}},[e,c]),isLoading:a,isError:o,refetch:(0,U.useCallback)(()=>{c()},[c])}}function Tn(){let e=i(),{scheduleId:t}=a(),n=je(),r=Ee(),o=ke(),s=wn(n),c=Zt(n,o),l=Ae(`memoryOptOut`),u=Oe.use.settingsDeveloperNav(),d=l&&u===!0,[f,p]=(0,U.useState)(!1),m=t??null,[h,g]=(0,U.useState)(null),[_,v]=(0,U.useState)(!1),y=(0,U.useCallback)(t=>{e(t?H.schedules.detail(t):H.schedules.root)},[e]),b=m?s.recurring.find(e=>e.id===m)??s.oneTime.find(e=>e.id===m)??s.pastOneTime.find(e=>e.id===m)??null:null;(0,U.useEffect)(()=>{m&&!s.isLoading&&!s.isError&&!b&&y(null)},[m,b,s.isLoading,s.isError,y]);let x=h===`heartbeat`?c.heartbeatConfig!=null:h===`consolidation`?c.consolidationConfig?.available===!0:h===`retrospective`?c.retrospectiveConfig?.available===!0:!1;(0,U.useEffect)(()=>{h&&!c.isLoading&&!x&&g(null)},[h,x,c.isLoading]);let S=(0,U.useCallback)(e=>{g(null),y(e)},[y]),C=(0,U.useCallback)(e=>{m&&y(null),g(e)},[y,m]),w=(0,U.useCallback)(()=>{Te(e)},[e]),T=zt(n,(0,U.useMemo)(()=>[...s.recurring,...s.oneTime,...s.pastOneTime],[s.recurring,s.oneTime,s.pastOneTime]),s.refetch),E=(b?(0,K.jsx)(hn,{schedule:b,assistantId:n,usage:s.usageForSchedule(b.id),isPast:s.pastOneTime.some(e=>e.id===b.id),isMobile:r,onClose:()=>y(null),onDeleted:()=>{y(null),s.refetch()}}):null)??(h&&x?(0,K.jsx)(Cn,{kind:h,assistantId:n,systemTasks:c,canOpenMemorySettings:d,isMobile:r,onClose:()=>g(null)}):null),D=(0,K.jsx)(yn,{recurring:s.recurring,oneTime:s.oneTime,pastOneTime:s.pastOneTime,usageForSchedule:s.usageForSchedule,isLoading:s.isLoading,isError:s.isError,refetch:s.refetch,onToggle:s.handleToggle,onSelectSchedule:S,selectedScheduleId:m,onStartNewChat:w,onCreateSchedule:()=>p(!0),pastOpen:_,onPastOpenChange:v,onRebaseProfiles:T.canRebase?T.requestRebase:void 0,defaultProfileLabel:T.defaultProfileLabel??void 0,systemTasksSlot:(0,K.jsx)(Wt,{heartbeatConfig:c.heartbeatConfig,consolidationConfig:c.consolidationConfig,retrospectiveConfig:c.retrospectiveConfig,heartbeatUsage:c.heartbeatUsage,consolidationUsage:c.consolidationUsage,retrospectiveUsage:c.retrospectiveUsage,isLoading:c.isLoading,hasError:c.hasError,onRetry:c.refetchAll,onSelectHeartbeat:()=>C(`heartbeat`),onSelectConsolidation:()=>C(`consolidation`),onSelectRetrospective:()=>C(`retrospective`)})}),O=(0,K.jsx)(Bt,{...T.dialogProps});return E&&r?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(Fe,{children:E}),O]}):(0,K.jsxs)(K.Fragment,{children:[E&&!r?(0,K.jsx)(Ie,{storageKey:`schedulesDetailDrawerWidth`,detailKey:m??h??void 0,section:D,detail:E}):D,(0,K.jsx)(ut,{isOpen:f,assistantId:n,onClose:()=>p(!1),onCreated:()=>{p(!1),s.refetch()}}),O]})}export{Tn as SchedulesPage};
@@ -1 +0,0 @@
1
- var e={chooseProfilePlaceholder:`Elegir perfil…`,description:`El perfil que tu asistente consulta para una segunda opinión cuando quiere revisar un plan o su propio trabajo.`,title:`Asesor`},t={defaultEntryMeta:`Predeterminado`},n={successToast:`¡Pago recibido! Tu saldo de créditos se actualizará en breve.`,topUpCancelToast:`Se canceló el pago. No se añadieron créditos.`,upgradeCancelToast:`Mejora cancelada. No hay cambios en tu plan.`},r={affectedSummary:`{count, plural, one {# acción usa actualmente {profile}} other {# acciones usan actualmente {profile}}}`,applyTo:`{count, plural, one {Aplicar a # acción} other {Aplicar a # acciones}}`,cancel:`Cancelar`,changeToLabel:`Cambiar a`,chooseActions:`Elige qué acciones actualizar.`,clearAll:`Borrar todo`,currentlyUsingLabel:`Usando actualmente`,intro:`Actualiza las acciones que actualmente usan un perfil. El resultado se guarda como anulaciones individuales.`,noticeBody:`Cambia las acciones seleccionadas que usan {sourceLabel} hoy. No crea una regla continua entre perfiles.`,noticeTitle:`Esto ocurre una sola vez.`,selectAll:`Seleccionar todo`,successToast:`Se actualizaron {count, plural, one {# acción} other {# acciones}} a "{targetLabel}".`,targetPlaceholder:`Selecciona un perfil…`,title:`Cambiar anulaciones de acciones`,updateFailedToast:`No se pudieron actualizar las anulaciones. Inténtalo de nuevo.`,viaDefault:`Predeterminado`,viaOverride:`Anulación`,willChange:`{count, plural, one {Cambiará # acción} other {Cambiarán # acciones}}`},i={defaultProfileSuffix:`· Predeterminado: {label}`,modelLabel:`Modelo`,overrideAriaLabel:`Anular {displayName}`,pickModelError:`Elige un modelo`,providerLabel:`Proveedor`,unavailableOption:`{name} (no disponible)`},a={completeFailed:`No se pudo completar el inicio de sesión. Inténtalo de nuevo.`,completeSignIn:`Completar inicio de sesión`,completingSignIn:`Completando inicio de sesión...`,connected:`Suscripción a ChatGPT conectada correctamente.`,intro:`Conecta tu suscripción a ChatGPT para usar modelos de OpenAI sin una clave de API.`,invalidUrl:`URL no válida. Pega la URL completa de la barra de direcciones.`,missingCode:`A la URL le falta el código de autorización. Asegúrate de haber copiado la URL completa.`,missingState:`A la URL le falta el parámetro state. Asegúrate de haber copiado la URL completa.`,pasteUrlError:`Pega la URL de la página de error.`,signInButton:`Iniciar sesión con ChatGPT`,startFailed:`No se pudo iniciar el inicio de sesión con ChatGPT. Inténtalo de nuevo.`,startingSignIn:`Iniciando sesión...`,step1Idle:`1. Haz clic en "Iniciar sesión con ChatGPT" abajo para abrir una ventana emergente`,step1PasteUrl:`1. Haz clic en "Iniciar sesión con ChatGPT" para abrir una ventana emergente`,step2:`2. Inicia sesión; llegarás a una página de error, y eso es normal`,step3:`3. Copia la URL completa de la barra de direcciones de esa página y pégala abajo`,tryAgain:`Intentar de nuevo`,urlPlaceholder:`Pega aquí la URL de devolución de llamada...`},o={body:`Reclama un crédito único de {amount} y lo añadiremos directamente al saldo de tu cuenta. No se requiere ningún pago.`,claim:`Reclamar {amount} en créditos`,decline:`No, gracias`,errorToast:`No se pudieron añadir los créditos. Inténtalo de nuevo.`,grantedToast:`Se añadieron {amount} en créditos a tu cuenta.`,title:`Aquí tienes {amount} de nuestra parte`,unavailableToast:`Esta oferta ya no está disponible.`},s={addressLabel:`Dirección`,checkingSubscription:`Comprobando suscripción…`,confirm:`Confirmar`,create:`Crear`,createEmailFailedFallback:`No se pudo crear la dirección de correo.`,creating:`Creando…`,domainLabel:`Dominio`,domainRegisteredToast:`Dominio {domain} registrado.`,domainReleaseFailedToast:`No se pudo liberar el dominio.`,domainReleasedToast:`Dominio liberado.`,emailAddressLabel:`Dirección de correo`,emailCreatedToast:`Dirección de correo creada.`,emailRemoveFailedToast:`No se pudo eliminar la dirección de correo.`,emailRemovedToast:`Dirección de correo eliminada.`,emailUsernameAriaLabel:`Nombre de usuario del correo`,emailUsernamePlaceholder:`hola`,enterSubdomainError:`Introduce un subdominio.`,enterUsernameError:`Introduce un nombre de usuario de correo.`,register:`Registrar`,registerDomainFailedFallback:`No se pudo registrar el dominio.`,registering:`Registrando…`,releaseConfirm:`Liberar`,releaseDomainAriaLabel:`Liberar dominio`,releaseDomainConfirmMessage:`¿Seguro que quieres liberar <code>{domain}</code>? El subdominio quedará disponible para que otros lo reclamen.`,releaseDomainTitle:`Liberar dominio`,removeAddressFirstToast:`Elimina primero la dirección de correo.`,removeConfirm:`Eliminar`,removeEmailAriaLabel:`Eliminar dirección de correo`,removeEmailConfirmMessage:`¿Seguro que quieres eliminar <code>{address}</code>? Tu asistente ya no podrá enviar ni recibir correo en esta dirección.`,removeEmailTitle:`Eliminar dirección de correo`,retry:`Reintentar`,setSubdomainConfirmMessage:`<code>{subdomain}</code> también será el identificador público de tu asistente. No podrás cambiarlo una vez establecido.`,setSubdomainTitle:`Establecer subdominio`,subdomainExamplePlaceholder:`mi-asistente`,subdomainFallback:`subdominio`,subdomainHint:`Cada asistente tiene su propio subdominio. Solo letras minúsculas, números y guiones.`,subdomainLabel:`Subdominio`,subscriptionWarningBody:`No pudimos contactar con el servicio de facturación. El formulario siguiente asume que el correo gestionado está habilitado para tu organización. Si no lo está, registrar un dominio fallará.`,subscriptionWarningTitle:`No se pudo verificar el estado de la suscripción`,upgradeButton:`Mejorar plan`,upgradeNoticeBody:`Mejora a un plan que incluya una dirección de correo para tu asistente. No hace falta configurar un proveedor.`,upgradeNoticeTitle:`Dale a tu asistente su propia dirección de correo`,usageSummary:`{sent} / {limit} enviados hoy · {received} recibidos`},c={apiKeyConfigured:`Clave API de {providerName} configurada. Para reconfigurar, ejecuta la habilidad <code>{setupSkill}</code>.`,connecting:`Conectando con la plataforma Vellum…`,openProvider:`Abrir {providerName}`,platformLoginNotice:`Inicia sesión en la plataforma Vellum para administrar la configuración de correo.`,providerLabel:`Proveedor`,saveSuccessToast:`Configuración de correo guardada.`,setupInstructions:`Configura {providerName} mediante la CLI del asistente: pídele al asistente que ejecute la habilidad <code>{setupSkill}</code>. Te guiará para guardar la clave API, detectar el dominio y (opcionalmente) configurar un webhook entrante.`,subtitle:`Configura cómo tu asistente envía y recibe correo`,title:`Correo`},l={activeModelLabel:`Modelo activo`,apiKeyLabel:`Clave de API`,configUpdateFailedToast:`No se pudo actualizar la configuración del asistente. Inténtalo de nuevo.`,geminiApiKeyPlaceholder:`Introduce tu clave de API de Gemini`,localPreferencesFailedToast:`Guardado, pero no se pudieron escribir las preferencias locales.`,modelAriaLabel:`Modelo de generación de imágenes`,modelUpdateFailedToast:`No se pudo actualizar el modelo de generación de imágenes. Inténtalo de nuevo.`,openaiApiKeyPlaceholder:`Introduce tu clave de API de OpenAI`,providerAriaLabel:`Proveedor de generación de imágenes`,providerLabel:`Proveedor`,savedToast:`Configuración de generación de imágenes guardada.`,subtitle:`Configura qué modelo usa tu asistente para generar imágenes`,title:`Generación de imágenes`,vellumNote:`La generación de imágenes se ejecuta a través de tu cuenta de Vellum.`},u={defaultProviderUnavailable:`Tu proveedor predeterminado no está disponible.`,manage:`Administrar`,overridesTitle:`Anulaciones`,subtitle:`Los perfiles eligen qué modelo responde. Los proveedores dan acceso a él`,title:`Modelo de lenguaje`},d={actionOverridesTitle:`Anulaciones de acciones`,cancel:`Cancelar`,clauseActionOverrides:`lo usa {count, plural, one {# anulación de acción} other {# anulaciones de acciones}}`,clauseDefaultProfile:`es tu perfil predeterminado`,clauseRunsBoth:`ejecuta {schedules, plural, one {# programación} other {# programaciones}} y {reminders, plural, one {# recordatorio} other {# recordatorios}}`,clauseRunsReminders:`ejecuta {count, plural, one {# recordatorio} other {# recordatorios}}`,clauseRunsSchedules:`ejecuta {count, plural, one {# programación} other {# programaciones}}`,disabledTargetTooltip:`Habilita este perfil para mover programaciones a él.`,moreSchedules:`y {count} más`,reassignAndDelete:`Reasignar y eliminar`,replacementLabel:`Perfil de reemplazo`,replacementPlaceholder:`Selecciona un reemplazo…`,saving:`Guardando…`,scheduleLookupFailed:`No pudimos comprobar qué programaciones usan este perfil. Cualquier programación fijada a él también se moverá al reemplazo.`,schedulesTitle:`Programaciones`,summaryNoReferences:`Elige un perfil de reemplazo para "{display}". Todo lo que aún apunte a él se moverá allí antes de eliminarlo.`,summaryOneClause:`"{display}" {clause1}. Elige un reemplazo abajo y esas referencias se moverán a él; después se eliminará "{display}".`,summaryThreeClauses:`"{display}" {clause1}, {clause2} y {clause3}. Elige un reemplazo abajo y esas referencias se moverán a él; después se eliminará "{display}".`,summaryTwoClauses:`"{display}" {clause1} y {clause2}. Elige un reemplazo abajo y esas referencias se moverán a él; después se eliminará "{display}".`,title:`Elige un perfil de reemplazo`},f={emptySearch:`Ninguna acción coincide con tu búsqueda.`},p={advisorSection:`Asesor`,bulkChange:`Cambio masivo`,bulkChangeNoCandidatesTitle:`Ninguna acción usa actualmente un perfil`,bulkChangeUnsavedTitle:`Guarda o restablece tus cambios primero`,customProfileOption:`Personalizado`,description:`Personaliza qué perfil de modelo deben usar acciones concretas. Usa tu perfil predeterminado si no hay anulación.`,loadErrorHint:`Asegúrate de que tu asistente esté en ejecución`,loadErrorTitle:`No se pudieron cargar las acciones`,otherDomain:`Otros`,overridesResetToast:`Anulaciones restablecidas.`,overridesSavedToast:`Anulaciones guardadas.`,resetConfirmMessage:`Todas las anulaciones de acciones se restablecerán y seguirán su valor predeterminado. Esto no se puede deshacer.`,resetFailedToast:`No se pudieron restablecer las anulaciones. Inténtalo de nuevo.`,resetToDefaults:`Restablecer valores predeterminados`,retry:`Reintentar`,save:`Guardar`,saveFailedToast:`No se pudieron guardar las anulaciones. Inténtalo de nuevo.`,searchPlaceholder:`Buscar acciones…`,title:`Anulaciones de acciones`},m={contextWindowLabel:`Ventana de contexto`,defaultValueLabel:`Predeterminado · {value}`,effortLabel:`Esfuerzo`,effortSegmentDefault:`predeterminado`,enableExtendedThinkingLabel:`Habilitar pensamiento extendido`,maxOutputTokensLabel:`Máximo de tokens de salida`,reset:`Restablecer`,snapshotsHint:`Los campos que dejes en su valor predeterminado se guardan con los valores mostrados y no cambiarán si los valores predeterminados del asistente cambian más adelante.`,speedLabel:`Velocidad`,streamThinkingTokensLabel:`Transmitir tokens de pensamiento`,temperatureLabel:`Temperatura`,thinkingLevelInheritHint:`(predeterminado = heredar)`,thinkingLevelLabel:`Nivel de pensamiento`,tokensAriaLabel:`{label} (tokens)`,topPLabel:`Top P`,verbosityLabel:`Verbosidad`},h={createProfile:`Crear perfil`,defaultTitle:`Perfil`,delete:`Eliminar`,deleting:`Eliminando…`,managedTag:`Administrado por Vellum`,newProfileTitle:`Perfil nuevo`,save:`Guardar`,saveAsNew:`Guardar como nuevo`,saveChanges:`Guardar cambios`,saving:`Guardando…`},g={subscriptionSteeringHint:`Tu suscripción a ChatGPT está disponible como el proveedor ChatGPT.`},_={activeLabel:`Activo`,addApiKey:`Añadir clave API`,advanced:`Avanzado`,createNewProvider:`+ Crear proveedor nuevo`,descriptionLabel:`Descripción <optional>(opcional)</optional>`,descriptionPlaceholder:`Describe cuándo usar este perfil`,displayNameLabel:`Nombre para mostrar`,displayNamePlaceholder:`p. ej., Rápido y económico`,keyLabel:`Clave`,keyPlaceholder:`p. ej., rapido-economico`,nameLabel:`Nombre`,newProviderNote:`La nueva conexión de proveedor aparecerá en la sección Proveedores.`,providerLabel:`Proveedor`,selectProviderPlaceholder:`Selecciona un proveedor…`,setUp:`Configurar`},v={cancel:`Cancelar`,close:`Cerrar`,editProfileTitle:`Editar perfil`,newProfileTitle:`Nuevo perfil`,platformTag:`Plataforma`,profileFallbackTitle:`Perfil`,save:`Guardar`,saveAsNew:`Guardar como nuevo`,saving:`Guardando…`},y={chooseFromList:`Elegir de la lista`,connectionNotFound:`Este perfil hacía referencia a una credencial que ya no existe. Al guardar, se restablecerá para usar la clave disponible del proveedor.`,customModelAriaLabel:`ID de modelo personalizado`,customModelPlaceholder:`proveedor/id-modelo`,enterCustomModelIdHint:`Introduce el identificador exacto del modelo que espera tu proveedor. Se envía a la conexión tal cual.`,enterCustomModelIdOption:`Introduce un ID de modelo personalizado…`,modelAriaLabel:`Modelo`,modelEmptyConfigureConnectionHint:`No hay modelos disponibles. Configura modelos en la conexión del proveedor primero.`,modelEmptyConfigureConnectionPlaceholder:`Configura modelos en la conexión`,modelEmptyNoProviderPlaceholder:`Selecciona un proveedor primero`,modelEmptyUnknownHint:`No hay modelos disponibles para este proveedor en esta versión de la app. Actualiza la app o introduce un ID de modelo personalizado.`,modelEmptyUnknownPlaceholder:`No hay modelos disponibles`,modelLabel:`Modelo`,noProviderConnectionsHint:`No hay conexiones de proveedor. Abre Proveedores para añadir una.`,providerLabel:`Proveedor`,providerNotFoundSuffix:`(no encontrado)`,selectModelError:`Selecciona un modelo.`,selectModelPlaceholder:`Selecciona un modelo`,selectProviderPlaceholder:`Selecciona un proveedor…`},b={actionsAriaLabel:`Acciones para {displayName}`,defaultTag:`Predeterminado`,delete:`Eliminar`,disable:`Desactivar`,disabledTag:`Desactivado`,edit:`Editar`,enable:`Activar`,makeDefault:`Hacer predeterminado`,managedByVellum:`Gestionado por Vellum`,openProfileAriaLabel:`Abrir perfil {displayName}`,providerUnavailableDefault:`El proveedor de este perfil no está disponible.`,providerUnavailableFixable:`{message} Haz clic para corregirlo.`,view:`Ver`},x={createProfile:`Crear perfil`,emptyState:`Aún no hay perfiles. Crea uno para empezar.`,loading:`Cargando perfiles…`,title:`Perfiles`},S={add:`Añadir`,addNamed:`Añadir {name}`,addProviderDescription:`Elige un proveedor y pega su clave API.`,addProviderTitle:`Añadir proveedor`,advanced:`Avanzado`,apiKeyPlaceholder:`Introduce tu clave API`,baseUrlLabel:`URL base`,baseUrlPlaceholder:`https://api.x.ai/v1`,cancel:`Cancelar`,customProviderHint:`Los proveedores personalizados se conectan a cualquier endpoint que ofrezca la API compatible con OpenAI: xAI, Groq, LM Studio, vLLM y similares.`,customProviderOption:`Proveedor personalizado`,displayNameLabel:`Nombre para mostrar <optional>(opcional)</optional>`,displayNamePlaceholder:`p. ej., Mi clave de Anthropic`,emptyServerResponse:`El servidor devolvió una respuesta vacía. Inténtalo de nuevo.`,enterApiKeyOrCredential:`Introduce una clave API o selecciona una credencial existente.`,failedSaveApiKey:`No se pudo guardar la clave API. Inténtalo de nuevo.`,failedSaveProvider:`No se pudo guardar el proveedor. Inténtalo de nuevo.`,localEndpointHint:`Deja la clave vacía para endpoints locales: se conectan sin clave.`,modelsHint:`Identificadores de modelo separados por comas expuestos por tu endpoint.`,modelsLabel:`Modelos`,modelsPlaceholder:`modelo-1, modelo-2`,nameLabel:`Nombre`,namePlaceholder:`xAI`,providerAriaLabel:`Proveedor`,providerConnectedToast:`Proveedor conectado`,providerLabel:`Proveedor`,saving:`Guardando…`,useChatgptSignIn:`Usa el botón "Iniciar sesión con ChatGPT" para conectar tu suscripción.`},C={addProviderTitle:`Añadir proveedor`},w={advanced:`Avanzado`,apiKeyLabel:`Clave de API`,cancel:`Cancelar`,credentialReferenceAriaLabel:`Referencia de credencial`,credentialReferenceLabel:`Referencia de credencial`,credentialReferenceSuffix:`· Referencia de credencial`,loading:`Cargando…`,newCredential:`+ Nueva credencial`,newCredentialNameLabel:`Nombre de la nueva credencial`,newCredentialPlaceholder:`p. ej. clave-equipo`,use:`Usar`},T={apiKeyPlaceholder:`Introduce tu clave API`,baseUrlLabel:`URL base`,baseUrlPlaceholder:`https://api.example.com/v1`,cancel:`Cancelar`,displayNameLabel:`Nombre para mostrar <optional>(opcional)</optional>`,displayNamePlaceholder:`p. ej., Mi clave de Anthropic`,editProviderSettingsFallback:`Edita la configuración del proveedor.`,editProviderTitle:`Editar proveedor`,editingConnection:`Editando {name}.`,emptyServerResponse:`El servidor devolvió una respuesta vacía. Inténtalo de nuevo.`,failedSaveApiKey:`No se pudo guardar la clave API. Inténtalo de nuevo.`,failedSaveProvider:`No se pudo guardar el proveedor. Inténtalo de nuevo.`,modelsHint:`Identificadores de modelo separados por comas expuestos por tu endpoint.`,modelsLabel:`Modelos`,modelsPlaceholder:`modelo-1, modelo-2`,nothingToEdit:`No hay nada que editar. Cierra e inténtalo de nuevo.`,saveChanges:`Guardar cambios`,saving:`Guardando…`},E={actionsAriaLabel:`Acciones para {displayName}`,customTag:`Personalizado`,customTagTitle:`Un proveedor que creaste, servido por un endpoint compatible con OpenAI.`,defaultTag:`Predeterminado`,defaultTagTitle:`Los perfiles integrados (Balanced, Quality, Cost, Speed) usan este proveedor.`,delete:`Eliminar`,edit:`Editar`,localTag:`Local`,localTagTitle:`Ejecuta modelos en esta máquina.`,managedTag:`Administrado`,managedTagTitle:`Se ejecuta con las credenciales administradas de Vellum.`,openProviderAriaLabel:`Abrir proveedor {displayName}`,setAsDefault:`Establecer como predeterminado`},D={addProvider:`Añadir proveedor`,empty:`Aún no hay proveedores. Añade uno para empezar.`,loadError:`No se pudieron cargar los proveedores. Inténtalo de nuevo.`,title:`Proveedores`},O={checkingDomain:`Comprobando dominio…`,domainVerified:`Dominio verificado`,failedTitle:`La verificación del dominio falló. Es posible que los registros DNS no se hayan propagado correctamente. Puedes intentar liberar y volver a registrar el dominio.`,managedLabel:`Administrado`,managedServicesBanner:`Los servicios administrados se miden y se deducen del saldo de tu cuenta de Vellum. <link>Ver precios</link>`,modeToggleAriaLabel:`Modo de servicio`,unknownStatus:`Estado desconocido`,unknownStatusTitle:`No se pudo obtener el estado de verificación del dominio.`,verificationFailed:`Verificación fallida`,verifiedTitle:`Los registros DNS se han verificado. Tu dominio está listo para enviar y recibir correo.`,verifyingDomain:`Verificando dominio…`,verifyingTitle:`Los registros DNS se han aprovisionado. Esperando a que el proveedor de correo los verifique; esto suele tardar unos minutos.`,yourOwnLabel:`Propio`},k={subtitle:`Configura cómo tu asistente transcribe el habla`,title:`Voz a texto`},A={subtitle:`Configura cómo habla tu asistente`,title:`Texto a voz`},j={assistantNotReadyToast:`El asistente no está listo. Inténtalo de nuevo.`,saveApiKeyFailedToast:`No se pudo guardar la clave de API de {providerName}. Inténtalo de nuevo.`},M={createdToast:`Perfil "{name}" creado`},N={deleteFailedToast:`No se pudo eliminar el proveedor. Inténtalo de nuevo.`,deleteInUseToast:`Este proveedor está en uso en un perfil o como proveedor predeterminado. Actualiza esas configuraciones antes de eliminarlo.`,setDefaultFailedToast:`No se pudo establecer el proveedor predeterminado. Inténtalo de nuevo.`},P={apiKeyLabel:`Clave de API`,apiKeyPlaceholder:`Introduce tu clave de API`,configUpdateFailedToast:`No se pudo actualizar la configuración del asistente. Inténtalo de nuevo.`,localPreferencesFailedToast:`Guardado, pero no se pudieron escribir las preferencias locales.`,providerLabel:`Proveedor`,savedToast:`Configuración de obtención web guardada.`,subtitle:`Configura cómo tu asistente lee páginas web individuales`,title:`Obtención web`},F={apiKeyLabel:`Clave de API`,apiKeyPlaceholder:`Introduce tu clave de API`,configUpdateFailedToast:`No se pudo actualizar la configuración del asistente. Inténtalo de nuevo.`,localPreferencesFailedToast:`Guardado, pero no se pudieron escribir las preferencias locales.`,providerAriaLabel:`Proveedor de búsqueda web`,providerLabel:`Proveedor`,savedToast:`Configuración de búsqueda web guardada.`,subtitle:`Configura cómo tu asistente debe buscar en la web`,title:`Búsqueda web`,vellumNote:`La búsqueda se ejecuta a través de tu cuenta de Vellum.`},I={advisorProfileRow:e,aiProviderPicker:t,billingStatusHandler:n,bulkOverrideSwapModal:r,callSiteOverridesRow:i,chatgptOauthSection:a,checkoutBonusModal:o,emailManagedContent:s,emailServiceCard:c,imageGenerationCard:l,languageModelCard:u,manageProfilesBlockedDeleteModal:d,overridesCallSiteList:f,overridesDetailPanel:p,profileAdvancedParams:m,profileDetailPanel:h,profileEditor:g,profileEditorFields:_,profileEditorModal:v,profileEditorProviderSection:y,profileRow:b,profilesSection:x,providerCreateForm:S,providerDetailPanel:C,providerEditorApiKeySection:w,providerEditorContent:T,providerRow:E,providersSection:D,sharedUi:O,speechToTextCard:k,textToSpeechCard:A,useDaemonConfig:j,useProfileSave:M,useProviderActions:N,webFetchCard:P,webSearchCard:F};export{e as advisorProfileRow,t as aiProviderPicker,n as billingStatusHandler,r as bulkOverrideSwapModal,i as callSiteOverridesRow,a as chatgptOauthSection,o as checkoutBonusModal,I as default,s as emailManagedContent,c as emailServiceCard,l as imageGenerationCard,u as languageModelCard,d as manageProfilesBlockedDeleteModal,f as overridesCallSiteList,p as overridesDetailPanel,m as profileAdvancedParams,h as profileDetailPanel,g as profileEditor,_ as profileEditorFields,v as profileEditorModal,y as profileEditorProviderSection,b as profileRow,x as profilesSection,S as providerCreateForm,C as providerDetailPanel,w as providerEditorApiKeySection,T as providerEditorContent,E as providerRow,D as providersSection,O as sharedUi,k as speechToTextCard,A as textToSpeechCard,j as useDaemonConfig,M as useProfileSave,N as useProviderActions,P as webFetchCard,F as webSearchCard};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Cdvvw9J5.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-DSjqKLvM.js";import{d as i}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as a}from"./QueryClientProvider-CMu7CkQU.js";import{t as o}from"./useQuery-Bz-fbQ-m.js";import{t as s}from"./jsx-runtime-D3ZM-ToX.js";import{t as c}from"./typography-BeUa5Fd-.js";import"./src-DjIqxQVd.js";import{t as l}from"./brain-BkpxPjmn.js";import{t as u}from"./menu-Gu_6PRrL.js";import{t as d}from"./ellipsis-Dm3PecnW.js";import{t as f}from"./loader-circle-oY5laABh.js";import{t as p}from"./trash-2-DL_3_16e.js";import{t as m}from"./file-markdown-CyzsCI8p.js";import{n as h}from"./resolved-assistants-store-BuqctGKE.js";import{d as g}from"./routes-C293MsBG.js";import{Ot as _,_n as v}from"./react-query.gen-vkBavCkI.js";import{t as y}from"./detail-shell-Bmyv2wPh.js";import{n as b,t as x}from"./use-skill-detail-files-2agjQ-pp.js";import{n as S,r as C,t as w}from"./skills-DdBQ-tNs.js";var T=e(n(),1),E=s();function D({skillId:e,onClose:n}){let s=i(),D=a(),O=h.use.activeAssistantId(),[k,A]=(0,T.useState)(!1),j=o({..._({path:{assistant_id:O??``,id:e}}),select:e=>e.skill,enabled:!!O}),M=j.data,{skillMd:N,fileContent:P,isFilesPending:F,isContentPending:I}=x(O,e),L=v({onSuccess:()=>{O&&w(D,O),n()},onError:e=>{t(e,{context:`skill-detail-panel-remove`})}}),R=()=>{O&&(L.mutate({path:{assistant_id:O,id:e}}),A(!1))},z=j.isPending||F||N!=null&&I,B=M!=null&&S(M);return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(y,{icon:M?.emoji?(0,E.jsx)(`span`,{className:`text-xl leading-none`,"aria-hidden":!0,children:M.emoji}):void 0,Glyph:l,title:M?.name??`Skill`,closeLabel:`Close skill details`,onClose:n,headerActions:B?(0,E.jsxs)(u.Root,{children:[(0,E.jsx)(u.Trigger,{asChild:!0,children:(0,E.jsx)(r,{variant:`ghost`,iconOnly:(0,E.jsx)(d,{}),"aria-label":`Skill actions`,className:`shrink-0`})}),(0,E.jsx)(u.Content,{side:`bottom`,align:`end`,children:(0,E.jsx)(u.Item,{leftIcon:(0,E.jsx)(p,{size:14}),onSelect:()=>A(!0),children:`Remove skill`})})]}):void 0,footer:(0,E.jsx)(`div`,{className:`flex justify-end`,children:(0,E.jsx)(r,{onClick:()=>s(g.skills.detail(e)),children:`Go to Skill`})}),children:j.isError&&!M?(0,E.jsx)(c,{variant:`body-medium-lighter`,as:`p`,className:`py-8 text-center text-[var(--content-tertiary)]`,children:`This skill could not be loaded. It may have been removed.`}):z?(0,E.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,E.jsx)(f,{className:`h-5 w-5 animate-spin text-[var(--content-tertiary)]`})}):(0,E.jsxs)(E.Fragment,{children:[M?.description&&(0,E.jsx)(c,{variant:`body-medium-lighter`,as:`p`,className:`mb-4 text-[var(--content-secondary)]`,children:M.description}),M&&(0,E.jsx)(b,{skill:M,className:`mb-4`,onNavigate:n}),P&&(0,E.jsx)(m,{content:P})]})}),(0,E.jsx)(C,{skillName:k&&M?M.name:null,onConfirm:R,onCancel:()=>A(!1)})]})}export{D as SkillDetailPanel};
@@ -1 +0,0 @@
1
- import{t as e}from"./button-DSjqKLvM.js";import{t}from"./jsx-runtime-D3ZM-ToX.js";import"./src-DjIqxQVd.js";import{t as n}from"./square-DD_y88hI.js";var r=t();function i({onStop:t,ariaLabel:i,disabled:a}){return(0,r.jsx)(e,{variant:`dangerOutline`,leftIcon:(0,r.jsx)(n,{className:`h-3 w-3`,fill:`currentColor`}),"aria-label":i,onClick:t,disabled:a,className:`shrink-0 hover:border-[var(--system-negative-strong)] hover:bg-[var(--system-negative-weak)] hover:[--vbtn-fg:var(--system-negative-strong)]`,children:`Stop`})}function a({color:e,label:t}){return(0,r.jsx)(`span`,{className:`inline-flex h-[23px] shrink-0 items-center gap-1 rounded-[6px] px-2 text-body-small-emphasised`,style:{color:e,backgroundColor:`color-mix(in srgb, ${e} 15%, transparent)`},children:t})}export{i as n,a as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-D3ZM-ToX.js";import{t}from"./modal-Bt1DPFgW.js";import{s as n}from"./voice-list-uy2Kwdwg.js";var r=e();function i({open:e,onOpenChange:i,title:a,currentCode:o,configuredProviderId:s,suggestedCode:c,selectLanguage:l,selecting:u}){return(0,r.jsx)(t.Root,{open:e,onOpenChange:i,children:(0,r.jsxs)(t.Content,{size:`sm`,onOpenAutoFocus:e=>{e.preventDefault(),e.target?.querySelector(`input[role="combobox"]`)?.focus()},children:[(0,r.jsxs)(t.Header,{children:[(0,r.jsx)(t.Title,{children:a}),(0,r.jsx)(t.Description,{children:`Applies from your next spoken turn.`})]}),(0,r.jsx)(t.Body,{children:(0,r.jsx)(n,{currentCode:o,configuredProviderId:s,suggestedCode:c,selectLanguage:l,selecting:u,onDone:()=>i(!1)})})]})})}export{i as t};
@@ -1,4 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-DSjqKLvM.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./typography-BeUa5Fd-.js";import"./src-DjIqxQVd.js";import{t as a}from"./arrow-down-to-line-BUIhl9J1.js";import{t as o}from"./arrow-left-xVF3p2Qp.js";import{n as s,r as c,t as l}from"./metric-card-SnROKwaj.js";import{E as u,c as d}from"./message-content-BrFs5fmC.js";import{t as f}from"./brain-BkpxPjmn.js";import{t as p}from"./chevron-down-B_6pb9kS.js";import{t as m}from"./chevron-right-Dx_5VMo6.js";import{t as h}from"./globe-BQ4oUIDW.js";import{t as g}from"./chat-markdown-message-Btoc6C1G.js";import{c as _,i as v,l as y,o as b}from"./subagent-store-ChHk8ZsH.js";import{t as x}from"./misc-wmny7PlA.js";import{t as S}from"./proxy-Do-Khsj0.js";import{t as C}from"./AnimatePresence-wQN1d2rQ.js";import{t as w}from"./use-reduced-motion-D2PbFfB8.js";import{n as T}from"./use-bundled-avatar-components-B4YxFEiT.js";import{t as E}from"./three-dot-indicator-BFNMvd3i.js";import{t as D}from"./avatar-renderer-khj83dWw.js";import{t as O}from"./avatar-subagent-B68bxt0O.js";import{i as k,r as A,t as j}from"./use-subagent-card-data-BIb6t3HE.js";import{S as M,a as N,c as P,d as F,f as I,h as L,i as R,l as z,m as B,n as V,o as H,p as U,r as W,t as G,u as K,w as q}from"./site-favicon-dST102dp.js";import{t as ee}from"./detail-shell-Bmyv2wPh.js";import{n as te,t as ne}from"./status-badge-pill-DxtUb8z3.js";import{CodeBlock as J,ToolDetailBody as re}from"./tool-detail-panel-CeDWOdH-.js";var Y=e(t(),1),X=r();function ie({status:e}){return(0,X.jsx)(ne,{color:_(e),label:y(e)})}function ae(e,t){let n=e.steps[0];return`${t}-${e.label}-${n?I(n,t):``}`}function oe(e){for(let t=e.steps.length-1;t>=0;t--){let n=e.steps[t];if(n.kind===`tool`&&n.status===`running`||n.kind===`web_search`&&n.title===`Searching the web`)return n}}function se(e,t){return e&&e.kind===`tool`&&(e.activity||e.info)||t}function ce(e){for(let t=e.steps.length-1;t>=0;t--){let n=e.steps[t];if(n.kind===`web_search`&&n.query)return n.query}}function le(e){for(let t=e.steps.length-1;t>=0;t--){let n=e.steps[t];if(n.kind===`thinking`&&n.text)return q(n.text)}}function Z(e){if(e.kind===`tool`)return e.toolCallId||void 0;if(e.kind===`thinking`||e.kind===`web_search`||e.kind===`web_search_error`)return e.detailKey}function ue({steps:e,onStepDetailClick:t,expandedKeys:n,onExpandedKeysChange:r,isRunning:i=!1}){let[a,o]=(0,Y.useState)(new Set),s=n??a,c=(0,Y.useCallback)(e=>{let t=t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n};if(r){r(t);return}o(t)},[r]),l=(0,Y.useMemo)(()=>K(e),[e]);return l.length===0?null:(0,X.jsx)(`div`,{className:`flex w-full flex-col`,children:l.map((e,n)=>{let r=ae(e,n),a=n===l.length-1;return(0,X.jsx)(de,{section:e,isLast:a,isActiveTail:a&&i,expanded:s.has(r),sectionKeyValue:r,onToggle:c,onStepDetailClick:t},r)})})}var de=(0,Y.memo)(function({section:e,isLast:t,isActiveTail:n,expanded:r,sectionKeyValue:a,onToggle:o,onStepDetailClick:s}){let c=w(),l=F(e.steps),u=l===`running`&&!n?`completed`:l,d=u===`running`||n,p=e.steps[0]?.kind===`thinking`,m=e.steps.length,g=e.label===`Searching the web`,_=g?ce(e):void 0,v=m>=2,y=e.steps.some(e=>U(e)||!!s&&!!Z(e)),b=u===`running`?``:B(e.steps.map(e=>`durationLabel`in e?e.durationLabel:``)),T=u===`running`?oe(e):void 0,E=u===`running`&&!g?se(T,e.label):``,D=g&&(u===`running`||!!_),O=_??e.label,k=p&&d,A=k?le(e)??e.label:void 0,j=u===`running`||D||k||!!b,M=`${m} step${m===1?``:`s`}`;return(0,X.jsxs)(`div`,{"data-testid":`subagent-phase-section`,"data-phase-label":e.label,className:x(`relative flex flex-col gap-2`,!t&&`pb-4`),children:[!t&&(0,X.jsx)(P,{className:`top-[17.5px] -bottom-[4.5px]`}),(0,X.jsxs)(`button`,{type:`button`,"data-testid":`subagent-phase-header`,disabled:!y,onClick:y?()=>o(a):void 0,className:x(`flex h-[22px] w-full items-center gap-2 text-left`,y&&`cursor-pointer`),children:[(0,X.jsx)(`span`,{"aria-hidden":!0,className:`flex h-[14px] w-[14px] shrink-0 items-center justify-center`,children:(0,X.jsx)(`span`,{className:`h-[5px] w-[5px] rounded-full bg-[var(--content-disabled)]`})}),(0,X.jsx)(z,{status:d?`running`:u,isThinking:p&&!d}),(0,X.jsx)(i,{variant:`body-medium-default`,className:`shrink-0 text-[var(--content-default)]`,children:e.label}),j&&(0,X.jsx)(`span`,{"aria-hidden":!0,className:`shrink-0 leading-none text-[var(--content-tertiary)] opacity-10`,children:`|`}),D?(0,X.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-1`,children:[(0,X.jsx)(h,{"aria-hidden":`true`,className:`h-3.5 w-3.5 shrink-0 text-[var(--content-tertiary)]`}),(0,X.jsx)(L,{currentStepTitle:``,currentStepInfo:O})]}):k?(0,X.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-1`,children:[(0,X.jsx)(f,{"aria-hidden":`true`,className:`h-3.5 w-3.5 shrink-0 text-[var(--content-tertiary)]`}),(0,X.jsx)(L,{currentStepTitle:``,currentStepInfo:A??e.label})]}):u===`running`?(0,X.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-1`,children:[(0,X.jsx)(f,{"aria-hidden":`true`,className:`h-3.5 w-3.5 shrink-0 text-[var(--content-tertiary)]`}),(0,X.jsx)(L,{currentStepTitle:``,currentStepInfo:E})]}):b?(0,X.jsx)(i,{variant:`body-small-default`,className:`min-w-0 truncate text-[var(--content-tertiary)]`,children:`Worked for ${b}`}):null,y&&v&&(0,X.jsx)(`span`,{"data-testid":`subagent-phase-step-count`,className:`ml-auto inline-flex shrink-0 items-center self-stretch whitespace-nowrap rounded-full bg-[var(--surface-base)] px-2`,children:(0,X.jsx)(i,{variant:`body-small-default`,className:`whitespace-nowrap text-[var(--content-secondary)]`,children:M})})]}),(0,X.jsx)(C,{initial:!1,children:y&&r&&(0,X.jsx)(S.div,{initial:{height:0,opacity:0},animate:{height:`auto`,opacity:1},exit:{height:0,opacity:0},transition:c?{duration:0}:{duration:.25,ease:[.16,1,.3,1]},className:`overflow-hidden`,children:(0,X.jsx)(`div`,{className:`flex flex-col items-start gap-1 pl-[22px]`,children:e.steps.map((e,t)=>{let n=s?Z(e):void 0;if(n&&s){if(e.kind===`tool`)return(0,X.jsx)(R,{variant:`tool`,iconName:e.iconName,label:e.activity||e.info||e.title,ariaLabel:`View tool details`,onClick:()=>s(n)},I(e,t));if(e.kind===`thinking`)return(0,X.jsx)(R,{variant:`tool`,iconName:`brain`,label:q(e.text),ariaLabel:`View reasoning`,onClick:()=>s(n)},I(e,t));if(e.kind===`web_search`)return(0,X.jsx)(R,{variant:`tool`,iconName:`globe`,label:e.query||e.title,ariaLabel:`View search details`,onClick:()=>s(n)},I(e,t));if(e.kind===`web_search_error`)return(0,X.jsx)(R,{variant:`tool`,iconName:`globe`,label:e.errorMessage,ariaLabel:`View search error`,onClick:()=>s(n)},I(e,t))}return e.kind===`web_search`?(0,X.jsxs)(`div`,{className:`flex w-full flex-col gap-1`,children:[e.query?(0,X.jsx)(i,{variant:`body-small-default`,className:`text-[var(--content-secondary)]`,children:`"${e.query}"`}):null,(0,X.jsx)(W,{step:e})]},I(e,t)):e.kind===`web_search_error`?(0,X.jsx)(V,{step:e},I(e,t)):(0,X.jsx)(N,{step:e},I(e,t))})})},`phase-steps`)})]})}),fe=`
2
- Content:
3
- `;function pe(e){return M(e)||e}function me(e,t){let n=e??``,r=n.indexOf(fe),i=r>=0?n.slice(0,r):``,a=r>=0?n.slice(r+10):n,o=e=>{let t=i.match(RegExp(`^${e}:[ \\t]*(.+)$`,`m`));return t?t[1].trim():null},s=[],c=i.indexOf(`Notices:`);if(c>=0)for(let e of i.slice(c).split(`
4
- `)){let t=e.match(/^\s*-\s+(.*)$/);t&&t[1].trim()&&s.push(t[1].trim())}a=a.trim();let l=null,u=a.match(/^<external_content\b([^>]*)>\s*/);if(u){let e=u[1].match(/origin="([^"]+)"/);e&&(l=e[1]),a=a.slice(u[0].length).replace(/\s*<\/external_content>\s*$/,``)}return{url:o(`Final URL`)||o(`Requested URL`)||l||t||null,status:o(`Status`),notices:s,content:a.trim()}}function Q({url:e,status:t}){let n=pe(e),r=t?/^\s*2\d\d/.test(t):!1;return(0,X.jsxs)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-2 rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3 transition-colors hover:border-[var(--border-hover)]`,children:[(0,X.jsx)(G,{domain:n,title:n}),(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,X.jsx)(i,{variant:`body-medium-default`,as:`span`,className:`truncate text-[var(--content-default)]`,children:n}),(0,X.jsx)(i,{variant:`body-small-default`,as:`span`,className:`truncate text-[var(--content-tertiary)]`,children:e})]}),t&&(0,X.jsx)(`span`,{className:`shrink-0 rounded-[6px] px-2 py-0.5 text-body-small-emphasised ${r?`text-[var(--system-positive-strong)]`:`text-[var(--content-tertiary)]`}`,children:t})]})}function he({detail:e}){let[t,n]=(0,Y.useState)(!1),r=typeof e.input?.url==`string`?e.input.url:void 0,a=(0,Y.useMemo)(()=>me(e.result??``,r),[e.result,r]);return e.status===`error`?(0,X.jsx)(J,{text:e.result??`Fetch failed.`}):(0,X.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[a.url&&(0,X.jsx)(Q,{url:a.url,status:a.status}),a.notices.length>0&&(0,X.jsx)(`div`,{className:`flex flex-col gap-1 rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3`,children:a.notices.map((e,t)=>(0,X.jsx)(i,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:e},t))}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,X.jsx)(i,{variant:`body-medium-default`,as:`h3`,className:`text-[var(--content-emphasised)]`,children:t?`Raw result`:`Content`}),e.result&&(0,X.jsx)(`button`,{type:`button`,onClick:()=>n(e=>!e),className:`cursor-pointer text-[var(--content-secondary)] transition-colors hover:text-[var(--content-default)]`,children:(0,X.jsx)(i,{variant:`label-small-default`,as:`span`,children:t?`View extracted`:`View raw`})})]}),t?(0,X.jsx)(J,{text:e.result??``}):a.content?(0,X.jsx)(g,{content:a.content}):(0,X.jsx)(i,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:e.status===`running`?`Fetching…`:`No content extracted.`})]})]})}function ge({detail:e}){let t=e.searchQuery??``,n=e.searchResults??[];return(0,X.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[t?(0,X.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,X.jsx)(i,{variant:`body-medium-default`,as:`h3`,className:`text-[var(--content-emphasised)]`,children:`Query`}),(0,X.jsx)(i,{variant:`body-medium-lighter`,as:`p`,className:`break-words leading-relaxed text-[var(--content-default)]`,children:`"${t}"`})]}):null,(0,X.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,X.jsx)(i,{variant:`body-medium-default`,as:`h3`,className:`text-[var(--content-emphasised)]`,children:n.length>0?`Sources (${n.length})`:`Sources`}),n.length>0?(0,X.jsx)(W,{step:{kind:`web_search`,title:`Searched the web`,durationLabel:``,linkCount:n.length,results:n}}):(0,X.jsx)(i,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`No sources found.`})]})]})}function $(e){return new Map(e.map(e=>[e.toolCallId,e]))}function _e(e=j){let t=null,n=[],r=[],i=new Map;function a(a){let o=[],s=[];for(let t of a)e(o,s,t);return t=a,n=o,r=s,i=$(n),i}function o(o){let s=k(t,o);switch(s.kind){case`identity`:return i;case`first`:return a(o);case`append`:{let a=o.length,c=n.slice(),l=r.slice();for(let t=s.from;t<a;t++)e(c,l,o[t]);return t=o,n=c,r=l,i=$(n),i}case`mutate-last`:{let a=o.length,s=n.slice(),c=r.slice(),l=s[s.length-1];return l&&l.kind===`thinking`&&l.toolCallId===o[a-1].id&&(s.pop(),c.pop()),e(s,c,o[a-1]),t=o,n=s,r=c,i=$(n),i}case`fallback`:return a(o)}}return{project:o}}function ve(e){let t=(0,Y.useRef)(null);return t.current??=_e(),t.current.project(e)}function ye(e){return e.kind===`web_search`?`globe`:e.kind===`thinking`?`brain`:d(e.toolName,e.input).iconName}function be({detail:e}){return e.status===`running`?(0,X.jsx)(E,{className:`shrink-0`,"data-testid":`nested-detail-running`}):(0,X.jsx)(H[ye(e)]??u,{"aria-hidden":!0,className:`h-5 w-5 shrink-0 text-[var(--content-secondary)]`})}function xe({entry:e,onClose:t,onStop:r,onRequestDetail:u,assistantId:d}){let f=b(e.status),h=w(),_=T(),y=(0,Y.useMemo)(()=>O(e.subagentId),[e.subagentId]),{steps:x}=A(e.events),C=ve(e.events),[E,k]=(0,Y.useState)(null),j=(0,Y.useRef)(C);j.current=C;let M=(0,Y.useCallback)(e=>{j.current.has(e)&&k(e)},[]),[N,P]=(0,Y.useState)(new Set),[F,I]=(0,Y.useState)(!1),[L,R]=(0,Y.useState)(!1),z=(0,Y.useRef)(null),[B,V]=(0,Y.useState)(e.subagentId);B!==e.subagentId&&(V(e.subagentId),I(!1),R(!1),k(null),P(new Set)),(0,Y.useLayoutEffect)(()=>{if(F)return;let e=z.current;e&&R(e.scrollHeight>e.clientHeight)},[e.subagentId,e.objective,F]);let H=v(e);(0,Y.useEffect)(()=>{u&&H&&e.events.length===0&&u(e.subagentId)},[e.subagentId,H,e.events.length,u]);let U=E?C.get(E):void 0,W=(0,Y.useCallback)(()=>k(null),[]),G=U?U.activity||U.title:``,K=U?G:e.label;return(0,X.jsx)(ee,{headerAbove:U&&(0,X.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-[var(--border-hover)] px-5 py-3`,children:[(0,X.jsx)(n,{variant:`link`,onClick:W,title:e.label,className:`inline-flex min-w-0 shrink border-0 text-left text-[color:var(--content-default)]`,children:(0,X.jsx)(i,{variant:`body-small-default`,as:`span`,className:`min-w-0 truncate`,children:e.label})}),(0,X.jsx)(m,{className:`h-2.5 w-2.5 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,X.jsx)(i,{variant:`body-small-default`,as:`span`,title:G,className:`min-w-0 shrink truncate text-[var(--content-secondary)]`,children:G})]}),icon:(0,X.jsxs)(X.Fragment,{children:[U&&(0,X.jsx)(n,{variant:`outlined`,iconOnly:(0,X.jsx)(o,{}),onClick:W,"aria-label":`Back to timeline`,tooltip:`Back`,className:`shrink-0`}),U?(0,X.jsx)(be,{detail:U}):_?(0,X.jsx)(D,{components:_,bodyShapeId:y.bodyShape,eyeStyleId:y.eyeStyle,colorId:y.color,size:32}):(0,X.jsx)(`div`,{style:{width:32,height:32,flexShrink:0},"aria-hidden":!0})]}),title:K,headerTrailing:(0,X.jsx)(ie,{status:e.status}),headerActions:f&&r?(0,X.jsx)(te,{onStop:()=>r(e.subagentId),ariaLabel:`Stop subagent`}):void 0,closeLabel:`Close subagent detail`,onClose:t,children:(0,X.jsx)(S.div,{initial:{opacity:0},animate:{opacity:1},transition:h?{duration:0}:{duration:.18,ease:[.16,1,.3,1]},children:U?(0,X.jsx)(X.Fragment,{children:U.kind===`thinking`?(0,X.jsx)(g,{content:U.thinkingText??``,hardLineBreaks:!0,assistantId:d}):U.kind===`web_search`&&U.status!==`error`?(0,X.jsx)(ge,{detail:U}):U.toolName===`web_fetch`?(0,X.jsx)(he,{detail:U}):(0,X.jsx)(re,{detail:U,assistantId:d})}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`div`,{className:`mb-5 grid grid-cols-2 gap-3`,children:[(0,X.jsx)(l,{icon:(0,X.jsx)(a,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.inputTokens,format:e=>s(Math.round(e)),label:`Input`}),(0,X.jsx)(l,{icon:(0,X.jsx)(c,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.outputTokens,format:e=>s(Math.round(e)),label:`Output`})]}),e.objective&&(0,X.jsxs)(`div`,{className:`mb-5`,children:[(0,X.jsx)(i,{variant:`body-medium-default`,as:`h3`,className:`mb-2 text-[var(--content-emphasised)]`,children:`Objective`}),(0,X.jsx)(i,{ref:z,variant:`body-medium-lighter`,as:`p`,tabIndex:F?0:void 0,role:F?`region`:void 0,"aria-label":F?`Objective`:void 0,className:`whitespace-pre-wrap break-words leading-relaxed text-[var(--content-default)] ${F?`max-h-[280px] overflow-y-auto`:`line-clamp-5`}`,children:e.objective}),L&&(0,X.jsx)(n,{variant:`link`,onClick:()=>I(e=>!e),"aria-expanded":F,rightIcon:(0,X.jsx)(p,{className:`h-3.5 w-3.5 transition-transform ${F?`rotate-180`:``}`,"aria-hidden":!0}),className:`mt-1.5 inline-flex gap-1 border-0 text-[color:var(--content-secondary)] hover:text-[color:var(--content-default)] hover:no-underline`,children:(0,X.jsx)(i,{variant:`label-small-default`,children:F?`Show less`:`Show more`})}),(0,X.jsx)(`div`,{className:`mt-5 h-px w-full bg-[var(--border-hover)]`})]}),(0,X.jsxs)(`div`,{children:[(0,X.jsx)(i,{variant:`title-medium`,as:`h3`,className:`mb-4 text-[var(--content-emphasised)]`,children:`Timeline`}),e.events.length>0?(0,X.jsx)(ue,{steps:x,expandedKeys:N,onExpandedKeysChange:P,onStepDetailClick:M,isRunning:f},e.subagentId):(0,X.jsx)(i,{variant:`body-small-default`,className:`py-4 text-center text-[var(--content-tertiary)]`,children:`No events yet`})]})]})},U?`detail`:`list`)})}export{xe as SubagentDetailPanel};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./jsx-runtime-D3ZM-ToX.js";import{t as r}from"./cn-DFWryB3N.js";import{t as i}from"./typography-BeUa5Fd-.js";var a=e(t(),1),o=n();function s(e,t,n){t||n(!e)}function c({checked:e,onChange:t,label:n,helperText:c,disabled:l=!1,id:u,"aria-label":d,className:f}){let p=(0,a.useId)(),m=u??p,h=n?`${m}-label`:void 0,g=c?`${m}-helper`:void 0,_=()=>s(e,l,t),v=r(`relative inline-flex h-6 w-9 shrink-0 items-center rounded-full transition-colors`,`keyboard-focus:outline-none keyboard-focus:ring-2 keyboard-focus:ring-[var(--ring)] keyboard-focus:ring-offset-2`,l?`cursor-not-allowed bg-[var(--primary-disabled)]`:e?`cursor-pointer bg-[var(--system-positive-strong)]`:`cursor-pointer bg-[var(--surface-active)]`),y=r(`absolute top-0.5 inline-block h-5 w-5 rounded-full shadow transition-transform`,l?`bg-[var(--content-disabled)]`:`bg-[var(--aux-white)]`,e?`left-0.5 translate-x-3`:`left-0.5 translate-x-0`),b=(0,o.jsx)(`button`,{type:`button`,role:`switch`,id:m,"aria-checked":e,"aria-label":n?void 0:d,"aria-labelledby":n?h:void 0,"aria-describedby":g,disabled:l,onClick:_,"data-slot":`toggle`,className:v,children:(0,o.jsx)(`span`,{className:y})});return!n&&!c?(0,o.jsx)(`span`,{"data-slot":`toggle`,className:f,children:b}):(0,o.jsxs)(`div`,{"data-slot":`toggle`,className:r(`flex gap-2.5`,c?`items-start`:`items-center`,f),children:[b,(0,o.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-0.5`,children:[n?(0,o.jsx)(i,{as:`label`,variant:`body-medium-default`,id:h,htmlFor:m,className:r(l?`cursor-not-allowed text-[var(--content-disabled)]`:`cursor-pointer text-[var(--content-default)]`),children:n}):null,c?(0,o.jsx)(`span`,{id:g,className:`text-body-small-default text-[var(--content-tertiary)]`,children:c}):null]})]})}export{c as t};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Cdvvw9J5.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./useQuery-Bz-fbQ-m.js";import{t as i}from"./jsx-runtime-D3ZM-ToX.js";import{t as a}from"./cn-DFWryB3N.js";import"./src-DjIqxQVd.js";import{En as o,Tn as s,V as c,tt as l}from"./sdk.gen-Br55zhZN.js";import{r as u}from"./api-xbjYCkk-.js";import{t as d}from"./identity-CgcUPHQZ.js";import{n as f}from"./page-surface-store-LM8JrGI5.js";import{t as p}from"./proxy-Do-Khsj0.js";import{t as m}from"./use-reduced-motion-D2PbFfB8.js";import{i as h}from"./avatar-tone-CQWYpANf.js";import{i as g,r as _,t as v}from"./use-element-size-G76uplCp.js";import{c as y,n as b,t as x}from"./latest-assistant-text-Bhqw0WEB.js";var S=e(n(),1),C=i(),w=.25,T=.46,E=.3,D=.85,O=.4,k=14,A=8;function j({components:e,traits:t,stage:n,entrance:r=!1,entranceDelay:i=0}){let a=m(),{w:o,h:s}=n,[c,l]=(0,S.useState)({x:0,y:0});(0,S.useEffect)(()=>{if(a)return;let e=e=>{l({x:(e.clientX/window.innerWidth-.5)*2,y:(e.clientY/window.innerHeight-.5)*2})};return window.addEventListener(`mousemove`,e),()=>window.removeEventListener(`mousemove`,e)},[a]);let u=r&&!a,[d,f]=(0,S.useState)(!1),[h,v]=(0,S.useState)(!r);(0,S.useEffect)(()=>{if(a||!h)return;let e=!1,t,n=n=>{e||(f(!0),t=setTimeout(()=>{e||(f(!1),t=setTimeout(n,140))},140))},i=()=>{t=setTimeout(()=>n(i),2500+Math.random()*4e3)};return r?n(()=>n(i)):i(),()=>{e=!0,clearTimeout(t)}},[a,h,r]);let y=(0,S.useMemo)(()=>{let n=e.eyeStyles.find(e=>e.id===t.eyeStyle);return n?{paths:n.paths,bbox:g(n.paths.map(e=>_(e.svgPath)))}:null},[e,t.eyeStyle]);if(!y||o===0||s===0)return null;let b=o*D,x=Math.min(Math.min(o,s)*E,b*y.bbox.h/y.bbox.w),j=x*y.bbox.w/y.bbox.h,M=(o-j)/2,N=s-(1-w)*x,P=O*s-(N+x/2),F=(T-w)*x,I=y.bbox.x+y.bbox.w/2,L=y.bbox.y+y.bbox.h/2;return(0,C.jsx)(p.div,{"aria-hidden":`true`,className:`pointer-events-none absolute z-[2]`,style:{left:M,top:N,width:j,height:x,transformOrigin:`center`},initial:u?{y:P,scale:.35}:!1,animate:u?{y:[P,F,0],scale:[.35,1,1]}:{y:0,scale:1},transition:u?{duration:1,delay:i,times:[0,.7,1],ease:`easeInOut`}:{duration:0},onAnimationComplete:()=>v(!0),children:(0,C.jsx)(`div`,{style:{transform:`translate(${c.x*k}px, ${c.y*A}px)`,transition:`transform 0.5s cubic-bezier(0.22, 1, 0.36, 1)`},children:(0,C.jsx)(`svg`,{viewBox:`${y.bbox.x} ${y.bbox.y} ${y.bbox.w} ${y.bbox.h}`,width:j,height:x,style:{overflow:`visible`,display:`block`},children:(0,C.jsx)(`g`,{style:{transform:d?`scaleY(0.1)`:`scaleY(1)`,transformOrigin:`${I}px ${L}px`,transition:`transform 0.14s ease-in-out`},children:y.paths.map((e,t)=>(0,C.jsx)(`path`,{d:e.svgPath,fill:e.color},t))})})})})}var M=E*(1-w),N=`#17191C`,P=24,F=.2,I=96,L=160,R=(0,S.createContext)(null);function z(){let e=(0,S.useContext)(R);if(!e)throw Error(`useAssistantStage must be used inside <AssistantStage>`);return e}function B(e,t){return!e||!t?null:e.colors.find(e=>e.id===t.color)?.hex??null}function V({components:e,traits:t,customImageUrl:n,entrance:r=!1,children:i,className:o}){let{ref:s,size:c}=v(),l=B(e,t)??N,u=h(l),d=f.use.setSurface();(0,S.useLayoutEffect)(()=>(d(l),()=>{d(null)}),[l,d]);let p=!!(e&&t),m=!p&&!!n,g=Math.round(Math.min(L,Math.max(I,Math.min(c.w,c.h)*F))),_=c.h-g-P,y=p?Math.round(M*Math.min(c.w,c.h))+16:m?g+P+16:24;return(0,C.jsxs)(`div`,{ref:s,className:a(`relative flex min-h-0 flex-1 flex-col overflow-hidden rounded-lg border border-[var(--border-base)]`,`native-mobile:rounded-none native-mobile:border-0`,o),style:{backgroundColor:l,color:u.fg},children:[p&&e&&t&&(0,C.jsx)(j,{components:e,traits:t,stage:c,entrance:r}),m&&n&&(0,C.jsx)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute z-[2] overflow-hidden rounded-full ring-4 ring-white/25`,style:{left:(c.w-g)/2,top:_,width:g,height:g},children:(0,C.jsx)(`img`,{src:n,alt:``,className:`h-full w-full object-cover`,draggable:!1})}),(0,C.jsx)(R.Provider,{value:{stage:c,tone:u,bottomReserve:y},children:(0,C.jsx)(`div`,{className:`relative z-10 flex min-h-0 flex-1 flex-col`,children:i})})]})}var H=[{id:`companion-coworker`,leftKey:`personalityAxes.companionCoworker.left`,rightKey:`personalityAxes.companionCoworker.right`},{id:`genz-boomer`,leftKey:`personalityAxes.genzBoomer.left`,rightKey:`personalityAxes.genzBoomer.right`},{id:`execute-collaborate`,leftKey:`personalityAxes.executeCollaborate.left`,rightKey:`personalityAxes.executeCollaborate.right`},{id:`playful-serious`,leftKey:`personalityAxes.playfulSerious.left`,rightKey:`personalityAxes.playfulSerious.right`},{id:`polite-unfiltered`,leftKey:`personalityAxes.politeUnfiltered.left`,rightKey:`personalityAxes.politeUnfiltered.right`}],U=50,W=1500,G=12e4,K=e=>new Promise(t=>setTimeout(t,e));async function q({assistantId:e,content:n,title:r,context:i}){let a,u=!1;try{let t=await l({path:{assistant_id:e},body:{conversationType:`background`,title:r},throwOnError:!1});if(a=t.data?.id,!t.response?.ok||!a)return!1;let i=b({conversationId:a,content:n,transport:`vellum`});if(!(await o({path:{assistant_id:e},body:i,throwOnError:!1})).response?.ok)return!1;let c=Date.now()+G,d=``,f=0,p=!1;for(;Date.now()<c;){await K(W);let t=await s({path:{assistant_id:e},query:{conversationId:a},throwOnError:!1}),n=x(t.data?.messages??[]);if(n&&(f=n===d?f+1:0,d=n),t.data?.processing===!0&&(p=!0),y({processing:t.data?.processing,sawProcessing:p,hasReply:n.length>0,stableReads:f})){u=!0;break}}}catch(e){t(e,{context:i})}finally{if(a)try{await c({path:{assistant_id:e,id:a},throwOnError:!1})}catch(e){t(e,{context:`${i}_archive`})}}return u}function J(e){return[`assistant-identity-details`,e]}function Y(e){return r({queryKey:J(e),queryFn:async()=>{let[t,n]=await Promise.all([d(e),u(e).catch(()=>({ok:!1,status:0,error:{}}))]);return{identity:t,createdAt:n.ok?n.data.created:null}}})}export{U as a,z as c,H as i,Y as n,V as o,q as r,B as s,J as t};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/routes-Q2DdFIGG.js","assets/chunk-jRWAZmH_.js","assets/preload-helper-Cv2QeVDK.js","assets/api-asaDrkTi.js","assets/local-mode-DP-5m-kS.js","assets/is-electron-BSK3AUxG.js","assets/create-selectors-C7uuHryP.js","assets/react-BFJW0bSv.js","assets/local-settings-Bx7FsNo5.js","assets/api-xbjYCkk-.js","assets/sdk.gen-CMy8CiG0.js","assets/client.gen-Dy7VKLYs.js","assets/sdk.gen-Br55zhZN.js","assets/api-errors-BTOPGXDV.js","assets/use-assistant-avatar--hNHYiPK.js","assets/utils-1ZnEn_W1.js","assets/assistant-identity-store-DTP7xfNP.js","assets/semver-CzvoYi37.js","assets/QueryClientProvider-CMu7CkQU.js","assets/jsx-runtime-D3ZM-ToX.js","assets/useQuery-Bz-fbQ-m.js","assets/composer-settings-BMKJP4Ik.js","assets/funnel-events-BddkbWqn.js","assets/prefs-Bxlc7g3M.js","assets/onboarding-store-CfEbEnN0.js","assets/device-settings-DZvv4pnY.js","assets/consent-9-XXaxZ9.js","assets/ingest-B9D2Cyin.js","assets/platform-detection-BIfuAgU8.js","assets/native-deep-link-EZIezcy9.js","assets/domains-DUzxnQ3r.js","assets/routes-C293MsBG.js","assets/dist-D8V9YSOm.js","assets/use-bus-subscription-CBlDL_ew.js","assets/event-bus-CibPCHnD.js","assets/capture-error-Cdvvw9J5.js","assets/client-feature-flag-store-B9Bz0uyL.js","assets/feature-flag-catalog-svwKfQY_.js","assets/theme-preferences-eO-_-Yel.js","assets/typed-storage-DjhDRFKz.js","assets/button-DSjqKLvM.js","assets/dist-DHB1G-V6.js","assets/bundle-mjs-BQxDdOEo.js","assets/cn-DFWryB3N.js","assets/checkbox-DyHMOWN6.js","assets/createLucideIcon-C_IfoPaZ.js","assets/check-CNBoUiyR.js","assets/typography-BeUa5Fd-.js","assets/src-DjIqxQVd.js","assets/dist-CYFZCv2b.js","assets/dist-Df8G739y.js","assets/select-B86W_Hs8.js","assets/Combination-CZCRM_nS.js","assets/chevron-down-B_6pb9kS.js","assets/field-Dq8jxCGe.js","assets/modal-Bt1DPFgW.js","assets/x-BY-Np61T.js","assets/menu-Gu_6PRrL.js","assets/chevron-right-Dx_5VMo6.js","assets/toast-BrKo5b4d.js","assets/circle-alert-DEIiXMF-.js","assets/circle-check-BG2g8udA.js","assets/info-Bjcv3rf9.js","assets/card-q0GJX1HZ.js","assets/confirm-dialog-DNaRfy4W.js","assets/loader-circle-oY5laABh.js","assets/triangle-alert-C5SOfs-q.js","assets/input-BG94bPcH.js","assets/notice-C9v3KOP3.js","assets/progress-bar-3n-2T7Oy.js","assets/skeleton-CzdJByjE.js","assets/tag-D0oiSRye.js","assets/toggle-C-v4x7_A.js","assets/src-CfUWwwYf.css","assets/profile-pickers-CKLILvRc.js","assets/identity-CgcUPHQZ.js","assets/auth-store-BDMYc7te.js","assets/remote-gateway-session-DxuSBHli.js","assets/push-registration-CVotM2hK.js","assets/resolved-assistants-store-BuqctGKE.js","assets/operational-status-DswnmGh5.js","assets/react-query.gen-CqLxrlpP.js","assets/useMutation-CXGTrp4W.js","assets/infiniteQueryOptions-CqLc14_4.js","assets/queryOptions-CMSBCFOf.js","assets/use-is-org-ready-CWNhmJ2b.js","assets/use-platform-gate-DzpdjzIz.js","assets/diagnostics-CeLo0IQo.js","assets/retire-confirm-dialog-Cz64ywTF.js","assets/navigation-resolver-jn3fW9IN.js","assets/research-onboarding-persistence-D9HRWnHA.js","assets/build-state-DdpPjDMZ.js","assets/remove-from-device-dialog-BGul1xBz.js","assets/use-command-palette-sections-D0RCkx0m.js","assets/chat-sgiUoK1u.js","assets/haptics-DafZDCxm.js","assets/calendar-DFz-eSzk.js","assets/globe-BQ4oUIDW.js","assets/layout-grid-C3zr7IEa.js","assets/message-square-UW8LcsnU.js","assets/monitor-4IGIx6Wb.js","assets/settings-bHOjP4mt.js","assets/use-sticky-profiles-BN2tBekP.js","assets/react-query.gen-vkBavCkI.js","assets/i18n-zb2mgr1B.js","assets/Trans-Ch_EPHgV.js","assets/useTranslation-Dn8TOHE6.js","assets/shim-KJVQ35XO.js","assets/add-credential-modal-CAorWf5a.js","assets/use-active-assistant-id-Cgt1z2rZ.js","assets/key-round-BeLlbSFj.js","assets/app-card-oG9LxSg9.js","assets/viewer-store-D3KM2E2N.js","assets/workspace-path-links-ORUgKDWB.js","assets/open-workspace-file-D2FXjNVn.js","assets/sandbox-bridge-ajRoXgYL.js","assets/copy-to-clipboard-SOu7HUET.js","assets/deploy-store-eps_MrT7.js","assets/native-file-DWbiI8L-.js","assets/edge-swipe-arbiter-store-ChMvF7t2.js","assets/misc-wmny7PlA.js","assets/pointer-DLKG188W.js","assets/use-media-query-CtzETH7h.js","assets/external-link-D65yhWAV.js","assets/puzzle-o8S9l_NJ.js","assets/use-edit-app-BZv0JIfX.js","assets/use-is-mobile-BONxmNg6.js","assets/use-touch-mobile-JVxY9M-0.js","assets/conversation-store-BnS0mmz7.js","assets/edit-chat-session-CcwN_rea.js","assets/chevron-up-CU46uUqC.js","assets/link-2-CA1w44Gq.js","assets/minimize-2-DZa-Yfq6.js","assets/pencil-kTdx15WT.js","assets/refresh-cw-Cvdm1xeK.js","assets/chunk-5KNZJZUH-BUqIilZr.js","assets/avatar-renderer-khj83dWw.js","assets/avatar-svg-compositor-B0_MqIec.js","assets/animated-avatar-D9mX2duB.js","assets/use-reduced-motion-D2PbFfB8.js","assets/reduced-motion-C6t3gGc_.js","assets/chat-avatar-B1G491hG.js","assets/sound-manager-CTd-DV3i.js","assets/proxy-Do-Khsj0.js","assets/telegram-setup-wizard-DgdjP2o8.js","assets/use-copy-to-clipboard-oZUc3_ey.js","assets/browser-CZ10MkOr.js","assets/clipboard-copy-BL49CFI3.js","assets/detail-shell-Bmyv2wPh.js","assets/apple-logo-CVMvoWvp.js","assets/use-discord-nudge-FuXIZ_hw.js","assets/middleware-uwxeHHVb.js","assets/integration-icon-CsZDnIcJ.js","assets/public-asset-C2ociEGf.js","assets/chat-layout-slots-store-Diue1siL.js","assets/document-viewer-container-Bywwxt6G.js","assets/use-local-file-info-CowxNLsG.js","assets/circle-check-big-BRKMTxhd.js","assets/download-Bld7ch1X.js","assets/file-text-Ha6XXdS_.js","assets/message-square-text-B06iN0sm.js","assets/send-CpbQGYQ9.js","assets/trash-2-DL_3_16e.js","assets/user-Bw0w1JwI.js","assets/not-found-CRrNNxgD.js","assets/arrow-left-xVF3p2Qp.js","assets/sparkles-DB7sSiA2.js","assets/platform-login-notice-CaNQOYUj.js","assets/use-onboarding-login-Zjbfg9rl.js","assets/login-flow-CTw5lXLx.js","assets/native-auth-error-CFWzetfp.js","assets/external-urls-Dz7v7Xuw.js","assets/log-in-BE4abPjq.js","assets/runtime-upgrade-banner-WHzYN73y.js","assets/local-runtime-upgrade-SQQhJhOk.js","assets/cloud-off-CpFUHEgx.js","assets/moon-C8Wjcz8V.js","assets/wrench-Bpk2afMn.js","assets/voice-list-uy2Kwdwg.js","assets/use-voice-sample-preview-BY_J5WVl.js","assets/search-DbyaO8rG.js","assets/square-DD_y88hI.js","assets/volume-2-DgWyCs5f.js","assets/voice-providers-note-BLOdThkh.js","assets/use-save-twilio-credentials-COzAERtv.js","assets/sdk.gen-CUWXKhFV.js","assets/use-swipe-engine-xGdF8hBv.js","assets/mail-B0iH8Wii.js","assets/message-circle-8fKbbQcs.js","assets/smartphone-PXi_KwFC.js","assets/acp-run-store-DpbMRWeI.js","assets/by-tool-use-id-index-xzJzBHo0.js","assets/optimistic-lifecycle-EXwQgNvb.js","assets/messages-D0PQ2X1S.js","assets/prechat-CavQeV1_.js","assets/effective-timezone-BHJf6K2g.js","assets/browser-timezone-BtQlRGbC.js","assets/background-task-store-eQZGVUDr.js","assets/use-transcript-messages-BLtVYqAv.js","assets/use-attachment-preview-DvVweDZY.js","assets/file-markdown-CyzsCI8p.js","assets/pdf-preview-CFuSHh-t.js","assets/chevron-left-B7yHWg2l.js","assets/file-7EmuTJEW.js","assets/client-perf-C4GkD7vz.js","assets/acp-run-actions-D3BHB3kZ.js","assets/code-CvwdlCR7.js","assets/background-task-actions-Cf2kEaWh.js","assets/message-content-BrFs5fmC.js","assets/multi-activity-group-CenHDhpe.js","assets/site-favicon-dST102dp.js","assets/three-dot-indicator-BFNMvd3i.js","assets/AnimatePresence-wQN1d2rQ.js","assets/brain-BkpxPjmn.js","assets/plug-CQDevvb-.js","assets/user-plus-Vg2Aibhi.js","assets/subagent-store-ChHk8ZsH.js","assets/circle-x-BQYELb1V.js","assets/file-plus-D7oOJ8y7.js","assets/terminal-BDxxes3v.js","assets/use-attachment-squares-ELH7PQrT.js","assets/archive-Cp86wmG1.js","assets/chat-markdown-message-Btoc6C1G.js","assets/workspace-tree-query-C6kx2Bkh.js","assets/native-anchor-txt0veYo.js","assets/ellipsis-Dm3PecnW.js","assets/eye-off-DFGH3cWw.js","assets/eye-DO1vbwRG.js","assets/preview-skeleton-BLpm3j7s.js","assets/surface-parse-helpers-COefGJYZ.js","assets/conversation-navigation-Bw3eQBGU.js","assets/workflow-store-Dgz97WCS.js","assets/workflow-status-AIHLnh_i.js","assets/conversation-selection-Da6kgY3F.js","assets/use-subagent-card-data-BIb6t3HE.js","assets/access-DgWVDTc-.js","assets/assistant-feature-flag-store-j3wC3wtf.js","assets/research-results-view-DDjp2hBc.js","assets/research-facts-CvoMry5Y.js","assets/ban-4FBs8Anm.js","assets/home-tool-permission-card-IF0-aLrT.js","assets/format-date-Cl5z8sZt.js","assets/schedules-630osdOz.js","assets/bell-CpYZHPGU.js","assets/clock-DSx5dIWv.js","assets/list-COQcQTOh.js","assets/rotate-ccw-RaucWIHS.js","assets/shield-check-CchXTN7c.js","assets/invalidate-memory-queries-CS15Vuec.js","assets/get-memory-stats-Cm70EF9d.js","assets/invalidate-plugin-queries-DvUskShG.js","assets/onboarding-layout-D8Kv-5kM.js","assets/use-bundled-avatar-components-B4YxFEiT.js","assets/first-run-scope-Cc45jqTq.js","assets/oauth-connection-utils-BnF9kIoa.js","assets/oauth-popup-CLa9h8TF.js","assets/settings-navigation-Dp0sDZAh.js","assets/hard-navigate-CpR5x8Nr.js","assets/use-supports-bookmarks-SDHU-RBu.js","assets/bug-DwW8prtd.js","assets/chart-column-DupTx7Uc.js","assets/cpu-BO_MyzHO.js","assets/mic-BuTY2uVU.js","assets/sliders-horizontal-DOPSCMHk.js","assets/users-BI74h_lc.js","assets/onboarding-navigation-BI2ZIqE9.js","assets/workspace-theme-tokens-Bod0vp12.js","assets/conversation-queries-7BVaya69.js","assets/conversation-list-fetchers-CVKv5BpN.js","assets/use-edge-swipe-Bde-t-dW.js","assets/use-app-theme-CODorJpK.js","assets/use-assistant-capability-CYKqSbfq.js","assets/use-avatar-accent-var-DzqC3Diq.js","assets/avatar-bundled-components-OjPlNcdB.js","assets/use-body-scroll-lock-C7SDkbNZ.js","assets/use-bookmarks-B4g9FKC7.js","assets/daily-reset-time-i6mZWgVc.js","assets/use-element-size-G76uplCp.js","assets/plugins-surface-CLpV3JV6.js","assets/android-consumption-only-eY-NLtwG.js","assets/installed-plugins-query-DeGY29mj.js","assets/doctor-handoff-store-D1gIUvVD.js","assets/threshold-presets-Bm9FqtVb.js","assets/shield-B-KbNxGy.js","assets/trust-rules-api-CEt20Kh9.js","assets/desktop-voice-activity-CHblqyyn.js","assets/dictation-overlay-BLLyYBjv.js","assets/notifications-D7I0R0Np.js","assets/esm-B4xcxzQN.js","assets/page-surface-store-LM8JrGI5.js","assets/avatar-subagent-B68bxt0O.js","assets/avatar-tone-CQWYpANf.js","assets/conversation-cache-DY3GhyFA.js","assets/use-effective-timezone-CEgnEQb7.js","assets/useInfiniteQuery-Dk8q0n49.js","assets/animate-WKjTn2w_.js","assets/arrow-down-to-line-BUIhl9J1.js","assets/arrow-right-BWL8Hl6K.js","assets/arrow-up-BNWtJ6NE.js","assets/upload-Bq5fidDK.js","assets/circle-minus-CHiR1az9.js","assets/cloud-BkCUNbc7.js","assets/coins-B6rJlYQ0.js","assets/file-code-Cm27jzr0.js","assets/image-CwetkbD4.js","assets/folder-DH-nMTDt.js","assets/hard-drive-BxeWK7dU.js","assets/heart-C4jBeqJF.js","assets/inbox-BbYgNGwk.js","assets/laptop-BX8NMrC1.js","assets/lightbulb-C2QxQWpK.js","assets/link-BQJduA1e.js","assets/log-out-D4mnwX29.js","assets/paperclip-BIlwG8TK.js","assets/play-kF4y_ovX.js","assets/plus-CwK68LCA.js","assets/sun-Drx9AZm7.js","assets/workflow-Dv9IyYS0.js"])))=>i.map(i=>d[i]);
2
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./preload-helper-Cv2QeVDK.js";import{c as r}from"./chunk-5KNZJZUH-BUqIilZr.js";import{i,n as a,r as o}from"./use-edge-swipe-Bde-t-dW.js";import{t as s}from"./edge-swipe-arbiter-store-ChMvF7t2.js";var c=e(t(),1),l=new Set;function u(e){if(typeof e==`function`){e().catch(()=>{});return}for(let t of Object.values(e))typeof t==`function`&&t().catch(()=>{})}function d(e){!e||l.has(e)||(l.add(e),n(async()=>{let{routeTree:e}=await import(`./routes-Q2DdFIGG.js`).then(e=>e.n);return{routeTree:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317])).then(({routeTree:t})=>{let n=r(t,e);for(let e of n??[]){let t=e.route.lazy;t&&u(t)}}).catch(()=>{l.delete(e)}))}var f=.25;function p(e){e.style.transition=``,e.style.transform=``,e.style.willChange=``,e.style.opacity=``}function m({containerRef:e,onBack:t,enabled:n,navKey:r,prefetchHref:l}){let u=(0,c.useRef)(t);(0,c.useLayoutEffect)(()=>{u.current=t},[t]);let m=(0,c.useRef)(l);(0,c.useLayoutEffect)(()=>{m.current=l},[l]);let h=(0,c.useRef)(!1),g=(0,c.useRef)(new Set),_=(0,c.useRef)(!1),v=s.use.registerBackOwner(),y=s.use.unregisterBackOwner();(0,c.useEffect)(()=>{if(n)return v(),y},[n,v,y]),(0,c.useEffect)(()=>{_.current=!1;let t=g.current;return()=>{_.current=!0;for(let e of t)clearTimeout(e);t.clear();let n=e.current;n&&p(n)}},[e]);let b=(e,t)=>{let n=setTimeout(()=>{g.current.delete(n),_.current||e()},t);g.current.add(n)},x=(e,t)=>{e.style.transform=t===0?``:`translateX(${t}px)`},S=e=>{e.style.transition=`transform 200ms ${i}`,x(e,0);let t=()=>{e.removeEventListener(`transitionend`,t),p(e)};e.addEventListener(`transitionend`,t,{once:!0}),b(()=>p(e),250)},C=e=>{e.style.transition=`transform 150ms ${i}`,x(e,window.innerWidth);let t=!1,n=()=>{if(t||_.current)return;t=!0,e.removeEventListener(`transitionend`,n);let r=-(window.innerWidth*f);e.style.transition=`none`,e.style.transform=`translateX(${r}px)`,e.style.opacity=`0`,e.offsetWidth,h.current=!0,u.current(),b(()=>{h.current&&(h.current=!1,p(e))},400)};e.addEventListener(`transitionend`,n,{once:!0}),b(n,200)};o({enabled:n,onConfirm:()=>{d(m.current);let t=e.current;t&&(t.style.transition=`none`,t.style.willChange=`transform`)},onMove:(t,n)=>{let r=e.current;r&&x(r,a(t,n))},onCommit:()=>{let t=e.current;if(!t){u.current();return}C(t)},onCancel:t=>{let n=e.current;n&&(t?S(n):p(n))}}),(0,c.useLayoutEffect)(()=>{if(!h.current)return;h.current=!1;let t=e.current;if(!t)return;let n=!1,r=()=>{n||(n=!0,t.removeEventListener(`transitionend`,r),p(t))};t.style.transition=`transform 200ms ${i}, opacity 200ms ${i}`,t.style.transform=``,t.style.opacity=``,t.addEventListener(`transitionend`,r,{once:!0});let a=setTimeout(r,250);return()=>{clearTimeout(a),t.removeEventListener(`transitionend`,r),p(t)}},[r,e])}export{m as t};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";var n=/-?(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?/gi,r=/[MmLlHhVvCcSsQqTtAaZz][^MmLlHhVvCcSsQqTtAaZz]*/g;function i(e){let t=1/0,i=1/0,a=-1/0,o=-1/0,s=0,c=0,l=(e,n)=>{e<t&&(t=e),n<i&&(i=n),e>a&&(a=e),n>o&&(o=n)},u=e.match(r)??[];for(let e of u){let t=e[0],r=t.toUpperCase();if(r===`Z`)continue;let i=t!==r,a=(e.slice(1).match(n)??[]).map(Number);if(r===`H`)for(let e of a)s=i?s+e:e,l(s,c);else if(r===`V`)for(let e of a)c=i?c+e:e,l(s,c);else if(r===`A`)for(let e=0;e+7<=a.length;e+=7){let t=a[e+5],n=a[e+6];s=i?s+t:t,c=i?c+n:n,l(s,c)}else{let e=s,t=c;for(let n=0;n+2<=a.length;n+=2){let r=i?e+a[n]:a[n],o=i?t+a[n+1]:a[n+1];l(r,o),n+2>=a.length-a.length%2&&(s=r,c=o)}}}return t===1/0?{x:0,y:0,w:0,h:0}:{x:t,y:i,w:a-t,h:o-i}}function a(e){let t=Math.min(...e.map(e=>e.x)),n=Math.min(...e.map(e=>e.y)),r=Math.max(...e.map(e=>e.x+e.w)),i=Math.max(...e.map(e=>e.y+e.h));return{x:t,y:n,w:r-t,h:i-n}}var o=e(t(),1),s={w:1280,h:800};function c(){return typeof window>`u`?s:{w:window.innerWidth,h:window.innerHeight}}var l=s,u=new Set;function d(){for(let e of u)e()}function f(e){return u.size===0&&window.addEventListener(`resize`,d),u.add(e),()=>{u.delete(e),u.size===0&&window.removeEventListener(`resize`,d)}}function p(){let e=c();return(e.w!==l.w||e.h!==l.h)&&(l=e),l}function m(){return s}var h=()=>()=>{};function g(e=!0){return(0,o.useSyncExternalStore)(e?f:h,p,m)}function _(){let[e,t]=(0,o.useState)(null),[n,r]=(0,o.useState)(()=>c());return(0,o.useLayoutEffect)(()=>{if(!e)return;let t=()=>{let t=e.getBoundingClientRect();r({w:t.width,h:t.height})};t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[e]),{ref:t,size:n}}export{a as i,g as n,i as r,_ as t};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-DSjqKLvM.js";import{n as r}from"./QueryClientProvider-CMu7CkQU.js";import{t as i}from"./useQuery-Bz-fbQ-m.js";import{t as a}from"./useMutation-CXGTrp4W.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./typography-BeUa5Fd-.js";import{$ as c}from"./src-DjIqxQVd.js";import{_ as l,c as u,g as d,i as f,n as p,r as m,s as h,t as g}from"./use-save-twilio-credentials-COzAERtv.js";import{t as _}from"./check-CNBoUiyR.js";import{t as v}from"./link-2-CA1w44Gq.js";import{t as y}from"./loader-circle-oY5laABh.js";import{t as b}from"./modal-Bt1DPFgW.js";import{t as x}from"./input-BG94bPcH.js";import{n as S}from"./toast-BrKo5b4d.js";import{i as C,n as w,t as T}from"./api-errors-BTOPGXDV.js";import{i as E}from"./utils-1ZnEn_W1.js";import{$t as ee,an as D,rn as O}from"./sdk.gen-Br55zhZN.js";import{$ as k,Q as A,X as j,Z as M,c as N,l as P,w as F}from"./react-query.gen-vkBavCkI.js";import{n as I}from"./sdk.gen-CUWXKhFV.js";import{t as L}from"./copy-to-clipboard-SOu7HUET.js";import{t as R}from"./a2a-invite-B5XOcUL6.js";var z=e(t(),1),B=o(),V=[`no_one`,`guardian_only`,`trusted_contacts`,`any_contact`,`strangers`],H=`trusted_contacts`,U=new Set([`platform`,`a2a`]),W=new Set([`vellum`,`whatsapp`,`discord`]);function G(e){return W.has(e)}var K={no_one:`No one`,guardian_only:`Only you`,trusted_contacts:`Verified contacts`,any_contact:`Any contact`,strangers:`Strangers`};function q(e){return{no_one:`No one can message ${e} on this channel: every message is blocked, including yours.`,guardian_only:`Only you can message ${e}. Everyone else is turned away.`,trusted_contacts:`You and the people you’ve verified can message ${e}. Anyone else is asked to verify first, and you’re notified.`,any_contact:`You and any known contact can message ${e}, including contacts you haven’t verified yet. Strangers are asked to verify first.`,strangers:`Anyone can message ${e}, including complete strangers.`}}function J(e){return t=>{S.error(t instanceof Error?t.message:e)}}function Y(e){return typeof e==`string`&&V.includes(e)}function X(e){return U.has(e)}function Z(e){return(e?.policies??[]).filter(e=>!X(e.channelType)&&!G(e.channelType)).map(e=>({...e,policy:Y(e.policy)?e.policy:`trusted_contacts`}))}async function Q(e,t,n,r){if(X(t))throw new T(403,`Channel "${t}" is internal and is not user-configurable.`);let{data:i,error:a,response:o}=await I({path:{assistant_id:e,channel_type:t},body:{policy:n,note:r??null},throwOnError:!1});if(w(o,a,`Failed to save channel policy.`),!o.ok)throw new T(o.status,C(a,o,`Failed to save channel policy.`));if(!i?.policy)throw new T(500,`Gateway returned no policy in response.`);return i.policy}var te=`0.10.0`;function $(){return E(te)}function ne(e){let t=e-Date.now();if(t<=0)return`Expired`;let n=Math.ceil(t/(1e3*60*60*24));return n===1?`Expires in 1 day`:`Expires in ${n} days`}function re({open:e,assistantId:t,onClose:r}){let[i,o]=(0,z.useState)(!1),l=(0,z.useRef)(null),u=(0,z.useRef)(!1),d=a({...j({path:{assistant_id:t}})}),f=(0,z.useRef)(d.mutate);(0,z.useLayoutEffect)(()=>{f.current=d.mutate});let p=(0,z.useRef)(d.reset);(0,z.useLayoutEffect)(()=>{p.current=d.reset}),(0,z.useEffect)(()=>{e&&!u.current&&f.current({path:{assistant_id:t}}),u.current=e},[e,t]),(0,z.useEffect)(()=>()=>{l.current&&clearTimeout(l.current)},[]);let m=(0,z.useCallback)(()=>{p.current(),o(!1),l.current&&=(clearTimeout(l.current),null),r()},[r]),h=(0,z.useCallback)(e=>{L(e,{errorMessage:`Couldn't copy the invite link.`,onCopied:()=>{o(!0),l.current&&clearTimeout(l.current),l.current=setTimeout(()=>o(!1),2e3)}})},[]),g=d.isSuccess&&d.data.token?R({senderAssistantId:t,token:d.data.token}):``;return(0,B.jsx)(b.Root,{open:e,onOpenChange:e=>{e||m()},children:(0,B.jsxs)(b.Content,{size:`sm`,children:[(0,B.jsx)(b.Header,{children:(0,B.jsx)(b.Title,{children:`Share Connection Link`})}),(0,B.jsx)(b.Body,{children:d.isPending?(0,B.jsxs)(`div`,{className:`flex items-center gap-2 py-2 text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:[(0,B.jsx)(y,{className:`h-4 w-4 animate-spin`}),`Creating invite link…`]}):d.isError?(0,B.jsxs)(`div`,{className:`space-y-3`,children:[(0,B.jsx)(`p`,{role:`alert`,className:`!m-0 text-body-medium-lighter`,style:{color:`var(--system-negative-strong)`},children:`Failed to create invite link. Make sure A2A is enabled for your assistant.`}),(0,B.jsx)(n,{variant:`outlined`,onClick:()=>d.mutate({path:{assistant_id:t}}),children:`Try Again`})]}):d.isSuccess?(0,B.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,B.jsx)(s,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:`Share this link with another assistant owner to establish a connection.`}),(0,B.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,B.jsx)(x,{type:`text`,readOnly:!0,value:g,fullWidth:!0,wrapperClassName:`flex-1`,className:`font-mono`,onFocus:e=>e.currentTarget.select()}),(0,B.jsx)(`button`,{type:`button`,onClick:()=>h(g),"aria-label":`Copy invite link`,className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-md border border-[var(--border-base)] hover:bg-[var(--surface-hover)]`,children:i?(0,B.jsx)(_,{className:`h-4 w-4`}):(0,B.jsx)(c,{className:`h-4 w-4`})})]}),d.data.expiresAt!=null&&(0,B.jsx)(s,{variant:`body-small-default`,style:{color:`var(--content-tertiary)`},children:ne(d.data.expiresAt)})]}):null}),(0,B.jsx)(b.Footer,{children:(0,B.jsx)(n,{variant:`outlined`,onClick:m,children:`Done`})})]})})}function ie({onClick:e}){return(0,B.jsx)(n,{variant:`outlined`,size:`compact`,leftIcon:(0,B.jsx)(v,{className:`h-3.5 w-3.5`}),onClick:e,children:`Share Connection Link`})}function ae(e){let t=r(),n=$(),o=(0,z.useMemo)(()=>({path:{assistant_id:e}}),[e]),s=(0,z.useMemo)(()=>l(o),[o]),c=i({...d(o),enabled:n,select:Z}),f=(0,z.useMemo)(()=>{let e={};for(let t of c.data??[])u(t.channelType)&&(e[t.channelType]=t.policy);return e},[c.data]),p=a({mutationFn:({channelKey:t,policy:n})=>Q(e,t,n),onSuccess:()=>t.invalidateQueries({queryKey:s}),onError:J(`Failed to save channel policy`)}),m=(0,z.useCallback)((e,t)=>{p.mutate({channelKey:e,policy:t})},[p]);return n?{policies:f,savingKey:p.isPending?p.variables?.channelKey??null:null,isLoading:c.isPending,isError:c.isError,onChange:m}:{policies:void 0,savingKey:null,isLoading:!1,isError:!1,onChange:void 0}}var oe={slack:`I want to reach you on Slack. Let's set it up.`,telegram:`I want to reach you on Telegram. Let's set it up.`,phone:`I want to be able to call you. Let's set you up with a phone number.`},se={slack:`Slack is set up but not working. Can you finish it off?`,telegram:`Telegram is set up but not working. Can you finish it off?`,phone:`My phone number is set up but not working. Can you finish it off?`},ce=15e3;function le({assistantId:e,onStartSetupConversation:t}){let n=r(),o=(0,z.useMemo)(()=>({path:{assistant_id:e}}),[e]),s=(0,z.useMemo)(()=>P(o),[o]),c=i({...N(o),enabled:!!e,refetchInterval:ce,select:e=>e.snapshots}),l=(0,z.useMemo)(()=>ue(c.data??[]),[c.data]),u=l.some(e=>e.key===`slack`&&e.status===`ready`),d=i({...M(o),enabled:u,select:e=>e.threadMode}),h=ae(e),_=(0,z.useCallback)(()=>n.invalidateQueries({queryKey:s}),[n,s]),v=a({mutationFn:async t=>{let n={path:{assistant_id:e},throwOnError:!0};t===`slack`?await ee(n):t===`telegram`?await O(n):t===`phone`&&await D(n)},onSettled:(t,r,i)=>{_(),i===`slack`&&f(n,e)}}),y=p({assistantId:e}),b=m({assistantId:e}),x=g({assistantId:e}),S=a({...k(),onSuccess:()=>{n.invalidateQueries({queryKey:A(o)})}}),C=y.mutate,w=(0,z.useCallback)(e=>{C(e)},[C]),T=b.mutate,E=(0,z.useCallback)((e,t)=>{T({botToken:e,appToken:t})},[T]),j=S.mutate,F=(0,z.useCallback)(t=>{j({path:{assistant_id:e},body:{threadMode:t}})},[j,e]),I=x.mutateAsync,L=(0,z.useCallback)(async(e,t)=>{await I({accountSid:e,authToken:t})},[I]),R=(0,z.useCallback)((e,n=!1)=>{t&&t(n?se[e]:oe[e])},[t]),B=v.mutate,V=(0,z.useCallback)(e=>{B(e)},[B]);return{channels:l,pendingChannelKey:v.isPending?v.variables??null:null,slackThreadMode:d.data,slackThreadModePending:S.isPending,channelPolicies:h.policies,policySavingKey:h.savingKey,policiesLoading:h.isLoading,policiesError:h.isError,onChannelPolicyChange:h.onChange,onSetup:t?R:void 0,onDisconnect:V,onSaveTelegramToken:w,telegramSaveStatus:y.status,telegramSaveError:y.error?.message??null,onSaveSlackConfig:E,slackSaveStatus:b.status,slackSaveError:b.error?.message??null,onSlackThreadModeChange:F,onSaveTwilioCredentials:L}}function ue(e){let t=new Map;for(let n of e)t.set(n.channel,n);return h.map(e=>{let n=t.get(e);return{key:e,status:de(n),address:n?.channelHandle??void 0}})}function de(e){return e?e.ready||e.setupStatus===`ready`?`ready`:e.setupStatus===`incomplete`?`incomplete`:`not_configured`:`not_configured`}function fe(e){let t=r(),[n,i]=(0,z.useState)(!1);return{isOpen:n,open:(0,z.useCallback)(()=>{i(!0)},[]),close:(0,z.useCallback)(()=>{i(!1),t.invalidateQueries({queryKey:F({path:{assistant_id:e}})})},[t,e])}}export{$ as a,J as c,K as d,q as f,re as i,H as l,le as n,Q as o,ie as r,Z as s,fe as t,V as u};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{r as t}from"./capture-error-Cdvvw9J5.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-DSjqKLvM.js";import{n as i}from"./QueryClientProvider-CMu7CkQU.js";import{t as a}from"./useQuery-Bz-fbQ-m.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./cn-DFWryB3N.js";import{t as c}from"./typography-BeUa5Fd-.js";import{H as l,W as u}from"./src-DjIqxQVd.js";import{t as d}from"./chevron-down-B_6pb9kS.js";import{t as f}from"./chevron-right-Dx_5VMo6.js";import{t as p}from"./loader-circle-oY5laABh.js";import{t as m}from"./modal-Bt1DPFgW.js";import{n as h,t as g}from"./input-BG94bPcH.js";import{t as _}from"./toggle-C-v4x7_A.js";import{n as v}from"./toast-BrKo5b4d.js";import{t as y}from"./select-B86W_Hs8.js";import{t as b}from"./is-electron-BSK3AUxG.js";import{o as x}from"./i18n-zb2mgr1B.js";import{t as S}from"./Trans-Ch_EPHgV.js";import{t as C}from"./useTranslation-Dn8TOHE6.js";import{r as w}from"./api-errors-BTOPGXDV.js";import{A as T,B as E,D,E as O,F as k,N as A,O as j,P as M,R as ee,d as N,j as P,k as F,s as I,u as L,w as R,z}from"./profile-pickers-CKLILvRc.js";import{t as B}from"./assistant-identity-store-DTP7xfNP.js";import{i as V,n as te,o as H}from"./utils-1ZnEn_W1.js";import{Gt as U,Kt as ne,Xt as re,Zt as ie,fr as ae,pr as oe}from"./sdk.gen-Br55zhZN.js";import{n as W}from"./use-platform-gate-DzpdjzIz.js";import{r as se}from"./use-is-org-ready-CWNhmJ2b.js";import{Tt as ce,Y as le,u as ue,wt as G}from"./react-query.gen-vkBavCkI.js";var K=e(n(),1),de={maxTokens:!1,contextWindow:!1,effort:!1,speed:!1,verbosity:!1,temperature:!1,topP:!1,thinking:!1,thinkingLevel:!1};function q(e){return e===`gpt-5`||e.startsWith(`gpt-5.`)||e.startsWith(`gpt-5-`)}function J(e){return e.startsWith(`anthropic/`)}function fe(e,t){let n=t.toLowerCase();return z(e).find(e=>e.id.toLowerCase()===n)}function pe(e,t){return fe(e,t)?.adaptiveThinkingOnly===!0}function me(e){return J(e)||e.startsWith(`x-ai/grok-4`)||e.startsWith(`deepseek/deepseek-r1`)||e===`qwen/qwen3.5-plus-02-15`||e===`qwen/qwen3.5-397b-a17b`||e===`moonshotai/kimi-k2.6`}var he=[`minimal`,`low`,`medium`,`high`],ge=[`low`,`medium`,`high`];function _e(e){return/^gemini-3.*pro/.test(e)}var ve=new Set(he);function ye(e){return typeof e==`string`&&ve.has(e)}function Y(e){return _e(e.toLowerCase())?ge:he}function be(e,t){let n=fe(e,t);return n?.supportsThinking===void 0?e===`anthropic`?!0:e===`openrouter`?me(t):e===`vercel-ai-gateway`?J(t):!1:n.supportsThinking}function xe(e,t,n){return e===`anthropic`?!t.includes(`haiku`)&&n:e===`openai`?q(t):e===`openrouter`||e===`vercel-ai-gateway`?J(t)?!t.includes(`haiku`)&&n:n:e===`fireworks`||e===`together`||e===`baseten`?n:!1}var Se=new Set([`openai-compatible`,`fireworks`,`minimax`,`atlascloud`,`baseten`,`ollama`,`openrouter`,`together`,`vercel-ai-gateway`]);function Ce(e,t){return t||Se.has(e)}function we(e,t){if(!e||!t)return de;let n=e.toLowerCase(),r=n===`chatgpt`?`openai`:n,i=t.toLowerCase(),a=r===`anthropic`||(r===`openrouter`||r===`vercel-ai-gateway`)&&J(i),o=be(r,i);return{maxTokens:!0,contextWindow:!0,effort:xe(r,i,o),speed:r===`anthropic`&&i.includes(`opus`),verbosity:r===`openai`&&q(i),temperature:a,topP:Ce(r,a),thinking:(r===`anthropic`||r===`openrouter`||r===`vercel-ai-gateway`&&J(i))&&o&&!pe(r,i),thinkingLevel:r===`gemini`&&o}}var X=o(),Z=[`inherit`,`none`,`low`,`medium`,`high`,`xhigh`,`max`],Q=[`standard`,`fast`],Te=[`low`,`medium`,`high`],Ee=`default`,De=64e3;function Oe({label:e,value:t,onChange:n,defaultValue:i,max:a,disabled:o}){let{t:s}=C(`settings`),c=t===null,u=t??i,[d,f]=(0,K.useState)(c?``:String(t)),[p,m]=(0,K.useState)(t);t!==p&&(m(t),f(t===null?``:String(t)));function h(e){f(e);let t=e.trim();if(t===``){n(null);return}let r=Number(t);Number.isFinite(r)&&r>=1e3&&r<=a&&n(r)}function _(e){let r=e.trim();if(r===``){n(null);return}let i=Number(r);if(!Number.isFinite(i)){f(t===null?``:String(t));return}let o=L(i,a);f(String(o)),n(o)}return(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e}),c?(0,X.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:s(`profileAdvancedParams.defaultValueLabel`,{value:N(i)})}):null]}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(`div`,{className:`flex-1`,children:(0,X.jsx)(l,{value:u,onValueChange:e=>n(typeof e==`number`?e:e[0]),min:F,max:a,step:T,disabled:o,"aria-label":e})}),(0,X.jsx)(g,{type:`number`,inputMode:`numeric`,value:d,placeholder:String(i),onChange:e=>h(e.target.value),onBlur:e=>_(e.target.value),onKeyDown:e=>{e.key===`Enter`&&_(e.currentTarget.value)},min:F,max:a,step:T,disabled:o,"aria-label":s(`profileAdvancedParams.tokensAriaLabel`,{label:e}),wrapperClassName:`w-32 shrink-0`,className:`text-right tabular-nums`}),(0,X.jsx)(r,{variant:`ghost`,size:`compact`,onClick:()=>n(null),disabled:o||c,children:s(`profileAdvancedParams.reset`)})]})]})}function ke({visibility:e,isReadOnly:t,model:n,selectedModel:r,defaultMaxOutputTokens:i,defaultContextWindowMaxInputTokens:a,maxTokens:o,onMaxTokensChange:s,contextWindowMaxInputTokens:c,onContextWindowChange:d,effort:f,onEffortChange:p,speed:m,onSpeedChange:h,verbosity:g,onVerbosityChange:v,temperatureEnabled:y,onTemperatureEnabledChange:b,temperature:x,onTemperatureChange:S,topPEnabled:w,onTopPEnabledChange:T,topP:E,onTopPChange:D,thinkingEnabled:O,onThinkingEnabledChange:k,thinkingStreamThinking:A,onThinkingStreamThinkingChange:j,thinkingLevel:M,onThinkingLevelChange:ee}){let{t:N}=C(`settings`),P=I(),F=r?.maxOutputTokens??De,L=r?.contextWindowTokens??2e5,R=Math.min(i??De,F),z=Math.min(a??2e5,L);return(0,X.jsxs)(`div`,{className:`space-y-4`,children:[!t&&P&&(0,X.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:N(`profileAdvancedParams.snapshotsHint`)}),e.maxTokens&&(0,X.jsx)(Oe,{label:N(`profileAdvancedParams.maxOutputTokensLabel`),value:o,onChange:s,defaultValue:R,max:F,disabled:t}),e.contextWindow&&(0,X.jsx)(Oe,{label:N(`profileAdvancedParams.contextWindowLabel`),value:c,onChange:d,defaultValue:z,max:L,disabled:t||!r}),e.effort&&(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:N(`profileAdvancedParams.effortLabel`)}),(0,X.jsx)(u,{items:Z.map(e=>({value:e,label:e===`inherit`?N(`profileAdvancedParams.effortSegmentDefault`):e,disabled:t})),value:f,onChange:e=>p(e),ariaLabel:N(`profileAdvancedParams.effortLabel`)})]}),e.speed&&(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:N(`profileAdvancedParams.speedLabel`)}),(0,X.jsx)(u,{items:Q.map(e=>({value:e,label:e,disabled:t})),value:m,onChange:e=>h(e),ariaLabel:N(`profileAdvancedParams.speedLabel`)})]}),e.verbosity&&(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:N(`profileAdvancedParams.verbosityLabel`)}),(0,X.jsx)(u,{items:Te.map(e=>({value:e,label:e,disabled:t})),value:g,onChange:e=>v(e),ariaLabel:N(`profileAdvancedParams.verbosityLabel`)})]}),e.temperature&&(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(_,{checked:y,onChange:e=>b(e),label:N(`profileAdvancedParams.temperatureLabel`),disabled:t}),y&&(0,X.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,X.jsx)(`div`,{className:`flex-1`,children:(0,X.jsx)(l,{value:x,onValueChange:e=>S(typeof e==`number`?e:e[0]),min:0,max:2,step:.01,disabled:t,showValue:!0,formatValue:e=>typeof e==`number`?e.toFixed(2):String(e)})})})]}),e.topP&&(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(_,{checked:w,onChange:e=>T(e),label:N(`profileAdvancedParams.topPLabel`),disabled:t}),w&&(0,X.jsx)(`div`,{className:`flex items-center justify-between`,children:(0,X.jsx)(`div`,{className:`flex-1`,children:(0,X.jsx)(l,{value:E,onValueChange:e=>D(typeof e==`number`?e:e[0]),min:0,max:1,step:.01,disabled:t,showValue:!0,formatValue:e=>typeof e==`number`?e.toFixed(2):String(e)})})})]}),e.thinking&&(0,X.jsxs)(`div`,{className:`space-y-3`,children:[(0,X.jsx)(_,{checked:O,onChange:e=>{k(e),e||j(!1)},label:N(`profileAdvancedParams.enableExtendedThinkingLabel`),disabled:t}),O&&(0,X.jsx)(`div`,{className:`pl-4`,children:(0,X.jsx)(_,{checked:A,onChange:e=>j(e),label:N(`profileAdvancedParams.streamThinkingTokensLabel`),disabled:t})})]}),e.thinkingLevel&&(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsxs)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:[N(`profileAdvancedParams.thinkingLevelLabel`),` `,(0,X.jsx)(`span`,{className:`text-[var(--content-disabled)]`,children:N(`profileAdvancedParams.thinkingLevelInheritHint`)})]}),(0,X.jsx)(u,{items:[`default`,...Y(n)].map(e=>({value:e,label:`${e}`,disabled:t})),value:M,onChange:ee,ariaLabel:N(`profileAdvancedParams.thinkingLevelLabel`)})]})]})}function Ae(e){return z(e).filter(e=>A.has(e.id))}function je(e,t,n){return!e||z(e).length===0?!1:(t?n.find(e=>e.name===t):void 0)?.auth.type===`oauth_subscription`?!0:!t&&n.length>0&&n.every(e=>e.auth.type===`oauth_subscription`)}var Me=[`anthropic`,`openai`,`gemini`,`ollama`,`fireworks`,`together`,`openrouter`,`vercel-ai-gateway`,`minimax`,`atlascloud`,`litellm`,`baseten`,`poolside`,`openai-compatible`];function Ne(e){return e===`ollama`?`none`:`api_key`}function Pe(e){let t=e.split(`/`);return t.length<3||t[0]!==`credential`?null:{service:t[1],field:t.slice(2).join(`/`)}}function Fe(e){switch(e){case 409:return`A provider with these settings already exists.`;case 404:return`Provider not found. It may have been removed.`;case 400:return`Invalid configuration. Check the provider settings.`;default:return`Failed to save provider. Please try again.`}}function Ie(e,t){if(e!==400)return;let n=t?.error?.message;return typeof n==`string`&&n.length>0?n:void 0}function Le(e){return e.label?e.label:e.auth.type===`oauth_subscription`?k.chatgpt:k[e.provider]??e.provider}var Re=new Set([`ollama`]);function ze(e,t){return e===t?!0:e===`vellum`&&D.has(t)}function Be(e,t){return!Re.has(e)||t}function Ve(e){return O.filter(t=>Be(t,e))}function He(e){return Me.filter(t=>Be(t,e))}function Ue(e){return Object.keys(M).filter(t=>Be(t,e))}function We(){return Ve(W())}function Ge(){return He(W())}function Ke(){return Ue(W())}function qe(e,t){let n=[...new Set(e.map(e=>e.provider))].filter(e=>Be(e,t)),r=[];return n.includes(`vellum`)&&r.push(P),n.includes(`chatgpt`)&&r.push(R),r.push(...Me.filter(e=>n.includes(e)),...n.filter(e=>e!==`vellum`&&e!==`chatgpt`&&!Me.includes(e))),r}function Je(e,t){let n=new Set(e.map(e=>e.provider));return He(t).filter(e=>e!==`openai-compatible`&&!n.has(e))}var Ye=`::`;function $(e,t){return`${e}${Ye}${t}`}function Xe(e){let t=e.indexOf(Ye);return t<=0?null:{provider:e.slice(0,t),connectionName:e.slice(t+2)}}var Ze=new Set([P,R]);function Qe(e){let t=new Map;for(let n of e)Ze.has(n.provider)||n.provider===`openai-compatible`||t.set(n.provider,(t.get(n.provider)??0)+1);return new Set([...t.entries()].filter(([,e])=>e>=2).map(([e])=>e))}function $e(e,t,n,r=`Default`){let i=Qe(t),a=[];for(let o of e){if(o===`vellum`){a.push({value:o,label:n(o),meta:`Managed`});continue}if(o===`openai-compatible`){for(let e of t)e.provider===`openai-compatible`&&a.push({value:$(o,e.name),label:e.label&&e.label.trim()!==``?e.label:e.name,meta:`Custom`});continue}if(!i.has(o)){a.push({value:o,label:n(o)});continue}a.push({value:o,label:n(o),meta:r});for(let e of t)e.provider===o&&a.push({value:$(o,e.name),label:e.label&&e.label.trim()!==``?e.label:e.name,meta:n(o)})}return a}function et(e){return(e??[]).map(e=>({id:e.id,displayName:e.displayName??e.id}))}var tt=`__custom-model-id__`;function nt({text:e}){return(0,X.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:e})}function rt({provider:e,model:t,providerConnection:n,onProviderChange:i,onModelChange:a,onConnectionChange:o,connections:s,isReadOnly:l,availableConnectionsForProvider:u,connectionNotFound:d,hideProviderField:f=!1,providerError:p=null}){let m=e.length>0&&t.length===0,{t:h}=C(`settings`),[_,v]=(0,K.useState)(!1),b=je(e,n,u),x=e!==``&&e!==`chatgpt`&&!b;(0,K.useEffect)(()=>{x||v(!1)},[e,x]);function S(e){if(e===tt){v(!0),a(``);return}a(e)}let w=Ke(),T=W(),E=(0,K.useMemo)(()=>{let t=qe(s??[],T);return e&&!t.includes(e)?[...t,e]:t},[s,e,T]),D=s===void 0?w:E,O=D.length===0&&!l,A=e===`openai`&&!l&&u.length===0&&(s??[]).some(e=>e.provider===`chatgpt`||e.auth.type===`oauth_subscription`)?h(`profileEditor.subscriptionSteeringHint`):void 0,M=(0,K.useMemo)(()=>{if(!e)return[];let t=z(e);if(t.length>0)return je(e,n,u)?Ae(e):t;if(n){let e=u.find(e=>e.name===n);return e?et(e.models):[]}let r=new Set,i=[];for(let e of u)for(let t of e.models??[])r.has(t.id)||(r.add(t.id),i.push({id:t.id,displayName:t.displayName??t.id}));return i},[e,n,u]),ee=(0,K.useMemo)(()=>{if(!t||M.some(e=>e.id===t))return M;let n=z(e).find(e=>e.id===t),r=u.flatMap(e=>e.models??[]).find(e=>e.id===t),i=n?.displayName??r?.displayName??t;return[...M,{id:t,displayName:i}]},[t,M,e,u]),N=e?M.length===0?e===`openai-compatible`?`configure-connection`:`unknown-to-catalog`:null:`no-provider`,P=(0,K.useMemo)(()=>{switch(N){case`no-provider`:return{placeholder:h(`profileEditorProviderSection.modelEmptyNoProviderPlaceholder`),hint:null};case`configure-connection`:return{placeholder:h(`profileEditorProviderSection.modelEmptyConfigureConnectionPlaceholder`),hint:h(`profileEditorProviderSection.modelEmptyConfigureConnectionHint`)};case`unknown-to-catalog`:return{placeholder:h(`profileEditorProviderSection.modelEmptyUnknownPlaceholder`),hint:h(`profileEditorProviderSection.modelEmptyUnknownHint`)};default:return null}},[N,h]);(0,K.useEffect)(()=>{if(!e||_)return;let n=z(e);n.length>0&&!n.some(e=>e.id===t)||t&&M.length>0&&!M.some(e=>e.id===t)&&a(``)},[t,M,a,e,_]);let F=h(`aiProviderPicker.defaultEntryMeta`),I=(0,K.useMemo)(()=>{let t=$e(D,s??[],e=>k[e]??e,F).map(({value:e,label:t,meta:n})=>({value:e,label:t,suffix:n?(0,X.jsx)(nt,{text:n}):void 0}));return d&&e===`openai-compatible`&&n&&t.push({value:$(j,n),label:`${n} ${h(`profileEditorProviderSection.providerNotFoundSuffix`)}`,suffix:void 0}),e===`openai-compatible`&&!n&&t.push({value:j,label:k[`openai-compatible`]??`openai-compatible`,suffix:void 0}),t},[D,s,d,e,n,F,h]),L=e&&n?$(e,n):null,R=(()=>{if(!n)return null;let e=s?.find(e=>e.name===n);return e&&(e.provider===`vellum`||e.provider===`chatgpt`)?e.provider:null})(),B=e=>I.some(t=>t.value===e),V=L!==null&&B(L)?L:R!==null&&B(R)?R:e;return(0,X.jsxs)(X.Fragment,{children:[!f&&(0,X.jsx)(y,{id:`profile-editor-provider`,label:h(`profileEditorProviderSection.providerLabel`),errorText:p&&O?h(`profileEditorProviderSection.noProviderConnectionsHint`):p,helperText:O&&!p?h(`profileEditorProviderSection.noProviderConnectionsHint`):A,value:V,onChange:t=>{let n=Xe(t);if(n){i(n.provider),o(n.connectionName);return}i(t),t===e&&o(``)},disabled:l,placeholder:h(`profileEditorProviderSection.selectProviderPlaceholder`),options:I}),d&&!l&&(0,X.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:h(`profileEditorProviderSection.connectionNotFound`)}),(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:h(`profileEditorProviderSection.modelLabel`)}),_?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(g,{value:t,onChange:e=>a(e.target.value),disabled:l,placeholder:h(`profileEditorProviderSection.customModelPlaceholder`),"aria-label":h(`profileEditorProviderSection.customModelAriaLabel`),fullWidth:!0,autoFocus:!0}),(0,X.jsx)(r,{variant:`link`,size:`compact`,disabled:l,onClick:()=>v(!1),children:h(`profileEditorProviderSection.chooseFromList`)})]}):(0,X.jsx)(y,{value:t,onChange:S,disabled:l||!e,"aria-label":h(`profileEditorProviderSection.modelAriaLabel`),placeholder:P?.placeholder??h(`profileEditorProviderSection.selectModelPlaceholder`),options:[...ee.map(e=>({value:e.id,label:e.displayName})),...x?[{value:tt,label:h(`profileEditorProviderSection.enterCustomModelIdOption`)}]:[]]}),_?(0,X.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:h(`profileEditorProviderSection.enterCustomModelIdHint`)}):m&&!l?(0,X.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:P?.hint??h(`profileEditorProviderSection.selectModelError`)}):null]})]})}function it(e,t,n){return[`credentialPresence`,e,t,n]}function at({assistantId:e,credentialKind:n,credentialName:r,enabled:i=!0}){let o=se(),s=a({queryKey:it(e??``,n,r),queryFn:async()=>{let{data:t}=await oe({path:{assistant_id:e},body:{type:n,name:r},throwOnError:!0});return t.found},enabled:!!e&&i&&o,retry:t,staleTime:3e4});return{hasStoredCredential:s.data??!1,isLoading:s.isLoading}}function ot({assistantId:e,onConnected:t}){let{t:n}=C(`settings`),[i,a]=(0,K.useState)(`idle`),[o,s]=(0,K.useState)(``),[l,u]=(0,K.useState)(null);async function d(){a(`starting`),u(null);let t=window.open(`about:blank`,`_blank`);try{let{data:{authorize_url:n}}=await ne({path:{assistant_id:e},throwOnError:!0});t?(t.opener=null,t.location.href=n):window.open(n,`_blank`,`noopener`),a(`paste_url`)}catch{t?.close(),a(`failed`),u(x(`settings:chatgptOauthSection.startFailed`))}}async function f(){u(null);let n=o.trim();if(!n){u(x(`settings:chatgptOauthSection.pasteUrlError`));return}let r;try{r=new URL(n)}catch{u(x(`settings:chatgptOauthSection.invalidUrl`));return}let i=r.searchParams.get(`code`),s=r.searchParams.get(`state`);if(!i){u(x(`settings:chatgptOauthSection.missingCode`));return}if(!s){u(x(`settings:chatgptOauthSection.missingState`));return}a(`exchanging`);try{await U({path:{assistant_id:e},body:{code:i,state:s},throwOnError:!0}),a(`completed`);let{data:n}=await re({path:{assistant_id:e},throwOnError:!0});t(n.connections.find(e=>e.name===`chatgpt-subscription`||e.name===`openai-chatgpt`)||{name:`chatgpt-subscription`,provider:`chatgpt`,auth:{type:`oauth_subscription`,credential:`credential/openai/chatgpt-subscription`},label:`ChatGPT Subscription`,createdAt:Date.now(),updatedAt:Date.now(),baseUrl:null,models:null,isManaged:!1})}catch{a(`failed`),u(x(`settings:chatgptOauthSection.completeFailed`))}}function m(){a(`idle`),s(``),u(null)}return(0,X.jsxs)(`div`,{className:`space-y-3 rounded-lg border border-[var(--border-base)] p-4`,children:[(0,X.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:n(`chatgptOauthSection.intro`)}),i===`idle`||i===`paste_url`?(0,X.jsxs)(`div`,{className:`space-y-3`,children:[(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(c,{variant:`body-small-default`,as:`p`,className:i===`paste_url`?`text-[var(--content-tertiary)] line-through`:`text-[var(--content-secondary)]`,children:n(i===`idle`?`chatgptOauthSection.step1Idle`:`chatgptOauthSection.step1PasteUrl`)}),(0,X.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-secondary)]`,children:n(`chatgptOauthSection.step2`)}),(0,X.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-secondary)]`,children:n(`chatgptOauthSection.step3`)})]}),i===`idle`?(0,X.jsx)(r,{variant:`outlined`,size:`compact`,onClick:()=>void d(),children:n(`chatgptOauthSection.signInButton`)}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(g,{value:o,onChange:e=>{s(e.target.value),u(null)},placeholder:n(`chatgptOauthSection.urlPlaceholder`),fullWidth:!0}),(0,X.jsx)(`div`,{className:`flex justify-end`,children:(0,X.jsx)(r,{variant:`primary`,size:`compact`,disabled:!o.trim(),onClick:()=>void f(),children:n(`chatgptOauthSection.completeSignIn`)})})]})]}):null,i===`starting`?(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(p,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,X.jsx)(c,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:n(`chatgptOauthSection.startingSignIn`)})]}):null,i===`exchanging`?(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(p,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,X.jsx)(c,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:n(`chatgptOauthSection.completingSignIn`)})]}):null,i===`completed`?(0,X.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--system-positive-strong)]`,children:n(`chatgptOauthSection.connected`)}):null,l?(0,X.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:l}):null,i===`failed`?(0,X.jsx)(r,{variant:`outlined`,size:`compact`,onClick:m,children:n(`chatgptOauthSection.tryAgain`)}):null]})}var st=new Set(Object.entries(k).flatMap(([e,t])=>[e.toLowerCase(),t.toLowerCase()])),ct={reserved:`That name belongs to a built-in provider. Pick another.`,duplicate:`A custom provider with this name already exists.`};function lt(e,t,n){let r=e.trim().toLowerCase();return r?st.has(r)?`reserved`:(t??[]).some(e=>e.provider===`openai-compatible`&&e.name!==n&&(e.label?.trim()||e.name).toLowerCase()===r)?`duplicate`:null:null}function ut(e){return e.toLowerCase().split(/[^a-z0-9]+/).filter(Boolean).join(`-`)}function dt(e){return ut(e)}function ft(e,t){let n=new Set(t.map(e=>e.toLowerCase()));if(!n.has(e.toLowerCase()))return e;let r=2,i=`${e}-${r}`;for(;n.has(i.toLowerCase());)r+=1,i=`${e}-${r}`;return i}function pt(e,t){return{name:k[e]??e,key:ft(`${dt(e)}-personal`,t)}}function mt(e,t){return{name:e,key:ft(dt(e),t)}}function ht({apiKeyValue:e,onApiKeyChange:t,credential:n,onCredentialChange:i,isLoadingCredential:a,apiKeyPlaceholder:o,provider:s,providerCredentials:l,showAdvancedSection:u,onError:d}){let{t:m}=C(`settings`),[h,_]=(0,K.useState)(!1),[v,b]=(0,K.useState)(!1),[x,S]=(0,K.useState)(``);return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:m(`providerEditorApiKeySection.apiKeyLabel`)}),a?(0,X.jsxs)(`div`,{className:`flex items-center gap-2 h-8`,children:[(0,X.jsx)(p,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,X.jsx)(c,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:m(`providerEditorApiKeySection.loading`)})]}):(0,X.jsx)(g,{type:`password`,value:e,onChange:e=>{t(e.target.value),d(null)},placeholder:o,fullWidth:!0})]}),u&&(0,X.jsxs)(`div`,{children:[(0,X.jsxs)(`button`,{type:`button`,"aria-expanded":h,onClick:()=>_(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,X.jsx)(f,{className:`h-4 w-4 transition-transform ${h?`rotate-90`:``}`}),(0,X.jsx)(`span`,{children:m(`providerEditorApiKeySection.advanced`)}),(0,X.jsx)(`span`,{className:`text-[var(--content-tertiary)] ml-1`,children:m(`providerEditorApiKeySection.credentialReferenceSuffix`)})]}),h&&(0,X.jsxs)(`div`,{className:`mt-2 space-y-3`,children:[(()=>{let e=l.map(e=>{let t=`credential/${e.service}/${e.field}`;return{label:t,value:t}}),t=e.some(e=>e.value===n),r=n&&!t?[{label:n,value:n},...e]:e;return r.length===0?null:(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:m(`providerEditorApiKeySection.credentialReferenceLabel`)}),(0,X.jsx)(y,{"aria-label":m(`providerEditorApiKeySection.credentialReferenceAriaLabel`),value:n,onChange:e=>{i(e)},options:r})]})})(),v&&(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:m(`providerEditorApiKeySection.newCredentialNameLabel`)}),(0,X.jsxs)(`div`,{className:`flex gap-2`,children:[(0,X.jsx)(g,{value:x,onChange:e=>S(e.target.value),placeholder:m(`providerEditorApiKeySection.newCredentialPlaceholder`),fullWidth:!0}),(0,X.jsx)(r,{variant:`primary`,size:`compact`,disabled:!x.trim(),onClick:()=>{let e=x.trim();e&&(i(`credential/${s}/${e}`),b(!1),S(``))},children:m(`providerEditorApiKeySection.use`)})]})]}),(0,X.jsx)(`div`,{className:`flex justify-start`,children:(0,X.jsx)(r,{variant:`ghost`,onClick:()=>{v?(b(!1),S(``)):b(!0)},children:m(v?`providerEditorApiKeySection.cancel`:`providerEditorApiKeySection.newCredential`)})})]})]})]})}var gt=`•`.repeat(8);function _t(e,t){return t?gt:e}function vt(e){let t=[];for(let n of e)if(n.type===`api_key`)t.push({service:n.name,field:`api_key`});else if(n.type===`credential`){let e=n.name.lastIndexOf(`:`);if(e>=0){let r=n.name.slice(0,e),i=n.name.slice(e+1);r&&i&&t.push({service:r,field:i})}}return t}function yt({assistantId:e,enabled:n=!0}){let r=se(),i=a({...G({path:{assistant_id:e}}),enabled:!!e&&n&&r,select:e=>vt(e.secrets),retry:t,staleTime:3e4});return{credentials:i.data??[],isLoading:i.isLoading}}function bt({assistantId:e,existingNames:t,connections:n,defaultProviderType:a,hideProviderSelect:o=!1,onCreated:s,onCancel:l,variant:u=`modal`}){let{t:d}=C(`settings`),p=Ge(),h=a&&p.includes(a)?a:p[0]??`anthropic`,_=pt(h,t),[b,x]=(0,K.useState)(h===`openai-compatible`?``:_.name),[w,T]=(0,K.useState)(_.key),[E,D]=(0,K.useState)(h),O=E===`chatgpt`,A=O?`openai`:E,j=O?`oauth_subscription`:Ne(A),[M,ee]=(0,K.useState)(()=>h===`ollama`?``:h===`openai-compatible`?`credential/${_.key}/api_key`:`credential/${h}/api_key`),[N,P]=(0,K.useState)(``),[F,I]=(0,K.useState)(``),[L,R]=(0,K.useState)(!1),[z,B]=(0,K.useState)(null),[V,te]=(0,K.useState)(!1),H=A===`openai-compatible`,U=(0,K.useMemo)(()=>{let e=!O&&!p.includes(A)?[...p,A]:[...p],t=e.indexOf(`openai`);return t>=0&&e.splice(t+1,0,`chatgpt`),e},[O,A,p]),ne=(0,K.useRef)(!1);function re(e){ne.current=!0,x(e)}let[oe,W]=(0,K.useState)(``),[se,le]=(0,K.useState)(!1),ue=i(),G=(0,K.useMemo)(()=>Pe(M),[M]),de=j===`api_key`&&G!==null,{hasStoredCredential:q,isLoading:J}=at({assistantId:e,credentialKind:`credential`,credentialName:G?`${G.service}:${G.field}`:``,enabled:de}),{credentials:fe}=yt({assistantId:e,enabled:!0}),pe=H?lt(b,n):null,me=w.trim().length>0&&(!H||b.trim().length>0)&&pe===null;async function he(){if(me){R(!0),B(null);try{let t;if(j===`api_key`){let n=M.trim()||`credential/${H?w:A}/api_key`,r=oe.trim();if(r){le(!0);try{let t=Pe(n);await ae({path:{assistant_id:e},body:t?{type:`credential`,name:`${t.service}:${t.field}`,value:r}:{type:`api_key`,name:A,value:r},throwOnError:!0});let i=it(e,`credential`,t?`${t.service}:${t.field}`:``);ue.setQueryData(i,!0),ue.invalidateQueries({queryKey:ce({path:{assistant_id:e}})})}catch{B(d(`providerCreateForm.failedSaveApiKey`));return}finally{le(!1)}t={type:`api_key`,credential:n}}else if(q)t={type:`api_key`,credential:n};else if(H)t={type:`none`};else{B(d(`providerCreateForm.enterApiKeyOrCredential`));return}}else if(j===`oauth_subscription`){B(d(`providerCreateForm.useChatgptSignIn`));return}else t={type:`none`};let n=b.trim()||null,r={name:w.trim(),provider:A,auth:t,...n!==null&&{label:n},...H&&{base_url:N.trim()||null,models:F.trim()?F.split(`,`).map(e=>({id:e.trim()})).filter(e=>e.id):null}},{data:i,error:a,response:o}=await ie({path:{assistant_id:e},body:r});if(!o?.ok){B(Ie(o?.status,a)??Fe(o?.status));return}if(!i){B(d(`providerCreateForm.emptyServerResponse`));return}v.success(d(`providerCreateForm.providerConnectedToast`)),s(i)}catch{B(d(`providerCreateForm.failedSaveProvider`))}finally{R(!1)}}}let ge=fe.filter(e=>e.service===A),_e=ge.length>0,ve=_t(d(`providerCreateForm.apiKeyPlaceholder`),q),ye=V,Y=(0,X.jsxs)(`div`,{children:[(0,X.jsxs)(`button`,{type:`button`,"aria-expanded":ye,onClick:()=>te(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,X.jsx)(f,{className:`h-4 w-4 transition-transform ${ye?`rotate-90`:``}`}),(0,X.jsx)(`span`,{children:d(`providerCreateForm.advanced`)})]}),ye&&(0,X.jsx)(`div`,{className:`mt-2 space-y-4`,children:(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:(0,X.jsx)(S,{i18nKey:`providerCreateForm.displayNameLabel`,ns:`settings`,components:{optional:(0,X.jsx)(`span`,{className:`text-[var(--content-disabled)]`})}})}),(0,X.jsx)(g,{value:b,onChange:e=>re(e.target.value),placeholder:d(`providerCreateForm.displayNamePlaceholder`),fullWidth:!0})]})})]}),be=(0,X.jsxs)(`div`,{className:`space-y-4`,children:[!o&&(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:d(`providerCreateForm.providerLabel`)}),(0,X.jsx)(y,{"aria-label":d(`providerCreateForm.providerAriaLabel`),value:E,onChange:e=>{if(D(e),B(null),e===`chatgpt`)return;let{name:n,key:r}=pt(e,t);ne.current||x(e===`openai-compatible`?``:n),T(r),ee(e===`ollama`?``:e===`openai-compatible`?`credential/${r}/api_key`:`credential/${e}/api_key`)},options:[...U.filter(e=>e!==`openai-compatible`).map(e=>({value:e,label:k[e]})),...U.includes(`openai-compatible`)?[{value:`openai-compatible`,label:d(`providerCreateForm.customProviderOption`)}]:[]]}),H?(0,X.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:d(`providerCreateForm.customProviderHint`)}):null]}),H&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:d(`providerCreateForm.nameLabel`)}),(0,X.jsx)(g,{value:b,onChange:e=>re(e.target.value),placeholder:d(`providerCreateForm.namePlaceholder`),fullWidth:!0}),pe?(0,X.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:ct[pe]}):null]}),(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:d(`providerCreateForm.baseUrlLabel`)}),(0,X.jsx)(g,{value:N,onChange:e=>P(e.target.value),placeholder:d(`providerCreateForm.baseUrlPlaceholder`),fullWidth:!0})]}),(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:d(`providerCreateForm.modelsLabel`)}),(0,X.jsx)(g,{value:F,onChange:e=>I(e.target.value),placeholder:d(`providerCreateForm.modelsPlaceholder`),fullWidth:!0}),(0,X.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:d(`providerCreateForm.modelsHint`)})]})]}),j===`api_key`&&(0,X.jsx)(ht,{apiKeyValue:oe,onApiKeyChange:W,credential:M,onCredentialChange:ee,isLoadingCredential:J,apiKeyPlaceholder:ve,provider:A,providerCredentials:ge,showAdvancedSection:_e,onError:B}),H&&j===`api_key`?(0,X.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:d(`providerCreateForm.localEndpointHint`)}):null,j===`oauth_subscription`&&(0,X.jsx)(ot,{assistantId:e,onConnected:s}),!O&&!H&&Y,z&&(0,X.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:z})]}),xe=(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(r,{variant:`ghost`,onClick:l,children:d(`providerCreateForm.cancel`)}),!O&&(0,X.jsx)(r,{variant:`primary`,disabled:!me||L||se,onClick:()=>void he(),children:L?d(`providerCreateForm.saving`):H&&b.trim()?d(`providerCreateForm.addNamed`,{name:b.trim()}):d(`providerCreateForm.add`)})]});return u===`inline`?(0,X.jsxs)(`div`,{className:`space-y-4`,children:[be,(0,X.jsx)(`div`,{className:`flex justify-end gap-2`,children:xe})]}):(0,X.jsxs)(m.Content,{size:`md`,children:[(0,X.jsxs)(m.Header,{children:[(0,X.jsx)(m.Title,{children:d(`providerCreateForm.addProviderTitle`)}),(0,X.jsx)(m.Description,{children:d(`providerCreateForm.addProviderDescription`)})]}),(0,X.jsx)(m.Body,{children:be}),(0,X.jsx)(m.Footer,{children:xe})]})}var xt=`__create_new_provider__`;function St({editor:e,assistantId:t,connections:n,variant:r}){let{t:i}=C(`settings`),a=W(),o=e.effectiveMode===`create`,s=r===`panel`,[l,u]=(0,K.useState)(!1),d=l||!!e.keyError&&e.getDirty(),p=(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:i(o?`profileEditorFields.nameLabel`:`profileEditorFields.displayNameLabel`)}),(0,X.jsx)(g,{type:`text`,value:e.label,onChange:t=>e.handleLabelChange(t.target.value),placeholder:i(`profileEditorFields.displayNamePlaceholder`),disabled:e.isReadOnly,fullWidth:!0})]}),m=(0,X.jsx)(h,{label:(0,X.jsx)(S,{i18nKey:`profileEditorFields.descriptionLabel`,ns:`settings`,components:{optional:(0,X.jsx)(`span`,{className:`text-[var(--content-disabled)]`})}}),value:e.description,onChange:t=>e.setDescription(t.target.value),placeholder:i(`profileEditorFields.descriptionPlaceholder`),disabled:e.isReadOnly,rows:2,fullWidth:!0,className:`resize-none`}),v=(0,X.jsx)(g,{label:i(`profileEditorFields.keyLabel`),type:`text`,value:e.key,onChange:t=>e.handleKeyChange(t.target.value),placeholder:i(`profileEditorFields.keyPlaceholder`),disabled:e.isReadOnly||e.effectiveMode===`edit`,errorText:e.isReadOnly?void 0:e.keyError,fullWidth:!0}),b=!s&&(!e.isReadOnly||e.status!==`active`)?(0,X.jsx)(_,{checked:e.status===`active`,onChange:t=>e.setStatus(t?`active`:`disabled`),label:i(`profileEditorFields.activeLabel`),className:`touch-mobile:mt-2 touch-mobile:[&_button]:h-7 touch-mobile:[&_button]:w-10 touch-mobile:[&_button>span]:h-6 touch-mobile:[&_button>span]:w-6`}):null,x=(0,X.jsx)(ke,{visibility:e.visibility,isReadOnly:e.isReadOnly,model:e.model,selectedModel:e.selectedModel,defaultMaxOutputTokens:e.defaultMaxOutputTokens,defaultContextWindowMaxInputTokens:e.defaultContextWindowMaxInputTokens,maxTokens:e.maxTokens,onMaxTokensChange:e.setMaxTokens,contextWindowMaxInputTokens:e.contextWindowMaxInputTokens,onContextWindowChange:e.setContextWindowMaxInputTokens,effort:e.effort,onEffortChange:e.setEffort,speed:e.speed,onSpeedChange:e.setSpeed,verbosity:e.verbosity,onVerbosityChange:e.setVerbosity,temperatureEnabled:e.temperatureEnabled,onTemperatureEnabledChange:e.setTemperatureEnabled,temperature:e.temperature,onTemperatureChange:e.setTemperature,topPEnabled:e.topPEnabled,onTopPEnabledChange:e.setTopPEnabled,topP:e.topP,onTopPChange:e.setTopP,thinkingEnabled:e.thinkingEnabled,onThinkingEnabledChange:e.setThinkingEnabled,thinkingStreamThinking:e.thinkingStreamThinking,onThinkingStreamThinkingChange:e.setThinkingStreamThinking,thinkingLevel:e.thinkingLevel,onThinkingLevelChange:e.setThinkingLevel}),w=e.saveError?(0,X.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-(--system-negative-strong)`,children:e.saveError}):null,T=(0,K.useMemo)(()=>Je(e.effectiveConnections,a),[e.effectiveConnections,a]),E=(0,K.useMemo)(()=>{let t=$e(qe(e.effectiveConnections,a),e.effectiveConnections,e=>k[e]??e,i(`aiProviderPicker.defaultEntryMeta`)).map(({value:e,label:t,meta:n})=>({value:e,label:t,suffix:n?(0,X.jsx)(nt,{text:n}):void 0}));for(let e of T){let n=Ne(e)===`api_key`?i(`profileEditorFields.addApiKey`):i(`profileEditorFields.setUp`);t.push({value:e,label:k[e]??e,suffix:(0,X.jsx)(nt,{text:n})})}return t.push({value:xt,label:i(`profileEditorFields.createNewProvider`)}),t},[a,e.effectiveConnections,T,i]),D=(0,X.jsxs)(`div`,{className:`space-y-4`,children:[(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{id:`profile-editor-provider-label`,className:`block text-body-small-default text-[var(--content-tertiary)]`,children:i(`profileEditorFields.providerLabel`)}),(0,X.jsx)(y,{value:e.creatingProvider?e.pendingCreateProvider??xt:e.provider&&e.providerConnection&&E.some(t=>t.value===$(e.provider,e.providerConnection))?$(e.provider,e.providerConnection):e.provider,onChange:t=>{if(t===xt){e.setCreatingProvider(!0),e.setPendingCreateProvider(null),e.setNewProviderNote(!1);return}if(!t)return;let n=Xe(t);if(n){e.setCreatingProvider(!1),e.setPendingCreateProvider(null),e.provider===n.provider?n.provider===`openai-compatible`&&e.setModel(``):e.handleProviderChange(n.provider),e.setProviderConnection(n.connectionName);return}let r=t;if(T.includes(r)){e.setCreatingProvider(!0),e.setPendingCreateProvider(r),e.setNewProviderNote(!1);return}e.setCreatingProvider(!1),e.setPendingCreateProvider(null),e.handleProviderChange(r),r===e.provider&&e.setProviderConnection(``)},placeholder:i(`profileEditorFields.selectProviderPlaceholder`),"aria-labelledby":`profile-editor-provider-label`,options:E}),e.newProviderNote?(0,X.jsx)(c,{variant:`body-small-default`,as:`p`,className:`text-[var(--content-tertiary)]`,children:i(`profileEditorFields.newProviderNote`)}):null]}),e.creatingProvider?(0,X.jsx)(bt,{variant:`inline`,assistantId:t,existingNames:e.effectiveConnections.map(e=>e.name),connections:e.effectiveConnections,defaultProviderType:(e.pendingCreateProvider??e.provider)||void 0,hideProviderSelect:e.pendingCreateProvider!==null,onCreated:e.handleProviderCreated,onCancel:()=>{e.setCreatingProvider(!1),e.setPendingCreateProvider(null)}},e.pendingCreateProvider??`any`):(0,X.jsx)(rt,{provider:e.provider,model:e.model,providerConnection:e.providerConnection,onProviderChange:e.handleProviderChange,onModelChange:e.handleModelChange,onConnectionChange:e.handleConnectionChange,connections:e.effectiveConnections,isReadOnly:e.isReadOnly,availableConnectionsForProvider:e.availableConnectionsForProvider,connectionNotFound:e.connectionNotFound,hideProviderField:!0})]});if(o){let t=e.model!==``;return(0,X.jsxs)(`div`,{className:`space-y-4`,children:[p,D,m,b,s?t&&(0,X.jsxs)(`div`,{className:`space-y-4`,children:[v,x]}):t&&(0,X.jsxs)(`div`,{children:[(0,X.jsxs)(`button`,{type:`button`,"aria-expanded":d,onClick:()=>u(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-secondary)] w-full text-left`,children:[(0,X.jsx)(f,{className:`h-4 w-4 transition-transform ${d?`rotate-90`:``}`}),(0,X.jsx)(`span`,{children:i(`profileEditorFields.advanced`)})]}),d?(0,X.jsxs)(`div`,{className:`mt-4 space-y-4`,children:[v,x]}):null]}),w]})}return(0,X.jsxs)(`div`,{className:`space-y-4`,children:[p,m,v,b,(0,X.jsx)(rt,{provider:e.provider,model:e.model,providerConnection:e.providerConnection,onProviderChange:e.handleProviderChange,onModelChange:e.handleModelChange,onConnectionChange:e.handleConnectionChange,connections:n,isReadOnly:e.isReadOnly,availableConnectionsForProvider:e.availableConnectionsForProvider,connectionNotFound:e.connectionNotFound,providerError:e.providerError}),x,w]})}function Ct(e,t,n){if(e){let n=z(e).find(e=>e.id===t);if(n)return n.displayName}for(let e of n??[]){let n=(e.models??[]).find(e=>e.id===t);if(n)return n.displayName??n.id}let r=t.lastIndexOf(`/`);return r>=0?t.slice(r+1):t}function wt(e,t,n){let r=(0,K.useRef)(!1),i=(0,K.useRef)(!1);return{handleLabelChange:(0,K.useCallback)(a=>{i.current=!0,t(a),e===`create`&&!r.current&&n(ut(a))},[e,t,n]),handleKeyChange:(0,K.useCallback)(e=>{r.current=!0,i.current=!0,n(e)},[n]),resetDirty:(0,K.useCallback)(()=>{r.current=!1,i.current=!1},[]),getDirty:(0,K.useCallback)(()=>i.current,[])}}var Tt=`0.11.3-dev.202608102358.ef1568c`;async function Et(e,t){await H(t);let n=B.getState().assistantId;return e!=null&&n!==e?!1:te(Tt)}var Dt=`0.10.12`;async function Ot(e,t){await H(t);let n=B.getState().assistantId;return e!=null&&n!==e?!1:te(Dt)}function kt({mode:e,profileName:t,initialValues:n,existingNames:r,connections:o,assistantId:s,onSave:c}){let[l,u]=(0,K.useState)(e),d=n?.invariant===!0&&l!==`create`,f=l===`view`||d,p=n?.status??`active`,[m,h]=(0,K.useState)(n?.label??``),[g,_]=(0,K.useState)(n?.description??``),[v,y]=(0,K.useState)(e===`create`?``:t??``),[b,x]=(0,K.useState)(n?.provider?n.provider:``),[S,C]=(0,K.useState)(n?.model??``),[T,D]=(0,K.useState)(n?.provider_connection??``),[O,k]=(0,K.useState)(n?.status??`active`),[A,j]=(0,K.useState)([]),[M,N]=(0,K.useState)(!1),[F,I]=(0,K.useState)(null),[L,R]=(0,K.useState)(n?.maxTokens??null),[B,V]=(0,K.useState)(n?.contextWindow?.maxInputTokens??null),[te,H]=(0,K.useState)(n?.effort??`inherit`),[U,ne]=(0,K.useState)(n?.speed??`standard`),[re,ie]=(0,K.useState)(n?.verbosity??`medium`),[ae,oe]=(0,K.useState)(typeof n?.temperature==`number`),[W,se]=(0,K.useState)(typeof n?.temperature==`number`?n.temperature:.7),[ce,G]=(0,K.useState)(typeof n?.topP==`number`),[de,q]=(0,K.useState)(typeof n?.topP==`number`?n.topP:.95),J=f&&O!==p,[fe,pe]=(0,K.useState)(n?.thinking?.enabled??!1),[me,he]=(0,K.useState)(n?.thinking?.streamThinking??!1),[ge,_e]=(0,K.useState)(ye(n?.thinking?.level)?n.thinking.level:Ee),ve=(0,K.useMemo)(()=>b===`vellum`?E(S):null,[b,S]),Y=ve?.model??S,be=(0,K.useMemo)(()=>b?z(b).find(e=>e.id===Y)??null:null,[b,Y]),{data:xe}=a({...ue({path:{assistant_id:s}}),staleTime:3e4}),Se=xe?.llm?.default?.maxTokens,Ce=xe?.llm?.default?.contextWindow?.maxInputTokens,X=(0,K.useMemo)(()=>we(b===`vellum`?ve?.provider??ee(S)??n?.provider??``:b,Y),[b,S,Y,ve,n?.provider]),Z=(0,K.useMemo)(()=>{let e=o??[];if(A.length===0)return e;let t=new Set(e.map(e=>e.name));return[...e,...A.filter(e=>!t.has(e.name))]},[o,A]),Q=(0,K.useMemo)(()=>b?Z.filter(e=>ze(e.provider,b)||b===`openai`&&e.name===T&&e.provider===`chatgpt`):[],[b,Z,T]),Te=T!==``&&!Q.some(e=>e.name===T),{handleLabelChange:De,handleKeyChange:Oe,resetDirty:ke,getDirty:Ae}=wt(l,h,y),je=i(),[Ne,Pe]=(0,K.useState)(!1),[Fe,Ie]=(0,K.useState)(null),[Le,Re]=(0,K.useState)(!1);(0,K.useEffect)(()=>{n?.provider_connection===`vellum`&&b===(n?.provider??``)&&o?.find(e=>e.name===n.provider_connection)?.provider===`vellum`&&x(P)},[o,b,n]),(0,K.useEffect)(()=>{let e=n?.provider;if(!e||b!==e||Me.includes(e)||e===`vellum`||e===`chatgpt`)return;let t=o?.find(t=>t.name===e);!t||t.provider===`vellum`||t.provider===`chatgpt`||(x(t.provider),T===``&&D(t.name))},[o,b,T,n]),(0,K.useEffect)(()=>{ke(),Pe(!1),Ie(null),Re(!1),j([])},[t,e,ke]);function Be(e){if(e===b)return;x(e),C(``);let t=e===`chatgpt`?[]:Z.filter(t=>ze(t.provider,e));D(t.length===1?t[0].name:``),R(null),V(null),H(`inherit`),ne(`standard`),ie(`medium`),oe(!1),se(.7),G(!1),q(.95),pe(!1),he(!1),_e(Ee)}function Ve(e){if(D(e),b&&z(b).length===0&&S)if(e===``)new Set(Q.flatMap(e=>(e.models??[]).map(e=>e.id))).has(S)||C(``);else{let t=Q.find(t=>t.name===e);new Set((t?.models??[]).map(e=>e.id)).has(S)||C(``)}}function He(e){if(e!==S&&(C(e),R(null),V(null),l===`create`&&e&&!Ae())){let{name:t,key:n}=mt(Ct(b||void 0,e,Q),r);h(t),y(n)}}function Ue(e){let t=e.provider;t!==`vellum`&&(j(t=>t.some(t=>t.name===e.name)?t:[...t,e]),x(t),D(e.name),C(``),Pe(!1),Ie(null),Re(!0),je.invalidateQueries({queryKey:le({path:{assistant_id:s}})}))}let We=v.trim(),Ge=We.length===0,Ke=/\s/.test(v),qe=l===`create`?r.includes(We):r.filter(e=>e!==t).includes(We),Je=b.length===0,Ye=b.length>0&&S.length===0,$=Ge||Ke||qe||Je||Ye,Xe=Ge?`Key is required`:Ke?`Key cannot contain whitespace`:qe?`A profile with this key already exists`:null,Ze=!f&&(l===`edit`||Ae())&&Je?`Select a provider`:null;async function Qe(){if(!($&&!f)){if(f){if(!J)return;N(!0),I(null);try{await c(We,{status:`active`},{mode:`merge`})}catch(e){I(w(e)??`Failed to save profile. Please try again.`)}finally{N(!1)}return}N(!0),I(null);try{let e={},t=T===``&&Q.length===1?Q[0].name:T,r=Te?``:t,i=b===`chatgpt`||b===`vellum`&&await Ot(s),a=b===`vellum`?i?P:ve?.provider??ee(S)??n?.provider??``:b,o=Y,u=i?``:r,d=r===``?void 0:Z.find(e=>e.name===r),f=d!==void 0&&(d.provider===`vellum`||d.provider===`chatgpt`||d.name===`vellum`||d.name===`chatgpt`||Me.includes(d.name)),p=a;if(!i&&b!==``&&b!==`vellum`&&!f&&await Et(s)){let e=Z.filter(e=>e.provider===b).length;p=d!==void 0&&(b===`openai-compatible`||e>=2)?d.name:b,u=``}l===`edit`?(e.label=m.trim()||null,e.description=g.trim()||null,e.provider=p||null,e.model=o||null,e.provider_connection=u||null):(m.trim()&&(e.label=m.trim()),g.trim()&&(e.description=g.trim()),p&&(e.provider=p),o&&(e.model=o),u&&(e.provider_connection=u)),X.maxTokens&&L!==null&&(e.maxTokens=L),X.contextWindow&&B!==null&&(e.contextWindow={maxInputTokens:B}),X.effort&&te!==`inherit`&&(e.effort=te),X.speed&&U!==`standard`&&(e.speed=U),X.verbosity&&(e.verbosity=re),X.temperature&&(ae?e.temperature=W:l===`edit`&&(e.temperature=null)),X.topP&&(ce?e.topP=de:l===`edit`&&(e.topP=null)),X.thinking&&(e.thinking={enabled:fe,...fe?{streamThinking:me}:{}}),X.thinkingLevel&&ge!==`default`&&(e.thinking={enabled:!0,level:ge}),(l===`edit`||O!==`active`)&&(e.status=O),await c(We,e)}catch(e){I(w(e)??`Failed to save profile. Please try again.`)}finally{N(!1)}}}function $e(){u(`create`),y(``),ke()}return{effectiveMode:l,isReadOnly:f,isInvariant:d,hasViewModeChanges:J,label:m,description:g,key:v,provider:b,model:S,providerConnection:T,status:O,saving:M,saveError:F,keyError:Xe,providerError:Ze,isInvalid:$,maxTokens:L,contextWindowMaxInputTokens:B,effort:te,speed:U,verbosity:re,temperatureEnabled:ae,temperature:W,topPEnabled:ce,topP:de,thinkingEnabled:fe,thinkingStreamThinking:me,thinkingLevel:ge,visibility:X,selectedModel:be,defaultMaxOutputTokens:Se,defaultContextWindowMaxInputTokens:Ce,effectiveConnections:Z,availableConnectionsForProvider:Q,connectionNotFound:Te,creatingProvider:Ne,pendingCreateProvider:Fe,newProviderNote:Le,setDescription:_,setStatus:k,setMaxTokens:R,setContextWindowMaxInputTokens:V,setEffort:H,setSpeed:ne,setVerbosity:ie,setTemperatureEnabled:oe,setTemperature:se,setTopPEnabled:G,setTopP:q,setThinkingEnabled:pe,setThinkingStreamThinking:he,setThinkingLevel:_e,setCreatingProvider:Pe,setPendingCreateProvider:Ie,setNewProviderNote:Re,handleLabelChange:De,handleKeyChange:Oe,getDirty:Ae,handleProviderChange:Be,handleConnectionChange:Ve,handleModelChange:He,handleProviderCreated:Ue,setProviderConnection:D,setModel:C,handleSave:Qe,switchToSaveAsNew:$e}}var At=`/assistant/assets/pcm-downsample-worklet-CwNZrVLe.js`;function jt(){if(!(typeof window>`u`))return window.AudioContext??window.webkitAudioContext}function Mt(e){let t=jt();if(!t)throw Error(`Web Audio API is not available in this environment`);return new t(e)}var Nt=`pcm-downsample`,Pt=1600,Ft=16e3;function It(){return b()?window.vellum?.helper?.dictation:void 0}function Lt(){let e=It();return!!e?.transcribe&&!!e.onTranscribed}var Rt=null,zt=null;async function Bt(){return Rt||(Rt=Mt(),zt=Rt.audioWorklet.addModule(At)),Rt.state!==`running`&&await Rt.resume(),await zt,Rt}async function Vt(e,t){try{let n=await Bt(),r=n.createMediaStreamSource(e),i=new AudioWorkletNode(n,Nt,{numberOfInputs:1,numberOfOutputs:0,channelCount:1}),a=[],o=0,s=0;return i.port.onmessage=e=>{let r=new Int16Array(e.data);if(r.length===0||(a.push(r),o+=r.length,o<Pt))return;let i=new Int16Array(o),c=0;for(let e of a)i.set(e,c),c+=e.length;a=[],o=0,s+=1,(s===1||s%50==0)&&console.info(`dictation: pushed audio chunk #${s} (${i.byteLength} bytes, context=${n.state})`),t(i.buffer)},r.connect(i),console.info(`dictation: audio pump started (context=${n.state})`),()=>{i.port.onmessage=null,i.disconnect(),r.disconnect()}}catch(e){return console.warn(`native-dictation-partials: audio pump failed`,e),null}}var Ht=8e3;async function Ut(e){let t=It();if(!t?.transcribe||!t.onTranscribed)return null;let n;try{n=await Wt(e)}catch(e){let t=e instanceof DOMException?`${e.name}: ${e.message}`:e;return console.warn(`dictation: blob decode for native transcribe failed`,t),null}if(n.byteLength===0)return null;let r=null,i=t.onTranscribed(e=>{r?.(e.text||null)});try{let e=await t.transcribe(n);if(!e.ok)return console.info(`dictation: native transcribe unavailable:`,e.reason),null;let i=await new Promise(e=>{r=e,setTimeout(()=>e(null),Ht)});return console.info(`dictation: native transcribe ${i?`chars=${i.length}`:`produced no text`}`),i}catch(e){return console.warn(`dictation: native transcribe failed`,e),null}finally{i()}}async function Wt(e){let t=await e.arrayBuffer(),n=await new OfflineAudioContext(1,1,Ft).decodeAudioData(t),r=n.numberOfChannels,i=n.length,a=n.getChannelData(0);if(r>1){let e=new Float32Array(i);for(let t=0;t<r;t++){let a=n.getChannelData(t);for(let t=0;t<i;t++)e[t]+=a[t]/r}a=e}let o=new Int16Array(i);for(let e=0;e<i;e++){let t=a[e],n=t<-1?-1:t>1?1:t;o[e]=n<0?n*32768:n*32767}return o.buffer}var Gt=4e3;async function Kt(e,t){let n=It();if(!n)return null;let r=n.pushAudioChunk?.bind(n),i=t?.stream,a=!!i&&!!r,o=n.onPartial(t=>{e(t.text)}),s=null,c=null,l=n.onFinalized?.(e=>{s=e.text||null,c?.(s)})??null,u=()=>{l?.(),o()};try{let e=await n.setPartials(!0,void 0,a);if(!e.ok)return console.info(`native-dictation-partials: unavailable:`,e.reason),u(),null}catch(e){return console.warn(`native-dictation-partials: setPartials failed`,e),u(),null}let d=null;if(a&&(d=await Vt(i,e=>r(e)),!d))return u(),n.setPartials(!1).catch(()=>{}),null;let f=null;return()=>f||(d?.(),o(),n.setPartials(!1).catch(()=>{}),f=(async()=>{let e=s;return!e&&l&&(e=await new Promise(e=>{c=e,setTimeout(()=>e(null),Gt)})),l?.(),console.info(e===null?`dictation: native finalized not received`:`dictation: native finalized chars=${e.length}`),e})(),f)}var qt=[{id:`vellum`,displayName:`Vellum`,subtitle:`Text-to-speech through your Vellum account — billed to Vellum credits, no separate API key needed.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Connected via your Vellum account`,credentialsGuide:{description:`Connect this assistant to your Vellum account; managed speech uses that connection instead of a provider API key.`,url:`https://platform.vellum.ai/`,linkLabel:`Open Vellum Platform`}},{id:`elevenlabs`,displayName:`ElevenLabs`,subtitle:`High-quality voice synthesis for conversations and read-aloud. Requires an ElevenLabs API key.`,supportsVoiceSelection:!0,apiKeyPlaceholder:`sk_…`,credentialsGuide:{description:`Sign in to ElevenLabs, go to your Profile, and copy your API key.`,url:`https://elevenlabs.io/app/settings/api-keys`,linkLabel:`Open ElevenLabs API Keys`}},{id:`fish-audio`,displayName:`Fish Audio`,subtitle:`Natural-sounding voice synthesis with custom voice cloning. Requires a Fish Audio API key and voice reference ID.`,supportsVoiceSelection:!0,apiKeyPlaceholder:`Enter your Fish Audio API key`,credentialsGuide:{description:`Sign in to Fish Audio, navigate to API Keys in your dashboard, and create a new key.`,url:`https://fish.audio/app/api-keys/`,linkLabel:`Open Fish Audio API Keys`}},{id:`deepgram`,displayName:`Deepgram`,subtitle:`Fast, accurate text-to-speech synthesis. Uses the same API key as Deepgram speech-to-text.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Enter your Deepgram API key`,credentialsGuide:{description:`Sign in to Deepgram, navigate to your API Keys page, and create or copy an existing key. This is the same key used for speech-to-text.`,url:`https://console.deepgram.com/`,linkLabel:`Open Deepgram Console`}},{id:`xai`,displayName:`xAI`,subtitle:`Text-to-speech from xAI with expressive voices (eve, ara, rex, sal, leo). Requires an xAI API key.`,supportsVoiceSelection:!1,apiKeyPlaceholder:`Enter your xAI API key`,credentialsGuide:{description:`Sign in to the xAI console, navigate to API Keys, and create a new key.`,url:`https://console.x.ai/`,linkLabel:`Open xAI Console`}}],Jt=`macos-native`,Yt=[{id:`vellum`,displayName:`Vellum`,subtitle:`Transcription through your Vellum account — billed to Vellum credits, no separate API key needed.`},{id:`deepgram`,displayName:`Deepgram`,subtitle:`Fast, accurate speech-to-text transcription. Uses the same API key as Deepgram text-to-speech.`,apiKeyPlaceholder:`Enter your Deepgram API key`,credentialsGuide:{description:`Sign in to Deepgram, navigate to your API Keys page, and create or copy an existing key. This is the same key used for text-to-speech.`,url:`https://console.deepgram.com/`,linkLabel:`Open Deepgram Console`}},{id:`openai`,displayName:`OpenAI`,subtitle:`OpenAI Whisper transcription. Requires an OpenAI API key.`,apiKeyPlaceholder:`sk-…`,credentialsGuide:{description:`Sign in to the OpenAI platform, navigate to API Keys, and create a new secret key.`,url:`https://platform.openai.com/api-keys`,linkLabel:`Open OpenAI API Keys`}},{id:Jt,displayName:`macOS Native Dictation`,subtitle:`Apple's on-device speech recognition, running locally through the macOS helper. Works offline and needs no API key.`,requiresNativeDictation:!0,setupWarning:`Requires macOS Dictation to be turned on: open System Settings → Keyboard, then enable Dictation. macOS downloads the on-device speech model the first time Dictation is enabled — without it, voice input produces no transcript.`}],Xt=[{id:`mailgun`,displayName:`Mailgun`,setupSkill:`mailgun-setup`,docsUrl:`https://www.mailgun.com/`},{id:`resend`,displayName:`Resend`,setupSkill:`resend-setup`,docsUrl:`https://resend.com/`}],Zt=[`gemini-3.1-flash-image-preview`,`gemini-3-pro-image-preview`,`gpt-image-2`],Qt={"gemini-3.1-flash-image-preview":`Nano Banana 2`,"gemini-3-pro-image-preview":`Nano Banana Pro`,"gpt-image-2":`GPT Image 2`},$t=[`vellum`,`gemini`,`openai`],en={vellum:`Vellum`,gemini:`Gemini`,openai:`OpenAI`};function tn(e){return e===`vellum`?[...Zt]:Zt.filter(t=>nn(t)===e)}function nn(e){return e.startsWith(`gpt-`)||e.startsWith(`dall-e-`)?`openai`:(e.startsWith(`gemini-`),`gemini`)}var rn=`vellum:ai:imageGenProvider`,an=`vellum:ai:imageGenModel`,on=`vellum:ai:webSearchProvider`,sn=`vellum:ai:webFetchProvider`,cn=`vellum:ai:emailMode`,ln=`vellum:ai:emailByoProvider`,un=`vellum:voice:ttsProvider`,dn=`vellum:voice:ttsApiKey:`,fn=`vellum:voice:ttsVoiceId:`,pn=`vellum:voice:sttProvider`,mn=`vellum:voice:sttApiKey:`,hn=`0.10.8`;function gn(){return V(hn)}var _n=`0.11.0`;function vn(){return V(_n)}function yn({value:e,size:t=`default`,className:n,...r}){let i=t===`compact`;return(0,X.jsxs)(`button`,{type:`button`,className:s(`flex items-center gap-2 rounded-md border border-[var(--field-border)] bg-[var(--field-bg)] text-left text-[var(--content-default)] transition-colors focus:outline-none data-[state=open]:border-[var(--border-active)]`,i?`h-7 min-w-44 px-2.5 text-body-small-default`:`h-9 w-full px-3 text-body-medium-lighter`,n),...r,children:[(0,X.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e}),(0,X.jsx)(d,{"aria-hidden":!0,className:s(`shrink-0 text-[var(--content-tertiary)]`,i?`h-3 w-3`:`h-3.5 w-3.5`)})]})}var bn={profiles:{},profileOrder:[]};function xn(e,t){let n=e?.profiles,r=e?.profileOrder,i=!!n&&Object.keys(n).length>0,[a,o]=(0,K.useState)(bn),[s,c]=(0,K.useState)(t);return t!==s&&(c(t),o(bn)),(0,K.useEffect)(()=>{i&&o({profiles:n,profileOrder:r??[]})},[i,n,r]),i?{profiles:n,profileOrder:r??[]}:t===s?a:bn}export{At as A,ot as B,tn as C,Ut as D,Kt as E,yt as F,Fe as G,at as H,_t as I,Ie as J,Pe as K,ht as L,Ct as M,St as N,Mt as O,bt as P,ct as R,qt as S,Lt as T,ze as U,it as V,We as W,je as X,Ae as Y,Qt as _,ln as a,Jt as b,rn as c,dn as d,un as f,Xt as g,on as h,gn as i,kt as j,jt as k,mn as l,sn as m,yn as n,cn as o,fn as p,Le as q,vn as r,an as s,xn as t,pn as u,$t as v,nn as w,Yt as x,en as y,lt as z};
@@ -1 +0,0 @@
1
- import{B as e}from"./src-DjIqxQVd.js";function t(){return e()}export{t};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-DSjqKLvM.js";import{n as r}from"./QueryClientProvider-CMu7CkQU.js";import{t as i}from"./useQuery-Bz-fbQ-m.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./cn-DFWryB3N.js";import{R as s,z as c}from"./src-DjIqxQVd.js";import{t as l}from"./check-CNBoUiyR.js";import{t as u}from"./search-DbyaO8rG.js";import{t as d}from"./square-DD_y88hI.js";import{t as f}from"./volume-2-DgWyCs5f.js";import{t as p}from"./input-BG94bPcH.js";import{n as m}from"./toast-BrKo5b4d.js";import{t as h}from"./select-B86W_Hs8.js";import{j as g}from"./sdk.gen-Br55zhZN.js";import{r as _}from"./use-is-org-ready-CWNhmJ2b.js";import{Gt as v,Ut as y,d as b,u as x}from"./react-query.gen-vkBavCkI.js";import{n as S,t as C}from"./use-voice-sample-preview-BY_J5WVl.js";var w=e(t(),1);function T(e){return e.nativeLabel?`${e.label} (${e.nativeLabel})`:e.label}var E=`multi`,D=[{code:``,label:`English (default)`,description:`Speech recognition defaults to English.`},{code:E,label:`Multilingual`,description:`Follows you between languages mid-sentence: English, Spanish, French, German, Hindi, Russian, Portuguese, Japanese, Italian, and Dutch.`},{code:`ar`,label:`Arabic`,nativeLabel:`العربية`,extended:!0},{code:`be`,label:`Belarusian`,nativeLabel:`Беларуская`,extended:!0},{code:`bn`,label:`Bengali`,nativeLabel:`বাংলা`,extended:!0},{code:`bs`,label:`Bosnian`,nativeLabel:`Bosanski`,extended:!0},{code:`bg`,label:`Bulgarian`,nativeLabel:`Български`,extended:!0},{code:`ca`,label:`Catalan`,nativeLabel:`Català`,extended:!0},{code:`zh`,label:`Chinese`,nativeLabel:`中文`,extended:!0},{code:`hr`,label:`Croatian`,nativeLabel:`Hrvatski`,extended:!0},{code:`cs`,label:`Czech`,nativeLabel:`Čeština`,extended:!0},{code:`da`,label:`Danish`,nativeLabel:`Dansk`,extended:!0},{code:`nl`,label:`Dutch`,nativeLabel:`Nederlands`},{code:`et`,label:`Estonian`,nativeLabel:`Eesti`,extended:!0},{code:`fi`,label:`Finnish`,nativeLabel:`Suomi`,extended:!0},{code:`fr`,label:`French`,nativeLabel:`Français`},{code:`de`,label:`German`,nativeLabel:`Deutsch`},{code:`el`,label:`Greek`,nativeLabel:`Ελληνικά`,extended:!0},{code:`gu`,label:`Gujarati`,nativeLabel:`ગુજરાતી`,extended:!0},{code:`he`,label:`Hebrew`,nativeLabel:`עברית`,extended:!0},{code:`hi`,label:`Hindi`,nativeLabel:`हिन्दी`},{code:`hu`,label:`Hungarian`,nativeLabel:`Magyar`,extended:!0},{code:`id`,label:`Indonesian`,nativeLabel:`Bahasa Indonesia`,extended:!0},{code:`it`,label:`Italian`,nativeLabel:`Italiano`},{code:`ja`,label:`Japanese`,nativeLabel:`日本語`},{code:`kn`,label:`Kannada`,nativeLabel:`ಕನ್ನಡ`,extended:!0},{code:`ko`,label:`Korean`,nativeLabel:`한국어`,extended:!0},{code:`lv`,label:`Latvian`,nativeLabel:`Latviešu`,extended:!0},{code:`lt`,label:`Lithuanian`,nativeLabel:`Lietuvių`,extended:!0},{code:`mk`,label:`Macedonian`,nativeLabel:`Македонски`,extended:!0},{code:`ms`,label:`Malay`,nativeLabel:`Bahasa Melayu`,extended:!0},{code:`mr`,label:`Marathi`,nativeLabel:`मराठी`,extended:!0},{code:`no`,label:`Norwegian`,nativeLabel:`Norsk`,extended:!0},{code:`fa`,label:`Persian`,nativeLabel:`فارسی`,extended:!0},{code:`pl`,label:`Polish`,nativeLabel:`Polski`,extended:!0},{code:`pt`,label:`Portuguese`,nativeLabel:`Português`},{code:`ro`,label:`Romanian`,nativeLabel:`Română`,extended:!0},{code:`ru`,label:`Russian`,nativeLabel:`Русский`},{code:`sr`,label:`Serbian`,nativeLabel:`Српски`,extended:!0},{code:`sk`,label:`Slovak`,nativeLabel:`Slovenčina`,extended:!0},{code:`sl`,label:`Slovenian`,nativeLabel:`Slovenščina`,extended:!0},{code:`es`,label:`Spanish`,nativeLabel:`Español`},{code:`sv`,label:`Swedish`,nativeLabel:`Svenska`,extended:!0},{code:`tl`,label:`Tagalog`,extended:!0},{code:`ta`,label:`Tamil`,nativeLabel:`தமிழ்`,extended:!0},{code:`te`,label:`Telugu`,nativeLabel:`తెలుగు`,extended:!0},{code:`th`,label:`Thai`,nativeLabel:`ไทย`,extended:!0},{code:`tr`,label:`Turkish`,nativeLabel:`Türkçe`,extended:!0},{code:`uk`,label:`Ukrainian`,nativeLabel:`Українська`,extended:!0},{code:`ur`,label:`Urdu`,nativeLabel:`اردو`,extended:!0},{code:`vi`,label:`Vietnamese`,nativeLabel:`Tiếng Việt`,extended:!0}],O=new Set([`deepgram`,`vellum`]),k=new Set([`deepgram`,`vellum`]),A=new Set([`xai`]),j=new Set([`deepgram`,`vellum`]),M={code:``,label:`Auto-detect (default)`,description:`xAI identifies the spoken language natively. Picking a specific language pins it; returning to auto-detect requires clearing services.stt.language outside this picker.`},N={code:`en`,label:`English`};function P(e,t){let n=k.has(t)?D:D.filter(e=>!e.extended),r=O.has(t)?n:n.filter(e=>e.code!==E),i=A.has(t)?r.flatMap(e=>e.code===``?[M,N]:[e]):r,a=j.has(t)?i.flatMap(e=>e.code===``?[N]:[e]):i;return a.some(t=>t.code===e)?a:[...a,{code:e,label:`${e} (custom)`}]}function F(e,t,n){let r=P(e,t),i=[],a=e=>{!i.includes(e)&&r.some(t=>t.code===e)&&i.push(e)};return a(e),a(``),a(E),a(`en`),n!=null&&a(n),{featured:i.map(e=>r.find(t=>t.code===e)),rest:r.filter(e=>!i.includes(e.code)).sort((e,t)=>e.label.localeCompare(t.label))}}function I(e,t){let n=t.trim().toLowerCase();return n.length===0||e.label.toLowerCase().includes(n)||e.nativeLabel&&e.nativeLabel.toLowerCase().includes(n)?!0:e.code.toLowerCase().startsWith(n)}function L(e,t){let n=P(e,t).find(t=>t.code===e);return n?T(n):e}function R(e){if(!e)return null;let t=e.toLowerCase().split(`-`)[0];return t===`en`?null:D.find(e=>e.code===t)??null}function z(e,t,n=``){let r=R(e);return!r||n===r.code?null:r.extended?k.has(t)?r.code:null:n===`multi`||n===``&&A.has(t)?null:O.has(t)?E:r.code}var B=a();function V(e,t){return`${e}-option-${t.code===``?`default`:t.code}`}function H({currentCode:e,configuredProviderId:t,suggestedCode:n,selectLanguage:r,selecting:i,onDone:a}){let s=(0,w.useId)(),c=`${s}-listbox`,d=(0,w.useRef)(null),f=(0,w.useRef)(null),[m,h]=(0,w.useState)(``),[g,_]=(0,w.useState)(-1),v=(0,w.useMemo)(()=>F(e,t,n),[e,t,n]),y=m.trim().length>0,b=(0,w.useMemo)(()=>{let e=[...v.featured,...v.rest];return y?e.filter(e=>I(e,m)):e},[v,y,m]);(0,w.useEffect)(()=>{d.current?.focus()},[]),(0,w.useEffect)(()=>{f.current?.querySelector(`[role="option"][aria-selected="true"]`)?.scrollIntoView({block:`nearest`})},[]),(0,w.useEffect)(()=>{if(g<0)return;let e=b[g];e&&document.getElementById(V(s,e))?.scrollIntoView({block:`nearest`})},[g,b,s]);let x=e=>{r(e),a()},S=e=>{if(e.key===`ArrowDown`||e.key===`ArrowUp`){if(e.preventDefault(),b.length===0)return;_(t=>e.key===`ArrowDown`?Math.min(t+1,b.length-1):Math.max(t-1,0));return}if(e.key===`Enter`){let t=b[g]??(y?b[0]:void 0);t&&(e.preventDefault(),x(t.code))}},C=g>=0?b[g]:null,E=t=>{let r=t.code===e,i=t===C,a=n!=null&&t.code===n&&t.code!==e;return(0,B.jsxs)(`button`,{id:V(s,t),type:`button`,role:`option`,"aria-selected":r,tabIndex:-1,"data-active":i||void 0,onClick:()=>x(t.code),className:o(`flex w-full cursor-pointer items-center gap-2 rounded-md px-3 py-2.5 text-left transition-colors`,r?`bg-[var(--surface-active)]`:i?`bg-[var(--surface-hover)]`:`hover:bg-[var(--surface-hover)]`),children:[(0,B.jsxs)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default text-[var(--content-default)]`,children:[T(t),t.description&&(0,B.jsx)(`span`,{className:`block truncate text-label-small-default text-[var(--content-tertiary)]`,children:t.description})]}),a&&(0,B.jsx)(`span`,{className:`shrink-0 text-label-small-default text-[var(--content-tertiary)]`,children:`Suggested`}),r&&(0,B.jsx)(l,{"aria-hidden":!0,className:`size-4 shrink-0 text-[var(--system-positive-strong)]`})]},t.code)},D=(e,t)=>(0,B.jsx)(`div`,{id:e,role:`presentation`,className:`px-3 pt-2 pb-1 text-label-small-default text-[var(--content-tertiary)]`,children:t});return(0,B.jsxs)(`div`,{className:`flex min-h-0 flex-col gap-2`,children:[(0,B.jsx)(p,{ref:d,role:`combobox`,"aria-expanded":!0,"aria-controls":c,"aria-activedescendant":C?V(s,C):void 0,"aria-autocomplete":`list`,"aria-label":`Search languages`,placeholder:`Search languages`,leftIcon:(0,B.jsx)(u,{className:`size-4`}),value:m,onChange:e=>{h(e.target.value),_(e.target.value.trim().length>0?0:-1)},onKeyDown:S,fullWidth:!0}),(0,B.jsx)(`div`,{ref:f,id:c,role:`listbox`,"aria-label":`Languages`,"aria-busy":i,className:o(`flex max-h-[50vh] flex-col overflow-y-auto`,i&&`opacity-70`),children:y?b.length>0?b.map(E):(0,B.jsx)(`p`,{className:`px-3 py-2.5 text-body-medium-default text-[var(--content-tertiary)]`,children:`No languages match.`}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(`div`,{role:`group`,"aria-labelledby":`${s}-featured`,children:[D(`${s}-featured`,`Featured`),v.featured.map(E)]}),(0,B.jsxs)(`div`,{role:`group`,"aria-labelledby":`${s}-all`,children:[D(`${s}-all`,`All languages`),v.rest.map(E)]})]})})]})}function U({assistantId:e,configuredValue:t,buildPatchBody:n,failureMessage:i}){let a=r(),[o,s]=(0,w.useState)(!1),[c,l]=(0,w.useState)(null),u=c??t,d=(0,w.useRef)(Promise.resolve()),f=(0,w.useRef)(0);return{currentValue:u,selecting:o,select:(0,w.useCallback)(t=>{if(!e||t===u)return;let r=++f.current;l(t),s(!0),d.current=d.current.then(async()=>{try{let{response:r}=await g({path:{assistant_id:e},body:await n(t),throwOnError:!1});if(!r?.ok){m.error(i);return}await a.invalidateQueries({queryKey:b({path:{assistant_id:e}})})}catch{m.error(i)}finally{r===f.current&&(l(null),s(!1))}})},[e,u,n,i,a])}}var W=e=>({services:{tts:{providers:{vellum:{model:e}}}}});function G(e){let t=_()&&!!e,{data:n}=i({...v({path:{assistant_id:e??``}}),enabled:t,staleTime:1/0,retry:!1}),{data:r}=i({...x({path:{assistant_id:e??``}}),enabled:t,staleTime:3e4}),a=r?.services?.tts,o=a?.mode===`managed`||a?.provider===`vellum`,s=n?.providers?.find(e=>e.id===`vellum`)?.supportsVoiceSelection===!0,{voices:c,defaultModel:l}=S(e,{enabled:t&&o}),u=t&&o&&s&&c.length>0,d=t&&!!r&&!o,{currentValue:f,selecting:p,select:m}=U({assistantId:e,configuredValue:a?.providers?.vellum?.model??l??c[0]?.model??``,buildPatchBody:W,failureMessage:`Couldn't change the voice just now. Try again.`});return{available:u,isByok:d,voices:c,currentModel:f,defaultModel:l??``,selectModel:m,selecting:p}}function K(e,t){return t||(j.has(e)?`en`:``)}var q=e=>({services:{stt:{language:e===``?`en`:e}}});function J(e){let t=_()&&!!e,{data:n}=i({...y({path:{assistant_id:e??``}}),enabled:t,staleTime:1/0,retry:!1}),{data:r}=i({...x({path:{assistant_id:e??``}}),enabled:t,staleTime:3e4}),a=r?.services?.stt,o=a?.mode===`managed`?`vellum`:a?.provider??`deepgram`,s=n?.providers?.find(e=>e.id===o)?.languageSelection===`manual`,c=t&&!!r&&s,{currentValue:l,selecting:u,select:d}=U({assistantId:e,configuredValue:K(o,a?.language),buildPatchBody:q,failureMessage:`Couldn't change the language just now. Try again.`});return{available:c,currentCode:l,configuredProviderId:o,selectLanguage:d,selecting:u}}var Y={deepgram:`Deepgram`,elevenlabs:`ElevenLabs`},X=`Uses Vellum credits, through providers like ElevenLabs and Deepgram.`;function Z(e){let t=e.indexOf(` · `);return t===-1?{traits:e,accent:``}:{accent:e.slice(0,t),traits:e.slice(t+3)}}function Q(e){let{traits:t}=Z(e);return t.charAt(0).toUpperCase()+t.slice(1)}function $(e){let t=new Map;for(let n of e){let{accent:e}=Z(n.description),r=e||`Other`,i=t.get(r);i?i.push(n):t.set(r,[n])}return[...t.entries()].sort((e,t)=>e[0].localeCompare(t[0])).map(([e,t])=>({accent:e,voices:[...t].sort((e,t)=>Z(e.description).traits.localeCompare(Z(t.description).traits))}))}function ee({description:e,className:t}){let{accent:n}=Z(e);return(0,B.jsxs)(`span`,{className:o(`truncate`,t),children:[Q(e),n&&(0,B.jsx)(`span`,{className:`text-[var(--content-tertiary)]`,children:` · ${n}`})]})}function te({assistantId:e,heading:t,className:r,onSelect:i,value:a,onChange:u,showSource:p=!1,filterBySource:m=!1}){let{available:g,voices:_,currentModel:v,defaultModel:y,selectModel:b,selecting:x}=G(e),S=a!==void 0&&u!==void 0,T=S?a:v,E=e=>{S?u(e):b(e),i?.()},D=(0,w.useMemo)(()=>{let e=new Set,t=[];for(let n of _)e.has(n.source)||(e.add(n.source),t.push(n.source));return t.sort((e,t)=>(Y[e]??e).localeCompare(Y[t]??t))},[_]),[O,k]=(0,w.useState)(null),A=_.find(e=>e.model===T)?.source,j=m?O??A??D[0]??null:null,M=m&&D.length>1,N=(0,w.useMemo)(()=>$(j?_.filter(e=>e.source===j):_),[_,j]),{previewingModel:P,play:F,stop:I}=C(),L=(0,w.useRef)(null);(0,w.useEffect)(()=>{L.current?.scrollIntoView?.({block:`nearest`})},[]);let R=_.length>0;return(S?!R:!g)?null:(0,B.jsxs)(`div`,{className:o(`flex flex-col gap-2`,t&&`border-t border-[var(--border-subtle)] pt-3`,r),children:[t&&(0,B.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-secondary)]`,children:t}),M&&(0,B.jsx)(`div`,{className:`px-1 pb-1`,children:(0,B.jsx)(h,{value:j??``,onChange:k,options:D.map(e=>({value:e,label:Y[e]??e})),"aria-label":`Voice provider`})}),(0,B.jsx)(`div`,{role:`listbox`,"aria-label":`Assistant voice`,className:o(`flex flex-col overflow-y-auto`,m?`max-h-[60vh]`:`max-h-80`,x&&`pointer-events-none opacity-70`),children:N.map(e=>(0,B.jsxs)(`div`,{role:`group`,"aria-label":e.accent,children:[(0,B.jsx)(`div`,{className:`px-3 pb-1 pt-3 text-label-small-default text-[var(--content-tertiary)]`,children:e.accent}),e.voices.map(e=>{let t=e.model===T,r=P===e.model,i=e.model===y;return(0,B.jsxs)(`div`,{ref:t?L:void 0,role:`option`,"aria-selected":t,onClick:()=>E(e.model),className:o(`group flex cursor-pointer items-center gap-2 rounded-md px-3 py-2.5 transition-colors`,t?`bg-[var(--surface-active)]`:`hover:bg-[var(--surface-hover)]`),children:[(0,B.jsxs)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default text-[var(--content-default)]`,children:[Q(e.description),i&&(0,B.jsxs)(`span`,{className:`text-[var(--content-tertiary)]`,children:[` `,`(default)`]})]}),p&&!m&&(0,B.jsx)(`span`,{className:`shrink-0 text-body-small-default text-[var(--content-tertiary)]`,children:Y[e.source]??e.source}),(0,B.jsxs)(`div`,{className:`relative flex size-7 shrink-0 items-center justify-center`,children:[e.sampleUrl!==``&&(0,B.jsx)(n,{variant:`ghost`,size:`compact`,iconOnly:r?(0,B.jsx)(d,{}):(0,B.jsx)(f,{}),"aria-label":r?`Stop preview`:`Preview ${e.description}`,className:o(`absolute inset-0 transition-opacity`,r?`opacity-100`:s),onClick:t=>{t.stopPropagation(),r?I():F(e)}}),t&&(0,B.jsx)(l,{"aria-hidden":!0,className:o(`pointer-events-none size-4 text-[var(--system-positive-strong)]`,r?`opacity-0 transition-opacity`:e.sampleUrl===``?`opacity-100`:c)})]})]},e.model)})]},e.accent))})]})}export{J as a,L as c,Q as i,z as l,te as n,G as o,X as r,H as s,ee as t};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{i as t,l as n,o as r}from"./local-settings-Bx7FsNo5.js";import{t as i}from"./react-BFJW0bSv.js";import{t as a}from"./button-DSjqKLvM.js";import{h as o,n as s,t as c}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as l}from"./jsx-runtime-D3ZM-ToX.js";import{H as u,W as d}from"./src-DjIqxQVd.js";import{r as f}from"./middleware-uwxeHHVb.js";import{t as p}from"./info-Bjcv3rf9.js";import{t as m}from"./modal-Bt1DPFgW.js";import{t as h}from"./toggle-C-v4x7_A.js";import{t as g}from"./select-B86W_Hs8.js";import{t as _}from"./assistant-identity-store-DTP7xfNP.js";import{d as v}from"./routes-C293MsBG.js";import{C as y,S as b,b as ee,d as te,f as x,h as S,i as C,m as w,o as T,p as E,s as ne,t as D,w as O,x as k,y as re}from"./voice-providers-note-BLOdThkh.js";import{a as ie,c as ae,n as oe,o as A,r as se,t as j}from"./voice-list-uy2Kwdwg.js";import{t as M}from"./use-active-assistant-id-Cgt1z2rZ.js";import{t as N}from"./detail-card-CC0br9gQ.js";import{t as P}from"./stt-language-picker-modal-CihIASi8.js";var F=e(i(),1),I=l();function L(){let{available:e,currentCode:t,configuredProviderId:n,selectLanguage:r,selecting:i}=ie(M()),[o,s]=(0,F.useState)(!1);return e?(0,I.jsxs)(N,{title:`Listening language`,subtitle:`The language you speak to your assistant. Applies from your next spoken turn.`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,I.jsx)(`span`,{className:`min-w-0 text-body-medium-lighter text-[var(--content-default)]`,children:ae(t,n)}),(0,I.jsx)(a,{variant:`outlined`,onClick:()=>s(!0),className:`shrink-0`,children:`Change`})]}),(0,I.jsx)(P,{open:o,onOpenChange:s,title:`Listening language`,currentCode:t,configuredProviderId:n,selectLanguage:r,selecting:i})]}):null}function R({assistantId:e,open:t,onOpenChange:n}){return(0,I.jsx)(m.Root,{open:t,onOpenChange:n,children:(0,I.jsx)(m.Content,{size:`md`,children:(0,I.jsx)(z,{assistantId:e,onDone:()=>n(!1)})})})}function z({assistantId:e,onDone:t}){let{available:n,currentModel:r,selectModel:i,selecting:o}=A(e);return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsxs)(m.Header,{children:[(0,I.jsx)(m.Title,{children:`Voices`}),n&&(0,I.jsx)(m.Description,{children:`Uses Vellum credits, through providers like ElevenLabs and Deepgram.`})]}),(0,I.jsx)(m.Body,{children:(0,I.jsx)(oe,{assistantId:e,filterBySource:!0,value:r,onChange:i})}),(0,I.jsxs)(m.Footer,{className:`items-center justify-between gap-3`,children:[(0,I.jsx)(D,{}),(0,I.jsx)(a,{variant:`primary`,onClick:t,disabled:o,className:`shrink-0`,children:`Done`})]})]})}function B(){let e=M(),{available:t,voices:n,currentModel:r}=A(e),i=n.find(e=>e.model===r)??n[0],[o,s]=(0,F.useState)(!1),l=_.use.name(),u=l?`${l}’s Voice`:`Voice`;return t&&i?(0,I.jsxs)(N,{title:u,subtitle:se,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,I.jsx)(j,{description:i.description,className:`min-w-0 text-body-medium-lighter text-[var(--content-default)]`}),(0,I.jsx)(a,{variant:`outlined`,onClick:()=>s(!0),className:`shrink-0`,children:`Change`})]}),(0,I.jsx)(R,{assistantId:e,open:o,onOpenChange:s})]}):(0,I.jsx)(N,{title:u,children:(0,I.jsxs)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:[`Your assistant speaks through a provider you configured yourself. Set its voice on`,` `,(0,I.jsx)(c,{to:`${v.settings.ai}#text-to-speech`,className:`text-[var(--primary-base)] hover:underline`,children:`Models & Services`}),`.`]})})}var V=[{prefKey:`showUserTranscript`,label:`Show the words you say`,description:`Live transcription while you speak.`},{prefKey:`showAssistantTranscript`,label:`Show the words the assistant says`,description:`Text alongside the spoken response.`}],H=`We recommend keeping both off to start. It feels more like a real conversation.`;function U(){return(0,I.jsx)(`span`,{className:`shrink-0 rounded-full bg-[var(--surface-active)] px-2 py-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:`Recommended off`})}function W({label:e,description:t,showBadge:n,checked:r,onChange:i}){return(0,I.jsxs)(`div`,{className:`flex items-center justify-between gap-3 py-1`,children:[(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,I.jsx)(`span`,{className:`truncate text-body-medium-lighter text-[var(--content-default)]`,children:e}),n?(0,I.jsx)(U,{}):null]}),t?(0,I.jsx)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:t}):null]}),(0,I.jsx)(h,{checked:r,onChange:i,"aria-label":e})]})}function G({showDescription:e=!1,showRecommendedBadge:t=!1}){let n=T.use.showUserTranscript(),r=T.use.showAssistantTranscript(),i=T.use.setShowUserTranscript(),a=T.use.setShowAssistantTranscript(),o={showUserTranscript:{checked:n,onChange:i},showAssistantTranscript:{checked:r,onChange:a}};return(0,I.jsx)(I.Fragment,{children:V.map(n=>{let r=o[n.prefKey];return(0,I.jsx)(W,{label:n.label,description:e?n.description:void 0,showBadge:t,checked:r.checked,onChange:r.onChange},n.prefKey)})})}var K=[{label:`Ctrl`,activator:{kind:`modifierOnly`,modifiers:[`control`]}},{label:`Alt`,activator:{kind:`modifierOnly`,modifiers:[`option`]}},{label:`Ctrl+Shift`,activator:{kind:`modifierOnly`,modifiers:[`control`,`shift`]}}],q={label:`Fn`,activator:x},J=`text-body-small-default text-[var(--content-tertiary)]`;function ce(){let[e]=o(),t=e.get(`tab`);return t===`sounds`?(0,I.jsx)(s,{replace:!0,to:v.settings.sounds}):t===`services`?(0,I.jsx)(s,{replace:!0,to:v.settings.ai}):(0,I.jsx)(le,{})}function le(){return(0,I.jsxs)(`div`,{className:`flex flex-col gap-8`,children:[(0,I.jsxs)(X,{heading:`Output`,description:`How your assistant sounds.`,children:[(0,I.jsx)(B,{}),(0,I.jsx)(Y,{})]}),(0,I.jsxs)(X,{heading:`Input`,description:`How you talk to your assistant.`,children:[(0,I.jsx)(de,{}),(0,I.jsx)(L,{}),(0,I.jsx)(fe,{}),(0,I.jsx)(me,{})]}),(0,I.jsx)(X,{heading:`Captions`,children:(0,I.jsx)(ue,{})})]})}function Y(){let{available:e}=A(M());return e?(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 px-1 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,I.jsx)(p,{className:`h-3.5 w-3.5 shrink-0 text-[var(--content-quiet)]`}),(0,I.jsx)(`span`,{children:`Want to use your own API key for STT or TTS, or set a custom voice?`}),(0,I.jsxs)(c,{to:`${v.settings.ai}#text-to-speech`,className:`inline-flex items-center gap-1 text-[var(--content-secondary)] underline decoration-[var(--border-element)] underline-offset-2 hover:text-[var(--content-default)]`,children:[`Set it up in Models & Services`,(0,I.jsx)(f,{className:`h-3 w-3`})]})]}):null}function X({heading:e,description:t,children:n}){return(0,I.jsxs)(`section`,{className:`flex flex-col gap-4`,children:[(0,I.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,I.jsx)(`h2`,{className:`text-label-medium-default uppercase tracking-wide text-[var(--content-tertiary)]`,children:e}),t&&(0,I.jsx)(`p`,{className:`text-body-small-default text-[var(--content-quiet)]`,children:t})]}),n]})}function ue(){return(0,I.jsx)(N,{title:`Captions`,subtitle:`Show live text of what you and the assistant say during a voice conversation.`,children:(0,I.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,I.jsx)(G,{showDescription:!0}),(0,I.jsx)(`p`,{className:`${J} pt-1`,children:H})]})})}var Z=``;function de(){let[e,t]=(0,F.useState)([]),[i,o]=(0,F.useState)(!1),[s,c]=(0,F.useState)(!1),[l,u]=(0,F.useState)(()=>O()),d=(0,F.useCallback)(async()=>{if(navigator.mediaDevices?.enumerateDevices)try{let e=(await navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind===`audioinput`);o(e.length>0&&e.every(e=>!e.label)),t(e.filter(e=>e.deviceId!==``&&e.deviceId!==`default`&&e.deviceId!==`communications`)),c(e.length===0||e.some(e=>!!e.label))}catch{t([]),o(!1),c(!1)}},[]),f=(0,F.useCallback)(async()=>{try{let e=await navigator.mediaDevices.getUserMedia({audio:!0});for(let t of e.getTracks())t.stop()}catch{}d()},[d]);(0,F.useEffect)(()=>{d();let e=navigator.mediaDevices;if(!e?.addEventListener)return;let t=()=>void d();return e.addEventListener(`devicechange`,t),()=>e.removeEventListener(`devicechange`,t)},[d]);let p=(0,F.useMemo)(()=>{let t=e.map((e,t)=>({value:e.deviceId,label:e.label||`Microphone ${t+1}`})),n=l!==Z&&!t.some(e=>e.value===l);return[{value:null,label:`System Default`},...t,...n?[{value:l,label:s?`Saved microphone (not connected)`:`Saved microphone`}]:[]]},[e,l,s]),m=(0,F.useCallback)(e=>{u(e),e===Z?r(y):n(y,e)},[]);return(0,I.jsx)(N,{title:`Microphone`,subtitle:`Which input device is used for dictation and voice conversations.`,children:(0,I.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,I.jsx)(`div`,{className:`max-w-xs`,children:(0,I.jsx)(g,{options:p,value:l===Z?null:l,onChange:m,onSelectNone:()=>m(Z),"aria-label":`Microphone`})}),i&&(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsx)(a,{variant:`outlined`,onClick:f,children:`Allow Microphone Access`}),(0,I.jsx)(`span`,{className:J,children:`Grant microphone access to list your available input devices.`})]})]})})}function fe(){let e=ne(),[r,i]=(0,F.useState)(()=>{let n=t(E,``);return n?ee(n,{preserveFunction:e}):e?q.activator:{kind:`off`}}),[a,o]=(0,F.useState)(!1),[s,c]=(0,F.useState)([]),l=(0,F.useRef)(null),u=(0,F.useRef)(!1),d=(0,F.useMemo)(()=>e?[q,...K]:K,[e]),f=r.kind!==`off`,m=f&&!e,g=(0,F.useCallback)(e=>{i(e),n(E,k(e)),o(!1),c([])},[]),_=(0,F.useCallback)(()=>{o(!0),c([]),u.current=!1,requestAnimationFrame(()=>{l.current?.focus()})},[]),v=(0,F.useCallback)(()=>{o(!1),c([]),u.current=!1},[]),y=(0,F.useCallback)(t=>{let n=[];return e&&t.getModifierState(`Fn`)&&n.push(`function`),t.ctrlKey&&n.push(`control`),t.altKey&&n.push(`option`),t.shiftKey&&n.push(`shift`),t.metaKey&&n.push(`command`),n},[e]),C=(0,F.useCallback)(e=>{if(e.preventDefault(),e.stopPropagation(),e.key===`Escape`){v();return}let t=y(e),n=e.key;if(n===`Control`||n===`Alt`||n===`Shift`||n===`Meta`||n===`Fn`){c(t.includes(`function`)?x.modifiers:b(t));return}if(t.includes(`function`)){g(x);return}u.current=!0,g({kind:`key`,label:n.length===1?n.toUpperCase():n,modifiers:t})},[v,y,g]),T=(0,F.useCallback)(e=>{if(!a)return;e.preventDefault(),e.stopPropagation();let t=e.key;if(t===`Control`||t===`Alt`||t===`Shift`||t===`Meta`||t===`Fn`){if(u.current){u.current=!1,c([]);return}y(e).length===0&&s.length>0&&g({kind:`modifierOnly`,modifiers:s})}},[y,a,s,g]);(0,F.useEffect)(()=>{if(!a)return;let e=e=>{l.current&&!l.current.contains(e.target)&&v()};return window.addEventListener(`mousedown`,e),()=>window.removeEventListener(`mousedown`,e)},[v,a]);let D=f&&!d.some(e=>S(e.activator,r));return(0,I.jsx)(N,{title:`Push to Talk`,subtitle:`Hold the activation key to dictate text or start a voice conversation.`,children:(0,I.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,I.jsx)(h,{checked:f,onChange:t=>{t?r.kind===`off`&&g(e?q.activator:te):g({kind:`off`})},label:`Enable Push to Talk`}),f&&(0,I.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,I.jsx)(`span`,{className:J,children:`Activation Key:`}),(0,I.jsxs)(`div`,{ref:l,tabIndex:a?0:-1,onKeyDown:a?C:void 0,onKeyUp:a?T:void 0,className:`flex flex-wrap items-center gap-2 focus:outline-none`,children:[d.map(e=>{let t=S(e.activator,r);return(0,I.jsx)(Q,{label:e.label,selected:t,onClick:()=>g(e.activator)},e.label)}),a?(0,I.jsx)(Q,{label:s.length>0?re(s):`Press any key…`,selected:!0,recording:!0,onClick:v}):(0,I.jsx)(Q,{label:D?w(r):`Custom`,selected:D,onClick:_})]}),m&&(0,I.jsxs)(`div`,{className:`flex items-start gap-1 pt-1 text-body-small-default text-[var(--content-quiet)]`,children:[(0,I.jsx)(p,{className:`mt-0.5 h-3 w-3 shrink-0`}),(0,I.jsx)(`span`,{children:`Push-to-Talk only works while this tab is focused, and browsers may intercept some shortcuts (e.g. Ctrl+T) before the page can see them. For always-on PTT, use the Vellum desktop app.`})]})]})]})})}function Q({label:e,selected:t,recording:n=!1,onClick:r}){return(0,I.jsxs)(`button`,{type:`button`,onClick:r,className:[`inline-flex items-center gap-2 rounded-lg border px-3 py-1.5 text-body-medium-lighter transition-colors`,`border-[var(--border-subtle)]`,t?`bg-[var(--surface-active)]`:`bg-[var(--surface-lift)] hover:bg-[var(--surface-hover)]`,n?`animate-pulse`:``].filter(Boolean).join(` `),children:[(0,I.jsx)(`span`,{className:[`inline-block h-2.5 w-2.5 rounded-full border`,t?`border-[var(--primary-base)] bg-[var(--primary-base)]`:`border-[var(--border-element)]`].join(` `)}),(0,I.jsx)(`span`,{className:`text-[var(--content-default)]`,children:e})]})}var pe=[{value:`low`,label:`Low`},{value:`medium`,label:`Medium`},{value:`high`,label:`High`}];function me(){let e=T.use.pauseBeforeReplyMs(),t=T.use.setPauseBeforeReplyMs(),n=T.use.interruptSensitivity(),r=T.use.setInterruptSensitivity(),i=e!==null||n!==null;return(0,I.jsx)(N,{title:`Turn taking`,subtitle:`Where your turn ends and the assistant's begins. Applies to hands-free conversations — under push to talk, the key decides.`,children:(0,I.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,I.jsx)($,{label:`Pause before reply`,description:`How long the assistant waits after you stop speaking before it replies. A longer pause lets you gather your thoughts mid-sentence without being cut off.`,isDefault:e===null,children:(0,I.jsx)(`div`,{className:`max-w-xs`,children:(0,I.jsx)(u,{value:(e??1200)/1e3,onValueChange:e=>{typeof e==`number`&&t(Math.round(e*1e3))},min:500/1e3,max:C/1e3,step:.1,showValue:!0,formatValue:e=>`${(typeof e==`number`?e:e[0]).toFixed(1)}s`,"aria-label":`Pause before reply`})})}),(0,I.jsx)($,{label:`Interrupt sensitivity`,description:`How easily talking over the assistant interrupts it. Lower it if the assistant cuts itself off on background noise or filler words; raise it to interrupt more quickly.`,isDefault:n===null,children:(0,I.jsx)(`div`,{className:`max-w-xs`,children:(0,I.jsx)(d,{items:pe,value:n??`medium`,onChange:r,ariaLabel:`Interrupt sensitivity`})})}),i&&(0,I.jsx)(`div`,{children:(0,I.jsx)(a,{variant:`outlined`,onClick:()=>{t(null),r(null)},children:`Reset to defaults`})})]})})}function $({label:e,description:t,isDefault:n,children:r}){return(0,I.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:e}),n&&(0,I.jsx)(`span`,{className:`shrink-0 rounded-full bg-[var(--surface-active)] px-2 py-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:`Default`})]}),(0,I.jsx)(`p`,{className:J,children:t}),r]})}export{ce as VoicePage};