@vellumai/web 0.11.6 → 0.11.7-staging.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (735) hide show
  1. package/dist/assets/{a2a-invite-Dcxf1Lse.js → a2a-invite-CalxmT9U.js} +1 -1
  2. package/dist/assets/about-page-oelEgoKN.js +1 -0
  3. package/dist/assets/account-page-DoWCrccl.js +1 -0
  4. package/dist/assets/account-shell-D6h6YPdW.js +1 -0
  5. package/dist/assets/acp-run-detail-panel-BqBDl6QB.js +5 -0
  6. package/dist/assets/activity-steps-panel-C5Nlm1Ax.js +1 -0
  7. package/dist/assets/add-credits-modal-Clc-YWYG.js +1 -0
  8. package/dist/assets/ai-page-DtRit5K4.js +1 -0
  9. package/dist/assets/android-billing-handoff-D6KkZQcR.js +1 -0
  10. package/dist/assets/api-key-screen-BWXzfFaa.js +1 -0
  11. package/dist/assets/app-info-BzVdvgJM.js +1 -0
  12. package/dist/assets/archive-redirect-page-DD3q7S_q.js +1 -0
  13. package/dist/assets/assistant-status-panel-i2Q5Ng1C.js +1 -0
  14. package/dist/assets/auth-welcome-screen-ghh-qFOz.js +1 -0
  15. package/dist/assets/avatar-random-BEjqLOzH.js +1 -0
  16. package/dist/assets/background-task-detail-panel-igcj1myW.js +1 -0
  17. package/dist/assets/billing-page-BtVWtaxz.js +3 -0
  18. package/dist/assets/billing-redirect-page-DaIhDbvM.js +1 -0
  19. package/dist/assets/bookmarks-page-CvCqY1u_.js +1 -0
  20. package/dist/assets/{build.umd-DjyW4NzX.js → build.umd-CJjt7Lfj.js} +1 -1
  21. package/dist/assets/bundle-confirm-page-DuW3Ltpg.js +1 -0
  22. package/dist/assets/channel-transcript-panel-C5dxI2kC.js +1 -0
  23. package/dist/assets/channels-Dv8-4WT6.js +9 -0
  24. package/dist/assets/channels-NP4ODNxS.js +9 -0
  25. package/dist/assets/channels-page-route-CaZZgVvj.js +1 -0
  26. package/dist/assets/chat-CuSRAhBb.js +3 -0
  27. package/dist/assets/{chat-4LXYoAUR.js → chat-Dw-Xoh_r.js} +2 -2
  28. package/dist/assets/checkout-continuation-gyr3KRhJ.js +1 -0
  29. package/dist/assets/checkout-page-CpaWMY_L.js +1 -0
  30. package/dist/assets/checkout-return-target-uGUiSRvm.js +1 -0
  31. package/dist/assets/command-palette-Dqv1yvzc.js +1 -0
  32. package/dist/assets/command-palette-window-page-C4vKhArq.js +1 -0
  33. package/dist/assets/common-BZmEPLQq.js +1 -0
  34. package/dist/assets/common-wNADLj0r.js +1 -0
  35. package/dist/assets/community-page-xiwPgo2f.js +1 -0
  36. package/dist/assets/companion-layout-BgFk39Te.js +1 -0
  37. package/dist/assets/companion-surface-page-BE_GKIQH.js +1 -0
  38. package/dist/assets/connect-page-1WOW2Uyb.js +1 -0
  39. package/dist/assets/consent-controls-RsRyTWzn.js +1 -0
  40. package/dist/assets/contacts-DY80_acF.js +1 -0
  41. package/dist/assets/contacts-O_w2EdRt.js +1 -0
  42. package/dist/assets/contacts-gateway-aq64PPDs.js +1 -0
  43. package/dist/assets/contacts-page-route-fh_BygpY.js +1 -0
  44. package/dist/assets/credential-entry-page-CHyGUHNE.js +1 -0
  45. package/dist/assets/credentials-page-u4m5eB0e.js +1 -0
  46. package/dist/assets/{csv-preview-rpZix2b7.js → csv-preview-D1DFyAyk.js} +2 -2
  47. package/dist/assets/danger-zone-redirect-page-pm7xtA64.js +1 -0
  48. package/dist/assets/debug-page-BiRFASyO.js +4 -0
  49. package/dist/assets/deploy-dialogs-BQGFr3pp.js +1 -0
  50. package/dist/assets/detail-card-BTciodin.js +1 -0
  51. package/dist/assets/detail-drawer-svbxV7k9.js +1 -0
  52. package/dist/assets/detail-panel-stop-button-DvPi_A52.js +1 -0
  53. package/dist/assets/developer-page-YJ4ePRAY.js +1 -0
  54. package/dist/assets/devices-redirect-page-Bc3d-ANN.js +1 -0
  55. package/dist/assets/dictation-overlay-page-CV5-bWnC.js +1 -0
  56. package/dist/assets/diff-rows-DzBJ95DT.js +1 -0
  57. package/dist/assets/document-viewer-page-B9aeVcPf.js +1 -0
  58. package/dist/assets/ellipsis-vertical-npNyglhR.js +1 -0
  59. package/dist/assets/emails-page-DuxmJeBh.js +1 -0
  60. package/dist/assets/environment-store-Cb7OK6xz.js +1 -0
  61. package/dist/assets/esm-BFMxsKfC.js +2 -0
  62. package/dist/assets/esm-BWaPHKOl.js +2 -0
  63. package/dist/assets/esm-B_9x3_5A.js +2 -0
  64. package/dist/assets/esm-BmkPJcrm.js +1 -0
  65. package/dist/assets/esm-C8_GJq6u.js +1 -0
  66. package/dist/assets/esm-CvsVyyLL.js +2 -0
  67. package/dist/assets/esm-D8F0P9NS.js +1 -0
  68. package/dist/assets/esm-DLD7mc5e.js +2 -0
  69. package/dist/assets/esm-lFkAo6qR.js +2 -0
  70. package/dist/assets/file-editor-qyflOek_.js +1 -0
  71. package/dist/assets/folder-open-8sWiN1cw.js +1 -0
  72. package/dist/assets/format-countdown-Cge3iaM1.js +1 -0
  73. package/dist/assets/general-page-CplJ3sOI.js +1 -0
  74. package/dist/assets/hatching-screen-tqPPQDHG.js +1 -0
  75. package/dist/assets/home-page-route-CMsbxqsW.js +1 -0
  76. package/dist/assets/hosting-screen-7idZudJ8.js +1 -0
  77. package/dist/assets/icons-CSdHOix6.js +1 -0
  78. package/dist/assets/identity-page-route-C4EAb-ac.js +7 -0
  79. package/dist/assets/index-2ECSWhtU.css +2 -0
  80. package/dist/assets/index-7XDiAJ-A.js +357 -0
  81. package/dist/assets/inspect-page-DsXykArJ.js +9 -0
  82. package/dist/assets/integrations-page-CmMVSsvu.js +1 -0
  83. package/dist/assets/{intelligence-DNb2No5j.js → intelligence-DwVUW6jm.js} +1 -1
  84. package/dist/assets/{intelligence-cL2kPl3v.js → intelligence-JlruxYAh.js} +1 -1
  85. package/dist/assets/intelligence-layout-DKknlxHu.js +1 -0
  86. package/dist/assets/keyboard-shortcuts-redirect-page-CFu5x117.js +1 -0
  87. package/dist/assets/{latest-assistant-text-DCyUvxgH.js → latest-assistant-text-CVRVSoFg.js} +2 -2
  88. package/dist/assets/library-detail-page-CKFkI0QY.js +1 -0
  89. package/dist/assets/library-page-dIrR1lib.js +1 -0
  90. package/dist/assets/login-page-Bca-1DK6.js +1 -0
  91. package/dist/assets/logout-page-BzAORi0q.js +1 -0
  92. package/dist/assets/logs-layout-BsqrLQee.js +1 -0
  93. package/dist/assets/markdown-preview-DLXGytZI.js +1 -0
  94. package/dist/assets/media-preview-daMlnyj8.js +1 -0
  95. package/dist/assets/memory-page-route-CX1I7izG.js +2 -0
  96. package/dist/assets/memory-router-playground-page-Mk3rfyGO.js +1 -0
  97. package/dist/assets/message-files-panel-D-C9C2PJ.js +1 -0
  98. package/dist/assets/metric-card-Bij5WGzs.js +1 -0
  99. package/dist/assets/notifications-page-C6zUs2x1.js +1 -0
  100. package/dist/assets/{oauth-complete-page-Bh6VG8SS.js → oauth-complete-page-CuNDqPAt.js} +1 -1
  101. package/dist/assets/{oauth-popup-complete-page-6YLSOCV_.js → oauth-popup-complete-page-hRc3yLWH.js} +2 -2
  102. package/dist/assets/onboarding-BbtVI8KM.js +1 -0
  103. package/dist/assets/onboarding-BoaKLlZ5.js +1 -0
  104. package/dist/assets/page-empty-state-BrGkTMcK.js +1 -0
  105. package/dist/assets/page-shell-DtdXurhX.js +1 -0
  106. package/dist/assets/pairing-page-CwLe0EJV.js +1 -0
  107. package/dist/assets/password-reset-page-C7qvqEJQ.js +1 -0
  108. package/dist/assets/{pdf-a3pPuuVL.js → pdf-fWDhmWcw.js} +1 -1
  109. package/dist/assets/pdf-file-preview-DbwHMWey.js +1 -0
  110. package/dist/assets/pdf.worker.min-Dr1KORA9.mjs +31 -0
  111. package/dist/assets/personality-page-Ci_b1dH9.js +1 -0
  112. package/dist/assets/plans-page-CyqILV_j.js +1 -0
  113. package/dist/assets/platform-loopback-page-CgXx1oDQ.js +1 -0
  114. package/dist/assets/plugin-detail-page-CvC_LUz2.js +1 -0
  115. package/dist/assets/plugins-page-9LuPE9IY.js +1 -0
  116. package/dist/assets/preview-error-DbAQP8oG.js +1 -0
  117. package/dist/assets/privacy-page-OIOZKgWi.js +1 -0
  118. package/dist/assets/privacy-screen-DFnrbIrM.js +1 -0
  119. package/dist/assets/provider-callback-page-DGVehvIp.js +1 -0
  120. package/dist/assets/provider-key-CUAJZvaQ.js +1 -0
  121. package/dist/assets/provider-signup-page-B5gnrbym.js +1 -0
  122. package/dist/assets/{provisioning-targets-CE25g21J.js → provisioning-targets-BbLfumae.js} +1 -1
  123. package/dist/assets/quick-input-page-Ccy-FS5S.js +1 -0
  124. package/dist/assets/react-DPM_L_aA.js +12 -0
  125. package/dist/assets/repeat-DVEpBLT_.js +1 -0
  126. package/dist/assets/research-mock-page-DqfkGU9x.js +1 -0
  127. package/dist/assets/research-onboarding-route-D3qFv6SM.js +50 -0
  128. package/dist/assets/review-terms-screen-BD3wP3KC.js +1 -0
  129. package/dist/assets/schedules-B_SL_iV4.js +1 -0
  130. package/dist/assets/schedules-page-D64tvhuZ.js +1 -0
  131. package/dist/assets/security-redirect-page-CWR-HICc.js +1 -0
  132. package/dist/assets/select-assistant-screen-SfWB0oQ2.js +1 -0
  133. package/dist/assets/self-hosted-servers-BHF9gq8j.js +1 -0
  134. package/dist/assets/service-form-controls-DNfWnjSp.js +1 -0
  135. package/dist/assets/setting-row-DRwmii99.js +1 -0
  136. package/dist/assets/settings-divider-X9YnFIFQ.js +1 -0
  137. package/dist/assets/settings-gjWN0WQO.js +3 -0
  138. package/dist/assets/settings-iLTzqZW8.js +3 -0
  139. package/dist/assets/settings-layout-C2Um5qit.js +1 -0
  140. package/dist/assets/share-feedback-modal-BzV03dUO.js +2 -0
  141. package/dist/assets/sidebar-tree-C1t1xfKD.js +1 -0
  142. package/dist/assets/signup-page-Dyhm65FW.js +1 -0
  143. package/dist/assets/signup-shell-CSThcwPa.js +1 -0
  144. package/dist/assets/skill-detail-page-Cja0k8_e.js +2 -0
  145. package/dist/assets/skill-detail-panel-BIOL410z.js +1 -0
  146. package/dist/assets/skill-icon-Me8DDEMt.js +1 -0
  147. package/dist/assets/skill-removal-dialog-bN91N7f8.js +1 -0
  148. package/dist/assets/skills-page-CYogTXmH.js +1 -0
  149. package/dist/assets/sounds-page-DAy2o3wO.js +1 -0
  150. package/dist/assets/start-screen-DyyYavfM.js +1 -0
  151. package/dist/assets/status-badge-pill-BAkXhxwa.js +1 -0
  152. package/dist/assets/stt-language-picker-modal-CpGwbd4g.js +1 -0
  153. package/dist/assets/subagent-detail-panel-330bH7ee.js +4 -0
  154. package/dist/assets/superpowers-page-D6wv3GWO.js +1 -0
  155. package/dist/assets/system-events-page-CFN8tMUJ.js +1 -0
  156. package/dist/assets/system-events-redirect-page-BarOgFkA.js +1 -0
  157. package/dist/assets/text-preview-CZeqyzdw.js +1 -0
  158. package/dist/assets/theme-stage-page-Pcnh0PTQ.js +1 -0
  159. package/dist/assets/{tiptap-document-editor-sg7gdh_H.js → tiptap-document-editor-ZZmtZ799.js} +30 -30
  160. package/dist/assets/tool-detail-panel-BgCSb_m5.js +12 -0
  161. package/dist/assets/trait-cycle-row-BWNJ21g4.js +1 -0
  162. package/dist/assets/upgrade-cancel-page-ByVEWPeH.js +1 -0
  163. package/dist/assets/upgrade-success-page-iAPLJbee.js +1 -0
  164. package/dist/assets/usage-redirect-page-BHd-7in5.js +1 -0
  165. package/dist/assets/use-assistant-identity-details-oVmPdjVe.js +1 -0
  166. package/dist/assets/use-checkout-dismiss-refresh-BO2cN2i8.js +1 -0
  167. package/dist/assets/use-edge-swipe-back-CzESg8qG.js +2 -0
  168. package/dist/assets/use-hotkey-recorder-CY089_4p.js +1 -0
  169. package/dist/assets/use-invite-link-dialog-Ck-LquhT.js +1 -0
  170. package/dist/assets/use-platform-assistant-id-DcVWp7KY.js +1 -0
  171. package/dist/assets/use-return-to-short-circuit-NDSwANeI.js +1 -0
  172. package/dist/assets/use-side-list-room-DQbUPFcU.js +1 -0
  173. package/dist/assets/use-skill-actions-CNBx-WS1.js +1 -0
  174. package/dist/assets/use-skill-detail-files-BGIXJykk.js +1 -0
  175. package/dist/assets/use-supports-credentials-settings-C6S_OHMP.js +1 -0
  176. package/dist/assets/use-transcript-message-by-id-Dqm1PMu3.js +1 -0
  177. package/dist/assets/use-truncated-blob-text-DLF_hf3O.js +1 -0
  178. package/dist/assets/vendor-WUN87CSE.js +385 -0
  179. package/dist/assets/voice-page-nBfEMyWs.js +1 -0
  180. package/dist/assets/weather-forecast-display-B6j-V-yS.js +1 -0
  181. package/dist/assets/web-CE-RjE8i.js +1 -0
  182. package/dist/assets/web-Cv_J7__I.js +1 -0
  183. package/dist/assets/web-Cw24uxYA.js +1 -0
  184. package/dist/assets/web-DDFO9PaS.js +1 -0
  185. package/dist/assets/web-DL2rv-Fb.js +1 -0
  186. package/dist/assets/web-DPEGYPrR.js +1 -0
  187. package/dist/assets/web-Q8lSPj8Z.js +1 -0
  188. package/dist/assets/web-kKGZ0Pbn.js +1 -0
  189. package/dist/assets/web-pwf5Vh3V.js +1 -0
  190. package/dist/assets/welcome-screen-BrwdmDqM.js +1 -0
  191. package/dist/assets/workflow-detail-panel-DcTQSyju.js +1 -0
  192. package/dist/assets/workspace-page-Dwfwnkh5.js +1 -0
  193. package/dist/assets/{xterm-QkObDWKu.js → xterm-DfM4JBPp.js} +1 -1
  194. package/dist/assets/xterm-addon-fit-DuBTfuI9.js +1 -0
  195. package/dist/images/integrations/ATTRIBUTION.md +10 -5
  196. package/dist/images/integrations/calendly.svg +1 -0
  197. package/dist/images/integrations/eventbrite.svg +1 -0
  198. package/dist/images/integrations/monday.svg +1 -0
  199. package/dist/index.html +7 -336
  200. package/package.json +1 -1
  201. package/dist/assets/AnimatePresence-BkWQRluv.js +0 -9
  202. package/dist/assets/Combination-kHxEP36G.js +0 -41
  203. package/dist/assets/QueryClientProvider-BPZM68-A.js +0 -1
  204. package/dist/assets/Trans-CBhhVbOk.js +0 -1
  205. package/dist/assets/about-page-hURQzaZb.js +0 -1
  206. package/dist/assets/account-page-BUHRzIQn.js +0 -1
  207. package/dist/assets/account-shell-Y97PMm-a.js +0 -1
  208. package/dist/assets/acp-run-actions-DznGEBjQ.js +0 -1
  209. package/dist/assets/acp-run-detail-panel-CVPDXyP6.js +0 -5
  210. package/dist/assets/acp-run-store-D8roCscD.js +0 -1
  211. package/dist/assets/activity-steps-panel-BzTDFCQ4.js +0 -1
  212. package/dist/assets/add-credential-modal-aeUdZtSp.js +0 -1
  213. package/dist/assets/add-credits-modal-CtS-PzoH.js +0 -1
  214. package/dist/assets/ai-page-C6zXOVyP.js +0 -1
  215. package/dist/assets/android-billing-handoff-BoSQm4gg.js +0 -1
  216. package/dist/assets/animate-CuPjEtk6.js +0 -1
  217. package/dist/assets/animated-avatar-DAJHVYXE.js +0 -1
  218. package/dist/assets/api-BUuIGDig.js +0 -1
  219. package/dist/assets/api-key-screen-DauZKmq9.js +0 -1
  220. package/dist/assets/app-card-B5AFFdUO.js +0 -1
  221. package/dist/assets/app-info-CBSIGREh.js +0 -1
  222. package/dist/assets/apple-logo-GkgGOZWf.js +0 -1
  223. package/dist/assets/archive-DMKVAVAX.js +0 -1
  224. package/dist/assets/archive-redirect-page-DXqjPmpK.js +0 -1
  225. package/dist/assets/arrow-down-to-line-CJ0OBlcT.js +0 -1
  226. package/dist/assets/arrow-left-DUklm7Fd.js +0 -1
  227. package/dist/assets/arrow-right-De7tYwD7.js +0 -1
  228. package/dist/assets/arrow-up-CijF4S8i.js +0 -1
  229. package/dist/assets/assistant-feature-flag-store-Co_o5uD3.js +0 -1
  230. package/dist/assets/assistant-identity-store-DBkGjqzV.js +0 -1
  231. package/dist/assets/assistant-status-panel-DYkXgK0D.js +0 -1
  232. package/dist/assets/audio-context-YNIG4zMo.js +0 -1
  233. package/dist/assets/auth-store-BVjw4Y6z.js +0 -2
  234. package/dist/assets/auth-welcome-screen-DbDu2DKV.js +0 -1
  235. package/dist/assets/avatar-bundled-components-C1i6ys8w.js +0 -1
  236. package/dist/assets/avatar-random-BOjdaclE.js +0 -1
  237. package/dist/assets/avatar-renderer-CnJd2PqC.js +0 -1
  238. package/dist/assets/avatar-subagent-CdgpbwL0.js +0 -1
  239. package/dist/assets/avatar-svg-compositor-DxBmLeF3.js +0 -1
  240. package/dist/assets/avatar-tone-D_3T6CNS.js +0 -1
  241. package/dist/assets/background-task-actions-Cs3pTNVl.js +0 -1
  242. package/dist/assets/background-task-detail-panel-BWAwy3I3.js +0 -1
  243. package/dist/assets/background-task-store-Ba89lNRi.js +0 -1
  244. package/dist/assets/ban-JFtQ_88n.js +0 -1
  245. package/dist/assets/bell-B3GoRAIC.js +0 -1
  246. package/dist/assets/billing-page-FxI0W3-_.js +0 -3
  247. package/dist/assets/billing-redirect-page-l6nC_qa5.js +0 -1
  248. package/dist/assets/bookmarks-page-6p-UochF.js +0 -1
  249. package/dist/assets/brain-lgsb4JhV.js +0 -1
  250. package/dist/assets/browser-BaGW19xY.js +0 -2
  251. package/dist/assets/browser-timezone-DEQubHhx.js +0 -1
  252. package/dist/assets/bug-DJjWtfUu.js +0 -1
  253. package/dist/assets/build-state-ChDL0BPH.js +0 -1
  254. package/dist/assets/bundle-confirm-page-9jTfMrek.js +0 -1
  255. package/dist/assets/bundle-mjs-CctC_00U.js +0 -1
  256. package/dist/assets/button-B1kEAcLt.js +0 -1
  257. package/dist/assets/by-tool-use-id-index-DOOfRauy.js +0 -1
  258. package/dist/assets/calendar-Bbg9LoLZ.js +0 -1
  259. package/dist/assets/camera-DOhkFhC8.js +0 -1
  260. package/dist/assets/card-B4b9cF6X.js +0 -1
  261. package/dist/assets/channels-DU7UcoR_.js +0 -1
  262. package/dist/assets/channels-P8K1t248.js +0 -1
  263. package/dist/assets/channels-page-route-DBtIRtsL.js +0 -9
  264. package/dist/assets/chart-column-BSXp3tJF.js +0 -1
  265. package/dist/assets/chat-BG7p3zq1.js +0 -3
  266. package/dist/assets/chat-Bfo3dMB3.js +0 -1
  267. package/dist/assets/chat-avatar-DM2DBsml.js +0 -1
  268. package/dist/assets/chat-layout-slots-store-D_NI8Xtw.js +0 -1
  269. package/dist/assets/chat-markdown-message-CTuuKxjN.js +0 -1
  270. package/dist/assets/check-bDVYejGM.js +0 -1
  271. package/dist/assets/checkbox--DYEubRE.js +0 -1
  272. package/dist/assets/checkout-continuation-LLv0HLko.js +0 -1
  273. package/dist/assets/checkout-page-B14XHmIb.js +0 -1
  274. package/dist/assets/checkout-return-target-BX6588K4.js +0 -1
  275. package/dist/assets/chevron-down-D437oaYt.js +0 -1
  276. package/dist/assets/chevron-left-C51UUK4r.js +0 -1
  277. package/dist/assets/chevron-right-D5lPX854.js +0 -1
  278. package/dist/assets/chevron-up-B_I9Uakl.js +0 -1
  279. package/dist/assets/chunk-5KNZJZUH-CPFsMQoz.js +0 -4
  280. package/dist/assets/circle-alert-BaeJJrSp.js +0 -1
  281. package/dist/assets/circle-check-CnoFVsRZ.js +0 -1
  282. package/dist/assets/circle-check-big-CHpJAmSB.js +0 -1
  283. package/dist/assets/circle-minus--pYdZe0n.js +0 -1
  284. package/dist/assets/circle-x-BnqzdPia.js +0 -1
  285. package/dist/assets/client-feature-flag-store-BmjgGl9P.js +0 -1
  286. package/dist/assets/client-perf-CL-Sfpnu.js +0 -1
  287. package/dist/assets/client.gen-D1UKq9QZ.js +0 -6
  288. package/dist/assets/clipboard-copy-BFyCoPu3.js +0 -1
  289. package/dist/assets/clock-HLo0irRS.js +0 -1
  290. package/dist/assets/cloud-6GKvvsQ6.js +0 -1
  291. package/dist/assets/cloud-off-B8SagsfP.js +0 -1
  292. package/dist/assets/cn-naJKasky.js +0 -1
  293. package/dist/assets/code-B7j8vdg9.js +0 -1
  294. package/dist/assets/coins-S_-Fmv_r.js +0 -1
  295. package/dist/assets/command-palette-C0x3z7aQ.js +0 -1
  296. package/dist/assets/command-palette-window-page-BShi7rwo.js +0 -1
  297. package/dist/assets/common-C7YGlfJZ.js +0 -1
  298. package/dist/assets/common-DFfCPRFe.js +0 -1
  299. package/dist/assets/community-page-ChiOX6Op.js +0 -1
  300. package/dist/assets/companion-surface-BYj8yxCS.js +0 -1
  301. package/dist/assets/companion-surface-page-HYtLs0-t.js +0 -1
  302. package/dist/assets/composer-settings-BCehrZgj.js +0 -1
  303. package/dist/assets/confirm-dialog-EPYSBP_B.js +0 -1
  304. package/dist/assets/connect-page-tyHxf7TL.js +0 -1
  305. package/dist/assets/consent-controls-C7U2N-h8.js +0 -1
  306. package/dist/assets/consent-cuDRWUkB.js +0 -1
  307. package/dist/assets/contacts-CotcPejk.js +0 -1
  308. package/dist/assets/contacts-E-8UOrGK.js +0 -1
  309. package/dist/assets/contacts-gateway-BLGKdcif.js +0 -1
  310. package/dist/assets/contacts-page-route-KVjx4fqm.js +0 -1
  311. package/dist/assets/conversation-cache-CrybogTL.js +0 -1
  312. package/dist/assets/conversation-navigation-Ck_iLhjv.js +0 -1
  313. package/dist/assets/conversation-queries-Clrll8jF.js +0 -1
  314. package/dist/assets/conversation-selection-BVLi6RIL.js +0 -1
  315. package/dist/assets/conversation-store-BHWyRtQs.js +0 -1
  316. package/dist/assets/copy-to-clipboard-Blihejp9.js +0 -1
  317. package/dist/assets/cpu-KP1UdyS1.js +0 -1
  318. package/dist/assets/create-selectors-sLdtxUZQ.js +0 -1
  319. package/dist/assets/createLucideIcon-CMfEC_aW.js +0 -1
  320. package/dist/assets/credential-entry-page-Cs6FHnUn.js +0 -1
  321. package/dist/assets/credentials-page-D8G-44GI.js +0 -1
  322. package/dist/assets/danger-zone-redirect-page-Cds_krO3.js +0 -1
  323. package/dist/assets/debug-page-BMqKvkSo.js +0 -4
  324. package/dist/assets/deploy-dialogs-DqkTJUGk.js +0 -1
  325. package/dist/assets/deploy-store-FijtU8HL.js +0 -1
  326. package/dist/assets/desktop-voice-activity-DUGtHbRg.js +0 -1
  327. package/dist/assets/detail-card-D9EAxXI8.js +0 -1
  328. package/dist/assets/detail-drawer-D-CPwyBO.js +0 -1
  329. package/dist/assets/detail-panel-stop-button-ClfJeo-s.js +0 -1
  330. package/dist/assets/detail-shell-CNYbfTO7.js +0 -1
  331. package/dist/assets/developer-page-C7o31rYB.js +0 -1
  332. package/dist/assets/devices-redirect-page-CeKwKvN-.js +0 -1
  333. package/dist/assets/diagnostics-BC7vRbDB.js +0 -1
  334. package/dist/assets/dictation-overlay-C-whP7yL.js +0 -1
  335. package/dist/assets/dictation-overlay-page-sfEwzU14.js +0 -1
  336. package/dist/assets/diff-rows-D_K2ZMJ5.js +0 -1
  337. package/dist/assets/discord-logo-sC02ywjh.js +0 -1
  338. package/dist/assets/dist-BnrwumrD.js +0 -1
  339. package/dist/assets/dist-Cr8OiiXj.js +0 -1
  340. package/dist/assets/dist-Ct3qbbty.js +0 -1
  341. package/dist/assets/dist-Czhl4zX3.js +0 -1
  342. package/dist/assets/dist-D3VsKBK8.js +0 -1
  343. package/dist/assets/dist-DaY2OuMX.js +0 -1
  344. package/dist/assets/doctor-handoff-store-DEirTOZw.js +0 -1
  345. package/dist/assets/document-viewer-container-yyhVIyAB.js +0 -2
  346. package/dist/assets/document-viewer-page-Co_sxuvK.js +0 -1
  347. package/dist/assets/download-BIMKsVBw.js +0 -1
  348. package/dist/assets/edge-swipe-arbiter-store-ByePvbty.js +0 -1
  349. package/dist/assets/edit-chat-session-Cm8kKicc.js +0 -1
  350. package/dist/assets/effective-timezone-BW38Gdmx.js +0 -1
  351. package/dist/assets/ellipsis-DLGzVN7S.js +0 -1
  352. package/dist/assets/ellipsis-vertical-BJaOQqv_.js +0 -1
  353. package/dist/assets/emails-page-a1sfkbkL.js +0 -1
  354. package/dist/assets/environment-store-DKl9RR50.js +0 -1
  355. package/dist/assets/esm-BAE-_6f7.js +0 -1
  356. package/dist/assets/esm-BTQ42Hgz.js +0 -2
  357. package/dist/assets/esm-BnXPDdij.js +0 -2
  358. package/dist/assets/esm-CC077SPL.js +0 -2
  359. package/dist/assets/esm-CbZfwR7m.js +0 -2
  360. package/dist/assets/esm-DA5sciAy.js +0 -2
  361. package/dist/assets/esm-DbODHbQp.js +0 -2
  362. package/dist/assets/esm-Doko4a-G.js +0 -2
  363. package/dist/assets/esm-KUiHjb53.js +0 -1
  364. package/dist/assets/esm-uRwymN1a.js +0 -1
  365. package/dist/assets/event-bus-CN0zipw2.js +0 -1
  366. package/dist/assets/external-anchor-CJ2uCBN2.js +0 -1
  367. package/dist/assets/external-link-cVsOyP-B.js +0 -1
  368. package/dist/assets/external-urls-BE71Yb2T.js +0 -1
  369. package/dist/assets/eye-Bkw-NEUk.js +0 -1
  370. package/dist/assets/eye-bbox-crwIELLL.js +0 -1
  371. package/dist/assets/eye-off-BtRToWVw.js +0 -1
  372. package/dist/assets/feature-flag-catalog-DWnmasL0.js +0 -1
  373. package/dist/assets/feed-item-status-actions-Bw41rlaj.js +0 -1
  374. package/dist/assets/field-quMum4Ij.js +0 -1
  375. package/dist/assets/file-DukGjoT9.js +0 -1
  376. package/dist/assets/file-code-KOdjB_EC.js +0 -1
  377. package/dist/assets/file-editor-Cx3p3Rxf.js +0 -1
  378. package/dist/assets/file-markdown-D43Nsqm2.js +0 -2
  379. package/dist/assets/file-plus-BE5pS64_.js +0 -1
  380. package/dist/assets/file-text-CexzqcsX.js +0 -1
  381. package/dist/assets/first-run-scope-DITgHc6G.js +0 -1
  382. package/dist/assets/folder-BshXYSOQ.js +0 -1
  383. package/dist/assets/folder-open-Dp3CKxO5.js +0 -1
  384. package/dist/assets/format-date-C4mrDYY6.js +0 -1
  385. package/dist/assets/format-usd-Be34KtzB.js +0 -1
  386. package/dist/assets/funnel-events-Dl6Nt7nA.js +0 -1
  387. package/dist/assets/general-page-rg_u_yPE.js +0 -1
  388. package/dist/assets/get-memory-stats-DxspWLxk.js +0 -1
  389. package/dist/assets/globe-DJ3y3hQh.js +0 -1
  390. package/dist/assets/haptics-BS-glrYv.js +0 -2
  391. package/dist/assets/hard-drive-CXysKjuo.js +0 -1
  392. package/dist/assets/hard-navigate-BVv7q79D.js +0 -1
  393. package/dist/assets/hatching-screen-8lXCy9WG.js +0 -1
  394. package/dist/assets/heart-DF_JiyEl.js +0 -1
  395. package/dist/assets/home-page-route-QunjBmtS.js +0 -1
  396. package/dist/assets/hosting-screen-B-5gejYX.js +0 -1
  397. package/dist/assets/i18n-BtV8MCsZ.js +0 -15
  398. package/dist/assets/identity-_6tLszkL.js +0 -1
  399. package/dist/assets/identity-page-route-B0XGpYIE.js +0 -7
  400. package/dist/assets/image-B4sohCAa.js +0 -1
  401. package/dist/assets/inbox-D8dK1dMC.js +0 -1
  402. package/dist/assets/index-C9XKdblY.css +0 -2
  403. package/dist/assets/index-Gjnx86x6.js +0 -11
  404. package/dist/assets/infiniteQueryOptions-DTCCTa10.js +0 -1
  405. package/dist/assets/info-C-HjpKAE.js +0 -1
  406. package/dist/assets/ingest-OJG7HVUh.js +0 -1
  407. package/dist/assets/input-ChbJ2nzd.js +0 -1
  408. package/dist/assets/inspect-page-bs_j1c9j.js +0 -9
  409. package/dist/assets/installed-plugins-query-C8omZZV4.js +0 -1
  410. package/dist/assets/integration-icon-C6Y4VGkv.js +0 -1
  411. package/dist/assets/integrations-page-D7ENik74.js +0 -1
  412. package/dist/assets/intelligence-layout-gaexcakY.js +0 -1
  413. package/dist/assets/interactive-target-h9aYOKy2.js +0 -1
  414. package/dist/assets/internal-thread-actions-DkNfSArh.js +0 -1
  415. package/dist/assets/invalidate-memory-queries-DWuNUXFq.js +0 -1
  416. package/dist/assets/invalidate-plugin-queries-CBgy5O6i.js +0 -1
  417. package/dist/assets/is-electron-D45bjFI8.js +0 -1
  418. package/dist/assets/jsx-runtime-COOF1INC.js +0 -1
  419. package/dist/assets/key-round-BEQmZ4Ji.js +0 -1
  420. package/dist/assets/keyboard-shortcuts-redirect-page-BDuYwofA.js +0 -1
  421. package/dist/assets/laptop-XN6nYvdB.js +0 -1
  422. package/dist/assets/layout-grid-Cyrnt_YU.js +0 -1
  423. package/dist/assets/library-detail-page-DXCZhY4s.js +0 -1
  424. package/dist/assets/library-page-CKAu2a08.js +0 -1
  425. package/dist/assets/lightbulb-BSnKqAOd.js +0 -1
  426. package/dist/assets/link-2-Di62Fo_i.js +0 -1
  427. package/dist/assets/link-CbkkEBEX.js +0 -1
  428. package/dist/assets/list-Dtwz1hOH.js +0 -1
  429. package/dist/assets/list-row-BvCm9O6y.js +0 -1
  430. package/dist/assets/llm-model-catalog-Bk0q_XG4.js +0 -1
  431. package/dist/assets/loader-circle-DZ65N8bz.js +0 -1
  432. package/dist/assets/local-mode-BQ8gp0wB.js +0 -1
  433. package/dist/assets/local-runtime-upgrade-BXc9x-7Y.js +0 -1
  434. package/dist/assets/local-settings-D9SNRv4p.js +0 -1
  435. package/dist/assets/log-in-CGeZfDEs.js +0 -1
  436. package/dist/assets/log-out-DPkGVfNH.js +0 -1
  437. package/dist/assets/login-flow-CrSxmLFE.js +0 -1
  438. package/dist/assets/login-page-uUo0uRmJ.js +0 -1
  439. package/dist/assets/logout-page-BYZfOpa1.js +0 -1
  440. package/dist/assets/logs-layout-B34XKM-k.js +0 -1
  441. package/dist/assets/mail-CqdA6Y_p.js +0 -1
  442. package/dist/assets/markdown-preview-eCDa4paC.js +0 -1
  443. package/dist/assets/media-preview-1xn1SAn9.js +0 -1
  444. package/dist/assets/memory-page-route-DiVaW98S.js +0 -2
  445. package/dist/assets/memory-router-playground-page-DgILWgQu.js +0 -1
  446. package/dist/assets/menu-DPM2p9S5.js +0 -1
  447. package/dist/assets/message-circle-DBYzIjYB.js +0 -1
  448. package/dist/assets/message-content-uWZUlo6D.js +0 -1
  449. package/dist/assets/message-files-panel-Bv-5dvcD.js +0 -1
  450. package/dist/assets/message-square-XpKWNcyv.js +0 -1
  451. package/dist/assets/message-square-text-CvSl10LZ.js +0 -1
  452. package/dist/assets/messages-BXHTKK_v.js +0 -13
  453. package/dist/assets/metric-card-CTonLoYE.js +0 -1
  454. package/dist/assets/mic-DQbnjgmt.js +0 -1
  455. package/dist/assets/middleware-BmAQ4_8P.js +0 -1
  456. package/dist/assets/mime-sniff--WYdEIBE.js +0 -1
  457. package/dist/assets/minimize-2-DzL_lI8t.js +0 -1
  458. package/dist/assets/misc-dA4Wklt2.js +0 -1
  459. package/dist/assets/modal-_49mDK_d.js +0 -1
  460. package/dist/assets/monitor-BKwWxjph.js +0 -1
  461. package/dist/assets/moon-MfogEw5q.js +0 -1
  462. package/dist/assets/native-anchor-CmnMg6B6.js +0 -1
  463. package/dist/assets/native-biometric-DEP8Sr4X.js +0 -6
  464. package/dist/assets/native-deep-link--guFKiPO.js +0 -2
  465. package/dist/assets/native-file-DlQtjxJn.js +0 -2
  466. package/dist/assets/navigation-resolver-CRsrd5gh.js +0 -1
  467. package/dist/assets/not-found-BXR_4Uja.js +0 -1
  468. package/dist/assets/notice-BHeYlKvv.js +0 -1
  469. package/dist/assets/notifications-Dcgkgn8Q.js +0 -1
  470. package/dist/assets/notifications-page-CSH6gHaX.js +0 -1
  471. package/dist/assets/oauth-connection-utils-D_78dCYn.js +0 -1
  472. package/dist/assets/oauth-popup-DEDdbkj2.js +0 -1
  473. package/dist/assets/onboarding-D2bBWpx1.js +0 -1
  474. package/dist/assets/onboarding-DJeJhXd6.js +0 -1
  475. package/dist/assets/onboarding-layout-C9v6Q2QQ.js +0 -1
  476. package/dist/assets/onboarding-navigation-oNFNDeeW.js +0 -1
  477. package/dist/assets/onboarding-store-BhT1z8Wi.js +0 -1
  478. package/dist/assets/open-workspace-file-fIr0qcsc.js +0 -2
  479. package/dist/assets/operational-status-BdcYEcTh.js +0 -1
  480. package/dist/assets/optimistic-lifecycle-BlDyVYIt.js +0 -1
  481. package/dist/assets/page-empty-state-B_nQdAFR.js +0 -1
  482. package/dist/assets/page-shell-BHyGukA1.js +0 -1
  483. package/dist/assets/page-surface-store-D5IgLCtn.js +0 -1
  484. package/dist/assets/pairing-page-fVI54lsD.js +0 -1
  485. package/dist/assets/palette-BlX3XmVL.js +0 -1
  486. package/dist/assets/paperclip-Ce-wbj5L.js +0 -1
  487. package/dist/assets/password-reset-page-ClhMzYsx.js +0 -1
  488. package/dist/assets/pdf-file-preview-BjbSLoD9.js +0 -1
  489. package/dist/assets/pdf-preview-xa07R01f.js +0 -2
  490. package/dist/assets/pencil-1uDrqXvV.js +0 -1
  491. package/dist/assets/personality-page-CK3vkhkl.js +0 -1
  492. package/dist/assets/plans-page-CuZeAQhx.js +0 -1
  493. package/dist/assets/platform-detection-DUeD4WFO.js +0 -1
  494. package/dist/assets/platform-login-notice-B2ZwcEYp.js +0 -1
  495. package/dist/assets/platform-loopback-page-CMnaXj8y.js +0 -1
  496. package/dist/assets/play-D-HSCeZj.js +0 -1
  497. package/dist/assets/plug-AMxPbUcz.js +0 -1
  498. package/dist/assets/plugin-detail-page-D9Qk7GmS.js +0 -1
  499. package/dist/assets/plugins-page-Bm0hcoSf.js +0 -1
  500. package/dist/assets/plugins-surface-DB7dv9Hu.js +0 -1
  501. package/dist/assets/plus-rgqTRjE1.js +0 -1
  502. package/dist/assets/pointer-DktxhCd8.js +0 -1
  503. package/dist/assets/popover-GOTwOlgQ.js +0 -1
  504. package/dist/assets/prechat-Cl2-DnE_.js +0 -1
  505. package/dist/assets/prefs-CAMw44jD.js +0 -1
  506. package/dist/assets/preload-helper-BewR0kVT.js +0 -1
  507. package/dist/assets/preview-error-DW-EUl80.js +0 -1
  508. package/dist/assets/preview-skeleton-CLI9ptyu.js +0 -1
  509. package/dist/assets/privacy-page-D-a7l0YY.js +0 -1
  510. package/dist/assets/privacy-screen-CxwxgE4s.js +0 -1
  511. package/dist/assets/profile-pickers-D8XVv50L.js +0 -1
  512. package/dist/assets/progress-bar-C9zSzt4m.js +0 -1
  513. package/dist/assets/provider-callback-page-65a2DK0l.js +0 -1
  514. package/dist/assets/provider-key-CcPF1Zqp.js +0 -1
  515. package/dist/assets/provider-signup-page-BC86aF7W.js +0 -1
  516. package/dist/assets/proxy-CROyCGs8.js +0 -1
  517. package/dist/assets/public-asset-Dk1mdzbh.js +0 -1
  518. package/dist/assets/push-registration-D0zDMpTx.js +0 -2
  519. package/dist/assets/puzzle-PqInNnOi.js +0 -1
  520. package/dist/assets/queryOptions-DGyQTr3e.js +0 -1
  521. package/dist/assets/quick-input-page-DAf2lbri.js +0 -1
  522. package/dist/assets/react-DJZBPgpf.js +0 -1
  523. package/dist/assets/react-query.gen-C5widOeH.js +0 -1
  524. package/dist/assets/react-query.gen-C_GLKG7m.js +0 -1
  525. package/dist/assets/reduced-motion-B-KLzfs_.js +0 -1
  526. package/dist/assets/refresh-cw-BDh1a2sj.js +0 -1
  527. package/dist/assets/relative-time-COU7Zqre.js +0 -1
  528. package/dist/assets/remote-gateway-session-C3H0Oq0r.js +0 -1
  529. package/dist/assets/remove-from-device-dialog-CXmGFbKk.js +0 -1
  530. package/dist/assets/repeat-6uW-THNc.js +0 -1
  531. package/dist/assets/research-facts-gT4POsZw.js +0 -1
  532. package/dist/assets/research-mock-page-B41v4MzE.js +0 -1
  533. package/dist/assets/research-onboarding-persistence-Bnn7ljSq.js +0 -1
  534. package/dist/assets/research-onboarding-route-CbZ14lCf.js +0 -50
  535. package/dist/assets/research-results-view-BHXLkoKK.js +0 -3
  536. package/dist/assets/resolved-assistants-store-DEtotxhR.js +0 -1
  537. package/dist/assets/retire-confirm-dialog-1nxn6f4M.js +0 -1
  538. package/dist/assets/review-terms-screen-BsDHdmoO.js +0 -1
  539. package/dist/assets/rotate-ccw-BYcZOtjy.js +0 -1
  540. package/dist/assets/routes-C6ueuiMd.js +0 -1
  541. package/dist/assets/routes-Cly3ytK4.js +0 -24
  542. package/dist/assets/runtime-upgrade-banner-DC63rkQ7.js +0 -2
  543. package/dist/assets/sandbox-bridge-DSJSIgUC.js +0 -275
  544. package/dist/assets/schedules-BZzuRuQs.js +0 -1
  545. package/dist/assets/schedules-DVOFbt86.js +0 -1
  546. package/dist/assets/schedules-page-CjqAP78z.js +0 -1
  547. package/dist/assets/schemas-BNPZ_RzM.js +0 -39
  548. package/dist/assets/sdk.gen-BluU0h_N.js +0 -6
  549. package/dist/assets/sdk.gen-BuAyyHNm.js +0 -6
  550. package/dist/assets/sdk.gen-CrcsMCNX.js +0 -1
  551. package/dist/assets/search-DYHr3LM9.js +0 -1
  552. package/dist/assets/section-membership-Bma0R_Bn.js +0 -1
  553. package/dist/assets/security-redirect-page-C3VbbfyM.js +0 -1
  554. package/dist/assets/select-DmdFZj4l.js +0 -1
  555. package/dist/assets/select-assistant-screen-CV_3BKEH.js +0 -1
  556. package/dist/assets/self-hosted-servers-BMPYPayb.js +0 -1
  557. package/dist/assets/semver-CeGQrxWZ.js +0 -1
  558. package/dist/assets/send-1mFY4II3.js +0 -1
  559. package/dist/assets/setting-row-urcByt7n.js +0 -1
  560. package/dist/assets/settings-BggpKBtA.js +0 -3
  561. package/dist/assets/settings-C37vdp_B.js +0 -1
  562. package/dist/assets/settings-DSeJ7uGb.js +0 -3
  563. package/dist/assets/settings-divider-CYam_4yQ.js +0 -1
  564. package/dist/assets/settings-layout-CDRF6b06.js +0 -1
  565. package/dist/assets/settings-navigation-DyFIJJGF.js +0 -1
  566. package/dist/assets/share-feedback-modal-TnZsiNw9.js +0 -2
  567. package/dist/assets/shield-OLSnLaN7.js +0 -1
  568. package/dist/assets/shield-check-BuRfLkGi.js +0 -1
  569. package/dist/assets/sidebar-tree-Y1RDeJ9E.js +0 -1
  570. package/dist/assets/signup-page-DRzsOblS.js +0 -1
  571. package/dist/assets/signup-shell-DH0qR_2b.js +0 -1
  572. package/dist/assets/site-favicon-DLf2W4xi.js +0 -1
  573. package/dist/assets/skeleton-BV6nOVEl.js +0 -1
  574. package/dist/assets/skill-detail-page-3Wiz9A7q.js +0 -2
  575. package/dist/assets/skill-detail-panel-DbLFuSyn.js +0 -1
  576. package/dist/assets/skill-icon-D52BIuW4.js +0 -1
  577. package/dist/assets/skills-DASSBxT-.js +0 -1
  578. package/dist/assets/skills-page-DhKl7Mti.js +0 -1
  579. package/dist/assets/sliders-horizontal-BPa-_UE6.js +0 -1
  580. package/dist/assets/smartphone-P7vq0dcA.js +0 -1
  581. package/dist/assets/sound-manager-D8p3_c3W.js +0 -1
  582. package/dist/assets/sounds-page-CWBPL1YA.js +0 -1
  583. package/dist/assets/sparkles-D6kBPNlr.js +0 -1
  584. package/dist/assets/square-sQS2OW8v.js +0 -1
  585. package/dist/assets/src-BKET5Cno.js +0 -293
  586. package/dist/assets/star-C4JuiUip.js +0 -1
  587. package/dist/assets/start-screen-OMf-yHG3.js +0 -1
  588. package/dist/assets/status-badge-pill-MTA2Lfk-.js +0 -1
  589. package/dist/assets/stt-language-picker-modal-CmeO8yxD.js +0 -1
  590. package/dist/assets/subagent-detail-panel-CUW2rBET.js +0 -4
  591. package/dist/assets/subagent-store-BcbcFnS8.js +0 -3
  592. package/dist/assets/sun-Dtr03Yty.js +0 -1
  593. package/dist/assets/superpowers-page-CuvXfGPO.js +0 -1
  594. package/dist/assets/surface-parse-helpers-f-hT9LIR.js +0 -1
  595. package/dist/assets/swipe-action-reveal-BhA-hrfj.js +0 -1
  596. package/dist/assets/system-events-page-tEAEdDzA.js +0 -1
  597. package/dist/assets/system-events-redirect-page-BMSQQBAs.js +0 -1
  598. package/dist/assets/tag-DAsImP7W.js +0 -1
  599. package/dist/assets/target-zLlNzjMl.js +0 -1
  600. package/dist/assets/telegram-setup-wizard-BT6u6vcb.js +0 -1
  601. package/dist/assets/terminal-Bw8gHw-v.js +0 -1
  602. package/dist/assets/text-preview-qkra1xEh.js +0 -1
  603. package/dist/assets/theme-preferences-ysFQ1QCN.js +0 -1
  604. package/dist/assets/theme-stage-page-DiqUiOmJ.js +0 -1
  605. package/dist/assets/three-dot-indicator-rcDwZDFG.js +0 -1
  606. package/dist/assets/threshold-presets-DF7FTTlD.js +0 -1
  607. package/dist/assets/toast-BKrDuNtu.js +0 -1
  608. package/dist/assets/toggle-CdhdS_iC.js +0 -1
  609. package/dist/assets/tool-detail-panel-BR3PsmdK.js +0 -12
  610. package/dist/assets/transcript-message-body-shared-DWzxxSaD.js +0 -1
  611. package/dist/assets/trash-2-CVpEwOYZ.js +0 -1
  612. package/dist/assets/triangle-alert-B6J57Xfo.js +0 -1
  613. package/dist/assets/trust-rules-api-eZhPplXW.js +0 -1
  614. package/dist/assets/typed-storage-Bw4gW_Pk.js +0 -1
  615. package/dist/assets/typography-SdxpXI_m.js +0 -1
  616. package/dist/assets/upgrade-cancel-page-pljx8YOz.js +0 -1
  617. package/dist/assets/upgrade-success-page-CJUETwIe.js +0 -1
  618. package/dist/assets/upload-8ENnMpW_.js +0 -1
  619. package/dist/assets/usage-redirect-page-DBkOdl41.js +0 -1
  620. package/dist/assets/use-active-assistant-id-lxYJu99R.js +0 -1
  621. package/dist/assets/use-app-theme-CaWLhQW_.js +0 -1
  622. package/dist/assets/use-assistant-avatar-C2TgszRj.js +0 -1
  623. package/dist/assets/use-assistant-capability-De-35T6E.js +0 -1
  624. package/dist/assets/use-assistant-identity-details-rXIIiXr1.js +0 -1
  625. package/dist/assets/use-attachment-preview-BAX_ivri.js +0 -2
  626. package/dist/assets/use-attachment-squares-rU9s8st8.js +0 -1
  627. package/dist/assets/use-body-scroll-lock-8ObBdX00.js +0 -1
  628. package/dist/assets/use-bookmarks-BrjNq3T_.js +0 -1
  629. package/dist/assets/use-bundled-avatar-components-C6-AuQ2I.js +0 -2
  630. package/dist/assets/use-bus-subscription-DfxTm1-Q.js +0 -1
  631. package/dist/assets/use-checkout-dismiss-refresh-CjgC7Pck.js +0 -1
  632. package/dist/assets/use-command-palette-sections-tRUwMswg.js +0 -1
  633. package/dist/assets/use-copy-to-clipboard-B4c7SAc-.js +0 -1
  634. package/dist/assets/use-discord-nudge-BkpFjoOQ.js +0 -1
  635. package/dist/assets/use-edge-swipe-CCn4_Vm3.js +0 -1
  636. package/dist/assets/use-edge-swipe-back-xU9GuipH.js +0 -2
  637. package/dist/assets/use-edit-app-DDA6_WrI.js +0 -1
  638. package/dist/assets/use-effective-timezone-BfyKw5_H.js +0 -1
  639. package/dist/assets/use-element-size-CVF6o81H.js +0 -1
  640. package/dist/assets/use-hotkey-recorder-IMOc7G5D.js +0 -1
  641. package/dist/assets/use-invite-link-dialog-CvA_-72H.js +0 -1
  642. package/dist/assets/use-is-mobile-DYVRtRin.js +0 -1
  643. package/dist/assets/use-is-org-ready-B6oCKWeF.js +0 -1
  644. package/dist/assets/use-local-file-info-CSgzMBYt.js +0 -1
  645. package/dist/assets/use-media-query-BMHGif0t.js +0 -1
  646. package/dist/assets/use-obscure-credits-flag-CWxw1xHq.js +0 -1
  647. package/dist/assets/use-onboarding-login-CJ6HY3Pk.js +0 -1
  648. package/dist/assets/use-platform-assistant-id-DwSyMaOn.js +0 -1
  649. package/dist/assets/use-platform-gate-s29eeyq-.js +0 -1
  650. package/dist/assets/use-reduced-motion-CVyEdyEe.js +0 -1
  651. package/dist/assets/use-return-to-short-circuit-Bx5s2Syg.js +0 -1
  652. package/dist/assets/use-save-twilio-credentials-Zjhi1c0P.js +0 -1
  653. package/dist/assets/use-side-list-room-BT-2EM5d.js +0 -1
  654. package/dist/assets/use-skill-actions-BtnAACsE.js +0 -1
  655. package/dist/assets/use-skill-detail-files-B_E6xY9x.js +0 -1
  656. package/dist/assets/use-sticky-profiles-DpkWeMmN.js +0 -1
  657. package/dist/assets/use-stt-language-selection-BWJdaCRu.js +0 -1
  658. package/dist/assets/use-subagent-card-data-CfuRPesp.js +0 -1
  659. package/dist/assets/use-supports-bookmarks-Qhc5HpKD.js +0 -1
  660. package/dist/assets/use-supports-credentials-settings-BD0GXxL7.js +0 -1
  661. package/dist/assets/use-supports-inference-profiles-DS2ZLoNc.js +0 -1
  662. package/dist/assets/use-swipe-horizontal-B9YOWcB6.js +0 -1
  663. package/dist/assets/use-touch-mobile-hfZPfT1P.js +0 -1
  664. package/dist/assets/use-transcript-message-by-id-DfWH7JRN.js +0 -1
  665. package/dist/assets/use-transcript-messages-CFkvE46_.js +0 -3
  666. package/dist/assets/use-truncated-blob-text-DmnckNwK.js +0 -1
  667. package/dist/assets/use-voice-sample-preview-B8HUywXz.js +0 -1
  668. package/dist/assets/useInfiniteQuery-Dz6qbDTQ.js +0 -1
  669. package/dist/assets/useMutation-Cl7cazkm.js +0 -1
  670. package/dist/assets/useQueries-RuiDsyUH.js +0 -1
  671. package/dist/assets/useQuery-BtL9k7Sh.js +0 -1
  672. package/dist/assets/user-DqmJs6-I.js +0 -1
  673. package/dist/assets/user-plus-Bg01QRAF.js +0 -1
  674. package/dist/assets/users-DLjK4Ffo.js +0 -1
  675. package/dist/assets/utils-CAI1IDgW.js +0 -1
  676. package/dist/assets/viewer-store-CHptQmkY.js +0 -1
  677. package/dist/assets/voice-input-device-DsSHVzmw.js +0 -1
  678. package/dist/assets/voice-page-Dgcf5OOp.js +0 -1
  679. package/dist/assets/voice-providers-note-nJKW4coW.js +0 -1
  680. package/dist/assets/volume-2-DQKLkySB.js +0 -1
  681. package/dist/assets/weather-forecast-display-_NYO0wBC.js +0 -1
  682. package/dist/assets/web-8Dh87AZ1.js +0 -1
  683. package/dist/assets/web-BAQ66WKm.js +0 -1
  684. package/dist/assets/web-BFD28UZm.js +0 -1
  685. package/dist/assets/web-BcIK5wrq.js +0 -1
  686. package/dist/assets/web-C_sL6qhW.js +0 -1
  687. package/dist/assets/web-D0e5_5xl.js +0 -1
  688. package/dist/assets/web-D4Rr20FV.js +0 -1
  689. package/dist/assets/web-iI5WHtNC.js +0 -1
  690. package/dist/assets/web-qqG-3jDd.js +0 -1
  691. package/dist/assets/welcome-screen-DK4_01J3.js +0 -1
  692. package/dist/assets/widget-snapshot-OH8xHYY2.js +0 -1
  693. package/dist/assets/workflow-detail-panel-TqYAg0bB.js +0 -1
  694. package/dist/assets/workflow-kvRB4Mc5.js +0 -1
  695. package/dist/assets/workflow-status-B_zEZCnR.js +0 -1
  696. package/dist/assets/workflow-store-DH4q15s9.js +0 -1
  697. package/dist/assets/workspace-page-Dbwb2RCx.js +0 -1
  698. package/dist/assets/workspace-path-links-Y-WgBhhL.js +0 -1
  699. package/dist/assets/workspace-theme-tokens-DmrDqHwx.js +0 -1
  700. package/dist/assets/workspace-tree-query-DnEMWZ1K.js +0 -1
  701. package/dist/assets/wrench-ajjC5omI.js +0 -1
  702. package/dist/assets/x-nhRPd-Mz.js +0 -1
  703. package/dist/assets/xterm-addon-fit-DIrY4yvs.js +0 -1
  704. package/dist/assets/zap-Db0KA7N4.js +0 -1
  705. /package/dist/assets/{account-Cs9SXbU1.js → account-B6zEi6O8.js} +0 -0
  706. /package/dist/assets/{account-DWeaNEN6.js → account-WSklJ2-s.js} +0 -0
  707. /package/dist/assets/{app-types-CpnkPGh8.js → app-types-BSxLQFrc.js} +0 -0
  708. /package/dist/assets/{credential-requests-D74qo-et.js → credential-requests-DQ9WS6Rl.js} +0 -0
  709. /package/dist/assets/{credential-requests-BsHMMFoG.js → credential-requests-DUwvVpZo.js} +0 -0
  710. /package/dist/assets/{definitions-BKQ6A5IV.js → definitions-BTBjNf1i.js} +0 -0
  711. /package/dist/assets/{definitions-Bi8Nex3B.js → definitions-Dz0UVs0Z.js} +0 -0
  712. /package/dist/assets/{emoji-catalog-data-81v3IYMV.js → emoji-catalog-data-a3DXKyhe.js} +0 -0
  713. /package/dist/assets/{format-file-size-gDJ7ppQ0.js → format-file-size-BCpFMv3k.js} +0 -0
  714. /package/dist/assets/{home-C5CVL0Ta.js → home-BWUNWNMl.js} +0 -0
  715. /package/dist/assets/{home-QpGM3cDE.js → home-DJ6q91Qp.js} +0 -0
  716. /package/dist/assets/{library-mD_34-zu.js → library-Bu_eLt14.js} +0 -0
  717. /package/dist/assets/{library-a7r2rPRX.js → library-Diqzwx-J.js} +0 -0
  718. /package/dist/assets/{link-click-LjKsC7uu.js → link-click-DpfLT-iQ.js} +0 -0
  719. /package/dist/assets/{logs-DYhiKdQ8.js → logs-Bs19Ze4Q.js} +0 -0
  720. /package/dist/assets/{logs-CwEMxFk_.js → logs-FJQpRVDW.js} +0 -0
  721. /package/dist/assets/{machine-sizes-DOMlCbKb.js → machine-sizes-C3ptouhz.js} +0 -0
  722. /package/dist/assets/{onboarding-step-layout-_Fbi43YU.js → onboarding-step-layout-BlSoa02H.js} +0 -0
  723. /package/dist/assets/{plugin-attribution-7tkVwdle.js → plugin-attribution-c6x0DrZM.js} +0 -0
  724. /package/dist/assets/{profile-metadata-BPGeIeNj.js → profile-metadata-Bk4pj7o_.js} +0 -0
  725. /package/dist/assets/{radio-card-nav-C67JvVkE.js → radio-card-nav-DlRweN3g.js} +0 -0
  726. /package/dist/assets/{remote-web-Btj-E-og.js → remote-web-9YsnKwue.js} +0 -0
  727. /package/dist/assets/{remote-web-yAGitwPt.js → remote-web-bapYzahN.js} +0 -0
  728. /package/dist/assets/{chunk-jRWAZmH_.js → rolldown-runtime-BM3Ffeng.js} +0 -0
  729. /package/dist/assets/{schedules-K8jULmC8.js → schedules-CYD1CzCP.js} +0 -0
  730. /package/dist/assets/{schedules-Dd44UKOx.js → schedules-DhwNRBkz.js} +0 -0
  731. /package/dist/assets/{terminal-CazBoirG.js → terminal-7pMYRiby.js} +0 -0
  732. /package/dist/assets/{terminal-DP646Xj3.js → terminal-BMbpDjYx.js} +0 -0
  733. /package/dist/assets/{src-CfUWwwYf.css → vendor-CfUWwwYf.css} +0 -0
  734. /package/dist/assets/{workspace-Dva7bu2g.js → workspace-BAHtR2RN.js} +0 -0
  735. /package/dist/assets/{workspace-xgS4oaDo.js → workspace-BnkQd2SU.js} +0 -0
