@vellumai/web 0.12.6 → 0.12.7-staging.1

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 (431) hide show
  1. package/dist/assets/{a2a-invite-BfDyIsBX.js → a2a-invite-CYkZ2bwB.js} +1 -1
  2. package/dist/assets/{about-page-BigOjgfp.js → about-page-CDf8_c83.js} +1 -1
  3. package/dist/assets/{account-page-DbP0iNWg.js → account-page-DYgu7ene.js} +1 -1
  4. package/dist/assets/{account-shell-CkJWoTHP.js → account-shell-Cxi1v479.js} +1 -1
  5. package/dist/assets/{acp-run-detail-panel-DNMcOAkY.js → acp-run-detail-panel--S5Mrgwf.js} +3 -3
  6. package/dist/assets/activation-list-route-fUUXXrqq.js +1 -0
  7. package/dist/assets/{activity-redirect-page-CTGWJZqK.js → activity-redirect-page-Dday27zi.js} +1 -1
  8. package/dist/assets/activity-steps-panel-BnCTZLXH.js +1 -0
  9. package/dist/assets/{add-credits-modal-DRBFth5G.js → add-credits-modal-BPRQXrJL.js} +1 -1
  10. package/dist/assets/add-credits-modal-htqAQMX6.js +1 -0
  11. package/dist/assets/ai-page-BmPw_Cbb.js +1 -0
  12. package/dist/assets/all-chats-page-route-XyYPy--V.js +1 -0
  13. package/dist/assets/android-billing-handoff-CvgyuFs9.js +1 -0
  14. package/dist/assets/{animated-stat-square-B-JargN6.js → animated-stat-square-gKVZj83m.js} +1 -1
  15. package/dist/assets/{api-key-screen-jvDwbC50.js → api-key-screen-B3eNGHTQ.js} +1 -1
  16. package/dist/assets/app-CjOgiHzq.css +1 -0
  17. package/dist/assets/app-KRIEMzuO.js +399 -0
  18. package/dist/assets/{app-info-VAqkCXW3.js → app-info-BS5SWiPy.js} +1 -1
  19. package/dist/assets/archive-redirect-page-B_JVRF8z.js +1 -0
  20. package/dist/assets/assistant-handle-modal-cqAXFvU4.js +1 -0
  21. package/dist/assets/assistant-inbox-page-route-BmMCSNYC.js +8 -0
  22. package/dist/assets/assistant-status-panel-5KKU97Nr.js +1 -0
  23. package/dist/assets/auth-store-CUfwxB8-.js +1 -0
  24. package/dist/assets/{auth-welcome-screen-Bng5AnvV.js → auth-welcome-screen-CK9ayr5r.js} +1 -1
  25. package/dist/assets/avatar-bundled-components-BQa_U1xg.js +1 -0
  26. package/dist/assets/avatar-random-B0PlMwfP.js +2 -0
  27. package/dist/assets/{await-org-header-settled-P4ncwaMI.js → await-org-header-settled-DCrUbt__.js} +1 -1
  28. package/dist/assets/{background-task-detail-panel-BcllAg3N.js → background-task-detail-panel-ByZEhdsg.js} +1 -1
  29. package/dist/assets/billing-page-CYKuyCF5.js +3 -0
  30. package/dist/assets/{billing-redirect-page-DBSdrzJ7.js → billing-redirect-page-t6TNZq6q.js} +1 -1
  31. package/dist/assets/{bookmarks-page-BQyOw7IR.js → bookmarks-page-DkomjdJQ.js} +1 -1
  32. package/dist/assets/{bundle-confirm-page-BE0p_xZi.js → bundle-confirm-page-BRqor1bF.js} +1 -1
  33. package/dist/assets/channel-transcript-panel-BZPmdLEj.js +1 -0
  34. package/dist/assets/{channels-BchiOW8d.js → channels-BMnoL5SH.js} +1 -1
  35. package/dist/assets/{channels--GWixc4A.js → channels-CsbKXJZc.js} +1 -1
  36. package/dist/assets/{channels-BJA5o10X.js → channels-Cz7YAOIH.js} +1 -1
  37. package/dist/assets/channels-page-route-CtttpYll.js +1 -0
  38. package/dist/assets/{channels-BWlMRtuu.js → channels-vNXfvsPT.js} +1 -1
  39. package/dist/assets/chat-BE3uio8d.js +5 -0
  40. package/dist/assets/chat-BgW0N2Gb.js +5 -0
  41. package/dist/assets/{chat-CEpFDraT.js → chat-DSN9cMJf.js} +3 -3
  42. package/dist/assets/chat-bnp2gG3L.js +5 -0
  43. package/dist/assets/chat-info-panel-DQumRkcF.js +1 -0
  44. package/dist/assets/checkout-continuation-DDjhky4Y.js +1 -0
  45. package/dist/assets/{checkout-page-_P1Km-Pk.js → checkout-page-CDYYh4ze.js} +1 -1
  46. package/dist/assets/checkout-return-target-B6Qnd5vl.js +1 -0
  47. package/dist/assets/{command-palette-BMTSC06x.js → command-palette-BUFKVA4Z.js} +1 -1
  48. package/dist/assets/command-palette-CYJg3gK4.js +1 -0
  49. package/dist/assets/{command-palette-window-page-BlD7b2cA.js → command-palette-window-page-C0dY_FbH.js} +1 -1
  50. package/dist/assets/{community-page-dezChmB7.js → community-page-DDVVXFKB.js} +1 -1
  51. package/dist/assets/{companion-accent-C8bpme2H.js → companion-accent-obJ7TDkU.js} +1 -1
  52. package/dist/assets/{companion-dock-zones-page-B4iVErZw.js → companion-dock-zones-page-CUZsYl_W.js} +1 -1
  53. package/dist/assets/{companion-layout-DdDcoKuc.js → companion-layout-Cl8T5Bfs.js} +1 -1
  54. package/dist/assets/{companion-popover-BYFhyUGI.js → companion-popover-Duq3If7x.js} +1 -1
  55. package/dist/assets/{companion-popover-page-CvizjjZk.js → companion-popover-page-8OaaN-qP.js} +1 -1
  56. package/dist/assets/companion-surface-DzxGavvE.js +1 -0
  57. package/dist/assets/companion-surface-page-BI1DVG0L.js +1 -0
  58. package/dist/assets/{companion-tour-entry-2hR1vArn.js → companion-tour-entry-D35urSvp.js} +1 -1
  59. package/dist/assets/{companion-watch-frame-page-LUmlRewI.js → companion-watch-frame-page-chC7gmAI.js} +1 -1
  60. package/dist/assets/connect-page-Cx7ACmXt.js +1 -0
  61. package/dist/assets/{consent-controls-DZEtlgAi.js → consent-controls-B8KluMR-.js} +1 -1
  62. package/dist/assets/contacts-gateway-DJQtU5it.js +1 -0
  63. package/dist/assets/contacts-page-route-g0cBfSRU.js +1 -0
  64. package/dist/assets/{copy-button-ZsDy0Kvk.js → copy-button-Bwu12tAq.js} +1 -1
  65. package/dist/assets/{credential-entry-page-BeKm3_yM.js → credential-entry-page-CrMmjA4m.js} +1 -1
  66. package/dist/assets/credentials-page-DXegpKuT.js +1 -0
  67. package/dist/assets/csv-preview-BUNDraKQ.js +1 -0
  68. package/dist/assets/danger-zone-redirect-page-Dju7UyCP.js +1 -0
  69. package/dist/assets/debug-page-Cu82bP9V.js +4 -0
  70. package/dist/assets/deploy-dialogs-B1_w7Ez-.js +1 -0
  71. package/dist/assets/deploy-dialogs-CKv9kQor.js +1 -0
  72. package/dist/assets/{desktop-preview-content-CoZvaRAg.js → desktop-preview-content-BwMNHlWb.js} +2 -2
  73. package/dist/assets/{desktop-status-ZiDkY3z1.js → desktop-status-CCzewHXe.js} +1 -1
  74. package/dist/assets/{desktop-viewer-zD3tun-C.js → desktop-viewer-DBH1IT5s.js} +2 -2
  75. package/dist/assets/{detail-card-WMdjzPA_.js → detail-card-C53pHjsM.js} +1 -1
  76. package/dist/assets/{detail-panel-stop-button-CPVsXUuy.js → detail-panel-stop-button-t_VDZYtt.js} +1 -1
  77. package/dist/assets/{detail-primitives-CAZf545a.js → detail-primitives-BHVQRcGw.js} +1 -1
  78. package/dist/assets/developer-page-CKcDBScK.js +1 -0
  79. package/dist/assets/devices-redirect-page-BEyGhbmn.js +1 -0
  80. package/dist/assets/{dictation-overlay-page-Cs5bufLA.js → dictation-overlay-page-DpanSK5-.js} +1 -1
  81. package/dist/assets/document-load-B5HpKq-W.js +1 -0
  82. package/dist/assets/document-load-DHdbQvKt.js +1 -0
  83. package/dist/assets/document-viewer-page-4Z_VnjKZ.js +1 -0
  84. package/dist/assets/emails-page-DyrcXFet.js +1 -0
  85. package/dist/assets/esm-5n5jSt3e.js +2 -0
  86. package/dist/assets/esm-B5HvNA2f.js +1 -0
  87. package/dist/assets/esm-BVAuvmyr.js +2 -0
  88. package/dist/assets/esm-CIgMNIdz.js +1 -0
  89. package/dist/assets/{esm-DkYJty3x.js → esm-COgrn4oo.js} +2 -2
  90. package/dist/assets/esm-CvOYazPQ.js +2 -0
  91. package/dist/assets/{esm-C36uAXi_.js → esm-DFoZ6rpj.js} +1 -1
  92. package/dist/assets/{esm-QFyB0c3C.js → esm-DPwp_tyY.js} +1 -1
  93. package/dist/assets/esm-DetZupO7.js +2 -0
  94. package/dist/assets/esm-DpDUzGbk.js +2 -0
  95. package/dist/assets/{file-diff-view-5WOLjbDI.js → file-diff-view-DqA1_0h3.js} +1 -1
  96. package/dist/assets/{file-view-mode-D6Wxo-FH.js → file-view-mode-DPofWJnz.js} +1 -1
  97. package/dist/assets/general-page-B5G4H9NJ.js +2 -0
  98. package/dist/assets/hatching-screen-C5fid3Mi.js +1 -0
  99. package/dist/assets/{hosting-screen-CQosTH53.js → hosting-screen-BTxmBl_3.js} +1 -1
  100. package/dist/assets/identity-page-route-DSyT39Yq.js +7 -0
  101. package/dist/assets/inspect-page-WDA56TDM.js +8 -0
  102. package/dist/assets/integrations-page-7jff5YRS.js +1 -0
  103. package/dist/assets/{intelligence-layout-CAtJ8qJB.js → intelligence-layout-DOOxr8TM.js} +1 -1
  104. package/dist/assets/intelligence-layout-slots-store-BvTIV21o.js +1 -0
  105. package/dist/assets/keyboard-shortcuts-redirect-page-0f4iR9cK.js +1 -0
  106. package/dist/assets/{latest-assistant-text-CU1nEv57.js → latest-assistant-text-C5TlzsjF.js} +3 -3
  107. package/dist/assets/library-detail-page-CXu1dzI8.js +1 -0
  108. package/dist/assets/library-page-BdtUHlv5.js +1 -0
  109. package/dist/assets/local-mode-C-1-fXwg.js +1 -0
  110. package/dist/assets/login-page-BYz-IJwG.js +1 -0
  111. package/dist/assets/logout-page-CA2Gb3fM.js +1 -0
  112. package/dist/assets/{logs-layout-C1WQAyKd.js → logs-layout-BgviygkY.js} +1 -1
  113. package/dist/assets/markdown-preview-CBXcCZg7.js +1 -0
  114. package/dist/assets/{media-preview-DxyJX5PI.js → media-preview-CTjI28Y4.js} +1 -1
  115. package/dist/assets/memory-page-route-Od3Muhow.js +2 -0
  116. package/dist/assets/memory-router-playground-page-D8do5kDw.js +1 -0
  117. package/dist/assets/message-files-panel-CnyA6dJL.js +1 -0
  118. package/dist/assets/mutation-error--JEZBa3Q.js +1 -0
  119. package/dist/assets/native-attachment-pickers-BAxJDXTk.js +1 -0
  120. package/dist/assets/native-file-BlJDG-CS.js +1 -0
  121. package/dist/assets/{notifications-page-DRBXLm8k.js → notifications-page-CICwZV_j.js} +1 -1
  122. package/dist/assets/{oauth-complete-page-DgpDdc3q.js → oauth-complete-page-HYAqM-h3.js} +1 -1
  123. package/dist/assets/{oauth-popup-complete-page-v6Kq8SKs.js → oauth-popup-complete-page-0Nnhyx6m.js} +1 -1
  124. package/dist/assets/paired-platform-identity-BN7Zkoo1.js +1 -0
  125. package/dist/assets/{pairing-page-Oj52Prdb.js → pairing-page-CbPjyGMx.js} +1 -1
  126. package/dist/assets/password-reset-page-j1R5YVAm.js +1 -0
  127. package/dist/assets/{pdf-file-preview-BhDsUdwQ.js → pdf-file-preview-CfJUarVV.js} +1 -1
  128. package/dist/assets/{peeking-eyes-iRqQZ7E9.js → peeking-eyes-C3X1d6Jj.js} +1 -1
  129. package/dist/assets/{permission-guide-page-C72w2Kmj.js → permission-guide-page-DgNjuyxd.js} +1 -1
  130. package/dist/assets/{permission-setup-CJJV_COn.js → permission-setup-C4VdQwwz.js} +1 -1
  131. package/dist/assets/personality-page-BEzNdxON.js +1 -0
  132. package/dist/assets/personality-page-ILl8FXFu.js +1 -0
  133. package/dist/assets/personality-sliders-PxNPuK2H.js +1 -0
  134. package/dist/assets/plans-page-CI3FmLNs.js +1 -0
  135. package/dist/assets/{platform-loopback-page-BmFqgelr.js → platform-loopback-page-DM2A9sb6.js} +1 -1
  136. package/dist/assets/plugin-detail-page-Cj6u283V.js +1 -0
  137. package/dist/assets/{plugins-page-BuHZ0XlZ.js → plugins-page-D7_NjR08.js} +1 -1
  138. package/dist/assets/plugins-surface-ClVSBf-s.js +1 -0
  139. package/dist/assets/{preview-error-DycCFOOO.js → preview-error-B2MuMDf7.js} +1 -1
  140. package/dist/assets/privacy-page-B2g1Pqqs.js +1 -0
  141. package/dist/assets/{privacy-screen-BNyV1Jpv.js → privacy-screen-BnqXrWj-.js} +1 -1
  142. package/dist/assets/profile-card-BJ45rF7O.js +1 -0
  143. package/dist/assets/{provider-callback-page-BiI5YuU7.js → provider-callback-page-CNNhqRdO.js} +1 -1
  144. package/dist/assets/{provider-key-mKVB6Qhq.js → provider-key-CqD-hAxF.js} +1 -1
  145. package/dist/assets/{provider-signup-page-Dj_CGQAF.js → provider-signup-page-BEBgiI0J.js} +1 -1
  146. package/dist/assets/{provisioning-targets-CHlEOzsV.js → provisioning-targets-CihW-82c.js} +1 -1
  147. package/dist/assets/{quick-input-page-jYydiJfm.js → quick-input-page-ZC5y6AKn.js} +1 -1
  148. package/dist/assets/{referral-modal-DgZAlouF.js → referral-modal-B5zxNJBt.js} +1 -1
  149. package/dist/assets/referral-modal-BUgtMC2a.js +1 -0
  150. package/dist/assets/{rehype-katex-BK-AtgSM.js → rehype-katex-DWUGzNKD.js} +1 -1
  151. package/dist/assets/{research-mock-page-CDpXk7ca.js → research-mock-page-B3giO94y.js} +1 -1
  152. package/dist/assets/research-onboarding-route-Dim74aoQ.js +50 -0
  153. package/dist/assets/review-terms-screen-CIYiUq4M.js +1 -0
  154. package/dist/assets/routes-zhZ8T_Wu.js +1 -0
  155. package/dist/assets/schedules-J3G9N-px.js +1 -0
  156. package/dist/assets/schedules-page-Cnl8mEzJ.js +1 -0
  157. package/dist/assets/security-redirect-page-BEtWQiAG.js +1 -0
  158. package/dist/assets/select-assistant-screen-BHvcUbOb.js +1 -0
  159. package/dist/assets/{self-hosted-servers-B-57ZNA3.js → self-hosted-servers-Bn0mvFIm.js} +1 -1
  160. package/dist/assets/service-form-controls-DaeZPEiA.js +1 -0
  161. package/dist/assets/{setting-row-BuBlxds2.js → setting-row-DPTW9jvI.js} +1 -1
  162. package/dist/assets/settings-Bh67VJVe.js +3 -0
  163. package/dist/assets/settings-ClEDqshB.js +3 -0
  164. package/dist/assets/settings-DDU54LDK.js +3 -0
  165. package/dist/assets/settings-k5uhZfPH.js +3 -0
  166. package/dist/assets/{settings-layout-B_sC3oOX.js → settings-layout-DEmxtBd4.js} +1 -1
  167. package/dist/assets/share-feedback-modal-C2fAj8NH.js +1 -0
  168. package/dist/assets/share-feedback-modal-Du_F68zS.js +2 -0
  169. package/dist/assets/{sidebar-tree-BLMAqL8a.js → sidebar-tree-D43H3cb8.js} +1 -1
  170. package/dist/assets/{signup-page-CF6CvKYm.js → signup-page-BiV-Kq2O.js} +1 -1
  171. package/dist/assets/{signup-shell-BUn2lHTO.js → signup-shell-BbFj5txC.js} +1 -1
  172. package/dist/assets/{skill-detail-page-B7oLoGRE.js → skill-detail-page-CNTwONYG.js} +2 -2
  173. package/dist/assets/skill-detail-panel-Duoeqpk6.js +1 -0
  174. package/dist/assets/{skill-removal-dialog-DwT8ZoB9.js → skill-removal-dialog-DcbMCW1X.js} +1 -1
  175. package/dist/assets/{skills-page-hxGLH0Yi.js → skills-page-DeEyocII.js} +1 -1
  176. package/dist/assets/sounds-page-CYqyUiLI.js +1 -0
  177. package/dist/assets/{start-screen-DfzPyvUq.js → start-screen-C4ocEh6e.js} +1 -1
  178. package/dist/assets/step-detail-header-C0_Bji0I.js +1 -0
  179. package/dist/assets/stt-language-picker-modal-Dw_dzvcQ.js +1 -0
  180. package/dist/assets/subagent-detail-panel-DqFckc_d.js +1 -0
  181. package/dist/assets/superpowers-page-kjcwHwaR.js +1 -0
  182. package/dist/assets/system-events-page-C0Nrrv_n.js +1 -0
  183. package/dist/assets/system-events-redirect-page-DR4dTzmZ.js +1 -0
  184. package/dist/assets/{tabular-grid-DkyI1XY2.js → tabular-grid-9asraGxC.js} +1 -1
  185. package/dist/assets/{teleport-gateway-client-C3wmILxC.js → teleport-gateway-client-B8e53i-5.js} +1 -1
  186. package/dist/assets/{text-preview-BGQO4VRv.js → text-preview-C6jKP_-h.js} +1 -1
  187. package/dist/assets/{theme-stage-page-9l6G0GQD.js → theme-stage-page-BCd5ZTdW.js} +1 -1
  188. package/dist/assets/{tiptap-document-editor-6J6u0gMB.js → tiptap-document-editor-BCrbYYDo.js} +2 -2
  189. package/dist/assets/tool-detail-panel-BM_9qtZ-.js +1 -0
  190. package/dist/assets/tool-detail-panel-nu-dK5jf.js +16 -0
  191. package/dist/assets/{trait-cycle-row-C76P92r3.js → trait-cycle-row-CPRGog-6.js} +1 -1
  192. package/dist/assets/upgrade-cancel-page-BiU2HQZG.js +1 -0
  193. package/dist/assets/{upgrade-success-page-Ba_xpT9b.js → upgrade-success-page-BCvxSNPT.js} +1 -1
  194. package/dist/assets/{usage-redirect-page-C7pPUdxP.js → usage-redirect-page-A2FxznAL.js} +1 -1
  195. package/dist/assets/use-app-delete-Bd9ibG9z.js +1 -0
  196. package/dist/assets/use-assistant-identity-details-BPVOfzxy.js +1 -0
  197. package/dist/assets/use-channel-trust-floors-BkkxL6wd.js +1 -0
  198. package/dist/assets/use-checkout-dismiss-refresh-DYmiO0wT.js +1 -0
  199. package/dist/assets/use-edge-swipe-back-B2Kt4500.js +1 -0
  200. package/dist/assets/{use-hotkey-recorder-BKycBMhe.js → use-hotkey-recorder-Dngc9P3v.js} +1 -1
  201. package/dist/assets/use-invite-link-dialog-Dqkj_T4s.js +1 -0
  202. package/dist/assets/use-plugins-list-DJlgCfb-.js +1 -0
  203. package/dist/assets/use-return-to-short-circuit-CrgMpIk2.js +1 -0
  204. package/dist/assets/use-side-list-room-CttXRA29.js +1 -0
  205. package/dist/assets/use-skill-actions-BhUkfXmL.js +1 -0
  206. package/dist/assets/use-skill-detail-files-JWSwpirW.js +1 -0
  207. package/dist/assets/use-supports-credentials-settings-fg3eXgQy.js +1 -0
  208. package/dist/assets/{use-truncated-blob-text-_V8QhH9C.js → use-truncated-blob-text-D6z6oSIj.js} +1 -1
  209. package/dist/assets/{vendor-CtXGFqsu.js → vendor-DLH51Vjf.js} +2 -2
  210. package/dist/assets/voice-page-CN-XVbya.js +1 -0
  211. package/dist/assets/{wake-detail-panel-PQ5V9JtN.js → wake-detail-panel-BN6Np2AU.js} +1 -1
  212. package/dist/assets/{weather-forecast-display-BWS4MRRa.js → weather-forecast-display-Dg7Tug8o.js} +1 -1
  213. package/dist/assets/{web-BU0sfQyP.js → web-BlKAJber.js} +1 -1
  214. package/dist/assets/{web-Dquk8c_k.js → web-BmoVVmPZ.js} +1 -1
  215. package/dist/assets/{web-CDVPrpFB.js → web-C2Y5uOI1.js} +1 -1
  216. package/dist/assets/{web-p-hu75zv.js → web-CAi9YePi.js} +1 -1
  217. package/dist/assets/{web-pSzr3FCR.js → web-D0qh5Vlp.js} +1 -1
  218. package/dist/assets/{web-DWItvNqs.js → web-D5UHHnMG.js} +1 -1
  219. package/dist/assets/{web-TuWeBEQx.js → web-DZvE04fg.js} +1 -1
  220. package/dist/assets/{web-C16o07pr.js → web-Xy5dhNHF.js} +1 -1
  221. package/dist/assets/{web-BoNmnum3.js → web-vcW3se1t.js} +1 -1
  222. package/dist/assets/welcome-screen-B1WHzW0q.js +1 -0
  223. package/dist/assets/{workflow-detail-panel-N8CV0RrQ.js → workflow-detail-panel-Bo3bUe-w.js} +1 -1
  224. package/dist/assets/workspace-page-yTSdnWq3.js +1 -0
  225. package/dist/assets/{xlsx-preview-DaCmEr4c.js → xlsx-preview-C7vk2tgm.js} +1 -1
  226. package/dist/index.html +3 -3
  227. package/package.json +1 -1
  228. package/dist/assets/activation-list-route-BbPqJODX.js +0 -1
  229. package/dist/assets/activity-steps-panel-Dz34WmYH.js +0 -1
  230. package/dist/assets/add-credits-modal-BtnHnN8V.js +0 -1
  231. package/dist/assets/ai-page-beQly0My.js +0 -1
  232. package/dist/assets/all-chats-page-route-DlZUO9J_.js +0 -1
  233. package/dist/assets/android-billing-handoff-CRfjXp7l.js +0 -1
  234. package/dist/assets/app-CgzFhQCl.css +0 -2
  235. package/dist/assets/app-DbJUeBix.js +0 -399
  236. package/dist/assets/archive-redirect-page-DZMdx89H.js +0 -1
  237. package/dist/assets/assistant-handle-modal-C2RftL0v.js +0 -1
  238. package/dist/assets/assistant-inbox-page-route-DLSz1vYi.js +0 -8
  239. package/dist/assets/assistant-status-panel-BJpCnYoq.js +0 -1
  240. package/dist/assets/auth-store-Cd-d1a4K.js +0 -1
  241. package/dist/assets/avatar-bundled-components-DqGPWIMe.js +0 -1
  242. package/dist/assets/avatar-random-CVuabfEZ.js +0 -2
  243. package/dist/assets/billing-page-D54LLGz1.js +0 -3
  244. package/dist/assets/channel-transcript-panel-BdL4iejZ.js +0 -1
  245. package/dist/assets/channels-page-route-BseMMdHV.js +0 -1
  246. package/dist/assets/chat-CNEHL_2K.js +0 -5
  247. package/dist/assets/chat-CuQXJv8T.js +0 -5
  248. package/dist/assets/chat-DwF2xsIA.js +0 -5
  249. package/dist/assets/chat-info-panel-C6px8Mlo.js +0 -1
  250. package/dist/assets/checkout-continuation-BniC3jRe.js +0 -1
  251. package/dist/assets/checkout-return-target-B3XAFuN6.js +0 -1
  252. package/dist/assets/command-palette-BgqisOfz.js +0 -1
  253. package/dist/assets/companion-surface-CjiszIMu.js +0 -1
  254. package/dist/assets/companion-surface-page-BIpW__dy.js +0 -1
  255. package/dist/assets/connect-page-uRvPpjMP.js +0 -1
  256. package/dist/assets/contacts-gateway-DI64mVLV.js +0 -1
  257. package/dist/assets/contacts-page-route-C_UApZGi.js +0 -1
  258. package/dist/assets/credentials-page-CLjmeZw3.js +0 -1
  259. package/dist/assets/csv-preview-C2fmutVQ.js +0 -1
  260. package/dist/assets/danger-zone-redirect-page-D5Xk_8UY.js +0 -1
  261. package/dist/assets/debug-page-tQ4hqmdO.js +0 -4
  262. package/dist/assets/deploy-dialogs-BW3wFOZ-.js +0 -1
  263. package/dist/assets/deploy-dialogs-Hu5UmFuB.js +0 -1
  264. package/dist/assets/developer-page-DpSngWHa.js +0 -1
  265. package/dist/assets/devices-redirect-page-BUydOv62.js +0 -1
  266. package/dist/assets/document-load-CXdi-UrD.js +0 -1
  267. package/dist/assets/document-load-Dyyzd-te.js +0 -1
  268. package/dist/assets/document-viewer-page-R3nFa-RR.js +0 -1
  269. package/dist/assets/emails-page-BUZyXttB.js +0 -1
  270. package/dist/assets/esm-0cCjd2Tc.js +0 -1
  271. package/dist/assets/esm-847YkHgO.js +0 -2
  272. package/dist/assets/esm-DDfhkiLX.js +0 -2
  273. package/dist/assets/esm-DOZyWh-f.js +0 -1
  274. package/dist/assets/esm-Dt_lJd5g.js +0 -2
  275. package/dist/assets/esm-Du04ea0U.js +0 -2
  276. package/dist/assets/esm-UvF3iiaC.js +0 -2
  277. package/dist/assets/general-page-BgczK5kM.js +0 -2
  278. package/dist/assets/hatching-screen-DUME_h4W.js +0 -1
  279. package/dist/assets/identity-page-route-CnUbEnOj.js +0 -7
  280. package/dist/assets/inspect-page-B4pwuqL9.js +0 -8
  281. package/dist/assets/integrations-page-DfV4AIUY.js +0 -1
  282. package/dist/assets/intelligence-layout-slots-store-DSIw2NvD.js +0 -1
  283. package/dist/assets/keyboard-shortcuts-redirect-page-eiKQBBin.js +0 -1
  284. package/dist/assets/library-detail-page-D5TQdRPW.js +0 -1
  285. package/dist/assets/library-page-CQHRf1us.js +0 -1
  286. package/dist/assets/local-mode-glOMwWKw.js +0 -1
  287. package/dist/assets/login-page-nEJ8VtCM.js +0 -1
  288. package/dist/assets/logout-page-CRexidth.js +0 -1
  289. package/dist/assets/markdown-preview-FMAKqNG5.js +0 -1
  290. package/dist/assets/memory-page-route-Bt8cmhxi.js +0 -2
  291. package/dist/assets/memory-router-playground-page-B5SPYr3X.js +0 -1
  292. package/dist/assets/message-files-panel-DM2OHYKS.js +0 -1
  293. package/dist/assets/mutation-error-DsmwzTdH.js +0 -1
  294. package/dist/assets/native-attachment-pickers-Caaw_YOU.js +0 -1
  295. package/dist/assets/native-file-DICtaDdr.js +0 -1
  296. package/dist/assets/paired-platform-identity-u4Q-YPGw.js +0 -1
  297. package/dist/assets/password-reset-page-D3ksp7Ej.js +0 -1
  298. package/dist/assets/personality-page-CvTaj6nv.js +0 -1
  299. package/dist/assets/personality-page-smzeVdLh.js +0 -1
  300. package/dist/assets/personality-sliders-B9dseUZv.js +0 -1
  301. package/dist/assets/plans-page-CdJnxa9Q.js +0 -1
  302. package/dist/assets/plugin-detail-page-CFGniBM4.js +0 -1
  303. package/dist/assets/plugins-surface-CYlZGgus.js +0 -1
  304. package/dist/assets/privacy-page-BTNM3CXN.js +0 -1
  305. package/dist/assets/profile-card-CCv7LkYu.js +0 -1
  306. package/dist/assets/referral-modal-CfWPpnvV.js +0 -1
  307. package/dist/assets/research-onboarding-route-Se5ksePw.js +0 -50
  308. package/dist/assets/review-terms-screen-Cy9FX3yC.js +0 -1
  309. package/dist/assets/routes-Df2libs9.js +0 -1
  310. package/dist/assets/schedules-page-O2ueZz6n.js +0 -1
  311. package/dist/assets/schedules-rvMiqGp0.js +0 -1
  312. package/dist/assets/security-redirect-page-B00kAvrV.js +0 -1
  313. package/dist/assets/select-assistant-screen-GuXyFlAh.js +0 -1
  314. package/dist/assets/service-form-controls-DZJcQaNO.js +0 -1
  315. package/dist/assets/settings-38aC28YN.js +0 -3
  316. package/dist/assets/settings-CQGJaYP0.js +0 -3
  317. package/dist/assets/settings-DR1qapnv.js +0 -3
  318. package/dist/assets/settings-ZA3mMzpB.js +0 -3
  319. package/dist/assets/share-feedback-modal-Dg6x94HR.js +0 -2
  320. package/dist/assets/share-feedback-modal-n7ZgtNxB.js +0 -1
  321. package/dist/assets/skill-detail-panel-BgTf3-Jj.js +0 -1
  322. package/dist/assets/sounds-page-C1u9YUVJ.js +0 -1
  323. package/dist/assets/step-detail-header-CdUCWAlu.js +0 -1
  324. package/dist/assets/stt-language-picker-modal-0IKnLGpu.js +0 -1
  325. package/dist/assets/subagent-detail-panel-CtkJH9-r.js +0 -1
  326. package/dist/assets/superpowers-page-C0V-BVj9.js +0 -1
  327. package/dist/assets/system-events-page-B13dkMsH.js +0 -1
  328. package/dist/assets/system-events-redirect-page-ayoYsUNU.js +0 -1
  329. package/dist/assets/tool-detail-panel-B267q93W.js +0 -1
  330. package/dist/assets/tool-detail-panel-D29OCtjo.js +0 -16
  331. package/dist/assets/upgrade-cancel-page-CsIYnmSq.js +0 -1
  332. package/dist/assets/use-app-delete-2je5dBpX.js +0 -1
  333. package/dist/assets/use-assistant-identity-details-S74x7sbE.js +0 -1
  334. package/dist/assets/use-channel-trust-floors-fBDQnvgz.js +0 -1
  335. package/dist/assets/use-checkout-dismiss-refresh-DB31reZx.js +0 -1
  336. package/dist/assets/use-edge-swipe-back-DeHKMrh8.js +0 -1
  337. package/dist/assets/use-invite-link-dialog-BdHG4b3u.js +0 -1
  338. package/dist/assets/use-plugins-list-B9d39t5k.js +0 -1
  339. package/dist/assets/use-return-to-short-circuit-D82kSfEB.js +0 -1
  340. package/dist/assets/use-side-list-room-CMVDwjej.js +0 -1
  341. package/dist/assets/use-skill-actions-BkSsu_a-.js +0 -1
  342. package/dist/assets/use-skill-detail-files-DRDxliP2.js +0 -1
  343. package/dist/assets/use-supports-credentials-settings-DXa8eid1.js +0 -1
  344. package/dist/assets/use-transcript-message-by-id-DVnOyFfP.js +0 -1
  345. package/dist/assets/voice-page-DoYjxDlf.js +0 -1
  346. package/dist/assets/welcome-screen-BKY6SHne.js +0 -1
  347. package/dist/assets/workspace-page-B7cCk3SZ.js +0 -1
  348. /package/dist/assets/{account-CVApvI7o.js → account-BkxBMG9Z.js} +0 -0
  349. /package/dist/assets/{account-B3E3GZS-.js → account-D5JdUO7K.js} +0 -0
  350. /package/dist/assets/{account-D0m_JAIR.js → account-DYG79724.js} +0 -0
  351. /package/dist/assets/{account-CLm397yy.js → account-OIF2BHH7.js} +0 -0
  352. /package/dist/assets/{activation-C60mWyf6.js → activation-C91KPzrh.js} +0 -0
  353. /package/dist/assets/{activation-CaYos65l.js → activation-Dd7eAIHs.js} +0 -0
  354. /package/dist/assets/{activation-Bu-fuIiq.js → activation-ReimSfhn.js} +0 -0
  355. /package/dist/assets/{activation-tasks-B4NxNrfp.js → activation-tasks-D4dorV2v.js} +0 -0
  356. /package/dist/assets/{activation-tasks-U9EJp50S.js → activation-tasks-efxGWsFw.js} +0 -0
  357. /package/dist/assets/{activation-nBeJqOMa.js → activation-tasks-rViOqW7C.js} +0 -0
  358. /package/dist/assets/{activation-tasks-6iX4PrEF.js → activation-tasks-wtMwJ0EV.js} +0 -0
  359. /package/dist/assets/{activation-tasks-D057dozu.js → activation-yoBQ36AY.js} +0 -0
  360. /package/dist/assets/{app-types-BwhjauA5.js → app-types-BoY_FOAH.js} +0 -0
  361. /package/dist/assets/{assistant-inbox-BjveeFJS.js → assistant-inbox-CAvCHzi9.js} +0 -0
  362. /package/dist/assets/{assistant-inbox-Bc1eriLy.js → assistant-inbox-CQdSXLLi.js} +0 -0
  363. /package/dist/assets/{assistant-inbox-CjlA9ExA.js → assistant-inbox-DslyrhIn.js} +0 -0
  364. /package/dist/assets/{assistant-inbox-DZEctkiU.js → assistant-inbox-qWeVmA1L.js} +0 -0
  365. /package/dist/assets/{build.umd-BQNORWVu.js → build.umd-B0ATW5UM.js} +0 -0
  366. /package/dist/assets/{common-ChZ93He5.js → common-BdQfnACd.js} +0 -0
  367. /package/dist/assets/{common-CEc9vBVX.js → common-IoqtSg0p.js} +0 -0
  368. /package/dist/assets/{common-BdBfuvvS.js → common-LOT1T5DR.js} +0 -0
  369. /package/dist/assets/{common-rEaGXFG5.js → common-kmi6H4cg.js} +0 -0
  370. /package/dist/assets/{contacts-BcjP6yTq.js → contacts-BTmOfEVL.js} +0 -0
  371. /package/dist/assets/{contacts-DwPTzNNu.js → contacts-Cxz-DyYF.js} +0 -0
  372. /package/dist/assets/{contacts-B-21ZJz4.js → contacts-DgC-8PHB.js} +0 -0
  373. /package/dist/assets/{contacts-atF1S3IK.js → contacts-mijLgegD.js} +0 -0
  374. /package/dist/assets/{credential-requests-AF-aeT3D.js → credential-requests-CmFaXPwz.js} +0 -0
  375. /package/dist/assets/{credential-requests-CwIA8bBS.js → credential-requests-D3J3i5oa.js} +0 -0
  376. /package/dist/assets/{credential-requests-Z5RDxt8x.js → credential-requests-gl4lfjL4.js} +0 -0
  377. /package/dist/assets/{credential-requests-D1YLTxiK.js → credential-requests-h908NRpv.js} +0 -0
  378. /package/dist/assets/{definitions-DOIX6IPo.js → definitions-BUCExH-9.js} +0 -0
  379. /package/dist/assets/{definitions-Bqz3c8F6.js → definitions-DpZNNWA7.js} +0 -0
  380. /package/dist/assets/{emoji-catalog-data-D-oHOciZ.js → emoji-catalog-data-DsyEWO16.js} +0 -0
  381. /package/dist/assets/{format-countdown-CKjTHR6g.js → format-countdown-l7vj-IPm.js} +0 -0
  382. /package/dist/assets/{home-fLFytpjt.js → home-BI-fzzA0.js} +0 -0
  383. /package/dist/assets/{home-BDUOreXL.js → home-BZGFmZ0D.js} +0 -0
  384. /package/dist/assets/{home-X7gNxY7e.js → home-CM9kRnjx.js} +0 -0
  385. /package/dist/assets/{home-BEjkPdJp.js → home-D4Knhe9B.js} +0 -0
  386. /package/dist/assets/{intelligence-BKIKiC6a.js → intelligence-B6UWzaf0.js} +0 -0
  387. /package/dist/assets/{intelligence-D0sceUjd.js → intelligence-DFW_P1Fv.js} +0 -0
  388. /package/dist/assets/{intelligence-o-AgAY1a.js → intelligence-DXMdwG0t.js} +0 -0
  389. /package/dist/assets/{intelligence-o7hrm5QU.js → intelligence-DaVJutXG.js} +0 -0
  390. /package/dist/assets/{is-record-CK45KBF3.js → is-record-CNwRuI6a.js} +0 -0
  391. /package/dist/assets/{jszip.min-CIl5Kasi.js → jszip.min-CDIVkZfG.js} +0 -0
  392. /package/dist/assets/{library-Brgq-pg5.js → library-CFGvGWZt.js} +0 -0
  393. /package/dist/assets/{library-krizTG8k.js → library-CmSFUt9r.js} +0 -0
  394. /package/dist/assets/{library-DJAyleXO.js → library-D26ezl8B.js} +0 -0
  395. /package/dist/assets/{library-DK6yQdzq.js → library-Dv9w5D8Z.js} +0 -0
  396. /package/dist/assets/{link-click-CwW3QboU.js → link-click-CR9uUEsb.js} +0 -0
  397. /package/dist/assets/{logs-C624PZU8.js → logs-5jFWrQRx.js} +0 -0
  398. /package/dist/assets/{logs-B3TILfBZ.js → logs-BJTGRcSn.js} +0 -0
  399. /package/dist/assets/{logs-DnaZo1ZU.js → logs-BPrpYBp7.js} +0 -0
  400. /package/dist/assets/{logs-bAA3pNiA.js → logs-BpX8Zuzb.js} +0 -0
  401. /package/dist/assets/{machine-sizes-qp9khCYo.js → machine-sizes-srbag24Q.js} +0 -0
  402. /package/dist/assets/{onboarding-CA1t3Q0f.js → onboarding-B9_JitSg.js} +0 -0
  403. /package/dist/assets/{onboarding-DL5ANbiB.js → onboarding-BrS1fcVE.js} +0 -0
  404. /package/dist/assets/{onboarding-GlX-XQi6.js → onboarding-Cx2yoeE5.js} +0 -0
  405. /package/dist/assets/{onboarding-BLyQ4pX7.js → onboarding-cBGAfB74.js} +0 -0
  406. /package/dist/assets/{onboarding-step-layout-DT_fRQ60.js → onboarding-step-layout-BsqZaEHR.js} +0 -0
  407. /package/dist/assets/{pdf-DnNSb9Ol.js → pdf-_tTrkaWt.js} +0 -0
  408. /package/dist/assets/{plugin-attribution-DdvqPkqM.js → plugin-attribution-RBBRvghI.js} +0 -0
  409. /package/dist/assets/{radio-card-nav-DU8rXs6_.js → radio-card-nav-Br8358Zh.js} +0 -0
  410. /package/dist/assets/{remote-web-BY-kioTR.js → remote-web-42kFkA33.js} +0 -0
  411. /package/dist/assets/{remote-web-D9gnRZew.js → remote-web-CFPdQIeJ.js} +0 -0
  412. /package/dist/assets/{remote-web-0oU_5nC3.js → remote-web-DFX945w2.js} +0 -0
  413. /package/dist/assets/{remote-web-DHdTNXdY.js → remote-web-DkzrBzGi.js} +0 -0
  414. /package/dist/assets/{schedules-BFWqVQQr.js → schedules-Bk7XGnqS.js} +0 -0
  415. /package/dist/assets/{schedules-B-eoXB0u.js → schedules-CGU7CKaM.js} +0 -0
  416. /package/dist/assets/{schedules-jmj6ULCh.js → schedules-J687h0Fh.js} +0 -0
  417. /package/dist/assets/{schedules-CxUabbOG.js → schedules-JnprnWDo.js} +0 -0
  418. /package/dist/assets/{skill-icon-CyV-a6U0.js → skill-icon-CWKAcXVy.js} +0 -0
  419. /package/dist/assets/{terminal-Dl9KkSzg.js → terminal-BV6xg9ZA.js} +0 -0
  420. /package/dist/assets/{terminal-BQY82QZm.js → terminal-BjOF3LBT.js} +0 -0
  421. /package/dist/assets/{terminal-BUWeG_vt.js → terminal-CYHsl1AH.js} +0 -0
  422. /package/dist/assets/{terminal-CAR3C4xs.js → terminal-Cxm0NKaj.js} +0 -0
  423. /package/dist/assets/{usage-window-DN8fvMZe.js → usage-window-DJWFtBw1.js} +0 -0
  424. /package/dist/assets/{use-async-read-D7JsXrwa.js → use-async-read-DcRLxtMN.js} +0 -0
  425. /package/dist/assets/{use-debounced-value-B3D7seCE.js → use-debounced-value-CiNn3pzA.js} +0 -0
  426. /package/dist/assets/{workspace-CNtNlLWm.js → workspace-Bcvg2VfS.js} +0 -0
  427. /package/dist/assets/{workspace-Bnpq8Dqv.js → workspace-BscXtFFU.js} +0 -0
  428. /package/dist/assets/{workspace-C9vNSPtQ.js → workspace-C-huZiu_.js} +0 -0
  429. /package/dist/assets/{workspace-u8O2g3J6.js → workspace-P8HaFDdu.js} +0 -0
  430. /package/dist/assets/{xterm-DVw0Odgw.js → xterm-Pyzkt_-B.js} +0 -0
  431. /package/dist/assets/{xterm-addon-fit-BQeaKmRy.js → xterm-addon-fit-HaY_WHvm.js} +0 -0
