@vellumai/web 0.12.4 → 0.12.5-dev.202609251017.e467a6c

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 (463) hide show
  1. package/dist/assets/{a2a-invite-BSzXL6i3.js → a2a-invite-CMMHBiy-.js} +1 -1
  2. package/dist/assets/{about-page-Ne3KY7p6.js → about-page-BB7-HGJd.js} +1 -1
  3. package/dist/assets/{account-page-DR4ueI-s.js → account-page-B3AhNrvG.js} +1 -1
  4. package/dist/assets/{account-shell-BCvjHT7j.js → account-shell-CH63d0FT.js} +1 -1
  5. package/dist/assets/acp-run-detail-panel-C4wpvX9E.js +3 -0
  6. package/dist/assets/activation-list-route-CeDp6f5H.js +1 -0
  7. package/dist/assets/{activity-redirect-page-BOS14fri.js → activity-redirect-page-DF57BDED.js} +1 -1
  8. package/dist/assets/activity-steps-panel-BksJ52Tr.js +1 -0
  9. package/dist/assets/{add-credits-modal-O1N2pbak.js → add-credits-modal-D7q5Ffk8.js} +1 -1
  10. package/dist/assets/add-credits-modal-DqSLgand.js +1 -0
  11. package/dist/assets/ai-page-DiSmAbhk.js +1 -0
  12. package/dist/assets/all-chats-page-route-BmBKd57L.js +1 -0
  13. package/dist/assets/android-billing-handoff-iZa2BMO_.js +1 -0
  14. package/dist/assets/animated-stat-square-C7OzP_a-.js +1 -0
  15. package/dist/assets/{api-key-screen-BD62ySmK.js → api-key-screen-DXUxlcW_.js} +1 -1
  16. package/dist/assets/app--CZi-eoZ.js +399 -0
  17. package/dist/assets/app-DFa5jRlV.css +2 -0
  18. package/dist/assets/{app-info-YYU2hCWc.js → app-info-BVPfn1o-.js} +1 -1
  19. package/dist/assets/archive-redirect-page-cT5j1h2R.js +1 -0
  20. package/dist/assets/assistant-handle-modal-DU_Bi5lj.js +1 -0
  21. package/dist/assets/assistant-inbox-DPTo53YN.js +1 -0
  22. package/dist/assets/assistant-inbox-Di7EBVwM.js +1 -0
  23. package/dist/assets/assistant-inbox-DlwqAvim.js +1 -0
  24. package/dist/assets/assistant-inbox-page-route-Dw4GCqM1.js +8 -0
  25. package/dist/assets/assistant-inbox-qd_s59_T.js +1 -0
  26. package/dist/assets/{assistant-inbox-upgrade-body-BC-REEBi.js → assistant-inbox-upgrade-body-CBD3c6AS.js} +1 -1
  27. package/dist/assets/{assistant-status-panel-uJMo_YOD.js → assistant-status-panel-Bs62PMa_.js} +1 -1
  28. package/dist/assets/auth-store-BEWaJpfT.js +1 -0
  29. package/dist/assets/{auth-welcome-screen-uOY9YbXG.js → auth-welcome-screen-Cf7g-gHo.js} +1 -1
  30. package/dist/assets/avatar-bundled-components-BFd94a0P.js +1 -0
  31. package/dist/assets/avatar-random-CxZqXUyu.js +2 -0
  32. package/dist/assets/{await-org-header-settled-dTqfGHq2.js → await-org-header-settled-nRYfVnwu.js} +1 -1
  33. package/dist/assets/background-task-detail-panel-CF6XbrmR.js +1 -0
  34. package/dist/assets/billing-page-CNpzPATR.js +3 -0
  35. package/dist/assets/{billing-redirect-page-DK5z_EZp.js → billing-redirect-page-Bqnd8dyK.js} +1 -1
  36. package/dist/assets/bookmarks-page-Keh2H3Nn.js +1 -0
  37. package/dist/assets/{bundle-confirm-page-Co72y9XS.js → bundle-confirm-page-BxltrwcH.js} +1 -1
  38. package/dist/assets/channel-transcript-panel-Bwft4mMS.js +1 -0
  39. package/dist/assets/{channels-CVJ5zeqt.js → channels-BGZqsCyH.js} +1 -1
  40. package/dist/assets/{channels-DhvDj55h.js → channels-CZ6bOgaK.js} +1 -1
  41. package/dist/assets/{channels-DBlx6QsN.js → channels-DTkJHg8Z.js} +1 -1
  42. package/dist/assets/{channels-RsZsrZWR.js → channels-Gl4ycvIi.js} +1 -1
  43. package/dist/assets/channels-page-route-DCcDWM0Z.js +1 -0
  44. package/dist/assets/chat-BTYwT-Iz.js +5 -0
  45. package/dist/assets/chat-CYQ7D6re.js +5 -0
  46. package/dist/assets/chat-Cap3ZeFn.js +5 -0
  47. package/dist/assets/chat-DBgqSGT1.js +5 -0
  48. package/dist/assets/chat-info-panel-B9qlEkS8.js +1 -0
  49. package/dist/assets/checkout-continuation-BvAhCXvm.js +1 -0
  50. package/dist/assets/checkout-page-CvFPqG8M.js +1 -0
  51. package/dist/assets/checkout-return-target-Di4-pUK2.js +1 -0
  52. package/dist/assets/command-palette-BCXZZBTF.js +1 -0
  53. package/dist/assets/command-palette-DVQnjo0j.js +1 -0
  54. package/dist/assets/{command-palette-window-page-DCE-g55A.js → command-palette-window-page-DJT_jivG.js} +1 -1
  55. package/dist/assets/common-BD7jAX3p.js +1 -0
  56. package/dist/assets/common-C6oFwvW0.js +1 -0
  57. package/dist/assets/common-ClKW2YC6.js +1 -0
  58. package/dist/assets/common-GD9uXbfP.js +1 -0
  59. package/dist/assets/{community-page-BJxApcxO.js → community-page-nHBkefsX.js} +1 -1
  60. package/dist/assets/{companion-accent-Cp2MmcWR.js → companion-accent-C7yt1eqa.js} +1 -1
  61. package/dist/assets/{companion-dock-zones-page-Zvhwz0Yz.js → companion-dock-zones-page-DeHzEbL5.js} +1 -1
  62. package/dist/assets/{companion-layout-cM6NtktC.js → companion-layout-BPcWtStb.js} +1 -1
  63. package/dist/assets/{companion-popover-D2taDck6.js → companion-popover-CiXhsUHZ.js} +1 -1
  64. package/dist/assets/companion-popover-page-Da3nHMcF.js +1 -0
  65. package/dist/assets/companion-surface-RWTMh6gR.js +1 -0
  66. package/dist/assets/companion-surface-page-CH4LFjA9.js +1 -0
  67. package/dist/assets/companion-tour-entry-jyMiJZCC.js +1 -0
  68. package/dist/assets/{companion-watch-frame-page-CIEEUVOP.js → companion-watch-frame-page-kV8Rrn1y.js} +1 -1
  69. package/dist/assets/{connect-page-CILP_iqJ.js → connect-page-DLcRu261.js} +1 -1
  70. package/dist/assets/{consent-controls-ole3UEoz.js → consent-controls-CH9h3kH3.js} +1 -1
  71. package/dist/assets/contacts-BTmOfEVL.js +1 -0
  72. package/dist/assets/contacts-Cxz-DyYF.js +1 -0
  73. package/dist/assets/contacts-DgC-8PHB.js +1 -0
  74. package/dist/assets/contacts-gateway-Cm56diW2.js +1 -0
  75. package/dist/assets/contacts-mijLgegD.js +1 -0
  76. package/dist/assets/contacts-page-route-_NGr_6oJ.js +1 -0
  77. package/dist/assets/{copy-button-CzMsh4gB.js → copy-button-dNWQd4Mv.js} +1 -1
  78. package/dist/assets/{credential-entry-page-CueibLp2.js → credential-entry-page-CkpYB_77.js} +1 -1
  79. package/dist/assets/credentials-page--0UkZN6l.js +1 -0
  80. package/dist/assets/csv-preview-BdRwzKAU.js +1 -0
  81. package/dist/assets/danger-zone-redirect-page-BuaT1_Qw.js +1 -0
  82. package/dist/assets/debug-page-BokSWqVH.js +4 -0
  83. package/dist/assets/deploy-dialogs-BkY6C0tR.js +1 -0
  84. package/dist/assets/deploy-dialogs-_Zy57TOa.js +1 -0
  85. package/dist/assets/desktop-preview-content-BCXkV_8I.js +2 -0
  86. package/dist/assets/{desktop-status-CG431FNc.js → desktop-status-COfQgYrK.js} +1 -1
  87. package/dist/assets/{desktop-viewer-DwehmMBT.js → desktop-viewer-DwP16UW2.js} +2 -2
  88. package/dist/assets/{detail-card-DaoCCbYV.js → detail-card-D4zKx03d.js} +1 -1
  89. package/dist/assets/{detail-panel-stop-button-CZfhwEjC.js → detail-panel-stop-button-BE40AoTZ.js} +1 -1
  90. package/dist/assets/detail-primitives-BFWcvOIj.js +1 -0
  91. package/dist/assets/developer-page-Cw8EPVEc.js +1 -0
  92. package/dist/assets/devices-redirect-page-D1L2kvRG.js +1 -0
  93. package/dist/assets/{dictation-overlay-page-DF-XpmHA.js → dictation-overlay-page-BXlKQvCD.js} +1 -1
  94. package/dist/assets/document-load-BEkIFq0U.js +1 -0
  95. package/dist/assets/{document-load-CcDODImt.js → document-load-CfYfynz3.js} +1 -1
  96. package/dist/assets/document-viewer-page-DHxU28bI.js +1 -0
  97. package/dist/assets/emails-page-BnVS4o6j.js +1 -0
  98. package/dist/assets/esm-5n5jSt3e.js +2 -0
  99. package/dist/assets/esm-B5HvNA2f.js +1 -0
  100. package/dist/assets/esm-BVAuvmyr.js +2 -0
  101. package/dist/assets/esm-CIgMNIdz.js +1 -0
  102. package/dist/assets/{esm-DwBaOLRL.js → esm-COgrn4oo.js} +2 -2
  103. package/dist/assets/esm-CvOYazPQ.js +2 -0
  104. package/dist/assets/{esm-C8UCMV_0.js → esm-DFoZ6rpj.js} +1 -1
  105. package/dist/assets/{esm-DWsMY4a8.js → esm-DPwp_tyY.js} +1 -1
  106. package/dist/assets/esm-DetZupO7.js +2 -0
  107. package/dist/assets/esm-DpDUzGbk.js +2 -0
  108. package/dist/assets/{file-diff-view-bwx_MkXN.js → file-diff-view-uNXZX_5q.js} +1 -1
  109. package/dist/assets/file-view-mode-C3psjEfg.js +3 -0
  110. package/dist/assets/general-page-qSzUCXnA.js +2 -0
  111. package/dist/assets/hatching-screen-DELFYI9c.js +1 -0
  112. package/dist/assets/home-BI-fzzA0.js +1 -0
  113. package/dist/assets/home-BZGFmZ0D.js +1 -0
  114. package/dist/assets/home-CM9kRnjx.js +1 -0
  115. package/dist/assets/home-D4Knhe9B.js +1 -0
  116. package/dist/assets/{hosting-screen-BA7wRb0n.js → hosting-screen-bqc6aMjj.js} +1 -1
  117. package/dist/assets/identity-page-route-BNKtl3k8.js +7 -0
  118. package/dist/assets/inspect-page-Cpa3np9U.js +8 -0
  119. package/dist/assets/integrations-page-HPwVt_3v.js +1 -0
  120. package/dist/assets/{intelligence-BuFYEa5r.js → intelligence-BMe5g8FT.js} +1 -1
  121. package/dist/assets/{intelligence-CRA2olQk.js → intelligence-D-kO_fqT.js} +1 -1
  122. package/dist/assets/{intelligence--e-W2Pdt.js → intelligence-DqSNtb4m.js} +1 -1
  123. package/dist/assets/{intelligence-Ctt6Qr1d.js → intelligence-TbEk4Dsd.js} +1 -1
  124. package/dist/assets/intelligence-layout-0GsEXK7p.js +1 -0
  125. package/dist/assets/intelligence-layout-slots-store-DMLutIHV.js +1 -0
  126. package/dist/assets/jszip.min-CDIVkZfG.js +2 -0
  127. package/dist/assets/keyboard-shortcuts-redirect-page-Bd7lXdXX.js +1 -0
  128. package/dist/assets/{latest-assistant-text-DFGZImdA.js → latest-assistant-text-DglgIj6y.js} +1 -1
  129. package/dist/assets/{library-detail-page-Db0s21ez.js → library-detail-page-B7pBRfoi.js} +1 -1
  130. package/dist/assets/library-page-L4W-xpt-.js +1 -0
  131. package/dist/assets/list-detail-navigation-ChFNCRwF.js +1 -0
  132. package/dist/assets/local-mode-DBz3KC1d.js +1 -0
  133. package/dist/assets/login-page-BGKAlYwF.js +1 -0
  134. package/dist/assets/logout-page-BZeFNpfr.js +1 -0
  135. package/dist/assets/{logs-layout-C0DDeC5h.js → logs-layout-BEspUUlK.js} +1 -1
  136. package/dist/assets/markdown-preview-DW1TFHKg.js +1 -0
  137. package/dist/assets/{media-preview-CVf1UuE9.js → media-preview-CqU6YsEJ.js} +1 -1
  138. package/dist/assets/memory-page-route-Z3ZXItT4.js +2 -0
  139. package/dist/assets/{memory-router-playground-page-BudLOTc4.js → memory-router-playground-page-CzpucJPF.js} +1 -1
  140. package/dist/assets/{message-files-panel-Qq9UEaxA.js → message-files-panel-EwakPRjB.js} +1 -1
  141. package/dist/assets/native-attachment-pickers-wJIRbAeJ.js +1 -0
  142. package/dist/assets/native-file-DZiM21tm.js +1 -0
  143. package/dist/assets/notifications-page-CR4fvshf.js +1 -0
  144. package/dist/assets/{oauth-complete-page-Cypawil4.js → oauth-complete-page-DxkshBx-.js} +1 -1
  145. package/dist/assets/{oauth-popup-complete-page-CWQF6Tbc.js → oauth-popup-complete-page-BAU5Za0n.js} +2 -2
  146. package/dist/assets/paired-platform-identity-DJwJC3jQ.js +1 -0
  147. package/dist/assets/{pairing-page-OjkCjTgJ.js → pairing-page-GUjtKhMu.js} +1 -1
  148. package/dist/assets/password-reset-page-oBo5k7hR.js +1 -0
  149. package/dist/assets/pdf-file-preview-C3aGfZwx.js +1 -0
  150. package/dist/assets/{peeking-eyes-B3XMFLXD.js → peeking-eyes-C3X1d6Jj.js} +1 -1
  151. package/dist/assets/permission-guide-page-BDQa9L53.js +1 -0
  152. package/dist/assets/permission-guide-page-D6FWkh5j.css +1 -0
  153. package/dist/assets/permission-setup-Bb_0U96E.js +1 -0
  154. package/dist/assets/personality-page-CcCZDENz.js +1 -0
  155. package/dist/assets/personality-page-DFFk9Pj1.js +1 -0
  156. package/dist/assets/personality-sliders-CzqyS7A4.js +1 -0
  157. package/dist/assets/plans-page-Bl8f11RI.js +1 -0
  158. package/dist/assets/{platform-loopback-page-Dr-fFIwU.js → platform-loopback-page-Bwg44Rey.js} +1 -1
  159. package/dist/assets/{plugin-detail-page-B3Rx7z27.js → plugin-detail-page-D69IH1B3.js} +1 -1
  160. package/dist/assets/{plugins-page-DN9rPLRn.js → plugins-page-CVRW2_Se.js} +1 -1
  161. package/dist/assets/plugins-surface-4C_D08UG.js +1 -0
  162. package/dist/assets/{preview-error-DB2rjYvO.js → preview-error-DxF2Tmoi.js} +1 -1
  163. package/dist/assets/privacy-page-oVABVdz3.js +1 -0
  164. package/dist/assets/{privacy-screen-grsFP0UO.js → privacy-screen-Y0AB3UYU.js} +1 -1
  165. package/dist/assets/profile-card-Dz4jh2RX.js +1 -0
  166. package/dist/assets/{provider-callback-page-g4qnXUAS.js → provider-callback-page-8Z8sN5CU.js} +1 -1
  167. package/dist/assets/{provider-key-CK86YQ0g.js → provider-key-CmM_Jfh9.js} +1 -1
  168. package/dist/assets/{provider-signup-page-Ce4IEtKF.js → provider-signup-page-DCuuyMbB.js} +1 -1
  169. package/dist/assets/{provisioning-targets-Csh2mGBG.js → provisioning-targets-CihW-82c.js} +1 -1
  170. package/dist/assets/{quick-input-page-BJ-kLGi7.js → quick-input-page-B1jsbN3h.js} +1 -1
  171. package/dist/assets/referral-modal-C2KWqPrB.js +1 -0
  172. package/dist/assets/referral-modal-DlLNHhaM.js +1 -0
  173. package/dist/assets/{rehype-katex-thSVJn2u.js → rehype-katex-DWUGzNKD.js} +3 -3
  174. package/dist/assets/{research-mock-page-bXHr3HJ1.js → research-mock-page-CH-n637O.js} +1 -1
  175. package/dist/assets/research-onboarding-route-D8XVAkoR.js +50 -0
  176. package/dist/assets/review-terms-screen-4Q7Q5PXO.js +1 -0
  177. package/dist/assets/routes-CyFL2-wp.js +1 -0
  178. package/dist/assets/schedules-4TEe3Tuj.js +1 -0
  179. package/dist/assets/schedules-page-BkYY8e4x.js +1 -0
  180. package/dist/assets/security-redirect-page-FzTFgwya.js +1 -0
  181. package/dist/assets/select-assistant-screen-CGZpmW1b.js +1 -0
  182. package/dist/assets/{self-hosted-servers-CJjUOVLQ.js → self-hosted-servers-BCp7q5Jm.js} +1 -1
  183. package/dist/assets/{service-form-controls-DwwYjgqa.js → service-form-controls-DdbS5OAS.js} +1 -1
  184. package/dist/assets/{setting-row-D7xTN4Nd.js → setting-row-BiK74hlg.js} +1 -1
  185. package/dist/assets/settings-B0hc8479.js +3 -0
  186. package/dist/assets/settings-BOMjAZEC.js +3 -0
  187. package/dist/assets/settings-C13E9nrT.js +3 -0
  188. package/dist/assets/settings-layout-ZhB2RisX.js +1 -0
  189. package/dist/assets/settings-tIlbF60d.js +3 -0
  190. package/dist/assets/share-feedback-modal-Cpmo1uuR.js +1 -0
  191. package/dist/assets/share-feedback-modal-D2mtB9LE.js +2 -0
  192. package/dist/assets/{sidebar-tree-CqElNW5F.js → sidebar-tree-CVZl8Tgn.js} +1 -1
  193. package/dist/assets/{signup-page-ZDm4OjY3.js → signup-page--rSmkruA.js} +1 -1
  194. package/dist/assets/{signup-shell-kgxV4p4a.js → signup-shell-DlfJxk7w.js} +1 -1
  195. package/dist/assets/skill-detail-page-Hn3SvTdx.js +2 -0
  196. package/dist/assets/skill-detail-panel-BP4SLqhj.js +1 -0
  197. package/dist/assets/{skill-removal-dialog-DfBhw0Lh.js → skill-removal-dialog-V-dA4mSf.js} +1 -1
  198. package/dist/assets/{skills-page-CamB2mns.js → skills-page-DRntcABj.js} +1 -1
  199. package/dist/assets/{sounds-page-Bj48pTCF.js → sounds-page-BQag2JVp.js} +1 -1
  200. package/dist/assets/{start-screen-DtUnAChR.js → start-screen-DXZfwRNY.js} +1 -1
  201. package/dist/assets/step-detail-header-C7ftV1QU.js +1 -0
  202. package/dist/assets/stt-language-picker-modal-BinBfL2G.js +1 -0
  203. package/dist/assets/subagent-detail-panel-BsXUxHJ9.js +1 -0
  204. package/dist/assets/superpowers-page-C3wK8jrZ.js +1 -0
  205. package/dist/assets/system-events-page-BhabIo6N.js +1 -0
  206. package/dist/assets/system-events-redirect-page-Cy3nFDli.js +1 -0
  207. package/dist/assets/tabular-grid-CWJbCvkG.js +4 -0
  208. package/dist/assets/teleport-gateway-client-C5sVee7e.js +1 -0
  209. package/dist/assets/{text-preview-CUqsudgl.js → text-preview-DarB6e-t.js} +1 -1
  210. package/dist/assets/{theme-stage-page-HhLVo3o6.js → theme-stage-page-Cegm2fmk.js} +1 -1
  211. package/dist/assets/{tiptap-document-editor-rY7Mbt4u.js → tiptap-document-editor-Dgqk7iz_.js} +5 -3
  212. package/dist/assets/tool-detail-panel-DxIHkPt4.js +16 -0
  213. package/dist/assets/tool-detail-panel-TzZcdTQN.js +1 -0
  214. package/dist/assets/{trait-cycle-row-C-mybyb7.js → trait-cycle-row-Dqu0P27v.js} +1 -1
  215. package/dist/assets/upgrade-cancel-page-BfLLWBrR.js +1 -0
  216. package/dist/assets/{upgrade-success-page-3efxDP6a.js → upgrade-success-page-Bq7QrpOB.js} +1 -1
  217. package/dist/assets/{usage-redirect-page-D4aGhmzR.js → usage-redirect-page-CJpHAGBB.js} +1 -1
  218. package/dist/assets/use-app-delete-xNFYxcdj.js +1 -0
  219. package/dist/assets/use-assistant-identity-details-B1Awc0ji.js +1 -0
  220. package/dist/assets/use-async-read-DcRLxtMN.js +1 -0
  221. package/dist/assets/use-checkout-dismiss-refresh-jQ3TBYKS.js +1 -0
  222. package/dist/assets/{use-edge-swipe-back-DjHkqNOJ.js → use-edge-swipe-back-Dc6KFeSJ.js} +1 -1
  223. package/dist/assets/{use-hotkey-recorder-OFYAQ-HC.js → use-hotkey-recorder-DmcwEQhK.js} +1 -1
  224. package/dist/assets/use-invite-link-dialog-BFYX67b2.js +1 -0
  225. package/dist/assets/use-plugins-list-DBn3mbVB.js +1 -0
  226. package/dist/assets/use-return-to-short-circuit-DpeEsJ7h.js +1 -0
  227. package/dist/assets/use-side-list-room-DCJYSksY.js +1 -0
  228. package/dist/assets/use-skill-actions-6xXlmgbJ.js +1 -0
  229. package/dist/assets/use-skill-detail-files-CmbXP01U.js +1 -0
  230. package/dist/assets/use-supports-credentials-settings-BTrxlFxg.js +1 -0
  231. package/dist/assets/use-transcript-message-by-id-DyxaLSdN.js +1 -0
  232. package/dist/assets/use-truncated-blob-text-D6z6oSIj.js +1 -0
  233. package/dist/assets/vendor-DLH51Vjf.js +129 -0
  234. package/dist/assets/voice-page-DBRy5mEX.js +1 -0
  235. package/dist/assets/{wake-detail-panel-CeBICW69.js → wake-detail-panel-PnXrTDs3.js} +1 -1
  236. package/dist/assets/{weather-forecast-display-ULwhP9mt.js → weather-forecast-display-7oemCHYr.js} +1 -1
  237. package/dist/assets/{web-BWLYaK7a.js → web-BlKAJber.js} +1 -1
  238. package/dist/assets/{web-oF09CLSz.js → web-BmoVVmPZ.js} +1 -1
  239. package/dist/assets/{web-BEVUSoB9.js → web-C2Y5uOI1.js} +1 -1
  240. package/dist/assets/{web-BBVXWl3M.js → web-CAi9YePi.js} +1 -1
  241. package/dist/assets/{web-BAiOHSei.js → web-D0qh5Vlp.js} +1 -1
  242. package/dist/assets/{web-BAt0F8Hi.js → web-D5UHHnMG.js} +1 -1
  243. package/dist/assets/{web-sMUe1qc9.js → web-DZvE04fg.js} +1 -1
  244. package/dist/assets/{web-Brmr3_xZ.js → web-Xy5dhNHF.js} +1 -1
  245. package/dist/assets/{web-BdTOO1Z3.js → web-vcW3se1t.js} +1 -1
  246. package/dist/assets/welcome-screen-CtU9w0--.js +1 -0
  247. package/dist/assets/workflow-detail-panel-CoJLEQuv.js +1 -0
  248. package/dist/assets/{workspace-BQkwQJkh.js → workspace-C9KC9iRh.js} +1 -1
  249. package/dist/assets/{workspace-CkPbNpj-.js → workspace-Ca5KeX1D.js} +1 -1
  250. package/dist/assets/{workspace-BO5I0IXW.js → workspace-CkvlMlZG.js} +1 -1
  251. package/dist/assets/{workspace-UoSuwY63.js → workspace-OBnbhjU7.js} +1 -1
  252. package/dist/assets/workspace-page-BxO4Td2a.js +1 -0
  253. package/dist/assets/workspace-page-DGL905Oc.css +1 -0
  254. package/dist/assets/xlsx-preview-5RzKRM0T.js +1 -0
  255. package/dist/images/integrations/wix-mcp.png +0 -0
  256. package/dist/index.html +3 -3
  257. package/package.json +1 -1
  258. package/dist/assets/acp-run-detail-panel-BA9xGUzb.js +0 -3
  259. package/dist/assets/activation-list-route-Br9gsfSd.js +0 -1
  260. package/dist/assets/activity-steps-panel-88l6Ei6w.js +0 -1
  261. package/dist/assets/add-credits-modal-0pYLUDo4.js +0 -1
  262. package/dist/assets/ai-page-DU0mYnYP.js +0 -1
  263. package/dist/assets/all-chats-page-route-CkFi0Q7K.js +0 -1
  264. package/dist/assets/android-billing-handoff-C06TxyLt.js +0 -1
  265. package/dist/assets/app-BNyW7BqZ.css +0 -2
  266. package/dist/assets/app-Qc-rYPt9.js +0 -392
  267. package/dist/assets/archive-redirect-page-AYY4xZby.js +0 -1
  268. package/dist/assets/assistant-handle-modal-BZJgqpG8.js +0 -1
  269. package/dist/assets/assistant-inbox-Bt58UfV-.js +0 -1
  270. package/dist/assets/assistant-inbox-C_kJlDrW.js +0 -1
  271. package/dist/assets/assistant-inbox-DcUz6DF5.js +0 -1
  272. package/dist/assets/assistant-inbox-pCy-s4Sf.js +0 -1
  273. package/dist/assets/assistant-inbox-page-route-B61doUw8.js +0 -8
  274. package/dist/assets/auth-store-FcZEUxA_.js +0 -1
  275. package/dist/assets/avatar-bundled-components-DcmDX83d.js +0 -1
  276. package/dist/assets/avatar-random-DxLJmo42.js +0 -2
  277. package/dist/assets/background-task-detail-panel-CBjRAdga.js +0 -1
  278. package/dist/assets/billing-page-CA6R2wjZ.js +0 -3
  279. package/dist/assets/bookmarks-page-DPEug6V3.js +0 -1
  280. package/dist/assets/channel-transcript-panel-B0cRZsgw.js +0 -1
  281. package/dist/assets/channels-page-route-V3Fk_Hzf.js +0 -1
  282. package/dist/assets/chat-BQddXCk9.js +0 -3
  283. package/dist/assets/chat-BZsmqRU3.js +0 -3
  284. package/dist/assets/chat-C6WWTxFu.js +0 -3
  285. package/dist/assets/chat-D7FyK_n_.js +0 -3
  286. package/dist/assets/chat-info-panel-Bv1Aet5S.js +0 -1
  287. package/dist/assets/checkout-continuation-c9cPR68T.js +0 -1
  288. package/dist/assets/checkout-page-Cq5DAqbf.js +0 -1
  289. package/dist/assets/checkout-return-target-CA5-Gi7-.js +0 -1
  290. package/dist/assets/command-palette-BUCV7aZK.js +0 -1
  291. package/dist/assets/command-palette-Drf-HDLE.js +0 -1
  292. package/dist/assets/common-C7iok8sT.js +0 -1
  293. package/dist/assets/common-CMLZe_W6.js +0 -1
  294. package/dist/assets/common-Dgnh0Njn.js +0 -1
  295. package/dist/assets/common-QPQ83NEi.js +0 -1
  296. package/dist/assets/companion-popover-page-DGS-UTTL.js +0 -1
  297. package/dist/assets/companion-surface-oVNh5kA4.js +0 -1
  298. package/dist/assets/companion-surface-page-CXiHLf2G.js +0 -1
  299. package/dist/assets/companion-tour-entry-CpXEfiiz.js +0 -1
  300. package/dist/assets/contacts-Cj3nM0Gh.js +0 -1
  301. package/dist/assets/contacts-D4q-Pkbe.js +0 -1
  302. package/dist/assets/contacts-DFOqWav8.js +0 -1
  303. package/dist/assets/contacts-DUVw_0SR.js +0 -1
  304. package/dist/assets/contacts-gateway-zkBOSVyx.js +0 -1
  305. package/dist/assets/contacts-page-route-GyaYbluM.js +0 -1
  306. package/dist/assets/credentials-page-DgmnWmph.js +0 -1
  307. package/dist/assets/csv-preview-CemRbf9W.js +0 -4
  308. package/dist/assets/danger-zone-redirect-page-BJ31hZvD.js +0 -1
  309. package/dist/assets/debug-page-CYN-HFc_.js +0 -4
  310. package/dist/assets/deploy-dialogs-C_aIE0ti.js +0 -1
  311. package/dist/assets/deploy-dialogs-DP0ls5p1.js +0 -1
  312. package/dist/assets/desktop-preview-content-BmkyExHH.js +0 -2
  313. package/dist/assets/detail-primitives-B2TDPtFR.js +0 -1
  314. package/dist/assets/developer-page-e5ZIJFP5.js +0 -1
  315. package/dist/assets/devices-redirect-page-Dq7s97Ga.js +0 -1
  316. package/dist/assets/document-load-88Gh0gTG.js +0 -1
  317. package/dist/assets/document-viewer-page-DiD-zvuQ.js +0 -1
  318. package/dist/assets/emails-page-6gtVUatK.js +0 -1
  319. package/dist/assets/esm-BIibMYYI.js +0 -2
  320. package/dist/assets/esm-C2UI3fJI.js +0 -1
  321. package/dist/assets/esm-CKmAcBkR.js +0 -2
  322. package/dist/assets/esm-Cdr0McT5.js +0 -2
  323. package/dist/assets/esm-DwZucAaM.js +0 -2
  324. package/dist/assets/esm-RkUhkAaB.js +0 -1
  325. package/dist/assets/esm-hIaXWbzt.js +0 -2
  326. package/dist/assets/file-editor-D0P-Gy-a.js +0 -1
  327. package/dist/assets/general-page-BZQ7yEvH.js +0 -2
  328. package/dist/assets/hatching-screen-DBprFgEA.js +0 -1
  329. package/dist/assets/home-BPS0f4TE.js +0 -1
  330. package/dist/assets/home-CQg1DdTP.js +0 -1
  331. package/dist/assets/home-D8aw_BU0.js +0 -1
  332. package/dist/assets/home-DNL59CrR.js +0 -1
  333. package/dist/assets/identity-page-route-BfgfhU08.js +0 -7
  334. package/dist/assets/inspect-page-CH3uVGix.js +0 -9
  335. package/dist/assets/integrations-page-0clh02lf.js +0 -1
  336. package/dist/assets/intelligence-layout-CC6J5rMH.js +0 -1
  337. package/dist/assets/intelligence-layout-slots-store-BrxvOjyS.js +0 -1
  338. package/dist/assets/keyboard-shortcuts-redirect-page-B1HB0ZJQ.js +0 -1
  339. package/dist/assets/library-page-CHncUGxN.js +0 -1
  340. package/dist/assets/local-mode-D_-1ec4p.js +0 -1
  341. package/dist/assets/login-page-D2uVokBF.js +0 -1
  342. package/dist/assets/logout-page-H2ViUr-T.js +0 -1
  343. package/dist/assets/markdown-preview-BJR1Lp-C.js +0 -1
  344. package/dist/assets/memory-page-route-BBFz1YiU.js +0 -2
  345. package/dist/assets/metric-card-lmiHO3PF.js +0 -1
  346. package/dist/assets/native-attachment-pickers-BhYBtKp-.js +0 -1
  347. package/dist/assets/native-file-D0FCYmrg.js +0 -1
  348. package/dist/assets/notifications-page-BmNyEMIk.js +0 -1
  349. package/dist/assets/paired-platform-identity-BqBlEtsv.js +0 -1
  350. package/dist/assets/password-reset-page-DakZp7KC.js +0 -1
  351. package/dist/assets/pdf-file-preview-BxCXMhqC.js +0 -1
  352. package/dist/assets/personality-page-BU6yPK14.js +0 -1
  353. package/dist/assets/personality-page-Dm9LQmBW.js +0 -1
  354. package/dist/assets/personality-sliders-Dehyaji_.js +0 -1
  355. package/dist/assets/plans-page-CAyi2Nxa.js +0 -1
  356. package/dist/assets/plugins-surface-CrFNy0ps.js +0 -1
  357. package/dist/assets/privacy-page-BcpCT1Vb.js +0 -1
  358. package/dist/assets/profile-card-BP9AMkh4.js +0 -1
  359. package/dist/assets/referral-modal-Bd_Bwh5m.js +0 -1
  360. package/dist/assets/referral-modal-Ts_6L7Jq.js +0 -1
  361. package/dist/assets/research-onboarding-route-BXcRnuIA.js +0 -50
  362. package/dist/assets/review-terms-screen-DZCb5jS5.js +0 -1
  363. package/dist/assets/routes-CpEsYa-V.js +0 -1
  364. package/dist/assets/schedules-EEPosYPL.js +0 -1
  365. package/dist/assets/schedules-page-Dqs-gg7s.js +0 -1
  366. package/dist/assets/security-redirect-page-BUtDM_HH.js +0 -1
  367. package/dist/assets/select-assistant-screen-BOubdStJ.js +0 -1
  368. package/dist/assets/settings-BINiGaSx.js +0 -3
  369. package/dist/assets/settings-BMnYDo1R.js +0 -3
  370. package/dist/assets/settings-DJn8gNBn.js +0 -3
  371. package/dist/assets/settings-divider-y1Y7piXi.js +0 -1
  372. package/dist/assets/settings-jhraG5hY.js +0 -3
  373. package/dist/assets/settings-layout-7t6GBbdu.js +0 -1
  374. package/dist/assets/share-feedback-modal-DnH2sXjE.js +0 -2
  375. package/dist/assets/share-feedback-modal-DuI0v7AI.js +0 -1
  376. package/dist/assets/skill-detail-page-nWwa0XFq.js +0 -2
  377. package/dist/assets/skill-detail-panel-9H7ft8ro.js +0 -1
  378. package/dist/assets/stt-language-picker-modal-Dgcq9xkd.js +0 -1
  379. package/dist/assets/subagent-detail-panel-U4m5BxZG.js +0 -1
  380. package/dist/assets/superpowers-page-WkwbyGXZ.js +0 -1
  381. package/dist/assets/system-events-page-Bw9HBTD3.js +0 -1
  382. package/dist/assets/system-events-redirect-page-BfQvezRk.js +0 -1
  383. package/dist/assets/tool-detail-panel-B9PQpvb8.js +0 -16
  384. package/dist/assets/tool-detail-panel-Bt4vBf09.js +0 -1
  385. package/dist/assets/upgrade-cancel-page-CfqBVU8V.js +0 -1
  386. package/dist/assets/use-app-delete-vuGBgQkn.js +0 -1
  387. package/dist/assets/use-assistant-identity-details-CrWNdPFJ.js +0 -1
  388. package/dist/assets/use-checkout-dismiss-refresh-BwT2zWIT.js +0 -1
  389. package/dist/assets/use-invite-link-dialog-CCACCzhi.js +0 -1
  390. package/dist/assets/use-plugins-list-D-azzToZ.js +0 -1
  391. package/dist/assets/use-return-to-short-circuit-CpUBlNYt.js +0 -1
  392. package/dist/assets/use-side-list-room-DoHREePf.js +0 -1
  393. package/dist/assets/use-skill-actions-DG-ZngUy.js +0 -1
  394. package/dist/assets/use-skill-detail-files-CHrwga8E.js +0 -1
  395. package/dist/assets/use-supports-credentials-settings-Bq6T6gWf.js +0 -1
  396. package/dist/assets/use-transcript-message-by-id-Bfbshp9w.js +0 -1
  397. package/dist/assets/use-truncated-blob-text-hsQUTRQS.js +0 -1
  398. package/dist/assets/vendor-DEhKVoiV.js +0 -127
  399. package/dist/assets/voice-page-DiAOJ_tF.js +0 -1
  400. package/dist/assets/welcome-screen-DgJPqZ2G.js +0 -1
  401. package/dist/assets/workflow-detail-panel-DmsjHIzU.js +0 -1
  402. package/dist/assets/workspace-page-DHnNp7n8.js +0 -1
  403. /package/dist/assets/{account-CbGEbks2.js → account-BkxBMG9Z.js} +0 -0
  404. /package/dist/assets/{account-CumXdfDs.js → account-D5JdUO7K.js} +0 -0
  405. /package/dist/assets/{account-DmCG0I7Y.js → account-DYG79724.js} +0 -0
  406. /package/dist/assets/{account-CFZslirV.js → account-OIF2BHH7.js} +0 -0
  407. /package/dist/assets/{activation-Bly8xYKj.js → activation-C91KPzrh.js} +0 -0
  408. /package/dist/assets/{activation-CV4BcpUb.js → activation-Dd7eAIHs.js} +0 -0
  409. /package/dist/assets/{activation-Cn5oNHNz.js → activation-ReimSfhn.js} +0 -0
  410. /package/dist/assets/{activation-tasks-Xby0ArJP.js → activation-tasks-D4dorV2v.js} +0 -0
  411. /package/dist/assets/{activation-tasks-CDweZ7KB.js → activation-tasks-efxGWsFw.js} +0 -0
  412. /package/dist/assets/{activation-DtrycgQA.js → activation-tasks-rViOqW7C.js} +0 -0
  413. /package/dist/assets/{activation-tasks-CixG0BPC.js → activation-tasks-wtMwJ0EV.js} +0 -0
  414. /package/dist/assets/{activation-tasks-DLwbX7H6.js → activation-yoBQ36AY.js} +0 -0
  415. /package/dist/assets/{app-types-oLaS-mTA.js → app-types-BoY_FOAH.js} +0 -0
  416. /package/dist/assets/{build.umd-BaRFq_Ke.js → build.umd-B0ATW5UM.js} +0 -0
  417. /package/dist/assets/{credential-requests-eqWotlgu.js → credential-requests-CmFaXPwz.js} +0 -0
  418. /package/dist/assets/{credential-requests-BeJ7dLjs.js → credential-requests-D3J3i5oa.js} +0 -0
  419. /package/dist/assets/{credential-requests-CF1Ijjel.js → credential-requests-gl4lfjL4.js} +0 -0
  420. /package/dist/assets/{credential-requests-LPv1X_JL.js → credential-requests-h908NRpv.js} +0 -0
  421. /package/dist/assets/{definitions-DgScTjwR.js → definitions-BUCExH-9.js} +0 -0
  422. /package/dist/assets/{definitions-BSvId-nJ.js → definitions-DpZNNWA7.js} +0 -0
  423. /package/dist/assets/{diff-rows-BqIfjsWM.js → diff-rows-D2cn4P1P.js} +0 -0
  424. /package/dist/assets/{emoji-catalog-data-BA5JcZe8.js → emoji-catalog-data-DsyEWO16.js} +0 -0
  425. /package/dist/assets/{format-countdown-D18PVUfL.js → format-countdown-l7vj-IPm.js} +0 -0
  426. /package/dist/assets/{is-record-M98oimiB.js → is-record-CNwRuI6a.js} +0 -0
  427. /package/dist/assets/{library-BIeEceZf.js → library-CFGvGWZt.js} +0 -0
  428. /package/dist/assets/{library-CGe-F8G4.js → library-CmSFUt9r.js} +0 -0
  429. /package/dist/assets/{library-BDlOjOSg.js → library-D26ezl8B.js} +0 -0
  430. /package/dist/assets/{library-Dq184-kl.js → library-Dv9w5D8Z.js} +0 -0
  431. /package/dist/assets/{link-click-IkiMmOF_.js → link-click-CR9uUEsb.js} +0 -0
  432. /package/dist/assets/{logs-CN-P4Dk3.js → logs-5jFWrQRx.js} +0 -0
  433. /package/dist/assets/{logs-kLiH3IW-.js → logs-BJTGRcSn.js} +0 -0
  434. /package/dist/assets/{logs-CM1ISsDq.js → logs-BPrpYBp7.js} +0 -0
  435. /package/dist/assets/{logs-vLJHUPMP.js → logs-BpX8Zuzb.js} +0 -0
  436. /package/dist/assets/{machine-sizes-BWbhowrp.js → machine-sizes-srbag24Q.js} +0 -0
  437. /package/dist/assets/{onboarding-EqfHzA5u.js → onboarding-B9_JitSg.js} +0 -0
  438. /package/dist/assets/{onboarding-DcqUEEaz.js → onboarding-BrS1fcVE.js} +0 -0
  439. /package/dist/assets/{onboarding-BW2dh5pt.js → onboarding-Cx2yoeE5.js} +0 -0
  440. /package/dist/assets/{onboarding-Cnq4igvs.js → onboarding-cBGAfB74.js} +0 -0
  441. /package/dist/assets/{onboarding-step-layout-WvEjfCnx.js → onboarding-step-layout-BsqZaEHR.js} +0 -0
  442. /package/dist/assets/{pdf-DgsCrxEh.js → pdf-_tTrkaWt.js} +0 -0
  443. /package/dist/assets/{plugin-attribution-LzmgCiDL.js → plugin-attribution-RBBRvghI.js} +0 -0
  444. /package/dist/assets/{radio-card-nav-CuptkxL2.js → radio-card-nav-Br8358Zh.js} +0 -0
  445. /package/dist/assets/{remote-web-CobukhvR.js → remote-web-42kFkA33.js} +0 -0
  446. /package/dist/assets/{remote-web-C3yUczL8.js → remote-web-CFPdQIeJ.js} +0 -0
  447. /package/dist/assets/{remote-web-DwpqtwUx.js → remote-web-DFX945w2.js} +0 -0
  448. /package/dist/assets/{remote-web-DCSDDZCE.js → remote-web-DkzrBzGi.js} +0 -0
  449. /package/dist/assets/{schedules-IzKLt3Kb.js → schedules-Bk7XGnqS.js} +0 -0
  450. /package/dist/assets/{schedules-C2TWanDm.js → schedules-CGU7CKaM.js} +0 -0
  451. /package/dist/assets/{schedules-DmPN1i2h.js → schedules-J687h0Fh.js} +0 -0
  452. /package/dist/assets/{schedules-DQk79n5p.js → schedules-JnprnWDo.js} +0 -0
  453. /package/dist/assets/{signup-onboarding-handoff-C8_xhSTf.js → signup-onboarding-handoff-BIo7lFvP.js} +0 -0
  454. /package/dist/assets/{skill-icon-DUIePVIz.js → skill-icon-CWKAcXVy.js} +0 -0
  455. /package/dist/assets/{status-badge-pill-Cc18wQfL.js → status-badge-pill-qGQ5gRiz.js} +0 -0
  456. /package/dist/assets/{terminal-giCEJEW0.js → terminal-BV6xg9ZA.js} +0 -0
  457. /package/dist/assets/{terminal-Dl-IbvuO.js → terminal-BjOF3LBT.js} +0 -0
  458. /package/dist/assets/{terminal-DXPsXc9Y.js → terminal-CYHsl1AH.js} +0 -0
  459. /package/dist/assets/{terminal-Cy7FbQYY.js → terminal-Cxm0NKaj.js} +0 -0
  460. /package/dist/assets/{usage-window-BQhWVCSl.js → usage-window-DJWFtBw1.js} +0 -0
  461. /package/dist/assets/{use-debounced-value-Dc_Camyk.js → use-debounced-value-CiNn3pzA.js} +0 -0
  462. /package/dist/assets/{xterm-DDBpEHv9.js → xterm-Pyzkt_-B.js} +0 -0
  463. /package/dist/assets/{xterm-addon-fit-RknS6doH.js → xterm-addon-fit-HaY_WHvm.js} +0 -0
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Ro as t}from"./app-Qc-rYPt9.js";import{j as n}from"./vendor-DEhKVoiV.js";import{t as r,x as i}from"./react-B9IgSVeK.js";import{t as a}from"./format-file-size-Bcra_NZ3.js";var o=e(i(),1),s=r(),c={verified:{label:`Verified`,className:`bg-[var(--system-positive-weak)] text-[var(--system-positive-strong)]`},signed:{label:`Signed`,className:`bg-[var(--system-info-weak)] text-[var(--system-info-strong)]`},unsigned:{label:`Unsigned`,className:`bg-[var(--surface-active)] text-[var(--content-secondary)]`},tampered:{label:`Tampered — signature invalid`,className:`bg-[var(--system-negative-weak)] text-[var(--system-negative-strong)]`}};function l(){let{t:e}=n(),[r,i]=(0,o.useState)(null),[l,u]=(0,o.useState)(!1);if((0,o.useEffect)(()=>{window.vellum?.bundleConfirm?.getData().then(e=>{e&&i(e)})},[]),!r)return(0,s.jsx)(`div`,{className:`flex h-svh w-screen items-center justify-center bg-background text-muted-foreground select-none`,children:e(`bundleConfirmPage.loading`)});let{manifest:d,scanResult:f,signatureResult:p,bundleSizeBytes:m}=r,h=c[p.trustTier],g=p.trustTier===`tampered`,_=f.warnings;return(0,s.jsxs)(`div`,{className:`flex h-svh w-screen flex-col bg-background px-6 pt-14 pb-6 text-foreground select-none`,children:[(0,s.jsxs)(`div`,{className:`flex items-start gap-3`,children:[d.icon?(0,s.jsx)(`span`,{className:`text-5xl leading-none`,children:d.icon}):(0,s.jsx)(`span`,{className:`text-5xl leading-none`,children:`📦`}),(0,s.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,s.jsx)(`h1`,{className:`truncate text-lg font-semibold`,children:d.name}),d.description&&(0,s.jsx)(`p`,{className:`text-muted-foreground mt-0.5 text-sm leading-snug`,children:d.description})]})]}),(0,s.jsxs)(`div`,{className:`mt-4 flex items-center gap-2`,children:[(0,s.jsx)(`span`,{className:t(`inline-block rounded-full px-2.5 py-0.5 text-xs font-medium`,h.className),children:h.label}),p.trustTier===`signed`&&p.signerDisplayName&&(0,s.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:e(`bundleConfirmPage.bySigner`,{name:p.signerDisplayName})})]}),(0,s.jsxs)(`dl`,{className:`mt-4 grid grid-cols-[auto_1fr] gap-x-3 gap-y-1.5 text-sm`,children:[(0,s.jsx)(`dt`,{className:`text-muted-foreground`,children:e(`bundleConfirmPage.size`)}),(0,s.jsx)(`dd`,{children:a(m)}),(0,s.jsx)(`dt`,{className:`text-muted-foreground`,children:e(`bundleConfirmPage.createdBy`)}),(0,s.jsx)(`dd`,{className:`truncate`,children:d.created_by}),d.capabilities.length>0&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(`dt`,{className:`text-muted-foreground`,children:e(`bundleConfirmPage.capabilities`)}),(0,s.jsx)(`dd`,{className:`truncate`,children:d.capabilities.join(`, `)})]})]}),_.length>0&&(0,s.jsxs)(`div`,{className:`mt-4`,children:[(0,s.jsx)(`button`,{type:`button`,className:`text-muted-foreground text-xs font-medium hover:underline`,onClick:()=>u(e=>!e),"aria-expanded":l,children:e(l?`bundleConfirmPage.hideWarnings`:`bundleConfirmPage.showWarnings`,{count:_.length})}),l&&(0,s.jsx)(`ul`,{className:`mt-1.5 space-y-1 text-xs`,children:_.map((e,t)=>(0,s.jsx)(`li`,{className:`rounded bg-[var(--system-mid-weak)] px-2 py-1 text-[var(--system-mid-strong)]`,children:e},t))})]}),(0,s.jsxs)(`div`,{className:`mt-auto flex items-center justify-end gap-3 pt-4`,children:[(0,s.jsx)(`button`,{type:`button`,className:`rounded-md border border-border px-4 py-1.5 text-sm font-medium text-foreground hover:bg-muted`,onClick:()=>window.vellum?.bundleConfirm?.respond(!1),children:e(`bundleConfirmPage.cancel`)}),(0,s.jsx)(`button`,{type:`button`,className:t(`rounded-md px-4 py-1.5 text-sm font-medium text-white`,g?`bg-red-600 hover:bg-red-700`:`bg-primary hover:bg-primary/90`),onClick:()=>window.vellum?.bundleConfirm?.respond(!0),children:e(g?`bundleConfirmPage.installAnyway`:`bundleConfirmPage.install`)})]})]})}export{l as BundleConfirmPage};
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Zo as t}from"./app--CZi-eoZ.js";import{E as n}from"./vendor-DLH51Vjf.js";import{t as r,x as i}from"./react-B9IgSVeK.js";import{t as a}from"./format-file-size-Bcra_NZ3.js";var o=e(i(),1),s=r(),c={verified:{label:`Verified`,className:`bg-[var(--system-positive-weak)] text-[var(--system-positive-strong)]`},signed:{label:`Signed`,className:`bg-[var(--system-info-weak)] text-[var(--system-info-strong)]`},unsigned:{label:`Unsigned`,className:`bg-[var(--surface-active)] text-[var(--content-secondary)]`},tampered:{label:`Tampered — signature invalid`,className:`bg-[var(--system-negative-weak)] text-[var(--system-negative-strong)]`}};function l(){let{t:e}=n(),[r,i]=(0,o.useState)(null),[l,u]=(0,o.useState)(!1);if((0,o.useEffect)(()=>{window.vellum?.bundleConfirm?.getData().then(e=>{e&&i(e)})},[]),!r)return(0,s.jsx)(`div`,{className:`flex h-svh w-screen items-center justify-center bg-background text-muted-foreground select-none`,children:e(`bundleConfirmPage.loading`)});let{manifest:d,scanResult:f,signatureResult:p,bundleSizeBytes:m}=r,h=c[p.trustTier],g=p.trustTier===`tampered`,_=f.warnings;return(0,s.jsxs)(`div`,{className:`flex h-svh w-screen flex-col bg-background px-6 pt-14 pb-6 text-foreground select-none`,children:[(0,s.jsxs)(`div`,{className:`flex items-start gap-3`,children:[d.icon?(0,s.jsx)(`span`,{className:`text-5xl leading-none`,children:d.icon}):(0,s.jsx)(`span`,{className:`text-5xl leading-none`,children:`📦`}),(0,s.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,s.jsx)(`h1`,{className:`truncate text-lg font-semibold`,children:d.name}),d.description&&(0,s.jsx)(`p`,{className:`text-muted-foreground mt-0.5 text-sm leading-snug`,children:d.description})]})]}),(0,s.jsxs)(`div`,{className:`mt-4 flex items-center gap-2`,children:[(0,s.jsx)(`span`,{className:t(`inline-block rounded-full px-2.5 py-0.5 text-xs font-medium`,h.className),children:h.label}),p.trustTier===`signed`&&p.signerDisplayName&&(0,s.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:e(`bundleConfirmPage.bySigner`,{name:p.signerDisplayName})})]}),(0,s.jsxs)(`dl`,{className:`mt-4 grid grid-cols-[auto_1fr] gap-x-3 gap-y-1.5 text-sm`,children:[(0,s.jsx)(`dt`,{className:`text-muted-foreground`,children:e(`bundleConfirmPage.size`)}),(0,s.jsx)(`dd`,{children:a(m)}),(0,s.jsx)(`dt`,{className:`text-muted-foreground`,children:e(`bundleConfirmPage.createdBy`)}),(0,s.jsx)(`dd`,{className:`truncate`,children:d.created_by}),d.capabilities.length>0&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(`dt`,{className:`text-muted-foreground`,children:e(`bundleConfirmPage.capabilities`)}),(0,s.jsx)(`dd`,{className:`truncate`,children:d.capabilities.join(`, `)})]})]}),_.length>0&&(0,s.jsxs)(`div`,{className:`mt-4`,children:[(0,s.jsx)(`button`,{type:`button`,className:`text-muted-foreground text-xs font-medium hover:underline`,onClick:()=>u(e=>!e),"aria-expanded":l,children:e(l?`bundleConfirmPage.hideWarnings`:`bundleConfirmPage.showWarnings`,{count:_.length})}),l&&(0,s.jsx)(`ul`,{className:`mt-1.5 space-y-1 text-xs`,children:_.map((e,t)=>(0,s.jsx)(`li`,{className:`rounded bg-[var(--system-mid-weak)] px-2 py-1 text-[var(--system-mid-strong)]`,children:e},t))})]}),(0,s.jsxs)(`div`,{className:`mt-auto flex items-center justify-end gap-3 pt-4`,children:[(0,s.jsx)(`button`,{type:`button`,className:`rounded-md border border-border px-4 py-1.5 text-sm font-medium text-foreground hover:bg-muted`,onClick:()=>window.vellum?.bundleConfirm?.respond(!1),children:e(`bundleConfirmPage.cancel`)}),(0,s.jsx)(`button`,{type:`button`,className:t(`rounded-md px-4 py-1.5 text-sm font-medium text-white`,g?`bg-red-600 hover:bg-red-700`:`bg-primary hover:bg-primary/90`),onClick:()=>window.vellum?.bundleConfirm?.respond(!0),children:e(g?`bundleConfirmPage.installAnyway`:`bundleConfirmPage.install`)})]})]})}export{l as BundleConfirmPage};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{$C as t,Ar as n,Cn as r,HC as i,Hh as a,PC as o,Sn as s,Ut as c,Vt as l,Vy as u,Zt as d,ca as f,dC as p,da as m,dr as h,eo as g,fr as _,iS as v,ir as y,lC as b,lr as x,nx as S,rg as C,tr as w,uC as T,ur as E}from"./app--CZi-eoZ.js";import{E as D}from"./vendor-DLH51Vjf.js";import{t as O,x as k}from"./react-B9IgSVeK.js";import{Ji as A,Ya as j,Zr as M}from"./icons-C0wyat6T.js";var N=j(`corner-up-left`,[[`path`,{d:`M20 20v-7a4 4 0 0 0-4-4H4`,key:`1nkjon`}],[`path`,{d:`M9 14 4 9l5-5`,key:`102s5s`}]]),P=e(k(),1),F=O();function I({entry:e,channelLabel:n,assistantName:r,isReferenced:a,onToggleReference:o}){let{t:s}=D(`chat`),u=E(e.timestamp),f=e.role===`user`?s(`channelTranscriptPanel.unknownSender`):r??s(`channelTranscriptPanel.assistantSender`),m=e.provenance.senderName??f,g=e.provenance.reaction;return(0,F.jsxs)(`article`,{"data-reveal-row":``,"data-testid":`channel-transcript-entry`,className:`group flex flex-col gap-1 rounded-lg px-2 py-2 hover:bg-[var(--surface-active)]`,children:[(0,F.jsxs)(`header`,{className:`flex min-w-0 items-baseline gap-2`,children:[(0,F.jsx)(i,{as:`span`,variant:`body-small-emphasised`,className:`min-w-0 truncate text-[var(--content-default)]`,children:m}),u?(0,F.jsx)(i,{as:`span`,variant:`body-small-lighter`,title:c(u),className:`shrink-0 text-[var(--content-tertiary)]`,children:l(u)}):null,(0,F.jsx)(`span`,{className:`flex-1`}),h(e)?(0,F.jsx)(t,{variant:`ghost`,size:`compact`,"data-reveal":``,active:a,leftIcon:a?(0,F.jsx)(A,{}):(0,F.jsx)(N,{}),onClick:()=>o(e),"aria-pressed":a,"aria-label":a?s(`channelTranscriptPanel.removeReferenceAria`):s(`channelTranscriptPanel.referenceAria`,{channel:n}),className:`shrink-0`,children:s(a?`channelTranscriptPanel.referenced`:`channelTranscriptPanel.reference`)}):null]}),g?(0,F.jsx)(i,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-secondary)]`,children:s(g.op===`added`?`channelTranscriptPanel.reactionAdded`:`channelTranscriptPanel.reactionRemoved`,{emoji:d(g)})}):(0,F.jsxs)(i,{as:`div`,variant:`body-small-default`,className:`${T} mb-0`,children:[(0,F.jsx)(`span`,{"aria-hidden":`true`,className:b}),(0,F.jsx)(`span`,{className:`${p} whitespace-pre-wrap break-words`,children:e.text||s(`channelTranscriptPanel.noText`)})]})]})}function L({sidecarRef:e,threadName:n,sourceHref:r,entries:a,assistantName:s,referencedEntryId:c,onToggleReference:l,onClose:d}){let{t:p}=D(`chat`),h=m(e.channelId),g=n?p(`channelTranscriptPanel.namedTitle`,{channel:h,thread:n}):p(`channelTranscriptPanel.title`,{channel:h});return(0,F.jsx)(w,{icon:(0,F.jsx)(f,{channelId:e.channelId,className:`h-5 w-5 shrink-0 text-[var(--content-secondary)]`}),title:g,headerTrailing:(0,F.jsx)(o,{tone:`neutral`,children:p(`channelTranscriptPanel.readOnly`)}),headerActions:r?(0,F.jsx)(t,{asChild:!0,variant:`outlined`,leftIcon:(0,F.jsx)(M,{}),className:`shrink-0`,children:(0,F.jsx)(`a`,{href:r,target:`_blank`,rel:`noreferrer noopener`,onClick:e=>u(e,r),children:p(`channelTranscriptPanel.openInChannel`,{channel:h})})}):void 0,closeLabel:p(`channelTranscriptPanel.closeAria`),closeTooltip:p(`channelTranscriptPanel.closeTooltip`),onClose:d,children:(0,F.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,F.jsx)(i,{as:`p`,variant:`body-small-lighter`,className:`text-[var(--content-tertiary)]`,children:p(`channelTranscriptPanel.readOnlyNote`,{channel:h})}),a.length===0?(0,F.jsx)(y,{placement:`panel`,children:_(e.channelId)?p(`channelTranscriptPanel.emptyThread`,{channel:h}):p(`channelTranscriptPanel.emptyNoMessageDetail`,{channel:h})}):(0,F.jsx)(`div`,{className:`flex flex-col gap-1`,children:a.map(e=>(0,F.jsx)(I,{entry:e,channelLabel:h,assistantName:s,isReferenced:c===e.id,onToggleReference:l},e.id))})]})})}function R({sidecarRef:e,onClose:t}){let i=S.use.activeAssistantId(),o=C.use.activeConversationId(),{target:c,entries:l}=x({conversationId:o,conversation:g(i,o,!0),messages:n()}),u=v.use.name(),d=s.use.reference(),f=s.use.toggleReference(),p=a(c,e),h=p?l:[],_=m(e.channelId),y=(0,P.useCallback)(e=>{c&&f(r({entry:e,target:c,channelLabel:_}))},[c,f,_]);return(0,F.jsx)(L,{sidecarRef:e,threadName:p?c?.threadName:void 0,sourceHref:p?c?.sourceHref:void 0,entries:h,assistantName:u,referencedEntryId:d?.messageId??null,onToggleReference:y,onClose:t})}export{R as ChannelTranscriptPanel};
@@ -6,4 +6,4 @@ var e={drawerTitle:`Каналы`,disconnectTitle:`Отключить {channel}?
6
6
 
7
7
  Это может стоить вам денег и открыть уязвимости безопасности и приватности.
8
8
 
9
- Включайте с крайней осторожностью.`,confirmAction:`Разрешить незнакомцев`}},s={heading:`Доступ по умолчанию`,subtitle:`Насколько самостоятельно действует {assistant} в зависимости от типа диалога. Отдельные каналы могут переопределить это ниже, а <trustRules>правила доверия</trustRules> уточняют, когда спрашивать.`,bucketAria:`Доступ ассистента по умолчанию для {bucket}`},c={defaultSuffix:`по умолчанию`,defaultPlaceholder:`По умолчанию`},l={defaultMarker:`· по умолчанию`},u={overridesLoadFailed:`Не удалось загрузить настройки доступа. Эти элементы останутся недоступны, пока данные не загрузятся. Повторите открытие страницы.`,perChannelOverrides:`Переопределения по каналам`},d={heading:`Поведение в ветках`,selectAria:`Поведение Slack в ветках`,mentionsOnly:`Только упоминания`,mentionsOnlyHelp:`Бот отвечает только когда его @упоминают.`,followThreads:`Следить за веткой после первого упоминания`,followThreadsHelp:`После @упоминания в ветке бот слушает остальную ветку.`},f={presenceHint:`Добавление через <invite>/invite {handle}</invite> или удаление через <remove>/remove {handle}</remove> в этом канале Slack. Здесь видны только каналы, в которых есть {assistant}.`,loading:`Загрузка…`,loadFailed:`Не удалось загрузить каналы. Повторите открытие страницы.`,emptyTitle:`Каналов пока нет`,searchPlaceholder:`Поиск каналов`,searchAria:`Поиск каналов`,filterGroupAria:`Фильтр каналов по типу`,noMatches:`Нет подходящих каналов.`,accessAria:`Доступ ассистента в {channel}`,filterAll:`{count, plural, one {Все (#)} few {Все (#)} many {Все (#)} other {Все (#)}}`,filterPublic:`{count, plural, one {Открытые (#)} few {Открытые (#)} many {Открытые (#)} other {Открытые (#)}}`,filterPrivate:`{count, plural, one {Закрытые (#)} few {Закрытые (#)} many {Закрытые (#)} other {Закрытые (#)}}`},p={accountSid:`Account SID`,authToken:`Auth Token`,authTokenPlaceholder:`Auth-токен Twilio`,saving:`Сохранение…`,save:`Сохранить`},m={slack:{label:`Slack`,disconnectMessage:`Это удалит сохранённые токены бота и приложения Slack для этого ассистента. Потом можно подключить снова.`},telegram:{label:`Telegram`,disconnectMessage:`Это удалит сохранённый токен бота Telegram для этого ассистента. Потом можно подключить снова.`,disconnectedPitch:`Подключение бота Telegram, чтобы {assistant} мог отправлять и получать сообщения в Telegram.`},discord:{label:`Discord`,disconnectedPitch:`Подключите бота Discord, чтобы {assistant} мог читать и отвечать на вашем сервере.`,disconnectMessage:`Это удалит сохранённый токен бота Discord, и бот перестанет получать сообщения. На сервере бот останется, пока вы не удалите его там.`},email:{label:`Почта`},phone:{label:`Телефонные звонки`,disconnectMessage:`Это удалит сохранённые учётные данные Twilio для этого ассистента. Потом можно подключить снова.`,disconnectedPitch:`Подключение аккаунта Twilio, чтобы {assistant} мог звонить и отвечать на звонки.`}},h={apiKeyConfigured:`API-ключ {providerName} настроен. Повторная настройка: запуск навыка <code>{setupSkill}</code>.`,connecting:`Подключение к платформе Vellum…`,openProvider:`Открыть {providerName}`,platformLoginNotice:`Вход на платформу Vellum для управления настройками почты.`,providerLabel:`Провайдер`,saveSuccessToast:`Настройки почты сохранены.`,setupInstructions:`Настройка {providerName} через CLI ассистента: запрос ассистенту запустить навык <code>{setupSkill}</code>. Он поможет сохранить API-ключ, определить домен и (по желанию) подключить входящий webhook.`,subtitle:`Настройка отправки и получения почты ассистентом`,title:`Почта`},g={addressLabel:`Адрес`,checkingSubscription:`Проверка подписки…`,completeSetup:`Завершить настройку домена`,completingSetup:`Завершение настройки…`,confirm:`Подтвердить`,create:`Создать`,createEmailFailedFallback:`Не удалось создать адрес почты.`,creating:`Создание…`,domainLabel:`Домен`,domainRegisteredToast:`Домен {domain} зарегистрирован.`,domainReleaseFailedToast:`Не удалось освободить домен.`,domainReleasedToast:`Домен освобождён.`,emailAddressLabel:`Адрес почты`,emailCreatedToast:`Адрес почты создан.`,emailRemoveFailedToast:`Не удалось удалить адрес почты.`,emailRemovedToast:`Адрес почты удалён.`,emailUsernameAriaLabel:`Имя пользователя почты`,emailUsernamePlaceholder:`hi`,enterSubdomainError:`Ввод поддомена.`,enterUsernameError:`Ввод имени пользователя почты.`,register:`Зарегистрировать`,registerDomainFailedFallback:`Не удалось зарегистрировать домен.`,registering:`Регистрация…`,releaseConfirm:`Освободить`,releaseDomainAriaLabel:`Освободить домен`,releaseDomainConfirmMessage:`Точно освободить <code>{domain}</code>? Поддомен станет доступен другим.`,releaseDomainTitle:`Освободить домен`,removeAddressFirstToast:`Сначала удаление адреса почты.`,removeConfirm:`Удалить`,removeEmailAriaLabel:`Удалить адрес почты`,removeEmailConfirmMessage:`Точно удалить <code>{address}</code>? Ассистент больше не сможет отправлять и получать почту на этот адрес.`,removeEmailTitle:`Удалить адрес почты`,repairConfirmMessage:`Текущий адрес почты сохранится. Настройка обратится к почтовому провайдеру и DNS для <code>{domain}</code>.`,repairConfirmTitle:`Завершить настройку домена?`,repairFailedFallback:`Не удалось начать настройку домена. Повторите попытку через минуту.`,repairNoticeBody:`Адрес почты уже есть, но домен ещё не настроен у почтового провайдера. Завершите настройку, чтобы отправлять и получать письма.`,repairNoticeTitle:`Нужна настройка домена`,repairStartedToast:`Настройка домена начата. Проверка обычно занимает несколько минут.`,retry:`Повторить`,setSubdomainConfirmMessage:`<code>{subdomain}</code> также станет публичным идентификатором ассистента. После установки его нельзя сменить.`,setSubdomainTitle:`Задать поддомен`,subdomainExamplePlaceholder:`my-assistant`,subdomainFallback:`поддомен`,subdomainHint:`У каждого ассистента свой поддомен. Только строчные латинские буквы, цифры и дефисы.`,subdomainLabel:`Поддомен`,subscriptionWarningBody:`Не удалось связаться со службой оплаты. Форма ниже считает, что управляемая почта включена для организации. Если это не так, регистрация домена не сработает.`,subscriptionWarningTitle:`Не удалось проверить статус подписки`,upgradeButton:`Повысить план`,upgradeNoticeBody:`Переход на план, в котором у ассистента есть свой адрес почты. Настраивать провайдера не нужно.`,upgradeNoticeTitle:`Адрес почты для ассистента`,usageSummary:`сегодня отправлено {sent} / {limit} · получено {received}`},_={assistantChannelsList:e,channelAdapterList:t,connectionCard:n,slackChannelCard:r,channelPanel:i,pluginChannelPanel:a,channelTrustFloor:o,slackChannelTypeDefaults:s,tierPicker:c,slackChannelTierLegend:l,slackChannelSection:u,slackThreadBehavior:d,slackChannelList:f,twilioCredentialEntry:p,channelMeta:m,emailChannelSection:h,emailManagedContent:g};export{e as assistantChannelsList,t as channelAdapterList,m as channelMeta,i as channelPanel,o as channelTrustFloor,n as connectionCard,_ as default,h as emailChannelSection,g as emailManagedContent,a as pluginChannelPanel,r as slackChannelCard,f as slackChannelList,u as slackChannelSection,l as slackChannelTierLegend,s as slackChannelTypeDefaults,d as slackThreadBehavior,c as tierPicker,p as twilioCredentialEntry};
9
+ Включайте с крайней осторожностью.`,confirmAction:`Разрешить незнакомцев`}},s={heading:`Доступ по умолчанию`,subtitle:`Насколько самостоятельно действует {assistant} в зависимости от типа диалога. Отдельные каналы могут переопределить это ниже, а <trustRules>правила доверия</trustRules> уточняют, когда спрашивать.`,bucketAria:`Доступ ассистента по умолчанию для {bucket}`},c={defaultSuffix:`по умолчанию`,defaultPlaceholder:`По умолчанию`},l={defaultMarker:`· по умолчанию`},u={overridesLoadFailed:`Не удалось загрузить настройки доступа. Эти элементы останутся недоступны, пока данные не загрузятся. Повторите открытие страницы.`,perChannelOverrides:`Переопределения по каналам`},d={heading:`Поведение в ветках`,selectAria:`Поведение Slack в ветках`,mentionsOnly:`Только упоминания`,mentionsOnlyHelp:`Бот отвечает только когда его @упоминают.`,followThreads:`Следить за веткой после первого упоминания`,followThreadsHelp:`После @упоминания в ветке бот слушает остальную ветку.`},f={presenceHint:`Добавление через <invite>/invite {handle}</invite> или удаление через <remove>/remove {handle}</remove> в этом канале Slack. Здесь видны только каналы, в которых есть {assistant}.`,loading:`Загрузка…`,loadFailed:`Не удалось загрузить каналы. Повторите открытие страницы.`,emptyTitle:`Каналов пока нет`,searchPlaceholder:`Поиск каналов`,searchAria:`Поиск каналов`,filterGroupAria:`Фильтр каналов по типу`,noMatches:`Нет подходящих каналов.`,accessAria:`Доступ ассистента в {channel}`,filterAll:`{count, plural, one {Все (#)} few {Все (#)} many {Все (#)} other {Все (#)}}`,filterPublic:`{count, plural, one {Открытые (#)} few {Открытые (#)} many {Открытые (#)} other {Открытые (#)}}`,filterPrivate:`{count, plural, one {Закрытые (#)} few {Закрытые (#)} many {Закрытые (#)} other {Закрытые (#)}}`},p={accountSid:`Account SID`,authToken:`Auth Token`,authTokenPlaceholder:`Auth-токен Twilio`,saving:`Сохранение…`,save:`Сохранить`},m={slack:{label:`Slack`,disconnectMessage:`Это удалит сохранённые токены бота и приложения Slack для этого ассистента. Потом можно подключить снова.`},telegram:{label:`Telegram`,disconnectMessage:`Это удалит сохранённый токен бота Telegram для этого ассистента. Потом можно подключить снова.`,disconnectedPitch:`Подключение бота Telegram, чтобы {assistant} мог отправлять и получать сообщения в Telegram.`},discord:{label:`Discord`,disconnectedPitch:`Подключите бота Discord, чтобы {assistant} мог читать и отвечать на вашем сервере.`,disconnectMessage:`Это удалит сохранённый токен бота Discord, и бот перестанет получать сообщения. На сервере бот останется, пока вы не удалите его там.`},email:{label:`Почта`},phone:{label:`Телефонные звонки`,disconnectMessage:`Это удалит сохранённые учётные данные Twilio для этого ассистента. Потом можно подключить снова.`,disconnectedPitch:`Подключение аккаунта Twilio, чтобы {assistant} мог звонить и отвечать на звонки.`}},h={apiKeyConfigured:`API-ключ {providerName} настроен. Повторная настройка: запуск навыка <code>{setupSkill}</code>.`,connecting:`Подключение к платформе Vellum…`,openProvider:`Открыть {providerName}`,platformLoginNotice:`Вход на платформу Vellum для управления настройками почты.`,providerLabel:`Провайдер`,saveSuccessToast:`Настройки почты сохранены.`,setupInstructions:`Настройка {providerName} через CLI ассистента: запрос ассистенту запустить навык <code>{setupSkill}</code>. Он поможет сохранить API-ключ, определить домен и (по желанию) подключить входящий webhook.`,subtitle:`Настройка отправки и получения почты ассистентом`,title:`Почта`},g={addressLabel:`Адрес`,checkingSubscription:`Проверка подписки…`,completeSetup:`Завершить настройку домена`,completingSetup:`Завершение настройки…`,confirm:`Подтвердить`,create:`Создать`,createEmailFailedFallback:`Не удалось создать адрес почты.`,creating:`Создание…`,domainLabel:`Домен`,domainRegisteredToast:`Домен {domain} зарегистрирован.`,domainReleaseFailedToast:`Не удалось освободить домен.`,domainReleasedToast:`Домен освобождён.`,emailAddressLabel:`Адрес почты`,emailCreatedToast:`Адрес почты создан.`,emailRemoveFailedToast:`Не удалось удалить адрес почты.`,emailRemovedToast:`Адрес почты удалён.`,emailUsernameAriaLabel:`Имя пользователя почты`,emailUsernamePlaceholder:`hi`,enterSubdomainError:`Ввод поддомена.`,enterUsernameError:`Ввод имени пользователя почты.`,inboxSetupBody:`Адрес ассистента создаётся в разделе «Почта ассистента», где читается его почта. Откройте его, чтобы выбрать адрес.`,inboxSetupButton:`Открыть почту ассистента`,inboxSetupTitle:`Настройте почту в разделе «Почта ассистента»`,register:`Зарегистрировать`,registerDomainFailedFallback:`Не удалось зарегистрировать домен.`,registering:`Регистрация…`,releaseConfirm:`Освободить`,releaseDomainAriaLabel:`Освободить домен`,releaseDomainConfirmMessage:`Точно освободить <code>{domain}</code>? Поддомен станет доступен другим.`,releaseDomainTitle:`Освободить домен`,removeAddressFirstToast:`Сначала удаление адреса почты.`,removeConfirm:`Удалить`,removeEmailAriaLabel:`Удалить адрес почты`,removeEmailConfirmMessage:`Точно удалить <code>{address}</code>? Ассистент больше не сможет отправлять и получать почту на этот адрес.`,removeEmailTitle:`Удалить адрес почты`,repairConfirmMessage:`Текущий адрес почты сохранится. Настройка обратится к почтовому провайдеру и DNS для <code>{domain}</code>.`,repairConfirmTitle:`Завершить настройку домена?`,repairFailedFallback:`Не удалось начать настройку домена. Повторите попытку через минуту.`,repairNoticeBody:`Адрес почты уже есть, но домен ещё не настроен у почтового провайдера. Завершите настройку, чтобы отправлять и получать письма.`,repairNoticeTitle:`Нужна настройка домена`,repairStartedToast:`Настройка домена начата. Проверка обычно занимает несколько минут.`,retry:`Повторить`,setSubdomainConfirmMessage:`<code>{subdomain}</code> также станет публичным идентификатором ассистента. После установки его нельзя сменить.`,setSubdomainTitle:`Задать поддомен`,subdomainExamplePlaceholder:`my-assistant`,subdomainFallback:`поддомен`,subdomainHint:`У каждого ассистента свой поддомен. Только строчные латинские буквы, цифры и дефисы.`,subdomainLabel:`Поддомен`,subscriptionWarningBody:`Не удалось связаться со службой оплаты. Форма ниже считает, что управляемая почта включена для организации. Если это не так, регистрация домена не сработает.`,subscriptionWarningTitle:`Не удалось проверить статус подписки`,upgradeButton:`Повысить план`,upgradeNoticeBody:`Переход на план, в котором у ассистента есть свой адрес почты. Настраивать провайдера не нужно.`,upgradeNoticeTitle:`Адрес почты для ассистента`,usageSummary:`сегодня отправлено {sent} / {limit} · получено {received}`},_={assistantChannelsList:e,channelAdapterList:t,connectionCard:n,slackChannelCard:r,channelPanel:i,pluginChannelPanel:a,channelTrustFloor:o,slackChannelTypeDefaults:s,tierPicker:c,slackChannelTierLegend:l,slackChannelSection:u,slackThreadBehavior:d,slackChannelList:f,twilioCredentialEntry:p,channelMeta:m,emailChannelSection:h,emailManagedContent:g};export{e as assistantChannelsList,t as channelAdapterList,m as channelMeta,i as channelPanel,o as channelTrustFloor,n as connectionCard,_ as default,h as emailChannelSection,g as emailManagedContent,a as pluginChannelPanel,r as slackChannelCard,f as slackChannelList,u as slackChannelSection,l as slackChannelTierLegend,s as slackChannelTypeDefaults,d as slackThreadBehavior,c as tierPicker,p as twilioCredentialEntry};
@@ -6,4 +6,4 @@ var e={drawerTitle:`渠道`,disconnectTitle:`断开 {channel} 的连接?`,disc
6
6
 
7
7
  这样做可能会给您带来经济损失,并使您面临安全和隐私漏洞。
8
8
 
9
- 请务必谨慎启用。`,confirmAction:`允许陌生人`}},s={heading:`默认访问权限`,subtitle:`{assistant}根据对话类型自行执行操作的程度。单个频道可以在下方覆盖此设置,<trustRules>信任规则</trustRules>则会微调何时进行询问。`,bucketAria:`{bucket}的默认助手访问权限`},c={defaultSuffix:`默认`,defaultPlaceholder:`默认`},l={defaultMarker:`· 默认`},u={overridesLoadFailed:`无法加载访问设置。这些控件在加载完成前将保持禁用状态。请尝试重新打开此页面。`,perChannelOverrides:`频道级覆盖设置`},d={heading:`线程行为`,selectAria:`Slack 线程行为`,mentionsOnly:`仅提及`,mentionsOnlyHelp:`机器人仅在被 @提及 时响应。`,followThreads:`首次提及后跟踪线程`,followThreadsHelp:`在线程中被 @提及后,机器人会监听该线程的其余部分。`},f={presenceHint:`在该 Slack 频道中,使用 <invite>/invite {handle}</invite> 添加,或使用 <remove>/remove {handle}</remove> 移除。此处仅显示 {assistant} 所在的频道。`,loading:`正在加载…`,loadFailed:`无法加载频道。请尝试重新打开此页面。`,emptyTitle:`暂无频道`,searchPlaceholder:`搜索频道`,searchAria:`搜索频道`,filterGroupAria:`按类型筛选频道`,noMatches:`无匹配频道。`,accessAria:`{channel} 中的助手访问权限`,filterAll:`{count, plural, other {全部 (#)}}`,filterPublic:`{count, plural, other {公开 (#)}}`,filterPrivate:`{count, plural, other {私有 (#)}}`},p={accountSid:`账户 SID`,authToken:`身份验证令牌`,authTokenPlaceholder:`Twilio 身份验证令牌`,saving:`正在保存…`,save:`保存`},m={slack:{label:`Slack`,disconnectMessage:`这将清除此助手存储的 Slack 机器人和应用令牌。您可以稍后重新连接。`},telegram:{label:`Telegram`,disconnectMessage:`这将清除此助手存储的 Telegram 机器人令牌。您可以稍后重新连接。`,disconnectedPitch:`连接 Telegram 机器人,以便 {assistant} 可以在 Telegram 上发送和接收消息。`},discord:{label:`Discord`,disconnectedPitch:`连接 Discord 机器人,以便 {assistant} 可以在您的服务器中阅读和回复消息。`,disconnectMessage:`这将清除此助手存储的 Discord 机器人令牌,并且机器人将停止接收消息。您的服务器将保留该机器人,直到您从服务器中将其移除。`},email:{label:`电子邮件`},phone:{label:`电话呼叫`,disconnectMessage:`这将清除此助手存储的 Twilio 凭据。您可以稍后重新连接。`,disconnectedPitch:`连接您的 Twilio 账户,以便 {assistant} 可以拨打和接听电话。`}},h={apiKeyConfigured:`{providerName} API 密钥已配置。要重新配置,请运行 <code>{setupSkill}</code> 技能。`,connecting:`正在连接到 Vellum 平台…`,openProvider:`打开 {providerName}`,platformLoginNotice:`登录 Vellum 平台以管理电子邮件设置。`,providerLabel:`提供商`,saveSuccessToast:`电子邮件设置已保存。`,setupInstructions:`通过助手 CLI 配置 {providerName}:要求助手运行 <code>{setupSkill}</code> 技能。它将引导您存储 API 密钥、检测域并(可选)连接入站 Webhook。`,subtitle:`配置您的助手如何发送和接收电子邮件`,title:`电子邮件`},g={addressLabel:`地址`,checkingSubscription:`正在检查订阅…`,completeSetup:`完成域名设置`,completingSetup:`正在完成设置…`,confirm:`确认`,create:`创建`,createEmailFailedFallback:`创建电子邮件地址失败。`,creating:`正在创建…`,domainLabel:`域名`,domainRegisteredToast:`域名 {domain} 已注册。`,domainReleaseFailedToast:`释放域名失败。`,domainReleasedToast:`域名已释放。`,emailAddressLabel:`电子邮件地址`,emailCreatedToast:`电子邮件地址已创建。`,emailRemoveFailedToast:`删除电子邮件地址失败。`,emailRemovedToast:`电子邮件地址已删除。`,emailUsernameAriaLabel:`电子邮件用户名`,emailUsernamePlaceholder:`hi`,enterSubdomainError:`请输入子域名。`,enterUsernameError:`请输入电子邮件用户名。`,register:`注册`,registerDomainFailedFallback:`注册域名失败。`,registering:`正在注册…`,releaseConfirm:`释放`,releaseDomainAriaLabel:`释放域名`,releaseDomainConfirmMessage:`您确定要释放 <code>{domain}</code> 吗?该子域名将可供其他人认领。`,releaseDomainTitle:`释放域名`,removeAddressFirstToast:`请先删除电子邮件地址。`,removeConfirm:`删除`,removeEmailAriaLabel:`删除电子邮件地址`,removeEmailConfirmMessage:`您确定要删除 <code>{address}</code> 吗?您的助手将无法再通过此地址发送或接收电子邮件。`,removeEmailTitle:`删除电子邮件地址`,repairConfirmMessage:`将保留您现有的电子邮件地址。设置会为 <code>{domain}</code> 联系电子邮件提供商和 DNS。`,repairConfirmTitle:`完成域名设置?`,repairFailedFallback:`无法开始域名设置。请稍后再试。`,repairNoticeBody:`您的电子邮件地址已就绪,但此域名尚未在电子邮件提供商处设置。完成设置后即可开始发送和接收邮件。`,repairNoticeTitle:`需要设置域名`,repairStartedToast:`已开始域名设置。验证通常需要几分钟。`,retry:`重试`,setSubdomainConfirmMessage:`<code>{subdomain}</code> 也将成为您助手的公开句柄。设置后将无法更改。`,setSubdomainTitle:`设置子域名`,subdomainExamplePlaceholder:`my-assistant`,subdomainFallback:`子域名`,subdomainHint:`每个助手都有自己的子域名。仅限小写字母、数字和连字符。`,subdomainLabel:`子域名`,subscriptionWarningBody:`我们无法连接到计费服务。以下表单假定您的组织已启用托管电子邮件。如果未启用,注册域名将失败。`,subscriptionWarningTitle:`无法验证订阅状态`,upgradeButton:`升级`,upgradeNoticeBody:`升级到包含助手电子邮件地址的套餐。无需提供商设置。`,upgradeNoticeTitle:`为您的助手提供专属电子邮件地址`,usageSummary:`今日发送 {sent} / {limit} · 收到 {received}`},_={assistantChannelsList:e,channelAdapterList:t,connectionCard:n,slackChannelCard:r,channelPanel:i,pluginChannelPanel:a,channelTrustFloor:o,slackChannelTypeDefaults:s,tierPicker:c,slackChannelTierLegend:l,slackChannelSection:u,slackThreadBehavior:d,slackChannelList:f,twilioCredentialEntry:p,channelMeta:m,emailChannelSection:h,emailManagedContent:g};export{e as assistantChannelsList,t as channelAdapterList,m as channelMeta,i as channelPanel,o as channelTrustFloor,n as connectionCard,_ as default,h as emailChannelSection,g as emailManagedContent,a as pluginChannelPanel,r as slackChannelCard,f as slackChannelList,u as slackChannelSection,l as slackChannelTierLegend,s as slackChannelTypeDefaults,d as slackThreadBehavior,c as tierPicker,p as twilioCredentialEntry};
9
+ 请务必谨慎启用。`,confirmAction:`允许陌生人`}},s={heading:`默认访问权限`,subtitle:`{assistant}根据对话类型自行执行操作的程度。单个频道可以在下方覆盖此设置,<trustRules>信任规则</trustRules>则会微调何时进行询问。`,bucketAria:`{bucket}的默认助手访问权限`},c={defaultSuffix:`默认`,defaultPlaceholder:`默认`},l={defaultMarker:`· 默认`},u={overridesLoadFailed:`无法加载访问设置。这些控件在加载完成前将保持禁用状态。请尝试重新打开此页面。`,perChannelOverrides:`频道级覆盖设置`},d={heading:`线程行为`,selectAria:`Slack 线程行为`,mentionsOnly:`仅提及`,mentionsOnlyHelp:`机器人仅在被 @提及 时响应。`,followThreads:`首次提及后跟踪线程`,followThreadsHelp:`在线程中被 @提及后,机器人会监听该线程的其余部分。`},f={presenceHint:`在该 Slack 频道中,使用 <invite>/invite {handle}</invite> 添加,或使用 <remove>/remove {handle}</remove> 移除。此处仅显示 {assistant} 所在的频道。`,loading:`正在加载…`,loadFailed:`无法加载频道。请尝试重新打开此页面。`,emptyTitle:`暂无频道`,searchPlaceholder:`搜索频道`,searchAria:`搜索频道`,filterGroupAria:`按类型筛选频道`,noMatches:`无匹配频道。`,accessAria:`{channel} 中的助手访问权限`,filterAll:`{count, plural, other {全部 (#)}}`,filterPublic:`{count, plural, other {公开 (#)}}`,filterPrivate:`{count, plural, other {私有 (#)}}`},p={accountSid:`账户 SID`,authToken:`身份验证令牌`,authTokenPlaceholder:`Twilio 身份验证令牌`,saving:`正在保存…`,save:`保存`},m={slack:{label:`Slack`,disconnectMessage:`这将清除此助手存储的 Slack 机器人和应用令牌。您可以稍后重新连接。`},telegram:{label:`Telegram`,disconnectMessage:`这将清除此助手存储的 Telegram 机器人令牌。您可以稍后重新连接。`,disconnectedPitch:`连接 Telegram 机器人,以便 {assistant} 可以在 Telegram 上发送和接收消息。`},discord:{label:`Discord`,disconnectedPitch:`连接 Discord 机器人,以便 {assistant} 可以在您的服务器中阅读和回复消息。`,disconnectMessage:`这将清除此助手存储的 Discord 机器人令牌,并且机器人将停止接收消息。您的服务器将保留该机器人,直到您从服务器中将其移除。`},email:{label:`电子邮件`},phone:{label:`电话呼叫`,disconnectMessage:`这将清除此助手存储的 Twilio 凭据。您可以稍后重新连接。`,disconnectedPitch:`连接您的 Twilio 账户,以便 {assistant} 可以拨打和接听电话。`}},h={apiKeyConfigured:`{providerName} API 密钥已配置。要重新配置,请运行 <code>{setupSkill}</code> 技能。`,connecting:`正在连接到 Vellum 平台…`,openProvider:`打开 {providerName}`,platformLoginNotice:`登录 Vellum 平台以管理电子邮件设置。`,providerLabel:`提供商`,saveSuccessToast:`电子邮件设置已保存。`,setupInstructions:`通过助手 CLI 配置 {providerName}:要求助手运行 <code>{setupSkill}</code> 技能。它将引导您存储 API 密钥、检测域并(可选)连接入站 Webhook。`,subtitle:`配置您的助手如何发送和接收电子邮件`,title:`电子邮件`},g={addressLabel:`地址`,checkingSubscription:`正在检查订阅…`,completeSetup:`完成域名设置`,completingSetup:`正在完成设置…`,confirm:`确认`,create:`创建`,createEmailFailedFallback:`创建电子邮件地址失败。`,creating:`正在创建…`,domainLabel:`域名`,domainRegisteredToast:`域名 {domain} 已注册。`,domainReleaseFailedToast:`释放域名失败。`,domainReleasedToast:`域名已释放。`,emailAddressLabel:`电子邮件地址`,emailCreatedToast:`电子邮件地址已创建。`,emailRemoveFailedToast:`删除电子邮件地址失败。`,emailRemovedToast:`电子邮件地址已删除。`,emailUsernameAriaLabel:`电子邮件用户名`,emailUsernamePlaceholder:`hi`,enterSubdomainError:`请输入子域名。`,enterUsernameError:`请输入电子邮件用户名。`,inboxSetupBody:`助手的地址在助手收件箱中创建,其邮件也在那里阅读。打开收件箱以选择地址。`,inboxSetupButton:`打开助手收件箱`,inboxSetupTitle:`在助手收件箱中设置电子邮件`,register:`注册`,registerDomainFailedFallback:`注册域名失败。`,registering:`正在注册…`,releaseConfirm:`释放`,releaseDomainAriaLabel:`释放域名`,releaseDomainConfirmMessage:`您确定要释放 <code>{domain}</code> 吗?该子域名将可供其他人认领。`,releaseDomainTitle:`释放域名`,removeAddressFirstToast:`请先删除电子邮件地址。`,removeConfirm:`删除`,removeEmailAriaLabel:`删除电子邮件地址`,removeEmailConfirmMessage:`您确定要删除 <code>{address}</code> 吗?您的助手将无法再通过此地址发送或接收电子邮件。`,removeEmailTitle:`删除电子邮件地址`,repairConfirmMessage:`将保留您现有的电子邮件地址。设置会为 <code>{domain}</code> 联系电子邮件提供商和 DNS。`,repairConfirmTitle:`完成域名设置?`,repairFailedFallback:`无法开始域名设置。请稍后再试。`,repairNoticeBody:`您的电子邮件地址已就绪,但此域名尚未在电子邮件提供商处设置。完成设置后即可开始发送和接收邮件。`,repairNoticeTitle:`需要设置域名`,repairStartedToast:`已开始域名设置。验证通常需要几分钟。`,retry:`重试`,setSubdomainConfirmMessage:`<code>{subdomain}</code> 也将成为您助手的公开句柄。设置后将无法更改。`,setSubdomainTitle:`设置子域名`,subdomainExamplePlaceholder:`my-assistant`,subdomainFallback:`子域名`,subdomainHint:`每个助手都有自己的子域名。仅限小写字母、数字和连字符。`,subdomainLabel:`子域名`,subscriptionWarningBody:`我们无法连接到计费服务。以下表单假定您的组织已启用托管电子邮件。如果未启用,注册域名将失败。`,subscriptionWarningTitle:`无法验证订阅状态`,upgradeButton:`升级`,upgradeNoticeBody:`升级到包含助手电子邮件地址的套餐。无需提供商设置。`,upgradeNoticeTitle:`为您的助手提供专属电子邮件地址`,usageSummary:`今日发送 {sent} / {limit} · 收到 {received}`},_={assistantChannelsList:e,channelAdapterList:t,connectionCard:n,slackChannelCard:r,channelPanel:i,pluginChannelPanel:a,channelTrustFloor:o,slackChannelTypeDefaults:s,tierPicker:c,slackChannelTierLegend:l,slackChannelSection:u,slackThreadBehavior:d,slackChannelList:f,twilioCredentialEntry:p,channelMeta:m,emailChannelSection:h,emailManagedContent:g};export{e as assistantChannelsList,t as channelAdapterList,m as channelMeta,i as channelPanel,o as channelTrustFloor,n as connectionCard,_ as default,h as emailChannelSection,g as emailManagedContent,a as pluginChannelPanel,r as slackChannelCard,f as slackChannelList,u as slackChannelSection,l as slackChannelTierLegend,s as slackChannelTypeDefaults,d as slackThreadBehavior,c as tierPicker,p as twilioCredentialEntry};
@@ -6,4 +6,4 @@ Ideal para canales formados solo por personas en las que ya confías.`,confirmAc
6
6
 
7
7
  Hacerlo podría costarte dinero y exponerte a vulnerabilidades de seguridad y privacidad.
8
8
 
9
- Actívalo con extrema precaución.`,confirmAction:`Permitir desconocidos`}},s={heading:`Acceso predeterminado`,subtitle:`Cuánto hace {assistant} por su cuenta, según el tipo de conversación. Cada canal puede anular esto más abajo, y las <trustRules>Reglas de confianza</trustRules> afinan cuándo pregunta.`,bucketAria:`Acceso predeterminado del asistente para {bucket}`},c={defaultSuffix:`predeterminado`,defaultPlaceholder:`Predeterminado`},l={defaultMarker:`· predeterminado`},u={overridesLoadFailed:`No se pudieron cargar los ajustes de acceso. Estos controles seguirán desactivados hasta que se carguen. Prueba a volver a abrir esta página.`,perChannelOverrides:`Anulaciones por canal`},d={heading:`Comportamiento en hilos`,selectAria:`Comportamiento de Slack en hilos`,mentionsOnly:`Solo menciones`,mentionsOnlyHelp:`El bot solo responde cuando se le menciona con @.`,followThreads:`Seguir el hilo tras la primera mención`,followThreadsHelp:`Tras una mención con @ en un hilo, el bot escucha el resto de ese hilo.`},f={presenceHint:`Añádelo con <invite>/invite {handle}</invite> o quítalo con <remove>/remove {handle}</remove> en ese canal de Slack. Aquí solo aparecen los canales en los que está {assistant}.`,loading:`Cargando…`,loadFailed:`No se pudieron cargar los canales. Prueba a volver a abrir esta página.`,emptyTitle:`Aún no hay canales`,searchPlaceholder:`Buscar canales`,searchAria:`Buscar canales`,filterGroupAria:`Filtrar canales por tipo`,noMatches:`Ningún canal coincide.`,accessAria:`Acceso del asistente en {channel}`,filterAll:`{count, plural, one {Todos (#)} other {Todos (#)}}`,filterPublic:`{count, plural, one {Público (#)} other {Públicos (#)}}`,filterPrivate:`{count, plural, one {Privado (#)} other {Privados (#)}}`},p={accountSid:`SID de la cuenta`,authToken:`Token de autenticación`,authTokenPlaceholder:`Token de autenticación de Twilio`,saving:`Guardando…`,save:`Guardar`},m={slack:{label:`Slack`,disconnectMessage:`Esto borra los tokens de bot y de aplicación de Slack guardados para este asistente. Puedes volver a conectarlo más tarde.`},telegram:{label:`Telegram`,disconnectMessage:`Esto borra el token de bot de Telegram guardado para este asistente. Puedes volver a conectarlo más tarde.`,disconnectedPitch:`Conecta un bot de Telegram para que {assistant} pueda enviar y recibir mensajes en Telegram.`},discord:{label:`Discord`,disconnectedPitch:`Conecta un bot de Discord para que {assistant} pueda leer y responder en tu servidor.`,disconnectMessage:`Esto borra el token del bot de Discord de este asistente y el bot deja de recibir mensajes. El bot sigue en tu servidor hasta que lo elimines alli.`},email:{label:`Correo`},phone:{label:`Llamadas telefónicas`,disconnectMessage:`Esto borra las credenciales de Twilio guardadas para este asistente. Puedes volver a conectarlo más tarde.`,disconnectedPitch:`Conecta tu cuenta de Twilio para que {assistant} pueda hacer y contestar llamadas.`}},h={apiKeyConfigured:`Clave API de {providerName} configurada. Para reconfigurar, ejecuta la habilidad <code>{setupSkill}</code>.`,connecting:`Conectando con la plataforma Vellum…`,openProvider:`Abrir {providerName}`,platformLoginNotice:`Inicia sesión en la plataforma Vellum para administrar la configuración de correo.`,providerLabel:`Proveedor`,saveSuccessToast:`Configuración de correo guardada.`,setupInstructions:`Configura {providerName} mediante la CLI del asistente: pídele al asistente que ejecute la habilidad <code>{setupSkill}</code>. Te guiará para guardar la clave API, detectar el dominio y (opcionalmente) configurar un webhook entrante.`,subtitle:`Configura cómo tu asistente envía y recibe correo`,title:`Correo`},g={addressLabel:`Dirección`,checkingSubscription:`Comprobando suscripción…`,completeSetup:`Completar configuración del dominio`,completingSetup:`Completando configuración…`,confirm:`Confirmar`,create:`Crear`,createEmailFailedFallback:`No se pudo crear la dirección de correo.`,creating:`Creando…`,domainLabel:`Dominio`,domainRegisteredToast:`Dominio {domain} registrado.`,domainReleaseFailedToast:`No se pudo liberar el dominio.`,domainReleasedToast:`Dominio liberado.`,emailAddressLabel:`Dirección de correo`,emailCreatedToast:`Dirección de correo creada.`,emailRemoveFailedToast:`No se pudo eliminar la dirección de correo.`,emailRemovedToast:`Dirección de correo eliminada.`,emailUsernameAriaLabel:`Nombre de usuario del correo`,emailUsernamePlaceholder:`hola`,enterSubdomainError:`Introduce un subdominio.`,enterUsernameError:`Introduce un nombre de usuario de correo.`,register:`Registrar`,registerDomainFailedFallback:`No se pudo registrar el dominio.`,registering:`Registrando…`,releaseConfirm:`Liberar`,releaseDomainAriaLabel:`Liberar dominio`,releaseDomainConfirmMessage:`¿Seguro que quieres liberar <code>{domain}</code>? El subdominio quedará disponible para que otros lo reclamen.`,releaseDomainTitle:`Liberar dominio`,removeAddressFirstToast:`Elimina primero la dirección de correo.`,removeConfirm:`Eliminar`,removeEmailAriaLabel:`Eliminar dirección de correo`,removeEmailConfirmMessage:`¿Seguro que quieres eliminar <code>{address}</code>? Tu asistente ya no podrá enviar ni recibir correo en esta dirección.`,removeEmailTitle:`Eliminar dirección de correo`,repairConfirmMessage:`Se conserva tu dirección de correo actual. La configuración contactará al proveedor de correo y al DNS de <code>{domain}</code>.`,repairConfirmTitle:`¿Completar la configuración del dominio?`,repairFailedFallback:`No se pudo iniciar la configuración del dominio. Inténtalo de nuevo en un momento.`,repairNoticeBody:`Tu dirección de correo está lista, pero este dominio aún no está configurado con el proveedor de correo. Completa la configuración para empezar a enviar y recibir correo.`,repairNoticeTitle:`Configuración del dominio requerida`,repairStartedToast:`Se inició la configuración del dominio. La verificación suele tardar unos minutos.`,retry:`Reintentar`,setSubdomainConfirmMessage:`<code>{subdomain}</code> también será el identificador público de tu asistente. No podrás cambiarlo una vez establecido.`,setSubdomainTitle:`Establecer subdominio`,subdomainExamplePlaceholder:`mi-asistente`,subdomainFallback:`subdominio`,subdomainHint:`Cada asistente tiene su propio subdominio. Solo letras minúsculas, números y guiones.`,subdomainLabel:`Subdominio`,subscriptionWarningBody:`No pudimos contactar con el servicio de facturación. El formulario siguiente asume que el correo gestionado está habilitado para tu organización. Si no lo está, registrar un dominio fallará.`,subscriptionWarningTitle:`No se pudo verificar el estado de la suscripción`,upgradeButton:`Mejorar plan`,upgradeNoticeBody:`Mejora a un plan que incluya una dirección de correo para tu asistente. No hace falta configurar un proveedor.`,upgradeNoticeTitle:`Dale a tu asistente su propia dirección de correo`,usageSummary:`{sent} / {limit} enviados hoy · {received} recibidos`},_={assistantChannelsList:e,channelAdapterList:t,connectionCard:n,slackChannelCard:r,channelPanel:i,pluginChannelPanel:a,channelTrustFloor:o,slackChannelTypeDefaults:s,tierPicker:c,slackChannelTierLegend:l,slackChannelSection:u,slackThreadBehavior:d,slackChannelList:f,twilioCredentialEntry:p,channelMeta:m,emailChannelSection:h,emailManagedContent:g};export{e as assistantChannelsList,t as channelAdapterList,m as channelMeta,i as channelPanel,o as channelTrustFloor,n as connectionCard,_ as default,h as emailChannelSection,g as emailManagedContent,a as pluginChannelPanel,r as slackChannelCard,f as slackChannelList,u as slackChannelSection,l as slackChannelTierLegend,s as slackChannelTypeDefaults,d as slackThreadBehavior,c as tierPicker,p as twilioCredentialEntry};
9
+ Actívalo con extrema precaución.`,confirmAction:`Permitir desconocidos`}},s={heading:`Acceso predeterminado`,subtitle:`Cuánto hace {assistant} por su cuenta, según el tipo de conversación. Cada canal puede anular esto más abajo, y las <trustRules>Reglas de confianza</trustRules> afinan cuándo pregunta.`,bucketAria:`Acceso predeterminado del asistente para {bucket}`},c={defaultSuffix:`predeterminado`,defaultPlaceholder:`Predeterminado`},l={defaultMarker:`· predeterminado`},u={overridesLoadFailed:`No se pudieron cargar los ajustes de acceso. Estos controles seguirán desactivados hasta que se carguen. Prueba a volver a abrir esta página.`,perChannelOverrides:`Anulaciones por canal`},d={heading:`Comportamiento en hilos`,selectAria:`Comportamiento de Slack en hilos`,mentionsOnly:`Solo menciones`,mentionsOnlyHelp:`El bot solo responde cuando se le menciona con @.`,followThreads:`Seguir el hilo tras la primera mención`,followThreadsHelp:`Tras una mención con @ en un hilo, el bot escucha el resto de ese hilo.`},f={presenceHint:`Añádelo con <invite>/invite {handle}</invite> o quítalo con <remove>/remove {handle}</remove> en ese canal de Slack. Aquí solo aparecen los canales en los que está {assistant}.`,loading:`Cargando…`,loadFailed:`No se pudieron cargar los canales. Prueba a volver a abrir esta página.`,emptyTitle:`Aún no hay canales`,searchPlaceholder:`Buscar canales`,searchAria:`Buscar canales`,filterGroupAria:`Filtrar canales por tipo`,noMatches:`Ningún canal coincide.`,accessAria:`Acceso del asistente en {channel}`,filterAll:`{count, plural, one {Todos (#)} other {Todos (#)}}`,filterPublic:`{count, plural, one {Público (#)} other {Públicos (#)}}`,filterPrivate:`{count, plural, one {Privado (#)} other {Privados (#)}}`},p={accountSid:`SID de la cuenta`,authToken:`Token de autenticación`,authTokenPlaceholder:`Token de autenticación de Twilio`,saving:`Guardando…`,save:`Guardar`},m={slack:{label:`Slack`,disconnectMessage:`Esto borra los tokens de bot y de aplicación de Slack guardados para este asistente. Puedes volver a conectarlo más tarde.`},telegram:{label:`Telegram`,disconnectMessage:`Esto borra el token de bot de Telegram guardado para este asistente. Puedes volver a conectarlo más tarde.`,disconnectedPitch:`Conecta un bot de Telegram para que {assistant} pueda enviar y recibir mensajes en Telegram.`},discord:{label:`Discord`,disconnectedPitch:`Conecta un bot de Discord para que {assistant} pueda leer y responder en tu servidor.`,disconnectMessage:`Esto borra el token del bot de Discord de este asistente y el bot deja de recibir mensajes. El bot sigue en tu servidor hasta que lo elimines alli.`},email:{label:`Correo`},phone:{label:`Llamadas telefónicas`,disconnectMessage:`Esto borra las credenciales de Twilio guardadas para este asistente. Puedes volver a conectarlo más tarde.`,disconnectedPitch:`Conecta tu cuenta de Twilio para que {assistant} pueda hacer y contestar llamadas.`}},h={apiKeyConfigured:`Clave API de {providerName} configurada. Para reconfigurar, ejecuta la habilidad <code>{setupSkill}</code>.`,connecting:`Conectando con la plataforma Vellum…`,openProvider:`Abrir {providerName}`,platformLoginNotice:`Inicia sesión en la plataforma Vellum para administrar la configuración de correo.`,providerLabel:`Proveedor`,saveSuccessToast:`Configuración de correo guardada.`,setupInstructions:`Configura {providerName} mediante la CLI del asistente: pídele al asistente que ejecute la habilidad <code>{setupSkill}</code>. Te guiará para guardar la clave API, detectar el dominio y (opcionalmente) configurar un webhook entrante.`,subtitle:`Configura cómo tu asistente envía y recibe correo`,title:`Correo`},g={addressLabel:`Dirección`,checkingSubscription:`Comprobando suscripción…`,completeSetup:`Completar configuración del dominio`,completingSetup:`Completando configuración…`,confirm:`Confirmar`,create:`Crear`,createEmailFailedFallback:`No se pudo crear la dirección de correo.`,creating:`Creando…`,domainLabel:`Dominio`,domainRegisteredToast:`Dominio {domain} registrado.`,domainReleaseFailedToast:`No se pudo liberar el dominio.`,domainReleasedToast:`Dominio liberado.`,emailAddressLabel:`Dirección de correo`,emailCreatedToast:`Dirección de correo creada.`,emailRemoveFailedToast:`No se pudo eliminar la dirección de correo.`,emailRemovedToast:`Dirección de correo eliminada.`,emailUsernameAriaLabel:`Nombre de usuario del correo`,emailUsernamePlaceholder:`hola`,enterSubdomainError:`Introduce un subdominio.`,enterUsernameError:`Introduce un nombre de usuario de correo.`,inboxSetupBody:`La dirección de tu asistente se crea desde la bandeja del asistente, donde se lee su correo. Ábrela para elegir la dirección.`,inboxSetupButton:`Abrir bandeja del asistente`,inboxSetupTitle:`Configura el correo en la bandeja del asistente`,register:`Registrar`,registerDomainFailedFallback:`No se pudo registrar el dominio.`,registering:`Registrando…`,releaseConfirm:`Liberar`,releaseDomainAriaLabel:`Liberar dominio`,releaseDomainConfirmMessage:`¿Seguro que quieres liberar <code>{domain}</code>? El subdominio quedará disponible para que otros lo reclamen.`,releaseDomainTitle:`Liberar dominio`,removeAddressFirstToast:`Elimina primero la dirección de correo.`,removeConfirm:`Eliminar`,removeEmailAriaLabel:`Eliminar dirección de correo`,removeEmailConfirmMessage:`¿Seguro que quieres eliminar <code>{address}</code>? Tu asistente ya no podrá enviar ni recibir correo en esta dirección.`,removeEmailTitle:`Eliminar dirección de correo`,repairConfirmMessage:`Se conserva tu dirección de correo actual. La configuración contactará al proveedor de correo y al DNS de <code>{domain}</code>.`,repairConfirmTitle:`¿Completar la configuración del dominio?`,repairFailedFallback:`No se pudo iniciar la configuración del dominio. Inténtalo de nuevo en un momento.`,repairNoticeBody:`Tu dirección de correo está lista, pero este dominio aún no está configurado con el proveedor de correo. Completa la configuración para empezar a enviar y recibir correo.`,repairNoticeTitle:`Configuración del dominio requerida`,repairStartedToast:`Se inició la configuración del dominio. La verificación suele tardar unos minutos.`,retry:`Reintentar`,setSubdomainConfirmMessage:`<code>{subdomain}</code> también será el identificador público de tu asistente. No podrás cambiarlo una vez establecido.`,setSubdomainTitle:`Establecer subdominio`,subdomainExamplePlaceholder:`mi-asistente`,subdomainFallback:`subdominio`,subdomainHint:`Cada asistente tiene su propio subdominio. Solo letras minúsculas, números y guiones.`,subdomainLabel:`Subdominio`,subscriptionWarningBody:`No pudimos contactar con el servicio de facturación. El formulario siguiente asume que el correo gestionado está habilitado para tu organización. Si no lo está, registrar un dominio fallará.`,subscriptionWarningTitle:`No se pudo verificar el estado de la suscripción`,upgradeButton:`Mejorar plan`,upgradeNoticeBody:`Mejora a un plan que incluya una dirección de correo para tu asistente. No hace falta configurar un proveedor.`,upgradeNoticeTitle:`Dale a tu asistente su propia dirección de correo`,usageSummary:`{sent} / {limit} enviados hoy · {received} recibidos`},_={assistantChannelsList:e,channelAdapterList:t,connectionCard:n,slackChannelCard:r,channelPanel:i,pluginChannelPanel:a,channelTrustFloor:o,slackChannelTypeDefaults:s,tierPicker:c,slackChannelTierLegend:l,slackChannelSection:u,slackThreadBehavior:d,slackChannelList:f,twilioCredentialEntry:p,channelMeta:m,emailChannelSection:h,emailManagedContent:g};export{e as assistantChannelsList,t as channelAdapterList,m as channelMeta,i as channelPanel,o as channelTrustFloor,n as connectionCard,_ as default,h as emailChannelSection,g as emailManagedContent,a as pluginChannelPanel,r as slackChannelCard,f as slackChannelList,u as slackChannelSection,l as slackChannelTierLegend,s as slackChannelTypeDefaults,d as slackThreadBehavior,c as tierPicker,p as twilioCredentialEntry};
@@ -6,4 +6,4 @@ var e={drawerTitle:`頻道`,disconnectTitle:`中斷 {channel} 的連線?`,disc
6
6
 
7
7
  這樣做可能會讓您蒙受金錢損失,並使您面臨安全和隱私漏洞。
8
8
 
9
- 請務必謹慎啟用。`,confirmAction:`允許陌生人`}},s={heading:`預設存取權`,subtitle:`{assistant} 根據對話類型自行執行的程度。個別頻道可以在下方覆寫此設定,而 <trustRules>信任規則</trustRules> 則會微調何時進行詢問。`,bucketAria:`{bucket} 的預設助理存取權`},c={defaultSuffix:`預設`,defaultPlaceholder:`預設`},l={defaultMarker:`· 預設`},u={overridesLoadFailed:`無法載入存取設定。這些控制項在載入完成前將保持停用狀態。請嘗試重新開啟此頁面。`,perChannelOverrides:`每個頻道的覆寫設定`},d={heading:`執行緒行為`,selectAria:`Slack 執行緒行為`,mentionsOnly:`僅提及`,mentionsOnlyHelp:`機器人僅在被 @提及時回應。`,followThreads:`首次提及後追蹤執行緒`,followThreadsHelp:`在執行緒中被 @提及後,機器人會監聽該執行緒的其餘部分。`},f={presenceHint:`在該 Slack 頻道中,使用 <invite>/invite {handle}</invite> 新增,或使用 <remove>/remove {handle}</remove> 移除。此處僅顯示 {assistant} 所在的頻道。`,loading:`正在載入…`,loadFailed:`無法載入頻道。請嘗試重新開啟此頁面。`,emptyTitle:`尚未有頻道`,searchPlaceholder:`搜尋頻道`,searchAria:`搜尋頻道`,filterGroupAria:`依類型篩選頻道`,noMatches:`無符合的頻道。`,accessAria:`{channel} 中的助理存取權`,filterAll:`{count, plural, other {全部 (#)}}`,filterPublic:`{count, plural, other {公開 (#)}}`,filterPrivate:`{count, plural, other {私人 (#)}}`},p={accountSid:`帳號 SID`,authToken:`驗證權杖`,authTokenPlaceholder:`Twilio 驗證權杖`,saving:`正在儲存…`,save:`儲存`},m={slack:{label:`Slack`,disconnectMessage:`這會清除此助理儲存的 Slack 機器人與應用程式權杖。您可以稍後重新連線。`},telegram:{label:`Telegram`,disconnectMessage:`這會清除此助理儲存的 Telegram 機器人權杖。您可以稍後重新連線。`,disconnectedPitch:`連線 Telegram 機器人,讓 {assistant} 可以在 Telegram 上傳送及接收訊息。`},discord:{label:`Discord`,disconnectedPitch:`連線 Discord 機器人,讓 {assistant} 可以在您的伺服器中讀取及回覆。`,disconnectMessage:`這會清除此助理儲存的 Discord 機器人權杖,且機器人將停止接收訊息。您的伺服器會保留該機器人,直到您從伺服器中移除為止。`},email:{label:`電子郵件`},phone:{label:`電話通話`,disconnectMessage:`這會清除此助理儲存的 Twilio 憑證。您可以稍後重新連線。`,disconnectedPitch:`連線您的 Twilio 帳號,讓 {assistant} 可以撥打及接聽電話。`}},h={apiKeyConfigured:`{providerName} API 金鑰已設定。若要重新設定,請執行 <code>{setupSkill}</code> 技能。`,connecting:`正在連線至 Vellum 平台…`,openProvider:`開啟 {providerName}`,platformLoginNotice:`登入 Vellum 平台以管理電子郵件設定。`,providerLabel:`供應商`,saveSuccessToast:`電子郵件設定已儲存。`,setupInstructions:`透過助理 CLI 設定 {providerName}:要求助理執行 <code>{setupSkill}</code> 技能。它會引導您儲存 API 金鑰、偵測網域,以及 (選用) 設定傳入 Webhook。`,subtitle:`設定您的助理如何傳送及接收電子郵件`,title:`電子郵件`},g={addressLabel:`地址`,checkingSubscription:`正在檢查訂閱…`,completeSetup:`完成網域設定`,completingSetup:`正在完成設定…`,confirm:`確認`,create:`建立`,createEmailFailedFallback:`建立電子郵件地址失敗。`,creating:`正在建立…`,domainLabel:`網域`,domainRegisteredToast:`網域 {domain} 已註冊。`,domainReleaseFailedToast:`釋出網域失敗。`,domainReleasedToast:`網域已釋出。`,emailAddressLabel:`電子郵件地址`,emailCreatedToast:`電子郵件地址已建立。`,emailRemoveFailedToast:`移除電子郵件地址失敗。`,emailRemovedToast:`電子郵件地址已移除。`,emailUsernameAriaLabel:`電子郵件使用者名稱`,emailUsernamePlaceholder:`hi`,enterSubdomainError:`請輸入子網域。`,enterUsernameError:`請輸入電子郵件使用者名稱。`,register:`註冊`,registerDomainFailedFallback:`註冊網域失敗。`,registering:`正在註冊…`,releaseConfirm:`釋出`,releaseDomainAriaLabel:`釋出網域`,releaseDomainConfirmMessage:`您確定要釋出 <code>{domain}</code> 嗎?此子網域將可供其他人認領。`,releaseDomainTitle:`釋出網域`,removeAddressFirstToast:`請先移除電子郵件地址。`,removeConfirm:`移除`,removeEmailAriaLabel:`移除電子郵件地址`,removeEmailConfirmMessage:`您確定要移除 <code>{address}</code> 嗎?您的助理將無法再透過此地址傳送或接收電子郵件。`,removeEmailTitle:`移除電子郵件地址`,repairConfirmMessage:`將保留您現有的電子郵件地址。設定會為 <code>{domain}</code> 聯絡電子郵件供應商和 DNS。`,repairConfirmTitle:`完成網域設定?`,repairFailedFallback:`無法開始網域設定。請稍後再試。`,repairNoticeBody:`您的電子郵件地址已就緒,但此網域尚未在電子郵件供應商處設定。完成設定後即可開始傳送和接收郵件。`,repairNoticeTitle:`需要設定網域`,repairStartedToast:`已開始網域設定。驗證通常需要幾分鐘。`,retry:`重試`,setSubdomainConfirmMessage:`<code>{subdomain}</code> 也將成為您助理的公開識別碼。設定後便無法變更。`,setSubdomainTitle:`設定子網域`,subdomainExamplePlaceholder:`my-assistant`,subdomainFallback:`子網域`,subdomainHint:`每個助理都有自己的子網域。僅限小寫字母、數字和連字號。`,subdomainLabel:`子網域`,subscriptionWarningBody:`我們無法連線至帳務服務。以下表單假設您的組織已啟用受管理的電子郵件。如果未啟用,註冊網域將會失敗。`,subscriptionWarningTitle:`無法驗證訂閱狀態`,upgradeButton:`升級`,upgradeNoticeBody:`升級至包含助理電子郵件地址的方案。無需供應商設定。`,upgradeNoticeTitle:`為您的助理提供專屬電子郵件地址`,usageSummary:`今日已傳送 {sent} / {limit} · 已接收 {received}`},_={assistantChannelsList:e,channelAdapterList:t,connectionCard:n,slackChannelCard:r,channelPanel:i,pluginChannelPanel:a,channelTrustFloor:o,slackChannelTypeDefaults:s,tierPicker:c,slackChannelTierLegend:l,slackChannelSection:u,slackThreadBehavior:d,slackChannelList:f,twilioCredentialEntry:p,channelMeta:m,emailChannelSection:h,emailManagedContent:g};export{e as assistantChannelsList,t as channelAdapterList,m as channelMeta,i as channelPanel,o as channelTrustFloor,n as connectionCard,_ as default,h as emailChannelSection,g as emailManagedContent,a as pluginChannelPanel,r as slackChannelCard,f as slackChannelList,u as slackChannelSection,l as slackChannelTierLegend,s as slackChannelTypeDefaults,d as slackThreadBehavior,c as tierPicker,p as twilioCredentialEntry};
9
+ 請務必謹慎啟用。`,confirmAction:`允許陌生人`}},s={heading:`預設存取權`,subtitle:`{assistant} 根據對話類型自行執行的程度。個別頻道可以在下方覆寫此設定,而 <trustRules>信任規則</trustRules> 則會微調何時進行詢問。`,bucketAria:`{bucket} 的預設助理存取權`},c={defaultSuffix:`預設`,defaultPlaceholder:`預設`},l={defaultMarker:`· 預設`},u={overridesLoadFailed:`無法載入存取設定。這些控制項在載入完成前將保持停用狀態。請嘗試重新開啟此頁面。`,perChannelOverrides:`每個頻道的覆寫設定`},d={heading:`執行緒行為`,selectAria:`Slack 執行緒行為`,mentionsOnly:`僅提及`,mentionsOnlyHelp:`機器人僅在被 @提及時回應。`,followThreads:`首次提及後追蹤執行緒`,followThreadsHelp:`在執行緒中被 @提及後,機器人會監聽該執行緒的其餘部分。`},f={presenceHint:`在該 Slack 頻道中,使用 <invite>/invite {handle}</invite> 新增,或使用 <remove>/remove {handle}</remove> 移除。此處僅顯示 {assistant} 所在的頻道。`,loading:`正在載入…`,loadFailed:`無法載入頻道。請嘗試重新開啟此頁面。`,emptyTitle:`尚未有頻道`,searchPlaceholder:`搜尋頻道`,searchAria:`搜尋頻道`,filterGroupAria:`依類型篩選頻道`,noMatches:`無符合的頻道。`,accessAria:`{channel} 中的助理存取權`,filterAll:`{count, plural, other {全部 (#)}}`,filterPublic:`{count, plural, other {公開 (#)}}`,filterPrivate:`{count, plural, other {私人 (#)}}`},p={accountSid:`帳號 SID`,authToken:`驗證權杖`,authTokenPlaceholder:`Twilio 驗證權杖`,saving:`正在儲存…`,save:`儲存`},m={slack:{label:`Slack`,disconnectMessage:`這會清除此助理儲存的 Slack 機器人與應用程式權杖。您可以稍後重新連線。`},telegram:{label:`Telegram`,disconnectMessage:`這會清除此助理儲存的 Telegram 機器人權杖。您可以稍後重新連線。`,disconnectedPitch:`連線 Telegram 機器人,讓 {assistant} 可以在 Telegram 上傳送及接收訊息。`},discord:{label:`Discord`,disconnectedPitch:`連線 Discord 機器人,讓 {assistant} 可以在您的伺服器中讀取及回覆。`,disconnectMessage:`這會清除此助理儲存的 Discord 機器人權杖,且機器人將停止接收訊息。您的伺服器會保留該機器人,直到您從伺服器中移除為止。`},email:{label:`電子郵件`},phone:{label:`電話通話`,disconnectMessage:`這會清除此助理儲存的 Twilio 憑證。您可以稍後重新連線。`,disconnectedPitch:`連線您的 Twilio 帳號,讓 {assistant} 可以撥打及接聽電話。`}},h={apiKeyConfigured:`{providerName} API 金鑰已設定。若要重新設定,請執行 <code>{setupSkill}</code> 技能。`,connecting:`正在連線至 Vellum 平台…`,openProvider:`開啟 {providerName}`,platformLoginNotice:`登入 Vellum 平台以管理電子郵件設定。`,providerLabel:`供應商`,saveSuccessToast:`電子郵件設定已儲存。`,setupInstructions:`透過助理 CLI 設定 {providerName}:要求助理執行 <code>{setupSkill}</code> 技能。它會引導您儲存 API 金鑰、偵測網域,以及 (選用) 設定傳入 Webhook。`,subtitle:`設定您的助理如何傳送及接收電子郵件`,title:`電子郵件`},g={addressLabel:`地址`,checkingSubscription:`正在檢查訂閱…`,completeSetup:`完成網域設定`,completingSetup:`正在完成設定…`,confirm:`確認`,create:`建立`,createEmailFailedFallback:`建立電子郵件地址失敗。`,creating:`正在建立…`,domainLabel:`網域`,domainRegisteredToast:`網域 {domain} 已註冊。`,domainReleaseFailedToast:`釋出網域失敗。`,domainReleasedToast:`網域已釋出。`,emailAddressLabel:`電子郵件地址`,emailCreatedToast:`電子郵件地址已建立。`,emailRemoveFailedToast:`移除電子郵件地址失敗。`,emailRemovedToast:`電子郵件地址已移除。`,emailUsernameAriaLabel:`電子郵件使用者名稱`,emailUsernamePlaceholder:`hi`,enterSubdomainError:`請輸入子網域。`,enterUsernameError:`請輸入電子郵件使用者名稱。`,inboxSetupBody:`助理的地址在助理收件匣中建立,其郵件也在那裡閱讀。開啟收件匣以選擇地址。`,inboxSetupButton:`開啟助理收件匣`,inboxSetupTitle:`在助理收件匣中設定電子郵件`,register:`註冊`,registerDomainFailedFallback:`註冊網域失敗。`,registering:`正在註冊…`,releaseConfirm:`釋出`,releaseDomainAriaLabel:`釋出網域`,releaseDomainConfirmMessage:`您確定要釋出 <code>{domain}</code> 嗎?此子網域將可供其他人認領。`,releaseDomainTitle:`釋出網域`,removeAddressFirstToast:`請先移除電子郵件地址。`,removeConfirm:`移除`,removeEmailAriaLabel:`移除電子郵件地址`,removeEmailConfirmMessage:`您確定要移除 <code>{address}</code> 嗎?您的助理將無法再透過此地址傳送或接收電子郵件。`,removeEmailTitle:`移除電子郵件地址`,repairConfirmMessage:`將保留您現有的電子郵件地址。設定會為 <code>{domain}</code> 聯絡電子郵件供應商和 DNS。`,repairConfirmTitle:`完成網域設定?`,repairFailedFallback:`無法開始網域設定。請稍後再試。`,repairNoticeBody:`您的電子郵件地址已就緒,但此網域尚未在電子郵件供應商處設定。完成設定後即可開始傳送和接收郵件。`,repairNoticeTitle:`需要設定網域`,repairStartedToast:`已開始網域設定。驗證通常需要幾分鐘。`,retry:`重試`,setSubdomainConfirmMessage:`<code>{subdomain}</code> 也將成為您助理的公開識別碼。設定後便無法變更。`,setSubdomainTitle:`設定子網域`,subdomainExamplePlaceholder:`my-assistant`,subdomainFallback:`子網域`,subdomainHint:`每個助理都有自己的子網域。僅限小寫字母、數字和連字號。`,subdomainLabel:`子網域`,subscriptionWarningBody:`我們無法連線至帳務服務。以下表單假設您的組織已啟用受管理的電子郵件。如果未啟用,註冊網域將會失敗。`,subscriptionWarningTitle:`無法驗證訂閱狀態`,upgradeButton:`升級`,upgradeNoticeBody:`升級至包含助理電子郵件地址的方案。無需供應商設定。`,upgradeNoticeTitle:`為您的助理提供專屬電子郵件地址`,usageSummary:`今日已傳送 {sent} / {limit} · 已接收 {received}`},_={assistantChannelsList:e,channelAdapterList:t,connectionCard:n,slackChannelCard:r,channelPanel:i,pluginChannelPanel:a,channelTrustFloor:o,slackChannelTypeDefaults:s,tierPicker:c,slackChannelTierLegend:l,slackChannelSection:u,slackThreadBehavior:d,slackChannelList:f,twilioCredentialEntry:p,channelMeta:m,emailChannelSection:h,emailManagedContent:g};export{e as assistantChannelsList,t as channelAdapterList,m as channelMeta,i as channelPanel,o as channelTrustFloor,n as connectionCard,_ as default,h as emailChannelSection,g as emailManagedContent,a as pluginChannelPanel,r as slackChannelCard,f as slackChannelList,u as slackChannelSection,l as slackChannelTierLegend,s as slackChannelTypeDefaults,d as slackThreadBehavior,c as tierPicker,p as twilioCredentialEntry};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{$C as t,$f as n,$h as r,AS as i,BC as a,BS as o,Bu as s,C as c,Cs as l,D as u,Di as d,E as f,FS as p,Fu as m,Gd as h,H as g,HC as _,Hu as v,Iu as y,Ji as b,Jp as x,Jv as S,KC as C,Kp as w,Ku as T,LS as E,Lf as D,Lu as O,Lv as k,MC as A,MS as j,Mu as ee,Nu as M,O as N,OC as P,PC as F,PS as I,Pd as te,Ps as L,Pu as ne,Qf as R,Qh as z,Rf as B,Ru as re,S as ie,Ss as V,T as ae,TC as oe,U as se,Uu as ce,Vu as le,W as H,WS as U,Wu as ue,Xf as de,Xh as W,Xi as fe,Xp as pe,Xv as me,Yp as G,Yv as he,Zf as ge,Zh as _e,Zi as K,aC as ve,b as ye,ca as be,cc as xe,da as Se,dc as Ce,eC as we,eg as Te,ep as Ee,eu as De,fC as Oe,fa as ke,fc as Ae,fp as je,hC as q,hc as Me,hp as Ne,iC as Pe,iS as Fe,ih as Ie,la as Le,lc as Re,mC as ze,mc as Be,mp as Ve,nt as He,pc as Ue,pp as We,qu as Ge,qv as Ke,rw as qe,tc as Je,tw as Ye,uc as Xe,vC as Ze,wC as Qe,wn as $e,x as et,xS as tt,xv as nt,y as rt,yh as it,zC as at,zg as ot,zu as st,zy as ct}from"./app--CZi-eoZ.js";import{$n as J,E as Y,O as X,Xn as Z,nr as lt}from"./vendor-DLH51Vjf.js";import{_ as ut,d as dt,f as ft,h as pt,n as mt,t as ht,x as gt}from"./react-B9IgSVeK.js";import{A as _t,Dn as vt,Ji as yt,Rt as bt,Ui as xt,Vn as St,Yn as Ct,Zr as wt,br as Tt,fr as Et,on as Dt,qi as Ot,qn as kt,vt as At,wi as jt,zi as Mt}from"./icons-C0wyat6T.js";import{n as Nt,t as Pt}from"./assistant-inbox-upgrade-body-CBD3c6AS.js";import{t as Ft}from"./detail-card-D4zKx03d.js";import{t as It}from"./assistant-handle-modal-DU_Bi5lj.js";import{a as Lt,i as Rt,n as zt,o as Bt,r as Vt,t as Ht}from"./use-invite-link-dialog-BFYX67b2.js";import{t as Ut}from"./use-side-list-room-DCJYSksY.js";import{i as Wt,r as Gt}from"./service-form-controls-DdbS5OAS.js";var Q=e(gt(),1);function Kt(){let{channelId:e}=pt(),t=ft(),{search:n}=dt();return{selected:e,select:(0,Q.useCallback)(e=>{t({pathname:`/assistant/channels/${encodeURIComponent(e)}`,search:n},{replace:!0})},[t,n])}}var $=ht();function qt({channels:e,pluginChannels:t=[],selectedKey:n,onSelect:r}){return(0,$.jsx)(a.Root,{className:`flex h-full flex-col overflow-hidden`,children:(0,$.jsx)(a.Body,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-4`,children:(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[e.map(e=>(0,$.jsx)(Jt,{channel:e,selected:e.key===n,onClick:()=>r(e.key)},e.key)),t.map(e=>(0,$.jsx)(Yt,{channel:e,selected:e.key===n,onClick:()=>r(e.key)},e.key))]})})})}function Jt({channel:e,selected:t,onClick:n}){let r=e.status===`ready`,i=Se(e.key),a=r?`Connected`:`Not connected`;return(0,$.jsx)(C,{asChild:!0,active:t,"aria-label":`${i}, ${a}`,children:(0,$.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,$.jsx)(be,{channelId:e.key,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default`,children:i}),(0,$.jsx)(`span`,{className:`flex shrink-0 items-center`,children:(0,$.jsx)(F,{tone:r?`positive`:`neutral`,children:a})})]})})}function Yt({channel:e,selected:t,onClick:n}){let{t:r}=Y(`channels`);return(0,$.jsx)(C,{asChild:!0,active:t,"aria-label":r(`channelAdapterList.pluginChannelAria`,{channel:e.label}),children:(0,$.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,$.jsx)(Le,{icon:e.icon,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default`,children:e.label}),(0,$.jsx)(bt,{"aria-hidden":!0,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`})]})})}function Xt({icon:e,title:t,description:n,action:r,className:i}){return(0,$.jsxs)(`div`,{className:qe(`flex flex-col items-center justify-center gap-3 px-4 py-12 text-center`,i),children:[e?(0,$.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,$.jsx)(`h3`,{className:`text-title-small text-[var(--content-default)]`,children:t}),n?(0,$.jsx)(`p`,{className:`max-w-md text-body-medium-lighter text-[color:var(--content-tertiary)]`,children:n}):null,r?(0,$.jsx)(`div`,{className:`mt-1`,children:r}):null]})}var Zt=[`no_one`,`guardian_only`,`trusted_contacts`,`any_contact`,`strangers`],Qt=new Set([`platform`,`a2a`]),$t=new Set([`vellum`,`whatsapp`]);function en(e){return $t.has(e)}var tn={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 nn({assistantDisplayName:e,policy:t,saving:n=!1,loading:r=!1,error:i=!1,onChange:a}){let{t:o}=Y(`channels`),s=t??`trusted_contacts`,c=Zt.map(t=>({value:t,label:o(tn[t].labelKey),tooltip:o(tn[t].descriptionKey,{assistant:e})})),[l,u]=(0,Q.useState)(null),d=l?tn[l].confirm:void 0;return(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,$.jsx)(_,{as:`span`,variant:`body-small-emphasised`,className:`text-[color:var(--content-secondary)]`,children:o(`channelTrustFloor.heading`,{assistant:e})}),r?(0,$.jsx)(_,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:o(`channelTrustFloor.loading`)}):i?(0,$.jsx)(_,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--system-negative-strong)]`,children:o(`channelTrustFloor.loadFailed`)}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{style:{maxWidth:280},children:(0,$.jsx)(Oe,{value:s,onChange:e=>{if(tn[e].confirm){u(e);return}a(e)},options:c,disabled:n,"aria-label":o(`channelTrustFloor.selectAria`,{assistant:e})})}),(0,$.jsx)(_,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:o(tn[s].descriptionKey,{assistant:e})}),s===`trusted_contacts`?(0,$.jsx)(at,{tone:`info`,className:`max-w-lg`,children:o(`channelTrustFloor.trustedContactsNotice`,{assistant:e})}):null]}),(0,$.jsx)(ze,{open:l!==null,title:d?o(d.titleKey):``,message:d?o(d.messageKey):``,confirmLabel:o(d?d.actionKey:`channelTrustFloor.confirmFallback`),destructive:d?.destructive??!1,onConfirm:()=>{l&&a(l),u(null)},onCancel:()=>u(null)})]})}function rn({mode:e,onChange:t}){let{t:n}=Y(`common`);return(0,$.jsx)(`div`,{className:`max-w-[280px]`,children:(0,$.jsx)(Ze,{ariaLabel:n(`serviceCard.modeToggleAriaLabel`),value:e,onChange:t,items:[{value:`managed`,label:n(`serviceCard.managedLabel`)},{value:`your-own`,label:n(`serviceCard.yourOwnLabel`)}]})})}function an({id:e,title:t,subtitle:n,mode:r,onModeChange:i,children:a}){return(0,$.jsxs)(Ft,{id:e,title:t,subtitle:n,accessory:(0,$.jsx)(rn,{mode:r,onChange:i}),children:[(0,$.jsx)(`div`,{className:`h-px bg-[var(--surface-active)]`}),(0,$.jsx)(`div`,{className:`mt-4`,children:a})]})}function on(e,t){return e===`managed`||e===`your-own`?e:t}function sn({align:e=`center`}){let{t:n}=Y(`assistant-inbox`),{hidden:r,restore:i}=b();return r?(0,$.jsxs)(`div`,{className:qe(`flex flex-wrap items-center gap-x-2 gap-y-1 text-body-small-lighter text-[var(--content-tertiary)]`,e===`center`?`justify-center`:`justify-start`),children:[(0,$.jsx)(`span`,{children:n(`inboxRailRestore.hiddenNote`)}),(0,$.jsx)(t,{variant:`ghost`,size:`compact`,leftIcon:(0,$.jsx)(Dt,{}),onClick:()=>{i(),q.success(n(`inboxRailRestore.restoredToast`))},children:n(`inboxRailRestore.restoreButton`)})]}):null}function cn({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}=Y(`settings`);return(0,$.jsxs)(`div`,{children:[(0,$.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,$.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,$.jsxs)(`span`,{className:`shrink-0 pr-3 font-mono text-[var(--content-secondary)]`,children:[`.`,n]})]}),s&&(0,$.jsx)(`p`,{className:`mt-1.5 text-body-small-default text-[var(--system-negative-strong)]`,children:s}),c&&l&&(0,$.jsx)(`p`,{className:`mt-1.5 text-body-small-default text-[var(--content-tertiary)]`,children:l})]})}function ln({status:e,isLoading:t}){let{t:n}=Y(`common`);return t?(0,$.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,$.jsx)(Ct,{className:`h-3 w-3 animate-spin`}),n(`domainVerificationChip.checkingDomain`)]}):!e||e===`unknown`?(0,$.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,$.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,$.jsx)(yt,{className:`h-3 w-3`}),n(`domainVerificationChip.domainVerified`)]}):e===`pending`?(0,$.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,$.jsx)(jt,{className:`h-3 w-3`}),n(`domainVerificationChip.verifyingDomain`)]}):e===`not_started`?(0,$.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,$.jsx)(xt,{className:`h-3 w-3`}),n(`domainVerificationChip.setupRequired`)]}):(0,$.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,$.jsx)(xt,{className:`h-3 w-3`}),n(`domainVerificationChip.verificationFailed`)]})}var un=`rounded bg-[var(--surface-active)] px-1 py-0.5 font-mono text-[0.9em]`,dn=1e4;function fn(e){return e===`verified`||e===`failed`||e===`not_started`?!1:dn}function pn({assistantId:e,assistantHandle:n,emailRootDomain:r}){let{t:a}=Y(`channels`),o=lt(),c=ft(),[l,u]=ut(),[d,f]=(0,Q.useState)(``),[p,g]=(0,Q.useState)(!1),[_,b]=(0,Q.useState)(null),[x,S]=(0,Q.useState)(``),[C,w]=(0,Q.useState)(null),[T,D]=(0,Q.useState)(!1),[k,A]=(0,Q.useState)(!1),[j,N]=(0,Q.useState)(!1),[P,F]=(0,Q.useState)(!1),[I,L]=(0,Q.useState)(null);(0,Q.useEffect)(()=>{p||!n||d||(f(n),g(!0))},[n,p,d]);let R=J({...te(),enabled:!0}),z=R.data,B=z?.entitlements,ie=B?.managed_email===!0,V=!!B&&!ie,ae=!z&&R.isError&&!R.isFetching,oe=J({...ne({path:{assistant_id:e}}),enabled:!V}),se=J({...le({path:{assistant_id:e}}),enabled:!V}),H=oe.data?.results?.[0],U=se.data?.results?.[0],de=H?`${H.subdomain}.${r}`:null,W=J({...ce({path:{assistant_id:e,id:U?.id??``}}),enabled:!!U?.id,refetchOnWindowFocus:!1}),fe=J({...y({path:{assistant_id:e,id:H?.id??``}}),enabled:!!H?.id,refetchInterval:e=>fn(e.state.data?.status),refetchOnWindowFocus:!0});(0,Q.useEffect)(()=>{l.get(`release`)!==`1`||!H||U||(A(!0),u(e=>{let t=new URLSearchParams(e);return t.delete(`release`),t},{replace:!0}))},[U,H,l,u]);let pe=Z(ee()),me=Z(M()),G=h(),he=Z(st()),ge=Z(s()),_e=Z(Ne()),K=(0,Q.useCallback)(()=>{let t={assistant_id:e};o.invalidateQueries({queryKey:m({path:t})}),o.invalidateQueries({queryKey:v({path:t})}),U?.id&&o.invalidateQueries({queryKey:ue({path:{...t,id:U.id}})}),o.invalidateQueries({queryKey:Ge()})},[U?.id,e,o]),ve=He(),ye=Fe.use.name(),be=nt.use.assistantInbox(),xe=It(ve),Se=_e.mutateAsync,Ce=(0,Q.useCallback)(()=>{Se({path:{assistant_id:ve},body:{channel:`email`}}).catch(()=>{}).finally(()=>{o.invalidateQueries({queryKey:Ve({path:{assistant_id:ve}})})})},[ve,o,Se]),we=(0,Q.useCallback)(async()=>{let t=d.trim().toLowerCase();if(!t){b(a(`emailManagedContent.enterSubdomainError`));return}D(!1);try{await pe.mutateAsync({path:{assistant_id:e},body:{subdomain:t}}),f(``),b(null),K(),q.success(a(`emailManagedContent.domainRegisteredToast`,{domain:`${t}.${r}`}))}catch(e){b(E(e,void 0,a(`emailManagedContent.registerDomainFailedFallback`)))}},[e,r,K,pe,d,a]),Te=(0,Q.useCallback)(async()=>{let t=x.trim().toLowerCase();if(!t){w(a(`emailManagedContent.enterUsernameError`));return}try{await he.mutateAsync({path:{assistant_id:e},body:{username:t}}),S(``),w(null),K(),Ce(),q.success(a(`emailManagedContent.emailCreatedToast`))}catch(e){w(E(e,void 0,a(`emailManagedContent.createEmailFailedFallback`)))}},[e,K,Ce,he,x,a]),Ee=(0,Q.useCallback)(async()=>{if(U?.id){N(!1);try{await ge.mutateAsync({path:{assistant_id:e,id:U.id}}),K(),Ce(),q.success(a(`emailManagedContent.emailRemovedToast`))}catch(e){i(e,{context:`email_address_delete`}),q.error(a(`emailManagedContent.emailRemoveFailedToast`))}}},[U?.id,e,ge,K,Ce,a]),De=(0,Q.useCallback)(async()=>{if(!(!H?.id||G.isPending)){L(null);try{let t=await G.mutateAsync({path:{assistant_id:e,id:H.id}});F(!1),re(o,{path:{assistant_id:e,id:H.id}},t),o.invalidateQueries({queryKey:O({path:{assistant_id:e,id:H.id}})}),q.success(a(`emailManagedContent.repairStartedToast`))}catch(e){i(e,{context:`email_domain_provision`});let t=E(e,void 0,a(`emailManagedContent.repairFailedFallback`));L(t),q.error(t)}}},[e,H?.id,G,o,a]),Oe=(0,Q.useCallback)(async()=>{if(!H?.id)return;if(U){q.error(a(`emailManagedContent.removeAddressFirstToast`));return}A(!1);let t=H.subdomain;try{await me.mutateAsync({path:{assistant_id:e,id:H.id}}),f(t),K(),q.success(a(`emailManagedContent.domainReleasedToast`))}catch(e){i(e,{context:`email_domain_release`}),q.error(a(`emailManagedContent.domainReleaseFailedToast`))}},[U,e,me,H?.id,H?.subdomain,K,a]);if(R.isLoading)return(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,$.jsx)(Ct,{className:`h-4 w-4 animate-spin`}),a(`emailManagedContent.checkingSubscription`)]});if(V&&be)return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Pt,{assistantId:ve,assistantName:ye??``,handle:n??``,rootDomain:r,onEditHandle:xe.openModal??void 0,onUpgrade:()=>c(tt.plans),onSeePlans:()=>c(tt.plans),footnote:(0,$.jsx)(sn,{align:`start`}),align:`start`}),xe.modal]});if(V)return(0,$.jsx)(at,{tone:`info`,icon:(0,$.jsx)(St,{className:`h-4 w-4`,"aria-hidden":!0}),title:a(`emailManagedContent.upgradeNoticeTitle`),actions:(0,$.jsx)(t,{size:`compact`,onClick:()=>c(tt.plans),children:a(`emailManagedContent.upgradeButton`)}),children:a(`emailManagedContent.upgradeNoticeBody`)});let ke=ae?(0,$.jsx)(at,{tone:`warning`,title:a(`emailManagedContent.subscriptionWarningTitle`),actions:(0,$.jsx)(t,{size:`compact`,variant:`outlined`,onClick:()=>R.refetch(),children:a(`emailManagedContent.retry`)}),children:a(`emailManagedContent.subscriptionWarningBody`)}):null,Ae=be?(0,$.jsx)(at,{tone:`info`,icon:(0,$.jsx)(St,{className:`h-4 w-4`,"aria-hidden":!0}),title:a(`emailManagedContent.inboxSetupTitle`),actions:(0,$.jsx)(t,{size:`compact`,onClick:()=>c(tt.assistantInbox),"data-testid":`email-inbox-setup-button`,children:a(`emailManagedContent.inboxSetupButton`)}),children:a(`emailManagedContent.inboxSetupBody`)}):null;return H?U?(0,$.jsxs)(`div`,{className:`space-y-4`,children:[ke,(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:a(`emailManagedContent.addressLabel`)}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`font-mono text-body-small-default text-[var(--content-default)]`,children:U.address}),(0,$.jsx)(ln,{status:fe.data?.status,isLoading:fe.isLoading}),(0,$.jsx)(t,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,$.jsx)(_t,{}),onClick:()=>N(!0),disabled:ge.isPending,"aria-label":a(`emailManagedContent.removeEmailAriaLabel`)})]}),(0,$.jsx)(ze,{open:j,title:a(`emailManagedContent.removeEmailTitle`),message:(0,$.jsx)(X,{i18nKey:`emailManagedContent.removeEmailConfirmMessage`,ns:`channels`,values:{address:U.address},components:{code:(0,$.jsx)(`code`,{className:un})}}),confirmLabel:a(`emailManagedContent.removeConfirm`),destructive:!0,onConfirm:Ee,onCancel:()=>N(!1)})]}),fe.data?.status===`not_started`&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(at,{tone:`warning`,title:a(`emailManagedContent.repairNoticeTitle`),actions:(0,$.jsx)(t,{size:`compact`,onClick:()=>{L(null),F(!0)},disabled:G.isPending,children:G.isPending?a(`emailManagedContent.completingSetup`):a(`emailManagedContent.completeSetup`)}),children:a(`emailManagedContent.repairNoticeBody`)}),(0,$.jsx)(ze,{open:P,title:a(`emailManagedContent.repairConfirmTitle`),message:(0,$.jsx)(X,{i18nKey:`emailManagedContent.repairConfirmMessage`,ns:`channels`,values:{domain:de},components:{code:(0,$.jsx)(`code`,{className:un})}}),confirmLabel:a(`emailManagedContent.completeSetup`),isPending:G.isPending,error:I,onConfirm:()=>{De()},onCancel:()=>{G.isPending||F(!1)}})]}),W.data?.usage&&(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:a(`emailManagedContent.usageSummary`,{sent:W.data.usage.sent_today,limit:W.data.usage.daily_limit,received:W.data.usage.received_today})})]}):(0,$.jsxs)(`div`,{className:`space-y-4`,children:[ke,(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:a(`emailManagedContent.domainLabel`)}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsxs)(`span`,{className:`font-mono text-body-small-default text-[var(--content-default)]`,children:[H.subdomain,`.`,r]}),(0,$.jsx)(ln,{status:fe.data?.status,isLoading:fe.isLoading}),(0,$.jsx)(t,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,$.jsx)(_t,{}),onClick:()=>A(!0),disabled:me.isPending,"aria-label":a(`emailManagedContent.releaseDomainAriaLabel`)})]}),(0,$.jsx)(ze,{open:k,title:a(`emailManagedContent.releaseDomainTitle`),message:(0,$.jsx)(X,{i18nKey:`emailManagedContent.releaseDomainConfirmMessage`,ns:`channels`,values:{domain:`${H.subdomain}.${r}`},components:{code:(0,$.jsx)(`code`,{className:un})}}),confirmLabel:a(`emailManagedContent.releaseConfirm`),destructive:!0,onConfirm:Oe,onCancel:()=>A(!1)})]}),Ae??(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:a(`emailManagedContent.emailAddressLabel`)}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.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,$.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,$.jsxs)(`span`,{className:`shrink-0 pr-3 font-mono text-[var(--content-secondary)]`,children:[`@`,de]})]}),(0,$.jsx)(t,{onClick:Te,disabled:he.isPending||!x.trim(),children:he.isPending?a(`emailManagedContent.creating`):a(`emailManagedContent.create`)})]}),C&&(0,$.jsx)(`p`,{className:`text-body-small-default text-[var(--system-negative-strong)]`,children:C})]})]}):Ae?(0,$.jsxs)(`div`,{className:`space-y-3`,children:[ke,Ae]}):(0,$.jsxs)(`div`,{className:`space-y-3`,children:[ke,(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:a(`emailManagedContent.subdomainLabel`)}),(0,$.jsx)(cn,{subdomain:d,onSubdomainChange:e=>{f(e),_&&b(null)},domainSuffix:r,subdomainPlaceholder:a(`emailManagedContent.subdomainExamplePlaceholder`),error:_}),(0,$.jsx)(`p`,{className:`text-body-small-lighter text-[var(--content-tertiary)]`,children:a(`emailManagedContent.subdomainHint`)}),(0,$.jsx)(t,{onClick:()=>D(!0),disabled:pe.isPending||!d.trim(),children:pe.isPending?a(`emailManagedContent.registering`):a(`emailManagedContent.register`)}),(0,$.jsx)(ze,{open:T,title:a(`emailManagedContent.setSubdomainTitle`),message:(0,$.jsx)(X,{i18nKey:`emailManagedContent.setSubdomainConfirmMessage`,ns:`channels`,values:{subdomain:d.trim().toLowerCase()||a(`emailManagedContent.subdomainFallback`)},components:{code:(0,$.jsx)(`code`,{className:un})}}),confirmLabel:a(`emailManagedContent.confirm`),onConfirm:we,onCancel:()=>D(!1)})]})}function mn(){let{t:e}=Y(`channels`),t=He(),n=Ie(),{data:r}=J({...T(),enabled:n}),a=r?.results?.[0]?.handle,s=fe.use.emailRootDomain(),c=it(),[u,d]=(0,Q.useState)(()=>c===`gated`?`your-own`:on(o(l,`managed`),`managed`)),[f,p]=(0,Q.useState)(()=>{let e=o(V,`resend`);return e===`mailgun`||e===`resend`?e:`resend`}),{platformAssistantId:m,error:h}=K(t,c===`full`&&u===`managed`),g=m??(h?t:null),_=J({queryKey:[`byoEmailCredential`,t,f],queryFn:async()=>{let{data:e}=await k({path:{assistant_id:t},body:{service:f,field:`api_key`},throwOnError:!0});return e},enabled:u===`your-own`||c===`gated`,staleTime:6e4,retry:j,meta:{errorContext:`byo_email_credential_check`}});(0,Q.useEffect)(()=>{_.error&&i(_.error,{context:`byo_email_credential_check`,bestEffort:!0})},[_.error]);let v=_.data?.hasSecret===!0,y=nt.use.assistantInbox(),b=Nt(Fe.use.name()??``),{data:x}=J({...te(),enabled:y&&n&&c===`full`}),S=y&&c===`full`&&u===`managed`&&g!==null&&!!x?.entitlements&&x.entitlements.managed_email!==!0,C=(0,Q.useCallback)(e=>{d(e),U(l,e)},[]),w=(0,Q.useCallback)(()=>{U(V,f),q.success(e(`emailChannelSection.saveSuccessToast`))},[f,e]),E=(0,Q.useMemo)(()=>L.find(e=>e.id===f)??L[0],[f]),D=(0,$.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,$.jsx)(Et,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--system-positive-strong)]`}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,$.jsx)(`span`,{children:(0,$.jsx)(X,{i18nKey:`emailChannelSection.setupInstructions`,ns:`channels`,values:{providerName:E.displayName,setupSkill:E.setupSkill},components:{code:(0,$.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 text-[12px]`})}})}),(0,$.jsxs)(ct,{href:E.docsUrl,tone:`default`,className:`inline-flex items-center gap-1`,glyph:!1,children:[e(`emailChannelSection.openProvider`,{providerName:E.displayName}),(0,$.jsx)(wt,{className:`h-3 w-3`})]})]})]}),O=(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e(`emailChannelSection.providerLabel`)}),(0,$.jsx)(Oe,{value:f,onChange:e=>{(e===`mailgun`||e===`resend`)&&p(e)},options:L.map(e=>({value:e.id,label:e.displayName}))})]}),v?(0,$.jsxs)(`div`,{className:`space-y-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-[var(--system-positive-weak)] bg-[var(--surface-sunken)] p-3 text-body-small-default text-[var(--content-default)]`,children:[(0,$.jsx)(Mt,{className:`h-4 w-4 shrink-0 text-[var(--system-positive-strong)]`}),(0,$.jsx)(`span`,{children:(0,$.jsx)(X,{i18nKey:`emailChannelSection.apiKeyConfigured`,ns:`channels`,values:{providerName:E.displayName,setupSkill:E.setupSkill},components:{code:(0,$.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 text-[12px]`})}})})]}),(0,$.jsxs)(ct,{href:E.docsUrl,tone:`default`,className:`inline-flex items-center gap-1 text-body-small-default`,glyph:!1,children:[e(`emailChannelSection.openProvider`,{providerName:E.displayName}),(0,$.jsx)(wt,{className:`h-3 w-3`})]})]}):D,(0,$.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,$.jsx)(Gt,{onClick:w,disabled:!1})})]});return c===`gated`?(0,$.jsx)(Wt,{id:`email`,title:e(`emailChannelSection.title`),subtitle:e(`emailChannelSection.subtitle`),children:O}):(0,$.jsx)(an,{id:`email`,title:S?b.title:e(`emailChannelSection.title`),subtitle:S?b.subtitle:e(`emailChannelSection.subtitle`),mode:u,onModeChange:C,children:u===`managed`?(0,$.jsx)(`div`,{className:`space-y-4`,children:c===`disabled`?(0,$.jsx)($e,{children:e(`emailChannelSection.platformLoginNotice`)}):g===null?(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,$.jsx)(Ct,{className:`h-4 w-4 animate-spin`}),e(`emailChannelSection.connecting`)]}):(0,$.jsx)(pn,{assistantId:g,assistantHandle:a,emailRootDomain:s})}):O})}function hn({health:e}){let{Icon:t,label:n,tone:r}=ke(e);return(0,$.jsx)(F,{tone:r,leftIcon:(0,$.jsx)(t,{}),children:n})}function gn({address:e,health:n,pending:r,onDisconnect:i}){let{t:a}=Y(`channels`);return(0,$.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,$.jsx)(hn,{health:n}),e?(0,$.jsx)(`span`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e}):null,(0,$.jsx)(`div`,{className:`ml-auto`,children:(0,$.jsx)(t,{type:`button`,variant:`danger`,onClick:i,disabled:!i||r,children:a(r?`connectionCard.disconnecting`:`connectionCard.disconnect`)})})]})}function _n({children:e}){let{t}=Y(`channels`);return(0,$.jsxs)(a.Root,{children:[(0,$.jsx)(a.Header,{children:(0,$.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,$.jsx)(`img`,{src:d(`/images/integrations/slack.svg`),alt:``,className:`size-8 rounded-lg bg-[var(--surface-sunken)] p-1`}),(0,$.jsx)(_,{as:`span`,variant:`body-medium-default`,children:t(`slackChannelCard.setupHeading`)})]})}),(0,$.jsx)(a.Body,{children:e})]})}g.map(e=>e.riskThreshold);var vn=[`none`,`low`];function yn(e){if(e!==void 0)return e===`none`?`none`:`low`}var bn={none:{label:se(`none`).label,sublabel:`asks every time`,tone:`negative`,dotColor:`var(--system-negative-strong)`},low:{label:se(`low`).label,sublabel:`safe lookups`,tone:`warning`,dotColor:`var(--system-mid-strong)`},medium:{label:se(`medium`).label,sublabel:`broader lookups`,tone:`info`,dotColor:`var(--system-info-strong)`},high:{label:se(`high`).label,sublabel:`any lookup`,tone:`positive`,dotColor:`var(--system-positive-strong)`}},xn=[`trusted_contact`,`unverified_contact`,`unknown`];function Sn(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 Cn(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 wn(e,t,n){let r;for(let i of e)Cn(i,t,n)&&(i.contactType===`trusted_contact`||r===void 0)&&(r=i.threshold);return r}var Tn=`__default__`;function En({color:e}){return(0,$.jsx)(`span`,{"aria-hidden":`true`,className:`h-1.5 w-1.5 shrink-0 rounded-full`,style:{backgroundColor:e}})}function Dn({tier:e,defaultTier:t,disabled:n,onTierChange:r,onReset:i,"aria-label":a}){let{t:o}=Y(`channels`),s=yn(e??t??void 0),c=yn(t??void 0)??null,l=vn.map(e=>({value:e,label:bn[e].label,icon:(0,$.jsx)(En,{color:bn[e].dotColor}),suffix:e===c?(0,$.jsx)(`span`,{className:`text-[color:var(--content-tertiary)]`,children:o(`tierPicker.defaultSuffix`)}):void 0,tooltip:bn[e].sublabel}));return l.unshift({value:Tn,label:`Default`,icon:(0,$.jsx)(En,{color:`transparent`}),tooltip:`follows the default level`}),(0,$.jsx)(Oe,{value:s??``,onChange:e=>{e===Tn||e===c?i():r(e)},options:l,placeholder:o(`tierPicker.defaultPlaceholder`),disabled:n,size:`compact`,menuAlign:`end`,"aria-label":a})}function On(e){return e.type===`dm`?`dm`:e.isPrivate?`private`:`public`}function kn(e){return e.filter(e=>On(e)!==`dm`)}function An(e,t,n){let r=t.trim().toLowerCase();return e.filter(e=>(n===null||On(e)===n)&&(r===``||e.name.toLowerCase().includes(r))).sort((e,t)=>e.name.localeCompare(t.name))}function jn(e){let t={public:0,private:0,dm:0};for(let n of e)t[On(n)]+=1;return t}function Mn(e){return e.memberCount==null?null:e.memberCount===1?`1 member`:`${e.memberCount} members`}var Nn=[{value:null,labelKey:`slackChannelList.filterAll`},{value:`public`,labelKey:`slackChannelList.filterPublic`},{value:`private`,labelKey:`slackChannelList.filterPrivate`}],Pn={public:Tt,private:kt},Fn=100,In=new Set;function Ln({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=In,onTierChange:d,onTierReset:f}){let{t:p}=Y(`channels`),[m,h]=(0,Q.useState)(``),[g,v]=(0,Q.useState)(null),y=(0,Q.useMemo)(()=>kn(n??[]),[n]),b=(0,Q.useMemo)(()=>An(y,m,g),[y,m,g]),x=(0,Q.useMemo)(()=>jn(y),[y]);return(0,$.jsxs)(`div`,{className:`flex flex-col gap-3 p-4`,children:[(0,$.jsx)(_,{as:`p`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:(0,$.jsx)(X,{i18nKey:`slackChannelList.presenceHint`,ns:`channels`,values:{handle:t??`@${e}`,assistant:e},components:{invite:(0,$.jsx)(`code`,{className:`text-[color:var(--content-secondary)]`}),remove:(0,$.jsx)(`code`,{className:`text-[color:var(--content-secondary)]`})}})}),r?(0,$.jsx)(_,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:p(`slackChannelList.loading`)}):i?(0,$.jsx)(_,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--system-negative-strong)]`,children:p(`slackChannelList.loadFailed`)}):y.length===0?(0,$.jsx)(Xt,{icon:(0,$.jsx)(Tt,{className:`h-6 w-6`}),title:p(`slackChannelList.emptyTitle`)}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,$.jsx)(`div`,{className:`min-w-56 flex-1`,children:(0,$.jsx)(P,{type:`search`,value:m,onChange:e=>h(e.target.value),placeholder:p(`slackChannelList.searchPlaceholder`),"aria-label":p(`slackChannelList.searchAria`),leftIcon:(0,$.jsx)(At,{className:`h-4 w-4`}),fullWidth:!0})}),(0,$.jsx)(`div`,{className:`flex items-center gap-2`,role:`group`,"aria-label":p(`slackChannelList.filterGroupAria`),children:Nn.map(({value:e,labelKey:t})=>{let n=g===e,r=e===null?y.length:x[e];return(0,$.jsx)(`button`,{type:`button`,"aria-pressed":n,onClick:()=>v(e),className:qe(`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,$.jsx)(_,{as:`span`,variant:`body-small-lighter`,className:`py-4 text-center text-[color:var(--content-tertiary)]`,children:p(`slackChannelList.noMatches`)}):b.length>Fn?(0,$.jsx)(`div`,{className:`h-96`,children:(0,$.jsx)(ve,{items:b,computeItemKey:(e,t)=>t.id,itemContent:(e,t)=>(0,$.jsx)(Rn,{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,$.jsx)(`div`,{className:`max-h-96 overflow-y-auto`,children:b.map(e=>(0,$.jsx)(Rn,{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 Rn({channel:e,pending:t,overridesLoading:n,overridesError:r,defaultTier:i,accessControls:a,tierOverride:o,onTierChange:s,onReset:c}){let{t:l}=Y(`channels`),u=On(e);if(u===`dm`)return null;let d=Pn[u],f=Mn(e),p=`[&+&]:border-t [&+&]:border-[var(--border-base)]`;return a?(0,$.jsx)(we,{className:p,leading:(0,$.jsx)(d,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),title:e.name,subtitle:f??void 0,trailing:(0,$.jsx)(`div`,{className:`w-40 sm:w-48`,children:(0,$.jsx)(Dn,{tier:o,defaultTier:i,disabled:t||n||r,onTierChange:s,onReset:c,"aria-label":l(`slackChannelList.accessAria`,{channel:e.name})})})}):(0,$.jsx)(we,{className:p,leading:(0,$.jsx)(d,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),title:e.name,trailing:f==null?void 0:(0,$.jsx)(`span`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:f})})}function zn(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 Bn({defaultTier:e}){let{t}=Y(`channels`),n=yn(e??void 0)??null;return(0,$.jsx)(`div`,{className:`flex flex-col gap-2 px-4 py-3`,children:(0,$.jsx)(`ul`,{className:`grid gap-x-6 gap-y-3 sm:grid-cols-2`,children:[...vn].reverse().map(e=>{let r=bn[e];return(0,$.jsxs)(`li`,{className:`flex flex-col gap-0.5`,children:[(0,$.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,$.jsx)(En,{color:r.dotColor}),(0,$.jsx)(_,{as:`span`,variant:`body-small-emphasised`,children:r.label}),e===n?(0,$.jsx)(_,{as:`span`,variant:`body-small-default`,className:`text-[color:var(--content-tertiary)]`,children:t(`slackChannelTierLegend.defaultMarker`)}):null]}),(0,$.jsx)(_,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:zn(e)})]},e)})})})}var Vn=[{bucket:`channels`,icon:Tt,title:`Channels`,description:`Public and private channels`},{bucket:`dm`,icon:vt,title:`Direct messages`,description:`One-on-one DMs`}];function Hn({assistantName:e,globalDefaultTier:t,bucketTiers:n,loading:r,error:i,pendingBuckets:o,onBucketChange:s,onBucketReset:c}){let{t:l}=Y(`channels`);return(0,$.jsxs)(a.Root,{children:[(0,$.jsx)(a.Header,{children:(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[l(`slackChannelTypeDefaults.heading`),(0,$.jsx)(_,{as:`p`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:(0,$.jsx)(X,{i18nKey:`slackChannelTypeDefaults.subtitle`,ns:`channels`,values:{assistant:e},components:{trustRules:(0,$.jsx)(mt,{to:tt.settings.privacy,className:A()})}})})]})}),(0,$.jsx)(a.Body,{className:`py-1`,children:Vn.map(({bucket:e,icon:a,title:u,description:d})=>{let f=e===`dm`?n?.channels??t:t;return(0,$.jsx)(we,{className:`[&+&]:border-t [&+&]:border-[var(--border-base)]`,leading:(0,$.jsx)(a,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),title:u,subtitle:d,trailing:(0,$.jsx)(`div`,{className:`w-40 sm:w-48`,children:(0,$.jsx)(Dn,{tier:n?.[e],defaultTier:f,disabled:r||i||o.has(e),onTierChange:t=>s(e,t),onReset:()=>c(e),"aria-label":l(`slackChannelTypeDefaults.bucketAria`,{bucket:u})})})},e)})}),(0,$.jsx)(a.Footer,{className:`p-0`,children:(0,$.jsx)(Bn,{defaultTier:t})})]})}var Un=`0.11.0`;function Wn(){return ot(Un)}var Gn=new Set([404,501]);function Kn(e){let t=D(e);return t!==void 0&&Gn.has(t)}function qn(e,t,n){return xn.map(r=>({selector:{scope:`channel`,adapter:e,channelExternalId:t},contactType:r,threshold:n}))}function Jn(e,t,n){return e.selector.scope===`channel`&&e.selector.adapter===t&&e.selector.channelExternalId===n}function Yn(e,t){return t===`channels`?{scope:`adapter`,adapter:e}:{scope:`channel_type`,adapter:e,channelType:`dm`}}function Xn(e,t,n){let r=Yn(e,t);return xn.map(e=>({selector:r,contactType:e,threshold:n}))}function Zn({assistantId:e,adapter:t}){let r=lt(),i=Wn()&&!!e,a=(0,Q.useMemo)(()=>({path:{assistant_id:e}}),[e]),o=(0,Q.useMemo)(()=>Me(a),[a]),s=(0,Q.useMemo)(()=>[`channel-permission-resolve`,e,t],[e,t]),c=J({...Be(a),enabled:i}),l=c.data?.cells,u=(0,Q.useMemo)(()=>l?Sn(l,t):void 0,[l,t]),d=(0,Q.useMemo)(()=>l?{channels:wn(l,t,`channels`),dm:wn(l,t,`dm`)}:void 0,[l,t]),f=J({queryKey:s,queryFn:async()=>{let{data:e}=await Ee({...a,body:{adapter:t,contactType:`trusted_contact`},throwOnError:!0});return e.resolved?.threshold??null},enabled:i,retry:!1,staleTime:3e4}),p=(e,t)=>{let n=r.getQueryData(o),i=Date.now();return r.setQueryData(o,n=>({cells:[...(n?.cells??[]).filter(t=>!e(t)),...t.map(e=>({...e,updatedAt:i}))]})),{previous:n}},m=Z({mutationFn:async({channelExternalId:e,tier:r})=>{await Promise.all(qn(t,e,r).map(e=>n({...a,body:e,throwOnError:!0})))},onMutate:({channelExternalId:e,tier:n})=>p(n=>Jn(n,t,e),qn(t,e,n)),onError:(e,t,n)=>{r.setQueryData(o,n?.previous),Rt(`Failed to save channel settings`)(e)},onSettled:()=>r.invalidateQueries({queryKey:o})}),h=Z({mutationFn:async({channelExternalId:e})=>{await Promise.all(xn.map(n=>R({...a,body:{selector:{scope:`channel`,adapter:t,channelExternalId:e},contactType:n},throwOnError:!0})))},onMutate:({channelExternalId:e})=>p(n=>Jn(n,t,e),[]),onError:(e,t,n)=>{r.setQueryData(o,n?.previous),Rt(`Failed to reset channel settings`)(e)},onSettled:()=>r.invalidateQueries({queryKey:o})}),g=Z({mutationFn:async({bucket:e,tier:r})=>{await Promise.all(Xn(t,e,r).map(e=>n({...a,body:e,throwOnError:!0})))},onMutate:({bucket:e,tier:n})=>p(n=>Cn(n,t,e),Xn(t,e,n)),onError:(e,t,n)=>{r.setQueryData(o,n?.previous),Rt(`Failed to save the default`)(e)},onSettled:(e,t,{bucket:n})=>{r.invalidateQueries({queryKey:o}),n===`channels`&&r.invalidateQueries({queryKey:s})}}),_=Z({mutationFn:async({bucket:e})=>{let n=Yn(t,e);await Promise.all(xn.map(e=>R({...a,body:{selector:n,contactType:e},throwOnError:!0})))},onMutate:({bucket:e})=>p(n=>Cn(n,t,e),[]),onError:(e,t,n)=>{r.setQueryData(o,n?.previous),Rt(`Failed to reset the default`)(e)},onSettled:(e,t,{bucket:n})=>{r.invalidateQueries({queryKey:o}),n===`channels`&&r.invalidateQueries({queryKey:s})}}),v=(0,Q.useMemo)(()=>{let e=new Set;return m.isPending&&m.variables&&e.add(m.variables.channelExternalId),h.isPending&&h.variables&&e.add(h.variables.channelExternalId),e},[m.isPending,m.variables,h.isPending,h.variables]),y=(0,Q.useMemo)(()=>{let e=new Set;return g.isPending&&g.variables&&e.add(g.variables.bucket),_.isPending&&_.variables&&e.add(_.variables.bucket),e},[g.isPending,g.variables,_.isPending,_.variables]);return!i||c.isError&&Kn(c.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:u,defaultCellTier:f.data,bucketTiers:d,pendingChannelIds:v,pendingBuckets:y,isLoading:c.isPending,isError:c.isError,onTierChange:(e,t)=>m.mutate({channelExternalId:e,tier:t}),onTierReset:e=>{u?.[e]!==void 0&&h.mutate({channelExternalId:e})},onBucketChange:(e,t)=>g.mutate({bucket:e,tier:t}),onBucketReset:e=>{d?.[e]!==void 0&&_.mutate({bucket:e})}}}function Qn({assistantId:e,assistantDisplayName:t,slackHandle:n}){let{t:r}=Y(`channels`),i=J({...ae(e),enabled:!!e,select:e=>e.channels}),o=Zn({assistantId:e,adapter:`slack`}),s=J({queryKey:[`thresholds`,e],queryFn:()=>H(e),enabled:o.supported&&!!e,staleTime:3e4}).data?.interactive??null,c=o.defaultCellTier===void 0?null:o.defaultCellTier??s,l=(0,$.jsx)(Ln,{assistantDisplayName:t,slackHandle:n,accessControlsSupported:o.supported,defaultTier:c,channels:i.data,loading:i.isPending,error:i.isError,tierOverrides:o.tierOverrides,tierOverridesLoading:o.isLoading,tierOverridesError:o.isError,pendingChannelIds:o.pendingChannelIds,onTierChange:o.onTierChange,onTierReset:o.onTierReset});return!o.supported||!o.onBucketChange||!o.onBucketReset?(0,$.jsx)(a.Root,{noPadding:!0,clipContents:!0,children:l}):(0,$.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[o.isError?(0,$.jsx)(at,{tone:`error`,children:r(`slackChannelSection.overridesLoadFailed`)}):null,(0,$.jsx)(Hn,{assistantName:t,globalDefaultTier:s,bucketTiers:o.bucketTiers,loading:o.isLoading,error:o.isError,pendingBuckets:o.pendingBuckets,onBucketChange:o.onBucketChange,onBucketReset:o.onBucketReset}),(0,$.jsx)(a.Root,{noPadding:!0,clipContents:!0,children:(0,$.jsx)(Pe.Root,{type:`single`,collapsible:!0,children:(0,$.jsxs)(Pe.Item,{value:`per-channel-overrides`,children:[(0,$.jsxs)(Pe.Trigger,{className:`group justify-between gap-2 px-4 py-3`,children:[(0,$.jsx)(_,{as:`span`,variant:`body-small-emphasised`,children:r(`slackChannelSection.perChannelOverrides`)}),(0,$.jsx)(Ot,{"aria-hidden":`true`,className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform group-data-[state=open]:rotate-180`})]}),(0,$.jsx)(Pe.Content,{className:`border-[var(--border-base)] data-[state=open]:border-t`,children:l})]})})})]})}function $n({slackHandle:e,health:n,disconnectPending:r=!1,onDisconnect:i,children:o}){let{t:s}=Y(`channels`);return(0,$.jsxs)(a.Root,{children:[(0,$.jsx)(a.Header,{children:(0,$.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,$.jsx)(`img`,{src:d(`/images/integrations/slack.svg`),alt:``,className:`size-8 rounded-lg bg-[var(--surface-sunken)] p-1`}),e?(0,$.jsx)(_,{as:`span`,variant:`body-medium-default`,children:e}):null,(0,$.jsx)(hn,{health:n}),(0,$.jsx)(`div`,{className:`ml-auto`,children:(0,$.jsx)(t,{type:`button`,variant:`ghost`,onClick:i,disabled:!i||r,children:s(r?`connectionCard.disconnecting`:`connectionCard.disconnect`)})})]})}),(0,$.jsx)(a.Body,{children:o})]})}function er({threadMode:e,threadModePending:t=!1,onThreadModeChange:n}){let{t:r}=Y(`channels`);return(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,$.jsx)(_,{as:`span`,variant:`body-small-emphasised`,className:`text-[color:var(--content-secondary)]`,children:r(`slackThreadBehavior.heading`)}),(0,$.jsxs)(oe,{value:e??`mention_then_thread`,onValueChange:e=>n?.(e),disabled:t||!n,"aria-label":r(`slackThreadBehavior.selectAria`),children:[(0,$.jsx)(Qe,{value:`mention_only`,label:r(`slackThreadBehavior.mentionsOnly`),helperText:r(`slackThreadBehavior.mentionsOnlyHelp`)}),(0,$.jsx)(Qe,{value:`mention_then_thread`,label:r(`slackThreadBehavior.followThreads`),helperText:r(`slackThreadBehavior.followThreadsHelp`)})]})]})}function tr({onSave:e}){let{t:n}=Y(`channels`),[r,i]=(0,Q.useState)(``),[a,o]=(0,Q.useState)(``),[s,c]=(0,Q.useState)(!1),[l,u]=(0,Q.useState)(null),d=r.trim().length>0&&a.trim().length>0&&!s;return(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,$.jsx)(P,{label:n(`twilioCredentialEntry.accountSid`),type:`text`,value:r,onChange:e=>i(e.target.value),placeholder:`ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`,disabled:s,fullWidth:!0}),(0,$.jsx)(P,{label:n(`twilioCredentialEntry.authToken`),type:`password`,value:a,onChange:e=>o(e.target.value),placeholder:n(`twilioCredentialEntry.authTokenPlaceholder`),disabled:s,fullWidth:!0}),l?(0,$.jsx)(`p`,{className:`text-label-small-default`,style:{color:`var(--system-negative-strong)`},children:l}):null,(0,$.jsx)(`div`,{children:(0,$.jsx)(t,{type:`button`,onClick:async()=>{if(!(!e||!d)){c(!0),u(null);try{await e(r.trim(),a.trim()),i(``),o(``)}catch(e){u(e instanceof Error?e.message:`Failed to save`)}finally{c(!1)}}},disabled:!d,children:n(s?`twilioCredentialEntry.saving`:`twilioCredentialEntry.save`)})})]})}function nr({channel:e,assistantId:n,assistantName:r,assistantDisplayName:i,pending:a,initialManualEntry:o=!1,onSetup:s,onDisconnect:c,onSaveTelegramToken:l,telegramSaveStatus:d,telegramSaveError:p,onSaveDiscordToken:m,discordSaveStatus:h,discordSaveError:g=null,discordInviteUrl:_,onSaveSlackConfig:v,slackSaveStatus:y,slackSaveError:b,slackThreadMode:x,slackThreadModePending:S=!1,onSlackThreadModeChange:C,onSaveTwilioCredentials:w,policy:T,policySaving:E=!1,policyLoading:D=!1,policyError:O=!1,onPolicyChange:k}){let{t:A}=Y(`channels`),j=e.status===`incomplete`,[ee,M]=(0,Q.useState)(o),P=e.key===`discord`&&ee&&h===`success`,F=e.configured&&!P;if(e.key===`email`)return(0,$.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,$.jsx)(mn,{}),F&&k?(0,$.jsx)(Ft,{children:(0,$.jsx)(nn,{assistantDisplayName:i,policy:T,saving:E,loading:D,error:O,onChange:k})}):null]});if(e.key===`slack`)return(0,$.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[F?(0,$.jsx)($n,{slackHandle:e.address,health:e.health,disconnectPending:a,onDisconnect:c,children:(0,$.jsx)(er,{threadMode:x,threadModePending:S,onThreadModeChange:C})}):(0,$.jsx)(_n,{children:(0,$.jsx)(N,{assistantId:n,assistantName:r,onSave:v,saveStatus:y,saveError:b})}),F?(0,$.jsx)(Qn,{assistantId:n,assistantDisplayName:i,slackHandle:e.address}):null]});let I=Te[e.key];return(0,$.jsx)(`div`,{className:`flex flex-col gap-4`,children:F?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(gn,{health:e.health,address:e.address,pending:a,onDisconnect:c}),I.hasTrustFloorControl&&k?(0,$.jsx)(nn,{assistantDisplayName:i,policy:T,saving:E,loading:D,error:O,onChange:k}):null]}):ee&&e.canManualEntry&&I.credentialForm?(e=>{switch(e){case`slack-wizard`:return null;case`telegram-token`:return(0,$.jsx)(f,{assistantId:n,assistantName:r,saveStatus:d,saveError:p,onSave:l});case`discord-token`:return(0,$.jsx)(u,{assistantId:n,assistantName:r,saveStatus:h,saveError:g,onSave:m,..._?{inviteUrl:_}:{}});case`twilio-credentials`:return(0,$.jsx)(tr,{onSave:w});default:return e}})(I.credentialForm):(0,$.jsx)(Xt,{icon:(0,$.jsx)(be,{channelId:e.key,className:`h-6 w-6`}),title:A(j?`channelPanel.incompleteTitle`:`channelPanel.disconnectedTitle`,{channel:Se(e.key)}),description:j?e.warning??A(`channelPanel.incompleteDescription`,{channel:Se(e.key)}):I.disconnectedPitchKey?A(I.disconnectedPitchKey,{assistant:i}):void 0,action:(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-1`,children:[(0,$.jsx)(t,{type:`button`,variant:`outlined`,onClick:s,disabled:!s||a,children:A(a?`channelPanel.opening`:j?`channelPanel.finishSetup`:`channelPanel.setUp`)}),e.canManualEntry&&I.credentialForm?(0,$.jsx)(t,{type:`button`,variant:`link`,onClick:()=>M(!0),children:A(`channelPanel.connectManually`)}):null]})})})}var rr=new Set([404,501]),ir=new Set([401,403]);function ar(e){let t=D(e);return t!==void 0&&rr.has(t)?`unsupported`:t!==void 0&&ir.has(t)?`forbidden`:`unreadable`}function or(e,t,n){let r=e===`unreadable`?t:n;return r?r instanceof Error&&r.message?r.message:`Something went wrong`:null}function sr(e,t){let n=lt(),r={assistant_id:e},i=J({...Ce({path:r}),enabled:!!e,retry:B}),a=()=>n.invalidateQueries({queryKey:Ae({path:r})}),o=Z({...Xe(),onSuccess:a}),s=Z({...Ue(),onSuccess:a}),c=i.data?.sources?.find(e=>e.source===t),l;l=i.isError?ar(i.error):i.isPending?`loading`:c?c.state:`none`;let u=or(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}}function cr(e){return typeof e==`string`&&Zt.includes(e)}function lr(e){return Qt.has(e)}function ur(e){return(e?.policies??[]).filter(e=>!lr(e.channelType)&&!en(e.channelType)).map(e=>({...e,policy:cr(e.policy)?e.policy:`trusted_contacts`}))}async function dr(e,t,n,r){if(lr(t))throw new I(403,`Channel "${t}" is internal and is not user-configurable.`);let{data:i,error:a,response:o}=await ge({path:{assistant_id:e,channel_type:t},body:{policy:n,note:r??null},throwOnError:!1});if(p(o,a,`Failed to save channel policy.`),!o.ok)throw new I(o.status,E(a,o,`Failed to save channel policy.`));if(!i?.policy)throw new I(500,`Gateway returned no policy in response.`);return i.policy}var fr=`0.10.0`;function pr(){return ot(fr)}var mr=`plugin`;function hr(e){let t=lt(),n=pr(),r=(0,Q.useMemo)(()=>({path:{assistant_id:e}}),[e]),i=(0,Q.useMemo)(()=>Re(r),[r]),a=J({...xe(r),enabled:n&&!!e,select:ur}),o=Z({mutationFn:t=>dr(e,mr,t),onSuccess:()=>t.invalidateQueries({queryKey:i}),onError:Rt(`Failed to save channel policy`)}),s=(0,Q.useCallback)(e=>{o.mutate(e)},[o]);return n?{policy:a.data?.find(e=>e.channelType===mr)?.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 gr({channel:e,assistantId:n,assistantDisplayName:r}){let{t:i}=Y(`channels`),a=ft(),o=sr(n,e.plugin),s=hr(n);return(0,$.jsxs)(`div`,{className:`relative flex flex-col items-center gap-3 py-10 text-center`,children:[(0,$.jsx)(t,{className:`absolute top-0 right-0`,variant:`ghost`,size:`compact`,iconOnly:(0,$.jsx)(bt,{}),tooltip:i(`pluginChannelPanel.navigateToPluginPage`),"aria-label":i(`pluginChannelPanel.navigateToPluginPage`),onClick:()=>a(`/assistant/plugins/${e.plugin}`)}),(0,$.jsx)(Le,{icon:e.icon,className:`h-8 w-8 text-[color:var(--content-secondary)]`}),(0,$.jsx)(`h3`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:e.label}),e.description?(0,$.jsx)(`p`,{className:`max-w-[420px] text-body-medium-default`,style:{color:`var(--content-secondary)`},children:e.description}):null,(0,$.jsx)(_r,{channel:e,ingress:o}),s.onChange?(0,$.jsx)(`div`,{className:`w-full max-w-[420px] text-left`,children:(0,$.jsx)(nn,{assistantDisplayName:r,policy:s.policy,saving:s.isSaving,loading:s.isLoading,error:s.isError,onChange:s.onChange})}):null]})}function _r({channel:e,ingress:t}){let{t:n}=Y(`channels`);switch(t.status){case`loading`:return(0,$.jsx)(yr,{children:n(`pluginChannelPanel.ingressLoading`,{channel:e.label})});case`unsupported`:return(0,$.jsx)(yr,{children:n(`pluginChannelPanel.ingressUnsupported`)});case`forbidden`:return(0,$.jsx)(yr,{children:n(`pluginChannelPanel.ingressForbidden`)});case`unreadable`:return(0,$.jsxs)(yr,{children:[n(`pluginChannelPanel.ingressUnreadable`,{channel:e.label}),t.error?` ${t.error}`:``]});case`none`:return(0,$.jsx)(yr,{children:n(`pluginChannelPanel.ingressNone`,{channel:e.label})});case`pending`:case`approved`:return(0,$.jsx)(vr,{ingress:t})}}function vr({ingress:e}){let{t:n}=Y(`channels`),r=e.status===`approved`;return(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[(0,$.jsx)(F,{tone:r?`positive`:`neutral`,children:n(r?`pluginChannelPanel.ingressApprovedTag`:`pluginChannelPanel.ingressPendingTag`)}),(0,$.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,$.jsx)(t,{onClick:r?e.revoke:e.approve,disabled:e.deciding,variant:r?`outlined`:`primary`,children:n(r?`pluginChannelPanel.revokeChannel`:`pluginChannelPanel.approveChannel`)}),(0,$.jsx)(Ye,{content:n(`pluginChannelPanel.approveChannelInfo`),children:(0,$.jsx)(`span`,{tabIndex:0,className:`inline-flex cursor-default p-0.5 text-[color:var(--content-secondary)]`,"aria-label":n(`pluginChannelPanel.approveChannelInfo`),children:(0,$.jsx)(Et,{className:`h-4 w-4`,"aria-hidden":`true`})})})]}),e.error?(0,$.jsx)(`p`,{className:`max-w-[420px] text-body-small-default`,style:{color:`var(--system-negative-strong)`},children:e.error}):null]})}function yr({children:e}){return(0,$.jsx)(`p`,{className:`max-w-[420px] text-body-small-default`,style:{color:`var(--content-secondary)`},children:e})}function br({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:C,onSlackThreadModeChange:w,onSaveTwilioCredentials:T,initialChannel:E=null}){let{t:D}=Y(`channels`),{selected:O,select:k}=Kt(),[A,j]=(0,Q.useState)(null),{paneRef:ee,hasRoomForList:M,drawerOpen:N,openDrawer:P,closeDrawer:F}=Ut(),[I]=(0,Q.useState)(E);(0,Q.useEffect)(()=>{I&&k(I)},[I,k]);let te=Je(t),L=A?Te[A]:null,ne=e=>{k(e),F()},R=r.find(e=>e.key===O),z=R?void 0:n.find(e=>e.key===O)??n[0];if(!z&&!R)return null;let B=R?R.key:z.key,re=R?(0,$.jsx)(gr,{channel:R,assistantId:e,assistantDisplayName:te},R.key):(0,$.jsx)(nr,{channel:z,assistantId:e,assistantName:t,assistantDisplayName:te,pending:i===z.key,initialManualEntry:I===z.key,onSetup:f?()=>f(z.key,z.status===`incomplete`):void 0,onDisconnect:p&&z.canDisconnect?()=>j(z.key):void 0,onSaveTelegramToken:m,telegramSaveStatus:h,onSaveDiscordToken:g,discordSaveStatus:_,discordSaveError:v,...y?{discordInviteUrl:y}:{},telegramSaveError:b,onSaveSlackConfig:x,slackSaveStatus:S,slackSaveError:C,slackThreadMode:a,slackThreadModePending:o,onSlackThreadModeChange:w,onSaveTwilioCredentials:T,policy:s?.[z.key],policySaving:c===z.key,policyLoading:l,policyError:u,onPolicyChange:d?e=>d(z.key,e):void 0},z.key);return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{ref:ee,className:`flex min-h-0 flex-1 overflow-hidden ${M?`flex-row gap-6`:`flex-col gap-4`}`,children:[M?(0,$.jsx)(`aside`,{className:`min-h-0 w-[320px] shrink-0 overflow-y-auto self-stretch`,children:(0,$.jsx)(qt,{channels:n,pluginChannels:r,selectedKey:B,onSelect:ne})}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`flex items-center`,children:(0,$.jsx)(Bt,{onClick:P})}),(0,$.jsx)(Lt,{open:N,onClose:F,title:D(`assistantChannelsList.drawerTitle`),children:(0,$.jsx)(qt,{channels:n,pluginChannels:r,selectedKey:B,onSelect:ne})})]}),(0,$.jsx)(`section`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto`,children:B===`slack`||B===`email`?re:(0,$.jsx)(Ft,{children:re})})]}),(0,$.jsx)(ze,{open:A!==null,title:D(`assistantChannelsList.disconnectTitle`,{channel:L?D(L.labelKey):``}),message:L?.disconnectMessageKey?D(L.disconnectMessageKey):``,confirmLabel:D(`assistantChannelsList.disconnectConfirm`),destructive:!0,onConfirm:()=>{A&&p&&p(A),j(null)},onCancel:()=>j(null)})]})}var xr=`plugin:`;function Sr(e){let{data:t}=J({...je({path:{assistant_id:e}}),enabled:!!e,select:e=>e.channels.filter(e=>e.source?.startsWith(xr)).map(e=>({plugin:e.id,key:r(e.id),label:e.label,description:e.subtitle,icon:e.icon}))});return t??[]}function Cr(e){let t=lt(),n=pr(),r=(0,Q.useMemo)(()=>({path:{assistant_id:e}}),[e]),i=(0,Q.useMemo)(()=>Re(r),[r]),a=J({...xe(r),enabled:n,select:ur}),o=(0,Q.useMemo)(()=>{let e={};for(let t of a.data??[])z(t.channelType)&&(e[t.channelType]=t.policy);return e},[a.data]),s=Z({mutationFn:({channelKey:t,policy:n})=>dr(e,t,n),onSuccess:()=>t.invalidateQueries({queryKey:i}),onError:Rt(`Failed to save channel policy`)}),c=(0,Q.useCallback)((e,t)=>{s.mutate({channelKey:e,policy:t})},[s]);return n?{policies:o,savingKey:s.isPending?s.variables?.channelKey??null:null,isLoading:a.isPending,isError:a.isError,onChange:c}:{policies:void 0,savingKey:null,isLoading:!1,isError:!1,onChange:void 0}}var wr=`0.11.5-dev.202608242314.38e0513`;function Tr(){return ot(wr)}var Er=`0.11.5-dev.202608252008.65007aa`;function Dr(){return ot(Er)}var Or={slack:S,telegram:he,discord:Ke,email:void 0,phone:me},kr={slack:`useAssistantChannels.setupPrompt.slack`,telegram:`useAssistantChannels.setupPrompt.telegram`,discord:`useAssistantChannels.setupPrompt.discord`,email:`useAssistantChannels.setupPrompt.email`,phone:`useAssistantChannels.setupPrompt.phone`},Ar={slack:`useAssistantChannels.finishPrompt.slack`,telegram:`useAssistantChannels.finishPrompt.telegram`,discord:`useAssistantChannels.finishPrompt.discord`,email:`useAssistantChannels.finishPrompt.email`,phone:`useAssistantChannels.finishPrompt.phone`},jr=15e3;function Mr({assistantId:e,onStartSetupConversation:t}){let{t:n}=Y(`common`),r=lt(),i=(0,Q.useMemo)(()=>({path:{assistant_id:e}}),[e]),a=(0,Q.useMemo)(()=>Ve(i),[i]),o=Tr(),s=Dr(),l=(0,Q.useMemo)(()=>Nr(o),[o]),u=J({...We(i),enabled:!!e,refetchInterval:jr,select:e=>e.snapshots}),d=(0,Q.useMemo)(()=>Pr(u.data??[],l,s),[u.data,l,s]),f=d.some(e=>e.key===`slack`&&e.configured),p=J({...x(i),enabled:f,select:e=>e.threadMode}),m=Cr(e),h=(0,Q.useCallback)(()=>r.invalidateQueries({queryKey:a}),[r,a]),g=Z({mutationFn:async t=>{let n=Or[t];if(!n)throw Error(`No route clears ${t} credentials.`);await n({path:{assistant_id:e},throwOnError:!0})},onSettled:(t,n,i)=>{h(),i===`slack`&&c(r,e)}}),_=ye({assistantId:e}),v=et({assistantId:e}),y=J({...w(i),enabled:!!e&&s}),b=ie({assistantId:e}),S=rt({assistantId:e}),C=Z({...pe(),onSuccess:()=>{r.invalidateQueries({queryKey:G(i)})}}),T=v.mutate,E=(0,Q.useCallback)(e=>{T(e)},[T]),D=_.mutate,O=(0,Q.useCallback)(e=>{D(e)},[D]),k=b.mutate,A=(0,Q.useCallback)((e,t)=>{k({botToken:e,appToken:t})},[k]),j=C.mutate,ee=(0,Q.useCallback)(t=>{j({path:{assistant_id:e},body:{threadMode:t}})},[j,e]),M=S.mutateAsync,N=(0,Q.useCallback)(async(e,t)=>{await M({accountSid:e,authToken:t})},[M]),P=(0,Q.useCallback)((e,r=!1)=>{t&&t(n(r?Ar[e]:kr[e]))},[t,n]),F=g.mutate,I=(0,Q.useCallback)(e=>{F(e)},[F]);return{channels:d,pendingChannelKey:g.isPending?g.variables??null:null,slackThreadMode:p.data,slackThreadModePending:C.isPending,channelPolicies:m.policies,policySavingKey:m.savingKey,policiesLoading:m.isLoading,policiesError:m.isError,onChannelPolicyChange:m.onChange,onSetup:t?P:void 0,onDisconnect:I,onSaveTelegramToken:O,telegramSaveStatus:_.status,telegramSaveError:_.error?.message??null,onSaveDiscordToken:E,discordSaveStatus:v.status,discordSaveError:v.error?.message??null,discordInviteUrl:v.data?.data?.inviteUrl??y.data?.inviteUrl,onSaveSlackConfig:A,slackSaveStatus:b.status,slackSaveError:b.error?.message??null,onSlackThreadModeChange:ee,onSaveTwilioCredentials:N}}function Nr(e){return e?W:W.filter(e=>e!==`discord`)}function Pr(e,t,n){let r=new Map;for(let t of e)r.set(t.channel,t);return t.map(e=>{let t=r.get(e);return{key:e,status:Fr(t),configured:_e(t),canDisconnect:Or[e]!==void 0&&(e!==`discord`||n),canManualEntry:Te[e].credentialForm!==void 0&&(e!==`discord`||n),health:t?.health,address:t?.channelHandle??void 0}})}function Fr(e){return e?e.ready?`ready`:e.setupStatus===`not_configured`?`not_configured`:`incomplete`:`not_configured`}function Ir(){let[e,t]=ut(),n=e.get(`setup`),r=n&&z(n)?n:null;return(0,Q.useEffect)(()=>{r&&t(e=>(e.delete(`setup`),e),{replace:!0})},[r,t]),r}function Lr({assistantId:e,onStartSetupConversation:t}){let n=de.use.a2aChannel(),r=Fe.use.name(),i=Ir(),a=Ht(e),o=Je(r),s=Mr({assistantId:e,onStartSetupConversation:t});return(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-6 overflow-hidden`,children:[(0,$.jsx)(br,{assistantId:e,assistantName:o,initialChannel:i,pluginChannels:Sr(e),...s}),n?(0,$.jsx)(zt,{onClick:a.open}):null,(0,$.jsx)(Vt,{open:a.isOpen,assistantId:e,onClose:a.close})]})}function Rr(){let e=ft(),t=He();return(0,$.jsx)(Lr,{assistantId:t,onStartSetupConversation:t=>{De(e,{prompt:t})}},t)}export{Rr as ChannelsPageRoute};
@@ -0,0 +1,5 @@
1
+ var e={heading:`{count, plural, other {问题}}`},t={saveFailed:`无法保存文档。你的消息仍在这里。请重新发送。`,viewConversation:`查看对话`,reopenDocument:`重新打开文档`},n={plan:`计划`},r={atTime:`在 {time}`,cancelled:`已取消`,completed:`已完成`,refused:`已拒绝`,runFailed:`运行失败`,stoppedLimitReached:`已停止:达到限制`},i={hideRaw:`隐藏原始输入/输出`,rawInput:`原始输入`,rawOutput:`原始输出`,showRaw:`显示原始输入/输出`},a={connectButton:`连接`,dismissButton:`忽略`,errorFallback:`连接 Claude 失败。请重试。`,pastePlaceholder:`粘贴您的密钥`,saveButton:`保存`,subtitleConnected:`Claude Code 已连接,正在继续...`,subtitleExchanging:`正在完成登录...`,subtitleIdle:`使用您的 Claude Code 订阅`,subtitlePaste:`从打开的标签页粘贴密钥`,subtitleStarting:`正在开始登录...`,subtitleWaiting:`正在等待 Claude 登录...`,title:`连接 Claude Code`},o={backToConversationAria:`返回对话`,backTooltip:`返回`,closeRunDetail:`关闭运行详情`,goToNewest:`前往最新`,inputLabel:`输入`,modelLabel:`模型`,objective:`目标`,outputLabel:`输出`,sendSteerAria:`发送引导指令`,steerAria:`引导指令`,steerPlaceholder:`引导运行…`,stopRunAria:`停止运行`},s={retryConfirm:`重试`,retryMessage:`最新回复将被丢弃并重新生成。此操作无法撤销。`,retryTitle:`重试此回复?`,startingFirst:`正在开始您的首次对话…`,stillWorking:`您的助手仍在工作中…`,summarizeConfirm:`总结`,summarizeMessage:`助手将总结此前的对话,并仅在工作记忆中保留摘要。消息将保持可见,永不删除。`,summarizeTitle:`总结到此处?`,takingLonger:`您的助手响应时间超出预期。`,tryAgain:`重试`},c={confirm:`全部标记为已完成`,message:`{count, plural, other {将“{groupName}”中的所有 {count} 个对话标记为已完成?它们将从侧边栏移除,并保留在“所有聊天”中,您可以在那里重新打开它们。}}`,title:`全部标记为已完成`},l={title:`活动详情`},u={backAria:`返回所有步骤`,backTooltip:`所有步骤`,closeSteps:`关闭步骤`,screenshotAria:`预览来自“{activity}”的屏幕截图`,screenshotFallbackAria:`预览电脑屏幕截图`,screenshotFallbackTitle:`电脑屏幕截图`,screenshotTitle:`来自“{activity}”的屏幕截图`,viewThinkingAria:`查看思考过程`},d={unavailable:`最新屏幕截图不可用。`,unavailableShowingPrevious:`最新屏幕截图不可用。正在显示上一张屏幕截图。`,updating:`正在更新屏幕截图...`},f={camera:`相机`,closeAriaLabel:`关闭`,files:`文件`,gallery:`照片图库`,pickFailed:`无法添加该文件。请重试。`,pickFull:`{count, plural, other {# 个文件不适合此批次。请单独添加。}}`,title:`添加到聊天`,tooLarge:`{count, plural, other {# 个文件过大,无法附加}}`},p={allowAndCreateRule:`允许并创建规则`,trigger:`更多允许选项`},m={appExported:`应用已导出`,shareFailed:`分享应用失败`},h={confirm:`全部归档`,message:`{count, plural, other {归档“{groupName}”中的所有 {count} 个对话?归档的对话将从侧边栏移除。您可以通过搜索“is:archived”稍后找到它们。}}`,title:`全部归档`},g={earlierActivity:`更早的活动`},_={click:`点击`,type:`输入`,keyPress:`按键`,scroll:`滚动`,drag:`拖动`,hover:`悬停`,observe:`查看`,navigate:`导航`,terminal:`运行命令`},v={band:{previous30Days:`过去 30 天`,previous7Days:`过去 7 天`,today:`今天`,yesterday:`昨天`},chip:{all:`全部`,background:`后台`,done:`已完成`},empty:`这里还没有聊天。`,filterAria:`筛选聊天`,loadError:`无法加载你的聊天。`,loading:`正在加载聊天`,noMatches:`没有与“{query}”匹配的聊天。`,retry:`重试`,searchPlaceholder:`搜索聊天`,title:`所有聊天`,close:`关闭所有聊天`,openChat:`打开聊天`,doneLabel:`{title},已完成`,unread:`未读`,running:`运行中`,needsAttention:`需要关注`,runningCount:`{count, plural, other {# 个任务正在运行}}`},y={mode:{computerUse:`计算机会话`,browser:`浏览器会话`,liveVision:`实时视觉会话`,ambient:`环境会话`},durationSeconds:`{count, plural, other {# 秒}}`,durationMinutes:`{count, plural, other {# 分钟}}`,working:`正在工作`,workingWithDuration:`正在工作 · {duration}`,waiting:`等待中`,waitingWithDuration:`等待中 · {duration}`,finishing:`正在结束`,finishingWithDuration:`正在结束 · {duration}`,completedWithDurationAndEnd:`{duration} · 结束于 {endTime}`,completedWithDuration:`{duration}`,completedWithEnd:`结束于 {endTime}`,interrupted:`已中断`,interruptedWithDurationAndEnd:`已中断 · {duration} · 结束于 {endTime}`,interruptedWithDurationAndLastActivity:`已中断 · {duration} · 上次活动于 {lastActivityTime}`,interruptedWithLastActivity:`已中断 · 上次活动于 {lastActivityTime}`,interruptedWithEnd:`已中断 · 结束于 {endTime}`,disconnected:`连接已断开`,disconnectedWithDurationAndLastActivity:`连接已断开 · {duration} · 最后活动时间 {lastActivityTime}`,disconnectedWithLastActivity:`连接已断开 · 最后活动时间 {lastActivityTime}`,timingUnavailable:`时间不可用`},b={fitView:`适应屏幕`,panView:`平移`,controlView:`控制`,panHint:`拖动以平移,轻点以单击。`,hideAria:`隐藏虚拟桌面`,closeAria:`关闭虚拟桌面预览`,moveAria:`移动虚拟桌面预览(方向键)`,resizeAria:`调整虚拟桌面预览大小(方向键)`,expandAria:`展开虚拟桌面`,busy:`虚拟桌面正在被其他用户使用。`,connecting:`正在连接虚拟桌面…`,failed:`虚拟桌面无法启动。`,lost:`与虚拟桌面的连接已断开。`,openAria:`打开 {name} 的虚拟桌面`,openUnnamedAria:`打开虚拟桌面`,reconnectButton:`重新连接`,title:`桌面`,unavailable:`此助理不支持虚拟桌面。`,checkingSetup:`正在检查虚拟桌面设置…`,setupRequestFailed:`无法检查虚拟桌面设置。请重新连接后重试。`},x={newChat:`新建聊天`},S={bulkActionMembersFailed:`无法加载此部分的所有对话。请重试。`,closeNavAria:`关闭导航`,navAria:`助手导航`,searchShortcut:`搜索 ({shortcut})`,search:`搜索`},C={dismissLabel:`隐藏休眠画面`,sleeping:`您的助手正在休眠`,sleepingNamed:`{name} 正在休眠`,waking:`您的助手正在唤醒…`,wakingNamed:`{name} 正在唤醒…`,woke:`您的助手刚刚醒来`,wokeNamed:`{name} 刚刚醒来`},w={collapse:`隐藏助手`,currentAssistant:`{name},当前助手`,expand:`切换助手`,switchFailed:`无法切换助手。请重试。`,switchTo:`切换到 {name}`,unnamedAssistant:`未命名助手`},T={removeAria:`移除 {filename}`},E={download:`下载`,downloadAria:`下载 {filename}`},D={cancelUploadAria:`取消上传 {filename}`,uploadingTitle:`正在上传 {filename}`},O={moreTitle:`{count} 更多`,showAllAria:`显示所有文件({count} 更多)`},k={closePreviewAria:`关闭预览`,downloadAria:`下载 {filename}`,downloadLabel:`下载`,legacyUnavailable:`预览不可用。文件内容未保存在聊天记录中。`,loadFailed:`无法加载预览。`,nextAttachmentAria:`下一个附件`,pdfLoadFailed:`无法显示此 PDF`,previewAria:`{filename} 的预览`,previousAttachmentAria:`上一个附件`},A={cancelUpload:`取消上传 {filename}`,preview:`预览 {filename}`,remove:`移除 {filename}`,uploading:`正在上传 {filename}`},j={closeDetail:`关闭任务详情`,command:`命令`,exitCode:`退出代码:{code}`,output:`输出`,stopCommandAria:`停止命令`},M={dismiss:`忽略`},N={description:`此请求的前缀中,{count, plural, other {# 个缓存断点}} 的分布位置,以及哪些段是从缓存读取的,哪些是重新创建的。`,estimatedTokens:`≈ {count} 个 Token`,fullMissBody:`此轮中每个段都已重新创建。请与上方缓存差异中的上一轮进行比较,以找到发生变化的块。`,fullMissTitle:`完整缓存未命中`,loadError:`无法加载请求负载以映射缓存断点。`,loading:`正在加载请求负载以映射缓存断点…`,noBreakpoints:`此请求没有缓存断点 - 此调用已禁用提示缓存。`,splitEstimatedNote:` 读取/创建的划分是根据段大小归因的;提供商仅报告总计。`,statusCreated:`已重新创建`,statusRead:`从缓存读取`,statusUnknown:`已缓存`,title:`缓存断点`,tokenEstimateNote:`Token 计数是根据文本长度估算的。`},P={changedLabel:`已更改`,changedMessageFallback:`一条消息`,chipMessages:`消息`,chipModel:`模型`,chipSettings:`设置`,chipSystem:`系统`,chipTools:`工具`,currentModelFallback:`此模型`,description:`自上一轮请求以来发生了什么变化 - 重新创建提示缓存的块。`,diffAnyway:`仍要比较({lineCount} 行)`,diffLabel:`{label} 差异`,diffLargeDefault:`更改的文本过大,因此默认不进行比较。`,diffStillTooLarge:`仍然太大无法在此处比较(超过 {maxLines} 行)- 请打开“原始”选项卡查看完整负载。`,diffTooLarge:`更改的文本过大无法在此处比较 - 请打开“原始”选项卡查看完整负载。`,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:`只有请求设置(例如温度)与上一轮不同。对于大多数提供商而言,仅此一项不会破坏提示缓存。`,statusSettingsTitle:`请求设置已更改`,statusSystemBody:`自上一轮以来,系统提示的一部分已更改。此处的易变内容(时间戳、内存或每轮块)会使缓存每轮都重新创建。`,statusSystemTitle:`系统提示已更改`,statusToolsBody:`工具集或其定义与上一轮不同。工具位于缓存前缀的前面,因此此处的任何更改都会在到达系统提示和消息之前重新创建缓存。`,statusToolsTitle:`工具定义已更改`,title:`缓存差异`,unchangedLines:`⋯ {count} 行未更改`},F={barAriaLabel:`提示词缓存细分:{total} 个 Token,其中 {segments}({percent} 已缓存)。`,barSegment:`{count} {label}`,cached:`已缓存`,description:`此调用的提示词有多少来自提示词缓存。`,segmentCreated:`重新创建`,segmentFresh:`新鲜输入`,segmentRead:`从缓存读取`,statusFullMissBody:`此调用的提示词均未从缓存中读取。`,statusFullMissReCreatedSuffix:` 本轮有 {count} 个 Token写入缓存,但均未被重用 - 这通常意味着自上一轮以来缓存的前缀已更改。`,statusFullMissTitle:`完全缓存未命中`,statusHealthyBody:`此调用的提示词有 {percent}({count} 个 Token)来自缓存。`,statusHealthyTitle:`健康的缓存重用`,statusPartialBody:`此调用的提示词有 {percent}({count} 个 Token)来自缓存;其余部分在本轮重新处理。`,statusPartialTitle:`部分缓存重用`,title:`缓存健康状况`,unavailableNote:`此调用未报告提示词缓存使用情况。`,unavailableNoteForProvider:`此调用未报告 {provider} 的提示词缓存使用情况。`},I={callCount:`{count, plural, other {# 次 LLM 调用}}`,callLabel:`调用 {number}`,compaction:`压缩`,cost:`成本`,empty:`未记录 LLM 调用。`,failed:`失败`,latest:`最新`,navAriaLabel:`LLM 调用`,syntheticAgentLoopError:`代理循环错误`,syntheticAgentLoopErrorWithReason:`代理循环错误 · {reason}`,syntheticYield:`让步 · 压缩无法适应下一步`,unrecognizedCall:`无法识别的调用`},L={eventsRecorded:`{count, plural, one {# 条事件已记录。} other {# 条事件已记录。}}`},R={captureFailed:`无法拍摄照片。请重试。`,close:`关闭相机`,flip:`切换摄像头`,openFailed:`无法打开相机。`,shutter:`拍照`,title:`拍照`},z={captureFailed:`无法拍摄该照片。`,deviceInUse:`另一个应用程序正在使用相机。`,noDevice:`未找到相机。`,notDelivered:`正在重新连接。请重新拍摄。`,permissionDenied:`Vellum 未获得相机访问权限。`,refused:`您的助手目前无法接收照片。`,storeFailed:`无法将该照片添加到对话中。`,unknown:`无法打开相机。`,unsupported:`此设备无法打开相机。`,uploadFailed:`无法发送该照片。`},B={close:`关闭`,gotIt:`知道了`,liveBody:`您移动相机时,{name} 会持续观看。直接聊聊 {name} 看到的内容。`,liveBodyDesktop:`您移动相机时,{name} 会持续观看。直接聊聊 {name} 看到的内容。随时都可以停止。`,liveTag:`实时`,liveTitle:`实时`,photoBody:`拍一张照片。{name} 只会看到那一张照片。`,photoTitle:`照片`,privacy:`{name} 看到的一切都保留在 {name} 自己的私人工作区。关闭相机时实时模式就会结束。`,subtitle:`选择 {name} 如何查看您对准的画面。随时都可以切换。`,title:`照片还是实时?`,tryLive:`立即试用实时`,tryLiveDesktop:`试用实时`,yourAssistant:`您的助手`},V={live:`实时 · 轻点停止`,liveDescription:`轻点停止实时视频。`,photo:`轻点拍照 · 长按开启实时`,photoDescription:`长按开启实时视频。`},H={announceLive:`实时。{status}`,announceLiveMuted:`实时。已静音。{status}`,announceLiveMutedSpeaking:`实时。已静音。{name} 正在说话`,announceLiveSpeaking:`实时。{name} 正在说话`,announcePhoto:`照片。{status}`,announcePhotoMuted:`照片。已静音。{status}`,announcePhotoMutedSpeaking:`照片。已静音。{name} 正在说话`,announcePhotoSpeaking:`照片。{name} 正在说话`,live:`实时`,photo:`照片`,yourAssistant:`您的助手`},U={buttonAria:`相机显示选项`,gateHudDescription:`调试叠加层:实时模式如何挑选要发送的画面。`,gateHudTitle:`帧筛选调校`,howItWorks:`“照片”和“实时”的运作方式`,keptFrameDescription:`显示实时模式最近发送的画面。`,keptFrameTitle:`最近分享的画面`,title:`显示`},W={tasksProgress:`已完成 {completed} / 共 {total} 个任务`,viewDetails:`查看详情`},G={heading:`引用 {channel} 消息`,headingWithSender:`引用 {channel} 上的 {sender}`,removeAria:`移除引用的消息`},K={accountSid:`账户 SID`,accountSidPlaceholder:`ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`,authToken:`身份验证令牌`,authTokenPlaceholder:`Twilio 身份验证令牌`,close:`关闭`,closeSetupAria:`关闭设置面板`,connectedHeading:`{channel} 已连接`,credentialsSaved:`凭据已保存。返回聊天以完成设置。`,phoneConnected:`您的助手已准备好通过 Twilio 接听电话。`,phoneLabel:`电话`,save:`保存`,saving:`正在保存…`,settingsTitle:`{channel} 设置`,setupTitle:`{channel} 设置`,slackConnected:`您的助手已准备好在 Slack 上接收消息。`,telegramConnected:`您的助手已准备好在 Telegram 上接收消息。`,twilioIntro:`从 <consoleLink>Twilio 控制台</consoleLink> 输入您的 Twilio 凭据。保存后,返回聊天。您的助手将完成电话号码和 Webhook 的配置。`,discordConnected:`Discord 已连接。将机器人添加到服务器后,它将开始在那里回复。`},q={closeAria:`关闭 {channel} 线程`,label:`{channel} 线程`,openAria:`打开 {channel} 线程`},J={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:`在 Vellum 中引用此 {channel} 消息`,referenced:`已引用`,removeReferenceAria:`从 Vellum 编辑器中移除此引用`,title:`{channel} 线程`,unknownSender:`未知发件人`},Y={attachFileAria:`附加文件`,dismiss:`关闭`,removeAria:`移除 {filename}`},X={noSubject:`(无主题)`,captionReceived:`已接收 · 来自 {name} · {date}`,captionReceivedUndated:`已接收 · 来自 {name}`,captionSent:`已发送 · 发给 {name} · {date}`,captionSentUndated:`已发送 · 发给 {name}`,tooltip:`{subject}
2
+ {caption}`,removeAria:`移除邮件 {subject}`},Z={noSubject:`(无主题)`,captionReceived:`已接收 · 来自 {name} · {date}`,captionReceivedUndated:`已接收 · 来自 {name}`,captionSent:`已发送 · 发给 {name} · {date}`,captionSentUndated:`已发送 · 发给 {name}`,tooltip:`{subject}
3
+ {caption}`,openAria:`在收件箱中打开邮件 {subject}`},Q={dropFiles:`拖放文件以附加`},$={addToChat:`添加到聊天`,askAssistantPlaceholder:`询问 {assistantName}`,configureVoice:`配置语音`,endOtherVoiceSession:`结束当前会话并在此开始`,goToVoiceSession:`前往会话`,recording:`正在录音`,sendMessage:`发送消息`,stopGenerating:`停止生成`,transcribing:`正在转录`,transcribingEllipsis:`正在转录…`,typeToSend:`输入消息以发送`,uploadingAttachments:`正在上传附件…`},ee={archived:`[已归档]`,done:`[已完成]`,newChat:`新建聊天`},te={appsTitle:`应用`,backAria:`返回聊天信息`,backTooltip:`聊天信息`,closeAria:`关闭聊天信息`,empty:`此聊天中还没有内容`,filesTitle:`文档与图片`,framesTitle:`相机帧`,loadFailed:`无法加载内容`,loadMore:`加载更多`,openAppAria:`打开 {name}`,openDocumentAria:`打开 {name}`,previewAttachmentAria:`预览 {filename}`,previewFrameAria:`预览相机帧`,seeAll:`查看全部`,seeAllAppsAria:`查看全部应用`,seeAllFilesAria:`查看全部文档与图片`,seeAllFramesAria:`查看全部相机帧`,title:`聊天信息`,retry:`重试`,retrySourceAria:`重试加载{source}`,documentsSource:`文档`,attachmentsSource:`附件`,sourceLoading:`正在加载{source}…`,sourceLoadFailed:`无法加载{source}。`,sourceRefreshFailed:`无法刷新{source}。正在显示已保存的结果。`,sourcePageFailed:`无法加载更多{source}。`,framesUnsupported:`此助手版本不支持摄像头画面分类。`,loadedHistory:`附件仅来自已加载的聊天记录。`},ne={navigationAria:`导航`},re={backAria:`后退 (Ctrl+[)`,forwardAria:`前进 (Ctrl+])`,openNavigationAria:`打开导航`,searchAria:`搜索 (Ctrl+K)`,toggleSidebarAria:`切换侧边栏`},ie={expandImageAria:`展开图片`,expandImageAriaWithAlt:`展开图片:{alt}`,imageFailed:`图片加载失败`,imageFailedWithAlt:`图片加载失败 ({alt})`,loadingImage:`正在加载图片…`,loadingImageWithAlt:`正在加载图片… ({alt})`},ae={connecting:`正在连接…`,connectingStuck:`仍在连接到您的助手 - 似乎卡住了。请重试,如果此问题持续发生,请刷新页面。`,retryNow:`立即重试`,selfHostedUnreachable:`无法连接到您的自托管助手。请确保您的助手正在运行,然后重试。`,tryAgain:`重试`},oe={askTheDoctor:`询问 Doctor`,goToDoctor:`前往 Doctor`,openPage:`打开页面`,suggestionFallback:`建议`,copyCliFix:`复制 CLI 修复命令`},se={applyTo:`应用于`,cancel:`取消`,createTitle:`创建信任规则`,description:`匹配的工具调用将采用此规则的风险级别,因此您的审批容忍度可以自动批准它们。`,editTitle:`编辑信任规则`,narrowerScopeAria:`更窄的范围`,orNarrowScope:`或缩小范围:`,save:`保存`,saveAsNew:`另存为新规则`,saveRule:`保存规则`,saving:`正在保存…`,suggested:`建议:{risk}`,treatAs:`视为`},ce={continue:`继续`,recommended:`推荐`},le={broomAria:`扫帚`,hatchHint:`完成后,您将能够孵化一个新的助手。`,hintAlmostDone:`即将完成…`,hintCleaning:`正在清理您的助手…`,hintWrapping:`正在收尾…`,timeoutBody:`尝试运行 Vellum Doctor 以诊断问题,或<communityLink>向社区寻求帮助</communityLink>。`,timeoutTitle:`清理时间超出预期`,title:`正在清理您的助手…`,warningAria:`警告`},ue={noConversations:`无对话`},de={ariaLabel:`自动压缩已暂停`,message:`自动压缩已暂停 - 长对话可能会溢出。使用 /compact 手动压缩。`},fe={compactedMessages:`{count} 已压缩`,compactedPreserved:`已压缩 / 已保留`,contextTokens:`上下文 Token`,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:`触发器`},pe={draftRestored:`草稿已从您之前的会话中恢复。`,waitingUpload:`{count, plural, other {正在等待 # 个附件上传完成,然后发送。}}`},me={allowMicrophone:`允许麦克风`,openSettings:`打开设置`},he={blockedTitle:`消息未发送。它似乎包含一个 API 密钥。`,body:`在聊天中发送的凭据在聊天记录中可见。请改为安全存储。`,dismiss:`忽略`,sendAnyway:`仍然发送`,storeSecurely:`安全存储`,warningTitle:`这看起来像一个 API 密钥`},ge={autoPreview:`自动 · {profile}`,accessAria:`助手访问权限:{label}`,assistantAccess:`助手访问权限`,assistantAccessTitle:`助手访问权限`,compactAria:`助手访问权限和模型配置文件`,compactAriaWithSummary:`助手访问权限和模型配置文件:{summary}`,defaultLabel:`{label} (默认)`,defaultSuffix:`(默认)`,loadingProfiles:`正在加载配置文件…`,modelProfile:`模型配置文件`,modelProfileTitle:`模型配置文件`,profileAria:`模型配置文件:{label}`,profileAriaFallback:`模型配置文件`,profileSwitchFailed:`配置文件已创建,但无法切换到它`,profileSwitchFallback:`切换配置文件失败。请重试。`,quickAdd:`新建模型`},_e={submitFailed:`提交确认失败。请重试。`,submitFailedRuleAvailable:`提交确认失败,但您仍然可以创建规则。`},ve={allow:`允许`,deny:`拒绝`,hideDetails:`隐藏详情`,showDetails:`显示详情`,titleFallback:`需要确认`,toolLabel:`工具:`},ye={saveFailed:`保存联系人失败。请重试。`,cancelFailed:`关闭表单失败,请重试。`,recordCancelFailed:`关闭表单失败,请重试。`,recordSaveFailed:`保存联系人失败,请重试。`},be={addContact:`添加联系人`,addingToContact:`正在为 {name} 添加渠道`,cancel:`取消`,contactSaved:`联系人已保存`,enterAddress:`输入 {channel} 地址`,namePlaceholder:`名称`,notesLabel:`备注`,save:`保存`,saving:`正在保存…`,markVerified:`将此地址标记为已验证`,markVerifiedHelp:`已验证的地址可以向您的助手发送消息。`},xe={channelType:`{channel}:`,contactMerged:`联系人已合并`,merge:`合并`,mergeDonorChannels:`从 {name} 转移`,mergeSurvivorChannels:`已属于 {name}`,mergeTitle:`将 {donor} 合并到 {survivor}?`,mergeWarning:`这些渠道将转移到 {survivor},并删除 {donor} 的记录。`,nameLabel:`姓名`,notesLabel:`备注`,notesPlaceholder:`添加备注`,cancel:`取消`,contactDeleted:`联系人已删除`,contactSaved:`联系人已保存`,createTitle:`添加联系人`,delete:`删除`,deleteTitle:`删除 {name}?`,deleteWarning:`这也将移除其所有渠道,对方将无法再联系到您的助手。`,namePlaceholder:`姓名`,noChannels:`该联系人暂无渠道。`,save:`保存`,saving:`正在保存…`,updateTitle:`更新 {name}`},Se={clearContext:`清除上下文`,compactsHint:`{name} 自动<br></br>压缩其上下文。`,compactsHintInline:`{name} 自动压缩上下文`,defaultAssistantName:`您的助手`,label:`上下文窗口:`,percentFull:`已使用 {percentage}%`,ringAria:`上下文窗口已使用 {percentage}%`,title:`上下文窗口`,tokensUsed:`已使用 {used} / {max} Token`},Ce={archive:`归档`,copyConversation:`复制完整对话`,copyConversationId:`复制对话ID`,delete:`删除`,done:`完成`,forkConversation:`派生对话`,inspect:`分析对话`,markAsDone:`标记为已完成`,markRead:`标记为已读`,markUnread:`标记为未读`,moveToGroup:`移动到群组`,newGroup:`新建群组…`,openInNewWindow:`在新窗口中打开`,pin:`置顶`,refresh:`刷新`,removeFromGroup:`从群组中移除`,rename:`重命名`,reopen:`重新打开`,shareFeedback:`分享反馈`,triggerAriaLabel:`对话操作`,unarchive:`取消归档`,unpin:`取消置顶`},we={closeAriaLabel:`关闭`,title:`对话操作`},Te={delete:`删除`,downloadPdf:`下载PDF`,exportAsVellum:`导出为.vellum文件`,open:`打开`,optionsFor:`{name}的选项`,pin:`置顶`,share:`分享`,unpin:`取消置顶`},Ee={ariaLabel:`对话资产,{count, plural, one {# 个项目} other {# 个项目}}`,ariaLabelUnavailable:`对话资产,无法加载`,ariaLabelUnseen:`对话资产,{count, plural, one {# 个项目} other {# 个项目}}(未查看的更改)`,label:`{count, plural, one {# 个资产} other {# 个资产}}`,labelUnavailable:`无法加载资产`,labelPartial:`部分资源无法加载`,ariaLabelPartial:`对话资源,部分无法加载`,labelLoaded:`{count, plural, other {已加载 # 个资源}}`,ariaLabelLoaded:`对话资源,{count, plural, other {已加载 # 项}}`,ariaLabelLoadedUnseen:`对话资源,{count, plural, other {已加载 # 项}}(有未查看的更改)`},De={caption:`尝试以下建议:`},Oe={sendAria:`发送:{label}`},ke={copied:`已复制`,copy:`复制`},Ae={conversationCopied:`对话ID已复制到剪贴板。`,conversationFailed:`无法复制对话ID。`,groupCopied:`群组ID已复制到剪贴板。`,groupFailed:`无法复制群组ID。`},je={balanceAria:`{balance} 积分`,balanceShort:`{balance} 积分`,credits:`积分`},Me={loginToAddCredits:`登录Vellum平台以添加积分。`},Ne={emptyFile:`此文件为空`,summary:`{rows, plural, other {# 行}} x {columns, plural, other {# 列}}`,summaryTruncated:`{rows, plural, other {# 行}} x {columns, plural, other {# 列}}(已截断)`},Pe={skipConfirmTitle:`跳过今日积分限制?`,skipError:`无法跳过今日限制。请重试。`,skipForToday:`今日跳过`,subtitle:`Vellum积分消费已暂停,直到您的限制在{resetPhrase}重置。`,title:`已达到每日积分限制`},Fe={acknowledgment:`我理解相关资产和记忆可能仍会保留`,cancel:`取消`,confirm:`删除`,message:`删除“{title}”?这将永久删除对话及其消息。相关资产和记忆可能仍会保留。此操作无法撤消。`,title:`删除对话`},Ie={label:`此消息已被删除`},Le={pdfDownloadFailed:`下载PDF失败`},Re={send:`发送`,sending:`正在发送…`},ze={addCommentPlaceholder:`添加评论…`,closeAria:`关闭评论面板`,empty:`暂无评论`,loading:`正在加载评论…`,submitFeedback:`提交反馈`,title:`评论`},Be={assistantMonogram:`V`,authorAssistant:`助手`,authorYou:`您`,deleteCommentAria:`删除评论`,jumpToHighlight:`跳转到高亮文本`,open:`打开`,reopen:`重新打开`,reply:`回复`,replyPlaceholder:`撰写回复…`,resolve:`解决`,resolved:`已解决`},Ve={openAria:`打开 {name}`},He={openAria:`打开 {name}`},Ue={close:`关闭`,closeDocumentAria:`关闭文档`,comments:`评论`,export:`导出`,hideComments:`隐藏评论`,menuAria:`文档选项`,rename:`重命名`,renameFailed:`无法重命名文档。`,renameSave:`保存`,renameTitle:`重命名文档`,saved:`已保存`,saving:`正在保存…`,wordCount:`{count, plural, other {# 个字}}`},We={unavailable:`无法打开文档对话。请重试。`,updateRequired:`请更新助手以开始关联对话。`,prepareFailed:`无法准备文档对话。你的编辑仍然保留。`,feedbackPrompt:`请查看并处理我对“{title}”的评论。`,missing:`此文档的对话不可用。你可以继续编辑或开始新的关联对话。`,start:`开始关联对话`,retry:`重试`,back:`返回`},Ge={exportFailed:`导出 PDF 失败`,notFound:`未找到文档。`},Ke={collapse:`收起`,titleFallback:`动态内容`},qe={cancel:`取消`,close:`关闭`,defaultError:`导出检查器数据失败。`,descriptionDone:`您的下载应该已自动开始。`,descriptionError:`收集导出数据时发生错误。`,descriptionRunning:`正在收集提供程序负载和标准化上下文。对于长对话,这可能需要一些时间。`,done:`完成`,progressAriaLabel:`导出进度`,retry:`重试`,statusDone:`完成`,statusPackaging:`正在打包 ZIP…`,statusProgress:`已完成 {completed} / {total} 次调用`,titleDone:`导出完成`,titleError:`导出失败`,titleRunning:`正在导出检查器数据`},Je={diffForAria:`{path} 的差异`},Ye={failed:`文件下载失败`},Xe={closePreviewAria:`关闭预览`,closeTooltip:`关闭`,download:`下载`,downloadAria:`下载 {name}`,loadError:`无法加载此文件`,overLimit:`{size},超出 {limit} 预览限制`,tooLarge:`此文件过大,无法预览`,tryAgain:`重试`},Ze={accepted:`接受:{types}`,dropHint:`将文件拖放到此处,或点击浏览`,maxSize:`最大大小:{size}`,removeFile:`移除 {name}`,upload:`上传`,uploading:`正在上传...`},Qe={secureHint:`此值将安全发送,不会存储在您的浏览器中。`,selectPlaceholder:`选择...`},$e={collapse:`隐藏帧筛选读数`,expand:`显示帧筛选读数`,decisionOrder:`决策顺序`,detailLabel:`细节度 (亮度标准差)`,keep:`保留`,keptFrameAlt:`已保留画面`,maxIntervalLabel:`心跳间隔`,minDetailLabel:`最低细节度`,motionLabel:`与前一帧运动量`,noKeeps:`尚未保留任何画面。`,noveltyLabel:`与上次保留的新颖度`,noveltyThresholdLabel:`新颖度阈值`,overridden:`已偏离默认值`,reasonFeatureless:`细节过少,无法比较。`,reasonFirst:`尚未保留画面,画面已稳定。`,reasonForced:`为当前提出的问题保留。`,reasonHeartbeat:`画面未发生变化,但上一张照片时间已过久。`,reasonMoving:`画面仍在晃动中。`,reasonNovel:`与上一张照片相比发生了足够的变化。`,reasonUnchanged:`画面稳定、采集时间近且与上一张照片基本一致。`,reasonWarmup:`仍处于曝光预热阶段。`,recentFrames:`最近画面帧`,recentKeeps:`最近保留帧`,reset:`重置`,settleThresholdLabel:`稳定阈值`,skip:`跳过`,stepFeatureless:`最低细节度`,stepFirst:`首帧保留`,stepForced:`用户请求`,stepHeartbeat:`心跳`,stepMoving:`画面稳定`,stepNovel:`新颖度`,stepUnchanged:`未变更`,stepWarmup:`预热`,surfaceVoice:`语音通话摄像头`,thresholds:`阈值`,valueAbsent:`无`,forcedNoveltyThresholdLabel:`主动请求阈值`,reasonAnswered:`已请求,但上一张照片已包含该内容。`,reasonSettling:`已停止移动,但静止时间尚不足。`,stepAnswered:`已显示`,stepSettling:`保持静止`},et={archiveAll:`全部归档…`,copyGroupId:`复制群组 ID`,deleteGroup:`删除群组`,deleteGroupWithConversations:`删除群组…`,groupByChannel:`按渠道分组`,markAllAsDone:`全部标记为已完成…`,markAllRead:`全部标记为已读`,moveSectionDown:`下移分区`,moveSectionUp:`上移分区`,rename:`重命名`,ungroup:`取消分组`},tt={title:`{name} 操作`},nt={create:`创建`,newTitle:`新建群组`,renameTitle:`重命名群组`,save:`保存`},rt={next:`下一步`,showMeAround:`带我看看`,skipTour:`跳过导览`},it={ariaLabel:`聊天插件,{count} 个活跃`,costCaption:`更改插件设置可能会产生高额费用。`,countLabel:`{count, plural, other {# 个插件}}`,manage:`管理`,plugins:`插件`},at={stop:`停止`},ot={accessDenied:`当“内部线程操作”功能标志启用时,检查器可用。`,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, 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 上下文检查器`},st={android:`语音已在 Android 应用中激活。`,ios:`语音已在 iOS 应用中激活。`,macos:`语音已在 Mac 应用中激活。`,unknown:`语音已在其他地方激活。`,web:`语音已在其他浏览器标签页中激活。`,windows:`语音已在 Windows 应用中激活。`},ct={startVoiceMode:`启动语音模式`,tooltip:`用语音模式开口交谈`},lt={connecting:`正在连接…`,ending:`正在结束…`,listening:`正在聆听…`,muted:`已静音`,reconnecting:`正在重新连接…`,speaking:`正在说话…`,thinking:`正在思考…`,working:`正在处理…`,askUnsupported:`该助手尚不支持以这种方式提问。请更新后重试。`},ut={chipCode:`代码`,chipProvider:`提供商`,chipRequestId:`请求 ID`,chipStatus:`状态`,chipType:`类型`,chipUpstreamCode:`上游代码`,chipUpstreamParam:`上游参数`,chipUpstreamType:`上游类型`,noResponse:`提供商拒绝了此调用且未返回任何响应。`,title:`调用失败`},dt={loadingAria:`正在加载 {label}`,pictureInPictureUnavailable:`画中画不可用`},ft={closePreview:`关闭预览:{filename}`,fileOptions:`文件选项:{filename}`,openInWorkspace:`在工作区中打开:{filename}`,openPreview:`打开预览:{filename}`,unavailable:`此文件在此处不可用`,unavailableLabel:`文件不可用:{filename}`,viewImage:`查看图片:{filename}`},pt={download:`下载`,fileActionsAria:`文件操作`,goToFile:`转到文件`,pictureInPicture:`画中画`},mt={addCredits:`添加点数`,ariaLabel:`您的点数不足。{detail}`,subtitle:`添加点数以避免中断。`,title:`您的点数不足`},ht={body:`您的助手工作区当前已连接到调试终端。在恢复模式下,聊天不可用。`,loginHint:`登录 Vellum 平台以退出恢复模式。`,resume:`恢复助手`,title:`助手处于恢复模式`},gt={body:`维护期间,聊天不可用。`,goToDebug:`转到调试设置`,title:`助手处于恢复模式`},_t={addOlderPairButton:`+ 添加更早的对话对`,assistantReplyLabel:`[助手]: 回复`,assistantReplyPlaceholder:`助手在下方用户消息之前给出的回复。`,configTitle:`配置 {paneId}`,conversationalContextTitle:`对话上下文(两窗格共享)`,customPromptPlaceholder:`自定义路由器系统提示词。可用占位符:
4
+ '{ASSISTANT_NAME}, {USER_NAME}, {PAGE_INDEX}'
5
+ 留空以使用捆绑模板。“加载默认”会将捆绑内容填充到文本区域以供编辑。`,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:`刚到达的 [用户]: 消息`,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, 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:`[用户]: 消息`,userMessagePlaceholder:`用户的消息。`},vt={afterMergeLabel:`合并后`,breakdownCAssistantRerank:`c_助手 · 重新排序 Δ_a`,breakdownCAssistantSim:`c_助手 · sim_a`,breakdownCNowSim:`c_当前 · sim_n`,breakdownCUserRerank:`c_用户 · 重新排序 Δ_u`,breakdownCUserSim:`c_用户 · sim_u`,breakdownOwnActivation:`A_o (自身)`,breakdownPriorActivation:`先前 · d`,breakdownRerankScaledRaw:`+{scaled} (原始 {raw})`,breakdownScaledRaw:`{scaled} (原始 {raw})`,breakdownSource:`来源`,breakdownSpreadDelta:`传播 Δ`,breakdownStatus:`状态`,candidatePoolChosenChip:`已选择`,candidatePoolNoneBody:`本轮未记录候选池。`,candidatePoolPassthroughSubtitle:`{poolSize, plural, other {# 个候选未经选择器评判直接通过}} · 选择器已禁用`,candidatePoolSelectorNotRunBody:`本轮未运行选择器。`,candidatePoolSubtitle:`{poolSize, plural, other {已向选择器展示 # 个候选}} · {selectedCount, plural, other {已选择 # 个页面}}`,candidatePoolTitle:`候选池`,candidateScores:`语义 {semantic} · 近期 {recency}`,carriedPill:`携带: {count}`,conceptActivationsSubtitle:"按最终激活排序。技能条目以 `skills/` 前缀显示;展开一行可查看激活明细。",conceptActivationsTitle:`概念激活 ({count})`,configCAssistant:`c_助手`,configCNow:`c_当前`,configCUser:`c_用户`,configDDecay:`d (衰减)`,configEpsilon:`epsilon`,configHops:`跳数`,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:`注入的 Token`,latencyMs:`{ms} 毫秒`,loading:`加载中…`,loggedMemorySelectionSubtitle:`根据 v3 选择渲染,本轮未注入。`,loggedMemorySelectionTitle:`已记录的记忆选择`,memoryDisabledDefaultReason:`本轮已禁用记忆召回。`,memoryDisabledTitle:`记忆已禁用`,missingValue:`-`,modelLabel:`模型`,no:`否`,noDataBody:`此消息的记忆召回信息不可用。`,noDataTitle:`无记忆数据`,noEntriesRanked:`无条目排名。`,noPagesSelected:`未选择任何页面。`,notInjectedPill:`未注入: {count}`,pageContentLabel:`页面内容`,pageNotFound:`磁盘上未找到页面。Slug 可能引用了过时的 Qdrant 条目。`,pillMemoryV2:`记忆 V2`,pillMemoryV3:`记忆 V3`,pillRecallV1:`召回 (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, other {# 个候选按最终得分排名。}}`,topCandidatesTitle:`热门候选`,totalLatencyLabel:`总延迟`,turnLevelRecallBody:`记忆召回每轮运行一次。此数据适用于此消息的所有 LLM 调用。`,turnLevelRecallTitle:`轮级召回`,turnPill:`轮次 {turn}`,unavailable:`不可用`,unknown:`未知`,v2StatusInContext:`在上下文中`,v2StatusInjected:`已注入`,v2StatusNotInjected:`未注入`,v2StatusPageMissing:`页面缺失`,v2TurnBody:`传播激活记忆过程,用于对本轮的概念和技能进行排名。`,v2TurnTitle:`记忆 - 轮次 {turn} ({mode})`,v3LiveInjectionBody:`v3 是本轮的实时记忆来源:下面的块已注入到上下文中(v2 已抑制)。`,v3LiveInjectionTitle:`记忆 V3 - 实时注入`,v3LoggedSelectionBody:`v3 不是此助手的实时记忆来源:这些选择已记录但本轮未注入;本轮的记忆来自 v2。`,v3LoggedSelectionTitle:`记忆 V3 - 已记录选择(未注入)`,v3SourceCarried:`携带`,v3SourceCore:`核心`,v3SourceL1L2:`L1+L2`,v3SourceNeedle:`针`,yes:`是`},yt={closeAria:`关闭文件`,empty:`此消息没有文件`,title:`文件`},bt={autoRouted:`自动 · {profile}`,bookmark:`书签`,copied:`已复制`,copy:`复制`,copyFailed:`无法复制这条消息。`,forkFromHere:`从此分叉`,inspect:`检查`,loading:`朗读中…`,openInSlack:`在 Slack 中打开`,playFailed:`无法朗读这条消息。`,readAloud:`朗读`,removeBookmark:`移除书签`,retry:`重试`,stop:`停止`,summarizeUpToHere:`总结到此处`},xt={bookmark:`书签`,copied:`已复制`,copy:`复制`,copyFailed:`无法复制这条消息。`,forkFromHere:`从此分叉`,inspect:`检查`,openInSlack:`在 Slack 中打开`,readAloud:`朗读`,removeBookmark:`移除书签`,stop:`停止`,summarizeUpToHere:`总结到此处`,title:`消息操作`},St={cancel:`取消`,continue:`继续`,description:`语音输入需要麦克风访问权限。音频将由您配置的语音转文本提供商转录,如果未设置提供商,则由您设备的内置听写功能转录。`,title:`麦克风访问权限`},Ct={ariaLabel:`需要 API 密钥`,body:`请在“设置”→“模型与服务”中添加 API 密钥以开始聊天。`,dismiss:`忽略`,dismissAria:`忽略需要 API 密钥的提醒`,openSettings:`打开设置`,title:`需要 API 密钥`},wt={callOfTotal:`第 {number} 个调用,共 {total} 个`,llmCallCount:`{count, plural, other {# 个 LLM 调用}}`,selectCallAria:`选择一个 LLM 调用进行检查`,sheetTitle:`选择一个调用`},Tt={dismissAria:`忽略`,unknownCommandNudge:`此命令无法识别。<ruleLink>创建规则</ruleLink>以便下次分类。`,viewSteps:`查看步骤`},Et={cancel:`取消`,icon:`图标`,name:`名称`,noIcon:`无图标`},Dt={heading:`为新聊天添加插件`,managePlugins:`管理插件`,showAll:`显示全部 (+{count})`,showLess:`显示更少`,tooltip:`选择此聊天可使用的插件。您的选择将在您发送第一条消息时应用,并保留在此对话中。`},Ot={managePlugins:`管理插件`},kt={approvalAria:`关于助手批准`,approvalTooltip:`未经您的批准,{name} 绝不会代表您行事`,connect:`连接`,connectTitle:`连接 {name}`,connected:`已连接`,defaultDescription:`连接 {name},以便我能将其用于此任务。`,dismiss:`忽略`,missingDetails:`缺少助手或提供商详细信息。`,tenantHostInvalid:`请输入有效的{label},例如 {placeholder}`,thisAccount:`此账户`,waiting:`等待中...`,yourAssistant:`您的助手`},At={continue:`继续`,helpWithHeading:`我能帮您什么?`,letsChat:`我们来聊聊`,other:`其他`,otherPlaceholder:`您需要什么帮助?`,selectAll:`选择所有适用项`,somethingElse:`其他事项`,specific:`我有一个具体事项`},jt={message:`此对话分支所源自的对话已被删除,因此分支点之前的消息已丢失。此后发送的所有内容均完好无损。`},Mt={cacheTokensLabel:`缓存 Token`,conversationSubtitle:`迄今为止所有计费LLM调用的累计总额。`,conversationTitle:`对话`,createdLabel:`创建时间`,durationLabel:`持续时间`,estimatedCostLabel:`预估费用`,failedStatus:`失败`,firstTokenKindLabel:`首个 Token类型`,firstTokenLatencySubtitle:`此轮次首个 Token响应时间去向,由助手测量。`,firstTokenLatencyTitle:`首个 Token延迟`,inputTokensLabel:`输入 Token`,latencyMs:`{ms} 毫秒`,loopExitReasonLabel:`循环退出原因`,modelLabel:`模型`,normalizedMetadataSubtitle:`提供商、模型、时间戳和使用计数。`,normalizedMetadataTitle:`标准化元数据`,normalizedSummaryUnavailableSubtitle:`此调用仍包含原始请求和响应负载。`,normalizedSummaryUnavailableTitle:`标准化摘要不可用`,otherLabel:`其他`,outputTokensLabel:`输出 Token`,providerLabel:`提供商`,requestMessagesLabel:`请求消息`,statusLabel:`状态`,stopReasonLabel:`停止原因`,toolCallsLabel:`工具调用`,toolsAvailableLabel:`可用工具`,totalCostSoFarLabel:`迄今总费用`,totalToFirstTokenLabel:`至首个 Token总计`,usageSubtitle:`由助手路由标准化的Token 和调用计数。`,usageTitle:`用量`},Nt={formStepsAria:`表单步骤`},Pt={loadingPdf:`正在加载PDF`},Ft={pageCapNotice:`{count, plural, one {显示第一页} other {显示前 # 页}}`},It={startedAt:`开始于 {time}`},Lt={colors:{green:`绿色`,orange:`橙色`,pink:`粉色`,purple:`紫色`,teal:`青色`,yellow:`黄色`},noColor:`无颜色`},Rt={unpin:`取消固定`,unpinAria:`取消固定 {name}`},zt={disableAria:`为此聊天禁用 {name}`,enableAria:`为此聊天启用 {name}`},Bt={admin:`管理`,earnCredits:`赚取免费积分`,preferences:`偏好设置`,settings:`设置`,shareFeedback:`分享反馈`},Vt={addCreditsAriaLabel:`添加额度`,dailyExhausted:`今日用量已用完。添加额度以继续。`,dailyTitle:`每日用量`,exhausted:`添加额度以继续。`,extraCredits:`正在使用额外用量额度`,pctUsed:`已使用 {pct}%`,settingsAriaLabel:`用量和账单设置`,title:`用量`},Ht={cannotPreview:`无法预览此文件`},Ut={download:`下载`,downloadAria:`下载 {filename}`},Wt={loadingPreview:`正在加载预览`},Gt={markdown:`显示前 512 KB`,text:`显示前 2 MB`},Kt={downloadFile:`下载文件`,goToFile:`前往文件`,noPreviewForType:`此文件类型无预览`},qt={agentsLabel:`代理`,agentsToggleAria:`代理:{running, plural, =0 {无运行中} other {# 个运行中}},{completed, plural, =0 {无已完成} other {# 个已完成}}`,railAria:`进度`,stepCounter:`第 {current} 步,共 {total} 步`,title:`进度`,titleFinished:`已完成`,titleStopped:`已停止`},Jt={noActiveSession:`无活动会话。请重试。`},Yt={availableTools:`可用工具`,bannerNoSections:`此调用尚无标准化提示词部分。`,bannerSectionsCount:`{count, plural, other {显示由助手路由返回的 # 个标准化请求部分。}}`,collapseAll:`全部折叠`,copyAriaLabel:`复制 {title}`,emptyBody:`此调用无标准化提示词部分。请使用“原始”选项卡检查完整的请求负载。`,emptyTitle:`无标准化提示词部分`,expandAll:`全部展开`,formatJavaScript:`JavaScript`,formatJson:`JSON`,formatMarkdown:`Markdown`,formatTypeScript:`TypeScript`,noContentAvailable:`无可用内容。`,promptSectionsTitle:`提示词部分`},Xt={body:`向您的提供商充值或降低模型Token 限制。`,title:`您的 API 密钥需要充值`},Zt={refreshing:`正在刷新`},Qt={submitFailed:`提交回复失败。请重试。`},$t={expandAria:`重新打开问题`,minimizeAria:`最小化问题`,nextQuestionAria:`下一个问题`,optionAria:`选项 {number}:{label}`,previousQuestionAria:`上一个问题`,position:`{current} / {total}`,sendResponseAria:`发送回复`,skip:`跳过`,skipAria:`跳过此问题`,skipped:`已跳过`,skippedHint:`已跳过 - 选择一个选项以覆盖`,typeDifferentAnswerAria:`输入不同的答案`,typeSomethingElsePlaceholder:`输入其他内容`},en={cancelAll:`取消全部`,cancelAllAria:`取消所有排队消息`,cancelAria:`取消排队消息`,editAria:`编辑排队消息`,pushToAgentAria:`推送给助手`,queueHeading:`队列 · {count}`,showActionsAria:`显示排队消息操作`},tn={addToChat:`添加到聊天`,ariaLabel:`引用并回复`,cancel:`取消`,placeholder:`输入您的回复…`},nn={input:`原始输入`,output:`原始输出`},rn={copyRequestPayloadAriaLabel:`复制请求负载`,copyResponsePayloadAriaLabel:`复制响应负载`,downloadFailedToast:`下载负载失败。`,downloadRequestPayloadAriaLabel:`下载请求负载`,downloadResponsePayloadAriaLabel:`下载响应负载`,loadErrorTitle:`无法加载原始负载`,loading:`正在加载原始负载…`,payloadRequestFailed:`负载请求失败。请重试。`,request:`请求`,requestPayload:`请求负载`,response:`响应`,responsePayload:`响应负载`,retry:`重试`},an={clickToReveal:`点击显示`,clickToRevealTitle:`{label} · 点击显示`,copyValue:`复制值`,copyValueAria:`复制 {name} 的值`,hideValue:`隐藏值`,hideValueAria:`隐藏 {name} 的值`,redacted:`已遮盖`,redactedTitle:`已遮盖 - 此值未链接到存储的凭据`,redactionMarkerTitle:`遮盖标记 - 未经助手验证`,revealFailed:`无法显示 {name}。`,revealValueAria:`显示 {name} 的值`},on={retryAria:`重试刷新`},sn={save:`保存`,title:`重命名对话`},cn={defaultStatus:`正在搜索网页以了解您。`,heading:`正在了解您…`,reading:`正在阅读 <title>{title}</title><domain> · {domain}</domain>`,searchingFor:`正在搜索 <query>“{query}”</query>`,warmingUp:`正在预热搜索…`},ln={editRemovalAria:`编辑移除`,keepIt:`保留`,removeAria:`移除`,sources:`来源`,whyRemove:`为何移除此项?`},un={heading:`正在了解您…`,mockNote:`(模拟 - 实时流程在此处显示搜索活动源)`,resultsTitle:`这是我了解到的关于您的信息。您可以移除任何不真实的内容:`},dn={body:`这是我了解到的关于您的信息。您可以移除任何不真实的内容:`,loading:`正在了解您…`},fn={continue:`继续`,emptyBody:`这次我无法整理出清晰的个人资料。我们可以在后续交流中互相了解。`,emptyTitle:`我们直接开始吧。`},pn={heading:`以下是我可以如何帮助您开始:`},mn={argumentsPreview:`参数预览`,copySectionAria:`复制章节内容`,kindAssistantText:`助手文本`,kindFunctionResponse:`函数响应`,kindReasoning:`推理`,kindToolCall:`工具调用`,kindToolResult:`工具结果`,modeResultOnly:`仅结果响应`,modeTextOnly:`仅文本响应`,modeToolCalling:`工具调用响应`,noArgumentsPreview:`此工具调用没有可用的结构化参数预览。`,noAssistantText:`此章节未捕获到助手文本。`,noSectionsFallback:`此响应没有渲染的章节。原始负载在“原始数据”选项卡中仍然可用,并且任何规范化的响应元数据(如果存在)仍将显示。`,rawTabHint:`需要完整的提供者负载?打开“原始数据”选项卡查看请求和响应 JSON。`,responseMetadata:`响应元数据`,sectionTitle:`章节 {number}`,sectionUnavailable:`章节渲染不可用`,stopReasonChip:`停止原因:{reason}`,toolChip:`工具:{name}`},hn={saveFailed:`保存信任规则失败。请重试。`},gn={aria:`前往最新消息`,label:`前往最新`},_n={submitFailed:`提交密钥失败。请重试。`},vn={showValue:`显示值`,hideValue:`隐藏值`,cancel:`取消`,domains:`域:{list}`,placeholder:`输入密钥值...`,save:`保存`,savedSecurely:`已安全保存`,saving:`正在保存...`,secretValueFallback:`密钥值`,sendOnce:`发送一次(不保存)`,sending:`正在发送...`,storedSecurelyNote:`此信息安全地存储在您的设备上,不会发送到任何服务器。AI 永远不会看到此值。`,title:`安全凭据`,tools:`工具:{list}`},yn={body:`自托管助手的对话尚未在网页端提供。请从设置中管理您的助手。`,openSettings:`打开设置`,title:`自托管助手`},bn={settingUp:`正在设置您的助手…`},xn={yourAssistant:`您的助手`},Sn={newChat:`新建聊天`},Cn={label:`返回顶部`},wn={message:`您的对话加载失败。`,retry:`重试`},Tn={loadingAria:`正在加载对话`},En={newGroup:`新建群组…`},Dn={label:`查看所有聊天`},On={webSearch:`网页搜索`},kn={actionsAria:`技能操作`,closeDetails:`关闭技能详情`,goToSkill:`前往技能`,loadError:`此技能无法加载。它可能已被移除。`,moreTooltip:`更多`,removeSkill:`移除技能`,titleFallback:`技能`},An={runningSuffix:` · 正在运行`,unnamedTool:`技能工具`},jn={view:`查看`},Mn={failed:`加载失败`,loading:`正在加载技能…`,loadingAria:`正在加载技能`,notApproved:`未获批准`,provides:`提供`,unnamedSkill:`技能`,usedSkill:`已用技能`},Nn={fromSkill:`来自 {name}`},Pn={callLink:`调用 {number}`,emptyBody:`此选项卡列出了对话中所有的 <code>skill_load</code> 工具调用。在捕获的 LLM 调用中未检测到任何此类调用。`,emptyTitle:`此对话中未加载任何技能`,loadCount:`{count, plural, other {# 次加载}}`,summaryStats:`{uniqueCount, plural, other {# 个独特技能}} · {totalLoads, plural, other {# 次加载调用}}`,summaryTitle:`此对话中加载的技能`},Fn={editReplyAria:`编辑回复`,removeQuoteAria:`移除引用`,typeReplyPlaceholder:`输入您的回复…`},In={successToast:`已安全存储。密钥从未进入聊天。`},Ln={backToTimelineAria:`返回时间线`,backTooltip:`返回`,closeDetail:`关闭子代理详情`,input:`输入`,noEventsYet:`暂无事件`,objective:`目标`,output:`输出`,stopSubagentAria:`停止子代理`,timeline:`时间线`},Rn={viewReasoning:`查看推理过程`,viewSearchDetails:`查看搜索详情`,viewSearchError:`查看搜索错误`,viewToolDetails:`查看工具详情`,workedFor:`运行了 {duration}`},zn={stopSubagentAria:`停止子代理`},Bn={openAria:`打开建议:{title}`},Vn={closeAria:`关闭`,letsDoIt:`开始吧!`,thingsWeCanDo:`我们可以做:`,whatWellNeed:`我们需要:`},Hn={scrollForMore:`向下滚动查看更多`},Un={submitFailed:`提交失败。请重试。`},Wn={cancelled:`已取消`,displayFailed:`无法显示此内容。`,displayFailedNamed:`无法显示“{title}”。`,done:`完成`,unknownSurface:`未知界面`,unsupportedType:`不支持的界面类型:{type}`},Gn={copied:`已复制`,copy:`复制`,copyAria:`将表格复制为 Markdown`,copyFailed:`无法复制表格。`,table:`表格`},Kn={continue:`继续`,defaultTitle:`我能帮您什么?`,other:`其他`,otherPlaceholder:`描述您需要什么帮助...`,selectAll:`选择所有适用项`,somethingElse:`完全是其他事情`},qn={loadFailed:`加载预览失败。`,tooLarge:`文件过大,无法内联预览。`},Jn={reply:`回复`},Yn={title:`思考中`},Xn={adding:`正在添加…`,comment:`评论`,feedbackPlaceholder:`添加您的反馈…`},Zn={allow:`允许`,confirmationRequired:`需要确认`,copyOutput:`复制输出`,deny:`拒绝`,hideDetails:`隐藏详情`,output:`输出`,showDetails:`显示详情`,technicalDetails:`技术详情`,toolLatency:`工具延迟:`,toolName:`工具名称`},Qn={defaultValue:`默认值:{value}`,inputSchema:`输入架构`,intro:`{count, plural, other {# 个工具}}随此请求发送。展开工具可查看其定义和输入架构。`,noInputSchema:`无输入架构 - 此工具不接受结构化输入。`,required:`必填`,settings:`设置`},$n={changes:`更改`,closeAria:`关闭工具详情`,command:`命令`,denied:`此工具调用未获批准,因此没有运行。`,emptyOutput:`该工具没有返回任何输出。`,output:`输出`,requestedChanges:`请求的更改`,running:`正在运行…`},er={parameters:`参数`,moreCount:`{count, plural, other {另有 # 项,见“原始输入”}}`},tr={moreCount:`{count, plural, other {另有 # 项,见“原始输出”}}`},nr={copyValue:`复制 {label}`},rr={openAria:`打开 {label}`,viewDetailsAria:`查看详情:{label}`},ir={fileUnavailable:`文件不可下载`,fileUnavailableHostTimeout:`文件不可下载(主机文件审批可能已超时)`,stopCommand:`停止命令`,stopRun:`停止运行`,stopWorkflow:`停止工作流`},ar={thinking:`思考中`,working:`处理中`},or={authFailed:`用户身份验证失败。`},sr={assistantBusy:`您的助手正忙。请在回复完成后重试。`,retryFailed:`无法重试响应`,summarizeFailed:`无法总结对话`},cr={commandFailed:`无法运行该命令。请重试。`,doctorUnavailable:`此助手上无法使用医生功能。`},lr={downloadFile:`下载文件`,goToFile:`前往文件`},ur={sketching:`正在绘制视觉效果...`},dr={visual:`视觉效果`},fr={ariaLabel:`语音会话`,endSession:`结束语音会话`,muteAssistant:`静音助手`,muteMicrophone:`静音麦克风`,muted:`已静音`,openVoiceRoom:`打开语音房间`,unmuteAssistant:`取消静音助手`,unmuteMicrophone:`取消静音麦克风`},pr={seed:`嘿,我刚和你开始了语音对话。此消息是自动发送的。请用一句话问候我,然后问我想做什么。`},mr={nativeSttNoTranscript:`{clientName} 原生听写未返回转录文本。请检查系统设置中的原生语音识别,然后重试。`,askUnavailable:`助手当前无法接收语音提问。`},hr={backAria:`返回`,description:`与 {name} 进行免提语音对话。`,listeningLanguage:`识别语言`,listeningLanguageApplies:`从您的下一次语音轮次开始生效。`,liveCaptions:`随时开启实时字幕。`,muteMic:`静音麦克风,但不结束会话。`,speakNaturally:`自然说话,{name} 会大声回复。`,startTalking:`开始说话`,title:`语音模式`,voiceSettings:`语音设置`,yourAssistant:`您的助手`},gr={unavailable:`此助手目前无法选择语音。`},_r={ariaLabel:`语音会话`,closeCamera:`关闭摄像头`,endSessionAria:`结束语音会话`,endSessionTooltip:`结束会话`,flashAuto:`自动闪光灯`,flashAutoBadge:`A`,flashOff:`关闭闪光灯`,flashOn:`开启闪光灯`,flipCamera:`翻转摄像头`,lightOff:`关闭补光灯`,lightOn:`开启补光灯`,minimizeAria:`最小化语音房间`,minimizeTooltip:`最小化(会话仍在进行)`,muteAssistant:`静音助手`,muteMicrophone:`静音麦克风`,mutedState:`已静音。{state}`,showCamera:`显示摄像头`,stopLive:`停止实时`,takePhoto:`拍照`,unmuteAssistant:`取消静音助手`,unmuteMicrophone:`取消静音麦克风`},vr={dismiss:`关闭`,endSession:`结束语音会话`,goToThreadAria:`前往语音会话线程`,groupAria:`语音会话`,muteAssistant:`静音助手`,muteMic:`静音麦克风`,unmuteAssistant:`取消静音助手`,unmuteMic:`取消静音麦克风`},yr={muted:`已静音`},br={commandFinished:`后台命令已完成`,incomingEvent:`收到事件`,memoryReview:`记忆回顾`,ranOnItsOwn:`自动运行`,resumed:`中断后已恢复`,scheduledRun:`定时运行`,watchReview:`观察会话回顾`,workflowFinished:`工作流已完成`},xr={details:`详细信息`,result:`结果`,runStatus:`运行状态`,title:`对话已唤醒`,workflow:`工作流`,closeAria:`关闭详情`},Sr={celsius:`°C`,fahrenheit:`°F`,feelsLike:`体感 {temp}°`,highLow:`高:{high}° 低:{low}°`,now:`现在`},Cr={fetchFailed:`获取失败。`,mayRequireJavaScript:`此页面可能需要 JavaScript 才能完整显示,因此部分内容可能缺失。`,startIndexPastEnd:`读取起点超出了此页面的末尾,因此没有读取到任何内容。`,truncated:`只读取了此页面的一部分。`},wr={noSources:`未找到来源。`,query:`查询`,sources:`来源`,sourcesWithCount:`来源 ({count})`},Tr={moreCount:`另有 {count} 项`},Er={after:`之后`,before:`之前`,notSet:`未设置`,removed:`已移除`},Dr={agents:`代理`,back:`返回`,backToSubagentsAria:`返回子代理`,closeDetail:`关闭工作流详情`,input:`输入`,noSubagentsYet:`暂无子代理`,output:`输出`,stopWorkflow:`停止工作流`,subagents:`子代理`},Or={input:`输入`,noPromptSummary:`暂无提示词摘要`,noResultSummary:`暂无结果摘要`,output:`输出`,prompt:`提示词`,result:`结果`,running:`运行中…`},kr={cancelledAria:`已取消`,openDetailsAria:`打开 {title} 详情`},Ar={openTitle:`打开 {path}`},jr={beyondPreviewLimit:`此工作表的单元格均超出预览限制`,emptySheet:`此工作表为空`,sheetUnreadable:`无法读取此工作表`,sheetsAria:`工作表`,sheetsOmitted:`{count, plural, other {另有 # 个工作表未显示}}`,summary:`{sheet}:{rows, plural, other {# 行}} x {columns, plural, other {# 列}}`,summaryTruncated:`{sheet}:{rows, plural, other {# 行}} x {columns, plural, other {# 列}}(已截断)`,summaryColumnsCut:`{sheet}:{rows, plural, other {# 行}} x {columns, number} / {total, plural, other {# 列}}`,summaryRowsCut:`{sheet}:{rows, number} / {total, plural, other {# 行}} x {columns, plural, other {# 列}}`,summaryBothCut:`{sheet}:{rows, number} / {totalRows, plural, other {# 行}} x {columns, number} / {totalColumns, plural, other {# 列}}`,countsColumnsCut:`{rows, plural, other {# 行}} x {columns, number} / {total, plural, other {# 列}}`,countsRowsCut:`{rows, number} / {total, plural, other {# 行}} x {columns, plural, other {# 列}}`,countsBothCut:`{rows, number} / {totalRows, plural, other {# 行}} x {columns, number} / {totalColumns, plural, other {# 列}}`},Mr={noResponse:`决定不回复`,reactionAddedSelf:`已用 {emoji} 回应`,reactionRemovedSelf:`已移除 {emoji} 回应`,reactionAdded:`{name} 用 {emoji} 回应`,reactionRemoved:`{name} 移除了 {emoji} 回应`,reactionSomeone:`有人`},Nr={doneDiscarded:`未保存`,doneNotRight:`已标记为有误`,doneSaved:`技能已保存`,recommended:`推荐`,back:`上一步`,dontSave:`不保存`,looksRight:`确认无误`,next:`下一步`,save:`保存技能`,skip:`跳过`,somethingOff:`有地方不对`,stepCount:`{count, plural, one {# 个步骤} other {# 个步骤}}`,stepQuestion:`问题 {number}`,stepRecap:`回顾`,stepSummary:`保存`,summarySay:`提示词`,summarySteps:`步骤`,summaryTitle:`已准备好保存`,summaryUnanswered:`未设置`,untitledTask:`观察到的操作`},Pr={restore:`恢复访问`,restoring:`正在恢复...`,restored:`已恢复。由 Vellum 托管的模型重新可用。`,failedNoAssistant:`请选择一个助手,然后重试。`,failedCannotActHere:`此应用无法为该助手恢复凭据。请在运行该助手的电脑上打开它。`,failedReplacementRejected:`Vellum 拒绝了新的凭据。请登录 Vellum 平台后重试。`,failedUnconfirmed:`新凭据已保存,但无法与 Vellum 确认。它可能很快就会生效。`,failedGeneric:`无法恢复访问。请稍后重试。`},Fr={emptyBody:`我随时都在思考。当有值得您关注的事情时,我会在这里发起对话。`,emptyTitle:`目前还没有任何想法。`},Ir={doneEmptyBody:`标记为已完成的聊天会保留在“所有聊天”中。`,doneEmptyTitle:`全部处理完毕。`,emptyBody:`开始新的聊天后,它会显示在这里。`,emptyTitle:`还没有聊天。`},Lr={expand:`展开`,collapse:`收起`},Rr={hide:`隐藏来自 {name} 的对话`,show:`显示来自 {name} 的对话`},zr={turn:`我点击了 {label}。接下来呢?`},Br={count:`{count, plural, other {# 个摄像头画面}}`,timeRange:`保存时间:{first} 至 {last}`,savedTime:`保存于 {time}`,pendingAria:`摄像头画面,图像仍在加载。{time}`,timeUnavailable:`时间不可用`},Vr={showPreview:`显示实时预览`,needsHelp:`虚拟桌面需要你的帮助。`,stepIn:`接管`,done:`完成`,skip:`跳过`,showMore:`展开`,showLess:`收起`},Hr={saved:`已保存`,saving:`正在保存`,notSaved:`未保存`},Ur={searchedFor:`搜索内容`,scope:`{depth} · {sources}`,answer:`回答`,evidence:`{count, plural, other {# 条结果}}`,noEvidence:`没有找到相关内容。`,degraded:`部分位置未能完整搜索`,degradedSource:`{source}:{error}`},Wr={source:`{source, select, memory {记忆} conversations {对话} workspace {工作区文件} other {{source}}}`,depth:`{depth, select, fast {快速搜索} standard {标准搜索} deep {深度搜索} other {搜索}}`},Gr={addCredits:`添加额度`,subtitle:`您已用完今日的免费用量,将在{resetPhrase}重置。升级或添加额度以继续。`,title:`今日免费用量已用完`,viewPlans:`查看方案`},Kr={askQuestionDetail:e,documentChat:t,acpChatPlanBlock:n,acpChatTerminalBlock:r,acpChatToolCard:i,acpConnectAffordance:a,acpRunChatView:o,activeChatView:s,markAllDoneConfirmDialog:c,mobileDetailSheet:l,activityStepsPanel:u,computerUseScreenshotPreview:d,addToChatSheet:f,allowOptionsMenu:p,appAssetActions:m,archiveAllConfirmDialog:h,assistantContentDisclosure:g,actionDisplay:_,allChatsPage:v,sessionGroupRow:y,assistantDesktop:b,assistantNavItem:x,assistantSideMenu:S,assistantSleepStage:C,assistantSwitcher:w,attachmentChip:T,attachmentDownloadOverlay:E,attachmentLoadingChip:D,attachmentOverflowSquare:O,attachmentPreviewModal:k,attachmentTile:A,backgroundTaskDetailPanel:j,billingErrorBanner:M,cacheBreakpointMapCard:N,cacheDiffCard:P,cacheHealthCard:F,callRail:I,callSummarySurface:L,cameraDeepLink:R,cameraError:z,cameraExplainer:B,cameraShutterHint:V,cameraStatusPill:H,cameraViewOptions:U,cardSurface:W,channelReferenceChip:G,channelSetupPanel:K,channelThreadControl:q,channelTranscriptPanel:J,chatAttachments:Y,emailReferenceChip:X,emailReferenceCard:Z,chatBody:Q,chatComposer:$,chatConversationHeader:ee,chatInfoPanel:te,chatLayout:ne,chatLayoutHeader:re,chatMarkdownMessage:ie,chatPage:ae,chatRouteContent:oe,chatRuleEditorModal:se,choiceSurface:ce,cleanupScreen:le,collapsedGroupIcon:ue,compactionCircuitOpenBanner:de,compactionTab:fe,composerDraftNotices:pe,composerNotices:me,composerSecretNotice:he,composerSettingsMenu:ge,confirmationActions:_e,confirmationPromptCard:ve,contactActions:ye,contactPromptCard:be,contactRecordCard:xe,contextWindowIndicator:Se,conversationActions:Ce,conversationActionsSheet:we,conversationAssetActions:Te,conversationAssets:Ee,conversationStarterDock:De,conversationStarterGrid:Oe,copyBlockSurface:ke,copyIdToClipboard:Ae,creditsCard:je,creditsUpsellCard:Me,csvPreview:Ne,dailyLimitBanner:Pe,deleteConversationConfirmDialog:Fe,deletedMessageRow:Ie,documentAssetActions:Le,documentCommentForm:Re,documentCommentPanel:ze,documentCommentThread:Be,documentPreviewSurface:Ve,documentReopenLink:He,documentViewerContainer:Ue,documentConversation:We,documentViewerPage:Ge,dynamicPageSurface:Ke,exportProgressModal:qe,fileDiffView:Je,fileDownload:Ye,filePreviewContainer:Xe,fileUploadSurface:Ze,formSurface:Qe,frameGateHud:$e,groupActions:et,groupActionsSheet:tt,groupNameDialogFromStore:nt,inChatOnboardingController:rt,inChatPluginPill:it,inlineProcessCard:at,inspectPage:ot,liveVoiceBusy:st,liveVoiceButton:ct,liveVoiceStatus:lt,llmCallErrorCard:ut,localFileEmbed:dt,localFileLink:ft,localFileMenu:pt,lowBalanceBanner:mt,maintenanceModeBanner:ht,maintenanceRecoveryCard:gt,memoryRouterPlaygroundPage:_t,memoryTab:vt,messageFilesPanel:yt,messageHoverActions:bt,messageLongPressActions:xt,micPermissionPrimer:St,missingApiKeyBanner:Ct,mobileCallSelector:wt,multiActivityGroup:Tt,nameInputDialog:Et,newChatPluginsPicker:Dt,newChatPluginsSection:Ot,oauthConnectSurface:kt,onboardingChoiceCard:At,orphanedHistoryNotice:jt,overviewTab:Mt,pageTabs:Nt,pdfPageSkeleton:Pt,pdfPreview:Ft,phaseGroupedStepList:It,pinnedAppColorSwatches:Lt,pinnedAppNavItem:Rt,pluginPill:zt,preferencesMenu:Bt,preferencesUsagePanel:Vt,previewError:Ht,previewMessageCard:Ut,previewSkeleton:Wt,previewTruncationNotice:Gt,previewUnsupported:Kt,progressRail:qt,promptSubmission:Jt,promptTab:Yt,providerBillingBanner:Xt,pullRefreshSpinner:Zt,questionActions:Qt,questionPromptCard:$t,queuedMessagesDrawer:en,quoteReplyBubble:tn,rawDisclosure:nn,rawTab:rn,redactedCredentialChip:an,refreshFeedbackPill:on,renameDialogFromStore:sn,researchActivityFeed:cn,researchFactsCard:ln,researchMockPage:un,researchResultsOverlay:dn,researchResultsView:fn,researchSuggestions:pn,responseTab:mn,ruleEditorActions:hn,scrollToLatestButton:gn,secretActions:_n,secretPromptCard:vn,selfHostedScreen:yn,setupScreen:bn,sideMenuBuiltInNav:xn,sideMenuOverlayBottomColumn:Sn,sidebarBackToTop:Cn,sidebarConversationError:wn,sidebarConversationSkeleton:Tn,sidebarListContextMenu:En,sidebarSectionViewAll:Dn,singleActivity:On,skillDetailPanel:kn,skillExecuteDetail:An,skillLoadCard:jn,skillLoadDetail:Mn,skillToolList:Nn,skillsTab:Pn,stagedQuotesStrip:Fn,storeCredentialDialog:In,subagentDetailPanel:Ln,subagentPhaseTimeline:Rn,subagentSpawnGroup:zn,suggestionCard:Bn,suggestionDetailPanel:Vn,suggestionLibrary:Hn,surfaceActions:Un,surfaceRouter:Wn,tableSurface:Gn,taskPreferencesSurface:Kn,textPreview:qn,textSelectionPopover:Jn,thinkingDetail:Yn,tiptapDocumentEditor:Xn,toolCallChip:Zn,toolDefinitionsContent:Qn,toolDetailPanel:$n,toolInputParameters:er,toolOutputSection:tr,valueFields:nr,toolStepPill:rr,transcriptMessageBody:ir,transcriptRow:ar,useConversationLoader:or,useConversationSecondaryActions:sr,useSendMessage:cr,vellumFileActionModal:lr,visualPlaceholder:ur,visualSurface:dr,voiceComposerBar:fr,voiceEntryGreeting:pr,voiceErrors:mr,voiceFirstRunCard:hr,voicePickerSurface:gr,voiceRoom:_r,voiceSessionPill:vr,voiceSessionPillHost:yr,wakeCard:br,wakeDetailPanel:xr,weatherForecastDisplay:Sr,webFetchDetailView:Cr,webSearchDetailView:wr,webSearchStepRow:Tr,workResultSurface:Er,workflowDetailPanel:Dr,workflowLeafDetail:Or,workflowSubagentRow:kr,workspacePathLink:Ar,xlsxPreview:jr,transcript:Mr,watchRetroSurface:Nr,restoreManagedCredentialButton:Pr,assistantSection:Fr,chatsSection:Ir,sidebarExpandRow:Lr,assistantSectionToggle:Rr,coachmarkPress:zr,cameraFrameGrid:Br,desktopHelpCard:Vr,rememberDetail:Hr,recallDetail:Ur,recallLabels:Wr,freeTierDailyLimitBanner:Gr};export{n as acpChatPlanBlock,r as acpChatTerminalBlock,i as acpChatToolCard,a as acpConnectAffordance,o as acpRunChatView,_ as actionDisplay,s as activeChatView,u as activityStepsPanel,f as addToChatSheet,v as allChatsPage,p as allowOptionsMenu,m as appAssetActions,h as archiveAllConfirmDialog,e as askQuestionDetail,g as assistantContentDisclosure,b as assistantDesktop,x as assistantNavItem,Fr as assistantSection,Rr as assistantSectionToggle,S as assistantSideMenu,C as assistantSleepStage,w as assistantSwitcher,T as attachmentChip,E as attachmentDownloadOverlay,D as attachmentLoadingChip,O as attachmentOverflowSquare,k as attachmentPreviewModal,A as attachmentTile,j as backgroundTaskDetailPanel,M as billingErrorBanner,N as cacheBreakpointMapCard,P as cacheDiffCard,F as cacheHealthCard,I as callRail,L as callSummarySurface,R as cameraDeepLink,z as cameraError,B as cameraExplainer,Br as cameraFrameGrid,V as cameraShutterHint,H as cameraStatusPill,U as cameraViewOptions,W as cardSurface,G as channelReferenceChip,K as channelSetupPanel,q as channelThreadControl,J as channelTranscriptPanel,Y as chatAttachments,Q as chatBody,$ as chatComposer,ee as chatConversationHeader,te as chatInfoPanel,ne as chatLayout,re as chatLayoutHeader,ie as chatMarkdownMessage,ae as chatPage,oe as chatRouteContent,se as chatRuleEditorModal,Ir as chatsSection,ce as choiceSurface,le as cleanupScreen,zr as coachmarkPress,ue as collapsedGroupIcon,de as compactionCircuitOpenBanner,fe as compactionTab,pe as composerDraftNotices,me as composerNotices,he as composerSecretNotice,ge as composerSettingsMenu,d as computerUseScreenshotPreview,_e as confirmationActions,ve as confirmationPromptCard,ye as contactActions,be as contactPromptCard,xe as contactRecordCard,Se as contextWindowIndicator,Ce as conversationActions,we as conversationActionsSheet,Te as conversationAssetActions,Ee as conversationAssets,De as conversationStarterDock,Oe as conversationStarterGrid,ke as copyBlockSurface,Ae as copyIdToClipboard,je as creditsCard,Me as creditsUpsellCard,Ne as csvPreview,Pe as dailyLimitBanner,Kr as default,Fe as deleteConversationConfirmDialog,Ie as deletedMessageRow,Vr as desktopHelpCard,Le as documentAssetActions,t as documentChat,Re as documentCommentForm,ze as documentCommentPanel,Be as documentCommentThread,We as documentConversation,Ve as documentPreviewSurface,He as documentReopenLink,Ue as documentViewerContainer,Ge as documentViewerPage,Ke as dynamicPageSurface,Z as emailReferenceCard,X as emailReferenceChip,qe as exportProgressModal,Je as fileDiffView,Ye as fileDownload,Xe as filePreviewContainer,Ze as fileUploadSurface,Qe as formSurface,$e as frameGateHud,Gr as freeTierDailyLimitBanner,et as groupActions,tt as groupActionsSheet,nt as groupNameDialogFromStore,rt as inChatOnboardingController,it as inChatPluginPill,at as inlineProcessCard,ot as inspectPage,st as liveVoiceBusy,ct as liveVoiceButton,lt as liveVoiceStatus,ut as llmCallErrorCard,dt as localFileEmbed,ft as localFileLink,pt as localFileMenu,mt as lowBalanceBanner,ht as maintenanceModeBanner,gt as maintenanceRecoveryCard,c as markAllDoneConfirmDialog,_t as memoryRouterPlaygroundPage,vt as memoryTab,yt as messageFilesPanel,bt as messageHoverActions,xt as messageLongPressActions,St as micPermissionPrimer,Ct as missingApiKeyBanner,wt as mobileCallSelector,l as mobileDetailSheet,Tt as multiActivityGroup,Et as nameInputDialog,Dt as newChatPluginsPicker,Ot as newChatPluginsSection,kt as oauthConnectSurface,At as onboardingChoiceCard,jt as orphanedHistoryNotice,Mt as overviewTab,Nt as pageTabs,Pt as pdfPageSkeleton,Ft as pdfPreview,It as phaseGroupedStepList,Lt as pinnedAppColorSwatches,Rt as pinnedAppNavItem,zt as pluginPill,Bt as preferencesMenu,Vt as preferencesUsagePanel,Ht as previewError,Ut as previewMessageCard,Wt as previewSkeleton,Gt as previewTruncationNotice,Kt as previewUnsupported,qt as progressRail,Jt as promptSubmission,Yt as promptTab,Xt as providerBillingBanner,Zt as pullRefreshSpinner,Qt as questionActions,$t as questionPromptCard,en as queuedMessagesDrawer,tn as quoteReplyBubble,nn as rawDisclosure,rn as rawTab,Ur as recallDetail,Wr as recallLabels,an as redactedCredentialChip,on as refreshFeedbackPill,Hr as rememberDetail,sn as renameDialogFromStore,cn as researchActivityFeed,ln as researchFactsCard,un as researchMockPage,dn as researchResultsOverlay,fn as researchResultsView,pn as researchSuggestions,mn as responseTab,Pr as restoreManagedCredentialButton,hn as ruleEditorActions,gn as scrollToLatestButton,_n as secretActions,vn as secretPromptCard,yn as selfHostedScreen,y as sessionGroupRow,bn as setupScreen,xn as sideMenuBuiltInNav,Sn as sideMenuOverlayBottomColumn,Cn as sidebarBackToTop,wn as sidebarConversationError,Tn as sidebarConversationSkeleton,Lr as sidebarExpandRow,En as sidebarListContextMenu,Dn as sidebarSectionViewAll,On as singleActivity,kn as skillDetailPanel,An as skillExecuteDetail,jn as skillLoadCard,Mn as skillLoadDetail,Nn as skillToolList,Pn as skillsTab,Fn as stagedQuotesStrip,In as storeCredentialDialog,Ln as subagentDetailPanel,Rn as subagentPhaseTimeline,zn as subagentSpawnGroup,Bn as suggestionCard,Vn as suggestionDetailPanel,Hn as suggestionLibrary,Un as surfaceActions,Wn as surfaceRouter,Gn as tableSurface,Kn as taskPreferencesSurface,qn as textPreview,Jn as textSelectionPopover,Yn as thinkingDetail,Xn as tiptapDocumentEditor,Zn as toolCallChip,Qn as toolDefinitionsContent,$n as toolDetailPanel,er as toolInputParameters,tr as toolOutputSection,rr as toolStepPill,Mr as transcript,ir as transcriptMessageBody,ar as transcriptRow,or as useConversationLoader,sr as useConversationSecondaryActions,cr as useSendMessage,nr as valueFields,lr as vellumFileActionModal,ur as visualPlaceholder,dr as visualSurface,fr as voiceComposerBar,pr as voiceEntryGreeting,mr as voiceErrors,hr as voiceFirstRunCard,gr as voicePickerSurface,_r as voiceRoom,vr as voiceSessionPill,yr as voiceSessionPillHost,br as wakeCard,xr as wakeDetailPanel,Nr as watchRetroSurface,Sr as weatherForecastDisplay,Cr as webFetchDetailView,wr as webSearchDetailView,Tr as webSearchStepRow,Er as workResultSurface,Dr as workflowDetailPanel,Or as workflowLeafDetail,kr as workflowSubagentRow,Ar as workspacePathLink,jr as xlsxPreview};