@@ -1,3 +0,0 @@
1
- var e={description:`Если включено, сотрудники Vellum смогут заходить в ассистента и его данные для отладки. Лучше держать это выключенным и включать только на время, если поддержке Vellum нужно разобрать проблему.`,loadError:`Не удалось загрузить настройку согласия.`,loginNotice:`Вход на платформу Vellum для управления доступом администраторов к данным.`,title:`Разрешить доступ сотрудникам`,toastDisabled:`Доступ администраторов к данным выключен.`,toastEnabled:`Доступ администраторов к данным включён.`,toastUpdateFailed:`Не удалось обновить согласие на доступ к журналам.`},t={alreadyOnPro:`План Pro уже активен.`,back:`Назад`,cancel:`Отмена`,confirmDowngrade:`Подтвердить понижение`,creditBundleUpdated:`Пакет кредитов обновлён.`,downgradeIntro:`При понижении пропадут эти функции Pro:`,downgradeTitle:`Перейти на Base?`,footerNote:`План можно сменить или отменить в любой момент в настройках оплаты.`,heroSubtitle:`Выбор плана для ассистента.`,heroTitle:`Ассистент по своему вкусу`,loadPlansError:`Не удалось загрузить планы. Повторить позже.`,loadingPlans:`Загрузка планов...`,machineDowngradeFeature:`Меньше CPU и памяти у ассистента: он перейдёт на меньший вычислительный профиль.`,pickTiersError:`Нужен выбор уровня машины и хранилища, чтобы продолжить.`,planUpdated:`План обновлён.`,updateFailed:`Не удалось обновить план. Повторите попытку.`,upgradeFailed:`Не удалось начать повышение. Повторите попытку.`,upgradePlanTitle:`Повысить план`},n={chooseProfilePlaceholder:`Выбор профиля…`,description:`Профиль, к которому ассистент обращается за вторым мнением, когда хочет проверить план или свою работу.`,title:`Советник`},r={defaultEntryMeta:`По умолчанию`},i={archive:`В архив`,archiveFailed:`Не удалось архивировать диалог.`,archiving:`Архивация`,emptyActive:`Нет активных диалогов`,emptyAll:`Диалогов пока нет`,emptyArchived:`Нет архивных диалогов`,filterActive:`Активные`,filterAll:`Все`,filterArchived:`Архив`,filterAria:`Фильтр диалогов`,loadError:`Не удалось загрузить диалоги`,loading:`Загрузка диалогов`,noMatch:`Нет диалогов по запросу "{query}"`,retry:`Повторить`,searchPlaceholder:`Поиск диалогов`,unarchive:`Вернуть из архива`,unarchiveFailed:`Не удалось вернуть диалог из архива.`,unarchiving:`Возврат из архива`,untitled:`Диалог без названия`},a={checkingDescription:`Проверяем доступ к уведомлениям на этом устройстве.`,checkingLabel:`Проверка`,deniedDescription:`Уведомления выключены в настройках Android.`,deniedLabel:`Выкл`,grantedDescription:`Уведомления на этом устройстве разрешены.`,grantedLabel:`Вкл`,openSettings:`Открыть настройки`,promptDescription:`Включение уведомлений в настройках Android для оповещений.`,promptLabel:`Не включены`,title:`Push-уведомления`,unsupportedDescription:`Настройки уведомлений недоступны в этой версии приложения.`,unsupportedLabel:`Недоступно`},o={columnCreated:`Создана`,columnReady:`Готова`,columnSnapshotName:`Имя снимка`,columnType:`Тип`,copyFailed:`Не удалось скопировать имя снимка.`,copySnapshotName:`Скопировать имя снимка`,createBackup:`Создать резервную копию`,createFailedToast:`Не удалось создать резервную копию.`,createSuccessToast:`Резервное копирование запущено. Скоро появится в списке.`,creating:`Создание…`,empty:`Для этого ассистента нет резервных копий.`,loadFailed:`Не удалось загрузить резервные копии.`,loading:`Загрузка резервных копий...`,notReady:`Резервная копия ещё не готова`,oldestRemovedNotice:`Новая резервная копия удалит самую старую.`,pending:`Ожидание`,ready:`Готова`,restore:`Восстановить`,restoreFailedToast:`Не удалось восстановить резервную копию.`,restoreMessage:`Восстановить из резервной копии "{name}"?
2
-
3
- На время восстановления ассистент будет недоступен.`,restoreSuccessToast:`Резервная копия успешно восстановлена.`,restoreTitle:`Восстановить резервную копию`,typeDoctor:`Doctor`,typePointInTime:`На момент времени`,typePreview:`Preview`,typeScheduled:`По расписанию`},s={allAssistantsSubtitle:`{count, plural, one {Найден # ассистент.} few {Найдено # ассистента.} many {Найдено # ассистентов.} other {Найдено # ассистента.}}`,allAssistantsTitle:`Все ассистенты`,assistantId:`ID ассистента`,created:`Создан`,current:`Текущий`,hatch:`Создать`,hatchConfirmMessage:`Точно создать нового ассистента? Будет развёрнута новая инфраструктура.`,hatchConfirmTitle:`Создать нового ассистента`,hatchDescription:`Развернуть нового ассистента. Это может занять немного времени.`,hatchExistingToast:`Ассистент уже есть. Новый не создан.`,hatchFailedToast:`Не удалось создать ассистента.`,hatchSubtitle:`Создать новый экземпляр ассистента.`,hatchSuccessToast:`Новый ассистент успешно создан.`,hatchTitle:`Создать нового ассистента`,infoEmpty:`Ассистент не найден. Создание ассистента, чтобы начать.`,infoLoading:`Загрузка сведений об ассистенте...`,infoSubtitle:`Сведения о текущем ассистенте.`,infoTitle:`Сведения об ассистенте`,lastModified:`Последнее изменение`,machineId:`ID машины`,name:`Имя`,status:`Статус`,unnamed:`Без имени`,version:`Версия`},c={active:`Активный`,subtitle:`Выбор ассистента, активного для этого аккаунта.`,switch:`Переключить`,switchedToast:`Активный ассистент переключён.`,title:`Сменить ассистента`,unnamed:`Без имени`},l={cancel:`Отмена`,current:`Сейчас: {duration}`,days:`{days, plural, one {# день} few {# дня} many {# дней} other {# дня}}`,daysHours:`{days}д {hours}ч`,hours:`{hours, plural, one {# час} few {# часа} many {# часов} other {# часа}}`,idleTimeout:`Таймаут простоя`,idleTimeoutDescription:`Как долго ассистент может простаивать, прежде чем его усыпят. "Никогда" полностью отключает сон по простою.`,loadError:`Не удалось загрузить политику сна. Обновите страницу и повторите попытку.`,loading:`Загрузка настроек сна...`,minutes:`{minutes, plural, one {# минута} few {# минуты} many {# минут} other {# минуты}}`,neverSleep:`Никогда (сон выключен)`,preset10Min:`10 мин`,preset14Days:`14 дней`,preset1Day:`1 день`,preset1Hour:`1 час`,preset30Days:`30 дней`,preset3Days:`3 дня`,preset3Hours:`3 часа`,preset5Min:`5 мин`,preset7Days:`7 дней`,presetNever:`Никогда`,save:`Сохранить`,saveErrorToast:`Не удалось сохранить политику сна. Повторите попытку.`,savedToast:`Политика сна сохранена.`,seconds:`{seconds}с`},u={account:`Аккаунт`,assistantId:`ID ассистента`,cpuUsage:`Загрузка CPU`,created:`Создан`,description:`Описание`,diskUnavailable:`Статус диска недоступен`,diskUsage:`Использование диска`,empty:`Ассистент не найден. Создание ассистента, чтобы начать.`,loadHealthzFailed:`Не удалось загрузить сведения об ассистенте`,loading:`Загрузка сведений об ассистенте...`,loadingCpu:`Загрузка статуса CPU...`,loadingDisk:`Загрузка статуса диска...`,loadingMemory:`Загрузка статуса памяти...`,machineId:`ID машины`,memoryUsage:`Использование памяти`,name:`Имя`,status:`Статус`,unknown:`Неизвестно`,usedOf:`занято {used} из {total}`,version:`Версия`},d={loadErrorToast:`Не удалось загрузить сведения об ассистенте`,loading:`Загрузка терминала...`,loginNotice:`Вход на платформу Vellum для открытия сессии терминала.`,noAssistant:`Ассистент не найден. Создание ассистента для терминала.`,subtitle:`Интерактивная сессия оболочки на машине ассистента`,targetContainer:`Целевой контейнер`,title:`Терминал`},f={alreadyOnVersion:`Текущая версия ассистента является актуальной.`,confirmPreviewMessage:`Обновить до предварительной версии {version}? На время обновления ассистент будет недоступен.`,confirmPreviewTitle:`Обновить предварительную версию`,confirmRollbackMessage:`Откатить до версии {version}? Ассистент ненадолго станет недоступен.`,confirmRollbackTitle:`Откатить ассистента`,confirmUpdateMessage:`Обновить до версии {version}? На время обновления ассистент будет недоступен.`,confirmUpdateTitle:`Обновить ассистента`,current:`Текущая`,currentSuffix:`(текущая)`,latest:`последняя`,latestSuffix:`(последняя)`,loading:`Загрузка...`,noReleases:`Нет доступных релизов`,previewRelease:`Предварительный релиз`,rollback:`Откатить`,rollbackTo:`Откатить до`,rollingBack:`Откат...`,selected:`Выбрана`,successRolledBack:`Успешно откатили до версии {version}.`,successUpdated:`Успешно обновили до версии {version}.`,toastRollbackComplete:`Откат завершён. Ассистент в порядке.`,toastRollbackFailed:`Не удалось запустить откат. Повторите попытку.`,toastRollbackInitiated:`Откат до {version} запущен.`,toastUpdateComplete:`Обновление завершено. Ассистент в порядке.`,toastUpdateFailed:`Не удалось запустить обновление. Повторите попытку.`,toastUpdateInitiated:`Обновление до {version} запущено.`,unknown:`неизвестно`,update:`Обновить`,updatePreview:`Обновить Preview`,updateTo:`Обновить до`,updateToVersion:`Обновить до {version}`,updating:`Обновление...`,usingPreviewReleases:`Используются релизы Preview. <stableLink>Вернуться на Stable</stableLink>`},p={addCreditCard:`Добавить карту`,addPaymentMethod:`Добавить способ оплаты`,adjust:`Изменить`,capProgress:` / {cap} в этом месяце`,connectCardBanner:`Для автопополнения нужно привязать карту.`,declinedCutoffNotice:`Автопополнение приостановлено после нескольких отклонённых платежей. Добавление нового способа оплаты снова его включит.`,disableError:`Не удалось выключить автопополнение. Повторите попытку.`,dismiss:`Скрыть`,loadError:`Не удалось загрузить настройки автопополнения.`,loading:`Загрузка…`,summary:`Добавлять {amount}, когда баланс опускается ниже {threshold}`,toggleLabel:`Включить автопополнение`,updateError:`Не удалось сохранить настройки автопополнения. Повторите попытку.`},m={disable:`Выключить`,disabling:`Выключение…`,keepEnabled:`Оставить включённым`,message:`Автопополнение остановится. Сохранённый способ оплаты останется в аккаунте.`,title:`Выключить автопополнение?`},h={amountLabel:`Сумма автопополнения`,cancel:`Отмена`,capLabel:`Месячный лимит трат`,save:`Сохранить`,thresholdLabel:`Пополнять, когда баланс ниже`},g={addressFormLoadError:`Не удалось загрузить форму адреса для оплаты. Закройте окно и откройте его снова.`,cancel:`Отмена`,confirmFailed:`Не удалось сохранить способ оплаты.`,paymentFormLoadError:`Не удалось загрузить форму оплаты. Закройте окно и откройте его снова.`,save:`Сохранить`,savedToast:`Способ оплаты сохранён.`,setupError:`Не удалось начать привязку карты. Повторите попытку.`,title:`Сохранить способ оплаты`,tryAgain:`Попробовать снова`,unavailable:`Привязка способа оплаты сейчас недоступна. Повторить позже.`},_={backgroundConfirmContinue:`Продолжить`,backgroundConfirmKeepWaiting:`Подождать ещё`,backgroundConfirmTitle:`Продолжить в фоне?`},v={billingTab:`Оплата`,billingUnavailable:`Оплата недоступна при текущем состоянии ассистента.`,finishSetupBody:`Почта ассистента ещё не настроена.`,finishSetupButton:`Завершить настройку`,finishSetupTitle:`Завершение настройки плана {plan}`,loadingBilling:`Загрузка оплаты…`,platformLoginNotice:`Вход на платформу Vellum для управления оплатой и использованием.`,usageTab:`Использование`},y={addCreditsButton:`Добавить кредиты`,balanceLabel:`Кредиты`,degradedNotice:`Не удалось посчитать ожидающие списания. Показанный баланс может быть неполным.`,earnCreditsButton:`Заработать бесплатные кредиты`,loadError:`Не удалось загрузить сводку по оплате. Повторить позже.`,loading:`Загрузка сводки по оплате...`,lowBalanceToggle:`Своё оповещение о низком балансе`,noInfo:`Нет сведений об оплате.`,subtitle:`Краткая сводка по балансам и не только`,title:`Кредиты`},b={endOfBillingPeriod:`конца расчётного периода`,proCanceled:`План Pro отменён. Доступ сохранится до {date}.`,proReactivated:`План Pro снова активен.`,subscriptionUpdated:`Подписка обновлена.`},x={successToast:`Оплата получена! Баланс кредитов скоро обновится.`,topUpCancelToast:`Оплату отменили. Кредиты не добавлены.`,upgradeCancelToast:`Повышение отменено. План не изменился.`},S={empty:`Нет данных об использовании за этот период`},C={backToAllUsage:`Ко всему использованию`,chartMetricAria:`Метрика графика`,eventsLabel:`События`,llmDimensionAria:`Измерение расходов LLM`,llmSpend:`Расход LLM`,loadError:`Не удалось загрузить данные об использовании.`,metricEvents:`События`,metricSpend:`Расход ($)`,oauthSpend:`Расход OAuth`,spendLabel:`Расход`,subtitle:`Обзор расходов.`,title:`Расход кредитов`},w={description:`Когда сессия истечёт, подтверди вход через {label}, а не заново.`,descriptionWithPasscode:`Когда сессия истечёт, подтверди вход через {label} или код устройства, а не заново.`,title:`Безопасность`,useForSignIn:`Использовать {label} для входа`},T={emptyDescription:`Наведение на любое сообщение и нажатие значка закладки сохраняет его сюда.`,emptyTitle:`Нет закладок`,errorDescription:`Что-то пошло не так. Повторите попытку.`,errorTitle:`Не удалось загрузить закладки`,open:`Открыть`,removeBookmark:`Убрать закладку`,retry:`Повторить`,untitledConversation:`Диалог без названия`},E={affectedSummary:`{count, plural, one {# действие сейчас использует {profile}} few {# действия сейчас используют {profile}} many {# действий сейчас используют {profile}} other {# действия сейчас используют {profile}}}`,applyTo:`{count, plural, one {Применить к # действию} few {Применить к # действиям} many {Применить к # действиям} other {Применить к # действиям}}`,cancel:`Отмена`,changeToLabel:`Сменить на`,chooseActions:`Выбор действий для обновления.`,clearAll:`Снять все`,currentlyUsingLabel:`Сейчас используется`,intro:`Обновление действий, которые сейчас используют один профиль. Результат сохранится как отдельные переопределения.`,noticeBody:`Это меняет выбранные действия, которые сегодня используют {sourceLabel}. Постоянного правила между профилями не появится.`,noticeTitle:`Это произойдёт один раз.`,selectAll:`Выбрать все`,successToast:`{count, plural, one {Обновлено # действие} few {Обновлены # действия} many {Обновлено # действий} other {Обновлено # действия}} на "{targetLabel}".`,targetPlaceholder:`Выбор профиля…`,title:`Сменить переопределения действий`,updateFailedToast:`Не удалось обновить переопределения. Повторите попытку.`,viaDefault:`По умолчанию`,viaOverride:`Переопределение`,willChange:`{count, plural, one {# действие изменится} few {# действия изменятся} many {# действий изменятся} other {# действия изменятся}}`},D={defaultProfileSuffix:`· По умолчанию: {label}`,modelLabel:`Модель`,overrideAriaLabel:`Переопределить {displayName}`,pickModelError:`Выбор модели`,providerLabel:`Провайдер`,unavailableOption:`{name} (недоступно)`},O={completeFailed:`Не удалось завершить вход. Повторите попытку.`,completeSignIn:`Завершить вход`,completingSignIn:`Завершение входа...`,connected:`Подписка ChatGPT успешно подключена.`,intro:`Подключение подписки ChatGPT для моделей OpenAI без API-ключа.`,invalidUrl:`Некорректный URL. Вставка полного URL из адресной строки.`,missingCode:`В URL нет кода авторизации. Копирование URL целиком.`,missingState:`В URL нет параметра state. Копирование URL целиком.`,pasteUrlError:`Вставка URL со страницы ошибки.`,signInButton:`Войти через ChatGPT`,startFailed:`Не удалось начать вход через ChatGPT. Повторите попытку.`,startingSignIn:`Начинаем вход...`,step1Idle:`1. Нажатие "Войти через ChatGPT" ниже открывает всплывающее окно`,step1PasteUrl:`1. Нажатие "Войти через ChatGPT" открывает всплывающее окно`,step2:`2. Вход, затем страница ошибки: так и должно быть`,step3:`3. Копирование полного URL из адресной строки этой страницы и вставка ниже`,tryAgain:`Попробовать снова`,urlPlaceholder:`Callback URL...`},k={body:`Разовый кредит {amount}: сразу зачислим его на баланс. Платить не нужно.`,claim:`Забрать {amount} кредитами`,decline:`Нет, спасибо`,errorToast:`Не удалось добавить кредиты. Повторите попытку.`,grantedToast:`На аккаунт добавлено {amount} кредитами.`,title:`Держи {amount} от нас`,unavailableToast:`Это предложение больше недоступно.`},A={awaitingReturnMessage:`Оплата открылась в браузере. Завершение там повышает план.`,checkoutFailedMessage:`Не удалось начать оплату. Повторите попытку.`,continueSetup:`Продолжить настройку`,preparingCheckout:`Готовим оплату…`,preparingCheckoutAriaLabel:`Готовим оплату`,reopenCheckout:`Открыть оплату снова`,tryAgain:`Попробовать снова`,viewPlans:`Смотреть планы`},j={communityHubDescription:`Витрины, гайды и проекты от сообщества.`,communityHubTitle:`Центр сообщества`,discordBenefitAnswers:`Быстрее получай ответы от сообщества`,discordBenefitFeedback:`Отзывы и предложения функций`,discordBenefitTeam:`Прямое общение с командой`,discordLabel:`Discord`,discordSubtitle:`Общение с командой, отзывы, предложения функций и быстрые ответы.`,discordTitle:`Присоединяйся к сообществу`,followOnXDescription:`Обновления продукта, релизы и закулисье.`,followOnXTitle:`Подписаться в X`,heroDescription:`Vellum разрабатывают вместе с растущим сообществом разработчиков, дизайнеров и экспериментаторов. Ты тоже можешь присоединиться.`,heroTag:`Сообщество`,heroTitle:`Помоги улучшить ассистента`,joinDiscord:`Присоединиться к Discord`,moreFromVellum:`Ещё от Vellum`,openSourceBenefitContribute:`Исправления и новые функции`,openSourceBenefitIssues:`Issues и сообщения об ошибках`,openSourceBenefitStar:`Звезда репозиторию`,openSourceLabel:`Open Source`,openSourceSubtitle:`Исходный код Vellum.`,openSourceTitle:`Репозиторий Vellum`,starOnGitHub:`Звезда на GitHub`,viewSource:`Смотреть исходники`,youtubeChannelDescription:`Обзоры, туториалы и разборы продукта.`,youtubeChannelTitle:`Канал YouTube`},M={assistantFallbackName:`твоему ассистенту`,returnTo:`Вернуться к {assistantName}`,title:`Всё готово!`},N={advancedCron:`Дополнительно: cron-выражение`,atMinute:`В минуту`,atTime:`Во время`,backToSimple:`← Назад к простому конструктору`,cancel:`Отмена`,create:`Создать расписание`,createFailed:`Не удалось создать расписание.`,creating:`Создание…`,cronAriaLabel:`Cron-выражение`,cronContinuePrompt:`Ввод cron-выражения для продолжения.`,cronHelper:`Стандартный cron из 5 полей (минута час день месяц день недели). Выражения RRULE тоже принимаются.`,dayOfMonthAriaLabel:`День месяца`,description:`Назначь повторяющуюся инструкцию ассистенту. Запускается в режиме execute: сообщение доставляется ассистенту при каждом срабатывании.`,descriptionLabel:`Описание`,descriptionPlaceholder:`Для чего это расписание?`,frequencyAriaLabel:`Как часто срабатывает расписание`,frequencyDaily:`Ежедневно`,frequencyHourly:`Каждый час`,frequencyMonthly:`Ежемесячно`,frequencyWeekly:`Еженедельно`,hourAriaLabel:`Час`,lastDay:`Последний день`,messageLabel:`Сообщение`,messagePlaceholder:`Что ассистент должен сделать при каждом срабатывании?`,minuteAriaLabel:`Минута`,nameLabel:`Название`,namePlaceholder:`Утренний брифинг`,onDay:`В день`,onTheseDays:`В эти дни`,periodAm:`AM`,periodAriaLabel:`AM или PM`,periodPm:`PM`,repeatLabel:`Повтор`,timezoneNote:`Время в часовом поясе устройства: {timezone}.`,title:`Создать расписание`},P={addedMetadata:`добавлено {date}`,clickToRevealTitle:`Нажатие, чтобы показать`,configureAriaLabel:`Настроить {name}`,configureButton:`Настроить`,copyFailedToast:`Не удалось скопировать. Показ значения и копирование вручную.`,copyValueAriaLabel:`Скопировать значение {name}`,copyValueTitle:`Скопировать значение`,deleteLabel:`Удалить`,generateLinkLabel:`Создать ссылку`,hideValueAriaLabel:`Скрыть значение {name}`,hideValueTitle:`Скрыть значение`,revealFailedToast:`Не удалось показать {name}.`,revealValueAriaLabel:`Показать значение {name}`},F={addButton:`Добавить`,addCredentialButton:`Добавить учётные данные`,copyLinkButton:`Скопировать ссылку`,credentialSourceAriaLabel:`Источник учётных данных`,deleteConfirmLabel:`Удалить`,deleteConfirmMessage:`Удалить {name}? Инструменты и интеграции, которые ими пользуются, потеряют доступ.`,deleteConfirmTitle:`Удалить учётные данные`,deleteErrorToast:`Не удалось удалить учётные данные`,deleteSuccessToast:`Удалено: {name}.`,emptySubtitle:`Добавление API-ключа или токена, чтобы инструменты и интеграции могли им пользоваться.`,emptyTitle:`Учётных данных пока нет`,generateLinkFailedToast:`Не удалось создать одноразовую ссылку`,inUseConfirmLabel:`Всё равно удалить`,inUseMessage:`{count, plural, one {{name}: учётные данные, которыми подключение {connections} отправляет запросы. Если их удалить, это подключение перестанет отвечать, пока не будут добавлены новые.} few {{name}: учётные данные, которыми подключения {connections} отправляют запросы. Если их удалить, эти подключения перестанут отвечать, пока не будут добавлены новые.} many {{name}: учётные данные, которыми подключения {connections} отправляют запросы. Если их удалить, эти подключения перестанут отвечать, пока не будут добавлены новые.} other {{name}: учётные данные, которыми подключения {connections} отправляют запросы. Если их удалить, эти подключения перестанут отвечать, пока не будут добавлены новые.}}`,inUseTitle:`Учётные данные используются`,linkCopiedToast:`Ссылка скопирована в буфер обмена.`,linkCopyFailedToast:`Не удалось скопировать ссылку. Копирование вручную.`,linkLabel:`Ссылка`,managedTag:`Управляемые`,noMatch:`Нет учётных данных по запросу "{query}".`,oneTimeLinkModalDescription:`Эту ссылку нужно передать тому, кто должен предоставить {name}. Она сработает ровно один раз{expiresClause}. У кого есть ссылка, тот может задать эти учётные данные, поэтому передавать её стоит по надёжному каналу.`,oneTimeLinkModalExpiresClause:` и истекает {expiresAt}`,oneTimeLinkModalTitle:`Одноразовая ссылка на учётные данные`,searchAriaLabel:`Поиск учётных данных`,searchPlaceholder:`Поиск учётных данных`,segmentManaged:`Управляемые`,segmentYourOwn:`Свои`,subtitleManaged:`Выдаются через управляемые интеграции Vellum. Здесь они только для чтения.`,subtitleOwn:`Хранятся в зашифрованном виде в хранилище учётных данных ассистента. Значение можно показать по запросу, заменить или удалить в любой момент.`,title:`Секреты`},I={ariaLabel:`Пакет кредитов`,label:`Пакет кредитов`,noBundleOption:`Без пакета кредитов - {price}`,optionLabel:`{label} - {price}`,placeholder:`Выбор пакета кредитов`,tooltip:`Ежемесячный запас кредитов, который добавляется к подписке Pro`},L={cancel:`Отмена`,comparedToPrevious:`{delta} относительно предыдущего ({previous})`,continue:`Продолжить`,creditBundleAriaLabel:`Пакет кредитов`,creditBundlePlaceholder:`Выбор пакета кредитов`,creditsDocsAriaLabel:`Подробнее о пакетах кредитов`,creditsLabel:`Добавить кредиты:`,learnMore:`Подробнее`,machineSizeAriaLabel:`Размер машины`,machineSizeDocsAriaLabel:`Подробнее о размерах машин`,machineSizeLabel:`Выбор размера машины:`,machineSizePlaceholder:`Выбор размера машины`,noExtraUsage:`Без дополнительного использования`,recap:`Итого`,storageAriaLabel:`Хранилище`,storageDocsAriaLabel:`Подробнее о хранилище`,storageLabel:`Выбор хранилища:`,storagePlaceholder:`Выбор хранилища`,subtitle:`Просто лучше.`,title:`Сборка плана`,totalBilledMonthly:`Итого · Ежемесячная оплата`,usageBundleAriaLabel:`Пакет использования`,usageBundleDocsAriaLabel:`Подробнее о пакетах использования`,usageBundleLabel:`Добавить пакет использования:`,usageBundlePlaceholder:`Выбор пакета использования`,yourSelection:`Выбор:`},R={configure:`Настроить`,currentPlanTag:`Текущий план`,genericDescriptor:`Выбор CPU, RAM и хранилища. Или просто добавление токенов.`,prompt:`Нужно что-то ближе к текущим задачам?`,title:`Свой план`},z={errorDecimals:`Не больше двух знаков после запятой`,errorEmpty:`Ввод дневного лимита`,errorMin:`Не меньше $1`,helperText:`Сбрасывается каждый день в {time}.`,inputLabel:`Перестать тратить кредиты Vellum после`,loadError:`Не удалось загрузить настройки дневного лимита кредитов.`,loading:`Загрузка…`,progress:`сегодня потрачено {spent} из {limit}`,reachedNotice:`Сегодняшний расход кредитов Vellum достиг этого лимита. Генерация возобновится в {time} или после повышения лимита.`,requiredNote:`Пока включено автопополнение, дневной лимит кредитов обязателен.`,resumeError:`Не удалось возобновить дневной лимит кредитов. Повторите попытку.`,resumeNow:`Возобновить сейчас`,save:`Сохранить`,saveError:`Не удалось сохранить дневной лимит кредитов. Повторите попытку.`,skippedNotice:`На сегодня пропущен. Этот лимит снова заработает в {time}.`,toggleLabel:`Дневной лимит кредитов`},B={backups:`Резервные копии`,loadFailedToast:`Не удалось загрузить сведения об ассистенте`,loading:`Загрузка сведений об ассистенте...`,loginNotice:`Вход на платформу Vellum для управления резервными копиями.`,noAssistant:`Ассистент не найден. Создание ассистента для отладочных элементов.`,onboardingClearedToast:`Флаги онбординга сброшены.`,replay:`Повторить`,replayDescription:`Сброс локальных флагов онбординга и повтор экранов конфиденциальности и создания. Текущий ассистент сохранится.`,replayTitle:`Повторить онбординг (только Vellum)`,restartDescription:`Перезапустить машину ассистента. На время перезапуска он будет недоступен.`,restartTitle:`Перезапустить ассистента`,subtitle:`Управление резервными копиями, перезапуск ассистента или вход в режим восстановления для отладочного терминала.`,title:`Общие`},V={confirmLabel:`Удалить аккаунт`,confirmMessage:`Это навсегда удалит аккаунт и все связанные данные. Отменить это нельзя.`,confirmTitle:`Удалить аккаунт`,deleteMyAccount:`Удалить мой аккаунт`,description:`Навсегда удалить аккаунт и все связанные данные.`,platformLoginNotice:`Вход на платформу Vellum для удаления аккаунта.`,title:`Удалить аккаунт`,toastFailed:`Не удалось запросить удаление аккаунта. Повторите попытку.`,toastRequested:`Удаление аккаунта запрошено. Скоро сессия закроется.`},H={disabled:`Режим разработчика выключен`,enabled:`Режим разработчика включён`,loading:`Загрузка версии...`},U={sectionsAriaLabel:`Разделы для разработчиков`,tabFeatureFlags:`Флаги функций`,tabLifecycle:`Жизненный цикл ассистента`,tabMemory:`Память`,tabSentry:`Тесты Sentry`},W={allowOnce:`Разрешить один раз`,alwaysAllow:`Всегда разрешать`,backUp:`Сделать копию`,backupPromptBody:`Doctor сейчас запустит <toolCode>{toolName}</toolCode>. Сначала сделать резервную копию рабочей области?`,backupPromptTitle:`Создать резервную копию перед изменениями?`,completedStep:`Выполнен 1 шаг`,confirmationRequired:`Нужно подтверждение`,copyAria:`Скопировать в буфер обмена`,copyAriaCopied:`Скопировано`,copyError:`Не удалось скопировать сообщение.`,copyTitle:`Копировать`,copyTitleCopied:`Скопировано!`,deny:`Запретить`,failedStep:`Не выполнен 1 шаг`,feedbackBody:`Отправка вместе с журналами, пока Doctor ищет исправление или обходной путь.`,feedbackTitle:`Похоже на отзыв для команды Vellum.`,gladSolved:`Рад, что получилось!`,hideDetails:`Скрыть детали`,notSolved:`Не решено`,notSolvedAria:`Нет, проблема не решена`,output:`Вывод`,runningStep:`Выполняется 1 шаг`,shareFeedback:`Отправить отзыв`,showDetails:`Показать детали`,skip:`Пропустить`,solvedAria:`Да, проблема решена`,technicalDetails:`Технические детали`,toolLabel:`Инструмент:`},G={connecting:`Подключение...`,copiedToast:`Сессия скопирована в буфер обмена.`,copyFailed:`Не удалось скопировать сессию.`,copySession:`Скопировать сессию`,endSession:`Завершить сессию`,goToNewest:`К новому`,goToNewestAria:`К самому новому сообщению`,idleDescription:`Запуск диагностической сессии: Doctor разберёт ассистента, найдёт проблемы и предложит или применит исправления. Doctor бесплатный. Журналы Doctor могут храниться временно.`,idleTitle:`Doctor ассистента`,loading:`Загрузка...`,newSession:`Новая сессия`,noAssistant:`Ассистент не найден. Создание ассистента для Doctor.`,placeholderApproval:`"approve" или "deny", либо сообщение...`,placeholderMessage:`Сообщение...`,sendMessageAria:`Отправить сообщение`,sessionMenu:`Параметры сессии`,shareFeedback:`Отправить отзыв`,startSession:`Начать сессию Doctor`,thinking:`Думает…`,title:`Doctor`},K={subdomainAriaLabel:`Поддомен`},q={continue:`Продолжить`,domainLockedMessage:`Этот домен уже задан и его нельзя сменить.`,domainSetRedirecting:`Домен задан, перенаправляем…`,handleImmutableNotice:`После установки идентификатор сменить нельзя.`,handleLabel:`Идентификатор (публичный)`,machineBusyNotice:`Ассистент перезапускается: домен можно будет задать чуть позже.`,next:`Далее`,prefixLabel:`Префикс`,registerSubdomainFailed:`Не удалось зарегистрировать этот поддомен. Выбор другого.`,skip:`Пропустить`,subtitle:`Настройка почты для ассистента.`,title:`Почта ассистента`},J={body:`При понижении пропадут эти функции Pro:`,confirm:`Подтвердить понижение`,keepPro:`Оставить Pro`,title:`Перейти на Base?`},Y={addressLabel:`Адрес`,checkingSubscription:`Проверка подписки…`,confirm:`Подтвердить`,create:`Создать`,createEmailFailedFallback:`Не удалось создать адрес почты.`,creating:`Создание…`,domainLabel:`Домен`,domainRegisteredToast:`Домен {domain} зарегистрирован.`,domainReleaseFailedToast:`Не удалось освободить домен.`,domainReleasedToast:`Домен освобождён.`,emailAddressLabel:`Адрес почты`,emailCreatedToast:`Адрес почты создан.`,emailRemoveFailedToast:`Не удалось удалить адрес почты.`,emailRemovedToast:`Адрес почты удалён.`,emailUsernameAriaLabel:`Имя пользователя почты`,emailUsernamePlaceholder:`hi`,enterSubdomainError:`Ввод поддомена.`,enterUsernameError:`Ввод имени пользователя почты.`,register:`Зарегистрировать`,registerDomainFailedFallback:`Не удалось зарегистрировать домен.`,registering:`Регистрация…`,releaseConfirm:`Освободить`,releaseDomainAriaLabel:`Освободить домен`,releaseDomainConfirmMessage:`Точно освободить <code>{domain}</code>? Поддомен станет доступен другим.`,releaseDomainTitle:`Освободить домен`,removeAddressFirstToast:`Сначала удаление адреса почты.`,removeConfirm:`Удалить`,removeEmailAriaLabel:`Удалить адрес почты`,removeEmailConfirmMessage:`Точно удалить <code>{address}</code>? Ассистент больше не сможет отправлять и получать почту на этот адрес.`,removeEmailTitle:`Удалить адрес почты`,retry:`Повторить`,setSubdomainConfirmMessage:`<code>{subdomain}</code> также станет публичным идентификатором ассистента. После установки его нельзя сменить.`,setSubdomainTitle:`Задать поддомен`,subdomainExamplePlaceholder:`my-assistant`,subdomainFallback:`поддомен`,subdomainHint:`У каждого ассистента свой поддомен. Только строчные латинские буквы, цифры и дефисы.`,subdomainLabel:`Поддомен`,subscriptionWarningBody:`Не удалось связаться со службой оплаты. Форма ниже считает, что управляемая почта включена для организации. Если это не так, регистрация домена не сработает.`,subscriptionWarningTitle:`Не удалось проверить статус подписки`,upgradeButton:`Повысить план`,upgradeNoticeBody:`Переход на план, в котором у ассистента есть свой адрес почты. Настраивать провайдера не нужно.`,upgradeNoticeTitle:`Адрес почты для ассистента`,usageSummary:`сегодня отправлено {sent} / {limit} · получено {received}`},X={apiKeyConfigured:`API-ключ {providerName} настроен. Повторная настройка: запуск навыка <code>{setupSkill}</code>.`,connecting:`Подключение к платформе Vellum…`,openProvider:`Открыть {providerName}`,platformLoginNotice:`Вход на платформу Vellum для управления настройками почты.`,providerLabel:`Провайдер`,saveSuccessToast:`Настройки почты сохранены.`,setupInstructions:`Настройка {providerName} через CLI ассистента: запрос ассистенту запустить навык <code>{setupSkill}</code>. Он поможет сохранить API-ключ, определить домен и (по желанию) подключить входящий webhook.`,subtitle:`Настройка отправки и получения почты ассистентом`,title:`Почта`},Z={cancel:`Отмена`,codeLabel:`6-значный код`,codePlaceholder:`123456`,copyError:`Не удалось скопировать ключ настройки.`,copySuccess:`Ключ настройки скопирован.`,description:`Сканирование QR-кода приложением-аутентификатором, например Google Authenticator или 1Password, и ввод показанного 6-значного кода.`,errorCodeMismatch:`Код не совпал. Проверьте приложение-аутентификатор и повторите попытку.`,errorSessionExpired:`Сессия настройки истекла. Отсканируйте новый QR-код и повторите попытку.`,errorThrottledInline:`Слишком много попыток. Повторите попытку через минуту.`,errorVerifyFailed:`Не удалось проверить код. Повторите попытку чуть позже.`,manualKeyHint:`Если сканирование не удалось: ввод этого ключа настройки вручную:`,qrCodeAlt:`QR-код для приложения-аутентификатора`,title:`Настроить приложение-аутентификатор`,toastEnabled:`Двухфакторная аутентификация включена.`,toastFactorLimitReached:`Приложение-аутентификатор уже настроено. Удали его, прежде чем добавлять другое.`,toastNoWorkosAccount:`Двухфакторная аутентификация доступна только для аккаунтов платформы Vellum.`,toastStartFailed:`Не удалось начать настройку. Повторите попытку.`,toastThrottled:`Слишком много попыток. Повторите попытку через минуту.`,verify:`Проверить`,verifying:`Проверка…`},Q={emailRootDomain:`Корневой домен почты`,emailRootDomainDescription:`Корневой домен для почтовых адресов ассистента (например, vellum.me).`,nonProduction:`Не production`,nonProductionDescription:`Означает среду не для production. Включает интерфейсы и диагностику только для разработки.`,nonProductionOffAriaLabel:`Не production выключено`,nonProductionOnAriaLabel:`Не production включено`,subtitle:`Переопределения конфигурации среды для этой сессии.`,title:`Среда`},$={fetchErrorTitle:`Не удалось открыть оплату`,goToBilling:`К оплате`},ee={defaultLabel:`По умолчанию:`,empty:`(пусто)`,enterValue:`Значение...`,expectedOneOf:`Ожидается одно из: {values}`,flagOffAriaLabel:`{label} выключен`,flagOnAriaLabel:`{label} включён`,noMatching:`Нет подходящих флагов.`,off:`Выкл`,on:`Вкл`,scopeAssistant:`ассистент`,scopeClient:`клиент`,searchPlaceholder:`Поиск флагов...`,subtitle:`Активные флаги функций для текущей сессии.`,title:`Флаги функций`,valueAriaLabel:`Значение {label}`},te={bodyCancelOnly:`Подписка будет отменена в конце текущего расчётного периода. Доступ Pro сохранится до этого момента.`,bodyCancelOnlyPortal:`Перенаправление в Stripe, чтобы отменить подписку.`,bodyWithFeatures:`При понижении пропадут эти функции Pro. Подписка будет отменена в конце текущего расчётного периода.`,bodyWithFeaturesPortal:`При понижении пропадут эти функции Pro. Перенаправление в Stripe, чтобы отменить подписку.`,cancel:`Отмена`,confirm:`Перейти на Base`,title:`Перейти на Base?`},ne={chooseAssistant:`Выбрать ассистента`,computeResourcesLoginNotice:`Вход на платформу Vellum для управления вычислительными ресурсами.`,computeResourcesSubtitle:`Использование ресурсов и управление вычислительным профилем ассистента.`,computeResourcesTitle:`Вычисления и ресурсы`,current:`Текущий`,customize:`Настроить`,dangerZoneTitle:`Опасная зона`,preferencesSubtitle:`Настройка того, как ассистент выглядит на этом устройстве.`,preferencesTitle:`Предпочтения`,retireAssistantDescription:`Навсегда удалить этого ассистента и все связанные данные.`,retireAssistantLoginNotice:`Вход на платформу Vellum для удаления этого ассистента.`,retireAssistantTitle:`Удалить ассистента`,sleepPolicyLoginNotice:`Вход на платформу Vellum для управления политикой сна.`,sleepPolicySubtitle:`Настройка того, как долго этот ассистент остаётся активным в простое.`,sleepPolicyTitle:`Политика сна`,switchAssistantSubtitle:`Выбор ассистента, к которому подключено это устройство.`,switchAssistantTitle:`Сменить ассистента`,twoFactorDescription:`При входе потребуется код из приложения-аутентификатора.`,twoFactorLoginNotice:`Вход на платформу Vellum для управления двухфакторной аутентификацией.`,twoFactorTitle:`Двухфакторная аутентификация`,updateWindow:`Окно обновления`,updatesLoginNotice:`Вход на платформу Vellum для управления обновлениями ПО.`,versionSubtitle:`Управление версией ПО ассистента и обновлениями.`,versionTitle:`Версия`},re={body:`Функции Pro сохранятся до этой даты.`,reactivate:`Возобновить`,title:`План Pro закончится {date}.`},ie={activeModelLabel:`Активная модель`,apiKeyLabel:`API-ключ`,configUpdateFailedToast:`Не удалось обновить конфигурацию ассистента. Повторите попытку.`,geminiApiKeyPlaceholder:`API-ключ Gemini`,localPreferencesFailedToast:`Сохранено, но локальные предпочтения записать не удалось.`,modelAriaLabel:`Модель генерации изображений`,modelUpdateFailedToast:`Не удалось обновить модель генерации изображений. Повторите попытку.`,openaiApiKeyPlaceholder:`API-ключ OpenAI`,providerAriaLabel:`Провайдер генерации изображений`,providerLabel:`Провайдер`,savedToast:`Настройки генерации изображений сохранены.`,subtitle:`Настройка модели, которой ассистент генерирует изображения`,title:`Генерация изображений`,vellumNote:`Генерация изображений идёт через аккаунт Vellum.`},ae={accountFallback:`Аккаунт {name}`,close:`Закрыть`,confirm:`Подтвердить`,disconnect:`Отключить`,disconnectFailedToast:`Не удалось отключить аккаунт {name}.`,disconnectMessage:`Отключить {account}? Потом можно подключить снова.`,disconnectTitle:`Отключить {name}?`,disconnectedToast:`Аккаунт {name} отключён.`,loginNotice:`Вход на платформу Vellum для управления подключениями OAuth.`,managedTab:`Управляемые`,oauthModeAriaLabel:`Режим OAuth`,subtitle:`Настроить OAuth {name}`,subtitleWithDescription:`Настроить OAuth {name} для {description}`,title:`OAuth {name}`,yourOwnTab:`Свои`},oe={configure:`Настроить`,disable:`Выключить`,disconnect:`Отключить`,disconnectFailedToast:`Не удалось отключить аккаунт {name}.`,disconnectMessage:`Отключить аккаунт {name}? Потом можно подключить снова.`,disconnectTitle:`Отключить {name}?`,disconnectedToast:`Аккаунт {name} отключён.`,editConnections:`Изменить подключения`,enable:`Включить`},se={accountConnectedToast:`Аккаунт {providerLabel} успешно подключён.`,accountConnectedToastGeneric:`Аккаунт успешно подключён.`,connectFailedToast:`Не удалось подключить {providerLabel}.`,connectFailedToastGeneric:`Не удалось подключить. Повторите попытку.`,emptyAllEnabledTitle:`Все интеграции включены`,emptyDefaultSubtitle:`Проверьте подключение и повторите попытку.`,emptyDefaultTitle:`Нет доступных интеграций`,emptyEnabledSubtitle:`Подключение интеграции для начала работы.`,emptyEnabledTitle:`Нет включённых интеграций`,emptyNotEnabledSubtitle:`Все доступные интеграции уже подключены.`,emptySearchSubtitle:`Нет интеграций по запросу "{query}"`,emptySearchTitle:`Нет подходящих интеграций`,filterAll:`Все`,filterAriaLabel:`Фильтр интеграций`,filterEnabled:`Включённые`,filterNotEnabled:`Не включённые`,loadFailed:`Не удалось загрузить интеграции. Повторите попытку.`,loading:`Загрузка...`,noAssistant:`Ассистент не найден. Создание ассистента для интеграций.`,oauthErrorDenied:`Авторизацию отклонили. Повторите попытку.`,oauthErrorExchangeFailed:`Не удалось завершить авторизацию. Повторите попытку.`,oauthErrorIdentityFailed:`Не удалось подтвердить личность аккаунта. Повторите попытку.`,oauthErrorStateExpired:`Авторизация истекла. Повторите попытку.`,oauthErrorStateInvalid:`Состояние авторизации было недействительным. Повторите попытку.`,searchAriaLabel:`Поиск интеграций`,searchPlaceholder:`Поиск интеграций`,tabMcp:`MCP`,tabOAuth:`OAuth`,tipBanner:`<tip>Совет:</tip> интеграции можно включать, упоминая их в диалоге.`},ce={columnAction:`Действие`,columnAmount:`Сумма`,columnDate:`Дата`,columnStatus:`Статус`,downloadAll:`Скачать все`,downloadAllFailed:`Не удалось скачать счета.`,downloadPdfAriaLabel:`Скачать PDF счёта`,empty:`Счетов нет`,hideButton:`Скрыть счета`,loadError:`Не удалось загрузить счета.`,loadMore:`Загрузить ещё`,loadMoreError:`Не удалось загрузить ещё счета.`,loading:`Загрузка счетов...`,retry:`Повторить`,showButton:`Показать счета`,showLess:`Свернуть`,showMore:`Ещё ({count})`,title:`Счета`,view:`Открыть`},le={defaultProviderUnavailable:`Провайдер по умолчанию недоступен.`,manage:`Управлять`,overridesTitle:`Переопределения`,subtitle:`Профили выбирают, какая модель отвечает. Провайдеры дают к ней доступ`,title:`Языковая модель`},ue={change:`Сменить`,subtitle:`Язык речи для ассистента. Применится со следующего сообщения с голосом.`,title:`Язык прослушивания`},de={errorDecimals:`Не больше двух знаков после запятой`,errorRange:`Должно быть от $1 до $1,000`,helperText:`Если не задано, по умолчанию {amount}`,label:`Оповестить, когда баланс опустится ниже`,loadError:`Не удалось загрузить настройки оповещения о низком балансе.`,loading:`Загрузка…`,reset:`Сбросить к значению по умолчанию`,save:`Сохранить`,saveError:`Не удалось сохранить оповещение о низком балансе. Повторите попытку.`},fe={actionOverridesTitle:`Переопределения действий`,cancel:`Отмена`,clauseActionOverrides:`используется в {count, plural, one {# переопределении действия} few {# переопределениях действий} many {# переопределениях действий} other {# переопределениях действий}}`,clauseDefaultProfile:`это профиль по умолчанию`,clauseRunsBoth:`выполняет {schedules, plural, one {# расписание} few {# расписания} many {# расписаний} other {# расписания}} и {reminders, plural, one {# напоминание} few {# напоминания} many {# напоминаний} other {# напоминания}}`,clauseRunsReminders:`выполняет {count, plural, one {# напоминание} few {# напоминания} many {# напоминаний} other {# напоминания}}`,clauseRunsSchedules:`выполняет {count, plural, one {# расписание} few {# расписания} many {# расписаний} other {# расписания}}`,disabledTargetTooltip:`Включение этого профиля переносит на него расписания.`,moreSchedules:`и ещё {count}`,reassignAndDelete:`Переназначить и удалить`,replacementLabel:`Профиль на замену`,replacementPlaceholder:`Выбор замены…`,saving:`Сохранение…`,scheduleLookupFailed:`Не удалось проверить, какие расписания используют этот профиль. Любое расписание, привязанное к нему, тоже перейдёт на замену.`,schedulesTitle:`Расписания`,summaryNoReferences:`Выбор профиля на замену для "{display}". Всё, что ещё на него указывает, перейдёт туда до удаления.`,summaryOneClause:`"{display}" {clause1}. Выбор замены ниже: эти ссылки перейдут на неё, затем "{display}" будет удалён.`,summaryThreeClauses:`"{display}" {clause1}, {clause2} и {clause3}. Выбор замены ниже: эти ссылки перейдут на неё, затем "{display}" будет удалён.`,summaryTwoClauses:`"{display}" {clause1} и {clause2}. Выбор замены ниже: эти ссылки перейдут на неё, затем "{display}" будет удалён.`,title:`Выбор профиля на замену`},pe={accountFallback:`Аккаунт {name}`,connectAccount:`Подключить аккаунт`,connectAccountLower:`Подключить аккаунт`,connectToContinue:`Подключение аккаунта для продолжения`,disconnectAriaLabel:`Отключить {account}`,waitingForAuthorization:`Ожидание авторизации...`},me={addServer:`Добавить сервер`,adding:`Добавление...`,apiKeyHeaderPlaceholder:`X-API-Key`,apiKeyLabel:`API-ключ`,apiKeyPlaceholder:`sk_...`,argsLabel:`Аргументы (через пробел)`,argsPlaceholder:`--port 3000`,authApiKey:`API-ключ`,authBearer:`Bearer-токен`,authNone:`Нет`,authOAuth:`OAuth`,authenticationLabel:`Аутентификация`,bearerPlaceholder:`tok_...`,bearerTokenLabel:`Bearer-токен`,cancel:`Отмена`,commandLabel:`Команда`,commandPlaceholder:`npx -y @modelcontextprotocol/server-example`,description:`Подключение сервера Model Context Protocol расширяет набор инструментов.`,headerNameLabel:`Имя заголовка`,namePlaceholder:`my-server`,oauthHint:`Учётные данные OAuth настроятся через авторизацию в браузере после добавления сервера.`,serverNameLabel:`Имя сервера`,serverUrlLabel:`URL сервера`,title:`Добавить MCP-сервер`,transportLabel:`Транспорт`,transportSse:`SSE`,transportStdio:`Stdio (команда)`,transportStreamableHttp:`Потоковый HTTP`,urlPlaceholder:`https://example.com/mcp`},he={addServerButton:`Добавить сервер`,emptyAddSubtitle:`Добавление MCP-сервера расширяет ассистента внешними инструментами.`,emptyChatSubtitle:`Сообщить ассистенту о необходимости настроить MCP-сервер.`,emptyTitle:`Нет MCP-серверов`,loadError:`Не удалось загрузить MCP-серверы. Проверь, что ассистент запущен.`,loading:`Загрузка MCP-серверов...`,reloadAriaLabel:`Перезагрузить MCP-серверы`,reloadTooltip:`Перезагрузить все серверы`,removeDialogConfirm:`Удалить`,removeDialogMessage:`Точно удалить "{serverId}"? Это отключит все инструменты этого сервера.`,removeDialogTitle:`Удалить MCP-сервер`,setupPrompt:`Помоги настроить MCP-сервер, чтобы расширить тебя внешними инструментами.`,subtitle:`Управление подключениями серверов Model Context Protocol и их зарегистрированными инструментами.`,title:`MCP-серверы`,toastAddFailed:`Не удалось добавить {name}`,toastAdded:`Добавлен {name}`,toastAlreadyAuthenticated:`{serverId} уже аутентифицирован`,toastAuthFailed:`Аутентификация не удалась для {serverId}`,toastAuthPollingFailed:`Опрос аутентификации не удался для {serverId}`,toastAuthStartFailed:`Не удалось начать аутентификацию для {serverId}`,toastAuthTimedOut:`Время аутентификации истекло для {serverId}`,toastAuthenticatedSuccess:`{serverId} успешно аутентифицирован`,toastDisableFailed:`Не удалось выключить {serverId}`,toastEnableFailed:`Не удалось включить {serverId}`,toastOAuthRevokeFailed:`Не удалось отозвать OAuth для {serverId}`,toastOAuthRevoked:`Учётные данные OAuth отозваны для {serverId}`,toastReloadFailed:`Не удалось перезагрузить MCP-серверы`,toastReloadSuccess:`MCP-серверы перезагружены`,toastRemoveFailed:`Не удалось удалить {serverId}`,toastRemoved:`Удалён {serverId}`,toastUpdateFailed:`Не удалось обновить {serverId}`,toastUpdated:`Обновлён {serverId}`,totalTokens:`~{count} токенов всего`,totalTools:`{count, plural, one {всего # инструмент} few {всего # инструмента} many {всего # инструментов} other {всего # инструмента}}`},ge={authenticate:`Аутентифицировать`,authenticating:`Аутентификация...`,configure:`Настроить`,configureTooltip:`Настроить`,estimatedTokens:`~{count} токенов`,oauthBadge:`OAuth`,reAuth:`Повторная аутентификация`,reAuthTooltip:`Повторно аутентифицировать OAuth`,registeredTools:`{count, plural, one {# зарегистрированный инструмент} few {# зарегистрированных инструмента} many {# зарегистрированных инструментов} other {# зарегистрированных инструмента}}`,removeServerAriaLabel:`Удалить {serverId}`,removeServerTooltip:`Удалить сервер`,revoke:`Отозвать`,revokeOAuthTooltip:`Отозвать учётные данные OAuth`,revoking:`Отзыв...`,statusConnected:`Подключён`,statusDisabled:`Выключен`,statusError:`Ошибка`,statusNeedsAuth:`Нужна аутентификация`,toggleDisableAriaLabel:`Выключить {serverId}`,toggleEnableAriaLabel:`Включить {serverId}`,toolCount:`{count, plural, one {# инструмент} few {# инструмента} many {# инструментов} other {# инструмента}}`,toolTokensAbbrev:`~{count} ток`},_e={apiKey:`API-ключ`,apiKeyPlaceholder:`sk_...`,apiKeyPlaceholderKeep:`•••••••• (пустое поле сохраняет текущий)`,authApiKey:`API-ключ`,authBearerToken:`Bearer-токен`,authNone:`Нет`,authentication:`Аутентификация`,bearerToken:`Bearer-токен`,bearerTokenPlaceholder:`tok_...`,bearerTokenPlaceholderKeep:`•••••••• (пустое поле сохраняет текущий)`,cancel:`Отмена`,defaultRiskLevel:`Уровень риска по умолчанию`,description:`транспорт {transport} · {status}`,emptyDescription:`-`,headerName:`Имя заголовка`,headerNamePlaceholder:`X-API-Key`,oauthBadge:`OAuth`,oauthManagedHint:`управляется через поток OAuth`,registeredToolsHeading:`Зарегистрированные инструменты ({count})`,riskHigh:`Высокий`,riskLow:`Низкий`,riskMedium:`Средний`,save:`Сохранить`,saving:`Сохранение...`,tableDescription:`Описание`,tableTokens:`Токены`,tableTool:`Инструмент`,tokenOverhead:`Оценка накладных токенов: ~{count} токенов`,toolEstimatedTokens:`~{count}`},ve={add:`Добавить`,addDomainLabel:`Добавить домен`,addDomainPlaceholder:`Добавить домен (например, example.com)`,allowlist:`Список разрешённых доменов видео`,autoToggle:`Автоматические встраивания медиа`,domainCount:`{count, plural, one {# домен} few {# домена} many {# доменов} other {# домена}}`,removeDomainAria:`Удалить {domain}`,resetDefaults:`Сбросить к значениям по умолчанию`,subtitle:`Автоматически встраивать изображения, видео и другое медиа из сообщений диалога.`,title:`Встраивание медиа`},ye={disabledToast:`Память выключена.`,enableAriaLabel:`Включить память`,enabledToast:`Память включена.`,subtitle:`Пусть ассистент запоминает сведения из прошлых диалогов. Если выключить, пауза также коснётся консолидации памяти.`,title:`Память`,updateFailedToast:`Не удалось обновить настройку памяти.`},be={ariaLabel:`Включить ретроспективы памяти`,description:`Пусть ассистент в фоне перечитывает недавние диалоги и сохраняет то, что упустил в момент разговора. Если поставить на паузу, остальная память продолжит работать.`,title:`Ретроспективы`,toastEnabled:`Ретроспективы памяти включены.`,toastFailed:`Не удалось обновить ретроспективы памяти.`,toastPaused:`Ретроспективы памяти на паузе.`},xe={ariaLabel:`Включить фоновый процесс памяти`,description:`Запускать консолидацию памяти в отдельном фоновом процессе. Он стартует сам; останови его, чтобы приостановить фоновую обработку памяти до следующего перезапуска.`,title:`Фоновый процесс`,toastFailed:`Не удалось обновить фоновый процесс.`,toastStarted:`Фоновый процесс запущен.`,toastStopped:`Фоновый процесс остановлен.`},Se={customCallSiteModel:`Своя модель точки вызова`,defaultMainAgent:`По умолчанию (основная модель ассистента)`,defaultNamed:`По умолчанию ({name})`,label:`Профиль модели`,override:`Переопределение ({name})`},Ce={ariaLabel:`Профиль модели`},we={benefitBiometric:`Биометрический вход`,benefitHaptics:`Нативная тактильная отдача`,benefitHomeScreen:`Доступ с домашнего экрана`,benefitPush:`Push-уведомления`,download:`Скачать`,subtitle:`Приложение Vellum для {appName} даёт нативный опыт.`,title:`Скачать приложение {appName}`},Te={description:`Настройка уведомлений Vellum на этом устройстве Android.`,title:`Уведомления`},Ee={emptySearch:`Нет действий по твоему поиску.`},De={advisorSection:`Советник`,bulkChange:`Массовая смена`,bulkChangeNoCandidatesTitle:`Сейчас ни одно действие не использует профиль`,bulkChangeUnsavedTitle:`Сначала сохранение или сброс изменений`,customProfileOption:`Свой`,description:`Настройка профиля модели для отдельных действий. Если переопределения нет, берётся профиль по умолчанию.`,loadErrorHint:`Проверьте, что ассистент запущен`,loadErrorTitle:`Не удалось загрузить действия`,otherDomain:`Другое`,overridesResetToast:`Переопределения сброшены.`,overridesSavedToast:`Переопределения сохранены.`,resetConfirmMessage:`Все переопределения действий сбросятся и вернутся к значениям по умолчанию. Это нельзя отменить.`,resetFailedToast:`Не удалось сбросить переопределения. Повторите попытку.`,resetToDefaults:`Сбросить к значениям по умолчанию`,retry:`Повторить`,save:`Сохранить`,saveFailedToast:`Не удалось сохранить переопределения. Повторите попытку.`,searchPlaceholder:`Поиск действий…`,title:`Переопределения действий`},Oe={cancel:`Отмена`},ke={copyError:`Не удалось скопировать адрес привязки.`,generateButton:`Создать QR для привязки`,generateButtonMinting:`Создание…`,generateButtonRegenerate:`Создать новый код`,generateButtonWarned:`Всё равно создать`,noTunnelMore:`Другие провайдеры и варианты: <code>{command}</code>`,noTunnelNext:`Туннель напечатает адрес https. Вставка в «Публичный URL» ниже; туннель должен оставаться запущенным, пока другие устройства привязаны и используются.`,noTunnelTitle:`Сначала открытие туннеля`,noTunnelWhy:`Другие устройства достучатся до {name} через интернет по туннелю с этого компьютера. В терминале здесь выполни:`,publicUrlDisclosure:`Использовать другой адрес`,publicUrlHelper:`Адрес https, по которому устройства достучатся до этого ассистента (URL Tailscale или другого туннеля).`,publicUrlHelperTunnel:"Этот адрес взят из `vellum tunnel` на этом устройстве. Если публичный адрес ассистента отличается от этого, требуется указать актуальный адрес.",publicUrlLabel:`Публичный URL`,publicUrlPlaceholder:`https://your-assistant.ts.net`,subtitle:`Отсканируйте камерой другого устройства или откройте на нём сгенерированную ссылку, чтобы пользоваться {name}.`,subtitleFallbackName:`этим ассистентом`,title:`Привязать устройство`},Ae={connectivityHint:"Если сканирование не подключается: на хосте должен быть запущен туннель (`vellum tunnel`), публичный URL должен указывать на него, затем создание нового кода.",httpError:`Привязка не удалась (HTTP {status}).`,networkError:`Не удалось достучаться до ассистента. Проверьте, что он запущен, и повторите попытку.`,unexpectedResponse:`Ассистент вернул неожиданный ответ.`},je={copiedButton:`Скопировано`,copyButton:`Копировать`,expiredBody:`Создание нового кода для привязки устройства.`,expiredTitle:`Этот код привязки истёк.`,expiresIn:`Истекает через {time} · одноразовый.`,qrTitle:`QR-код привязки устройства`,singleUse:`Одноразовый.`},Me={loopback:`Это loopback-адрес, до которого другие устройства не достучатся. Нужен публичный https URL ассистента.`,nonHttps:`URL должен использовать https, чтобы устройства подключались безопасно.`,serviceFallbackName:`провайдер туннеля`,serviceWebsite:"Это сайт {service}, а не адрес ассистента. Команда `vellum tunnel` на хосте даёт адрес.",unparseable:`Нужен корректный URL, например https://your-assistant.ts.net.`},Ne={confirmMessage:`Устройство {platform} {hash} потеряет доступ к этому ассистенту. Его токены доступа сразу станут недействительными; чтобы подключиться снова, устройство нужно привязать с этой машины.`,confirmTitle:`Отозвать это устройство?`,dateUnknown:`неизвестно`,hostRevokeDisabledTitle:`Это учётные данные этой же машины; если их отозвать, хост потеряет доступ к ассистенту.`,pairedActiveLine:`Привязано {paired} · Активно сейчас`,pairedAndUsedLine:`Привязано {paired} · Последнее использование {lastUsed}`,pairedLine:`Привязано {paired}`,platformUnknown:`Неизвестно`,revokeButton:`Отозвать`,thisMachine:`Эта машина`,title:`Привязанные устройства ({count})`},Pe={endingIn:`Оканчивается на {last4}`,savedCard:`Сохранённая карта`,updateCard:`Обновить карту`},Fe={addButton:`Добавить способ оплаты`,empty:`Способа оплаты нет. Добавление для автопополнения.`,loadError:`Не удалось загрузить способы оплаты.`,loading:`Загрузка…`,title:`Способ оплаты`},Ie={approveButton:`Одобрить`,denyButton:`Отклонить`,instruction:`Устройство просит доступ к этому ассистенту. Одобрение запроса только после сверки его кода с кодом на запрашивающем устройстве.`,requestedMeta:`Запрос {when} с {ip}`,requestedMetaHost:`Запрос {when} с этого компьютера`,title:`Запросы на привязку`},Le={alreadyOnPlanToast:`Этот план уже активен.`,checkoutFailedToast:`Не удалось начать оплату повышения. Повторите попытку.`,current:`Текущий`,endsOn:`План закончится {date}.`,freeForever:`Бесплатно навсегда`,heading:`План`,loadError:`Не удалось загрузить план.`,loading:`Загрузка плана...`,manageSubscription:`Управление подпиской`,nextPlan:`Следующий план`,powerUp:`Усилить`,powerUpFor:`Усилить за +{amount}/мес`,renewsOn:`Ежемесячная оплата • Подписка автоматически продлится {date}.`,usageBalanceAddCredits:`Добавить`,usageBalanceExhausted:`Добавление кредитов, чтобы продолжить пользоваться ассистентом`,usageBalancePctUsed:`использовано {pct}%`,usageBalanceResets:`Сброс {date}`,usageBalanceTitle:`Баланс использования`,usageChip:`Использование {name}, сброс каждый месяц`,usageIncludedChip:`Входит {label}`,viewAllPlans:`Все планы`},Re={baseFee:`базовая плата {amount}`,baseTagline:`Всё нужное для сильного ассистента`,creditsNotIncluded:`*Кредиты не входят`,current:`Текущий`,currentlyPrice:`Сейчас {price}`,downgradeToBase:`Перейти на Base`,forever:`Навсегда`,free:`Бесплатно`,fromPrice:`От {price}`,keepPlan:`Оставить план`,loadingPlan:`Загрузка плана...`,planEndsOn:`План закончится {date}`,pricingUnavailable:`Цена текущего плана недоступна`,proTagline:`Больше функций, больше вычислений, больше хранилища`,subscriptionChangeTitle:`Подписка Pro изменится с {from} на {to}.`,updatePlan:`Обновить план`,upgradeToPro:`Перейти на Pro`},ze={currentPlan:`Текущий план`,includes:`Входит:`,recommended:`Рекомендуем`},Be={alreadyOnPlanToast:`Этот план уже активен.`,back:`Назад`,billedMonthlyCaption:`Ежемесячная оплата`,cancelAnytimeFooter:`План можно отменить или сменить в любой момент. Подробнее: <docsLink>документация.</docsLink>`,checkoutFailedToast:`Не удалось начать оплату повышения. Повторите попытку.`,downgradeTo:`Перейти на {name}`,featureComputer:`Компьютер {machine}`,featureCreditsIncluded:`Входит {amount} кредитами`,featureStorage:`{gib} ГБ хранилища`,featureUsage:`Использование {name}, сброс каждый месяц`,featureUsageIncluded:`Входит {label}`,foreverCaption:`Навсегда`,freeFeaturePayAsYouGo:`Кредиты по мере использования`,freeFeatureSmallComputer:`Небольшой компьютер`,freeFeatureStorage:`{gib} ГБ хранилища`,freePriceLabel:`Бесплатно`,heading:`Больше мощности для ассистента`,loadingPlansAriaLabel:`Загрузка планов`,planUpdatedToast:`План обновлён.`,startFreeCta:`Начать бесплатно`,subheading:`Выбор уровня под объём задач для этого ассистента.`},Ve={composerTitle:`Поле ввода`,description:`Настройка сочетаний клавиш и поведения Vellum на этом устройстве.`,keyboardShortcutsDescription:`Настройка сочетаний для команд Vellum.`,keyboardShortcutsTitle:`Сочетания клавиш`,launchAtLoginAriaLabel:`Запускать при входе`,launchAtLoginDescription:`Автоматический запуск Vellum при входе в Mac.`,launchAtLoginTitle:`Запускать при входе`,sendWithCmdEnter:`Отправлять через Cmd+Enter`,sendWithCmdEnterHelper:`Если включено, Enter добавляет новую строку, а Cmd+Enter отправляет.`,sendWithCtrlEnter:`Отправлять через Ctrl+Enter`,sendWithCtrlEnterHelper:`Если включено, Enter добавляет новую строку, а Ctrl+Enter отправляет.`,showContextWindow:`Показывать заполнение контекстного окна`,showContextWindowHelper:`Добавляет кольцо у поля ввода, которое показывает, насколько заполнено контекстное окно. Ассистент и так сжимает контекст сам.`,title:`Предпочтения`},He={backupOptionLabel:`{name} - {date}`,cancel:`Отмена`,dataLossBody:`Данные Preview могут быть несовместимы с каналом Stable. Страховочная копия позволит вернуть данные канала Stable, которые были до перехода на Preview.`,dataLossTitle:`При возврате на Stable возможна потеря данных`,latest:`последняя`,latestPreview:`Последняя Preview`,latestStable:`Последняя Stable`,loadErrorBody:`Обновите страницу, прежде чем менять канал релизов.`,loadErrorTitle:`Не удалось загрузить статус канала релизов`,loading:`Загрузка канала релизов...`,mayNotSurviveBody:`Прямой переход на образ Stable без восстановления страховочной копии может привести к потере данных или сделать ассистента непригодным, если данные Preview несовместимы со Stable.`,mayNotSurviveTitle:`Данные Preview могут не пережить этот переход`,noPreviewBody:`Stable остаётся единственным доступным каналом релизов.`,noPreviewTitle:`Релиза Preview нет`,none:`Нет`,optIn:`Перейти на Preview`,optInDescription:`Релизы Preview могут быть нестабильными. Перед сменой образа создаётся страховочная копия на 90 дней.`,optInStep1:`Создать и проверить страховочную копию Preview.`,optInStep2:`Переключиться на образ Preview {version}.`,optInStep3:`Пройти обычный путь обновления и дождаться работоспособности.`,optInTitle:`Перейти на Preview`,optOutDescription:`Выбор способа, как этот ассистент покинет канал Preview.`,optOutTitle:`Вернуться на Stable`,preview:`Preview`,previewEnableFailedToast:`Не удалось включить канал Preview.`,previewEnabledToast:`Канал Preview включён.`,requiresBackupBody:`Этот релиз Preview новее последнего релиза Stable, поэтому прямой переход заблокирован. Дождитесь более нового релиза Stable или запустите Vellum Doctor, если страховочной копии нет.`,requiresBackupTitle:`Для Stable нужна страховочная копия`,restoreBackupHelper:`Вернуться к данным канала Stable, сохранённым до перехода на Preview.`,restoreBackupLabel:`Восстановить страховочную копию`,returnMethodAriaLabel:`Способ возврата на канал Stable`,safetyBackup:`Страховочная копия`,stable:`Stable`,stableBackupLabel:`Stable {version}`,stableEnabledToast:`Канал Stable включён.`,standardUpgradeHelper:`Оставить текущие данные и сразу перейти на образ Stable.`,standardUpgradeLabel:`Перейти на Stable без восстановления копии`,standardUpgradeUnavailable:`Недоступно, потому что последний релиз Stable старше релиза Preview этого ассистента.`,switchBack:`Вернуться на Stable`,switchToStable:`Перейти на Stable`,switching:`Переключение...`,takeBackupAndSwitch:`Сделать копию и переключиться`,title:`Канал релизов`,unavailableBody:`Канал Preview для этого ассистента не включён.`,unavailableTitle:`Канал Preview недоступен`,unknownDate:`Неизвестно`},Ue={llmLogRetentionDescription:`Как долго хранить на этом устройстве журналы запросов и ответов языковой модели. В них записываются промпты и ответы, отправленные провайдерам моделей, и они нужны для отладки. Короткое хранение лучше для приватности, длинное помогает разбирать проблемы.`,llmLogRetentionLabel:`Хранение журналов запросов LLM`,retentionDontRetain:`Не хранить`,retentionKeepForever:`Хранить всегда`,retentionNinetyDays:`90 дней`,retentionOneDay:`1 день`,retentionOneHour:`1 час`,retentionSevenDays:`7 дней`,retentionThirtyDays:`30 дней`,shareAnalyticsHelper:`Отправлять агрегированные данные об использовании продукта`,shareAnalyticsLabel:`Делиться аналитикой`,shareDiagnosticsHelper:`Отправлять отчёты о сбоях, трассы диалогов и данные повторного просмотра сессии`,shareDiagnosticsLabel:`Делиться диагностикой`,subtitleWithPolicy:`Подробнее о том, какие данные мы собираем и как их используем, в нашей <policyLink>политике конфиденциальности</policyLink>.`,title:`Конфиденциальность`},We={contextWindowLabel:`Контекстное окно`,defaultValueLabel:`По умолчанию · {value}`,effortLabel:`Усилие`,effortSegmentDefault:`по умолчанию`,enableExtendedThinkingLabel:`Включить расширенное размышление`,maxOutputTokensLabel:`Макс. токенов на выход`,reset:`Сбросить`,snapshotsHint:`Поля, оставленные по умолчанию, сохраняются с показанными значениями и не изменятся, если значения ассистента по умолчанию позже сменятся.`,speedLabel:`Скорость`,streamThinkingTokensLabel:`Стримить токены размышления`,temperatureLabel:`Температура`,thinkingLevelInheritHint:`(по умолчанию = наследовать)`,thinkingLevelLabel:`Уровень размышления`,tokensAriaLabel:`{label} (токены)`,topPLabel:`Top P`,verbosityLabel:`Подробность`},Ge={profileError:`Сохранено, но тестовый запрос через этот профиль не прошёл: {detail} Проверьте модель и параметры профиля.`,providerError:`Сохранено, но тестовый запрос через этот профиль не прошёл: {detail} Проверьте подключение провайдера "{connection}".`,providerErrorUnnamed:`Сохранено, но тестовый запрос через этот профиль не прошёл: {detail} Проверьте подключение провайдера у профиля.`,transient:`Сохранено, но тестовый запрос через этот профиль не завершился: {detail} Возможно, это временно.`,unknown:`Сохранено, но тестовый запрос через этот профиль не прошёл: {detail}`},Ke={createProfile:`Создать профиль`,defaultTitle:`Профиль`,delete:`Удалить`,deleting:`Удаление…`,managedTag:`Управляет Vellum`,newProfileTitle:`Новый профиль`,save:`Сохранить`,saveAsNew:`Сохранить как новый`,saveChanges:`Сохранить изменения`,saving:`Сохранение…`},qe={maxTokensNoInputRoom:`Макс. токенов ({maxTokens}) занимает всё контекстное окно в {window} токенов под выход, и для сообщений места не остаётся. Уменьшение значения (например, 8000).`,maxTokensOverCap:`Макс. токенов ({maxTokens}) больше максимального выхода модели в {cap} токенов. Уменьшение до {cap} или меньше.`,subscriptionSteeringHint:`Подписка ChatGPT доступна как провайдер ChatGPT.`},Je={activeLabel:`Активный`,addApiKey:`Добавить API-ключ`,advanced:`Дополнительно`,createNewProvider:`+ Создать нового провайдера`,descriptionLabel:`Описание <optional>(необязательно)</optional>`,descriptionPlaceholder:`Когда использовать этот профиль`,displayNameLabel:`Отображаемое имя`,displayNamePlaceholder:`например, Быстрый и дешёвый`,keyLabel:`Ключ`,keyPlaceholder:`например, fast-cheap`,nameLabel:`Имя`,newProviderNote:`Новое подключение провайдера появится в разделе «Провайдеры».`,providerLabel:`Провайдер`,selectProviderPlaceholder:`Выбор провайдера…`,setUp:`Настроить`},Ye={cancel:`Отмена`,close:`Закрыть`,editProfileTitle:`Изменить профиль`,newProfileTitle:`Новый профиль`,platformTag:`Платформа`,profileFallbackTitle:`Профиль`,save:`Сохранить`,saveAsNew:`Сохранить как новый`,saving:`Сохранение…`},Xe={chooseFromList:`Выбрать из списка`,connectionNotFound:`Этот профиль ссылался на учётные данные, которых больше нет. При сохранении он снова будет использовать доступный ключ провайдера.`,customModelAriaLabel:`Свой ID модели`,customModelPlaceholder:`provider/model-id`,enterCustomModelIdHint:`Точный идентификатор модели, который ждёт провайдер. Он уйдёт в подключение как есть.`,enterCustomModelIdOption:`Ввести свой ID модели…`,modelAriaLabel:`Модель`,modelEmptyConfigureConnectionHint:`Моделей нет. Сначала настройка моделей в подключении провайдера.`,modelEmptyConfigureConnectionPlaceholder:`Настройка моделей в подключении`,modelEmptyNoProviderPlaceholder:`Сначала выбор провайдера`,modelEmptyUnknownHint:`Для этого провайдера в этой версии приложения нет моделей. Обновление приложения или свой ID модели.`,modelEmptyUnknownPlaceholder:`Моделей нет`,modelLabel:`Модель`,noProviderConnectionsHint:`Нет подключений провайдеров. Раздел «Провайдеры» для добавления.`,providerLabel:`Провайдер`,providerNotFoundSuffix:`(не найден)`,selectModelError:`Выбор модели.`,selectModelPlaceholder:`Выбор модели`,selectProviderPlaceholder:`Выбор провайдера…`},Ze={actionsAriaLabel:`Действия для {displayName}`,defaultTag:`По умолчанию`,delete:`Удалить`,disable:`Выключить`,disabledTag:`Выключен`,edit:`Изменить`,enable:`Включить`,makeDefault:`Сделать по умолчанию`,managedByVellum:`Управляет Vellum`,openProfileAriaLabel:`Открыть профиль {displayName}`,configIssueModelUnknown:`Модель этого профиля недоступна у его провайдера.`,configIssueNoInputRoom:`Макс. токенов на выход у этого профиля не оставляет места для входа в контекстном окне модели.`,configIssueOverOutputCap:`Макс. токенов на выход у этого профиля больше, чем поддерживает модель.`,providerUnavailableDefault:`Провайдер этого профиля недоступен.`,providerUnavailableFixable:`{message} Нажатие, чтобы исправить.`,view:`Открыть`},Qe={createProfile:`Создать профиль`,emptyState:`Профилей пока нет. Создание профиля, чтобы начать.`,loading:`Загрузка профилей…`,title:`Профили`},$e={add:`Добавить`,addNamed:`Добавить {name}`,addProviderDescription:`Выбор провайдера и вставка API-ключа.`,addProviderTitle:`Добавить провайдера`,advanced:`Дополнительно`,apiKeyPlaceholder:`API-ключ`,baseUrlHintOllama:`Пустое поле: локальный Ollama по умолчанию. Иначе удалённый либо нестандартный хост.`,baseUrlLabel:`Базовый URL`,baseUrlPlaceholder:`https://api.x.ai/v1`,baseUrlPlaceholderOllama:`http://127.0.0.1:11434/v1`,cancel:`Отмена`,customProviderHint:`Свои провайдеры подключаются к любому endpoint с API, совместимым с OpenAI: xAI, Groq, LM Studio, vLLM и похожим.`,customProviderOption:`Свой провайдер`,displayNameLabel:`Отображаемое имя <optional>(необязательно)</optional>`,displayNamePlaceholder:`например, Мой ключ Anthropic`,emptyServerResponse:`Сервер вернул пустой ответ. Повторите попытку.`,enterApiKeyOrCredential:`Ввод API-ключа или выбор существующих учётных данных.`,failedSaveApiKey:`Не удалось сохранить API-ключ. Повторите попытку.`,failedSaveProvider:`Не удалось сохранить провайдера. Повторите попытку.`,localEndpointHint:`Для локальных endpoint ключ можно оставить пустым: они подключаются без ключа.`,modelsHint:`Идентификаторы моделей через запятую, которые отдаёт endpoint.`,modelsLabel:`Модели`,modelsPlaceholder:`model-1, model-2`,nameLabel:`Имя`,namePlaceholder:`xAI`,providerAriaLabel:`Провайдер`,providerConnectedToast:`Провайдер подключён`,providerLabel:`Провайдер`,saving:`Сохранение…`,useChatgptSignIn:`Чтобы подключить подписку: "Войти через ChatGPT".`},et={addProviderTitle:`Добавить провайдера`},tt={advanced:`Дополнительно`,apiKeyLabel:`API-ключ`,cancel:`Отмена`,credentialReferenceAriaLabel:`Ссылка на учётные данные`,credentialReferenceLabel:`Ссылка на учётные данные`,credentialReferenceSuffix:`· Ссылка на учётные данные`,loading:`Загрузка…`,newCredential:`+ Новые учётные данные`,newCredentialNameLabel:`Имя новых учётных данных`,newCredentialPlaceholder:`например, team-key`,use:`Использовать`},nt={apiKeyPlaceholder:`API-ключ`,baseUrlHintOllama:`Пустое поле: локальный Ollama по умолчанию. Иначе удалённый либо нестандартный хост.`,baseUrlLabel:`Базовый URL`,baseUrlPlaceholder:`https://api.example.com/v1`,baseUrlPlaceholderOllama:`http://127.0.0.1:11434/v1`,cancel:`Отмена`,displayNameLabel:`Отображаемое имя <optional>(необязательно)</optional>`,displayNamePlaceholder:`например, Мой ключ Anthropic`,editProviderSettingsFallback:`Изменить настройки провайдера.`,editProviderTitle:`Изменить провайдера`,editingConnection:`Редактирование {name}.`,emptyServerResponse:`Сервер вернул пустой ответ. Повторите попытку.`,failedSaveApiKey:`Не удалось сохранить API-ключ. Повторите попытку.`,failedSaveProvider:`Не удалось сохранить провайдера. Повторите попытку.`,modelsHint:`Идентификаторы моделей через запятую, которые отдаёт endpoint.`,modelsLabel:`Модели`,modelsPlaceholder:`model-1, model-2`,nothingToEdit:`Редактировать нечего. Закройте и повторите попытку.`,saveChanges:`Сохранить изменения`,saving:`Сохранение…`},rt={httpError:`Endpoint вернул HTTP {status} на тестовый запрос.`,notFound:`Endpoint вернул 404 на тестовый запрос: проверка базового пути этого провайдера (например, NVIDIA нужен /v1, OpenRouter нужен /api/v1). Некоторые провайдеры требуют авторизацию, так что это может быть ложная тревога.`,unauthorized:`Endpoint отклонил учётные данные на тестовый запрос (HTTP {status}). Проверьте API-ключ.`,unreachable:`Не удалось достучаться до endpoint на тестовый запрос. Проверьте URL.`},it={actionsAriaLabel:`Действия для {displayName}`,customTag:`Свой`,customTagTitle:`Созданный провайдер на endpoint, совместимом с OpenAI.`,defaultTag:`По умолчанию`,defaultTagTitle:`Встроенные профили (Balanced, Quality, Cost, Speed) используют этого провайдера.`,delete:`Удалить`,edit:`Изменить`,localTag:`Локальный`,localTagTitle:`Запускает модели на этой машине.`,managedTag:`Управляемый`,managedTagTitle:`Работает на управляемых учётных данных Vellum.`,openProviderAriaLabel:`Открыть провайдера {displayName}`,setAsDefault:`Сделать по умолчанию`},at={addProvider:`Добавить провайдера`,empty:`Провайдеров пока нет. Добавление провайдера, чтобы начать.`,loadError:`Не удалось загрузить провайдеров. Повторите попытку.`,title:`Провайдеры`},ot={allDoneStatus:`Готово!`,confirmingCaption:`Это может занять пару секунд.`,continueInBackground:`Продолжить в фоне`,creditsChip:`{count} кредитов`,dimensionsComplete:`{dimensions} готово`,goToBilling:`К оплате`,machineLabel:`Машина`,noExtraUsage:`Без дополнительного использования`,packageChip:`пакет {name}`,planReadyStatus:`План готов`,retryInBackground:`Повторить в фоне`,srOnlyTo:`на`,stalledCaption:`Это может занять пару минут.`,statusComplete:`Готово`,statusPending:`Ожидание`,storageLabel:`Хранилище`,takingLongerStatus:`Это занимает больше времени, чем ожидалось`,tryAgain:`Попробовать снова`,usageLabel:`Использование`,waitingCaptionLong:`Ещё работаем. Это может занять минуту или две.`,waitingCaptionShort:`Это может занять пару секунд.`},st={emptyDefault:`Запусков пока нет.`,error:`Ошибка`,loadMore:`Загрузить ещё`,loadingMore:`Загрузка…`,missed:`Пропущен`,output:`Вывод`,runAtAria:`Запуск в {time}`,skipped:`Пропущен`,title:`Недавние запуски`},ct={activeDescription:`Активен: подключено к отладочному терминалу`,enter:`Войти в режим восстановления`,enterError:`Не удалось войти в режим восстановления. Повторите попытку.`,exitError:`Не удалось выйти из режима восстановления. Повторите попытку.`,inactiveDescription:`Приостановить ассистента и подключиться к его рабочей области через отладочный терминал`,loginNoticeEnter:`Вход на платформу Vellum для перехода в режим восстановления.`,loginNoticeExit:`Вход на платформу Vellum для выхода из режима восстановления.`,resumeAssistant:`Возобновить ассистента`,title:`Режим восстановления`},lt={copied:`Скопировано!`,copyError:`Не удалось скопировать реферальную ссылку.`,copySuccess:`Скопировано в буфер обмена!`,creditsEarned:`Заработано кредитов`,friendsReferred:`Приглашено друзей`,gatedNotice:`Реферальные кредиты сейчас не начисляются. Покупка кредитов или переход на Pro включает начисление. Ссылка-приглашение пока работает.`,loadError:`Не удалось загрузить сведения о реферальной программе.`,loading:`Загрузка...`,shareLink:`Поделиться ссылкой`,subtitleDefault:`Расскажи друзьям о Vellum и получай кредиты за каждую регистрацию.`,subtitleGated:`Пригласи друзей в Vellum. Реферальные кредиты начнут начисляться после покупки кредитов или перехода на Pro.`,subtitleWithAmounts:`Расскажи друзьям о Vellum: вы оба получите {creditAmount} кредитов после их регистрации, всего до {earningCap}.`},ut={title:`Заработать бесплатные кредиты`},dt={apply:`Применить`,applyingResize:`Применяем изменение размера…`,cancel:`Отмена`,cpu:`CPU`,current:`Текущий`,disk:`Диск`,increaseSize:`Увеличить размер`,increaseStorage:`Увеличить хранилище`,machine:`Машина`,machineSize:`Размер машины`,machineSizeAriaLabel:`Размер вычислительной машины`,memory:`Память`,modalDescription:`Измени вычисления и хранилище ассистента. Ассистент ненадолго перезапустится.`,modalTitle:`Изменить размер ассистента`,needMore:`Нужно больше? <upgradeLink>Повысить план</upgradeLink>`,noMachineTier:`Уровень машины не задан. Загляни в сообщество за помощью.`,refreshMetrics:`Обновить метрики ресурсов`,resize:`Изменить размер`,resizeFailed:`Не удалось изменить размер ассистента. Повторите попытку.`,retry:`Повторить`,storage:`Хранилище`,storageAlreadyProvisioned:`Хранилище уже на выделенном размере ({size} ГБ) и не изменится.`,storageExpandFromTo:`Хранилище расширится с {from} ГБ до {to} ГБ.`,storageExpandTo:`Хранилище расширится до {to} ГБ.`,storageUnchanged:`Хранилище не изменится.`,subscriptionLoadError:`Не удалось загрузить подписку. Повторите попытку.`,subtitle:`Использование ресурсов и управление вычислительным профилем ассистента.`,title:`Вычисления и ресурсы`,toastStarted:`Изменение размера запущено. Изменения применятся скоро.`,unavailable:`Недоступно`,upgrade:`Повысить`,upgradeDescription:`Переход на более высокий план: больше мощности, больше хранилища и больший пакет кредитов.`,upgradeTitle:`Повысь план`,usedOf:`{used} из {total}`},ft={button:`Перезапустить`,confirmLabel:`Перезапустить`,confirmMessage:`Точно перезапустить этого ассистента? На время перезапуска он будет недоступен.`,confirmTitle:`Перезапустить ассистента`,failStart:`Не удалось запустить ассистента.`,failStop:`Не удалось остановить ассистента.`,toastFailed:`Не удалось перезапустить ассистента.`,toastRestarting:`Ассистент перезапускается.`},pt={button:`Удалить ассистента`},mt={advanced:`Дополнительно`,backgroundDescription:`Когда ассистент действует без участия пользователя: задачи по расписанию, фоновые задания и внешние триггеры.`,backgroundTitle:`Фон`,conversationsDescription:`Прямое общение с ассистентом.`,conversationsTitle:`Диалоги`,description:`Задай, какие действия ассистент может выполнять без спроса. Каждое действие относится к уровню риска: уровень доступа решает, какие уровни одобряются сами. Правила доверия уточняют это для отдельных действий, повышая или понижая их риск.`,headlessDescription:`Когда запуск идёт извне без интерактивного клиента.`,headlessTitle:`Без интерфейса`,loadError:`Не удалось загрузить настройки порогов. Проверьте соединение и обновите страницу.`,title:`Доступ ассистента`},ht={alreadyOnProfileToast:`Все расписания уже выполняются на {profile}.`,dialogMessage:`{count, plural, one {# из расписаний ниже работает на другой модели. Это перенесёт каждое расписание, включая напоминания, которые ассистент отложил на потом, на {profile}, текущий профиль по умолчанию. Расписания, специально поставленные на другую модель, тоже переедут.} few {# из расписаний ниже работают на другой модели. Это перенесёт каждое расписание, включая напоминания, которые ассистент отложил на потом, на {profile}, текущий профиль по умолчанию. Расписания, специально поставленные на другую модель, тоже переедут.} many {# из расписаний ниже работают на другой модели. Это перенесёт каждое расписание, включая напоминания, которые ассистент отложил на потом, на {profile}, текущий профиль по умолчанию. Расписания, специально поставленные на другую модель, тоже переедут.} other {# из расписаний ниже работают на другой модели. Это перенесёт каждое расписание, включая напоминания, которые ассистент отложил на потом, на {profile}, текущий профиль по умолчанию. Расписания, специально поставленные на другую модель, тоже переедут.}}`,dialogTitle:`Использовать {profile} для всех расписаний?`,moveFailedToast:`Не удалось перенести расписания.`,moveSchedules:`Перенести расписания`,movedToast:`{count, plural, one {Перенесено # расписание на {profile}.} few {Перенесены # расписания на {profile}.} many {Перенесено # расписаний на {profile}.} other {Перенесены # расписания на {profile}.}}`},gt={costFor:`Стоимость {name} за последние 7 дней: {cost}`,loadingUsage:`Загрузка использования расписания`,runsFor:`Запуски {name} за последние 7 дней: {runs}`,unknownStatus:`неизвестно`,viewUsageFor:`Смотреть использование {name}`},_t={errorDescription:`Захватить тестовое исключение Error.`,errorLabel:`Событие Error`,errorSentToast:`Событие ошибки Sentry отправлено.`,fatalDescription:`Отправить событие уровня fatal в Sentry.`,fatalLabel:`Событие Fatal`,fatalSentToast:`Событие fatal Sentry отправлено.`,infoDescription:`Отправить сообщение уровня info.`,infoLabel:`Событие Info`,infoSentToast:`Событие info Sentry отправлено.`,performanceDescription:`Начать и завершить тестовый span транзакции.`,performanceLabel:`Транзакция производительности`,send:`Отправить`,subtitle:`Отправка тестовых событий, чтобы проверить, что интеграция Sentry работает.`,title:`Тесты Sentry`,transactionSentToast:`Транзакция производительности Sentry отправлена.`,warningDescription:`Отправить сообщение уровня warning.`,warningLabel:`Событие Warning`,warningSentToast:`Событие warning Sentry отправлено.`},vt={checkingDomain:`Проверка домена…`,domainVerified:`Домен подтверждён`,failedTitle:`Не удалось подтвердить домен. Записи DNS могли ещё не распространиться. Освободите домен и зарегистрируйте его снова.`,managedLabel:`Управляемые`,managedServicesBanner:`Управляемые сервисы тарифицируются и списываются с баланса аккаунта Vellum. <link>Смотреть цены</link>`,modeToggleAriaLabel:`Режим сервиса`,unknownStatus:`Неизвестный статус`,unknownStatusTitle:`Не удалось получить статус проверки домена.`,verificationFailed:`Проверка не прошла`,verifiedTitle:`Записи DNS подтверждены. Домен готов отправлять и получать почту.`,verifyingDomain:`Проверка домена…`,verifyingTitle:`Записи DNS подготовлены. Ждём, пока почтовый провайдер их подтвердит: обычно это несколько минут.`,yourOwnLabel:`Свои`},yt={alreadyUsedBy:`Уже занято: {label}`,appDescription:`Работают, пока в фокусе окно Vellum.`,appTitle:`Сочетания приложения`,cancel:`Отмена`,conflictNoticePrefix:`Это сочетание уже занято: {label}.`,conflictRecordingHint:`Выбор другой комбинации или Esc, чтобы отменить.`,conflictResetHint:`Сначала удаление или смена этой привязки, потом сброс.`,globalDescription:`Работают везде, даже когда Vellum в фоне.`,globalTitle:`Глобальные сочетания`,none:`Нет`,record:`Записать`,recordShortcutAriaLabel:`Записать сочетание для {label}`,recordingHint:`Запись… нажатие сочетания или Esc отменяет`,removeBindingAriaLabel:`Удалить привязку {label}`,resetShortcutAriaLabel:`Сбросить {label} к значению по умолчанию`},bt={ariaLabel:`Показывать подсказки`,description:`Редкие подсказки в боковой панели про функции, которые ещё не использовались.`,label:`Показывать подсказки`},xt={addSound:`Добавить звук`,allSoundsAdded:`Все звуки добавлены`,defaultBlip:`Сигнал по умолчанию`,enableEvent:`Включить {eventName}`,enableSoundEffects:`Включить звуковые эффекты`,enableSoundEffectsDescription:`Главный переключатель для всех звуков по событиям.`,noSoundFiles:`Звуковых файлов пока нет. Положи аудиофайлы в data/sounds/ в рабочей области.`,preview:`Прослушать`,previewDefaultBlip:`Прослушать сигнал по умолчанию`,previewSoundAriaLabel:`Прослушать {filename}`,removeSoundAriaLabel:`Удалить {filename}`,soundEventCharacterPoke:`Нажатие на персонажа`,soundEventMessageSent:`Сообщение отправлено`,soundEventNeedsInput:`Нужен ввод`,soundEventNewConversation:`Новый диалог`,soundEventNotification:`Уведомление`,soundEventRandom:`Случайный`,soundEventTaskComplete:`Задача выполнена`,soundEventTaskFailed:`Задача не выполнена`,soundEventsDescription:`Добавление одного или нескольких звуков на событие. Если их несколько, проиграется случайный.`,soundEventsTitle:`Звуковые события`,volume:`Громкость`,volumeAriaLabel:`Громкость звуковых эффектов`},St={subtitle:`Настройка того, как ассистент слышит слова`,title:`Речь в текст`},Ct={consolidationName:`Консолидация`,consolidationPausedHelper:`Память выключена, поэтому консолидация на паузе.`,cost7d:`{cost} (7д)`,disabled:`выключено`,enabled:`включено`,heartbeatName:`Пульс`,lastRun:`Последний: {time}`,loadError:`Не удалось загрузить системные задания. <retryButton>Повторить</retryButton>`,nextRun:`Следующий: {time}`,openAriaLabel:`Открыть {name}`,partialLoadError:`Часть системных заданий не загрузилась. <retryButton>Повторить</retryButton>`,paused:`На паузе`,retrospectiveName:`Ретроспектива памяти`,retrospectivePausedHelper:`Ретроспективы выключены в настройках памяти.`,subtitle:`Встроенные задания, которыми управляет среда ассистента`,title:`Система`},wt={cancel:`Отмена`,confirmAndSwitch:`Подтвердить и переключиться`,confirmLabel:`Teleport`,confirmMessage:`Данные скопируются в новую среду. Текущий ассистент останется доступен до подтверждения, что новый работает.`,progressAriaLabel:`Прогресс Teleport`,subtitle:`Перенос ассистента в другую среду размещения.`,title:`Teleport`,tryAgain:`Попробовать снова`,verifyTitle:`Перенос завершён: проверь, что новый ассистент работает.`},Tt={subtitle:`Настройка того, как ассистент произносит слова`,title:`Текст в речь`},Et={ariaLabel:`Тема`,dark:`Тёмная`,light:`Светлая`,system:`Системная`,title:`Тема`,velvet:`Velvet`},Dt={machineAriaLabel:`Уровень машины`,machineLabel:`Машина`,machineOption:`{label} {priceLabel}`,machinePlaceholder:`Выбор уровня машины`,machineTooltip:`Определяет CPU и память, выделенные ассистенту`,priceAddon:`+{price}`,priceCurrent:`({price}, текущий)`,storageAriaLabel:`Уровень хранилища`,storageLabel:`Хранилище`,storageOption:`{gib} ГБ {priceLabel}`,storagePlaceholder:`Выбор уровня хранилища`,storageTooltip:`Постоянное дисковое пространство для файлов и данных ассистента`},Ot={citiesAriaLabel:`Города`,closestCity:`Ближайший город`,noMatchingCities:`Нет подходящих городов`,notSet:`Не задано`,searchPlaceholder:`Поиск города или страны...`,timeZone:`Часовой пояс`},kt={description:`Используется при показе времени и назначении напоминаний.`,title:`Часовой пояс`},At={cancel:`Отмена`,closeAriaLabel:`Закрыть`,defaultDescription:`{tool} - {pattern}`,descriptionLabel:`Описание (необязательно)`,patternFallback:`шаблон`,patternLabel:`Шаблон`,patternPlaceholder:`например, git *`,riskHigh:`Высокий`,riskHighDescription:`Всегда требовать явное одобрение`,riskLevelLabel:`Уровень риска`,riskLow:`Низкий`,riskLowDescription:`Одобрять без спроса`,riskMedium:`Средний`,riskMediumDescription:`Спрашивать перед выполнением`,save:`Сохранить`,saveFailed:`Не удалось сохранить правило доверия.`,saving:`Сохранение…`,title:`Изменить правило доверия`,toolLabel:`Инструмент`},jt={description:`Управление правилами по инструментам: какие действия одобряются сами, а какие требуют явного разрешения.`,manage:`Управлять`,title:`Правила доверия`},Mt={cancel:`Отмена`,defaultTag:`По умолчанию`,delete:`Удалить`,deleteErrorFallback:`Не удалось удалить правило доверия.`,deleteMessage:`Удалить правило риска {risk} для {tool} по шаблону "{pattern}"?`,deleteRuleAria:`Удалить правило {tool}`,deleteTitle:`Удалить правило доверия?`,done:`Готово`,editRuleAria:`Изменить правило {tool}`,empty:`Правил доверия пока нет. Они появляются при классификации действий в запросах разрешения.`,loadErrorFallback:`Не удалось загрузить правила доверия.`,loading:`Загрузка…`,modifiedTag:`Изменено`,riskHigh:`Высокий`,riskLow:`Низкий`,riskMedium:`Средний`,showAllDefaults:`Показать все значения по умолчанию`,title:`Правила доверия`},Nt={checkedAt:`Проверено {when}`,checkingStatus:`Проверяем, доступен ли туннель…`,foreignStatus:`Этот адрес сейчас обслуживает другого ассистента.`,foreignStatusNamed:`Этот адрес сейчас обслуживает {name}, а не этого ассистента.`,healthyStatus:`Туннель запущен и доступен.`,refreshLabel:`Проверить туннель снова`,restartHint:`Повторный запуск туннеля этого ассистента командой <code>{command}</code> в терминале на этом компьютере.`,stoppedRestart:`Команда <code>{command}</code> в терминале на этом компьютере запускает его снова.`,stoppedStatus:`Туннель остановлен, поэтому другие устройства не достучатся до этого ассистента.`,unpairableStatus:`Этот адрес отвечает, но не отдаёт приложение привязки. Запуск туннеля с включённым веб-приложением, чтобы ссылки привязки открывались.`,unreachableStatus:`Этот адрес сейчас не отвечает.`},Pt={addAuthenticatorApp:`Добавить приложение-аутентификатор`,addedOn:` · Добавлено {date}`,authenticatorApp:`Приложение-аутентификатор`,emptyDescription:`Приложение-аутентификатор не настроено. Добавление включает одноразовый код при входе.`,loadError:`Не удалось загрузить приложения-аутентификаторы. <retryButton>Попробовать снова</retryButton>`,loading:`Загрузка приложений-аутентификаторов…`,remove:`Удалить`,removeDialogConfirm:`Удалить`,removeDialogMessage:`При входе больше не будут спрашивать код из этого приложения. Новое приложение-аутентификатор можно настроить в любой момент.`,removeDialogTitle:`Удалить приложение-аутентификатор`,toastRemoveFailed:`Не удалось удалить приложение-аутентификатор. Повторите попытку.`,toastRemoved:`Приложение-аутентификатор удалено.`},Ft={description:`Настройка расписания автоматических обновлений.`,title:`Окно обновления`},It={automaticUpdates:`Автоматические обновления`,automaticUpdatesHelper:`Обновляться автоматически в заданном окне времени`,daily:`Ежедневно`,dayFri:`Пт`,dayMon:`Пн`,daySat:`Сб`,daySun:`Вс`,dayThu:`Чт`,dayTue:`Вт`,dayWed:`Ср`,daysOfMonth:`День(дни) месяца`,daysOfMonthHelper:`Номера дней через запятую (1-31)`,daysOfMonthPlaceholder:`например, 1, 15`,daysOfWeek:`День(дни) недели`,frequency:`Частота`,loadError:`Не удалось загрузить политику окна обновления. Обновите страницу и повторите попытку.`,loading:`Загрузка настроек окна обновления...`,monthly:`Ежемесячно`,savePolicy:`Сохранить политику`,to:`до`,toastSaveFailed:`Не удалось сохранить политику. Повторите попытку.`,toastSaved:`Политика автообновления сохранена.`,updateWindow:`Окно обновления`,updateWindowWithTz:`Окно обновления ({tz})`,weekly:`Еженедельно`},Lt={billingUnavailable:`Оплата недоступна при текущем состоянии ассистента.`,platformLoginNotice:`Вход на платформу Vellum для управления оплатой и использованием.`,redirectingBody:`Возврат в настройки оплаты…`,returnToBilling:`Вернуться к оплате`,title:`Повышение отменено`},Rt={cantConfirmUpgrade:`Не можем подтвердить повышение для текущего ассистента. Вернитесь к оплате и повторите попытку.`,fetchErrorBody:`Не получилось проверить подписку. Повышение, возможно, ещё обрабатывается. Вернитесь к оплате и обновите страницу.`,fetchErrorTitle:`Не удалось открыть оплату`,finalizingBody:`Stripe подтверждает подписку. Обычно это несколько секунд.`,finalizingTitle:`Завершаем повышение…`,goToBilling:`К оплате`,platformLoginNotice:`Вход на платформу Vellum для управления оплатой и использованием.`,processingFallback:`Обработка повышения. Обновление чуть позже покажет новый план.`,successBody:`План Pro активен. Скоро откроется оплата.`,welcomeTitle:`Добро пожаловать в Pro`},zt={analyzeCostsButton:`Разобрать расходы с ассистентом`,breakdownTitle:`По действиям`,cacheCreatedLabel:`Записей в кэш`,cacheReadLabel:`Чтений кэша`,costAssistantSubtitle:`Недавние траты и правка выбора профилей модели.`,costAssistantTitle:`Ассистент по расходам`,costLabel:`Стоимость`,dailyTrend:`Дневной тренд`,dailyTrendBy:`Дневной тренд по {group}`,directInputTokensLabel:`Входные токены`,failedToLoadUsage:`Не удалось загрузить использование.`,groupByActor:`Актор`,groupByConversation:`Диалог`,groupByModel:`Модель`,groupByProfile:`Профиль`,groupByProvider:`Провайдер`,groupBySchedule:`Расписание`,groupByTask:`Действие`,groupColumnLabel:`Группа`,hourlyTrend:`Часовой тренд`,hourlyTrendBy:`Часовой тренд по {group}`,inferenceUsageTitle:`Использование ИИ`,llmCallsLabel:`Вызовы LLM`,noBreakdownDataSubtitle:`Для этой группировки использования нет`,noBreakdownDataTitle:`Нет данных разбивки`,optimizeSettingsButton:`Оптимизировать настройки`,outputTokensLabel:`Выходные токены`,percentOfTotalLabel:`% от всего`,range30d:`Последние 30 дней`,range7d:`Последние 7 дней`,range90d:`Последние 90 дней`,rangeAll:`За всё время`,rangeToday:`Сегодня`,rangeYesterday:`Вчера`,retry:`Повторить`,title:`Использование`,tokensLabel:`Токены`,totalsAriaLabel:`Итого`,turnsLabel:`Ходы`,unknownSchedule:`Неизвестное расписание ({scheduleId})`},Bt={noDailyData:`Нет дневных данных`,noHourlyData:`Нет почасовых данных`,noUsageInRange:`В этом диапазоне использования нет`,total:`Итого`},Vt={openError:`Не удалось открыть портал оплаты. Повторите попытку.`},Ht={cancelFailedToast:`Не удалось отменить подписку. Повторите попытку.`,canceledToast:`План Pro отменён. Доступ сохранится до {date}.`,endOfBillingPeriod:`конца расчётного периода`},Ut={assistantNotReadyToast:`Ассистент не готов. Повторите попытку.`,saveApiKeyFailedToast:`Не удалось сохранить API-ключ {providerName}. Повторите попытку.`},Wt={mintErrorFallback:`Что-то пошло не так при создании кода.`},Gt={actionErrorFallback:`Что-то пошло не так. Повторите попытку.`,denyAlreadyApproved:`Этот запрос уже одобрили в другом месте, поэтому отклонение не сработало, и устройство уже привязано.`,pollErrorFallback:`Что-то пошло не так при проверке запросов на привязку.`},Kt={createdToast:`Профиль "{name}" создан`},qt={deleteFailedToast:`Не удалось удалить провайдера. Повторите попытку.`,deleteInUseToast:`Этот провайдер используется в профиле или как провайдер по умолчанию. Сначала обновление этих настроек, потом удаление.`,setDefaultFailedToast:`Не удалось назначить провайдера по умолчанию. Повторите попытку.`},Jt={consolidationAlreadyQueued:`Консолидация уже в очереди или выполняется.`,consolidationQueued:`Консолидация в очереди.`,consolidationRunFailed:`Не удалось запустить консолидацию.`,heartbeatDisabled:`Пульс выключен.`,heartbeatEnabled:`Пульс включён.`,heartbeatRunFailed:`Не удалось запустить пульс.`,heartbeatSkipped:`Пульс пропущен.`,heartbeatStarted:`Пульс запущен.`,heartbeatToggleFailed:`Не удалось переключить пульс.`},Yt={activationKeyLabel:`Клавиша активации:`,allowMicrophoneAccess:`Разрешить доступ к микрофону`,captionsSubtitle:`Показ в реальном времени того, что говорят пользователь и ассистент при общении голосом.`,captionsTitle:`Субтитры`,customKey:`Своя`,defaultBadge:`По умолчанию`,enableVoiceShortcut:`Включить сочетание клавиш`,fnKeyLabel:`Fn`,fnRefusedNote:`Для Fn нужен мониторинг ввода. Разрешение в Системных настройках или своё сочетание.`,focusedTabNote:`«Нажми и говори» работает только пока эта вкладка в фокусе, и браузеры могут перехватывать некоторые сочетания (например, Ctrl+T) раньше страницы. Для постоянного режима «Нажми и говори»: приложение Vellum, а не веб-версия.`,grantMicrophoneAccessHint:`Разрешение доступа к микрофону показывает доступные устройства ввода.`,interruptSensitivityAriaLabel:`Чувствительность к перебиванию`,interruptSensitivityDescription:`Если фоновые шумы перебивают ассистента, следует снизить чувствительность.`,interruptSensitivityHigh:`Высокая`,interruptSensitivityLabel:`Чувствительность к перебиванию`,interruptSensitivityLow:`Низкая`,interruptSensitivityMedium:`Средняя`,microphoneAriaLabel:`Микрофон`,microphoneFallbackLabel:`Микрофон {index}`,microphoneSubtitle:`Какое устройство ввода используется для диктовки и голосовых разговоров.`,microphoneTitle:`Микрофон`,pauseBeforeReplyAriaLabel:`Пауза перед ответом`,pauseBeforeReplyDescription:`Как долго ассистент ждёт после паузы в речи, прежде чем ответить. Более длинная пауза даёт собраться с мыслями посреди фразы без обрыва.`,pauseBeforeReplyLabel:`Пауза перед ответом`,pressShortcut:`Нажатие сочетания…`,recommendedBadge:`Рекомендуем`,recordingPrompt:`Нажатие аккорда или клавиши…`,resetToDefaults:`Сбросить к значениям по умолчанию`,savedMicrophone:`Сохранённый микрофон`,savedMicrophoneNotConnected:`Сохранённый микрофон (не подключён)`,sectionCaptionsHeading:`Субтитры`,sectionInputDescription:`Как ассистент слышит речь.`,sectionInputHeading:`Ввод`,sectionOutputDescription:`Как звучит ассистент.`,sectionOutputHeading:`Вывод`,shortcutChordHint:`Удержание модификатора (Cmd, Ctrl, Option или Shift) и нажатие клавиши.`,shortcutConflict:`Уже занято: {command}`,speechServicesBannerLink:`Настройка в «Модели и сервисы»`,speechServicesBannerPrompt:`Свой API-ключ для STT или TTS или свой голос?`,systemDefault:`Системный по умолчанию`,turnTakingSubtitle:`Где заканчивается ход пользователя и начинается ход ассистента. Для разговоров без рук. В режиме «нажми и говори» решает клавиша.`,turnTakingTitle:`Смена ходов`,voiceShortcutSubtitle:`Нажатие сочетания начинает или заканчивает разговор голосом из любого места в приложении.`,voiceShortcutSubtitleDesktop:`Глобальное сочетание для начала и окончания разговора голосом.`,voiceShortcutTitle:`Сочетание клавиш`},Xt={changeButton:`Сменить`,creditsNote:`Тратит кредиты Vellum через провайдеров вроде ElevenLabs и Deepgram.`,title:`Голос`,titleWithName:`Голос {name}`},Zt={apiBaseHint:`Пустое поле: облачное значение по умолчанию ({defaultBase}).`,apiBaseLabel:`Ссылка на API`,apiBasePlaceholder:`https://api.fastcrw.com`,apiKeyLabel:`API-ключ`,apiKeyPlaceholder:`API-ключ`,configUpdateFailedToast:`Не удалось обновить конфигурацию ассистента. Повторите попытку.`,localPreferencesFailedToast:`Сохранено, но локальные предпочтения записать не удалось.`,providerLabel:`Провайдер`,savedToast:`Настройки загрузки страниц сохранены.`,subtitle:`Настройка чтения отдельных веб-страниц ассистентом`,title:`Загрузка страниц`},Qt={apiBaseHint:`Пустое поле: облачное значение по умолчанию ({defaultBase}).`,apiBaseLabel:`Ссылка на API`,apiBasePlaceholder:`https://api.fastcrw.com`,apiKeyLabel:`API-ключ`,apiKeyPlaceholder:`API-ключ`,configUpdateFailedToast:`Не удалось обновить конфигурацию ассистента. Повторите попытку.`,localPreferencesFailedToast:`Сохранено, но локальные предпочтения записать не удалось.`,providerAriaLabel:`Провайдер веб-поиска`,providerLabel:`Провайдер`,savedToast:`Настройки веб-поиска сохранены.`,subtitle:`Настройка веб-поиска ассистента`,title:`Веб-поиск`,vellumNote:`Поиск идёт через аккаунт Vellum.`},$t={accountFallback:`Аккаунт {name}`,addAnotherApp:`Добавить ещё одно OAuth-приложение {name}`,addAnotherAppButton:`Добавить ещё приложение`,addApp:`Добавить приложение`,addOwnApp:`Добавление своего OAuth-приложения {name}`,addedOn:`Добавлено {date}`,appAddedToast:`OAuth-приложение {name} добавлено.`,appDeletedToast:`OAuth-приложение удалено.`,cancel:`Отмена`,clientId:`Client ID`,clientIdPlaceholder:`Client ID`,clientSecret:`Client Secret`,clientSecretPlaceholder:`Client secret`,connectAccount:`Подключить аккаунт`,connectFailedToast:`Не удалось начать поток OAuth`,copiedAria:`Скопировано`,copiedToast:`Скопировано в буфер обмена!`,copyFailedToast:`Не удалось скопировать redirect URL.`,copyRedirectAria:`Скопировать redirect URL`,createFailedToast:`Не удалось создать OAuth-приложение`,credentialsNote:`Учётные данные хранятся в зашифрованном виде у ассистента и никогда не отправляются в Vellum.`,delete:`Удалить`,deleteAppAria:`Удалить OAuth-приложение {id}`,deleteAppMessage:`Удалить OAuth-приложение '{id}'? Это отключит все связанные аккаунты.`,deleteAppTitle:`Удалить OAuth-приложение`,deleteFailedToast:`Не удалось удалить OAuth-приложение`,disconnect:`Отключить`,disconnectAria:`Отключить {account}`,disconnectFailedToast:`Не удалось отключить аккаунт`,disconnectMessage:`Отключить {account}? Потом можно подключить снова.`,disconnectTitle:`Отключить {name}?`,disconnectedToast:`Аккаунт {name} отключён.`,redirectHint:`Этот URL: в настройки перенаправления OAuth-приложения.`,redirectUrl:`Redirect URL`,waitingAuthorization:`Ожидание авторизации...`},en={accessConsentSetting:e,adjustPlanModal:t,advisorProfileRow:n,aiProviderPicker:r,allConversationsView:i,androidNotificationSettingsCard:a,assistantBackups:o,assistantLifecyclePanel:s,assistantPicker:c,assistantSleepPolicy:l,assistantStatusPanel:u,assistantTerminalPanel:d,assistantUpgrades:f,autoTopUpCard:p,autoTopUpDisableConfirm:m,autoTopUpForm:h,autoTopUpPaymentMethodModal:g,billingOnboardingModal:_,billingPage:v,billingPanel:y,billingPortalReturnHandler:b,billingStatusHandler:x,billingUsageChart:S,billingUsagePanel:C,biometricSettingsCard:w,bookmarksPage:T,bulkOverrideSwapModal:E,callSiteOverridesRow:D,chatgptOauthSection:O,checkoutBonusModal:k,checkoutPage:A,communityPage:j,completeState:M,createScheduleModal:N,credentialRow:P,credentialsPage:F,creditBundlePicker:I,customPlanModal:L,customPlanRow:R,dailyCreditLimitCard:z,debugControlsPanel:B,deleteAccountSection:V,devModeVersionUnlock:H,developerPage:U,doctorChatBlocks:W,doctorPanel:G,domainField:K,domainStep:q,downgradeReconfirmModal:J,emailManagedContent:Y,emailServiceCard:X,enrollTotpModal:Z,environmentConfigPanel:Q,errorStates:$,featureFlagsPanel:ee,freeDowngradeConfirmModal:te,generalPage:ne,gracePeriodBanner:re,imageGenerationCard:ie,integrationDetailModal:ae,integrationRow:oe,integrationsPage:se,invoicesTable:ce,languageModelCard:le,listeningLanguageCard:ue,lowBalanceAlertCard:de,manageProfilesBlockedDeleteModal:fe,managedOauthTab:pe,mcpAddServerModal:me,mcpPage:he,mcpServerCard:ge,mcpServerDetailModal:_e,mediaEmbedsCard:ve,memoryCard:ye,memoryRetrospectiveToggle:be,memoryWorkerToggle:xe,modelProfileRow:Se,modelProfileSelect:Ce,nativeAppCard:we,notificationsPage:Te,overridesCallSiteList:Ee,overridesDetailPanel:De,packageSwitchConfirmModal:Oe,pairDeviceCard:ke,pairDeviceClient:Ae,pairDeviceReady:je,pairDeviceUrl:Me,pairedDevicesSection:Ne,paymentMethodRow:Pe,paymentMethodsCard:Fe,pendingPairingRequests:Ie,planCard:Le,planCardContent:Re,planColumnCard:ze,plansPage:Be,preferencesModal:Ve,previewReleaseChannel:He,privacyPage:Ue,profileAdvancedParams:We,profileCheck:Ge,profileDetailPanel:Ke,profileEditor:qe,profileEditorFields:Je,profileEditorModal:Ye,profileEditorProviderSection:Xe,profileRow:Ze,profilesSection:Qe,providerCreateForm:$e,providerDetailPanel:et,providerEditorApiKeySection:tt,providerEditorContent:nt,providerEndpointCheck:rt,providerRow:it,providersSection:at,provisioningState:ot,recentRunsCard:st,recoveryModeControls:ct,referralContent:lt,referralModal:ut,resizeCard:dt,restartAssistant:ft,retireAssistant:pt,riskToleranceSettings:mt,scheduleProfileRebase:ht,scheduleSharedUi:gt,sentryTestingPanel:_t,sharedUi:vt,shortcutsSections:yt,showTipsRow:bt,soundsSections:xt,speechToTextCard:St,systemTasksSection:Ct,teleportCard:wt,textToSpeechCard:Tt,themePicker:Et,tierPicker:Dt,timezonePicker:Ot,timezoneSection:kt,trustRuleFormModal:At,trustRules:jt,trustRulesModal:Mt,tunnelStatusRow:Nt,twoFactorSection:Pt,updateWindowModal:Ft,updateWindowPolicy:It,upgradeCancelPage:Lt,upgradeSuccessPage:Rt,usageTab:zt,usageTrendChart:Bt,useBillingPortalSession:Vt,useCancelSubscription:Ht,useDaemonConfig:Ut,usePairDevice:Wt,usePendingPairingRequests:Gt,useProfileSave:Kt,useProviderActions:qt,useSystemTasks:Jt,voicePage:Yt,voicePickerCard:Xt,webFetchCard:Zt,webSearchCard:Qt,yourOwnOauthTab:$t};export{e as accessConsentSetting,t as adjustPlanModal,n as advisorProfileRow,r as aiProviderPicker,i as allConversationsView,a as androidNotificationSettingsCard,o as assistantBackups,s as assistantLifecyclePanel,c as assistantPicker,l as assistantSleepPolicy,u as assistantStatusPanel,d as assistantTerminalPanel,f as assistantUpgrades,p as autoTopUpCard,m as autoTopUpDisableConfirm,h as autoTopUpForm,g as autoTopUpPaymentMethodModal,_ as billingOnboardingModal,v as billingPage,y as billingPanel,b as billingPortalReturnHandler,x as billingStatusHandler,S as billingUsageChart,C as billingUsagePanel,w as biometricSettingsCard,T as bookmarksPage,E as bulkOverrideSwapModal,D as callSiteOverridesRow,O as chatgptOauthSection,k as checkoutBonusModal,A as checkoutPage,j as communityPage,M as completeState,N as createScheduleModal,P as credentialRow,F as credentialsPage,I as creditBundlePicker,L as customPlanModal,R as customPlanRow,z as dailyCreditLimitCard,B as debugControlsPanel,en as default,V as deleteAccountSection,H as devModeVersionUnlock,U as developerPage,W as doctorChatBlocks,G as doctorPanel,K as domainField,q as domainStep,J as downgradeReconfirmModal,Y as emailManagedContent,X as emailServiceCard,Z as enrollTotpModal,Q as environmentConfigPanel,$ as errorStates,ee as featureFlagsPanel,te as freeDowngradeConfirmModal,ne as generalPage,re as gracePeriodBanner,ie as imageGenerationCard,ae as integrationDetailModal,oe as integrationRow,se as integrationsPage,ce as invoicesTable,le as languageModelCard,ue as listeningLanguageCard,de as lowBalanceAlertCard,fe as manageProfilesBlockedDeleteModal,pe as managedOauthTab,me as mcpAddServerModal,he as mcpPage,ge as mcpServerCard,_e as mcpServerDetailModal,ve as mediaEmbedsCard,ye as memoryCard,be as memoryRetrospectiveToggle,xe as memoryWorkerToggle,Se as modelProfileRow,Ce as modelProfileSelect,we as nativeAppCard,Te as notificationsPage,Ee as overridesCallSiteList,De as overridesDetailPanel,Oe as packageSwitchConfirmModal,ke as pairDeviceCard,Ae as pairDeviceClient,je as pairDeviceReady,Me as pairDeviceUrl,Ne as pairedDevicesSection,Pe as paymentMethodRow,Fe as paymentMethodsCard,Ie as pendingPairingRequests,Le as planCard,Re as planCardContent,ze as planColumnCard,Be as plansPage,Ve as preferencesModal,He as previewReleaseChannel,Ue as privacyPage,We as profileAdvancedParams,Ge as profileCheck,Ke as profileDetailPanel,qe as profileEditor,Je as profileEditorFields,Ye as profileEditorModal,Xe as profileEditorProviderSection,Ze as profileRow,Qe as profilesSection,$e as providerCreateForm,et as providerDetailPanel,tt as providerEditorApiKeySection,nt as providerEditorContent,rt as providerEndpointCheck,it as providerRow,at as providersSection,ot as provisioningState,st as recentRunsCard,ct as recoveryModeControls,lt as referralContent,ut as referralModal,dt as resizeCard,ft as restartAssistant,pt as retireAssistant,mt as riskToleranceSettings,ht as scheduleProfileRebase,gt as scheduleSharedUi,_t as sentryTestingPanel,vt as sharedUi,yt as shortcutsSections,bt as showTipsRow,xt as soundsSections,St as speechToTextCard,Ct as systemTasksSection,wt as teleportCard,Tt as textToSpeechCard,Et as themePicker,Dt as tierPicker,Ot as timezonePicker,kt as timezoneSection,At as trustRuleFormModal,jt as trustRules,Mt as trustRulesModal,Nt as tunnelStatusRow,Pt as twoFactorSection,Ft as updateWindowModal,It as updateWindowPolicy,Lt as upgradeCancelPage,Rt as upgradeSuccessPage,zt as usageTab,Bt as usageTrendChart,Vt as useBillingPortalSession,Ht as useCancelSubscription,Ut as useDaemonConfig,Wt as usePairDevice,Gt as usePendingPairingRequests,Kt as useProfileSave,qt as useProviderActions,Jt as useSystemTasks,Yt as voicePage,Xt as voicePickerCard,Zt as webFetchCard,Qt as webSearchCard,$t as yourOwnOauthTab};
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-COOF1INC.js";import{t}from"./cn-naJKasky.js";import"./src-BKET5Cno.js";var n=e();function r({className:e}){return(0,n.jsx)(`div`,{role:`presentation`,className:t(`h-px w-full bg-[var(--border-base)]`,e)})}export{r as t};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{d as n,r,u as i}from"./chunk-5KNZJZUH-CPFsMQoz.js";import{t as a}from"./jsx-runtime-COOF1INC.js";import{t as o}from"./use-supports-bookmarks-Qhc5HpKD.js";import{t as s}from"./log-in-CGeZfDEs.js";import{t as c}from"./log-out-DPkGVfNH.js";import{r as l}from"./resolved-assistants-store-DEtotxhR.js";import{i as u}from"./auth-store-BVjw4Y6z.js";import{f as d}from"./routes-C6ueuiMd.js";import{m as f}from"./platform-detection-DUeD4WFO.js";import{i as p}from"./use-platform-gate-s29eeyq-.js";import{b as m,r as h,t as g}from"./settings-navigation-DyFIJJGF.js";import{t as _}from"./use-onboarding-login-CJ6HY3Pk.js";import{t as v}from"./assistant-feature-flag-store-Co_o5uD3.js";import{t as y}from"./internal-thread-actions-DkNfSArh.js";import{n as b,t as x}from"./sidebar-tree-Y1RDeJ9E.js";import{t as S}from"./use-supports-credentials-settings-BD0GXxL7.js";var C=e(t(),1),w=a();function T(){let e=v.use.settingsDeveloperNav(),t=m.use.setWindowsMenuBarSuppressed();(0,C.useEffect)(()=>(t(!0),()=>t(!1)),[t]);let a=f(),T=l.use.activeAssistantId(),E=o(T),D=S(T),O=y(),k=p()===`full`?`Billing & Usage`:`Usage`,{pathname:A}=i(),j=n(),M=u(),{login:N}=_(),P=(0,C.useMemo)(()=>g.filter(e=>!(e.id===`notifications`&&!a||e.id===`bookmarks`&&(!E||!O)||e.id===`credentials`&&!D||e.id===`developer`)).map(e=>e.id===`billing`?{...e,label:k}:e),[a,E,O,D,k]),F=(0,C.useMemo)(()=>{let t=[];return e&&t.push(...g.filter(e=>e.id===`developer`)),t.push(M?{id:`logout`,label:`Log Out`,icon:c,onSelect:()=>void h(j)}:{id:`login`,label:`Log In`,icon:s,onSelect:()=>void N()}),t},[e,M,j,N]),I=(0,C.useMemo)(()=>{if(A===d.settings.root)return`Settings`;let e=g.find(e=>A===e.href||A.startsWith(e.href+`/`));return e?e.id===`billing`?k:e.label:`Settings`},[A,k]);return(0,w.jsx)(b,{backHref:d.assistant,sidebar:(0,w.jsx)(x,{items:P,bottomItems:F,indexPath:d.settings.root}),title:I,children:(0,w.jsx)(r,{})})}export{T as SettingsLayout};
@@ -1 +0,0 @@
1
- import{p as e}from"./i18n-BtV8MCsZ.js";import{t}from"./bell-B3GoRAIC.js";import{n}from"./use-supports-bookmarks-Qhc5HpKD.js";import{t as r}from"./bug-DJjWtfUu.js";import{t as i}from"./chart-column-BSXp3tJF.js";import{t as a}from"./code-B7j8vdg9.js";import{t as o}from"./cpu-KP1UdyS1.js";import{t as s}from"./key-round-BEQmZ4Ji.js";import{t as c}from"./mic-DQbnjgmt.js";import{t as l}from"./puzzle-PqInNnOi.js";import{t as u}from"./shield-check-BuRfLkGi.js";import{t as d}from"./sliders-horizontal-BPa-_UE6.js";import{t as f}from"./users-DLjK4Ffo.js";import{t as p}from"./volume-2-DQKLkySB.js";import{n as m,t as h}from"./create-selectors-sLdtxUZQ.js";import{Z as g,_,n as v,ot as y,st as b,v as ee}from"./local-mode-BQ8gp0wB.js";import{t as te}from"./is-electron-D45bjFI8.js";import{r as x}from"./resolved-assistants-store-DEtotxhR.js";import{s as ne,t as S}from"./utils-CAI1IDgW.js";import{K as C,L as w,n as T}from"./auth-store-BVjw4Y6z.js";import{tt as re}from"./sdk.gen-CrcsMCNX.js";import{v as E}from"./native-biometric-DEP8Sr4X.js";import{f as D}from"./routes-C6ueuiMd.js";import"./navigation-resolver-CRsrd5gh.js";import"./build-state-ChDL0BPH.js";import{n as ie,r as ae,t as oe}from"./audio-context-YNIG4zMo.js";import{r as se}from"./voice-input-device-DsSHVzmw.js";import{t as ce}from"./hard-navigate-BVv7q79D.js";import{i as le}from"./companion-surface-BYj8yxCS.js";var ue=h(m(e=>({inlineTitleBarActive:!1,windowsMenuBarSuppressed:!1,setInlineTitleBarActive:t=>e({inlineTitleBarActive:t}),setWindowsMenuBarSuppressed:t=>e({windowsMenuBarSuppressed:t})}))),de=18e4,O=m(()=>({retro:null})),k=null;function A(){k!==null&&(clearTimeout(k),k=null)}var j=null;function fe(){j!==null&&(j(),j=null)}function pe(e){fe(),j=x.subscribe(t=>{t.activeAssistantId!==e&&(console.info(`watch-retro: dropping the session summary, its assistant is no longer active`),M())})}function M(){A(),fe(),O.getState().retro!==null&&O.setState({retro:null})}function me(e){A(),pe(e.assistantId),O.setState({retro:{sessionId:e.sessionId,conversationId:e.conversationId,assistantId:e.assistantId,phase:`pending`}}),k=setTimeout(()=>{k=null;let{retro:t}=O.getState();t?.sessionId===e.sessionId&&t.phase===`pending`&&(console.warn(`watch-retro: no completion for the session summary, giving up`),M())},de)}function he(e){let{retro:t}=O.getState();if(!(t===null||t.sessionId!==e.sessionId)){if(A(),!e.reportReady){M();return}O.setState({retro:{sessionId:t.sessionId,conversationId:e.conversationId,assistantId:t.assistantId,phase:`ready`}})}}function ge(){return ee()?D.welcome:D.onboarding.privacy}function _e(e){if(e===`platform.vellum.ai`)return`velay.vellum.ai`;let t=/^([a-z0-9-]+)-platform\.vellum\.ai$/.exec(e);return t?`velay-${t[1]}.vellum.ai`:null}var ve=`velay.vellum.ai`,N=class extends Error{status;constructor(e,t){super(t),this.name=`VelayWsTokenError`,this.status=e}};function ye(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.token==`string`&&typeof t.expiresAt==`string`}async function P(t){let{data:n,error:r,response:i}=await re({body:{assistantId:t},throwOnError:!1});if(e(i,r,`Failed to mint velay WS token`),!i.ok)throw new N(i.status,`Velay WS token request failed (HTTP ${i.status})`);if(!ye(n))throw new N(0,`Velay WS token response was malformed`);return n}function be(){try{let e=_e(new URL(g()).hostname);if(e)return e}catch{}return ve}function xe(e){let t;try{({hostname:t}=new URL(`http://${e}`))}catch{return`wss`}return t===`localhost`||t===`127.0.0.1`||t===`[::1]`||t===`::1`?`ws`:`wss`}function F({assistantId:e,routePath:t,token:n,params:r}){let i=be(),a=xe(i),o=new URL(`${a}://${i}/${e}${t}`);o.searchParams.set(`token`,n);for(let[e,t]of Object.entries(r??{}))o.searchParams.set(e,t);return o.toString()}function Se({assistantId:e,conversationId:t,token:n}){return F({assistantId:e,routePath:`/v1/live-voice`,token:n,params:t?{conversationId:t}:void 0})}var Ce=/^\/assistant\/__gateway\/(\d+)\/?$/,I=/^\/assistant\/__gateway-paired\//;function L(e){try{return I.test(new URL(e).pathname)}catch{return!1}}var R=class extends Error{constructor(){super(`Voice isn't available for paired assistants yet.`),this.name=`PairedVoiceUnavailableError`}};function z({ingressUrl:e,routePath:t,token:n,params:r}){let i=new URL(e);if(I.test(i.pathname))throw new R;let a=i.pathname.match(Ce),o;a?o=new URL(`ws://127.0.0.1:${a[1]}${t}`):(i.protocol=i.protocol===`http:`?`ws:`:`wss:`,i.pathname=`${i.pathname.replace(/\/+$/,``)}${t}`,i.search=``,i.hash=``,o=i),o.searchParams.set(`token`,n);for(let[e,t]of Object.entries(r??{}))o.searchParams.set(e,t);return o.toString()}function we({ingressUrl:e,conversationId:t,token:n}){return z({ingressUrl:e,routePath:`/v1/live-voice`,token:n,params:t?{conversationId:t}:void 0})}async function Te({assistantId:e,conversationId:t}){let n=b();if(n){if(L(n))throw new R;let e=y();if(!e)throw new N(0,`Self-hosted live voice has no actor token yet; the gateway isn't ready.`);return we({ingressUrl:n,conversationId:t,token:e})}let{token:r}=await P(e);return Se({assistantId:e,conversationId:t,token:r})}var B={mimeType:`audio/pcm`,sampleRate:16e3,channels:1},V={mimeType:B.mimeType,sampleRate:String(B.sampleRate)},Ee=[`ready`,`busy`,`speech_started`,`utterance_end`,`utterance_discarded`,`stt_partial`,`stt_final`,`thinking`,`activity`,`assistant_text_delta`,`tts_audio`,`tts_done`,`turn_cancelled`,`minimize_room`,`metrics`,`archived`,`error`];function De(e){return typeof e==`string`&&Ee.includes(e)}function Oe(e){let t;try{t=JSON.parse(e)}catch{return{type:`error`,code:`invalid_json`,message:`Live voice server frame is not valid JSON`}}let n=typeof t==`object`&&t&&!Array.isArray(t)?t.type:void 0;return typeof n==`string`?De(n)?t:{type:`unknown_frame`,frameType:n}:{type:`error`,code:`invalid_json`,message:`Live voice server frame has a missing or non-string type`}}var ke=.5,Ae=14,je=`pcm-downsample`,H=800;function U(){let e=ie();return typeof navigator<`u`&&!!navigator.mediaDevices?.getUserMedia&&!!e&&`audioWorklet`in e.prototype}function Me(e){if(e instanceof DOMException)switch(e.name){case`NotAllowedError`:case`SecurityError`:return`permission-denied`;case`NotFoundError`:case`OverconstrainedError`:return`no-device`;case`NotReadableError`:return`device-in-use`;case`AbortError`:return`aborted`;default:return`unknown`}return`unknown`}var W=class{onChunk;onAmplitude;stream=null;context=null;source=null;worklet=null;smoothedAmplitude=0;batch=new Int16Array(H);batchLength=0;disposed=!1;cancelEpoch=0;constructor(e){this.onChunk=e.onChunk,this.onAmplitude=e.onAmplitude}async start(){if(this.disposed)return{ok:!1,error:`unsupported`};if(this.context)return{ok:!0};if(!U())return{ok:!1,error:`unsupported`};let e=this.cancelEpoch,t=()=>this.disposed||this.cancelEpoch!==e,n;try{n=await se()}catch(e){return{ok:!1,error:Me(e),cause:e}}if(t())return G(n),{ok:!1,error:`aborted`};this.stream=n;try{let e=oe();if(this.context=e,await e.audioWorklet.addModule(ae),t())return await this.teardown(),{ok:!1,error:`aborted`};let r=e.createMediaStreamSource(n),i=new AudioWorkletNode(e,je,{numberOfInputs:1,numberOfOutputs:0,channelCount:B.channels});return i.port.onmessage=e=>{let t=e.data;this.emitAmplitude(t),this.accumulate(t)},r.connect(i),this.source=r,this.worklet=i,{ok:!0}}catch(e){return await this.teardown(),{ok:!1,error:`unknown`,cause:e}}}async stop(){this.cancelEpoch++,await this.teardown()}async shutdown(){this.disposed=!0,this.cancelEpoch++,await this.teardown()}flush(){if(this.batchLength===0)return;let e=this.batch.buffer.slice(0,this.batchLength*2);this.batchLength=0,this.onChunk(e)}accumulate(e){let t=new Int16Array(e);for(;t.length>0;){let e=Math.min(H-this.batchLength,t.length);if(this.batch.set(t.subarray(0,e),this.batchLength),this.batchLength+=e,t=t.subarray(e),this.batchLength===H){this.batchLength=0;let e=this.batch;this.batch=new Int16Array(H),this.onChunk(e.buffer)}}}emitAmplitude(e){if(!this.onAmplitude)return;let t=new Int16Array(e);if(t.length===0)return;let n=0;for(let e=0;e<t.length;e++){let r=t[e]/32768;n+=r*r}let r=Math.sqrt(n/t.length);this.smoothedAmplitude=ke*r+(1-ke)*this.smoothedAmplitude,this.onAmplitude(Math.min(this.smoothedAmplitude*Ae,1))}async teardown(){if(this.batchLength=0,this.worklet&&=(this.worklet.port.onmessage=null,this.worklet.disconnect(),null),this.source&&=(this.source.disconnect(),null),this.stream&&=(G(this.stream),null),this.context){let e=this.context;this.context=null,await e.close().catch(()=>{})}this.smoothedAmplitude=0}};function G(e){for(let t of e.getTracks())t.stop()}var K=`0.11.4-dev.202608212020.70f2864`;function Ne(e){return S(K,e)}async function Pe(e){return await ne(e),Ne(e)}var Fe=K;function Ie(e){return S(Fe,e)}var q=m(()=>({watching:!1,captureCount:0})),Le=1e4,J=3e3;function Y(e){return e!==null&&clearTimeout(e),null}var X=null;function Re(){return X!==null}var Z=null,ze=`/v1/watch/stream`;function Be({ingressUrl:e,token:t}){return z({ingressUrl:e,routePath:ze,token:t,params:V})}async function Ve(e){let t=b();if(t){if(L(t))throw new R;let e=y();if(!e)throw new N(0,`Self-hosted watch has no actor token yet; the gateway isn't ready.`);return Be({ingressUrl:t,token:e})}let{token:n}=await P(e);return F({assistantId:e,routePath:ze,token:n,params:V})}function He(e,t,n){if(!U()){console.info(`watch-controller: skipping (no AudioWorklet)`);return}let r=n.webSocketFactory??(e=>new WebSocket(e)),i;try{i=r(t)}catch{return}let a=`live`,o=!1,s=null,c=null,l=null,u=null,d=[],f=null,p=null,m=(n.captureFactory??(e=>new W(e)))({onChunk:e=>{a===`live`&&i.readyState===WebSocket.OPEN&&i.send(e)}}),h=!1,g=()=>{if(!h){h=!0;for(let e of d.splice(0))e();f=Y(f),m.shutdown(),X!==null&&X===u&&(X=null,q.getState().watching&&q.setState({watching:!1}))}},_=()=>{if(a!==`done`&&(a=`done`,p=Y(p),g(),i.readyState===WebSocket.OPEN||i.readyState===WebSocket.CONNECTING))try{i.close(1e3)}catch{}},v=()=>{c===null&&(Z=new Promise(e=>{c=e}),l=setTimeout(y,n.drainTimeoutMs??J))};function y(){if(l=Y(l),c===null)return;let e=c;c=null,Z=null,e()}u={stop:()=>{if(a!==`live`)return;let t=i.readyState===WebSocket.OPEN;t&&v(),s!==null&&Ie(e)&&me({...s,assistantId:e});let r=!1;if(o&&t){m.flush?.();try{i.send(JSON.stringify({type:`stop`})),r=!0}catch{}}if(g(),!r){_();return}a=`draining`,p=setTimeout(()=>{console.warn(`watch-controller: no closed frame after stop, ending without the flush`),_()},n.drainTimeoutMs??J)}},X=u,f=setTimeout(()=>{console.warn(`watch-controller: no ready frame from the runtime, giving up on the session`),_()},n.readyTimeoutMs??Le),d.push(C.subscribe(e=>{w(e.state)&&(console.info(`watch-controller: ending the session, a call has taken the microphone`),_())})),d.push(x.subscribe(t=>{t.activeAssistantId!==e&&(console.info(`watch-controller: ending the session, its assistant is no longer active`),_())}));let b=e=>{o=!0,s=e,f=Y(f),q.setState({watching:!0,captureCount:0}),m.start().then(e=>{e.ok||(console.warn(`watch-controller: PCM capture failed`,e.error),_())})};i.addEventListener(`message`,e=>{if(a===`done`||typeof e.data!=`string`)return;let t;try{t=JSON.parse(e.data)}catch{return}if(!t||typeof t!=`object`)return;let n=t;if(n.type===`ready`){a===`live`&&b(typeof n.sessionId==`string`&&typeof n.conversationId==`string`?{sessionId:n.sessionId,conversationId:n.conversationId}:null);return}if(n.type===`observation`){a===`live`&&q.setState(e=>({captureCount:e.captureCount+1}));return}if(n.type===`error`){console.warn(`watch-controller: server error event`,n.message??e.data),_();return}n.type===`closed`&&(y(),_())}),i.addEventListener(`close`,_),i.addEventListener(`error`,_)}async function Ue(e={}){if(X!==null){X.stop();return}if(w(C.getState().state)){console.info(`watch-controller: refusing to start while a call is running`);return}let t=x.getState().activeAssistantId;if(t===null){console.info(`watch-controller: skipping (no assistant is active)`);return}let n=!1,r={stop:()=>{n=!0,X===r&&(X=null)}};X=r;let i=()=>{X===r&&(X=null)},a=await Pe(t);if(n||Z!==null&&(console.info(`watch-controller: waiting for the previous session to release the runtime`),await Z,n))return;if(!a){i(),console.info(`watch-controller: skipping (this assistant has no watch stream to open)`);return}let o;try{o=await(e.resolveWsUrl??Ve)(t)}catch(e){i(),console.info(`watch-controller: skipping (no watch transport)`,e);return}if(!n){if(w(C.getState().state)||x.getState().activeAssistantId!==t){i();return}i(),He(t,o,e)}}function We(){X?.stop()}function Q(e){te()&&window.vellum?.identity?.setName(e)}async function Ge(e){if(ee()){let t=v();if(t&&_(t)){await E(!1),T.setState({platformSession:`absent`});return}await E(!1),await T.getState().logout(),Q(``),le(),e(ge())}else await T.getState().logout(),Q(``),We(),le(),ce(D.account.login)}var $=[{id:`assistant-status`,label:`General`,href:D.settings.general,icon:d},{id:`model`,label:`Models & Services`,href:D.settings.ai,icon:o},{id:`integrations`,label:`Integrations`,href:D.settings.integrations,icon:l},{id:`credentials`,label:`Credentials`,href:D.settings.credentials,icon:s},{id:`notifications`,label:`Notifications`,href:D.settings.notifications,icon:t},{id:`voice`,label:`Voice`,href:D.settings.voice,icon:c},{id:`sounds`,label:`Sounds`,href:D.settings.sounds,icon:p},{id:`privacy`,label:`Permissions & Privacy`,href:D.settings.privacy,icon:u},{id:`bookmarks`,label:`Bookmarks`,href:D.settings.bookmarks,icon:n},{id:`billing`,label:`Usage`,href:D.settings.usage,icon:i},{id:`community`,label:`Community`,href:D.settings.community,icon:f},{id:`debug`,label:`Debug`,href:D.settings.debug,icon:r},{id:`developer`,label:`Developer`,href:D.settings.developer,icon:a}],Ke={developer:`debug`,advanced:`debug`,model:`model`,privacy:`privacy`,security:`assistant-status`,"voice & sounds":`voice`,"voice and sounds":`voice`,devices:`assistant-status`,"self-hosted assistants":`assistant-status`},qe={"keyboard-shortcuts":D.settings.keyboardShortcuts,"keyboard shortcuts":D.settings.keyboardShortcuts,services:D.settings.ai,"text-to-speech":D.settings.ai,"speech-to-text":D.settings.ai,archive:`${D.settings.debug}?tab=archive`,billing:D.settings.usageBilling,"billing & usage":D.settings.usageBilling,usage:`${D.settings.usage}?tab=usage`};function Je(e){return e.trim().toLowerCase()}function Ye(e){let t=Je(e),n=qe[t];if(n)return n;let r=Ke[t];if(r){let e=$.find(e=>e.id===r);if(e)return e.href}return $.find(e=>Je(e.label)===t||e.id===t)?.href??null}export{M as _,Re as a,ue as b,q as c,B as d,V as f,Te as g,L as h,Q as i,W as l,z as m,Ye as n,We as o,Oe as p,Ge as r,Ue as s,$ as t,U as u,he as v,O as y};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/esm-BTQ42Hgz.js","assets/preload-helper-BewR0kVT.js","assets/dist-Cr8OiiXj.js"])))=>i.map(i=>d[i]);
2
- import{o as e,r as t}from"./chunk-jRWAZmH_.js";import{v as n}from"./i18n-BtV8MCsZ.js";import{t as r}from"./react-DJZBPgpf.js";import{G as i,n as a,t as o}from"./button-B1kEAcLt.js";import{t as s}from"./preload-helper-BewR0kVT.js";import{t as c}from"./useMutation-Cl7cazkm.js";import{t as l}from"./jsx-runtime-COOF1INC.js";import{t as u}from"./bug-DJjWtfUu.js";import{t as ee}from"./download-BIMKsVBw.js";import{t as d}from"./info-C-HjpKAE.js";import{t as f}from"./lightbulb-BSnKqAOd.js";import{t as te}from"./loader-circle-DZ65N8bz.js";import{t as p}from"./mail-CqdA6Y_p.js";import{t as m}from"./message-circle-DBYzIjYB.js";import{t as h}from"./paperclip-Ce-wbj5L.js";import{t as g}from"./send-1mFY4II3.js";import{t as ne}from"./x-nhRPd-Mz.js";import{t as re}from"./notice-BHeYlKvv.js";import{n as _,t as v}from"./input-ChbJ2nzd.js";import{t as y}from"./toggle-CdhdS_iC.js";import{t as b}from"./select-DmdFZj4l.js";import{n as x}from"./assistant-identity-store-DBkGjqzV.js";import{t as S}from"./is-electron-D45bjFI8.js";import{t as ie}from"./Trans-CBhhVbOk.js";import{n as ae}from"./auth-store-BVjw4Y6z.js";import{hn as C}from"./sdk.gen-BluU0h_N.js";import{t as w}from"./dist-Cr8OiiXj.js";import{n as T}from"./diagnostics-BC7vRbDB.js";import{I as oe}from"./react-query.gen-C5widOeH.js";import"./external-urls-BE71Yb2T.js";import{t as se}from"./use-body-scroll-lock-8ObBdX00.js";var E=e(r(),1),ce=e(i(),1),D=`vellum:debug:`;function le(){let e={};if(typeof window>`u`)return e;try{for(let t=0;t<window.localStorage.length;t++){let n=window.localStorage.key(t);if(n===null||!n.startsWith(D))continue;let r=window.localStorage.getItem(n);r!==null&&(e[n]=r)}}catch{}return e}function O(){return{collectedAt:new Date().toISOString(),resolved:{impersonateAssistantVersion:x()},overrides:le()}}var k=t({ShareFeedbackModal:()=>G,dedupeAgainstClientMessages:()=>H,stripBulkBase64:()=>V}),A=l(),ue=`fixed inset-0 z-50 flex items-center justify-center bg-black/50`,de=`mx-4 flex w-full max-w-lg flex-col rounded-xl border p-6 shadow-xl`,fe={backgroundColor:`var(--surface-lift)`,borderColor:`var(--border-base)`,maxHeight:`calc(100vh - 2rem)`},j=[{value:`bug_report`,icon:u,includesLogsByDefault:!0},{value:`feature_request`,icon:f,includesLogsByDefault:!1},{value:`other`,icon:m,includesLogsByDefault:!1}],M=[{value:`past_hour`,cutoffMs:3600*1e3},{value:`past_24_hours`,cutoffMs:1440*60*1e3},{value:`all_time`,cutoffMs:null}],N=new Set([`image/png`,`image/jpeg`,`image/gif`,`image/webp`,`video/mp4`,`video/quicktime`,`video/webm`]),P=new Set([`png`,`jpg`,`jpeg`,`gif`,`webp`,`mp4`,`mov`,`webm`]),F=10,I=50*1024*1024,pe={bug_report:`bug_report`,feature_request:`feature_request`,other:`other`};function me(){if(S())return`electron`;let e=w.getPlatform();return e===`ios`||e===`android`?e:`web`}function he(e){return typeof e==`object`&&!!e&&`client`in e}function ge(e){if(e.size>I)return!1;if(e.type&&N.has(e.type))return!0;if(!e.type){let t=e.name.split(`.`).pop()?.toLowerCase();return t?P.has(t):!1}return!1}var L=8192,R=/^data:([^;,]+);base64,/i,z=/^[A-Za-z0-9+/]+={0,2}$/;function B(e,t,n=new WeakSet){let r=t(e);if(r)return r.replacement;if(typeof e!=`object`||!e)return e;if(n.has(e))return`[cyclic]`;n.add(e);let i;if(Array.isArray(e))i=e.map(e=>B(e,t,n));else{let r={};for(let[i,a]of Object.entries(e))r[i]=B(a,t,n);i=r}return n.delete(e),i}function V(e){return B(e,e=>{if(typeof e!=`string`)return null;let t=R.exec(e);return t?{replacement:`[stripped data URI ${t[1]}, ${e.length} chars]`}:e.length>=L&&z.test(e)?{replacement:`[stripped base64, ${e.length} chars]`}:null})}function H(e,t){if(!Array.isArray(t))return e;let n=new Map;return t.forEach((e,t)=>{if(e&&typeof e==`object`){let r=e.id;n.set(e,typeof r==`string`?r:`index ${t}`)}}),B(e,e=>{if(typeof e!=`object`||!e)return null;let t=n.get(e);return t===void 0?null:{replacement:`[deduplicated: see clientMessages ${t}]`}})}function U(e,t){let n=Math.ceil(t.length/512),r=new Uint8Array(512+n*512),i=new TextEncoder,a=(e,t,n)=>{let a=i.encode(e);r.set(a.slice(0,n),t)},o=(e,t,n)=>{a(e.toString(8).padStart(n-1,`0`)+`\0`,t,n)};a(e,0,100),o(420,100,8),o(0,108,8),o(0,116,8),o(t.length,124,12),o(Math.floor(Date.now()/1e3),136,12);for(let e=148;e<156;e++)r[e]=32;r[156]=48,a(`ustar\0`,257,6),a(`00`,263,2);let s=0;for(let e=0;e<512;e++)s+=r[e];return o(s,148,7),r[155]=32,r.set(t,512),r}async function W(e,t){try{let n={};t.window.startTime!=null&&(n.startTime=t.window.startTime,n.endTime=t.window.endTime),t.activeConversationId&&(n.conversationId=t.activeConversationId);let{data:r,error:i}=await C({path:{assistant_id:e},body:n,parseAs:`blob`,throwOnError:!1});if(i||!(r instanceof Blob))return null;let a=await r.arrayBuffer();return new Uint8Array(a)}catch{return null}}async function _e(){if(!w.isNativePlatform())return null;try{let{App:e}=await s(async()=>{let{App:e}=await import(`./esm-BTQ42Hgz.js`);return{App:e}},__vite__mapDeps([0,1,2])),{id:t,name:n,version:r,build:i}=await e.getInfo();return{id:t,name:n,version:r,build:i}}catch{return null}}async function ve(e,t,n,r={}){if(typeof CompressionStream>`u`)return null;let{diagnosticsProvider:i,doctorSessionId:a,extraLogFiles:o=[]}=r,s=new Date,c=M.find(t=>t.value===e),l=s.getTime(),u=c?.cutoffMs==null?null:l-c.cutoffMs,ee=u==null?null:new Date(u).toISOString(),d=null;try{d=i?.()??null}catch{d=null}let f=T(d),te={collected_at:s.toISOString(),time_range:e,cutoff:ee,log_window:{start_time_ms:u,end_time_ms:l},assistant_id:t,active_conversation_id:n,doctor_session_id:a??null,client_version:null,native_app:await _e(),user_agent:typeof navigator<`u`?navigator.userAgent:``,language:typeof navigator<`u`?navigator.language:``,platform:typeof navigator<`u`?navigator.platform:``,url:typeof window<`u`?window.location.href:``,viewport:typeof window<`u`?{width:window.innerWidth,height:window.innerHeight}:null,screen:typeof screen<`u`?{width:screen.width,height:screen.height}:null,connection:typeof navigator<`u`&&`connection`in navigator?{effectiveType:navigator.connection.effectiveType,downlink:navigator.connection.downlink,rtt:navigator.connection.rtt}:null,deviceMemory:typeof navigator<`u`&&`deviceMemory`in navigator?navigator.deviceMemory:null,hardwareConcurrency:typeof navigator<`u`?navigator.hardwareConcurrency:null},p=new TextEncoder,m=p.encode(JSON.stringify(te,null,2)),h=p.encode(JSON.stringify(f,null,2)),g=[U(`web-client-context.json`,m),U(`web-chat-diagnostics.json`,h)],ne=new TextEncoder().encode(JSON.stringify(O(),null,2));g.push(U(`web-debug-flags.json`,ne));for(let e of o){let t=e.contents.trim();t&&g.push(U(e.filename,p.encode(t)))}try{let e=typeof window<`u`?window._vellumDebug?.chat:null;if(e){let t=e.getClientMessages?.()??null,n={clientMessages:t,transcriptItems:H(e.getTranscriptItems?.()??null,t),pendingInteractions:e.listPendingInteractions?.()??null,thinkingIndicator:e.thinkingIndicator?.()??null,streamingRing:e.streamingRing?.()??null,reconciliationDiagnostics:e.getReconciliationDiagnostics?.()??null},r=new TextEncoder().encode(JSON.stringify(V(n),null,2));g.push(U(`web-chat-debug-api-triage.json`,r))}}catch{}try{let e=typeof window<`u`?window._vellumDebug?.events:null;if(e){let t={focus:typeof document<`u`?{hasFocus:typeof document.hasFocus==`function`?document.hasFocus():null,visibilityState:document.visibilityState}:null,clients:e.getClients().map(({abortSignal:e,...t})=>({...t,aborted:e.aborted})),events:e.getEvents()},n=new TextEncoder().encode(JSON.stringify(V(t),null,2));g.push(U(`web-sse-liveness-triage.json`,n))}}catch{}if(S()&&window.vellum?.feedback){try{let e=await window.vellum.feedback.diagnostics(),t=new TextEncoder().encode(JSON.stringify(e,null,2));g.push(U(`electron-diagnostics.json`,t))}catch{}try{let e=await window.vellum.feedback.logs();if(e){let t=new TextEncoder().encode(e);g.push(U(`electron-main-logs.txt`,t))}}catch{}}if(t){let e=await W(t,{window:{startTime:u,endTime:l},activeConversationId:n});e&&g.push(U(`platform-logs.tar.gz`,e))}g.push(new Uint8Array(1024));let re=g.reduce((e,t)=>e+t.length,0),_=new Uint8Array(re),v=0;for(let e of g)_.set(e,v),v+=e.length;let y=new Blob([_.buffer]),b=await new Response(y.stream().pipeThrough(new CompressionStream(`gzip`))).blob();return new File([b],`web-client-logs-${s.getTime()}.tar.gz`,{type:`application/gzip`})}function G({open:e,onClose:t,initialReason:r,initialMessage:i,onSubmitted:s,assistantId:l,assistantVersion:u,activeConversationId:f,doctorSessionId:m,doctorSessionLog:x,getDiagnosticsSnapshot:C}){let{t:w}=n(),T=ae.use.user(),D=T?.email,le=T?.isStaff??!1,O=(0,E.useId)(),k=(0,E.useRef)(null),M=(0,E.useRef)(null),N=(0,E.useRef)(null),P=(0,E.useRef)(null),I=(0,E.useMemo)(()=>[{value:`past_hour`,label:w(`shareFeedbackModal.timeRangePastHour`)},{value:`past_24_hours`,label:w(`shareFeedbackModal.timeRangePast24Hours`)},{value:`all_time`,label:w(`shareFeedbackModal.timeRangeAllTime`)}],[w]),[L,R]=(0,E.useState)(r??`bug_report`),[z,B]=(0,E.useState)(``),[V,H]=(0,E.useState)(``),[U,W]=(0,E.useState)(j.find(e=>e.value===(r??`bug_report`))?.includesLogsByDefault??!0),[_e,G]=(0,E.useState)(!1),[K,q]=(0,E.useState)(`past_hour`),[J,Y]=(0,E.useState)([]),[xe,X]=(0,E.useState)(null),[Se,Ce]=(0,E.useState)(!1),[we,Te]=(0,E.useState)(!1),[Z,Ee]=(0,E.useState)(!1),De=c(oe()),[Oe,Q]=(0,E.useState)(!1),$=De.isPending||Oe,ke=!D,Ae=(0,E.useMemo)(()=>z.trim().length>0&&V.trim().length>0,[z,V]);(0,E.useEffect)(()=>{if(!e)return;let t=r??`bug_report`;R(t),B(i??``),H(D??``),W(j.find(e=>e.value===t)?.includesLogsByDefault??!0),G(!1),q(`past_hour`),Y([]),Te(!1),Ee(!1),X(null),Q(!1),De.reset();let n=setTimeout(()=>{D?N.current?.focus():P.current?.focus()},50);return()=>clearTimeout(n)},[e]),se(e);let je=e=>{R(e),_e||W(j.find(t=>t.value===e)?.includesLogsByDefault??!1)},Me=()=>{W(e=>!e),G(!0)},Ne=x?.trim()?[{filename:`doctor-session.txt`,contents:x}]:[],Pe=(0,E.useCallback)(e=>{e.key===`Escape`&&!e.defaultPrevented&&!$&&(e.preventDefault(),t())},[t,$]),Fe=(0,E.useCallback)(e=>{e.target===k.current&&!$&&t()},[t,$]),Ie=(0,E.useCallback)(e=>{Y(t=>{let n=F-t.length;if(n<=0)return t;let r=new Set(t.map(e=>`${e.name}:${e.size}`)),i=[];for(let t of e){if(i.length>=n)break;if(!ge(t))continue;let e=`${t.name}:${t.size}`;r.has(e)||(r.add(e),i.push(t))}return i.length>0?[...t,...i]:t})},[]),Le=e=>{e.target.files&&Ie(Array.from(e.target.files)),e.target.value=``},Re=e=>{e.preventDefault(),Ce(!1),e.dataTransfer.files?.length&&Ie(Array.from(e.dataTransfer.files))},ze=e=>{e.preventDefault(),Ce(!0)},Be=e=>{e.preventDefault(),e.currentTarget===e.target&&Ce(!1)},Ve=e=>{Y(t=>t.filter((t,n)=>n!==e))};return e?(0,ce.createPortal)((0,A.jsx)(`div`,{ref:k,role:`dialog`,"aria-modal":`true`,"aria-labelledby":O,className:ue,onKeyDown:Pe,onClick:Fe,onDrop:Re,onDragOver:ze,onDragLeave:Be,children:(0,A.jsxs)(`div`,{className:de,style:fe,children:[(0,A.jsxs)(`div`,{className:`flex items-center justify-between border-b pb-4`,style:{borderColor:`var(--border-subtle)`},children:[(0,A.jsx)(`h2`,{id:O,className:`!m-0 text-title-small text-[var(--content-default)]`,children:w(`shareFeedbackModal.title`)}),(0,A.jsx)(o,{variant:`ghost`,iconOnly:(0,A.jsx)(ne,{}),onClick:t,disabled:$,"aria-label":w(`shareFeedbackModal.closeAria`),tintColor:`var(--content-secondary)`})]}),(0,A.jsxs)(`div`,{className:`flex flex-col gap-3.5 overflow-y-auto pt-4 ${$?`pointer-events-none opacity-60`:``}`,children:[le&&(0,A.jsxs)(`div`,{className:`flex flex-col gap-1.5 rounded-lg border border-[var(--border-base)] bg-[var(--surface-base)] px-3 py-2.5`,children:[(0,A.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-3`,children:[(0,A.jsx)(y,{checked:Z,onChange:()=>Ee(e=>!e),"aria-label":w(`shareFeedbackModal.downloadDiagnosticsAria`)}),(0,A.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:w(`shareFeedbackModal.downloadDiagnostics`)})]}),(0,A.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:w(`shareFeedbackModal.adminOnlyHint`)})]}),Z?(0,A.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,A.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:w(`shareFeedbackModal.timeRange`)}),(0,A.jsx)(b,{options:I,value:K,onChange:q,"aria-label":w(`shareFeedbackModal.timeRangeAria`)})]}):(0,A.jsxs)(A.Fragment,{children:[ke&&(0,A.jsx)(v,{id:`${O}-email`,ref:P,label:w(`shareFeedbackModal.email`),type:`email`,placeholder:`you@example.com`,value:V,onChange:e=>H(e.target.value),leftIcon:(0,A.jsx)(p,{className:`h-4 w-4`,"aria-hidden":!0}),fullWidth:!0}),(0,A.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,A.jsx)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:w(`shareFeedbackModal.category`)}),(0,A.jsx)(`div`,{className:`flex gap-2`,children:j.map(e=>(0,A.jsx)(ye,{option:e,isSelected:L===e.value,onSelect:()=>je(e.value)},e.value))})]}),(0,A.jsx)(`hr`,{className:`border-[var(--border-subtle)]`}),L===`bug_report`&&(0,A.jsx)(re,{tone:`info`,children:(0,A.jsx)(ie,{ns:`common`,i18nKey:`shareFeedbackModal.bugTip`,components:{discordLink:(0,A.jsx)(`a`,{href:`https://vellum.ai/community`,target:`_blank`,rel:`noopener noreferrer`,className:`underline text-[var(--content-default)]`})}})}),L===`feature_request`&&(0,A.jsx)(re,{tone:`info`,children:(0,A.jsx)(ie,{ns:`common`,i18nKey:`shareFeedbackModal.featureTip`,components:{roadmapLink:(0,A.jsx)(`a`,{href:`https://vellum.ai/roadmap`,target:`_blank`,rel:`noopener noreferrer`,className:`underline text-[var(--content-default)]`})}})}),(0,A.jsx)(_,{id:`${O}-message`,ref:N,label:w(L===`bug_report`?`shareFeedbackModal.messageLabelBug`:L===`feature_request`?`shareFeedbackModal.messageLabelFeature`:`shareFeedbackModal.messageLabelOther`),rows:3,placeholder:w(L===`bug_report`?`shareFeedbackModal.messagePlaceholderBug`:L===`feature_request`?`shareFeedbackModal.messagePlaceholderFeature`:`shareFeedbackModal.messagePlaceholderOther`),value:z,onChange:e=>B(e.target.value),fullWidth:!0}),L!==`feature_request`&&(0,A.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,A.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,A.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-2.5`,children:[(0,A.jsx)(y,{checked:U,onChange:Me,"aria-label":w(`shareFeedbackModal.includeDiagnosticsAria`)}),(0,A.jsx)(`span`,{className:`text-body-medium-lighter leading-6 text-[var(--content-default)]`,children:w(`shareFeedbackModal.includeDiagnostics`)})]}),(0,A.jsx)(a,{content:w(`shareFeedbackModal.diagnosticsTooltip`),children:(0,A.jsx)(`button`,{type:`button`,"aria-label":w(`shareFeedbackModal.aboutDiagnosticsAria`),className:`inline-flex items-center justify-center text-[var(--content-tertiary)]`,children:(0,A.jsx)(d,{className:`h-3.5 w-3.5`})})})]}),U&&(0,A.jsx)(b,{options:I,value:K,onChange:q,"aria-label":w(`shareFeedbackModal.timeRangeAria`)})]}),S()&&f&&L!==`feature_request`&&(0,A.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-2.5`,children:[(0,A.jsx)(y,{checked:we,onChange:()=>Te(e=>!e),"aria-label":w(`shareFeedbackModal.includeConversationAria`)}),(0,A.jsx)(`span`,{className:`text-body-medium-lighter leading-6 text-[var(--content-default)]`,children:w(`shareFeedbackModal.includeConversation`)})]}),(0,A.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,A.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,A.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-secondary)]`,children:[w(`shareFeedbackModal.attachments`),J.length>0&&(0,A.jsxs)(`span`,{className:`text-[var(--content-tertiary)]`,children:[` · `,J.length,`/`,F]})]}),(0,A.jsx)(o,{variant:`outlined`,size:`compact`,leftIcon:(0,A.jsx)(h,{}),onClick:()=>M.current?.click(),disabled:J.length>=F,children:w(`shareFeedbackModal.addFiles`)}),(0,A.jsx)(`input`,{ref:M,type:`file`,multiple:!0,accept:`image/png,image/jpeg,image/gif,image/webp,video/mp4,video/quicktime,video/webm`,onChange:Le,className:`hidden`})]}),J.length>0&&(0,A.jsx)(`div`,{className:`flex gap-2 overflow-x-auto`,children:J.map((e,t)=>(0,A.jsx)(be,{file:e,onRemove:()=>Ve(t)},`${e.name}-${t}`))}),Se&&(0,A.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:w(`shareFeedbackModal.dropFiles`)})]})]}),xe&&(0,A.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--system-negative-strong)]`,children:xe})]}),(0,A.jsx)(`div`,{className:`mt-4 flex items-center justify-end gap-2 border-t pt-4`,style:{borderColor:`var(--border-subtle)`},children:$?(0,A.jsxs)(`span`,{className:`inline-flex items-center gap-2 text-body-medium-lighter text-[var(--content-secondary)]`,children:[(0,A.jsx)(te,{className:`h-4 w-4 animate-spin`}),w(Z?`shareFeedbackModal.preparingDiagnostics`:`shareFeedbackModal.sendingFeedback`)]}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(o,{variant:`ghost`,onClick:t,children:w(`shareFeedbackModal.cancel`)}),Z?(0,A.jsx)(o,{variant:`primary`,leftIcon:(0,A.jsx)(ee,{}),onClick:async()=>{if(!$){X(null),Q(!0);try{let e=await ve(K,l??null,S()?we?f??null:null:f??null,{diagnosticsProvider:C,doctorSessionId:m,extraLogFiles:Ne});if(!e){X(`Diagnostics export isn't supported in this browser.`);return}let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=e.name,document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),0),t()}catch(e){X(e instanceof Error?e.message:`Failed to build diagnostics. Please try again.`)}finally{Q(!1)}}},children:w(`shareFeedbackModal.downloadDiagnosticsButton`)}):(0,A.jsx)(o,{variant:`primary`,leftIcon:(0,A.jsx)(g,{}),onClick:async()=>{if(!(!Ae||$)){X(null),Q(!0);try{let e=U&&L!==`feature_request`?await ve(K,l??null,S()?we?f??null:null:f??null,{diagnosticsProvider:C,doctorSessionId:m,extraLogFiles:Ne}):null,n=me(),r;if(n===`electron`)try{r=(await window.vellum?.app.versionInfo())?.version??r}catch{}let i=t=>De.mutateAsync({headers:{"Content-Type":null},body:{message:z.trim(),classification:pe[L],email:V.trim(),client:t,client_version:r,...l?{assistant_id:l}:{},...u?{assistant_version:u}:{},...m?{doctor_session_id:m}:{},...e?{logs_file:e}:{},...J.length?{attachments:J}:{}},bodySerializer:e=>{let t=new FormData;for(let[n,r]of Object.entries(e))if(r!=null){if(n===`attachments`&&Array.isArray(r)){for(let e of r)t.append(`attachments`,e);continue}r instanceof Blob?t.append(n,r):t.append(n,String(r))}return t}});try{await i(n)}catch(e){if(n!==`android`||!he(e))throw e;await i(`web`)}s?.(),t()}catch(e){X(e instanceof Error?e.message:`Failed to submit feedback. Please try again.`)}finally{Q(!1)}}},disabled:!Ae,children:w(`shareFeedbackModal.submit`)})]})})]})}),document.body):null}function ye({option:e,isSelected:t,onSelect:r}){let{t:i}=n(),a=e.icon,o=e.value===`bug_report`?i(`shareFeedbackModal.reasonBugReport`):e.value===`feature_request`?i(`shareFeedbackModal.reasonFeatureRequest`):i(`shareFeedbackModal.reasonOther`);return(0,A.jsxs)(`button`,{type:`button`,onClick:r,"aria-pressed":t,className:`flex items-center gap-1.5 rounded-full border px-3 py-1.5 text-left transition-colors`,style:{borderColor:t?`var(--primary-base)`:`var(--border-base)`,backgroundColor:t?`color-mix(in oklab, var(--primary-base) 10%, transparent)`:`transparent`},children:[(0,A.jsx)(a,{className:`h-3.5 w-3.5 shrink-0`,style:{color:t?`var(--primary-base)`:`var(--content-secondary)`}}),(0,A.jsx)(`span`,{className:`text-body-small-default`,style:{color:t?`var(--primary-base)`:`var(--content-default)`},children:o})]})}function be({file:e,onRemove:t}){let{t:r}=n(),i=e.type.startsWith(`image/`),a=(0,E.useMemo)(()=>i?URL.createObjectURL(e):null,[e,i]);return(0,E.useEffect)(()=>{if(a)return()=>URL.revokeObjectURL(a)},[a]),(0,A.jsxs)(`div`,{className:`relative flex h-16 w-16 shrink-0 items-center justify-center overflow-hidden rounded-lg border border-[var(--border-base)] bg-[var(--surface-base)]`,title:e.name,children:[i&&a?(0,A.jsx)(`img`,{src:a,alt:e.name,className:`h-full w-full object-cover`}):(0,A.jsx)(h,{className:`h-5 w-5 text-[var(--content-secondary)]`}),(0,A.jsx)(o,{variant:`ghost`,size:`compact`,iconOnly:(0,A.jsx)(ne,{}),onClick:t,"aria-label":r(`shareFeedbackModal.removeAttachmentAria`,{name:e.name}),className:`absolute top-0.5 right-0.5 h-4 w-4 rounded-full bg-black/60 text-white hover:bg-black/70`,tintColor:`#fff`})]})}export{k as n,G as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./createLucideIcon-CMfEC_aW.js";var t=e(`shield`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}]]);export{t};
@@ -1 +0,0 @@
1
- import{t as e}from"./createLucideIcon-CMfEC_aW.js";var t=e(`shield-check`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]);export{t};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{v as t}from"./i18n-BtV8MCsZ.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./button-B1kEAcLt.js";import{d as i,t as a,u as o}from"./chunk-5KNZJZUH-CPFsMQoz.js";import{t as s}from"./jsx-runtime-COOF1INC.js";import{t as c}from"./typography-SdxpXI_m.js";import{t as l}from"./arrow-left-DUklm7Fd.js";import{t as u}from"./chevron-right-D5lPX854.js";import{n as d,t as f}from"./runtime-upgrade-banner-DC63rkQ7.js";import{u as p}from"./src-BKET5Cno.js";import{t as m}from"./is-electron-D45bjFI8.js";import{f as h}from"./routes-C6ueuiMd.js";import{u as g}from"./platform-detection-DUeD4WFO.js";import{n as _}from"./use-is-mobile-DYVRtRin.js";import{t as v}from"./use-edge-swipe-back-xU9GuipH.js";import{t as y}from"./link-click-LjKsC7uu.js";var b=e(n(),1),x=`data-page-transition`,S=400,C;function w(){return typeof document<`u`&&typeof document.startViewTransition==`function`}function T(){return g()&&w()}function E(e,t,n,r){if(!T()){e(t,r);return}document.documentElement.setAttribute(x,n),C!==void 0&&clearTimeout(C),C=setTimeout(()=>{C=void 0,document.documentElement.removeAttribute(x)},S),e(t,{...r,viewTransition:!0})}var D=s();function O({sidebar:e,children:n,actions:s,backHref:u,title:p=`Settings`,menuRoute:g=h.settings.root}){let{t:y}=t(),{pathname:x}=o(),S=i(),C=x===g,w=_(),T=(0,b.useRef)(null),O=(0,b.useRef)(null);(0,b.useLayoutEffect)(()=>{O.current?.scrollTo(0,0)},[x]);let k=C?u:g;v({containerRef:T,onBack:(0,b.useCallback)(()=>{S(k)},[S,k]),enabled:w,navKey:x,prefetchHref:k});let A=m(),j=y(C?`sidebarShell.backFrom`:`sidebarShell.backToMenu`,{title:p}),M=(0,D.jsx)(r,{variant:`ghost`,iconOnly:(0,D.jsx)(l,{}),"aria-label":j,tintColor:`var(--content-secondary)`,onClick:()=>E(S,k,`pop`)}),N=(0,D.jsx)(r,{asChild:!0,variant:`outlined`,"aria-label":y(`sidebarShell.backFrom`,{title:p}),className:`h-8 w-8 px-0`,tintColor:`var(--content-secondary)`,children:(0,D.jsx)(a,{to:u,className:`flex items-center justify-center no-underline`,children:(0,D.jsx)(l,{size:16,"aria-hidden":`true`})})});return(0,D.jsxs)(`div`,{ref:T,className:`flex h-full min-h-0 w-full flex-1 flex-col gap-4 p-4 sm:p-6 md:gap-0`,style:{paddingTop:A?`3.75rem`:`1rem`},children:[(0,D.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 md:hidden`,children:[M,(0,D.jsx)(c,{as:`h1`,variant:`body-large-default`,className:`flex-1 truncate text-center`,style:{color:`var(--content-tertiary)`,lineHeight:1.4},children:p}),(0,D.jsx)(`div`,{className:`h-10 w-10 shrink-0`,"aria-hidden":`true`})]}),A?(0,D.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-2 pb-4 empty:hidden`,children:[(0,D.jsx)(d,{placement:`electron`,className:`px-0 pt-0`}),(0,D.jsx)(f,{placement:`electron`,className:`px-0 pt-0`})]}):null,(0,D.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden md:rounded-[12px] md:border md:border-[var(--border-base)] md:bg-[var(--surface-overlay)]`,children:[(0,D.jsxs)(`div`,{className:`hidden shrink-0 items-center justify-between gap-4 px-6 py-5 md:flex`,children:[(0,D.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[N,(0,D.jsx)(`h1`,{className:`text-title-large truncate`,style:{color:`var(--content-emphasised)`,lineHeight:1.2},children:p})]}),(0,D.jsx)(`div`,{className:`flex shrink-0 items-center gap-2`,children:s})]}),(0,D.jsxs)(`div`,{className:`flex min-h-0 flex-1 overflow-hidden`,children:[(0,D.jsx)(`aside`,{className:`hidden w-64 shrink-0 overflow-y-auto md:block`,"aria-label":y(`sidebarShell.navigationAria`,{title:p}),children:e}),C?(0,D.jsx)(`div`,{className:`flex min-w-0 min-h-0 flex-1 flex-col overflow-y-auto overflow-x-hidden pb-6 md:hidden`,children:e}):null,(0,D.jsx)(`main`,{ref:O,className:`min-w-0 min-h-0 flex-1 flex-col gap-4 overflow-y-auto overflow-x-hidden pb-6 md:flex md:px-6 md:pt-0 ${C?`hidden`:`flex`}`,children:n})]})]})]})}function k({items:e,bottomItems:n,indexPath:r}){let{t:a}=t(),{pathname:s}=o(),c=i(),l=_(),d=(e,t,n)=>{let{href:i,onSelect:a}=e,o=i!=null&&(s===i||s.startsWith(i+`/`)||!l&&n&&r!=null&&s===r);return(0,D.jsxs)(b.Fragment,{children:[(0,D.jsx)(p.Item,{icon:e.icon,label:e.label,active:o,trailingIcon:i==null?void 0:u,trailingIconClassName:i==null?void 0:`md:hidden`,href:i,onSelect:a,onClick:i==null?void 0:e=>{y(e)||(e.preventDefault(),E(c,i,`push`))}}),!t&&(0,D.jsx)(`div`,{role:`presentation`,"aria-hidden":!0,className:`my-2 h-px w-full bg-[var(--border-base)] md:hidden`})]},e.id)};return(0,D.jsxs)(`nav`,{"aria-label":a(`sidebarTree.ariaLabel`),className:`flex min-h-full flex-col md:gap-2 md:px-6 md:pb-4`,children:[e.map((t,r)=>d(t,r===e.length-1&&!n?.length,r===0)),n&&n.length>0&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(`div`,{className:`flex-1`}),(0,D.jsx)(`div`,{role:`presentation`,"aria-hidden":!0,className:`mx-0 my-2 h-px w-full bg-[var(--border-base)] md:mx-0`}),n.map((e,t)=>d(e,t===n.length-1,!1))]})]})}export{O as n,k as t};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{v as t}from"./i18n-BtV8MCsZ.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./jsx-runtime-COOF1INC.js";import{t as i}from"./Trans-CBhhVbOk.js";import{f as a}from"./native-biometric-DEP8Sr4X.js";import{n as o,r as s}from"./login-flow-CrSxmLFE.js";import{t as c}from"./proxy-CROyCGs8.js";import{t as l}from"./AnimatePresence-BkWQRluv.js";import{t as u}from"./apple-logo-GkgGOZWf.js";import{n as d,t as f}from"./use-return-to-short-circuit-Bx5s2Syg.js";import{t as p}from"./signup-shell-DH0qR_2b.js";var m=e(n(),1),h=r();function g({words:e}){let[t,n]=(0,m.useState)(0),r=(0,m.useMemo)(()=>e.reduce((e,t)=>e.length>=t.length?e:t),[e]);return(0,m.useEffect)(()=>{let t=setInterval(()=>{n(t=>(t+1)%e.length)},2400);return()=>clearInterval(t)},[e.length]),(0,h.jsxs)(`span`,{className:`signup__rotating`,children:[(0,h.jsxs)(`span`,{className:`signup__rotating-sizer`,"aria-hidden":!0,children:[r,`.`]}),(0,h.jsx)(l,{mode:`wait`,children:(0,h.jsxs)(c.em,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},exit:{opacity:0,y:-16},transition:{duration:.3,ease:`easeInOut`},children:[e[t],`.`]},e[t])})]})}var _=[`signupScreen.headlineRoles.personalIntelligence`,`signupScreen.headlineRoles.softwareEngineer`,`signupScreen.headlineRoles.financeOps`,`signupScreen.headlineRoles.householdManager`,`signupScreen.headlineRoles.gtmEngineer`,`signupScreen.headlineRoles.productLead`];function v({returnTo:e}){let{t:n}=t(`account`),r=(0,m.useMemo)(()=>_.map(e=>n(e)),[n]),[c,l]=(0,m.useState)(null),d=s(e,{authIntent:`signup`});return(0,h.jsxs)(p,{children:[(0,h.jsxs)(`h1`,{className:`signup__title`,children:[n(`signupScreen.headlineLead`),(0,h.jsx)(`br`,{}),(0,h.jsx)(g,{words:r})]}),(0,h.jsx)(`p`,{className:`signup__subtitle`,children:n(`signupScreen.subtitle`)}),(0,h.jsx)(`div`,{className:`signup__buttons`,children:(0,h.jsx)(`button`,{type:`button`,className:`signup__btn`,onClick:()=>{l(null),a(o,d,{returnTo:e,intent:`signup`}).catch(e=>{console.error(`[signup] auth flow failed:`,e),l(n(`authErrors.genericFailure`))})},children:n(`signupScreen.continue`)})}),c&&(0,h.jsx)(`p`,{className:`signup__error`,children:c}),(0,h.jsx)(`p`,{className:`signup__footer`,children:(0,h.jsx)(i,{i18nKey:`signupScreen.haveAccountPrompt`,ns:`account`,components:{signIn:(0,h.jsx)(`button`,{type:`button`,className:`signup__link`,onClick:()=>{l(null),a(o,s(e),{returnTo:e}).catch(e=>{console.error(`[signup] sign-in flow failed:`,e),l(n(`authErrors.genericFailure`))})}})}})}),(0,h.jsxs)(`a`,{className:`signup__download`,href:`/downloads`,children:[(0,h.jsx)(u,{size:16}),n(`signupScreen.downloadMac`)]})]})}function y(){let e=f();return e.kind===`wait`?(0,h.jsx)(p,{children:(0,h.jsx)(d,{})}):e.kind===`redirect`?e.node:(0,h.jsx)(v,{returnTo:e.returnTo})}export{y as SignupPage};
@@ -1 +0,0 @@
1
- import{t as e}from"./jsx-runtime-COOF1INC.js";import{t}from"./proxy-CROyCGs8.js";import{t as n}from"./public-asset-Dk1mdzbh.js";var r=e();function i({children:e}){return(0,r.jsxs)(t.div,{"data-theme":`dark`,className:`signup`,initial:{opacity:0},animate:{opacity:1},transition:{duration:.5},children:[(0,r.jsxs)(`div`,{className:`signup__left`,children:[(0,r.jsx)(`div`,{className:`signup__logo`,children:(0,r.jsx)(`img`,{src:n(`/vellum-logo-white.svg`),alt:`Vellum`,width:82,height:25})}),(0,r.jsx)(`div`,{className:`signup__form`,children:e})]}),(0,r.jsx)(t.div,{className:`signup__right`,initial:{opacity:0},animate:{opacity:1},transition:{duration:.6,delay:.15},"aria-hidden":!0,children:(0,r.jsx)(`video`,{className:`signup__video`,src:n(`/vellum-scene-cut.mp4`),autoPlay:!0,loop:!0,muted:!0,playsInline:!0})})]})}export{i as t};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{v as t}from"./i18n-BtV8MCsZ.js";import{t as n}from"./react-DJZBPgpf.js";import{n as r}from"./button-B1kEAcLt.js";import{t as i}from"./jsx-runtime-COOF1INC.js";import{t as a}from"./typography-SdxpXI_m.js";import{A as o,O as s,d as c,k as l,o as u}from"./message-content-uWZUlo6D.js";import{t as d}from"./brain-lgsb4JhV.js";import{t as f}from"./check-bDVYejGM.js";import{t as p}from"./circle-check-CnoFVsRZ.js";import{t as m}from"./code-B7j8vdg9.js";import{t as h}from"./file-text-CexzqcsX.js";import{t as g}from"./globe-DJ3y3hQh.js";import{t as _}from"./monitor-BKwWxjph.js";import{t as v}from"./plug-AMxPbUcz.js";import{t as ee}from"./sparkles-D6kBPNlr.js";import{t as te}from"./user-plus-Bg01QRAF.js";import"./src-BKET5Cno.js";import{t as y}from"./popover-GOTwOlgQ.js";import{D as b,O as ne}from"./chat-Bfo3dMB3.js";import{t as x}from"./misc-dA4Wklt2.js";import{t as re}from"./proxy-CROyCGs8.js";import{t as ie}from"./AnimatePresence-BkWQRluv.js";import{t as S}from"./use-reduced-motion-CVyEdyEe.js";import{t as C}from"./three-dot-indicator-rcDwZDFG.js";var w=e(n(),1),T=i();function E(e){let t=e.trimStart();if(!t.startsWith(`**`))return e;let n=t.indexOf(`**`,2);if(n===-1)return t.slice(2).trimStart();let r=t.slice(2,n).trim();return r.length>0?r:e}var ae=/^https?:\/\/\S+/,oe=/^URL:\s*(https?:\/\/\S+)/i,se=/^\[\d+\]\s*(https?:\/\/\S+)/;function D(e){try{return new URL(e).hostname.replace(/^www\./,``)}catch{return``}}function ce(e){let t=e.trim();return oe.exec(t)?.[1]??se.exec(t)?.[1]??t}function le(e){return e.trim().replace(/^\d+\.\s+/,``)}function ue(e){let t=e.split(/\r?\n/),n=[],r=new Set,i=``;for(let e of t){let t=e.trim();if(!t){i=``;continue}let a=ce(t);if(ae.test(a)){r.has(a)||(r.add(a),n.push({title:i,url:a})),i=``;continue}/^Web search results for /i.test(t)||/^Sources:?$/i.test(t)||(i=le(t))}return n}function O(e){return!e||!e.trim()?[]:ue(e).map((e,t)=>{let n=D(e.url);return{rank:t+1,title:e.title,url:e.url,domain:n}})}var de=5,fe=new Set([`web_search`,`web_fetch`]);function k(e){if(!Number.isFinite(e)||e<1e3)return`<1s`;let t=Math.round(e/1e3);if(t<60)return`${t}s`;let n=Math.round(t/60);return n<60?`${n}m`:`${Math.round(n/60)}h`}function A(e){return fe.has(e.name)}function j(e){return e?`Searched the web`:`Searching the web`}function M(e){return{visible:e.slice(0,de),overflowResults:e.slice(de)}}function pe(e,t){let{visible:n,overflowResults:r}=M(e.results);return{kind:`web_search`,title:j(t),durationLabel:k(e.durationMs),linkCount:e.resultCount,results:n,overflowResults:r}}function me(e){let t=e.title??e.domain;return{kind:`thinking`,durationLabel:k(e.durationMs),text:`Reading ${t}`}}function he(){return{kind:`web_search`,title:`Searching the web`,durationLabel:``,linkCount:0,results:[]}}function ge(){return{kind:`thinking`,durationLabel:``,text:`Reading…`}}function _e(e){let t=O(e);if(t.length===0)return null;let{visible:n,overflowResults:r}=M(t);return{kind:`web_search`,title:j(!0),durationLabel:``,linkCount:t.length,results:n,overflowResults:r}}function ve(e){return{kind:`web_search_error`,title:`Web search failed`,durationLabel:k(e.durationMs),errorMessage:e.errorMessage??`Search is having trouble right now. You can try again in a moment, continue without web search, or paste the relevant details here and I'll use those.`}}function N(){return{kind:`web_search`,title:j(!0),durationLabel:``,linkCount:0,results:[]}}function P(e,t){return t[e.id]??e.activityMetadata}function F(e){return!b(e)}function I(e,t){return e.results.length>0?!1:!!e.errorMessage||!!t.isError}function L(e){return e.confirmationDecision===`denied`||e.confirmationDecision===`timed_out`?`denied`:e.isError?`error`:b(e)?`running`:`completed`}function R(e,t){return e==null||t==null?null:Math.max(0,t-e)}function z(e,t){let n=R(e,t);return n==null?``:k(n)}function B(e){return z(e.startedAt??void 0,e.completedAt??void 0)}function ye(e){return!u(e)&&b(e)}function be(e,t){if(e.kind===`thinking`)return e.text?e.completedAt==null?e.startedAt!=null&&t!=null?Math.max(0,t-e.startedAt):null:R(e.startedAt,e.completedAt):null;let n=e.toolCall;if(u(n))return null;let r=ne(n);return n.completedAt==null?b(n)&&r!=null&&t!=null?Math.max(0,t-r):null:R(r,n.completedAt)}function xe(e){return e.some(e=>e.kind===`thinking`?!!e.text&&e.startedAt!=null&&e.completedAt==null:ye(e.toolCall))}function Se(e,t){let n=0,r=!1;for(let i of e){let e=be(i,t);e!=null&&(r=!0,n+=e)}return r?k(n):``}function Ce(e){let{title:t,activity:n}=c(e);return{toolCallId:e.id,toolName:e.name,title:t,activity:n,input:e.input??{},result:e.result,streamedOutput:e.streamedOutput,status:L(e),riskLevel:e.riskLevel,riskReason:e.riskReason,durationLabel:B(e)}}function we(e){let{title:t,info:n,activity:r,iconName:i}=c(e);return{kind:`tool`,durationLabel:B(e),startedAt:e.startedAt??void 0,title:t,info:n,activity:r,riskLevel:e.riskLevel,iconName:i,toolCallId:e.id,status:L(e)}}function Te(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if(A(r)){let e=P(r,t),n=F(r);if(e?.webSearch&&I(e.webSearch,r))return`Web search failed`;if(r.name===`web_search`)return j(n);if(r.name===`web_fetch`)return`Thinking`}else return c(r).title}return``}function Ee(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if(!A(r)){let{info:e,activity:t}=c(r);return t||e}let i=P(r,t),a=F(r);if(i?.webSearch){let e=i.webSearch;if(I(e,r))return e.errorMessage??`Search is having trouble right now. You can try again in a moment, continue without web search, or paste the relevant details here and I'll use those.`;if(e.results.length>0)return e.results[e.results.length-1].title;if(!a&&e.query)return`Searching ${e.query}`}if(i?.webFetch){let e=i.webFetch;return a?e.title??e.domain:`Reading ${e.domain}`}if(r.name===`web_search`){if(!a){let e=typeof r.input?.query==`string`?r.input.query.trim():``;return e?`Searching ${e}`:``}if(typeof r.result==`string`){let e=O(r.result);if(e.length>0){let t=e[e.length-1].title;if(t)return t}}}if(r.name===`web_fetch`){let e=typeof r.input?.url==`string`?r.input.url:``,t=e?D(e):``;if(t)return a?t:`Reading ${t}`}}return``}function De(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];if(r.name!==`web_search`)continue;let i=P(r,t)?.webSearch?.results;if(i&&i.length>0)return i}return[]}function Oe(e){return e.includes(`denied`)?`denied`:e.includes(`loading`)?`loading`:e.includes(`error`)?`error`:`complete`}function ke(e){return Oe(e.map(e=>e.confirmationDecision===`denied`||e.confirmationDecision===`timed_out`?`denied`:b(e)?`loading`:e.isError?`error`:`complete`))}function Ae(e,t){if(u(e))return null;if(!A(e))return we(e);let n=P(e,t),r=F(e);if(n?.webSearch){let t=n.webSearch;return I(t,e)?ve(t):pe(t,r)}return n?.webFetch?me(n.webFetch):r?e.name===`web_search`&&typeof e.result==`string`?_e(e.result)??N():N():e.name===`web_search`?he():ge()}function je(e,t,n){let r=e.filter(e=>e.kind===`toolCall`).map(e=>e.toolCall).filter(e=>!u(e)),i=[],a=null,o=0;for(let n of e){if(n.kind===`thinking`){n.text&&(i.push({kind:`thinking`,durationLabel:z(n.startedAt,n.completedAt),text:n.text,startedAt:n.startedAt,completedAt:n.completedAt,thinkingItemIndex:o++}),a=n.text);continue}let e=Ae(n.toolCall,t);e&&(i.push(e),a=null)}let s=ke(r),c,l,d;a===null?(c=Te(r,t),l=Ee(r,t),d=`tool`):(c=`Thinking`,l=E(a),d=`thinking`);let f=De(r,t),p=`${i.length} step${i.length===1?``:`s`}`,m=Se(e,n);return{currentStepTitle:c,currentStepInfo:l,currentStepKind:d,stepCount:p,totalDurationLabel:m,steps:i,state:s,carouselItems:f}}var Me=.44;function Ne(e,t){let n=[...e].sort((e,t)=>e.position-t.position),r=n[0]?.color??`white`,i=n[n.length-1]?.color??`white`,a=n.map(e=>{let t=(e.position-.5)*2*Me;return`${e.color} calc(50% + var(--gs-spread-mid) * ${t.toFixed(4)})`}).join(`, `);return[`linear-gradient(${t}deg`,`var(--gs-base) calc(50% - var(--gs-spread))`,`color-mix(in oklab, var(--gs-base) 42%, ${r}) calc(50% - var(--gs-spread-mid))`,a,`color-mix(in oklab, var(--gs-base) 42%, ${i}) calc(50% + var(--gs-spread-mid))`,`var(--gs-base) calc(50% + var(--gs-spread)))`].join(`, `)}function Pe(e){let t=`color-mix(in srgb, ${e} 40%, white)`;return[{position:0,color:t},{position:.5,color:e},{position:1,color:t}]}var Fe=`var(--avatar-accent, var(--content-emphasised))`,Ie=`color-mix(in srgb, currentColor 45%, transparent)`,Le=1500,Re=106,V=6,H=48,U=.72,W=14,ze=96;function Be(){return typeof CSS>`u`||typeof CSS.supports!=`function`?!1:CSS.supports(`background-clip`,`text`)||CSS.supports(`-webkit-background-clip`,`text`)}function G({children:e,colorHex:t,className:n,"data-testid":r}){let i=(0,w.useRef)(null),a=S(),o=t??Fe,s=(0,w.useMemo)(()=>Ne(Pe(o),Re),[o]);(0,w.useLayoutEffect)(()=>{let t=i.current;if(!t)return;if(!Be()){t.style.removeProperty(`background-image`),t.style.removeProperty(`background-color`),t.style.removeProperty(`-webkit-text-fill-color`);return}if(a||typeof t.animate!=`function`)return;let n=null,r=()=>{let r=t.getBoundingClientRect().width||ze,i=(Number.parseFloat(getComputedStyle(t).fontSize)||W)/W,a=Math.min(e.length*V*i,H*i),o=Math.max(1,r+a*2);t.style.setProperty(`--gs-spread`,`${a}px`),t.style.setProperty(`--gs-spread-mid`,`${a*U}px`),t.style.backgroundSize=`${o}px 100%`,n?.cancel(),n=t.animate([{backgroundPosition:`0px center`},{backgroundPosition:`${o}px center`}],{duration:Le,easing:`linear`,iterations:1/0}),n.startTime=0};r();let o=typeof ResizeObserver>`u`?void 0:new ResizeObserver(r);return o?.observe(t),()=>{o?.disconnect(),n?.cancel()}},[e,a]);let c=Math.min(e.length*V,H);return(0,T.jsx)(`span`,{ref:i,className:n,style:{position:`relative`,display:`inline-block`,backgroundImage:s,backgroundRepeat:`repeat-x`,backgroundSize:`100% 100%`,backgroundColor:`var(--gs-base)`,WebkitBackgroundClip:`text`,backgroundClip:`text`,WebkitTextFillColor:`transparent`,"--gs-base":Ie,"--gs-spread":`${c}px`,"--gs-spread-mid":`${c*U}px`},"data-testid":r,children:e})}var Ve=400;function He(e,t,n){let[r,i]=(0,w.useState)(e),a=(0,w.useRef)(null),o=(0,w.useRef)(null),s=(0,w.useRef)(null);return(0,w.useEffect)(()=>{if(Object.is(r,e)){o.current=null;return}if(n){s.current&&=(clearTimeout(s.current),null),o.current=null,i(e),a.current=Date.now();return}o.current=e;let c=Date.now();a.current===null&&(a.current=c);let l=c-a.current,u=Math.max(0,t-l);return s.current&&clearTimeout(s.current),s.current=setTimeout(()=>{o.current!==null&&(i(o.current),a.current=Date.now(),o.current=null),s.current=null},u),()=>{s.current&&=(clearTimeout(s.current),null)}},[e,r,t,n]),r}function Ue({currentStepTitle:e,currentStepInfo:t,bypassDwell:n=!1,animationKey:r,shimmer:i=!1,inline:o=!1}){let s=S(),c=He((0,w.useMemo)(()=>({title:e,info:t}),[e,t]),Ve,n),l=s?{duration:0}:{duration:.25,ease:[.16,1,.3,1]},u=s?{opacity:0}:{y:-16,opacity:0},d=s?{opacity:1}:{y:0,opacity:1},f=s?{opacity:0}:{y:16,opacity:0},p=typeof c.info==`string`||typeof c.info==`number`,m=p?String(c.info):c.info==null?``:`node`,h=r??`${c.title}::${m}`,g=p?c.info!==``:c.info!=null,_=c.title.trim()!==``,v=g?`block min-w-0`:`block min-w-0 flex-1`;return(0,T.jsx)(ie,{initial:!1,mode:`popLayout`,children:(0,T.jsxs)(re.span,{initial:u,animate:d,exit:f,transition:l,className:`flex min-w-0 flex-1 items-center gap-1`,children:[_?o?(0,T.jsx)(`span`,{className:`${v} truncate text-left text-[13px] font-medium leading-[16px] text-[var(--content-secondary)]`,children:i?(0,T.jsx)(G,{children:c.title}):c.title}):(0,T.jsx)(a,{variant:`body-medium-default`,className:`ml-1 ${v} truncate text-left text-[var(--content-emphasised)]`,children:i?(0,T.jsx)(G,{children:c.title}):c.title}):null,g?(0,T.jsxs)(T.Fragment,{children:[_?(0,T.jsx)(`span`,{"aria-hidden":`true`,className:`ml-1 h-3.5 w-px shrink-0 bg-[var(--border-element)]`}):null,p?o&&!_?(0,T.jsx)(`span`,{className:`block min-w-0 flex-1 truncate text-left text-[13px] font-medium leading-[16px] text-[var(--content-secondary)]`,children:i&&typeof c.info==`string`?(0,T.jsx)(G,{children:c.info}):c.info}):(0,T.jsx)(a,{variant:_?`body-small-default`:`body-medium-default`,className:`ml-1 block min-w-0 flex-1 truncate text-left leading-[16px] ${_?`text-[var(--content-tertiary)]`:`text-[var(--content-emphasised)]`}`,children:i&&!_&&typeof c.info==`string`?(0,T.jsx)(G,{children:c.info}):c.info}):(0,T.jsx)(`span`,{className:`ml-1 block min-w-0 flex-1`,children:c.info})]}):null]},h)})}var K={code:m,terminal:s,file:h,globe:g,pen:l,monitor:_,plug:v,sparkle:ee,"user-plus":te,bolt:o,brain:d};function We(e){if(e.kind===`thinking`)return`Thinking`;if(e.kind===`web_search`||e.kind===`web_search_error`)return`Searching the web`;if(e.kind===`tool_error`)return`Error`;let t=e.title;return t.startsWith(`Working`)?t:t===`Reading`||t===`Editing`||t.startsWith(`Running`)?`Working`:t===`Using a skill`?`Using a skill`:(t.startsWith(`Using `),t)}function Ge(e){if(!e||e===`<1s`)return 0;let t=/^(\d+)(s|m|h)$/.exec(e);if(!t)return 0;let n=Number(t[1]);switch(t[2]){case`h`:return n*36e5;case`m`:return n*6e4;default:return n*1e3}}function Ke(e){let t=null;for(let n of e)(n.kind===`tool`||n.kind===`thinking`)&&n.startedAt!=null&&(t=t==null?n.startedAt:Math.min(t,n.startedAt));return t}function qe(e){return new Date(e).toLocaleTimeString([],{hour:`numeric`,minute:`2-digit`,second:`2-digit`})}function Je({durationLabel:e,startedAt:n}){let{t:i}=t(`chat`),o=(0,T.jsx)(a,{variant:`label-medium-default`,className:`text-[var(--content-tertiary)]`,children:e});return n==null?o:(0,T.jsx)(r,{content:i(`phaseGroupedStepList.startedAt`,{time:qe(n)}),side:`top`,align:`end`,children:(0,T.jsx)(`span`,{className:`cursor-default`,children:o})})}function q(e){let t=0,n=!1;for(let r of e)r&&(n=!0,t+=Ge(r));return n?k(t):``}function J(e){if(e.length===0)return`running`;for(let t of e){if(t.kind===`tool`){if(t.status===`running`)return`running`;continue}if(t.kind===`web_search`&&t.title===`Searching the web`)return`running`}return`completed`}function Ye(e){let t=[];for(let n of e){let e=We(n),r=t[t.length-1];r&&r.label===e?r.steps.push(n):t.push({label:e,steps:[n]})}return t}function Xe({steps:e,renderStep:t,timeline:n=!1}){if(e.length===0)return null;let r=Ye(e),i=[],a=0;for(let e of r)i.push(a),a+=e.steps.length;let o=(e,n)=>e.steps.map((e,r)=>{let i=tt(e,n+r);return(0,T.jsx)(w.Fragment,{children:t?t(e):(0,T.jsx)(it,{step:e})},i)});return n?(0,T.jsx)(`div`,{className:`flex w-full flex-col`,children:r.map((e,t)=>(0,T.jsx)(Ze,{section:e,baseIndex:i[t],isLast:t===r.length-1,renderSectionSteps:o},`${e.label}-${t}`))}):(0,T.jsx)(`div`,{className:`flex w-full flex-col gap-3`,children:r.map((e,t)=>{let n=q(e.steps.map(e=>`durationLabel`in e?e.durationLabel:``)),r=J(e.steps),a=i[t];return(0,T.jsxs)(`div`,{"data-testid":`phase-section`,"data-phase-label":e.label,className:`flex flex-col gap-1`,children:[(0,T.jsx)(nt,{label:e.label,durationLabel:n,status:r}),(0,T.jsx)(`div`,{className:`flex min-w-0 flex-col items-start gap-1 pl-[24px]`,children:o(e,a)})]},`${e.label}-${t}`)})})}function Ze({section:e,baseIndex:t,isLast:n,renderSectionSteps:r}){let i=q(e.steps.map(e=>`durationLabel`in e?e.durationLabel:``)),o=J(e.steps),s=e.steps[0]?.kind===`thinking`;return(0,T.jsxs)(`div`,{"data-testid":`phase-section`,"data-phase-label":e.label,className:`relative flex flex-col gap-2`,children:[!n&&(0,T.jsx)(Qe,{}),(0,T.jsxs)(`div`,{"data-testid":`phase-header`,className:`flex items-center justify-between gap-2 py-[2px]`,children:[(0,T.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,T.jsx)($e,{status:o,isThinking:s}),(0,T.jsx)(a,{variant:`body-medium-default`,className:`text-[var(--content-default)]`,children:e.label})]}),i?(0,T.jsx)(Je,{durationLabel:i,startedAt:Ke(e.steps)}):null]}),(0,T.jsx)(`div`,{className:x(`flex min-w-0 flex-col items-start gap-1 pl-[22px]`,!n&&`pb-3`),children:r(e,t)})]})}function Qe({className:e}){return(0,T.jsx)(`div`,{"aria-hidden":!0,className:x(`absolute bottom-0 left-[6.5px] top-6 w-px bg-[var(--border-subtle)]`,e)})}function $e({status:e,isThinking:t}){return t?(0,T.jsx)(d,{"aria-hidden":`true`,"data-testid":`phase-header-status-icon`,"data-status":`thinking`,className:`h-[14px] w-[14px] shrink-0 text-[var(--content-secondary)]`}):(0,T.jsx)(et,{status:e,testId:`phase-header-status-icon`})}function et({status:e,testId:t}){return e===`completed`?(0,T.jsx)(p,{"aria-hidden":`true`,"data-testid":t,"data-status":`completed`,className:`h-[14px] w-[14px] shrink-0 text-[var(--system-positive-strong)]`}):(0,T.jsx)(C,{"data-testid":t,className:`shrink-0`,dotSize:3,gap:2})}function tt(e,t){return e.kind===`tool`&&e.toolCallId?e.toolCallId:`${e.kind}-${t}`}function nt({label:e,durationLabel:t,status:n}){return(0,T.jsxs)(`div`,{"data-testid":`phase-header`,className:`flex items-center justify-between py-[2px]`,children:[(0,T.jsxs)(`div`,{className:`flex items-center gap-1`,children:[n===`completed`?(0,T.jsx)(f,{"aria-hidden":`true`,"data-testid":`phase-header-status-icon`,"data-status":`completed`,className:`h-[14px] w-[14px] text-[var(--system-positive-strong)]`}):(0,T.jsx)(C,{"data-testid":`phase-header-status-icon`,className:`shrink-0`}),(0,T.jsx)(a,{variant:`body-medium-default`,className:`text-[var(--content-default)]`,children:e})]}),t?(0,T.jsx)(a,{variant:`label-medium-default`,className:`text-[var(--content-tertiary)]`,children:t}):null]})}function rt(e){switch(e.kind){case`thinking`:return!0;case`tool`:return e.info.length>0;case`tool_error`:case`web_search_error`:case`web_search`:return!0}}function it({step:e}){if(e.kind===`thinking`)return(0,T.jsx)(X,{children:(0,T.jsx)(Y,{children:E(e.text)})});if(e.kind===`tool`){let t=K[e.iconName]??o;return rt(e)?(0,T.jsxs)(X,{children:[(0,T.jsx)(t,{"aria-hidden":`true`,className:`h-3.5 w-3.5 shrink-0 text-[var(--content-secondary)]`}),(0,T.jsx)(Y,{children:e.info})]}):null}return e.kind===`tool_error`?(0,T.jsx)(X,{children:(0,T.jsx)(Y,{children:e.message})}):e.kind===`web_search_error`?(0,T.jsx)(X,{children:(0,T.jsx)(Y,{children:e.errorMessage})}):(0,T.jsx)(X,{children:(0,T.jsx)(Y,{children:e.title})})}function Y({children:e}){return(0,T.jsx)(a,{variant:`body-small-default`,className:`min-w-0 truncate text-inherit`,children:e})}function X({children:e}){return(0,T.jsx)(`div`,{"data-testid":`phase-step-pill`,className:`inline-flex min-w-0 max-w-full items-center gap-1 self-start rounded-full border border-[var(--border-element)] bg-transparent px-2 py-1 text-[var(--content-default)]`,children:e})}var Z=`inline-flex min-w-0 items-center gap-1 self-start rounded-full px-2 py-1 text-left leading-normal`,at=`transition-colors cursor-pointer focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--border-focus)]`,Q=`bg-[var(--surface-overlay)] text-[var(--content-default)]`;function ot({faviconUrl:e,domain:t,label:n}){let[r,i]=(0,w.useState)(!1),a=!!e&&!r,o=(t&&t.length>0?t:n).charAt(0).toUpperCase();return(0,T.jsx)(`span`,{"aria-hidden":`true`,className:`inline-flex h-3.5 w-3.5 shrink-0 items-center justify-center overflow-hidden rounded-[var(--radius-sm)]`,children:a?(0,T.jsx)(`img`,{src:e,alt:``,loading:`lazy`,referrerPolicy:`no-referrer`,className:`h-full w-full object-contain`,onError:()=>i(!0)}):(0,T.jsx)(`span`,{className:`text-[10px] font-medium leading-none text-[var(--content-tertiary)]`,children:o})})}function st({label:e,url:n,faviconUrl:r,domain:i,ariaLabel:o}){let{t:s}=t(`chat`);return(0,T.jsxs)(`a`,{href:n,target:`_blank`,rel:`noopener noreferrer`,"data-testid":`tool-step-pill`,"data-variant":`web`,"aria-label":o??s(`toolStepPill.openAria`,{label:e}),className:`${Z} ${at} max-w-[240px] no-underline hover:bg-[var(--surface-active)] ${Q}`,children:[(0,T.jsx)(ot,{faviconUrl:r,domain:i,label:e}),(0,T.jsx)(a,{variant:`body-small-default`,className:`min-w-0 truncate text-inherit leading-normal`,children:e})]})}function $(e){let{t:n}=t(`chat`);if(e.variant===`web`)return(0,T.jsx)(st,{...e});let{iconName:r,label:i,onClick:s,active:c=!1,ariaLabel:l}=e,u=c?`bg-[var(--surface-active)] text-[var(--content-default)]`:Q,d=(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(K[r]??o,{"aria-hidden":`true`,className:`h-3.5 w-3.5 shrink-0 text-[var(--content-tertiary)]`}),(0,T.jsx)(a,{variant:`body-small-default`,className:`min-w-0 truncate text-inherit leading-normal`,children:i})]});return s?(0,T.jsx)(`button`,{type:`button`,"data-testid":`tool-step-pill`,"data-active":c?``:void 0,"aria-pressed":c,"aria-label":l??n(`toolStepPill.viewDetailsAria`,{label:i}),onClick:s,className:`${Z} ${at} max-w-full hover:bg-[var(--surface-active)] ${u}`,children:d}):(0,T.jsx)(`span`,{"data-testid":`tool-step-pill`,className:`${Z} max-w-full ${u}`,children:d})}function ct(e){let t=(e.domain&&e.domain.length>0?e.domain:e.title).charAt(0);return t?t.toUpperCase():``}function lt({item:e}){let[t,n]=(0,w.useState)(!1),r=!!e.faviconUrl&&!t;return(0,T.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-2 rounded-[var(--radius-md)] px-2 py-1.5 hover:bg-[var(--surface-hover)]`,children:[(0,T.jsx)(`span`,{"aria-hidden":`true`,className:`inline-flex h-[14px] w-[14px] shrink-0 items-center justify-center overflow-hidden rounded-[var(--radius-sm)] bg-[var(--surface-overlay)]`,children:r?(0,T.jsx)(`img`,{src:e.faviconUrl,alt:``,loading:`lazy`,referrerPolicy:`no-referrer`,className:`h-full w-full object-contain`,onError:()=>n(!0)}):(0,T.jsx)(`span`,{className:`text-[10px] font-medium leading-none text-[var(--content-default)]`,children:ct(e)})}),(0,T.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,T.jsx)(a,{variant:`body-small-default`,className:`truncate text-[var(--content-default)]`,children:e.title}),(0,T.jsx)(a,{variant:`body-small-default`,className:`truncate text-[var(--content-secondary)]`,children:e.domain})]})]})}function ut({results:e}){let{t:n}=t(`chat`);return(0,T.jsxs)(y.Root,{children:[(0,T.jsx)(y.Trigger,{asChild:!0,children:(0,T.jsx)(`button`,{type:`button`,"data-testid":`web-search-overflow-chip`,className:`inline-flex min-h-[26px] cursor-pointer items-center rounded-[var(--radius-pill)] bg-[var(--surface-base)] px-[10px] py-[6px] outline-none hover:bg-[var(--surface-hover)] focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:(0,T.jsx)(a,{variant:`body-small-default`,className:`text-[var(--content-default)]`,children:n(`webSearchStepRow.moreCount`,{count:e.length})})})}),(0,T.jsx)(y.Content,{align:`start`,side:`bottom`,className:`flex max-h-[260px] w-[280px] flex-col gap-0.5 overflow-y-auto`,children:e.map(e=>(0,T.jsx)(lt,{item:e},e.rank))})]})}function dt({message:e}){return(0,T.jsx)(`div`,{"data-testid":`web-search-error-chip`,className:`inline-flex items-center gap-1 rounded-[var(--radius-pill)] border border-[var(--border-element)] bg-transparent px-[10px] py-[6px]`,children:(0,T.jsx)(a,{variant:`body-small-default`,className:`text-[var(--content-default)]`,children:e})})}function ft({step:e}){let t=e.overflowResults??[];return(0,T.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1`,children:[(e.results??[]).map(e=>(0,T.jsx)($,{variant:`web`,url:e.url,faviconUrl:e.faviconUrl,domain:e.domain,label:e.title},e.rank)),t.length>0?(0,T.jsx)(ut,{results:t}):null]})}function pt({step:e}){return(0,T.jsx)(dt,{message:e.errorMessage})}function mt({faviconUrl:e,domain:t,title:n,className:r}){let[i,a]=(0,w.useState)(!1);(0,w.useEffect)(()=>{a(!1)},[e]);let o=!!e&&!i,s=(t&&t.length>0?t:n).charAt(0).toUpperCase();return(0,T.jsx)(`span`,{"aria-hidden":`true`,"data-testid":`site-favicon`,className:x(`inline-flex h-3.5 w-3.5 shrink-0 items-center justify-center overflow-hidden rounded-[var(--radius-sm)]`,r),children:o?(0,T.jsx)(`img`,{src:e,alt:``,loading:`lazy`,referrerPolicy:`no-referrer`,className:`h-full w-full object-contain`,onError:()=>a(!0)}):(0,T.jsx)(`span`,{className:`text-[10px] font-medium leading-none text-[var(--content-tertiary)]`,children:s})})}export{O as C,D as S,fe as _,it as a,xe as b,Qe as c,J as d,tt as f,G as g,Ue as h,$ as i,$e as l,q as m,pt as n,K as o,rt as p,ft as r,Xe as s,mt as t,Ye as u,je as v,E as w,Ce as x,k as y};
@@ -1 +0,0 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./cn-naJKasky.js";var r=e(t(),1);function i({as:e=`div`,className:t,ref:i,...a}){return(0,r.createElement)(e,{...a,ref:i,"data-slot":`skeleton`,className:n(`skeleton-shimmer rounded`,t)})}export{i as t};