@vellumai/web 0.12.4-staging.2 → 0.12.4-staging.4

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 (227) hide show
  1. package/dist/assets/{a2a-invite-DizlchNv.js → a2a-invite-BSzXL6i3.js} +1 -1
  2. package/dist/assets/{about-page-Y8a--p-0.js → about-page-Ne3KY7p6.js} +1 -1
  3. package/dist/assets/{account-page-oXqvFuC5.js → account-page-DR4ueI-s.js} +1 -1
  4. package/dist/assets/{account-shell-BW5fY_u7.js → account-shell-BCvjHT7j.js} +1 -1
  5. package/dist/assets/{acp-run-detail-panel-CViUQ4Gg.js → acp-run-detail-panel-BA9xGUzb.js} +1 -1
  6. package/dist/assets/{activation-list-route-swzAPcaY.js → activation-list-route-Br9gsfSd.js} +1 -1
  7. package/dist/assets/{activity-redirect-page-Wc2DZYeP.js → activity-redirect-page-BOS14fri.js} +1 -1
  8. package/dist/assets/{activity-steps-panel--otugh_6.js → activity-steps-panel-88l6Ei6w.js} +1 -1
  9. package/dist/assets/add-credits-modal-0pYLUDo4.js +1 -0
  10. package/dist/assets/{add-credits-modal-ZnKmvy6V.js → add-credits-modal-O1N2pbak.js} +1 -1
  11. package/dist/assets/{ai-page-BMR6BEti.js → ai-page-DU0mYnYP.js} +1 -1
  12. package/dist/assets/all-chats-page-route-CkFi0Q7K.js +1 -0
  13. package/dist/assets/{android-billing-handoff-6shikm2k.js → android-billing-handoff-C06TxyLt.js} +1 -1
  14. package/dist/assets/{api-key-screen-CbnUNlGK.js → api-key-screen-BD62ySmK.js} +1 -1
  15. package/dist/assets/{app-D8sMVA0h.js → app-Qc-rYPt9.js} +46 -46
  16. package/dist/assets/{app-info-z1hPo0V6.js → app-info-YYU2hCWc.js} +1 -1
  17. package/dist/assets/{archive-redirect-page-DEdZNQal.js → archive-redirect-page-AYY4xZby.js} +1 -1
  18. package/dist/assets/{assistant-handle-modal-Rx01AWRM.js → assistant-handle-modal-BZJgqpG8.js} +1 -1
  19. package/dist/assets/{assistant-inbox-page-route-CWfD1nW8.js → assistant-inbox-page-route-B61doUw8.js} +1 -1
  20. package/dist/assets/{assistant-inbox-upgrade-body-DnzMfD6M.js → assistant-inbox-upgrade-body-BC-REEBi.js} +1 -1
  21. package/dist/assets/{assistant-status-panel-Cox-mezz.js → assistant-status-panel-uJMo_YOD.js} +1 -1
  22. package/dist/assets/auth-store-FcZEUxA_.js +1 -0
  23. package/dist/assets/{auth-welcome-screen-Bwm2MF1q.js → auth-welcome-screen-uOY9YbXG.js} +1 -1
  24. package/dist/assets/avatar-bundled-components-DcmDX83d.js +1 -0
  25. package/dist/assets/{avatar-random-DenoKEgP.js → avatar-random-DxLJmo42.js} +2 -2
  26. package/dist/assets/{await-org-header-settled-BxLRQCmZ.js → await-org-header-settled-dTqfGHq2.js} +1 -1
  27. package/dist/assets/{background-task-detail-panel-COBZw2lg.js → background-task-detail-panel-CBjRAdga.js} +1 -1
  28. package/dist/assets/{billing-page-DfUj1I0G.js → billing-page-CA6R2wjZ.js} +3 -3
  29. package/dist/assets/{billing-redirect-page-DKyiR6MR.js → billing-redirect-page-DK5z_EZp.js} +1 -1
  30. package/dist/assets/{bookmarks-page-CFEE1Uxr.js → bookmarks-page-DPEug6V3.js} +1 -1
  31. package/dist/assets/{bundle-confirm-page-B-d41LNa.js → bundle-confirm-page-Co72y9XS.js} +1 -1
  32. package/dist/assets/{channel-transcript-panel-CmHEsFMk.js → channel-transcript-panel-B0cRZsgw.js} +1 -1
  33. package/dist/assets/{channels-page-route-CuAKuwQD.js → channels-page-route-V3Fk_Hzf.js} +1 -1
  34. package/dist/assets/chat-BQddXCk9.js +3 -0
  35. package/dist/assets/chat-BZsmqRU3.js +3 -0
  36. package/dist/assets/{chat-AntDwRty.js → chat-C6WWTxFu.js} +1 -1
  37. package/dist/assets/chat-D7FyK_n_.js +3 -0
  38. package/dist/assets/chat-info-panel-Bv1Aet5S.js +1 -0
  39. package/dist/assets/{checkout-continuation-C7ALmXXi.js → checkout-continuation-c9cPR68T.js} +1 -1
  40. package/dist/assets/{checkout-page-BiKD4JLD.js → checkout-page-Cq5DAqbf.js} +1 -1
  41. package/dist/assets/checkout-return-target-CA5-Gi7-.js +1 -0
  42. package/dist/assets/command-palette-BUCV7aZK.js +1 -0
  43. package/dist/assets/{command-palette-BlZE0DtA.js → command-palette-Drf-HDLE.js} +1 -1
  44. package/dist/assets/{command-palette-window-page-B_vTgfMk.js → command-palette-window-page-DCE-g55A.js} +1 -1
  45. package/dist/assets/common-C7iok8sT.js +1 -0
  46. package/dist/assets/common-CMLZe_W6.js +1 -0
  47. package/dist/assets/common-Dgnh0Njn.js +1 -0
  48. package/dist/assets/common-QPQ83NEi.js +1 -0
  49. package/dist/assets/{community-page-h4SSKpvs.js → community-page-BJxApcxO.js} +1 -1
  50. package/dist/assets/{companion-accent-CpX6aNlW.js → companion-accent-Cp2MmcWR.js} +1 -1
  51. package/dist/assets/{companion-dock-zones-page-VmKgW5GB.js → companion-dock-zones-page-Zvhwz0Yz.js} +1 -1
  52. package/dist/assets/{companion-layout-TXE0PA9f.js → companion-layout-cM6NtktC.js} +1 -1
  53. package/dist/assets/{companion-popover-C-jOy9ph.js → companion-popover-D2taDck6.js} +1 -1
  54. package/dist/assets/{companion-popover-page-BroQfXvM.js → companion-popover-page-DGS-UTTL.js} +1 -1
  55. package/dist/assets/{companion-surface-DOIgH-bV.js → companion-surface-oVNh5kA4.js} +1 -1
  56. package/dist/assets/{companion-surface-page-DRLXSLvn.js → companion-surface-page-CXiHLf2G.js} +1 -1
  57. package/dist/assets/companion-tour-entry-CpXEfiiz.js +1 -0
  58. package/dist/assets/{companion-watch-frame-page-BrtR8aJG.js → companion-watch-frame-page-CIEEUVOP.js} +1 -1
  59. package/dist/assets/{connect-page-yTAoyfL3.js → connect-page-CILP_iqJ.js} +1 -1
  60. package/dist/assets/{consent-controls-n1HIl_Qh.js → consent-controls-ole3UEoz.js} +1 -1
  61. package/dist/assets/{contacts-gateway-CnUI-BQ8.js → contacts-gateway-zkBOSVyx.js} +1 -1
  62. package/dist/assets/{contacts-page-route-BeTKJ0wU.js → contacts-page-route-GyaYbluM.js} +1 -1
  63. package/dist/assets/{copy-button-zFMI1aRE.js → copy-button-CzMsh4gB.js} +1 -1
  64. package/dist/assets/{credential-entry-page-BX5tgHs-.js → credential-entry-page-CueibLp2.js} +1 -1
  65. package/dist/assets/{credentials-page-DO12GLZa.js → credentials-page-DgmnWmph.js} +1 -1
  66. package/dist/assets/{csv-preview-DTvQhodp.js → csv-preview-CemRbf9W.js} +1 -1
  67. package/dist/assets/{danger-zone-redirect-page-CKPdbPhO.js → danger-zone-redirect-page-BJ31hZvD.js} +1 -1
  68. package/dist/assets/{debug-page-KaXTLZ3j.js → debug-page-CYN-HFc_.js} +1 -1
  69. package/dist/assets/deploy-dialogs-C_aIE0ti.js +1 -0
  70. package/dist/assets/{deploy-dialogs-D1N0Mx60.js → deploy-dialogs-DP0ls5p1.js} +1 -1
  71. package/dist/assets/{desktop-preview-content-BGP-Q4ES.js → desktop-preview-content-BmkyExHH.js} +2 -2
  72. package/dist/assets/{desktop-status-DhhVXu3M.js → desktop-status-CG431FNc.js} +1 -1
  73. package/dist/assets/{desktop-viewer-BS0GRBKw.js → desktop-viewer-DwehmMBT.js} +1 -1
  74. package/dist/assets/{detail-card-5ja97d__.js → detail-card-DaoCCbYV.js} +1 -1
  75. package/dist/assets/{detail-panel-stop-button-C_TanbFS.js → detail-panel-stop-button-CZfhwEjC.js} +1 -1
  76. package/dist/assets/{detail-primitives-DlHfs3NY.js → detail-primitives-B2TDPtFR.js} +1 -1
  77. package/dist/assets/{developer-page-Ia_M--jA.js → developer-page-e5ZIJFP5.js} +1 -1
  78. package/dist/assets/{devices-redirect-page-Dicfe-Xh.js → devices-redirect-page-Dq7s97Ga.js} +1 -1
  79. package/dist/assets/{dictation-overlay-page-DLKil78N.js → dictation-overlay-page-DF-XpmHA.js} +1 -1
  80. package/dist/assets/document-load-88Gh0gTG.js +1 -0
  81. package/dist/assets/{document-load-D7lS0Qam.js → document-load-CcDODImt.js} +1 -1
  82. package/dist/assets/{document-viewer-page-Bvnx2eMP.js → document-viewer-page-DiD-zvuQ.js} +1 -1
  83. package/dist/assets/{emails-page-D3O_HhPG.js → emails-page-6gtVUatK.js} +1 -1
  84. package/dist/assets/{file-diff-view-D1j-t0cs.js → file-diff-view-bwx_MkXN.js} +1 -1
  85. package/dist/assets/{file-editor-CDuPINUR.js → file-editor-D0P-Gy-a.js} +1 -1
  86. package/dist/assets/general-page-BZQ7yEvH.js +2 -0
  87. package/dist/assets/hatching-screen-DBprFgEA.js +1 -0
  88. package/dist/assets/{hosting-screen-AXFQL3em.js → hosting-screen-BA7wRb0n.js} +1 -1
  89. package/dist/assets/identity-page-route-BfgfhU08.js +7 -0
  90. package/dist/assets/{inspect-page-EGAIWdPZ.js → inspect-page-CH3uVGix.js} +3 -3
  91. package/dist/assets/{integrations-page-BOgg6KK3.js → integrations-page-0clh02lf.js} +1 -1
  92. package/dist/assets/{intelligence-layout-BPa8zuju.js → intelligence-layout-CC6J5rMH.js} +1 -1
  93. package/dist/assets/intelligence-layout-slots-store-BrxvOjyS.js +1 -0
  94. package/dist/assets/{keyboard-shortcuts-redirect-page-3JddlI6I.js → keyboard-shortcuts-redirect-page-B1HB0ZJQ.js} +1 -1
  95. package/dist/assets/{latest-assistant-text-fShWplU9.js → latest-assistant-text-DFGZImdA.js} +1 -1
  96. package/dist/assets/{library-detail-page-CqqXK7mJ.js → library-detail-page-Db0s21ez.js} +1 -1
  97. package/dist/assets/{library-page-Db5rMvEu.js → library-page-CHncUGxN.js} +1 -1
  98. package/dist/assets/local-mode-D_-1ec4p.js +1 -0
  99. package/dist/assets/{login-page-BbfY1JYR.js → login-page-D2uVokBF.js} +1 -1
  100. package/dist/assets/{logout-page-DoibQ_Ri.js → logout-page-H2ViUr-T.js} +1 -1
  101. package/dist/assets/{logs-layout-Dobrj5WD.js → logs-layout-C0DDeC5h.js} +1 -1
  102. package/dist/assets/{markdown-preview-CNgPT8Ns.js → markdown-preview-BJR1Lp-C.js} +1 -1
  103. package/dist/assets/{media-preview-BB_3EZbz.js → media-preview-CVf1UuE9.js} +1 -1
  104. package/dist/assets/{memory-page-route-DLi_ptkl.js → memory-page-route-BBFz1YiU.js} +1 -1
  105. package/dist/assets/{memory-router-playground-page-DozE3X0H.js → memory-router-playground-page-BudLOTc4.js} +1 -1
  106. package/dist/assets/{message-files-panel-BPTDooXh.js → message-files-panel-Qq9UEaxA.js} +1 -1
  107. package/dist/assets/{metric-card-D0M85__8.js → metric-card-lmiHO3PF.js} +1 -1
  108. package/dist/assets/native-attachment-pickers-BhYBtKp-.js +1 -0
  109. package/dist/assets/native-file-D0FCYmrg.js +1 -0
  110. package/dist/assets/{notifications-page-Ysp5efLW.js → notifications-page-BmNyEMIk.js} +1 -1
  111. package/dist/assets/{oauth-complete-page-CDxvG_L-.js → oauth-complete-page-Cypawil4.js} +1 -1
  112. package/dist/assets/{oauth-popup-complete-page-CwJxBm2S.js → oauth-popup-complete-page-CWQF6Tbc.js} +1 -1
  113. package/dist/assets/paired-platform-identity-BqBlEtsv.js +1 -0
  114. package/dist/assets/{pairing-page-DIcQb9OJ.js → pairing-page-OjkCjTgJ.js} +1 -1
  115. package/dist/assets/password-reset-page-DakZp7KC.js +1 -0
  116. package/dist/assets/{pdf-file-preview-DX0ZQoVT.js → pdf-file-preview-BxCXMhqC.js} +1 -1
  117. package/dist/assets/{personality-page-BFiUCJ1L.js → personality-page-BU6yPK14.js} +1 -1
  118. package/dist/assets/{personality-page-D4cC26jw.js → personality-page-Dm9LQmBW.js} +1 -1
  119. package/dist/assets/{personality-sliders-BM4di6t9.js → personality-sliders-Dehyaji_.js} +1 -1
  120. package/dist/assets/{plans-page-miRpUo-U.js → plans-page-CAyi2Nxa.js} +1 -1
  121. package/dist/assets/{platform-loopback-page-CCG5On-e.js → platform-loopback-page-Dr-fFIwU.js} +1 -1
  122. package/dist/assets/{plugin-detail-page-Dt5XsCxQ.js → plugin-detail-page-B3Rx7z27.js} +1 -1
  123. package/dist/assets/{plugins-page-B_d5EVPw.js → plugins-page-DN9rPLRn.js} +1 -1
  124. package/dist/assets/plugins-surface-CrFNy0ps.js +1 -0
  125. package/dist/assets/{preview-error-DoWnZxU0.js → preview-error-DB2rjYvO.js} +1 -1
  126. package/dist/assets/{privacy-page-BmyUhMnI.js → privacy-page-BcpCT1Vb.js} +1 -1
  127. package/dist/assets/{privacy-screen-CuOvxzA8.js → privacy-screen-grsFP0UO.js} +1 -1
  128. package/dist/assets/{profile-card-DSHsAWzC.js → profile-card-BP9AMkh4.js} +1 -1
  129. package/dist/assets/{provider-callback-page-BVSe9lzW.js → provider-callback-page-g4qnXUAS.js} +1 -1
  130. package/dist/assets/{provider-key-Dn1NaLjs.js → provider-key-CK86YQ0g.js} +1 -1
  131. package/dist/assets/{provider-signup-page-B8wHDvGe.js → provider-signup-page-Ce4IEtKF.js} +1 -1
  132. package/dist/assets/{quick-input-page-BcTqo_SA.js → quick-input-page-BJ-kLGi7.js} +1 -1
  133. package/dist/assets/{referral-modal-CXPg4U-L.js → referral-modal-Bd_Bwh5m.js} +1 -1
  134. package/dist/assets/referral-modal-Ts_6L7Jq.js +1 -0
  135. package/dist/assets/{research-mock-page-lCKcSGWS.js → research-mock-page-bXHr3HJ1.js} +1 -1
  136. package/dist/assets/research-onboarding-route-BXcRnuIA.js +50 -0
  137. package/dist/assets/{review-terms-screen-CcKEKn6x.js → review-terms-screen-DZCb5jS5.js} +1 -1
  138. package/dist/assets/routes-CpEsYa-V.js +1 -0
  139. package/dist/assets/{schedules-C862mQ95.js → schedules-EEPosYPL.js} +1 -1
  140. package/dist/assets/schedules-page-Dqs-gg7s.js +1 -0
  141. package/dist/assets/{security-redirect-page-Cf6N-pAp.js → security-redirect-page-BUtDM_HH.js} +1 -1
  142. package/dist/assets/{select-assistant-screen-DmC81TOi.js → select-assistant-screen-BOubdStJ.js} +1 -1
  143. package/dist/assets/{self-hosted-servers-CuhcBUtc.js → self-hosted-servers-CJjUOVLQ.js} +1 -1
  144. package/dist/assets/{service-form-controls-Q1QYmu0R.js → service-form-controls-DwwYjgqa.js} +1 -1
  145. package/dist/assets/{setting-row-bAvkY8qq.js → setting-row-D7xTN4Nd.js} +1 -1
  146. package/dist/assets/{settings-divider-JNNvLiiq.js → settings-divider-y1Y7piXi.js} +1 -1
  147. package/dist/assets/{settings-layout-kZQ0T-wh.js → settings-layout-7t6GBbdu.js} +1 -1
  148. package/dist/assets/{share-feedback-modal-C1NM5ZQA.js → share-feedback-modal-DnH2sXjE.js} +1 -1
  149. package/dist/assets/share-feedback-modal-DuI0v7AI.js +1 -0
  150. package/dist/assets/{sidebar-tree-C31ptvb9.js → sidebar-tree-CqElNW5F.js} +1 -1
  151. package/dist/assets/{signup-page-BgeUPiLo.js → signup-page-ZDm4OjY3.js} +1 -1
  152. package/dist/assets/{signup-shell-qd7yOKsi.js → signup-shell-kgxV4p4a.js} +1 -1
  153. package/dist/assets/{skill-detail-page-Cx1j6Kur.js → skill-detail-page-nWwa0XFq.js} +1 -1
  154. package/dist/assets/{skill-detail-panel-CEblhGiR.js → skill-detail-panel-9H7ft8ro.js} +1 -1
  155. package/dist/assets/{skill-removal-dialog-sFJ2FlXs.js → skill-removal-dialog-DfBhw0Lh.js} +1 -1
  156. package/dist/assets/{skills-page-DwaV4t6G.js → skills-page-CamB2mns.js} +1 -1
  157. package/dist/assets/{sounds-page-DIwns3JM.js → sounds-page-Bj48pTCF.js} +1 -1
  158. package/dist/assets/{start-screen-Bhe95rpT.js → start-screen-DtUnAChR.js} +1 -1
  159. package/dist/assets/{stt-language-picker-modal-6st6DWoq.js → stt-language-picker-modal-Dgcq9xkd.js} +1 -1
  160. package/dist/assets/{subagent-detail-panel-zJtzbOlF.js → subagent-detail-panel-U4m5BxZG.js} +1 -1
  161. package/dist/assets/{superpowers-page-Cpl22-6n.js → superpowers-page-WkwbyGXZ.js} +1 -1
  162. package/dist/assets/{system-events-page-C2YAEfJf.js → system-events-page-Bw9HBTD3.js} +1 -1
  163. package/dist/assets/{system-events-redirect-page-CVuxUaY0.js → system-events-redirect-page-BfQvezRk.js} +1 -1
  164. package/dist/assets/{text-preview-BO6RkCx5.js → text-preview-CUqsudgl.js} +1 -1
  165. package/dist/assets/{theme-stage-page-DhT0XNI2.js → theme-stage-page-HhLVo3o6.js} +1 -1
  166. package/dist/assets/{tiptap-document-editor-BcLk_m4Z.js → tiptap-document-editor-rY7Mbt4u.js} +1 -1
  167. package/dist/assets/{tool-detail-panel-DgLms60D.js → tool-detail-panel-B9PQpvb8.js} +1 -1
  168. package/dist/assets/tool-detail-panel-Bt4vBf09.js +1 -0
  169. package/dist/assets/{trait-cycle-row-DaQ1Ws3F.js → trait-cycle-row-C-mybyb7.js} +1 -1
  170. package/dist/assets/{upgrade-cancel-page-CA1adXlD.js → upgrade-cancel-page-CfqBVU8V.js} +1 -1
  171. package/dist/assets/{upgrade-success-page-DQgW1mUo.js → upgrade-success-page-3efxDP6a.js} +1 -1
  172. package/dist/assets/{usage-redirect-page-CUIv8k9u.js → usage-redirect-page-D4aGhmzR.js} +1 -1
  173. package/dist/assets/{use-app-delete-rBDVuftC.js → use-app-delete-vuGBgQkn.js} +1 -1
  174. package/dist/assets/{use-assistant-identity-details-IZ1p17bP.js → use-assistant-identity-details-CrWNdPFJ.js} +1 -1
  175. package/dist/assets/{use-checkout-dismiss-refresh-CPok4Xxh.js → use-checkout-dismiss-refresh-BwT2zWIT.js} +1 -1
  176. package/dist/assets/{use-edge-swipe-back-C6D5cD0V.js → use-edge-swipe-back-DjHkqNOJ.js} +1 -1
  177. package/dist/assets/{use-hotkey-recorder-CQ81x0jZ.js → use-hotkey-recorder-OFYAQ-HC.js} +1 -1
  178. package/dist/assets/{use-invite-link-dialog-CEz7AGhb.js → use-invite-link-dialog-CCACCzhi.js} +1 -1
  179. package/dist/assets/{use-plugins-list-D7kaVDLa.js → use-plugins-list-D-azzToZ.js} +1 -1
  180. package/dist/assets/{use-return-to-short-circuit-B3O40EpG.js → use-return-to-short-circuit-CpUBlNYt.js} +1 -1
  181. package/dist/assets/{use-side-list-room-jwL301KF.js → use-side-list-room-DoHREePf.js} +1 -1
  182. package/dist/assets/{use-skill-actions-10SaGQ2V.js → use-skill-actions-DG-ZngUy.js} +1 -1
  183. package/dist/assets/{use-skill-detail-files-OgBPzm48.js → use-skill-detail-files-CHrwga8E.js} +1 -1
  184. package/dist/assets/use-supports-credentials-settings-Bq6T6gWf.js +1 -0
  185. package/dist/assets/{use-transcript-message-by-id-Iq7GcnGe.js → use-transcript-message-by-id-Bfbshp9w.js} +1 -1
  186. package/dist/assets/{voice-page-CaiYChec.js → voice-page-DiAOJ_tF.js} +1 -1
  187. package/dist/assets/{wake-detail-panel-CT3DYLQZ.js → wake-detail-panel-CeBICW69.js} +1 -1
  188. package/dist/assets/{weather-forecast-display-BFdH_k1K.js → weather-forecast-display-ULwhP9mt.js} +1 -1
  189. package/dist/assets/{welcome-screen-CqkJbp4o.js → welcome-screen-DgJPqZ2G.js} +1 -1
  190. package/dist/assets/{workflow-detail-panel-C-eS7Dvm.js → workflow-detail-panel-DmsjHIzU.js} +1 -1
  191. package/dist/assets/{workspace-page-BlTW2cBW.js → workspace-page-DHnNp7n8.js} +1 -1
  192. package/dist/index.html +1 -1
  193. package/package.json +1 -1
  194. package/dist/assets/add-credits-modal-8XswoyyE.js +0 -1
  195. package/dist/assets/auth-store-Cl64mEJk.js +0 -1
  196. package/dist/assets/avatar-bundled-components-D5UflXXI.js +0 -1
  197. package/dist/assets/chat-65GwDn4W.js +0 -3
  198. package/dist/assets/chat-B63XecSL.js +0 -3
  199. package/dist/assets/chat-cDbsbgu5.js +0 -3
  200. package/dist/assets/chat-info-panel-oH5Oyl38.js +0 -1
  201. package/dist/assets/checkout-return-target-DMdfJOOA.js +0 -1
  202. package/dist/assets/command-palette-w64ApCdQ.js +0 -1
  203. package/dist/assets/common-1dGFkyPX.js +0 -1
  204. package/dist/assets/common-CEWnU0pW.js +0 -1
  205. package/dist/assets/common-Cy_3dwBD.js +0 -1
  206. package/dist/assets/common-D42ZRpvb.js +0 -1
  207. package/dist/assets/companion-tour-entry-B1IsGYch.js +0 -1
  208. package/dist/assets/deploy-dialogs-CRJiVPdx.js +0 -1
  209. package/dist/assets/document-load-DSIq6Sq0.js +0 -1
  210. package/dist/assets/general-page-CsElCUdU.js +0 -2
  211. package/dist/assets/hatching-screen-DAfWJUbK.js +0 -1
  212. package/dist/assets/identity-page-route-DAr3l3g4.js +0 -7
  213. package/dist/assets/intelligence-layout-slots-store-BJaDjomF.js +0 -1
  214. package/dist/assets/local-mode-D_3DvD-d.js +0 -1
  215. package/dist/assets/native-attachment-pickers-CwbujgDo.js +0 -1
  216. package/dist/assets/native-file-D0pwPgoW.js +0 -1
  217. package/dist/assets/old-chats-page-route-BcqodIdi.js +0 -1
  218. package/dist/assets/paired-platform-identity-T0oJWAAF.js +0 -1
  219. package/dist/assets/password-reset-page-C7NkRhLd.js +0 -1
  220. package/dist/assets/plugins-surface-BxV_0iuU.js +0 -1
  221. package/dist/assets/referral-modal-CI2bBp4q.js +0 -1
  222. package/dist/assets/research-onboarding-route-CXMe3vp7.js +0 -50
  223. package/dist/assets/routes-QuWxfGvc.js +0 -1
  224. package/dist/assets/schedules-page-Vm7pjI-3.js +0 -1
  225. package/dist/assets/share-feedback-modal-C1e2jpWO.js +0 -1
  226. package/dist/assets/tool-detail-panel-BmOzPhuv.js +0 -1
  227. package/dist/assets/use-supports-credentials-settings-DuYuJNsF.js +0 -1