@@ -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:`Подтвердить`,copiedAddress:`Скопировано`,copyAddressAriaLabel:`Скопировать адрес`,copyAddressFailed:`Не удалось скопировать адрес.`,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}`},_={title:`Настройки почты`,description:`Адрес ассистента и кто может ему писать.`},v={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,emailSettingsModal:_};export{e as assistantChannelsList,t as channelAdapterList,m as channelMeta,i as channelPanel,o as channelTrustFloor,n as connectionCard,v as default,h as emailChannelSection,g as emailManagedContent,_ as emailSettingsModal,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:`Завершение настройки…`,copiedAddress:`Скопировано`,copyAddressAriaLabel:`Скопировать адрес`,copyAddressFailed:`Не удалось скопировать адрес.`,domainLabel:`Домен`,domainReleaseFailedToast:`Не удалось освободить домен.`,domainReleasedToast:`Домен освобождён.`,emailRemoveFailedToast:`Не удалось удалить адрес почты.`,emailRemovedToast:`Адрес почты удалён.`,inboxSetupBody:`Адрес ассистента создаётся в разделе «Почта ассистента», где читается его почта. Откройте его, чтобы выбрать адрес.`,inboxSetupButton:`Открыть почту ассистента`,inboxSetupTitle:`Настройте почту в разделе «Почта ассистента»`,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:`Повторить`,subscriptionWarningBody:`Не удалось связаться со службой оплаты. Форма ниже считает, что управляемая почта включена для организации. Если это не так, регистрация домена не сработает.`,subscriptionWarningTitle:`Не удалось проверить статус подписки`,usageSummary:`сегодня отправлено {sent} / {limit} · получено {received}`},_={title:`Настройки почты`,description:`Адрес ассистента и кто может ему писать.`},v={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,emailSettingsModal:_};export{e as assistantChannelsList,t as channelAdapterList,m as channelMeta,i as channelPanel,o as channelTrustFloor,n as connectionCard,v as default,h as emailChannelSection,g as emailManagedContent,_ as emailSettingsModal,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`,copiedAddress:`Copiado`,copyAddressAriaLabel:`Copiar dirección`,copyAddressFailed:`No se pudo copiar la dirección.`,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`},_={title:`Ajustes del correo`,description:`La dirección de tu asistente y quién puede escribirle.`},v={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,emailSettingsModal:_};export{e as assistantChannelsList,t as channelAdapterList,m as channelMeta,i as channelPanel,o as channelTrustFloor,n as connectionCard,v as default,h as emailChannelSection,g as emailManagedContent,_ as emailSettingsModal,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…`,copiedAddress:`Copiado`,copyAddressAriaLabel:`Copiar dirección`,copyAddressFailed:`No se pudo copiar la dirección.`,domainLabel:`Dominio`,domainReleaseFailedToast:`No se pudo liberar el dominio.`,domainReleasedToast:`Dominio liberado.`,emailRemoveFailedToast:`No se pudo eliminar la dirección de correo.`,emailRemovedToast:`Dirección de correo eliminada.`,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`,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`,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`,usageSummary:`{sent} / {limit} enviados hoy · {received} recibidos`},_={title:`Ajustes del correo`,description:`La dirección de tu asistente y quién puede escribirle.`},v={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,emailSettingsModal:_};export{e as assistantChannelsList,t as channelAdapterList,m as channelMeta,i as channelPanel,o as channelTrustFloor,n as connectionCard,v as default,h as emailChannelSection,g as emailManagedContent,_ as emailSettingsModal,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:`确认`,copiedAddress:`已复制`,copyAddressAriaLabel:`复制地址`,copyAddressFailed:`无法复制地址。`,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}`},_={title:`邮件设置`,description:`助手的地址以及谁可以给它发消息。`},v={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,emailSettingsModal:_};export{e as assistantChannelsList,t as channelAdapterList,m as channelMeta,i as channelPanel,o as channelTrustFloor,n as connectionCard,v as default,h as emailChannelSection,g as emailManagedContent,_ as emailSettingsModal,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:`正在完成设置…`,copiedAddress:`已复制`,copyAddressAriaLabel:`复制地址`,copyAddressFailed:`无法复制地址。`,domainLabel:`域名`,domainReleaseFailedToast:`释放域名失败。`,domainReleasedToast:`域名已释放。`,emailRemoveFailedToast:`删除电子邮件地址失败。`,emailRemovedToast:`电子邮件地址已删除。`,inboxSetupBody:`助手的地址在助手收件箱中创建,其邮件也在那里阅读。打开收件箱以选择地址。`,inboxSetupButton:`打开助手收件箱`,inboxSetupTitle:`在助手收件箱中设置电子邮件`,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:`重试`,subscriptionWarningBody:`我们无法连接到计费服务。以下表单假定您的组织已启用托管电子邮件。如果未启用,注册域名将失败。`,subscriptionWarningTitle:`无法验证订阅状态`,usageSummary:`今日发送 {sent} / {limit} · 收到 {received}`},_={title:`邮件设置`,description:`助手的地址以及谁可以给它发消息。`},v={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,emailSettingsModal:_};export{e as assistantChannelsList,t as channelAdapterList,m as channelMeta,i as channelPanel,o as channelTrustFloor,n as connectionCard,v as default,h as emailChannelSection,g as emailManagedContent,_ as emailSettingsModal,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,Ai as a,BC as o,BS as s,C as c,Ci as l,Cs as u,D as d,E as f,Fd as p,HC as m,Ju as h,Jv as g,KC as _,Lv as v,MC as y,MS as b,Ni as x,O as S,OC as C,PC as w,Pi as T,Ps as E,Qh as D,Rf as O,S as k,Ss as A,T as j,TC as M,W as N,WS as P,X as F,Xh as I,Xp as L,Xv as ee,Yp as R,Yv as te,Z as z,Zf as B,Zh as V,Zp as ne,_r as re,aC as ie,ah as ae,b as oe,bh as se,dc as ce,eC as le,eg as ue,ep as de,fC as fe,fc as pe,fn as me,gc as he,hC as ge,hc as _e,hp as ve,iC as H,iS as ye,iw as be,la as xe,lc as Se,mC as Ce,mc as we,mp as Te,oa as Ee,pc as De,pp as Oe,qp as ke,qv as Ae,sa as je,tc as Me,tp as Ne,tu as Pe,tw as Fe,ua as Ie,uc as Le,vC as Re,wC as ze,x as Be,xS as Ve,y as He,zC as Ue,zf as We,zg as Ge,zy as Ke}from"./app-KRIEMzuO.js";import{$n as U,E as W,O as G,Xn as K,nr as q}from"./vendor-DLH51Vjf.js";import{_ as qe,d as Je,f as Ye,h as Xe,n as Ze,t as Qe,x as $e}from"./react-B9IgSVeK.js";import{Dn as et,Rt as tt,Yn as nt,Zr as rt,br as it,fr as at,qi as ot,qn as st,vt as ct,zi as lt}from"./icons-C0wyat6T.js";import{t as ut}from"./detail-card-C53pHjsM.js";import{a as dt,i as ft,n as pt,o as mt,r as ht,t as gt}from"./use-channel-trust-floors-BkkxL6wd.js";import{t as J}from"./mutation-error--JEZBa3Q.js";import{a as _t,i as vt,n as yt,r as bt,t as xt}from"./use-invite-link-dialog-Dqkj_T4s.js";import{t as St}from"./use-side-list-room-CttXRA29.js";import{i as Ct,r as wt}from"./service-form-controls-DaeZPEiA.js";var Y=e($e(),1);function Tt(){let{channelId:e}=Xe(),t=Ye(),{search:n}=Je();return{selected:e,select:(0,Y.useCallback)(e=>{t({pathname:`/assistant/channels/${encodeURIComponent(e)}`,search:n},{replace:!0})},[t,n])}}var X=Qe();function Et({channels:e,pluginChannels:t=[],selectedKey:n,onSelect:r}){return(0,X.jsx)(o.Root,{className:`flex h-full flex-col overflow-hidden`,children:(0,X.jsx)(o.Body,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-4`,children:(0,X.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[e.map(e=>(0,X.jsx)(Dt,{channel:e,selected:e.key===n,onClick:()=>r(e.key)},e.key)),t.map(e=>(0,X.jsx)(Ot,{channel:e,selected:e.key===n,onClick:()=>r(e.key)},e.key))]})})})}function Dt({channel:e,selected:t,onClick:n}){let r=e.status===`ready`,i=xe(e.key),a=r?`Connected`:`Not connected`;return(0,X.jsx)(_,{asChild:!0,active:t,"aria-label":`${i}, ${a}`,children:(0,X.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,X.jsx)(Ee,{channelId:e.key,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,X.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default`,children:i}),(0,X.jsx)(`span`,{className:`flex shrink-0 items-center`,children:(0,X.jsx)(w,{tone:r?`positive`:`neutral`,children:a})})]})})}function Ot({channel:e,selected:t,onClick:n}){let{t:r}=W(`channels`);return(0,X.jsx)(_,{asChild:!0,active:t,"aria-label":r(`channelAdapterList.pluginChannelAria`,{channel:e.label}),children:(0,X.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,X.jsx)(je,{icon:e.icon,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,X.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default`,children:e.label}),(0,X.jsx)(tt,{"aria-hidden":!0,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`})]})})}function kt({icon:e,title:t,description:n,action:r,className:i}){return(0,X.jsxs)(`div`,{className:be(`flex flex-col items-center justify-center gap-3 px-4 py-12 text-center`,i),children:[e?(0,X.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,X.jsx)(`h3`,{className:`text-title-small text-[var(--content-default)]`,children:t}),n?(0,X.jsx)(`p`,{className:`max-w-md text-body-medium-lighter text-[color:var(--content-tertiary)]`,children:n}):null,r?(0,X.jsx)(`div`,{className:`mt-1`,children:r}):null]})}function At({mode:e,onChange:t}){let{t:n}=W(`common`);return(0,X.jsx)(`div`,{className:`max-w-[280px]`,children:(0,X.jsx)(Re,{ariaLabel:n(`serviceCard.modeToggleAriaLabel`),value:e,onChange:t,items:[{value:`managed`,label:n(`serviceCard.managedLabel`)},{value:`your-own`,label:n(`serviceCard.yourOwnLabel`)}]})})}function jt({id:e,title:t,subtitle:n,mode:r,onModeChange:i,children:a}){return(0,X.jsxs)(ut,{id:e,title:t,subtitle:n,accessory:(0,X.jsx)(At,{mode:r,onChange:i}),children:[(0,X.jsx)(`div`,{className:`h-px bg-[var(--surface-active)]`}),(0,X.jsx)(`div`,{className:`mt-4`,children:a})]})}function Mt(e,t){return e===`managed`||e===`your-own`?e:t}function Nt(){let{t:e}=W(`channels`),t=N(),n=ae(),{data:r}=U({...h(),enabled:n}),o=r?.results?.[0]?.handle,c=x.use.emailRootDomain(),l=se(),[d,f]=(0,Y.useState)(()=>l===`gated`?`your-own`:Mt(s(u,`managed`),`managed`)),[m,g]=(0,Y.useState)(()=>{let e=s(A,`resend`);return e===`mailgun`||e===`resend`?e:`resend`}),{platformAssistantId:_,error:y}=T(t,l===`full`&&d===`managed`),S=_??(y?t:null),C=U({queryKey:[`byoEmailCredential`,t,m],queryFn:async()=>{let{data:e}=await v({path:{assistant_id:t},body:{service:m,field:`api_key`},throwOnError:!0});return e},enabled:d===`your-own`||l===`gated`,staleTime:6e4,retry:b,meta:{errorContext:`byo_email_credential_check`}});(0,Y.useEffect)(()=>{C.error&&i(C.error,{context:`byo_email_credential_check`,bestEffort:!0})},[C.error]);let w=C.data?.hasSecret===!0,D=a(ye.use.name()??``),{data:O}=U({...p(),enabled:n&&l===`full`}),k=l===`full`&&d===`managed`&&S!==null&&!!O?.entitlements&&O.entitlements.managed_email!==!0,j=(0,Y.useCallback)(e=>{f(e),P(u,e)},[]),M=(0,Y.useCallback)(()=>{P(A,m),ge.success(e(`emailChannelSection.saveSuccessToast`))},[m,e]),F=(0,Y.useMemo)(()=>E.find(e=>e.id===m)??E[0],[m]),I=(0,X.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,X.jsx)(at,{className:`mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--system-positive-strong)]`}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,X.jsx)(`span`,{children:(0,X.jsx)(G,{i18nKey:`emailChannelSection.setupInstructions`,ns:`channels`,values:{providerName:F.displayName,setupSkill:F.setupSkill},components:{code:(0,X.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 text-[12px]`})}})}),(0,X.jsxs)(Ke,{href:F.docsUrl,tone:`default`,className:`inline-flex items-center gap-1`,glyph:!1,children:[e(`emailChannelSection.openProvider`,{providerName:F.displayName}),(0,X.jsx)(rt,{className:`h-3 w-3`})]})]})]}),L=(0,X.jsxs)(`div`,{className:`space-y-4`,children:[(0,X.jsxs)(`div`,{className:`space-y-1`,children:[(0,X.jsx)(`label`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e(`emailChannelSection.providerLabel`)}),(0,X.jsx)(fe,{value:m,onChange:e=>{(e===`mailgun`||e===`resend`)&&g(e)},options:E.map(e=>({value:e.id,label:e.displayName}))})]}),w?(0,X.jsxs)(`div`,{className:`space-y-3`,children:[(0,X.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,X.jsx)(lt,{className:`h-4 w-4 shrink-0 text-[var(--system-positive-strong)]`}),(0,X.jsx)(`span`,{children:(0,X.jsx)(G,{i18nKey:`emailChannelSection.apiKeyConfigured`,ns:`channels`,values:{providerName:F.displayName,setupSkill:F.setupSkill},components:{code:(0,X.jsx)(`code`,{className:`rounded bg-[var(--surface-active)] px-1 py-0.5 text-[12px]`})}})})]}),(0,X.jsxs)(Ke,{href:F.docsUrl,tone:`default`,className:`inline-flex items-center gap-1 text-body-small-default`,glyph:!1,children:[e(`emailChannelSection.openProvider`,{providerName:F.displayName}),(0,X.jsx)(rt,{className:`h-3 w-3`})]})]}):I,(0,X.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,X.jsx)(wt,{onClick:M,disabled:!1})})]});return l===`gated`?(0,X.jsx)(Ct,{id:`email`,title:e(`emailChannelSection.title`),subtitle:e(`emailChannelSection.subtitle`),children:L}):(0,X.jsx)(jt,{id:`email`,title:k?D.title:e(`emailChannelSection.title`),subtitle:k?D.subtitle:e(`emailChannelSection.subtitle`),mode:d,onModeChange:j,children:d===`managed`?(0,X.jsx)(`div`,{className:`space-y-4`,children:l===`disabled`?(0,X.jsx)(me,{children:e(`emailChannelSection.platformLoginNotice`)}):S===null?(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,X.jsx)(nt,{className:`h-4 w-4 animate-spin`}),e(`emailChannelSection.connecting`)]}):(0,X.jsx)(dt,{assistantId:S,assistantHandle:o,emailRootDomain:c})}):L})}function Pt({health:e}){let{Icon:t,label:n,tone:r}=Ie(e);return(0,X.jsx)(w,{tone:r,leftIcon:(0,X.jsx)(t,{}),children:n})}function Ft({address:e,health:n,pending:r,onDisconnect:i}){let{t:a}=W(`channels`);return(0,X.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,X.jsx)(Pt,{health:n}),e?(0,X.jsx)(`span`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e}):null,(0,X.jsx)(`div`,{className:`ml-auto`,children:(0,X.jsx)(t,{type:`button`,variant:`danger`,onClick:i,disabled:!i||r,children:a(r?`connectionCard.disconnecting`:`connectionCard.disconnect`)})})]})}function It({children:e}){let{t}=W(`channels`);return(0,X.jsxs)(o.Root,{children:[(0,X.jsx)(o.Header,{children:(0,X.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,X.jsx)(`img`,{src:l(`/images/integrations/slack.svg`),alt:``,className:`size-8 rounded-lg bg-[var(--surface-sunken)] p-1`}),(0,X.jsx)(m,{as:`span`,variant:`body-medium-default`,children:t(`slackChannelCard.setupHeading`)})]})}),(0,X.jsx)(o.Body,{children:e})]})}F.map(e=>e.riskThreshold);var Lt=[`none`,`low`];function Rt(e){if(e!==void 0)return e===`none`?`none`:`low`}var Z={none:{label:z(`none`).label,sublabel:`asks every time`,tone:`negative`,dotColor:`var(--system-negative-strong)`},low:{label:z(`low`).label,sublabel:`safe lookups`,tone:`warning`,dotColor:`var(--system-mid-strong)`},medium:{label:z(`medium`).label,sublabel:`broader lookups`,tone:`info`,dotColor:`var(--system-info-strong)`},high:{label:z(`high`).label,sublabel:`any lookup`,tone:`positive`,dotColor:`var(--system-positive-strong)`}},Q=[`trusted_contact`,`unverified_contact`,`unknown`];function zt(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 Bt(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 Vt(e,t,n){let r;for(let i of e)Bt(i,t,n)&&(i.contactType===`trusted_contact`||r===void 0)&&(r=i.threshold);return r}var Ht=`__default__`;function Ut({color:e}){return(0,X.jsx)(`span`,{"aria-hidden":`true`,className:`h-1.5 w-1.5 shrink-0 rounded-full`,style:{backgroundColor:e}})}function Wt({tier:e,defaultTier:t,disabled:n,onTierChange:r,onReset:i,"aria-label":a}){let{t:o}=W(`channels`),s=Rt(e??t??void 0),c=Rt(t??void 0)??null,l=Lt.map(e=>({value:e,label:Z[e].label,icon:(0,X.jsx)(Ut,{color:Z[e].dotColor}),suffix:e===c?(0,X.jsx)(`span`,{className:`text-[color:var(--content-tertiary)]`,children:o(`tierPicker.defaultSuffix`)}):void 0,tooltip:Z[e].sublabel}));return l.unshift({value:Ht,label:`Default`,icon:(0,X.jsx)(Ut,{color:`transparent`}),tooltip:`follows the default level`}),(0,X.jsx)(fe,{value:s??``,onChange:e=>{e===Ht||e===c?i():r(e)},options:l,placeholder:o(`tierPicker.defaultPlaceholder`),disabled:n,size:`compact`,menuAlign:`end`,"aria-label":a})}function Gt(e){return e.type===`dm`?`dm`:e.isPrivate?`private`:`public`}function Kt(e){return e.filter(e=>Gt(e)!==`dm`)}function qt(e,t,n){let r=t.trim().toLowerCase();return e.filter(e=>(n===null||Gt(e)===n)&&(r===``||e.name.toLowerCase().includes(r))).sort((e,t)=>e.name.localeCompare(t.name))}function Jt(e){let t={public:0,private:0,dm:0};for(let n of e)t[Gt(n)]+=1;return t}function Yt(e){return e.memberCount==null?null:e.memberCount===1?`1 member`:`${e.memberCount} members`}var Xt=[{value:null,labelKey:`slackChannelList.filterAll`},{value:`public`,labelKey:`slackChannelList.filterPublic`},{value:`private`,labelKey:`slackChannelList.filterPrivate`}],Zt={public:it,private:st},Qt=100,$t=new Set;function en({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=$t,onTierChange:d,onTierReset:f}){let{t:p}=W(`channels`),[h,g]=(0,Y.useState)(``),[_,v]=(0,Y.useState)(null),y=(0,Y.useMemo)(()=>Kt(n??[]),[n]),b=(0,Y.useMemo)(()=>qt(y,h,_),[y,h,_]),x=(0,Y.useMemo)(()=>Jt(y),[y]);return(0,X.jsxs)(`div`,{className:`flex flex-col gap-3 p-4`,children:[(0,X.jsx)(m,{as:`p`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:(0,X.jsx)(G,{i18nKey:`slackChannelList.presenceHint`,ns:`channels`,values:{handle:t??`@${e}`,assistant:e},components:{invite:(0,X.jsx)(`code`,{className:`text-[color:var(--content-secondary)]`}),remove:(0,X.jsx)(`code`,{className:`text-[color:var(--content-secondary)]`})}})}),r?(0,X.jsx)(m,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:p(`slackChannelList.loading`)}):i?(0,X.jsx)(m,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--system-negative-strong)]`,children:p(`slackChannelList.loadFailed`)}):y.length===0?(0,X.jsx)(kt,{icon:(0,X.jsx)(it,{className:`h-6 w-6`}),title:p(`slackChannelList.emptyTitle`)}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,X.jsx)(`div`,{className:`min-w-56 flex-1`,children:(0,X.jsx)(C,{type:`search`,value:h,onChange:e=>g(e.target.value),placeholder:p(`slackChannelList.searchPlaceholder`),"aria-label":p(`slackChannelList.searchAria`),leftIcon:(0,X.jsx)(ct,{className:`h-4 w-4`}),fullWidth:!0})}),(0,X.jsx)(`div`,{className:`flex items-center gap-2`,role:`group`,"aria-label":p(`slackChannelList.filterGroupAria`),children:Xt.map(({value:e,labelKey:t})=>{let n=_===e,r=e===null?y.length:x[e];return(0,X.jsx)(`button`,{type:`button`,"aria-pressed":n,onClick:()=>v(e),className:be(`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,X.jsx)(m,{as:`span`,variant:`body-small-lighter`,className:`py-4 text-center text-[color:var(--content-tertiary)]`,children:p(`slackChannelList.noMatches`)}):b.length>Qt?(0,X.jsx)(`div`,{className:`h-96`,children:(0,X.jsx)(ie,{items:b,computeItemKey:(e,t)=>t.id,itemContent:(e,t)=>(0,X.jsx)(tn,{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,X.jsx)(`div`,{className:`max-h-96 overflow-y-auto`,children:b.map(e=>(0,X.jsx)(tn,{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 tn({channel:e,pending:t,overridesLoading:n,overridesError:r,defaultTier:i,accessControls:a,tierOverride:o,onTierChange:s,onReset:c}){let{t:l}=W(`channels`),u=Gt(e);if(u===`dm`)return null;let d=Zt[u],f=Yt(e),p=`[&+&]:border-t [&+&]:border-[var(--border-base)]`;return a?(0,X.jsx)(le,{className:p,leading:(0,X.jsx)(d,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),title:e.name,subtitle:f??void 0,trailing:(0,X.jsx)(`div`,{className:`w-40 sm:w-48`,children:(0,X.jsx)(Wt,{tier:o,defaultTier:i,disabled:t||n||r,onTierChange:s,onReset:c,"aria-label":l(`slackChannelList.accessAria`,{channel:e.name})})})}):(0,X.jsx)(le,{className:p,leading:(0,X.jsx)(d,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),title:e.name,trailing:f==null?void 0:(0,X.jsx)(`span`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:f})})}function nn(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 rn({defaultTier:e}){let{t}=W(`channels`),n=Rt(e??void 0)??null;return(0,X.jsx)(`div`,{className:`flex flex-col gap-2 px-4 py-3`,children:(0,X.jsx)(`ul`,{className:`grid gap-x-6 gap-y-3 sm:grid-cols-2`,children:[...Lt].reverse().map(e=>{let r=Z[e];return(0,X.jsxs)(`li`,{className:`flex flex-col gap-0.5`,children:[(0,X.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,X.jsx)(Ut,{color:r.dotColor}),(0,X.jsx)(m,{as:`span`,variant:`body-small-emphasised`,children:r.label}),e===n?(0,X.jsx)(m,{as:`span`,variant:`body-small-default`,className:`text-[color:var(--content-tertiary)]`,children:t(`slackChannelTierLegend.defaultMarker`)}):null]}),(0,X.jsx)(m,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:nn(e)})]},e)})})})}var an=[{bucket:`channels`,icon:it,title:`Channels`,description:`Public and private channels`},{bucket:`dm`,icon:et,title:`Direct messages`,description:`One-on-one DMs`}];function on({assistantName:e,globalDefaultTier:t,bucketTiers:n,loading:r,error:i,pendingBuckets:a,onBucketChange:s,onBucketReset:c}){let{t:l}=W(`channels`);return(0,X.jsxs)(o.Root,{children:[(0,X.jsx)(o.Header,{children:(0,X.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[l(`slackChannelTypeDefaults.heading`),(0,X.jsx)(m,{as:`p`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:(0,X.jsx)(G,{i18nKey:`slackChannelTypeDefaults.subtitle`,ns:`channels`,values:{assistant:e},components:{trustRules:(0,X.jsx)(Ze,{to:Ve.settings.privacy,className:y()})}})})]})}),(0,X.jsx)(o.Body,{className:`py-1`,children:an.map(({bucket:e,icon:o,title:u,description:d})=>{let f=e===`dm`?n?.channels??t:t;return(0,X.jsx)(le,{className:`[&+&]:border-t [&+&]:border-[var(--border-base)]`,leading:(0,X.jsx)(o,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),title:u,subtitle:d,trailing:(0,X.jsx)(`div`,{className:`w-40 sm:w-48`,children:(0,X.jsx)(Wt,{tier:n?.[e],defaultTier:f,disabled:r||i||a.has(e),onTierChange:t=>s(e,t),onReset:()=>c(e),"aria-label":l(`slackChannelTypeDefaults.bucketAria`,{bucket:u})})})},e)})}),(0,X.jsx)(o.Footer,{className:`p-0`,children:(0,X.jsx)(rn,{defaultTier:t})})]})}var sn=`0.11.0`;function cn(){return Ge(sn)}var ln=new Set([404,501]);function un(e){let t=O(e);return t!==void 0&&ln.has(t)}function dn(e,t,n){return Q.map(r=>({selector:{scope:`channel`,adapter:e,channelExternalId:t},contactType:r,threshold:n}))}function fn(e,t,n){return e.selector.scope===`channel`&&e.selector.adapter===t&&e.selector.channelExternalId===n}function pn(e,t){return t===`channels`?{scope:`adapter`,adapter:e}:{scope:`channel_type`,adapter:e,channelType:`dm`}}function mn(e,t,n){let r=pn(e,t);return Q.map(e=>({selector:r,contactType:e,threshold:n}))}function hn({assistantId:e,adapter:t}){let r=q(),i=cn()&&!!e,a=(0,Y.useMemo)(()=>({path:{assistant_id:e}}),[e]),o=(0,Y.useMemo)(()=>he(a),[a]),s=(0,Y.useMemo)(()=>[`channel-permission-resolve`,e,t],[e,t]),c=U({..._e(a),enabled:i}),l=c.data?.cells,u=(0,Y.useMemo)(()=>l?zt(l,t):void 0,[l,t]),d=(0,Y.useMemo)(()=>l?{channels:Vt(l,t,`channels`),dm:Vt(l,t,`dm`)}:void 0,[l,t]),f=U({queryKey:s,queryFn:async()=>{let{data:e}=await Ne({...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=K({mutationFn:async({channelExternalId:e,tier:n})=>{await Promise.all(dn(t,e,n).map(e=>de({...a,body:e,throwOnError:!0})))},onMutate:({channelExternalId:e,tier:n})=>p(n=>fn(n,t,e),dn(t,e,n)),onError:(e,t,n)=>{r.setQueryData(o,n?.previous),J(`Failed to save channel settings`)(e)},onSettled:()=>r.invalidateQueries({queryKey:o})}),h=K({mutationFn:async({channelExternalId:e})=>{await Promise.all(Q.map(r=>n({...a,body:{selector:{scope:`channel`,adapter:t,channelExternalId:e},contactType:r},throwOnError:!0})))},onMutate:({channelExternalId:e})=>p(n=>fn(n,t,e),[]),onError:(e,t,n)=>{r.setQueryData(o,n?.previous),J(`Failed to reset channel settings`)(e)},onSettled:()=>r.invalidateQueries({queryKey:o})}),g=K({mutationFn:async({bucket:e,tier:n})=>{await Promise.all(mn(t,e,n).map(e=>de({...a,body:e,throwOnError:!0})))},onMutate:({bucket:e,tier:n})=>p(n=>Bt(n,t,e),mn(t,e,n)),onError:(e,t,n)=>{r.setQueryData(o,n?.previous),J(`Failed to save the default`)(e)},onSettled:(e,t,{bucket:n})=>{r.invalidateQueries({queryKey:o}),n===`channels`&&r.invalidateQueries({queryKey:s})}}),_=K({mutationFn:async({bucket:e})=>{let r=pn(t,e);await Promise.all(Q.map(e=>n({...a,body:{selector:r,contactType:e},throwOnError:!0})))},onMutate:({bucket:e})=>p(n=>Bt(n,t,e),[]),onError:(e,t,n)=>{r.setQueryData(o,n?.previous),J(`Failed to reset the default`)(e)},onSettled:(e,t,{bucket:n})=>{r.invalidateQueries({queryKey:o}),n===`channels`&&r.invalidateQueries({queryKey:s})}}),v=(0,Y.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,Y.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&&un(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 gn({assistantId:e,assistantDisplayName:t,slackHandle:n}){let{t:r}=W(`channels`),i=U({...j(e),enabled:!!e,select:e=>e.channels}),a=hn({assistantId:e,adapter:`slack`}),s=U({queryKey:[`thresholds`,e],queryFn:()=>re(e),enabled:a.supported&&!!e,staleTime:3e4}).data?.interactive??null,c=a.defaultCellTier===void 0?null:a.defaultCellTier??s,l=(0,X.jsx)(en,{assistantDisplayName:t,slackHandle:n,accessControlsSupported:a.supported,defaultTier:c,channels:i.data,loading:i.isPending,error:i.isError,tierOverrides:a.tierOverrides,tierOverridesLoading:a.isLoading,tierOverridesError:a.isError,pendingChannelIds:a.pendingChannelIds,onTierChange:a.onTierChange,onTierReset:a.onTierReset});return!a.supported||!a.onBucketChange||!a.onBucketReset?(0,X.jsx)(o.Root,{noPadding:!0,clipContents:!0,children:l}):(0,X.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[a.isError?(0,X.jsx)(Ue,{tone:`error`,children:r(`slackChannelSection.overridesLoadFailed`)}):null,(0,X.jsx)(on,{assistantName:t,globalDefaultTier:s,bucketTiers:a.bucketTiers,loading:a.isLoading,error:a.isError,pendingBuckets:a.pendingBuckets,onBucketChange:a.onBucketChange,onBucketReset:a.onBucketReset}),(0,X.jsx)(o.Root,{noPadding:!0,clipContents:!0,children:(0,X.jsx)(H.Root,{type:`single`,collapsible:!0,children:(0,X.jsxs)(H.Item,{value:`per-channel-overrides`,children:[(0,X.jsxs)(H.Trigger,{className:`group justify-between gap-2 px-4 py-3`,children:[(0,X.jsx)(m,{as:`span`,variant:`body-small-emphasised`,children:r(`slackChannelSection.perChannelOverrides`)}),(0,X.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,X.jsx)(H.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:a}){let{t:s}=W(`channels`);return(0,X.jsxs)(o.Root,{children:[(0,X.jsx)(o.Header,{children:(0,X.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,X.jsx)(`img`,{src:l(`/images/integrations/slack.svg`),alt:``,className:`size-8 rounded-lg bg-[var(--surface-sunken)] p-1`}),e?(0,X.jsx)(m,{as:`span`,variant:`body-medium-default`,children:e}):null,(0,X.jsx)(Pt,{health:n}),(0,X.jsx)(`div`,{className:`ml-auto`,children:(0,X.jsx)(t,{type:`button`,variant:`ghost`,onClick:i,disabled:!i||r,children:s(r?`connectionCard.disconnecting`:`connectionCard.disconnect`)})})]})}),(0,X.jsx)(o.Body,{children:a})]})}function vn({threadMode:e,threadModePending:t=!1,onThreadModeChange:n}){let{t:r}=W(`channels`);return(0,X.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,X.jsx)(m,{as:`span`,variant:`body-small-emphasised`,className:`text-[color:var(--content-secondary)]`,children:r(`slackThreadBehavior.heading`)}),(0,X.jsxs)(M,{value:e??`mention_then_thread`,onValueChange:e=>n?.(e),disabled:t||!n,"aria-label":r(`slackThreadBehavior.selectAria`),children:[(0,X.jsx)(ze,{value:`mention_only`,label:r(`slackThreadBehavior.mentionsOnly`),helperText:r(`slackThreadBehavior.mentionsOnlyHelp`)}),(0,X.jsx)(ze,{value:`mention_then_thread`,label:r(`slackThreadBehavior.followThreads`),helperText:r(`slackThreadBehavior.followThreadsHelp`)})]})]})}function yn({onSave:e}){let{t:n}=W(`channels`),[r,i]=(0,Y.useState)(``),[a,o]=(0,Y.useState)(``),[s,c]=(0,Y.useState)(!1),[l,u]=(0,Y.useState)(null),d=r.trim().length>0&&a.trim().length>0&&!s;return(0,X.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,X.jsx)(C,{label:n(`twilioCredentialEntry.accountSid`),type:`text`,value:r,onChange:e=>i(e.target.value),placeholder:`ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`,disabled:s,fullWidth:!0}),(0,X.jsx)(C,{label:n(`twilioCredentialEntry.authToken`),type:`password`,value:a,onChange:e=>o(e.target.value),placeholder:n(`twilioCredentialEntry.authTokenPlaceholder`),disabled:s,fullWidth:!0}),l?(0,X.jsx)(`p`,{className:`text-label-small-default`,style:{color:`var(--system-negative-strong)`},children:l}):null,(0,X.jsx)(`div`,{children:(0,X.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 bn({channel:e,assistantId:n,assistantName:r,assistantDisplayName:i,pending:a,initialManualEntry:o=!1,onSetup:s,onDisconnect:c,onSaveTelegramToken:l,telegramSaveStatus:u,telegramSaveError:p,onSaveDiscordToken:m,discordSaveStatus:h,discordSaveError:g=null,discordInviteUrl:_,onSaveSlackConfig:v,slackSaveStatus:y,slackSaveError:b,slackThreadMode:x,slackThreadModePending:C=!1,onSlackThreadModeChange:w,onSaveTwilioCredentials:T,policy:E,policySaving:D=!1,policyLoading:O=!1,policyError:k=!1,onPolicyChange:A}){let{t:j}=W(`channels`),M=e.status===`incomplete`,[N,P]=(0,Y.useState)(o),F=e.key===`discord`&&N&&h===`success`,I=e.configured&&!F;if(e.key===`email`)return(0,X.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,X.jsx)(Nt,{}),I&&A?(0,X.jsx)(ut,{children:(0,X.jsx)(mt,{assistantDisplayName:i,policy:E,saving:D,loading:O,error:k,onChange:A})}):null]});if(e.key===`slack`)return(0,X.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[I?(0,X.jsx)(_n,{slackHandle:e.address,health:e.health,disconnectPending:a,onDisconnect:c,children:(0,X.jsx)(vn,{threadMode:x,threadModePending:C,onThreadModeChange:w})}):(0,X.jsx)(It,{children:(0,X.jsx)(S,{assistantId:n,assistantName:r,onSave:v,saveStatus:y,saveError:b})}),I?(0,X.jsx)(gn,{assistantId:n,assistantDisplayName:i,slackHandle:e.address}):null]});let L=ue[e.key];return(0,X.jsx)(`div`,{className:`flex flex-col gap-4`,children:I?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(Ft,{health:e.health,address:e.address,pending:a,onDisconnect:c}),L.hasTrustFloorControl&&A?(0,X.jsx)(mt,{assistantDisplayName:i,policy:E,saving:D,loading:O,error:k,onChange:A}):null]}):N&&e.canManualEntry&&L.credentialForm?(e=>{switch(e){case`slack-wizard`:return null;case`telegram-token`:return(0,X.jsx)(f,{assistantId:n,assistantName:r,saveStatus:u,saveError:p,onSave:l});case`discord-token`:return(0,X.jsx)(d,{assistantId:n,assistantName:r,saveStatus:h,saveError:g,onSave:m,..._?{inviteUrl:_}:{}});case`twilio-credentials`:return(0,X.jsx)(yn,{onSave:T});default:return e}})(L.credentialForm):(0,X.jsx)(kt,{icon:(0,X.jsx)(Ee,{channelId:e.key,className:`h-6 w-6`}),title:j(M?`channelPanel.incompleteTitle`:`channelPanel.disconnectedTitle`,{channel:xe(e.key)}),description:M?e.warning??j(`channelPanel.incompleteDescription`,{channel:xe(e.key)}):L.disconnectedPitchKey?j(L.disconnectedPitchKey,{assistant:i}):void 0,action:(0,X.jsxs)(`div`,{className:`flex flex-col items-center gap-1`,children:[(0,X.jsx)(t,{type:`button`,variant:`outlined`,onClick:s,disabled:!s||a,children:j(a?`channelPanel.opening`:M?`channelPanel.finishSetup`:`channelPanel.setUp`)}),e.canManualEntry&&L.credentialForm?(0,X.jsx)(t,{type:`button`,variant:`link`,onClick:()=>P(!0),children:j(`channelPanel.connectManually`)}):null]})})})}var xn=new Set([404,501]),Sn=new Set([401,403]);function Cn(e){let t=O(e);return t!==void 0&&xn.has(t)?`unsupported`:t!==void 0&&Sn.has(t)?`forbidden`:`unreadable`}function wn(e,t,n){let r=e===`unreadable`?t:n;return r?r instanceof Error&&r.message?r.message:`Something went wrong`:null}function Tn(e,t){let n=q(),r={assistant_id:e},i=U({...pe({path:r}),enabled:!!e,retry:We}),a=()=>n.invalidateQueries({queryKey:De({path:r})}),o=K({...ce(),onSuccess:a}),s=K({...we(),onSuccess:a}),c=i.data?.sources?.find(e=>e.source===t),l;l=i.isError?Cn(i.error):i.isPending?`loading`:c?c.state:`none`;let u=wn(l,i.error,o.error??s.error);return{status:l,paths:c?.routes?.map(e=>({path:e.publicPath,approvalGoverned:e.signer!==`vellum`,deliversInbound:e.deliversInbound===!0}))??[],deciding:o.isPending||s.isPending,approve:()=>{c?.digest&&o.mutate({path:{...r,source:t},body:{digest:c.digest}})},revoke:()=>s.mutate({path:{...r,source:t}}),error:u}}var En=`plugin`;function Dn(e){let t=q(),n=pt(),r=(0,Y.useMemo)(()=>({path:{assistant_id:e}}),[e]),i=(0,Y.useMemo)(()=>Le(r),[r]),a=U({...Se(r),enabled:n&&!!e,select:ft}),o=K({mutationFn:t=>ht(e,En,t),onSuccess:()=>t.invalidateQueries({queryKey:i}),onError:J(`Failed to save channel policy`)}),s=(0,Y.useCallback)(e=>{o.mutate(e)},[o]);return n?{policy:a.data?.find(e=>e.channelType===En)?.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 On({channel:e,assistantId:n,assistantDisplayName:r}){let{t:i}=W(`channels`),a=Ye(),o=Tn(n,e.plugin),s=Dn(n);return(0,X.jsxs)(`div`,{className:`relative flex flex-col items-center gap-3 py-10 text-center`,children:[(0,X.jsx)(t,{className:`absolute top-0 right-0`,variant:`ghost`,size:`compact`,iconOnly:(0,X.jsx)(tt,{}),tooltip:i(`pluginChannelPanel.navigateToPluginPage`),"aria-label":i(`pluginChannelPanel.navigateToPluginPage`),onClick:()=>a(`/assistant/plugins/${e.plugin}`)}),(0,X.jsx)(je,{icon:e.icon,className:`h-8 w-8 text-[color:var(--content-secondary)]`}),(0,X.jsx)(`h3`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:e.label}),e.description?(0,X.jsx)(`p`,{className:`max-w-[420px] text-body-medium-default`,style:{color:`var(--content-secondary)`},children:e.description}):null,(0,X.jsx)(kn,{channel:e,ingress:o}),s.onChange?(0,X.jsx)(`div`,{className:`w-full max-w-[420px] text-left`,children:(0,X.jsx)(mt,{assistantDisplayName:r,policy:s.policy,saving:s.isSaving,loading:s.isLoading,error:s.isError,onChange:s.onChange})}):null]})}function kn({channel:e,ingress:t}){let{t:n}=W(`channels`);switch(t.status){case`loading`:return(0,X.jsx)($,{children:n(`pluginChannelPanel.ingressLoading`,{channel:e.label})});case`unsupported`:return(0,X.jsx)($,{children:n(`pluginChannelPanel.ingressUnsupported`)});case`forbidden`:return(0,X.jsx)($,{children:n(`pluginChannelPanel.ingressForbidden`)});case`unreadable`:return(0,X.jsxs)($,{children:[n(`pluginChannelPanel.ingressUnreadable`,{channel:e.label}),t.error?` ${t.error}`:``]});case`none`:return(0,X.jsx)($,{children:n(`pluginChannelPanel.ingressNone`,{channel:e.label})});case`pending`:case`approved`:return(0,X.jsx)(An,{ingress:t})}}function An({ingress:e}){let{t:n}=W(`channels`),r=e.status===`approved`;return(0,X.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[(0,X.jsx)(w,{tone:r?`positive`:`neutral`,children:n(r?`pluginChannelPanel.ingressApprovedTag`:`pluginChannelPanel.ingressPendingTag`)}),(0,X.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,X.jsx)(t,{onClick:r?e.revoke:e.approve,disabled:e.deciding,variant:r?`outlined`:`primary`,children:n(r?`pluginChannelPanel.revokeChannel`:`pluginChannelPanel.approveChannel`)}),(0,X.jsx)(Fe,{content:n(`pluginChannelPanel.approveChannelInfo`),children:(0,X.jsx)(`span`,{tabIndex:0,className:`inline-flex cursor-default p-0.5 text-[color:var(--content-secondary)]`,"aria-label":n(`pluginChannelPanel.approveChannelInfo`),children:(0,X.jsx)(at,{className:`h-4 w-4`,"aria-hidden":`true`})})})]}),e.error?(0,X.jsx)(`p`,{className:`max-w-[420px] text-body-small-default`,style:{color:`var(--system-negative-strong)`},children:e.error}):null]})}function $({children:e}){return(0,X.jsx)(`p`,{className:`max-w-[420px] text-body-small-default`,style:{color:`var(--content-secondary)`},children:e})}function jn({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}=W(`channels`),{selected:O,select:k}=Tt(),[A,j]=(0,Y.useState)(null),{paneRef:M,hasRoomForList:N,drawerOpen:P,openDrawer:F,closeDrawer:I}=St(),[L]=(0,Y.useState)(E);(0,Y.useEffect)(()=>{L&&k(L)},[L,k]);let ee=Me(t),R=A?ue[A]:null,te=e=>{k(e),I()},z=r.find(e=>e.key===O),B=z?void 0:n.find(e=>e.key===O)??n[0];if(!B&&!z)return null;let V=z?z.key:B.key,ne=z?(0,X.jsx)(On,{channel:z,assistantId:e,assistantDisplayName:ee},z.key):(0,X.jsx)(bn,{channel:B,assistantId:e,assistantName:t,assistantDisplayName:ee,pending:i===B.key,initialManualEntry:L===B.key,onSetup:f?()=>f(B.key,B.status===`incomplete`):void 0,onDisconnect:p&&B.canDisconnect?()=>j(B.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?.[B.key],policySaving:c===B.key,policyLoading:l,policyError:u,onPolicyChange:d?e=>d(B.key,e):void 0},B.key);return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`div`,{ref:M,className:`flex min-h-0 flex-1 overflow-hidden ${N?`flex-row gap-6`:`flex-col gap-4`}`,children:[N?(0,X.jsx)(`aside`,{className:`min-h-0 w-[320px] shrink-0 overflow-y-auto self-stretch`,children:(0,X.jsx)(Et,{channels:n,pluginChannels:r,selectedKey:V,onSelect:te})}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`div`,{className:`flex items-center`,children:(0,X.jsx)(_t,{onClick:F})}),(0,X.jsx)(vt,{open:P,onClose:I,title:D(`assistantChannelsList.drawerTitle`),children:(0,X.jsx)(Et,{channels:n,pluginChannels:r,selectedKey:V,onSelect:te})})]}),(0,X.jsx)(`section`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto`,children:V===`slack`||V===`email`?ne:(0,X.jsx)(ut,{children:ne})})]}),(0,X.jsx)(Ce,{open:A!==null,title:D(`assistantChannelsList.disconnectTitle`,{channel:R?D(R.labelKey):``}),message:R?.disconnectMessageKey?D(R.disconnectMessageKey):``,confirmLabel:D(`assistantChannelsList.disconnectConfirm`),destructive:!0,onConfirm:()=>{A&&p&&p(A),j(null)},onCancel:()=>j(null)})]})}var Mn=`plugin:`;function Nn(e){let{data:t}=U({...Oe({path:{assistant_id:e}}),enabled:!!e,select:e=>e.channels.filter(e=>e.source?.startsWith(Mn)).map(e=>({plugin:e.id,key:r(e.id),label:e.label,description:e.subtitle,icon:e.icon}))});return t??[]}var Pn=`0.11.5-dev.202608242314.38e0513`;function Fn(){return Ge(Pn)}var In=`0.11.5-dev.202608252008.65007aa`;function Ln(){return Ge(In)}var Rn={slack:g,telegram:te,discord:Ae,email:void 0,phone:ee},zn={slack:`useAssistantChannels.setupPrompt.slack`,telegram:`useAssistantChannels.setupPrompt.telegram`,discord:`useAssistantChannels.setupPrompt.discord`,email:`useAssistantChannels.setupPrompt.email`,phone:`useAssistantChannels.setupPrompt.phone`},Bn={slack:`useAssistantChannels.finishPrompt.slack`,telegram:`useAssistantChannels.finishPrompt.telegram`,discord:`useAssistantChannels.finishPrompt.discord`,email:`useAssistantChannels.finishPrompt.email`,phone:`useAssistantChannels.finishPrompt.phone`},Vn=15e3;function Hn({assistantId:e,onStartSetupConversation:t}){let{t:n}=W(`common`),r=q(),i=(0,Y.useMemo)(()=>({path:{assistant_id:e}}),[e]),a=(0,Y.useMemo)(()=>ve(i),[i]),o=Fn(),s=Ln(),l=(0,Y.useMemo)(()=>Un(o),[o]),u=U({...Te(i),enabled:!!e,refetchInterval:Vn,select:e=>e.snapshots}),d=(0,Y.useMemo)(()=>Wn(u.data??[],l,s),[u.data,l,s]),f=d.some(e=>e.key===`slack`&&e.configured),p=U({...R(i),enabled:f,select:e=>e.threadMode}),m=gt(e),h=(0,Y.useCallback)(()=>r.invalidateQueries({queryKey:a}),[r,a]),g=K({mutationFn:async t=>{let n=Rn[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)}}),_=oe({assistantId:e}),v=Be({assistantId:e}),y=U({...ke(i),enabled:!!e&&s}),b=k({assistantId:e}),x=He({assistantId:e}),S=K({...ne(),onSuccess:()=>{r.invalidateQueries({queryKey:L(i)})}}),C=v.mutate,w=(0,Y.useCallback)(e=>{C(e)},[C]),T=_.mutate,E=(0,Y.useCallback)(e=>{T(e)},[T]),D=b.mutate,O=(0,Y.useCallback)((e,t)=>{D({botToken:e,appToken:t})},[D]),A=S.mutate,j=(0,Y.useCallback)(t=>{A({path:{assistant_id:e},body:{threadMode:t}})},[A,e]),M=x.mutateAsync,N=(0,Y.useCallback)(async(e,t)=>{await M({accountSid:e,authToken:t})},[M]),P=(0,Y.useCallback)((e,r=!1)=>{t&&t(n(r?Bn[e]:zn[e]))},[t,n]),F=g.mutate,I=(0,Y.useCallback)(e=>{F(e)},[F]);return{channels:d,pendingChannelKey:g.isPending?g.variables??null:null,slackThreadMode:p.data,slackThreadModePending:S.isPending,channelPolicies:m.policies,policySavingKey:m.savingKey,policiesLoading:m.isLoading,policiesError:m.isError,onChannelPolicyChange:m.onChange,onSetup:t?P:void 0,onDisconnect:I,onSaveTelegramToken:E,telegramSaveStatus:_.status,telegramSaveError:_.error?.message??null,onSaveDiscordToken:w,discordSaveStatus:v.status,discordSaveError:v.error?.message??null,discordInviteUrl:v.data?.data?.inviteUrl??y.data?.inviteUrl,onSaveSlackConfig:O,slackSaveStatus:b.status,slackSaveError:b.error?.message??null,onSlackThreadModeChange:j,onSaveTwilioCredentials:N}}function Un(e){return e?I:I.filter(e=>e!==`discord`)}function Wn(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:Gn(t),configured:V(t),canDisconnect:Rn[e]!==void 0&&(e!==`discord`||n),canManualEntry:ue[e].credentialForm!==void 0&&(e!==`discord`||n),health:t?.health,address:t?.channelHandle??void 0}})}function Gn(e){return e?e.ready?`ready`:e.setupStatus===`not_configured`?`not_configured`:`incomplete`:`not_configured`}function Kn(){let[e,t]=qe(),n=e.get(`setup`),r=n&&D(n)?n:null;return(0,Y.useEffect)(()=>{r&&t(e=>(e.delete(`setup`),e),{replace:!0})},[r,t]),r}function qn({assistantId:e,onStartSetupConversation:t}){let n=B.use.a2aChannel(),r=ye.use.name(),i=Kn(),a=xt(e),o=Me(r),s=Hn({assistantId:e,onStartSetupConversation:t});return(0,X.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-6 overflow-hidden`,children:[(0,X.jsx)(jn,{assistantId:e,assistantName:o,initialChannel:i,pluginChannels:Nn(e),...s}),n?(0,X.jsx)(yt,{onClick:a.open}):null,(0,X.jsx)(bt,{open:a.isOpen,assistantId:e,onClose:a.close})]})}function Jn(){let e=Ye(),t=N();return(0,X.jsx)(qn,{assistantId:t,onStartSetupConversation:t=>{Pe(e,{prompt:t})}},t)}export{Jn as ChannelsPageRoute};
@@ -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:`確認`,copiedAddress:`已複製`,copyAddressAriaLabel:`複製地址`,copyAddressFailed:`無法複製地址。`,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}`},_={title:`郵件設定`,description:`助理的地址以及誰可以傳訊息給它。`},v={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,emailSettingsModal:_};export{e as assistantChannelsList,t as channelAdapterList,m as channelMeta,i as channelPanel,o as channelTrustFloor,n as connectionCard,v as default,h as emailChannelSection,g as emailManagedContent,_ as emailSettingsModal,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:`正在完成設定…`,copiedAddress:`已複製`,copyAddressAriaLabel:`複製地址`,copyAddressFailed:`無法複製地址。`,domainLabel:`網域`,domainReleaseFailedToast:`釋出網域失敗。`,domainReleasedToast:`網域已釋出。`,emailRemoveFailedToast:`移除電子郵件地址失敗。`,emailRemovedToast:`電子郵件地址已移除。`,inboxSetupBody:`助理的地址在助理收件匣中建立,其郵件也在那裡閱讀。開啟收件匣以選擇地址。`,inboxSetupButton:`開啟助理收件匣`,inboxSetupTitle:`在助理收件匣中設定電子郵件`,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:`重試`,subscriptionWarningBody:`我們無法連線至帳務服務。以下表單假設您的組織已啟用受管理的電子郵件。如果未啟用,註冊網域將會失敗。`,subscriptionWarningTitle:`無法驗證訂閱狀態`,usageSummary:`今日已傳送 {sent} / {limit} · 已接收 {received}`},_={title:`郵件設定`,description:`助理的地址以及誰可以傳訊息給它。`},v={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,emailSettingsModal:_};export{e as assistantChannelsList,t as channelAdapterList,m as channelMeta,i as channelPanel,o as channelTrustFloor,n as connectionCard,v as default,h as emailChannelSection,g as emailManagedContent,_ as emailSettingsModal,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,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} 個權杖`,fullMissBody:`此回合中每個區段都已重新建立。請與上方快取差異中的上一回合進行比較,以找出變更的區塊。`,fullMissTitle:`完整快取未命中`,loadError:`無法載入請求酬載以對應快取中斷點。`,loading:`正在載入請求酬載以對應快取中斷點…`,noBreakpoints:`此請求沒有快取中斷點 - 此呼叫已停用提示快取。`,splitEstimatedNote:` 讀取/建立的劃分是根據區段大小歸因的;提供者僅報告總計。`,statusCreated:`已重新建立`,statusRead:`從快取讀取`,statusUnknown:`已快取`,title:`快取中斷點`,tokenEstimateNote:`權杖計數是根據文字長度估計的。`},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} 個權杖,其中 {segments}({percent} 已快取)。`,barSegment:`{count} {label}`,cached:`已快取`,description:`此呼叫的提示詞有多少是從提示詞快取中提供的。`,segmentCreated:`重新建立`,segmentFresh:`新輸入`,segmentRead:`從快取讀取`,statusFullMissBody:`此呼叫的提示詞均未從快取中讀取。`,statusFullMissReCreatedSuffix:` 本輪有 {count} 個權杖寫入快取,但均未被重複使用 - 這通常表示自上一輪以來,快取的前綴已變更。`,statusFullMissTitle:`快取完全未命中`,statusHealthyBody:`此呼叫的提示詞有 {percent}({count} 個權杖)是從快取中提供的。`,statusHealthyTitle:`健康的快取重複使用`,statusPartialBody:`此呼叫的提示詞有 {percent}({count} 個權杖)是從快取中提供的;其餘部分在本輪重新處理。`,statusPartialTitle:`部分快取重複使用`,title:`快取健康狀態`,unavailableNote:`此呼叫未回報提示詞快取使用情況。`,unavailableNoteForProvider:`此呼叫未回報 {provider} 的提示詞快取使用情況。`},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, 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:`上下文權杖`,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={submitFailed:`提交確認失敗。請再試一次。`,submitFailedRuleAvailable:`提交確認失敗,但您仍然可以建立規則。`},_e={allow:`允許`,deny:`拒絕`,hideDetails:`隱藏詳細資料`,showDetails:`顯示詳細資料`,titleFallback:`需要確認`,toolLabel:`工具:`},ve={saveFailed:`儲存聯絡人失敗。請再試一次。`,cancelFailed:`關閉表單失敗,請重試。`,recordCancelFailed:`關閉表單失敗,請重試。`,recordSaveFailed:`儲存聯絡人失敗,請重試。`},ye={addContact:`新增聯絡人`,addingToContact:`正在為 {name} 新增管道`,cancel:`取消`,contactSaved:`聯絡人已儲存`,enterAddress:`輸入 {channel} 位址`,namePlaceholder:`名稱`,notesLabel:`備註`,save:`儲存`,saving:`正在儲存…`,markVerified:`將此地址標記為已驗證`,markVerifiedHelp:`已驗證的地址可以向您的助手發送訊息。`},be={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}`},xe={clearContext:`清除上下文`,compactsHint:`{name} 會自動<br></br>壓縮其上下文。`,compactsHintInline:`{name} 會自動壓縮上下文`,defaultAssistantName:`您的助理`,label:`上下文視窗:`,percentFull:`已使用 {percentage}%`,ringAria:`上下文視窗已使用 {percentage}%`,title:`上下文視窗`,tokensUsed:`已使用 {used} / {max} 權杖`},Se={archive:`歸檔`,copyConversation:`複製完整對話`,copyConversationId:`複製對話 ID`,delete:`刪除`,done:`完成`,forkConversation:`分支對話`,inspect:`分析對話`,markAsDone:`標記為已完成`,markRead:`標示為已讀`,markUnread:`標示為未讀`,moveToGroup:`移至群組`,newGroup:`新增群組…`,openInNewWindow:`在新視窗中開啟`,pin:`釘選`,refresh:`重新整理`,removeFromGroup:`從群組中移除`,rename:`重新命名`,reopen:`重新開啟`,shareFeedback:`分享意見回饋`,triggerAriaLabel:`對話動作`,unarchive:`取消歸檔`,unpin:`取消釘選`},Ce={closeAriaLabel:`關閉`,title:`對話動作`},we={delete:`刪除`,downloadPdf:`下載 PDF`,exportAsVellum:`匯出為 .vellum 檔案`,open:`開啟`,optionsFor:`{name} 的選項`,pin:`釘選`,share:`分享`,unpin:`取消釘選`},Te={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 {已載入 # 個項目}}(有未查看的變更)`},Ee={caption:`試試這些建議:`},De={sendAria:`傳送:{label}`},Oe={copied:`已複製`,copy:`複製`},ke={conversationCopied:`對話 ID 已複製到剪貼簿。`,conversationFailed:`無法複製對話 ID。`,groupCopied:`群組 ID 已複製到剪貼簿。`,groupFailed:`無法複製群組 ID。`},Ae={balanceAria:`{balance} 點數`,balanceShort:`{balance} 點`,credits:`點數`},je={loginToAddCredits:`登入 Vellum 平台以新增點數。`},Me={emptyFile:`此檔案為空`,summary:`{rows, plural, other {# 列}} x {columns, plural, other {# 欄}}`,summaryTruncated:`{rows, plural, other {# 列}} x {columns, plural, other {# 欄}} (已截斷)`},Ne={skipConfirmTitle:`略過今日點數限制?`,skipError:`無法略過今日限制。請再試一次。`,skipForToday:`今日略過`,subtitle:`Vellum 點數花費已暫停,直到您的限制在 {resetPhrase} 重設。`,title:`已達每日點數限制`},Pe={acknowledgment:`我了解相關資產和記憶可能仍會保留`,cancel:`取消`,confirm:`刪除`,message:`刪除「{title}」?這將永久移除對話及其訊息。相關資產和記憶可能仍會保留。此動作無法復原。`,title:`刪除對話`},Fe={label:`此訊息已被刪除`},Ie={pdfDownloadFailed:`下載 PDF 失敗`},Le={send:`傳送`,sending:`傳送中…`},Re={addCommentPlaceholder:`新增留言…`,closeAria:`關閉留言面板`,empty:`尚無留言`,loading:`正在載入留言…`,submitFeedback:`提交意見回饋`,title:`留言`},ze={assistantMonogram:`V`,authorAssistant:`助理`,authorYou:`您`,deleteCommentAria:`刪除留言`,jumpToHighlight:`跳至醒目提示文字`,open:`開啟`,reopen:`重新開啟`,reply:`回覆`,replyPlaceholder:`撰寫回覆…`,resolve:`解決`,resolved:`已解決`},Be={openAria:`開啟 {name}`},Ve={openAria:`開啟 {name}`},He={close:`關閉`,closeDocumentAria:`關閉文件`,comments:`留言`,commentsWithOpenCount:`{count, plural, other {留言,# 則未解決}}`,export:`匯出`,menuAria:`文件選項`,rename:`重新命名`,renameFailed:`無法重新命名文件。`,renameSave:`儲存`,renameTitle:`重新命名文件`,saved:`已儲存`,saving:`正在儲存…`,wordCount:`{count, plural, other {# 個字}}`},Ue={unavailable:`無法開啟文件對話。請再試一次。`,updateRequired:`請更新助理以開始連結對話。`,prepareFailed:`無法準備文件對話。你的編輯仍然保留。`,feedbackPrompt:`請查看並處理我對「{title}」的評論。`,missing:`此文件的對話無法使用。你可以繼續編輯或開始新的連結對話。`,start:`開始連結對話`,retry:`再試一次`,back:`返回`},We={exportFailed:`匯出 PDF 失敗`,notFound:`找不到文件。`},Ge={collapse:`收合`,titleFallback:`動態內容`},Ke={cancel:`取消`,close:`關閉`,defaultError:`匯出檢查器資料失敗。`,descriptionDone:`您的下載應該已自動開始。`,descriptionError:`收集匯出資料時發生錯誤。`,descriptionRunning:`正在收集提供者酬載和標準化內容。對於較長的對話,這可能需要一些時間。`,done:`完成`,progressAriaLabel:`匯出進度`,retry:`重試`,statusDone:`完成`,statusPackaging:`正在打包 ZIP…`,statusProgress:`已完成 {completed} / {total} 次呼叫`,titleDone:`匯出完成`,titleError:`匯出失敗`,titleRunning:`正在匯出檢查器資料`},qe={diffForAria:`{path} 的差異`},Je={failed:`檔案下載失敗`},Ye={closePreviewAria:`關閉預覽`,closeTooltip:`關閉`,download:`下載`,downloadAria:`下載 {name}`,loadError:`無法載入此檔案`,overLimit:`{size},超出 {limit} 預覽限制`,tooLarge:`此檔案過大,無法預覽`,tryAgain:`再試一次`},Xe={accepted:`已接受:{types}`,dropHint:`將檔案拖曳至此,或點擊以瀏覽`,maxSize:`最大大小:{size}`,removeFile:`移除 {name}`,upload:`上傳`,uploading:`正在上傳...`},Ze={secureHint:`此值將會安全傳送,且不會儲存在您的瀏覽器中。`,selectPlaceholder:`請選擇...`},Qe={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:`保持靜止`},$e={archiveAll:`全部封存…`,copyGroupId:`複製群組 ID`,deleteGroup:`刪除群組`,deleteGroupWithConversations:`刪除群組…`,groupByChannel:`依頻道分組`,markAllAsDone:`全部標記為已完成…`,markAllRead:`全部標示為已讀`,moveSectionDown:`向下移動區段`,moveSectionUp:`向上移動區段`,rename:`重新命名`,ungroup:`取消分組`},et={title:`{name} 動作`},tt={create:`建立`,newTitle:`新增群組`,renameTitle:`重新命名群組`,save:`儲存`},nt={next:`下一步`,showMeAround:`帶我看看`,skipTour:`跳過導覽`},rt={ariaLabel:`聊天外掛程式,{count} 個啟用中`,costCaption:`變更外掛程式設定可能會產生高額費用。`,countLabel:`{count, plural, other {# 個外掛程式}}`,manage:`管理`,plugins:`外掛程式`},it={stop:`停止`},at={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 上下文檢查器`},ot={android:`語音已在 Android 應用程式中啟用。`,ios:`語音已在 iOS 應用程式中啟用。`,macos:`語音已在 Mac 應用程式中啟用。`,unknown:`語音已在其他地方啟用。`,web:`語音已在其他瀏覽器分頁中啟用。`,windows:`語音已在 Windows 應用程式中啟用。`},st={startVoiceMode:`啟動語音模式`,tooltip:`用語音模式開口交談`},ct={connecting:`正在連線…`,ending:`正在結束…`,listening:`正在聆聽…`,muted:`已靜音`,reconnecting:`正在重新連線…`,speaking:`正在說話…`,thinking:`正在思考…`,working:`正在處理…`,askUnsupported:`該助手尚不支援以此種方式提問。請更新後重試。`},lt={chipCode:`程式碼`,chipProvider:`提供者`,chipRequestId:`請求 ID`,chipStatus:`狀態`,chipType:`類型`,chipUpstreamCode:`上游程式碼`,chipUpstreamParam:`上游參數`,chipUpstreamType:`上游類型`,noResponse:`提供者拒絕了此呼叫且未傳回任何回應。`,title:`呼叫失敗`},ut={loadingAria:`正在載入 {label}`,pictureInPictureUnavailable:`子母畫面無法使用`},dt={closePreview:`關閉預覽:{filename}`,fileOptions:`檔案選項:{filename}`,openInWorkspace:`在工作區中開啟:{filename}`,openPreview:`開啟預覽:{filename}`,unavailable:`此檔案在此處無法使用`,unavailableLabel:`檔案無法使用:{filename}`,viewImage:`檢視圖片:{filename}`},ft={download:`下載`,fileActionsAria:`檔案動作`,goToFile:`前往檔案`,pictureInPicture:`子母畫面`},pt={addCredits:`新增點數`,ariaLabel:`您的點數不足。{detail}`,subtitle:`新增點數以避免中斷。`,title:`您的點數不足`},mt={body:`您的助理工作區目前已連接至偵錯終端機。在復原模式下,聊天無法使用。`,loginHint:`登入 Vellum 平台以結束復原模式。`,resume:`繼續助理`,title:`助理處於復原模式`},ht={body:`維護期間,聊天無法使用。`,goToDebug:`前往偵錯設定`,title:`助理處於復原模式`},gt={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:`使用者的訊息。`},_t={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:`注入的權杖`,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:`是`},vt={closeAria:`關閉檔案`,empty:`此訊息沒有檔案`,title:`檔案`},yt={autoRouted:`自動 · {profile}`,bookmark:`書籤`,copied:`已複製`,copy:`複製`,copyFailed:`無法複製這則訊息。`,forkFromHere:`從此處分岔`,inspect:`檢查`,loading:`朗讀中…`,openInSlack:`在 Slack 中開啟`,playFailed:`無法朗讀這則訊息。`,readAloud:`朗讀`,removeBookmark:`移除書籤`,retry:`重試`,stop:`停止`,summarizeUpToHere:`總結至此`},bt={bookmark:`書籤`,copied:`已複製`,copy:`複製`,copyFailed:`無法複製這則訊息。`,forkFromHere:`從此處分岔`,inspect:`檢查`,openInSlack:`在 Slack 中開啟`,readAloud:`朗讀`,removeBookmark:`移除書籤`,stop:`停止`,summarizeUpToHere:`總結至此`,title:`訊息動作`},xt={cancel:`取消`,continue:`繼續`,description:`語音輸入需要麥克風存取權限。音訊將由您設定的語音轉文字供應商轉錄,如果未設定供應商,則由您裝置的內建聽寫功能轉錄。`,title:`麥克風存取權限`},St={ariaLabel:`需要 API 金鑰`,body:`請在「設定」→「模型與服務」中新增 API 金鑰以開始聊天。`,dismiss:`關閉`,dismissAria:`關閉需要 API 金鑰的提示`,openSettings:`開啟設定`,title:`需要 API 金鑰`},Ct={callOfTotal:`第 {number} 個呼叫,共 {total} 個`,llmCallCount:`{count, plural, other {# 個 LLM 呼叫}}`,selectCallAria:`選擇一個 LLM 呼叫以檢查`,sheetTitle:`選擇一個呼叫`},wt={dismissAria:`關閉`,runSummary:{completed:`已完成`,failed:`失敗`,toolsFailed:`{count, plural, other {# 個工具失敗}}`,workedFor:`已執行 {duration}`,workedUnderSecond:`執行不到 1 秒`,working:`處理中`,workingFor:`處理中,已用時 {duration}`},unknownCommandNudge:`此指令無法辨識。<ruleLink>建立規則</ruleLink>以便下次分類。`,viewSteps:`檢視步驟`},Tt={checking:`正在查看{place}`,updating:`正在更新{place}`,using:`正在使用{place}`,working:`處理中`,showWorkAria:`查看目前的進度:{label}`,showStepsAria:`查看這則回覆的步驟:{summary}`,place:{files:`檔案`,terminal:`終端機`,memory:`記憶`,web:`網路`,mac:`你的 Mac`}},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:`快取權杖`,conversationSubtitle:`迄今為止所有計費 LLM 呼叫的累計總額。`,conversationTitle:`對話`,createdLabel:`建立時間`,durationLabel:`持續時間`,estimatedCostLabel:`預估費用`,failedStatus:`失敗`,firstTokenKindLabel:`首個權杖類型`,firstTokenLatencySubtitle:`此回合首個權杖回應時間的去向,由助理測量。`,firstTokenLatencyTitle:`首個權杖延遲`,inputTokensLabel:`輸入權杖`,latencyMs:`{ms} 毫秒`,loopExitReasonLabel:`迴圈結束原因`,modelLabel:`模型`,normalizedMetadataSubtitle:`提供者、模型、時間戳記和使用次數。`,normalizedMetadataTitle:`標準化中繼資料`,normalizedSummaryUnavailableSubtitle:`此呼叫仍包含原始請求和回應酬載。`,normalizedSummaryUnavailableTitle:`標準化摘要不可用`,otherLabel:`其他`,outputTokensLabel:`輸出權杖`,providerLabel:`提供者`,requestMessagesLabel:`請求訊息`,statusLabel:`狀態`,stopReasonLabel:`停止原因`,toolCallsLabel:`工具呼叫`,toolsAvailableLabel:`可用工具`,totalCostSoFarLabel:`迄今總費用`,totalToFirstTokenLabel:`至首個權杖總計`,usageSubtitle:`由助理路由標準化的權杖和呼叫次數。`,usageTitle:`用量`},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:`向您的供應商儲值或降低模型權杖限制。`,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:`正在新增…`,blockquote:`引文`,bold:`粗體`,bulletList:`項目符號清單`,code:`程式碼`,comment:`註解`,feedbackPlaceholder:`新增您的意見回饋…`,heading1:`標題 1`,heading2:`標題 2`,heading3:`標題 3`,italic:`斜體`,link:`連結`,linkAddress:`連結網址`,linkApply:`套用連結`,linkInvalid:`請輸入網址或電子郵件地址`,linkPlaceholder:`貼上或輸入連結`,linkRemove:`移除連結`,orderedList:`編號清單`,paragraph:`內文`,placeholder:`開始寫作…`,remoteEditConflict:`助理修改了您正在編輯的同一段文字,已保留您的修改,因此其部分編輯未套用。`,strike:`刪除線`,textStyle:`文字樣式:{style}`,toolbarAria:`格式`},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={selectionUnavailable:`無法讀取選取的文字。未貼上任何內容。請重新選取文字後重試;您說出的內容可供複製。`,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={title:`聊天設定`,description:`管理此助理在所有裝置上的自動完成標記和聊天回覆提醒。`,autoArchive:`自動封存聊天`,autoArchiveHelper:`將不活躍的聊天標記為已完成,包括已超過此時限的舊聊天。已完成的聊天仍保留在所有聊天中。`,timeToArchive:`封存時限`,days:`{count, plural, other {# 天}}`,notifications:`聊天回覆提醒`,notificationsHelper:`接收目前未檢視的聊天中的回覆提醒。`,cancel:`取消`,confirm:`確認`,saving:`正在儲存…`,loading:`正在載入聊天設定…`,retry:`重試`,loadError:`無法載入聊天設定。請重試。`,saveError:`無法儲存聊天設定。你的修改仍保留在此處。按下確認以重試。`,unsupported:`請更新此助理以使用聊天設定。`},qr={label:`郵件`,unpin:`取消釘選郵件`},Jr={title:`開始語音聊天?`,detail:`你使用了語音快捷鍵。麥克風將保持開啟,讓你與助理交談,即使你正在使用其他應用程式。結束通話即可停止收音。`,confirm:`繼續`,cancel:`取消`,always:`一律開始`},Yr={title:`附件與設定`,close:`關閉設定`,back:`返回`,allModes:`所有模型 · {count}`,newMode:`新增`,builtIn:`內建`,yours:`自訂`,beta:`測試版`,noModes:`沒有可用模型。`,autonomyTitle:`自主程度`,modeTitle:`模型`,loading:`載入中`,more:`更多({count})`,customHint:`自訂 · {model}`,preferencesFailed:`無法儲存偏好設定。請重試。`,saveFailed:`無法儲存此設定。請重試。`,preferencesUnavailable:`偏好設定暫時無法使用。連線恢復後請重試。`,updateRequired:`更新助理以同步偏好設定,並在第一則訊息前選擇自主程度。`,camera:`相機`,photos:`照片`,files:`檔案`,attach:`新增附件`,autonomy:{none:{label:`嚴格`,hint:`操作前先詢問。`},low:{label:`謹慎`,hint:`處理低風險工作和編輯。`},medium:{label:`寬鬆`,hint:`高風險操作前會詢問。`},high:{label:`免確認`,hint:`在存取權限範圍內自動核准。`}},modes:{auto:{hint:`為每項工作選擇模型。`},balanced:{hint:`兼顧速度、深度和費用。`},quality:{hint:`更深入,速度更慢、費用更高。`},fast:{hint:`更快、更便宜,深度較低。`},budget:{hint:`費用最低,可能遺漏細節。`},experimental:{label:`開放測試`,hint:`開源測試版,結果可能不穩定。`}},allModelsLink:`所有模型({count})`,allModelsList:`所有模型`},Xr={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,confirmationActions:ge,confirmationPromptCard:_e,contactActions:ve,contactPromptCard:ye,contactRecordCard:be,contextWindowIndicator:xe,conversationActions:Se,conversationActionsSheet:Ce,conversationAssetActions:we,conversationAssets:Te,conversationStarterDock:Ee,conversationStarterGrid:De,copyBlockSurface:Oe,copyIdToClipboard:ke,creditsCard:Ae,creditsUpsellCard:je,csvPreview:Me,dailyLimitBanner:Ne,deleteConversationConfirmDialog:Pe,deletedMessageRow:Fe,documentAssetActions:Ie,documentCommentForm:Le,documentCommentPanel:Re,documentCommentThread:ze,documentPreviewSurface:Be,documentReopenLink:Ve,documentViewerContainer:He,documentConversation:Ue,documentViewerPage:We,dynamicPageSurface:Ge,exportProgressModal:Ke,fileDiffView:qe,fileDownload:Je,filePreviewContainer:Ye,fileUploadSurface:Xe,formSurface:Ze,frameGateHud:Qe,groupActions:$e,groupActionsSheet:et,groupNameDialogFromStore:tt,inChatOnboardingController:nt,inChatPluginPill:rt,inlineProcessCard:it,inspectPage:at,liveVoiceBusy:ot,liveVoiceButton:st,liveVoiceStatus:ct,llmCallErrorCard:lt,localFileEmbed:ut,localFileLink:dt,localFileMenu:ft,lowBalanceBanner:pt,maintenanceModeBanner:mt,maintenanceRecoveryCard:ht,memoryRouterPlaygroundPage:gt,memoryTab:_t,messageFilesPanel:vt,messageHoverActions:yt,messageLongPressActions:bt,micPermissionPrimer:xt,missingApiKeyBanner:St,mobileCallSelector:Ct,multiActivityGroup:wt,quietTurnProgress: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,chatsSettingsModal:Kr,emailNavItem:qr,voiceShortcutConfirmation:Jr,composerConfiguration:Yr};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,Kr as chatsSettingsModal,ce as choiceSurface,le as cleanupScreen,zr as coachmarkPress,ue as collapsedGroupIcon,de as compactionCircuitOpenBanner,fe as compactionTab,Yr as composerConfiguration,pe as composerDraftNotices,me as composerNotices,he as composerSecretNotice,d as computerUseScreenshotPreview,ge as confirmationActions,_e as confirmationPromptCard,ve as contactActions,ye as contactPromptCard,be as contactRecordCard,xe as contextWindowIndicator,Se as conversationActions,Ce as conversationActionsSheet,we as conversationAssetActions,Te as conversationAssets,Ee as conversationStarterDock,De as conversationStarterGrid,Oe as copyBlockSurface,ke as copyIdToClipboard,Ae as creditsCard,je as creditsUpsellCard,Me as csvPreview,Ne as dailyLimitBanner,Xr as default,Pe as deleteConversationConfirmDialog,Fe as deletedMessageRow,Vr as desktopHelpCard,Ie as documentAssetActions,t as documentChat,Le as documentCommentForm,Re as documentCommentPanel,ze as documentCommentThread,Ue as documentConversation,Be as documentPreviewSurface,Ve as documentReopenLink,He as documentViewerContainer,We as documentViewerPage,Ge as dynamicPageSurface,qr as emailNavItem,Z as emailReferenceCard,X as emailReferenceChip,Ke as exportProgressModal,qe as fileDiffView,Je as fileDownload,Ye as filePreviewContainer,Xe as fileUploadSurface,Ze as formSurface,Qe as frameGateHud,Gr as freeTierDailyLimitBanner,$e as groupActions,et as groupActionsSheet,tt as groupNameDialogFromStore,nt as inChatOnboardingController,rt as inChatPluginPill,it as inlineProcessCard,at as inspectPage,ot as liveVoiceBusy,st as liveVoiceButton,ct as liveVoiceStatus,lt as llmCallErrorCard,ut as localFileEmbed,dt as localFileLink,ft as localFileMenu,pt as lowBalanceBanner,mt as maintenanceModeBanner,ht as maintenanceRecoveryCard,c as markAllDoneConfirmDialog,gt as memoryRouterPlaygroundPage,_t as memoryTab,vt as messageFilesPanel,yt as messageHoverActions,bt as messageLongPressActions,xt as micPermissionPrimer,St as missingApiKeyBanner,Ct as mobileCallSelector,l as mobileDetailSheet,wt 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,Tt as quietTurnProgress,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,Jr as voiceShortcutConfirmation,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};