@vellumai/web 0.12.2-staging.2 → 0.12.2-staging.3

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 (401) hide show
  1. package/dist/assets/{a2a-invite-CkKBIpe8.js → a2a-invite-C-d__v0P.js} +1 -1
  2. package/dist/assets/{about-page-DiWDYidS.js → about-page-BMTVVfA2.js} +1 -1
  3. package/dist/assets/{account-page-BdWEyJKJ.js → account-page-Bu04CQvW.js} +1 -1
  4. package/dist/assets/{account-shell-CDIxCuoE.js → account-shell-0TviHaBf.js} +1 -1
  5. package/dist/assets/{acp-run-detail-panel-BnPXD9PJ.js → acp-run-detail-panel-w4reCx6D.js} +3 -3
  6. package/dist/assets/activation-list-route-CSuVtIeq.js +1 -0
  7. package/dist/assets/{activity-redirect-page-D_VBOpOl.js → activity-redirect-page-Cgmmb8Rc.js} +1 -1
  8. package/dist/assets/activity-steps-panel-C26DS_qd.js +1 -0
  9. package/dist/assets/add-credits-modal-Byhxttdb.js +1 -0
  10. package/dist/assets/{add-credits-modal-DbveV5No.js → add-credits-modal-IIKnKS9l.js} +1 -1
  11. package/dist/assets/ai-page-_iWq21vC.js +1 -0
  12. package/dist/assets/android-billing-handoff-BVx_2Qs0.js +1 -0
  13. package/dist/assets/{api-key-screen-CnqV2gP4.js → api-key-screen-xui6n8NR.js} +1 -1
  14. package/dist/assets/app-BNL3dwNm.css +2 -0
  15. package/dist/assets/app-DFXcEvsi.js +392 -0
  16. package/dist/assets/{app-info-Cwc9Ok0v.js → app-info-4gR8gnBC.js} +1 -1
  17. package/dist/assets/archive-redirect-page-D1zUz-Kn.js +1 -0
  18. package/dist/assets/{assistant-status-panel-CnUpJoll.js → assistant-status-panel-B-woG0mJ.js} +1 -1
  19. package/dist/assets/auth-store-BFk7tSVA.js +1 -0
  20. package/dist/assets/{auth-welcome-screen-BO0eq8kj.js → auth-welcome-screen-BsYIoTpq.js} +1 -1
  21. package/dist/assets/avatar-bundled-components-B-TO2nC_.js +1 -0
  22. package/dist/assets/avatar-random-DTCQMspt.js +2 -0
  23. package/dist/assets/{await-org-header-settled-BWq2sN7_.js → await-org-header-settled-euao9G4w.js} +1 -1
  24. package/dist/assets/background-task-detail-panel-Bm7wkZ5w.js +1 -0
  25. package/dist/assets/billing-page-BkUfkbYS.js +3 -0
  26. package/dist/assets/{billing-redirect-page-BTNxUma5.js → billing-redirect-page-A8_L7A4l.js} +1 -1
  27. package/dist/assets/{bookmarks-page-1Iz7hnH8.js → bookmarks-page-Db3QFcDm.js} +1 -1
  28. package/dist/assets/{bundle-confirm-page-D0m8wyRa.js → bundle-confirm-page-Cnb49ExR.js} +1 -1
  29. package/dist/assets/channel-transcript-panel-DFDoSX5e.js +1 -0
  30. package/dist/assets/channels-page-route-9NljMyj4.js +1 -0
  31. package/dist/assets/chat-8C19KXOV.js +3 -0
  32. package/dist/assets/chat-B8bCjQZ1.js +3 -0
  33. package/dist/assets/chat-BMyAegHU.js +3 -0
  34. package/dist/assets/chat-info-panel-BENFQ0tW.js +1 -0
  35. package/dist/assets/chat-k0ASlCf6.js +3 -0
  36. package/dist/assets/{checkout-continuation-Ir9Qg-Pv.js → checkout-continuation-C38t4ayV.js} +1 -1
  37. package/dist/assets/{checkout-page-C7--EoDh.js → checkout-page-B6HAgaEv.js} +1 -1
  38. package/dist/assets/checkout-return-target-CrM-Nhda.js +1 -0
  39. package/dist/assets/{command-palette-C0GSIX1A.js → command-palette-BIYpDozl.js} +1 -1
  40. package/dist/assets/command-palette-Dj-GW7dm.js +1 -0
  41. package/dist/assets/{command-palette-window-page-LLKVQLTl.js → command-palette-window-page-BMC7dzK0.js} +1 -1
  42. package/dist/assets/common-CaTw6iFT.js +1 -0
  43. package/dist/assets/common-DvY3wB2D.js +1 -0
  44. package/dist/assets/{common-DCEa_FHA.js → common-HddDknEB.js} +1 -1
  45. package/dist/assets/common-l4KEHlw1.js +1 -0
  46. package/dist/assets/community-page-BxDoLG0_.js +1 -0
  47. package/dist/assets/{companion-accent-Bkp2ghsY.js → companion-accent-pu5Xu8Z6.js} +1 -1
  48. package/dist/assets/{companion-dock-zones-page-xiaXIxvD.js → companion-dock-zones-page-BEfMdIVO.js} +1 -1
  49. package/dist/assets/{companion-layout-BI1zMzgY.js → companion-layout-Ye64fIzN.js} +1 -1
  50. package/dist/assets/companion-popover-Bs6A6445.js +1 -0
  51. package/dist/assets/{companion-popover-page-C_JHNBel.js → companion-popover-page-7jpYeiIN.js} +1 -1
  52. package/dist/assets/companion-surface-page-BrMY3X-F.js +1 -0
  53. package/dist/assets/{companion-watch-frame-page-DH4dTyql.js → companion-watch-frame-page-Bk0N7E-g.js} +1 -1
  54. package/dist/assets/connect-page-Bf8bYBAk.js +1 -0
  55. package/dist/assets/{consent-controls-Gq28evub.js → consent-controls-N6cnmytV.js} +1 -1
  56. package/dist/assets/contacts-gateway-C_BunUUf.js +1 -0
  57. package/dist/assets/contacts-page-route-DIxMGBde.js +1 -0
  58. package/dist/assets/{credential-entry-page-CMdEgB2X.js → credential-entry-page-2ek7NaCu.js} +1 -1
  59. package/dist/assets/credentials-page-D3PvFMgc.js +1 -0
  60. package/dist/assets/{csv-preview-mNT5jrl1.js → csv-preview-BB-EmIxC.js} +1 -1
  61. package/dist/assets/danger-zone-redirect-page-BVmYzrKj.js +1 -0
  62. package/dist/assets/debug-page-CJOt0BAt.js +4 -0
  63. package/dist/assets/{deploy-dialogs-BsuRgQBS.js → deploy-dialogs-BSCor8jx.js} +1 -1
  64. package/dist/assets/deploy-dialogs-DY0pTVu1.js +1 -0
  65. package/dist/assets/desktop-preview-content-BIp4Vpgt.js +2 -0
  66. package/dist/assets/desktop-status-CHoj8auj.js +1 -0
  67. package/dist/assets/desktop-viewer-86gYrlm2.js +5 -0
  68. package/dist/assets/{detail-card-BfZQepf_.js → detail-card-CGafPdBQ.js} +1 -1
  69. package/dist/assets/{detail-panel-stop-button-CQdsxMzy.js → detail-panel-stop-button-BqhRaB6y.js} +1 -1
  70. package/dist/assets/{detail-primitives-DWM6BL6-.js → detail-primitives-DIBzx3XJ.js} +1 -1
  71. package/dist/assets/developer-page-p4Ylxemb.js +1 -0
  72. package/dist/assets/devices-redirect-page-BcyaUgzH.js +1 -0
  73. package/dist/assets/{dictation-overlay-page-Jnv8kJNY.js → dictation-overlay-page-C9yEcxKh.js} +1 -1
  74. package/dist/assets/document-load-B9O1A5E9.js +1 -0
  75. package/dist/assets/{document-load-CPnHWBZj.js → document-load-CZeb0od7.js} +1 -1
  76. package/dist/assets/document-viewer-page-L_O7lYHa.js +1 -0
  77. package/dist/assets/{ellipsis-vertical-xUQM-Elm.js → ellipsis-vertical-Dbz00Lo-.js} +1 -1
  78. package/dist/assets/{emails-page-x39HaZGf.js → emails-page-fgZebuJ7.js} +1 -1
  79. package/dist/assets/environment-store-7mW8BRRm.js +1 -0
  80. package/dist/assets/{esm-DfbgKT6v.js → esm-BRap8C09.js} +1 -1
  81. package/dist/assets/esm-BarLUlPV.js +2 -0
  82. package/dist/assets/{esm-vJJO9AjB.js → esm-BfMa-HX2.js} +2 -2
  83. package/dist/assets/esm-C19uvbek.js +2 -0
  84. package/dist/assets/{esm-CEzvChXG.js → esm-C8i-Nf3-.js} +1 -1
  85. package/dist/assets/esm-CI79f_VT.js +2 -0
  86. package/dist/assets/esm-CtAM062C.js +1 -0
  87. package/dist/assets/esm-DGqMBGum.js +1 -0
  88. package/dist/assets/esm-DYrMpsGJ.js +2 -0
  89. package/dist/assets/esm-Y7e1KRCK.js +2 -0
  90. package/dist/assets/{file-diff-view-DL32vE3_.js → file-diff-view-B9dRfPbB.js} +1 -1
  91. package/dist/assets/{file-editor-BsKygMVy.js → file-editor-DtbuATs6.js} +1 -1
  92. package/dist/assets/general-page-iMRa5Ucp.js +2 -0
  93. package/dist/assets/hatching-screen-C9GXGQ2P.js +1 -0
  94. package/dist/assets/{hosting-screen-BRLbMCaI.js → hosting-screen-D8bCW4Uz.js} +1 -1
  95. package/dist/assets/icons-QG1KAFmx.js +1 -0
  96. package/dist/assets/identity-page-route-D0fpi7db.js +7 -0
  97. package/dist/assets/{inspect-page-DrdNSLbW.js → inspect-page-C2T5Wpgw.js} +5 -5
  98. package/dist/assets/integrations-page-3cwkXYyq.js +1 -0
  99. package/dist/assets/{intelligence-AZoeHYNk.js → intelligence-8J0ZD9Ph.js} +1 -1
  100. package/dist/assets/{intelligence-ByOscdNs.js → intelligence-C2fySq4l.js} +1 -1
  101. package/dist/assets/{intelligence-Dg4wVSdX.js → intelligence-DFMbHITq.js} +1 -1
  102. package/dist/assets/{intelligence-CACuvYQr.js → intelligence-dNqws_vC.js} +1 -1
  103. package/dist/assets/intelligence-layout-jyahyAWu.js +1 -0
  104. package/dist/assets/intelligence-layout-slots-store-CI7IhmZv.js +1 -0
  105. package/dist/assets/keyboard-shortcuts-redirect-page-Bcl-FjyB.js +1 -0
  106. package/dist/assets/{latest-assistant-text-DP5fiLaB.js → latest-assistant-text-HB3-JTrf.js} +1 -1
  107. package/dist/assets/{library-detail-page-ChnVd3vO.js → library-detail-page-DTptYQAF.js} +1 -1
  108. package/dist/assets/library-page-D0OfVER_.js +1 -0
  109. package/dist/assets/local-mode-Dve-u3Zf.js +1 -0
  110. package/dist/assets/login-page-BA3GjFvS.js +1 -0
  111. package/dist/assets/{logout-page-DIGz42Xt.js → logout-page-Dp--IQJm.js} +1 -1
  112. package/dist/assets/{logs-layout-wdm0ydut.js → logs-layout-C4SjgNAl.js} +1 -1
  113. package/dist/assets/{markdown-preview-C31CUlHr.js → markdown-preview-CBu26q1U.js} +1 -1
  114. package/dist/assets/{media-preview-oUDIObuT.js → media-preview-CrddXQMc.js} +1 -1
  115. package/dist/assets/memory-page-route-BzLfpam9.js +2 -0
  116. package/dist/assets/{memory-router-playground-page-tRavfyXm.js → memory-router-playground-page-CP0Eurny.js} +1 -1
  117. package/dist/assets/message-files-panel-CDzpeEx4.js +1 -0
  118. package/dist/assets/{metric-card-T-AHvj71.js → metric-card-Dkx47Ug0.js} +1 -1
  119. package/dist/assets/native-attachment-pickers-DVsB4Q0l.js +1 -0
  120. package/dist/assets/native-file-BKR4KkJt.js +1 -0
  121. package/dist/assets/{notifications-page-Dr26_JFe.js → notifications-page-1r0ehmHL.js} +1 -1
  122. package/dist/assets/{oauth-complete-page-eoOM2u1b.js → oauth-complete-page-D8yKCOVn.js} +1 -1
  123. package/dist/assets/{oauth-popup-complete-page-DkAKB7TM.js → oauth-popup-complete-page-DzPqlG80.js} +1 -1
  124. package/dist/assets/paired-platform-identity-C4IGgtxq.js +1 -0
  125. package/dist/assets/{pairing-page-DMhPf4tK.js → pairing-page-DhmG1Tkg.js} +1 -1
  126. package/dist/assets/password-reset-page-7yc-z_Pf.js +1 -0
  127. package/dist/assets/pdf-file-preview-ElX646lL.js +1 -0
  128. package/dist/assets/{peeking-eyes-Bz7deqfy.js → peeking-eyes-DJkKQl-G.js} +1 -1
  129. package/dist/assets/personality-page-BqW5uuDF.js +1 -0
  130. package/dist/assets/{personality-page-CJ9xaG4j.js → personality-page-DXW5MuRz.js} +1 -1
  131. package/dist/assets/{personality-sliders-CTKQGSuO.js → personality-sliders-BuInNb35.js} +1 -1
  132. package/dist/assets/plans-page-B87o5Bm-.js +1 -0
  133. package/dist/assets/{platform-loopback-page-D5LpFJJK.js → platform-loopback-page--ynU4rVO.js} +1 -1
  134. package/dist/assets/{plugin-detail-page-DQLFC5mY.js → plugin-detail-page-lbmmlIpx.js} +1 -1
  135. package/dist/assets/{plugins-page-DMpCtHwR.js → plugins-page-BM44sOv4.js} +1 -1
  136. package/dist/assets/plugins-surface-2i_lZYet.js +1 -0
  137. package/dist/assets/{preview-error-DceuF__7.js → preview-error-B6mdXJ98.js} +1 -1
  138. package/dist/assets/privacy-page-BqqU59zB.js +1 -0
  139. package/dist/assets/{privacy-screen-SUppoO7T.js → privacy-screen-CW2gbeYL.js} +1 -1
  140. package/dist/assets/{provider-callback-page-fcCX9vWX.js → provider-callback-page-PVHvQXqC.js} +1 -1
  141. package/dist/assets/{provider-key-Bsl0fmCg.js → provider-key-fvCko3IH.js} +1 -1
  142. package/dist/assets/{provider-signup-page-BPUq5809.js → provider-signup-page-D6kN0d9F.js} +1 -1
  143. package/dist/assets/{provisioning-targets-CZtAFx6_.js → provisioning-targets-B5flnyHy.js} +1 -1
  144. package/dist/assets/{quick-input-page-DdGClmC4.js → quick-input-page-DMs0592w.js} +1 -1
  145. package/dist/assets/referral-modal-C5ePy9XT.js +1 -0
  146. package/dist/assets/referral-modal-VQ2vsPTh.js +1 -0
  147. package/dist/assets/{rehype-katex-DCyKPcx9.js → rehype-katex-Bp74Wkmo.js} +1 -1
  148. package/dist/assets/{research-mock-page-BDKXQ_IH.js → research-mock-page-D3X9Fw83.js} +1 -1
  149. package/dist/assets/research-onboarding-route-Bk2Zl9y9.js +50 -0
  150. package/dist/assets/{review-terms-screen-DeSN6E81.js → review-terms-screen-CU9h0Gz5.js} +1 -1
  151. package/dist/assets/routes-NC2Xyogy.js +1 -0
  152. package/dist/assets/schedules-Cslj2E_n.js +1 -0
  153. package/dist/assets/schedules-page-7QBCwWLg.js +1 -0
  154. package/dist/assets/security-redirect-page-D6C5fIZt.js +1 -0
  155. package/dist/assets/select-assistant-screen-BO9WTRBj.js +1 -0
  156. package/dist/assets/{self-hosted-servers-rYrIbt0S.js → self-hosted-servers-sqp6RgAQ.js} +1 -1
  157. package/dist/assets/{service-form-controls-3rmQU6bc.js → service-form-controls-C5nQsTzh.js} +1 -1
  158. package/dist/assets/{setting-row-rsGippsf.js → setting-row-Dqextrfj.js} +1 -1
  159. package/dist/assets/settings-C-QPO0as.js +3 -0
  160. package/dist/assets/settings-D9OIWncF.js +3 -0
  161. package/dist/assets/settings-DGQfZ51D.js +3 -0
  162. package/dist/assets/{settings-divider-DrVFbm_Z.js → settings-divider-D-IFmB_l.js} +1 -1
  163. package/dist/assets/settings-gxBTr-j9.js +3 -0
  164. package/dist/assets/{settings-layout-CguVDhKN.js → settings-layout-Bh7MaZ4H.js} +1 -1
  165. package/dist/assets/share-feedback-modal-D44y3KhU.js +1 -0
  166. package/dist/assets/share-feedback-modal-DsaGXNnY.js +2 -0
  167. package/dist/assets/{sidebar-tree-CLAWfbdV.js → sidebar-tree-BgVhUiEU.js} +1 -1
  168. package/dist/assets/{signup-page-OdyD2G67.js → signup-page-CzQJSqzn.js} +1 -1
  169. package/dist/assets/{signup-shell-D4FRWPAq.js → signup-shell-C1cGo11n.js} +1 -1
  170. package/dist/assets/skill-detail-page-BN8Rwzuu.js +2 -0
  171. package/dist/assets/skill-detail-panel-DVrh3t_h.js +1 -0
  172. package/dist/assets/{skill-removal-dialog-BSJ4vEhM.js → skill-removal-dialog-CkduZswH.js} +1 -1
  173. package/dist/assets/{skills-page-uHuHRkHV.js → skills-page-DS76T-t4.js} +1 -1
  174. package/dist/assets/{sounds-page-CPJH0X_U.js → sounds-page-Bqrv7A7h.js} +1 -1
  175. package/dist/assets/{start-screen-B3ioYfe_.js → start-screen-Cz9LflKA.js} +1 -1
  176. package/dist/assets/{stt-language-picker-modal-CvY6PHkq.js → stt-language-picker-modal-Ckz32Oh1.js} +1 -1
  177. package/dist/assets/subagent-detail-panel-C2AI9zu4.js +1 -0
  178. package/dist/assets/superpowers-page-CMOvPhlc.js +1 -0
  179. package/dist/assets/{system-events-page-DusjB-yv.js → system-events-page-D0fUUNzD.js} +1 -1
  180. package/dist/assets/system-events-redirect-page-Dr4-w7Y1.js +1 -0
  181. package/dist/assets/{text-preview-ifJ0FLN8.js → text-preview-DozGQuv6.js} +1 -1
  182. package/dist/assets/{theme-stage-page-ml2zGok2.js → theme-stage-page-CcBBPfjV.js} +1 -1
  183. package/dist/assets/{tiptap-document-editor-301Udytr.js → tiptap-document-editor-Db4_RKhj.js} +1 -1
  184. package/dist/assets/tool-detail-panel-CNNnmtM6.js +15 -0
  185. package/dist/assets/tool-detail-panel-PjXqpW5b.js +1 -0
  186. package/dist/assets/{trait-cycle-row-BtL4_fB9.js → trait-cycle-row-C1uqLkCi.js} +1 -1
  187. package/dist/assets/upgrade-cancel-page-CKZWRtvT.js +1 -0
  188. package/dist/assets/upgrade-success-page-CkXzT8Ty.js +1 -0
  189. package/dist/assets/{usage-redirect-page-BVd5XOoA.js → usage-redirect-page-CRrl2BDL.js} +1 -1
  190. package/dist/assets/use-app-delete-CFfw_T0x.js +1 -0
  191. package/dist/assets/use-assistant-identity-details-CGJTkSlu.js +1 -0
  192. package/dist/assets/use-checkout-dismiss-refresh-DB9VdW8-.js +1 -0
  193. package/dist/assets/{use-edge-swipe-back-BkOkzu0f.js → use-edge-swipe-back-DYPOVsUT.js} +1 -1
  194. package/dist/assets/{use-hotkey-recorder-e0BAwbQD.js → use-hotkey-recorder-Cj-vFxW2.js} +1 -1
  195. package/dist/assets/use-invite-link-dialog-B4f3yyUN.js +1 -0
  196. package/dist/assets/{use-platform-assistant-id-DsEYYPfs.js → use-platform-assistant-id-D8KGJAMf.js} +1 -1
  197. package/dist/assets/use-return-to-short-circuit-Db6fiXSQ.js +1 -0
  198. package/dist/assets/{use-side-list-room-C0JlGYbh.js → use-side-list-room-CSNBqjJu.js} +1 -1
  199. package/dist/assets/use-skill-actions-BNpUjvgz.js +1 -0
  200. package/dist/assets/use-skill-detail-files-C5BA-Phb.js +1 -0
  201. package/dist/assets/use-supports-credentials-settings-DIKVOLU1.js +1 -0
  202. package/dist/assets/use-transcript-message-by-id-ZVUnXf5k.js +1 -0
  203. package/dist/assets/{vendor-Dce4XQGd.js → vendor-DYOeoIwg.js} +2 -2
  204. package/dist/assets/voice-page-DDLtbhsC.js +1 -0
  205. package/dist/assets/{wake-detail-panel-Al2XWMVU.js → wake-detail-panel-C5K2zAvp.js} +1 -1
  206. package/dist/assets/{weather-forecast-display-CWgFzub-.js → weather-forecast-display-CWGsPOa9.js} +1 -1
  207. package/dist/assets/{web-XyOUV4KJ.js → web-7w3Y8MVH.js} +1 -1
  208. package/dist/assets/{web-DdVas5FJ.js → web-B_ZkQa17.js} +1 -1
  209. package/dist/assets/{web-LNm-oerp.js → web-Bb3bM_rE.js} +1 -1
  210. package/dist/assets/{web-CPz9Go5w.js → web-CQyztjRg.js} +1 -1
  211. package/dist/assets/{web-CcivtN3-.js → web-CkN0uo01.js} +1 -1
  212. package/dist/assets/{web-B8-jpFMe.js → web-DZd0e2iR.js} +1 -1
  213. package/dist/assets/{web-CntdjdN2.js → web-DpFmNxr1.js} +1 -1
  214. package/dist/assets/{web-C2h3VA7z.js → web-ZV0_2EZ9.js} +1 -1
  215. package/dist/assets/{web-Dpz2Ffo3.js → web-ocPGQzbv.js} +1 -1
  216. package/dist/assets/welcome-screen-DuUuJIJ2.js +1 -0
  217. package/dist/assets/workflow-detail-panel-D6ip8R9Y.js +1 -0
  218. package/dist/assets/workspace-page-D_4QLZh3.js +1 -0
  219. package/dist/index.html +4 -4
  220. package/package.json +1 -1
  221. package/dist/assets/activation-list-route-BpGfAO8z.js +0 -1
  222. package/dist/assets/activity-steps-panel-DLOwDGMX.js +0 -1
  223. package/dist/assets/add-credits-modal-C3OHD6qf.js +0 -1
  224. package/dist/assets/ai-page-BY6qxepq.js +0 -1
  225. package/dist/assets/android-billing-handoff-CdjBg7iY.js +0 -1
  226. package/dist/assets/app-DYcUyeCV.js +0 -392
  227. package/dist/assets/app-zlzLjynM.css +0 -2
  228. package/dist/assets/archive-redirect-page-CFe6XL4Y.js +0 -1
  229. package/dist/assets/auth-store-qFyOugDY.js +0 -1
  230. package/dist/assets/avatar-bundled-components-DK3FoHp8.js +0 -1
  231. package/dist/assets/avatar-random-CKrkTaqV.js +0 -2
  232. package/dist/assets/background-task-detail-panel-ORUKrW2i.js +0 -1
  233. package/dist/assets/billing-page-kzeezxE8.js +0 -3
  234. package/dist/assets/channel-transcript-panel-D9JTYmma.js +0 -1
  235. package/dist/assets/channels-page-route-IP5Jv1og.js +0 -1
  236. package/dist/assets/chat-BKI_zbji.js +0 -3
  237. package/dist/assets/chat-BKuyrsfu.js +0 -3
  238. package/dist/assets/chat-BcPDKWAI.js +0 -3
  239. package/dist/assets/chat-C2T6sQev.js +0 -3
  240. package/dist/assets/chat-info-panel-BUuwract.js +0 -1
  241. package/dist/assets/checkout-return-target-C4W9yc_g.js +0 -1
  242. package/dist/assets/command-palette-CsrD98bN.js +0 -1
  243. package/dist/assets/common-AudD8oBL.js +0 -1
  244. package/dist/assets/common-DK3YVoJu.js +0 -1
  245. package/dist/assets/common-sjv1KsmO.js +0 -1
  246. package/dist/assets/community-page-COiKMV7G.js +0 -1
  247. package/dist/assets/companion-popover-v-F80EHk.js +0 -1
  248. package/dist/assets/companion-surface-page-CsXzldY9.js +0 -1
  249. package/dist/assets/connect-page-D7gSntXr.js +0 -1
  250. package/dist/assets/contacts-gateway-ChHU1rQs.js +0 -1
  251. package/dist/assets/contacts-page-route-CLN-9RMq.js +0 -1
  252. package/dist/assets/credentials-page-DUy0d8Qf.js +0 -1
  253. package/dist/assets/danger-zone-redirect-page-CpBANsPW.js +0 -1
  254. package/dist/assets/debug-page-DEHSMzm6.js +0 -4
  255. package/dist/assets/deploy-dialogs-imfnwAMP.js +0 -1
  256. package/dist/assets/desktop-sidebar-content-CLSH_2DT.js +0 -2
  257. package/dist/assets/desktop-viewer-BnQ2rure.js +0 -5
  258. package/dist/assets/developer-page-BPvgy8Wi.js +0 -1
  259. package/dist/assets/devices-redirect-page-ODdh9ZCh.js +0 -1
  260. package/dist/assets/document-load-DhRvPpKP.js +0 -1
  261. package/dist/assets/document-viewer-page-BwgyP6mg.js +0 -1
  262. package/dist/assets/environment-store-C0GY-RDl.js +0 -1
  263. package/dist/assets/esm-ByLpJZU-.js +0 -2
  264. package/dist/assets/esm-Ce_5OZEK.js +0 -1
  265. package/dist/assets/esm-D50EEn3i.js +0 -1
  266. package/dist/assets/esm-DqVgYgSz.js +0 -2
  267. package/dist/assets/esm-DvwokPO4.js +0 -2
  268. package/dist/assets/esm-WmNNZ6G5.js +0 -2
  269. package/dist/assets/esm-cjSwwcic.js +0 -2
  270. package/dist/assets/general-page-CA95DkzX.js +0 -2
  271. package/dist/assets/hatching-screen-BU5hSl8C.js +0 -1
  272. package/dist/assets/icons-SKs_cTXW.js +0 -1
  273. package/dist/assets/identity-page-route-BCUZfhDl.js +0 -7
  274. package/dist/assets/integrations-page-BQ3zkbc_.js +0 -1
  275. package/dist/assets/intelligence-layout-DQA7dP9H.js +0 -1
  276. package/dist/assets/intelligence-layout-slots-store-Bn393qZ_.js +0 -1
  277. package/dist/assets/keyboard-shortcuts-redirect-page-Cj2MgzIj.js +0 -1
  278. package/dist/assets/library-page-DBPMNzOs.js +0 -1
  279. package/dist/assets/local-mode-DBwK3Yoy.js +0 -1
  280. package/dist/assets/login-page-D9xCGRlZ.js +0 -1
  281. package/dist/assets/memory-page-route-DB6Z_crP.js +0 -2
  282. package/dist/assets/message-files-panel-BVush96L.js +0 -1
  283. package/dist/assets/native-attachment-pickers-iN790LWy.js +0 -1
  284. package/dist/assets/native-file-CBaSUD63.js +0 -1
  285. package/dist/assets/paired-platform-identity-DSyb0yom.js +0 -1
  286. package/dist/assets/password-reset-page-DbQS4Jyq.js +0 -1
  287. package/dist/assets/pdf-file-preview-CGZjzTCX.js +0 -1
  288. package/dist/assets/personality-page-mlJSlhjM.js +0 -1
  289. package/dist/assets/plans-page-CTSNc-V_.js +0 -1
  290. package/dist/assets/plugins-surface-DXgmI6Fa.js +0 -1
  291. package/dist/assets/privacy-page-D5QEDjup.js +0 -1
  292. package/dist/assets/research-onboarding-route-D79iKU2n.js +0 -50
  293. package/dist/assets/routes-D8-BQV23.js +0 -1
  294. package/dist/assets/schedules-Bkin-xNo.js +0 -1
  295. package/dist/assets/schedules-page-osEW2t2y.js +0 -1
  296. package/dist/assets/security-redirect-page-D4kh6_4O.js +0 -1
  297. package/dist/assets/select-assistant-screen-CeXQW_nG.js +0 -1
  298. package/dist/assets/settings-5b6v7dcF.js +0 -3
  299. package/dist/assets/settings-B78MqHTl.js +0 -3
  300. package/dist/assets/settings-BEnsoU0B.js +0 -3
  301. package/dist/assets/settings-DcE8Dx9m.js +0 -3
  302. package/dist/assets/share-feedback-modal-BMEDwwPF.js +0 -1
  303. package/dist/assets/share-feedback-modal-Ds30t4rl.js +0 -2
  304. package/dist/assets/skill-detail-page-DcLkTuWs.js +0 -2
  305. package/dist/assets/skill-detail-panel-CCpjeza1.js +0 -1
  306. package/dist/assets/subagent-detail-panel-D8BizQX9.js +0 -1
  307. package/dist/assets/superpowers-page-c3qAVKAY.js +0 -1
  308. package/dist/assets/system-events-redirect-page-B1LED8xu.js +0 -1
  309. package/dist/assets/tool-detail-panel-BEKchUyO.js +0 -1
  310. package/dist/assets/tool-detail-panel-lkM3coiO.js +0 -15
  311. package/dist/assets/upgrade-cancel-page-eys9-GiP.js +0 -1
  312. package/dist/assets/upgrade-success-page-DBo4-ty1.js +0 -1
  313. package/dist/assets/use-app-delete-D78AElYp.js +0 -1
  314. package/dist/assets/use-assistant-identity-details-7UWP5j2N.js +0 -1
  315. package/dist/assets/use-checkout-dismiss-refresh-BVsFNWT8.js +0 -1
  316. package/dist/assets/use-invite-link-dialog-L4TB7aPd.js +0 -1
  317. package/dist/assets/use-return-to-short-circuit-COMSHsAl.js +0 -1
  318. package/dist/assets/use-skill-actions-D6M_AuIh.js +0 -1
  319. package/dist/assets/use-skill-detail-files-B4ZIUELX.js +0 -1
  320. package/dist/assets/use-supports-credentials-settings-1gt6t1jo.js +0 -1
  321. package/dist/assets/use-transcript-message-by-id-Doye708D.js +0 -1
  322. package/dist/assets/voice-page-a4H6kqs2.js +0 -1
  323. package/dist/assets/welcome-screen-CAZRHEQL.js +0 -1
  324. package/dist/assets/workflow-detail-panel-BhWqjNLU.js +0 -1
  325. package/dist/assets/workspace-page-CMhhDRc1.js +0 -1
  326. /package/dist/assets/{account-BZPOh6pV.js → account-1POZPT9m.js} +0 -0
  327. /package/dist/assets/{account-3GFMLigt.js → account-BBvlSFcW.js} +0 -0
  328. /package/dist/assets/{account-lTaON6P7.js → account-DV-tB0oh.js} +0 -0
  329. /package/dist/assets/{account-QucJ2Y5u.js → account-n9xXc949.js} +0 -0
  330. /package/dist/assets/{activation-CuGQVIGK.js → activation-B2g-Oe-r.js} +0 -0
  331. /package/dist/assets/{activation-CoAfI7zY.js → activation-BtZhlZ_s.js} +0 -0
  332. /package/dist/assets/{activation-tasks-CBv6lXCw.js → activation-CaYos65l.js} +0 -0
  333. /package/dist/assets/{activation-DEvPd6pg.js → activation-dc_gRGWQ.js} +0 -0
  334. /package/dist/assets/{activation-tasks-DwVlvR2F.js → activation-tasks-C5NV7wu7.js} +0 -0
  335. /package/dist/assets/{activation-tasks-BkdeoQQy.js → activation-tasks-CvYLTc0s.js} +0 -0
  336. /package/dist/assets/{activation-tasks-D-qyBs3B.js → activation-tasks-CzjUeEj1.js} +0 -0
  337. /package/dist/assets/{activation-un8nBcxR.js → activation-tasks-D057dozu.js} +0 -0
  338. /package/dist/assets/{app-types-zXUHUKUx.js → app-types-2kvircdH.js} +0 -0
  339. /package/dist/assets/{build.umd-CqzQelGW.js → build.umd-BWfbInTw.js} +0 -0
  340. /package/dist/assets/{channels-BHIR9mQr.js → channels-BnJWh26Z.js} +0 -0
  341. /package/dist/assets/{channels-CO0Un7Vq.js → channels-LgPH3TQp.js} +0 -0
  342. /package/dist/assets/{channels-Dlzw-hbd.js → channels-QZtdATsC.js} +0 -0
  343. /package/dist/assets/{channels-qz1rLPhm.js → channels-itxMVi8q.js} +0 -0
  344. /package/dist/assets/{contacts-C56-I-X9.js → contacts-D6N3gRLL.js} +0 -0
  345. /package/dist/assets/{contacts-DTybocWJ.js → contacts-DP3Crat5.js} +0 -0
  346. /package/dist/assets/{contacts-DxMblAMX.js → contacts-X4REeAsN.js} +0 -0
  347. /package/dist/assets/{contacts-D-Az5-cK.js → contacts-yIhQlpq2.js} +0 -0
  348. /package/dist/assets/{credential-requests-8vU09vq-.js → credential-requests-1WDcifE6.js} +0 -0
  349. /package/dist/assets/{credential-requests-tqoAnXSd.js → credential-requests-D6SU6G2Z.js} +0 -0
  350. /package/dist/assets/{credential-requests-BC6_zno-.js → credential-requests-DKbR-6qV.js} +0 -0
  351. /package/dist/assets/{credential-requests-CMIr5-ug.js → credential-requests-DrJdsdeJ.js} +0 -0
  352. /package/dist/assets/{definitions-at6loHuH.js → definitions-DhwHuMC5.js} +0 -0
  353. /package/dist/assets/{definitions-CXFBHfRh.js → definitions-Qg1-j0J7.js} +0 -0
  354. /package/dist/assets/{diff-rows-CUycwYUl.js → diff-rows-Bf-wMfUA.js} +0 -0
  355. /package/dist/assets/{emoji-catalog-data-_ZhwYlX6.js → emoji-catalog-data-Yyjk_IDu.js} +0 -0
  356. /package/dist/assets/{format-countdown-BRdD5t1W.js → format-countdown-BEyU91h0.js} +0 -0
  357. /package/dist/assets/{home-C1py7XQe.js → home-CQRYKQ5-.js} +0 -0
  358. /package/dist/assets/{home-B6H0v48H.js → home-DQz-gw5J.js} +0 -0
  359. /package/dist/assets/{home-B--cMopL.js → home-jvtY7w4T.js} +0 -0
  360. /package/dist/assets/{home-CZSiQM2c.js → home-uZ5Qvj6E.js} +0 -0
  361. /package/dist/assets/{library-CnxFRxu8.js → library-BXLScXI1.js} +0 -0
  362. /package/dist/assets/{library-Cx3az3ti.js → library-D7tisF9R.js} +0 -0
  363. /package/dist/assets/{library-DIO1gZ0U.js → library-IMXA70AZ.js} +0 -0
  364. /package/dist/assets/{library-B9Qt21qk.js → library-gTJv7Oz7.js} +0 -0
  365. /package/dist/assets/{link-click-BdI43zRN.js → link-click-BYgcUBN3.js} +0 -0
  366. /package/dist/assets/{logs-CrDZcD8o.js → logs-DV_rbeyU.js} +0 -0
  367. /package/dist/assets/{logs-Dmqay4Dh.js → logs-gUmqmCAe.js} +0 -0
  368. /package/dist/assets/{logs-4gzI0mqO.js → logs-itULWBC4.js} +0 -0
  369. /package/dist/assets/{logs-CDvqZ4JP.js → logs-ji3E1A5W.js} +0 -0
  370. /package/dist/assets/{machine-sizes-ez3aIfKG.js → machine-sizes-Cyr9sICv.js} +0 -0
  371. /package/dist/assets/{onboarding-Nd6x50X1.js → onboarding-4AB8OdqK.js} +0 -0
  372. /package/dist/assets/{onboarding-Da4AoTDW.js → onboarding-Bv6Vw7rT.js} +0 -0
  373. /package/dist/assets/{onboarding-DUkDMEeR.js → onboarding-C9uVVsD1.js} +0 -0
  374. /package/dist/assets/{onboarding-Ck1WpDTk.js → onboarding-CFxxcqra.js} +0 -0
  375. /package/dist/assets/{onboarding-step-layout-DgPEiR2D.js → onboarding-step-layout-XiwLE8P3.js} +0 -0
  376. /package/dist/assets/{pdf-a0wURVJB.js → pdf-DZqed7HH.js} +0 -0
  377. /package/dist/assets/{plugin-attribution-BHvBZd51.js → plugin-attribution-B2jD5Q1N.js} +0 -0
  378. /package/dist/assets/{radio-card-nav-CZ23fZDo.js → radio-card-nav-BtZq6gZp.js} +0 -0
  379. /package/dist/assets/{remote-web-Cc4dmJ0o.js → remote-web-BClKYDvU.js} +0 -0
  380. /package/dist/assets/{remote-web-B8SfPASo.js → remote-web-BTqxQIZY.js} +0 -0
  381. /package/dist/assets/{remote-web-4NRQQXml.js → remote-web-BqE5HtVx.js} +0 -0
  382. /package/dist/assets/{remote-web-Dp6mRdmN.js → remote-web-Cy9y7nTE.js} +0 -0
  383. /package/dist/assets/{schedules-BiEnjMbJ.js → schedules-BZCt6hXe.js} +0 -0
  384. /package/dist/assets/{schedules-CrEwUMbq.js → schedules-Capmqn71.js} +0 -0
  385. /package/dist/assets/{schedules-CSTIvSjW.js → schedules-DDJ36QQM.js} +0 -0
  386. /package/dist/assets/{schedules-Bv2BFo_x.js → schedules-DO26F1mH.js} +0 -0
  387. /package/dist/assets/{signup-onboarding-handoff-BZ0YGSjD.js → signup-onboarding-handoff-CEICxhlG.js} +0 -0
  388. /package/dist/assets/{skill-icon-BlANbII_.js → skill-icon-DLqnaRMf.js} +0 -0
  389. /package/dist/assets/{status-badge-pill-e7pOiHx8.js → status-badge-pill-Dw3L9IOE.js} +0 -0
  390. /package/dist/assets/{terminal-Cjb3eVUa.js → terminal-1uiH9Lk0.js} +0 -0
  391. /package/dist/assets/{terminal-hha8indE.js → terminal-BKHabeoN.js} +0 -0
  392. /package/dist/assets/{terminal-DDmiKM39.js → terminal-CWSI_cvE.js} +0 -0
  393. /package/dist/assets/{terminal-sl6GyHu4.js → terminal-DHtM2WSE.js} +0 -0
  394. /package/dist/assets/{usage-window-JvfWtnk-.js → usage-window-DA_JAjjs.js} +0 -0
  395. /package/dist/assets/{use-truncated-blob-text-Csy5XNd4.js → use-truncated-blob-text-BArL-keL.js} +0 -0
  396. /package/dist/assets/{workspace-XYOLCcR6.js → workspace-CrT6IjXz.js} +0 -0
  397. /package/dist/assets/{workspace-DszduRsw.js → workspace-D-j7Q1o1.js} +0 -0
  398. /package/dist/assets/{workspace-E_cFOroL.js → workspace-DOerIby3.js} +0 -0
  399. /package/dist/assets/{workspace-CLEaBD_r.js → workspace-Db-P5zkL.js} +0 -0
  400. /package/dist/assets/{xterm-D8OYaXNN.js → xterm-DuUTQzS6.js} +0 -0
  401. /package/dist/assets/{xterm-addon-fit-BjUM59GY.js → xterm-addon-fit-DuSb5pvT.js} +0 -0
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{$c as t,Ax as n,B as r,Bx as i,C as a,Cx as o,Dx as s,E as c,Gc as l,Gg as u,Go as d,H as f,Hc as p,Hx as m,Ib as h,Ix as g,Jc as _,Jo as v,Kc as y,Ko as b,Ku as x,Kx as S,Lo as C,Nx as w,Pb as T,Qc as ee,Qo as E,Qp as te,Sd as D,So as O,Sx as k,T as A,Tb as j,Uc as ne,Ur as M,Ux as N,V as P,Vb as re,Vx as F,Wb as I,Wc as ie,Wl as ae,Wx as oe,Xc as L,Xo as R,Xp as z,Yc as se,Yo as ce,Zc as le,Zo as ue,Zp as de,_x as fe,ad as pe,ax as me,di as he,do as B,el as ge,et as _e,fo as V,gc as ve,ih as ye,kx as H,lb as be,mi as xe,nl as U,nx as W,od as Se,ox as Ce,pi as G,px as K,qb as we,qc as Te,qo as Ee,qu as De,rd as Oe,rl as ke,sd as Ae,tu as je,ui as Me,un as Ne,w as Pe,xd as Fe,xp as Ie,yd as Le,ym as Re}from"./app-DFXcEvsi.js";import{Jn as q,N as J,Zn as Y,er as ze,j as X}from"./vendor-DYOeoIwg.js";import{_ as Be,d as Ve,f as He,h as Ue,n as We,t as Ge,x as Ke}from"./react-B9IgSVeK.js";import{Ci as qe,Gn as Je,Hi as Ye,Ki as Xe,Lt as Ze,Ri as Qe,Tn as $e,Xr as et,_t as tt,k as nt,qi as rt,qn as it,ur as at,vr as ot,zn as st}from"./icons-QG1KAFmx.js";import{t as ct}from"./detail-card-CGafPdBQ.js";import{n as lt,r as ut,t as dt}from"./use-side-list-room-CSNBqjJu.js";import{a as ft,c as pt,i as mt,n as ht,o as gt,r as _t,s as vt,t as yt,u as bt}from"./use-invite-link-dialog-B4f3yyUN.js";import{t as xt}from"./use-platform-assistant-id-D8KGJAMf.js";import{t as St}from"./environment-store-7mW8BRRm.js";import{i as Ct,r as wt}from"./service-form-controls-C5nQsTzh.js";var Z=e(Ke(),1);function Tt(){let{channelId:e}=Ue(),t=He(),{search:n}=Ve();return{selected:e,select:(0,Z.useCallback)(e=>{t({pathname:`/assistant/channels/${encodeURIComponent(e)}`,search:n},{replace:!0})},[t,n])}}var Q=Ge();function Et({channels:e,pluginChannels:t=[],selectedKey:n,onSelect:r}){return(0,Q.jsx)(F.Root,{className:`flex h-full flex-col overflow-hidden`,children:(0,Q.jsx)(F.Body,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-4`,children:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[e.map(e=>(0,Q.jsx)(Dt,{channel:e,selected:e.key===n,onClick:()=>r(e.key)},e.key)),t.map(e=>(0,Q.jsx)(Ot,{channel:e,selected:e.key===n,onClick:()=>r(e.key)},e.key))]})})})}function Dt({channel:e,selected:t,onClick:n}){let r=e.status===`ready`,i=G(e.key),a=r?`Connected`:`Not connected`;return(0,Q.jsx)(fe,{asChild:!0,active:t,"aria-label":`${i}, ${a}`,children:(0,Q.jsxs)(`button`,{type:`button`,onClick:n,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:[(0,Q.jsx)(Me,{channelId:e.key,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default`,children:i}),(0,Q.jsx)(`span`,{className:`flex shrink-0 items-center`,children:(0,Q.jsx)(g,{tone:r?`positive`:`neutral`,children:a})})]})})}function Ot({channel:e,selected:t,onClick:n}){let{t:r}=X(`channels`);return(0,Q.jsx)(fe,{asChild:!0,active:t,"aria-label":r(`channelAdapterList.pluginChannelAria`,{channel:e.label}),children:(0,Q.jsxs)(`button`,{type:`button`,onClick:n,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:[(0,Q.jsx)(he,{icon:e.icon,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default`,children:e.label}),(0,Q.jsx)(Ze,{"aria-hidden":!0,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`})]})})}function kt({icon:e,title:t,description:n,action:r,className:i}){return(0,Q.jsxs)(`div`,{className:S(`flex flex-col items-center justify-center gap-3 px-4 py-12 text-center`,i),children:[e?(0,Q.jsx)(`div`,{className:`flex h-12 w-12 items-center justify-center rounded-xl bg-[var(--surface-sunken)] text-[var(--content-tertiary)]`,children:e}):null,(0,Q.jsx)(`h3`,{className:`text-title-small text-[var(--content-default)]`,children:t}),n?(0,Q.jsx)(`p`,{className:`max-w-md text-body-medium-lighter text-[color:var(--content-tertiary)]`,children:n}):null,r?(0,Q.jsx)(`div`,{className:`mt-1`,children:r}):null]})}var At={no_one:{labelKey:`channelTrustFloor.noOne.label`,descriptionKey:`channelTrustFloor.noOne.description`,confirm:{titleKey:`channelTrustFloor.noOne.confirmTitle`,messageKey:`channelTrustFloor.noOne.confirmMessage`,actionKey:`channelTrustFloor.noOne.confirmAction`,destructive:!0}},guardian_only:{labelKey:`channelTrustFloor.guardianOnly.label`,descriptionKey:`channelTrustFloor.guardianOnly.description`,confirm:void 0},trusted_contacts:{labelKey:`channelTrustFloor.trustedContacts.label`,descriptionKey:`channelTrustFloor.trustedContacts.description`,confirm:void 0},any_contact:{labelKey:`channelTrustFloor.anyContact.label`,descriptionKey:`channelTrustFloor.anyContact.description`,confirm:{titleKey:`channelTrustFloor.anyContact.confirmTitle`,messageKey:`channelTrustFloor.anyContact.confirmMessage`,actionKey:`channelTrustFloor.anyContact.confirmAction`,destructive:!1}},strangers:{labelKey:`channelTrustFloor.strangers.label`,descriptionKey:`channelTrustFloor.strangers.description`,confirm:{titleKey:`channelTrustFloor.strangers.confirmTitle`,messageKey:`channelTrustFloor.strangers.confirmMessage`,actionKey:`channelTrustFloor.strangers.confirmAction`,destructive:!0}}};function jt({assistantDisplayName:e,policy:t,saving:n=!1,loading:r=!1,error:a=!1,onChange:o}){let{t:s}=X(`channels`),c=t??`trusted_contacts`,l=bt.map(t=>({value:t,label:s(At[t].labelKey),tooltip:s(At[t].descriptionKey,{assistant:e})})),[u,d]=(0,Z.useState)(null),f=u?At[u].confirm:void 0;return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(m,{as:`span`,variant:`body-small-emphasised`,className:`text-[color:var(--content-secondary)]`,children:s(`channelTrustFloor.heading`,{assistant:e})}),r?(0,Q.jsx)(m,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:s(`channelTrustFloor.loading`)}):a?(0,Q.jsx)(m,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-negative)]`,children:s(`channelTrustFloor.loadFailed`)}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{style:{maxWidth:280},children:(0,Q.jsx)(K,{value:c,onChange:e=>{if(At[e].confirm){d(e);return}o(e)},options:l,disabled:n,"aria-label":s(`channelTrustFloor.selectAria`,{assistant:e})})}),(0,Q.jsx)(m,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:s(At[c].descriptionKey,{assistant:e})}),c===`trusted_contacts`?(0,Q.jsx)(i,{tone:`info`,className:`max-w-lg`,children:s(`channelTrustFloor.trustedContactsNotice`,{assistant:e})}):null]}),(0,Q.jsx)(k,{open:u!==null,title:f?s(f.titleKey):``,message:f?s(f.messageKey):``,confirmLabel:s(f?f.actionKey:`channelTrustFloor.confirmFallback`),destructive:f?.destructive??!1,onConfirm:()=>{u&&o(u),d(null)},onCancel:()=>d(null)})]})}function Mt({mode:e,onChange:t}){let{t:n}=X(`common`);return(0,Q.jsx)(`div`,{className:`max-w-[280px]`,children:(0,Q.jsx)(s,{ariaLabel:n(`serviceCard.modeToggleAriaLabel`),value:e,onChange:t,items:[{value:`managed`,label:n(`serviceCard.managedLabel`)},{value:`your-own`,label:n(`serviceCard.yourOwnLabel`)}]})})}function Nt({id:e,title:t,subtitle:n,mode:r,onModeChange:i,children:a}){return(0,Q.jsxs)(ct,{id:e,title:t,subtitle:n,accessory:(0,Q.jsx)(Mt,{mode:r,onChange:i}),children:[(0,Q.jsx)(`div`,{className:`h-px bg-[var(--surface-active)]`}),(0,Q.jsx)(`div`,{className:`mt-4`,children:a})]})}function Pt(e,t){return e===`managed`||e===`your-own`?e:t}function Ft({subdomain:e,onSubdomainChange:t,domainSuffix:n,subdomainPlaceholder:r=`my-assistant`,disabled:i,autoFocus:a,prefix:o,error:s,locked:c,lockedMessage:l}){let{t:u}=X(`settings`);return(0,Q.jsxs)(`div`,{children:[(0,Q.jsxs)(`div`,{className:`flex h-9 w-full items-center rounded-md border bg-[var(--field-bg)] text-body-medium-lighter transition-[border-color] duration-150 ${s?`border-[var(--system-negative-strong)]`:`border-[var(--field-border)] focus-within:border-[var(--border-active)]`}`,children:[o,(0,Q.jsx)(`input`,{value:e,onChange:e=>t(e.target.value.toLowerCase().trim()),disabled:i||c,readOnly:c,autoFocus:a,placeholder:r,"aria-label":u(`domainField.subdomainAriaLabel`),"aria-invalid":!!s,className:`h-full min-w-0 flex-1 bg-transparent ${o?`pl-1.5`:`pl-3`} pr-1 text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] outline-none disabled:cursor-not-allowed disabled:opacity-60`}),(0,Q.jsxs)(`span`,{className:`shrink-0 pr-3 font-mono text-[var(--content-secondary)]`,children:[`.`,n]})]}),s&&(0,Q.jsx)(`p`,{className:`mt-1.5 text-body-small-default text-[var(--system-negative-strong)]`,children:s}),c&&l&&(0,Q.jsx)(`p`,{className:`mt-1.5 text-body-small-default text-[var(--content-tertiary)]`,children:l})]})}function It({status:e,isLoading:t}){let{t:n}=X(`common`);return t?(0,Q.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2.5 py-0.5 text-body-small-default text-[var(--content-quiet)]`,children:[(0,Q.jsx)(it,{className:`h-3 w-3 animate-spin`}),n(`domainVerificationChip.checkingDomain`)]}):!e||e===`unknown`?(0,Q.jsx)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2.5 py-0.5 text-body-small-default text-[var(--content-quiet)]`,title:n(`domainVerificationChip.unknownStatusTitle`),children:n(`domainVerificationChip.unknownStatus`)}):e===`verified`?(0,Q.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--system-positive-weak)] px-2.5 py-0.5 text-body-small-default text-[var(--system-positive-strong)]`,title:n(`domainVerificationChip.verifiedTitle`),children:[(0,Q.jsx)(rt,{className:`h-3 w-3`}),n(`domainVerificationChip.domainVerified`)]}):e===`pending`?(0,Q.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--system-mid-weak)] px-2.5 py-0.5 text-body-small-default text-[var(--system-mid-strong)]`,title:n(`domainVerificationChip.verifyingTitle`),children:[(0,Q.jsx)(qe,{className:`h-3 w-3`}),n(`domainVerificationChip.verifyingDomain`)]}):e===`not_started`?(0,Q.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--system-negative-weak)] px-2.5 py-0.5 text-body-small-default text-[var(--system-negative-strong)]`,title:n(`domainVerificationChip.setupRequiredTitle`),children:[(0,Q.jsx)(Ye,{className:`h-3 w-3`}),n(`domainVerificationChip.setupRequired`)]}):(0,Q.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--system-negative-weak)] px-2.5 py-0.5 text-body-small-default text-[var(--system-negative-strong)]`,title:n(`domainVerificationChip.failedTitle`),children:[(0,Q.jsx)(Ye,{className:`h-3 w-3`}),n(`domainVerificationChip.verificationFailed`)]})}var Lt=`rounded bg-[var(--surface-active)] px-1 py-0.5 font-mono text-[0.9em]`,Rt=1e4;function zt(e){return e===`verified`||e===`failed`||e===`not_started`?!1:Rt}function Bt({assistantId:e,assistantHandle:n,emailRootDomain:r}){let{t:a}=X(`channels`),s=ze(),c=He(),[u,d]=Be(),[f,m]=(0,Z.useState)(``),[h,g]=(0,Z.useState)(!1),[v,b]=(0,Z.useState)(null),[x,S]=(0,Z.useState)(``),[C,w]=(0,Z.useState)(null),[E,te]=(0,Z.useState)(!1),[O,A]=(0,Z.useState)(!1),[M,P]=(0,Z.useState)(!1),[F,I]=(0,Z.useState)(!1),[oe,R]=(0,Z.useState)(null);(0,Z.useEffect)(()=>{h||!n||f||(m(n),g(!0))},[n,h,f]);let z=Y({...ae(),enabled:!0}),ce=z.data,ue=ce?.entitlements,de=ue?.managed_email===!0,fe=!!ue&&!de,pe=!ce&&z.isError&&!z.isFetching,me=Y({...ie({path:{assistant_id:e}}),enabled:!fe}),he=Y({...le({path:{assistant_id:e}}),enabled:!fe}),B=me.data?.results?.[0],V=he.data?.results?.[0],ve=B?`${B.subdomain}.${r}`:null,ye=Y({...t({path:{assistant_id:e,id:V?.id??``}}),enabled:!!V?.id,refetchOnWindowFocus:!1}),H=Y({...y({path:{assistant_id:e,id:B?.id??``}}),enabled:!!B?.id,refetchInterval:e=>zt(e.state.data?.status),refetchOnWindowFocus:!0});(0,Z.useEffect)(()=>{u.get(`release`)!==`1`||!B||V||(A(!0),d(e=>{let t=new URLSearchParams(e);return t.delete(`release`),t},{replace:!0}))},[V,B,u,d]);let be=q(p()),xe=q(ne()),U=je(),W=q(se()),Se=q(L()),Ce=q(D()),G=(0,Z.useCallback)(()=>{let t={assistant_id:e};s.invalidateQueries({queryKey:l({path:t})}),s.invalidateQueries({queryKey:ee({path:t})}),V?.id&&s.invalidateQueries({queryKey:ge({path:{...t,id:V.id}})}),s.invalidateQueries({queryKey:ke()})},[V?.id,e,s]),K=_e(),we=Ce.mutateAsync,Ee=(0,Z.useCallback)(()=>{we({path:{assistant_id:K},body:{channel:`email`}}).catch(()=>{}).finally(()=>{s.invalidateQueries({queryKey:Fe({path:{assistant_id:K}})})})},[K,s,we]),De=(0,Z.useCallback)(async()=>{let t=f.trim().toLowerCase();if(!t){b(a(`emailManagedContent.enterSubdomainError`));return}te(!1);try{await be.mutateAsync({path:{assistant_id:e},body:{subdomain:t}}),m(``),b(null),G(),o.success(a(`emailManagedContent.domainRegisteredToast`,{domain:`${t}.${r}`}))}catch(e){b(re(e,void 0,a(`emailManagedContent.registerDomainFailedFallback`)))}},[e,r,G,be,f,a]),Oe=(0,Z.useCallback)(async()=>{let t=x.trim().toLowerCase();if(!t){w(a(`emailManagedContent.enterUsernameError`));return}try{await W.mutateAsync({path:{assistant_id:e},body:{username:t}}),S(``),w(null),G(),Ee(),o.success(a(`emailManagedContent.emailCreatedToast`))}catch(e){w(re(e,void 0,a(`emailManagedContent.createEmailFailedFallback`)))}},[e,G,Ee,W,x,a]),Ae=(0,Z.useCallback)(async()=>{if(V?.id){P(!1);try{await Se.mutateAsync({path:{assistant_id:e,id:V.id}}),G(),Ee(),o.success(a(`emailManagedContent.emailRemovedToast`))}catch(e){T(e,{context:`email_address_delete`}),o.error(a(`emailManagedContent.emailRemoveFailedToast`))}}},[V?.id,e,Se,G,Ee,a]),Me=(0,Z.useCallback)(async()=>{if(!(!B?.id||U.isPending)){R(null);try{let t=await U.mutateAsync({path:{assistant_id:e,id:B.id}});I(!1),_(s,{path:{assistant_id:e,id:B.id}},t),s.invalidateQueries({queryKey:Te({path:{assistant_id:e,id:B.id}})}),o.success(a(`emailManagedContent.repairStartedToast`))}catch(e){T(e,{context:`email_domain_provision`});let t=re(e,void 0,a(`emailManagedContent.repairFailedFallback`));R(t),o.error(t)}}},[e,B?.id,U,s,a]),Ne=(0,Z.useCallback)(async()=>{if(!B?.id)return;if(V){o.error(a(`emailManagedContent.removeAddressFirstToast`));return}A(!1);let t=B.subdomain;try{await xe.mutateAsync({path:{assistant_id:e,id:B.id}}),m(t),G(),o.success(a(`emailManagedContent.domainReleasedToast`))}catch(e){T(e,{context:`email_domain_release`}),o.error(a(`emailManagedContent.domainReleaseFailedToast`))}},[V,e,xe,B?.id,B?.subdomain,G,a]);if(z.isLoading)return(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(it,{className:`h-4 w-4 animate-spin`}),a(`emailManagedContent.checkingSubscription`)]});if(fe)return(0,Q.jsx)(i,{tone:`info`,icon:(0,Q.jsx)(st,{className:`h-4 w-4`,"aria-hidden":!0}),title:a(`emailManagedContent.upgradeNoticeTitle`),actions:(0,Q.jsx)(N,{size:`compact`,onClick:()=>c(j.plans),children:a(`emailManagedContent.upgradeButton`)}),children:a(`emailManagedContent.upgradeNoticeBody`)});let Pe=pe?(0,Q.jsx)(i,{tone:`warning`,title:a(`emailManagedContent.subscriptionWarningTitle`),actions:(0,Q.jsx)(N,{size:`compact`,variant:`outlined`,onClick:()=>z.refetch(),children:a(`emailManagedContent.retry`)}),children:a(`emailManagedContent.subscriptionWarningBody`)}):null;return B?V?(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[Pe,(0,Q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:a(`emailManagedContent.addressLabel`)}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(`span`,{className:`font-mono text-body-small-default text-[var(--content-default)]`,children:V.address}),(0,Q.jsx)(It,{status:H.data?.status,isLoading:H.isLoading}),(0,Q.jsx)(N,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,Q.jsx)(nt,{}),onClick:()=>P(!0),disabled:Se.isPending,"aria-label":a(`emailManagedContent.removeEmailAriaLabel`)})]}),(0,Q.jsx)(k,{open:M,title:a(`emailManagedContent.removeEmailTitle`),message:(0,Q.jsx)(J,{i18nKey:`emailManagedContent.removeEmailConfirmMessage`,ns:`channels`,values:{address:V.address},components:{code:(0,Q.jsx)(`code`,{className:Lt})}}),confirmLabel:a(`emailManagedContent.removeConfirm`),destructive:!0,onConfirm:Ae,onCancel:()=>P(!1)})]}),H.data?.status===`not_started`&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(i,{tone:`warning`,title:a(`emailManagedContent.repairNoticeTitle`),actions:(0,Q.jsx)(N,{size:`compact`,onClick:()=>{R(null),I(!0)},disabled:U.isPending,children:U.isPending?a(`emailManagedContent.completingSetup`):a(`emailManagedContent.completeSetup`)}),children:a(`emailManagedContent.repairNoticeBody`)}),(0,Q.jsx)(k,{open:F,title:a(`emailManagedContent.repairConfirmTitle`),message:(0,Q.jsx)(J,{i18nKey:`emailManagedContent.repairConfirmMessage`,ns:`channels`,values:{domain:ve},components:{code:(0,Q.jsx)(`code`,{className:Lt})}}),confirmLabel:a(`emailManagedContent.completeSetup`),isPending:U.isPending,error:oe,onConfirm:()=>{Me()},onCancel:()=>{U.isPending||I(!1)}})]}),ye.data?.usage&&(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:a(`emailManagedContent.usageSummary`,{sent:ye.data.usage.sent_today,limit:ye.data.usage.daily_limit,received:ye.data.usage.received_today})})]}):(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[Pe,(0,Q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:a(`emailManagedContent.domainLabel`)}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(`span`,{className:`font-mono text-body-small-default text-[var(--content-default)]`,children:[B.subdomain,`.`,r]}),(0,Q.jsx)(It,{status:H.data?.status,isLoading:H.isLoading}),(0,Q.jsx)(N,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,Q.jsx)(nt,{}),onClick:()=>A(!0),disabled:xe.isPending,"aria-label":a(`emailManagedContent.releaseDomainAriaLabel`)})]}),(0,Q.jsx)(k,{open:O,title:a(`emailManagedContent.releaseDomainTitle`),message:(0,Q.jsx)(J,{i18nKey:`emailManagedContent.releaseDomainConfirmMessage`,ns:`channels`,values:{domain:`${B.subdomain}.${r}`},components:{code:(0,Q.jsx)(`code`,{className:Lt})}}),confirmLabel:a(`emailManagedContent.releaseConfirm`),destructive:!0,onConfirm:Ne,onCancel:()=>A(!1)})]}),(0,Q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:a(`emailManagedContent.emailAddressLabel`)}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(`div`,{className:`flex h-9 min-w-0 flex-1 items-center rounded-md border bg-[var(--field-bg)] text-body-medium-lighter transition-[border-color] duration-150 ${C?`border-[var(--system-negative-strong)]`:`border-[var(--field-border)] focus-within:border-[var(--border-active)]`}`,children:[(0,Q.jsx)(`input`,{value:x,onChange:e=>{S(e.target.value.toLowerCase()),C&&w(null)},placeholder:a(`emailManagedContent.emailUsernamePlaceholder`),"aria-label":a(`emailManagedContent.emailUsernameAriaLabel`),"aria-invalid":!!C,className:`h-full min-w-0 flex-1 bg-transparent pl-3 pr-1 text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] outline-none`}),(0,Q.jsxs)(`span`,{className:`shrink-0 pr-3 font-mono text-[var(--content-secondary)]`,children:[`@`,ve]})]}),(0,Q.jsx)(N,{onClick:Oe,disabled:W.isPending||!x.trim(),children:W.isPending?a(`emailManagedContent.creating`):a(`emailManagedContent.create`)})]}),C&&(0,Q.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:C})]})]}):(0,Q.jsxs)(`div`,{className:`space-y-3`,children:[Pe,(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:a(`emailManagedContent.subdomainLabel`)}),(0,Q.jsx)(Ft,{subdomain:f,onSubdomainChange:e=>{m(e),v&&b(null)},domainSuffix:r,subdomainPlaceholder:a(`emailManagedContent.subdomainExamplePlaceholder`),error:v}),(0,Q.jsx)(`p`,{className:`text-body-small-lighter text-[var(--content-tertiary)]`,children:a(`emailManagedContent.subdomainHint`)}),(0,Q.jsx)(N,{onClick:()=>te(!0),disabled:be.isPending||!f.trim(),children:be.isPending?a(`emailManagedContent.registering`):a(`emailManagedContent.register`)}),(0,Q.jsx)(k,{open:E,title:a(`emailManagedContent.setSubdomainTitle`),message:(0,Q.jsx)(J,{i18nKey:`emailManagedContent.setSubdomainConfirmMessage`,ns:`channels`,values:{subdomain:f.trim().toLowerCase()||a(`emailManagedContent.subdomainFallback`)},components:{code:(0,Q.jsx)(`code`,{className:Lt})}}),confirmLabel:a(`emailManagedContent.confirm`),onConfirm:De,onCancel:()=>te(!1)})]})}function Vt(){let{t:e}=X(`channels`),t=_e(),n=Re(),{data:r}=Y({...U(),enabled:n}),i=r?.results?.[0]?.handle,a=St.use.emailRootDomain(),s=Ie(),[c,l]=(0,Z.useState)(()=>s===`gated`?`your-own`:Pt(I(V,`managed`),`managed`)),[d,f]=(0,Z.useState)(()=>{let e=I(B,`resend`);return e===`mailgun`||e===`resend`?e:`resend`}),{platformAssistantId:p,error:m}=xt(t,s===`full`&&c===`managed`),g=p??(m?t:null),_=Y({queryKey:[`byoEmailCredential`,t,d],queryFn:async()=>{let{data:e}=await u({path:{assistant_id:t},body:{service:d,field:`api_key`},throwOnError:!0});return e},enabled:c===`your-own`||s===`gated`,staleTime:6e4,retry:h,meta:{errorContext:`byo_email_credential_check`}});(0,Z.useEffect)(()=>{_.error&&T(_.error,{context:`byo_email_credential_check`,bestEffort:!0})},[_.error]);let v=_.data?.hasSecret===!0,y=(0,Z.useCallback)(e=>{l(e),we(V,e)},[]),b=(0,Z.useCallback)(()=>{we(B,d),o.success(e(`emailChannelSection.saveSuccessToast`))},[d,e]),x=(0,Z.useMemo)(()=>O.find(e=>e.id===d)??O[0],[d]),S=(0,Q.jsxs)(`div`,{className:`flex items-start gap-2 rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-3 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(at,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--system-positive-strong)]`}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Q.jsx)(`span`,{children:(0,Q.jsx)(J,{i18nKey:`emailChannelSection.setupInstructions`,ns:`channels`,values:{providerName:x.displayName,setupSkill:x.setupSkill},components:{code:(0,Q.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 text-[12px]`})}})}),(0,Q.jsxs)(`a`,{href:x.docsUrl,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[e(`emailChannelSection.openProvider`,{providerName:x.displayName}),(0,Q.jsx)(et,{className:`h-3 w-3`})]})]})]}),C=(0,Q.jsxs)(`div`,{className:`space-y-4`,children:[(0,Q.jsxs)(`div`,{className:`space-y-1`,children:[(0,Q.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e(`emailChannelSection.providerLabel`)}),(0,Q.jsx)(K,{value:d,onChange:e=>{(e===`mailgun`||e===`resend`)&&f(e)},options:O.map(e=>({value:e.id,label:e.displayName}))})]}),v?(0,Q.jsxs)(`div`,{className:`space-y-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-[var(--system-positive-subtle)] bg-[var(--surface-sunken)] p-3 text-body-small-default text-[var(--content-default)]`,children:[(0,Q.jsx)(Qe,{className:`h-4 w-4 shrink-0 text-[var(--system-positive-strong)]`}),(0,Q.jsx)(`span`,{children:(0,Q.jsx)(J,{i18nKey:`emailChannelSection.apiKeyConfigured`,ns:`channels`,values:{providerName:x.displayName,setupSkill:x.setupSkill},components:{code:(0,Q.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 text-[12px]`})}})})]}),(0,Q.jsxs)(`a`,{href:x.docsUrl,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-body-small-default text-[var(--system-positive-strong)] underline hover:opacity-80`,children:[e(`emailChannelSection.openProvider`,{providerName:x.displayName}),(0,Q.jsx)(et,{className:`h-3 w-3`})]})]}):S,(0,Q.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,Q.jsx)(wt,{onClick:b,disabled:!1})})]});return s===`gated`?(0,Q.jsx)(Ct,{id:`email`,title:e(`emailChannelSection.title`),subtitle:e(`emailChannelSection.subtitle`),children:C}):(0,Q.jsx)(Nt,{id:`email`,title:e(`emailChannelSection.title`),subtitle:e(`emailChannelSection.subtitle`),mode:c,onModeChange:y,children:c===`managed`?(0,Q.jsx)(`div`,{className:`space-y-4`,children:s===`disabled`?(0,Q.jsx)(Ne,{children:e(`emailChannelSection.platformLoginNotice`)}):g===null?(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,Q.jsx)(it,{className:`h-4 w-4 animate-spin`}),e(`emailChannelSection.connecting`)]}):(0,Q.jsx)(Bt,{assistantId:g,assistantHandle:i,emailRootDomain:a})}):C})}function Ht({health:e}){let{Icon:t,label:n,tone:r}=xe(e);return(0,Q.jsx)(g,{tone:r,leftIcon:(0,Q.jsx)(t,{}),children:n})}function Ut({address:e,health:t,pending:n,onDisconnect:r}){let{t:i}=X(`channels`);return(0,Q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Q.jsx)(Ht,{health:t}),e?(0,Q.jsx)(`span`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e}):null,(0,Q.jsx)(`div`,{className:`ml-auto`,children:(0,Q.jsx)(N,{type:`button`,variant:`danger`,onClick:r,disabled:!r||n,children:i(n?`connectionCard.disconnecting`:`connectionCard.disconnect`)})})]})}function Wt({children:e}){let{t}=X(`channels`);return(0,Q.jsxs)(F.Root,{children:[(0,Q.jsx)(F.Header,{children:(0,Q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Q.jsx)(`img`,{src:M(`/images/integrations/slack.svg`),alt:``,className:`size-8 rounded-lg bg-[var(--surface-sunken)] p-1`}),(0,Q.jsx)(m,{as:`span`,variant:`body-medium-default`,children:t(`slackChannelCard.setupHeading`)})]})}),(0,Q.jsx)(F.Body,{children:e})]})}r.map(e=>e.riskThreshold);var Gt=[`none`,`low`];function Kt(e){if(e!==void 0)return e===`none`?`none`:`low`}var qt={none:{label:P(`none`).label,sublabel:`asks every time`,tone:`negative`,dotColor:`var(--system-negative-strong)`},low:{label:P(`low`).label,sublabel:`safe lookups`,tone:`warning`,dotColor:`var(--system-mid-strong)`},medium:{label:P(`medium`).label,sublabel:`broader lookups`,tone:`info`,dotColor:`var(--system-info-strong)`},high:{label:P(`high`).label,sublabel:`any lookup`,tone:`positive`,dotColor:`var(--system-positive-strong)`}},Jt=[`trusted_contact`,`unverified_contact`,`unknown`];function Yt(e,t){let n={};for(let r of e){if(r.selector.scope!==`channel`||r.selector.adapter!==t)continue;let e=r.selector.channelExternalId;e&&(r.contactType===`trusted_contact`||!(e in n))&&(n[e]=r.threshold)}return n}function Xt(e,t,n){return n===`channels`?e.selector.scope===`adapter`&&e.selector.adapter===t:e.selector.scope===`channel_type`&&e.selector.adapter===t&&e.selector.channelType===`dm`}function Zt(e,t,n){let r;for(let i of e)Xt(i,t,n)&&(i.contactType===`trusted_contact`||r===void 0)&&(r=i.threshold);return r}var Qt=`__default__`;function $t({color:e}){return(0,Q.jsx)(`span`,{"aria-hidden":`true`,className:`h-1.5 w-1.5 shrink-0 rounded-full`,style:{backgroundColor:e}})}function en({tier:e,defaultTier:t,disabled:n,onTierChange:r,onReset:i,"aria-label":a}){let{t:o}=X(`channels`),s=Kt(e??t??void 0),c=Kt(t??void 0)??null,l=Gt.map(e=>({value:e,label:qt[e].label,icon:(0,Q.jsx)($t,{color:qt[e].dotColor}),suffix:e===c?(0,Q.jsx)(`span`,{className:`text-[color:var(--content-tertiary)]`,children:o(`tierPicker.defaultSuffix`)}):void 0,tooltip:qt[e].sublabel}));return l.unshift({value:Qt,label:`Default`,icon:(0,Q.jsx)($t,{color:`transparent`}),tooltip:`follows the default level`}),(0,Q.jsx)(K,{value:s??``,onChange:e=>{e===Qt||e===c?i():r(e)},options:l,placeholder:o(`tierPicker.defaultPlaceholder`),disabled:n,size:`compact`,menuAlign:`end`,"aria-label":a})}function tn(e){return e.type===`dm`?`dm`:e.isPrivate?`private`:`public`}function nn(e){return e.filter(e=>tn(e)!==`dm`)}function rn(e,t,n){let r=t.trim().toLowerCase();return e.filter(e=>(n===null||tn(e)===n)&&(r===``||e.name.toLowerCase().includes(r))).sort((e,t)=>e.name.localeCompare(t.name))}function an(e){let t={public:0,private:0,dm:0};for(let n of e)t[tn(n)]+=1;return t}function on(e){return e.memberCount==null?null:e.memberCount===1?`1 member`:`${e.memberCount} members`}var sn=[{value:null,labelKey:`slackChannelList.filterAll`},{value:`public`,labelKey:`slackChannelList.filterPublic`},{value:`private`,labelKey:`slackChannelList.filterPrivate`}],cn={public:ot,private:Je},ln=100,un=new Set;function dn({assistantDisplayName:e,slackHandle:t,channels:n,loading:r=!1,error:i=!1,tierOverrides:a,defaultTier:o=null,accessControlsSupported:s=!0,tierOverridesLoading:c=!1,tierOverridesError:l=!1,pendingChannelIds:u=un,onTierChange:d,onTierReset:f}){let{t:p}=X(`channels`),[h,g]=(0,Z.useState)(``),[_,v]=(0,Z.useState)(null),y=(0,Z.useMemo)(()=>nn(n??[]),[n]),b=(0,Z.useMemo)(()=>rn(y,h,_),[y,h,_]),x=(0,Z.useMemo)(()=>an(y),[y]);return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3 p-4`,children:[(0,Q.jsx)(m,{as:`p`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:(0,Q.jsx)(J,{i18nKey:`slackChannelList.presenceHint`,ns:`channels`,values:{handle:t??`@${e}`,assistant:e},components:{invite:(0,Q.jsx)(`code`,{className:`text-[color:var(--content-secondary)]`}),remove:(0,Q.jsx)(`code`,{className:`text-[color:var(--content-secondary)]`})}})}),r?(0,Q.jsx)(m,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:p(`slackChannelList.loading`)}):i?(0,Q.jsx)(m,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-negative)]`,children:p(`slackChannelList.loadFailed`)}):y.length===0?(0,Q.jsx)(kt,{icon:(0,Q.jsx)(ot,{className:`h-6 w-6`}),title:p(`slackChannelList.emptyTitle`)}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,Q.jsx)(`div`,{className:`min-w-56 flex-1`,children:(0,Q.jsx)(w,{type:`search`,value:h,onChange:e=>g(e.target.value),placeholder:p(`slackChannelList.searchPlaceholder`),"aria-label":p(`slackChannelList.searchAria`),leftIcon:(0,Q.jsx)(tt,{className:`h-4 w-4`}),fullWidth:!0})}),(0,Q.jsx)(`div`,{className:`flex items-center gap-2`,role:`group`,"aria-label":p(`slackChannelList.filterGroupAria`),children:sn.map(({value:e,labelKey:t})=>{let n=_===e,r=e===null?y.length:x[e];return(0,Q.jsx)(`button`,{type:`button`,"aria-pressed":n,onClick:()=>v(e),className:S(`inline-flex h-6 items-center rounded-full px-2.5 text-body-small-emphasised leading-none transition-colors`,n?`bg-[var(--content-default)] text-[var(--surface-base)]`:`bg-[var(--tag-bg-neutral)] text-[color:var(--content-secondary)] hover:text-[color:var(--content-default)]`),children:p(t,{count:r})},e??`all`)})})]}),b.length===0?(0,Q.jsx)(m,{as:`span`,variant:`body-small-lighter`,className:`py-4 text-center text-[color:var(--content-tertiary)]`,children:p(`slackChannelList.noMatches`)}):b.length>ln?(0,Q.jsx)(`div`,{className:`h-96`,children:(0,Q.jsx)(Ce,{items:b,computeItemKey:(e,t)=>t.id,itemContent:(e,t)=>(0,Q.jsx)(fn,{channel:t,pending:u.has(t.id),overridesLoading:c,overridesError:l,defaultTier:o,accessControls:s,tierOverride:a?.[t.id],onTierChange:e=>d?.(t.id,e),onReset:()=>f?.(t.id)}),className:`h-full`})}):(0,Q.jsx)(`div`,{className:`max-h-96 overflow-y-auto`,children:b.map(e=>(0,Q.jsx)(fn,{channel:e,pending:u.has(e.id),overridesLoading:c,overridesError:l,defaultTier:o,accessControls:s,tierOverride:a?.[e.id],onTierChange:t=>d?.(e.id,t),onReset:()=>f?.(e.id)},e.id))})]})]})}function fn({channel:e,pending:t,overridesLoading:n,overridesError:r,defaultTier:i,accessControls:a,tierOverride:o,onTierChange:s,onReset:c}){let{t:l}=X(`channels`),u=tn(e);if(u===`dm`)return null;let d=cn[u],f=on(e),p=`[&+&]:border-t [&+&]:border-[var(--border-base)]`;return a?(0,Q.jsx)(W,{className:p,leading:(0,Q.jsx)(d,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),title:e.name,subtitle:f??void 0,trailing:(0,Q.jsx)(`div`,{className:`w-40 sm:w-48`,children:(0,Q.jsx)(en,{tier:o,defaultTier:i,disabled:t||n||r,onTierChange:s,onReset:c,"aria-label":l(`slackChannelList.accessAria`,{channel:e.name})})})}):(0,Q.jsx)(W,{className:p,leading:(0,Q.jsx)(d,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),title:e.name,trailing:f==null?void 0:(0,Q.jsx)(`span`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:f})})}function pn(e){return e===`none`?`Asks before every action, even a web search.`:`Asks before anything beyond looking things up and saving files in its own workspace.`}function mn({defaultTier:e}){let{t}=X(`channels`),n=Kt(e??void 0)??null;return(0,Q.jsx)(`div`,{className:`flex flex-col gap-2 px-4 py-3`,children:(0,Q.jsx)(`ul`,{className:`grid gap-x-6 gap-y-3 sm:grid-cols-2`,children:[...Gt].reverse().map(e=>{let r=qt[e];return(0,Q.jsxs)(`li`,{className:`flex flex-col gap-0.5`,children:[(0,Q.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,Q.jsx)($t,{color:r.dotColor}),(0,Q.jsx)(m,{as:`span`,variant:`body-small-emphasised`,children:r.label}),e===n?(0,Q.jsx)(m,{as:`span`,variant:`body-small-default`,className:`text-[color:var(--content-tertiary)]`,children:t(`slackChannelTierLegend.defaultMarker`)}):null]}),(0,Q.jsx)(m,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:pn(e)})]},e)})})})}var hn=[{bucket:`channels`,icon:ot,title:`Channels`,description:`Public and private channels`},{bucket:`dm`,icon:$e,title:`Direct messages`,description:`One-on-one DMs`}];function gn({assistantName:e,globalDefaultTier:t,bucketTiers:n,loading:r,error:i,pendingBuckets:a,onBucketChange:o,onBucketReset:s}){let{t:c}=X(`channels`);return(0,Q.jsxs)(F.Root,{children:[(0,Q.jsx)(F.Header,{children:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[c(`slackChannelTypeDefaults.heading`),(0,Q.jsx)(m,{as:`p`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:(0,Q.jsx)(J,{i18nKey:`slackChannelTypeDefaults.subtitle`,ns:`channels`,values:{assistant:e},components:{trustRules:(0,Q.jsx)(We,{to:j.settings.privacy,className:`text-[var(--content-link)] underline hover:text-[var(--content-link-hover)]`})}})})]})}),(0,Q.jsx)(F.Body,{className:`py-1`,children:hn.map(({bucket:e,icon:l,title:u,description:d})=>{let f=e===`dm`?n?.channels??t:t;return(0,Q.jsx)(W,{className:`[&+&]:border-t [&+&]:border-[var(--border-base)]`,leading:(0,Q.jsx)(l,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),title:u,subtitle:d,trailing:(0,Q.jsx)(`div`,{className:`w-40 sm:w-48`,children:(0,Q.jsx)(en,{tier:n?.[e],defaultTier:f,disabled:r||i||a.has(e),onTierChange:t=>o(e,t),onReset:()=>s(e),"aria-label":c(`slackChannelTypeDefaults.bucketAria`,{bucket:u})})})},e)})}),(0,Q.jsx)(F.Footer,{className:`p-0`,children:(0,Q.jsx)(mn,{defaultTier:t})})]})}var _n=`0.11.0`;function vn(){return ye(_n)}var yn=new Set([404,501]);function bn(e){let t=x(e);return t!==void 0&&yn.has(t)}function xn(e,t,n){return Jt.map(r=>({selector:{scope:`channel`,adapter:e,channelExternalId:t},contactType:r,threshold:n}))}function Sn(e,t,n){return e.selector.scope===`channel`&&e.selector.adapter===t&&e.selector.channelExternalId===n}function Cn(e,t){return t===`channels`?{scope:`adapter`,adapter:e}:{scope:`channel_type`,adapter:e,channelType:`dm`}}function wn(e,t,n){let r=Cn(e,t);return Jt.map(e=>({selector:r,contactType:e,threshold:n}))}function Tn({assistantId:e,adapter:t}){let n=ze(),r=vn()&&!!e,i=(0,Z.useMemo)(()=>({path:{assistant_id:e}}),[e]),a=(0,Z.useMemo)(()=>E(i),[i]),o=(0,Z.useMemo)(()=>[`channel-permission-resolve`,e,t],[e,t]),s=Y({...ue(i),enabled:r}),c=s.data?.cells,l=(0,Z.useMemo)(()=>c?Yt(c,t):void 0,[c,t]),u=(0,Z.useMemo)(()=>c?{channels:Zt(c,t,`channels`),dm:Zt(c,t,`dm`)}:void 0,[c,t]),d=Y({queryKey:o,queryFn:async()=>{let{data:e}=await Ae({...i,body:{adapter:t,contactType:`trusted_contact`},throwOnError:!0});return e.resolved?.threshold??null},enabled:r,retry:!1,staleTime:3e4}),f=(e,t)=>{let r=n.getQueryData(a),i=Date.now();return n.setQueryData(a,n=>({cells:[...(n?.cells??[]).filter(t=>!e(t)),...t.map(e=>({...e,updatedAt:i}))]})),{previous:r}},p=q({mutationFn:async({channelExternalId:e,tier:n})=>{await Promise.all(xn(t,e,n).map(e=>Se({...i,body:e,throwOnError:!0})))},onMutate:({channelExternalId:e,tier:n})=>f(n=>Sn(n,t,e),xn(t,e,n)),onError:(e,t,r)=>{n.setQueryData(a,r?.previous),pt(`Failed to save channel settings`)(e)},onSettled:()=>n.invalidateQueries({queryKey:a})}),m=q({mutationFn:async({channelExternalId:e})=>{await Promise.all(Jt.map(n=>pe({...i,body:{selector:{scope:`channel`,adapter:t,channelExternalId:e},contactType:n},throwOnError:!0})))},onMutate:({channelExternalId:e})=>f(n=>Sn(n,t,e),[]),onError:(e,t,r)=>{n.setQueryData(a,r?.previous),pt(`Failed to reset channel settings`)(e)},onSettled:()=>n.invalidateQueries({queryKey:a})}),h=q({mutationFn:async({bucket:e,tier:n})=>{await Promise.all(wn(t,e,n).map(e=>Se({...i,body:e,throwOnError:!0})))},onMutate:({bucket:e,tier:n})=>f(n=>Xt(n,t,e),wn(t,e,n)),onError:(e,t,r)=>{n.setQueryData(a,r?.previous),pt(`Failed to save the default`)(e)},onSettled:(e,t,{bucket:r})=>{n.invalidateQueries({queryKey:a}),r===`channels`&&n.invalidateQueries({queryKey:o})}}),g=q({mutationFn:async({bucket:e})=>{let n=Cn(t,e);await Promise.all(Jt.map(e=>pe({...i,body:{selector:n,contactType:e},throwOnError:!0})))},onMutate:({bucket:e})=>f(n=>Xt(n,t,e),[]),onError:(e,t,r)=>{n.setQueryData(a,r?.previous),pt(`Failed to reset the default`)(e)},onSettled:(e,t,{bucket:r})=>{n.invalidateQueries({queryKey:a}),r===`channels`&&n.invalidateQueries({queryKey:o})}}),_=(0,Z.useMemo)(()=>{let e=new Set;return p.isPending&&p.variables&&e.add(p.variables.channelExternalId),m.isPending&&m.variables&&e.add(m.variables.channelExternalId),e},[p.isPending,p.variables,m.isPending,m.variables]),v=(0,Z.useMemo)(()=>{let e=new Set;return h.isPending&&h.variables&&e.add(h.variables.bucket),g.isPending&&g.variables&&e.add(g.variables.bucket),e},[h.isPending,h.variables,g.isPending,g.variables]);return!r||s.isError&&bn(s.error)?{supported:!1,tierOverrides:void 0,defaultCellTier:void 0,bucketTiers:void 0,pendingChannelIds:new Set,pendingBuckets:new Set,isLoading:!1,isError:!1,onTierChange:void 0,onTierReset:void 0,onBucketChange:void 0,onBucketReset:void 0}:{supported:!0,tierOverrides:l,defaultCellTier:d.data,bucketTiers:u,pendingChannelIds:_,pendingBuckets:v,isLoading:s.isPending,isError:s.isError,onTierChange:(e,t)=>p.mutate({channelExternalId:e,tier:t}),onTierReset:e=>{l?.[e]!==void 0&&m.mutate({channelExternalId:e})},onBucketChange:(e,t)=>h.mutate({bucket:e,tier:t}),onBucketReset:e=>{u?.[e]!==void 0&&g.mutate({bucket:e})}}}function En({assistantId:e,assistantDisplayName:t,slackHandle:n}){let{t:r}=X(`channels`),o=Y({...a(e),enabled:!!e,select:e=>e.channels}),s=Tn({assistantId:e,adapter:`slack`}),c=Y({queryKey:[`thresholds`,e],queryFn:()=>f(e),enabled:s.supported&&!!e,staleTime:3e4}).data?.interactive??null,l=s.defaultCellTier===void 0?null:s.defaultCellTier??c,u=(0,Q.jsx)(dn,{assistantDisplayName:t,slackHandle:n,accessControlsSupported:s.supported,defaultTier:l,channels:o.data,loading:o.isPending,error:o.isError,tierOverrides:s.tierOverrides,tierOverridesLoading:s.isLoading,tierOverridesError:s.isError,pendingChannelIds:s.pendingChannelIds,onTierChange:s.onTierChange,onTierReset:s.onTierReset});return!s.supported||!s.onBucketChange||!s.onBucketReset?(0,Q.jsx)(F.Root,{noPadding:!0,clipContents:!0,children:u}):(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[s.isError?(0,Q.jsx)(i,{tone:`error`,children:r(`slackChannelSection.overridesLoadFailed`)}):null,(0,Q.jsx)(gn,{assistantName:t,globalDefaultTier:c,bucketTiers:s.bucketTiers,loading:s.isLoading,error:s.isError,pendingBuckets:s.pendingBuckets,onBucketChange:s.onBucketChange,onBucketReset:s.onBucketReset}),(0,Q.jsx)(F.Root,{noPadding:!0,clipContents:!0,children:(0,Q.jsx)(me.Root,{type:`single`,collapsible:!0,children:(0,Q.jsxs)(me.Item,{value:`per-channel-overrides`,children:[(0,Q.jsxs)(me.Trigger,{className:`group justify-between gap-2 px-4 py-3`,children:[(0,Q.jsx)(m,{as:`span`,variant:`body-small-emphasised`,children:r(`slackChannelSection.perChannelOverrides`)}),(0,Q.jsx)(Xe,{"aria-hidden":`true`,className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform group-data-[state=open]:rotate-180`})]}),(0,Q.jsx)(me.Content,{className:`border-[var(--border-base)] data-[state=open]:border-t`,children:u})]})})})]})}function Dn({slackHandle:e,health:t,disconnectPending:n=!1,onDisconnect:r,children:i}){let{t:a}=X(`channels`);return(0,Q.jsxs)(F.Root,{children:[(0,Q.jsx)(F.Header,{children:(0,Q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Q.jsx)(`img`,{src:M(`/images/integrations/slack.svg`),alt:``,className:`size-8 rounded-lg bg-[var(--surface-sunken)] p-1`}),e?(0,Q.jsx)(m,{as:`span`,variant:`body-medium-default`,children:e}):null,(0,Q.jsx)(Ht,{health:t}),(0,Q.jsx)(`div`,{className:`ml-auto`,children:(0,Q.jsx)(N,{type:`button`,variant:`ghost`,onClick:r,disabled:!r||n,children:a(n?`connectionCard.disconnecting`:`connectionCard.disconnect`)})})]})}),(0,Q.jsx)(F.Body,{children:i})]})}function On({threadMode:e,threadModePending:t=!1,onThreadModeChange:r}){let{t:i}=X(`channels`);return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Q.jsx)(m,{as:`span`,variant:`body-small-emphasised`,className:`text-[color:var(--content-secondary)]`,children:i(`slackThreadBehavior.heading`)}),(0,Q.jsxs)(n,{value:e??`mention_then_thread`,onValueChange:e=>r?.(e),disabled:t||!r,"aria-label":i(`slackThreadBehavior.selectAria`),children:[(0,Q.jsx)(H,{value:`mention_only`,label:i(`slackThreadBehavior.mentionsOnly`),helperText:i(`slackThreadBehavior.mentionsOnlyHelp`)}),(0,Q.jsx)(H,{value:`mention_then_thread`,label:i(`slackThreadBehavior.followThreads`),helperText:i(`slackThreadBehavior.followThreadsHelp`)})]})]})}function kn({onSave:e}){let{t}=X(`channels`),[n,r]=(0,Z.useState)(``),[i,a]=(0,Z.useState)(``),[o,s]=(0,Z.useState)(!1),[c,l]=(0,Z.useState)(null),u=n.trim().length>0&&i.trim().length>0&&!o;return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Q.jsx)(w,{label:t(`twilioCredentialEntry.accountSid`),type:`text`,value:n,onChange:e=>r(e.target.value),placeholder:`ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`,disabled:o,fullWidth:!0}),(0,Q.jsx)(w,{label:t(`twilioCredentialEntry.authToken`),type:`password`,value:i,onChange:e=>a(e.target.value),placeholder:t(`twilioCredentialEntry.authTokenPlaceholder`),disabled:o,fullWidth:!0}),c?(0,Q.jsx)(`p`,{className:`text-label-small-default`,style:{color:`var(--content-negative)`},children:c}):null,(0,Q.jsx)(`div`,{children:(0,Q.jsx)(N,{type:`button`,onClick:async()=>{if(!(!e||!u)){s(!0),l(null);try{await e(n.trim(),i.trim()),r(``),a(``)}catch(e){l(e instanceof Error?e.message:`Failed to save`)}finally{s(!1)}}},disabled:!u,children:t(o?`twilioCredentialEntry.saving`:`twilioCredentialEntry.save`)})})]})}function An({channel:e,assistantId:t,assistantName:n,assistantDisplayName:r,pending:i,initialManualEntry:a=!1,onSetup:o,onDisconnect:s,onSaveTelegramToken:l,telegramSaveStatus:u,telegramSaveError:d,onSaveDiscordToken:f,discordSaveStatus:p,discordSaveError:m=null,discordInviteUrl:h,onSaveSlackConfig:g,slackSaveStatus:_,slackSaveError:v,slackThreadMode:y,slackThreadModePending:b=!1,onSlackThreadModeChange:x,onSaveTwilioCredentials:S,policy:C,policySaving:w=!1,policyLoading:T=!1,policyError:ee=!1,onPolicyChange:E}){let{t:D}=X(`channels`),O=e.status===`incomplete`,[k,j]=(0,Z.useState)(a),ne=e.key===`discord`&&k&&p===`success`,M=e.configured&&!ne;if(e.key===`email`)return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsx)(Vt,{}),M&&E?(0,Q.jsx)(ct,{children:(0,Q.jsx)(jt,{assistantDisplayName:r,policy:C,saving:w,loading:T,error:ee,onChange:E})}):null]});if(e.key===`slack`)return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[M?(0,Q.jsx)(Dn,{slackHandle:e.address,health:e.health,disconnectPending:i,onDisconnect:s,children:(0,Q.jsx)(On,{threadMode:y,threadModePending:b,onThreadModeChange:x})}):(0,Q.jsx)(Wt,{children:(0,Q.jsx)(c,{assistantId:t,assistantName:n,onSave:g,saveStatus:_,saveError:v})}),M?(0,Q.jsx)(En,{assistantId:t,assistantDisplayName:r,slackHandle:e.address}):null]});let P=te[e.key];return(0,Q.jsx)(`div`,{className:`flex flex-col gap-4`,children:M?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(Ut,{health:e.health,address:e.address,pending:i,onDisconnect:s}),P.hasTrustFloorControl&&E?(0,Q.jsx)(jt,{assistantDisplayName:r,policy:C,saving:w,loading:T,error:ee,onChange:E}):null]}):k&&e.canManualEntry&&P.credentialForm?(e=>{switch(e){case`slack-wizard`:return null;case`telegram-token`:return(0,Q.jsx)(Pe,{assistantId:t,assistantName:n,saveStatus:u,saveError:d,onSave:l});case`discord-token`:return(0,Q.jsx)(A,{assistantId:t,assistantName:n,saveStatus:p,saveError:m,onSave:f,...h?{inviteUrl:h}:{}});case`twilio-credentials`:return(0,Q.jsx)(kn,{onSave:S});default:return e}})(P.credentialForm):(0,Q.jsx)(kt,{icon:(0,Q.jsx)(Me,{channelId:e.key,className:`h-6 w-6`}),title:D(O?`channelPanel.incompleteTitle`:`channelPanel.disconnectedTitle`,{channel:G(e.key)}),description:O?e.warning??D(`channelPanel.incompleteDescription`,{channel:G(e.key)}):P.disconnectedPitchKey?D(P.disconnectedPitchKey,{assistant:r}):void 0,action:(0,Q.jsxs)(`div`,{className:`flex flex-col items-center gap-1`,children:[(0,Q.jsx)(N,{type:`button`,variant:`outlined`,onClick:o,disabled:!o||i,children:D(i?`channelPanel.opening`:O?`channelPanel.finishSetup`:`channelPanel.setUp`)}),e.canManualEntry&&P.credentialForm?(0,Q.jsx)(N,{type:`button`,variant:`link`,onClick:()=>j(!0),children:D(`channelPanel.connectManually`)}):null]})})})}var jn=new Set([404,501]),Mn=new Set([401,403]);function Nn(e){let t=x(e);return t!==void 0&&jn.has(t)?`unsupported`:t!==void 0&&Mn.has(t)?`forbidden`:`unreadable`}function Pn(e,t,n){let r=e===`unreadable`?t:n;return r?r instanceof Error&&r.message?r.message:`Something went wrong`:null}function Fn(e,t){let n=ze(),r={assistant_id:e},i=Y({...v({path:r}),enabled:!!e,retry:De}),a=()=>n.invalidateQueries({queryKey:ce({path:r})}),o=q({...Ee(),onSuccess:a}),s=q({...R(),onSuccess:a}),c=i.data?.sources?.find(e=>e.source===t),l;l=i.isError?Nn(i.error):i.isPending?`loading`:c?c.state:`none`;let u=Pn(l,i.error,o.error??s.error);return{status:l,paths:c?.routes?.map(e=>({path:e.publicPath,approvalGoverned:e.signer!==`vellum`,deliversInbound:e.deliversInbound===!0}))??[],deciding:o.isPending||s.isPending,approve:()=>{c?.digest&&o.mutate({path:{...r,source:t},body:{digest:c.digest}})},revoke:()=>s.mutate({path:{...r,source:t}}),error:u}}var In=`plugin`;function Ln(e){let t=ze(),n=ft(),r=(0,Z.useMemo)(()=>({path:{assistant_id:e}}),[e]),i=(0,Z.useMemo)(()=>b(r),[r]),a=Y({...d(r),enabled:n&&!!e,select:vt}),o=q({mutationFn:t=>gt(e,In,t),onSuccess:()=>t.invalidateQueries({queryKey:i}),onError:pt(`Failed to save channel policy`)}),s=(0,Z.useCallback)(e=>{o.mutate(e)},[o]);return n?{policy:a.data?.find(e=>e.channelType===In)?.policy,isLoading:a.isPending,isError:a.isError,isSaving:o.isPending,onChange:s}:{policy:void 0,isLoading:!1,isError:!1,isSaving:!1,onChange:void 0}}function Rn({channel:e,assistantId:t,assistantDisplayName:n}){let{t:r}=X(`channels`),i=He(),a=Fn(t,e.plugin),o=Ln(t);return(0,Q.jsxs)(`div`,{className:`relative flex flex-col items-center gap-3 py-10 text-center`,children:[(0,Q.jsx)(N,{className:`absolute top-0 right-0`,variant:`ghost`,size:`compact`,iconOnly:(0,Q.jsx)(Ze,{}),tooltip:r(`pluginChannelPanel.navigateToPluginPage`),"aria-label":r(`pluginChannelPanel.navigateToPluginPage`),onClick:()=>i(`/assistant/plugins/${e.plugin}`)}),(0,Q.jsx)(he,{icon:e.icon,className:`h-8 w-8 text-[color:var(--content-secondary)]`}),(0,Q.jsx)(`h3`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:e.label}),e.description?(0,Q.jsx)(`p`,{className:`max-w-[420px] text-body-medium-default`,style:{color:`var(--content-secondary)`},children:e.description}):null,(0,Q.jsx)(zn,{channel:e,ingress:a}),o.onChange?(0,Q.jsx)(`div`,{className:`w-full max-w-[420px] text-left`,children:(0,Q.jsx)(jt,{assistantDisplayName:n,policy:o.policy,saving:o.isSaving,loading:o.isLoading,error:o.isError,onChange:o.onChange})}):null]})}function zn({channel:e,ingress:t}){let{t:n}=X(`channels`);switch(t.status){case`loading`:return(0,Q.jsx)($,{children:n(`pluginChannelPanel.ingressLoading`,{channel:e.label})});case`unsupported`:return(0,Q.jsx)($,{children:n(`pluginChannelPanel.ingressUnsupported`)});case`forbidden`:return(0,Q.jsx)($,{children:n(`pluginChannelPanel.ingressForbidden`)});case`unreadable`:return(0,Q.jsxs)($,{children:[n(`pluginChannelPanel.ingressUnreadable`,{channel:e.label}),t.error?` ${t.error}`:``]});case`none`:return(0,Q.jsx)($,{children:n(`pluginChannelPanel.ingressNone`,{channel:e.label})});case`pending`:case`approved`:return(0,Q.jsx)(Bn,{ingress:t})}}function Bn({ingress:e}){let{t}=X(`channels`),n=e.status===`approved`;return(0,Q.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[(0,Q.jsx)(g,{tone:n?`positive`:`neutral`,children:t(n?`pluginChannelPanel.ingressApprovedTag`:`pluginChannelPanel.ingressPendingTag`)}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Q.jsx)(N,{onClick:n?e.revoke:e.approve,disabled:e.deciding,variant:n?`outlined`:`primary`,children:t(n?`pluginChannelPanel.revokeChannel`:`pluginChannelPanel.approveChannel`)}),(0,Q.jsx)(oe,{content:t(`pluginChannelPanel.approveChannelInfo`),children:(0,Q.jsx)(`span`,{tabIndex:0,className:`inline-flex cursor-default p-0.5 text-[color:var(--content-secondary)]`,"aria-label":t(`pluginChannelPanel.approveChannelInfo`),children:(0,Q.jsx)(at,{className:`h-4 w-4`,"aria-hidden":`true`})})})]}),e.error?(0,Q.jsx)(`p`,{className:`max-w-[420px] text-body-small-default`,style:{color:`var(--system-negative-strong)`},children:e.error}):null]})}function $({children:e}){return(0,Q.jsx)(`p`,{className:`max-w-[420px] text-body-small-default`,style:{color:`var(--content-secondary)`},children:e})}function Vn({assistantId:e,assistantName:t,channels:n,pluginChannels:r=[],pendingChannelKey:i=null,slackThreadMode:a,slackThreadModePending:o=!1,channelPolicies:s,policySavingKey:c=null,policiesLoading:l=!1,policiesError:u=!1,onChannelPolicyChange:d,onSetup:f,onDisconnect:p,onSaveTelegramToken:m,telegramSaveStatus:h,onSaveDiscordToken:g,discordSaveStatus:_,discordSaveError:v=null,discordInviteUrl:y,telegramSaveError:b,onSaveSlackConfig:x,slackSaveStatus:S,slackSaveError:w,onSlackThreadModeChange:T,onSaveTwilioCredentials:ee,initialChannel:E=null}){let{t:D}=X(`channels`),{selected:O,select:A}=Tt(),[j,ne]=(0,Z.useState)(null),{paneRef:M,hasRoomForList:N,drawerOpen:P,openDrawer:re,closeDrawer:F}=dt(),[I]=(0,Z.useState)(E);(0,Z.useEffect)(()=>{I&&A(I)},[I,A]);let ie=C(t),ae=j?te[j]:null,oe=e=>{A(e),F()},L=r.find(e=>e.key===O),R=L?void 0:n.find(e=>e.key===O)??n[0];if(!R&&!L)return null;let z=L?L.key:R.key,se=L?(0,Q.jsx)(Rn,{channel:L,assistantId:e,assistantDisplayName:ie},L.key):(0,Q.jsx)(An,{channel:R,assistantId:e,assistantName:t,assistantDisplayName:ie,pending:i===R.key,initialManualEntry:I===R.key,onSetup:f?()=>f(R.key,R.status===`incomplete`):void 0,onDisconnect:p&&R.canDisconnect?()=>ne(R.key):void 0,onSaveTelegramToken:m,telegramSaveStatus:h,onSaveDiscordToken:g,discordSaveStatus:_,discordSaveError:v,...y?{discordInviteUrl:y}:{},telegramSaveError:b,onSaveSlackConfig:x,slackSaveStatus:S,slackSaveError:w,slackThreadMode:a,slackThreadModePending:o,onSlackThreadModeChange:T,onSaveTwilioCredentials:ee,policy:s?.[R.key],policySaving:c===R.key,policyLoading:l,policyError:u,onPolicyChange:d?e=>d(R.key,e):void 0},R.key);return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`div`,{ref:M,className:`flex min-h-0 flex-1 overflow-hidden ${N?`flex-row gap-6`:`flex-col gap-4`}`,children:[N?(0,Q.jsx)(`aside`,{className:`min-h-0 w-[320px] shrink-0 overflow-y-auto self-stretch`,children:(0,Q.jsx)(Et,{channels:n,pluginChannels:r,selectedKey:z,onSelect:oe})}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{className:`flex items-center`,children:(0,Q.jsx)(ut,{onClick:re})}),(0,Q.jsx)(lt,{open:P,onClose:F,title:D(`assistantChannelsList.drawerTitle`),children:(0,Q.jsx)(Et,{channels:n,pluginChannels:r,selectedKey:z,onSelect:oe})})]}),(0,Q.jsx)(`section`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto`,children:z===`slack`||z===`email`?se:(0,Q.jsx)(ct,{children:se})})]}),(0,Q.jsx)(k,{open:j!==null,title:D(`assistantChannelsList.disconnectTitle`,{channel:ae?D(ae.labelKey):``}),message:ae?.disconnectMessageKey?D(ae.disconnectMessageKey):``,confirmLabel:D(`assistantChannelsList.disconnectConfirm`),destructive:!0,onConfirm:()=>{j&&p&&p(j),ne(null)},onCancel:()=>ne(null)})]})}var Hn=`plugin:`;function Un(e){let{data:t}=Y({...Le({path:{assistant_id:e}}),enabled:!!e,select:e=>e.channels.filter(e=>e.source?.startsWith(Hn)).map(e=>({plugin:e.id,key:de(e.id),label:e.label,description:e.subtitle,icon:e.icon}))});return t??[]}function Wn(){let[e,t]=Be(),n=e.get(`setup`),r=n&&z(n)?n:null;return(0,Z.useEffect)(()=>{r&&t(e=>(e.delete(`setup`),e),{replace:!0})},[r,t]),r}function Gn({assistantId:e,onStartSetupConversation:t}){let n=Oe.use.a2aChannel(),r=be.use.name(),i=Wn(),a=yt(e),o=C(r),s=ht({assistantId:e,onStartSetupConversation:t});return(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-6 overflow-hidden`,children:[(0,Q.jsx)(Vn,{assistantId:e,assistantName:o,initialChannel:i,pluginChannels:Un(e),...s}),n?(0,Q.jsx)(_t,{onClick:a.open}):null,(0,Q.jsx)(mt,{open:a.isOpen,assistantId:e,onClose:a.close})]})}function Kn(){let e=He(),t=_e();return(0,Q.jsx)(Gn,{assistantId:t,onStartSetupConversation:t=>{ve(e,{prompt:t})}},t)}export{Kn as ChannelsPageRoute};
@@ -0,0 +1,3 @@
1
+ var e={saveFailed:`No se pudo guardar el documento. Tu mensaje sigue aquí. Intenta enviarlo de nuevo.`,viewConversation:`Ver conversación`,reopenDocument:`Reabrir documento`},t={plan:`Plan`},n={atTime:`a las {time}`,cancelled:`Cancelado`,completed:`Completado`,refused:`Rechazado`,runFailed:`La ejecución falló`,stoppedLimitReached:`Detenido: se alcanzó el límite`},r={hideRaw:`Ocultar entrada/salida en bruto`,rawInput:`Entrada en bruto`,rawOutput:`Salida en bruto`,showRaw:`Mostrar entrada/salida en bruto`},i={connectButton:`Conectar`,dismissButton:`Descartar`,errorFallback:`No se pudo conectar Claude. Inténtalo de nuevo.`,pastePlaceholder:`Pega tu clave`,saveButton:`Guardar`,subtitleConnected:`Claude Code conectado, continuando...`,subtitleExchanging:`Completando el inicio de sesión...`,subtitleIdle:`Usa tu suscripción a Claude Code`,subtitlePaste:`Pega la clave de la pestaña que se abrió`,subtitleStarting:`Preparando el inicio de sesión...`,subtitleWaiting:`Esperando el inicio de sesión de Claude...`,title:`Conectar Claude Code`},a={backToConversationAria:`Volver a la conversación`,backTooltip:`Volver`,closeRunDetail:`Cerrar el detalle de la ejecución`,goToNewest:`Ir al más reciente`,inputLabel:`Entrada`,modelLabel:`Modelo`,objective:`Objetivo`,outputLabel:`Salida`,sendSteerAria:`Enviar instrucción de orientación`,steerAria:`Instrucción de orientación`,steerPlaceholder:`Orientar la ejecución…`,stopRunAria:`Detener la ejecución`},o={retryConfirm:`Reintentar`,retryMessage:`Se descartará la última respuesta y se generará de nuevo. Esto no se puede deshacer.`,retryTitle:`¿Reintentar esta respuesta?`,startingFirst:`Iniciando tu primera conversación…`,stillWorking:`Tu asistente sigue trabajando…`,summarizeConfirm:`Resumir`,summarizeMessage:`El asistente resumirá la conversación hasta este punto y solo llevará el resumen en su memoria de trabajo a partir de ahora. Los mensajes siguen visibles y nunca se eliminan.`,summarizeTitle:`¿Resumir hasta aquí?`,takingLonger:`Tu asistente está tardando más de lo esperado.`,tryAgain:`Reintentar`},s={backAria:`Volver a todos los pasos`,backTooltip:`Todos los pasos`,closeSteps:`Cerrar pasos`,thinkingTitle:`Pensando`,viewThinkingAria:`Ver razonamiento`},c={camera:`Cámara`,closeAriaLabel:`Cerrar`,files:`Archivos`,gallery:`Fototeca`,pickFailed:`No se pudo añadir ese archivo. Inténtalo de nuevo.`,pickFull:`{count, plural, one {# archivo no cupo en este lote. Añádelo por separado.} other {# archivos no cupieron en este lote. Añádelos por separado.}}`,title:`Añadir al chat`,tooLarge:`{count, plural, one {# archivo es demasiado grande para adjuntarlo} other {# archivos son demasiado grandes para adjuntarlos}}`},l={allowAndCreateRule:`Permitir y crear regla`,trigger:`Más opciones para permitir`},u={appExported:`Aplicación exportada`,shareFailed:`No se pudo compartir la aplicación`},d={confirm:`Archivar todo`,message:`{count, plural, one {¿Archivar la conversación en “{groupName}”? Las conversaciones archivadas salen de la barra lateral. Puedes encontrarlas después buscando “is:archived”.} other {¿Archivar las # conversaciones en “{groupName}”? Las conversaciones archivadas salen de la barra lateral. Puedes encontrarlas después buscando “is:archived”.}}`,title:`Archivar todo`},f={earlierActivity:`Actividad anterior`},p={fitView:`Ajustar`,panView:`Desplazar`,controlView:`Controlar`,panHint:`Arrastra para desplazarte. Toca para hacer clic.`,hideAria:`Ocultar escritorio virtual`,closeAria:`Cerrar vista previa del escritorio virtual`,moveAria:`Mover vista previa del escritorio virtual (teclas de flecha)`,expandAria:`Ampliar escritorio virtual`,busy:`Otro usuario está usando el escritorio virtual.`,connecting:`Conectando con el escritorio virtual…`,failed:`No se pudo iniciar el escritorio virtual.`,lost:`Se perdió la conexión con el escritorio virtual.`,openAria:`Abrir el escritorio virtual de {name}`,openUnnamedAria:`Abrir escritorio virtual`,reconnectButton:`Reconectar`,title:`Escritorio`,unavailable:`El escritorio virtual no está disponible en este asistente.`,installButton:`Instalar escritorio virtual`,checkingSetup:`Comprobando el escritorio virtual…`,installingPackages:`Instalando componentes del escritorio virtual…`,installingChrome:`Instalando Google Chrome…`,checkingInstall:`Comprobando la instalación…`,installFailed:`La instalación falló. Inténtalo de nuevo para terminar.`,setupRequestFailed:`No se pudo comprobar la instalación. Vuelve a conectar para intentarlo de nuevo.`,setupUnsupported:`La instalación requiere un contenedor Linux x64 o ARM64 con acceso de administrador.`},m={newChat:`Chat nuevo`},h={bulkActionMembersFailed:`No se pudieron cargar todas las conversaciones de esta sección. Inténtalo de nuevo.`,closeNavAria:`Cerrar navegación`,navAria:`Navegación del asistente`,search:`Buscar`,searchShortcut:`Buscar ({shortcut})`},g={dismissLabel:`Ocultar la pantalla de reposo`,sleeping:`Tu asistente está durmiendo`,sleepingNamed:`{name} está durmiendo`,waking:`Tu asistente se está despertando…`,wakingNamed:`{name} se está despertando…`,woke:`Tu asistente acaba de despertarse`,wokeNamed:`{name} acaba de despertarse`},_={collapse:`Ocultar asistentes`,currentAssistant:`{name}, asistente actual`,expand:`Cambiar de asistente`,switchFailed:`No se pudo cambiar de asistente. Inténtalo de nuevo.`,switchTo:`Cambiar a {name}`,unnamedAssistant:`Asistente sin nombre`},v={removeAria:`Eliminar {filename}`},y={download:`Descargar`,downloadAria:`Descargar {filename}`},b={cancelUploadAria:`Cancelar la carga de {filename}`,uploadingTitle:`Subiendo {filename}`},x={moreTitle:`{count} más`,showAllAria:`Mostrar todos los archivos ({count} más)`},S={closePreviewAria:`Cerrar vista previa`,downloadAria:`Descargar {filename}`,downloadLabel:`Descargar`,legacyUnavailable:`Vista previa no disponible. El contenido del archivo no se conservó en el historial del chat.`,loadFailed:`No se pudo cargar la vista previa.`,nextAttachmentAria:`Adjunto siguiente`,pdfLoadFailed:`No se pudo mostrar este PDF`,previewAria:`Vista previa de {filename}`,previousAttachmentAria:`Adjunto anterior`},C={cancelUpload:`Cancelar la subida de {filename}`,preview:`Vista previa de {filename}`,remove:`Quitar {filename}`,uploading:`Subiendo {filename}`},w={closeDetail:`Cerrar detalle de la tarea`,command:`Comando`,exitCode:`Código de salida: {code}`,output:`Salida`,stopCommandAria:`Detener comando`},T={dismiss:`Descartar`},E={description:`Dónde {count, plural, one {cayó # punto de corte de caché} other {cayeron # puntos de corte de caché}} en el prefijo de esta solicitud, y qué segmentos se leyeron frente a los que se volvieron a crear.`,estimatedTokens:`≈ {count} tokens`,fullMissBody:`Todos los segmentos se volvieron a crear en este turno. Compara con el turno anterior en la diferencia de caché de arriba para encontrar el bloque que cambió.`,fullMissTitle:`Fallo total de caché`,loadError:`No se pudo cargar la carga de la solicitud para mapear los puntos de corte de caché.`,loading:`Cargando la carga de la solicitud para mapear los puntos de corte de caché…`,noBreakpoints:`Esta solicitud no tenía puntos de corte de caché: la caché del prompt estaba desactivada para la llamada.`,splitEstimatedNote:` La división leído/creado se atribuye por tamaño de segmento; el proveedor solo informa los totales.`,statusCreated:`Vuelto a crear`,statusRead:`Leído de la caché`,statusUnknown:`En caché`,title:`Puntos de corte de caché`,tokenEstimateNote:`Los recuentos de tokens se estiman a partir de la longitud del texto.`},D={changedLabel:`Cambiado`,changedMessageFallback:`un mensaje`,chipMessages:`Mensajes`,chipModel:`Modelo`,chipSettings:`Configuración`,chipSystem:`Sistema`,chipTools:`Herramientas`,currentModelFallback:`este modelo`,description:`Qué cambió desde la solicitud del turno anterior: el bloque que volvió a crear la caché del prompt.`,diffAnyway:`Comparar de todos modos ({lineCount} líneas)`,diffLabel:`{label} diff`,diffLargeDefault:`El texto cambiado es grande, así que no se compara por defecto.`,diffStillTooLarge:`Sigue siendo demasiado grande para comparar aquí (más de {maxLines} líneas). Abre la pestaña Raw para ver la carga completa.`,diffTooLarge:`El texto cambiado es demasiado grande para comparar aquí. Abre la pestaña Raw para ver la carga completa.`,loadPreviousCallError:`No se pudo cargar la llamada anterior para comparar.`,loadingPreviousCall:`Cargando la llamada anterior para comparar…`,messageStatsAppended:`{count} añadido(s)`,messageStatsLeading:`Mensajes iniciales: {parts}`,messageStatsRemoved:`{count} eliminado(s)`,messageStatsShared:`{count} compartido(s)`,previousModelFallback:`el modelo anterior`,previousPromptUnavailable:`El prompt de la llamada anterior no está disponible para comparar.`,showLess:`Mostrar menos`,showMoreDiffLines:`Mostrar {count} línea(s) de diferencia más`,statusMessagesEarlierBody:`{label} #{index} difiere del turno anterior, así que todo lo que estaba en caché después se vuelve a procesar en este turno.`,statusMessagesEarlierTitle:`Un mensaje anterior cambió`,statusMessagesHistoryBody:`Faltan {removedCount} mensaje(s) anterior(es) en este turno (probablemente por compactación del historial), así que el prefijo de mensajes en caché ya no coincide.`,statusMessagesHistoryTitle:`Historial de mensajes cambiado`,statusModelBody:`Este turno usó {current}, pero el turno anterior usó {previous}. Un modelo distinto no puede reutilizar la caché del prompt anterior, así que todo el prompt se vuelve a crear.`,statusModelTitle:`Modelo cambiado`,statusPrefixUnchangedBodyAppended:`El prefijo en caché coincide con el turno anterior y se añadieron {count} mensaje(s) nuevo(s). Un fallo de caché aquí apunta a la caducidad del TTL de la caché, no a contenido cambiado.`,statusPrefixUnchangedBodyIdentical:`El prefijo en caché es idéntico al del turno anterior. Un fallo de caché aquí apunta a la caducidad del TTL de la caché, no a contenido cambiado.`,statusPrefixUnchangedTitle:`Prefijo del prompt sin cambios`,statusSettingsBody:`Solo la configuración de la solicitud (p. ej., temperatura) difiere del turno anterior. En la mayoría de proveedores, esto por sí solo no invalida la caché del prompt.`,statusSettingsTitle:`Configuración de la solicitud cambiada`,statusSystemBody:`Parte del prompt del sistema cambió desde el turno anterior. El contenido volátil aquí (una marca de tiempo, memoria o un bloque por turno) vuelve a crear la caché en cada turno.`,statusSystemTitle:`Prompt del sistema cambiado`,statusToolsBody:`El conjunto de herramientas o sus definiciones difieren del turno anterior. Las herramientas están al inicio del prefijo en caché, así que cualquier cambio aquí vuelve a crear la caché antes de llegar al prompt del sistema y a los mensajes.`,statusToolsTitle:`Definiciones de herramientas cambiadas`,title:`Diferencia de caché`,unchangedLines:`⋯ {count} línea(s) sin cambios`},O={barAriaLabel:`Desglose de la caché del prompt de {total} tokens: {segments} ({percent} en caché).`,barSegment:`{count} {label}`,cached:`en caché`,description:`Cuánto del prompt de esta llamada se sirvió desde la caché del prompt.`,segmentCreated:`Vuelto a crear`,segmentFresh:`Entrada nueva`,segmentRead:`Leído de la caché`,statusFullMissBody:`Ninguna parte del prompt de esta llamada se leyó de la caché.`,statusFullMissReCreatedSuffix:` Se escribieron {count} tokens en la caché en este turno, pero no se reutilizó ninguno; esto suele significar que el prefijo en caché cambió desde el turno anterior.`,statusFullMissTitle:`Fallo total de caché`,statusHealthyBody:`El {percent} del prompt de esta llamada ({count} tokens) se sirvió desde la caché.`,statusHealthyTitle:`Reutilización saludable de la caché`,statusPartialBody:`El {percent} del prompt de esta llamada ({count} tokens) se sirvió desde la caché; el resto se volvió a procesar en este turno.`,statusPartialTitle:`Reutilización parcial de la caché`,title:`Estado de la caché`,unavailableNote:`Esta llamada no informó del uso de la caché del prompt.`,unavailableNoteForProvider:`Esta llamada no informó del uso de la caché del prompt para {provider}.`},k={callCount:`{count, plural, one {# llamada LLM} other {# llamadas LLM}}`,callLabel:`Llamada {number}`,compaction:`Compactación`,cost:`Costo`,empty:`No hay llamadas LLM registradas.`,failed:`Fallida`,latest:`Más reciente`,navAriaLabel:`Llamadas LLM`,syntheticAgentLoopError:`Error del bucle del agente`,syntheticAgentLoopErrorWithReason:`Error del bucle del agente · {reason}`,syntheticYield:`Rendimiento · la compactación no cupo en el siguiente paso`,unrecognizedCall:`Llamada no reconocida`},A={eventsRecorded:`{count, plural, one {# evento} other {# eventos}} registrados.`},j={captureFailed:`No se pudo tomar esa foto. Inténtalo de nuevo.`,close:`Cerrar cámara`,flip:`Cambiar de cámara`,openFailed:`No se pudo abrir la cámara.`,shutter:`Tomar foto`,title:`Tomar una foto`},M={captureFailed:`No se pudo tomar esa foto.`,deviceInUse:`Otra aplicación está usando la cámara.`,noDevice:`No se encontró ninguna cámara.`,notDelivered:`Reconectando. Toma esa foto de nuevo.`,permissionDenied:`El acceso a la cámara está desactivado para Vellum.`,refused:`Tu asistente todavía no puede recibir fotos.`,storeFailed:`No se pudo añadir esa foto a la conversación.`,unknown:`No se pudo abrir la cámara.`,unsupported:`Este dispositivo no puede abrir una cámara.`,uploadFailed:`No se pudo enviar esa foto.`},N={live:`En vivo · Toca para detener`,liveDescription:`Toca para detener el video en vivo.`,photo:`Toca para foto · Mantén para en vivo`,photoDescription:`Mantén pulsado para iniciar el video en vivo.`},P={announceLive:`En vivo. {status}`,announceLiveMuted:`En vivo. Silenciado. {status}`,announceLiveMutedSpeaking:`En vivo. Silenciado. {name} está hablando`,announceLiveSpeaking:`En vivo. {name} está hablando`,announcePhoto:`Foto. {status}`,announcePhotoMuted:`Foto. Silenciado. {status}`,announcePhotoMutedSpeaking:`Foto. Silenciado. {name} está hablando`,announcePhotoSpeaking:`Foto. {name} está hablando`,live:`En vivo`,photo:`Foto`,yourAssistant:`Tu asistente`},F={buttonAria:`Opciones de vista de la cámara`,gateHudDescription:`El panel de ajuste de lo que conserva el modo en vivo.`,gateHudTitle:`Lectura del filtro de fotogramas`,keptFrameDescription:`El último fotograma enviado en vivo, junto a tus fotos. El envío continúa igualmente.`,keptFrameTitle:`Último fotograma`,title:`Mostrar`},I={tasksProgress:`{completed} / {total} tareas`,viewDetails:`Ver detalles`},L={heading:`Haciendo referencia a un mensaje de {channel}`,headingWithSender:`Haciendo referencia a {sender} en {channel}`,removeAria:`Quitar el mensaje referenciado`},R={accountSid:`SID de la cuenta`,accountSidPlaceholder:`ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`,authToken:`Token de autenticación`,authTokenPlaceholder:`Token de autenticación de Twilio`,close:`Cerrar`,closeSetupAria:`Cerrar el panel de configuración`,connectedHeading:`{channel} está conectado`,credentialsSaved:`Credenciales guardadas. Vuelve al chat para terminar la configuración.`,phoneConnected:`Tu asistente ya puede hacer llamadas telefónicas con Twilio.`,phoneLabel:`Teléfono`,save:`Guardar`,saving:`Guardando…`,settingsTitle:`Ajustes de {channel}`,setupTitle:`Configuración de {channel}`,slackConnected:`Tu asistente ya puede recibir mensajes en Slack.`,telegramConnected:`Tu asistente ya puede recibir mensajes en Telegram.`,twilioIntro:`Introduce tus credenciales de Twilio desde la <consoleLink>consola de Twilio</consoleLink>. Después de guardar, vuelve al chat. Tu asistente terminará de configurar tu número de teléfono y los webhooks.`,discordConnected:`Discord esta conectado. Anade el bot a un servidor y empezara a responder alli.`},z={closeAria:`Cerrar el hilo de {channel}`,label:`Hilo de {channel}`,openAria:`Abrir el hilo de {channel}`},B={assistantSender:`Asistente`,closeAria:`Cerrar el hilo del canal`,closeTooltip:`Cerrar`,emptyNoMessageDetail:`{channel} no envía a Vellum los detalles por mensaje que necesita esta vista, así que no hay nada que mostrar aquí. Abre la conversación en {channel} para leerla completa.`,emptyThread:`Todavía no hay mensajes de {channel} en esta conversación.`,namedTitle:`{channel} · {thread}`,noText:`Sin contenido de texto`,openInChannel:`Abrir en {channel}`,reactionAdded:`Reaccionó con {emoji}`,reactionRemoved:`Quitó la reacción {emoji}`,readOnly:`Solo lectura`,readOnlyNote:`Esta es la conversación tal como está en {channel}. El campo de escritura de Vellum es el único lugar donde puedes escribir.`,reference:`Referenciar en Vellum`,referenceAria:`Referenciar este mensaje de {channel} en Vellum`,referenced:`Referenciado`,removeReferenceAria:`Quitar esta referencia del campo de escritura de Vellum`,title:`Hilo de {channel}`,unknownSender:`Remitente desconocido`},V={attachFileAria:`Adjuntar archivo`,dismiss:`Descartar`,removeAria:`Quitar {filename}`},H={dropFiles:`Suelta archivos para adjuntarlos`},U={addToChat:`Añadir al chat`,askAssistantPlaceholder:`Pregunta a {assistantName}`,configureVoice:`Configurar la voz`,endOtherVoiceSession:`Finalizar y empezar aquí`,goToVoiceSession:`Ir a la sesión`,recording:`Grabando`,sendMessage:`Enviar mensaje`,stopGenerating:`Detener la generación`,transcribing:`Transcribiendo`,transcribingEllipsis:`Transcribiendo…`,typeToSend:`Escribe un mensaje para enviarlo`,uploadingAttachments:`Subiendo archivos adjuntos…`},W={archived:`[Archivado]`,newChat:`Chat nuevo`},G={appsTitle:`Apps`,backAria:`Volver a la información del chat`,backTooltip:`Información del chat`,closeAria:`Cerrar la información del chat`,empty:`Aún no hay recursos en este chat`,filesTitle:`Documentos e imágenes`,framesTitle:`Fotogramas de la cámara`,loadFailed:`No se pudieron cargar los recursos`,loadMore:`Cargar más`,openAppAria:`Abrir {name}`,openDocumentAria:`Abrir {name}`,previewAttachmentAria:`Vista previa de {filename}`,previewFrameAria:`Vista previa del fotograma de la cámara`,seeAll:`Ver todo`,seeAllAppsAria:`Ver todas las apps`,seeAllFilesAria:`Ver todos los documentos e imágenes`,seeAllFramesAria:`Ver todos los fotogramas de la cámara`,title:`Información del chat`},K={navigationAria:`Navegación`},q={backAria:`Atrás (Ctrl+[)`,forwardAria:`Adelante (Ctrl+])`,openNavigationAria:`Abrir navegación`,searchAria:`Buscar (Ctrl+K)`,toggleSidebarAria:`Mostrar u ocultar la barra lateral`},J={expandImageAria:`Ampliar imagen`,expandImageAriaWithAlt:`Ampliar imagen: {alt}`,imageFailed:`No se pudo cargar la imagen`,imageFailedWithAlt:`No se pudo cargar la imagen ({alt})`,loadingImage:`Cargando imagen…`,loadingImageWithAlt:`Cargando imagen… ({alt})`},Y={connecting:`Conectando…`,connectingStuck:`Todavía se está conectando a tu asistente; parece que algo se ha quedado atascado. Inténtalo de nuevo, o actualiza la página si sigue ocurriendo.`,retryNow:`Reintentar ahora`,selfHostedUnreachable:`No se pudo contactar con tu asistente autoalojado. Asegúrate de que el asistente esté en ejecución e inténtalo de nuevo.`,tryAgain:`Intentar de nuevo`},X={askTheDoctor:`Preguntar al Doctor`,goToDoctor:`Ir al Doctor`,openPage:`Abrir página`,suggestionFallback:`Sugerencia`,copyCliFix:`Copiar corrección de CLI`},Z={applyTo:`Aplicar a`,cancel:`Cancelar`,createTitle:`Crear regla de confianza`,description:`Las llamadas a herramientas que coincidan usan el nivel de riesgo de esta regla, para que tu tolerancia de aprobación pueda autoaprobarlas.`,editTitle:`Editar regla de confianza`,narrowerScopeAria:`Alcance más estrecho`,orNarrowScope:`O reduce el alcance:`,save:`Guardar`,saveAsNew:`Guardar como nueva`,saveRule:`Guardar regla`,saving:`Guardando…`,suggested:`Sugerido: {risk}`,treatAs:`Tratar como`},Q={continue:`Continuar`,recommended:`Recomendado`},$={broomAria:`escoba`,hatchHint:`Podrás crear un nuevo asistente cuando esto termine.`,hintAlmostDone:`Casi listo…`,hintCleaning:`Limpiando tu asistente…`,hintWrapping:`Cerrando todo…`,timeoutBody:`Prueba a ejecutar Vellum Doctor para diagnosticar el problema, o <communityLink>pregunta a la comunidad</communityLink> para pedir ayuda.`,timeoutTitle:`La limpieza está tardando más de lo esperado`,title:`Limpiando tu asistente…`,warningAria:`advertencia`},ee={turn:`Hice clic en {label}. ¿Y ahora qué?`},te={noConversations:`No hay conversaciones`},ne={ariaLabel:`Compactación automática en pausa`,message:`Compactación automática en pausa: una conversación larga puede desbordarse. Usa /compact para compactar manualmente.`},re={compactedMessages:`{count} compactados`,compactedPreserved:`Compactados / preservados`,contextTokens:`Tokens de contexto`,duration:`Duración`,durationMs:`{count} ms`,emptyBody:`Una compactación se atribuye a la llamada que se ejecutó justo después. Si esperas una aquí, verifica que la conversación superó su presupuesto de contexto justo antes de esta llamada.`,emptyTitle:`Ninguna compactación está asociada a esta llamada`,eventIndex:` · {index} de {totalCount}`,hideSummaryText:`Ocultar texto del resumen`,loadFailedDefault:`No se pudo cargar la compactación.`,loadFailedTitle:`Error al cargar`,loading:`Cargando compactación…`,messageRange:`{before} → {after}`,messages:`Mensajes`,outcomeCompacted:`Compactado`,outcomeFailed:`Compactación fallida`,outcomeFailedDetail:`La llamada del resumidor falló, por lo que el contexto quedó intacto.`,outcomeNoChange:`Sin cambios`,outcomeUnavailable:`Resultado no disponible`,outcomeUnavailableDetail:`No se registraron métricas detalladas antes/después para esta compactación.`,preservedMessages:`{count} preservados`,reductionRatio:`{ratio}× más pequeño`,retry:`Reintentar`,showSummaryText:`Mostrar texto del resumen`,summarizerUsage:`{input} entrada / {output} salida`,summaryCost:`Costo del resumen`,summaryModel:`Modelo de resumen`,tokenRange:`{before} → {after}`,tokenRangeWithReduction:`{before} → {after} ({reduction})`,trigger:`Disparador`},ie={draftRestored:`Borrador restaurado de tu sesión anterior.`,waitingUpload:`{count, plural, one {Esperando a que termine de subirse el adjunto antes de enviar.} other {Esperando a que terminen de subirse # adjuntos antes de enviar.}}`},ae={allowMicrophone:`Permitir micrófono`,openSettings:`Abrir configuración`},oe={blockedTitle:`Mensaje no enviado. Parece que contiene una clave de API.`,body:`Las credenciales enviadas en el chat son visibles en la transcripción. Guárdala de forma segura en su lugar.`,dismiss:`Descartar`,sendAnyway:`Enviar de todos modos`,storeSecurely:`Guardar de forma segura`,warningTitle:`Esto parece una clave de API`},se={accessAria:`Acceso del asistente: {label}`,assistantAccess:`Acceso del asistente`,assistantAccessTitle:`Acceso del asistente`,compactAria:`Acceso del asistente y perfil del modelo`,compactAriaWithSummary:`Acceso del asistente y perfil del modelo: {summary}`,defaultLabel:`{label} (predeterminado)`,defaultSuffix:`(predeterminado)`,loadingProfiles:`Cargando perfiles…`,modelProfile:`Perfil del modelo`,modelProfileTitle:`Perfil del modelo`,profileAria:`Perfil del modelo: {label}`,profileAriaFallback:`Perfil del modelo`,profileSwitchFailed:`Perfil creado, pero no se pudo cambiar a él`,profileSwitchFallback:`No se pudo cambiar de perfil. Inténtalo de nuevo.`,quickAdd:`Nuevo modelo`},ce={submitFailed:`No se pudo enviar la confirmación. Inténtalo de nuevo.`,submitFailedRuleAvailable:`No se pudo enviar la confirmación, pero aún puedes crear una regla.`},le={allow:`Permitir`,deny:`Denegar`,hideDetails:`Ocultar detalles`,showDetails:`Mostrar detalles`,titleFallback:`Confirmación necesaria`,toolLabel:`Herramienta:`},ue={cancelFailed:`No se pudo descartar el formulario. Inténtalo de nuevo.`,recordCancelFailed:`No se pudo descartar el formulario. Inténtalo de nuevo.`,recordSaveFailed:`No se pudo guardar el contacto. Inténtalo de nuevo.`,saveFailed:`No se pudo guardar el contacto. Inténtalo de nuevo.`},de={addContact:`Añadir un contacto`,addingToContact:`Añadiendo un canal a {name}`,cancel:`Cancelar`,contactSaved:`Contacto guardado`,enterAddress:`Introduce la dirección de {channel}`,markVerified:`Marcar esta dirección como verificada`,markVerifiedHelp:`Una dirección verificada puede enviar mensajes a tu asistente.`,namePlaceholder:`Nombre`,notesLabel:`Notas`,save:`Guardar`,saving:`Guardando…`},fe={cancel:`Cancelar`,channelType:`{channel}:`,contactDeleted:`Contacto eliminado`,contactMerged:`Contactos combinados`,contactSaved:`Contacto guardado`,createTitle:`Añadir un contacto`,delete:`Eliminar`,deleteTitle:`¿Eliminar a {name}?`,deleteWarning:`Esto también elimina sus canales, por lo que ya no podrá contactar con tu asistente.`,merge:`Combinar`,mergeDonorChannels:`Se trasladan de {name}`,mergeSurvivorChannels:`Ya están en {name}`,mergeTitle:`¿Combinar a {donor} con {survivor}?`,mergeWarning:`Estos canales pasan a {survivor} y se elimina el registro de {donor}.`,nameLabel:`Nombre`,namePlaceholder:`Nombre`,noChannels:`Este contacto no tiene canales.`,notesLabel:`Notas`,notesPlaceholder:`Añadir una nota`,save:`Guardar`,saving:`Guardando…`,updateTitle:`Actualizar a {name}`},pe={clearContext:`Borrar contexto`,compactsHint:`{name} compacta<br></br>su contexto automáticamente.`,compactsHintInline:`{name} compacta el contexto automáticamente`,defaultAssistantName:`Tu asistente`,label:`Ventana de contexto:`,percentFull:`{percentage} % lleno`,ringAria:`Ventana de contexto al {percentage} %`,title:`Ventana de contexto`,tokensUsed:`{used} / {max} tokens usados`},me={archive:`Archivar`,copyConversation:`Copiar conversación completa`,copyConversationId:`Copiar ID de conversación`,delete:`Eliminar`,forkConversation:`Bifurcar conversación`,inspect:`Analizar conversación`,markRead:`Marcar como leída`,markUnread:`Marcar como no leída`,moveToGroup:`Mover al grupo`,newGroup:`Nuevo grupo…`,openInNewWindow:`Abrir en una ventana nueva`,pin:`Fijar`,refresh:`Actualizar`,removeFromGroup:`Quitar del grupo`,rename:`Cambiar nombre`,shareFeedback:`Enviar comentarios`,triggerAriaLabel:`Acciones de conversación`,unarchive:`Desarchivar`,unpin:`Dejar de fijar`},he={closeAriaLabel:`Cerrar`,title:`Acciones de conversación`},ge={delete:`Eliminar`,downloadPdf:`Descargar PDF`,exportAsVellum:`Exportar como archivo .vellum`,open:`Abrir`,optionsFor:`Opciones para {name}`,pin:`Anclar`,share:`Compartir`,unpin:`Desanclar`},_e={ariaLabel:`Recursos de la conversación, {count, plural, one {# elemento} other {# elementos}}`,ariaLabelUnavailable:`Recursos de la conversación, no se pudieron cargar`,ariaLabelUnseen:`Recursos de la conversación, {count, plural, one {# elemento} other {# elementos}} (cambios sin ver)`,label:`{count, plural, one {# recurso} other {# recursos}}`,labelUnavailable:`No se pudieron cargar los recursos`},ve={caption:`Prueba algunas sugerencias:`},ye={sendAria:`Enviar: {label}`},be={copied:`Copiado`,copy:`Copiar`},xe={copied:`Copiado`,copyFailed:`No se pudo copiar al portapapeles.`},Se={conversationCopied:`ID de conversación copiado al portapapeles.`,conversationFailed:`No se pudo copiar el ID de conversación.`,groupCopied:`ID de grupo copiado al portapapeles.`,groupFailed:`No se pudo copiar el ID de grupo.`},Ce={balanceAria:`{balance} créditos`,balanceShort:`{balance} c`,credits:`Créditos`},we={loginToAddCredits:`Inicia sesión en la plataforma Vellum para agregar créditos.`},Te={emptyFile:`Este archivo está vacío`,summary:`{rows} filas x {columns} columnas`,summaryTruncated:`{rows} filas x {columns} columnas (truncado)`},Ee={skipConfirmTitle:`¿Omitir el límite de créditos de hoy?`,skipError:`No se pudo omitir el límite de hoy. Inténtalo de nuevo.`,skipForToday:`Omitir por hoy`,subtitle:`El gasto de créditos de Vellum está pausado hasta que tu límite se reinicie a las {resetPhrase}.`,title:`Límite diario de créditos alcanzado`},De={acknowledgment:`Entiendo que los recursos y recuerdos relacionados pueden seguir existiendo`,cancel:`Cancelar`,confirm:`Eliminar`,message:`¿Eliminar “{title}”? Esto borra la conversación y sus mensajes de forma permanente. Los recursos y recuerdos relacionados pueden seguir existiendo. Esta acción no se puede deshacer.`,title:`Eliminar conversación`},Oe={label:`Este mensaje fue eliminado`},ke={pdfDownloadFailed:`No se pudo descargar el PDF`},Ae={send:`Enviar`,sending:`Enviando…`},je={addCommentPlaceholder:`Agregar un comentario…`,closeAria:`Cerrar el panel de comentarios`,empty:`Aún no hay comentarios`,loading:`Cargando comentarios…`,submitFeedback:`Enviar comentarios`,title:`Comentarios`},Me={assistantMonogram:`V`,authorAssistant:`Asistente`,authorYou:`Tú`,deleteCommentAria:`Eliminar comentario`,jumpToHighlight:`Ir al texto resaltado`,open:`Abierto`,reopen:`Reabrir`,reply:`Responder`,replyPlaceholder:`Escribe una respuesta…`,resolve:`Resolver`,resolved:`Resuelto`},Ne={openAria:`Abrir {name}`},Pe={openAria:`Abrir {name}`},Fe={close:`Cerrar`,closeDocumentAria:`Cerrar documento`,comments:`Comentarios`,export:`Exportar`,hideComments:`Ocultar comentarios`,menuAria:`Opciones del documento`,rename:`Cambiar nombre`,renameFailed:`No se pudo cambiar el nombre del documento.`,renameSave:`Guardar`,renameTitle:`Cambiar el nombre del documento`,saved:`Guardado`,saving:`Guardando…`,wordCount:`{count, plural, one {# palabra} other {# palabras}}`},Ie={unavailable:`No se puede abrir la conversación del documento. Inténtalo de nuevo.`,updateRequired:`Actualiza tu asistente para iniciar una conversación vinculada.`,prepareFailed:`No se pudo preparar la conversación del documento. Tus cambios siguen disponibles.`,feedbackPrompt:`Revisa y atiende mis comentarios sobre "{title}".`,missing:`La conversación de este documento no está disponible. Puedes seguir editando o iniciar una nueva conversación vinculada.`,start:`Iniciar una conversación vinculada`,retry:`Intentar de nuevo`,back:`Volver`},Le={exportFailed:`No se pudo exportar el PDF`,notFound:`Documento no encontrado.`},Re={titleFallback:`Contenido dinámico`},ze={cancel:`Cancelar`,close:`Cerrar`,defaultError:`No se pudieron exportar los datos del inspector.`,descriptionDone:`La descarga debería haber comenzado automáticamente.`,descriptionError:`Algo salió mal al recopilar la exportación.`,descriptionRunning:`Recopilando cargas del proveedor y contexto normalizado. Esto puede tardar un momento en conversaciones largas.`,done:`Listo`,progressAriaLabel:`Progreso de exportación`,retry:`Reintentar`,statusDone:`Listo`,statusPackaging:`Empaquetando ZIP…`,statusProgress:`{completed} de {total} llamadas`,titleDone:`Exportación completa`,titleError:`Error al exportar`,titleRunning:`Exportando datos del inspector`},Be={diffForAria:`Diferencias de {path}`},Ve={failed:`No se pudo descargar el archivo`},He={closePreviewAria:`Cerrar previsualización`,closeTooltip:`Cerrar`,download:`Descargar`,downloadAria:`Descargar {name}`,loadError:`No se pudo cargar este archivo`,overLimit:`{size}, por encima del límite de previsualización de {limit}`,tooLarge:`Este archivo es demasiado grande para previsualizar`,tryAgain:`Reintentar`},Ue={accepted:`Aceptados: {types}`,dropHint:`Arrastra y suelta archivos aquí, o haz clic para explorar`,maxSize:`Tamaño máximo: {size}`,upload:`Subir`,uploading:`Subiendo...`},We={secureHint:`Este valor se enviará de forma segura y no se guardará en tu navegador.`,selectPlaceholder:`Seleccionar...`},Ge={collapse:`Ocultar la lectura del filtro de fotogramas`,expand:`Mostrar la lectura del filtro de fotogramas`},Ke={archiveAll:`Archivar todas…`,copyGroupId:`Copiar ID del grupo`,deleteGroup:`Eliminar grupo`,deleteGroupWithConversations:`Eliminar grupo…`,groupByChannel:`Agrupar por canal`,markAllRead:`Marcar todas como leídas`,moveSectionDown:`Bajar sección`,moveSectionUp:`Subir sección`,rename:`Cambiar nombre`,ungroup:`Desagrupar`},qe={title:`Acciones de {name}`},Je={create:`Crear`,newTitle:`Grupo nuevo`,renameTitle:`Renombrar grupo`,save:`Guardar`},Ye={next:`Siguiente`,showMeAround:`Muéstrame cómo funciona`,skipTour:`Omitir recorrido`},Xe={ariaLabel:`Plugins del chat, {count} activos`,costCaption:`Cambiar la configuración de plugins puede generar costes altos.`,countLabel:`{count, plural, one {# plugin} other {# plugins}}`,manage:`Administrar`,plugins:`Plugins`},Ze={stop:`Detener`},Qe={accessDenied:`El inspector está disponible cuando la marca Internal Thread Actions está habilitada.`,allMessages:`Todos los mensajes`,back:`Volver`,backToConversationAria:`Volver a la conversación`,chooseCall:`Elige una llamada de la barra lateral para inspeccionar su contexto.`,conversationScopeSubtitle:`Mostrando cada llamada LLM registrada en esta conversación.`,detailLoadFailed:`No se pudo cargar el contexto normalizado de esta llamada.`,emptyBodyConversation:`Ningún mensaje de la conversación fue producido por una llamada LLM o los registros de solicitud fueron recortados por retención.`,emptyBodyMessage:`Este mensaje no fue producido por una llamada LLM o sus registros de solicitud fueron recortados por retención.`,emptyTitleConversation:`No hay llamadas LLM registradas para esta conversación.`,emptyTitleMessage:`No hay llamadas LLM registradas para este mensaje.`,enableLogging:`Habilitar registro`,enableLoggingFailed:`No se pudo habilitar el registro`,enableLoggingFailedWithMessage:`No se pudo habilitar el registro ({message})`,enabling:`Habilitando…`,exportFailed:`No se pudieron exportar los datos del inspector`,exportZip:`Exportar ZIP`,exportZipAria:`Exportar datos del inspector como ZIP`,exporting:`Exportando…`,filterToMessage:`Filtrar por mensaje:`,llmCallCount:`{count, plural, one {1 llamada LLM} other {# llamadas LLM}}`,loadContextFailed:`No se pudo cargar el contexto LLM.`,loadFailedTitle:`Error al cargar`,loading:`Cargando…`,loggingDisabledBody:`Las cargas útiles de solicitud y respuesta no se están registrando, así que no hay nada que inspeccionar. Habilita el registro para capturar futuras llamadas LLM.`,loggingDisabledTitle:`El registro de solicitudes LLM está desactivado`,loggingEnabledToast:`Registro de solicitudes LLM habilitado`,messageOptionDeepLink:`Mensaje {messageId}`,messageOptionNoText:`{index}. (sin texto)`,messageOptionWithPreview:`{index}. {preview}`,retry:`Reintentar`,scopedToOneMessage:`Limitado a un mensaje · `,scopedToTurn:`Limitado al turno {index} de {count} · `,title:`Inspector de contexto LLM`},$e={android:`La voz ya está activa en la aplicación de Android.`,ios:`La voz ya está activa en la aplicación de iOS.`,macos:`La voz ya está activa en la aplicación de Mac.`,unknown:`La voz ya está activa en otro lugar.`,web:`La voz ya está activa en otra pestaña del navegador.`,windows:`La voz ya está activa en la aplicación de Windows.`},et={startVoiceMode:`Iniciar el modo de voz`,tooltip:`Habla en voz alta con el modo de voz`},tt={connecting:`Conectando…`,ending:`Finalizando…`,listening:`Escuchando…`,muted:`Silenciado`,reconnecting:`Reconectando…`,speaking:`Hablando…`,thinking:`Pensando…`},nt={chipCode:`Código`,chipProvider:`Proveedor`,chipRequestId:`ID de solicitud`,chipStatus:`Estado`,chipType:`Tipo`,chipUpstreamCode:`Código ascendente`,chipUpstreamParam:`Parámetro ascendente`,chipUpstreamType:`Tipo ascendente`,noResponse:`El proveedor rechazó esta llamada y no devolvió respuesta.`,title:`Llamada fallida`},rt={loadingAria:`Cargando {label}`,pictureInPictureUnavailable:`Imagen sobre imagen no está disponible`},it={unavailable:`Este archivo no está disponible aquí`},at={download:`Descargar`,fileActionsAria:`Acciones del archivo`,goToFile:`Ir al archivo`,pictureInPicture:`Imagen en imagen`},ot={addCredits:`Añadir créditos`,ariaLabel:`Tus créditos se están agotando. {detail}`,subtitle:`Añade créditos para evitar una interrupción.`,title:`Tus créditos se están agotando`},st={body:`El espacio de trabajo de tu asistente está conectado actualmente a un terminal de depuración. El chat no está disponible en el modo de recuperación.`,loginHint:`Inicia sesión en la plataforma Vellum para salir del modo de recuperación.`,resume:`Reanudar asistente`,title:`Asistente en modo de recuperación`},ct={body:`El chat no está disponible mientras el mantenimiento está activo.`,goToDebug:`Ir a ajustes de depuración`,title:`El asistente está en modo de recuperación`},lt={addOlderPairButton:`+ Añadir par más antiguo`,assistantReplyLabel:`[assistant]: respuesta`,assistantReplyPlaceholder:`Respuesta del asistente que precedió al mensaje del usuario de abajo.`,configTitle:`Configuración {paneId}`,conversationalContextTitle:`Contexto conversacional (compartido por ambos paneles)`,customPromptPlaceholder:`Prompt del sistema del enrutador personalizado. Marcadores de posición disponibles:
2
+ '{ASSISTANT_NAME}, {USER_NAME}, {PAGE_INDEX}'
3
+ Déjalo en blanco para usar la plantilla incluida. "Cargar predeterminado" rellena el área de texto con el cuerpo incluido para editar.`,description:`Ejecuta en seco el enrutador v4 con anulaciones personalizadas de nivel/lote. Solo lectura: no se escriben filas en <code>memory_v2_injection_events</code> ni en <code>memory_v2_activation_logs</code>, y no se modifica el estado de activación. Deja una anulación en blanco para heredar el valor de configuración activo; escribe <code>null</code> para desactivar explícitamente un nivel.`,diffLabel:`Diferencia`,diffValue:`{shared} compartidas · {unique} exclusivas de este panel`,effectiveConfig:`Configuración efectiva`,emaScore:`EMA {score}`,empty:`(vacío)`,emptySelectionHint:`El enrutador devolvió una selección vacía. Prueba una consulta más específica o relaja los valores de anulación.`,failedToRunSimulation:`No se pudo ejecutar la simulación`,firstTurnAssistantPlaceholder:`Déjalo en blanco para un escenario de primer turno.`,inheritActive:`heredar activo`,inheritActiveWithProfile:`heredar activo ({profile})`,inheritPlaceholder:`heredar`,invalidOverrideInput:`Entrada de anulación no válida`,justArrivedUserLabel:`[user]: mensaje recién llegado`,lastUserPlaceholder:`p. ej. qué deberíamos lanzar después`,legendAOnly:`solo A`,legendBOnly:`solo B`,legendInBoth:`en ambos`,llmProfilesOverride:`anulación de llm.profiles`,loadDefault:`Cargar predeterminado`,loading:`Cargando…`,noPagesSelected:`No se seleccionaron páginas`,notAvailable:`El patio de pruebas del enrutador de memoria no está disponible.`,nowBlockLabel:`bloque '<now>'`,nowDefaultPlaceholder:`Rellenado con el NOW.md activo. Edita para probar estados alternativos.`,nowLoadingPlaceholder:`Cargando NOW.md actual…`,nullValue:`null`,overrideMustBePositiveInteger:`{fieldName} debe ser un entero positivo o 'null' (se obtuvo "{value}")`,overrideSuffix:` (anulación)`,pageCount:`{count, plural, one {# página} other {# páginas}}`,pairLabel:`Par {index} de {total}`,pairMostRecentSuffix:` · más reciente`,paneTitle:`Panel {paneId}`,promptModeBundled:`incluido`,promptModeCustom:`personalizado`,rawApiExchange:`Intercambio de API sin procesar`,recentPairsLabel:`Pares recientes (asistente, usuario) · más antiguos primero`,reloadNowButton:`Recargar NOW.md activo`,removeButton:`Eliminar`,requestLabel:`Solicitud (panel {paneId})`,reset:`Restablecer`,responseLabel:`Respuesta (panel {paneId})`,routerFailure:`Fallo del enrutador: {reason}`,runBoth:`Ejecutar ambos`,runPane:`Ejecutar {paneId}`,running:`Ejecutando…`,selectedLabel:`Seleccionadas`,selectedValue:`{count} (max_page_ids activo: {maxPageIds})`,summary:`Resumen`,summaryUserMessageLabel:`Mensaje del usuario`,systemPrompt:`Prompt del sistema`,systemPromptConfigLabel:`prompt del sistema`,tier1Label:`nivel 1`,tier2Label:`nivel 2`,tier3Label:`nivel 3 · b{batch}`,title:`Patio de pruebas del enrutador de memoria`,totalCandidatePagesLabel:`Total de páginas candidatas`,userMessageLabel:`[user]: mensaje`,userMessagePlaceholder:`Mensaje del usuario.`},ut={afterMergeLabel:`Tras la fusión`,breakdownCAssistantRerank:`c_assistant · rerank Δ_a`,breakdownCAssistantSim:`c_assistant · sim_a`,breakdownCNowSim:`c_now · sim_n`,breakdownCUserRerank:`c_user · rerank Δ_u`,breakdownCUserSim:`c_user · sim_u`,breakdownOwnActivation:`A_o (propio)`,breakdownPriorActivation:`prior · d`,breakdownRerankScaledRaw:`+{scaled} (bruto {raw})`,breakdownScaledRaw:`{scaled} (bruto {raw})`,breakdownSource:`fuente`,breakdownSpreadDelta:`spread Δ`,breakdownStatus:`estado`,candidatePoolChosenChip:`seleccionada`,candidatePoolNoneBody:`No se registró ningún grupo de candidatos para este turno.`,candidatePoolPassthroughSubtitle:`{poolSize, plural, one {# candidato admitido directamente} other {# candidatos admitidos directamente}} sin evaluación del selector · selector desactivado`,candidatePoolSelectorNotRunBody:`El selector no se ejecutó en este turno.`,candidatePoolSubtitle:`{poolSize, plural, one {# candidato mostrado} other {# candidatos mostrados}} al selector · {selectedCount, plural, one {# página seleccionada} other {# páginas seleccionadas}}`,candidatePoolTitle:`Grupo de candidatos`,candidateScores:`sem {semantic} · rec {recency}`,carriedPill:`Arrastradas: {count}`,conceptActivationsSubtitle:"Ordenadas por activación final. Las entradas de habilidades aparecen con el prefijo `skills/`; expande una fila para ver el desglose de activación.",conceptActivationsTitle:`Activaciones de conceptos ({count})`,configCAssistant:`c_assistant`,configCNow:`c_now`,configCUser:`c_user`,configDDecay:`d (decaimiento)`,configEpsilon:`epsilon`,configHops:`saltos`,configKSharpening:`k (agudización)`,configSubtitle:`Pesos de activación y umbrales de selección.`,configTitle:`Configuración`,configTopK:`top_k`,copyAriaLabel:`Copiar al portapapeles`,copyAriaLabelCopied:`Copiado`,copyButtonCopied:`Copiado`,copyButtonCopy:`Copiar`,copyErrorMessage:`No se pudo copiar al portapapeles.`,copyTitle:`Copiar`,copyTitleCopied:`¡Copiado!`,corePill:`Núcleo: {count}`,degradationTitle:`Degradación`,fallbackSourcesLabel:`Fuentes de respaldo`,hybridSearchLabel:`Búsqueda híbrida`,inContextPill:`En contexto: {count}`,injectedMemoryContextTitle:`Contexto de memoria inyectado`,injectedPill:`Inyectados: {count}`,injectedTokensLabel:`Tokens inyectados`,latencyMs:`{ms} ms`,loading:`Cargando…`,loggedMemorySelectionSubtitle:`Renderizado desde la selección v3, no inyectado en este turno.`,loggedMemorySelectionTitle:`Selección de memoria registrada`,memoryDisabledDefaultReason:`La recuperación de memoria se desactivó para este turno.`,memoryDisabledTitle:`Memoria desactivada`,missingValue:`-`,modelLabel:`Modelo`,no:`No`,noDataBody:`La información de recuperación de memoria no está disponible para este mensaje.`,noDataTitle:`Sin datos de memoria`,noEntriesRanked:`No hay entradas clasificadas.`,noPagesSelected:`No hay páginas seleccionadas.`,notInjectedPill:`No inyectados: {count}`,pageContentLabel:`contenido de la página`,pageNotFound:`Página no encontrada en disco. El slug puede hacer referencia a una entrada obsoleta de Qdrant.`,pillMemoryV2:`Memoria V2`,pillMemoryV3:`Memoria V3`,pillRecallV1:`Recuperación (v1)`,providerLabel:`Proveedor`,queryContextSubtitle:`El texto incrustado como vector de búsqueda para la recuperación semántica.`,queryContextTitle:`Contexto de consulta`,reasonLabel:`Motivo`,retrievalFunnelSubtitle:`Cómo se filtraron las memorias desde la búsqueda semántica hasta la inyección.`,retrievalFunnelTitle:`Embudo de recuperación`,searchDetailsTitle:`Detalles de búsqueda`,selectedLabel:`Seleccionadas`,selectedPagesSubtitle:`Páginas que v3 seleccionó, etiquetadas por el carril que las mostró y la sección coincidente (cuando un carril de búsqueda mostró una).`,selectedPagesTitle:`Páginas seleccionadas ({count})`,selectedPill:`Seleccionadas: {count}`,semanticHitsLabel:`Coincidencias semánticas`,semanticUnavailableLabel:`Semántica no disponible`,sparseDenseOnly:`Solo densos`,sparseUsed:`Usados`,sparseVectorsLabel:`Vectores dispersos`,statusActive:`Activo`,statusDegraded:`Degradado`,statusLabel:`Estado`,statusSubtitle:`Proveedor, modelo y latencia de esta recuperación.`,statusTitle:`Estado`,tier1Label:`Nivel 1`,tier2Label:`Nivel 2`,topCandidatesSubtitle:`{count, plural, one {# candidato clasificado por puntuación final.} other {# candidatos clasificados por puntuación final.}}`,topCandidatesTitle:`Mejores candidatos`,totalLatencyLabel:`Latencia total`,turnLevelRecallBody:`La recuperación de memoria se ejecuta una vez por turno. Estos datos se aplican a todas las llamadas LLM de este mensaje.`,turnLevelRecallTitle:`Recuperación por turno`,turnPill:`Turno {turn}`,unavailable:`No disponible`,unknown:`Desconocido`,v2StatusInContext:`En contexto`,v2StatusInjected:`Inyectado`,v2StatusNotInjected:`No inyectado`,v2StatusPageMissing:`Página no encontrada`,v2TurnBody:`Paso de memoria por activación en cascada que clasifica conceptos y habilidades para este turno.`,v2TurnTitle:`Memoria - turno {turn} ({mode})`,v3LiveInjectionBody:`v3 es la fuente de memoria en vivo en este turno: el bloque de abajo se inyectó en el contexto (v2 suprimido).`,v3LiveInjectionTitle:`Memoria V3 - inyección en vivo`,v3LoggedSelectionBody:`v3 no es la fuente de memoria en vivo para este asistente: estas selecciones se registraron pero no se inyectaron en este turno; la memoria del turno provino de v2.`,v3LoggedSelectionTitle:`Memoria V3 - selección registrada (no inyectada)`,v3SourceCarried:`arrastrada`,v3SourceCore:`núcleo`,v3SourceL1L2:`L1+L2`,v3SourceNeedle:`aguja`,yes:`Sí`},dt={closeAria:`Cerrar archivos`,empty:`No hay archivos en este mensaje`,title:`Archivos`},ft={bookmark:`Marcador`,copied:`Copiado`,copy:`Copiar`,copyFailed:`No se pudo copiar el mensaje.`,forkFromHere:`Bifurcar desde aquí`,inspect:`Inspeccionar`,loading:`Leyendo…`,openInSlack:`Abrir en Slack`,playFailed:`No se pudo leer este mensaje.`,readAloud:`Leer en voz alta`,removeBookmark:`Quitar marcador`,retry:`Reintentar`,stop:`Detener`,summarizeUpToHere:`Resumir hasta aquí`},pt={bookmark:`Marcar`,copied:`Copiado`,copy:`Copiar`,copyFailed:`No se pudo copiar el mensaje.`,forkFromHere:`Bifurcar desde aquí`,inspect:`Inspeccionar`,openInSlack:`Abrir en Slack`,readAloud:`Leer en voz alta`,removeBookmark:`Quitar marcador`,stop:`Detener`,summarizeUpToHere:`Resumir hasta aquí`,title:`Acciones del mensaje`},mt={cancel:`Cancelar`,continue:`Continuar`,description:`La entrada de voz requiere acceso al micrófono. El audio lo transcribe tu proveedor de voz a texto configurado, o el dictado integrado del dispositivo cuando no hay proveedor.`,title:`Acceso al micrófono`},ht={ariaLabel:`Se requiere una clave API`,body:`Añade una clave API en Ajustes → Modelos y servicios para empezar a chatear.`,dismiss:`Descartar`,dismissAria:`Descartar la alerta de clave API requerida`,openSettings:`Abrir ajustes`,title:`Se requiere una clave API`},gt={callOfTotal:`Llamada {number} de {total}`,llmCallCount:`{count, plural, one {1 llamada LLM} other {# llamadas LLM}}`,selectCallAria:`Seleccionar una llamada LLM para inspeccionar`,sheetTitle:`Seleccionar una llamada`},_t={dismissAria:`Descartar`,unknownCommandNudge:`Este comando no se reconoció. <ruleLink>Crea una regla</ruleLink> para clasificarlo la próxima vez.`,viewSteps:`Ver pasos`},vt={cancel:`Cancelar`,icon:`Icono`,name:`Nombre`,noIcon:`Sin icono`},yt={heading:`Añadir plugins para el chat nuevo`,managePlugins:`Administrar plugins`,showAll:`Mostrar todos (+{count})`,showLess:`Mostrar menos`,tooltip:`Elige qué plugins puede usar este chat. Tu selección se aplica al enviar el primer mensaje y permanece con esta conversación.`},bt={managePlugins:`Gestionar plugins`},xt={approvalAria:`Acerca de la aprobación del asistente`,approvalTooltip:`{name} nunca actúa en tu nombre sin tu aprobación`,connect:`Conectar`,connectTitle:`Conectar {name}`,connected:`Conectado`,defaultDescription:`Conecta {name} para que pueda usarlo en esta tarea.`,dismiss:`Descartar`,missingDetails:`Faltan detalles del asistente o del proveedor.`,tenantHostInvalid:`Introduce un {label} válido, por ejemplo {placeholder}`,thisAccount:`esta cuenta`,waiting:`Esperando...`,yourAssistant:`Tu asistente`},St={continue:`Continuar`,helpWithHeading:`¿En qué puedo ayudarte?`,letsChat:`Hablemos`,other:`Otro`,otherPlaceholder:`¿Con qué necesitas ayuda?`,selectAll:`Selecciona todas las que correspondan`,somethingElse:`otra cosa`,specific:`Tengo algo concreto`},Ct={message:`La conversación de la que esta se ramificó se eliminó, así que los mensajes anteriores al punto de ramificación ya no están. Todo lo enviado desde entonces sigue intacto.`},wt={cacheTokensLabel:`Tokens de caché`,conversationSubtitle:`Totales acumulados de cada llamada LLM con precio hasta ahora.`,conversationTitle:`Conversación`,createdLabel:`Creado`,durationLabel:`Duración`,estimatedCostLabel:`Costo estimado`,failedStatus:`Fallido`,firstTokenKindLabel:`Tipo de primer token`,firstTokenLatencySubtitle:`Dónde se fue el tiempo hasta el primer token de este turno, medido por el asistente.`,firstTokenLatencyTitle:`Latencia del primer token`,inputTokensLabel:`Tokens de entrada`,latencyMs:`{ms} ms`,loopExitReasonLabel:`Motivo de salida del bucle`,modelLabel:`Modelo`,normalizedMetadataSubtitle:`Proveedor, modelo, marcas de tiempo y recuentos de uso.`,normalizedMetadataTitle:`Metadatos normalizados`,normalizedSummaryUnavailableSubtitle:`Esta llamada aún tiene cargas útiles de solicitud y respuesta sin procesar.`,normalizedSummaryUnavailableTitle:`Resumen normalizado no disponible`,otherLabel:`Otro`,outputTokensLabel:`Tokens de salida`,providerLabel:`Proveedor`,requestMessagesLabel:`Mensajes de solicitud`,statusLabel:`Estado`,stopReasonLabel:`Motivo de parada`,toolCallsLabel:`Llamadas a herramientas`,toolsAvailableLabel:`Herramientas disponibles`,totalCostSoFarLabel:`Costo total hasta ahora`,totalToFirstTokenLabel:`Total hasta el primer token`,usageSubtitle:`Recuentos de tokens y llamadas normalizados por la ruta del asistente.`,usageTitle:`Uso`},Tt={formStepsAria:`Pasos del formulario`},Et={loadingPdf:`Cargando PDF`},Dt={pageCapNotice:`{count, plural, one {Mostrando la primera página} other {Mostrando las primeras # páginas}}`},Ot={startedAt:`Comenzó a las {time}`},kt={colors:{green:`Verde`,orange:`Naranja`,pink:`Rosa`,purple:`Morado`,teal:`Turquesa`,yellow:`Amarillo`},noColor:`Sin color`},At={unpin:`Dejar de fijar`,unpinAria:`Dejar de fijar {name}`},jt={disableAria:`Desactivar {name} para este chat`,enableAria:`Activar {name} para este chat`},Mt={admin:`Admin`,earnCredits:`Gana créditos gratis`,preferences:`Preferencias`,settings:`Ajustes`,shareFeedback:`Compartir comentarios`},Nt={addCreditsAriaLabel:`Añadir créditos`,exhausted:`Añade créditos para continuar.`,extraCredits:`Usando créditos de uso adicional`,pctUsed:`{pct}% usado`,settingsAriaLabel:`Ajustes de uso y facturación`,title:`Uso`},Pt={cannotPreview:`No se puede previsualizar este archivo`},Ft={download:`Descargar`,downloadAria:`Descargar {filename}`},It={loadingPreview:`Cargando vista previa`},Lt={markdown:`Mostrando los primeros 512 KB`,text:`Mostrando los primeros 2 MB`},Rt={downloadFile:`Descargar archivo`,goToFile:`Ir al archivo`,noPreviewForType:`No hay vista previa para este tipo de archivo`},zt={agentsLabel:`Agentes`,agentsToggleAria:`Agentes: {running, plural, =0 {ninguno en curso} one {# en curso} other {# en curso}}, {completed, plural, =0 {ninguno terminado} one {# terminado} other {# terminados}}`,railAria:`Progreso`,stepCounter:`{current} de {total}`,title:`Progreso`,titleFinished:`Terminado`,titleStopped:`Detenido`},Bt={noActiveSession:`No hay ninguna sesión activa. Inténtalo de nuevo.`},Vt={availableTools:`Herramientas disponibles`,bannerNoSections:`Esta llamada aún no tiene secciones de prompt normalizadas.`,bannerSectionsCount:`{count, plural, one {# sección de solicitud normalizada mostrada en el orden devuelto por la ruta del asistente.} other {# secciones de solicitud normalizadas mostradas en el orden devuelto por la ruta del asistente.}}`,collapseAll:`Contraer todo`,copyAriaLabel:`Copiar {title}`,emptyBody:`Esta llamada no tiene secciones de prompt normalizadas. Usa la pestaña Raw para inspeccionar la carga útil completa de la solicitud.`,emptyTitle:`Sin secciones de prompt normalizadas`,expandAll:`Expandir todo`,formatJavaScript:`JavaScript`,formatJson:`JSON`,formatMarkdown:`Markdown`,formatTypeScript:`TypeScript`,noContentAvailable:`No hay contenido disponible.`,promptSectionsTitle:`Secciones del prompt`},Ht={body:`Añade fondos con tu proveedor o baja el límite de tokens del modelo.`,title:`Tu clave de API necesita créditos`},Ut={refreshing:`Actualizando`},Wt={submitFailed:`No se pudo enviar tu respuesta. Inténtalo de nuevo.`},Gt={expandAria:`Reabrir pregunta`,minimizeAria:`Minimizar pregunta`,nextQuestionAria:`Pregunta siguiente`,optionAria:`Opción {number}: {label}`,previousQuestionAria:`Pregunta anterior`,position:`{current} de {total}`,sendResponseAria:`Enviar respuesta`,skip:`Omitir`,skipAria:`Omitir esta pregunta`,skipped:`Omitida`,skippedHint:`Omitida: elige una opción para anular`,typeDifferentAnswerAria:`Escribe una respuesta diferente`,typeSomethingElsePlaceholder:`Algo más`},Kt={cancelAll:`Cancelar todos`,cancelAllAria:`Cancelar todos los mensajes en cola`,cancelAria:`Cancelar mensaje en cola`,editAria:`Editar mensaje en cola`,pushToAgentAria:`Enviar al agente`,queueHeading:`Cola · {count}`,showActionsAria:`Mostrar acciones del mensaje en cola`},qt={addToChat:`Añadir al chat`,ariaLabel:`Citar y responder`,cancel:`Cancelar`,placeholder:`Escribe tu respuesta…`},Jt={copyRequestPayloadAriaLabel:`Copiar carga de la solicitud`,copyResponsePayloadAriaLabel:`Copiar carga de la respuesta`,downloadFailedToast:`No se pudo descargar la carga.`,downloadRequestPayloadAriaLabel:`Descargar carga de la solicitud`,downloadResponsePayloadAriaLabel:`Descargar carga de la respuesta`,loadErrorTitle:`No se pudieron cargar las cargas sin procesar`,loading:`Cargando cargas sin procesar…`,payloadRequestFailed:`La solicitud de la carga falló. Inténtalo de nuevo.`,request:`Solicitud`,requestPayload:`Carga de la solicitud`,response:`Respuesta`,responsePayload:`Carga de la respuesta`,retry:`Reintentar`},Yt={clickToReveal:`Haz clic para revelar`,clickToRevealTitle:`{label} · haz clic para revelar`,copyValue:`Copiar valor`,copyValueAria:`Copiar valor de {name}`,hideValue:`Ocultar valor`,hideValueAria:`Ocultar valor de {name}`,redacted:`Redactado`,redactedTitle:`Redactado: este valor no está vinculado a una credencial guardada`,redactionMarkerTitle:`Marcador de redacción: no verificado por el asistente`,revealFailed:`No se pudo revelar {name}.`,revealValueAria:`Revelar valor de {name}`},Xt={retryAria:`Reintentar actualización`},Zt={save:`Guardar`,title:`Renombrar conversación`},Qt={defaultStatus:`Buscando en la web para conocerte.`,heading:`Conociéndote…`,reading:`Leyendo <title>{title}</title><domain> · {domain}</domain>`,searchingFor:`Buscando <query>“{query}”</query>`,warmingUp:`Preparando la búsqueda…`},$t={editRemovalAria:`Editar eliminación`,keepIt:`Conservarlo`,removeAria:`Eliminar`,sources:`Fuentes`,whyRemove:`¿Por qué eliminar esto?`},en={heading:`Conociéndote…`,mockNote:`(mock: el flujo en vivo muestra aquí el feed de actividad de búsqueda)`,resultsTitle:`Esto es lo que sé de ti. Puedes quitar lo que no sea cierto:`},tn={body:`Esto es lo que sé de ti. Puedes quitar lo que no sea cierto:`,loading:`Conociéndote…`},nn={continue:`Continuar`,emptyBody:`Esta vez no pude armar un perfil limpio. Podemos conocernos sobre la marcha.`,emptyTitle:`Empecemos de una vez.`},rn={heading:`Así podría ayudarte para empezar:`},an={argumentsPreview:`Vista previa de argumentos`,copySectionAria:`Copiar contenido de la sección`,kindAssistantText:`Texto del asistente`,kindFunctionResponse:`Respuesta de función`,kindReasoning:`Razonamiento`,kindToolCall:`Llamada de herramienta`,kindToolResult:`Resultado de herramienta`,modeResultOnly:`Respuesta solo de resultado`,modeTextOnly:`Respuesta solo de texto`,modeToolCalling:`Respuesta con llamada de herramienta`,noArgumentsPreview:`No hay vista previa de argumentos estructurados disponible para esta llamada de herramienta.`,noAssistantText:`No se capturó texto del asistente para esta sección.`,noSectionsFallback:`Esta respuesta no tiene secciones renderizadas. Las cargas útiles sin procesar siguen disponibles en la pestaña Raw, y cualquier metadato de respuesta normalizado se mostrará cuando esté presente.`,rawTabHint:`¿Necesitas la carga útil completa del proveedor? Abre la pestaña Raw para el JSON de solicitud y respuesta.`,responseMetadata:`Metadatos de respuesta`,sectionTitle:`Sección {number}`,sectionUnavailable:`Renderizado de sección no disponible`,stopReasonChip:`Motivo de parada: {reason}`,toolChip:`Herramienta: {name}`},on={saveFailed:`No se pudo guardar la regla de confianza. Inténtalo de nuevo.`},sn={aria:`Ir al mensaje más reciente`,label:`Ir al más reciente`},cn={submitFailed:`No se pudo enviar el secreto. Inténtalo de nuevo.`},ln={cancel:`Cancelar`,domains:`Dominios: {list}`,placeholder:`Introduce el valor secreto...`,save:`Guardar`,savedSecurely:`Guardado de forma segura`,saving:`Guardando...`,secretValueFallback:`Valor secreto`,sendOnce:`Enviar una vez (sin guardar)`,sending:`Enviando...`,storedSecurelyNote:`Esta información se guarda de forma segura en tu dispositivo y no se envía a ningún servidor. La IA nunca ve este valor.`,title:`Credencial segura`,tools:`Herramientas: {list}`},un={body:`Las conversaciones de asistentes autoalojados aún no están disponibles desde la web. Gestiona tu asistente desde ajustes.`,openSettings:`Abrir ajustes`,title:`Asistente autoalojado`},dn={settingUp:`Configurando tu asistente…`},fn={yourAssistant:`Tu asistente`},pn={newChat:`Chat nuevo`},mn={label:`Volver arriba`},hn={message:`No se pudieron cargar tus conversaciones.`,retry:`Reintentar`},gn={loadingAria:`Cargando conversaciones`},_n={newGroup:`Grupo nuevo…`},vn={webSearch:`Búsqueda web`},yn={actionsAria:`Acciones de habilidad`,closeDetails:`Cerrar detalles de la habilidad`,goToSkill:`Ir a la habilidad`,loadError:`No se pudo cargar esta habilidad. Puede que se haya eliminado.`,moreTooltip:`Más`,removeSkill:`Eliminar habilidad`,titleFallback:`Habilidad`},bn={parameters:`Parámetros`,rawInput:`Entrada sin procesar`,runningSuffix:` · en ejecución`},xn={view:`Ver`},Sn={loadingAria:`Cargando habilidad`,provides:`Proporciona`,usedSkill:`Habilidad usada`},Cn={output:`Salida`,outputFormatAria:`Formato de salida`},wn={fromSkill:`De {name}`},Tn={callLink:`Llamada {number}`,emptyBody:`Esta pestaña enumera cada llamada de herramienta <code>skill_load</code> en la conversación. No se detectó ninguna en las llamadas LLM capturadas.`,emptyTitle:`No se cargaron habilidades en esta conversación`,loadCount:`{count, plural, one {1 carga} other {# cargas}}`,summaryStats:`{uniqueCount, plural, one {# habilidad única} other {# habilidades únicas}} · {totalLoads, plural, one {# llamada de carga} other {# llamadas de carga}}`,summaryTitle:`Habilidades cargadas en esta conversación`},En={editReplyAria:`Editar respuesta`,removeQuoteAria:`Quitar cita`,typeReplyPlaceholder:`Escribe tu respuesta…`},Dn={successToast:`Guardado de forma segura. La clave nunca entró en el chat.`},On={backToTimelineAria:`Volver a la línea de tiempo`,backTooltip:`Atrás`,closeDetail:`Cerrar detalle del subagente`,input:`Entrada`,noEventsYet:`Aún no hay eventos`,objective:`Objetivo`,output:`Salida`,showLess:`Mostrar menos`,showMore:`Mostrar más`,stopSubagentAria:`Detener subagente`,timeline:`Línea de tiempo`},kn={viewReasoning:`Ver el razonamiento`,viewSearchDetails:`Ver detalles de la búsqueda`,viewSearchError:`Ver error de la búsqueda`,viewToolDetails:`Ver detalles de la herramienta`,workedFor:`Trabajó durante {duration}`},An={stopSubagentAria:`Detener subagente`},jn={openAria:`Abrir sugerencia: {title}`},Mn={closeAria:`Cerrar`,letsDoIt:`¡Hagámoslo!`,thingsWeCanDo:`Cosas que podemos hacer:`,whatWellNeed:`Esto es lo que necesitaremos:`},Nn={scrollForMore:`Desplázate hacia abajo para ver más`},Pn={submitFailed:`No se pudo enviar. Inténtalo de nuevo.`},Fn={cancelled:`Cancelado`,displayFailed:`No se pudo mostrar este contenido.`,displayFailedNamed:`No se pudo mostrar "{title}".`,done:`Hecho`,unknownSurface:`Superficie desconocida`,unsupportedType:`Tipo de superficie no admitido: {type}`},In={copied:`Copiado`,copy:`Copiar`,copyAria:`Copiar tabla como markdown`},Ln={continue:`Continuar`,defaultTitle:`¿En qué puedo ayudarte?`,other:`Otro`,otherPlaceholder:`Describe con qué necesitas ayuda...`,selectAll:`Selecciona todas las que correspondan`,somethingElse:`otra cosa distinta`},Rn={loadFailed:`No se pudo cargar la vista previa.`,tooLarge:`El archivo es demasiado grande para previsualizarlo en línea.`},zn={reply:`Responder`},Bn={adding:`Añadiendo…`,comment:`Comentar`,feedbackPlaceholder:`Añade tu comentario…`},Vn={allow:`Permitir`,confirmationRequired:`Se requiere confirmación`,copyOutput:`Copiar salida`,deny:`Denegar`,hideDetails:`Ocultar detalles`,output:`Salida`,showDetails:`Mostrar detalles`,technicalDetails:`Detalles técnicos`,toolLatency:`Latencia de la herramienta:`,toolName:`Nombre de la herramienta`},Hn={defaultValue:`predeterminado: {value}`,inputSchema:`Esquema de entrada`,intro:`{count, plural, one {# herramienta enviada con esta solicitud. Expande una herramienta para ver su definición y esquema de entrada.} other {# herramientas enviadas con esta solicitud. Expande una herramienta para ver su definición y esquema de entrada.}}`,noInputSchema:`Sin esquema de entrada: esta herramienta no acepta entrada estructurada.`,required:`obligatorio`,settings:`Configuración`},Un={changes:`Cambios`,closeAria:`Cerrar detalles de la herramienta`,command:`Comando`,denied:`Esta llamada a la herramienta no se aprobó, así que no se ejecutó.`,emptyOutput:`La herramienta no devolvió ninguna salida.`,input:`Entrada`,output:`Salida`,requestedChanges:`Cambios solicitados`,running:`Ejecutando…`},Wn={openAria:`Abrir {label}`,viewDetailsAria:`Ver detalles: {label}`},Gn={fileUnavailable:`El archivo no está disponible para descargar`,fileUnavailableHostTimeout:`El archivo no está disponible para descargar (puede que la aprobación del archivo en el host haya caducado)`,stopCommand:`Detener comando`,stopRun:`Detener ejecución`,stopWorkflow:`Detener flujo de trabajo`},Kn={thinking:`Pensando`,working:`Trabajando`},qn={authFailed:`No se pudo autenticar al usuario.`},Jn={assistantBusy:`Tu asistente está ocupado. Inténtalo de nuevo cuando termine de responder.`,retryFailed:`No se pudo reintentar la respuesta`,summarizeFailed:`No se pudo resumir la conversación`},Yn={commandFailed:`No se pudo ejecutar ese comando. Inténtalo de nuevo.`,doctorUnavailable:`El Doctor no está disponible en este asistente.`},Xn={downloadFile:`Descargar archivo`,goToFile:`Ir al archivo`},Zn={sketching:`Bocetando un visual...`},Qn={visual:`Visual`},$n={ariaLabel:`Sesión de voz`,endSession:`Finalizar la sesión de voz`,muteAssistant:`Silenciar el asistente`,muteMicrophone:`Silenciar el micrófono`,muted:`Silenciado`,openVoiceRoom:`Abrir la sala de voz`,unmuteAssistant:`Activar el audio del asistente`,unmuteMicrophone:`Activar el micrófono`},er={seed:`Hola, acabo de iniciar una conversación de voz contigo. Este mensaje se envía automáticamente. Salúdame en una frase corta y luego pregúntame en qué quiero trabajar.`},tr={nativeSttNoTranscript:`El dictado nativo de {clientName} no devolvió una transcripción. Revisa el reconocimiento de voz nativo en los ajustes del sistema e inténtalo de nuevo.`},nr={backAria:`Atrás`,description:`Una conversación hablada, manos libres, con {name}.`,listeningLanguage:`Idioma de escucha`,listeningLanguageApplies:`Se aplica a partir de tu próximo turno hablado.`,liveCaptions:`Activa los subtítulos en vivo cuando quieras.`,muteMic:`Silencia el micrófono sin terminar la sesión.`,speakNaturally:`Habla con naturalidad y {name} responde en voz alta.`,startTalking:`Empezar a hablar`,title:`Modo de voz`,voiceSettings:`Ajustes de voz`,yourAssistant:`tu asistente`},rr={unavailable:`Elegir una voz no está disponible para este asistente ahora mismo.`},ir={ariaLabel:`Sesión de voz`,closeCamera:`Cerrar la cámara`,endSessionAria:`Finalizar la sesión de voz`,endSessionTooltip:`Finalizar sesión`,flashAuto:`Flash automático`,flashAutoBadge:`A`,flashOff:`Flash desactivado`,flashOn:`Flash activado`,flipCamera:`Voltear la cámara`,lightOff:`Luz apagada`,lightOn:`Luz encendida`,minimizeAria:`Minimizar la sala de voz`,minimizeTooltip:`Minimizar (la sesión sigue activa)`,muteAssistant:`Silenciar el asistente`,muteMicrophone:`Silenciar el micrófono`,mutedState:`Silenciado. {state}`,showCamera:`Mostrar la cámara`,stopLive:`Detener en vivo`,takePhoto:`Tomar una foto`,unmuteAssistant:`Activar el audio del asistente`,unmuteMicrophone:`Activar el micrófono`},ar={dismiss:`Descartar`,endSession:`Terminar sesión de voz`,goToThreadAria:`Ir al hilo de la sesión de voz`,groupAria:`Sesión de voz`,muteAssistant:`Silenciar asistente`,muteMic:`Silenciar micrófono`,unmuteAssistant:`Activar sonido del asistente`,unmuteMic:`Activar micrófono`},or={muted:`Silenciado`},sr={commandFinished:`Comando en segundo plano finalizado`,incomingEvent:`Evento entrante`,memoryReview:`Revisión de la memoria`,ranOnItsOwn:`Se ejecutó por su cuenta`,resumed:`Reanudado tras una interrupción`,scheduledRun:`Ejecución programada`,watchReview:`Revisión de la sesión de observación`,workflowFinished:`Flujo de trabajo finalizado`},cr={close:`Cerrar`,details:`Detalles`,result:`Resultado`,runStatus:`Estado de la ejecución`,title:`La conversación se activó`,workflow:`Flujo de trabajo`},lr={celsius:`°C`,fahrenheit:`°F`,feelsLike:`Sensación térmica {temp}°`,highLow:`Máx:{high}° Mín:{low}°`,now:`Ahora`},ur={content:`Contenido`,fetchFailed:`La obtención falló.`,fetching:`Obteniendo…`,noContent:`No se extrajo contenido.`,rawResult:`Resultado sin procesar`,viewExtracted:`Ver extraído`,viewRaw:`Ver sin procesar`},dr={noSources:`No se encontraron fuentes.`,query:`Consulta`,sources:`Fuentes`,sourcesWithCount:`Fuentes ({count})`},fr={moreCount:`+{count} más`},pr={after:`Después`,before:`Antes`,notSet:`Sin definir`,removed:`Eliminado`},mr={agents:`Agentes`,back:`Atrás`,backToSubagentsAria:`Volver a los subagentes`,closeDetail:`Cerrar el detalle del flujo de trabajo`,input:`Entrada`,noSubagentsYet:`Aún no hay subagentes`,output:`Salida`,stopWorkflow:`Detener flujo de trabajo`,subagents:`Subagentes`},hr={input:`Entrada`,noPromptSummary:`Sin resumen del prompt`,noResultSummary:`Sin resumen del resultado`,output:`Salida`,prompt:`Prompt`,result:`Resultado`,running:`En ejecución…`},gr={cancelledAria:`Cancelado`,openDetailsAria:`Abrir detalles de {title}`},_r={openTitle:`Abrir {path}`},vr={noResponse:`Decidió no responder`,reactionAddedSelf:`Reaccionó con {emoji}`,reactionRemovedSelf:`Quitó la reacción {emoji}`,reactionAdded:`{name} reaccionó con {emoji}`,reactionRemoved:`{name} quitó su reacción {emoji}`,reactionSomeone:`Alguien`},yr={doneDiscarded:`No se guardó`,doneNotRight:`Marcado como incorrecto`,doneSaved:`Habilidad guardada`,recommended:`Recomendado`},br={restore:`Restaurar acceso`,restoring:`Restaurando...`,restored:`Restaurado. Los modelos gestionados por Vellum vuelven a funcionar.`,failedNoAssistant:`Selecciona un asistente y vuelve a intentarlo.`,failedCannotActHere:`Esta aplicación no puede restaurar la credencial de este asistente. Abre el asistente en el equipo que lo ejecuta.`,failedReplacementRejected:`Vellum rechazó la credencial de reemplazo. Inicia sesión en la plataforma Vellum y vuelve a intentarlo.`,failedUnconfirmed:`El reemplazo se guardó, pero no se pudo confirmar con Vellum. Puede que empiece a funcionar en breve.`,failedGeneric:`No se pudo restaurar el acceso. Inténtalo de nuevo en un momento.`},xr={expand:`Expandir`,collapse:`Contraer`},Sr={count:`{count, plural, one {# fotograma de cámara} other {# fotogramas de cámara}}`,timeRange:`Guardados de {first} a {last}`,savedTime:`Guardado: {time}`,pendingAria:`Fotograma de cámara, la imagen aún se está cargando. {time}`,timeUnavailable:`Hora no disponible`},Cr={documentChat:e,acpChatPlanBlock:t,acpChatTerminalBlock:n,acpChatToolCard:r,acpConnectAffordance:i,acpRunChatView:a,activeChatView:o,activityStepsPanel:s,addToChatSheet:c,allowOptionsMenu:l,appAssetActions:u,archiveAllConfirmDialog:d,assistantContentDisclosure:f,assistantDesktop:p,assistantNavItem:m,assistantSideMenu:h,assistantSleepStage:g,assistantSwitcher:_,attachmentChip:v,attachmentDownloadOverlay:y,attachmentLoadingChip:b,attachmentOverflowSquare:x,attachmentPreviewModal:S,attachmentTile:C,backgroundTaskDetailPanel:w,billingErrorBanner:T,cacheBreakpointMapCard:E,cacheDiffCard:D,cacheHealthCard:O,callRail:k,callSummarySurface:A,cameraDeepLink:j,cameraError:M,cameraShutterHint:N,cameraStatusPill:P,cameraViewOptions:F,cardSurface:I,channelReferenceChip:L,channelSetupPanel:R,channelThreadControl:z,channelTranscriptPanel:B,chatAttachments:V,chatBody:H,chatComposer:U,chatConversationHeader:W,chatInfoPanel:G,chatLayout:K,chatLayoutHeader:q,chatMarkdownMessage:J,chatPage:Y,chatRouteContent:X,chatRuleEditorModal:Z,choiceSurface:Q,cleanupScreen:$,coachmarkPress:ee,collapsedGroupIcon:te,compactionCircuitOpenBanner:ne,compactionTab:re,composerDraftNotices:ie,composerNotices:ae,composerSecretNotice:oe,composerSettingsMenu:se,confirmationActions:ce,confirmationPromptCard:le,contactActions:ue,contactPromptCard:de,contactRecordCard:fe,contextWindowIndicator:pe,conversationActions:me,conversationActionsSheet:he,conversationAssetActions:ge,conversationAssets:_e,conversationStarterDock:ve,conversationStarterGrid:ye,copyBlockSurface:be,copyButton:xe,copyIdToClipboard:Se,creditsCard:Ce,creditsUpsellCard:we,csvPreview:Te,dailyLimitBanner:Ee,deleteConversationConfirmDialog:De,deletedMessageRow:Oe,documentAssetActions:ke,documentCommentForm:Ae,documentCommentPanel:je,documentCommentThread:Me,documentPreviewSurface:Ne,documentReopenLink:Pe,documentViewerContainer:Fe,documentConversation:Ie,documentViewerPage:Le,dynamicPageSurface:Re,exportProgressModal:ze,fileDiffView:Be,fileDownload:Ve,filePreviewContainer:He,fileUploadSurface:Ue,formSurface:We,frameGateHud:Ge,groupActions:Ke,groupActionsSheet:qe,groupNameDialogFromStore:Je,inChatOnboardingController:Ye,inChatPluginPill:Xe,inlineProcessCard:Ze,inspectPage:Qe,liveVoiceBusy:$e,liveVoiceButton:et,liveVoiceStatus:tt,llmCallErrorCard:nt,localFileEmbed:rt,localFileLink:it,localFileMenu:at,lowBalanceBanner:ot,maintenanceModeBanner:st,maintenanceRecoveryCard:ct,memoryRouterPlaygroundPage:lt,memoryTab:ut,messageFilesPanel:dt,messageHoverActions:ft,messageLongPressActions:pt,micPermissionPrimer:mt,missingApiKeyBanner:ht,mobileCallSelector:gt,multiActivityGroup:_t,nameInputDialog:vt,newChatPluginsPicker:yt,newChatPluginsSection:bt,oauthConnectSurface:xt,onboardingChoiceCard:St,orphanedHistoryNotice:Ct,overviewTab:wt,pageTabs:Tt,pdfPageSkeleton:Et,pdfPreview:Dt,phaseGroupedStepList:Ot,pinnedAppColorSwatches:kt,pinnedAppNavItem:At,pluginPill:jt,preferencesMenu:Mt,preferencesUsagePanel:Nt,previewError:Pt,previewMessageCard:Ft,previewSkeleton:It,previewTruncationNotice:Lt,previewUnsupported:Rt,progressRail:zt,promptSubmission:Bt,promptTab:Vt,providerBillingBanner:Ht,pullRefreshSpinner:Ut,questionActions:Wt,questionPromptCard:Gt,queuedMessagesDrawer:Kt,quoteReplyBubble:qt,rawTab:Jt,redactedCredentialChip:Yt,refreshFeedbackPill:Xt,renameDialogFromStore:Zt,researchActivityFeed:Qt,researchFactsCard:$t,researchMockPage:en,researchResultsOverlay:tn,researchResultsView:nn,researchSuggestions:rn,responseTab:an,ruleEditorActions:on,scrollToLatestButton:sn,secretActions:cn,secretPromptCard:ln,selfHostedScreen:un,setupScreen:dn,sideMenuBuiltInNav:fn,sideMenuOverlayBottomColumn:pn,sidebarBackToTop:mn,sidebarConversationError:hn,sidebarConversationSkeleton:gn,sidebarListContextMenu:_n,singleActivity:vn,skillDetailPanel:yn,skillExecuteDetail:bn,skillLoadCard:xn,skillLoadDetail:Sn,skillLoadOutput:Cn,skillToolList:wn,skillsTab:Tn,stagedQuotesStrip:En,storeCredentialDialog:Dn,subagentDetailPanel:On,subagentPhaseTimeline:kn,subagentSpawnGroup:An,suggestionCard:jn,suggestionDetailPanel:Mn,suggestionLibrary:Nn,surfaceActions:Pn,surfaceRouter:Fn,tableSurface:In,taskPreferencesSurface:Ln,textPreview:Rn,textSelectionPopover:zn,tiptapDocumentEditor:Bn,toolCallChip:Vn,toolDefinitionsContent:Hn,toolDetailPanel:Un,toolStepPill:Wn,transcriptMessageBody:Gn,transcriptRow:Kn,useConversationLoader:qn,useConversationSecondaryActions:Jn,useSendMessage:Yn,vellumFileActionModal:Xn,visualPlaceholder:Zn,visualSurface:Qn,voiceComposerBar:$n,voiceEntryGreeting:er,voiceErrors:tr,voiceFirstRunCard:nr,voicePickerSurface:rr,voiceRoom:ir,voiceSessionPill:ar,voiceSessionPillHost:or,wakeCard:sr,wakeDetailPanel:cr,weatherForecastDisplay:lr,webFetchDetailView:ur,webSearchDetailView:dr,webSearchStepRow:fr,workResultSurface:pr,workflowDetailPanel:mr,workflowLeafDetail:hr,workflowSubagentRow:gr,workspacePathLink:_r,transcript:vr,watchRetroSurface:yr,restoreManagedCredentialButton:br,sidebarExpandRow:xr,cameraFrameGrid:Sr};export{t as acpChatPlanBlock,n as acpChatTerminalBlock,r as acpChatToolCard,i as acpConnectAffordance,a as acpRunChatView,o as activeChatView,s as activityStepsPanel,c as addToChatSheet,l as allowOptionsMenu,u as appAssetActions,d as archiveAllConfirmDialog,f as assistantContentDisclosure,p as assistantDesktop,m as assistantNavItem,h as assistantSideMenu,g as assistantSleepStage,_ as assistantSwitcher,v as attachmentChip,y as attachmentDownloadOverlay,b as attachmentLoadingChip,x as attachmentOverflowSquare,S as attachmentPreviewModal,C as attachmentTile,w as backgroundTaskDetailPanel,T as billingErrorBanner,E as cacheBreakpointMapCard,D as cacheDiffCard,O as cacheHealthCard,k as callRail,A as callSummarySurface,j as cameraDeepLink,M as cameraError,Sr as cameraFrameGrid,N as cameraShutterHint,P as cameraStatusPill,F as cameraViewOptions,I as cardSurface,L as channelReferenceChip,R as channelSetupPanel,z as channelThreadControl,B as channelTranscriptPanel,V as chatAttachments,H as chatBody,U as chatComposer,W as chatConversationHeader,G as chatInfoPanel,K as chatLayout,q as chatLayoutHeader,J as chatMarkdownMessage,Y as chatPage,X as chatRouteContent,Z as chatRuleEditorModal,Q as choiceSurface,$ as cleanupScreen,ee as coachmarkPress,te as collapsedGroupIcon,ne as compactionCircuitOpenBanner,re as compactionTab,ie as composerDraftNotices,ae as composerNotices,oe as composerSecretNotice,se as composerSettingsMenu,ce as confirmationActions,le as confirmationPromptCard,ue as contactActions,de as contactPromptCard,fe as contactRecordCard,pe as contextWindowIndicator,me as conversationActions,he as conversationActionsSheet,ge as conversationAssetActions,_e as conversationAssets,ve as conversationStarterDock,ye as conversationStarterGrid,be as copyBlockSurface,xe as copyButton,Se as copyIdToClipboard,Ce as creditsCard,we as creditsUpsellCard,Te as csvPreview,Ee as dailyLimitBanner,Cr as default,De as deleteConversationConfirmDialog,Oe as deletedMessageRow,ke as documentAssetActions,e as documentChat,Ae as documentCommentForm,je as documentCommentPanel,Me as documentCommentThread,Ie as documentConversation,Ne as documentPreviewSurface,Pe as documentReopenLink,Fe as documentViewerContainer,Le as documentViewerPage,Re as dynamicPageSurface,ze as exportProgressModal,Be as fileDiffView,Ve as fileDownload,He as filePreviewContainer,Ue as fileUploadSurface,We as formSurface,Ge as frameGateHud,Ke as groupActions,qe as groupActionsSheet,Je as groupNameDialogFromStore,Ye as inChatOnboardingController,Xe as inChatPluginPill,Ze as inlineProcessCard,Qe as inspectPage,$e as liveVoiceBusy,et as liveVoiceButton,tt as liveVoiceStatus,nt as llmCallErrorCard,rt as localFileEmbed,it as localFileLink,at as localFileMenu,ot as lowBalanceBanner,st as maintenanceModeBanner,ct as maintenanceRecoveryCard,lt as memoryRouterPlaygroundPage,ut as memoryTab,dt as messageFilesPanel,ft as messageHoverActions,pt as messageLongPressActions,mt as micPermissionPrimer,ht as missingApiKeyBanner,gt as mobileCallSelector,_t as multiActivityGroup,vt as nameInputDialog,yt as newChatPluginsPicker,bt as newChatPluginsSection,xt as oauthConnectSurface,St as onboardingChoiceCard,Ct as orphanedHistoryNotice,wt as overviewTab,Tt as pageTabs,Et as pdfPageSkeleton,Dt as pdfPreview,Ot as phaseGroupedStepList,kt as pinnedAppColorSwatches,At as pinnedAppNavItem,jt as pluginPill,Mt as preferencesMenu,Nt as preferencesUsagePanel,Pt as previewError,Ft as previewMessageCard,It as previewSkeleton,Lt as previewTruncationNotice,Rt as previewUnsupported,zt as progressRail,Bt as promptSubmission,Vt as promptTab,Ht as providerBillingBanner,Ut as pullRefreshSpinner,Wt as questionActions,Gt as questionPromptCard,Kt as queuedMessagesDrawer,qt as quoteReplyBubble,Jt as rawTab,Yt as redactedCredentialChip,Xt as refreshFeedbackPill,Zt as renameDialogFromStore,Qt as researchActivityFeed,$t as researchFactsCard,en as researchMockPage,tn as researchResultsOverlay,nn as researchResultsView,rn as researchSuggestions,an as responseTab,br as restoreManagedCredentialButton,on as ruleEditorActions,sn as scrollToLatestButton,cn as secretActions,ln as secretPromptCard,un as selfHostedScreen,dn as setupScreen,fn as sideMenuBuiltInNav,pn as sideMenuOverlayBottomColumn,mn as sidebarBackToTop,hn as sidebarConversationError,gn as sidebarConversationSkeleton,xr as sidebarExpandRow,_n as sidebarListContextMenu,vn as singleActivity,yn as skillDetailPanel,bn as skillExecuteDetail,xn as skillLoadCard,Sn as skillLoadDetail,Cn as skillLoadOutput,wn as skillToolList,Tn as skillsTab,En as stagedQuotesStrip,Dn as storeCredentialDialog,On as subagentDetailPanel,kn as subagentPhaseTimeline,An as subagentSpawnGroup,jn as suggestionCard,Mn as suggestionDetailPanel,Nn as suggestionLibrary,Pn as surfaceActions,Fn as surfaceRouter,In as tableSurface,Ln as taskPreferencesSurface,Rn as textPreview,zn as textSelectionPopover,Bn as tiptapDocumentEditor,Vn as toolCallChip,Hn as toolDefinitionsContent,Un as toolDetailPanel,Wn as toolStepPill,vr as transcript,Gn as transcriptMessageBody,Kn as transcriptRow,qn as useConversationLoader,Jn as useConversationSecondaryActions,Yn as useSendMessage,Xn as vellumFileActionModal,Zn as visualPlaceholder,Qn as visualSurface,$n as voiceComposerBar,er as voiceEntryGreeting,tr as voiceErrors,nr as voiceFirstRunCard,rr as voicePickerSurface,ir as voiceRoom,ar as voiceSessionPill,or as voiceSessionPillHost,sr as wakeCard,cr as wakeDetailPanel,yr as watchRetroSurface,lr as weatherForecastDisplay,ur as webFetchDetailView,dr as webSearchDetailView,fr as webSearchStepRow,pr as workResultSurface,mr as workflowDetailPanel,hr as workflowLeafDetail,gr as workflowSubagentRow,_r as workspacePathLink};
@@ -0,0 +1,3 @@
1
+ var e={saveFailed:`Не удалось сохранить документ. Ваше сообщение сохранено здесь. Попробуйте отправить ещё раз.`,viewConversation:`Открыть беседу`,reopenDocument:`Открыть документ`},t={title:`Подключить Claude Code`,dismissButton:`Скрыть`,subtitleIdle:`Использование подписки Claude Code`,subtitleStarting:`Запускаем вход...`,subtitleWaiting:`Ждём вход в Claude...`,subtitleExchanging:`Завершаем вход...`,subtitleConnected:`Claude Code подключён, продолжаем...`,subtitlePaste:`Вставка ключа из открывшейся вкладки`,errorFallback:`Не удалось подключить Claude. Повторите попытку.`,connectButton:`Подключить`,saveButton:`Сохранить`,pastePlaceholder:`Ключ`},n={modelLabel:`Модель`},r={backAria:`Назад ко всем шагам`,backTooltip:`Все шаги`,thinkingTitle:`Размышление`},i={title:`Добавить в диалог`,closeAriaLabel:`Закрыть`,camera:`Камера`,gallery:`Фотоплёнка`,files:`Файлы`,pickFailed:`Не удалось добавить этот файл. Повторите попытку.`,tooLarge:`{count, plural, one {# файл слишком большой, чтобы прикрепить} few {# файла слишком большие, чтобы прикрепить} many {# файлов слишком большие, чтобы прикрепить} other {# файла слишком большие, чтобы прикрепить}}`,pickFull:`{count, plural, one {# файл не поместился в эту пачку. Добавление отдельно.} few {# файла не поместились в эту пачку. Добавление отдельно.} many {# файлов не поместились в эту пачку. Добавление отдельно.} other {# файла не поместились в эту пачку. Добавление отдельно.}}`},a={allowAndCreateRule:`Разрешить и создать правило`,trigger:`Другие варианты разрешения`},o={appExported:`Приложение экспортировано`,shareFailed:`Не удалось поделиться приложением`},s={fitView:`Вписать`,panView:`Обзор`,controlView:`Управление`,panHint:`Перетаскивайте для обзора. Коснитесь для щелчка.`,hideAria:`Скрыть виртуальный рабочий стол`,closeAria:`Закрыть предпросмотр виртуального рабочего стола`,moveAria:`Переместить предпросмотр виртуального рабочего стола (клавиши со стрелками)`,expandAria:`Развернуть виртуальный рабочий стол`,busy:`Виртуальный рабочий стол занят другим пользователем.`,connecting:`Подключение к виртуальному рабочему столу…`,failed:`Не удалось запустить виртуальный рабочий стол.`,lost:`Соединение с виртуальным рабочим столом потеряно.`,openAria:`Открыть виртуальный рабочий стол {name}`,openUnnamedAria:`Открыть виртуальный рабочий стол`,reconnectButton:`Переподключиться`,title:`Рабочий стол`,unavailable:`Виртуальный рабочий стол недоступен для этого ассистента.`,installButton:`Установить виртуальный рабочий стол`,checkingSetup:`Проверка виртуального рабочего стола…`,installingPackages:`Установка компонентов виртуального рабочего стола…`,installingChrome:`Установка Google Chrome…`,checkingInstall:`Проверка установки…`,installFailed:`Не удалось завершить установку. Попробуйте ещё раз.`,setupRequestFailed:`Не удалось проверить установку. Подключитесь заново.`,setupUnsupported:`Для установки нужен контейнер Linux x64 или ARM64 с правами администратора.`},c={bulkActionMembersFailed:`Не удалось загрузить все диалоги в этом разделе. Повторите попытку.`},l={dismissLabel:`Скрыть экран сна`,sleeping:`Ваш ассистент спит`,sleepingNamed:`{name} спит`,waking:`Ваш ассистент просыпается…`,wakingNamed:`{name} просыпается…`,woke:`Ваш ассистент только что проснулся`,wokeNamed:`{name} только что проснулся`},u={collapse:`Скрыть ассистентов`,currentAssistant:`{name}, текущий ассистент`,expand:`Сменить ассистента`,switchFailed:`Не удалось сменить ассистента. Повторите попытку.`,switchTo:`Переключиться на {name}`,unnamedAssistant:`Безымянный ассистент`},d={legacyUnavailable:`Предпросмотр недоступен. Содержимое файла не сохранилось в истории чата.`,loadFailed:`Не удалось загрузить предпросмотр.`,pdfLoadFailed:`Не удалось показать этот PDF`},f={cancelUpload:`Отменить загрузку {filename}`,preview:`Предпросмотр {filename}`,remove:`Удалить {filename}`,uploading:`Загрузка {filename}`},p={description:`Где {count, plural, one {# точка разрыва кэша попала} few {# точки разрыва кэша попали} many {# точек разрыва кэша попали} other {# точки разрыва кэша попали}} в префикс этого запроса и какие сегменты прочитали, а какие создали заново.`,estimatedTokens:`≈ {count} токенов`,fullMissBody:`В этом ходе каждый сегмент создали заново. Сравнение с предыдущим ходом в разнице кэша выше, чтобы найти изменившийся блок.`,fullMissTitle:`Полный промах кэша`,loadError:`Не удалось загрузить тело запроса, чтобы нанести точки разрыва кэша.`,loading:`Загружаем тело запроса, чтобы нанести точки разрыва кэша…`,noBreakpoints:`В этом запросе не было точек разрыва кэша: кэш промпта для вызова был выключен.`,splitEstimatedNote:` Разделение «прочитано / создано» считается по размеру сегмента; провайдер сообщает только итоги.`,statusCreated:`Создано заново`,statusRead:`Прочитано из кэша`,statusUnknown:`В кэше`,title:`Точки разрыва кэша`,tokenEstimateNote:`Число токенов оценивается по длине текста.`},m={changedLabel:`Изменено`,changedMessageFallback:`сообщение`,chipMessages:`Сообщения`,chipModel:`Модель`,chipSettings:`Настройки`,chipSystem:`Система`,chipTools:`Инструменты`,currentModelFallback:`эта модель`,description:`Что изменилось с запроса прошлого хода: блок, из-за которого кэш промпта создали заново.`,diffAnyway:`Всё равно сравнить ({lineCount} строк)`,diffLabel:`Разница: {label}`,diffLargeDefault:`Изменённый текст большой, поэтому по умолчанию его не сравнивают.`,diffStillTooLarge:`Всё ещё слишком большой, чтобы сравнивать здесь (больше {maxLines} строк). Вкладка Raw показывает полное тело.`,diffTooLarge:`Изменённый текст слишком большой, чтобы сравнивать здесь. Вкладка Raw показывает полное тело.`,loadPreviousCallError:`Не удалось загрузить предыдущий вызов для сравнения.`,loadingPreviousCall:`Загружаем предыдущий вызов для сравнения…`,messageStatsAppended:`добавлено: {count}`,messageStatsLeading:`Начальные сообщения: {parts}`,messageStatsRemoved:`удалено: {count}`,messageStatsShared:`общих: {count}`,previousModelFallback:`предыдущая модель`,previousPromptUnavailable:`Промпт предыдущего вызова недоступен для сравнения.`,showLess:`Показать меньше`,showMoreDiffLines:`Показать ещё {count} строк разницы`,statusMessagesEarlierBody:`{label} #{index} отличается от прошлого хода, поэтому всё, что кэшировалось после него, в этом ходе обрабатывается заново.`,statusMessagesEarlierTitle:`Изменилось более раннее сообщение`,statusMessagesHistoryBody:`В этом ходе пропало более ранних сообщений: {removedCount} (скорее всего из-за сжатия истории), поэтому кэшированный префикс сообщений больше не совпадает.`,statusMessagesHistoryTitle:`История сообщений изменилась`,statusModelBody:`Этот ход использовал {current}, а предыдущий: {previous}. Другая модель не может переиспользовать прошлый кэш промпта, поэтому весь промпт создаётся заново.`,statusModelTitle:`Модель изменилась`,statusPrefixUnchangedBodyAppended:`Кэшированный префикс совпадает с прошлым ходом, и добавлено новых сообщений: {count}. Промах кэша здесь скорее про истечение TTL, а не про изменённое содержимое.`,statusPrefixUnchangedBodyIdentical:`Кэшированный префикс совпадает с прошлым ходом. Промах кэша здесь скорее про истечение TTL, а не про изменённое содержимое.`,statusPrefixUnchangedTitle:`Префикс промпта не изменился`,statusSettingsBody:`От прошлого хода отличаются только настройки запроса (например, temperature). У большинства провайдеров одного этого недостаточно, чтобы сбросить кэш промпта.`,statusSettingsTitle:`Настройки запроса изменились`,statusSystemBody:`Часть системного промпта изменилась с прошлого хода. Нестабильное содержимое здесь (метка времени, память или блок на каждый ход) заставляет создавать кэш заново каждый ход.`,statusSystemTitle:`Системный промпт изменился`,statusToolsBody:`Набор инструментов или их определения отличаются от прошлого хода. Инструменты стоят в начале кэшированного префикса, поэтому любое изменение здесь пересоздаёт кэш ещё до системного промпта и сообщений.`,statusToolsTitle:`Определения инструментов изменились`,title:`Разница кэша`,unchangedLines:`⋯ без изменений: {count} строк`},h={barAriaLabel:`Разбивка кэша промпта из {total} токенов: {segments} ({percent} из кэша).`,barSegment:`{count} {label}`,cached:`из кэша`,description:`Какая доля промпта этого вызова пришла из кэша промпта.`,segmentCreated:`Создано заново`,segmentFresh:`Новый ввод`,segmentRead:`Прочитано из кэша`,statusFullMissBody:`Ни одна часть промпта этого вызова не была прочитана из кэша.`,statusFullMissReCreatedSuffix:` В этом ходе в кэш записали {count} токенов, но ни один не переиспользовали: обычно так бывает, когда кэшированный префикс изменился с прошлого хода.`,statusFullMissTitle:`Полный промах кэша`,statusHealthyBody:`{percent} промпта этого вызова ({count} токенов) пришло из кэша.`,statusHealthyTitle:`Здоровое переиспользование кэша`,statusPartialBody:`{percent} промпта этого вызова ({count} токенов) пришло из кэша; остальное в этом ходе обработали заново.`,statusPartialTitle:`Частичное переиспользование кэша`,title:`Состояние кэша`,unavailableNote:`Этот вызов не сообщил об использовании кэша промпта.`,unavailableNoteForProvider:`Этот вызов не сообщил об использовании кэша промпта для {provider}.`},g={callCount:`{count, plural, one {# вызов LLM} few {# вызова LLM} many {# вызовов LLM} other {# вызова LLM}}`,callLabel:`Вызов {number}`,compaction:`Сжатие`,cost:`Стоимость`,empty:`Вызовов LLM нет.`,failed:`Ошибка`,latest:`Последний`,navAriaLabel:`Вызовы LLM`,syntheticAgentLoopError:`Ошибка цикла агента`,syntheticAgentLoopErrorWithReason:`Ошибка цикла агента · {reason}`,syntheticYield:`Пауза · сжатие не уместило следующий шаг`,unrecognizedCall:`Неизвестный вызов`},_={captureFailed:`Не удалось сделать фото. Попробуйте ещё раз.`,close:`Закрыть камеру`,flip:`Сменить камеру`,openFailed:`Не удалось открыть камеру.`,shutter:`Сделать фото`,title:`Сделать фото`},v={captureFailed:`Не удалось сделать это фото.`,deviceInUse:`Камеру использует другое приложение.`,noDevice:`Камера не найдена.`,notDelivered:`Переподключение. Сделайте это фото ещё раз.`,permissionDenied:`Доступ к камере для Vellum отключён.`,refused:`Ваш ассистент пока не может получать фото.`,storeFailed:`Не удалось добавить это фото в разговор.`,unknown:`Не удалось открыть камеру.`,unsupported:`Это устройство не может открыть камеру.`,uploadFailed:`Не удалось отправить это фото.`},y={live:`Прямой эфир · Нажмите, чтобы остановить`,liveDescription:`Нажмите, чтобы остановить прямой эфир.`,photo:`Нажмите для фото · Удерживайте для прямого эфира`,photoDescription:`Удерживайте, чтобы начать прямой эфир.`},b={announceLive:`Прямой эфир. {status}`,announceLiveMuted:`Прямой эфир. Без звука. {status}`,announceLiveMutedSpeaking:`Прямой эфир. Без звука. {name} говорит`,announceLiveSpeaking:`Прямой эфир. {name} говорит`,announcePhoto:`Фото. {status}`,announcePhotoMuted:`Фото. Без звука. {status}`,announcePhotoMutedSpeaking:`Фото. Без звука. {name} говорит`,announcePhotoSpeaking:`Фото. {name} говорит`,live:`Прямой эфир`,photo:`Фото`,yourAssistant:`Ваш ассистент`},x={buttonAria:`Параметры отображения камеры`,gateHudDescription:`Панель настройки того, что сохраняет прямой эфир.`,gateHudTitle:`Показатели фильтра кадров`,keptFrameDescription:`Последний кадр, отправленный в эфире, рядом с вашими фото. Отправка продолжается в любом случае.`,keptFrameTitle:`Последний кадр`,title:`Показывать`},S={heading:`Ссылка на сообщение из {channel}`,headingWithSender:`Ссылка на сообщение {sender} в {channel}`,removeAria:`Убрать выбранное сообщение`},C={closeAria:`Закрыть тред в {channel}`,label:`Тред в {channel}`,openAria:`Открыть тред в {channel}`},w={assistantSender:`Ассистент`,closeAria:`Закрыть тред канала`,closeTooltip:`Закрыть`,emptyNoMessageDetail:`{channel} не передаёт Vellum данные по отдельным сообщениям, которые нужны этому виду, поэтому показывать здесь нечего. Откройте разговор в {channel}, чтобы прочитать его целиком.`,emptyThread:`В этом разговоре пока нет сообщений из {channel}.`,namedTitle:`{channel} · {thread}`,noText:`Без текста`,openInChannel:`Открыть в {channel}`,reactionAdded:`Реакция {emoji}`,reactionRemoved:`Реакция {emoji} убрана`,readOnly:`Только чтение`,readOnlyNote:`Это разговор в том виде, в каком он есть в {channel}. Писать можно только в поле ввода Vellum.`,reference:`Сослаться в Vellum`,referenceAria:`Сослаться на это сообщение из {channel} в Vellum`,referenced:`Выбрано`,removeReferenceAria:`Убрать эту ссылку из поля ввода Vellum`,title:`Тред в {channel}`,unknownSender:`Неизвестный отправитель`},T={addToChat:`Добавить в диалог`,askAssistantPlaceholder:`Сообщение для {assistantName}`,endOtherVoiceSession:`Завершить и начать здесь`,goToVoiceSession:`Перейти к ней`},E={appsTitle:`Приложения`,backAria:`Назад к информации о диалоге`,backTooltip:`Информация о диалоге`,closeAria:`Закрыть информацию о диалоге`,empty:`В этом диалоге пока нет материалов`,filesTitle:`Документы и изображения`,framesTitle:`Кадры с камеры`,loadFailed:`Не удалось загрузить материалы`,loadMore:`Загрузить ещё`,openAppAria:`Открыть {name}`,openDocumentAria:`Открыть {name}`,previewAttachmentAria:`Предпросмотр {filename}`,previewFrameAria:`Предпросмотр кадра с камеры`,seeAll:`Показать все`,seeAllAppsAria:`Показать все приложения`,seeAllFilesAria:`Показать все документы и изображения`,seeAllFramesAria:`Показать все кадры с камеры`,title:`Информация о диалоге`},D={compactedMessages:`сжато: {count}`,compactedPreserved:`Сжато / сохранено`,contextTokens:`Токены контекста`,duration:`Длительность`,durationMs:`{count} мс`,emptyBody:`Сжатие относят к вызову, который шёл сразу после него. Если ждал его здесь, проверь, что диалог превысил бюджет контекста прямо перед этим вызовом.`,emptyTitle:`К этому вызову не привязано сжатие`,eventIndex:` · {index} из {totalCount}`,hideSummaryText:`Скрыть текст сводки`,loadFailedDefault:`Не удалось загрузить сжатие.`,loadFailedTitle:`Не удалось загрузить`,loading:`Загрузка сжатия…`,messageRange:`{before} → {after}`,messages:`Сообщения`,outcomeCompacted:`Сжато`,outcomeFailed:`Сжатие не удалось`,outcomeFailedDetail:`Вызов суммаризатора завершился ошибкой, поэтому контекст оставили как есть.`,outcomeNoChange:`Без изменений`,outcomeUnavailable:`Исход недоступен`,outcomeUnavailableDetail:`Подробные метрики до и после для этого сжатия не записали.`,preservedMessages:`сохранено: {count}`,reductionRatio:`в {ratio}× меньше`,retry:`Повторить`,showSummaryText:`Показать текст сводки`,summarizerUsage:`{input} вход / {output} выход`,summaryCost:`Стоимость сводки`,summaryModel:`Модель сводки`,tokenRange:`{before} → {after}`,tokenRangeWithReduction:`{before} → {after} ({reduction})`,trigger:`Триггер`},O={profileSwitchFailed:`Профиль создан, но переключиться на него не удалось`,profileSwitchFallback:`Не удалось сменить профиль. Повторите попытку.`},k={cancelFailed:`Не удалось закрыть форму. Попробуйте ещё раз.`,recordCancelFailed:`Не удалось закрыть форму. Попробуйте ещё раз.`,recordSaveFailed:`Не удалось сохранить контакт. Попробуйте ещё раз.`},A={addingToContact:`Добавление канала для {name}`,markVerified:`Отметить этот адрес как подтверждённый`,markVerifiedHelp:`Подтверждённый адрес может писать вашему ассистенту.`,namePlaceholder:`Имя`,notesLabel:`Заметки`},j={cancel:`Отмена`,channelType:`{channel}:`,contactDeleted:`Контакт удалён`,contactMerged:`Контакты объединены`,contactSaved:`Контакт сохранён`,createTitle:`Добавить контакт`,delete:`Удалить`,deleteTitle:`Удалить {name}?`,deleteWarning:`Вместе с ним удаляются его каналы, и он больше не сможет связаться с вашим ассистентом.`,merge:`Объединить`,mergeDonorChannels:`Переходят от {name}`,mergeSurvivorChannels:`Уже у {name}`,mergeTitle:`Объединить {donor} с {survivor}?`,mergeWarning:`Эти каналы перейдут к {survivor}, а запись {donor} будет удалена.`,nameLabel:`Имя`,namePlaceholder:`Имя`,noChannels:`У этого контакта нет каналов.`,notesLabel:`Заметки`,notesPlaceholder:`Добавить заметку`,save:`Сохранить`,saving:`Сохранение…`,updateTitle:`Обновить: {name}`},M={archive:`В архив`,copyConversation:`Скопировать весь диалог`,copyConversationId:`Скопировать ID диалога`,delete:`Удалить`,forkConversation:`Ответвить диалог`,inspect:`Разобрать диалог`,markRead:`Отметить как прочитанный`,markUnread:`Отметить как непрочитанный`,moveToGroup:`Перенести в группу`,newGroup:`Новая группа…`,openInNewWindow:`Открыть в новом окне`,pin:`Закрепить`,refresh:`Обновить`,removeFromGroup:`Убрать из группы`,rename:`Переименовать`,shareFeedback:`Отправить отзыв`,triggerAriaLabel:`Действия с диалогом`,unarchive:`Вернуть из архива`,unpin:`Открепить`},N={closeAriaLabel:`Закрыть`,title:`Действия с диалогом`},P={ariaLabel:`Ресурсы диалога, {count, plural, one {# элемент} few {# элемента} many {# элементов} other {# элемента}}`,ariaLabelUnavailable:`Ресурсы диалога, не удалось загрузить`,ariaLabelUnseen:`Ресурсы диалога, {count, plural, one {# элемент} few {# элемента} many {# элементов} other {# элемента}} (есть невидимые изменения)`,label:`{count, plural, one {# ресурс} few {# ресурса} many {# ресурсов} other {# ресурса}}`,labelUnavailable:`Не удалось загрузить ресурсы`},F={caption:`Подсказки:`},I={copied:`Скопировано`,copyFailed:`Не удалось скопировать в буфер обмена.`},L={conversationCopied:`ID диалога скопирован в буфер обмена.`,conversationFailed:`Не удалось скопировать ID диалога.`,groupCopied:`ID группы скопирован в буфер обмена.`,groupFailed:`Не удалось скопировать ID группы.`},R={acknowledgment:`Я понимаю, что связанные ресурсы и воспоминания могут сохраниться`,cancel:`Отмена`,confirm:`Удалить`,message:`Удалить «{title}»? Диалог и его сообщения будут удалены навсегда. Связанные ресурсы и воспоминания могут сохраниться. Это действие нельзя отменить.`,title:`Удалить диалог`},z={label:`Это сообщение было удалено`},B={pdfDownloadFailed:`Не удалось скачать PDF`},V={unavailable:`Не удалось открыть беседу документа. Попробуйте ещё раз.`,updateRequired:`Обновите ассистента, чтобы начать связанную беседу.`,prepareFailed:`Не удалось подготовить беседу документа. Ваши изменения сохранены.`,feedbackPrompt:`Пожалуйста, рассмотрите и обработайте мои комментарии к «{title}».`,missing:`Беседа этого документа недоступна. Вы можете продолжить редактирование или начать новую связанную беседу.`,start:`Начать связанную беседу`,retry:`Повторить`,back:`Назад`},H={exportFailed:`Не удалось экспортировать PDF`},U={cancel:`Отмена`,close:`Закрыть`,defaultError:`Не удалось экспортировать данные инспектора.`,descriptionDone:`Скачивание должно было начаться само.`,descriptionError:`Что-то пошло не так при сборе экспорта.`,descriptionRunning:`Собираем тела запросов провайдера и нормализованный контекст. В длинных диалогах это может занять время.`,done:`Готово`,progressAriaLabel:`Прогресс экспорта`,retry:`Повторить`,statusDone:`Готово`,statusPackaging:`Упаковываем ZIP…`,statusProgress:`{completed} из {total} вызовов`,titleDone:`Экспорт готов`,titleError:`Экспорт не удался`,titleRunning:`Экспортируем данные инспектора`},W={failed:`Не удалось скачать файл`},G={archiveAll:`В архив все…`,copyGroupId:`Скопировать ID группы`,deleteGroup:`Удалить группу`,deleteGroupWithConversations:`Удалить группу…`,groupByChannel:`Группировать по каналу`,markAllRead:`Отметить все как прочитанные`,moveSectionDown:`Секцию вниз`,moveSectionUp:`Секцию вверх`,rename:`Переименовать`,ungroup:`Разгруппировать`},K={title:`Действия: {name}`},q={accessDenied:`Инспектор доступен, когда включён флаг Internal Thread Actions.`,allMessages:`Все сообщения`,back:`Назад`,backToConversationAria:`Назад к диалогу`,chooseCall:`Выбор вызова на панели, чтобы разобрать его контекст.`,conversationScopeSubtitle:`Показаны все вызовы LLM, записанные для этого диалога.`,detailLoadFailed:`Не удалось загрузить нормализованный контекст этого вызова.`,emptyBodyConversation:`Либо ни одно сообщение диалога не создал вызов LLM, либо журналы запросов обрезала политика хранения.`,emptyBodyMessage:`Либо это сообщение создал не вызов LLM, либо его журналы запросов обрезала политика хранения.`,emptyTitleConversation:`Для этого диалога нет записанных вызовов LLM.`,emptyTitleMessage:`Для этого сообщения нет записанных вызовов LLM.`,enableLogging:`Включить журнал`,enableLoggingFailed:`Не удалось включить журнал`,enableLoggingFailedWithMessage:`Не удалось включить журнал ({message})`,enabling:`Включаем…`,exportFailed:`Не удалось экспортировать данные инспектора`,exportZip:`Экспорт ZIP`,exportZipAria:`Экспортировать данные инспектора как ZIP`,exporting:`Экспорт…`,filterToMessage:`Фильтр по сообщению:`,llmCallCount:`{count, plural, one {1 вызов LLM} few {# вызова LLM} many {# вызовов LLM} other {# вызова LLM}}`,loadContextFailed:`Не удалось загрузить контекст LLM.`,loadFailedTitle:`Не удалось загрузить`,loading:`Загрузка…`,loggingDisabledBody:`Тела запросов и ответов не записываются, поэтому смотреть нечего. Включение журнала фиксирует следующие вызовы LLM.`,loggingDisabledTitle:`Журнал запросов LLM выключен`,loggingEnabledToast:`Журнал запросов LLM включён`,messageOptionDeepLink:`Сообщение {messageId}`,messageOptionNoText:`{index}. (без текста)`,messageOptionWithPreview:`{index}. {preview}`,retry:`Повторить`,scopedToOneMessage:`Ограничено одним сообщением · `,scopedToTurn:`Ограничено ходом {index} из {count} · `,title:`Инспектор контекста LLM`},J={android:`Голосовой режим уже активен в приложении для Android.`,ios:`Голосовой режим уже активен в приложении для iOS.`,macos:`Голосовой режим уже активен в приложении для Mac.`,unknown:`Голосовой режим уже активен в другом месте.`,web:`Голосовой режим уже активен в другой вкладке браузера.`,windows:`Голосовой режим уже активен в приложении для Windows.`},Y={connecting:`Подключение…`,ending:`Завершение…`,listening:`Слушаю…`,muted:`Без звука`,reconnecting:`Переподключение…`,speaking:`Говорит…`,thinking:`Думает…`},X={chipCode:`Код`,chipProvider:`Провайдер`,chipRequestId:`Request ID`,chipStatus:`Статус`,chipType:`Тип`,chipUpstreamCode:`Код выше по цепочке`,chipUpstreamParam:`Параметр выше по цепочке`,chipUpstreamType:`Тип выше по цепочке`,noResponse:`Провайдер отклонил этот вызов и не вернул ответ.`,title:`Вызов не удался`},Z={pictureInPictureUnavailable:`Картинка в картинке недоступна`},Q={unavailable:`Этот файл здесь недоступен`},$={addOlderPairButton:`+ Добавить более старую пару`,assistantReplyLabel:`[assistant]: ответ`,assistantReplyPlaceholder:`Ответ ассистента, который был до сообщения пользователя ниже.`,configTitle:`Конфиг {paneId}`,conversationalContextTitle:`Контекст диалога (общий для обеих панелей)`,customPromptPlaceholder:`Свой системный промпт маршрутизатора. Доступные подстановки:
2
+ '{ASSISTANT_NAME}, {USER_NAME}, {PAGE_INDEX}'
3
+ Пустое поле берёт встроенный шаблон. «Загрузить по умолчанию» подставляет в поле встроенный текст для правки.`,description:`Прогон маршрутизатора v4 с своими переопределениями уровня и пакета. Только чтение: строки в <code>memory_v2_injection_events</code> и <code>memory_v2_activation_logs</code> не пишутся, состояние активации не меняется. Пустое переопределение берёт живое значение конфига; <code>null</code> явно выключает уровень.`,diffLabel:`Разница`,diffValue:`{shared} общих · {unique} только у этой панели`,effectiveConfig:`Итоговый конфиг`,emaScore:`EMA {score}`,empty:`(пусто)`,emptySelectionHint:`Маршрутизатор вернул пустой выбор. Более точный запрос или ослабление переопределений.`,failedToRunSimulation:`Не удалось запустить симуляцию`,firstTurnAssistantPlaceholder:`Пустое поле: сценарий первого хода.`,inheritActive:`наследовать активный`,inheritActiveWithProfile:`наследовать активный ({profile})`,inheritPlaceholder:`наследовать`,invalidOverrideInput:`Некорректное переопределение`,justArrivedUserLabel:`Только что пришло [user]: сообщение`,lastUserPlaceholder:`например, что выпустить дальше`,legendAOnly:`только A`,legendBOnly:`только B`,legendInBoth:`в обоих`,llmProfilesOverride:`переопределение llm.profiles`,loadDefault:`Загрузить по умолчанию`,loading:`Загрузка…`,noPagesSelected:`Страницы не выбраны`,notAvailable:`Песочница маршрутизатора памяти недоступна.`,nowBlockLabel:`блок '<now>'`,nowDefaultPlaceholder:`Заполнено живым NOW.md. Прави, чтобы проверить другие состояния.`,nowLoadingPlaceholder:`Загрузка текущего NOW.md…`,nullValue:`null`,overrideMustBePositiveInteger:`{fieldName} должен быть положительным целым или 'null' (получено "{value}")`,overrideSuffix:` (переопределение)`,pageCount:`{count, plural, one {# страница} few {# страницы} many {# страниц} other {# страницы}}`,pairLabel:`Пара {index} из {total}`,pairMostRecentSuffix:` · самая свежая`,paneTitle:`Панель {paneId}`,promptModeBundled:`встроенный`,promptModeCustom:`свой`,rawApiExchange:`Сырой обмен API`,recentPairsLabel:`Недавние пары (ассистент, пользователь) · сначала старые`,reloadNowButton:`Перезагрузить живой NOW.md`,removeButton:`Удалить`,requestLabel:`Запрос (панель {paneId})`,reset:`Сбросить`,responseLabel:`Ответ (панель {paneId})`,routerFailure:`Сбой маршрутизатора: {reason}`,runBoth:`Запустить оба`,runPane:`Запустить {paneId}`,running:`Запуск…`,selectedLabel:`Выбрано`,selectedValue:`{count} (живой max_page_ids: {maxPageIds})`,summary:`Сводка`,summaryUserMessageLabel:`Сообщение пользователя`,systemPrompt:`Системный промпт`,systemPromptConfigLabel:`системный промпт`,tier1Label:`уровень 1`,tier2Label:`уровень 2`,tier3Label:`уровень 3 · b{batch}`,title:`Песочница маршрутизатора памяти`,totalCandidatePagesLabel:`Всего страниц-кандидатов`,userMessageLabel:`[user]: сообщение`,userMessagePlaceholder:`Сообщение пользователя.`},ee={afterMergeLabel:`После слияния`,breakdownCAssistantRerank:`c_assistant · rerank Δ_a`,breakdownCAssistantSim:`c_assistant · sim_a`,breakdownCNowSim:`c_now · sim_n`,breakdownCUserRerank:`c_user · rerank Δ_u`,breakdownCUserSim:`c_user · sim_u`,breakdownOwnActivation:`A_o (свой)`,breakdownPriorActivation:`prior · d`,breakdownRerankScaledRaw:`+{scaled} (сырой {raw})`,breakdownScaledRaw:`{scaled} (сырой {raw})`,breakdownSource:`источник`,breakdownSpreadDelta:`spread Δ`,breakdownStatus:`статус`,candidatePoolChosenChip:`выбрана`,candidatePoolNoneBody:`Пул кандидатов для этого хода не записан.`,candidatePoolPassthroughSubtitle:`{poolSize, plural, one {# кандидат передан напрямую} few {# кандидата передано напрямую} many {# кандидатов передано напрямую} other {# кандидата передано напрямую}} без оценки селектора · селектор отключён`,candidatePoolSelectorNotRunBody:`Селектор не запускался в этом ходе.`,candidatePoolSubtitle:`{poolSize, plural, one {# кандидат показан} few {# кандидата показано} many {# кандидатов показано} other {# кандидата показано}} селектору · {selectedCount, plural, one {выбрана # страница} few {выбраны # страницы} many {выбрано # страниц} other {выбрано # страницы}}`,candidatePoolTitle:`Пул кандидатов`,candidateScores:`sem {semantic} · rec {recency}`,carriedPill:`Перенесено: {count}`,conceptActivationsSubtitle:"Сортировка по итоговой активации. Записи навыков идут с префиксом `skills/`; разверни строку, чтобы увидеть разбивку активации.",conceptActivationsTitle:`Активации концептов ({count})`,configCAssistant:`c_assistant`,configCNow:`c_now`,configCUser:`c_user`,configDDecay:`d (затухание)`,configEpsilon:`epsilon`,configHops:`hops`,configKSharpening:`k (обострение)`,configSubtitle:`Веса активации и пороги отбора.`,configTitle:`Конфиг`,configTopK:`top_k`,copyAriaLabel:`Скопировать в буфер обмена`,copyAriaLabelCopied:`Скопировано`,copyButtonCopied:`Скопировано`,copyButtonCopy:`Копировать`,copyErrorMessage:`Не удалось скопировать в буфер обмена.`,copyTitle:`Копировать`,copyTitleCopied:`Скопировано!`,corePill:`Ядро: {count}`,degradationTitle:`Деградация`,fallbackSourcesLabel:`Резервные источники`,hybridSearchLabel:`Гибридный поиск`,inContextPill:`В контексте: {count}`,injectedMemoryContextTitle:`Вставленный контекст памяти`,injectedPill:`Вставлено: {count}`,injectedTokensLabel:`Вставленные токены`,latencyMs:`{ms} мс`,loading:`Загрузка…`,loggedMemorySelectionSubtitle:`Отрисовано из выбора v3, в этот ход не вставлено.`,loggedMemorySelectionTitle:`Записанный выбор памяти`,memoryDisabledDefaultReason:`Для этого хода вспоминание памяти было выключено.`,memoryDisabledTitle:`Память выключена`,missingValue:`-`,modelLabel:`Модель`,no:`Нет`,noDataBody:`Сведения о вспоминании памяти для этого сообщения недоступны.`,noDataTitle:`Нет данных памяти`,noEntriesRanked:`Нет ранжированных записей.`,noPagesSelected:`Страницы не выбраны.`,notInjectedPill:`Не вставлено: {count}`,pageContentLabel:`содержимое страницы`,pageNotFound:`Страница не найдена на диске. Slug может ссылаться на устаревшую запись Qdrant.`,pillMemoryV2:`Memory V2`,pillMemoryV3:`Memory V3`,pillRecallV1:`Recall (v1)`,providerLabel:`Провайдер`,queryContextSubtitle:`Текст, который встроили как поисковый вектор для семантического поиска.`,queryContextTitle:`Контекст запроса`,reasonLabel:`Причина`,retrievalFunnelSubtitle:`Как воспоминания отфильтровали от семантического поиска до вставки.`,retrievalFunnelTitle:`Воронка поиска`,searchDetailsTitle:`Подробности поиска`,selectedLabel:`Выбрано`,selectedPagesSubtitle:`Страницы, которые выбрал v3, с меткой полосы, откуда они пришли, и совпавшего раздела (если полоса поиска его нашла).`,selectedPagesTitle:`Выбранные страницы ({count})`,selectedPill:`Выбрано: {count}`,semanticHitsLabel:`Семантические совпадения`,semanticUnavailableLabel:`Семантика недоступна`,sparseDenseOnly:`Только плотные`,sparseUsed:`Использованы`,sparseVectorsLabel:`Разреженные векторы`,statusActive:`Активно`,statusDegraded:`Деградировано`,statusLabel:`Статус`,statusSubtitle:`Провайдер, модель и задержка этого вспоминания.`,statusTitle:`Статус`,tier1Label:`Уровень 1`,tier2Label:`Уровень 2`,topCandidatesSubtitle:`{count, plural, one {# кандидат, ранжированный по итоговому баллу.} few {# кандидата, ранжированных по итоговому баллу.} many {# кандидатов, ранжированных по итоговому баллу.} other {# кандидата, ранжированных по итоговому баллу.}}`,topCandidatesTitle:`Лучшие кандидаты`,totalLatencyLabel:`Общая задержка`,turnLevelRecallBody:`Вспоминание памяти запускается один раз за ход. Эти данные относятся ко всем вызовам LLM этого сообщения.`,turnLevelRecallTitle:`Вспоминание на уровне хода`,turnPill:`Ход {turn}`,unavailable:`Недоступно`,unknown:`Неизвестно`,v2StatusInContext:`В контексте`,v2StatusInjected:`Вставлено`,v2StatusNotInjected:`Не вставлено`,v2StatusPageMissing:`Страницы нет`,v2TurnBody:`Проход памяти с распространением активации: ранжирует концепты и навыки для этого хода.`,v2TurnTitle:`Память - ход {turn} ({mode})`,v3LiveInjectionBody:`v3 в этом ходе живой источник памяти: блок ниже вставлен в контекст (v2 подавлен).`,v3LiveInjectionTitle:`Memory V3 - живая вставка`,v3LoggedSelectionBody:`v3 не живой источник памяти этого ассистента: эти выборы записали, но в этот ход не вставили; память хода пришла из v2.`,v3LoggedSelectionTitle:`Memory V3 - записанный выбор (не вставлено)`,v3SourceCarried:`перенесено`,v3SourceCore:`ядро`,v3SourceL1L2:`L1+L2`,v3SourceNeedle:`needle`,yes:`Да`},te={bookmark:`Закладка`,copied:`Скопировано`,copy:`Копировать`,copyFailed:`Не удалось скопировать сообщение.`,forkFromHere:`Ответвить отсюда`,inspect:`Просмотр`,loading:`Чтение…`,openInSlack:`Открыть в Slack`,playFailed:`Не удалось прочитать это сообщение.`,readAloud:`Прочитать вслух`,removeBookmark:`Убрать закладку`,retry:`Повторить`,stop:`Остановить`,summarizeUpToHere:`Суммировать досюда`},ne={bookmark:`Закладка`,copied:`Скопировано`,copy:`Копировать`,copyFailed:`Не удалось скопировать сообщение.`,forkFromHere:`Ответвить отсюда`,inspect:`Просмотр`,openInSlack:`Открыть в Slack`,readAloud:`Прочитать вслух`,removeBookmark:`Убрать закладку`,stop:`Остановить`,summarizeUpToHere:`Суммировать досюда`,title:`Действия с сообщением`},re={callOfTotal:`Вызов {number} из {total}`,llmCallCount:`{count, plural, one {1 вызов LLM} few {# вызова LLM} many {# вызовов LLM} other {# вызова LLM}}`,selectCallAria:`Выбор вызова LLM для разбора`,sheetTitle:`Выбор вызова`},ie={cacheTokensLabel:`Токены кэша`,conversationSubtitle:`Накопительные итоги по всем тарифицированным вызовам LLM на сейчас.`,conversationTitle:`Диалог`,createdLabel:`Создано`,durationLabel:`Длительность`,estimatedCostLabel:`Оценочная стоимость`,failedStatus:`Ошибка`,firstTokenKindLabel:`Тип первого токена`,firstTokenLatencySubtitle:`Куда ушло время до первого токена этого хода, по замерам ассистента.`,firstTokenLatencyTitle:`Задержка первого токена`,inputTokensLabel:`Входные токены`,latencyMs:`{ms} мс`,loopExitReasonLabel:`Причина выхода из цикла`,modelLabel:`Модель`,normalizedMetadataSubtitle:`Провайдер, модель, метки времени и счётчики использования.`,normalizedMetadataTitle:`Нормализованные метаданные`,normalizedSummaryUnavailableSubtitle:`У этого вызова всё ещё есть сырые тела запроса и ответа.`,normalizedSummaryUnavailableTitle:`Нормализованная сводка недоступна`,otherLabel:`Другое`,outputTokensLabel:`Выходные токены`,providerLabel:`Провайдер`,requestMessagesLabel:`Сообщения запроса`,statusLabel:`Статус`,stopReasonLabel:`Причина остановки`,toolCallsLabel:`Вызовы инструментов`,toolsAvailableLabel:`Доступные инструменты`,totalCostSoFarLabel:`Стоимость всего на сейчас`,totalToFirstTokenLabel:`Всего до первого токена`,usageSubtitle:`Счётчики токенов и вызовов, нормализованные маршрутом ассистента.`,usageTitle:`Использование`},ae={loadingPdf:`Загрузка PDF`},oe={pageCapNotice:`{count, plural, one {Показана первая страница} few {Показаны первые # страницы} many {Показаны первые # страниц} other {Показаны первые # страницы}}`},se={colors:{green:`Зелёный`,orange:`Оранжевый`,pink:`Розовый`,purple:`Фиолетовый`,teal:`Бирюзовый`,yellow:`Жёлтый`},noColor:`Без цвета`},ce={earnCredits:`Заработать бесплатные кредиты`},le={addCreditsAriaLabel:`Добавить кредиты`,exhausted:`Добавление кредитов для продолжения.`,extraCredits:`Используются дополнительные кредиты`,pctUsed:`использовано {pct}%`,settingsAriaLabel:`Настройки использования и оплаты`,title:`Использование`},ue={cannotPreview:`Не удаётся показать этот файл`},de={markdown:`Показаны первые 512 КБ`,text:`Показаны первые 2 МБ`},fe={noPreviewForType:`Нет предпросмотра для этого типа файла`},pe={availableTools:`Доступные инструменты`,bannerNoSections:`У этого вызова ещё нет нормализованных секций промпта.`,bannerSectionsCount:`{count, plural, one {# нормализованная секция запроса в порядке, который вернул маршрут ассистента.} few {# нормализованные секции запроса в порядке, который вернул маршрут ассистента.} many {# нормализованных секций запроса в порядке, который вернул маршрут ассистента.} other {# нормализованные секции запроса в порядке, который вернул маршрут ассистента.}}`,collapseAll:`Свернуть всё`,copyAriaLabel:`Скопировать {title}`,emptyBody:`У этого вызова нет нормализованных секций промпта. Вкладка Raw показывает полное тело запроса.`,emptyTitle:`Нет нормализованных секций промпта`,expandAll:`Развернуть всё`,formatJavaScript:`JavaScript`,formatJson:`JSON`,formatMarkdown:`Markdown`,formatTypeScript:`TypeScript`,noContentAvailable:`Содержимое недоступно.`,promptSectionsTitle:`Секции промпта`},me={copyRequestPayloadAriaLabel:`Скопировать тело запроса`,copyResponsePayloadAriaLabel:`Скопировать тело ответа`,downloadFailedToast:`Не удалось скачать тело.`,downloadRequestPayloadAriaLabel:`Скачать тело запроса`,downloadResponsePayloadAriaLabel:`Скачать тело ответа`,loadErrorTitle:`Не удалось загрузить сырые тела`,loading:`Загрузка сырых тел…`,payloadRequestFailed:`Запрос тела не удался. Повторите попытку.`,request:`Запрос`,requestPayload:`Тело запроса`,response:`Ответ`,responsePayload:`Тело ответа`,retry:`Повторить`},he={revealFailed:`Не удалось показать {name}.`},ge={argumentsPreview:`Предпросмотр аргументов`,copySectionAria:`Скопировать содержимое секции`,kindAssistantText:`Текст ассистента`,kindFunctionResponse:`Ответ функции`,kindReasoning:`Рассуждение`,kindToolCall:`Вызов инструмента`,kindToolResult:`Результат инструмента`,modeResultOnly:`Ответ только с результатом`,modeTextOnly:`Ответ только текстом`,modeToolCalling:`Ответ с вызовом инструмента`,noArgumentsPreview:`Для этого вызова инструмента нет предпросмотра структурированных аргументов.`,noAssistantText:`Для этой секции не записали текст ассистента.`,noSectionsFallback:`У этого ответа нет отрисованных секций. Сырые тела остаются на вкладке Raw, а нормализованные метаданные ответа покажутся, если они есть.`,rawTabHint:`Полное тело провайдера: вкладка Raw для JSON запроса и ответа.`,responseMetadata:`Метаданные ответа`,sectionTitle:`Секция {number}`,sectionUnavailable:`Отрисовка секции недоступна`,stopReasonChip:`Причина остановки: {reason}`,toolChip:`Инструмент: {name}`},_e={message:`Не удалось загрузить диалоги.`,retry:`Попробовать снова`},ve={actionsAria:`Действия навыка`,moreTooltip:`Ещё`},ye={callLink:`Вызов {number}`,emptyBody:`На этой вкладке перечислены все вызовы инструмента <code>skill_load</code> в диалоге. В записанных вызовах LLM их не нашли.`,emptyTitle:`В этом диалоге навыки не загружали`,loadCount:`{count, plural, one {1 загрузка} few {# загрузки} many {# загрузок} other {# загрузки}}`,summaryStats:`{uniqueCount, plural, one {# уникальный навык} few {# уникальных навыка} many {# уникальных навыков} other {# уникальных навыка}} · {totalLoads, plural, one {# вызов загрузки} few {# вызова загрузки} many {# вызовов загрузки} other {# вызова загрузки}}`,summaryTitle:`Навыки, загруженные в этом диалоге`},be={defaultValue:`по умолчанию: {value}`,inputSchema:`Схема ввода`,intro:`{count, plural, one {# инструмент отправили с этим запросом. Разверни инструмент, чтобы увидеть определение и схему ввода.} few {# инструмента отправили с этим запросом. Разверни инструмент, чтобы увидеть определение и схему ввода.} many {# инструментов отправили с этим запросом. Разверни инструмент, чтобы увидеть определение и схему ввода.} other {# инструмента отправили с этим запросом. Разверни инструмент, чтобы увидеть определение и схему ввода.}}`,noInputSchema:`Нет схемы ввода: этот инструмент не принимает структурированный ввод.`,required:`обязательно`,settings:`Настройки`},xe={fileUnavailable:`Файл недоступен для скачивания`,fileUnavailableHostTimeout:`Файл недоступен для скачивания (возможно, истекло время на одобрение файла на хосте)`},Se={authFailed:`Не удалось аутентифицировать пользователя.`},Ce={assistantBusy:`Ассистент занят. Повтор, когда закончит отвечать.`,retryFailed:`Не удалось повторить ответ`,summarizeFailed:`Не удалось кратко пересказать диалог`},we={commandFailed:`Не удалось выполнить эту команду. Повторите попытку.`,doctorUnavailable:`Doctor недоступен у этого ассистента.`},Te={nativeSttNoTranscript:`Нативная диктовка {clientName} не вернула расшифровку. Проверьте нативное распознавание речи в системных настройках и повторите попытку.`},Ee={ariaLabel:`Голосовой сеанс`,closeCamera:`Закрыть камеру`,endSessionAria:`Завершить голосовой сеанс`,endSessionTooltip:`Завершить сеанс`,flashAuto:`Автоматическая вспышка`,flashAutoBadge:`А`,flashOff:`Вспышка выключена`,flashOn:`Вспышка включена`,flipCamera:`Сменить камеру`,lightOff:`Фонарик выключен`,lightOn:`Фонарик включён`,minimizeAria:`Свернуть голосовую комнату`,minimizeTooltip:`Свернуть (сеанс продолжится)`,muteAssistant:`Отключить звук ассистента`,muteMicrophone:`Отключить микрофон`,mutedState:`Без звука. {state}`,showCamera:`Показать камеру`,stopLive:`Остановить прямой эфир`,takePhoto:`Сделать фото`,unmuteAssistant:`Включить звук ассистента`,unmuteMicrophone:`Включить микрофон`},De={noResponse:`Решил не отвечать`,reactionAddedSelf:`Отреагировал(а) {emoji}`,reactionRemovedSelf:`Убрал(а) реакцию {emoji}`,reactionAdded:`{name} отреагировал(а) {emoji}`,reactionRemoved:`{name} убрал(а) свою реакцию {emoji}`,reactionSomeone:`Кто-то`},Oe={changes:`Изменения`,command:`Команда`,denied:`Этот вызов инструмента не был одобрен, поэтому он не выполнился.`,emptyOutput:`Инструмент не вернул никаких данных.`,input:`Входные данные`,requestedChanges:`Запрошенные изменения`},ke={collapse:`Скрыть показатели фильтра кадров`,expand:`Показать показатели фильтра кадров`},Ae={commandFinished:`Фоновая команда завершена`,incomingEvent:`Входящее событие`,memoryReview:`Просмотр памяти`,ranOnItsOwn:`Запустился сам`,resumed:`Возобновлено после прерывания`,scheduledRun:`Запуск по расписанию`,watchReview:`Разбор сессии наблюдения`,workflowFinished:`Рабочий процесс завершён`},je={close:`Закрыть`,details:`Подробности`,result:`Результат`,runStatus:`Статус запуска`,title:`Разговор возобновлён`,workflow:`Рабочий процесс`},Me={doneDiscarded:`Не сохранено`,doneNotRight:`Отмечено как неверное`,doneSaved:`Навык сохранён`,recommended:`Рекомендуем`},Ne={restore:`Восстановить доступ`,restoring:`Восстановление...`,restored:`Восстановлено. Модели под управлением Vellum снова работают.`,failedNoAssistant:`Выберите ассистента и повторите попытку.`,failedCannotActHere:`Это приложение не может восстановить учётные данные этого ассистента. Откройте ассистента на компьютере, где он запущен.`,failedReplacementRejected:`Vellum отклонил новые учётные данные. Войдите на платформу Vellum и повторите попытку.`,failedUnconfirmed:`Новые учётные данные сохранены, но Vellum не смог их подтвердить. Возможно, они заработают через некоторое время.`,failedGeneric:`Не удалось восстановить доступ. Повторите попытку через минуту.`},Pe={tooltip:`Говорите вслух в голосовом режиме`},Fe={viewDetails:`Подробности`},Ie={expand:`Развернуть`,collapse:`Свернуть`},Le={count:`{count, plural, one {# кадр камеры} few {# кадра камеры} many {# кадров камеры} other {# кадра камеры}}`,timeRange:`Сохранено с {first} по {last}`,savedTime:`Сохранено: {time}`,pendingAria:`Кадр камеры, изображение ещё загружается. {time}`,timeUnavailable:`Время недоступно`},Re={documentChat:e,acpConnectAffordance:t,acpRunChatView:n,activityStepsPanel:r,addToChatSheet:i,allowOptionsMenu:a,appAssetActions:o,assistantDesktop:s,assistantSideMenu:c,assistantSleepStage:l,assistantSwitcher:u,attachmentPreviewModal:d,attachmentTile:f,cacheBreakpointMapCard:p,cacheDiffCard:m,cacheHealthCard:h,callRail:g,cameraDeepLink:_,cameraError:v,cameraShutterHint:y,cameraStatusPill:b,cameraViewOptions:x,channelReferenceChip:S,channelThreadControl:C,channelTranscriptPanel:w,chatComposer:T,chatInfoPanel:E,compactionTab:D,composerSettingsMenu:O,contactActions:k,contactPromptCard:A,contactRecordCard:j,conversationActions:M,conversationActionsSheet:N,conversationAssets:P,conversationStarterDock:F,copyButton:I,copyIdToClipboard:L,deleteConversationConfirmDialog:R,deletedMessageRow:z,documentAssetActions:B,documentConversation:V,documentViewerPage:H,exportProgressModal:U,fileDownload:W,groupActions:G,groupActionsSheet:K,inspectPage:q,liveVoiceBusy:J,liveVoiceStatus:Y,llmCallErrorCard:X,localFileEmbed:Z,localFileLink:Q,memoryRouterPlaygroundPage:$,memoryTab:ee,messageHoverActions:te,messageLongPressActions:ne,mobileCallSelector:re,overviewTab:ie,pdfPageSkeleton:ae,pdfPreview:oe,pinnedAppColorSwatches:se,preferencesMenu:ce,preferencesUsagePanel:le,previewError:ue,previewTruncationNotice:de,previewUnsupported:fe,promptTab:pe,rawTab:me,redactedCredentialChip:he,responseTab:ge,sidebarConversationError:_e,skillDetailPanel:ve,skillsTab:ye,toolDefinitionsContent:be,transcriptMessageBody:xe,useConversationLoader:Se,useConversationSecondaryActions:Ce,useSendMessage:we,voiceErrors:Te,voiceRoom:Ee,transcript:De,toolDetailPanel:Oe,frameGateHud:ke,wakeCard:Ae,wakeDetailPanel:je,watchRetroSurface:Me,restoreManagedCredentialButton:Ne,liveVoiceButton:Pe,cardSurface:Fe,sidebarExpandRow:Ie,cameraFrameGrid:Le};export{t as acpConnectAffordance,n as acpRunChatView,r as activityStepsPanel,i as addToChatSheet,a as allowOptionsMenu,o as appAssetActions,s as assistantDesktop,c as assistantSideMenu,l as assistantSleepStage,u as assistantSwitcher,d as attachmentPreviewModal,f as attachmentTile,p as cacheBreakpointMapCard,m as cacheDiffCard,h as cacheHealthCard,g as callRail,_ as cameraDeepLink,v as cameraError,Le as cameraFrameGrid,y as cameraShutterHint,b as cameraStatusPill,x as cameraViewOptions,Fe as cardSurface,S as channelReferenceChip,C as channelThreadControl,w as channelTranscriptPanel,T as chatComposer,E as chatInfoPanel,D as compactionTab,O as composerSettingsMenu,k as contactActions,A as contactPromptCard,j as contactRecordCard,M as conversationActions,N as conversationActionsSheet,P as conversationAssets,F as conversationStarterDock,I as copyButton,L as copyIdToClipboard,Re as default,R as deleteConversationConfirmDialog,z as deletedMessageRow,B as documentAssetActions,e as documentChat,V as documentConversation,H as documentViewerPage,U as exportProgressModal,W as fileDownload,ke as frameGateHud,G as groupActions,K as groupActionsSheet,q as inspectPage,J as liveVoiceBusy,Pe as liveVoiceButton,Y as liveVoiceStatus,X as llmCallErrorCard,Z as localFileEmbed,Q as localFileLink,$ as memoryRouterPlaygroundPage,ee as memoryTab,te as messageHoverActions,ne as messageLongPressActions,re as mobileCallSelector,ie as overviewTab,ae as pdfPageSkeleton,oe as pdfPreview,se as pinnedAppColorSwatches,ce as preferencesMenu,le as preferencesUsagePanel,ue as previewError,de as previewTruncationNotice,fe as previewUnsupported,pe as promptTab,me as rawTab,he as redactedCredentialChip,ge as responseTab,Ne as restoreManagedCredentialButton,_e as sidebarConversationError,Ie as sidebarExpandRow,ve as skillDetailPanel,ye as skillsTab,be as toolDefinitionsContent,Oe as toolDetailPanel,De as transcript,xe as transcriptMessageBody,Se as useConversationLoader,Ce as useConversationSecondaryActions,we as useSendMessage,Te as voiceErrors,Ee as voiceRoom,Ae as wakeCard,je as wakeDetailPanel,Me as watchRetroSurface};