@@ -1 +0,0 @@
1
- var e={build:`建置`,taglineMacOS:`您 Mac 的 AI 助理`,taglineWindows:`您 Windows PC 的 AI 助理`,version:`版本`},t={connecting:`正在連線至您的助理…`,logIn:`登入`,logOut:`登出`},n={cancel:`取消`,credentialSaved:`憑證已儲存。`,description:`新增 API 金鑰或權杖,讓工具和整合功能可以使用它。`,fieldLabel:`欄位`,fieldPlaceholder:`例如 api_token`,labelOptional:`標籤 (選填)`,labelPlaceholder:`例如 GitHub 個人存取權杖`,save:`儲存`,saveFailed:`儲存憑證失敗`,serviceLabel:`服務`,servicePlaceholder:`例如 github`,title:`新增憑證`,valueLabel:`值`,valuePlaceholder:`輸入密碼值`},r={amount:`金額`,cancel:`取消`,configureAutoReload:`設定自動儲值`,continue:`繼續`,description:`您將被重新導向至 Stripe 以完成付款。`,title:`新增點數`},i={openApp:`開啟應用程式`,pin:`釘選`,previewTitle:`{name} 預覽`,unpin:`取消釘選`},a={close:`關閉`,copyLink:`複製連結`,deploy:`部署`,deployToVercel:`部署至 Vercel`,deployToVercelSubtitle:`發佈為靜態頁面`,deployedCopyLinkAria:`已部署至 Vercel,複製連結`,deployedCopyLinkTooltip:`已部署:複製連結`,deployedToVercel:`已部署至 Vercel`,deploying:`正在部署…`,edit:`編輯`,expandApp:`展開應用程式`,fullscreen:`全螢幕`,openApp:`開啟應用程式`,redeploy:`重新部署`,redeploySubtitle:`發佈目前版本`,share:`分享`,shareAndDeploy:`分享並部署`,shareExportSubtitle:`匯出為 .vellum 檔案`,sharing:`正在分享…`},o={exitFullscreen:`結束全螢幕`},s={failed:`連線至助理失敗。`},c={updateFailed:`無法更新「{label}」。您的變更已還原。`},l={accent:`強調色`,accentAutomatic:`自動`,accentPickerLabel:`強調色`,accentReset:`重設`,body:`身體`,color:`顏色`,eyes:`眼睛`,keepUploadedDescription:`儲存角色將會取代它`,keepUploadedLabel:`保留您上傳的圖片`,loadError:`無法載入虛擬替身元件。請確認您的助理正在執行。`,name:`名稱`,next:`下一個 {label}`,previous:`上一個 {label}`,randomize:`隨機化`,save:`儲存`,saving:`正在儲存…`,title:`更新虛擬替身`,uploadImage:`上傳圖片`,uploadedAlt:`已上傳的虛擬替身`,useCharacterDescription:`從我們內建的虛擬替身中選擇`,useCharacterLabel:`改用角色`},u={bySigner:`由 {name}`,cancel:`取消`,capabilities:`功能`,createdBy:`建立者`,hideWarnings:`隱藏警告 ({count})`,install:`安裝`,installAnyway:`仍要安裝`,loading:`正在載入...`,showWarnings:`顯示警告 ({count})`,size:`大小`},d={body:`您的助理透過您自行設定的供應商發聲。請在<settingsLink>模型與服務</settingsLink>中設定其語音。`},f={verifyTitle:`最後一步:確認您的身分`,verifyAction:`驗證我`,verifyBody:`您的助理還不知道哪個 {channel} 帳號是您的,所以暫時不會回覆您。在聊天中說「在 {channel} 上驗證我」即可完成。`,verifyActionBody:`您的助理還不知道哪個 {channel} 帳號是您的,所以暫時不會回覆您。它會在聊天中陪您完成。`,verifiedTitle:`身分已驗證`,verifiedBody:`您的助理已識別您的 {channel} 帳號,會回覆您。一切就緒。`},p={alt:`助理頭像`,fallbackLetter:`V`},m={alt:`助理頭像`},h={actionsTitle:`{title} 動作`},g={ariaLabel:`指令面板`,clear:`清除`,clearSearch:`清除搜尋`,closeSearch:`關閉搜尋`,noResults:`沒有結果`,placeholder:`搜尋對話、記憶…`,searchAriaLabel:`搜尋`,searching:`正在搜尋…`},_={announcement:{body:`現在,無論你在桌面上的哪個位置,我都能陪你一起工作。`,cards:{context:{body:`讓我看到你所看到的內容,結合情境為你提供協助。`,title:`展示並講解`},flow:{body:`無需離開目前的 App,隨時都能找到我。`,title:`保持專注和節奏`},together:{body:`和我交談、指點,一起推進工作。`,title:`並肩協作`}},close:`關閉`,confirm:{body:`只需大約一分鐘。我迫不及待想向你展示我能在桌面上做些什麼。`,keep:`開始導覽`,skip:`暫時略過`,title:`略過導覽?`},previewLabel:`你的桌面助理`,previewAssistantName:`Quill`,start:`開始導覽`,title:`在你工作的地方與我相遇`},ariaLabel:`介紹您的助理`,back:`上一步`,call:{click:`點擊`,line:`正在聆聽`,shortcut:`快速鍵`},close:`關閉`,done:`知道了`,draw:{body:`指出螢幕上的任何內容`,title:`標註`},idle:{body:`把游標移到我上面,我就出來。`,title:`嘿,是我`,titleNamed:`嘿,我是 {name}`},key:{scolded:`不是這個,是鍵盤上的那個鍵`,title:`讓我更方便地和你交談`},meet:{body:`我會留在您的桌面上,即使 Vellum 沒有顯示。`},mute:{body:`點擊麥克風把自己靜音,點擊喇叭把我靜音`,title:`靜音`},next:`下一步`,share:{body:`把分頁、視窗或整個螢幕分享給我`,title:`分享您的螢幕`},talk:{body:`點擊我就能開始對話。`,gesture:`或者連按兩次這個鍵:`,greeted:`成功了!就這麼簡單。`,title:`和我說話`},try:{body:`跟我打個招呼,我會說出聲來回答。`,how:`點擊我,或連按兩次這個鍵`,title:`試試看`},permission:{microphoneAction:`啟用麥克風`,microphoneBody:`允許我使用你的麥克風進行語音對話。`,shortcutBody:`允許我在你使用其他 App 時辨識快捷鍵。`,screenAction:`啟用螢幕共享`,screenBody:`設定螢幕共享。使用時再選擇要共享的內容。`,openSettings:`打開設定`,settingsHint:`在系統設定中允許取用,然後返回這裡。`,restricted:`你的 Mac 限制了此權限。你可以略過此步驟。`,error:`無法檢查取用權限。請重試。`,waiting:`正在檢查取用權限…`,skip:`暫時略過`}},v={allow:`允許`,confirm:`確認`,credentialLabel:`憑證`,defaultSuffix:`(預設)`,deny:`拒絕`,dismiss:`關閉`,enter:`輸入`,microphoneFallback:`麥克風 {index}`,microphonePermissionHint:`允許存取麥克風後即可依名稱查看每個麥克風。`,microphoneTitle:`麥克風`,needsCredentials:`需要憑證`,needsCredentialsFor:`需要 {service} 的憑證`,needsOkCount:`{count, plural, other {有 # 項需要你的同意}}`,notNow:`暫不`,openApp:`開啟 Vellum`,pendingBadge:`{count, plural, other {有 # 項需要你的同意}}`,previewVoice:`試聽 {voice}`,review:`檢視`,savedMicrophone:`已儲存的麥克風`,savedMicrophoneNotConnected:`已儲存的麥克風(未連接)`,stopPreview:`停止試聽`,surfaceFallback:`有內容要給你看`,systemDefault:`系統預設`,voiceTitle:`聲音`},y={calling:`正在呼叫…`,callingNamed:`正在呼叫 {name}…`,captureKind:`來源類型`,captureNothing:`沒有可顯示的內容`,capturePicker:`教學來源`,captureScreen:`螢幕 {n}`,captureScreens:`螢幕`,captureTabs:`Chrome 分頁`,captureWindows:`視窗`,endSession:`結束會話`,muteAssistant:`將助理靜音`,muteAssistantNamed:`將 {name} 靜音`,muteMicrophone:`將麥克風靜音`,notNow:`暫不`,offerCopy:`複製`,offerDiscard:`捨棄`,offerHeard:`{app} 已貼上那段`,offerNowhere:`沒有地方可以放`,offerPasteFailed:`無法貼上這些內容`,offerQuit:`結束 {app}`,offerUse:`使用 Vellum 的版本`,offerVersion:`Vellum 聽到的是`,openVellum:`開啟 Vellum`,share:`共享`,sharePicker:`共享來源`,showSummary:`顯示摘要`,stopTeaching:`停止教學`,summarizing:`正在摘要`,talk:`交談`,teach:`教學`,unmuteAssistant:`解除助理靜音`,unmuteAssistantNamed:`解除 {name} 靜音`,unmuteMicrophone:`解除麥克風靜音`,dictating:`正在聆聽`,dictatingTranscribing:`正在思考`,draw:`繪製`,clearMarks:`清除標記`,drawTools:`繪圖工具`,drawFreehand:`自由繪製`,drawLine:`直線`,drawBox:`方框`,drawCircle:`圓形`,chooseMicrophone:`選擇麥克風`,workCount:`{count, plural, =0 {沒有進行中的工作} other {# 項工作進行中}}`,workDone:`已完成`,workStopped:`已停止`,workMore:`還有 {count} 項`,workWaiting:`{count, plural, other {# 項等待你的回覆}}`,workWaitingStep:`等待你的回覆`},b={sharingScreen:`正在分享你的螢幕`,sharingScreenNamed:`正在與 {name} 分享你的螢幕`,sharingWindow:`正在分享一個視窗`,sharingWindowNamed:`正在與 {name} 分享一個視窗`,teaching:`正在教學`,teachingNamed:`正在教 {name}`},x={copiedAria:`已複製`,copyFailed:`無法複製檔案內容。`,copyFileContentsAria:`複製檔案內容`,downloadFileAria:`下載檔案`,editFileAria:`編輯檔案`},S={untitled:`未命名`},C={copied:`已複製`,copyFailed:`無法複製到剪貼簿。`},w={cancel:`取消`,create:`建立`,description:`佈建一個新助理。它將在背景啟動。`,namePlaceholder:`助理名稱(選填)`,title:`新助理`,toastSuccess:`新助理已建立。`},T={ariaLabel:`日期範圍`,lastDays:`{days, plural, other {過去 # 天}}`},E={delete:`刪除`,deleting:`正在刪除…`,message:`"{name}" 將會被永久移除。`,title:`刪除應用程式`},D={confirmLabel:`讓您的助理處理`,confirmLabelNamed:`讓 {assistantName} 處理`,message:`"{appName}" 使用後端服務,這些服務無法在靜態 Vercel 頁面上運作。您的助理可以使用無伺服器函式正確部署它。`,messageNamed:`"{appName}" 使用後端服務,這些服務無法在靜態 Vercel 頁面上運作。{assistantName} 可以使用無伺服器函式正確部署它。`,title:`此應用程式需要完整部署`},O={appExported:`應用程式已匯出`,deployFailed:`部署失敗`,deployedToVercel:`已部署至 Vercel`,open:`開啟`,shareFailed:`分享應用程式失敗`},k={tooltip:`停止`},A={copy:`複製`,expandedValue:`展開的值`,showLess:`顯示較少`,showMore:`顯示更多`},j={stopRecording:`停止錄音`},M={ariaLabel:`加入 Vellum Discord 社群`,ctaLong:`加入 Discord`,ctaShort:`加入`,subtitleLong:`與團隊交流 - 分享意見回饋、提出功能需求、更快獲得解答`,subtitleShort:`分享意見回饋、提出功能需求、更快獲得解答`,title:`加入我們的社群!`},N={instructions:`貼上您從「機器人」頁面複製的機器人金鑰。`,verificationNoticeTitle:`請忽略「驗證您的應用程式」頁面`,verificationNoticeBody:`Discord 對每個新應用程式都會顯示它。只有超過 100 個伺服器時才有意義。`,botTokenLabel:`機器人金鑰`,save:`連線`,saving:`正在連線...`,saved:`已連線。接下來,將機器人新增至伺服器。`,botTokenPlaceholder:`MTk4NjIyNDgzNzAyNDU0...`},P={inPortal:`在 Discord 開發者入口網站中:`,stepCreateApp:`點擊<strong>New Application</strong>,並用您助理的名字命名應用程式:`,copyName:`複製名稱`,copied:`已複製!`,stepAppIcon:`可選:下載頭像,然後在<strong>一般資訊</strong>頁面上傳為應用程式圖示。`,stepResetToken:`前往應用程式選單中的<strong>機器人</strong>頁面,點擊<strong>重設金鑰</strong>並立即複製金鑰。Discord 只會顯示一次。`,stepIntentsOff:`在同一頁面,保持三個<strong>特權閘道意圖</strong>開關全部關閉。您的助理不需要它們:它只會讀取私訊和提及它的訊息。`,openPortal:`開啟 Discord 入口網站`,continue:`我已擁有金鑰`},F={connectedTitle:`機器人已新增`,connectedBody:`金鑰已儲存,機器人已加入您的伺服器。Discord 這邊已完成。`},I={instructions:`機器人加入伺服器前什麼都看不到、也無法回覆。開啟連結,選擇您的伺服器並核准。`,openInvite:`新增至伺服器`,confirmJoined:`我已新增機器人`,noAppId:`請先連線機器人金鑰,然後再回來將其新增至伺服器。`},L={channelLabel:`Discord`,stepCreate:`建立應用程式`,stepConnect:`連線`,stepInvite:`新增至伺服器`,stepFinish:`完成`,copyError:`無法複製名稱。請改為在 Discord 中輸入。`},R={acknowledge:`確認`,acknowledging:`正在確認...`,cleanupBody:`提示您的助理釋出空間,以免空間用盡並進入鎖定狀態。`,cleanupTitle:`清理模式已啟用`,criticalBody:`如果儲存空間用盡,您的助理將進入鎖定狀態。`,criticalModalDescription:`如果儲存空間用盡,您的助理將進入鎖定狀態。您應該提示您的助理釋出空間或增加儲存空間。`,criticalTitle:`儲存空間嚴重不足`,dontShowAgain:`不再顯示`,manageStorage:`管理儲存空間`,review:`檢閱`,upgrade:`升級`,warningBody:`釋出空間以避免中斷。`,warningBodyWithUpgrade:`釋出空間或增加更多儲存空間以避免中斷。`,warningTitle:`您的儲存空間即將用盡`},z={failed:`下載失敗`,revealMac:`在 Finder 中顯示`,revealWindows:`在檔案總管中顯示`,saved:`已儲存至「下載」`,started:`下載已開始`,startedDescription:`請在瀏覽器的下載內容中尋找 {filename}。`},B={discard:`捨棄`,save:`儲存`,saving:`正在儲存…`},V={copyAriaLabel:`複製邀請連結`,createFailed:`建立邀請連結失敗。請確認您的助理已啟用 A2A。`,creating:`正在建立邀請連結…`,done:`完成`,shareHint:`與另一位助理擁有者分享此連結以建立連線。`,title:`分享連線連結`,tryAgain:`再試一次`},H={ariaLabel:`Vellum 在 GitHub 上是開放原始碼`,ctaAriaLabel:`在 GitHub 上為 Vellum 加星`,ctaLabel:`為我們加星`,subtitle:`在 GitHub 上為我們加星或貢獻`,title:`Vellum 是開放原始碼`},U={loadError:`此區段無法載入。請重新載入頁面再試一次。`},W={goToConversation:`前往對話`},G={ariaLabelMacOS:`下載 macOS 應用程式`,ariaLabelWindows:`下載 Windows 應用程式`,ctaAriaLabelMacOS:`下載 macOS 應用程式`,ctaAriaLabelWindows:`下載 Windows 應用程式`,ctaLabel:`下載`,subtitle:`電腦使用 · 終端機存取 · 原生自動化`,titleMacOS:`取得 macOS 應用程式`,titleWindows:`取得 Windows 應用程式`},K={bannerAria:`下載 {appName} 應用程式`,bannerAriaGeneric:`下載 Vellum 行動應用程式`,download:`下載`,downloadAppAria:`下載 {appName} 應用程式`,downloadAppAriaGeneric:`下載 Vellum 行動應用程式`,subtitle:`推播通知 · 生物辨識登入 · 觸覺回饋`,title:`取得 {appName} 應用程式`,titleGeneric:`取得 Vellum 應用程式`},q={backToAssistant:`返回您的助理`,badge:`錯誤 404`,body:`您要尋找的頁面不存在或可能已移動。`,goBack:`返回`,title:`找不到頁面`},J={dismissAria:`關閉`},Y={back:`返回`},X={cancel:`取消`,logIn:`登入`},Z={assistantHandleIdleEmpty:`您的助理尚未設定識別名稱,請設定一個以便提及。`,assistantHandleLabel:`助理識別名稱`,assistantHandleUpdated:`助理識別名稱已更新。`,available:`可用`,availableHelper:`可用。`,checkAvailabilityFailed:`無法檢查可用性。`,checkingAvailability:`正在檢查可用性…`,chooseDifferentHandle:`請選擇不同的識別名稱。`,emailLabel:`電子郵件`,handleHelper:`小寫字母、數字、連字號和底線。3–30 個字元。`,handleLocked:`您的助理識別名稱已鎖定,因為它被用作電子郵件子網域。若要變更,請先<releaseLink>釋放子網域</releaseLink>。`,loading:`正在載入您的個人資料…`,notAvailable:`不可用`,profileUpdated:`個人資料已更新。`,save:`儲存`,saved:`已儲存`,saving:`正在儲存…`,subtitle:`管理您的帳號詳細資料和偏好設定。`,title:`個人資料`,userHandleIdleAutoGenerated:`您的識別名稱是在註冊時自動產生的 - 請選擇一個您喜歡的。`,userHandleLabel:`使用者識別名稱`},Q={created:`已建立個人資料「{name}」`},$={logoAlt:`Vellum`,placeholder:`詢問 Vellum 任何問題…`,send:`傳送訊息`},ee={copied:`已複製!`,copyError:`無法複製推薦連結。`,copySuccess:`已複製到剪貼簿!`,creditsEarned:`已賺取點數`,friendsReferred:`已推薦好友`,gatedTooltip:`訂閱或購買點數以開始賺取!`,loadError:`載入推薦資訊失敗。`,loading:`載入中...`,shareLink:`分享連結`,subtitleDefault:`與好友分享 Vellum,每次註冊均可賺取點數。`,subtitleWithAmounts:`與好友分享 Vellum - 他們註冊後,您和好友將各獲得 {creditAmount} 點數,總計最高可達 {earningCap}。`},te={title:`賺取免費點數`},ne={confirm:`移除`,messageOrigin:`這不會影響 {assistantName} 或讓您在那裡登出。它只會忘記此裝置上的項目。您可以隨時再次新增。`,messagePaired:`這不會影響 {assistantName} 在其主機上的狀態。它只會忘記此裝置上的配對。您可以隨時使用 vellum connect import 再次配對。`,messagePlatform:`這不會刪除 {assistantName}。它只會將其從此裝置移除。登入後它將再次可用。`,title:`從此裝置移除?`},re={body:`您的助理正在努力工作並達到其目前的資源限制。請升級以確保其順暢執行。`,bodyNoUpgrade:`您的助理正在努力工作並達到其目前的資源限制。`,dontShowAgain:`不再顯示`,title:`您的助理需要更多資源`,titleNamed:`{assistantName} 需要更多資源`,upgrade:`升級`},ie={confirmLabel:`停用`,message:`這將永久停用此助理及其所有資料。您需要再次完成引導流程才能建立新的助理。此動作無法復原。`,title:`停用助理`},ae={loadingAria:`正在載入`},oe={loadingAria:`正在載入`},se={unnamedAssistant:`該助理`},ce={chunkFailBody:`此區段無法載入。可能是網路瞬斷或版本過舊。請重新載入頁面再試一次。`,reload:`重新載入`},le={confirmMessage:`更新至版本 {version}?更新期間助理將暫時無法使用。`,confirmTitle:`更新助理執行環境`,later:`稍後`,title:`有新的助理版本可用:{version}`,toastComplete:`更新完成。您的助理運作正常。`,toastFailed:`無法觸發更新。請再試一次。`,update:`更新`},ue={ariaLabel:`{name} 動作`},de={reset:`重設`,save:`儲存`},fe={label:`分享連線連結`},pe={aboutDiagnosticsAria:`關於診斷資訊`,addFiles:`新增檔案`,adminOnlyHint:`僅限管理員 - 在本機建立診斷封存檔並下載,而非提交意見回饋或通知 Slack。`,attachments:`附件`,bugTip:`提示:在我們的 <discordLink>Discord 社群</discordLink> 發文可獲得更快的支援`,cancel:`取消`,category:`類別`,closeAria:`關閉`,diagnosticsTooltip:`診斷資訊包含瀏覽器內容、助理日誌和時間戳記 - 絕不包含密碼或憑證。`,downloadDiagnostics:`直接下載診斷資訊`,downloadDiagnosticsAria:`直接下載診斷資訊`,downloadDiagnosticsButton:`下載診斷資訊`,dropFiles:`拖曳檔案以附加…`,email:`電子郵件`,featureTip:`提示:在我們的 <roadmapLink>公開藍圖</roadmapLink> 上為功能投票`,includeConversation:`包含最近的對話`,includeConversationAria:`包含最近的對話`,includeDiagnostics:`包含診斷資訊`,includeDiagnosticsAria:`包含瀏覽器診斷資訊`,messageLabelBug:`哪裡出錯了?`,messageLabelFeature:`描述您的想法`,messageLabelOther:`您有什麼想法?`,messagePlaceholderBug:`您預期會發生什麼,而實際發生了什麼?`,messagePlaceholderFeature:`這將為您解決什麼問題?`,messagePlaceholderOther:`分享您的想法...`,preparingDiagnostics:`正在準備診斷資訊…`,reasonBugReport:`錯誤報告`,reasonFeatureRequest:`功能請求`,reasonOther:`其他`,removeAttachmentAria:`移除 {name}`,sendingFeedback:`正在傳送意見回饋…`,submit:`提交`,timeRange:`時間範圍`,timeRangeAllTime:`所有時間`,timeRangeAria:`診斷資訊時間範圍`,timeRangePast24Hours:`過去 24 小時`,timeRangePastHour:`過去一小時`,title:`分享意見回饋`},me={loadingAria:`正在載入意見回饋表單`},he={close:`關閉`,message:`無法載入意見回饋表單。`,retry:`再試一次`},ge={closeAria:`關閉`,closeSidebarAria:`關閉側邊欄`,openSidebarAria:`開啟側邊欄`},_e={backFrom:`從 {title} 返回`,backToMenu:`返回 {title} 選單`,navigationAria:`{title} 導覽`},ve={ariaLabel:`側邊欄導覽`},ye={label:`從此對話中學習`},be={message:`從此助理中移除「{name}」?`,remove:`移除`,title:`移除技能`},xe={approvalNotice:`如果 Slack 顯示「請求核准」而非 <strong>安裝</strong>,則工作區管理員需要先核准此應用程式。`,createdApp:`我已建立應用程式`,inSlack:`在 Slack 中:`,stepManifest:`在<strong>或以您自己的方式開始</strong>下方,選擇<strong>從資訊清單</strong>,然後<strong>繼續</strong>`,stepPaste:`選擇您的工作區並貼上資訊清單`,stepReview:`檢閱權限,然後點擊<strong>建立並安裝</strong>`},Se={appName:`應用程式名稱`,appNamePlaceholder:`我的助理`,copied:`已複製!`,copyManifest:`複製資訊清單`,description:`描述 (選填)`,descriptionHelper:`顯示在應用程式的 Slack 個人資料中。`,descriptionPlaceholder:`此助理提供哪些協助`,intro:`為您的 Slack 應用程式命名並複製其資訊清單。所有權限和設定皆已預先配置。`,next:`下一步`},Ce={body:`在新分頁中開啟 Slack 以建立應用程式,然後返回此處查看後續步驟。`,copied:`已複製!`,copyManifest:`複製資訊清單`,manifestCopiedNotice:`您已在此處複製此應用程式的資訊清單。如果您之後有複製任何其他內容,請在貼上前再次複製。`,manifestNotCopiedNotice:`您尚未複製此應用程式的資訊清單。Slack 的建立應用程式彈出視窗沒有其他方式可以取得,因此請在貼上前複製它。`,next:`下一步`,openSlack:`開啟 Slack`},we={appTokenLabel:`應用程式權杖`,botTokenLabel:`機器人權杖`,connectSlack:`連接 Slack`,connecting:`正在連接…`,credentialsSaved:`憑證已儲存`,instructions:`在 Slack 的確認畫面中,展開 <credentials>您的應用程式憑證</credentials> 並複製兩個權杖。`,skipNotice:`該畫面也提供命令列逐步說明和一個 <download>下載應用程式檔案</download> 按鈕。請跳過這兩項。它們會設定一個獨立的本機應用程式,而此助理只需要這兩個權杖。`,savedBody:`兩個金鑰都已儲存。Slack 這邊已完成。`},Te={channelLabel:`Slack`,copyError:`無法複製清單。請在繼續之前重新複製。`,stepConnect:`連接`,stepCreate:`建立`,stepName:`名稱`,stepOpen:`開啟`},Ee={total:`總計:{value}`},De={reloadApp:`重新載入應用程式`},Oe={reconnecting:`正在重新連線至你的助理…`,dismiss:`關閉`,goToDoctor:`前往診斷`,resumeAssistant:`恢復助理`,retryNow:`立即重試`,wakeUp:`喚醒`},ke={allLanguages:`所有語言`,featured:`精選`,languagesAriaLabel:`語言`,noMatch:`無符合的語言。`,searchAriaLabel:`搜尋語言`,searchPlaceholder:`搜尋語言`,suggested:`建議`},Ae={description:`從您下次語音輸入開始生效。`},je={apiKeyLabel:`API 金鑰`,apiKeyPlaceholderReplace:`•••••••• (輸入新金鑰以取代)`,providerAriaLabel:`語音轉文字提供者`,providerLabel:`提供者`,saveFailed:`儲存語音轉文字設定失敗`,saveSuccess:`語音轉文字設定已儲存`,spokenLanguage:`口說語言`,spokenLanguageApplies:`從您下次語音輸入開始生效。`,vellumTranscription:`轉錄會透過您的 Vellum 帳戶執行。`,windowsNativeDisplayName:`Windows 原生聽寫`,windowsNativeSetupWarning:`需要為您的 Windows 顯示語言啟用基本語音辨識:開啟「設定」>「時間與語言」>「語言與區域」,選取顯示語言旁邊的三個點,選擇「語言選項」,然後在「語言功能」下下載「基本語音辨識」。`,windowsNativeSubtitle:`Windows 裝置上的語音辨識,透過 Windows 輔助程式在本機執行。可離線運作且不需要 API 金鑰。`},Me={ariaLabel:`子助理 {subagentId}`},Ne={accessibilityDescription:`允許您的助理代表您點擊、輸入和控制應用程式。`,accessibilityLabel:`輔助使用`,checking:`正在檢查權限...`,dockIcon:`Dock 圖示`,microphoneDescription:`允許您的助理擷取音訊以進行語音輸入和錄音。`,microphoneLabel:`麥克風`,notificationBadgesDescription:`允許您的助理在 {surface} 上顯示未讀對話計數。`,notificationBadgesLabel:`通知標記`,notificationsDescription:`允許您的助理傳送 macOS 警示以進行核准、訊息和任務更新。`,notificationsLabel:`通知`,notificationsWindowsDescription:`允許您的助理顯示 Windows 通知以進行核准、訊息和任務更新。`,screenDescription:`允許您的助理在電腦使用任務期間擷取螢幕內容。`,screenLabel:`螢幕錄影`,speechRecognitionDescription:`允許您的助理在裝置上將您的語音轉錄為文字。`,speechRecognitionLabel:`語音辨識`,speechRecognitionWindowsDescription:`允許您的助理使用 Windows 語音辨識將您的語音轉錄為文字。`,taskbarIcon:`工作列圖示`,title:`系統權限`},Pe={botTokenLabel:`機器人權杖`,connectTelegram:`連接 Telegram`,instructions:`貼上 BotFather 回覆中的權杖。它是 <tokenLine>Use this token to access the HTTP API</tokenLine> 之後的整行內容。`,saving:`正在儲存…`,savedTitle:`權杖已儲存`,savedBody:`機器人金鑰已儲存。Telegram 這邊已完成。`},Fe={copied:`已複製!`,copyName:`複製名稱`,displayNameHint:`對於顯示名稱,<strong>{suggestedName}</strong> 可讓此機器人與您的助理相符。使用者名稱是獨立的,不一定要相符。`,chatScopeNotice:`支援私人聊天與群組。在群組中,助理會在被提及或有人回覆它時回應。不支援廣播頻道。`,inBotFather:`在 BotFather 中:`,intro:`Telegram 機器人是透過傳送訊息給 <strong>@BotFather</strong> 來建立的。開啟它,按照提示操作,然後帶著它給您的權杖回來。`,next:`下一步`,openBotFather:`開啟 BotFather`,stepDisplayName:`給它一個顯示名稱,這是人們在聊天中看到的名稱`,stepSendNewBot:`傳送 <strong>/newbot</strong>`,stepTokenReply:`BotFather 會在 <strong>Use this token to access the HTTP API</strong> 之後回覆一個權杖`,stepUsername:`給它一個使用者名稱,該名稱必須是唯一的並以 <strong>bot</strong> 結尾`},Ie={channelLabel:`Telegram`,copyError:`無法複製名稱。請改為在 BotFather 中輸入。`,stepConnect:`連接`,stepCreate:`建立機器人`},Le={shopifyLabel:`商店網域`,shopifyPlaceholder:`your-store.myshopify.com`},Re={recoveryModeBanner:`復原模式已啟用:此工作階段已連接到偵錯終端機。`},ze={accentFill:`強調色填充`,activeBorder:`啟用邊框`,activeSurface:`啟用表面`,assistantBubble:`助理的回覆,以全寬顯示在頁面表面上。`,buttonDisabled:`已停用`,buttonPrimary:`主要`,buttonSecondary:`次要`,chatAssistant1:`完成。摘要已備妥。營收穩定成長,上季標記的兩個風險已解決,我已將值得展示的三張圖表匯出到獨立頁面。`,chatAssistant2:`已排定上午 9 點。我會附上圖表和一段式版本,供手機快速瀏覽者參考。`,chatUser1:`你能在明天的會議前總結季度報告嗎?`,chatUser2:`太好了。早上發送給團隊。`,composerPlaceholder:`傳訊息給你的助理`,faintText:`淡色文字 - 漸層中最後一個清晰可辨的步驟。`,inputFilled:`已輸入到欄位中的文字。`,inputPlaceholder:`空白欄位中的預留位置`,newConversation:`新對話`,overlaySurface:`疊加表面`,primaryText:`主要文字 - 應用程式的主要閱讀表面。`,quietText:`靜態文字 - 中繼資料和時間戳記。`,raisedCard:`凸起卡片`,raisedCardBody:`凸起表面位於面板和頁面背景上方。`,samplerTitle:`主題範例`,secondaryText:`次要文字 - 輔助文案和說明。`,sectionAccent:`強調`,sectionButtons:`按鈕`,sectionInputs:`輸入`,sectionMessages:`訊息`,sectionSurfaces:`表面和邊框`,sectionText:`文字`,send:`傳送`,subtleDivider:`此行上方的細分隔線。`,tertiaryText:`第三層文字 - 標題、標籤和預留位置。`,userBubble:`使用者在其對話框中的訊息。`},Be={dark:`深色`,label:`主題`,light:`淺色`,system:`系統`,velvet:`絲絨`},Ve={apiKey:`API 金鑰`,apiKeyRequired:`測試前請為此供應商儲存 API 金鑰。`,chooseFromCatalog:`從目錄中選擇`,customVoiceIdAriaLabel:`自訂語音 ID`,noManagedVoices:`目前沒有可用的受管理語音。`,provider:`供應商`,providerAriaLabel:`TTS 供應商`,saveFailed:`儲存語音轉文字設定失敗`,saved:`語音轉文字設定已儲存`,test:`測試`,testing:`正在測試…`,voice:`語音`,voiceId:`語音 ID`,voiceIdPlaceholder:`輸入語音 ID`},He={available:`有可用的更新。正在開始下載…`,closeAriaLabel:`關閉`,downloading:`正在下載更新…`,ready:`Vellum {version} 已備妥。`,restartToInstall:`重新啟動以安裝`,versionFallback:`更新`},Ue={deleteFailed:`刪除應用程式失敗`},We={copyFailed:`無法複製連結。請在 {url} 開啟。`,linkCopied:`連結已複製`,open:`開啟`},Ge={setupPrompt:{slack:`我想在 Slack 上聯絡你。我們來設定吧。`,telegram:`我想在 Telegram 上聯絡你。我們來設定吧。`,discord:`我想在 Discord 上聯絡你。我們來設定吧。`,email:`我想寄電子郵件給你。我們來設定你的電子郵件地址。`,phone:`我希望能打電話給你。我們來設定你的電話號碼。`},finishPrompt:{slack:`Slack 已設定但無法運作。你能完成它嗎?`,telegram:`Telegram 已設定但無法運作。你能完成它嗎?`,discord:`Discord 已設定但無法運作。你能完成它嗎?`,email:`我的電子郵件地址已設定但無法運作。你能完成它嗎?`,phone:`我的電話號碼已設定但無法運作。你能完成它嗎?`}},Ke={addFailed:`加入書籤失敗。`,removeFailed:`移除書籤失敗。`},qe={exchangeFailed:`檢查貼上的金鑰,然後再試一次。`,failed:`連線 Claude 失敗。請再試一次。`,notStarted:`請先啟動連線 Claude 流程。`,pasteEmpty:`請貼上 Claude 頁面上顯示的程式碼。`,popupBlocked:`您的瀏覽器阻擋了登入分頁。請允許此網站的彈出視窗,然後再按一下「連線」。`,startFailed:`無法啟動連線 Claude。請再試一次。`,timedOut:`等待 Claude 連線逾時。請再試一次。`},Je={accountConnected:`{name} 帳號已連線。`,authorizationError:`{name} 錯誤:{code}`,authorizationFailed:`{name} 授權失敗`,popupBlocked:`彈出視窗已阻擋。請啟用彈出視窗,然後再試一次。`,startFailed:`無法啟動 {name} 授權。`,startFailedWithReason:`無法啟動 {name} 授權:{reason}`},Ye={blocked:`您的瀏覽器阻擋了助理嘗試開啟的頁面。`,openPage:`開啟頁面`},Xe={playFailed:`無法播放語音樣本。`},Ze={updated:`主題已更新`},Qe={body:`輸入您的 Vercel API 金鑰,以將應用程式部署為靜態頁面。`,cancel:`取消`,createToken:`在 Vercel 上建立金鑰 →`,save:`儲存`,saveFailed:`無法儲存 Vercel 金鑰。`,saving:`正在儲存…`,title:`連線 Vercel`,tokenLabel:`API 金鑰`,tokenPlaceholder:`Vercel API 金鑰`},$e={assistantVoiceAriaLabel:`助理語音`,defaultSuffix:`(預設)`,previewVoice:`預覽 {description}`,providerAriaLabel:`語音提供者`,stopPreview:`停止預覽`},et={ariaLabel:`語音`,selectVoice:`選取語音`},tt={done:`完成`,title:`語音`},nt={body:`語音提供者、轉錄和 API 金鑰位於<modelsLink>模型與服務</modelsLink>中。`},rt={recommendedOff:`建議關閉`,userTranscriptLabel:`顯示你說的話`,userTranscriptDescription:`在你說話時即時轉錄文字。`,assistantTranscriptLabel:`顯示助手說的話`,assistantTranscriptDescription:`在語音回覆旁同步顯示文字。`},it={developer:`開發人員`,file:`檔案`,help:`說明`,view:`檢視`},at={checkingDomain:`正在檢查網域…`,domainVerified:`網域已驗證`,failedTitle:`網域驗證失敗。DNS 記錄可能未正確傳播。您可以嘗試釋放並重新註冊網域。`,unknownStatus:`未知狀態`,unknownStatusTitle:`無法擷取網域驗證狀態。`,verificationFailed:`驗證失敗`,verifiedTitle:`DNS 記錄已驗證。您的網域已準備好傳送和接收電子郵件。`,verifyingDomain:`正在驗證網域…`,verifyingTitle:`DNS 記錄已佈建。正在等待電子郵件提供者驗證它們 - 這通常需要幾分鐘。`,setupRequired:`需要設定網域`,setupRequiredTitle:`此網域尚未在電子郵件提供者完成佈建。在完成設定前,它無法傳送或接收電子郵件。`},ot={body:`受管服務按用量計費,並從您的 Vellum 帳戶餘額中扣除。<link>檢視定價</link>`},st={managedLabel:`受管`,modeToggleAriaLabel:`服務模式`,yourOwnLabel:`自有`},ct={previewAlt:`您的助理頭像`,download:`下載頭像`,prompt:{slack:`下載您的助理頭像,以上傳為應用程式圖示。`,discord:`下載您的助理頭像,以上傳為機器人圖示。`,telegram:`下載您的助理頭像,然後透過 /setuserpic 傳送給 BotFather。`}},lt={strict:{label:`嚴格`,description:`執行任何操作前均需確認。不自動批准任何操作。`},conservative:{label:`保守`,description:`自動批准低風險操作,例如網路搜尋以及在其自身工作區中讀寫檔案。`},relaxed:{label:`寬鬆`,description:`自動批准低風險與中等風險操作,例如修改其工作區之外的檔案。`},fullAccess:{label:`完全存取`,description:`自動批准所有操作,包括高風險和無法識別的指令。助手將絕不請求權限確認。`}},ut={everyHours:`每 {count} 小時`,everyMinutes:`每 {count} 分鐘`,retrospectiveSubtitle:`在對話活動後觸發`},dt={title:`助理使用者名稱`,description:`你的助理的公開名稱,它的電子郵件地址也以這個名稱為基礎。`,helper:`小寫字母、數字、連字號和底線。`},ft={close:`關閉`,closePanel:`關閉面板`},pt={aboutPage:e,activeAssistantGate:t,addCredentialModal:n,addCreditsModal:r,appCard:i,appNavBar:a,appViewerContainer:o,assistantConnect:s,assistantFeatureFlagStore:c,avatarManagementModal:l,bundleConfirmPage:u,byoVoiceNote:d,channelSetupCompleteNotice:f,chatAvatar:p,chooserAvatarChip:m,collapsibleNavSection:h,commandPalette:g,companionIntro:_,companionPopover:v,companionSurface:y,companionWatchFramePage:b,contentActionBar:x,conversationTitle:S,copyButton:C,createAssistantDialog:w,dateRangeSelect:T,deleteAppDialog:E,deployDialogs:D,deployStore:O,detailPanelStopButton:k,detailPrimitives:A,dictationOverlayPage:j,discordNudgeBanner:M,discordSetupConnectStep:N,discordSetupCreateStep:P,discordSetupFinishStep:F,discordSetupInviteStep:I,discordSetupWizard:L,diskPressureBanner:R,downloadFeedback:z,editFooter:B,generateInviteLinkDialog:V,githubNudgeBanner:H,lazyBoundary:U,localNotification:W,desktopAppBanner:G,nativeAppBanner:K,notFound:q,nudgeChatBanner:J,onboardingBackButton:Y,platformLoginNotice:X,profileCard:Z,profileQuickAddProvider:Q,quickInputPage:$,referralContent:ee,referralModal:te,removeFromDeviceDialog:ne,resourcePressureBanner:re,retireConfirmDialog:ie,rootHydrateFallback:ae,routePendingIndicator:oe,rootLayout:se,routeErrorBoundary:ce,runtimeUpgradeBanner:le,sectionActionsButton:ue,serviceFormControls:de,shareConnectionLinkButton:fe,shareFeedbackModal:pe,shareFeedbackModalFallback:me,shareFeedbackModalLoadError:he,sideListDrawer:ge,sidebarShell:_e,sidebarTree:ve,skillLineageLink:ye,skillRemovalDialog:be,slackSetupCreateStep:xe,slackSetupNameStep:Se,slackSetupOpenStep:Ce,slackSetupTokensStep:we,slackSetupWizard:Te,stackedBarTooltip:Ee,startupFailure:De,statusBanner:Oe,sttLanguagePicker:ke,sttLanguagePickerModal:Ae,sttProviderForm:je,subagentAvatarChip:Me,systemPermissionsCard:Ne,telegramSetupConnectStep:Pe,telegramSetupCreateStep:Fe,telegramSetupWizard:Ie,tenantHost:Le,terminalPanel:Re,themeStagePage:ze,themeToggle:Be,ttsProviderForm:Ve,updateToast:He,useAppDelete:Ue,useAppDeployment:We,useAssistantChannels:Ge,useBookmarks:Ke,useConnectClaude:qe,useOauthConnect:Je,useOpenUrlDirectives:Ye,useVoiceSamplePreview:Xe,useWorkspaceTheme:Ze,vercelTokenDialog:Qe,voiceList:$e,voicePickerField:et,voicePickerModal:tt,voiceProvidersNote:nt,voiceTranscriptToggles:rt,windowsMenuBar:it,domainVerificationChip:at,managedServicesBanner:ot,serviceCard:st,channelAvatarDownload:ct,thresholdPresets:lt,scheduleFormatters:ut,assistantHandleModal:dt,detailShell:ft};export{e as aboutPage,t as activeAssistantGate,n as addCredentialModal,r as addCreditsModal,i as appCard,a as appNavBar,o as appViewerContainer,s as assistantConnect,c as assistantFeatureFlagStore,dt as assistantHandleModal,l as avatarManagementModal,u as bundleConfirmPage,d as byoVoiceNote,ct as channelAvatarDownload,f as channelSetupCompleteNotice,p as chatAvatar,m as chooserAvatarChip,h as collapsibleNavSection,g as commandPalette,_ as companionIntro,v as companionPopover,y as companionSurface,b as companionWatchFramePage,x as contentActionBar,S as conversationTitle,C as copyButton,w as createAssistantDialog,T as dateRangeSelect,pt as default,E as deleteAppDialog,D as deployDialogs,O as deployStore,G as desktopAppBanner,k as detailPanelStopButton,A as detailPrimitives,ft as detailShell,j as dictationOverlayPage,M as discordNudgeBanner,N as discordSetupConnectStep,P as discordSetupCreateStep,F as discordSetupFinishStep,I as discordSetupInviteStep,L as discordSetupWizard,R as diskPressureBanner,at as domainVerificationChip,z as downloadFeedback,B as editFooter,V as generateInviteLinkDialog,H as githubNudgeBanner,U as lazyBoundary,W as localNotification,ot as managedServicesBanner,K as nativeAppBanner,q as notFound,J as nudgeChatBanner,Y as onboardingBackButton,X as platformLoginNotice,Z as profileCard,Q as profileQuickAddProvider,$ as quickInputPage,ee as referralContent,te as referralModal,ne as removeFromDeviceDialog,re as resourcePressureBanner,ie as retireConfirmDialog,ae as rootHydrateFallback,se as rootLayout,ce as routeErrorBoundary,oe as routePendingIndicator,le as runtimeUpgradeBanner,ut as scheduleFormatters,ue as sectionActionsButton,st as serviceCard,de as serviceFormControls,fe as shareConnectionLinkButton,pe as shareFeedbackModal,me as shareFeedbackModalFallback,he as shareFeedbackModalLoadError,ge as sideListDrawer,_e as sidebarShell,ve as sidebarTree,ye as skillLineageLink,be as skillRemovalDialog,xe as slackSetupCreateStep,Se as slackSetupNameStep,Ce as slackSetupOpenStep,we as slackSetupTokensStep,Te as slackSetupWizard,Ee as stackedBarTooltip,De as startupFailure,Oe as statusBanner,ke as sttLanguagePicker,Ae as sttLanguagePickerModal,je as sttProviderForm,Me as subagentAvatarChip,Ne as systemPermissionsCard,Pe as telegramSetupConnectStep,Fe as telegramSetupCreateStep,Ie as telegramSetupWizard,Le as tenantHost,Re as terminalPanel,ze as themeStagePage,Be as themeToggle,lt as thresholdPresets,Ve as ttsProviderForm,He as updateToast,Ue as useAppDelete,We as useAppDeployment,Ge as useAssistantChannels,Ke as useBookmarks,qe as useConnectClaude,Je as useOauthConnect,Ye as useOpenUrlDirectives,Xe as useVoiceSamplePreview,Ze as useWorkspaceTheme,Qe as vercelTokenDialog,$e as voiceList,et as voicePickerField,tt as voicePickerModal,nt as voiceProvidersNote,rt as voiceTranscriptToggles,it as windowsMenuBar};
@@ -1 +0,0 @@
1
- var e={build:`Compilación`,taglineMacOS:`Asistente de IA para tu Mac`,taglineWindows:`Asistente de IA para tu PC`,version:`Versión`},t={connecting:`Conectando con tu asistente…`,logIn:`Iniciar sesión`,logOut:`Cerrar sesión`},n={cancel:`Cancelar`,credentialSaved:`Credencial guardada.`,description:`Añade una clave API o un token para que las herramientas e integraciones lo usen.`,fieldLabel:`Campo`,fieldPlaceholder:`p. ej. api_token`,labelOptional:`Etiqueta (opcional)`,labelPlaceholder:`p. ej. token de acceso personal de GitHub`,save:`Guardar`,saveFailed:`No se pudo guardar la credencial`,serviceLabel:`Servicio`,servicePlaceholder:`p. ej. github`,title:`Añadir credencial`,valueLabel:`Valor`,valuePlaceholder:`Introduce el valor secreto`},r={amount:`Importe`,cancel:`Cancelar`,configureAutoReload:`Configurar la recarga automática`,continue:`Continuar`,description:`Se te redirigirá a Stripe para completar el pago.`,title:`Añadir créditos`},i={openApp:`Abrir app`,pin:`Fijar`,previewTitle:`Vista previa de {name}`,unpin:`Desfijar`},a={close:`Cerrar`,copyLink:`Copiar enlace`,deploy:`Desplegar`,deployToVercel:`Desplegar en Vercel`,deployToVercelSubtitle:`Publicar como página estática`,deployedCopyLinkAria:`Desplegada en Vercel, copiar enlace`,deployedCopyLinkTooltip:`Desplegada: copiar enlace`,deployedToVercel:`Desplegada en Vercel`,deploying:`Desplegando…`,edit:`Editar`,expandApp:`Expandir app`,fullscreen:`Pantalla completa`,openApp:`Abrir app`,redeploy:`Volver a desplegar`,redeploySubtitle:`Publicar la versión actual`,share:`Compartir`,shareAndDeploy:`Compartir y desplegar`,shareExportSubtitle:`Exportar como archivo .vellum`,sharing:`Compartiendo…`},o={exitFullscreen:`Salir de pantalla completa`},s={failed:`No se pudo conectar con el asistente.`},c={updateFailed:`No se pudo actualizar "{label}". Se revirtió el cambio.`},l={accent:`Acento`,accentAutomatic:`Automático`,accentPickerLabel:`Color de acento`,accentReset:`Restablecer`,body:`Cuerpo`,color:`Color`,eyes:`Ojos`,keepUploadedDescription:`Guardar el personaje la reemplaza`,keepUploadedLabel:`Conservar tu imagen subida`,loadError:`No se pudieron cargar los componentes del avatar. Asegúrate de que tu asistente esté en ejecución.`,name:`Nombre`,next:`Siguiente {label}`,previous:`Anterior {label}`,randomize:`Aleatorio`,save:`Guardar`,saving:`Guardando…`,title:`Actualizar avatar`,uploadImage:`Subir imagen`,uploadedAlt:`Avatar subido`,useCharacterDescription:`Elige entre nuestros avatares integrados`,useCharacterLabel:`Usar un personaje en su lugar`},u={bySigner:`por {name}`,cancel:`Cancelar`,capabilities:`Capacidades`,createdBy:`Creado por`,hideWarnings:`Ocultar advertencias ({count})`,install:`Instalar`,installAnyway:`Instalar de todos modos`,loading:`Cargando...`,showWarnings:`Mostrar advertencias ({count})`,size:`Tamaño`},d={body:`Tu asistente habla a través de un proveedor que configuraste tú. Define su voz en <settingsLink>Modelos y servicios</settingsLink>.`},f={verifyTitle:`Último paso: confirma que eres tú`,verifyAction:`Verificarme`,verifyBody:`Tu asistente aún no sabe cuál cuenta de {channel} es la tuya, así que no te responderá. Di "verifícame en {channel}" en el chat para terminar.`,verifyActionBody:`Tu asistente aún no sabe cuál cuenta de {channel} es la tuya, así que no te responderá. Lo termina contigo en el chat.`,verifiedTitle:`Identidad verificada`,verifiedBody:`Tu asistente conoce tu cuenta de {channel} y te responderá. Todo listo.`},p={alt:`Avatar del asistente`,fallbackLetter:`V`},m={alt:`Avatar del asistente`},h={actionsTitle:`Acciones de {title}`},g={ariaLabel:`Paleta de comandos`,clear:`Borrar`,clearSearch:`Borrar búsqueda`,closeSearch:`Cerrar búsqueda`,noResults:`Sin resultados`,placeholder:`Buscar conversaciones, recuerdos…`,searchAriaLabel:`Buscar`,searching:`Buscando…`},_={announcement:{body:`Ahora puedo acompañarte en cualquier lugar de tu escritorio.`,cards:{context:{body:`Déjame ver lo que ves para ayudarte con todo el contexto.`,title:`Muestra y explica`},flow:{body:`Háblame sin salir de la app que estás usando.`,title:`No pierdas el ritmo`},together:{body:`Habla, señala y avanza conmigo.`,title:`Trabajemos juntos`}},close:`Cerrar`,confirm:{body:`Solo lleva un minuto. Me hace ilusión enseñarte lo que puedo hacer desde tu escritorio.`,keep:`Hacer el recorrido`,skip:`Omitir por ahora`,title:`¿Omitir el recorrido?`},previewLabel:`Tu compañero de escritorio`,previewAssistantName:`Quill`,start:`Iniciar el recorrido`,title:`Estoy donde tú trabajas`},ariaLabel:`Te presento a tu compañero`,back:`Atrás`,call:{click:`Clic`,line:`Escuchando`,shortcut:`Atajo`},close:`Cerrar`,done:`Entendido`,draw:{body:`Señala cualquier cosa de tu pantalla`,title:`Dibuja`},idle:{body:`Pasa el cursor por encima y saldré.`,title:`Hola, soy yo`,titleNamed:`Hola, soy {name}`},key:{scolded:`No, la tecla de tu teclado`,title:`Haz que sea fácil hablar conmigo`},meet:{body:`Me quedo en tu escritorio, aunque Vellum no esté a la vista.`},mute:{body:`Toca el micrófono para silenciarte o el altavoz para silenciarme`,title:`Silenciar`},next:`Siguiente`,share:{body:`Muéstrame una pestaña, una ventana o toda la pantalla`,title:`Comparte tu pantalla`},talk:{body:`Haz clic en mí para empezar una conversación.`,gesture:`O pulsa dos veces esta tecla:`,greeted:`¡Lo lograste! Así de simple.`,title:`Habla conmigo`},try:{body:`Dime hola y te responderé en voz alta.`,how:`Haz clic en mí, o pulsa dos veces la tecla`,title:`Pruébalo`},permission:{microphoneAction:`Activar micrófono`,microphoneBody:`Permíteme usar tu micrófono para conversar por voz.`,shortcutBody:`Permíteme detectar el atajo mientras usas otras apps.`,screenAction:`Activar pantalla compartida`,screenBody:`Activa esta opción. Tú eliges qué compartir al usarla.`,openSettings:`Abrir Ajustes`,settingsHint:`Permite el acceso en Ajustes del Sistema y vuelve aquí.`,restricted:`Tu Mac restringe este permiso. Puedes omitir este paso.`,error:`No se pudo comprobar el acceso. Inténtalo de nuevo.`,waiting:`Comprobando acceso…`,skip:`Omitir`}},v={allow:`Permitir`,confirm:`Confirmar`,credentialLabel:`Credencial`,defaultSuffix:`(predeterminada)`,deny:`Denegar`,dismiss:`Descartar`,enter:`Introducir`,microphoneFallback:`Micrófono {index}`,microphonePermissionHint:`Permite el acceso al micrófono para ver cada micrófono por su nombre.`,microphoneTitle:`Micrófono`,needsCredentials:`Necesito una credencial`,needsCredentialsFor:`Necesito credenciales para {service}`,needsOkCount:`{count, plural, one {Necesito tu aprobación para # cosa} other {Necesito tu aprobación para # cosas}}`,notNow:`Ahora no`,openApp:`Abrir Vellum`,pendingBadge:`{count, plural, one {# cosa necesita tu aprobación} other {# cosas necesitan tu aprobación}}`,previewVoice:`Escuchar {voice}`,review:`Revisar`,savedMicrophone:`Micrófono guardado`,savedMicrophoneNotConnected:`Micrófono guardado (no conectado)`,stopPreview:`Detener`,surfaceFallback:`Algo para ver`,systemDefault:`Predeterminado del sistema`,voiceTitle:`Voz`},y={calling:`Llamando…`,callingNamed:`Llamando a {name}…`,captureKind:`Tipo de fuente`,captureNothing:`Nada que mostrar`,capturePicker:`Qué enseñar`,captureScreen:`Pantalla {n}`,captureScreenRecordingOff:`La grabación de pantalla está desactivada`,captureScreens:`Pantallas`,captureTabs:`Pestañas de Chrome`,captureTurnOnScreenRecording:`Activar`,captureWindows:`Ventanas`,draw:`Dibujar`,clearMarks:`Borrar marcas`,drawTools:`Herramienta de dibujo`,drawFreehand:`Mano alzada`,drawLine:`Línea`,drawBox:`Recuadro`,drawCircle:`Círculo`,endSession:`Finalizar sesión`,muteAssistant:`Silenciar asistente`,muteAssistantNamed:`Silenciar a {name}`,muteMicrophone:`Silenciar micrófono`,notNow:`Ahora no`,offerCopy:`Copiar`,offerDiscard:`Descartar`,offerHeard:`{app} pegó eso`,offerNowhere:`No hay dónde ponerlas`,offerPasteFailed:`No se pudieron pegar`,offerQuit:`Salir de {app}`,offerUse:`Usar la de Vellum`,offerVersion:`Vellum oyó`,openVellum:`Abrir Vellum`,share:`Compartir`,sharePicker:`Qué compartir`,showSummary:`Mostrar resumen`,stopTeaching:`Dejar de enseñar`,summarizing:`Resumiendo`,talk:`Hablar`,teach:`Enseñar`,unmuteAssistant:`Activar sonido del asistente`,unmuteAssistantNamed:`Activar sonido de {name}`,unmuteMicrophone:`Activar micrófono`,chooseMicrophone:`Elegir micrófono`,workCount:`{count, plural, =0 {Nada en curso} one {# tarea en curso} other {# tareas en curso}}`,workDone:`Hecho`,workStopped:`Detenido`,workMore:`{count} más`,workWaiting:`{count, plural, one {# esperando tu respuesta} other {# esperando tu respuesta}}`,workWaitingStep:`Esperando tu respuesta`},b={sharingScreen:`Compartiendo tu pantalla`,sharingScreenNamed:`Compartiendo tu pantalla con {name}`,sharingWindow:`Compartiendo una ventana`,sharingWindowNamed:`Compartiendo una ventana con {name}`,teaching:`Enseñando`,teachingNamed:`Enseñando a {name}`},x={copiedAria:`Copiado`,copyFailed:`No se pudo copiar el contenido del archivo.`,copyFileContentsAria:`Copiar contenido del archivo`,downloadFileAria:`Descargar archivo`,editFileAria:`Editar archivo`},S={untitled:`Sin título`},C={copied:`Copiado`,copyFailed:`No se pudo copiar al portapapeles.`},w={cancel:`Cancelar`,create:`Crear`,description:`Provisiona un asistente nuevo. Se iniciará en segundo plano.`,namePlaceholder:`Nombre del asistente (opcional)`,title:`Nuevo asistente`,toastSuccess:`Nuevo asistente creado.`},T={ariaLabel:`Rango de fechas`,lastDays:`{days, plural, one {Último # día} other {Últimos # días}}`},E={delete:`Eliminar`,deleting:`Eliminando…`,message:`"{name}" se eliminará de forma permanente.`,title:`Eliminar app`},D={confirmLabel:`Deja que tu asistente se encargue`,confirmLabelNamed:`Deja que {assistantName} se encargue`,message:`"{appName}" usa servicios de backend que no funcionarán en una página estática de Vercel. Tu asistente puede desplegarla correctamente con funciones serverless.`,messageNamed:`"{appName}" usa servicios de backend que no funcionarán en una página estática de Vercel. {assistantName} puede desplegarla correctamente con funciones serverless.`,title:`Esta app necesita un despliegue completo`},O={appExported:`Aplicación exportada`,deployFailed:`No se pudo desplegar`,deployedToVercel:`Desplegada en Vercel`,open:`Abrir`,shareFailed:`No se pudo compartir la aplicación`},k={tooltip:`Detener`},A={copy:`Copiar`,expandedValue:`Valor expandido`,showLess:`Mostrar menos`,showMore:`Mostrar más`},j={stopRecording:`Detener grabación`},M={ariaLabel:`Únete a la comunidad de Discord de Vellum`,ctaLong:`Unirse a Discord`,ctaShort:`Unirse`,subtitleLong:`Habla con el equipo: comparte comentarios, solicita funciones y obtén respuestas más rápido`,subtitleShort:`Comparte comentarios, solicita funciones y obtén respuestas más rápido`,title:`¡Únete a nuestra comunidad!`},N={instructions:`Pega el token del bot que copiaste de la página Bot.`,verificationNoticeTitle:`Ignora la página "Verify your App"`,verificationNoticeBody:`Discord la muestra a cada app nueva. Solo importa a partir de 100 servidores.`,botTokenLabel:`Token del bot`,save:`Conectar`,saving:`Conectando...`,saved:`Conectado. Ahora añade el bot a un servidor.`,botTokenPlaceholder:`MTk4NjIyNDgzNzAyNDU0...`},P={inPortal:`En el portal de desarrolladores de Discord:`,stepCreateApp:`Pulsa <strong>New Application</strong> y ponle a la app el nombre de tu asistente:`,copyName:`Copiar nombre`,copied:`¡Copiado!`,stepAppIcon:`Opcional: descarga el avatar y súbelo en <strong>General Information</strong> como icono de la app.`,stepResetToken:`Ve a la página <strong>Bot</strong> en el menú de la app, pulsa <strong>Reset Token</strong> y copia el token de inmediato. Discord solo lo muestra una vez.`,stepIntentsOff:`En la misma página, deja apagados los tres interruptores de <strong>Privileged Gateway Intents</strong>. Tu asistente no los necesita: solo lee mensajes directos y mensajes que lo mencionan.`,openPortal:`Abrir el portal de Discord`,continue:`Ya tengo mi token`},F={connectedTitle:`Bot añadido`,connectedBody:`El token está guardado y el bot ya está en tu servidor. La parte de Discord está lista.`},I={instructions:`Tu bot no puede ver ni responder nada hasta que entre en un servidor. Abre el enlace, elige tu servidor y aprueba.`,openInvite:`Añadir a un servidor`,confirmJoined:`Ya añadí el bot`,noAppId:`Conecta primero un token del bot y vuelve para añadirlo a un servidor.`},L={channelLabel:`Discord`,stepCreate:`Crear app`,stepConnect:`Conectar`,stepInvite:`Añadir al servidor`,stepFinish:`Finalizar`,copyError:`No se pudo copiar el nombre. Escríbelo en Discord en su lugar.`},R={acknowledge:`Reconocer`,acknowledging:`Reconociendo...`,cleanupBody:`Pide a tu asistente que libere espacio antes de que se agote y entre en un estado bloqueado.`,cleanupTitle:`El modo de limpieza está activo`,criticalBody:`Tu asistente entrará en un estado bloqueado si se queda sin almacenamiento.`,criticalModalDescription:`Tu asistente entrará en un estado bloqueado si se queda sin almacenamiento. Debes pedir a tu asistente que libere espacio o aumentar tu almacenamiento.`,criticalTitle:`El almacenamiento está críticamente bajo`,dontShowAgain:`No mostrar de nuevo`,manageStorage:`Gestionar almacenamiento`,review:`Revisar`,upgrade:`Mejorar plan`,warningBody:`Libera espacio para evitar interrupciones.`,warningBodyWithUpgrade:`Libera espacio o añade más almacenamiento para evitar interrupciones.`,warningTitle:`Tu almacenamiento está casi lleno`},z={failed:`No se pudo descargar el archivo`,revealMac:`Mostrar en Finder`,revealWindows:`Mostrar en el Explorador de archivos`,saved:`Guardado en Descargas`,started:`Descarga iniciada`,startedDescription:`Busca {filename} en las descargas de tu navegador.`},B={discard:`Descartar`,save:`Guardar`,saving:`Guardando…`},V={copyAriaLabel:`Copiar enlace de invitación`,createFailed:`No se pudo crear el enlace de invitación. Asegúrate de que A2A esté habilitado para tu asistente.`,creating:`Creando enlace de invitación…`,done:`Listo`,shareHint:`Comparte este enlace con otro propietario de asistente para establecer una conexión.`,title:`Compartir enlace de conexión`,tryAgain:`Reintentar`},H={ariaLabel:`Vellum es de código abierto en GitHub`,ctaAriaLabel:`Dar una estrella a Vellum en GitHub`,ctaLabel:`Danos una estrella`,subtitle:`Danos una estrella en GitHub o contribuye`,title:`Vellum es de código abierto`},U={loadError:`Esta sección no se pudo cargar. Recarga la página para intentarlo de nuevo.`},W={goToConversation:`Ir a la conversación`},G={ariaLabelMacOS:`Descargar la app de macOS`,ariaLabelWindows:`Descargar la app de Windows`,ctaAriaLabelMacOS:`Descargar la app de macOS`,ctaAriaLabelWindows:`Descargar la app de Windows`,ctaLabel:`Descargar`,subtitle:`Uso del ordenador · acceso a terminal · automatización nativa`,titleMacOS:`Consigue la app de macOS`,titleWindows:`Consigue la app de Windows`},K={bannerAria:`Descargar la app de {appName}`,bannerAriaGeneric:`Descargar la app móvil de Vellum`,download:`Descargar`,downloadAppAria:`Descargar la app de {appName}`,downloadAppAriaGeneric:`Descargar la app móvil de Vellum`,subtitle:`Notificaciones push · inicio biométrico · háptica`,title:`Obtén la app de {appName}`,titleGeneric:`Obtén la app de Vellum`},q={backToAssistant:`Volver a tu asistente`,badge:`Error 404`,body:`La página que buscas no existe o puede haberse movido.`,goBack:`Atrás`,title:`Página no encontrada`},J={dismissAria:`Descartar`},Y={back:`Atrás`},X={cancel:`Cancelar`,logIn:`Iniciar sesión`},Z={assistantHandleIdleEmpty:`Tu asistente aún no tiene identificador; reclama uno para poder mencionarlo.`,assistantHandleLabel:`Identificador del asistente`,assistantHandleUpdated:`Identificador del asistente actualizado.`,available:`Disponible`,availableHelper:`Disponible.`,checkAvailabilityFailed:`No se pudo comprobar la disponibilidad.`,checkingAvailability:`Comprobando disponibilidad…`,chooseDifferentHandle:`Elige un identificador diferente.`,emailLabel:`Correo electrónico`,handleHelper:`Letras minúsculas, dígitos, guiones y guiones bajos. De 3 a 30 caracteres.`,handleLocked:`El identificador de tu asistente está bloqueado porque se usa como su subdominio de correo. Para cambiarlo, <releaseLink>libera el subdominio</releaseLink> primero.`,loading:`Cargando tu perfil…`,notAvailable:`No disponible`,profileUpdated:`Perfil actualizado.`,save:`Guardar`,saved:`Guardado`,saving:`Guardando…`,subtitle:`Gestiona los detalles y las preferencias de tu cuenta.`,title:`Perfil`,userHandleIdleAutoGenerated:`Tu identificador se generó automáticamente al registrarte; elige uno que te guste.`,userHandleLabel:`Identificador de usuario`},Q={created:`Perfil "{name}" creado`},$={logoAlt:`Vellum`,placeholder:`Pregunta lo que quieras a Vellum...`,send:`Enviar mensaje`},ee={copied:`¡Copiado!`,copyError:`No se pudo copiar el enlace de referido.`,copySuccess:`¡Copiado al portapapeles!`,creditsEarned:`Créditos ganados`,friendsReferred:`Amigos referidos`,gatedTooltip:`¡Suscríbete o compra créditos para empezar a ganar!`,loadError:`No se pudo cargar la información de referidos.`,loading:`Cargando...`,shareLink:`Compartir enlace`,subtitleDefault:`Comparte Vellum con amigos y gana créditos por cada registro.`,subtitleWithAmounts:`Comparte Vellum con amigos - cada uno ganará {creditAmount} créditos cuando se registren, hasta {earningCap} en total.`},te={title:`Gana créditos gratis`},ne={confirm:`Eliminar`,messageOrigin:`Esto no afectará a {assistantName} ni cerrará tu sesión allí. Solo olvida la entrada en este dispositivo. Puedes añadirla de nuevo cuando quieras.`,messagePaired:`Esto no afectará a {assistantName} en su máquina anfitriona. Solo olvida el emparejamiento en este dispositivo. Puedes emparejarlo de nuevo cuando quieras con vellum connect import.`,messagePlatform:`Esto no eliminará a {assistantName}. Solo lo quita de este dispositivo. Al iniciar sesión volverá a estar disponible.`,title:`¿Eliminar de este dispositivo?`},re={body:`Tu asistente está trabajando duro y está alcanzando sus límites de recursos actuales. Mejora tu plan para que siga funcionando sin problemas.`,bodyNoUpgrade:`Tu asistente está trabajando duro y está alcanzando sus límites de recursos actuales.`,dontShowAgain:`No mostrar de nuevo`,title:`Tu asistente necesita más potencia`,titleNamed:`{assistantName} necesita más potencia`,upgrade:`Mejorar plan`},ie={confirmLabel:`Retirar`,message:`Esto retirará de forma permanente este asistente y todos sus datos. Tendrás que volver a completar el flujo de incorporación para crear uno nuevo. Esta acción no se puede deshacer.`,title:`Retirar asistente`},ae={loadingAria:`Cargando`},oe={loadingAria:`Cargando`},se={unnamedAssistant:`el asistente`},ce={chunkFailBody:`Esta sección no se pudo cargar. Probablemente un fallo de red o una versión antigua. Recarga la página para intentarlo de nuevo.`,reload:`Recargar`},le={confirmMessage:`¿Actualizar a la versión {version}? El asistente no estará disponible brevemente durante la actualización.`,confirmTitle:`Actualizar el runtime del asistente`,later:`Más tarde`,title:`Nueva versión del asistente disponible: {version}`,toastComplete:`Actualización completa. Tu asistente está en buen estado.`,toastFailed:`No se pudo iniciar la actualización. Inténtalo de nuevo.`,update:`Actualizar`},ue={ariaLabel:`Acciones de {name}`},de={reset:`Restablecer`,save:`Guardar`},fe={label:`Compartir enlace de conexión`},pe={aboutDiagnosticsAria:`Acerca de los diagnósticos`,addFiles:`Añadir archivos`,adminOnlyHint:`Solo para administradores: crea el archivo de diagnósticos en local y lo descarga en lugar de enviar comentarios o notificar a Slack.`,attachments:`Adjuntos`,bugTip:`Consejo: obtén soporte más rápido publicando en nuestra <discordLink>comunidad de Discord</discordLink>`,cancel:`Cancelar`,category:`Categoría`,closeAria:`Cerrar`,diagnosticsTooltip:`Los diagnósticos incluyen el contexto del navegador, los registros del asistente y marcas de tiempo; nunca contraseñas ni credenciales.`,downloadDiagnostics:`Descargar diagnósticos directamente`,downloadDiagnosticsAria:`Descargar diagnósticos directamente`,downloadDiagnosticsButton:`Descargar diagnósticos`,dropFiles:`Suelta archivos para adjuntarlos…`,email:`Correo electrónico`,featureTip:`Consejo: vota funciones en nuestro <roadmapLink>roadmap público</roadmapLink>`,includeConversation:`Incluir la conversación más reciente`,includeConversationAria:`Incluir la conversación más reciente`,includeDiagnostics:`Incluir diagnósticos`,includeDiagnosticsAria:`Incluir diagnósticos del navegador`,messageLabelBug:`¿Qué salió mal?`,messageLabelFeature:`Describe tu idea`,messageLabelOther:`¿Qué tienes en mente?`,messagePlaceholderBug:`¿Qué esperabas que ocurriera y qué ocurrió en su lugar?`,messagePlaceholderFeature:`¿Qué problema te resolvería esto?`,messagePlaceholderOther:`Comparte tus pensamientos...`,preparingDiagnostics:`Preparando diagnósticos…`,reasonBugReport:`Informe de error`,reasonFeatureRequest:`Solicitud de función`,reasonOther:`Otro`,removeAttachmentAria:`Eliminar {name}`,sendingFeedback:`Enviando comentarios…`,submit:`Enviar`,timeRange:`Intervalo de tiempo`,timeRangeAllTime:`Todo el tiempo`,timeRangeAria:`Intervalo de tiempo de diagnósticos`,timeRangePast24Hours:`Últimas 24 horas`,timeRangePastHour:`Última hora`,title:`Compartir comentarios`},me={loadingAria:`Cargando el formulario de comentarios`},he={close:`Cerrar`,message:`No se pudo cargar el formulario de comentarios.`,retry:`Reintentar`},ge={closeAria:`Cerrar`,closeSidebarAria:`Cerrar barra lateral`,openSidebarAria:`Abrir barra lateral`},_e={backFrom:`Volver desde {title}`,backToMenu:`Volver al menú de {title}`,navigationAria:`Navegación de {title}`},ve={ariaLabel:`Navegación de la barra lateral`},ye={label:`Aprendido de esta conversación`},be={message:`¿Quitar "{name}" de este asistente?`,remove:`Quitar`,title:`Quitar skill`},xe={approvalNotice:`Si Slack muestra “Request approval” en lugar de <strong>Install</strong>, un administrador del espacio de trabajo debe aprobar la app primero.`,createdApp:`He creado la app`,inSlack:`En Slack:`,stepManifest:`En <strong>Or start your own way</strong>, elige <strong>From a manifest</strong> y luego <strong>Continue</strong>`,stepPaste:`Elige tu espacio de trabajo y pega el manifiesto`,stepReview:`Revisa los permisos y haz clic en <strong>Create and Install</strong>`},Se={appName:`Nombre de la app`,appNamePlaceholder:`Mi asistente`,copied:`¡Copiado!`,copyManifest:`Copiar manifiesto`,description:`Descripción (opcional)`,descriptionHelper:`Se muestra en el perfil de Slack de la app.`,descriptionPlaceholder:`En qué ayuda este asistente`,intro:`Ponle nombre a tu app de Slack y copia su manifiesto. Todos los permisos y ajustes vienen preconfigurados.`,next:`Siguiente`},Ce={body:`Abre Slack en una pestaña nueva para crear la app y vuelve aquí para los pasos siguientes.`,copied:`¡Copiado!`,copyManifest:`Copiar manifiesto`,manifestCopiedNotice:`Copiaste el manifiesto de esta app aquí. Si has copiado algo desde entonces, cópialo de nuevo antes de pegar.`,manifestNotCopiedNotice:`Aún no has copiado el manifiesto de esta app. El modal de crear app de Slack no tiene otra forma de obtenerlo, así que cópialo antes de pegar.`,next:`Siguiente`,openSlack:`Abrir Slack`},we={appTokenLabel:`Token de la app`,botTokenLabel:`Token del bot`,connectSlack:`Conectar Slack`,connecting:`Conectando…`,credentialsSaved:`Credenciales guardadas`,instructions:`En la pantalla de confirmación de Slack, expande <credentials>Your app credentials</credentials> y copia ambos tokens.`,skipNotice:`Esa pantalla también ofrece una guía por línea de comandos y un botón <download>Download app files</download>. Omite ambos. Configuran una app local aparte, y este asistente solo necesita los dos tokens.`,savedBody:`Ambos tokens están guardados. La parte de Slack está lista.`},Te={channelLabel:`Slack`,copyError:`No se pudo copiar el manifiesto. Cópialo de nuevo antes de continuar.`,stepConnect:`Conectar`,stepCreate:`Crear`,stepName:`Nombre`,stepOpen:`Abrir`},Ee={total:`Total: {value}`},De={reloadApp:`Recargar app`},Oe={reconnecting:`Reconectando con tu asistente…`,dismiss:`Descartar`,goToDoctor:`Ir a Doctor`,resumeAssistant:`Reanudar asistente`,retryNow:`Reintentar ahora`,wakeUp:`Despertar`},ke={allLanguages:`Todos los idiomas`,featured:`Destacados`,languagesAriaLabel:`Idiomas`,noMatch:`Ningún idioma coincide.`,searchAriaLabel:`Buscar idiomas`,searchPlaceholder:`Buscar idiomas`,suggested:`Sugerido`},Ae={description:`Se aplica desde tu próximo turno hablado.`},je={apiKeyLabel:`Clave de API`,apiKeyPlaceholderReplace:`•••••••• (Introduce una clave nueva para reemplazarla)`,providerAriaLabel:`Proveedor de STT`,providerLabel:`Proveedor`,saveFailed:`No se pudieron guardar los ajustes de voz a texto`,saveSuccess:`Ajustes de voz a texto guardados`,spokenLanguage:`Idioma hablado`,spokenLanguageApplies:`Se aplica a partir de tu próximo turno hablado.`,vellumTranscription:`La transcripción se realiza a través de tu cuenta de Vellum.`,windowsNativeDisplayName:`Dictado nativo de Windows`,windowsNativeSetupWarning:`Requiere Reconocimiento de voz básico para el idioma de visualización de Windows: abre Configuración > Hora e idioma > Idioma y región, selecciona los tres puntos junto al idioma de visualización, elige Opciones de idioma y, en Características de idioma, descarga Reconocimiento de voz básico.`,windowsNativeSubtitle:`Reconocimiento de voz integrado de Windows, ejecutado localmente mediante el asistente nativo de Windows. Funciona sin conexión y no necesita una clave de API.`},Me={ariaLabel:`Subagente {subagentId}`},Ne={accessibilityDescription:`Permite que tu asistente haga clic, escriba y controle apps en tu nombre.`,accessibilityLabel:`Accesibilidad`,checking:`Comprobando permisos...`,dockIcon:`icono del Dock`,microphoneDescription:`Permite que tu asistente capture audio para entrada de voz y grabaciones.`,microphoneLabel:`Micrófono`,notificationBadgesDescription:`Permite que tu asistente muestre el recuento de conversaciones no vistas en el {surface}.`,notificationBadgesLabel:`Insignias de notificación`,notificationsDescription:`Permite que tu asistente envíe alertas de macOS para aprobaciones, mensajes y actualizaciones de tareas.`,notificationsLabel:`Notificaciones`,notificationsWindowsDescription:`Permite que tu asistente muestre notificaciones de Windows para aprobaciones, mensajes y actualizaciones de tareas.`,screenDescription:`Permite que tu asistente capture el contexto de la pantalla durante tareas de uso del ordenador.`,screenLabel:`Grabación de pantalla`,speechRecognitionDescription:`Permite que tu asistente transcriba tu voz a texto en el dispositivo.`,speechRecognitionLabel:`Reconocimiento de voz`,speechRecognitionWindowsDescription:`Permite que tu asistente transcriba tu voz a texto con el reconocimiento de voz de Windows.`,taskbarIcon:`icono de la barra de tareas`,title:`Permisos del sistema`},Pe={botTokenLabel:`Token del bot`,connectTelegram:`Conectar Telegram`,instructions:`Pega el token de la respuesta de BotFather. Es la línea completa después de <tokenLine>Use this token to access the HTTP API</tokenLine>.`,saving:`Guardando…`,savedTitle:`Token guardado`,savedBody:`El token del bot está guardado. La parte de Telegram está lista.`},Fe={copied:`¡Copiado!`,copyName:`Copiar nombre`,displayNameHint:`Para el nombre visible, <strong>{suggestedName}</strong> mantiene este bot alineado con tu asistente. El nombre de usuario es independiente y no tiene que coincidir.`,chatScopeNotice:`Los chats privados y los grupos están admitidos. En un grupo, el asistente responde cuando lo mencionan o cuando alguien responde a uno de sus mensajes. Los canales de difusión no están admitidos.`,inBotFather:`En BotFather:`,intro:`Los bots de Telegram se crean enviando un mensaje a <strong>@BotFather</strong>. Ábrelo, sigue las indicaciones y vuelve con el token que te dé.`,next:`Siguiente`,openBotFather:`Abrir BotFather`,stepDisplayName:`Dale un nombre visible, que es lo que la gente ve en el chat`,stepSendNewBot:`Envía <strong>/newbot</strong>`,stepTokenReply:`BotFather responde con un token después de <strong>Use this token to access the HTTP API</strong>`,stepUsername:`Dale un nombre de usuario, que debe ser único y terminar en <strong>bot</strong>`},Ie={channelLabel:`Telegram`,copyError:`No se pudo copiar el nombre. Escríbelo en BotFather en su lugar.`,stepConnect:`Conectar`,stepCreate:`Crear bot`},Le={shopifyLabel:`Dominio de la tienda`,shopifyPlaceholder:`tu-tienda.myshopify.com`},Re={recoveryModeBanner:`Modo de recuperación activo: esta sesión está conectada al terminal de depuración.`},ze={accentFill:`Relleno de acento`,activeBorder:`Borde activo`,activeSurface:`Superficie activa`,assistantBubble:`Una respuesta del asistente, a ancho completo sobre la superficie de la página.`,buttonDisabled:`Deshabilitado`,buttonPrimary:`Principal`,buttonSecondary:`Secundario`,chatAssistant1:`Listo. El resumen está preparado. Los ingresos crecieron de forma constante, los dos riesgos señalados del trimestre pasado están resueltos y reuní en una página aparte los tres gráficos que conviene mostrar.`,chatAssistant2:`Programado para las 9:00. Incluiré los gráficos y una versión de un párrafo para quien lo revise en el teléfono.`,chatUser1:`¿Puedes resumir el informe trimestral antes de la reunión de mañana?`,chatUser2:`Perfecto. Envíalo al equipo por la mañana.`,composerPlaceholder:`Escribe a tu asistente`,faintText:`Texto tenue: el último escalón legible de la rampa.`,inputFilled:`Texto que alguien ya ha escrito en un campo.`,inputPlaceholder:`Un marcador de posición en un campo vacío`,newConversation:`Nueva conversación`,overlaySurface:`Superficie de superposición`,primaryText:`Texto principal: la superficie de lectura principal de la app.`,quietText:`Texto discreto: metadatos y marcas de tiempo.`,raisedCard:`Tarjeta elevada`,raisedCardBody:`Las superficies elevadas se sitúan por encima de los paneles y del fondo de la página.`,samplerTitle:`Muestreador de tema`,secondaryText:`Texto secundario: textos de apoyo y descripciones.`,sectionAccent:`Acento`,sectionButtons:`Botones`,sectionInputs:`Campos`,sectionMessages:`Mensajes`,sectionSurfaces:`Superficies y bordes`,sectionText:`Texto`,send:`Enviar`,subtleDivider:`Divisor sutil encima de esta línea.`,tertiaryText:`Texto terciario: pies de foto, etiquetas y marcadores de posición.`,userBubble:`Un mensaje del usuario, en su burbuja.`},Be={dark:`Oscuro`,label:`Tema`,light:`Claro`,system:`Sistema`,velvet:`Velvet`},Ve={apiKey:`Clave de API`,apiKeyRequired:`Guarda una clave de API para este proveedor antes de probar.`,chooseFromCatalog:`Elegir del catálogo`,customVoiceIdAriaLabel:`ID de voz personalizado`,noManagedVoices:`No hay voces gestionadas disponibles en este momento.`,provider:`Proveedor`,providerAriaLabel:`Proveedor de TTS`,saveFailed:`No se pudieron guardar los ajustes de texto a voz`,saved:`Ajustes de texto a voz guardados`,test:`Probar`,testing:`Probando…`,voice:`Voz`,voiceId:`ID de voz`,voiceIdPlaceholder:`Introduce un ID de voz`},He={available:`Actualización disponible. Iniciando descarga…`,closeAriaLabel:`Cerrar`,downloading:`Descargando actualización…`,ready:`Vellum {version} está listo.`,restartToInstall:`Reiniciar para instalar`,versionFallback:`actualización`},Ue={deleteFailed:`No se pudo eliminar la app`},We={copyFailed:`No se pudo copiar el enlace. Ábrelo en {url}`,linkCopied:`Enlace copiado`,open:`Abrir`},Ge={setupPrompt:{slack:`Quiero comunicarme contigo por Slack. Vamos a configurarlo.`,telegram:`Quiero comunicarme contigo por Telegram. Vamos a configurarlo.`,discord:`Quiero comunicarme contigo por Discord. Vamos a configurarlo.`,email:`Quiero enviarte correos. Vamos a configurar tu dirección de correo.`,phone:`Quiero poder llamarte. Vamos a conseguirte un número de teléfono.`},finishPrompt:{slack:`Slack está configurado pero no funciona. ¿Puedes terminarlo?`,telegram:`Telegram está configurado pero no funciona. ¿Puedes terminarlo?`,discord:`Discord está configurado pero no funciona. ¿Puedes terminarlo?`,email:`Mi dirección de correo está configurada pero no funciona. ¿Puedes terminarla?`,phone:`Mi número de teléfono está configurado pero no funciona. ¿Puedes terminarlo?`}},Ke={addFailed:`No se pudo marcar el mensaje.`,removeFailed:`No se pudo quitar el marcador.`},qe={exchangeFailed:`Comprueba la clave pegada e inténtalo de nuevo.`,failed:`No se pudo conectar Claude. Inténtalo de nuevo.`,notStarted:`Primero inicia el flujo de Connect Claude.`,pasteEmpty:`Pega el código que se muestra en la página de Claude.`,popupBlocked:`Tu navegador bloqueó la pestaña de inicio de sesión. Permite las ventanas emergentes para este sitio y vuelve a hacer clic en Conectar.`,startFailed:`No se pudo iniciar Connect Claude. Inténtalo de nuevo.`,timedOut:`Se agotó el tiempo de espera para conectar Claude. Inténtalo de nuevo.`},Je={accountConnected:`Cuenta de {name} conectada.`,authorizationError:`Error de {name}: {code}`,authorizationFailed:`La autorización de {name} falló`,popupBlocked:`Ventana emergente bloqueada. Permite las ventanas emergentes e inténtalo de nuevo.`,startFailed:`No se pudo iniciar la autorización de {name}.`,startFailedWithReason:`No se pudo iniciar la autorización de {name}: {reason}`},Ye={blocked:`Tu navegador bloqueó una página que el asistente intentó abrir.`,openPage:`Abrir página`},Xe={playFailed:`No se pudo reproducir la muestra de voz.`},Ze={updated:`Tema actualizado`},Qe={body:`Introduce tu token de API de Vercel para publicar apps como páginas estáticas.`,cancel:`Cancelar`,createToken:`Crear un token en Vercel →`,save:`Guardar`,saveFailed:`No se pudo guardar el token de Vercel.`,saving:`Guardando…`,title:`Conectar Vercel`,tokenLabel:`Token de API`,tokenPlaceholder:`Token de API de Vercel`},$e={assistantVoiceAriaLabel:`Voz del asistente`,defaultSuffix:`(predeterminada)`,previewVoice:`Vista previa de {description}`,providerAriaLabel:`Proveedor de voz`,stopPreview:`Detener vista previa`},et={ariaLabel:`Voz`,selectVoice:`Selecciona una voz`},tt={done:`Listo`,title:`Voces`},nt={body:`Los proveedores de voz, la transcripción y las claves de API están en <modelsLink>Modelos y servicios</modelsLink>.`},rt={recommendedOff:`Recomendado desactivado`},it={developer:`Desarrollador`,file:`Archivo`,help:`Ayuda`,view:`Ver`},at={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.`,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.`,setupRequired:`Configuración del dominio requerida`,setupRequiredTitle:`Este dominio no se ha aprovisionado con el proveedor de correo. No puede enviar ni recibir correo hasta completar la configuración.`},ot={body:`Los servicios administrados se miden y se deducen del saldo de tu cuenta de Vellum. <link>Ver precios</link>`},st={managedLabel:`Administrado`,modeToggleAriaLabel:`Modo de servicio`,yourOwnLabel:`Propio`},ct={title:`Identificador del asistente`,description:`El nombre público de tu asistente. También es el nombre sobre el que se crea su dirección de correo.`,helper:`Minúsculas, números, guiones y guiones bajos.`},lt={close:`Cerrar`,closePanel:`Cerrar panel`},ut={aboutPage:e,activeAssistantGate:t,addCredentialModal:n,addCreditsModal:r,appCard:i,appNavBar:a,appViewerContainer:o,assistantConnect:s,assistantFeatureFlagStore:c,avatarManagementModal:l,bundleConfirmPage:u,byoVoiceNote:d,channelSetupCompleteNotice:f,chatAvatar:p,chooserAvatarChip:m,collapsibleNavSection:h,commandPalette:g,companionIntro:_,companionPopover:v,companionSurface:y,companionWatchFramePage:b,contentActionBar:x,conversationTitle:S,copyButton:C,createAssistantDialog:w,dateRangeSelect:T,deleteAppDialog:E,deployDialogs:D,deployStore:O,detailPanelStopButton:k,detailPrimitives:A,dictationOverlayPage:j,discordNudgeBanner:M,discordSetupConnectStep:N,discordSetupCreateStep:P,discordSetupFinishStep:F,discordSetupInviteStep:I,discordSetupWizard:L,diskPressureBanner:R,downloadFeedback:z,editFooter:B,generateInviteLinkDialog:V,githubNudgeBanner:H,lazyBoundary:U,localNotification:W,desktopAppBanner:G,nativeAppBanner:K,notFound:q,nudgeChatBanner:J,onboardingBackButton:Y,platformLoginNotice:X,profileCard:Z,profileQuickAddProvider:Q,quickInputPage:$,referralContent:ee,referralModal:te,removeFromDeviceDialog:ne,resourcePressureBanner:re,retireConfirmDialog:ie,rootHydrateFallback:ae,routePendingIndicator:oe,rootLayout:se,routeErrorBoundary:ce,runtimeUpgradeBanner:le,sectionActionsButton:ue,serviceFormControls:de,shareConnectionLinkButton:fe,shareFeedbackModal:pe,shareFeedbackModalFallback:me,shareFeedbackModalLoadError:he,sideListDrawer:ge,sidebarShell:_e,sidebarTree:ve,skillLineageLink:ye,skillRemovalDialog:be,slackSetupCreateStep:xe,slackSetupNameStep:Se,slackSetupOpenStep:Ce,slackSetupTokensStep:we,slackSetupWizard:Te,stackedBarTooltip:Ee,startupFailure:De,statusBanner:Oe,sttLanguagePicker:ke,sttLanguagePickerModal:Ae,sttProviderForm:je,subagentAvatarChip:Me,systemPermissionsCard:Ne,telegramSetupConnectStep:Pe,telegramSetupCreateStep:Fe,telegramSetupWizard:Ie,tenantHost:Le,terminalPanel:Re,themeStagePage:ze,themeToggle:Be,ttsProviderForm:Ve,updateToast:He,useAppDelete:Ue,useAppDeployment:We,useAssistantChannels:Ge,useBookmarks:Ke,useConnectClaude:qe,useOauthConnect:Je,useOpenUrlDirectives:Ye,useVoiceSamplePreview:Xe,useWorkspaceTheme:Ze,vercelTokenDialog:Qe,voiceList:$e,voicePickerField:et,voicePickerModal:tt,voiceProvidersNote:nt,voiceTranscriptToggles:rt,windowsMenuBar:it,domainVerificationChip:at,managedServicesBanner:ot,serviceCard:st,assistantHandleModal:ct,detailShell:lt};export{e as aboutPage,t as activeAssistantGate,n as addCredentialModal,r as addCreditsModal,i as appCard,a as appNavBar,o as appViewerContainer,s as assistantConnect,c as assistantFeatureFlagStore,ct as assistantHandleModal,l as avatarManagementModal,u as bundleConfirmPage,d as byoVoiceNote,f as channelSetupCompleteNotice,p as chatAvatar,m as chooserAvatarChip,h as collapsibleNavSection,g as commandPalette,_ as companionIntro,v as companionPopover,y as companionSurface,b as companionWatchFramePage,x as contentActionBar,S as conversationTitle,C as copyButton,w as createAssistantDialog,T as dateRangeSelect,ut as default,E as deleteAppDialog,D as deployDialogs,O as deployStore,G as desktopAppBanner,k as detailPanelStopButton,A as detailPrimitives,lt as detailShell,j as dictationOverlayPage,M as discordNudgeBanner,N as discordSetupConnectStep,P as discordSetupCreateStep,F as discordSetupFinishStep,I as discordSetupInviteStep,L as discordSetupWizard,R as diskPressureBanner,at as domainVerificationChip,z as downloadFeedback,B as editFooter,V as generateInviteLinkDialog,H as githubNudgeBanner,U as lazyBoundary,W as localNotification,ot as managedServicesBanner,K as nativeAppBanner,q as notFound,J as nudgeChatBanner,Y as onboardingBackButton,X as platformLoginNotice,Z as profileCard,Q as profileQuickAddProvider,$ as quickInputPage,ee as referralContent,te as referralModal,ne as removeFromDeviceDialog,re as resourcePressureBanner,ie as retireConfirmDialog,ae as rootHydrateFallback,se as rootLayout,ce as routeErrorBoundary,oe as routePendingIndicator,le as runtimeUpgradeBanner,ue as sectionActionsButton,st as serviceCard,de as serviceFormControls,fe as shareConnectionLinkButton,pe as shareFeedbackModal,me as shareFeedbackModalFallback,he as shareFeedbackModalLoadError,ge as sideListDrawer,_e as sidebarShell,ve as sidebarTree,ye as skillLineageLink,be as skillRemovalDialog,xe as slackSetupCreateStep,Se as slackSetupNameStep,Ce as slackSetupOpenStep,we as slackSetupTokensStep,Te as slackSetupWizard,Ee as stackedBarTooltip,De as startupFailure,Oe as statusBanner,ke as sttLanguagePicker,Ae as sttLanguagePickerModal,je as sttProviderForm,Me as subagentAvatarChip,Ne as systemPermissionsCard,Pe as telegramSetupConnectStep,Fe as telegramSetupCreateStep,Ie as telegramSetupWizard,Le as tenantHost,Re as terminalPanel,ze as themeStagePage,Be as themeToggle,Ve as ttsProviderForm,He as updateToast,Ue as useAppDelete,We as useAppDeployment,Ge as useAssistantChannels,Ke as useBookmarks,qe as useConnectClaude,Je as useOauthConnect,Ye as useOpenUrlDirectives,Xe as useVoiceSamplePreview,Ze as useWorkspaceTheme,Qe as vercelTokenDialog,$e as voiceList,et as voicePickerField,tt as voicePickerModal,nt as voiceProvidersNote,rt as voiceTranscriptToggles,it as windowsMenuBar};
@@ -1 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{EC as t,JS as n,Lg as r,zg as i}from"./app-D8sMVA0h.js";import{j as a}from"./vendor-DEhKVoiV.js";import{t as o,x as s}from"./react-B9IgSVeK.js";import{Mn as c,Ra as l,Ya as u,i as d}from"./icons-C0wyat6T.js";import{t as f}from"./companion-surface-DOIgH-bV.js";var p=u(`monitor-up`,[[`path`,{d:`m9 10 3-3 3 3`,key:`11gsxs`}],[`path`,{d:`M12 13V7`,key:`h0r20n`}],[`rect`,{width:`20`,height:`14`,x:`2`,y:`3`,rx:`2`,key:`48i651`}],[`path`,{d:`M12 17v4`,key:`1riwvh`}],[`path`,{d:`M8 21h8`,key:`1ev6f3`}]]),m=u(`mouse-pointer-2`,[[`path`,{d:`M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z`,key:`edeuup`}]]),h=e(s(),1),g=o(),_=i(`avatar`,r),v=i(`options`,r);function y({open:e,onStart:r,onDismiss:i}){let{t:o}=a(),[s,u]=(0,h.useState)(!1);(0,h.useEffect)(()=>{e||u(!1)},[e]);let y=()=>{u(!1),r()};return(0,g.jsx)(n.Root,{open:e,onOpenChange:e=>{e||u(!0)},children:(0,g.jsx)(n.Content,{size:`lg`,hideCloseButton:!0,dismissOnOverlayClick:!1,onEscapeKeyDown:e=>{e.preventDefault(),u(!0)},className:`max-w-[820px] overflow-hidden`,children:(0,g.jsxs)(`div`,{className:`relative grid min-h-[500px] md:grid-cols-[1.18fr_0.82fr]`,children:[s?null:(0,g.jsx)(`button`,{type:`button`,"aria-label":o(`companionIntro.announcement.close`),className:`absolute top-4 right-4 z-10 flex size-8 items-center justify-center rounded-full text-[var(--content-tertiary)] transition-colors hover:bg-[var(--surface-active)] hover:text-[var(--content-default)] md:text-white/60 md:hover:bg-white/10 md:hover:text-white`,onClick:()=>u(!0),children:(0,g.jsx)(d,{className:`size-4`})}),(0,g.jsx)(`div`,{className:`relative flex min-w-0 flex-col p-8 sm:p-10`,children:s?(0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)(`div`,{className:`flex flex-1 flex-col justify-center`,children:[(0,g.jsx)(n.Title,{className:`[&>span]:whitespace-normal text-[32px] leading-[1.08] tracking-[0.01em]`,children:o(`companionIntro.announcement.confirm.title`)}),(0,g.jsx)(n.Description,{className:`mt-4 max-w-[390px] text-body-medium-lighter leading-6 text-[var(--content-secondary)]`,children:o(`companionIntro.announcement.confirm.body`)})]}),(0,g.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2 pt-8`,children:[(0,g.jsx)(t,{variant:`ghost`,onClick:()=>{u(!1),i()},children:o(`companionIntro.announcement.confirm.skip`)}),(0,g.jsx)(t,{variant:`primary`,rightIcon:(0,g.jsx)(l,{className:`size-4`}),onClick:y,children:o(`companionIntro.announcement.confirm.keep`)})]})]}):(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(n.Title,{className:`[&>span]:whitespace-normal pr-8 text-[32px] leading-[1.08] tracking-[0.01em]`,children:o(`companionIntro.announcement.title`)}),(0,g.jsx)(n.Description,{className:`mt-3 max-w-[420px] text-body-medium-lighter leading-6 text-[var(--content-secondary)]`,children:o(`companionIntro.announcement.body`)}),(0,g.jsxs)(`div`,{className:`mt-6 flex flex-col gap-2`,children:[(0,g.jsx)(b,{icon:c,title:o(`companionIntro.announcement.cards.flow.title`),body:o(`companionIntro.announcement.cards.flow.body`)}),(0,g.jsx)(b,{icon:p,title:o(`companionIntro.announcement.cards.context.title`),body:o(`companionIntro.announcement.cards.context.body`)}),(0,g.jsx)(b,{icon:m,title:o(`companionIntro.announcement.cards.together.title`),body:o(`companionIntro.announcement.cards.together.body`)})]}),(0,g.jsx)(`div`,{className:`mt-auto flex justify-end pt-8`,children:(0,g.jsx)(t,{variant:`primary`,rightIcon:(0,g.jsx)(l,{className:`size-4`}),onClick:y,children:o(`companionIntro.announcement.start`)})})]})}),(0,g.jsxs)(`div`,{className:`relative hidden min-h-[500px] overflow-hidden bg-[#17191d] md:block`,"aria-label":o(`companionIntro.announcement.previewLabel`),children:[(0,g.jsx)(`div`,{className:`absolute inset-0 opacity-80`,style:{background:`radial-gradient(circle at 68% 22%, rgba(94,234,212,.2), transparent 34%), linear-gradient(145deg, #252a32 0%, #15171b 72%)`}}),(0,g.jsxs)(`div`,{className:`absolute top-10 right-8 left-8 h-60 overflow-hidden rounded-xl border border-white/10 bg-white/8 shadow-2xl shadow-black/30`,children:[(0,g.jsxs)(`div`,{className:`flex h-8 items-center gap-1.5 border-b border-white/8 px-3`,children:[(0,g.jsx)(`span`,{className:`size-2 rounded-full bg-white/20`}),(0,g.jsx)(`span`,{className:`size-2 rounded-full bg-white/15`}),(0,g.jsx)(`span`,{className:`size-2 rounded-full bg-white/10`})]}),(0,g.jsxs)(`div`,{className:`flex flex-col gap-3 p-5`,children:[(0,g.jsx)(`span`,{className:`h-2.5 w-2/3 rounded-full bg-white/13`}),(0,g.jsx)(`span`,{className:`h-2.5 w-full rounded-full bg-white/8`}),(0,g.jsx)(`span`,{className:`h-2.5 w-5/6 rounded-full bg-white/8`}),(0,g.jsx)(`span`,{className:`mt-3 h-20 rounded-lg bg-white/6`})]})]}),(0,g.jsx)(`div`,{className:`absolute inset-x-0 bottom-0 h-48`,children:(0,g.jsx)(f,{phase:`hover`,hovered:!0,spotlight:`talk`,assistantName:o(`companionIntro.announcement.previewAssistantName`),accentHex:`#5eead4`,character:{bodyShape:`burst`,eyeStyle:`curious`,color:`teal`},avatarBox:_,optionsBox:v})})]})]})})})}function b({icon:e,title:t,body:n}){return(0,g.jsxs)(`div`,{className:`flex items-center gap-3 rounded-xl border border-[var(--border-base)] bg-[var(--surface-base)] p-3`,children:[(0,g.jsx)(`span`,{className:`flex size-9 shrink-0 items-center justify-center rounded-full bg-[var(--feed-digest-weak)] text-[var(--feed-digest-strong)]`,children:(0,g.jsx)(e,{className:`size-4`})}),(0,g.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,g.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-emphasised)]`,children:t}),(0,g.jsx)(`span`,{className:`text-body-small-default leading-5 text-[var(--content-tertiary)]`,children:n})]})]})}export{y as CompanionTourEntryModal};
@@ -1 +0,0 @@
1
- import{t as e}from"./deploy-dialogs-D1N0Mx60.js";export{e as DeployDialogs};
@@ -1 +0,0 @@
1
- import{t as e}from"./document-load-D7lS0Qam.js";export{e as loadDocumentContent};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/esm-DwZucAaM.js","assets/react-B9IgSVeK.js","assets/rolldown-runtime-BM3Ffeng.js","assets/vendor-DEhKVoiV.js"])))=>i.map(i=>d[i]);
2
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{$S as t,$b as n,$d as r,$u as i,AC as a,AS as o,Ax as s,B as c,B_ as l,Bx as u,Cd as d,Cu as f,Da as p,Dr as m,EC as h,Ea as g,Eg as _,Eu as v,Fc as y,Fi as b,Fx as x,Gb as S,Gg as C,IS as w,Ib as T,Ih as E,Im as D,JS as O,J_ as k,Jg as A,Jx as j,KS as M,Kh as N,Ko as P,Ld as ee,M as F,M_ as I,Mm as te,Mx as ne,N as re,Nm as ie,OS as ae,Oh as oe,Ou as se,P as ce,PS as le,P_ as ue,QS as de,Qb as fe,Qx as pe,Ri as me,SC as he,SS as ge,S_ as _e,Sd as ve,Su as ye,Sx as be,Ta as xe,Td as Se,Tg as Ce,Tu as we,Uh as Te,V as Ee,WS as De,Wb as Oe,XS as ke,Xb as Ae,Xg as je,Zg as Me,_a as Ne,_f as Pe,_g as Fe,aS as Ie,ba as Le,bd as Re,bg as ze,bu as Be,by as Ve,cC as He,cx as Ue,dg as We,eS as L,ef as Ge,fC as Ke,fg as qe,fp as Je,gS as Ye,gg as Xe,gn as Ze,h_ as Qe,hd as $e,hg as et,jm as tt,jo as nt,k_ as rt,ko as it,ku as at,kx as ot,lS as R,lg as st,mC as ct,m_ as lt,md as ut,mg as dt,mn as ft,nC as pt,nS as mt,nf as ht,ng as gt,nt as _t,nv as z,nx as vt,oC as yt,pC as B,pg as bt,pn as xt,pu as St,qS as V,q_ as Ct,rx as wt,sS as Tt,s_ as Et,sg as Dt,tC as Ot,tS as kt,td as At,tf as jt,tg as Mt,uS as Nt,ud as Pt,ug as Ft,ux as It,vy as Lt,wS as Rt,wa as zt,wd as Bt,wg as Vt,wu as Ht,wx as Ut,x_ as Wt,xd as Gt,xg as Kt,xi as qt,xu as Jt,yS as Yt,ya as Xt,yn as H,yu as Zt,yy as Qt,z_ as $t,zm as en}from"./app-D8sMVA0h.js";import{$ as tn,E as nn,I as U,N as rn,Qn as W,Yn as an,j as G,k as on,tr as K}from"./vendor-DEhKVoiV.js";import{_ as sn,f as cn,n as ln,t as un,v as dn,x as fn}from"./react-B9IgSVeK.js";import{$ as pn,At as mn,D as hn,Dt as gn,Et as _n,Ji as vn,V as yn,Ya as bn,Yn as q,_r as xn,i as Sn,li as Cn,qi as wn,rt as Tn,vn as En,wa as Dn,xr as On,yn as kn,zi as An}from"./icons-C0wyat6T.js";import{t as J}from"./detail-card-5ja97d__.js";import{n as jn}from"./profile-card-DSHsAWzC.js";import{t as Mn}from"./app-info-z1hPo0V6.js";import{a as Nn,i as Pn,l as Fn,o as In}from"./machine-sizes-BWbhowrp.js";import{t as Ln}from"./format-countdown-D18PVUfL.js";import{a as Rn,i as zn,n as Bn,r as Vn,t as Hn}from"./assistant-status-panel-Cox-mezz.js";import{t as Un}from"./trait-cycle-row-DaQ1Ws3F.js";import{n as Wn,r as Gn,t as Kn}from"./settings-divider-JNNvLiiq.js";import{t as qn}from"./use-hotkey-recorder-CQ81x0jZ.js";var Jn=bn(`fingerprint-pattern`,[[`path`,{d:`M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4`,key:`1nerag`}],[`path`,{d:`M14 13.12c0 2.38 0 6.38-1 8.88`,key:`o46ks0`}],[`path`,{d:`M17.29 21.02c.12-.6.43-2.3.5-3.02`,key:`ptglia`}],[`path`,{d:`M2 12a10 10 0 0 1 18-6`,key:`ydlgp0`}],[`path`,{d:`M2 16h.01`,key:`1gqxmh`}],[`path`,{d:`M21.8 16c.2-2 .131-5.354 0-6`,key:`drycrb`}],[`path`,{d:`M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2`,key:`1tidbn`}],[`path`,{d:`M8.65 22c.21-.66.45-1.32.57-2`,key:`13wd9y`}],[`path`,{d:`M9 6.8a6 6 0 0 1 9 5.2v2`,key:`1fr1j5`}]]),Yn=bn(`server`,[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`,key:`ngkwjq`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`,key:`iecqi9`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`,key:`16zg32`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`,key:`nzw8ys`}]]),Xn=bn(`vibrate`,[[`path`,{d:`m2 8 2 2-2 2 2 2-2 2`,key:`sv1b1`}],[`path`,{d:`m22 8-2 2 2 2-2 2 2 2`,key:`101i4y`}],[`rect`,{width:`8`,height:`14`,x:`8`,y:`5`,rx:`1`,key:`1oyrl4`}]]),Y=e(fn(),1),X=un();function Zn(){let{t:e}=G(`settings`),t=z.use.velvet(),{theme:n,setThemePreference:r}=b(),i=[{value:`system`,label:e(`themePicker.system`),icon:(0,X.jsx)(kn,{className:`h-4 w-4`})},{value:`light`,label:e(`themePicker.light`),icon:(0,X.jsx)(yn,{className:`h-4 w-4`})},{value:`dark`,label:e(`themePicker.dark`),icon:(0,X.jsx)(En,{className:`h-4 w-4`})},...t?[{value:`velvet`,label:e(`themePicker.velvet`),icon:(0,X.jsx)(xn,{className:`h-4 w-4`})}]:[]];return(0,X.jsxs)(`section`,{children:[(0,X.jsx)(`h3`,{className:`text-title-small text-[var(--content-emphasised)]`,children:e(`themePicker.title`)}),(0,X.jsx)(`div`,{className:`mt-2 max-w-[360px]`,children:(0,X.jsx)(ke,{ariaLabel:e(`themePicker.ariaLabel`),value:n,onChange:r,items:i})})]})}var Qn=.5,$n={dazed:.55,bashful:.4},er=.224,tr=`var(--surface-sunken)`,nr=64;function rr(e){return $n[e]??Qn}function ir(e,t,n,r){let i=e?.eyeStyles.find(e=>e.id===t);if(!i||i.paths.length===0)return null;let a=Le(i.paths.map(e=>Xt(e.svgPath)));if(a.w<=0||a.h<=0)return null;let o=n*(r?Qn:rr(t)),s=Math.min(o/a.w,o/a.h),c=n/2-(a.x+a.w/2)*s,l=n/2-(a.y+a.h/2)*s;return{paths:i.paths,transform:`matrix(${s},0,0,${s},${c},${l})`}}function ar({components:e,eyeStyle:t,color:n,primary:r=!1,fieldColor:i,size:a=nr,className:o}){let s=(0,Y.useMemo)(()=>ir(e,t,a,r),[e,t,a,r]),c=e?.colors.find(e=>e.id===n)?.hex,l=i??c,u=a*er;return(0,X.jsxs)(`svg`,{"aria-hidden":`true`,"data-testid":`app-icon-preview`,className:o,width:a,height:a,viewBox:`0 0 ${a} ${a}`,style:{display:`block`,flexShrink:0},children:[(0,X.jsx)(`rect`,{"data-testid":`app-icon-preview-field`,width:a,height:a,rx:u,ry:u,fill:l??tr}),s?(0,X.jsx)(`g`,{"data-testid":`app-icon-preview-eyes`,transform:s.transform,children:s.paths.map((e,t)=>(0,X.jsx)(`path`,{d:e.svgPath,fill:e.color},t))}):null]})}var or={production:`#4C9B50`,staging:`#E9C91A`,dev:`#FF88C9`};Ne.eyeStyles.find(e=>e.id===`quirky`);var sr=`avatar-eyes-`,cr={eyeStyle:`quirky`,color:`green`};function lr(e,t){return`${sr}${e}-${t}`}function ur(e){if(e===null||e.kind!==`character`)return null;let t=e.traits;return Te(t)?lr(t.eyeStyle,t.color):null}function dr(e){return e!==null&&e.startsWith(sr)}function fr(e){if(e===null||!dr(e))return null;let t=e.slice(12),n=t.indexOf(`-`);return n<=0||n===t.length-1?null:{eyeStyle:t.slice(0,n),color:t.slice(n+1)}}function pr(e,t){let n=ur(e);return{target:n,availableMatch:t.supported&&n!==null&&t.available.includes(n)}}var mr=160;function hr(e,t,n){return t<=0?0:(e+n+t)%t}function gr(e,t){let n=e?.findIndex(e=>e.id===t)??-1;return n>=0?n:0}function _r({open:e,onClose:t,components:n,currentIcon:r,targetIcon:i,canSyncAvatar:a,availableIcons:o,onApply:s,onReset:c}){let{t:l}=G(`settings`),u=et(),[d,f]=(0,Y.useState)(0),[p,m]=(0,Y.useState)(0),[g,_]=(0,Y.useState)(!1),[v,y]=(0,Y.useState)(!1),b=a?fr(i):null;(0,Y.useEffect)(()=>{if(!e)return;let t=fr(r)??fr(i)??cr;f(gr(n?.eyeStyles,t.eyeStyle)),m(gr(n?.colors,t.color)),y(!1)},[e,n,r,i]);let x=n?.eyeStyles[d],S=n?.colors[p],C=x?.id??cr.eyeStyle,w=S?.id??cr.color,T=lr(C,w),E=T!==r&&o.includes(T),D=async e=>{_(!0),y(!1);try{await e()?t():y(!0)}finally{_(!1)}};return(0,X.jsx)(O.Root,{open:e,onOpenChange:e=>{e||t()},children:(0,X.jsxs)(O.Content,{size:`sm`,"data-testid":`app-icon-modal`,children:[(0,X.jsx)(O.Header,{children:(0,X.jsx)(O.Title,{children:l(`appIcon.title`)})}),(0,X.jsxs)(O.Body,{className:`space-y-4`,children:[(0,X.jsx)(`div`,{className:`flex justify-center`,children:(0,X.jsx)(`div`,{className:`rounded-2xl bg-[var(--surface-sunken)] p-6`,children:(0,X.jsx)(ar,{components:n,eyeStyle:C,color:w,size:mr})})}),(0,X.jsxs)(`div`,{className:`space-y-3`,children:[(0,X.jsx)(Un,{label:l(`appIcon.eyes`),value:C,onPrev:()=>f(hr(d,n?.eyeStyles.length??0,-1)),onNext:()=>f(hr(d,n?.eyeStyles.length??0,1))}),(0,X.jsx)(Un,{label:l(`appIcon.color`),value:w,colorHex:S?.hex,onPrev:()=>m(hr(p,n?.colors.length??0,-1)),onNext:()=>m(hr(p,n?.colors.length??0,1))})]}),b===null?null:(0,X.jsx)(h,{type:`button`,variant:`outlined`,fullWidth:!0,disabled:g,onClick:()=>{b!==null&&(f(gr(n?.eyeStyles,b.eyeStyle)),m(gr(n?.colors,b.color)),y(!1))},children:l(`appIcon.matchAvatar`)}),(0,X.jsx)(`p`,{className:`text-body-small-lighter text-[var(--content-tertiary)]`,children:l(u?`appIcon.androidApplyNote`:`appIcon.note`)}),v?(0,X.jsx)(`p`,{role:`alert`,className:`text-body-small-lighter text-[color:var(--system-negative-strong)]`,children:l(u?`appIcon.androidError`:`appIcon.error`)}):null]}),(0,X.jsxs)(O.Footer,{children:[r===null?null:(0,X.jsx)(h,{type:`button`,variant:`outlined`,disabled:g,onClick:()=>void D(c),children:l(`appIcon.reset`)}),(0,X.jsx)(h,{type:`button`,variant:`primary`,disabled:g||!E,onClick:()=>void D(()=>s(T)),children:l(`appIcon.apply`)})]})]})})}var vr=`AppIcon`,yr=on(vr);function br(){return{supported:!1,current:null,available:[]}}function xr(){return st()&&nn.isPluginAvailable(vr)}async function Sr(){if(!xr())return br();try{let{supported:e,current:t,available:n}=await yr.getState();return{supported:e===!0,current:typeof t==`string`?t:null,available:n??[]}}catch(e){return R(e,{context:`app_icon_get_state`,bestEffort:!0}),br()}}async function Cr(e){if(!xr())return!1;try{let{ok:t,error:n}=await yr.set({name:e});return t===!0?!0:(R(Error(n??`setAlternateIconName failed`),{context:`app_icon_set`,bestEffort:!0}),!1)}catch(e){return R(e,{context:`app_icon_set`,bestEffort:!0}),!1}}var wr={supported:!1,current:null,available:[]};function Tr(e,t){return e.supported===t.supported&&e.current===t.current&&e.available.length===t.available.length&&e.available.every((e,n)=>e===t.available[n])}var Er=o(tn()((e,t)=>({snapshot:wr,setSnapshot:n=>{Tr(t().snapshot,n)||e({snapshot:n})}}))),Dr=[];function Or(e){let t=Xe(),n=et(),r=z.use.androidAvatarAppIcon(),i=t||n&&r,{state:a}=oe(e),o=Er.use.snapshot(),s=Er.use.setSnapshot(),c=(0,Y.useCallback)(async()=>{if(!i)return s(wr),wr;let e=await Sr();return s(e),e},[i,s]);(0,Y.useEffect)(()=>{c()},[c]),ee(`app.resume`,()=>{c()});let l=i&&o.supported,{target:u,availableMatch:d}=pr(a,o),f=d&&u!==o.current,p=o.available,m=(0,Y.useCallback)(async e=>{if(!l||!p.includes(e))return!1;await Cr(e);let t=await c();return t.supported&&t.current===e},[l,p,c]),h=(0,Y.useCallback)(async()=>{if(!l)return!1;await Cr(null);let e=await c();return e.supported&&e.current===null},[l,c]);return{enabled:l,currentIcon:l?o.current:null,targetIcon:l?u:null,availableIcons:l?p:Dr,canSyncAvatar:f,apply:m,reset:h}}var kr=[`ai.vocify-inc.vellum-assistant-ios`,`ai.vellum.assistant`],Ar={"":`production`,".staging":`staging`,".dev":`dev`};function jr(e){for(let t of kr){if(!e.startsWith(t))continue;let n=Ar[e.slice(t.length)];if(n)return n}return null}async function Mr(){try{let{App:e}=await dn(async()=>{let{App:e}=await import(`./esm-DwZucAaM.js`);return{App:e}},__vite__mapDeps([0,1,2,3])),{id:t}=await e.getInfo();return jr(t)}catch(e){return console.debug(`[shell-environment] no native shell identity:`,e),null}}function Nr(){let[e,t]=(0,Y.useState)();return(0,Y.useEffect)(()=>{let e=!0;return Mr().then(n=>{e&&t(n)}),()=>{e=!1}},[]),e}var Pr=32,Fr={dev:{displayP3:`color(display-p3 0.9387 0.55755 0.7777)`,srgb:or.dev},staging:{displayP3:`color(display-p3 0.89313 0.79283 0.2841)`,srgb:or.staging}},Ir={local:`dev`,dev:`dev`,staging:`staging`};function Lr(){return typeof CSS>`u`||typeof CSS.supports!=`function`?!1:CSS.supports(`color`,`color(display-p3 1 1 1)`)}function Rr(e){if(e)return Lr()?e.displayP3:e.srgb}function zr(e){if(e)return e;if(e===null)return Ir.local}function Br(e,t){let n=zr(e);if(!n)return;let r=Fr[n];return t?r?.srgb:Rr(r)}function Vr(){let e=T.use.activeAssistantId(),t=Or(e);return t.enabled?(0,X.jsx)(Hr,{assistantId:e,sync:t}):null}function Hr({assistantId:e,sync:t}){let{t:n}=G(`settings`),{components:r}=oe(e),i=qt(),a=Nr(),o=et(),[s,c]=(0,Y.useState)(!1),l=r??i,u=fr(t.currentIcon),d=u??cr,f=u===null;return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-0.5`,children:[(0,X.jsx)(`div`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:n(`appIcon.title`)}),(0,X.jsx)(`p`,{className:`text-body-small-lighter text-[var(--content-tertiary)]`,children:n(`appIcon.description`)})]}),(0,X.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3`,children:[(0,X.jsx)(ar,{components:l,eyeStyle:d.eyeStyle,color:d.color,primary:f,fieldColor:f?Br(a,o):void 0,size:Pr}),(0,X.jsx)(h,{variant:`outlined`,onClick:()=>c(!0),children:n(`appIcon.change`)})]})]}),(0,X.jsx)(_r,{open:s,onClose:()=>c(!1),components:l,currentIcon:t.currentIcon,targetIcon:t.targetIcon,canSyncAvatar:t.canSyncAvatar,availableIcons:t.availableIcons,onApply:t.apply,onReset:t.reset})]})}var Ur=St({query:{hosting:`platform`}});function Wr(){let{t:e}=G(`settings`),t=_t(),n=W(Ur),r=n.data?.results??[];return n.isPending||r.length<2?null:(0,X.jsx)(J,{title:e(`assistantPicker.title`),subtitle:e(`assistantPicker.subtitle`),children:(0,X.jsx)(`div`,{className:`space-y-2`,children:r.map(n=>{let r=n.id===t;return(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-4 rounded-lg border px-4 py-3 ${r?`border-[var(--border-active)] bg-[var(--surface-lift)]`:`border-[var(--border-base)] bg-[var(--surface-base)]`}`,children:[(0,X.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,X.jsx)(kn,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)]`}),(0,X.jsx)(`div`,{className:`min-w-0`,children:(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:n.name||e(`assistantPicker.unnamed`)}),n.status!==`active`&&(0,X.jsx)(He,{tone:`warning`,children:n.status})]})})]}),(0,X.jsx)(`div`,{className:`shrink-0`,children:r?(0,X.jsxs)(`span`,{className:`flex items-center gap-1.5 text-body-small-default text-[var(--system-positive-strong)]`,children:[(0,X.jsx)(vn,{className:`h-4 w-4`}),e(`assistantPicker.active`)]}):(0,X.jsx)(h,{variant:`outlined`,size:`compact`,disabled:n.status!==`active`,onClick:()=>{A(n.id),V.success(e(`assistantPicker.switchedToast`))},children:e(`assistantPicker.switch`)})})]},n.id)})})})}var Gr=[0,300,600,3600,10800,86400,259200,604800,1209600,2592e3],Kr=new Set([300,600]);function qr(e,t){if(e===0)return t(`assistantSleepPolicy.neverSleep`);let n=Math.floor(e/86400),r=Math.floor(e%86400/3600);if(n>0&&r>0)return t(`assistantSleepPolicy.daysHours`,{days:n,hours:r});if(n>0)return t(`assistantSleepPolicy.days`,{days:n});if(r>0)return t(`assistantSleepPolicy.hours`,{hours:r});let i=Math.floor(e/60);return i>0?t(`assistantSleepPolicy.minutes`,{minutes:i}):t(`assistantSleepPolicy.seconds`,{seconds:e})}function Jr(e,t){switch(e){case 0:return t(`assistantSleepPolicy.presetNever`);case 300:return t(`assistantSleepPolicy.preset5Min`);case 600:return t(`assistantSleepPolicy.preset10Min`);case 3600:return t(`assistantSleepPolicy.preset1Hour`);case 10800:return t(`assistantSleepPolicy.preset3Hours`);case 86400:return t(`assistantSleepPolicy.preset1Day`);case 259200:return t(`assistantSleepPolicy.preset3Days`);case 604800:return t(`assistantSleepPolicy.preset7Days`);case 1209600:return t(`assistantSleepPolicy.preset14Days`);case 2592e3:return t(`assistantSleepPolicy.preset30Days`);default:return qr(e,t)}}function Yr({assistantId:e}){let{t}=G(`settings`),n=K(),r=me.use.isNonProduction(),i=(0,Y.useMemo)(()=>Gr.filter(e=>!Kr.has(e)||r),[r]),{data:a,isLoading:o,isError:s}=W(we({path:{id:e}})),c=(0,Y.useMemo)(()=>a?.idle_timeout_seconds??259200,[a]),[l,u]=(0,Y.useState)(null),d=l??c,f=l!==null,p=$e({onSuccess:()=>{V.success(t(`assistantSleepPolicy.savedToast`)),u(null),n.invalidateQueries({queryKey:v({path:{id:e}})})},onError:()=>{V.error(t(`assistantSleepPolicy.saveErrorToast`))}});return o?(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,X.jsx)(q,{className:`h-4 w-4 animate-spin`}),t(`assistantSleepPolicy.loading`)]}):s?(0,X.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--system-negative-strong)]`,children:t(`assistantSleepPolicy.loadError`)}):(0,X.jsxs)(`div`,{className:`space-y-4`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`label`,{className:`block text-body-medium-default text-[var(--content-default)]`,children:t(`assistantSleepPolicy.idleTimeout`)}),(0,X.jsx)(`p`,{className:`text-body-small-lighter text-[var(--content-tertiary)]`,children:t(`assistantSleepPolicy.idleTimeoutDescription`)}),(0,X.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:i.map(e=>(0,X.jsx)(h,{variant:`outlined`,active:d===e,onClick:()=>u(e),children:Jr(e,t)},e))}),(0,X.jsx)(`p`,{className:`mt-2 text-body-small-default text-[var(--content-tertiary)]`,children:t(`assistantSleepPolicy.current`,{duration:qr(d,t)})})]}),f&&(0,X.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,X.jsx)(h,{variant:`primary`,loading:p.isPending,onClick:()=>p.mutate({path:{id:e},body:{idle_timeout_seconds:d}}),disabled:p.isPending,children:t(`assistantSleepPolicy.save`)}),(0,X.jsx)(h,{variant:`outlined`,onClick:()=>u(null),disabled:p.isPending,children:t(`assistantSleepPolicy.cancel`)})]})]})}function Xr(e,t,n){let r=[e.version];return e.version===n&&r.push(U(`settings:assistantUpgrades.latestSuffix`)),t&&e.version===t&&r.push(U(`settings:assistantUpgrades.currentSuffix`)),r.join(` `)}var Zr=3e3;function Qr({version:e,assistantId:t}){let{onTap:n,message:r}=zn(t);return(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsx)(`button`,{type:`button`,className:`block min-w-0 break-all text-left text-body-medium-lighter text-[var(--content-default)]`,onClick:n,children:e??`—`}),r&&(0,X.jsx)(`p`,{className:`mt-1 text-body-small-default text-[var(--system-positive-strong)]`,children:r})]})}function $r({assistantId:e,currentVersion:t,releaseChannel:n,onUpgradeComplete:r}){let{t:i}=G(`settings`),a=Pe.use.rollbackEnabled(),o=z.use.previewChannel(),s=K(),c=xe(n,o),l=c===`preview`,[u,d]=(0,Y.useState)(!1),p=(0,Y.useRef)(null),[m,g]=(0,Y.useState)(null),[_,v]=(0,Y.useState)(!1),[y,b]=(0,Y.useState)(!1),[x,S]=(0,Y.useState)(null),C=e=>e&&p.current&&e===p.current?(queueMicrotask(()=>{S(i(y?`assistantUpgrades.successRolledBack`:`assistantUpgrades.successUpdated`,{version:p.current})),d(!1),p.current=null,g(null),V.success(i(y?`assistantUpgrades.toastRollbackComplete`:`assistantUpgrades.toastUpdateComplete`),{id:`runtime-upgrade-complete`,tone:`strong`}),r?.()}),!1):Zr;W({...f({path:{id:e}}),refetchInterval:u?e=>C(e.state.data?.current_release_version):!1});let{data:w,isLoading:T}=W(Pt({query:{channel:c}})),E=w?.find(e=>e.is_stable!==!1)??w?.[0],D=m??E?.version??null,O=(0,Y.useMemo)(()=>{if(!a||!D||!t)return!1;let e=Ce(D),n=Ce(t);return!e||!n?!1:Vt(e,n)<0},[a,D,t]),k=(0,Y.useMemo)(()=>{if(!D)return!1;if(!t)return!0;let e=Ce(D),n=Ce(t);if(!e||!n)return D!==t;let r=Vt(e,n);return a?r!==0:r>0},[a,D,t]),A=an({mutationFn:async t=>{let{data:n}=await $t({path:{id:e},body:t,throwOnError:!0});return n}}),j=an({mutationFn:async t=>{let{data:n}=await ue({path:{id:e},body:t,throwOnError:!0});return n}}),N=async()=>{v(!1),S(null);let t=a?D??void 0:void 0;try{if(O){let e=await j.mutateAsync({version:t});p.current=e.version??t??null,V.success(e.detail||i(`assistantUpgrades.toastRollbackInitiated`,{version:t}))}else{let e=await A.mutateAsync({version:t});if(e.detail?.includes(`Already on the latest`)){V.warning(e.detail);return}p.current=e.version??t??null,V.success(e.detail||i(`assistantUpgrades.toastUpdateInitiated`,{version:e.version??t??i(`assistantUpgrades.latest`)}))}b(O),d(!0),s.invalidateQueries({queryKey:Ht({path:{id:e}})})}catch{V.error(i(O?`assistantUpgrades.toastRollbackFailed`:`assistantUpgrades.toastUpdateFailed`))}},P=i(l?`assistantUpgrades.previewRelease`:k?O?`assistantUpgrades.rollbackTo`:`assistantUpgrades.updateTo`:`assistantUpgrades.selected`);return(0,X.jsxs)(`div`,{className:`space-y-5`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-4 md:grid md:grid-cols-[auto_minmax(0,1fr)] md:items-center md:gap-x-8 md:gap-y-4`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-1 md:contents`,children:[(0,X.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:i(`assistantUpgrades.current`)}),(0,X.jsx)(Qr,{version:t,assistantId:e})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-1 md:contents`,children:[(0,X.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:P}),(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-3 md:flex-row md:items-center md:gap-4`,children:[(0,X.jsx)(`span`,{className:`block min-w-0 flex-1`,children:T?(0,X.jsxs)(`span`,{className:`flex items-center gap-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,X.jsx)(q,{className:`h-3 w-3 animate-spin`}),i(`assistantUpgrades.loading`)]}):w&&w.length>0?a?(0,X.jsx)(De,{value:D??``,onChange:e=>g(e===E?.version?null:e),disabled:u||A.isPending||j.isPending,options:w.map(e=>({value:e.version,label:Xr(e,t,E?.version)}))}):(0,X.jsx)(`span`,{className:`block min-w-0 break-all text-body-medium-lighter text-[var(--content-default)]`,children:E?Xr(E,t,E.version):`—`}):i(`assistantUpgrades.noReleases`)}),(0,X.jsx)(h,{variant:O?`outlined`:`primary`,className:`min-w-[160px] shrink-0`,loading:A.isPending||j.isPending||u,leftIcon:(0,X.jsx)(mn,{}),onClick:()=>v(!0),disabled:!k||A.isPending||j.isPending||u||T||!w?.length,children:i(u?y?`assistantUpgrades.rollingBack`:`assistantUpgrades.updating`:O?`assistantUpgrades.rollback`:l?`assistantUpgrades.updatePreview`:`assistantUpgrades.update`)})]})]})]}),l&&(0,X.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:(0,X.jsx)(rn,{ns:`settings`,i18nKey:`assistantUpgrades.usingPreviewReleases`,components:{stableLink:(0,X.jsx)(`a`,{href:`#preview-release-channel`,className:yt()})}})}),!k&&t&&D&&!T&&(0,X.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--system-positive-strong)]`,children:x??i(`assistantUpgrades.alreadyOnVersion`)}),(0,X.jsx)(M,{open:_,title:i(O?`assistantUpgrades.confirmRollbackTitle`:l?`assistantUpgrades.confirmPreviewTitle`:`assistantUpgrades.confirmUpdateTitle`),message:O?i(`assistantUpgrades.confirmRollbackMessage`,{version:D??i(`assistantUpgrades.unknown`)}):i(l?`assistantUpgrades.confirmPreviewMessage`:`assistantUpgrades.confirmUpdateMessage`,{version:D??i(`assistantUpgrades.latest`)}),confirmLabel:i(O?`assistantUpgrades.rollback`:l?`assistantUpgrades.updatePreview`:`assistantUpgrades.update`),onConfirm:N,onCancel:()=>v(!1)})]})}function ei({assistantId:e,currentVersion:t,onUpgradeComplete:n}){let{t:r}=G(`settings`),[i,a]=(0,Y.useState)(!1),[o,s]=(0,Y.useState)(null),{data:c,isLoading:l}=W(Pt({query:{stable:!0,limit:100}})),u=(0,Y.useMemo)(()=>zt(c),[c]),d=u?.version,f=t?g(t,d):!!d,m=p({assistantId:e,targetVersion:d});return(0,X.jsxs)(`div`,{className:`space-y-5`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-4 md:grid md:grid-cols-[auto_minmax(0,1fr)] md:items-center md:gap-x-8 md:gap-y-4`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-1 md:contents`,children:[(0,X.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:r(`assistantUpgrades.current`)}),(0,X.jsx)(Qr,{version:t,assistantId:e})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-1 md:contents`,children:[(0,X.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:r(`assistantUpgrades.updateTo`)}),(0,X.jsx)(`span`,{className:`block min-w-0 break-all text-body-medium-lighter text-[var(--content-default)]`,children:l?r(`assistantUpgrades.loading`):d&&u?Xr(u,t,d):r(`assistantUpgrades.noReleases`)})]})]}),(0,X.jsx)(h,{variant:`primary`,className:`min-w-[160px]`,loading:m.isPending,leftIcon:(0,X.jsx)(mn,{}),onClick:()=>a(!0),disabled:m.isPending||l||!d||!f,children:m.isPending?r(`assistantUpgrades.updating`):d?r(`assistantUpgrades.updateToVersion`,{version:d}):r(`assistantUpgrades.update`)}),o&&(0,X.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--system-positive-strong)]`,children:o}),!o&&!f&&d&&!l&&(0,X.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--system-positive-strong)]`,children:r(`assistantUpgrades.alreadyOnVersion`)}),(0,X.jsx)(M,{open:i,title:r(`assistantUpgrades.confirmUpdateTitle`),message:r(`assistantUpgrades.confirmUpdateMessage`,{version:d??r(`assistantUpgrades.latest`)}),confirmLabel:r(`assistantUpgrades.update`),onConfirm:async()=>{a(!1),s(null);try{s(r(`assistantUpgrades.successUpdated`,{version:(await m.upgrade()).version??d??r(`assistantUpgrades.latest`)})),V.success(r(`assistantUpgrades.toastUpdateComplete`),{id:`runtime-upgrade-complete`,tone:`strong`}),n?.()}catch(e){V.error(e instanceof Error?e.message:r(`assistantUpgrades.toastUpdateFailed`))}},onCancel:()=>a(!1)})]})}function ti(){let{t:e}=G(`settings`),t=ie({platformHostedOnly:!0}),n=te(),r=D.use.user()?.id??null,i=D.use.logout(),[a,o]=(0,Y.useState)(!1),s=Re({onSuccess:async()=>{V.success(e(`deleteAccountSection.toastRequested`)),N(r),await i(),y(L.account.login)},onError:()=>{V.error(e(`deleteAccountSection.toastFailed`))}}),c=t===`full`&&n;return(0,Y.useEffect)(()=>{c&&a&&o(!1)},[c,a]),t===`gated`?null:(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`section`,{className:`flex flex-col gap-2`,children:[(0,X.jsx)(`h3`,{className:`text-title-small text-[var(--content-emphasised)]`,children:e(`deleteAccountSection.title`)}),(0,X.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:e(`deleteAccountSection.description`)}),(0,X.jsx)(`div`,{className:`mt-1`,children:t===`disabled`?(0,X.jsx)(H,{children:e(`deleteAccountSection.platformLoginNotice`)}):(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(h,{variant:`dangerOutline`,onClick:()=>o(!0),disabled:s.isPending||c,className:`self-start`,children:e(`deleteAccountSection.deleteMyAccount`)}),c&&(0,X.jsx)(q,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`})]})})]}),(0,X.jsx)(M,{open:a,title:e(`deleteAccountSection.confirmTitle`),message:e(`deleteAccountSection.confirmMessage`),confirmLabel:e(`deleteAccountSection.confirmLabel`),destructive:!0,onConfirm:()=>{if(c){o(!1);return}o(!1),s.mutate({})},onCancel:()=>o(!1)})]})}function ni({title:e,subtitle:t,benefits:n,ctaLabel:r,ctaLeftIcon:i,onAction:a}){return(0,X.jsx)(J,{title:e,subtitle:t,children:(0,X.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,X.jsx)(`ul`,{className:`space-y-3`,children:n.map(({icon:e,text:t})=>(0,X.jsxs)(`li`,{className:`flex items-center gap-3`,children:[(0,X.jsx)(`span`,{className:`flex size-7 shrink-0 items-center justify-center rounded-md`,style:{background:`var(--surface-base)`},children:(0,X.jsx)(e,{size:14,style:{color:`var(--content-secondary)`},"aria-hidden":!0})}),(0,X.jsx)(`span`,{className:`text-body-medium-lighter text-[color:var(--content-secondary)]`,children:t})]},t))}),(0,X.jsx)(h,{variant:`primary`,size:`regular`,leftIcon:i,onClick:a,className:`self-start`,children:r})]})})}function ri({promotion:e}){let{t}=G(`settings`),{appName:n,target:r}=e;return(0,Y.useEffect)(()=>{ft(`settings`,r)},[r]),(0,X.jsx)(ni,{title:n===null?t(`nativeAppCard.titleGeneric`):t(`nativeAppCard.title`,{appName:n}),subtitle:n===null?t(`nativeAppCard.subtitleGeneric`):t(`nativeAppCard.subtitle`,{appName:n}),benefits:[{icon:Dn,text:t(`nativeAppCard.benefitPush`)},{icon:Jn,text:t(`nativeAppCard.benefitBiometric`)},{icon:Xn,text:t(`nativeAppCard.benefitHaptics`)},{icon:Tn,text:t(`nativeAppCard.benefitHomeScreen`)}],ctaLabel:t(`nativeAppCard.download`),ctaLeftIcon:(0,X.jsx)(Tn,{size:16}),onAction:()=>{xt(`click`,`settings`,r),ce(r),F(r)}})}function ii(){let e=bt(),t=qe(),n=We(),r=dt();return!e&&!t&&!n&&!r?null:(0,X.jsx)(ri,{promotion:re(e||t?`ios`:n?`android`:null)})}var ai=`0.10.0`;function oi(){return Kt(ai)}var si=`/v1/remote-web/pairing-challenge`,ci=`/v1/remote-web/pairing-verification`,li=`/v1/remote-web/pairing-requests`,ui=`${li}/approve`,di=`${li}/deny`;function fi(){return U(`settings:pairDeviceClient.connectivityHint`)}var Z=class extends Error{hint;status;code;constructor(e,t={}){super(e),this.name=`PairDeviceError`,this.hint=t.hint,this.status=t.status,this.code=t.code}},pi=5e3;function mi(){if(typeof window>`u`)return null;let e=n(),t=S(e);return t?{base:`${window.location.origin}${t}`,assistantName:e?.name?.trim()||null,ingressUrl:e?.ingressUrl?.trim()||null}:null}function hi(e){let t=e?.error?.message;return typeof t==`string`&&t.trim()?t:null}function gi(e){let t=e?.error?.code;return typeof t==`string`&&t?t:void 0}async function _i(e,t,n,r){let i;try{i=await fetch(e,{...t,signal:n})}catch(e){throw Nt(e)?e:new Z(U(`settings:pairDeviceClient.networkError`))}let a=await i.json().catch(()=>null);if(!i.ok)throw new Z(hi(a)??U(`settings:pairDeviceClient.httpError`,{status:i.status}),{hint:r,status:i.status,code:gi(a)});if(typeof a!=`object`||!a)throw new Z(U(`settings:pairDeviceClient.unexpectedResponse`));return a}function vi(e,t,n,r){return _i(e,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)},n,r)}async function yi(e){let{base:t,publicBaseUrl:n,signal:r}=e,i=await vi(`${t}${si}`,{publicBaseUrl:n},r,fi());try{await vi(`${t}${ci}`,{userCode:i.userCode},r,fi())}catch(e){let n=AbortSignal.timeout(pi);throw Nt(e)?bi(t,i.userCode,n):await bi(t,i.userCode,r?AbortSignal.any([r,n]):n),e}return{pairUrl:Rt(i),expiresAt:i.expiresAt}}async function bi(e,t,n){try{let r=(await xi({base:e,signal:n})).find(e=>e.userCode===t);r&&await wi({base:e,requestId:r.requestId,signal:n})}catch(e){if(Nt(e))return;R(e,{context:`pair-device-orphan-cleanup`,bestEffort:!0})}}async function xi(e){let t=await _i(`${e.base}${li}`,{method:`GET`},e.signal);return Array.isArray(t.requests)?t.requests:[]}async function Si(e,t){await vi(`${t.base}${e}`,{requestId:t.requestId},t.signal)}function Ci(e){return Si(ui,e)}function wi(e){return Si(di,e)}var Ti=Object.defineProperty,Ei=Object.getOwnPropertySymbols,Di=Object.prototype.hasOwnProperty,Oi=Object.prototype.propertyIsEnumerable,ki=(e,t,n)=>t in e?Ti(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ai=(e,t)=>{for(var n in t||={})Di.call(t,n)&&ki(e,n,t[n]);if(Ei)for(var n of Ei(t))Oi.call(t,n)&&ki(e,n,t[n]);return e},ji=(e,t)=>{var n={};for(var r in e)Di.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Ei)for(var r of Ei(e))t.indexOf(r)<0&&Oi.call(e,r)&&(n[r]=e[r]);return n},Mi;(e=>{let t=class t{constructor(e,n,r,a){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version value out of range`);if(a<-1||a>7)throw RangeError(`Mask value out of range`);this.size=e*4+17;let o=[];for(let e=0;e<this.size;e++)o.push(!1);for(let e=0;e<this.size;e++)this.modules.push(o.slice()),this.isFunction.push(o.slice());this.drawFunctionPatterns();let s=this.addEccAndInterleave(r);if(this.drawCodewords(s),a==-1){let e=1e9;for(let t=0;t<8;t++){this.applyMask(t),this.drawFormatBits(t);let n=this.getPenaltyScore();n<e&&(a=t,e=n),this.applyMask(t)}}i(0<=a&&a<=7),this.mask=a,this.applyMask(a),this.drawFormatBits(a),this.isFunction=[]}static encodeText(n,r){let i=e.QrSegment.makeSegments(n);return t.encodeSegments(i,r)}static encodeBinary(n,r){let i=e.QrSegment.makeBytes(n);return t.encodeSegments([i],r)}static encodeSegments(e,r,a=1,s=40,c=-1,l=!0){if(!(t.MIN_VERSION<=a&&a<=s&&s<=t.MAX_VERSION)||c<-1||c>7)throw RangeError(`Invalid value`);let u,d;for(u=a;;u++){let n=t.getNumDataCodewords(u,r)*8,i=o.getTotalBits(e,u);if(i<=n){d=i;break}if(u>=s)throw RangeError(`Data too long`)}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])l&&d<=t.getNumDataCodewords(u,e)*8&&(r=e);let f=[];for(let t of e){n(t.mode.modeBits,4,f),n(t.numChars,t.mode.numCharCountBits(u),f);for(let e of t.getData())f.push(e)}i(f.length==d);let p=t.getNumDataCodewords(u,r)*8;i(f.length<=p),n(0,Math.min(4,p-f.length),f),n(0,(8-f.length%8)%8,f),i(f.length%8==0);for(let e=236;f.length<p;e^=253)n(e,8,f);let m=[];for(;m.length*8<f.length;)m.push(0);return f.forEach((e,t)=>m[t>>>3]|=e<<7-(t&7)),new t(u,r,m,c)}getModule(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]}getModules(){return this.modules}drawFunctionPatterns(){for(let e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);let e=this.getAlignmentPatternPositions(),t=e.length;for(let n=0;n<t;n++)for(let r=0;r<t;r++)n==0&&r==0||n==0&&r==t-1||n==t-1&&r==0||this.drawAlignmentPattern(e[n],e[r]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){let t=this.errorCorrectionLevel.formatBits<<3|e,n=t;for(let e=0;e<10;e++)n=n<<1^(n>>>9)*1335;let a=(t<<10|n)^21522;i(a>>>15==0);for(let e=0;e<=5;e++)this.setFunctionModule(8,e,r(a,e));this.setFunctionModule(8,7,r(a,6)),this.setFunctionModule(8,8,r(a,7)),this.setFunctionModule(7,8,r(a,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,r(a,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,r(a,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,r(a,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;i(t>>>18==0);for(let e=0;e<18;e++){let n=r(t,e),i=this.size-11+e%3,a=Math.floor(e/3);this.setFunctionModule(i,a,n),this.setFunctionModule(a,i,n)}}drawFinderPattern(e,t){for(let n=-4;n<=4;n++)for(let r=-4;r<=4;r++){let i=Math.max(Math.abs(r),Math.abs(n)),a=e+r,o=t+n;0<=a&&a<this.size&&0<=o&&o<this.size&&this.setFunctionModule(a,o,i!=2&&i!=4)}}drawAlignmentPattern(e,t){for(let n=-2;n<=2;n++)for(let r=-2;r<=2;r++)this.setFunctionModule(e+r,t+n,Math.max(Math.abs(r),Math.abs(n))!=1)}setFunctionModule(e,t,n){this.modules[t][e]=n,this.isFunction[t][e]=!0}addEccAndInterleave(e){let n=this.version,r=this.errorCorrectionLevel;if(e.length!=t.getNumDataCodewords(n,r))throw RangeError(`Invalid argument`);let a=t.NUM_ERROR_CORRECTION_BLOCKS[r.ordinal][n],o=t.ECC_CODEWORDS_PER_BLOCK[r.ordinal][n],s=Math.floor(t.getNumRawDataModules(n)/8),c=a-s%a,l=Math.floor(s/a),u=[],d=t.reedSolomonComputeDivisor(o);for(let n=0,r=0;n<a;n++){let i=e.slice(r,r+l-o+(n<c?0:1));r+=i.length;let a=t.reedSolomonComputeRemainder(i,d);n<c&&i.push(0),u.push(i.concat(a))}let f=[];for(let e=0;e<u[0].length;e++)u.forEach((t,n)=>{(e!=l-o||n>=c)&&f.push(t[e])});return i(f.length==s),f}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError(`Invalid argument`);let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let i=0;i<this.size;i++)for(let a=0;a<2;a++){let o=t-a,s=t+1&2?i:this.size-1-i;!this.isFunction[s][o]&&n<e.length*8&&(this.modules[s][o]=r(e[n>>>3],7-(n&7)),n++)}}i(n==e.length*8)}applyMask(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(let t=0;t<this.size;t++)for(let n=0;n<this.size;n++){let r;switch(e){case 0:r=(n+t)%2==0;break;case 1:r=t%2==0;break;case 2:r=n%3==0;break;case 3:r=(n+t)%3==0;break;case 4:r=(Math.floor(n/3)+Math.floor(t/2))%2==0;break;case 5:r=n*t%2+n*t%3==0;break;case 6:r=(n*t%2+n*t%3)%2==0;break;case 7:r=((n+t)%2+n*t%3)%2==0;break;default:throw Error(`Unreachable`)}!this.isFunction[t][n]&&r&&(this.modules[t][n]=!this.modules[t][n])}}getPenaltyScore(){let e=0;for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[n][o]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[n][o],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[o][n]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[o][n],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size-1;n++)for(let r=0;r<this.size-1;r++){let i=this.modules[n][r];i==this.modules[n][r+1]&&i==this.modules[n+1][r]&&i==this.modules[n+1][r+1]&&(e+=t.PENALTY_N2)}let n=0;for(let e of this.modules)n=e.reduce((e,t)=>e+ +!!t,n);let r=this.size*this.size,a=Math.ceil(Math.abs(n*20-r*10)/r)-1;return i(0<=a&&a<=9),e+=a*t.PENALTY_N4,i(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{let e=Math.floor(this.version/7)+2,t=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6];for(let r=this.size-7;n.length<e;r-=t)n.splice(1,0,r);return n}}static getNumRawDataModules(e){if(e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version number out of range`);let n=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return i(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError(`Degree out of range`);let n=[];for(let t=0;t<e-1;t++)n.push(0);n.push(1);let r=1;for(let i=0;i<e;i++){for(let e=0;e<n.length;e++)n[e]=t.reedSolomonMultiply(n[e],r),e+1<n.length&&(n[e]^=n[e+1]);r=t.reedSolomonMultiply(r,2)}return n}static reedSolomonComputeRemainder(e,n){let r=n.map(e=>0);for(let i of e){let e=i^r.shift();r.push(0),n.forEach((n,i)=>r[i]^=t.reedSolomonMultiply(n,e))}return r}static reedSolomonMultiply(e,t){if(e>>>8||t>>>8)throw RangeError(`Byte out of range`);let n=0;for(let r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return i(n>>>8==0),n}finderPenaltyCountPatterns(e){let t=e[1];i(t<=this.size*3);let n=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,n){return e&&(this.finderPenaltyAddHistory(t,n),t=0),t+=this.size,this.finderPenaltyAddHistory(t,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)}};t.MIN_VERSION=1,t.MAX_VERSION=40,t.PENALTY_N1=3,t.PENALTY_N2=3,t.PENALTY_N3=40,t.PENALTY_N4=10,t.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],t.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],e.QrCode=t;function n(e,t,n){if(t<0||t>31||e>>>t)throw RangeError(`Value out of range`);for(let r=t-1;r>=0;r--)n.push(e>>>r&1)}function r(e,t){return(e>>>t&1)!=0}function i(e){if(!e)throw Error(`Assertion error`)}let a=class e{constructor(e,t,n){if(this.mode=e,this.numChars=t,this.bitData=n,t<0)throw RangeError(`Invalid argument`);this.bitData=n.slice()}static makeBytes(t){let r=[];for(let e of t)n(e,8,r);return new e(e.Mode.BYTE,t.length,r)}static makeNumeric(t){if(!e.isNumeric(t))throw RangeError(`String contains non-numeric characters`);let r=[];for(let e=0;e<t.length;){let i=Math.min(t.length-e,3);n(parseInt(t.substring(e,e+i),10),i*3+1,r),e+=i}return new e(e.Mode.NUMERIC,t.length,r)}static makeAlphanumeric(t){if(!e.isAlphanumeric(t))throw RangeError(`String contains unencodable characters in alphanumeric mode`);let r=[],i;for(i=0;i+2<=t.length;i+=2){let a=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i))*45;a+=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i+1)),n(a,11,r)}return i<t.length&&n(e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i)),6,r),new e(e.Mode.ALPHANUMERIC,t.length,r)}static makeSegments(t){return t==``?[]:e.isNumeric(t)?[e.makeNumeric(t)]:e.isAlphanumeric(t)?[e.makeAlphanumeric(t)]:[e.makeBytes(e.toUtf8ByteArray(t))]}static makeEci(t){let r=[];if(t<0)throw RangeError(`ECI assignment value out of range`);if(t<128)n(t,8,r);else if(t<16384)n(2,2,r),n(t,14,r);else if(t<1e6)n(6,3,r),n(t,21,r);else throw RangeError(`ECI assignment value out of range`);return new e(e.Mode.ECI,0,r)}static isNumeric(t){return e.NUMERIC_REGEX.test(t)}static isAlphanumeric(t){return e.ALPHANUMERIC_REGEX.test(t)}getData(){return this.bitData.slice()}static getTotalBits(e,t){let n=0;for(let r of e){let e=r.mode.numCharCountBits(t);if(r.numChars>=1<<e)return 1/0;n+=4+e+r.bitData.length}return n}static toUtf8ByteArray(e){e=encodeURI(e);let t=[];for(let n=0;n<e.length;n++)e.charAt(n)==`%`?(t.push(parseInt(e.substring(n+1,n+3),16)),n+=2):t.push(e.charCodeAt(n));return t}};a.NUMERIC_REGEX=/^[0-9]*$/,a.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,a.ALPHANUMERIC_CHARSET=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`;let o=a;e.QrSegment=a})(Mi||={}),(e=>{(e=>{let t=class{constructor(e,t){this.ordinal=e,this.formatBits=t}};t.LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),e.Ecc=t})(e.QrCode||={})})(Mi||={}),(e=>{(e=>{let t=class{constructor(e,t){this.modeBits=e,this.numBitsCharCount=t}numCharCountBits(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}};t.NUMERIC=new t(1,[10,12,14]),t.ALPHANUMERIC=new t(2,[9,11,13]),t.BYTE=new t(4,[8,16,16]),t.KANJI=new t(8,[8,10,12]),t.ECI=new t(7,[0,0,0]),e.Mode=t})(e.QrSegment||={})})(Mi||={});var Ni=Mi,Pi={L:Ni.QrCode.Ecc.LOW,M:Ni.QrCode.Ecc.MEDIUM,Q:Ni.QrCode.Ecc.QUARTILE,H:Ni.QrCode.Ecc.HIGH},Fi=128,Ii=`L`,Li=`#FFFFFF`,Ri=`#000000`,zi=!1,Bi=1,Vi=4,Hi=0,Ui=.1;function Wi(e,t=0){let n=[];return e.forEach(function(e,r){let i=null;e.forEach(function(a,o){if(!a&&i!==null){n.push(`M${i+t} ${r+t}h${o-i}v1H${i+t}z`),i=null;return}if(o===e.length-1){if(!a)return;i===null?n.push(`M${o+t},${r+t} h1v1H${o+t}z`):n.push(`M${i+t},${r+t} h${o+1-i}v1H${i+t}z`);return}a&&i===null&&(i=o)})}),n.join(``)}function Gi(e,t){return e.slice().map((e,n)=>n<t.y||n>=t.y+t.h?e:e.map((e,n)=>n<t.x||n>=t.x+t.w?e:!1))}function Ki(e,t,n,r){if(r==null)return null;let i=e.length+n*2,a=Math.floor(t*Ui),o=i/t,s=(r.width||a)*o,c=(r.height||a)*o,l=r.x==null?e.length/2-s/2:r.x*o,u=r.y==null?e.length/2-c/2:r.y*o,d=r.opacity==null?1:r.opacity,f=null;if(r.excavate){let e=Math.floor(l),t=Math.floor(u);f={x:e,y:t,w:Math.ceil(s+l-e),h:Math.ceil(c+u-t)}}let p=r.crossOrigin;return{x:l,y:u,h:c,w:s,excavation:f,opacity:d,crossOrigin:p}}function qi(e,t){return t==null?e?Vi:Hi:Math.max(Math.floor(t),0)}function Ji({value:e,level:t,minVersion:n,includeMargin:r,marginSize:i,imageSettings:a,size:o,boostLevel:s}){let c=Y.useMemo(()=>{let r=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...Ni.QrSegment.makeSegments(t)),e),[]);return Ni.QrCode.encodeSegments(r,Pi[t],n,void 0,void 0,s)},[e,t,n,s]),{cells:l,margin:u,numCells:d,calculatedImageSettings:f}=Y.useMemo(()=>{let e=c.getModules(),t=qi(r,i);return{cells:e,margin:t,numCells:e.length+t*2,calculatedImageSettings:Ki(e,o,t,a)}},[c,o,a,r,i]);return{qrcode:c,margin:u,cells:l,numCells:d,calculatedImageSettings:f}}var Yi=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),Xi=Y.forwardRef(function(e,t){let n=e,{value:r,size:i=Fi,level:a=Ii,bgColor:o=Li,fgColor:s=Ri,includeMargin:c=zi,minVersion:l=Bi,boostLevel:u,marginSize:d,imageSettings:f}=n,p=ji(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`marginSize`,`imageSettings`]),{style:m}=p,h=ji(p,[`style`]),g=f?.src,_=Y.useRef(null),v=Y.useRef(null),y=Y.useCallback(e=>{_.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[b,x]=Y.useState(!1),{margin:S,cells:C,numCells:w,calculatedImageSettings:T}=Ji({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:d,imageSettings:f,size:i});Y.useEffect(()=>{if(_.current!=null){let e=_.current,t=e.getContext(`2d`);if(!t)return;let n=C,r=v.current,a=T!=null&&r!==null&&r.complete&&r.naturalHeight!==0&&r.naturalWidth!==0;a&&T.excavation!=null&&(n=Gi(C,T.excavation));let c=window.devicePixelRatio||1;e.height=e.width=i*c;let l=i/w*c;t.scale(l,l),t.fillStyle=o,t.fillRect(0,0,w,w),t.fillStyle=s,Yi?t.fill(new Path2D(Wi(n,S))):C.forEach(function(e,n){e.forEach(function(e,r){e&&t.fillRect(r+S,n+S,1,1)})}),T&&(t.globalAlpha=T.opacity),a&&t.drawImage(r,T.x+S,T.y+S,T.w,T.h)}}),Y.useEffect(()=>{x(!1)},[g]);let E=Ai({height:i,width:i},m),D=null;return g!=null&&(D=Y.createElement(`img`,{src:g,key:g,style:{display:`none`},onLoad:()=>{x(!0)},ref:v,crossOrigin:T?.crossOrigin})),Y.createElement(Y.Fragment,null,Y.createElement(`canvas`,Ai({style:E,height:i,width:i,ref:y,role:`img`},h)),D)});Xi.displayName=`QRCodeCanvas`;var Zi=Y.forwardRef(function(e,t){let n=e,{value:r,size:i=Fi,level:a=Ii,bgColor:o=Li,fgColor:s=Ri,includeMargin:c=zi,minVersion:l=Bi,boostLevel:u,title:d,marginSize:f,imageSettings:p}=n,m=ji(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`title`,`marginSize`,`imageSettings`]),{margin:h,cells:g,numCells:_,calculatedImageSettings:v}=Ji({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:f,imageSettings:p,size:i}),y=g,b=null;p!=null&&v!=null&&(v.excavation!=null&&(y=Gi(g,v.excavation)),b=Y.createElement(`image`,{href:p.src,height:v.h,width:v.w,x:v.x+h,y:v.y+h,preserveAspectRatio:`none`,opacity:v.opacity,crossOrigin:v.crossOrigin}));let x=Wi(y,h);return Y.createElement(`svg`,Ai({height:i,width:i,viewBox:`0 0 ${_} ${_}`,ref:t,role:`img`},m),!!d&&Y.createElement(`title`,null,d),Y.createElement(`path`,{fill:o,d:`M0,0 h${_}v${_}H0z`,shapeRendering:`crispEdges`}),Y.createElement(`path`,{fill:s,d:x,shapeRendering:`crispEdges`}),b)});Zi.displayName=`QRCodeSVG`;function Qi(e,t){return!Number.isFinite(t)||t<=0?e(`pairDeviceReady.singleUse`):e(`pairDeviceReady.expiresIn`,{time:Ln(t)})}function $i({pairUrl:e,remainingMs:t,expired:n,copied:r,onCopy:i}){let{t:a}=G(`settings`);return n?(0,X.jsx)(B,{tone:`warning`,title:a(`pairDeviceReady.expiredTitle`),children:a(`pairDeviceReady.expiredBody`)}):(0,X.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,X.jsx)(`div`,{className:`w-fit rounded-lg bg-white p-3`,children:(0,X.jsx)(Zi,{value:e,size:192,level:`M`,title:a(`pairDeviceReady.qrTitle`)})}),(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(`code`,{"data-testid":`pair-device-url`,className:`min-w-0 flex-1 truncate rounded-md bg-[var(--surface-active)] px-2.5 py-1.5 text-body-small-default text-[var(--content-secondary)]`,children:e}),(0,X.jsx)(h,{variant:`outlined`,size:`compact`,leftIcon:r?(0,X.jsx)(vn,{}):(0,X.jsx)(Cn,{}),onClick:()=>i(e),children:a(r?`pairDeviceReady.copiedButton`:`pairDeviceReady.copyButton`)})]}),(0,X.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:Qi(a,t)})]})}function ea(e){return/iPhone|iPod/.test(e)?`iPhone`:/iPad/.test(e)||/Macintosh/.test(e)&&/Mobile/.test(e)?`iPad`:/Android/.test(e)?`Android`:/Macintosh|Mac OS X/.test(e)?`macOS`:/Windows/.test(e)?`Windows`:/CrOS/.test(e)?`ChromeOS`:/Linux/.test(e)?`Linux`:null}function ta(e){return/Edg\/|EdgA\/|EdgiOS\//.test(e)?`Edge`:/OPR\/|OPiOS\//.test(e)?`Opera`:/Firefox\/|FxiOS\//.test(e)?`Firefox`:/Chrome\/|CriOS\//.test(e)?`Chrome`:/Safari\//.test(e)?`Safari`:null}function na(e){if(!e||e.trim()===``)return null;let t=ea(e),n=ta(e);return t===null&&n===null?null:{browser:n,os:t}}var ra=5e3,ia=6e4;function aa({pollWhilePairing:e=!1,revalidateKey:t,isExpanded:r=!1}={}){let[i,a]=(0,Y.useState)(null),[o,s]=(0,Y.useState)(null),[c,l]=(0,Y.useState)(!1),[u,d]=(0,Y.useState)(null),f=(0,Y.useRef)(!0),p=(0,Y.useRef)(0);(0,Y.useEffect)(()=>(f.current=!0,()=>{f.current=!1}),[]);let m=(0,Y.useCallback)((e=n()?.assistantId)=>{if(!e)return;a(t=>t&&t.assistantId!==e?null:t);let t=++p.current;ne(e).then(n=>{!f.current||t!==p.current||a(n.ok?{assistantId:e,devices:n.devices}:null)})},[]),h=T.use.selectedAssistantId()??n()?.assistantId;(0,Y.useEffect)(()=>{s(null),d(null),m(h)},[h,m]);let g=(0,Y.useRef)(t);(0,Y.useEffect)(()=>{t!==g.current&&(g.current=t,m(h))},[t,h,m]);let _=(0,Y.useRef)(!1);(0,Y.useEffect)(()=>{if(e&&!c){_.current=!0;let e=setInterval(()=>m(),ra);return()=>clearInterval(e)}!e&&_.current&&(_.current=!1,m())},[e,c,m]);let v=(i?.devices.length??0)>0;(0,Y.useEffect)(()=>{if(!r||!v||e||c)return;let t=setInterval(()=>m(),ia);return()=>clearInterval(t)},[r,v,e,c,m]);let y=(0,Y.useCallback)(e=>{d(null),s(e)},[]),b=(0,Y.useCallback)(()=>{s(null),d(null)},[]),S=(0,Y.useCallback)(()=>{!i||!o||c||(l(!0),d(null),x(i.assistantId,o.hashedDeviceId).then(e=>{f.current&&(l(!1),e.ok?(s(null),m()):d(e.error))}))},[i,o,c,m]);return{devices:i?.devices??null,confirmTarget:o,isRevoking:c,revokeError:u,requestRevoke:y,cancelRevoke:b,confirmRevoke:S}}var oa=600*1e3,sa=`paired-devices`;function ca(e){return e.slice(0,12)}function la(e,t){return t?t.charAt(0).toUpperCase()+t.slice(1):e(`pairedDevicesSection.platformUnknown`)}function ua(e,t){if(typeof t.clientReportedName==`string`&&t.clientReportedName.trim()!==``)return{name:t.clientReportedName,isRealIdentity:!0};let n=na(t.pairingUserAgent);if(n!==null){let{browser:t,os:r}=n;return t!==null&&r!==null?{name:e(`pairedDevicesSection.browserOnOs`,{browser:t,os:r}),isRealIdentity:!0}:{name:t??r??``,isRealIdentity:!0}}return{name:la(e,t.platform),isRealIdentity:!1}}function da(e,t){return t===null?e(`pairedDevicesSection.dateUnknown`):new Date(t).toLocaleDateString(mt())}function fa(e,t){let n=da(e,t.issuedAt);return t.lastUsedAt===null?e(`pairedDevicesSection.pairedLine`,{paired:n}):Date.now()-t.lastUsedAt<=oa?e(`pairedDevicesSection.pairedActiveLine`,{paired:n}):e(`pairedDevicesSection.pairedAndUsedLine`,{paired:n,lastUsed:Wn(t.lastUsedAt)})}function pa({pollWhilePairing:e=!1,revalidateKey:t}={}){let{t:n}=G(`settings`),[r,i]=(0,Y.useState)(!1),a=aa({pollWhilePairing:e,revalidateKey:t,isExpanded:r}),{devices:o,confirmTarget:s}=a;Gn(o?.some(e=>e.lastUsedAt!==null)??!1);let c=(0,Y.useMemo)(()=>o===null?null:[...o].sort((e,t)=>(t.lastUsedAt??0)-(e.lastUsedAt??0)),[o]);return c===null||c.length===0?null:(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(w.Root,{type:`multiple`,value:r?[sa]:[],onValueChange:e=>i(e.includes(sa)),children:(0,X.jsxs)(w.Item,{value:sa,children:[(0,X.jsxs)(w.Trigger,{className:`group flex w-full items-center justify-between gap-3`,children:[(0,X.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-secondary)]`,children:n(`pairedDevicesSection.title`,{count:c.length})}),(0,X.jsx)(wn,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform group-data-[state=open]:rotate-180`})]}),(0,X.jsx)(w.Content,{children:(0,X.jsx)(`div`,{className:`mt-3 flex flex-col gap-3`,children:c.map(e=>{let t=ua(n,e);return(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[(0,X.jsxs)(`span`,{className:`flex min-w-0 items-baseline gap-1 text-body-medium-default text-[var(--content-secondary)]`,children:[(0,X.jsx)(`span`,{className:`min-w-0 truncate`,title:t.isRealIdentity?e.hashedDeviceId:void 0,children:t.name}),!t.isRealIdentity&&(0,X.jsx)(`span`,{className:`shrink-0 font-mono text-[var(--content-tertiary)]`,title:e.hashedDeviceId,children:ca(e.hashedDeviceId)}),e.isCurrentHost&&(0,X.jsx)(`span`,{className:`shrink-0 text-[var(--content-tertiary)]`,children:`· ${n(`pairedDevicesSection.thisMachine`)}`})]}),(0,X.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:fa(n,e)})]}),(0,X.jsx)(h,{variant:`dangerOutline`,size:`compact`,className:`shrink-0`,disabled:e.isCurrentHost===!0,title:e.isCurrentHost?n(`pairedDevicesSection.hostRevokeDisabledTitle`):void 0,onClick:()=>a.requestRevoke(e),children:n(`pairedDevicesSection.revokeButton`)})]},e.hashedDeviceId)})})})]})}),(0,X.jsx)(M,{open:s!==null,title:n(`pairedDevicesSection.confirmTitle`),message:s&&(0,X.jsxs)(X.Fragment,{children:[n(`pairedDevicesSection.confirmMessageNamed`,{name:ua(n,s).name,hash:ca(s.hashedDeviceId)}),a.revokeError&&(0,X.jsx)(`span`,{className:`mt-2 block text-[var(--system-negative-strong)]`,children:a.revokeError})]}),confirmLabel:n(`pairedDevicesSection.revokeButton`),destructive:!0,isPending:a.isRevoking,onConfirm:a.confirmRevoke,onCancel:a.cancelRevoke})]})}var ma=5e3;function ha(e,t){return e.length===t.length&&t.every((t,n)=>e[n]?.requestId===t.requestId)}function ga(e,t){let[n,r]=(0,Y.useState)([]),[i,a]=(0,Y.useState)(null),[o,s]=(0,Y.useState)(null),[c,l]=(0,Y.useState)(null),u=(0,Y.useRef)(null),d=(0,Y.useRef)(null),[f,p]=(0,Y.useState)(e);e!==f&&(p(e),r([]),a(null),s(null),l(null)),(0,Y.useEffect)(()=>()=>{d.current?.abort(),d.current=null},[e]),(0,Y.useEffect)(()=>{let t=async()=>{u.current?.abort();let t=new AbortController;u.current=t;try{let n=await xi({base:e,signal:t.signal});if(t.signal.aborted)return;r(e=>ha(e,n)?e:n),l(e=>e&&!e.sticky&&!n.some(t=>t.requestId===e.requestId)?null:e),s(null)}catch(e){if(t.signal.aborted)return;if(e instanceof Z){s(e.message);return}R(e,{context:`pair-device-pending-requests-poll`}),s(U(`settings:usePendingPairingRequests.pollErrorFallback`))}};t();let n=setInterval(()=>void t(),ma);return()=>{clearInterval(n),u.current?.abort()}},[e]);let m=(0,Y.useCallback)(async(n,i)=>{if(d.current)return;let o=new AbortController;d.current=o,a({requestId:n,action:i}),l(null);let s=()=>{u.current?.abort(),r(e=>e.filter(e=>e.requestId!==n))};try{if(await(i===`approve`?Ci:wi)({base:e,requestId:n,signal:o.signal}),o.signal.aborted)return;s(),i===`approve`&&t?.()}catch(e){if(o.signal.aborted)return;e instanceof Z?i===`deny`&&e.status===409&&e.code===`ALREADY_APPROVED`?(s(),t?.(),l({requestId:n,message:U(`settings:usePendingPairingRequests.denyAlreadyApproved`),sticky:!0})):e.status===404||e.status===410?s():l({requestId:n,message:e.message}):(R(e,{context:`pair-device-pending-request-action`}),l({requestId:n,message:U(`settings:usePendingPairingRequests.actionErrorFallback`)}))}finally{d.current===o&&(d.current=null),o.signal.aborted||a(null)}},[e,t]),h=(0,Y.useCallback)(e=>m(e,`approve`),[m]),g=(0,Y.useCallback)(e=>m(e,`deny`),[m]);return{requests:n,actingOn:i,error:c?.message??o,approve:h,deny:g}}function _a({base:e,onApproved:t}){let{t:n}=G(`settings`),{requests:r,actingOn:i,error:o,approve:s,deny:c}=ga(e,t);return Gn(r.length>0),r.length===0&&!o?null:(0,X.jsxs)(`section`,{className:`flex flex-col gap-3 border-t border-[var(--border-element)] pt-4`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,X.jsx)(`h3`,{className:`text-title-small text-[var(--content-emphasised)]`,children:n(`pendingPairingRequests.title`)}),(0,X.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:n(`pendingPairingRequests.instruction`)})]}),o&&(0,X.jsx)(B,{tone:`error`,title:o}),r.length>0&&(0,X.jsx)(`ul`,{className:`flex flex-col gap-2`,children:r.map(e=>{let t=i!==null&&i.requestId===e.requestId?i.action:null,r=t===`approve`,o=t===`deny`;return(0,X.jsxs)(`li`,{className:`flex flex-col gap-2 rounded-lg border border-[var(--border-element)] p-3`,children:[(0,X.jsx)(`code`,{className:a(`rounded-md bg-[var(--surface-active)] text-body-small-default text-[color:var(--content-default)]`,`w-fit px-2.5 py-1.5 text-title-medium tracking-wide text-[color:var(--content-emphasised)]`),children:e.userCode}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,X.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:e.viaEdgeProxy===!1?n(`pendingPairingRequests.requestedMetaHost`,{when:Wn(e.requestedAt)}):n(`pendingPairingRequests.requestedMeta`,{when:Wn(e.requestedAt),ip:e.requesterIp})}),e.requesterUserAgent&&(0,X.jsx)(`p`,{className:`truncate text-body-small-default text-[var(--content-tertiary)]`,title:e.requesterUserAgent,children:e.requesterUserAgent})]}),(0,X.jsxs)(`div`,{className:`flex gap-2`,children:[(0,X.jsx)(h,{variant:`primary`,size:`compact`,disabled:i!==null,"aria-busy":r||void 0,loading:r,onClick:()=>void s(e.requestId),children:n(`pendingPairingRequests.approveButton`)}),(0,X.jsx)(h,{variant:`dangerOutline`,size:`compact`,disabled:i!==null,"aria-busy":o||void 0,loading:o,onClick:()=>void c(e.requestId),children:n(`pendingPairingRequests.denyButton`)})]})]},e.requestId)})})]})}function va({onRefresh:e,isRefreshing:t,labelled:n=!1}){let{t:r}=G(`settings`),i=r(`tunnelStatusRow.refreshLabel`),a=(0,X.jsx)(mn,{className:t?`animate-spin`:void 0});return n?(0,X.jsx)(h,{variant:`outlined`,size:`compact`,leftIcon:a,disabled:t,onClick:e,children:i}):(0,X.jsx)(h,{variant:`ghost`,size:`compact`,iconOnly:a,"aria-label":i,disabled:t,onClick:e})}function ya(e){return`publicBaseUrl`in e&&e.publicBaseUrl?e.publicBaseUrl:null}function ba(e){return`checkedAt`in e&&e.checkedAt?e.checkedAt:null}function xa(e,t){let n=t?.trim();return n?`vellum tunnel ${Ca(n)} --provider ${e}`:`vellum tunnel --provider ${e}`}var Sa=/^[A-Za-z0-9._-]+$/;function Ca(e){return Sa.test(e)?e:`'${e.replace(/'/g,`'\\''`)}'`}var wa={checking:`var(--content-tertiary)`,stopped:`var(--content-tertiary)`,healthy:`var(--system-positive-strong)`,unpairable:`var(--system-mid-strong)`,unreachable:`var(--system-mid-strong)`,foreign:`var(--system-negative-strong)`},Ta=`text-body-small-default text-[var(--content-tertiary)]`,Ea=`truncate ${Ta}`;function Da({status:e,onRefresh:t,isRefreshing:n,assistantName:r=null}){let{t:i}=G(`settings`);if(e.kind===`unconfigured`||e.kind===`unavailable`)return null;let o=ba(e),s=ya(e),c=`provider`in e?e.provider:void 0,l=`detail`in e?e.detail:void 0;return(0,X.jsxs)(`div`,{className:`flex items-start gap-2.5 rounded-lg border border-[var(--border-element)] px-3 py-2.5`,children:[(0,X.jsx)(`span`,{"aria-hidden":!0,className:`mt-1.5 inline-block h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:wa[e.kind]}}),(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,X.jsx)(`p`,{className:`text-body-small-default text-[var(--content-default)]`,children:Oa(e,i)}),l&&(0,X.jsx)(`p`,{className:Ea,title:l,children:l}),c&&(0,X.jsx)(`p`,{className:Ta,children:(0,X.jsx)(rn,{i18nKey:e.kind===`stopped`?`tunnelStatusRow.stoppedRestart`:`tunnelStatusRow.restartHint`,ns:`settings`,values:{command:xa(c,r)},components:{code:(0,X.jsx)(`code`,{className:a(`rounded-md bg-[var(--surface-active)] text-body-small-default text-[color:var(--content-default)]`,`px-1.5 py-0.5`)})}})}),s&&(0,X.jsx)(`p`,{className:Ea,title:s,children:s}),o&&(0,X.jsx)(`p`,{className:Ta,children:i(`tunnelStatusRow.checkedAt`,{when:Wn(o)})})]}),(0,X.jsx)(va,{onRefresh:t,isRefreshing:n})]})}function Oa(e,t){switch(e.kind){case`checking`:return t(`tunnelStatusRow.checkingStatus`);case`stopped`:return t(`tunnelStatusRow.stoppedStatus`);case`healthy`:return t(`tunnelStatusRow.healthyStatus`);case`unpairable`:return t(`tunnelStatusRow.unpairableStatus`);case`unreachable`:return t(`tunnelStatusRow.unreachableStatus`);case`foreign`:return e.servingAssistantName?t(`tunnelStatusRow.foreignStatusNamed`,{name:e.servingAssistantName}):t(`tunnelStatusRow.foreignStatus`)}}var ka=`vellum:pair-device:public-base-url`;function Aa(e){let t=e?.trim();if(t)return{url:t,source:`tunnel`};let n=Yt(ka,``).trim();return n?{url:n,source:`stored`}:{url:``,source:`none`}}function ja(e,t){let n=(0,Y.useMemo)(()=>Aa(t),[t]),[r,i]=(0,Y.useState)(null),a=r??n.url,[o,s]=(0,Y.useState)(null),[c,l]=(0,Y.useState)({kind:`idle`}),[u,d]=(0,Y.useState)(()=>Date.now()),f=(0,Y.useRef)(null);(0,Y.useEffect)(()=>()=>f.current?.abort(),[]),(0,Y.useEffect)(()=>{if(c.kind!==`ready`)return;d(Date.now());let e=setInterval(()=>d(Date.now()),1e3);return()=>clearInterval(e)},[c]);let p=(0,Y.useCallback)(e=>{i(e),s(null)},[]),m=(0,Y.useCallback)(()=>{if(!e)return;let t=a.trim(),n=ae(t);if(!n.ok){s(j(n.reason,t));return}s(null),f.current?.abort();let r=new AbortController;f.current=r,l({kind:`minting`}),(async()=>{try{let t=await yi({base:e,publicBaseUrl:n.url,signal:r.signal});if(r.signal.aborted)return;ge(ka,n.url),l({kind:`ready`,pairUrl:t.pairUrl,expiresAtMs:Date.parse(t.expiresAt)})}catch(e){if(r.signal.aborted)return;if(e instanceof Z){l({kind:`error`,message:e.message,hint:e.hint});return}R(e,{context:`pair-device-mint`}),l({kind:`error`,message:U(`settings:usePairDevice.mintErrorFallback`)})}})()},[e,a]),h=c.kind===`ready`?Math.max(0,c.expiresAtMs-u):0,g=c.kind===`ready`&&h<=0;return{publicBaseUrl:a,setPublicBaseUrl:p,prefillSource:n.source,inputError:o,phase:c,remainingMs:h,expired:g,generate:m}}var Ma=`0.11.6`;function Na(e){return ze(Ma,e)}function Pa(e){let t=_t(),n=Na(t),r=E(),i=e&&n&&r,{data:a,isFetching:o,refetch:s}=W({...Je({path:{assistant_id:t}}),enabled:i,staleTime:0,refetchOnWindowFocus:!1}),c=(0,Y.useCallback)(()=>{i&&s()},[i,s]);return{status:Fa(a,o),isRefreshing:o,refresh:c}}function Fa(e,t){if(!e)return t?{kind:`checking`}:{kind:`unavailable`};let{lastTunnel:n}=e,r=e.publicBaseUrl??``,i=e.checkedAt??``,a=n?{provider:n.provider}:{};switch(e.state){case`unconfigured`:return{kind:`unconfigured`};case`stopped`:return{kind:`stopped`,...a,...n?{publicBaseUrl:n.publicBaseUrl}:{}};case`healthy`:return{kind:`healthy`,publicBaseUrl:r,checkedAt:i};case`unpairable`:case`unreachable`:return{kind:e.state,publicBaseUrl:r,checkedAt:i,...e.detail?{detail:e.detail}:{},...a};case`foreign`:return{kind:`foreign`,publicBaseUrl:r,checkedAt:i,...e.servingAssistantName?{servingAssistantName:e.servingAssistantName}:{},...a};default:return{kind:`unavailable`}}}var Ia=`tailscale`,La=`public-url`,Ra=new Set([`unpairable`,`unreachable`,`foreign`]),za=`vellum tunnel --help`,Ba=pe(L.docs.pairADevice);function Va(){let{t:e}=G(`settings`),t=mi(),n=oi(),r=z.use.pairedDevicesUI(),i=Pa(n&&t!==null),o=i.status.kind!==`unavailable`;ee(`app.resume`,()=>{i.refresh()}),Gn(ba(i.status)!==null);let s=i.status.kind===`stopped`?null:ya(i.status),c=ja(t?.base??null,o?s:t?.ingressUrl??null),[l,u]=(0,Y.useState)(0),[d,f]=(0,Y.useState)(!1),{copy:p,copied:m}=Lt({errorMessage:e(`pairDeviceCard.copyError`)});if(!t||!n)return null;let g=t.assistantName??e(`pairDeviceCard.subtitleFallbackName`),{phase:_}=c,v=_.kind===`minting`,y=_.kind===`ready`,b=c.prefillSource===`tunnel`,x=o?i.status.kind===`unconfigured`:c.prefillSource===`none`&&c.publicBaseUrl.trim()===``,S=x&&o,C=o&&Ra.has(i.status.kind),T=e(v?`pairDeviceCard.generateButtonMinting`:y?`pairDeviceCard.generateButtonRegenerate`:C?`pairDeviceCard.generateButtonWarned`:`pairDeviceCard.generateButton`),E=o&&s!==null,D=d||c.inputError!==null,O=(0,X.jsx)(h,{variant:C?`outlined`:`primary`,className:`self-start`,disabled:v||c.publicBaseUrl.trim()===``,onClick:c.generate,children:T}),k=(0,X.jsx)(pt,{label:e(`pairDeviceCard.publicUrlLabel`),fullWidth:!0,placeholder:e(`pairDeviceCard.publicUrlPlaceholder`),helperText:e(b?`pairDeviceCard.publicUrlHelperTunnel`:`pairDeviceCard.publicUrlHelper`),value:c.publicBaseUrl,errorText:c.inputError??void 0,disabled:v,onChange:e=>{f(!0),c.setPublicBaseUrl(e.target.value)},onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),c.generate())}});return(0,X.jsx)(J,{title:e(`pairDeviceCard.title`),subtitle:e(`pairDeviceCard.subtitle`,{name:g}),children:(0,X.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[x&&(0,X.jsx)(B,{tone:`info`,title:e(`pairDeviceCard.noTunnelTitle`),actions:S?(0,X.jsx)(va,{onRefresh:i.refresh,isRefreshing:i.isRefreshing,labelled:!0}):void 0,children:(0,X.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,X.jsx)(`p`,{children:e(`pairDeviceCard.noTunnelWhy`,{name:g})}),(0,X.jsx)(`code`,{className:a(`rounded-md bg-[var(--surface-active)] text-body-small-default text-[color:var(--content-default)]`,`w-fit max-w-full overflow-x-auto px-2.5 py-1.5`),children:xa(Ia,t.assistantName)}),(0,X.jsx)(`p`,{children:e(`pairDeviceCard.noTunnelNext`)}),(0,X.jsx)(`p`,{children:(0,X.jsx)(rn,{i18nKey:`pairDeviceCard.noTunnelMore`,ns:`settings`,values:{command:za},components:{code:(0,X.jsx)(`code`,{className:a(`rounded-md bg-[var(--surface-active)] text-body-small-default text-[color:var(--content-default)]`,`px-1.5 py-0.5`)})}})})]})}),(0,X.jsx)(Da,{status:i.status,onRefresh:i.refresh,isRefreshing:i.isRefreshing,assistantName:t.assistantName}),(0,X.jsx)(`div`,{className:`flex flex-col gap-3`,children:E?(0,X.jsxs)(X.Fragment,{children:[O,(0,X.jsx)(w.Root,{type:`single`,collapsible:!0,value:D?La:``,onValueChange:e=>f(e===La),children:(0,X.jsxs)(w.Item,{value:La,children:[(0,X.jsxs)(w.Trigger,{className:`group flex w-full items-center justify-between gap-3`,children:[(0,X.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-secondary)]`,children:e(`pairDeviceCard.publicUrlDisclosure`)}),(0,X.jsx)(wn,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform group-data-[state=open]:rotate-180`})]}),(0,X.jsx)(w.Content,{children:(0,X.jsx)(`div`,{className:`mt-3`,children:k})})]})})]}):(0,X.jsxs)(X.Fragment,{children:[k,O]})}),_.kind===`error`&&(0,X.jsx)(B,{tone:`error`,title:_.message,children:_.hint}),y&&(0,X.jsx)($i,{pairUrl:_.pairUrl,remainingMs:c.remainingMs,expired:c.expired,copied:m,onCopy:p}),(0,X.jsx)(_a,{base:t.base,onApproved:()=>u(e=>e+1)}),r&&(0,X.jsx)(pa,{pollWhilePairing:y&&!c.expired,revalidateKey:l}),(0,X.jsx)(Ve,{href:Ba,tone:`quiet`,glyph:!1,className:`self-start text-body-medium-default text-[var(--content-tertiary)]`,children:e(`pairDeviceCard.learnMore`)})]})})}function Ha(e){return[{scope:`global`,title:e(`shortcutsSections.globalTitle`),description:e(`shortcutsSections.globalDescription`)},{scope:`menu`,title:e(`shortcutsSections.appTitle`),description:e(`shortcutsSections.appDescription`)}]}function Ua({hotkey:e,recording:t,conflictLabel:n,alternateBinding:r,onStartRecording:i,onCancelRecording:a,onReset:o,onRemove:s}){let{t:c}=G(`settings`),l=e.accelerator===``,u=e.override!==null;return(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-3 py-2`,children:[(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsx)(`div`,{className:`truncate text-body-medium-lighter text-[var(--content-default)]`,children:e.label}),n!==null&&(0,X.jsx)(`div`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:c(`shortcutsSections.alreadyUsedBy`,{label:n})})]}),(0,X.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[r,t?(0,X.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:c(`shortcutsSections.recordingHint`)}):l?(0,X.jsx)(`span`,{className:`text-body-small-default italic text-[var(--content-disabled)]`,children:c(`shortcutsSections.none`)}):(0,X.jsx)(he,{accelerator:e.accelerator}),t?(0,X.jsx)(h,{variant:`ghost`,size:`compact`,onClick:a,children:c(`shortcutsSections.cancel`)}):(0,X.jsx)(h,{variant:`outlined`,size:`compact`,onClick:i,"aria-label":c(`shortcutsSections.recordShortcutAriaLabel`,{label:e.label}),children:c(`shortcutsSections.record`)}),(0,X.jsx)(h,{variant:`ghost`,size:`compact`,disabled:!u,leftIcon:(0,X.jsx)(_n,{className:`h-3.5 w-3.5`}),onClick:o,"aria-label":c(`shortcutsSections.resetShortcutAriaLabel`,{label:e.label})}),(0,X.jsx)(h,{variant:`ghost`,size:`compact`,disabled:l,leftIcon:(0,X.jsx)(Sn,{className:`h-3.5 w-3.5`}),onClick:s,"aria-label":c(`shortcutsSections.removeBindingAriaLabel`,{label:e.label})})]})]})}function Wa(){let{t:e}=G(`settings`),{catalog:t,recordingKey:n,conflict:r,startRecording:i,stopRecording:a,resetHotkey:o,removeHotkey:s}=qn(),c=(0,Y.useMemo)(()=>Ha(e).map(e=>({...e,commands:t.filter(t=>t.rebindable&&t.scope===e.scope)})).filter(e=>e.commands.length>0),[t,e]);return(0,X.jsxs)(`div`,{className:`space-y-4`,children:[r!==null&&(0,X.jsxs)(B,{tone:`warning`,children:[e(`shortcutsSections.conflictNoticePrefix`,{label:r.label}),` `,e(n===null?`shortcutsSections.conflictResetHint`:`shortcutsSections.conflictRecordingHint`)]}),c.map(e=>(0,X.jsxs)(ct,{bordered:!0,children:[(0,X.jsxs)(`div`,{className:`mb-2`,children:[(0,X.jsx)(`div`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.title}),(0,X.jsx)(`div`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:e.description})]}),(0,X.jsx)(`div`,{className:`divide-y divide-[var(--border-base)]`,children:e.commands.map(e=>(0,X.jsx)(Ua,{hotkey:e,recording:n===e.key,conflictLabel:r!==null&&r.key===e.key?r.label:null,onStartRecording:()=>i(e.key),onCancelRecording:a,onReset:()=>o(e.key),onRemove:()=>s(e.key)},e.key))})]},e.scope))]})}async function Ga(){if(!kt())return!1;let e=window.vellum;return e?.launchAtLogin?e.launchAtLogin.get():!1}async function Ka(e){if(!kt())return;let t=window.vellum;t?.launchAtLogin&&await t.launchAtLogin.set(e)}function qa(){let{t:e}=G(`settings`),t=c.useValue(),n=Ee.useValue(),r=!P(),i=Dt();return(0,X.jsxs)(`section`,{children:[(0,X.jsx)(`h3`,{className:`text-title-small text-[var(--content-emphasised)]`,children:e(`preferencesModal.composerTitle`)}),(0,X.jsxs)(`div`,{className:`mt-2 space-y-4`,children:[r&&(0,X.jsx)(Ot,{checked:t,onChange:c.save,label:e(i?`preferencesModal.sendWithCmdEnter`:`preferencesModal.sendWithCtrlEnter`),helperText:e(i?`preferencesModal.sendWithCmdEnterHelper`:`preferencesModal.sendWithCtrlEnterHelper`)}),(0,X.jsx)(Ot,{checked:n,onChange:Ee.save,label:e(`preferencesModal.showContextWindow`),helperText:e(`preferencesModal.showContextWindowHelper`)})]})]})}function Ja(){let{t:e}=G(`settings`),[t,n]=(0,Y.useState)(!1);(0,Y.useEffect)(()=>{Ga().then(n)},[]);let r=async e=>{n(e);try{await Ka(e)}catch{n(!e)}};return(0,X.jsxs)(`section`,{children:[(0,X.jsx)(`h3`,{className:`text-title-small text-[var(--content-emphasised)]`,children:e(`preferencesModal.launchAtLoginTitle`)}),(0,X.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:e(Ft()===`windows`?`preferencesModal.launchAtLoginDescriptionWindows`:`preferencesModal.launchAtLoginDescription`)}),(0,X.jsx)(`div`,{className:`mt-2`,children:(0,X.jsx)(Ot,{checked:t,onChange:e=>void r(e),"aria-label":e(`preferencesModal.launchAtLoginAriaLabel`)})})]})}function Ya({open:e,onClose:t}){let{t:n}=G(`settings`);return(0,X.jsx)(O.Root,{open:e,onOpenChange:e=>{e||t()},children:(0,X.jsxs)(O.Content,{size:`lg`,children:[(0,X.jsxs)(O.Header,{children:[(0,X.jsx)(O.Title,{children:n(`preferencesModal.title`)}),(0,X.jsx)(O.Description,{children:n(`preferencesModal.description`)})]}),(0,X.jsx)(O.Body,{children:(0,X.jsxs)(`div`,{className:`space-y-6`,children:[kt()&&(0,X.jsxs)(`section`,{children:[(0,X.jsx)(`h3`,{className:`text-title-small text-[var(--content-emphasised)]`,children:n(`preferencesModal.keyboardShortcutsTitle`)}),(0,X.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:n(`preferencesModal.keyboardShortcutsDescription`)}),(0,X.jsx)(`div`,{className:`mt-2`,children:(0,X.jsx)(Wa,{})})]}),(0,X.jsx)(qa,{}),kt()&&(0,X.jsx)(Ja,{})]})})]})})}function Xa(e){return e===`preview`?`preview`:`stable`}function Za(e,t){if(!e)return t;let n=new Date(e);return Number.isNaN(n.getTime())?t:n.toLocaleString(void 0,{year:`numeric`,month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`})}function Qa(e){return e.filter(e=>e.ready_to_use)}function $a(e){return e?.feature_enabled===!1}function eo({assistantId:e,onComplete:t}){let{t:n}=G(`settings`),r=z.use.previewChannel(),i=K(),[a,o]=(0,Y.useState)(),[s,c]=(0,Y.useState)(!1),[l,u]=(0,Y.useState)(!1),[d,f]=(0,Y.useState)(`restore_backup`),[p,m]=(0,Y.useState)(``),h=Jt({path:{assistant_id:e}}),g=ye({path:{assistant_id:e}}),_=Ht({path:{id:e}}),{data:v,isLoading:y,isError:b}=W({...h,enabled:r,retry:!1}),x=(0,Y.useMemo)(()=>Qa(v?.preview_backups??[]),[v?.preview_backups]),S=x[0],C=x.find(e=>e.snapshot_name===p)??S,T=()=>{i.invalidateQueries({queryKey:g}),i.invalidateQueries({queryKey:_}),t?.()},E=an(Zt()),D=an(Be()),O=Xa(v?.current_channel),k=E.isPending||D.isPending,A=k||$a(v)||!v?.latest_preview_release,j=d===`restore_backup`&&!C;if((0,Y.useEffect)(()=>{o(O===`preview`?`release-channel`:void 0)},[O]),!r)return null;let M=v?.standard_upgrade_available??!1;return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(w.Root,{type:`single`,collapsible:!0,value:a,onValueChange:e=>o(e||void 0),className:`mt-5 border-t border-[var(--border-base)] pt-5`,children:(0,X.jsxs)(w.Item,{value:`release-channel`,id:`preview-release-channel`,children:[(0,X.jsxs)(w.Trigger,{className:`group justify-between gap-3`,children:[(0,X.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,X.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-secondary)]`,children:n(`previewReleaseChannel.title`)}),v&&(0,X.jsx)(He,{tone:O===`preview`?`warning`:`neutral`,children:n(O===`preview`?`previewReleaseChannel.preview`:`previewReleaseChannel.stable`)})]}),(0,X.jsx)(wn,{className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform group-data-[state=open]:rotate-180`})]}),(0,X.jsx)(w.Content,{children:(0,X.jsxs)(`div`,{className:`mt-4 space-y-4`,children:[y&&(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,X.jsx)(q,{className:`h-4 w-4 animate-spin`}),n(`previewReleaseChannel.loading`)]}),b&&(0,X.jsx)(B,{tone:`error`,title:n(`previewReleaseChannel.loadErrorTitle`),children:n(`previewReleaseChannel.loadErrorBody`)}),v&&(0,X.jsxs)(X.Fragment,{children:[$a(v)&&(0,X.jsx)(B,{tone:`neutral`,title:n(`previewReleaseChannel.unavailableTitle`),children:n(`previewReleaseChannel.unavailableBody`)}),O===`stable`?(0,X.jsx)(to,{status:v,isChangingChannel:k,optInDisabled:A,onOptIn:()=>c(!0)}):(0,X.jsx)(no,{status:v,isChangingChannel:k,onOptOut:()=>{let e=S;m(e?.snapshot_name??``),f(e?`restore_backup`:M?`standard_upgrade`:`restore_backup`),u(!0)}})]})]})})]})}),(0,X.jsx)(io,{open:s,isPending:E.isPending,previewVersion:v?.latest_preview_release?.version,onConfirm:async()=>{try{let t=await E.mutateAsync({path:{assistant_id:e}});V.success(t.detail||n(`previewReleaseChannel.previewEnabledToast`)),c(!1),T()}catch(e){V.error(Ye(e,void 0,n(`previewReleaseChannel.previewEnableFailedToast`)))}},onCancel:()=>c(!1)}),(0,X.jsx)(ao,{open:l,backups:x,mode:d,selectedSnapshotName:C?.snapshot_name??``,isPending:D.isPending,restoreModeDisabled:j,standardUpgradeAvailable:M,onModeChange:f,onSnapshotChange:m,onConfirm:async()=>{if(!j)try{let t=await D.mutateAsync({path:{assistant_id:e},body:d===`restore_backup`?{mode:`restore_backup`,snapshot_name:C?.snapshot_name}:{mode:`standard_upgrade`}});V.success(t.detail||n(`previewReleaseChannel.stableEnabledToast`)),u(!1),T()}catch(e){V.error(Ye(e,void 0,`Could not switch to Stable.`))}},onCancel:()=>u(!1)})]})}function to({status:e,isChangingChannel:t,optInDisabled:n,onOptIn:r}){let{t:i}=G(`settings`);return(0,X.jsxs)(`div`,{className:`space-y-4`,children:[(0,X.jsx)(ro,{status:e}),!e.latest_preview_release&&(0,X.jsx)(B,{tone:`neutral`,title:i(`previewReleaseChannel.noPreviewTitle`),children:i(`previewReleaseChannel.noPreviewBody`)}),(0,X.jsx)(h,{variant:`outlined`,loading:t,leftIcon:(0,X.jsx)(gn,{}),disabled:n,onClick:r,children:i(`previewReleaseChannel.optIn`)})]})}function no({status:e,isChangingChannel:t,onOptOut:n}){let{t:r}=G(`settings`);return(0,X.jsxs)(`div`,{className:`space-y-4`,children:[(0,X.jsx)(ro,{status:e}),(0,X.jsx)(h,{variant:`outlined`,loading:t,leftIcon:(0,X.jsx)(_n,{}),disabled:t,onClick:n,children:r(`previewReleaseChannel.switchBack`)})]})}function ro({status:e}){let{t}=G(`settings`);return(0,X.jsxs)(`dl`,{className:`grid gap-3 text-body-medium-lighter sm:grid-cols-2`,children:[(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`dt`,{className:`text-[var(--content-tertiary)]`,children:t(`previewReleaseChannel.latestStable`)}),(0,X.jsx)(`dd`,{className:`break-all text-[var(--content-default)]`,children:e.latest_stable_release?.version??t(`previewReleaseChannel.none`)})]}),(0,X.jsxs)(`div`,{children:[(0,X.jsx)(`dt`,{className:`text-[var(--content-tertiary)]`,children:t(`previewReleaseChannel.latestPreview`)}),(0,X.jsx)(`dd`,{className:`break-all text-[var(--content-default)]`,children:e.latest_preview_release?.version??t(`previewReleaseChannel.none`)})]})]})}function io({open:e,isPending:t,previewVersion:n,onConfirm:r,onCancel:i}){let{t:a}=G(`settings`);return(0,X.jsx)(O.Root,{open:e,onOpenChange:e=>!e&&i(),children:(0,X.jsxs)(O.Content,{size:`md`,hideCloseButton:t,children:[(0,X.jsxs)(O.Header,{icon:hn,children:[(0,X.jsx)(O.Title,{children:a(`previewReleaseChannel.optInTitle`)}),(0,X.jsx)(O.Description,{children:a(`previewReleaseChannel.optInDescription`)})]}),(0,X.jsx)(O.Body,{children:(0,X.jsxs)(`div`,{className:`space-y-3`,children:[(0,X.jsx)(B,{tone:`warning`,title:a(`previewReleaseChannel.dataLossTitle`),children:a(`previewReleaseChannel.dataLossBody`)}),(0,X.jsxs)(`ol`,{className:`list-decimal space-y-2 pl-5 text-body-medium-lighter text-[var(--content-secondary)]`,children:[(0,X.jsx)(`li`,{children:a(`previewReleaseChannel.optInStep1`)}),(0,X.jsx)(`li`,{children:a(`previewReleaseChannel.optInStep2`,{version:n??a(`previewReleaseChannel.latest`)})}),(0,X.jsx)(`li`,{children:a(`previewReleaseChannel.optInStep3`)})]})]})}),(0,X.jsxs)(O.Footer,{children:[(0,X.jsx)(h,{variant:`outlined`,disabled:t,onClick:i,children:a(`previewReleaseChannel.cancel`)}),(0,X.jsx)(h,{variant:`primary`,disabled:t,loading:t,leftIcon:(0,X.jsx)(gn,{}),onClick:r,children:a(t?`previewReleaseChannel.switching`:`previewReleaseChannel.takeBackupAndSwitch`)})]})]})})}function ao({open:e,backups:n,mode:r,selectedSnapshotName:i,isPending:a,restoreModeDisabled:o,standardUpgradeAvailable:s,onModeChange:c,onSnapshotChange:l,onConfirm:u,onCancel:d}){let{t:f}=G(`settings`),p=f(`previewReleaseChannel.unknownDate`);return(0,X.jsx)(O.Root,{open:e,onOpenChange:e=>!e&&d(),children:(0,X.jsxs)(O.Content,{size:`md`,hideCloseButton:a,children:[(0,X.jsxs)(O.Header,{icon:hn,children:[(0,X.jsx)(O.Title,{children:f(`previewReleaseChannel.optOutTitle`)}),(0,X.jsx)(O.Description,{children:f(`previewReleaseChannel.optOutDescription`)})]}),(0,X.jsx)(O.Body,{children:(0,X.jsxs)(`div`,{className:`space-y-4`,children:[(0,X.jsxs)(t,{value:r,onValueChange:c,disabled:a,"aria-label":f(`previewReleaseChannel.returnMethodAriaLabel`),children:[(0,X.jsx)(de,{value:`restore_backup`,disabled:n.length===0,label:f(`previewReleaseChannel.restoreBackupLabel`),helperText:f(`previewReleaseChannel.restoreBackupHelper`)}),(0,X.jsx)(de,{value:`standard_upgrade`,disabled:!s,label:f(`previewReleaseChannel.standardUpgradeLabel`),helperText:f(s?`previewReleaseChannel.standardUpgradeHelper`:`previewReleaseChannel.standardUpgradeUnavailable`)})]}),r===`restore_backup`&&n.length>0&&(0,X.jsxs)(`label`,{className:`flex flex-col gap-1 text-body-medium-default text-[var(--content-secondary)]`,children:[f(`previewReleaseChannel.safetyBackup`),(0,X.jsx)(De,{value:i,onChange:l,disabled:a,options:n.map(e=>{let t=e.source_release_version?f(`previewReleaseChannel.stableBackupLabel`,{version:e.source_release_version}):e.snapshot_name;return{value:e.snapshot_name,label:f(`previewReleaseChannel.backupOptionLabel`,{name:t,date:Za(e.created_at,p)})}})})]}),r===`restore_backup`&&n.length===0&&!s&&(0,X.jsx)(B,{tone:`error`,title:f(`previewReleaseChannel.requiresBackupTitle`),children:f(`previewReleaseChannel.requiresBackupBody`)}),r===`standard_upgrade`&&(0,X.jsx)(B,{tone:`error`,title:f(`previewReleaseChannel.mayNotSurviveTitle`),children:f(`previewReleaseChannel.mayNotSurviveBody`)})]})}),(0,X.jsxs)(O.Footer,{children:[(0,X.jsx)(h,{variant:`outlined`,disabled:a,onClick:d,children:f(`previewReleaseChannel.cancel`)}),(0,X.jsx)(h,{variant:r===`standard_upgrade`?`danger`:`primary`,disabled:a||o||r===`standard_upgrade`&&!s,loading:a,leftIcon:(0,X.jsx)(mn,{}),onClick:u,children:f(a?`previewReleaseChannel.switching`:`previewReleaseChannel.switchToStable`)})]})]})})}function oo(){let{t:e}=G(`settings`),t=D.use.user(),n=(0,Y.useCallback)(e=>{jt(e),window.location.reload()},[]);if(!ht(t))return null;let i=Ge(),a=r(),o=a.version??e(`previewUiChannel.versionUnknown`);return(0,X.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e(`previewUiChannel.title`)}),(0,X.jsx)(`p`,{className:`text-body-small-lighter text-[var(--content-tertiary)]`,children:e(`previewUiChannel.description`)}),(0,X.jsx)(`p`,{className:`text-body-small-lighter text-[var(--content-tertiary)]`,children:e(a.channel===`preview`?`previewUiChannel.runningPreview`:`previewUiChannel.runningStable`,{version:o})}),i&&a.channel===`stable`&&(0,X.jsx)(`p`,{className:`text-body-small-lighter text-[var(--content-tertiary)]`,children:e(`previewUiChannel.unavailableHint`)})]}),(0,X.jsx)(`div`,{className:`shrink-0`,children:(0,X.jsx)(Ot,{checked:i,onChange:n,"aria-label":e(i?`previewUiChannel.onAriaLabel`:`previewUiChannel.offAriaLabel`)})})]})}var so=new Set([`exceeds_machine_tier`,`exceeds_storage_tier`]);function co(e,t){return e&&typeof e==`object`&&!Array.isArray(e)&&`error`in e&&typeof e.error==`string`&&so.has(e.error)?`That size isn't available on your plan.`:Ye(e,void 0,t)}function lo({assistant:e,healthz:t,healthzLoading:n,healthzFetching:r,healthzPolling:o,refetch:s,refetchUntilResized:c}){let{t:l}=G(`settings`),u=cn(),d=W(At()),f=d.data,p=!e.is_local,m=f?.plan_id===`pro`,g=W({...i(),enabled:m}),_=e.machine_size||`small`,v=Nn(g.data?.max_machine_tier??null),y=(0,Y.useMemo)(()=>In(v,_,(0,X.jsx)(He,{tone:`positive`,children:l(`resizeCard.current`)})),[v,_,l]),b=g.data?.selected_storage_gib??null,[x,S]=(0,Y.useState)(!1),C=v.length>0?v[v.length-1]:null,[w,T]=(0,Y.useState)(null),E=w??C??_,[D,k]=(0,Y.useState)(!1),[A,j]=(0,Y.useState)(null),M=ut({onSuccess:(e,n)=>{V.success(l(`resizeCard.toastStarted`),{id:`assistant-resize`}),j(null),T(null),S(!1),n.body?.machine_size==null?s():c(t)},onError:e=>{j(co(e,l(`resizeCard.resizeFailed`)))}});if(d.isError&&f==null)return(0,X.jsx)(J,{id:`storage-resources`,title:l(`resizeCard.title`),subtitle:l(`resizeCard.subtitle`),children:(0,X.jsx)(B,{tone:`error`,children:l(`resizeCard.subscriptionLoadError`)})});let N=m&&v.includes(E)&&E!==_?E:null,P=m&&b!=null&&!0,ee=m&&v.length>0&&Fn(_)<Fn(v[v.length-1]),F=M.isPending||o,I=b==null?t?.disk?.totalMb??null:b*1024,te=t?.disk&&I!=null?{value:t.disk.usedMb,max:I,caption:l(`resizeCard.usedOf`,{used:Hn(t.disk.usedMb),total:Hn(I)})}:null,ne=t?.cpu?{value:t.cpu.currentPercent,max:100,caption:`${t.cpu.currentPercent.toFixed(1)}%`}:null,re=t?.memory?{value:t.memory.currentMb,max:t.memory.maxMb,caption:l(`resizeCard.usedOf`,{used:Hn(t.memory.currentMb),total:Hn(t.memory.maxMb)})}:null,ie=(0,X.jsx)(h,{variant:`ghost`,size:`compact`,onClick:()=>k(!0),children:l(`resizeCard.resize`)}),ae=p?m?P?(0,X.jsxs)(`button`,{type:`button`,disabled:F,onClick:()=>S(!0),className:`flex items-center gap-1.5 rounded-lg border border-amber-500/30 bg-amber-500/15 px-3 py-1.5 text-body-small-default font-medium text-amber-400 transition-colors hover:bg-amber-500/25 disabled:opacity-50`,children:[(0,X.jsx)(pn,{className:`h-3.5 w-3.5`}),l(`resizeCard.increaseStorage`)]}):(0,X.jsx)(h,{variant:`ghost`,size:`compact`,disabled:F,onClick:()=>S(!0),children:l(`resizeCard.resize`)}):ie:null,oe=p?m?ee?(0,X.jsxs)(`button`,{type:`button`,disabled:F,onClick:()=>S(!0),className:`flex items-center gap-1.5 rounded-lg border border-amber-500/30 bg-amber-500/15 px-3 py-1.5 text-body-small-default font-medium text-amber-400 transition-colors hover:bg-amber-500/25 disabled:opacity-50`,children:[(0,X.jsx)(pn,{className:`h-3.5 w-3.5`}),l(`resizeCard.increaseSize`)]}):(0,X.jsx)(h,{variant:`ghost`,size:`compact`,disabled:F,onClick:()=>S(!0),children:l(`resizeCard.resize`)}):ie:null;return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(J,{id:`storage-resources`,title:l(`resizeCard.title`),subtitle:l(`resizeCard.subtitle`),compactAccessory:!0,accessory:(0,X.jsx)(h,{variant:`ghost`,size:`compact`,loading:r||o,iconOnly:(0,X.jsx)(mn,{}),tooltip:l(o?`resizeCard.applyingResize`:`resizeCard.refreshMetrics`),"aria-label":l(`resizeCard.refreshMetrics`),disabled:r||o,onClick:()=>void s()}),children:(0,X.jsxs)(`div`,{className:`grid grid-cols-1 gap-2 sm:grid-cols-[1fr_2fr]`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col rounded-lg bg-[var(--surface-base)] p-3`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,X.jsx)(`span`,{className:`text-[var(--content-tertiary)]`,children:(0,X.jsx)(On,{className:`h-3.5 w-3.5`})}),(0,X.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:l(`resizeCard.disk`)})]}),ae]}),(0,X.jsxs)(`div`,{className:`mt-auto flex flex-col gap-1 pt-3`,children:[(0,X.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:l(`resizeCard.storage`)}),te?(0,X.jsx)(Rn,{value:te.value,max:te.max,caption:te.caption}):n?(0,X.jsx)(`div`,{className:`flex items-center gap-2 text-[var(--content-tertiary)]`,children:(0,X.jsx)(q,{className:`h-3 w-3 animate-spin`})}):(0,X.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:l(`resizeCard.unavailable`)})]})]}),(0,X.jsxs)(`div`,{className:`flex flex-col rounded-lg bg-[var(--surface-base)] p-3`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,X.jsx)(`span`,{className:`text-[var(--content-tertiary)]`,children:(0,X.jsx)(Yn,{className:`h-3.5 w-3.5`})}),(0,X.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:l(`resizeCard.machine`)}),(0,X.jsx)(He,{tone:`neutral`,children:Pn[_]})]}),oe]}),(0,X.jsxs)(`div`,{className:`mt-auto grid grid-cols-2 gap-3 pt-3`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,X.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:l(`resizeCard.cpu`)}),ne?(0,X.jsx)(Rn,{value:ne.value,max:ne.max,caption:ne.caption}):n?(0,X.jsx)(`div`,{className:`flex items-center gap-2 text-[var(--content-tertiary)]`,children:(0,X.jsx)(q,{className:`h-3 w-3 animate-spin`})}):(0,X.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:`—`})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,X.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:l(`resizeCard.memory`)}),re?(0,X.jsx)(Rn,{value:re.value,max:re.max,caption:re.caption}):n?(0,X.jsx)(`div`,{className:`flex items-center gap-2 text-[var(--content-tertiary)]`,children:(0,X.jsx)(q,{className:`h-3 w-3 animate-spin`})}):(0,X.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-tertiary)]`,children:`—`})]})]})]})]})}),(0,X.jsx)(O.Root,{open:D,onOpenChange:e=>{e||k(!1)},children:(0,X.jsxs)(O.Content,{size:`sm`,children:[(0,X.jsxs)(O.Header,{children:[(0,X.jsx)(O.Title,{children:l(`resizeCard.upgradeTitle`)}),(0,X.jsx)(O.Description,{children:l(`resizeCard.upgradeDescription`)})]}),(0,X.jsxs)(O.Footer,{children:[(0,X.jsx)(h,{variant:`ghost`,onClick:()=>k(!1),children:l(`resizeCard.cancel`)}),(0,X.jsx)(h,{onClick:()=>{k(!1),u(L.plans)},children:l(`resizeCard.upgrade`)})]})]})}),(0,X.jsx)(O.Root,{open:x,onOpenChange:e=>{e||(S(!1),T(null),j(null))},children:(0,X.jsxs)(O.Content,{size:`sm`,children:[(0,X.jsxs)(O.Header,{icon:Yn,children:[(0,X.jsx)(O.Title,{children:l(`resizeCard.modalTitle`)}),(0,X.jsx)(O.Description,{children:l(`resizeCard.modalDescription`)})]}),(0,X.jsx)(O.Body,{children:(0,X.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[v.length===0?(0,X.jsx)(B,{tone:`warning`,children:l(`resizeCard.noMachineTier`)}):(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(`span`,{className:`text-label-medium-default text-[var(--content-secondary)]`,children:l(`resizeCard.machineSize`)}),(0,X.jsx)(De,{options:y,value:E,onChange:T,"aria-label":l(`resizeCard.machineSizeAriaLabel`),"data-testid":`resize-machine-size`})]}),P?(0,X.jsx)(B,{tone:`info`,children:l(`resizeCard.storageExpandTo`,{to:b})}):(0,X.jsx)(B,{tone:`neutral`,children:l(`resizeCard.storageUnchanged`)}),A&&(0,X.jsx)(B,{tone:`error`,children:A})]})}),(0,X.jsxs)(O.Footer,{className:`items-center justify-between`,children:[(0,X.jsx)(`span`,{className:`text-label-small-default text-[var(--content-tertiary)]`,children:(0,X.jsx)(rn,{ns:`settings`,i18nKey:`resizeCard.needMore`,components:{upgradeLink:(0,X.jsx)(ln,{to:L.plans,className:a(yt({tone:`quiet`}),`text-[var(--content-secondary)] decoration-[var(--border-element)] underline-offset-2`),onClick:()=>S(!1)})}})}),(0,X.jsxs)(`div`,{className:`flex gap-2`,children:[(0,X.jsx)(h,{variant:`ghost`,onClick:()=>{S(!1),T(null),j(null)},children:l(`resizeCard.cancel`)}),(0,X.jsx)(h,{disabled:N==null&&!P||F,loading:F,onClick:()=>{j(null);let t={};N!=null&&(t.machine_size=N),P&&b!=null&&(t.storage_gib=b),M.mutate({path:{id:e.id},body:t})},children:l(A?`resizeCard.retry`:`resizeCard.apply`)})]})]})]})})]})}function uo({assistantId:e}){let{t}=G(`settings`),n=cn(),r=K(),[i,a]=(0,Y.useState)(!1),[o,s]=(0,Y.useState)(!1);return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(h,{variant:`dangerOutline`,onClick:()=>a(!0),className:`shrink-0`,children:t(`retireAssistant.button`)}),(0,X.jsx)(it,{open:i,isPending:o,onConfirm:async()=>{s(!0);let t=await nt(r,e);if(t.ok){a(!1),n(t.nextRoute,{replace:!0});return}V.error(t.error),s(!1),a(!1)},onCancel:()=>a(!1)})]})}var fo=`UTC.Africa/Cairo.Africa/Johannesburg.Africa/Lagos.Africa/Nairobi.America/Anchorage.America/Argentina/Buenos_Aires.America/Bogota.America/Chicago.America/Denver.America/Halifax.America/Lima.America/Los_Angeles.America/Mexico_City.America/New_York.America/Phoenix.America/Santiago.America/Sao_Paulo.America/Toronto.America/Vancouver.Asia/Bangkok.Asia/Dubai.Asia/Hong_Kong.Asia/Jakarta.Asia/Jerusalem.Asia/Karachi.Asia/Kolkata.Asia/Kuala_Lumpur.Asia/Manila.Asia/Seoul.Asia/Shanghai.Asia/Singapore.Asia/Taipei.Asia/Tokyo.Australia/Melbourne.Australia/Perth.Australia/Sydney.Europe/Amsterdam.Europe/Athens.Europe/Berlin.Europe/Brussels.Europe/Dublin.Europe/Istanbul.Europe/Lisbon.Europe/London.Europe/Madrid.Europe/Moscow.Europe/Paris.Europe/Rome.Europe/Stockholm.Europe/Vienna.Europe/Warsaw.Europe/Zurich.Pacific/Auckland.Pacific/Honolulu`.split(`.`);function po(){let e=Intl;if(typeof e.supportedValuesOf==`function`)try{let t=e.supportedValuesOf(`timeZone`);if(t.length>0)return[...t].sort()}catch{}return[...fo].sort()}function mo(e,t,n){let r=parseInt(n??`0`,10);if(r>59)return null;let i=parseInt(t??`0`,10)*60+r;return(e===`-`?-1:1)*i}function ho(e){let t=e.split(`/`),n=(t[t.length-1]??e).replace(/_/g,` `),r=t.length>1?(t[0]??``).replace(/_/g,` `):``,i=0,a=``;try{let t=new Intl.DateTimeFormat(`en-US`,{timeZone:e,timeZoneName:`shortOffset`}).formatToParts(new Date).find(e=>e.type===`timeZoneName`)?.value??`GMT`;a=t.startsWith(`GMT`)||t.startsWith(`UTC`)?t:`GMT ${t}`;let n=t.match(/([+-])(\d{1,2})(?::(\d{2}))?/);n&&(i=mo(n[1],n[2],n[3])??0)}catch{return null}return{identifier:e,city:n,region:r,offsetLabel:a,offsetMinutes:i}}function go(){return po().map(e=>ho(e)).filter(e=>e!==null)}function _o(e){try{return new Intl.DateTimeFormat(`en-US`,{timeZone:e,hour:`numeric`,minute:`2-digit`,hour12:!0}).format(new Date)}catch{return``}}function vo(e,t){if(!e)return t;try{let t=new Intl.DateTimeFormat(`en-US`,{timeZone:e,timeZoneName:`long`}).formatToParts(new Date).find(e=>e.type===`timeZoneName`)?.value;if(t)return t}catch{}return e.replace(/_/g,` `)}function yo(e){if(e===`utc`||e===`gmt`)return 0;let t=e.match(/^(?:utc|gmt)?\s*([+-])(\d{1,2})(?::?(\d{2}))?$/);if(!t)return null;let n=mo(t[1],t[2],t[3]);return n!==null&&Math.abs(n)<=840?n:null}var bo=200,xo=[];function So({value:e,onChange:t}){let{t:n}=G(`settings`),[r,i]=(0,Y.useState)(``),[o,s]=(0,Y.useState)(!1),c=(0,Y.useMemo)(()=>o?go():xo,[o]),l=r.trim().toLowerCase(),u=(0,Y.useMemo)(()=>{let e=yo(l);return(l?c.filter(t=>e===null?t.city.toLowerCase().includes(l)||t.region.toLowerCase().includes(l)||t.offsetLabel.toLowerCase().includes(l)||t.identifier.toLowerCase().includes(l):t.offsetMinutes===e):c).slice(0,bo)},[c,l]),d=(0,Y.useMemo)(()=>u.map(e=>e.identifier),[u]),f=(0,Y.useMemo)(()=>{if(!e)return``;let t=e.split(`/`);return(t[t.length-1]??e).replace(/_/g,` `)},[e]);return(0,X.jsxs)(`div`,{className:`space-y-3`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5 md:flex-row md:items-center md:justify-between md:gap-4`,children:[(0,X.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:n(`timezonePicker.timezone`)}),(0,X.jsxs)(le.Root,{className:`w-full md:max-w-[280px]`,options:d,value:e,onSelect:t,onOpenChange:e=>{if(e){s(!0);return}i(``)},autoActivateFirst:l.length>0,children:[(0,X.jsx)(le.Input,{type:`text`,"aria-label":n(`timezonePicker.timezone`),value:r,placeholder:f||n(`timezonePicker.searchPlaceholder`),onChange:e=>i(e.target.value),fullWidth:!0}),(0,X.jsx)(le.List,{"aria-label":n(`timezonePicker.timezonesAriaLabel`),className:`absolute left-0 right-0 top-full z-20 mt-1 max-h-[240px] rounded-md border border-[var(--border-base)] bg-[var(--surface-lift)] shadow-lg`,emptyState:(0,X.jsx)(`p`,{className:`px-3 py-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:n(`timezonePicker.noMatches`)}),children:u.map(e=>(0,X.jsxs)(le.Option,{value:e.identifier,className:a(`flex w-full items-center justify-between gap-3 px-3 py-2`,`text-body-medium-lighter text-[var(--content-default)] transition-colors`,`hover:bg-[var(--surface-active)]`,`data-[active]:bg-[var(--surface-active)] aria-selected:bg-[var(--surface-active)]`),children:[(0,X.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,X.jsx)(`div`,{className:`truncate text-body-medium-default`,children:e.city}),e.region&&(0,X.jsx)(`div`,{className:`truncate text-body-small-default text-[var(--content-tertiary)]`,children:e.region})]}),(0,X.jsxs)(`div`,{className:`flex shrink-0 flex-col items-end gap-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,X.jsx)(`span`,{children:_o(e.identifier)}),(0,X.jsx)(`span`,{children:e.offsetLabel})]})]},e.identifier))})]})]}),(0,X.jsx)(Kn,{}),(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,X.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:n(`timezonePicker.zoneName`)}),(0,X.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:vo(e,n(`timezonePicker.notSet`))})]})]})}function Co(){let{t:e}=G(`settings`),t=T.use.activeAssistantId(),[n,r]=(0,Y.useState)(()=>Ie(`timezone`,``)),i=(0,Y.useRef)(t);(0,Y.useEffect)(()=>{i.current=t},[t]);let a=(0,Y.useRef)(!1),o=(0,Y.useRef)(null),s=(0,Y.useRef)(()=>{}),c=e=>{if(a.current){o.current=e;return}let t=i.current;if(!t){o.current=null;return}a.current=!0,o.current=null,k.patch({url:`/v1/assistants/{assistant_id}/config`,path:{assistant_id:t},body:{ui:{userTimezone:e}},throwOnError:!0}).catch(e=>{R(e,{context:`settings-timezone-override`})}).finally(()=>{a.current=!1;let e=o.current;o.current=null,e!==null&&s.current(e)})};return(0,Y.useEffect)(()=>{s.current=c}),(0,X.jsxs)(`section`,{className:`flex flex-col gap-2`,children:[(0,X.jsx)(`h3`,{className:`text-title-small text-[var(--content-emphasised)]`,children:e(`timezoneSection.title`)}),(0,X.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:e(`timezoneSection.description`)}),(0,X.jsx)(`div`,{className:`mt-1`,children:(0,X.jsx)(So,{value:n,onChange:e=>{r(e),Tt(`timezone`,e),c(e)}})})]})}var wo=[0,1,2,3,4,5,6];function To(e){let[t,n]=e.split(`:`).map(Number),r=new Date,i=new Date(Date.UTC(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate(),t,n));return`${i.getHours().toString().padStart(2,`0`)}:${i.getMinutes().toString().padStart(2,`0`)}`}function Eo(e){let[t,n]=e.split(`:`).map(Number),r=new Date,i=new Date(r.getFullYear(),r.getMonth(),r.getDate(),t,n);return`${i.getUTCHours().toString().padStart(2,`0`)}:${i.getUTCMinutes().toString().padStart(2,`0`)}`}function Do(){return Intl.DateTimeFormat(void 0,{timeZoneName:`short`}).formatToParts(new Date).find(e=>e.type===`timeZoneName`)?.value??``}function Oo(e){let t=e?.schedule?.window.start??`06:00`,n=e?.schedule?.window.end??`08:00`;return{enabled:e?.enabled??!0,timezone:`UTC`,frequency:e?.schedule?.frequency??`weekly`,daysOfWeek:e?.schedule?.days_of_week??[0],daysOfMonth:e?.schedule?.days_of_month??[],windowStart:To(t),windowEnd:To(n)}}function ko({assistantId:e}){let{t}=G(`settings`),n=K(),r=[t(`updateWindowPolicy.dayMon`),t(`updateWindowPolicy.dayTue`),t(`updateWindowPolicy.dayWed`),t(`updateWindowPolicy.dayThu`),t(`updateWindowPolicy.dayFri`),t(`updateWindowPolicy.daySat`),t(`updateWindowPolicy.daySun`)],{data:i,isLoading:a,isError:o}=W(se({path:{id:e}})),s=(0,Y.useMemo)(()=>Oo(i),[i]),[c,u]=(0,Y.useState)(null),d=c??s,f=c!==null,p=(0,Y.useMemo)(()=>Do(),[]),[m,g]=(0,Y.useState)(null),_=m??d.daysOfMonth.join(`, `),v=an({mutationFn:async t=>{let{data:n}=await l({path:{id:e},body:t,throwOnError:!0});return n}}),y=e=>{u(t=>({...t??s,...e}))},b=e=>{y({daysOfWeek:d.daysOfWeek.includes(e)?d.daysOfWeek.filter(t=>t!==e):[...d.daysOfWeek,e].sort((e,t)=>e-t)})},x=e=>e.split(`,`).map(e=>parseInt(e.trim(),10)).filter(e=>!isNaN(e)&&e>=1&&e<=31);return a?(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,X.jsx)(q,{className:`h-4 w-4 animate-spin`}),t(`updateWindowPolicy.loading`)]}):o?(0,X.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--system-negative-strong)]`,children:t(`updateWindowPolicy.loadError`)}):(0,X.jsxs)(`div`,{className:`space-y-6`,children:[(0,X.jsx)(Ot,{checked:d.enabled,onChange:e=>y({enabled:e}),label:t(`updateWindowPolicy.automaticUpdates`),helperText:t(`updateWindowPolicy.automaticUpdatesHelper`)}),d.enabled&&(0,X.jsxs)(`div`,{className:`space-y-5`,children:[(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-secondary)]`,children:t(`updateWindowPolicy.frequency`)}),(0,X.jsx)(`div`,{className:`max-w-[400px]`,children:(0,X.jsx)(ke,{ariaLabel:t(`updateWindowPolicy.frequency`),value:d.frequency,onChange:e=>{e!==`monthly`&&g(null),y({frequency:e})},items:[{value:`daily`,label:t(`updateWindowPolicy.daily`)},{value:`weekly`,label:t(`updateWindowPolicy.weekly`)},{value:`monthly`,label:t(`updateWindowPolicy.monthly`)}]})})]}),d.frequency===`weekly`&&(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-secondary)]`,children:t(`updateWindowPolicy.daysOfWeek`)}),(0,X.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:wo.map(e=>(0,X.jsx)(h,{variant:`outlined`,size:`compact`,active:d.daysOfWeek.includes(e),onClick:()=>b(e),children:r[e]},e))})]}),d.frequency===`monthly`&&(0,X.jsx)(pt,{label:t(`updateWindowPolicy.daysOfMonth`),type:`text`,value:_,onChange:e=>g(e.target.value),onBlur:e=>{let t=x(e.target.value);y({daysOfMonth:t}),g(t.join(`, `))},placeholder:t(`updateWindowPolicy.daysOfMonthPlaceholder`),helperText:t(`updateWindowPolicy.daysOfMonthHelper`),className:`w-48`}),(0,X.jsxs)(`div`,{className:`space-y-2`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-secondary)]`,children:p?t(`updateWindowPolicy.updateWindowWithTz`,{tz:p}):t(`updateWindowPolicy.updateWindow`)}),(0,X.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,X.jsx)(pt,{type:`time`,value:d.windowStart,onChange:e=>y({windowStart:e.target.value})}),(0,X.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:t(`updateWindowPolicy.to`)}),(0,X.jsx)(pt,{type:`time`,value:d.windowEnd,onChange:e=>y({windowEnd:e.target.value})})]})]})]}),(0,X.jsx)(h,{variant:`primary`,loading:v.isPending,onClick:async()=>{let r=d.frequency===`monthly`&&m!==null?x(m):d.daysOfMonth;try{await v.mutateAsync({enabled:d.enabled,timezone:`UTC`,schedule:{frequency:d.frequency,days_of_week:d.frequency===`weekly`?d.daysOfWeek:[],days_of_month:d.frequency===`monthly`?r:[],window:{start:Eo(d.windowStart),end:Eo(d.windowEnd)}}}),V.success(t(`updateWindowPolicy.toastSaved`)),u(null),g(null),n.invalidateQueries({queryKey:at({path:{id:e}})})}catch{V.error(t(`updateWindowPolicy.toastSaveFailed`))}},disabled:v.isPending||!f,children:t(`updateWindowPolicy.savePolicy`)})]})}function Ao({assistantId:e,open:t,onClose:n}){let{t:r}=G(`settings`);return(0,X.jsx)(O.Root,{open:t,onOpenChange:e=>{e||n()},children:(0,X.jsxs)(O.Content,{size:`md`,children:[(0,X.jsxs)(O.Header,{children:[(0,X.jsx)(O.Title,{children:r(`updateWindowModal.title`)}),(0,X.jsx)(O.Description,{children:r(`updateWindowModal.description`)})]}),(0,X.jsx)(O.Body,{children:(0,X.jsx)(ko,{assistantId:e})})]})})}function jo(e){if(typeof e==`object`&&e&&`code`in e){let t=e.code;if(typeof t==`string`)return t}}function Mo({open:e,onOpenChange:t}){let{t:n}=G(`settings`),r=K(),[i,a]=(0,Y.useState)(null),[o,s]=(0,Y.useState)(``),[c,l]=(0,Y.useState)(null),u=(0,Y.useRef)(!1),f=(0,Y.useRef)(e),p=()=>r.invalidateQueries({queryKey:Se()}),m=e=>{Ct({path:{id:e}}).catch(()=>void 0).finally(()=>void p())},g=Gt({onSuccess:e=>{if(!f.current){m(e.factor_id);return}a(e)},onError:e=>{let r=jo(e);r===`no_workos_account`?V.error(n(`enrollTotpModal.toastNoWorkosAccount`)):r===`throttled`||r===`workos_rate_limited`?V.error(n(`enrollTotpModal.toastThrottled`)):r===`factor_limit_reached`?V.error(n(`enrollTotpModal.toastFactorLimitReached`)):V.error(n(`enrollTotpModal.toastStartFailed`)),t(!1)}}),_=d({onSuccess:e=>{e.valid?(u.current=!0,V.success(n(`enrollTotpModal.toastEnabled`)),p(),t(!1)):l(n(`enrollTotpModal.errorCodeMismatch`))},onError:e=>{let r=jo(e);if(r===`challenge_already_verified`){u.current=!0,V.success(n(`enrollTotpModal.toastEnabled`)),p(),t(!1);return}if(r===`challenge_expired`||r===`challenge_not_found`){i&&m(i.factor_id),a(null),s(``),l(n(`enrollTotpModal.errorSessionExpired`)),g.mutate({});return}if(r===`throttled`||r===`workos_rate_limited`){l(n(`enrollTotpModal.errorThrottledInline`));return}l(n(`enrollTotpModal.errorVerifyFailed`))}});(0,Y.useEffect)(()=>{f.current=e,e&&(u.current=!1,a(null),s(``),l(null),g.mutate({}))},[e]);let v=e=>{!e&&_.isPending||(!e&&i&&!u.current&&m(i.factor_id),t(e))},y=()=>{i&&Qt(i.secret,{successMessage:n(`enrollTotpModal.copySuccess`),errorMessage:n(`enrollTotpModal.copyError`)})},b=()=>{!i||o.length!==6||_.isPending||(l(null),_.mutate({body:{challenge_id:i.challenge_id,code:o}}))};return(0,X.jsx)(O.Root,{open:e,onOpenChange:v,children:(0,X.jsxs)(O.Content,{size:`sm`,children:[(0,X.jsxs)(O.Header,{children:[(0,X.jsx)(O.Title,{children:n(`enrollTotpModal.title`)}),(0,X.jsx)(O.Description,{children:n(`enrollTotpModal.description`)})]}),(0,X.jsx)(O.Body,{children:i===null?(0,X.jsx)(`div`,{className:`flex items-center justify-center py-10`,children:(0,X.jsx)(q,{className:`h-5 w-5 animate-spin text-[var(--content-tertiary)]`})}):(0,X.jsxs)(`form`,{className:`flex flex-col items-center gap-4`,onSubmit:e=>{e.preventDefault(),b()},children:[(0,X.jsx)(`img`,{src:i.qr_code,alt:n(`enrollTotpModal.qrCodeAlt`),className:`h-44 w-44 rounded-lg bg-white p-2`}),(0,X.jsxs)(`div`,{className:`flex w-full flex-col gap-1`,children:[(0,X.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:n(`enrollTotpModal.manualKeyHint`)}),(0,X.jsxs)(`button`,{type:`button`,onClick:y,className:`flex cursor-pointer items-center gap-2 self-start font-mono text-body-small-default text-[var(--content-default)] hover:text-[var(--content-emphasised)]`,children:[(0,X.jsx)(`span`,{className:`break-all text-left`,children:i.secret}),(0,X.jsx)(Cn,{className:`h-3.5 w-3.5 shrink-0`})]})]}),(0,X.jsxs)(`div`,{className:`flex w-full flex-col gap-1`,children:[(0,X.jsx)(`label`,{htmlFor:`totp-code`,className:`text-body-small-default text-[var(--content-tertiary)]`,children:n(`enrollTotpModal.codeLabel`)}),(0,X.jsx)(pt,{id:`totp-code`,inputMode:`numeric`,autoComplete:`one-time-code`,maxLength:6,placeholder:n(`enrollTotpModal.codePlaceholder`),value:o,onChange:e=>s(e.target.value.replace(/\D/g,``).slice(0,6))}),c&&(0,X.jsx)(`p`,{role:`alert`,className:`text-body-small-default text-[var(--system-negative-strong)]`,children:c})]})]})}),(0,X.jsxs)(O.Footer,{children:[(0,X.jsx)(h,{variant:`outlined`,onClick:()=>v(!1),disabled:_.isPending,children:n(`enrollTotpModal.cancel`)}),(0,X.jsx)(h,{onClick:b,disabled:i===null||o.length!==6||_.isPending,children:_.isPending?n(`enrollTotpModal.verifying`):n(`enrollTotpModal.verify`)})]})]})})}function No(e){let t=new Date(e);return Number.isNaN(t.getTime())?``:t.toLocaleDateString(void 0,{month:`short`,day:`numeric`,year:`numeric`})}function Po(){let{t:e}=G(`settings`),t=K(),[n,r]=(0,Y.useState)(!1),[i,a]=(0,Y.useState)(null),o=W({...Bt()}),s=o.data??[],c=()=>t.invalidateQueries({queryKey:Se()}),l=ve({onSuccess:()=>{V.success(e(`twoFactorSection.toastRemoved`)),c()},onError:t=>{if(jo(t)===`factor_not_found`){c();return}V.error(e(`twoFactorSection.toastRemoveFailed`))}});return(0,X.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[o.isPending?(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-[var(--content-tertiary)]`,children:[(0,X.jsx)(q,{className:`h-4 w-4 animate-spin`}),(0,X.jsx)(`span`,{className:`text-body-medium-default`,children:e(`twoFactorSection.loading`)})]}):o.isError?(0,X.jsx)(B,{tone:`error`,children:(0,X.jsx)(rn,{ns:`settings`,i18nKey:`twoFactorSection.loadError`,components:{retryButton:(0,X.jsx)(`button`,{type:`button`,className:`cursor-pointer underline`,onClick:()=>void o.refetch()})}})}):s.length===0?(0,X.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:e(`twoFactorSection.emptyDescription`)}):(0,X.jsx)(`ul`,{className:`flex flex-col divide-y divide-[var(--border-base)]`,children:s.map(t=>(0,X.jsxs)(`li`,{className:`flex items-center justify-between gap-3 py-3`,children:[(0,X.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,X.jsx)(Tn,{className:`h-5 w-5 shrink-0 text-[var(--content-tertiary)]`}),(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsx)(`div`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e(`twoFactorSection.authenticatorApp`)}),(0,X.jsxs)(`div`,{className:`truncate text-body-small-default text-[var(--content-tertiary)]`,children:[t.user,t.created_at?e(`twoFactorSection.addedOn`,{date:No(t.created_at)}):``]})]})]}),(0,X.jsx)(h,{variant:`dangerOutline`,onClick:()=>a(t),disabled:l.isPending,children:e(`twoFactorSection.remove`)})]},t.id))}),!o.isPending&&!o.isError&&s.length===0&&(0,X.jsx)(h,{onClick:()=>r(!0),className:`self-start`,children:e(`twoFactorSection.addAuthenticatorApp`)}),(0,X.jsx)(Mo,{open:n,onOpenChange:r}),(0,X.jsx)(M,{open:i!==null,title:e(`twoFactorSection.removeDialogTitle`),message:e(`twoFactorSection.removeDialogMessage`),confirmLabel:e(`twoFactorSection.removeDialogConfirm`),destructive:!0,onConfirm:()=>{i&&l.mutate({path:{id:i.id}}),a(null)},onCancel:()=>a(null)})]})}var Q=class extends Error{code;constructor(e,t){super(t),this.name=`TeleportError`,this.code=e}},Fo=`local`,Io=`docker`,Lo=`vellum`;function Ro(e){switch((e??``).toLowerCase()){case Fo:return`local`;case Io:return`docker`;case Lo:return`managed`;default:return`other`}}function zo(e){let t=Ro(e);return t===`managed`?`local`:t===`local`?`platform`:null}function Bo(e){switch(e){case`docker`:return`teleportCard.moveToDocker`;case`platform`:return`teleportCard.moveToPlatform`;case`local`:return`teleportCard.moveToLocal`}}var Vo={macos:`Macos`,windows:`Windows`,linux:`Linux`};function Ho(e,t=`macos`){switch(e){case`docker`:return`teleportCard.dockerDescription${Vo[t]}`;case`platform`:return`teleportCard.platformDescription`;case`local`:return`teleportCard.localDescription${Vo[t]}`}}function Uo(e){if(!e||typeof e!=`object`)return null;let t=e;if(t.reason!==`version_mismatch`)return null;let n=t.bundle_compat,r=t.target_runtime_version;if(!n||typeof n!=`object`||typeof r!=`string`)return null;let i=n,a=i.min_runtime_version;if(typeof a!=`string`)return null;let o=typeof i.max_runtime_version==`string`?i.max_runtime_version:null;return`Cannot import: bundle requires runtime ${o?`${a}–${o}`:`${a}+`}, but this local runtime is ${r}. Update your local runtime before importing.`}var Wo=3600*1e3;function Go(e,t=Date.now(),n=Wo){for(let r of e){if(!r)continue;let e=Date.parse(r);if(Number.isNaN(e))continue;let i=t-e;if(i>=0&&i<=n)return!0}return!1}function Ko(e){return e.filter(e=>e.ready_to_use!==!1).map(e=>e.created_at)}function qo(e,t){return e.some(e=>e.snapshot_name===t&&e.ready_to_use===!0)}async function Jo(e,t){let n=Number(e.headers.get(`Content-Length`)??0);if(!e.body||!t||n<=0){let n=await e.arrayBuffer();return t?.(1),n}let r=e.body.getReader(),i=[],a=0;for(;;){let{done:e,value:o}=await r.read();if(e)break;i.push(o),a+=o.length,t(a/n)}let o=new Uint8Array(a),s=0;for(let e of i)o.set(e,s),s+=e.length;return t(1),o.buffer}function Yo(e){let t=S(e);if(!t)throw new Q(`local_assistant_not_found`,`Assistant ${e.assistantId} has no resolved local gateway.`);return`${window.location.origin}${t}`}async function Xo(e,t){let n=await ot(e.assistantId),r=await fetch(`${t}/auth/token`,{method:`POST`,headers:{Authorization:`Bearer ${n}`}});if(!r.ok)throw new Q(`not_signed_in`,`Gateway token request failed (HTTP ${r.status}).`);let{token:i}=await r.json();return i}async function Zo(e,t){let n=Yo(e),r=await Xo(e,n),i=await fetch(`${n}/v1/migrations/export`,{method:`POST`,headers:{Authorization:`Bearer ${r}`}});if(!i.ok)throw new Q(`export_failed`,`Export failed (HTTP ${i.status}).`);return Jo(i,t)}async function Qo(e,t){let n=Yo(e),r=await Xo(e,n),i=await fetch(`${n}/v1/migrations/import`,{method:`POST`,headers:{Authorization:`Bearer ${r}`},body:new Blob([t],{type:`application/octet-stream`})});if(!i.ok)throw new Q(`import_failed`,`Import failed (HTTP ${i.status}).`);let a=await ns(i);if(a&&a.success===!1)throw new Q(`import_failed`,a.error??`Import reported failure`)}async function $o(e){let t=Yo(e),n=await Xo(e,t),r=await fetch(`${t}/v1/backups/create`,{method:`POST`,headers:{Authorization:`Bearer ${n}`}});if(!r.ok)throw new Q(`backup_failed`,U(`settings:teleportCard.backupLocalFailed`,{status:r.status}));let i=await ns(r);if(i&&i.success===!1)throw new Q(`backup_failed`,U(`settings:teleportCard.backupLocalReportedFailure`))}async function es(e,t){let{data:n,response:r}=await k.post({url:`/v1/assistants/{assistant_id}/migrations/export-to-gcs/`,path:{assistant_id:e},body:{upload_url:t},throwOnError:!1}),i=r?.status??0;if(!(r?.ok??!1)&&i!==202)throw new Q(`export_failed`,`Export failed (HTTP ${i}).`);let a=n?.job_id;if(!a)throw new Q(`export_failed`,`Export accepted but no job ID was returned.`);return a}async function ts(e,t){let{data:n,response:r}=await k.get({url:`/v1/assistants/{assistant_id}/migrations/jobs/{job_id}`,path:{assistant_id:e,job_id:t},throwOnError:!1}),i=r?.status??0;if(i>=500)return`processing`;if(!(r?.ok??!1))throw new Q(`export_job_failed`,`Job status check failed (HTTP ${i})`);let a=n;if(a?.status===`failed`)throw new Q(`export_job_failed`,a.error??`Export job failed`);return a?.status??`processing`}async function ns(e){try{return await e.json()}catch{return null}}async function rs(e,t={}){let n=Ro(e.cloud);if(n===`managed`)return os(e.assistantId,t);if(n===`local`)return $o(e);throw new Q(`backup_failed`,U(`settings:teleportCard.backupUnsupported`))}async function is(e){let t=await _e({path:{assistant_id:e},throwOnError:!1});if(!(t.response?.ok??!1))throw new Q(`backup_failed`,U(`settings:teleportCard.backupListFailed`,{status:t.response?.status??0}));let n=t.data?.backups;return Array.isArray(n)?n:[]}var as=e=>new Promise(t=>setTimeout(t,e));async function os(e,t){if(Go(Ko(await is(e))))return;let n=await Wt({path:{assistant_id:e},throwOnError:!1});if(!(n.response?.ok??!1))throw new Q(`backup_failed`,U(`settings:teleportCard.backupCreateFailed`,{status:n.response?.status??0}));let r=n.data,i=r?.snapshot_name;if(!i)throw new Q(`backup_failed`,U(`settings:teleportCard.backupNoSnapshotName`));if(r?.ready_to_use===!0)return;let a=t.readyTimeoutMs??6e5,o=t.readyPollIntervalMs??5e3,s=Date.now()+a;for(;Date.now()<s;)if(await as(o),qo(await is(e),i))return;throw new Q(`backup_failed`,U(`settings:teleportCard.backupNotReady`,{snapshot:i,seconds:Math.round(a/1e3)}))}async function ss(e){if(e.kind===`managed`)return e.id;try{let t=await gt(e.id,{allowGatewayRepair:!1});return C(t)?t:null}catch(e){return e instanceof _?e.platformAssistantId:null}}var cs=new Set([500,502,503,504]),$=3,ls=e=>new Promise(t=>setTimeout(t,e));async function us(e,t=new Set){for(let n=0;n<=$;n++){let{response:r,data:i,error:a}=await e(),o=r?.status??0;if(n<$&&cs.has(o)&&!t.has(o)){await ls(2**n*1e3);continue}return{status:o,data:i,error:a}}throw new Q(`unknown`,`Unexpected retry loop exit`)}async function ds(e,t){let n={operation:`upload`};e&&(n.min_runtime_version=e,n.max_runtime_version=null),t&&(n.consumer=t);let{status:r,data:i}=await us(()=>k.post({url:`/v1/migrations/signed-url/`,body:n,throwOnError:!1}),new Set([404,503]));if(r===503||r===404)throw new Q(`export_failed`,`Signed URL uploads are not available — the platform may not support this feature yet.`);if(r!==201)throw new Q(`export_failed`,`Migration request failed (HTTP ${r}).`);let a=i;return{url:a.url,bundleKey:a.bundle_key,expiresAt:a.expires_at}}async function fs(e,t){let{status:n,data:r,error:i}=await us(()=>k.post({url:`/v1/migrations/signed-url/`,body:{operation:`download`,bundle_key:e,target_runtime_version:t},throwOnError:!1}),new Set([422]));if(n===422){let e=Uo(i);if(e)throw new Q(`version_mismatch`,e)}if(n!==200&&n!==201)throw new Q(`import_failed`,`Migration request failed (HTTP ${n}).`);return r.url}async function ps(e,t,n){for(let r=0;r<=$;r++){let i=await ms(e,t,n);if(r<$&&cs.has(i)){await ls(2**r*1e3),n?.(0);continue}if(i<200||i>=300)throw new Q(`export_failed`,`Bundle upload failed (HTTP ${i}).`);return}}function ms(e,t,n){return new Promise((r,i)=>{let a=new XMLHttpRequest;a.open(`PUT`,e),a.setRequestHeader(`Content-Type`,`application/octet-stream`),a.timeout=36e5,n&&(a.upload.onprogress=e=>{e.lengthComputable&&n(e.loaded/e.total)}),a.onload=()=>{n?.(1),r(a.status)},a.onerror=()=>i(new Q(`export_failed`,`Bundle upload failed.`)),a.ontimeout=()=>i(new Q(`export_timed_out`,`Bundle upload timed out.`)),a.send(t)})}async function hs(e,t){for(let n=0;n<=$;n++){let r=await fetch(e,{method:`GET`});if(n<$&&cs.has(r.status)){await ls(2**n*1e3),t?.(0);continue}if(!r.ok)throw new Q(`import_failed`,`Bundle download failed (HTTP ${r.status}).`);return Jo(r,t)}throw new Q(`import_failed`,`Unexpected retry loop exit`)}async function gs(e){let{status:t,data:n,error:r}=await us(()=>k.post({url:`/v1/migrations/import-from-gcs/`,body:{bundle_key:e},throwOnError:!1}));return{status:t,body:n??r??null}}async function _s(e){let{status:t,data:n}=await us(()=>k.get({url:`/v1/migrations/jobs/{job_id}/`,path:{job_id:e},throwOnError:!1}));if(t!==200)throw new Q(`import_failed`,`Job status check failed (HTTP ${t})`);let r=n??{};return{status:typeof r.status==`string`?r.status:`unknown`,jobId:typeof r.job_id==`string`?r.job_id:null,error:typeof r.error==`string`?r.error:null}}var vs=5e3,ys=36e5,bs=5*6e4,xs=30,Ss=e=>new Promise(t=>setTimeout(t,e));function Cs(){let e=cn(),t=K(),r=n(),i=zo(r?.cloud),[a,o]=(0,Y.useState)({kind:`idle`}),[s,c]=(0,Y.useState)(!1),l=(0,Y.useRef)(null),u=(0,Y.useRef)(null),d=(0,Y.useCallback)(e=>{o({kind:`transferring`,step:e,progress:null})},[]),f=(0,Y.useCallback)(e=>{o(t=>t.kind===`transferring`?{...t,progress:e}:t)},[]),p=(0,Y.useCallback)(async()=>{if(!(!r||!i)){u.current={id:r.assistantId,kind:Ro(r.cloud)===`managed`?`managed`:`local`,createdFresh:!1};try{if(d(U(`settings:teleportCard.backupStep`)),await rs(r),i===`platform`)await ws(r,d,f,l);else if(i===`local`)await Ts(r,d,f,l);else throw new Q(`unknown`,U(`settings:teleportCard.unsupportedDestination`));o({kind:`verifying`})}catch(e){o({kind:`failed`,error:U(`settings:teleportCard.teleportFailed`,{message:e instanceof Q||e instanceof Error?e.message:U(`settings:teleportCard.teleportFailedUnknown`)})}),R(e,{context:`teleport-execute`}),await Ds(t,l.current,u.current,`teleport-execute-cleanup`),l.current=null}}},[r,i,d,f,t]),m=(0,Y.useCallback)(()=>c(!0),[]),h=(0,Y.useCallback)(()=>c(!1),[]),g=(0,Y.useCallback)(()=>{c(!1),p()},[p]),_=(0,Y.useCallback)(()=>{l.current=null,u.current=null,o({kind:`idle`})},[]);return{destination:i,phase:a,confirmOpen:s,requestTeleport:m,cancelConfirm:h,confirm:g,confirmAndSwitch:(0,Y.useCallback)(()=>{let n=l.current,r=u.current;n&&(d(U(`settings:teleportCard.switchingStep`)),(async()=>{let i=null;try{let e=D.getState();n.kind===`managed`?await e.connectPlatformAssistant(n.id):await e.connectLocalAssistant(n.id),i=await ss(n),n.kind===`local`&&(i===null&&R(Error(`teleport successor could not be resolved`),{context:`teleport-successor-unresolved`}),Mt(n.id,{onError:e=>R(e,{context:`teleport-inject-platform-identity`})}))}catch(e){o({kind:`failed`,error:U(`settings:teleportCard.switchFailed`,{message:e instanceof Error?e.message:U(`settings:teleportCard.switchFailedUnknown`)})}),R(e,{context:`teleport-confirm-switch`});return}r&&nt(t,r.id,{successorAssistantId:i??void 0}).then(e=>{e.ok||R(Error(e.error),{context:`teleport-retire-source`})}),_(),e(L.assistant,{replace:!0})})())},[e,_,t,d]),cancelTeleport:(0,Y.useCallback)(()=>{let e=l.current,n=u.current;l.current=null,u.current=null,o({kind:`idle`}),Ds(t,e,n,`teleport-cancel-retire-target`)},[t]),reset:_}}async function ws(e,t,n,r){t(U(`settings:teleportCard.stepExportingLocal`));let i=await Zo(e,n);t(U(`settings:teleportCard.stepResolvingOrganization`));let a=await ks();t(U(`settings:teleportCard.stepCheckingExisting`));let o=(await rt({query:{hosting:`platform`},throwOnError:!1})).data?.results?.[0];if(o)throw new Q(`existing_platform_assistant`,U(`settings:teleportCard.existingPlatformAssistant`,{id:o.id}));t(U(`settings:teleportCard.stepUploading`));let s=await ds(e.resources?.runtimeVersion);await ps(s.url,i,n),t(U(`settings:teleportCard.stepSettingUpCloud`));let c=await Qe(void 0,`create`);if(!c.ok)throw new Q(`import_failed`,U(`settings:teleportCard.cloudSetupFailed`));if(c.status===200)throw new Q(`existing_platform_assistant`,U(`settings:teleportCard.existingPlatformAssistant`,{id:c.data.id}));let l=c.data.id;await be({assistantId:l,name:c.data.name,cloud:`vellum`,runtimeUrl:u(),hatchedAt:c.data.created??new Date().toISOString(),organizationId:a}),await Ut(e.assistantId),r.current={id:l,kind:`managed`,createdFresh:!0},t(U(`settings:teleportCard.stepFinalizingCloud`)),await As(l),t(U(`settings:teleportCard.stepImportingToCloud`));let d=await gs(s.bundleKey);if(d.status<200||d.status>=300){let e=d.body;throw new Q(`import_failed`,e?.error??U(`settings:teleportCard.importFailedHttp`,{status:d.status}))}if(d.status===202){let e=d.body?.job_id;if(!e)throw new Q(`import_failed`,U(`settings:teleportCard.importNoJobId`));await js(e)}else{let e=d.body;if(e&&e.success===!1)throw new Q(`import_failed`,e.error??U(`settings:teleportCard.importReportedFailure`))}}async function Ts(e,t,n,r){t(U(`settings:teleportCard.stepPreparingExport`));let i=await ds(await Os(e.assistantId),`runtime`);t(U(`settings:teleportCard.stepExportingCloud`));let a=await es(e.assistantId,i.url);await Ms(e.assistantId,a),t(U(`settings:teleportCard.stepPreparingLocal`));let{assistant:o,createdFresh:s}=await Ns();r.current={id:o.assistantId,kind:`local`,createdFresh:s};let c=await Es(o,s);if(!c)throw new Q(`local_assistant_not_found`,U(`settings:teleportCard.localRuntimeVersionUnknown`));t(U(`settings:teleportCard.stepPreparingImport`));let l=await fs(i.bundleKey,c);t(U(`settings:teleportCard.stepDownloading`));let u=await hs(l,n);t(U(`settings:teleportCard.stepImporting`)),await Fs(o,u),await Ut(e.assistantId)}async function Es(e,t){if(e.resources?.runtimeVersion)return e.resources.runtimeVersion;if(t)return(await Mn())?.version??void 0}async function Ds(e,t,n,r){if(t?.createdFresh){let n=await nt(e,t.id);n.ok||R(Error(n.error),{context:r})}n&&await Ut(n.id)}async function Os(e){let t=await lt(e);return t.ok?t.data.version??void 0:void 0}async function ks(){let e=Me.getState();e.organizations.length===0&&await e.fetchOrganizations();let t=Me.getState().organizations,n=je();if(n&&t.some(e=>e.id===n))return n;if(t.length===0)throw new Q(`no_organizations`,U(`settings:teleportCard.noOrganizations`));if(t.length>1)throw new Q(`multiple_organizations`,U(`settings:teleportCard.multipleOrganizations`));let r=t[0].id;return Me.getState().setCurrentOrganizationId(r),r}async function As(e){let t=Date.now();for(;Date.now()-t<bs;){let{data:t,response:n}=await I({path:{id:e},throwOnError:!1});if(n?.ok&&t?.state===`active`)return;await Ss(vs)}}async function js(e){let t=Date.now();for(;Date.now()-t<ys;){await Ss(vs);let t=await _s(e);if(t.status===`complete`)return;if(t.status===`failed`)throw new Q(`import_failed`,t.error??U(`settings:teleportCard.importJobFailed`))}throw new Q(`import_failed`,U(`settings:teleportCard.importTimedOut`))}async function Ms(e,t){let n=Date.now();for(;Date.now()-n<ys;)if(await Ss(vs),await ts(e,t)===`complete`)return;throw new Q(`export_timed_out`,U(`settings:teleportCard.exportTimedOut`))}async function Ns(){let e=await s(void 0,void 0);if(!e.ok)throw new Q(`local_assistant_not_found`,e.error??U(`settings:teleportCard.localCreateFailed`));await It();let t=e.assistantId?Oe().find(t=>t.assistantId===e.assistantId):Ps();if(!t)throw new Q(`local_assistant_not_found`,U(`settings:teleportCard.localNotFound`));return{assistant:t,createdFresh:!0}}function Ps(){return Oe().slice().sort((e,t)=>(t.hatchedAt??``).localeCompare(e.hatchedAt??``))[0]}async function Fs(e,t){let n;for(let r=0;r<xs;r++)try{await Qo(e,t);return}catch(e){n=e,await Ss(1e3)}throw n instanceof Error?n:new Q(`import_failed`,U(`settings:teleportCard.importFailed`))}function Is(){let{t:e}=G(`settings`),t=Cs(),{destination:n,phase:r}=t,i=ie();return!n||i===`gated`?null:(0,X.jsxs)(J,{title:e(`teleportCard.title`),subtitle:e(`teleportCard.subtitle`),children:[r.kind===`idle`&&i===`disabled`&&(0,X.jsx)(H,{children:e(`teleportCard.loginNotice`)}),r.kind===`idle`&&i===`full`&&(0,X.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,X.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:e(Ho(n,Ft()))}),(0,X.jsx)(h,{variant:`outlined`,className:`self-start`,onClick:t.requestTeleport,children:e(Bo(n))})]}),r.kind===`transferring`&&(0,X.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[r.progress==null&&(0,X.jsx)(q,{className:`h-4 w-4 animate-spin text-[var(--content-tertiary)]`}),(0,X.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:r.step})]}),r.progress!=null&&(0,X.jsx)(Ke,{value:r.progress,"aria-label":e(`teleportCard.progressAriaLabel`),className:`max-w-[240px]`})]}),r.kind===`verifying`&&(0,X.jsx)(B,{tone:`success`,icon:(0,X.jsx)(An,{className:`h-4 w-4`}),title:e(`teleportCard.verifyTitle`),actions:(0,X.jsxs)(`div`,{className:`flex gap-2`,children:[(0,X.jsx)(h,{variant:`primary`,onClick:t.confirmAndSwitch,children:e(`teleportCard.confirmAndSwitch`)}),(0,X.jsx)(h,{variant:`outlined`,onClick:t.cancelTeleport,children:e(`teleportCard.cancel`)})]})}),r.kind===`failed`&&(0,X.jsx)(B,{tone:`error`,title:r.error,actions:(0,X.jsx)(h,{variant:`outlined`,onClick:t.reset,children:e(`teleportCard.tryAgain`)})}),(0,X.jsx)(M,{open:t.confirmOpen,title:e(Bo(n)),message:e(`teleportCard.confirmMessage`),confirmLabel:e(`teleportCard.confirmLabel`),onConfirm:t.confirm,onCancel:t.cancelConfirm})]})}function Ls(){let{t:e}=G(`settings`),{assistant:t,healthz:r,healthzLoading:i,healthzFetching:a,healthzPolling:o,refetch:s,refetchUntilResized:c}=Bn(),l=z.use.multiPlatformAssistant(),u=z.use.accountMfa(),d=Pe.use.settingsSleepPolicy(),f=en(),p=Fe(),g=wt()||f||Ue()||p,_=cn(),v=ie(),y=ie({platformHostedOnly:!0}),b=tt(),x=m({assistantId:t?.id??null,enabled:y===`full`&&b}),[S,C]=(0,Y.useState)(!1),[w,T]=(0,Y.useState)(!1),[E,D]=sn();(0,Y.useEffect)(()=>{if(E.get(`preferences`)!==`open`)return;let e=new URLSearchParams(E);e.delete(`preferences`),D(e,{replace:!0}),T(!0)},[E,D]);let O=t?.is_local&&!wt()?null:t,k=n(),A=wt()&&!!t&&!!k&&vt(k),j=A,M=A&&!Ue(),N=y===`full`&&!!O||M&&!!t;(0,Y.useEffect)(()=>{!t||window.location.hash!==`#storage-resources`||requestAnimationFrame(()=>{document.getElementById(`storage-resources`)?.scrollIntoView({block:`start`})})},[t]);let P=r?.version??t?.current_release_version??null,ee=()=>{let e=fe();if(Ue()&&!p&&e){let t=new URLSearchParams({register:Et()}),n=Ae();n&&t.set(`name`,n);let r=new URL(e).origin;window.location.assign(`${r}${L.selectAssistant}?${t.toString()}`);return}_(`${L.selectAssistant}?noAutoSkip=1`)},F=(v===`full`||j)&&!!O||v===`disabled`&&!j,I=y!==`gated`;return(0,X.jsxs)(`div`,{className:`space-y-4`,children:[x.status&&x.mode!==`inactive`&&(0,X.jsx)(Ze,{status:x.status,mode:x.mode,isAcknowledging:x.isAcknowledging,acknowledgeError:x.acknowledgeError?.message??null,onAcknowledge:()=>void x.acknowledge(),onReviewWorkspaceData:()=>void _(`${L.workspace}?sort=size`),onUpgradeStorage:y===`full`?()=>void _(L.plans):null}),(0,X.jsxs)(jn,{assistant:b?O:null,showHandles:f&&v===`full`,children:[(0,X.jsx)(Co,{}),u&&v!==`gated`&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`div`,{className:`border-t border-[var(--border-subtle)]`}),(0,X.jsxs)(`section`,{className:`flex flex-col gap-2`,children:[(0,X.jsx)(`h3`,{className:`text-title-small text-[var(--content-emphasised)]`,children:e(`generalPage.twoFactorTitle`)}),(0,X.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:e(`generalPage.twoFactorDescription`)}),(0,X.jsx)(`div`,{className:`mt-1`,children:v===`disabled`?(0,X.jsx)(H,{children:e(`generalPage.twoFactorLoginNotice`)}):(0,X.jsx)(Po,{})})]})]})]}),(0,X.jsx)(J,{title:e(`generalPage.versionTitle`),subtitle:e(`generalPage.versionSubtitle`),accessory:y===`full`&&O?(0,X.jsx)(h,{variant:`outlined`,onClick:()=>C(!0),children:e(`generalPage.updateWindow`)}):void 0,children:(0,X.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[y===`full`&&O&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)($r,{assistantId:O.id,currentVersion:P,releaseChannel:O.release_channel,onUpgradeComplete:()=>{s()}}),(0,X.jsx)(eo,{assistantId:O.id,onComplete:()=>{s()}})]}),M&&t&&(0,X.jsx)(ei,{assistantId:t.id,currentVersion:P,onUpgradeComplete:()=>{s()}}),!N&&t&&(0,X.jsxs)(`div`,{className:`grid grid-cols-[140px_minmax(0,1fr)] gap-y-3`,children:[(0,X.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:e(`generalPage.current`)}),(0,X.jsx)(Vn,{version:P,loading:i&&!t.current_release_version,assistantId:t.id??null})]}),y===`disabled`&&!M&&(0,X.jsx)(H,{children:e(`generalPage.updatesLoginNotice`)}),(0,X.jsx)(oo,{})]})}),y===`full`&&O&&(0,X.jsx)(Ao,{assistantId:O.id,open:S,onClose:()=>C(!1)}),y===`full`&&t&&(0,X.jsx)(lo,{assistant:t,healthz:r,healthzLoading:i,healthzFetching:a,healthzPolling:o,refetch:s,refetchUntilResized:c}),y===`disabled`&&(0,X.jsx)(J,{id:`storage-resources`,title:e(`generalPage.computeResourcesTitle`),subtitle:e(`generalPage.computeResourcesSubtitle`),children:(0,X.jsx)(H,{children:e(`generalPage.computeResourcesLoginNotice`)})}),(0,X.jsx)(J,{title:e(`generalPage.preferencesTitle`),subtitle:e(`generalPage.preferencesSubtitle`),accessory:(0,X.jsx)(h,{variant:`outlined`,onClick:()=>T(!0),children:e(`generalPage.customize`)}),children:(0,X.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,X.jsx)(Zn,{}),(0,X.jsx)(Vr,{})]})}),(0,X.jsx)(Ya,{open:w,onClose:()=>T(!1)}),(0,X.jsx)(ii,{}),(0,X.jsx)(Va,{}),y===`full`&&O&&d&&(0,X.jsx)(J,{title:e(`generalPage.sleepPolicyTitle`),subtitle:e(`generalPage.sleepPolicySubtitle`),children:(0,X.jsx)(Yr,{assistantId:O.id})}),y===`disabled`&&d&&(0,X.jsx)(J,{title:e(`generalPage.sleepPolicyTitle`),subtitle:e(`generalPage.sleepPolicySubtitle`),children:(0,X.jsx)(H,{children:e(`generalPage.sleepPolicyLoginNotice`)})}),l&&!g&&(0,X.jsx)(Wr,{}),g&&(0,X.jsx)(J,{title:e(`generalPage.switchAssistantTitle`),subtitle:e(`generalPage.switchAssistantSubtitle`),accessory:(0,X.jsx)(h,{variant:`outlined`,onClick:ee,children:e(`generalPage.chooseAssistant`)})}),kt()&&(0,X.jsx)(Is,{}),(F||I)&&(0,X.jsx)(J,{variant:`danger`,title:e(`generalPage.dangerZoneTitle`),children:(0,X.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[F&&(0,X.jsxs)(`section`,{className:`flex flex-col gap-2`,children:[(0,X.jsx)(`h3`,{className:`text-title-small text-[var(--content-emphasised)]`,children:e(`generalPage.retireAssistantTitle`)}),(0,X.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:e(`generalPage.retireAssistantDescription`)}),(0,X.jsx)(`div`,{className:`mt-1`,children:(v===`full`||j)&&O?(0,X.jsx)(uo,{assistantId:O.id}):(0,X.jsx)(H,{children:e(`generalPage.retireAssistantLoginNotice`)})})]}),F&&I&&(0,X.jsx)(`div`,{className:`border-t border-[var(--border-subtle)]`}),(0,X.jsx)(ti,{})]})})]})}export{Ls as GeneralPage};
@@ -1 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{$g as t,Ax as n,Bd as r,Cx as i,EC as a,Gx as ee,Hd as o,Ib as s,Im as te,Jg as c,Jy as ne,Qd as re,Vx as ie,Wd as ae,Wy as l,Xg as u,_a as d,c_ as oe,d_ as se,eS as f,fC as p,gS as ce,gx as le,h_ as ue,jh as m,lS as h,l_ as de,m_ as fe,p_ as g,px as pe,rx as _,tS as v,t_ as y,u_ as b,ux as me,vg as x,vi as S,zd as C}from"./app-D8sMVA0h.js";import{j as he,pr as w,tr as T}from"./vendor-DEhKVoiV.js";import{_ as E,f as ge,t as D,x as O}from"./react-B9IgSVeK.js";import{c as _e,n as ve,t as ye}from"./provider-key-Dn1NaLjs.js";import{a as be,i as k,n as xe,o as Se,r as Ce,s as we,t as Te}from"./avatar-random-DenoKEgP.js";import{t as Ee}from"./plugin-attribution-LzmgCiDL.js";var A=e(O(),1),j=D(),De=800,M=null,N,P=null,F=null;function I(){M=null,N=void 0,P=null,F=null}var Oe={initializing:0,provisioning:.33,connecting:.66,resizing:.85,ready:1},L=1500,ke={initializing:`hatchingScreen.phase.initializing`,provisioning:`hatchingScreen.phase.provisioning`,connecting:`hatchingScreen.phase.connecting`,resizing:`hatchingScreen.phase.resizing`,ready:`hatchingScreen.phase.ready`};function Ae(e,t,n){if(e>=t)return t;let r=1-(1-Math.min(1,n/L))**3;return e+(t-e)*r}function je(){let e=o(C(),{kind:`hatch-gate`});return e.action===`redirect`?{kind:`redirect`,to:e.to}:e.action===`wait`?{kind:`wait`}:{kind:`proceed`}}function R(){let{t:e}=he(`onboarding`),o=x(),C=ge(),D=T(),[O]=E(),L=O.get(`hosting`),R=O.get(`fail`),z=O.get(Ee),B=v(),V=_()&&L!==null&&L!==`vellum-cloud`,H=L===`vellum-cloud`,Me=O.get(r)===`1`,Ne=te.use.sessionStatus(),Pe=V?y(Ne):Ne,[U]=(0,A.useState)(()=>F??=Te(d)),Fe=(0,A.useMemo)(()=>{let e=m(d,U.bodyShape,U.eyeStyle,U.color,320);return e?`data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}`:``},[U]),[W,G]=(0,A.useState)(`initializing`),[Ie,K]=(0,A.useState)(null),[Le,q]=(0,A.useState)(!1),[Re,ze]=(0,A.useState)(!1),[Be,Ve]=(0,A.useState)(0),[He,J]=(0,A.useState)(0),[Ue,We]=(0,A.useState)(0),Y=(0,A.useRef)(W),X=(0,A.useRef)(0),Z=(0,A.useRef)(0),Q=(0,A.useRef)(0),$=(0,A.useCallback)(e=>{X.current=Q.current,Z.current=Date.now(),Y.current=e,G(e),We(e=>e+1)},[]);return(0,A.useEffect)(()=>{if(R!==null){K(`Simulated hatch failure (developer menu → Replay Hatch Failure).`);return}let e=je();if(e.kind===`redirect`){C(e.to,{replace:!0});return}if(e.kind===`wait`)return;H&&_()&&(ie(),ee(null)),q(!1),ze(!1);let r=!1,a=null,o=null,l=null,d=Date.now(),p,m=!1,v=!1,y=ae(),x=e=>{try{re(``)}catch(e){h(e,{context:`onboarding_mark_completed`})}J(1),Q.current=1,X.current=1,G(`ready`),Y.current=`ready`,o=setTimeout(()=>{r||(I(),(async()=>{if(await t.checkAssistant(),!r){if(ne(O)){Se(e),C(`${f.assistant}?onboarding=1`,{replace:!0});return}if(V){let t=new URLSearchParams;L&&t.set(`hosting`,L),e&&t.set(`assistant`,e),z&&t.set(Ee,z);let n=t.toString();C(`${f.onboarding.research}${n?`?${n}`:``}`,{replace:!0});return}C(f.onboarding.research,{replace:!0})}})())},De)},S=e=>we(e,U,D),he=async()=>{if($(`provisioning`),!V){try{let e=await g(),t=b(e);if(!r&&e.ok&&t.kind===`active`){_()&&i(e.data.id,e.data.name,u()??void 0),await E(e.data.id);return}t.kind===`auto_hatch`&&(v=!0)}catch{}if(r)return}if(V){try{let e=L===`docker`?`docker`:void 0;M&&N!==e&&I(),M||=(N=e,n(void 0,e));let t=await M;if(r)return;if(!t.ok){I(),K(t.error??`Failed to hatch local assistant.`);return}await me(),t.assistantId&&c(t.assistantId),$(`connecting`);let i=!1;for(;!r&&!i;){if(await le()){ie(),await pe(),i=!0;break}if(Date.now()-d>=3e5){I(),K(`Your assistant is taking longer than expected. Please try again.`);return}await new Promise(e=>{l=setTimeout(e,k)}),l=null}if(r)return;if(t.assistantId)try{await ve(t.assistantId)}catch(e){if(e instanceof ye){if(!r){let t=_e(e.provider)?.displayName??e.provider;ze(!0);let n=`Update your ${t} API key to continue.`;K(e.reason?`${e.reason} ${n}`:n)}return}h(e,{context:`onboarding_apply_provider_key`})}t.assistantId&&await te.getState().connectLocalAssistant(t.assistantId),t.assistantId&&(s.getState().upsertFromApi({id:t.assistantId,name:t.assistantId,status:`active`,is_local:!0,created:new Date().toISOString()}),c(t.assistantId),S(t.assistantId)),x(t.assistantId)}catch{if(I(),r)return;K(`Failed to hatch local assistant. Check CLI logs for details.`)}return}try{P||=ue(y?{version:y}:void 0);let e=await P;if(P=null,r)return;if(e.ok&&(p=e.data.id),m=e.ok&&e.status===201,!e.ok){if(w(`Onboarding hatch request failed`,{level:`warning`,extra:{status:e.status,error:e.error}}),de(e.status,e.error)){K(oe),q(!0);return}if(!se(e.status)){K(ce(e.error,void 0,`Failed to start your assistant. Please try again.`));return}}}catch(e){if(P=null,h(e,{context:`onboarding_hatch_assistant`}),r)return}T(0)},T=e=>{r||(a=setTimeout(ge,e))},E=async e=>{for($(`connecting`);!r;){try{if((await fe(e)).ok)break}catch{}if(Date.now()-d>=3e5){K(`Your assistant is taking longer than expected. Please try again.`);return}await new Promise(e=>{a=setTimeout(e,k)}),a=null}if(r)return;let t=await be({assistantId:e,postCheckoutReturn:Me,managedHatch:H,hatchStartMs:d,isCancelled:()=>r,onResizeWait:()=>$(`resizing`),registerTimer:e=>{a=e}});if(!r){if(t===`health_timeout`){w(`Onboarding hatch wait exceeded timeout`,{level:`warning`,extra:{maxWaitMs:Ce,stage:`post_resize_health`}}),K(`Your assistant is taking longer than expected. Please try again.`);return}x(e)}},ge=async()=>{if(!r){if(Date.now()-d>=3e5){w(`Onboarding hatch wait exceeded timeout`,{level:`warning`,extra:{maxWaitMs:Ce}}),K(`Your assistant is taking longer than expected. Please try again.`);return}try{let e=await g(p);if(r||p&&!e.ok&&e.status===404&&(p=void 0,e=await g(),r))return;let t=b(e);if(t.kind===`active`){if(e.ok){let t=e.data.id;s.getState().upsertFromApi(e.data),c(t),(m||v)&&S(t),_()&&i(t,e.data.name,u()??void 0),await E(t);return}x();return}if(t.kind===`error`){K(t.message);return}t.kind!==`auto_hatch`&&Y.current===`provisioning`&&$(`connecting`),T(k)}catch(e){if(h(e,{context:`onboarding_poll_assistant`}),r)return;T(k)}}};return he(),()=>{r=!0,a&&clearTimeout(a),o&&clearTimeout(o),l&&clearTimeout(l)}},[Be,R,U,H,Me,Pe,C,D,$,V]),(0,A.useEffect)(()=>{Z.current===0&&(Z.current=Date.now());let e,t=()=>{let n=Date.now()-Z.current,r=Oe[Y.current],i=Ae(X.current,r,n);Q.current=i,J(i),r-i>1e-6&&(e=requestAnimationFrame(t))};return e=requestAnimationFrame(t),()=>cancelAnimationFrame(e)},[Ue]),Ie?(0,j.jsx)(S,{avatarWave:`beside`,children:(0,j.jsxs)(`div`,{role:`alert`,className:`mx-auto flex w-full max-w-xl flex-col items-center ${B?`min-h-full px-8 pt-21 pb-28 electron-prechat-type`:`min-h-screen justify-center px-6 pb-40 md:min-h-full md:pb-6`} text-center text-[var(--content-default)]`,children:[(0,j.jsx)(`h1`,{className:B?`text-title-large`:`text-3xl font-semibold tracking-tight`,children:e(Re?`hatchingScreen.apiKeyFailed`:`hatchingScreen.genericFailure`)}),(0,j.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${B?`mt-3.5`:`mt-4`}`,children:Ie}),Le&&(0,j.jsxs)(`div`,{className:`mt-6 flex w-full max-w-sm flex-col items-center gap-3`,children:[(0,j.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e(`hatchingScreen.localFallbackPitch`)}),(0,j.jsx)(a,{asChild:!0,variant:`primary`,size:B?`regular`:`large`,fullWidth:!0,children:(0,j.jsx)(`a`,{href:`${window.location.origin}/download`,children:e(xe(o))})})]}),(0,j.jsx)(`img`,{src:Fe,alt:``,width:160,height:160,className:`${B?`my-auto py-8`:`my-16`} onboarding-avatar-failed`}),(0,j.jsxs)(`div`,{className:`flex w-full flex-col ${B?`gap-2.5 max-w-[280px]`:`gap-2 max-w-sm`}`,children:[Re?(0,j.jsx)(a,{variant:`primary`,size:B?`regular`:`large`,fullWidth:!0,onClick:()=>void C(L?`${f.onboarding.apiKey}?hosting=${L}`:f.onboarding.apiKey,{replace:!0}),children:e(`hatchingScreen.updateApiKey`)}):(0,j.jsx)(a,{variant:`primary`,size:B?`regular`:`large`,fullWidth:!0,onClick:()=>{X.current=0,Z.current=Date.now(),Y.current=`initializing`,Q.current=0,G(`initializing`),J(0),We(e=>e+1),K(null),q(!1),Ve(e=>e+1)},children:e(`actions.tryAgain`)}),(0,j.jsx)(a,{variant:`outlined`,size:B?`regular`:`large`,fullWidth:!0,onClick:()=>void C(V?f.onboarding.hosting:`${f.onboarding.privacy}?${l}=1`,{replace:!0}),children:e(`actions.back`)})]})]})}):(0,j.jsx)(S,{avatarWave:`beside`,children:(0,j.jsxs)(`div`,{className:`mx-auto flex w-full max-w-xl flex-col items-center ${B?`min-h-full px-8 pt-21 pb-28 electron-prechat-type`:`min-h-screen justify-center px-6 pb-40 md:min-h-full md:pb-6`} text-center text-[var(--content-default)]`,children:[(0,j.jsx)(`h1`,{className:B?`text-title-large`:`text-3xl font-semibold tracking-tight`,children:e(W===`ready`?`hatchingScreen.ready`:`hatchingScreen.waking`)}),W!==`ready`&&(0,j.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)] ${B?`mt-3.5`:`mt-4`}`,children:e(`hatchingScreen.wakingBody`)}),(0,j.jsx)(`img`,{src:Fe,alt:``,width:160,height:160,className:`${B?`my-auto py-8`:`my-16`} ${W===`ready`?`onboarding-avatar-awake`:`onboarding-avatar-pulse`}`}),(0,j.jsx)(p,{value:He,height:6,className:`w-full ${B?`max-w-[200px]`:`max-w-sm`}`,"aria-label":e(`hatchingScreen.progressAriaLabel`)}),(0,j.jsx)(`p`,{className:`text-[var(--content-tertiary)] ${B?`mt-4 text-label-small-default`:`mt-3 text-body-small-default`}`,children:e(ke[W])})]})})}export{R as HatchingScreen};