@vellumai/web 0.11.6-staging.1 → 0.11.6-staging.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. package/dist/assets/{Trans-aGiJoe8I.js → Trans-CBhhVbOk.js} +1 -1
  2. package/dist/assets/{about-page-ZnkPsf0U.js → about-page-hURQzaZb.js} +1 -1
  3. package/dist/assets/{account-page-CdyM1iwP.js → account-page-BUHRzIQn.js} +1 -1
  4. package/dist/assets/{acp-run-detail-panel-zRE7-vdm.js → acp-run-detail-panel-CVPDXyP6.js} +1 -1
  5. package/dist/assets/{activity-steps-panel-nbxTKOVk.js → activity-steps-panel-BzTDFCQ4.js} +1 -1
  6. package/dist/assets/{add-credential-modal-BATaEuxb.js → add-credential-modal-aeUdZtSp.js} +1 -1
  7. package/dist/assets/{add-credits-modal-DooRKUbe.js → add-credits-modal-CtS-PzoH.js} +1 -1
  8. package/dist/assets/{ai-page-DPbjFKx7.js → ai-page-C6zXOVyP.js} +1 -1
  9. package/dist/assets/{android-billing-handoff-Ds3DxpCc.js → android-billing-handoff-BoSQm4gg.js} +1 -1
  10. package/dist/assets/{api-key-screen-99woWR1P.js → api-key-screen-DauZKmq9.js} +1 -1
  11. package/dist/assets/{app-card-B4Qtpfzx.js → app-card-B5AFFdUO.js} +1 -1
  12. package/dist/assets/{assistant-status-panel-Des4OppH.js → assistant-status-panel-DYkXgK0D.js} +1 -1
  13. package/dist/assets/{auth-store-BS_AckaH.js → auth-store-BVjw4Y6z.js} +2 -2
  14. package/dist/assets/{auth-welcome-screen-D1S5M2Kh.js → auth-welcome-screen-DbDu2DKV.js} +1 -1
  15. package/dist/assets/{avatar-random-yqbTVEOu.js → avatar-random-BOjdaclE.js} +1 -1
  16. package/dist/assets/background-task-detail-panel-BWAwy3I3.js +1 -0
  17. package/dist/assets/{billing-page-DOEkieS2.js → billing-page-FxI0W3-_.js} +3 -3
  18. package/dist/assets/{bookmarks-page-BFaVU7b4.js → bookmarks-page-6p-UochF.js} +1 -1
  19. package/dist/assets/{browser-FhK1jedq.js → browser-BaGW19xY.js} +2 -2
  20. package/dist/assets/{build-state-D823nCLC.js → build-state-ChDL0BPH.js} +1 -1
  21. package/dist/assets/{bundle-confirm-page-DZnoSjc9.js → bundle-confirm-page-9jTfMrek.js} +1 -1
  22. package/dist/assets/{channels-page-route-_rDah3g9.js → channels-page-route-DBtIRtsL.js} +1 -1
  23. package/dist/assets/{chat-DWHDLB4P.js → chat-4LXYoAUR.js} +2 -2
  24. package/dist/assets/{chat-D5S5-COJ.js → chat-BG7p3zq1.js} +2 -2
  25. package/dist/assets/{chat-BdKZmBwG.js → chat-Bfo3dMB3.js} +1 -1
  26. package/dist/assets/{chat-avatar-CHLuqAEg.js → chat-avatar-DM2DBsml.js} +1 -1
  27. package/dist/assets/{chat-markdown-message-_z6qxnqG.js → chat-markdown-message-CTuuKxjN.js} +1 -1
  28. package/dist/assets/{checkout-continuation-DlHd_nON.js → checkout-continuation-LLv0HLko.js} +1 -1
  29. package/dist/assets/{checkout-page-Ch_IEvCI.js → checkout-page-B14XHmIb.js} +1 -1
  30. package/dist/assets/checkout-return-target-BX6588K4.js +1 -0
  31. package/dist/assets/{client-perf-CLY3_q_D.js → client-perf-CL-Sfpnu.js} +1 -1
  32. package/dist/assets/{command-palette-k80zjQSl.js → command-palette-C0x3z7aQ.js} +1 -1
  33. package/dist/assets/{command-palette-window-page-DqlKENK8.js → command-palette-window-page-BShi7rwo.js} +1 -1
  34. package/dist/assets/common-C7YGlfJZ.js +1 -0
  35. package/dist/assets/common-DFfCPRFe.js +1 -0
  36. package/dist/assets/{community-page-nbMgxomH.js → community-page-ChiOX6Op.js} +1 -1
  37. package/dist/assets/{companion-surface-page-Ch88Na9Y.js → companion-surface-page-HYtLs0-t.js} +1 -1
  38. package/dist/assets/{composer-settings-LrZeVSAJ.js → composer-settings-BCehrZgj.js} +1 -1
  39. package/dist/assets/{connect-page-DASZ4VQs.js → connect-page-tyHxf7TL.js} +1 -1
  40. package/dist/assets/{consent-controls-BPQTRctP.js → consent-controls-C7U2N-h8.js} +1 -1
  41. package/dist/assets/consent-cuDRWUkB.js +1 -0
  42. package/dist/assets/{contacts-gateway-MKSgXEZy.js → contacts-gateway-BLGKdcif.js} +1 -1
  43. package/dist/assets/{contacts-page-route-BnRkVN9h.js → contacts-page-route-KVjx4fqm.js} +1 -1
  44. package/dist/assets/{conversation-cache-Cso4_Bep.js → conversation-cache-CrybogTL.js} +1 -1
  45. package/dist/assets/{conversation-navigation-CmHzY4Xq.js → conversation-navigation-Ck_iLhjv.js} +1 -1
  46. package/dist/assets/{conversation-queries-BF8k8u33.js → conversation-queries-Clrll8jF.js} +1 -1
  47. package/dist/assets/{conversation-selection-ISP-GEpt.js → conversation-selection-BVLi6RIL.js} +1 -1
  48. package/dist/assets/{copy-to-clipboard-B078_jza.js → copy-to-clipboard-Blihejp9.js} +1 -1
  49. package/dist/assets/{credential-entry-page-BPFHyo8L.js → credential-entry-page-Cs6FHnUn.js} +1 -1
  50. package/dist/assets/{credentials-page-DeWI9q-0.js → credentials-page-D8G-44GI.js} +1 -1
  51. package/dist/assets/{csv-preview-CqWvdRkQ.js → csv-preview-rpZix2b7.js} +1 -1
  52. package/dist/assets/debug-page-BMqKvkSo.js +4 -0
  53. package/dist/assets/{deploy-dialogs-6g154vY-.js → deploy-dialogs-DqkTJUGk.js} +1 -1
  54. package/dist/assets/{deploy-store-Cz20nHuj.js → deploy-store-FijtU8HL.js} +1 -1
  55. package/dist/assets/detail-panel-stop-button-ClfJeo-s.js +1 -0
  56. package/dist/assets/{developer-page-Dc5sQTEA.js → developer-page-C7o31rYB.js} +1 -1
  57. package/dist/assets/{diagnostics-CDY7BQoh.js → diagnostics-BC7vRbDB.js} +1 -1
  58. package/dist/assets/{dictation-overlay-page-DSdKbYyc.js → dictation-overlay-page-sfEwzU14.js} +1 -1
  59. package/dist/assets/{doctor-handoff-store-DQO1EjVy.js → doctor-handoff-store-DEirTOZw.js} +1 -1
  60. package/dist/assets/{document-viewer-container-BtW95bF_.js → document-viewer-container-yyhVIyAB.js} +2 -2
  61. package/dist/assets/{document-viewer-page-UdVOXLpf.js → document-viewer-page-Co_sxuvK.js} +1 -1
  62. package/dist/assets/effective-timezone-BW38Gdmx.js +1 -0
  63. package/dist/assets/{emails-page-UnMnEidw.js → emails-page-a1sfkbkL.js} +1 -1
  64. package/dist/assets/{esm-Dn6OqJ4P.js → esm-BTQ42Hgz.js} +2 -2
  65. package/dist/assets/{esm-B7hQuLYV.js → esm-BnXPDdij.js} +2 -2
  66. package/dist/assets/{esm-BN5PWtBB.js → esm-CC077SPL.js} +2 -2
  67. package/dist/assets/{esm-B9__Mvsi.js → esm-CbZfwR7m.js} +2 -2
  68. package/dist/assets/esm-DA5sciAy.js +2 -0
  69. package/dist/assets/{esm-aHElu69l.js → esm-DbODHbQp.js} +2 -2
  70. package/dist/assets/{esm-Bcw5HdPN.js → esm-Doko4a-G.js} +2 -2
  71. package/dist/assets/{external-anchor-Bkm-fDSc.js → external-anchor-CJ2uCBN2.js} +1 -1
  72. package/dist/assets/{feed-item-status-actions-BHvscGQu.js → feed-item-status-actions-Bw41rlaj.js} +1 -1
  73. package/dist/assets/{file-editor-C9OAvqwA.js → file-editor-Cx3p3Rxf.js} +1 -1
  74. package/dist/assets/{file-markdown-B2klOAQg.js → file-markdown-D43Nsqm2.js} +1 -1
  75. package/dist/assets/{first-run-scope-DJpBBdJm.js → first-run-scope-DITgHc6G.js} +1 -1
  76. package/dist/assets/{format-usd-RiDwg_QI.js → format-usd-Be34KtzB.js} +1 -1
  77. package/dist/assets/{funnel-events-BtXh2plQ.js → funnel-events-Dl6Nt7nA.js} +1 -1
  78. package/dist/assets/{general-page-DN_w4TPU.js → general-page-rg_u_yPE.js} +1 -1
  79. package/dist/assets/{get-memory-stats-O7uGD6O3.js → get-memory-stats-DxspWLxk.js} +1 -1
  80. package/dist/assets/{haptics-DvIfvjqC.js → haptics-BS-glrYv.js} +2 -2
  81. package/dist/assets/{hatching-screen-2q8r9puV.js → hatching-screen-8lXCy9WG.js} +1 -1
  82. package/dist/assets/{home-page-route-c2TGfb6a.js → home-page-route-QunjBmtS.js} +1 -1
  83. package/dist/assets/{hosting-screen-CbyH6Atk.js → hosting-screen-B-5gejYX.js} +1 -1
  84. package/dist/assets/{i18n-DmTrjH8B.js → i18n-BtV8MCsZ.js} +3 -3
  85. package/dist/assets/{identity-KKhytdTo.js → identity-_6tLszkL.js} +1 -1
  86. package/dist/assets/{identity-page-route-D-3xzuIC.js → identity-page-route-B0XGpYIE.js} +1 -1
  87. package/dist/assets/index-C9XKdblY.css +2 -0
  88. package/dist/assets/{index-mFpsjcJ6.js → index-Gjnx86x6.js} +3 -3
  89. package/dist/assets/{ingest-CU_Li3h3.js → ingest-OJG7HVUh.js} +1 -1
  90. package/dist/assets/{inspect-page-DKPQ27do.js → inspect-page-bs_j1c9j.js} +3 -3
  91. package/dist/assets/{integrations-page-Bq0sWlli.js → integrations-page-D7ENik74.js} +1 -1
  92. package/dist/assets/{intelligence-layout-f5wyMaIl.js → intelligence-layout-gaexcakY.js} +1 -1
  93. package/dist/assets/{invalidate-memory-queries-Br8jTINF.js → invalidate-memory-queries-DWuNUXFq.js} +1 -1
  94. package/dist/assets/{latest-assistant-text-Dced2okE.js → latest-assistant-text-DCyUvxgH.js} +1 -1
  95. package/dist/assets/{library-detail-page-BOc9XP2T.js → library-detail-page-DXCZhY4s.js} +1 -1
  96. package/dist/assets/{library-page-Cu_cukyn.js → library-page-CKAu2a08.js} +1 -1
  97. package/dist/assets/{local-runtime-upgrade-w4ASPcze.js → local-runtime-upgrade-BXc9x-7Y.js} +1 -1
  98. package/dist/assets/{login-flow-DsNuV6DN.js → login-flow-CrSxmLFE.js} +1 -1
  99. package/dist/assets/{login-page-DpsjjRMr.js → login-page-uUo0uRmJ.js} +1 -1
  100. package/dist/assets/{logout-page-Cmz7sbQo.js → logout-page-BYZfOpa1.js} +1 -1
  101. package/dist/assets/{logs-layout-C1Fe6XzX.js → logs-layout-B34XKM-k.js} +1 -1
  102. package/dist/assets/{markdown-preview-DjFhlkUi.js → markdown-preview-eCDa4paC.js} +1 -1
  103. package/dist/assets/{media-preview-D4MG8kYt.js → media-preview-1xn1SAn9.js} +1 -1
  104. package/dist/assets/{memory-page-route-DRbOMySi.js → memory-page-route-DiVaW98S.js} +1 -1
  105. package/dist/assets/{memory-router-playground-page-BdMCdqle.js → memory-router-playground-page-DgILWgQu.js} +1 -1
  106. package/dist/assets/{message-files-panel-Fxs-rmt5.js → message-files-panel-Bv-5dvcD.js} +1 -1
  107. package/dist/assets/{messages-D29Jnu8v.js → messages-BXHTKK_v.js} +1 -1
  108. package/dist/assets/native-anchor-CmnMg6B6.js +1 -0
  109. package/dist/assets/{native-biometric-B2BCv4UL.js → native-biometric-DEP8Sr4X.js} +1 -1
  110. package/dist/assets/{native-file-DhgAhuFu.js → native-file-DlQtjxJn.js} +2 -2
  111. package/dist/assets/{navigation-resolver-CkRFZvMW.js → navigation-resolver-CRsrd5gh.js} +1 -1
  112. package/dist/assets/{not-found-D0BBLotb.js → not-found-BXR_4Uja.js} +1 -1
  113. package/dist/assets/{notifications-28pbXqp8.js → notifications-Dcgkgn8Q.js} +1 -1
  114. package/dist/assets/{notifications-page-KaEKT5jM.js → notifications-page-CSH6gHaX.js} +1 -1
  115. package/dist/assets/{oauth-complete-page-C6qCszaI.js → oauth-complete-page-Bh6VG8SS.js} +1 -1
  116. package/dist/assets/{oauth-popup-complete-page-BLcrBAUt.js → oauth-popup-complete-page-6YLSOCV_.js} +1 -1
  117. package/dist/assets/{onboarding-store-CvgTQIIF.js → onboarding-store-BhT1z8Wi.js} +1 -1
  118. package/dist/assets/{open-workspace-file-BTTUgCt1.js → open-workspace-file-fIr0qcsc.js} +2 -2
  119. package/dist/assets/{operational-status-BZXW6I_s.js → operational-status-BdcYEcTh.js} +1 -1
  120. package/dist/assets/{pairing-page-CqEOn5rN.js → pairing-page-fVI54lsD.js} +1 -1
  121. package/dist/assets/{pdf-file-preview-uKdLOqN0.js → pdf-file-preview-BjbSLoD9.js} +1 -1
  122. package/dist/assets/{pdf-preview-CSMjNQyq.js → pdf-preview-xa07R01f.js} +2 -2
  123. package/dist/assets/{personality-page-2sZ6-R9f.js → personality-page-CK3vkhkl.js} +1 -1
  124. package/dist/assets/{plans-page-oZu0oBkq.js → plans-page-CuZeAQhx.js} +1 -1
  125. package/dist/assets/{platform-detection-BBpg4tha.js → platform-detection-DUeD4WFO.js} +1 -1
  126. package/dist/assets/{platform-login-notice-CWwlTxPN.js → platform-login-notice-B2ZwcEYp.js} +1 -1
  127. package/dist/assets/{platform-loopback-page-C9OvnmnD.js → platform-loopback-page-CMnaXj8y.js} +1 -1
  128. package/dist/assets/{prefs-BaoT5tM9.js → prefs-CAMw44jD.js} +1 -1
  129. package/dist/assets/{preview-skeleton-YDIO2gF1.js → preview-skeleton-CLI9ptyu.js} +1 -1
  130. package/dist/assets/{privacy-page-Dvb2GtB0.js → privacy-page-D-a7l0YY.js} +1 -1
  131. package/dist/assets/{privacy-screen-Bqv76Nq2.js → privacy-screen-CxwxgE4s.js} +1 -1
  132. package/dist/assets/{provider-callback-page-Ce2jTkvh.js → provider-callback-page-65a2DK0l.js} +1 -1
  133. package/dist/assets/{provider-key-CMNgoPPW.js → provider-key-CcPF1Zqp.js} +1 -1
  134. package/dist/assets/{provider-signup-page-D7KPQDTx.js → provider-signup-page-BC86aF7W.js} +1 -1
  135. package/dist/assets/{provisioning-targets-BwwKG7Vs.js → provisioning-targets-CE25g21J.js} +1 -1
  136. package/dist/assets/{push-registration-Def6tMwq.js → push-registration-D0zDMpTx.js} +2 -2
  137. package/dist/assets/{quick-input-page-D3EbU-FY.js → quick-input-page-DAf2lbri.js} +1 -1
  138. package/dist/assets/{remove-from-device-dialog-BbJRKUXj.js → remove-from-device-dialog-CXmGFbKk.js} +1 -1
  139. package/dist/assets/{research-facts-xwTtzOsw.js → research-facts-gT4POsZw.js} +1 -1
  140. package/dist/assets/{research-mock-page-C-vd6Js2.js → research-mock-page-B41v4MzE.js} +1 -1
  141. package/dist/assets/{research-onboarding-route-CNAu2dNs.js → research-onboarding-route-CbZ14lCf.js} +1 -1
  142. package/dist/assets/{research-results-view-Jw7TJTaZ.js → research-results-view-BHXLkoKK.js} +1 -1
  143. package/dist/assets/{retire-confirm-dialog-RkS3NvLp.js → retire-confirm-dialog-1nxn6f4M.js} +1 -1
  144. package/dist/assets/{review-terms-screen-BWgeEqds.js → review-terms-screen-BsDHdmoO.js} +1 -1
  145. package/dist/assets/{routes-eT5q78xz.js → routes-Cly3ytK4.js} +9 -9
  146. package/dist/assets/{runtime-upgrade-banner-z2o_sHZe.js → runtime-upgrade-banner-DC63rkQ7.js} +2 -2
  147. package/dist/assets/{sandbox-bridge-lNdpH-lI.js → sandbox-bridge-DSJSIgUC.js} +1 -1
  148. package/dist/assets/{schedules-CKSTyNa5.js → schedules-BZzuRuQs.js} +1 -1
  149. package/dist/assets/{schedules-qIwqn-CD.js → schedules-DVOFbt86.js} +1 -1
  150. package/dist/assets/{schedules-page-DW7XjHcT.js → schedules-page-CjqAP78z.js} +1 -1
  151. package/dist/assets/{section-membership-Bdo3i5eu.js → section-membership-Bma0R_Bn.js} +1 -1
  152. package/dist/assets/{select-assistant-screen-k386tZII.js → select-assistant-screen-CV_3BKEH.js} +1 -1
  153. package/dist/assets/{self-hosted-servers-BDgPxWVB.js → self-hosted-servers-BMPYPayb.js} +1 -1
  154. package/dist/assets/settings-BggpKBtA.js +3 -0
  155. package/dist/assets/settings-DSeJ7uGb.js +3 -0
  156. package/dist/assets/{settings-layout-Y_R4_NQY.js → settings-layout-CDRF6b06.js} +1 -1
  157. package/dist/assets/{settings-navigation-BoSIdnWk.js → settings-navigation-DyFIJJGF.js} +1 -1
  158. package/dist/assets/{share-feedback-modal-BEya0Yqs.js → share-feedback-modal-TnZsiNw9.js} +2 -2
  159. package/dist/assets/{sidebar-tree-CdM-vr-W.js → sidebar-tree-Y1RDeJ9E.js} +1 -1
  160. package/dist/assets/{signup-page-DmElIotT.js → signup-page-DRzsOblS.js} +1 -1
  161. package/dist/assets/{site-favicon-BedPYfUd.js → site-favicon-DLf2W4xi.js} +1 -1
  162. package/dist/assets/{skill-detail-page-DyHeyxn6.js → skill-detail-page-3Wiz9A7q.js} +1 -1
  163. package/dist/assets/{skill-detail-panel-HctOj1h8.js → skill-detail-panel-DbLFuSyn.js} +1 -1
  164. package/dist/assets/{skills-v0VHK5y6.js → skills-DASSBxT-.js} +1 -1
  165. package/dist/assets/{sound-manager-DYTGIzjx.js → sound-manager-D8p3_c3W.js} +1 -1
  166. package/dist/assets/{sounds-page-BtxsdG4G.js → sounds-page-CWBPL1YA.js} +1 -1
  167. package/dist/assets/{start-screen-C7dTCePQ.js → start-screen-OMf-yHG3.js} +1 -1
  168. package/dist/assets/status-badge-pill-MTA2Lfk-.js +1 -0
  169. package/dist/assets/{stt-language-picker-modal-BPtrOwPj.js → stt-language-picker-modal-CmeO8yxD.js} +1 -1
  170. package/dist/assets/{subagent-detail-panel--dEqnU_m.js → subagent-detail-panel-CUW2rBET.js} +1 -1
  171. package/dist/assets/{subagent-store-Dl-mIb0t.js → subagent-store-BcbcFnS8.js} +1 -1
  172. package/dist/assets/{superpowers-page-DfnfxMoY.js → superpowers-page-CuvXfGPO.js} +1 -1
  173. package/dist/assets/{swipe-action-reveal-DgsLJylW.js → swipe-action-reveal-BhA-hrfj.js} +1 -1
  174. package/dist/assets/{system-events-page-CQz3l7aH.js → system-events-page-tEAEdDzA.js} +1 -1
  175. package/dist/assets/{telegram-setup-wizard-CUbUmp6W.js → telegram-setup-wizard-BT6u6vcb.js} +1 -1
  176. package/dist/assets/{text-preview-DwBFvH3m.js → text-preview-qkra1xEh.js} +1 -1
  177. package/dist/assets/{theme-preferences-DIV1b2y-.js → theme-preferences-ysFQ1QCN.js} +1 -1
  178. package/dist/assets/{theme-stage-page-CGtNZKJ0.js → theme-stage-page-DiqUiOmJ.js} +1 -1
  179. package/dist/assets/{threshold-presets-d4-WHyc0.js → threshold-presets-DF7FTTlD.js} +1 -1
  180. package/dist/assets/{tiptap-document-editor-CRVXDMaT.js → tiptap-document-editor-sg7gdh_H.js} +1 -1
  181. package/dist/assets/{tool-detail-panel-DZ84LNQz.js → tool-detail-panel-BR3PsmdK.js} +1 -1
  182. package/dist/assets/{transcript-message-body-shared-BWxl7fY-.js → transcript-message-body-shared-DWzxxSaD.js} +1 -1
  183. package/dist/assets/{trust-rules-api-DiTTv8Xh.js → trust-rules-api-eZhPplXW.js} +1 -1
  184. package/dist/assets/{upgrade-cancel-page-Ea5Sph4r.js → upgrade-cancel-page-pljx8YOz.js} +1 -1
  185. package/dist/assets/{upgrade-success-page-BnRSiTpn.js → upgrade-success-page-CJUETwIe.js} +1 -1
  186. package/dist/assets/{use-app-theme-C1S3mjC9.js → use-app-theme-CaWLhQW_.js} +1 -1
  187. package/dist/assets/{use-assistant-avatar-BJgMIWOW.js → use-assistant-avatar-C2TgszRj.js} +1 -1
  188. package/dist/assets/{use-assistant-capability-DMm0QlXl.js → use-assistant-capability-De-35T6E.js} +1 -1
  189. package/dist/assets/{use-assistant-identity-details-CxMeMMyX.js → use-assistant-identity-details-rXIIiXr1.js} +1 -1
  190. package/dist/assets/{use-attachment-preview-CBeM5b0S.js → use-attachment-preview-BAX_ivri.js} +2 -2
  191. package/dist/assets/{use-attachment-squares-C-bgyqWz.js → use-attachment-squares-rU9s8st8.js} +1 -1
  192. package/dist/assets/{use-bookmarks-FrEqnEhr.js → use-bookmarks-BrjNq3T_.js} +1 -1
  193. package/dist/assets/{use-checkout-dismiss-refresh-DFe-xI7y.js → use-checkout-dismiss-refresh-CjgC7Pck.js} +1 -1
  194. package/dist/assets/{use-command-palette-sections-PE4jpcjb.js → use-command-palette-sections-tRUwMswg.js} +1 -1
  195. package/dist/assets/{use-copy-to-clipboard-81gBKimW.js → use-copy-to-clipboard-B4c7SAc-.js} +1 -1
  196. package/dist/assets/{use-edge-swipe-DKTO3Cv4.js → use-edge-swipe-CCn4_Vm3.js} +1 -1
  197. package/dist/assets/{use-edge-swipe-back-CyCOlcdD.js → use-edge-swipe-back-xU9GuipH.js} +2 -2
  198. package/dist/assets/{use-edit-app-BhH9qfzH.js → use-edit-app-DDA6_WrI.js} +1 -1
  199. package/dist/assets/{use-effective-timezone-fVManBSH.js → use-effective-timezone-BfyKw5_H.js} +1 -1
  200. package/dist/assets/{use-invite-link-dialog-BN8Wpu4s.js → use-invite-link-dialog-CvA_-72H.js} +1 -1
  201. package/dist/assets/{use-is-org-ready-BKgGDOej.js → use-is-org-ready-B6oCKWeF.js} +1 -1
  202. package/dist/assets/{use-onboarding-login-5Y1lz16z.js → use-onboarding-login-CJ6HY3Pk.js} +1 -1
  203. package/dist/assets/{use-platform-assistant-id-ozCBrdTi.js → use-platform-assistant-id-DwSyMaOn.js} +1 -1
  204. package/dist/assets/{use-platform-gate-BGciIhS7.js → use-platform-gate-s29eeyq-.js} +1 -1
  205. package/dist/assets/{use-return-to-short-circuit-D44uvNf1.js → use-return-to-short-circuit-Bx5s2Syg.js} +1 -1
  206. package/dist/assets/{use-save-twilio-credentials-DKSM1mRw.js → use-save-twilio-credentials-Zjhi1c0P.js} +1 -1
  207. package/dist/assets/{use-side-list-room-C6Z5u28A.js → use-side-list-room-BT-2EM5d.js} +1 -1
  208. package/dist/assets/{use-skill-actions-BVDaCf6_.js → use-skill-actions-BtnAACsE.js} +1 -1
  209. package/dist/assets/{use-skill-detail-files-DG06yE_k.js → use-skill-detail-files-B_E6xY9x.js} +1 -1
  210. package/dist/assets/{use-sticky-profiles-BKE8FjEv.js → use-sticky-profiles-DpkWeMmN.js} +1 -1
  211. package/dist/assets/{use-stt-language-selection-Gm1f-ivf.js → use-stt-language-selection-BWJdaCRu.js} +1 -1
  212. package/dist/assets/{use-subagent-card-data-Dy4-aRfP.js → use-subagent-card-data-CfuRPesp.js} +1 -1
  213. package/dist/assets/{use-swipe-horizontal-DZyIbuDo.js → use-swipe-horizontal-B9YOWcB6.js} +1 -1
  214. package/dist/assets/use-transcript-message-by-id-DfWH7JRN.js +1 -0
  215. package/dist/assets/{use-transcript-messages-BB1rO2uq.js → use-transcript-messages-CFkvE46_.js} +1 -1
  216. package/dist/assets/{use-voice-sample-preview-Bv8Lpoi6.js → use-voice-sample-preview-B8HUywXz.js} +1 -1
  217. package/dist/assets/{viewer-store-BSA96yyy.js → viewer-store-CHptQmkY.js} +1 -1
  218. package/dist/assets/{voice-page-8wEr3tXP.js → voice-page-Dgcf5OOp.js} +1 -1
  219. package/dist/assets/{voice-providers-note-DJFMA5E4.js → voice-providers-note-nJKW4coW.js} +1 -1
  220. package/dist/assets/{weather-forecast-display-BdKore4p.js → weather-forecast-display-_NYO0wBC.js} +1 -1
  221. package/dist/assets/{web-CQAP3XpT.js → web-C_sL6qhW.js} +1 -1
  222. package/dist/assets/{web-BANE7hLi.js → web-iI5WHtNC.js} +1 -1
  223. package/dist/assets/{welcome-screen-BCDDdfJj.js → welcome-screen-DK4_01J3.js} +1 -1
  224. package/dist/assets/workflow-detail-panel-TqYAg0bB.js +1 -0
  225. package/dist/assets/{workflow-store-JtZ4LqGp.js → workflow-store-DH4q15s9.js} +1 -1
  226. package/dist/assets/{workspace-page-BhDvGikQ.js → workspace-page-Dbwb2RCx.js} +1 -1
  227. package/dist/assets/{workspace-tree-query-Dn-Kjfzx.js → workspace-tree-query-DnEMWZ1K.js} +1 -1
  228. package/dist/index.html +99 -99
  229. package/package.json +1 -1
  230. package/dist/assets/background-task-detail-panel-BLiP5JQ4.js +0 -1
  231. package/dist/assets/checkout-return-target-B_TPDEoT.js +0 -1
  232. package/dist/assets/common-C3fO0bj9.js +0 -1
  233. package/dist/assets/common-DH_hAtEx.js +0 -1
  234. package/dist/assets/consent-BLSEyXFF.js +0 -1
  235. package/dist/assets/debug-page-BbaKlAFm.js +0 -4
  236. package/dist/assets/effective-timezone-CxitKH1O.js +0 -1
  237. package/dist/assets/esm-BktaByj8.js +0 -2
  238. package/dist/assets/index-DC3kfiz5.css +0 -2
  239. package/dist/assets/native-anchor-CKzrSOXb.js +0 -1
  240. package/dist/assets/settings-BIPnhjK7.js +0 -3
  241. package/dist/assets/settings-Cm4c97nK.js +0 -3
  242. package/dist/assets/status-badge-pill-Baw4Cqvw.js +0 -1
  243. package/dist/assets/use-transcript-message-by-id-J-Bidsvj.js +0 -1
  244. package/dist/assets/workflow-detail-panel-DPJZRzuN.js +0 -1
  245. /package/dist/assets/{account-CO0-PUz1.js → account-Cs9SXbU1.js} +0 -0
  246. /package/dist/assets/{account-B-1qvljd.js → account-DWeaNEN6.js} +0 -0
  247. /package/dist/assets/{app-types-vvZ3vl-x.js → app-types-CpnkPGh8.js} +0 -0
  248. /package/dist/assets/{archive-redirect-page-CBu8tqAW.js → archive-redirect-page-DXqjPmpK.js} +0 -0
  249. /package/dist/assets/{billing-redirect-page-D9L0pZBO.js → billing-redirect-page-l6nC_qa5.js} +0 -0
  250. /package/dist/assets/{build.umd-CUOzCO1S.js → build.umd-DjyW4NzX.js} +0 -0
  251. /package/dist/assets/{channels-CPESg8oh.js → channels-DU7UcoR_.js} +0 -0
  252. /package/dist/assets/{channels-C01LAA9n.js → channels-P8K1t248.js} +0 -0
  253. /package/dist/assets/{contacts-Czi7DI1x.js → contacts-CotcPejk.js} +0 -0
  254. /package/dist/assets/{contacts-B34lrFQP.js → contacts-E-8UOrGK.js} +0 -0
  255. /package/dist/assets/{credential-requests-CuDbx69F.js → credential-requests-BsHMMFoG.js} +0 -0
  256. /package/dist/assets/{credential-requests-B5yQSkNQ.js → credential-requests-D74qo-et.js} +0 -0
  257. /package/dist/assets/{danger-zone-redirect-page-DaCIFrKn.js → danger-zone-redirect-page-Cds_krO3.js} +0 -0
  258. /package/dist/assets/{definitions-DjyY9gkh.js → definitions-BKQ6A5IV.js} +0 -0
  259. /package/dist/assets/{definitions-CPdqKyW-.js → definitions-Bi8Nex3B.js} +0 -0
  260. /package/dist/assets/{detail-drawer-BoNujeL5.js → detail-drawer-D-CPwyBO.js} +0 -0
  261. /package/dist/assets/{devices-redirect-page-C6dlSkhY.js → devices-redirect-page-CeKwKvN-.js} +0 -0
  262. /package/dist/assets/{emoji-catalog-data-Io_Or5q_.js → emoji-catalog-data-81v3IYMV.js} +0 -0
  263. /package/dist/assets/{environment-store-DEyTyd0y.js → environment-store-DKl9RR50.js} +0 -0
  264. /package/dist/assets/{esm-CYQaGt0k.js → esm-BAE-_6f7.js} +0 -0
  265. /package/dist/assets/{esm-CNQNviBl.js → esm-KUiHjb53.js} +0 -0
  266. /package/dist/assets/{esm-ORlwcEKV.js → esm-uRwymN1a.js} +0 -0
  267. /package/dist/assets/{home-BlYbenJA.js → home-C5CVL0Ta.js} +0 -0
  268. /package/dist/assets/{home-DLr3UreM.js → home-QpGM3cDE.js} +0 -0
  269. /package/dist/assets/{intelligence-CmTIvIK5.js → intelligence-DNb2No5j.js} +0 -0
  270. /package/dist/assets/{intelligence-FK_fyZf1.js → intelligence-cL2kPl3v.js} +0 -0
  271. /package/dist/assets/{keyboard-shortcuts-redirect-page-CHDMDYjr.js → keyboard-shortcuts-redirect-page-BDuYwofA.js} +0 -0
  272. /package/dist/assets/{library-Xe0N-J_g.js → library-a7r2rPRX.js} +0 -0
  273. /package/dist/assets/{library-Dy0MR5PM.js → library-mD_34-zu.js} +0 -0
  274. /package/dist/assets/{link-click-BMBF1BX0.js → link-click-LjKsC7uu.js} +0 -0
  275. /package/dist/assets/{logs-C01Xe6pR.js → logs-CwEMxFk_.js} +0 -0
  276. /package/dist/assets/{logs-CLAksTVA.js → logs-DYhiKdQ8.js} +0 -0
  277. /package/dist/assets/{machine-sizes-CoWjZd83.js → machine-sizes-DOMlCbKb.js} +0 -0
  278. /package/dist/assets/{onboarding-DLrJvosE.js → onboarding-D2bBWpx1.js} +0 -0
  279. /package/dist/assets/{onboarding-CrxUN_U9.js → onboarding-DJeJhXd6.js} +0 -0
  280. /package/dist/assets/{onboarding-step-layout-CVDi6y2-.js → onboarding-step-layout-_Fbi43YU.js} +0 -0
  281. /package/dist/assets/{page-empty-state-iXCJNtzb.js → page-empty-state-B_nQdAFR.js} +0 -0
  282. /package/dist/assets/{page-shell-CUnJzpKC.js → page-shell-BHyGukA1.js} +0 -0
  283. /package/dist/assets/{pdf-DT-N9HWh.js → pdf-a3pPuuVL.js} +0 -0
  284. /package/dist/assets/{plugin-attribution-CtgwSlw8.js → plugin-attribution-7tkVwdle.js} +0 -0
  285. /package/dist/assets/{plugin-detail-page-CAQUYhh3.js → plugin-detail-page-D9Qk7GmS.js} +0 -0
  286. /package/dist/assets/{plugins-page-ONcIfAug.js → plugins-page-Bm0hcoSf.js} +0 -0
  287. /package/dist/assets/{profile-metadata-DeknMkvV.js → profile-metadata-BPGeIeNj.js} +0 -0
  288. /package/dist/assets/{radio-card-nav-CgGzva7O.js → radio-card-nav-C67JvVkE.js} +0 -0
  289. /package/dist/assets/{remote-web-D5jpctdd.js → remote-web-Btj-E-og.js} +0 -0
  290. /package/dist/assets/{remote-web-DwUlAxnF.js → remote-web-yAGitwPt.js} +0 -0
  291. /package/dist/assets/{schedules-BAvze-kP.js → schedules-Dd44UKOx.js} +0 -0
  292. /package/dist/assets/{schedules-B84Gewv0.js → schedules-K8jULmC8.js} +0 -0
  293. /package/dist/assets/{security-redirect-page-BbJ-8JQE.js → security-redirect-page-C3VbbfyM.js} +0 -0
  294. /package/dist/assets/{setting-row-w3kD1IkH.js → setting-row-urcByt7n.js} +0 -0
  295. /package/dist/assets/{settings-divider-SUwXIK4c.js → settings-divider-CYam_4yQ.js} +0 -0
  296. /package/dist/assets/{skill-icon-BS3zAgpY.js → skill-icon-D52BIuW4.js} +0 -0
  297. /package/dist/assets/{skills-page-Cv3KPZrr.js → skills-page-DhKl7Mti.js} +0 -0
  298. /package/dist/assets/{system-events-redirect-page-lwCsNnQS.js → system-events-redirect-page-BMSQQBAs.js} +0 -0
  299. /package/dist/assets/{terminal-DmcRqX9y.js → terminal-CazBoirG.js} +0 -0
  300. /package/dist/assets/{terminal-DPTJVDoh.js → terminal-DP646Xj3.js} +0 -0
  301. /package/dist/assets/{usage-redirect-page-D_mJtlxQ.js → usage-redirect-page-DBkOdl41.js} +0 -0
  302. /package/dist/assets/{use-hotkey-recorder-BQEYtl-Y.js → use-hotkey-recorder-IMOc7G5D.js} +0 -0
  303. /package/dist/assets/{use-supports-credentials-settings-DYi8pPuP.js → use-supports-credentials-settings-BD0GXxL7.js} +0 -0
  304. /package/dist/assets/{use-truncated-blob-text--przReJr.js → use-truncated-blob-text-DmnckNwK.js} +0 -0
  305. /package/dist/assets/{web-DzjJIfpd.js → web-8Dh87AZ1.js} +0 -0
  306. /package/dist/assets/{web-DBVu9-3L.js → web-BAQ66WKm.js} +0 -0
  307. /package/dist/assets/{web-C9KSKaaC.js → web-BFD28UZm.js} +0 -0
  308. /package/dist/assets/{web-DUnBtrXJ.js → web-BcIK5wrq.js} +0 -0
  309. /package/dist/assets/{web-D1RaRfAT.js → web-D0e5_5xl.js} +0 -0
  310. /package/dist/assets/{web-ClNazDb-.js → web-D4Rr20FV.js} +0 -0
  311. /package/dist/assets/{web-Br6VELOy.js → web-qqG-3jDd.js} +0 -0
  312. /package/dist/assets/{workspace-BDcbF2--.js → workspace-Dva7bu2g.js} +0 -0
  313. /package/dist/assets/{workspace-C8mlGfzN.js → workspace-xgS4oaDo.js} +0 -0
  314. /package/dist/assets/{xterm-DdHeF_2A.js → xterm-QkObDWKu.js} +0 -0
  315. /package/dist/assets/{xterm-addon-fit-CoHQbqyC.js → xterm-addon-fit-DIrY4yvs.js} +0 -0
@@ -1 +1 @@
1
- import{v as e}from"./i18n-DmTrjH8B.js";import{t}from"./button-B1kEAcLt.js";import{d as n,n as r}from"./chunk-5KNZJZUH-CPFsMQoz.js";import{t as i}from"./jsx-runtime-COOF1INC.js";import{t as a}from"./card-B4b9cF6X.js";import{n as o}from"./use-supports-bookmarks-Qhc5HpKD.js";import{t as s}from"./loader-circle-DZ65N8bz.js";import{t as c}from"./rotate-ccw-BYcZOtjy.js";import{t as l}from"./triangle-alert-B6J57Xfo.js";import{t as u}from"./x-nhRPd-Mz.js";import{f as d}from"./routes-C6ueuiMd.js";import{t as f}from"./client-feature-flag-store-BmjgGl9P.js";import{n as p}from"./conversation-navigation-CmHzY4Xq.js";import{t as m}from"./internal-thread-actions-DkNfSArh.js";import{n as h,t as g}from"./use-bookmarks-FrEqnEhr.js";var _=i();function v(e){if(e==null)return``;let t=new Date(e);return Number.isNaN(t.getTime())?``:t.toLocaleString(void 0,{month:`short`,day:`numeric`,year:`numeric`,hour:`numeric`,minute:`2-digit`,hour12:!0})}function y({t:e}){return(0,_.jsx)(a,{children:(0,_.jsxs)(`div`,{className:`flex min-h-[400px] flex-col items-center justify-center px-6 py-16 text-center`,children:[(0,_.jsx)(`div`,{className:`flex h-12 w-12 items-center justify-center rounded-full bg-[var(--surface-base)]`,children:(0,_.jsx)(o,{className:`h-6 w-6 text-[var(--content-disabled)] dark:text-[var(--content-default)]`})}),(0,_.jsx)(`h2`,{className:`mt-4 text-title-small text-[var(--content-default)]`,children:e(`bookmarksPage.emptyTitle`)}),(0,_.jsx)(`p`,{className:`mt-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`bookmarksPage.emptyDescription`)})]})})}function b({bookmark:e,isFirst:n,onOpen:r,onRemove:i,t:a}){let o=e.conversationTitle&&e.conversationTitle.trim().length>0?e.conversationTitle:a(`bookmarksPage.untitledConversation`),s=e.messageRole!==`user`,c=v(e.createdAt);return(0,_.jsxs)(`div`,{className:`flex items-start gap-3 py-3 ${n?``:`border-t border-[var(--border-base)]`}`,children:[(0,_.jsx)(`span`,{"aria-hidden":!0,className:`mt-1 h-8 w-1 shrink-0 rounded-full`,style:{backgroundColor:s?`var(--content-default)`:`var(--content-tertiary)`}}),(0,_.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,_.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3`,children:[(0,_.jsx)(`div`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:o}),c?(0,_.jsx)(`span`,{className:`shrink-0 text-body-small-default text-[var(--content-tertiary)]`,children:c}):null]}),e.messagePreview?(0,_.jsx)(`p`,{className:`mt-0.5 line-clamp-2 text-body-small-default text-[var(--content-tertiary)]`,children:e.messagePreview}):null]}),(0,_.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,_.jsx)(t,{variant:`outlined`,onClick:r,children:a(`bookmarksPage.open`)}),(0,_.jsx)(`button`,{type:`button`,onClick:i,title:a(`bookmarksPage.removeBookmark`),"aria-label":a(`bookmarksPage.removeBookmark`),className:`flex h-8 w-8 cursor-pointer items-center justify-center rounded-md text-[var(--content-tertiary)] transition-colors hover:bg-[var(--surface-active)] hover:text-[var(--content-default)]`,children:(0,_.jsx)(u,{className:`h-4 w-4`})})]})]})}function x(){let{t:i}=e(`settings`),o=n(),{bookmarks:u,isLoading:v,isError:x,refetch:S}=h(),C=g(),w=m();return f.use.hydrated()&&!w?(0,_.jsx)(r,{replace:!0,to:d.settings.general}):v?(0,_.jsx)(`div`,{className:`w-full`,children:(0,_.jsx)(`div`,{className:`flex min-h-[400px] items-center justify-center`,children:(0,_.jsx)(s,{className:`h-6 w-6 animate-spin text-[var(--content-disabled)]`})})}):x?(0,_.jsx)(`div`,{className:`w-full`,children:(0,_.jsx)(a,{children:(0,_.jsxs)(`div`,{className:`flex min-h-[400px] flex-col items-center justify-center px-6 py-16 text-center`,children:[(0,_.jsx)(`div`,{className:`flex h-12 w-12 items-center justify-center rounded-full bg-[var(--system-error-lighter)]`,children:(0,_.jsx)(l,{className:`h-6 w-6 text-[var(--system-error-default)]`})}),(0,_.jsx)(`h2`,{className:`mt-4 text-title-small text-[var(--content-default)]`,children:i(`bookmarksPage.errorTitle`)}),(0,_.jsx)(`p`,{className:`mt-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:i(`bookmarksPage.errorDescription`)}),(0,_.jsxs)(t,{variant:`outlined`,onClick:S,className:`mt-4`,children:[(0,_.jsx)(c,{className:`h-4 w-4`}),i(`bookmarksPage.retry`)]})]})})}):u.length===0?(0,_.jsx)(`div`,{className:`w-full`,children:(0,_.jsx)(y,{t:i})}):(0,_.jsx)(`div`,{className:`w-full`,children:(0,_.jsx)(a,{noPadding:!0,className:`px-4`,children:u.map((e,t)=>(0,_.jsx)(b,{bookmark:e,isFirst:t===0,onOpen:()=>p(o,e.conversationId,{messageId:e.messageId}),onRemove:()=>{C(e.messageId,e.conversationId,!0)},t:i},e.id))})})}export{x as BookmarksPage};
1
+ import{v as e}from"./i18n-BtV8MCsZ.js";import{t}from"./button-B1kEAcLt.js";import{d as n,n as r}from"./chunk-5KNZJZUH-CPFsMQoz.js";import{t as i}from"./jsx-runtime-COOF1INC.js";import{t as a}from"./card-B4b9cF6X.js";import{n as o}from"./use-supports-bookmarks-Qhc5HpKD.js";import{t as s}from"./loader-circle-DZ65N8bz.js";import{t as c}from"./rotate-ccw-BYcZOtjy.js";import{t as l}from"./triangle-alert-B6J57Xfo.js";import{t as u}from"./x-nhRPd-Mz.js";import{f as d}from"./routes-C6ueuiMd.js";import{t as f}from"./client-feature-flag-store-BmjgGl9P.js";import{n as p}from"./conversation-navigation-Ck_iLhjv.js";import{t as m}from"./internal-thread-actions-DkNfSArh.js";import{n as h,t as g}from"./use-bookmarks-BrjNq3T_.js";var _=i();function v(e){if(e==null)return``;let t=new Date(e);return Number.isNaN(t.getTime())?``:t.toLocaleString(void 0,{month:`short`,day:`numeric`,year:`numeric`,hour:`numeric`,minute:`2-digit`,hour12:!0})}function y({t:e}){return(0,_.jsx)(a,{children:(0,_.jsxs)(`div`,{className:`flex min-h-[400px] flex-col items-center justify-center px-6 py-16 text-center`,children:[(0,_.jsx)(`div`,{className:`flex h-12 w-12 items-center justify-center rounded-full bg-[var(--surface-base)]`,children:(0,_.jsx)(o,{className:`h-6 w-6 text-[var(--content-disabled)] dark:text-[var(--content-default)]`})}),(0,_.jsx)(`h2`,{className:`mt-4 text-title-small text-[var(--content-default)]`,children:e(`bookmarksPage.emptyTitle`)}),(0,_.jsx)(`p`,{className:`mt-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`bookmarksPage.emptyDescription`)})]})})}function b({bookmark:e,isFirst:n,onOpen:r,onRemove:i,t:a}){let o=e.conversationTitle&&e.conversationTitle.trim().length>0?e.conversationTitle:a(`bookmarksPage.untitledConversation`),s=e.messageRole!==`user`,c=v(e.createdAt);return(0,_.jsxs)(`div`,{className:`flex items-start gap-3 py-3 ${n?``:`border-t border-[var(--border-base)]`}`,children:[(0,_.jsx)(`span`,{"aria-hidden":!0,className:`mt-1 h-8 w-1 shrink-0 rounded-full`,style:{backgroundColor:s?`var(--content-default)`:`var(--content-tertiary)`}}),(0,_.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,_.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3`,children:[(0,_.jsx)(`div`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:o}),c?(0,_.jsx)(`span`,{className:`shrink-0 text-body-small-default text-[var(--content-tertiary)]`,children:c}):null]}),e.messagePreview?(0,_.jsx)(`p`,{className:`mt-0.5 line-clamp-2 text-body-small-default text-[var(--content-tertiary)]`,children:e.messagePreview}):null]}),(0,_.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,_.jsx)(t,{variant:`outlined`,onClick:r,children:a(`bookmarksPage.open`)}),(0,_.jsx)(`button`,{type:`button`,onClick:i,title:a(`bookmarksPage.removeBookmark`),"aria-label":a(`bookmarksPage.removeBookmark`),className:`flex h-8 w-8 cursor-pointer items-center justify-center rounded-md text-[var(--content-tertiary)] transition-colors hover:bg-[var(--surface-active)] hover:text-[var(--content-default)]`,children:(0,_.jsx)(u,{className:`h-4 w-4`})})]})]})}function x(){let{t:i}=e(`settings`),o=n(),{bookmarks:u,isLoading:v,isError:x,refetch:S}=h(),C=g(),w=m();return f.use.hydrated()&&!w?(0,_.jsx)(r,{replace:!0,to:d.settings.general}):v?(0,_.jsx)(`div`,{className:`w-full`,children:(0,_.jsx)(`div`,{className:`flex min-h-[400px] items-center justify-center`,children:(0,_.jsx)(s,{className:`h-6 w-6 animate-spin text-[var(--content-disabled)]`})})}):x?(0,_.jsx)(`div`,{className:`w-full`,children:(0,_.jsx)(a,{children:(0,_.jsxs)(`div`,{className:`flex min-h-[400px] flex-col items-center justify-center px-6 py-16 text-center`,children:[(0,_.jsx)(`div`,{className:`flex h-12 w-12 items-center justify-center rounded-full bg-[var(--system-error-lighter)]`,children:(0,_.jsx)(l,{className:`h-6 w-6 text-[var(--system-error-default)]`})}),(0,_.jsx)(`h2`,{className:`mt-4 text-title-small text-[var(--content-default)]`,children:i(`bookmarksPage.errorTitle`)}),(0,_.jsx)(`p`,{className:`mt-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:i(`bookmarksPage.errorDescription`)}),(0,_.jsxs)(t,{variant:`outlined`,onClick:S,className:`mt-4`,children:[(0,_.jsx)(c,{className:`h-4 w-4`}),i(`bookmarksPage.retry`)]})]})})}):u.length===0?(0,_.jsx)(`div`,{className:`w-full`,children:(0,_.jsx)(y,{t:i})}):(0,_.jsx)(`div`,{className:`w-full`,children:(0,_.jsx)(a,{noPadding:!0,className:`px-4`,children:u.map((e,t)=>(0,_.jsx)(b,{bookmark:e,isFirst:t===0,onOpen:()=>p(o,e.conversationId,{messageId:e.messageId}),onRemove:()=>{C(e.messageId,e.conversationId,!0)},t:i},e.id))})})}export{x as BookmarksPage};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/esm-aHElu69l.js","assets/preload-helper-BewR0kVT.js","assets/dist-Cr8OiiXj.js"])))=>i.map(i=>d[i]);
2
- import{l as e}from"./i18n-DmTrjH8B.js";import{t}from"./preload-helper-BewR0kVT.js";import{t as n}from"./is-electron-D45bjFI8.js";import{l as r}from"./native-biometric-B2BCv4UL.js";import{t as i}from"./dist-Cr8OiiXj.js";function a(t,n){if(!r())return()=>void 0;let i=null,a=!1;return n().then(e=>{if(a){e.remove();return}i=e}).catch(n=>{e(n,{context:t,level:`warning`})}),()=>{a=!0,i?.remove()}}var o=async(e,r)=>{if(n()){window.open(e,`_blank`);return}if(i.isNativePlatform())try{let{Browser:n}=await t(async()=>{let{Browser:e}=await import(`./esm-aHElu69l.js`);return{Browser:e}},__vite__mapDeps([0,1,2]));await n.open({url:e,presentationStyle:`popover`})}catch{r(e)}else r(e)},s=e=>o(e,e=>{window.location.href=e}),c=async e=>{if(n())return window.open(e,`_blank`),!0;if(i.isNativePlatform())try{let{Browser:n}=await t(async()=>{let{Browser:e}=await import(`./esm-aHElu69l.js`);return{Browser:e}},__vite__mapDeps([0,1,2]));return await n.open({url:e,presentationStyle:`popover`}),!0}catch{}return window.open(e,`_blank`)!==null},l=e=>o(e,e=>{window.open(e,`_blank`,`noopener,noreferrer`)}),u=e=>a(`capacitor_browser_finished`,async()=>{let{Browser:n}=await t(async()=>{let{Browser:e}=await import(`./esm-aHElu69l.js`);return{Browser:e}},__vite__mapDeps([0,1,2]));return n.addListener(`browserFinished`,e)});export{a,c as i,s as n,u as r,l as t};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/esm-DbODHbQp.js","assets/preload-helper-BewR0kVT.js","assets/dist-Cr8OiiXj.js"])))=>i.map(i=>d[i]);
2
+ import{l as e}from"./i18n-BtV8MCsZ.js";import{t}from"./preload-helper-BewR0kVT.js";import{t as n}from"./is-electron-D45bjFI8.js";import{l as r}from"./native-biometric-DEP8Sr4X.js";import{t as i}from"./dist-Cr8OiiXj.js";function a(t,n){if(!r())return()=>void 0;let i=null,a=!1;return n().then(e=>{if(a){e.remove();return}i=e}).catch(n=>{e(n,{context:t,level:`warning`})}),()=>{a=!0,i?.remove()}}var o=async(e,r)=>{if(n()){window.open(e,`_blank`);return}if(i.isNativePlatform())try{let{Browser:n}=await t(async()=>{let{Browser:e}=await import(`./esm-DbODHbQp.js`);return{Browser:e}},__vite__mapDeps([0,1,2]));await n.open({url:e,presentationStyle:`popover`})}catch{r(e)}else r(e)},s=e=>o(e,e=>{window.location.href=e}),c=async e=>{if(n())return window.open(e,`_blank`),!0;if(i.isNativePlatform())try{let{Browser:n}=await t(async()=>{let{Browser:e}=await import(`./esm-DbODHbQp.js`);return{Browser:e}},__vite__mapDeps([0,1,2]));return await n.open({url:e,presentationStyle:`popover`}),!0}catch{}return window.open(e,`_blank`)!==null},l=e=>o(e,e=>{window.open(e,`_blank`,`noopener,noreferrer`)}),u=e=>a(`capacitor_browser_finished`,async()=>{let{Browser:n}=await t(async()=>{let{Browser:e}=await import(`./esm-DbODHbQp.js`);return{Browser:e}},__vite__mapDeps([0,1,2]));return n.addListener(`browserFinished`,e)});export{a,c as i,s as n,u as r,l as t};
@@ -1 +1 @@
1
- import{S as e,rt as t,v as n,x as r}from"./local-mode-BQ8gp0wB.js";import{r as i,t as a}from"./resolved-assistants-store-DEtotxhR.js";import{$ as o,at as s,n as c,st as l}from"./auth-store-BS_AckaH.js";import{l as u}from"./remote-gateway-session-C3H0Oq0r.js";import{E as d}from"./native-biometric-B2BCv4UL.js";import{a as f,i as p,n as m,r as h,s as g}from"./prefs-BaoT5tM9.js";function _(e){let t=o();return(t==null?e:a(e,t)).some(e=>e.isPlatformHosted)}function v(a){let{sessionStatus:o,platformSession:v}=c.getState(),{assistants:y,assistantsHydrated:b}=i.getState(),x=e();return{isLocalClient:n(),isPlatformDisabled:r(),isRemoteGateway:x,remoteGatewayPublicPathPrefix:x?u():``,isGatewayAuth:t(),hasAssistants:y.length>0,hasPlatformHostedAssistant:_(y),sessionSettled:l(o),isAuthenticated:s(o),platformSession:v,tosAccepted:g(),privacyConsent:f(),analyticsConsentCurrent:m(),diagnosticsConsentCurrent:p(),consentHydrated:h(),assistantsHydrated:b,alreadyOnboarded:d(y),...a}}export{v as t};
1
+ import{S as e,rt as t,v as n,x as r}from"./local-mode-BQ8gp0wB.js";import{r as i,t as a}from"./resolved-assistants-store-DEtotxhR.js";import{$ as o,at as s,n as c,st as l}from"./auth-store-BVjw4Y6z.js";import{l as u}from"./remote-gateway-session-C3H0Oq0r.js";import{E as d}from"./native-biometric-DEP8Sr4X.js";import{a as f,i as p,n as m,r as h,s as g}from"./prefs-CAMw44jD.js";function _(e){let t=o();return(t==null?e:a(e,t)).some(e=>e.isPlatformHosted)}function v(a){let{sessionStatus:o,platformSession:v}=c.getState(),{assistants:y,assistantsHydrated:b}=i.getState(),x=e();return{isLocalClient:n(),isPlatformDisabled:r(),isRemoteGateway:x,remoteGatewayPublicPathPrefix:x?u():``,isGatewayAuth:t(),hasAssistants:y.length>0,hasPlatformHostedAssistant:_(y),sessionSettled:l(o),isAuthenticated:s(o),platformSession:v,tosAccepted:g(),privacyConsent:f(),analyticsConsentCurrent:m(),diagnosticsConsentCurrent:p(),consentHydrated:h(),assistantsHydrated:b,alreadyOnboarded:d(y),...a}}export{v as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{v as t}from"./i18n-DmTrjH8B.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./jsx-runtime-COOF1INC.js";import{t as i}from"./misc-dA4Wklt2.js";import{t as a}from"./format-file-size-gDJ7ppQ0.js";var o=e(n(),1),s=r(),c={verified:{label:`Verified`,className:`bg-[var(--system-positive-weak)] text-[var(--system-positive-strong)]`},signed:{label:`Signed`,className:`bg-[var(--system-info-weak)] text-[var(--system-info-strong)]`},unsigned:{label:`Unsigned`,className:`bg-[var(--surface-active)] text-[var(--content-secondary)]`},tampered:{label:`Tampered — signature invalid`,className:`bg-[var(--system-negative-weak)] text-[var(--system-negative-strong)]`}};function l(){let{t:e}=t(),[n,r]=(0,o.useState)(null),[l,u]=(0,o.useState)(!1);if((0,o.useEffect)(()=>{window.vellum?.bundleConfirm?.getData().then(e=>{e&&r(e)})},[]),!n)return(0,s.jsx)(`div`,{className:`flex h-svh w-screen items-center justify-center bg-background text-muted-foreground select-none`,children:e(`bundleConfirmPage.loading`)});let{manifest:d,scanResult:f,signatureResult:p,bundleSizeBytes:m}=n,h=c[p.trustTier],g=p.trustTier===`tampered`,_=f.warnings;return(0,s.jsxs)(`div`,{className:`flex h-svh w-screen flex-col bg-background px-6 pt-14 pb-6 text-foreground select-none`,children:[(0,s.jsxs)(`div`,{className:`flex items-start gap-3`,children:[d.icon?(0,s.jsx)(`span`,{className:`text-5xl leading-none`,children:d.icon}):(0,s.jsx)(`span`,{className:`text-5xl leading-none`,children:`📦`}),(0,s.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,s.jsx)(`h1`,{className:`truncate text-lg font-semibold`,children:d.name}),d.description&&(0,s.jsx)(`p`,{className:`text-muted-foreground mt-0.5 text-sm leading-snug`,children:d.description})]})]}),(0,s.jsxs)(`div`,{className:`mt-4 flex items-center gap-2`,children:[(0,s.jsx)(`span`,{className:i(`inline-block rounded-full px-2.5 py-0.5 text-xs font-medium`,h.className),children:h.label}),p.trustTier===`signed`&&p.signerDisplayName&&(0,s.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:e(`bundleConfirmPage.bySigner`,{name:p.signerDisplayName})})]}),(0,s.jsxs)(`dl`,{className:`mt-4 grid grid-cols-[auto_1fr] gap-x-3 gap-y-1.5 text-sm`,children:[(0,s.jsx)(`dt`,{className:`text-muted-foreground`,children:e(`bundleConfirmPage.size`)}),(0,s.jsx)(`dd`,{children:a(m)}),(0,s.jsx)(`dt`,{className:`text-muted-foreground`,children:e(`bundleConfirmPage.createdBy`)}),(0,s.jsx)(`dd`,{className:`truncate`,children:d.created_by}),d.capabilities.length>0&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(`dt`,{className:`text-muted-foreground`,children:e(`bundleConfirmPage.capabilities`)}),(0,s.jsx)(`dd`,{className:`truncate`,children:d.capabilities.join(`, `)})]})]}),_.length>0&&(0,s.jsxs)(`div`,{className:`mt-4`,children:[(0,s.jsx)(`button`,{type:`button`,className:`text-muted-foreground text-xs font-medium hover:underline`,onClick:()=>u(e=>!e),children:e(l?`bundleConfirmPage.hideWarnings`:`bundleConfirmPage.showWarnings`,{count:_.length})}),l&&(0,s.jsx)(`ul`,{className:`mt-1.5 space-y-1 text-xs`,children:_.map((e,t)=>(0,s.jsx)(`li`,{className:`rounded bg-[var(--system-mid-weak)] px-2 py-1 text-[var(--system-mid-strong)]`,children:e},t))})]}),(0,s.jsxs)(`div`,{className:`mt-auto flex items-center justify-end gap-3 pt-4`,children:[(0,s.jsx)(`button`,{type:`button`,className:`rounded-md border border-border px-4 py-1.5 text-sm font-medium text-foreground hover:bg-muted`,onClick:()=>window.vellum?.bundleConfirm?.respond(!1),children:e(`bundleConfirmPage.cancel`)}),(0,s.jsx)(`button`,{type:`button`,className:i(`rounded-md px-4 py-1.5 text-sm font-medium text-white`,g?`bg-red-600 hover:bg-red-700`:`bg-primary hover:bg-primary/90`),onClick:()=>window.vellum?.bundleConfirm?.respond(!0),children:e(g?`bundleConfirmPage.installAnyway`:`bundleConfirmPage.install`)})]})]})}export{l as BundleConfirmPage};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{v as t}from"./i18n-BtV8MCsZ.js";import{t as n}from"./react-DJZBPgpf.js";import{t as r}from"./jsx-runtime-COOF1INC.js";import{t as i}from"./misc-dA4Wklt2.js";import{t as a}from"./format-file-size-gDJ7ppQ0.js";var o=e(n(),1),s=r(),c={verified:{label:`Verified`,className:`bg-[var(--system-positive-weak)] text-[var(--system-positive-strong)]`},signed:{label:`Signed`,className:`bg-[var(--system-info-weak)] text-[var(--system-info-strong)]`},unsigned:{label:`Unsigned`,className:`bg-[var(--surface-active)] text-[var(--content-secondary)]`},tampered:{label:`Tampered — signature invalid`,className:`bg-[var(--system-negative-weak)] text-[var(--system-negative-strong)]`}};function l(){let{t:e}=t(),[n,r]=(0,o.useState)(null),[l,u]=(0,o.useState)(!1);if((0,o.useEffect)(()=>{window.vellum?.bundleConfirm?.getData().then(e=>{e&&r(e)})},[]),!n)return(0,s.jsx)(`div`,{className:`flex h-svh w-screen items-center justify-center bg-background text-muted-foreground select-none`,children:e(`bundleConfirmPage.loading`)});let{manifest:d,scanResult:f,signatureResult:p,bundleSizeBytes:m}=n,h=c[p.trustTier],g=p.trustTier===`tampered`,_=f.warnings;return(0,s.jsxs)(`div`,{className:`flex h-svh w-screen flex-col bg-background px-6 pt-14 pb-6 text-foreground select-none`,children:[(0,s.jsxs)(`div`,{className:`flex items-start gap-3`,children:[d.icon?(0,s.jsx)(`span`,{className:`text-5xl leading-none`,children:d.icon}):(0,s.jsx)(`span`,{className:`text-5xl leading-none`,children:`📦`}),(0,s.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,s.jsx)(`h1`,{className:`truncate text-lg font-semibold`,children:d.name}),d.description&&(0,s.jsx)(`p`,{className:`text-muted-foreground mt-0.5 text-sm leading-snug`,children:d.description})]})]}),(0,s.jsxs)(`div`,{className:`mt-4 flex items-center gap-2`,children:[(0,s.jsx)(`span`,{className:i(`inline-block rounded-full px-2.5 py-0.5 text-xs font-medium`,h.className),children:h.label}),p.trustTier===`signed`&&p.signerDisplayName&&(0,s.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:e(`bundleConfirmPage.bySigner`,{name:p.signerDisplayName})})]}),(0,s.jsxs)(`dl`,{className:`mt-4 grid grid-cols-[auto_1fr] gap-x-3 gap-y-1.5 text-sm`,children:[(0,s.jsx)(`dt`,{className:`text-muted-foreground`,children:e(`bundleConfirmPage.size`)}),(0,s.jsx)(`dd`,{children:a(m)}),(0,s.jsx)(`dt`,{className:`text-muted-foreground`,children:e(`bundleConfirmPage.createdBy`)}),(0,s.jsx)(`dd`,{className:`truncate`,children:d.created_by}),d.capabilities.length>0&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(`dt`,{className:`text-muted-foreground`,children:e(`bundleConfirmPage.capabilities`)}),(0,s.jsx)(`dd`,{className:`truncate`,children:d.capabilities.join(`, `)})]})]}),_.length>0&&(0,s.jsxs)(`div`,{className:`mt-4`,children:[(0,s.jsx)(`button`,{type:`button`,className:`text-muted-foreground text-xs font-medium hover:underline`,onClick:()=>u(e=>!e),children:e(l?`bundleConfirmPage.hideWarnings`:`bundleConfirmPage.showWarnings`,{count:_.length})}),l&&(0,s.jsx)(`ul`,{className:`mt-1.5 space-y-1 text-xs`,children:_.map((e,t)=>(0,s.jsx)(`li`,{className:`rounded bg-[var(--system-mid-weak)] px-2 py-1 text-[var(--system-mid-strong)]`,children:e},t))})]}),(0,s.jsxs)(`div`,{className:`mt-auto flex items-center justify-end gap-3 pt-4`,children:[(0,s.jsx)(`button`,{type:`button`,className:`rounded-md border border-border px-4 py-1.5 text-sm font-medium text-foreground hover:bg-muted`,onClick:()=>window.vellum?.bundleConfirm?.respond(!1),children:e(`bundleConfirmPage.cancel`)}),(0,s.jsx)(`button`,{type:`button`,className:i(`rounded-md px-4 py-1.5 text-sm font-medium text-white`,g?`bg-red-600 hover:bg-red-700`:`bg-primary hover:bg-primary/90`),onClick:()=>window.vellum?.bundleConfirm?.respond(!0),children:e(g?`bundleConfirmPage.installAnyway`:`bundleConfirmPage.install`)})]})]})}export{l as BundleConfirmPage};
@@ -1,4 +1,4 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{v as t}from"./i18n-DmTrjH8B.js";import{t as n}from"./react-DJZBPgpf.js";import{n as r,t as i}from"./button-B1kEAcLt.js";import{d as a,h as o,p as s,t as c}from"./chunk-5KNZJZUH-CPFsMQoz.js";import{n as l}from"./QueryClientProvider-BPZM68-A.js";import{t as u}from"./useQuery-BtL9k7Sh.js";import{t as d}from"./useMutation-Cl7cazkm.js";import{t as f}from"./jsx-runtime-COOF1INC.js";import{t as p}from"./cn-naJKasky.js";import{t as m}from"./typography-SdxpXI_m.js";import{t as h}from"./card-B4b9cF6X.js";import{n as g,t as _}from"./list-row-BvCm9O6y.js";import{C as v,S as y,T as b,_ as x,b as S,c as C,d as w,g as T,k as E,l as D,m as O,o as k,u as A,v as j,w as M,x as ee,y as te}from"./use-save-twilio-credentials-DKSM1mRw.js";import{t as ne}from"./chevron-down-D437oaYt.js";import{t as N}from"./info-C-HjpKAE.js";import{o as P,r as F,t as I,u as L}from"./threshold-presets-d4-WHyc0.js";import{t as re}from"./message-square-XpKWNcyv.js";import{t as R}from"./plug-AMxPbUcz.js";import{t as z}from"./search-DYHr3LM9.js";import{t as B}from"./notice-BHeYlKvv.js";import{B as V,V as H,c as ie,s as U}from"./src-BKET5Cno.js";import{t as W}from"./tag-DAsImP7W.js";import{t as G}from"./input-ChbJ2nzd.js";import{t as ae}from"./confirm-dialog-EPYSBP_B.js";import{t as oe}from"./select-DmdFZj4l.js";import{t as se}from"./assistant-identity-store-DBkGjqzV.js";import{t as ce}from"./Trans-aGiJoe8I.js";import{i as le}from"./utils-CAI1IDgW.js";import{f as ue}from"./routes-C6ueuiMd.js";import{c as de}from"./react-query.gen-C_GLKG7m.js";import{r as fe}from"./conversation-navigation-CmHzY4Xq.js";import{l as pe,o as me,s as he}from"./sdk.gen-BuAyyHNm.js";import{t as ge}from"./assistant-feature-flag-store-Co_o5uD3.js";import{t as _e}from"./public-asset-Dk1mdzbh.js";import{t as ve}from"./use-active-assistant-id-lxYJu99R.js";import{n as ye,t as be}from"./telegram-setup-wizard-CUbUmp6W.js";import{n as xe,r as Se}from"./index-mFpsjcJ6.js";import{t as Ce}from"./detail-card-D9EAxXI8.js";import{n as we,r as Te,t as Ee}from"./use-side-list-room-C6Z5u28A.js";import{a as De,c as K,d as Oe,f as ke,i as Ae,n as je,o as Me,r as Ne,s as Pe,t as Fe,u as Ie}from"./use-invite-link-dialog-BN8Wpu4s.js";var q=e(n(),1);function Le(){let{channelId:e}=s(),t=a();return{selected:e,select:(0,q.useCallback)(e=>{t(`/assistant/channels/${encodeURIComponent(e)}`,{replace:!0})},[t])}}var Re={slack:{labelKey:`channelMeta.slack.label`,disconnectMessageKey:`channelMeta.slack.disconnectMessage`,hasTrustFloorControl:!1},telegram:{labelKey:`channelMeta.telegram.label`,disconnectMessageKey:`channelMeta.telegram.disconnectMessage`,hasTrustFloorControl:!0,disconnectedPitchKey:`channelMeta.telegram.disconnectedPitch`},phone:{labelKey:`channelMeta.phone.label`,disconnectMessageKey:`channelMeta.phone.disconnectMessage`,hasTrustFloorControl:!0,disconnectedPitchKey:`channelMeta.phone.disconnectedPitch`}},J=f();function ze({channels:e,pluginChannels:t=[],selectedKey:n,onSelect:r}){return(0,J.jsx)(h.Root,{className:`flex h-full flex-col overflow-hidden`,children:(0,J.jsx)(h.Body,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-4`,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[e.map(e=>(0,J.jsx)(Be,{channel:e,selected:e.key===n,onClick:()=>r(e.key)},e.key)),t.map(e=>(0,J.jsx)(Ve,{channel:e,selected:e.key===n,onClick:()=>r(e.key)},e.key))]})})})}function Be({channel:e,selected:t,onClick:n}){let r=e.status===`ready`,i=O(e.key),a=r?`Connected`:`Not connected`;return(0,J.jsx)(g,{asChild:!0,active:t,"aria-label":`${i}, ${a}`,children:(0,J.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,J.jsx)(A,{channelId:e.key,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,J.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default`,children:i}),(0,J.jsx)(`span`,{className:`flex shrink-0 items-center`,children:(0,J.jsx)(W,{tone:r?`positive`:`neutral`,children:a})})]})})}function Ve({channel:e,selected:n,onClick:r}){let{t:i}=t(`channels`);return(0,J.jsx)(g,{asChild:!0,active:n,"aria-label":i(`channelAdapterList.pluginChannelAria`,{channel:e.label}),children:(0,J.jsxs)(`button`,{type:`button`,onClick:r,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:[(0,J.jsx)(w,{icon:e.icon,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,J.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default`,children:e.label}),(0,J.jsx)(R,{"aria-hidden":!0,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`})]})})}function He({icon:e,title:t,description:n,action:r,className:i}){return(0,J.jsxs)(`div`,{className:p(`flex flex-col items-center justify-center gap-3 px-4 py-12 text-center`,i),children:[e?(0,J.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,J.jsx)(`h3`,{className:`text-title-small text-[var(--content-default)]`,children:t}),n?(0,J.jsx)(`p`,{className:`max-w-md text-body-medium-lighter text-[color:var(--content-tertiary)]`,children:n}):null,r?(0,J.jsx)(`div`,{className:`mt-1`,children:r}):null]})}function Ue({assistantDisplayName:e,policy:n,saving:r=!1,loading:i=!1,error:a=!1,onChange:o}){let{t:s}=t(`channels`),c=n??`trusted_contacts`,l=ke(e),u=Ie.map(e=>({value:e,label:Oe[e],tooltip:l[e]}));return(0,J.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,J.jsx)(m,{as:`span`,variant:`body-small-emphasised`,className:`text-[color:var(--content-secondary)]`,children:s(`channelTrustFloor.heading`,{assistant:e})}),i?(0,J.jsx)(m,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:s(`channelTrustFloor.loading`)}):a?(0,J.jsx)(m,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-negative)]`,children:s(`channelTrustFloor.loadFailed`)}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{style:{maxWidth:280},children:(0,J.jsx)(oe,{value:c,onChange:o,options:u,disabled:r,"aria-label":s(`channelTrustFloor.selectAria`,{assistant:e})})}),(0,J.jsx)(m,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:l[c]}),c===`trusted_contacts`?(0,J.jsx)(B,{tone:`info`,className:`max-w-lg`,children:s(`channelTrustFloor.trustedContactsNotice`,{assistant:e})}):null]})]})}function We({health:e}){let{Icon:t,label:n,tone:r}=T(e);return(0,J.jsx)(W,{tone:r,leftIcon:(0,J.jsx)(t,{}),children:n})}function Ge({address:e,health:n,pending:r,onDisconnect:a}){let{t:o}=t(`channels`);return(0,J.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,J.jsx)(We,{health:n}),e?(0,J.jsx)(`span`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e}):null,(0,J.jsx)(`div`,{className:`ml-auto`,children:(0,J.jsx)(i,{type:`button`,variant:`danger`,onClick:a,disabled:!a||r,children:o(r?`connectionCard.disconnecting`:`connectionCard.disconnect`)})})]})}function Ke({children:e}){let{t:n}=t(`channels`);return(0,J.jsxs)(h.Root,{children:[(0,J.jsx)(h.Header,{children:(0,J.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,J.jsx)(`img`,{src:_e(`/images/integrations/slack.svg`),alt:``,className:`size-8 rounded-lg bg-[var(--surface-sunken)] p-1`}),(0,J.jsx)(m,{as:`span`,variant:`body-medium-default`,children:n(`slackChannelCard.setupHeading`)})]})}),(0,J.jsx)(h.Body,{children:e})]})}I.map(e=>e.riskThreshold);var qe=[`none`,`low`];function Y(e){if(e!==void 0)return e===`none`?`none`:`low`}var X={none:{label:F(`none`).label,sublabel:`asks every time`,tone:`negative`,dotColor:`var(--system-negative-strong)`},low:{label:F(`low`).label,sublabel:`safe lookups`,tone:`warning`,dotColor:`var(--system-mid-strong)`},medium:{label:F(`medium`).label,sublabel:`broader lookups`,tone:`info`,dotColor:`var(--system-info-strong)`},high:{label:F(`high`).label,sublabel:`any lookup`,tone:`positive`,dotColor:`var(--system-positive-strong)`}},Z=[`trusted_contact`,`unverified_contact`,`unknown`];function Je(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 Ye(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 Xe(e,t,n){let r;for(let i of e)Ye(i,t,n)&&(i.contactType===`trusted_contact`||r===void 0)&&(r=i.threshold);return r}var Ze=`__default__`;function Qe({color:e}){return(0,J.jsx)(`span`,{"aria-hidden":`true`,className:`h-1.5 w-1.5 shrink-0 rounded-full`,style:{backgroundColor:e}})}function $e({tier:e,defaultTier:n,disabled:r,onTierChange:i,onReset:a,"aria-label":o}){let{t:s}=t(`channels`),c=Y(e??n??void 0),l=Y(n??void 0)??null,u=qe.map(e=>({value:e,label:X[e].label,icon:(0,J.jsx)(Qe,{color:X[e].dotColor}),suffix:e===l?(0,J.jsx)(`span`,{className:`text-[color:var(--content-tertiary)]`,children:s(`tierPicker.defaultSuffix`)}):void 0,tooltip:X[e].sublabel}));return u.unshift({value:Ze,label:`Default`,icon:(0,J.jsx)(Qe,{color:`transparent`}),tooltip:`follows the default level`}),(0,J.jsx)(oe,{value:c??``,onChange:e=>{e===Ze||e===l?a():i(e)},options:u,placeholder:s(`tierPicker.defaultPlaceholder`),disabled:r,size:`compact`,menuAlign:`end`,"aria-label":o})}function Q(e){return e.type===`dm`?`dm`:e.isPrivate?`private`:`public`}function et(e){return e.filter(e=>Q(e)!==`dm`)}function tt(e,t,n){let r=t.trim().toLowerCase();return e.filter(e=>(n===null||Q(e)===n)&&(r===``||e.name.toLowerCase().includes(r))).sort((e,t)=>e.name.localeCompare(t.name))}function nt(e){let t={public:0,private:0,dm:0};for(let n of e)t[Q(n)]+=1;return t}function rt(e){return e.memberCount==null?null:e.memberCount===1?`1 member`:`${e.memberCount} members`}var it=[{value:null,labelKey:`slackChannelList.filterAll`},{value:`public`,labelKey:`slackChannelList.filterPublic`},{value:`private`,labelKey:`slackChannelList.filterPrivate`}],at={public:E,private:L},ot=100,st=new Set;function ct({assistantDisplayName:e,slackHandle:n,channels:r,loading:i=!1,error:a=!1,tierOverrides:o,defaultTier:s=null,accessControlsSupported:c=!0,tierOverridesLoading:l=!1,tierOverridesError:u=!1,pendingChannelIds:d=st,onTierChange:f,onTierReset:h}){let{t:g}=t(`channels`),[_,v]=(0,q.useState)(``),[y,b]=(0,q.useState)(null),x=(0,q.useMemo)(()=>et(r??[]),[r]),S=(0,q.useMemo)(()=>tt(x,_,y),[x,_,y]),C=(0,q.useMemo)(()=>nt(x),[x]);return(0,J.jsxs)(`div`,{className:`flex flex-col gap-3 p-4`,children:[(0,J.jsx)(m,{as:`p`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:(0,J.jsx)(ce,{i18nKey:`slackChannelList.presenceHint`,ns:`channels`,values:{handle:n??`@${e}`,assistant:e},components:{invite:(0,J.jsx)(`code`,{className:`text-[color:var(--content-secondary)]`}),remove:(0,J.jsx)(`code`,{className:`text-[color:var(--content-secondary)]`})}})}),i?(0,J.jsx)(m,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:g(`slackChannelList.loading`)}):a?(0,J.jsx)(m,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-negative)]`,children:g(`slackChannelList.loadFailed`)}):x.length===0?(0,J.jsx)(He,{icon:(0,J.jsx)(E,{className:`h-6 w-6`}),title:g(`slackChannelList.emptyTitle`)}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,J.jsx)(`div`,{className:`min-w-56 flex-1`,children:(0,J.jsx)(G,{type:`search`,value:_,onChange:e=>v(e.target.value),placeholder:g(`slackChannelList.searchPlaceholder`),"aria-label":g(`slackChannelList.searchAria`),leftIcon:(0,J.jsx)(z,{className:`h-4 w-4`}),fullWidth:!0})}),(0,J.jsx)(`div`,{className:`flex items-center gap-2`,role:`group`,"aria-label":g(`slackChannelList.filterGroupAria`),children:it.map(({value:e,labelKey:t})=>{let n=y===e,r=e===null?x.length:C[e];return(0,J.jsx)(`button`,{type:`button`,"aria-pressed":n,onClick:()=>b(e),className:p(`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:g(t,{count:r})},e??`all`)})})]}),S.length===0?(0,J.jsx)(m,{as:`span`,variant:`body-small-lighter`,className:`py-4 text-center text-[color:var(--content-tertiary)]`,children:g(`slackChannelList.noMatches`)}):S.length>ot?(0,J.jsx)(`div`,{className:`h-96`,children:(0,J.jsx)(ie,{items:S,computeItemKey:(e,t)=>t.id,itemContent:(e,t)=>(0,J.jsx)(lt,{channel:t,pending:d.has(t.id),overridesLoading:l,overridesError:u,defaultTier:s,accessControls:c,tierOverride:o?.[t.id],onTierChange:e=>f?.(t.id,e),onReset:()=>h?.(t.id)}),className:`h-full`})}):(0,J.jsx)(`div`,{className:`max-h-96 overflow-y-auto`,children:S.map(e=>(0,J.jsx)(lt,{channel:e,pending:d.has(e.id),overridesLoading:l,overridesError:u,defaultTier:s,accessControls:c,tierOverride:o?.[e.id],onTierChange:t=>f?.(e.id,t),onReset:()=>h?.(e.id)},e.id))})]})]})}function lt({channel:e,pending:n,overridesLoading:r,overridesError:i,defaultTier:a,accessControls:o,tierOverride:s,onTierChange:c,onReset:l}){let{t:u}=t(`channels`),d=Q(e);if(d===`dm`)return null;let f=at[d],p=rt(e),m=`[&+&]:border-t [&+&]:border-[var(--border-base)]`;return o?(0,J.jsx)(_,{className:m,leading:(0,J.jsx)(f,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),title:e.name,subtitle:p??void 0,trailing:(0,J.jsx)(`div`,{className:`w-40 sm:w-48`,children:(0,J.jsx)($e,{tier:s,defaultTier:a,disabled:n||r||i,onTierChange:c,onReset:l,"aria-label":u(`slackChannelList.accessAria`,{channel:e.name})})})}):(0,J.jsx)(_,{className:m,leading:(0,J.jsx)(f,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),title:e.name,trailing:p==null?void 0:(0,J.jsx)(`span`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:p})})}function ut(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 dt({defaultTier:e}){let{t:n}=t(`channels`),r=Y(e??void 0)??null;return(0,J.jsx)(`div`,{className:`flex flex-col gap-2 px-4 py-3`,children:(0,J.jsx)(`ul`,{className:`grid gap-x-6 gap-y-3 sm:grid-cols-2`,children:[...qe].reverse().map(e=>{let t=X[e];return(0,J.jsxs)(`li`,{className:`flex flex-col gap-0.5`,children:[(0,J.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,J.jsx)(Qe,{color:t.dotColor}),(0,J.jsx)(m,{as:`span`,variant:`body-small-emphasised`,children:t.label}),e===r?(0,J.jsx)(m,{as:`span`,variant:`body-small-default`,className:`text-[color:var(--content-tertiary)]`,children:n(`slackChannelTierLegend.defaultMarker`)}):null]}),(0,J.jsx)(m,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:ut(e)})]},e)})})})}var ft=[{bucket:`channels`,icon:E,title:`Channels`,description:`Public and private channels`},{bucket:`dm`,icon:re,title:`Direct messages`,description:`One-on-one DMs`}];function pt({assistantName:e,globalDefaultTier:n,bucketTiers:r,loading:i,error:a,pendingBuckets:o,onBucketChange:s,onBucketReset:l}){let{t:u}=t(`channels`);return(0,J.jsxs)(h.Root,{children:[(0,J.jsx)(h.Header,{children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[u(`slackChannelTypeDefaults.heading`),(0,J.jsx)(m,{as:`p`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:(0,J.jsx)(ce,{i18nKey:`slackChannelTypeDefaults.subtitle`,ns:`channels`,values:{assistant:e},components:{trustRules:(0,J.jsx)(c,{to:ue.settings.privacy,className:`text-[var(--content-link)] underline hover:text-[var(--content-link-hover)]`})}})})]})}),(0,J.jsx)(h.Body,{className:`py-1`,children:ft.map(({bucket:e,icon:t,title:c,description:d})=>{let f=e===`dm`?r?.channels??n:n;return(0,J.jsx)(_,{className:`[&+&]:border-t [&+&]:border-[var(--border-base)]`,leading:(0,J.jsx)(t,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),title:c,subtitle:d,trailing:(0,J.jsx)(`div`,{className:`w-40 sm:w-48`,children:(0,J.jsx)($e,{tier:r?.[e],defaultTier:f,disabled:i||a||o.has(e),onTierChange:t=>s(e,t),onReset:()=>l(e),"aria-label":u(`slackChannelTypeDefaults.bucketAria`,{bucket:c})})})},e)})}),(0,J.jsx)(h.Footer,{className:`p-0`,children:(0,J.jsx)(dt,{defaultTier:n})})]})}var mt=`0.11.0`;function ht(){return le(mt)}var gt=new Set([404,501]);function _t(e){let t=xe(e);return t!==void 0&&gt.has(t)}function vt(e,t,n){return Z.map(r=>({selector:{scope:`channel`,adapter:e,channelExternalId:t},contactType:r,threshold:n}))}function yt(e,t,n){return e.selector.scope===`channel`&&e.selector.adapter===t&&e.selector.channelExternalId===n}function bt(e,t){return t===`channels`?{scope:`adapter`,adapter:e}:{scope:`channel_type`,adapter:e,channelType:`dm`}}function xt(e,t,n){let r=bt(e,t);return Z.map(e=>({selector:r,contactType:e,threshold:n}))}function St({assistantId:e,adapter:t}){let n=l(),r=ht()&&!!e,i=(0,q.useMemo)(()=>({path:{assistant_id:e}}),[e]),a=(0,q.useMemo)(()=>b(i),[i]),o=(0,q.useMemo)(()=>[`channel-permission-resolve`,e,t],[e,t]),s=u({...M(i),enabled:r}),c=s.data?.cells,f=(0,q.useMemo)(()=>c?Je(c,t):void 0,[c,t]),p=(0,q.useMemo)(()=>c?{channels:Xe(c,t,`channels`),dm:Xe(c,t,`dm`)}:void 0,[c,t]),m=u({queryKey:o,queryFn:async()=>{let{data:e}=await pe({...i,body:{adapter:t,contactType:`trusted_contact`},throwOnError:!0});return e.resolved?.threshold??null},enabled:r,retry:!1,staleTime:3e4}),h=(e,t)=>{let r=n.getQueryData(a),i=Date.now();return n.setQueryData(a,n=>({cells:[...(n?.cells??[]).filter(t=>!e(t)),...t.map(e=>({...e,updatedAt:i}))]})),{previous:r}},g=d({mutationFn:async({channelExternalId:e,tier:n})=>{await Promise.all(vt(t,e,n).map(e=>he({...i,body:e,throwOnError:!0})))},onMutate:({channelExternalId:e,tier:n})=>h(n=>yt(n,t,e),vt(t,e,n)),onError:(e,t,r)=>{n.setQueryData(a,r?.previous),K(`Failed to save channel settings`)(e)},onSettled:()=>n.invalidateQueries({queryKey:a})}),_=d({mutationFn:async({channelExternalId:e})=>{await Promise.all(Z.map(n=>me({...i,body:{selector:{scope:`channel`,adapter:t,channelExternalId:e},contactType:n},throwOnError:!0})))},onMutate:({channelExternalId:e})=>h(n=>yt(n,t,e),[]),onError:(e,t,r)=>{n.setQueryData(a,r?.previous),K(`Failed to reset channel settings`)(e)},onSettled:()=>n.invalidateQueries({queryKey:a})}),v=d({mutationFn:async({bucket:e,tier:n})=>{await Promise.all(xt(t,e,n).map(e=>he({...i,body:e,throwOnError:!0})))},onMutate:({bucket:e,tier:n})=>h(n=>Ye(n,t,e),xt(t,e,n)),onError:(e,t,r)=>{n.setQueryData(a,r?.previous),K(`Failed to save the default`)(e)},onSettled:(e,t,{bucket:r})=>{n.invalidateQueries({queryKey:a}),r===`channels`&&n.invalidateQueries({queryKey:o})}}),y=d({mutationFn:async({bucket:e})=>{let n=bt(t,e);await Promise.all(Z.map(e=>me({...i,body:{selector:n,contactType:e},throwOnError:!0})))},onMutate:({bucket:e})=>h(n=>Ye(n,t,e),[]),onError:(e,t,r)=>{n.setQueryData(a,r?.previous),K(`Failed to reset the default`)(e)},onSettled:(e,t,{bucket:r})=>{n.invalidateQueries({queryKey:a}),r===`channels`&&n.invalidateQueries({queryKey:o})}}),x=(0,q.useMemo)(()=>{let e=new Set;return g.isPending&&g.variables&&e.add(g.variables.channelExternalId),_.isPending&&_.variables&&e.add(_.variables.channelExternalId),e},[g.isPending,g.variables,_.isPending,_.variables]),S=(0,q.useMemo)(()=>{let e=new Set;return v.isPending&&v.variables&&e.add(v.variables.bucket),y.isPending&&y.variables&&e.add(y.variables.bucket),e},[v.isPending,v.variables,y.isPending,y.variables]);return!r||s.isError&&_t(s.error)?{supported:!1,tierOverrides:void 0,defaultCellTier:void 0,bucketTiers:void 0,pendingChannelIds:new Set,pendingBuckets:new Set,isLoading:!1,isError:!1,onTierChange:void 0,onTierReset:void 0,onBucketChange:void 0,onBucketReset:void 0}:{supported:!0,tierOverrides:f,defaultCellTier:m.data,bucketTiers:p,pendingChannelIds:x,pendingBuckets:S,isLoading:s.isPending,isError:s.isError,onTierChange:(e,t)=>g.mutate({channelExternalId:e,tier:t}),onTierReset:e=>{f?.[e]!==void 0&&_.mutate({channelExternalId:e})},onBucketChange:(e,t)=>v.mutate({bucket:e,tier:t}),onBucketReset:e=>{p?.[e]!==void 0&&y.mutate({bucket:e})}}}function Ct({assistantId:e,assistantDisplayName:n,slackHandle:r}){let{t:i}=t(`channels`),a=u({...k(e),enabled:!!e,select:e=>e.channels}),o=St({assistantId:e,adapter:`slack`}),s=u({queryKey:[`thresholds`,e],queryFn:()=>P(e),enabled:o.supported&&!!e,staleTime:3e4}).data?.interactive??null,c=o.defaultCellTier===void 0?null:o.defaultCellTier??s,l=(0,J.jsx)(ct,{assistantDisplayName:n,slackHandle:r,accessControlsSupported:o.supported,defaultTier:c,channels:a.data,loading:a.isPending,error:a.isError,tierOverrides:o.tierOverrides,tierOverridesLoading:o.isLoading,tierOverridesError:o.isError,pendingChannelIds:o.pendingChannelIds,onTierChange:o.onTierChange,onTierReset:o.onTierReset});return!o.supported||!o.onBucketChange||!o.onBucketReset?(0,J.jsx)(h.Root,{noPadding:!0,clipContents:!0,children:l}):(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[o.isError?(0,J.jsx)(B,{tone:`error`,children:i(`slackChannelSection.overridesLoadFailed`)}):null,(0,J.jsx)(pt,{assistantName:n,globalDefaultTier:s,bucketTiers:o.bucketTiers,loading:o.isLoading,error:o.isError,pendingBuckets:o.pendingBuckets,onBucketChange:o.onBucketChange,onBucketReset:o.onBucketReset}),(0,J.jsx)(h.Root,{noPadding:!0,clipContents:!0,children:(0,J.jsx)(U.Root,{type:`single`,collapsible:!0,children:(0,J.jsxs)(U.Item,{value:`per-channel-overrides`,children:[(0,J.jsxs)(U.Trigger,{className:`group justify-between gap-2 px-4 py-3`,children:[(0,J.jsx)(m,{as:`span`,variant:`body-small-emphasised`,children:i(`slackChannelSection.perChannelOverrides`)}),(0,J.jsx)(ne,{"aria-hidden":`true`,className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform group-data-[state=open]:rotate-180`})]}),(0,J.jsx)(U.Content,{className:`border-[var(--border-base)] data-[state=open]:border-t`,children:l})]})})})]})}function wt({slackHandle:e,health:n,disconnectPending:r=!1,onDisconnect:a,children:o}){let{t:s}=t(`channels`);return(0,J.jsxs)(h.Root,{children:[(0,J.jsx)(h.Header,{children:(0,J.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,J.jsx)(`img`,{src:_e(`/images/integrations/slack.svg`),alt:``,className:`size-8 rounded-lg bg-[var(--surface-sunken)] p-1`}),e?(0,J.jsx)(m,{as:`span`,variant:`body-medium-default`,children:e}):null,(0,J.jsx)(We,{health:n}),(0,J.jsx)(`div`,{className:`ml-auto`,children:(0,J.jsx)(i,{type:`button`,variant:`ghost`,onClick:a,disabled:!a||r,children:s(r?`connectionCard.disconnecting`:`connectionCard.disconnect`)})})]})}),(0,J.jsx)(h.Body,{children:o})]})}function Tt({threadMode:e,threadModePending:n=!1,onThreadModeChange:r}){let{t:i}=t(`channels`);return(0,J.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,J.jsx)(m,{as:`span`,variant:`body-small-emphasised`,className:`text-[color:var(--content-secondary)]`,children:i(`slackThreadBehavior.heading`)}),(0,J.jsxs)(H,{value:e??`mention_then_thread`,onValueChange:e=>r?.(e),disabled:n||!r,"aria-label":i(`slackThreadBehavior.selectAria`),children:[(0,J.jsx)(V,{value:`mention_only`,label:i(`slackThreadBehavior.mentionsOnly`),helperText:i(`slackThreadBehavior.mentionsOnlyHelp`)}),(0,J.jsx)(V,{value:`mention_then_thread`,label:i(`slackThreadBehavior.followThreads`),helperText:i(`slackThreadBehavior.followThreadsHelp`)})]})]})}function Et({onSave:e}){let{t:n}=t(`channels`),[r,a]=(0,q.useState)(``),[o,s]=(0,q.useState)(``),[c,l]=(0,q.useState)(!1),[u,d]=(0,q.useState)(null),f=r.trim().length>0&&o.trim().length>0&&!c;return(0,J.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,J.jsx)(G,{label:n(`twilioCredentialEntry.accountSid`),type:`text`,value:r,onChange:e=>a(e.target.value),placeholder:`ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`,disabled:c,fullWidth:!0}),(0,J.jsx)(G,{label:n(`twilioCredentialEntry.authToken`),type:`password`,value:o,onChange:e=>s(e.target.value),placeholder:n(`twilioCredentialEntry.authTokenPlaceholder`),disabled:c,fullWidth:!0}),u?(0,J.jsx)(`p`,{className:`text-label-small`,style:{color:`var(--content-negative)`},children:u}):null,(0,J.jsx)(`div`,{children:(0,J.jsx)(i,{type:`button`,onClick:async()=>{if(!(!e||!f)){l(!0),d(null);try{await e(r.trim(),o.trim()),a(``),s(``)}catch(e){d(e instanceof Error?e.message:`Failed to save`)}finally{l(!1)}}},disabled:!f,children:n(c?`twilioCredentialEntry.saving`:`twilioCredentialEntry.save`)})})]})}function Dt({channel:e,assistantId:n,assistantName:r,assistantDisplayName:a,pending:o,initialManualEntry:s=!1,onSetup:c,onDisconnect:l,onSaveTelegramToken:u,telegramSaveStatus:d,telegramSaveError:f,onSaveSlackConfig:p,slackSaveStatus:m,slackSaveError:h,slackThreadMode:g,slackThreadModePending:_=!1,onSlackThreadModeChange:v,onSaveTwilioCredentials:y,policy:b,policySaving:x=!1,policyLoading:S=!1,policyError:C=!1,onPolicyChange:w}){let{t:T}=t(`channels`),E=e.configured,D=e.status===`incomplete`,[k,j]=(0,q.useState)(s);if(e.key===`slack`)return(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[E?(0,J.jsx)(wt,{slackHandle:e.address,health:e.health,disconnectPending:o,onDisconnect:l,children:(0,J.jsx)(Tt,{threadMode:g,threadModePending:_,onThreadModeChange:v})}):(0,J.jsx)(Ke,{children:(0,J.jsx)(ye,{assistantName:r,onSave:p,saveStatus:m,saveError:h})}),E?(0,J.jsx)(Ct,{assistantId:n,assistantDisplayName:a,slackHandle:e.address}):null]});let M=Re[e.key];return(0,J.jsx)(`div`,{className:`flex flex-col gap-4`,children:E?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(Ge,{health:e.health,address:e.address,pending:o,onDisconnect:l}),M.hasTrustFloorControl&&w?(0,J.jsx)(Ue,{assistantDisplayName:a,policy:b,saving:x,loading:S,error:C,onChange:w}):null]}):k?e.key===`telegram`?(0,J.jsx)(be,{assistantName:r,saveStatus:d,saveError:f,onSave:u}):(0,J.jsx)(Et,{onSave:y}):(0,J.jsx)(He,{icon:(0,J.jsx)(A,{channelId:e.key,className:`h-6 w-6`}),title:T(D?`channelPanel.incompleteTitle`:`channelPanel.disconnectedTitle`,{channel:O(e.key)}),description:D?e.warning??T(`channelPanel.incompleteDescription`,{channel:O(e.key)}):M.disconnectedPitchKey?T(M.disconnectedPitchKey,{assistant:a}):void 0,action:(0,J.jsxs)(`div`,{className:`flex flex-col items-center gap-1`,children:[(0,J.jsx)(i,{type:`button`,variant:`outlined`,onClick:c,disabled:!c||o,children:T(o?`channelPanel.opening`:D?`channelPanel.finishSetup`:`channelPanel.setUp`)}),(0,J.jsx)(i,{type:`button`,variant:`link`,onClick:()=>j(!0),children:T(`channelPanel.connectManually`)})]})})})}var Ot=new Set([404,501]),kt=new Set([401,403]);function At(e){let t=xe(e);return t!==void 0&&Ot.has(t)?`unsupported`:t!==void 0&&kt.has(t)?`forbidden`:`unreadable`}function jt(e,t,n){let r=e===`unreadable`?t:n;return r?r instanceof Error&&r.message?r.message:`Something went wrong`:null}function Mt(e,t){let n=l(),r={assistant_id:e},i=u({...ee({path:r}),enabled:!!e,retry:Se}),a=()=>n.invalidateQueries({queryKey:y({path:r})}),o=d({...S(),onSuccess:a}),s=d({...v(),onSuccess:a}),c=i.data?.sources?.find(e=>e.source===t),f;f=i.isError?At(i.error):i.isPending?`loading`:c?c.state:`none`;let p=jt(f,i.error,o.error??s.error);return{status:f,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:p}}var Nt=`plugin`;function Pt(e){let t=l(),n=De(),r=(0,q.useMemo)(()=>({path:{assistant_id:e}}),[e]),i=(0,q.useMemo)(()=>te(r),[r]),a=u({...j(r),enabled:n&&!!e,select:Pe}),o=d({mutationFn:t=>Me(e,Nt,t),onSuccess:()=>t.invalidateQueries({queryKey:i}),onError:K(`Failed to save channel policy`)}),s=(0,q.useCallback)(e=>{o.mutate(e)},[o]);return n?{policy:a.data?.find(e=>e.channelType===Nt)?.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 Ft({channel:e,assistantId:n,assistantDisplayName:r}){let{t:o}=t(`channels`),s=a(),c=Mt(n,e.plugin),l=Pt(n);return(0,J.jsxs)(`div`,{className:`relative flex flex-col items-center gap-3 py-10 text-center`,children:[(0,J.jsx)(i,{className:`absolute top-0 right-0`,variant:`ghost`,size:`compact`,iconOnly:(0,J.jsx)(R,{}),tooltip:o(`pluginChannelPanel.navigateToPluginPage`),"aria-label":o(`pluginChannelPanel.navigateToPluginPage`),onClick:()=>s(`/assistant/plugins/${e.plugin}`)}),(0,J.jsx)(w,{icon:e.icon,className:`h-8 w-8 text-[color:var(--content-secondary)]`}),(0,J.jsx)(`h3`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:e.label}),e.description?(0,J.jsx)(`p`,{className:`max-w-[420px] text-body-medium-default`,style:{color:`var(--content-secondary)`},children:e.description}):null,(0,J.jsx)(It,{channel:e,ingress:c}),l.onChange?(0,J.jsx)(`div`,{className:`w-full max-w-[420px] text-left`,children:(0,J.jsx)(Ue,{assistantDisplayName:r,policy:l.policy,saving:l.isSaving,loading:l.isLoading,error:l.isError,onChange:l.onChange})}):null]})}function It({channel:e,ingress:n}){let{t:r}=t(`channels`);switch(n.status){case`loading`:return(0,J.jsx)($,{children:r(`pluginChannelPanel.ingressLoading`,{channel:e.label})});case`unsupported`:return(0,J.jsx)($,{children:r(`pluginChannelPanel.ingressUnsupported`)});case`forbidden`:return(0,J.jsx)($,{children:r(`pluginChannelPanel.ingressForbidden`)});case`unreadable`:return(0,J.jsxs)($,{children:[r(`pluginChannelPanel.ingressUnreadable`,{channel:e.label}),n.error?` ${n.error}`:``]});case`none`:return(0,J.jsx)($,{children:r(`pluginChannelPanel.ingressNone`,{channel:e.label})});case`pending`:case`approved`:return(0,J.jsx)(Lt,{ingress:n})}}function Lt({ingress:e}){let{t:n}=t(`channels`),a=e.status===`approved`;return(0,J.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[(0,J.jsx)(W,{tone:a?`positive`:`neutral`,children:n(a?`pluginChannelPanel.ingressApprovedTag`:`pluginChannelPanel.ingressPendingTag`)}),(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,J.jsx)(i,{onClick:a?e.revoke:e.approve,disabled:e.deciding,variant:a?`outlined`:`primary`,children:n(a?`pluginChannelPanel.revokeChannel`:`pluginChannelPanel.approveChannel`)}),(0,J.jsx)(r,{content:n(`pluginChannelPanel.approveChannelInfo`),children:(0,J.jsx)(`span`,{tabIndex:0,className:`inline-flex cursor-default p-0.5 text-[color:var(--content-secondary)]`,"aria-label":n(`pluginChannelPanel.approveChannelInfo`),children:(0,J.jsx)(N,{className:`h-4 w-4`,"aria-hidden":`true`})})})]}),e.error?(0,J.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,J.jsx)(`p`,{className:`max-w-[420px] text-body-small-default`,style:{color:`var(--content-secondary)`},children:e})}var Rt={no_one:{title:`Block all messages?`,message:`Setting this channel to “No one” hard-denies every inbound message, including messages from you.
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{v as t}from"./i18n-BtV8MCsZ.js";import{t as n}from"./react-DJZBPgpf.js";import{n as r,t as i}from"./button-B1kEAcLt.js";import{d as a,h as o,p as s,t as c}from"./chunk-5KNZJZUH-CPFsMQoz.js";import{n as l}from"./QueryClientProvider-BPZM68-A.js";import{t as u}from"./useQuery-BtL9k7Sh.js";import{t as d}from"./useMutation-Cl7cazkm.js";import{t as f}from"./jsx-runtime-COOF1INC.js";import{t as p}from"./cn-naJKasky.js";import{t as m}from"./typography-SdxpXI_m.js";import{t as h}from"./card-B4b9cF6X.js";import{n as g,t as _}from"./list-row-BvCm9O6y.js";import{C as v,S as y,T as b,_ as x,b as S,c as C,d as w,g as T,k as E,l as D,m as O,o as k,u as A,v as j,w as M,x as ee,y as te}from"./use-save-twilio-credentials-Zjhi1c0P.js";import{t as ne}from"./chevron-down-D437oaYt.js";import{t as N}from"./info-C-HjpKAE.js";import{o as P,r as F,t as I,u as L}from"./threshold-presets-DF7FTTlD.js";import{t as re}from"./message-square-XpKWNcyv.js";import{t as R}from"./plug-AMxPbUcz.js";import{t as z}from"./search-DYHr3LM9.js";import{t as B}from"./notice-BHeYlKvv.js";import{B as V,V as H,c as ie,s as U}from"./src-BKET5Cno.js";import{t as W}from"./tag-DAsImP7W.js";import{t as G}from"./input-ChbJ2nzd.js";import{t as ae}from"./confirm-dialog-EPYSBP_B.js";import{t as oe}from"./select-DmdFZj4l.js";import{t as se}from"./assistant-identity-store-DBkGjqzV.js";import{t as ce}from"./Trans-CBhhVbOk.js";import{i as le}from"./utils-CAI1IDgW.js";import{f as ue}from"./routes-C6ueuiMd.js";import{c as de}from"./react-query.gen-C_GLKG7m.js";import{r as fe}from"./conversation-navigation-Ck_iLhjv.js";import{l as pe,o as me,s as he}from"./sdk.gen-BuAyyHNm.js";import{t as ge}from"./assistant-feature-flag-store-Co_o5uD3.js";import{t as _e}from"./public-asset-Dk1mdzbh.js";import{t as ve}from"./use-active-assistant-id-lxYJu99R.js";import{n as ye,t as be}from"./telegram-setup-wizard-BT6u6vcb.js";import{n as xe,r as Se}from"./index-Gjnx86x6.js";import{t as Ce}from"./detail-card-D9EAxXI8.js";import{n as we,r as Te,t as Ee}from"./use-side-list-room-BT-2EM5d.js";import{a as De,c as K,d as Oe,f as ke,i as Ae,n as je,o as Me,r as Ne,s as Pe,t as Fe,u as Ie}from"./use-invite-link-dialog-CvA_-72H.js";var q=e(n(),1);function Le(){let{channelId:e}=s(),t=a();return{selected:e,select:(0,q.useCallback)(e=>{t(`/assistant/channels/${encodeURIComponent(e)}`,{replace:!0})},[t])}}var Re={slack:{labelKey:`channelMeta.slack.label`,disconnectMessageKey:`channelMeta.slack.disconnectMessage`,hasTrustFloorControl:!1},telegram:{labelKey:`channelMeta.telegram.label`,disconnectMessageKey:`channelMeta.telegram.disconnectMessage`,hasTrustFloorControl:!0,disconnectedPitchKey:`channelMeta.telegram.disconnectedPitch`},phone:{labelKey:`channelMeta.phone.label`,disconnectMessageKey:`channelMeta.phone.disconnectMessage`,hasTrustFloorControl:!0,disconnectedPitchKey:`channelMeta.phone.disconnectedPitch`}},J=f();function ze({channels:e,pluginChannels:t=[],selectedKey:n,onSelect:r}){return(0,J.jsx)(h.Root,{className:`flex h-full flex-col overflow-hidden`,children:(0,J.jsx)(h.Body,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-4`,children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[e.map(e=>(0,J.jsx)(Be,{channel:e,selected:e.key===n,onClick:()=>r(e.key)},e.key)),t.map(e=>(0,J.jsx)(Ve,{channel:e,selected:e.key===n,onClick:()=>r(e.key)},e.key))]})})})}function Be({channel:e,selected:t,onClick:n}){let r=e.status===`ready`,i=O(e.key),a=r?`Connected`:`Not connected`;return(0,J.jsx)(g,{asChild:!0,active:t,"aria-label":`${i}, ${a}`,children:(0,J.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,J.jsx)(A,{channelId:e.key,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,J.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default`,children:i}),(0,J.jsx)(`span`,{className:`flex shrink-0 items-center`,children:(0,J.jsx)(W,{tone:r?`positive`:`neutral`,children:a})})]})})}function Ve({channel:e,selected:n,onClick:r}){let{t:i}=t(`channels`);return(0,J.jsx)(g,{asChild:!0,active:n,"aria-label":i(`channelAdapterList.pluginChannelAria`,{channel:e.label}),children:(0,J.jsxs)(`button`,{type:`button`,onClick:r,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:[(0,J.jsx)(w,{icon:e.icon,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,J.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default`,children:e.label}),(0,J.jsx)(R,{"aria-hidden":!0,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`})]})})}function He({icon:e,title:t,description:n,action:r,className:i}){return(0,J.jsxs)(`div`,{className:p(`flex flex-col items-center justify-center gap-3 px-4 py-12 text-center`,i),children:[e?(0,J.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,J.jsx)(`h3`,{className:`text-title-small text-[var(--content-default)]`,children:t}),n?(0,J.jsx)(`p`,{className:`max-w-md text-body-medium-lighter text-[color:var(--content-tertiary)]`,children:n}):null,r?(0,J.jsx)(`div`,{className:`mt-1`,children:r}):null]})}function Ue({assistantDisplayName:e,policy:n,saving:r=!1,loading:i=!1,error:a=!1,onChange:o}){let{t:s}=t(`channels`),c=n??`trusted_contacts`,l=ke(e),u=Ie.map(e=>({value:e,label:Oe[e],tooltip:l[e]}));return(0,J.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,J.jsx)(m,{as:`span`,variant:`body-small-emphasised`,className:`text-[color:var(--content-secondary)]`,children:s(`channelTrustFloor.heading`,{assistant:e})}),i?(0,J.jsx)(m,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:s(`channelTrustFloor.loading`)}):a?(0,J.jsx)(m,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-negative)]`,children:s(`channelTrustFloor.loadFailed`)}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{style:{maxWidth:280},children:(0,J.jsx)(oe,{value:c,onChange:o,options:u,disabled:r,"aria-label":s(`channelTrustFloor.selectAria`,{assistant:e})})}),(0,J.jsx)(m,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:l[c]}),c===`trusted_contacts`?(0,J.jsx)(B,{tone:`info`,className:`max-w-lg`,children:s(`channelTrustFloor.trustedContactsNotice`,{assistant:e})}):null]})]})}function We({health:e}){let{Icon:t,label:n,tone:r}=T(e);return(0,J.jsx)(W,{tone:r,leftIcon:(0,J.jsx)(t,{}),children:n})}function Ge({address:e,health:n,pending:r,onDisconnect:a}){let{t:o}=t(`channels`);return(0,J.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,J.jsx)(We,{health:n}),e?(0,J.jsx)(`span`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e}):null,(0,J.jsx)(`div`,{className:`ml-auto`,children:(0,J.jsx)(i,{type:`button`,variant:`danger`,onClick:a,disabled:!a||r,children:o(r?`connectionCard.disconnecting`:`connectionCard.disconnect`)})})]})}function Ke({children:e}){let{t:n}=t(`channels`);return(0,J.jsxs)(h.Root,{children:[(0,J.jsx)(h.Header,{children:(0,J.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,J.jsx)(`img`,{src:_e(`/images/integrations/slack.svg`),alt:``,className:`size-8 rounded-lg bg-[var(--surface-sunken)] p-1`}),(0,J.jsx)(m,{as:`span`,variant:`body-medium-default`,children:n(`slackChannelCard.setupHeading`)})]})}),(0,J.jsx)(h.Body,{children:e})]})}I.map(e=>e.riskThreshold);var qe=[`none`,`low`];function Y(e){if(e!==void 0)return e===`none`?`none`:`low`}var X={none:{label:F(`none`).label,sublabel:`asks every time`,tone:`negative`,dotColor:`var(--system-negative-strong)`},low:{label:F(`low`).label,sublabel:`safe lookups`,tone:`warning`,dotColor:`var(--system-mid-strong)`},medium:{label:F(`medium`).label,sublabel:`broader lookups`,tone:`info`,dotColor:`var(--system-info-strong)`},high:{label:F(`high`).label,sublabel:`any lookup`,tone:`positive`,dotColor:`var(--system-positive-strong)`}},Z=[`trusted_contact`,`unverified_contact`,`unknown`];function Je(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 Ye(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 Xe(e,t,n){let r;for(let i of e)Ye(i,t,n)&&(i.contactType===`trusted_contact`||r===void 0)&&(r=i.threshold);return r}var Ze=`__default__`;function Qe({color:e}){return(0,J.jsx)(`span`,{"aria-hidden":`true`,className:`h-1.5 w-1.5 shrink-0 rounded-full`,style:{backgroundColor:e}})}function $e({tier:e,defaultTier:n,disabled:r,onTierChange:i,onReset:a,"aria-label":o}){let{t:s}=t(`channels`),c=Y(e??n??void 0),l=Y(n??void 0)??null,u=qe.map(e=>({value:e,label:X[e].label,icon:(0,J.jsx)(Qe,{color:X[e].dotColor}),suffix:e===l?(0,J.jsx)(`span`,{className:`text-[color:var(--content-tertiary)]`,children:s(`tierPicker.defaultSuffix`)}):void 0,tooltip:X[e].sublabel}));return u.unshift({value:Ze,label:`Default`,icon:(0,J.jsx)(Qe,{color:`transparent`}),tooltip:`follows the default level`}),(0,J.jsx)(oe,{value:c??``,onChange:e=>{e===Ze||e===l?a():i(e)},options:u,placeholder:s(`tierPicker.defaultPlaceholder`),disabled:r,size:`compact`,menuAlign:`end`,"aria-label":o})}function Q(e){return e.type===`dm`?`dm`:e.isPrivate?`private`:`public`}function et(e){return e.filter(e=>Q(e)!==`dm`)}function tt(e,t,n){let r=t.trim().toLowerCase();return e.filter(e=>(n===null||Q(e)===n)&&(r===``||e.name.toLowerCase().includes(r))).sort((e,t)=>e.name.localeCompare(t.name))}function nt(e){let t={public:0,private:0,dm:0};for(let n of e)t[Q(n)]+=1;return t}function rt(e){return e.memberCount==null?null:e.memberCount===1?`1 member`:`${e.memberCount} members`}var it=[{value:null,labelKey:`slackChannelList.filterAll`},{value:`public`,labelKey:`slackChannelList.filterPublic`},{value:`private`,labelKey:`slackChannelList.filterPrivate`}],at={public:E,private:L},ot=100,st=new Set;function ct({assistantDisplayName:e,slackHandle:n,channels:r,loading:i=!1,error:a=!1,tierOverrides:o,defaultTier:s=null,accessControlsSupported:c=!0,tierOverridesLoading:l=!1,tierOverridesError:u=!1,pendingChannelIds:d=st,onTierChange:f,onTierReset:h}){let{t:g}=t(`channels`),[_,v]=(0,q.useState)(``),[y,b]=(0,q.useState)(null),x=(0,q.useMemo)(()=>et(r??[]),[r]),S=(0,q.useMemo)(()=>tt(x,_,y),[x,_,y]),C=(0,q.useMemo)(()=>nt(x),[x]);return(0,J.jsxs)(`div`,{className:`flex flex-col gap-3 p-4`,children:[(0,J.jsx)(m,{as:`p`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:(0,J.jsx)(ce,{i18nKey:`slackChannelList.presenceHint`,ns:`channels`,values:{handle:n??`@${e}`,assistant:e},components:{invite:(0,J.jsx)(`code`,{className:`text-[color:var(--content-secondary)]`}),remove:(0,J.jsx)(`code`,{className:`text-[color:var(--content-secondary)]`})}})}),i?(0,J.jsx)(m,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:g(`slackChannelList.loading`)}):a?(0,J.jsx)(m,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-negative)]`,children:g(`slackChannelList.loadFailed`)}):x.length===0?(0,J.jsx)(He,{icon:(0,J.jsx)(E,{className:`h-6 w-6`}),title:g(`slackChannelList.emptyTitle`)}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,J.jsx)(`div`,{className:`min-w-56 flex-1`,children:(0,J.jsx)(G,{type:`search`,value:_,onChange:e=>v(e.target.value),placeholder:g(`slackChannelList.searchPlaceholder`),"aria-label":g(`slackChannelList.searchAria`),leftIcon:(0,J.jsx)(z,{className:`h-4 w-4`}),fullWidth:!0})}),(0,J.jsx)(`div`,{className:`flex items-center gap-2`,role:`group`,"aria-label":g(`slackChannelList.filterGroupAria`),children:it.map(({value:e,labelKey:t})=>{let n=y===e,r=e===null?x.length:C[e];return(0,J.jsx)(`button`,{type:`button`,"aria-pressed":n,onClick:()=>b(e),className:p(`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:g(t,{count:r})},e??`all`)})})]}),S.length===0?(0,J.jsx)(m,{as:`span`,variant:`body-small-lighter`,className:`py-4 text-center text-[color:var(--content-tertiary)]`,children:g(`slackChannelList.noMatches`)}):S.length>ot?(0,J.jsx)(`div`,{className:`h-96`,children:(0,J.jsx)(ie,{items:S,computeItemKey:(e,t)=>t.id,itemContent:(e,t)=>(0,J.jsx)(lt,{channel:t,pending:d.has(t.id),overridesLoading:l,overridesError:u,defaultTier:s,accessControls:c,tierOverride:o?.[t.id],onTierChange:e=>f?.(t.id,e),onReset:()=>h?.(t.id)}),className:`h-full`})}):(0,J.jsx)(`div`,{className:`max-h-96 overflow-y-auto`,children:S.map(e=>(0,J.jsx)(lt,{channel:e,pending:d.has(e.id),overridesLoading:l,overridesError:u,defaultTier:s,accessControls:c,tierOverride:o?.[e.id],onTierChange:t=>f?.(e.id,t),onReset:()=>h?.(e.id)},e.id))})]})]})}function lt({channel:e,pending:n,overridesLoading:r,overridesError:i,defaultTier:a,accessControls:o,tierOverride:s,onTierChange:c,onReset:l}){let{t:u}=t(`channels`),d=Q(e);if(d===`dm`)return null;let f=at[d],p=rt(e),m=`[&+&]:border-t [&+&]:border-[var(--border-base)]`;return o?(0,J.jsx)(_,{className:m,leading:(0,J.jsx)(f,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),title:e.name,subtitle:p??void 0,trailing:(0,J.jsx)(`div`,{className:`w-40 sm:w-48`,children:(0,J.jsx)($e,{tier:s,defaultTier:a,disabled:n||r||i,onTierChange:c,onReset:l,"aria-label":u(`slackChannelList.accessAria`,{channel:e.name})})})}):(0,J.jsx)(_,{className:m,leading:(0,J.jsx)(f,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),title:e.name,trailing:p==null?void 0:(0,J.jsx)(`span`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:p})})}function ut(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 dt({defaultTier:e}){let{t:n}=t(`channels`),r=Y(e??void 0)??null;return(0,J.jsx)(`div`,{className:`flex flex-col gap-2 px-4 py-3`,children:(0,J.jsx)(`ul`,{className:`grid gap-x-6 gap-y-3 sm:grid-cols-2`,children:[...qe].reverse().map(e=>{let t=X[e];return(0,J.jsxs)(`li`,{className:`flex flex-col gap-0.5`,children:[(0,J.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,J.jsx)(Qe,{color:t.dotColor}),(0,J.jsx)(m,{as:`span`,variant:`body-small-emphasised`,children:t.label}),e===r?(0,J.jsx)(m,{as:`span`,variant:`body-small-default`,className:`text-[color:var(--content-tertiary)]`,children:n(`slackChannelTierLegend.defaultMarker`)}):null]}),(0,J.jsx)(m,{as:`span`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:ut(e)})]},e)})})})}var ft=[{bucket:`channels`,icon:E,title:`Channels`,description:`Public and private channels`},{bucket:`dm`,icon:re,title:`Direct messages`,description:`One-on-one DMs`}];function pt({assistantName:e,globalDefaultTier:n,bucketTiers:r,loading:i,error:a,pendingBuckets:o,onBucketChange:s,onBucketReset:l}){let{t:u}=t(`channels`);return(0,J.jsxs)(h.Root,{children:[(0,J.jsx)(h.Header,{children:(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[u(`slackChannelTypeDefaults.heading`),(0,J.jsx)(m,{as:`p`,variant:`body-small-lighter`,className:`text-[color:var(--content-tertiary)]`,children:(0,J.jsx)(ce,{i18nKey:`slackChannelTypeDefaults.subtitle`,ns:`channels`,values:{assistant:e},components:{trustRules:(0,J.jsx)(c,{to:ue.settings.privacy,className:`text-[var(--content-link)] underline hover:text-[var(--content-link-hover)]`})}})})]})}),(0,J.jsx)(h.Body,{className:`py-1`,children:ft.map(({bucket:e,icon:t,title:c,description:d})=>{let f=e===`dm`?r?.channels??n:n;return(0,J.jsx)(_,{className:`[&+&]:border-t [&+&]:border-[var(--border-base)]`,leading:(0,J.jsx)(t,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),title:c,subtitle:d,trailing:(0,J.jsx)(`div`,{className:`w-40 sm:w-48`,children:(0,J.jsx)($e,{tier:r?.[e],defaultTier:f,disabled:i||a||o.has(e),onTierChange:t=>s(e,t),onReset:()=>l(e),"aria-label":u(`slackChannelTypeDefaults.bucketAria`,{bucket:c})})})},e)})}),(0,J.jsx)(h.Footer,{className:`p-0`,children:(0,J.jsx)(dt,{defaultTier:n})})]})}var mt=`0.11.0`;function ht(){return le(mt)}var gt=new Set([404,501]);function _t(e){let t=xe(e);return t!==void 0&&gt.has(t)}function vt(e,t,n){return Z.map(r=>({selector:{scope:`channel`,adapter:e,channelExternalId:t},contactType:r,threshold:n}))}function yt(e,t,n){return e.selector.scope===`channel`&&e.selector.adapter===t&&e.selector.channelExternalId===n}function bt(e,t){return t===`channels`?{scope:`adapter`,adapter:e}:{scope:`channel_type`,adapter:e,channelType:`dm`}}function xt(e,t,n){let r=bt(e,t);return Z.map(e=>({selector:r,contactType:e,threshold:n}))}function St({assistantId:e,adapter:t}){let n=l(),r=ht()&&!!e,i=(0,q.useMemo)(()=>({path:{assistant_id:e}}),[e]),a=(0,q.useMemo)(()=>b(i),[i]),o=(0,q.useMemo)(()=>[`channel-permission-resolve`,e,t],[e,t]),s=u({...M(i),enabled:r}),c=s.data?.cells,f=(0,q.useMemo)(()=>c?Je(c,t):void 0,[c,t]),p=(0,q.useMemo)(()=>c?{channels:Xe(c,t,`channels`),dm:Xe(c,t,`dm`)}:void 0,[c,t]),m=u({queryKey:o,queryFn:async()=>{let{data:e}=await pe({...i,body:{adapter:t,contactType:`trusted_contact`},throwOnError:!0});return e.resolved?.threshold??null},enabled:r,retry:!1,staleTime:3e4}),h=(e,t)=>{let r=n.getQueryData(a),i=Date.now();return n.setQueryData(a,n=>({cells:[...(n?.cells??[]).filter(t=>!e(t)),...t.map(e=>({...e,updatedAt:i}))]})),{previous:r}},g=d({mutationFn:async({channelExternalId:e,tier:n})=>{await Promise.all(vt(t,e,n).map(e=>he({...i,body:e,throwOnError:!0})))},onMutate:({channelExternalId:e,tier:n})=>h(n=>yt(n,t,e),vt(t,e,n)),onError:(e,t,r)=>{n.setQueryData(a,r?.previous),K(`Failed to save channel settings`)(e)},onSettled:()=>n.invalidateQueries({queryKey:a})}),_=d({mutationFn:async({channelExternalId:e})=>{await Promise.all(Z.map(n=>me({...i,body:{selector:{scope:`channel`,adapter:t,channelExternalId:e},contactType:n},throwOnError:!0})))},onMutate:({channelExternalId:e})=>h(n=>yt(n,t,e),[]),onError:(e,t,r)=>{n.setQueryData(a,r?.previous),K(`Failed to reset channel settings`)(e)},onSettled:()=>n.invalidateQueries({queryKey:a})}),v=d({mutationFn:async({bucket:e,tier:n})=>{await Promise.all(xt(t,e,n).map(e=>he({...i,body:e,throwOnError:!0})))},onMutate:({bucket:e,tier:n})=>h(n=>Ye(n,t,e),xt(t,e,n)),onError:(e,t,r)=>{n.setQueryData(a,r?.previous),K(`Failed to save the default`)(e)},onSettled:(e,t,{bucket:r})=>{n.invalidateQueries({queryKey:a}),r===`channels`&&n.invalidateQueries({queryKey:o})}}),y=d({mutationFn:async({bucket:e})=>{let n=bt(t,e);await Promise.all(Z.map(e=>me({...i,body:{selector:n,contactType:e},throwOnError:!0})))},onMutate:({bucket:e})=>h(n=>Ye(n,t,e),[]),onError:(e,t,r)=>{n.setQueryData(a,r?.previous),K(`Failed to reset the default`)(e)},onSettled:(e,t,{bucket:r})=>{n.invalidateQueries({queryKey:a}),r===`channels`&&n.invalidateQueries({queryKey:o})}}),x=(0,q.useMemo)(()=>{let e=new Set;return g.isPending&&g.variables&&e.add(g.variables.channelExternalId),_.isPending&&_.variables&&e.add(_.variables.channelExternalId),e},[g.isPending,g.variables,_.isPending,_.variables]),S=(0,q.useMemo)(()=>{let e=new Set;return v.isPending&&v.variables&&e.add(v.variables.bucket),y.isPending&&y.variables&&e.add(y.variables.bucket),e},[v.isPending,v.variables,y.isPending,y.variables]);return!r||s.isError&&_t(s.error)?{supported:!1,tierOverrides:void 0,defaultCellTier:void 0,bucketTiers:void 0,pendingChannelIds:new Set,pendingBuckets:new Set,isLoading:!1,isError:!1,onTierChange:void 0,onTierReset:void 0,onBucketChange:void 0,onBucketReset:void 0}:{supported:!0,tierOverrides:f,defaultCellTier:m.data,bucketTiers:p,pendingChannelIds:x,pendingBuckets:S,isLoading:s.isPending,isError:s.isError,onTierChange:(e,t)=>g.mutate({channelExternalId:e,tier:t}),onTierReset:e=>{f?.[e]!==void 0&&_.mutate({channelExternalId:e})},onBucketChange:(e,t)=>v.mutate({bucket:e,tier:t}),onBucketReset:e=>{p?.[e]!==void 0&&y.mutate({bucket:e})}}}function Ct({assistantId:e,assistantDisplayName:n,slackHandle:r}){let{t:i}=t(`channels`),a=u({...k(e),enabled:!!e,select:e=>e.channels}),o=St({assistantId:e,adapter:`slack`}),s=u({queryKey:[`thresholds`,e],queryFn:()=>P(e),enabled:o.supported&&!!e,staleTime:3e4}).data?.interactive??null,c=o.defaultCellTier===void 0?null:o.defaultCellTier??s,l=(0,J.jsx)(ct,{assistantDisplayName:n,slackHandle:r,accessControlsSupported:o.supported,defaultTier:c,channels:a.data,loading:a.isPending,error:a.isError,tierOverrides:o.tierOverrides,tierOverridesLoading:o.isLoading,tierOverridesError:o.isError,pendingChannelIds:o.pendingChannelIds,onTierChange:o.onTierChange,onTierReset:o.onTierReset});return!o.supported||!o.onBucketChange||!o.onBucketReset?(0,J.jsx)(h.Root,{noPadding:!0,clipContents:!0,children:l}):(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[o.isError?(0,J.jsx)(B,{tone:`error`,children:i(`slackChannelSection.overridesLoadFailed`)}):null,(0,J.jsx)(pt,{assistantName:n,globalDefaultTier:s,bucketTiers:o.bucketTiers,loading:o.isLoading,error:o.isError,pendingBuckets:o.pendingBuckets,onBucketChange:o.onBucketChange,onBucketReset:o.onBucketReset}),(0,J.jsx)(h.Root,{noPadding:!0,clipContents:!0,children:(0,J.jsx)(U.Root,{type:`single`,collapsible:!0,children:(0,J.jsxs)(U.Item,{value:`per-channel-overrides`,children:[(0,J.jsxs)(U.Trigger,{className:`group justify-between gap-2 px-4 py-3`,children:[(0,J.jsx)(m,{as:`span`,variant:`body-small-emphasised`,children:i(`slackChannelSection.perChannelOverrides`)}),(0,J.jsx)(ne,{"aria-hidden":`true`,className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)] transition-transform group-data-[state=open]:rotate-180`})]}),(0,J.jsx)(U.Content,{className:`border-[var(--border-base)] data-[state=open]:border-t`,children:l})]})})})]})}function wt({slackHandle:e,health:n,disconnectPending:r=!1,onDisconnect:a,children:o}){let{t:s}=t(`channels`);return(0,J.jsxs)(h.Root,{children:[(0,J.jsx)(h.Header,{children:(0,J.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,J.jsx)(`img`,{src:_e(`/images/integrations/slack.svg`),alt:``,className:`size-8 rounded-lg bg-[var(--surface-sunken)] p-1`}),e?(0,J.jsx)(m,{as:`span`,variant:`body-medium-default`,children:e}):null,(0,J.jsx)(We,{health:n}),(0,J.jsx)(`div`,{className:`ml-auto`,children:(0,J.jsx)(i,{type:`button`,variant:`ghost`,onClick:a,disabled:!a||r,children:s(r?`connectionCard.disconnecting`:`connectionCard.disconnect`)})})]})}),(0,J.jsx)(h.Body,{children:o})]})}function Tt({threadMode:e,threadModePending:n=!1,onThreadModeChange:r}){let{t:i}=t(`channels`);return(0,J.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,J.jsx)(m,{as:`span`,variant:`body-small-emphasised`,className:`text-[color:var(--content-secondary)]`,children:i(`slackThreadBehavior.heading`)}),(0,J.jsxs)(H,{value:e??`mention_then_thread`,onValueChange:e=>r?.(e),disabled:n||!r,"aria-label":i(`slackThreadBehavior.selectAria`),children:[(0,J.jsx)(V,{value:`mention_only`,label:i(`slackThreadBehavior.mentionsOnly`),helperText:i(`slackThreadBehavior.mentionsOnlyHelp`)}),(0,J.jsx)(V,{value:`mention_then_thread`,label:i(`slackThreadBehavior.followThreads`),helperText:i(`slackThreadBehavior.followThreadsHelp`)})]})]})}function Et({onSave:e}){let{t:n}=t(`channels`),[r,a]=(0,q.useState)(``),[o,s]=(0,q.useState)(``),[c,l]=(0,q.useState)(!1),[u,d]=(0,q.useState)(null),f=r.trim().length>0&&o.trim().length>0&&!c;return(0,J.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,J.jsx)(G,{label:n(`twilioCredentialEntry.accountSid`),type:`text`,value:r,onChange:e=>a(e.target.value),placeholder:`ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`,disabled:c,fullWidth:!0}),(0,J.jsx)(G,{label:n(`twilioCredentialEntry.authToken`),type:`password`,value:o,onChange:e=>s(e.target.value),placeholder:n(`twilioCredentialEntry.authTokenPlaceholder`),disabled:c,fullWidth:!0}),u?(0,J.jsx)(`p`,{className:`text-label-small`,style:{color:`var(--content-negative)`},children:u}):null,(0,J.jsx)(`div`,{children:(0,J.jsx)(i,{type:`button`,onClick:async()=>{if(!(!e||!f)){l(!0),d(null);try{await e(r.trim(),o.trim()),a(``),s(``)}catch(e){d(e instanceof Error?e.message:`Failed to save`)}finally{l(!1)}}},disabled:!f,children:n(c?`twilioCredentialEntry.saving`:`twilioCredentialEntry.save`)})})]})}function Dt({channel:e,assistantId:n,assistantName:r,assistantDisplayName:a,pending:o,initialManualEntry:s=!1,onSetup:c,onDisconnect:l,onSaveTelegramToken:u,telegramSaveStatus:d,telegramSaveError:f,onSaveSlackConfig:p,slackSaveStatus:m,slackSaveError:h,slackThreadMode:g,slackThreadModePending:_=!1,onSlackThreadModeChange:v,onSaveTwilioCredentials:y,policy:b,policySaving:x=!1,policyLoading:S=!1,policyError:C=!1,onPolicyChange:w}){let{t:T}=t(`channels`),E=e.configured,D=e.status===`incomplete`,[k,j]=(0,q.useState)(s);if(e.key===`slack`)return(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[E?(0,J.jsx)(wt,{slackHandle:e.address,health:e.health,disconnectPending:o,onDisconnect:l,children:(0,J.jsx)(Tt,{threadMode:g,threadModePending:_,onThreadModeChange:v})}):(0,J.jsx)(Ke,{children:(0,J.jsx)(ye,{assistantName:r,onSave:p,saveStatus:m,saveError:h})}),E?(0,J.jsx)(Ct,{assistantId:n,assistantDisplayName:a,slackHandle:e.address}):null]});let M=Re[e.key];return(0,J.jsx)(`div`,{className:`flex flex-col gap-4`,children:E?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(Ge,{health:e.health,address:e.address,pending:o,onDisconnect:l}),M.hasTrustFloorControl&&w?(0,J.jsx)(Ue,{assistantDisplayName:a,policy:b,saving:x,loading:S,error:C,onChange:w}):null]}):k?e.key===`telegram`?(0,J.jsx)(be,{assistantName:r,saveStatus:d,saveError:f,onSave:u}):(0,J.jsx)(Et,{onSave:y}):(0,J.jsx)(He,{icon:(0,J.jsx)(A,{channelId:e.key,className:`h-6 w-6`}),title:T(D?`channelPanel.incompleteTitle`:`channelPanel.disconnectedTitle`,{channel:O(e.key)}),description:D?e.warning??T(`channelPanel.incompleteDescription`,{channel:O(e.key)}):M.disconnectedPitchKey?T(M.disconnectedPitchKey,{assistant:a}):void 0,action:(0,J.jsxs)(`div`,{className:`flex flex-col items-center gap-1`,children:[(0,J.jsx)(i,{type:`button`,variant:`outlined`,onClick:c,disabled:!c||o,children:T(o?`channelPanel.opening`:D?`channelPanel.finishSetup`:`channelPanel.setUp`)}),(0,J.jsx)(i,{type:`button`,variant:`link`,onClick:()=>j(!0),children:T(`channelPanel.connectManually`)})]})})})}var Ot=new Set([404,501]),kt=new Set([401,403]);function At(e){let t=xe(e);return t!==void 0&&Ot.has(t)?`unsupported`:t!==void 0&&kt.has(t)?`forbidden`:`unreadable`}function jt(e,t,n){let r=e===`unreadable`?t:n;return r?r instanceof Error&&r.message?r.message:`Something went wrong`:null}function Mt(e,t){let n=l(),r={assistant_id:e},i=u({...ee({path:r}),enabled:!!e,retry:Se}),a=()=>n.invalidateQueries({queryKey:y({path:r})}),o=d({...S(),onSuccess:a}),s=d({...v(),onSuccess:a}),c=i.data?.sources?.find(e=>e.source===t),f;f=i.isError?At(i.error):i.isPending?`loading`:c?c.state:`none`;let p=jt(f,i.error,o.error??s.error);return{status:f,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:p}}var Nt=`plugin`;function Pt(e){let t=l(),n=De(),r=(0,q.useMemo)(()=>({path:{assistant_id:e}}),[e]),i=(0,q.useMemo)(()=>te(r),[r]),a=u({...j(r),enabled:n&&!!e,select:Pe}),o=d({mutationFn:t=>Me(e,Nt,t),onSuccess:()=>t.invalidateQueries({queryKey:i}),onError:K(`Failed to save channel policy`)}),s=(0,q.useCallback)(e=>{o.mutate(e)},[o]);return n?{policy:a.data?.find(e=>e.channelType===Nt)?.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 Ft({channel:e,assistantId:n,assistantDisplayName:r}){let{t:o}=t(`channels`),s=a(),c=Mt(n,e.plugin),l=Pt(n);return(0,J.jsxs)(`div`,{className:`relative flex flex-col items-center gap-3 py-10 text-center`,children:[(0,J.jsx)(i,{className:`absolute top-0 right-0`,variant:`ghost`,size:`compact`,iconOnly:(0,J.jsx)(R,{}),tooltip:o(`pluginChannelPanel.navigateToPluginPage`),"aria-label":o(`pluginChannelPanel.navigateToPluginPage`),onClick:()=>s(`/assistant/plugins/${e.plugin}`)}),(0,J.jsx)(w,{icon:e.icon,className:`h-8 w-8 text-[color:var(--content-secondary)]`}),(0,J.jsx)(`h3`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:e.label}),e.description?(0,J.jsx)(`p`,{className:`max-w-[420px] text-body-medium-default`,style:{color:`var(--content-secondary)`},children:e.description}):null,(0,J.jsx)(It,{channel:e,ingress:c}),l.onChange?(0,J.jsx)(`div`,{className:`w-full max-w-[420px] text-left`,children:(0,J.jsx)(Ue,{assistantDisplayName:r,policy:l.policy,saving:l.isSaving,loading:l.isLoading,error:l.isError,onChange:l.onChange})}):null]})}function It({channel:e,ingress:n}){let{t:r}=t(`channels`);switch(n.status){case`loading`:return(0,J.jsx)($,{children:r(`pluginChannelPanel.ingressLoading`,{channel:e.label})});case`unsupported`:return(0,J.jsx)($,{children:r(`pluginChannelPanel.ingressUnsupported`)});case`forbidden`:return(0,J.jsx)($,{children:r(`pluginChannelPanel.ingressForbidden`)});case`unreadable`:return(0,J.jsxs)($,{children:[r(`pluginChannelPanel.ingressUnreadable`,{channel:e.label}),n.error?` ${n.error}`:``]});case`none`:return(0,J.jsx)($,{children:r(`pluginChannelPanel.ingressNone`,{channel:e.label})});case`pending`:case`approved`:return(0,J.jsx)(Lt,{ingress:n})}}function Lt({ingress:e}){let{t:n}=t(`channels`),a=e.status===`approved`;return(0,J.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[(0,J.jsx)(W,{tone:a?`positive`:`neutral`,children:n(a?`pluginChannelPanel.ingressApprovedTag`:`pluginChannelPanel.ingressPendingTag`)}),(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,J.jsx)(i,{onClick:a?e.revoke:e.approve,disabled:e.deciding,variant:a?`outlined`:`primary`,children:n(a?`pluginChannelPanel.revokeChannel`:`pluginChannelPanel.approveChannel`)}),(0,J.jsx)(r,{content:n(`pluginChannelPanel.approveChannelInfo`),children:(0,J.jsx)(`span`,{tabIndex:0,className:`inline-flex cursor-default p-0.5 text-[color:var(--content-secondary)]`,"aria-label":n(`pluginChannelPanel.approveChannelInfo`),children:(0,J.jsx)(N,{className:`h-4 w-4`,"aria-hidden":`true`})})})]}),e.error?(0,J.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,J.jsx)(`p`,{className:`max-w-[420px] text-body-small-default`,style:{color:`var(--content-secondary)`},children:e})}var Rt={no_one:{title:`Block all messages?`,message:`Setting this channel to “No one” hard-denies every inbound message, including messages from you.
2
2
 
3
3
  You can reverse this at any time.`,confirmLabel:`Block all`,destructive:!0},any_contact:{title:`Allow any contact?`,message:`“Any contact” admits every matched contact in this channel (including pending, unverified ones), not just your verified contacts.
4
4
 
@@ -1,3 +1,3 @@
1
- var e={title:`Подключить Claude Code`,subtitleIdle:`Использование подписки Claude Code`,subtitleStarting:`Запускаем вход...`,subtitleWaiting:`Ждём вход в Claude...`,subtitleExchanging:`Завершаем вход...`,subtitleConnected:`Claude Code подключён, продолжаем...`,subtitlePaste:`Вставка ключа из открывшейся вкладки`,errorFallback:`Не удалось подключить Claude. Повторите попытку.`,connectButton:`Подключить`,saveButton:`Сохранить`,pastePlaceholder:`Ключ`},t={backAria:`Назад ко всем шагам`,backTooltip:`Все шаги`},n={title:`Добавить в диалог`,closeAriaLabel:`Закрыть`,camera:`Камера`,gallery:`Фотоплёнка`,files:`Файлы`,pickFailed:`Не удалось добавить этот файл. Повторите попытку.`,tooLarge:`{count, plural, one {# файл слишком большой, чтобы прикрепить} few {# файла слишком большие, чтобы прикрепить} many {# файлов слишком большие, чтобы прикрепить} other {# файла слишком большие, чтобы прикрепить}}`,pickFull:`{count, plural, one {# файл не поместился в эту пачку. Добавление отдельно.} few {# файла не поместились в эту пачку. Добавление отдельно.} many {# файлов не поместились в эту пачку. Добавление отдельно.} other {# файла не поместились в эту пачку. Добавление отдельно.}}`},r={allowAndCreateRule:`Разрешить и создать правило`,trigger:`Другие варианты разрешения`},i={appExported:`Приложение экспортировано`,shareFailed:`Не удалось поделиться приложением`},a={bulkActionMembersFailed:`Не удалось загрузить все диалоги в этом разделе. Повторите попытку.`},o={collapse:`Скрыть ассистентов`,currentAssistant:`{name}, текущий ассистент`,expand:`Сменить ассистента`,switchFailed:`Не удалось сменить ассистента. Повторите попытку.`,switchTo:`Переключиться на {name}`,unnamedAssistant:`Безымянный ассистент`},s={description:`Где {count, plural, one {# точка разрыва кэша попала} few {# точки разрыва кэша попали} many {# точек разрыва кэша попали} other {# точки разрыва кэша попали}} в префикс этого запроса и какие сегменты прочитали, а какие создали заново.`,estimatedTokens:`≈ {count} токенов`,fullMissBody:`В этом ходе каждый сегмент создали заново. Сравнение с предыдущим ходом в разнице кэша выше, чтобы найти изменившийся блок.`,fullMissTitle:`Полный промах кэша`,loadError:`Не удалось загрузить тело запроса, чтобы нанести точки разрыва кэша.`,loading:`Загружаем тело запроса, чтобы нанести точки разрыва кэша…`,noBreakpoints:`В этом запросе не было точек разрыва кэша: кэш промпта для вызова был выключен.`,splitEstimatedNote:` Разделение «прочитано / создано» считается по размеру сегмента; провайдер сообщает только итоги.`,statusCreated:`Создано заново`,statusRead:`Прочитано из кэша`,statusUnknown:`В кэше`,title:`Точки разрыва кэша`,tokenEstimateNote:`Число токенов оценивается по длине текста.`},c={changedLabel:`Изменено`,changedMessageFallback:`сообщение`,chipMessages:`Сообщения`,chipModel:`Модель`,chipSettings:`Настройки`,chipSystem:`Система`,chipTools:`Инструменты`,currentModelFallback:`эта модель`,description:`Что изменилось с запроса прошлого хода: блок, из-за которого кэш промпта создали заново.`,diffAnyway:`Всё равно сравнить ({lineCount} строк)`,diffLabel:`Разница: {label}`,diffLargeDefault:`Изменённый текст большой, поэтому по умолчанию его не сравнивают.`,diffStillTooLarge:`Всё ещё слишком большой, чтобы сравнивать здесь (больше {maxLines} строк). Вкладка Raw показывает полное тело.`,diffTooLarge:`Изменённый текст слишком большой, чтобы сравнивать здесь. Вкладка Raw показывает полное тело.`,loadPreviousCallError:`Не удалось загрузить предыдущий вызов для сравнения.`,loadingPreviousCall:`Загружаем предыдущий вызов для сравнения…`,messageStatsAppended:`добавлено: {count}`,messageStatsLeading:`Начальные сообщения: {parts}`,messageStatsRemoved:`удалено: {count}`,messageStatsShared:`общих: {count}`,previousModelFallback:`предыдущая модель`,previousPromptUnavailable:`Промпт предыдущего вызова недоступен для сравнения.`,showLess:`Показать меньше`,showMoreDiffLines:`Показать ещё {count} строк разницы`,statusMessagesEarlierBody:`{label} #{index} отличается от прошлого хода, поэтому всё, что кэшировалось после него, в этом ходе обрабатывается заново.`,statusMessagesEarlierTitle:`Изменилось более раннее сообщение`,statusMessagesHistoryBody:`В этом ходе пропало более ранних сообщений: {removedCount} (скорее всего из-за сжатия истории), поэтому кэшированный префикс сообщений больше не совпадает.`,statusMessagesHistoryTitle:`История сообщений изменилась`,statusModelBody:`Этот ход использовал {current}, а предыдущий: {previous}. Другая модель не может переиспользовать прошлый кэш промпта, поэтому весь промпт создаётся заново.`,statusModelTitle:`Модель изменилась`,statusPrefixUnchangedBodyAppended:`Кэшированный префикс совпадает с прошлым ходом, и добавлено новых сообщений: {count}. Промах кэша здесь скорее про истечение TTL, а не про изменённое содержимое.`,statusPrefixUnchangedBodyIdentical:`Кэшированный префикс совпадает с прошлым ходом. Промах кэша здесь скорее про истечение TTL, а не про изменённое содержимое.`,statusPrefixUnchangedTitle:`Префикс промпта не изменился`,statusSettingsBody:`От прошлого хода отличаются только настройки запроса (например, temperature). У большинства провайдеров одного этого недостаточно, чтобы сбросить кэш промпта.`,statusSettingsTitle:`Настройки запроса изменились`,statusSystemBody:`Часть системного промпта изменилась с прошлого хода. Нестабильное содержимое здесь (метка времени, память или блок на каждый ход) заставляет создавать кэш заново каждый ход.`,statusSystemTitle:`Системный промпт изменился`,statusToolsBody:`Набор инструментов или их определения отличаются от прошлого хода. Инструменты стоят в начале кэшированного префикса, поэтому любое изменение здесь пересоздаёт кэш ещё до системного промпта и сообщений.`,statusToolsTitle:`Определения инструментов изменились`,title:`Разница кэша`,unchangedLines:`⋯ без изменений: {count} строк`},l={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}.`},u={callCount:`{count, plural, one {# вызов LLM} few {# вызова LLM} many {# вызовов LLM} other {# вызова LLM}}`,callLabel:`Вызов {number}`,compaction:`Сжатие`,cost:`Стоимость`,empty:`Вызовов LLM нет.`,failed:`Ошибка`,latest:`Последний`,navAriaLabel:`Вызовы LLM`,syntheticAgentLoopError:`Ошибка цикла агента`,syntheticAgentLoopErrorWithReason:`Ошибка цикла агента · {reason}`,syntheticYield:`Пауза · сжатие не уместило следующий шаг`,unrecognizedCall:`Неизвестный вызов`},d={addToChat:`Добавить в диалог`,askAssistantPlaceholder:`Сообщение для {assistantName}`},f={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:`Триггер`},p={profileSwitchFailed:`Профиль создан, но переключиться на него не удалось`,profileSwitchFallback:`Не удалось сменить профиль. Повторите попытку.`},m={archive:`В архив`,copyConversation:`Скопировать весь диалог`,copyConversationId:`Скопировать ID диалога`,delete:`Удалить`,forkConversation:`Ответвить диалог`,inspect:`Разобрать диалог`,markRead:`Отметить как прочитанный`,markUnread:`Отметить как непрочитанный`,moveToGroup:`Перенести в группу`,newGroup:`Новая группа…`,openInNewWindow:`Открыть в новом окне`,pin:`Закрепить`,refresh:`Обновить`,removeFromGroup:`Убрать из группы`,rename:`Переименовать`,shareFeedback:`Отправить отзыв`,triggerAriaLabel:`Действия с диалогом`,unarchive:`Вернуть из архива`,unpin:`Открепить`},h={closeAriaLabel:`Закрыть`,title:`Действия с диалогом`},g={ariaLabel:`Ресурсы диалога, {count, plural, one {# элемент} few {# элемента} many {# элементов} other {# элемента}}`,ariaLabelUnseen:`Ресурсы диалога, {count, plural, one {# элемент} few {# элемента} many {# элементов} other {# элемента}} (есть невидимые изменения)`,heading:`Ресурсы`,label:`{count, plural, one {# ресурс} few {# ресурса} many {# ресурсов} other {# ресурса}}`},_={caption:`Подсказки:`},v={copied:`Скопировано`,copyFailed:`Не удалось скопировать в буфер обмена.`},y={conversationCopied:`ID диалога скопирован в буфер обмена.`,conversationFailed:`Не удалось скопировать ID диалога.`,groupCopied:`ID группы скопирован в буфер обмена.`,groupFailed:`Не удалось скопировать ID группы.`},b={cancel:`Отмена`,confirm:`Удалить`,message:`Удалить «{title}»? Диалог и его сообщения будут удалены навсегда. Это действие нельзя отменить.`,title:`Удалить диалог`,untitled:`Без названия`},x={tooltip:`Стоп`},S={pdfDownloadFailed:`Не удалось скачать PDF`},C={cancel:`Отмена`,close:`Закрыть`,defaultError:`Не удалось экспортировать данные инспектора.`,descriptionDone:`Скачивание должно было начаться само.`,descriptionError:`Что-то пошло не так при сборе экспорта.`,descriptionRunning:`Собираем тела запросов провайдера и нормализованный контекст. В длинных диалогах это может занять время.`,done:`Готово`,progressAriaLabel:`Прогресс экспорта`,retry:`Повторить`,statusDone:`Готово`,statusPackaging:`Упаковываем ZIP…`,statusProgress:`{completed} из {total} вызовов`,titleDone:`Экспорт готов`,titleError:`Экспорт не удался`,titleRunning:`Экспортируем данные инспектора`},w={failed:`Не удалось скачать файл`},T={archiveAll:`В архив все…`,copyGroupId:`Скопировать ID группы`,deleteGroup:`Удалить группу`,deleteGroupWithConversations:`Удалить группу…`,groupByChannel:`Группировать по каналу`,markAllRead:`Отметить все как прочитанные`,moveSectionDown:`Секцию вниз`,moveSectionUp:`Секцию вверх`,rename:`Переименовать`,ungroup:`Разгруппировать`},E={title:`Действия: {name}`},D={accessDenied:`Инспектор доступен, когда включён флаг Internal Thread Actions.`,allMessages:`Все сообщения`,back:`Назад`,backToConversationAria:`Назад к диалогу`,chooseCall:`Выбор вызова на панели, чтобы разобрать его контекст.`,conversationScopeSubtitle:`Показаны все вызовы LLM, записанные для этого диалога.`,detailLoadFailed:`Не удалось загрузить нормализованный контекст этого вызова.`,emptyBodyConversation:`Либо ни одно сообщение диалога не создал вызов LLM, либо журналы запросов обрезала политика хранения.`,emptyBodyMessage:`Либо это сообщение создал не вызов LLM, либо его журналы запросов обрезала политика хранения.`,emptyTitleConversation:`Для этого диалога нет записанных вызовов LLM.`,emptyTitleMessage:`Для этого сообщения нет записанных вызовов LLM.`,enableLogging:`Включить журнал`,enableLoggingFailed:`Не удалось включить журнал`,enableLoggingFailedWithMessage:`Не удалось включить журнал ({message})`,enabling:`Включаем…`,exportFailed:`Не удалось экспортировать данные инспектора`,exportZip:`Экспорт ZIP`,exportZipAria:`Экспортировать данные инспектора как ZIP`,exporting:`Экспорт…`,filterToMessage:`Фильтр по сообщению:`,llmCallCount:`{count, plural, one {1 вызов LLM} few {# вызова LLM} many {# вызовов LLM} other {# вызова LLM}}`,loadContextFailed:`Не удалось загрузить контекст LLM.`,loadFailedTitle:`Не удалось загрузить`,loading:`Загрузка…`,loggingDisabledBody:`Тела запросов и ответов не записываются, поэтому смотреть нечего. Включение журнала фиксирует следующие вызовы LLM.`,loggingDisabledTitle:`Журнал запросов LLM выключен`,loggingEnabledToast:`Журнал запросов LLM включён`,messageOptionDeepLink:`Сообщение {messageId}`,messageOptionNoText:`{index}. (без текста)`,messageOptionWithPreview:`{index}. {preview}`,retry:`Повторить`,scopedToOneMessage:`Ограничено одним сообщением · `,scopedToTurn:`Ограничено ходом {index} из {count} · `,title:`Инспектор контекста LLM`},O={chipCode:`Код`,chipProvider:`Провайдер`,chipRequestId:`Request ID`,chipStatus:`Статус`,chipType:`Тип`,chipUpstreamCode:`Код выше по цепочке`,chipUpstreamParam:`Параметр выше по цепочке`,chipUpstreamType:`Тип выше по цепочке`,noResponse:`Провайдер отклонил этот вызов и не вернул ответ.`,title:`Вызов не удался`},k={pictureInPictureUnavailable:`Картинка в картинке недоступна`},A={unavailable:`Этот файл здесь недоступен`},j={addOlderPairButton:`+ Добавить более старую пару`,assistantReplyLabel:`[assistant]: ответ`,assistantReplyPlaceholder:`Ответ ассистента, который был до сообщения пользователя ниже.`,configTitle:`Конфиг {paneId}`,conversationalContextTitle:`Контекст диалога (общий для обеих панелей)`,customPromptPlaceholder:`Свой системный промпт маршрутизатора. Доступные подстановки:
1
+ var e={title:`Подключить Claude Code`,subtitleIdle:`Использование подписки Claude Code`,subtitleStarting:`Запускаем вход...`,subtitleWaiting:`Ждём вход в Claude...`,subtitleExchanging:`Завершаем вход...`,subtitleConnected:`Claude Code подключён, продолжаем...`,subtitlePaste:`Вставка ключа из открывшейся вкладки`,errorFallback:`Не удалось подключить Claude. Повторите попытку.`,connectButton:`Подключить`,saveButton:`Сохранить`,pastePlaceholder:`Ключ`},t={backAria:`Назад ко всем шагам`,backTooltip:`Все шаги`},n={title:`Добавить в диалог`,closeAriaLabel:`Закрыть`,camera:`Камера`,gallery:`Фотоплёнка`,files:`Файлы`,pickFailed:`Не удалось добавить этот файл. Повторите попытку.`,tooLarge:`{count, plural, one {# файл слишком большой, чтобы прикрепить} few {# файла слишком большие, чтобы прикрепить} many {# файлов слишком большие, чтобы прикрепить} other {# файла слишком большие, чтобы прикрепить}}`,pickFull:`{count, plural, one {# файл не поместился в эту пачку. Добавление отдельно.} few {# файла не поместились в эту пачку. Добавление отдельно.} many {# файлов не поместились в эту пачку. Добавление отдельно.} other {# файла не поместились в эту пачку. Добавление отдельно.}}`},r={allowAndCreateRule:`Разрешить и создать правило`,trigger:`Другие варианты разрешения`},i={appExported:`Приложение экспортировано`,shareFailed:`Не удалось поделиться приложением`},a={bulkActionMembersFailed:`Не удалось загрузить все диалоги в этом разделе. Повторите попытку.`},o={collapse:`Скрыть ассистентов`,currentAssistant:`{name}, текущий ассистент`,expand:`Сменить ассистента`,switchFailed:`Не удалось сменить ассистента. Повторите попытку.`,switchTo:`Переключиться на {name}`,unnamedAssistant:`Безымянный ассистент`},s={description:`Где {count, plural, one {# точка разрыва кэша попала} few {# точки разрыва кэша попали} many {# точек разрыва кэша попали} other {# точки разрыва кэша попали}} в префикс этого запроса и какие сегменты прочитали, а какие создали заново.`,estimatedTokens:`≈ {count} токенов`,fullMissBody:`В этом ходе каждый сегмент создали заново. Сравнение с предыдущим ходом в разнице кэша выше, чтобы найти изменившийся блок.`,fullMissTitle:`Полный промах кэша`,loadError:`Не удалось загрузить тело запроса, чтобы нанести точки разрыва кэша.`,loading:`Загружаем тело запроса, чтобы нанести точки разрыва кэша…`,noBreakpoints:`В этом запросе не было точек разрыва кэша: кэш промпта для вызова был выключен.`,splitEstimatedNote:` Разделение «прочитано / создано» считается по размеру сегмента; провайдер сообщает только итоги.`,statusCreated:`Создано заново`,statusRead:`Прочитано из кэша`,statusUnknown:`В кэше`,title:`Точки разрыва кэша`,tokenEstimateNote:`Число токенов оценивается по длине текста.`},c={changedLabel:`Изменено`,changedMessageFallback:`сообщение`,chipMessages:`Сообщения`,chipModel:`Модель`,chipSettings:`Настройки`,chipSystem:`Система`,chipTools:`Инструменты`,currentModelFallback:`эта модель`,description:`Что изменилось с запроса прошлого хода: блок, из-за которого кэш промпта создали заново.`,diffAnyway:`Всё равно сравнить ({lineCount} строк)`,diffLabel:`Разница: {label}`,diffLargeDefault:`Изменённый текст большой, поэтому по умолчанию его не сравнивают.`,diffStillTooLarge:`Всё ещё слишком большой, чтобы сравнивать здесь (больше {maxLines} строк). Вкладка Raw показывает полное тело.`,diffTooLarge:`Изменённый текст слишком большой, чтобы сравнивать здесь. Вкладка Raw показывает полное тело.`,loadPreviousCallError:`Не удалось загрузить предыдущий вызов для сравнения.`,loadingPreviousCall:`Загружаем предыдущий вызов для сравнения…`,messageStatsAppended:`добавлено: {count}`,messageStatsLeading:`Начальные сообщения: {parts}`,messageStatsRemoved:`удалено: {count}`,messageStatsShared:`общих: {count}`,previousModelFallback:`предыдущая модель`,previousPromptUnavailable:`Промпт предыдущего вызова недоступен для сравнения.`,showLess:`Показать меньше`,showMoreDiffLines:`Показать ещё {count} строк разницы`,statusMessagesEarlierBody:`{label} #{index} отличается от прошлого хода, поэтому всё, что кэшировалось после него, в этом ходе обрабатывается заново.`,statusMessagesEarlierTitle:`Изменилось более раннее сообщение`,statusMessagesHistoryBody:`В этом ходе пропало более ранних сообщений: {removedCount} (скорее всего из-за сжатия истории), поэтому кэшированный префикс сообщений больше не совпадает.`,statusMessagesHistoryTitle:`История сообщений изменилась`,statusModelBody:`Этот ход использовал {current}, а предыдущий: {previous}. Другая модель не может переиспользовать прошлый кэш промпта, поэтому весь промпт создаётся заново.`,statusModelTitle:`Модель изменилась`,statusPrefixUnchangedBodyAppended:`Кэшированный префикс совпадает с прошлым ходом, и добавлено новых сообщений: {count}. Промах кэша здесь скорее про истечение TTL, а не про изменённое содержимое.`,statusPrefixUnchangedBodyIdentical:`Кэшированный префикс совпадает с прошлым ходом. Промах кэша здесь скорее про истечение TTL, а не про изменённое содержимое.`,statusPrefixUnchangedTitle:`Префикс промпта не изменился`,statusSettingsBody:`От прошлого хода отличаются только настройки запроса (например, temperature). У большинства провайдеров одного этого недостаточно, чтобы сбросить кэш промпта.`,statusSettingsTitle:`Настройки запроса изменились`,statusSystemBody:`Часть системного промпта изменилась с прошлого хода. Нестабильное содержимое здесь (метка времени, память или блок на каждый ход) заставляет создавать кэш заново каждый ход.`,statusSystemTitle:`Системный промпт изменился`,statusToolsBody:`Набор инструментов или их определения отличаются от прошлого хода. Инструменты стоят в начале кэшированного префикса, поэтому любое изменение здесь пересоздаёт кэш ещё до системного промпта и сообщений.`,statusToolsTitle:`Определения инструментов изменились`,title:`Разница кэша`,unchangedLines:`⋯ без изменений: {count} строк`},l={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}.`},u={callCount:`{count, plural, one {# вызов LLM} few {# вызова LLM} many {# вызовов LLM} other {# вызова LLM}}`,callLabel:`Вызов {number}`,compaction:`Сжатие`,cost:`Стоимость`,empty:`Вызовов LLM нет.`,failed:`Ошибка`,latest:`Последний`,navAriaLabel:`Вызовы LLM`,syntheticAgentLoopError:`Ошибка цикла агента`,syntheticAgentLoopErrorWithReason:`Ошибка цикла агента · {reason}`,syntheticYield:`Пауза · сжатие не уместило следующий шаг`,unrecognizedCall:`Неизвестный вызов`},d={addToChat:`Добавить в диалог`,askAssistantPlaceholder:`Сообщение для {assistantName}`},f={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:`Триггер`},p={profileSwitchFailed:`Профиль создан, но переключиться на него не удалось`,profileSwitchFallback:`Не удалось сменить профиль. Повторите попытку.`},m={archive:`В архив`,copyConversation:`Скопировать весь диалог`,copyConversationId:`Скопировать ID диалога`,delete:`Удалить`,forkConversation:`Ответвить диалог`,inspect:`Разобрать диалог`,markRead:`Отметить как прочитанный`,markUnread:`Отметить как непрочитанный`,moveToGroup:`Перенести в группу`,newGroup:`Новая группа…`,openInNewWindow:`Открыть в новом окне`,pin:`Закрепить`,refresh:`Обновить`,removeFromGroup:`Убрать из группы`,rename:`Переименовать`,shareFeedback:`Отправить отзыв`,triggerAriaLabel:`Действия с диалогом`,unarchive:`Вернуть из архива`,unpin:`Открепить`},h={closeAriaLabel:`Закрыть`,title:`Действия с диалогом`},g={ariaLabel:`Ресурсы диалога, {count, plural, one {# элемент} few {# элемента} many {# элементов} other {# элемента}}`,ariaLabelUnseen:`Ресурсы диалога, {count, plural, one {# элемент} few {# элемента} many {# элементов} other {# элемента}} (есть невидимые изменения)`,heading:`Ресурсы`,label:`{count, plural, one {# ресурс} few {# ресурса} many {# ресурсов} other {# ресурса}}`},_={caption:`Подсказки:`},v={copied:`Скопировано`,copyFailed:`Не удалось скопировать в буфер обмена.`},y={conversationCopied:`ID диалога скопирован в буфер обмена.`,conversationFailed:`Не удалось скопировать ID диалога.`,groupCopied:`ID группы скопирован в буфер обмена.`,groupFailed:`Не удалось скопировать ID группы.`},b={cancel:`Отмена`,confirm:`Удалить`,message:`Удалить «{title}»? Диалог и его сообщения будут удалены навсегда. Это действие нельзя отменить.`,title:`Удалить диалог`,untitled:`Без названия`},x={pdfDownloadFailed:`Не удалось скачать PDF`},S={cancel:`Отмена`,close:`Закрыть`,defaultError:`Не удалось экспортировать данные инспектора.`,descriptionDone:`Скачивание должно было начаться само.`,descriptionError:`Что-то пошло не так при сборе экспорта.`,descriptionRunning:`Собираем тела запросов провайдера и нормализованный контекст. В длинных диалогах это может занять время.`,done:`Готово`,progressAriaLabel:`Прогресс экспорта`,retry:`Повторить`,statusDone:`Готово`,statusPackaging:`Упаковываем ZIP…`,statusProgress:`{completed} из {total} вызовов`,titleDone:`Экспорт готов`,titleError:`Экспорт не удался`,titleRunning:`Экспортируем данные инспектора`},C={failed:`Не удалось скачать файл`},w={archiveAll:`В архив все…`,copyGroupId:`Скопировать ID группы`,deleteGroup:`Удалить группу`,deleteGroupWithConversations:`Удалить группу…`,groupByChannel:`Группировать по каналу`,markAllRead:`Отметить все как прочитанные`,moveSectionDown:`Секцию вниз`,moveSectionUp:`Секцию вверх`,rename:`Переименовать`,ungroup:`Разгруппировать`},T={title:`Действия: {name}`},E={accessDenied:`Инспектор доступен, когда включён флаг Internal Thread Actions.`,allMessages:`Все сообщения`,back:`Назад`,backToConversationAria:`Назад к диалогу`,chooseCall:`Выбор вызова на панели, чтобы разобрать его контекст.`,conversationScopeSubtitle:`Показаны все вызовы LLM, записанные для этого диалога.`,detailLoadFailed:`Не удалось загрузить нормализованный контекст этого вызова.`,emptyBodyConversation:`Либо ни одно сообщение диалога не создал вызов LLM, либо журналы запросов обрезала политика хранения.`,emptyBodyMessage:`Либо это сообщение создал не вызов LLM, либо его журналы запросов обрезала политика хранения.`,emptyTitleConversation:`Для этого диалога нет записанных вызовов LLM.`,emptyTitleMessage:`Для этого сообщения нет записанных вызовов LLM.`,enableLogging:`Включить журнал`,enableLoggingFailed:`Не удалось включить журнал`,enableLoggingFailedWithMessage:`Не удалось включить журнал ({message})`,enabling:`Включаем…`,exportFailed:`Не удалось экспортировать данные инспектора`,exportZip:`Экспорт ZIP`,exportZipAria:`Экспортировать данные инспектора как ZIP`,exporting:`Экспорт…`,filterToMessage:`Фильтр по сообщению:`,llmCallCount:`{count, plural, one {1 вызов LLM} few {# вызова LLM} many {# вызовов LLM} other {# вызова LLM}}`,loadContextFailed:`Не удалось загрузить контекст LLM.`,loadFailedTitle:`Не удалось загрузить`,loading:`Загрузка…`,loggingDisabledBody:`Тела запросов и ответов не записываются, поэтому смотреть нечего. Включение журнала фиксирует следующие вызовы LLM.`,loggingDisabledTitle:`Журнал запросов LLM выключен`,loggingEnabledToast:`Журнал запросов LLM включён`,messageOptionDeepLink:`Сообщение {messageId}`,messageOptionNoText:`{index}. (без текста)`,messageOptionWithPreview:`{index}. {preview}`,retry:`Повторить`,scopedToOneMessage:`Ограничено одним сообщением · `,scopedToTurn:`Ограничено ходом {index} из {count} · `,title:`Инспектор контекста LLM`},D={chipCode:`Код`,chipProvider:`Провайдер`,chipRequestId:`Request ID`,chipStatus:`Статус`,chipType:`Тип`,chipUpstreamCode:`Код выше по цепочке`,chipUpstreamParam:`Параметр выше по цепочке`,chipUpstreamType:`Тип выше по цепочке`,noResponse:`Провайдер отклонил этот вызов и не вернул ответ.`,title:`Вызов не удался`},O={pictureInPictureUnavailable:`Картинка в картинке недоступна`},k={unavailable:`Этот файл здесь недоступен`},A={addOlderPairButton:`+ Добавить более старую пару`,assistantReplyLabel:`[assistant]: ответ`,assistantReplyPlaceholder:`Ответ ассистента, который был до сообщения пользователя ниже.`,configTitle:`Конфиг {paneId}`,conversationalContextTitle:`Контекст диалога (общий для обеих панелей)`,customPromptPlaceholder:`Свой системный промпт маршрутизатора. Доступные подстановки:
2
2
  '{ASSISTANT_NAME}, {USER_NAME}, {PAGE_INDEX}'
3
- Пустое поле берёт встроенный шаблон. «Загрузить по умолчанию» подставляет в поле встроенный текст для правки.`,description:`Прогон маршрутизатора v4 с своими переопределениями уровня и пакета. Только чтение: строки в <code>memory_v2_injection_events</code> и <code>memory_v2_activation_logs</code> не пишутся, состояние активации не меняется. Пустое переопределение берёт живое значение конфига; <code>null</code> явно выключает уровень.`,diffLabel:`Разница`,diffValue:`{shared} общих · {unique} только у этой панели`,effectiveConfig:`Итоговый конфиг`,emaScore:`EMA {score}`,empty:`(пусто)`,emptySelectionHint:`Маршрутизатор вернул пустой выбор. Более точный запрос или ослабление переопределений.`,failedToRunSimulation:`Не удалось запустить симуляцию`,firstTurnAssistantPlaceholder:`Пустое поле: сценарий первого хода.`,inheritActive:`наследовать активный`,inheritActiveWithProfile:`наследовать активный ({profile})`,inheritPlaceholder:`наследовать`,invalidOverrideInput:`Некорректное переопределение`,justArrivedUserLabel:`Только что пришло [user]: сообщение`,lastUserPlaceholder:`например, что выпустить дальше`,legendAOnly:`только A`,legendBOnly:`только B`,legendInBoth:`в обоих`,llmProfilesOverride:`переопределение llm.profiles`,loadDefault:`Загрузить по умолчанию`,loading:`Загрузка…`,noPagesSelected:`Страницы не выбраны`,notAvailable:`Песочница маршрутизатора памяти недоступна.`,nowBlockLabel:`блок '<now>'`,nowDefaultPlaceholder:`Заполнено живым NOW.md. Прави, чтобы проверить другие состояния.`,nowLoadingPlaceholder:`Загрузка текущего NOW.md…`,nullValue:`null`,overrideMustBePositiveInteger:`{fieldName} должен быть положительным целым или 'null' (получено "{value}")`,overrideSuffix:` (переопределение)`,pageCount:`{count, plural, one {# страница} few {# страницы} many {# страниц} other {# страницы}}`,pairLabel:`Пара {index} из {total}`,pairMostRecentSuffix:` · самая свежая`,paneTitle:`Панель {paneId}`,promptModeBundled:`встроенный`,promptModeCustom:`свой`,rawApiExchange:`Сырой обмен API`,recentPairsLabel:`Недавние пары (ассистент, пользователь) · сначала старые`,reloadNowButton:`Перезагрузить живой NOW.md`,removeButton:`Удалить`,requestLabel:`Запрос (панель {paneId})`,reset:`Сбросить`,responseLabel:`Ответ (панель {paneId})`,routerFailure:`Сбой маршрутизатора: {reason}`,runBoth:`Запустить оба`,runPane:`Запустить {paneId}`,running:`Запуск…`,selectedLabel:`Выбрано`,selectedValue:`{count} (живой max_page_ids: {maxPageIds})`,summary:`Сводка`,summaryUserMessageLabel:`Сообщение пользователя`,systemPrompt:`Системный промпт`,systemPromptConfigLabel:`системный промпт`,tier1Label:`уровень 1`,tier2Label:`уровень 2`,tier3Label:`уровень 3 · b{batch}`,title:`Песочница маршрутизатора памяти`,totalCandidatePagesLabel:`Всего страниц-кандидатов`,userMessageLabel:`[user]: сообщение`,userMessagePlaceholder:`Сообщение пользователя.`},M={afterMergeLabel:`После слияния`,breakdownCAssistantRerank:`c_assistant · rerank Δ_a`,breakdownCAssistantSim:`c_assistant · sim_a`,breakdownCNowSim:`c_now · sim_n`,breakdownCUserRerank:`c_user · rerank Δ_u`,breakdownCUserSim:`c_user · sim_u`,breakdownOwnActivation:`A_o (свой)`,breakdownPriorActivation:`prior · d`,breakdownRerankScaledRaw:`+{scaled} (сырой {raw})`,breakdownScaledRaw:`{scaled} (сырой {raw})`,breakdownSource:`источник`,breakdownSpreadDelta:`spread Δ`,breakdownStatus:`статус`,candidateScores:`sem {semantic} · rec {recency}`,carriedPill:`Перенесено: {count}`,conceptActivationsSubtitle:"Сортировка по итоговой активации. Записи навыков идут с префиксом `skills/`; разверни строку, чтобы увидеть разбивку активации.",conceptActivationsTitle:`Активации концептов ({count})`,configCAssistant:`c_assistant`,configCNow:`c_now`,configCUser:`c_user`,configDDecay:`d (затухание)`,configEpsilon:`epsilon`,configHops:`hops`,configKSharpening:`k (обострение)`,configSubtitle:`Веса активации и пороги отбора.`,configTitle:`Конфиг`,configTopK:`top_k`,copyAriaLabel:`Скопировать в буфер обмена`,copyAriaLabelCopied:`Скопировано`,copyButtonCopied:`Скопировано`,copyButtonCopy:`Копировать`,copyErrorMessage:`Не удалось скопировать в буфер обмена.`,copyTitle:`Копировать`,copyTitleCopied:`Скопировано!`,corePill:`Ядро: {count}`,degradationTitle:`Деградация`,fallbackSourcesLabel:`Резервные источники`,hybridSearchLabel:`Гибридный поиск`,inContextPill:`В контексте: {count}`,injectedMemoryContextTitle:`Вставленный контекст памяти`,injectedPill:`Вставлено: {count}`,injectedTokensLabel:`Вставленные токены`,latencyMs:`{ms} мс`,loading:`Загрузка…`,loggedMemorySelectionSubtitle:`Отрисовано из выбора v3, в этот ход не вставлено.`,loggedMemorySelectionTitle:`Записанный выбор памяти`,memoryDisabledDefaultReason:`Для этого хода вспоминание памяти было выключено.`,memoryDisabledTitle:`Память выключена`,missingValue:`-`,modelLabel:`Модель`,no:`Нет`,noDataBody:`Сведения о вспоминании памяти для этого сообщения недоступны.`,noDataTitle:`Нет данных памяти`,noEntriesRanked:`Нет ранжированных записей.`,noPagesSelected:`Страницы не выбраны.`,notInjectedPill:`Не вставлено: {count}`,pageContentLabel:`содержимое страницы`,pageNotFound:`Страница не найдена на диске. Slug может ссылаться на устаревшую запись Qdrant.`,pillMemoryV2:`Memory V2`,pillMemoryV3:`Memory V3`,pillRecallV1:`Recall (v1)`,pinnedChip:`закреплено`,pinnedPill:`Закреплено: {count}`,providerLabel:`Провайдер`,queryContextSubtitle:`Текст, который встроили как поисковый вектор для семантического поиска.`,queryContextTitle:`Контекст запроса`,reasonLabel:`Причина`,retrievalFunnelSubtitle:`Как воспоминания отфильтровали от семантического поиска до вставки.`,retrievalFunnelTitle:`Воронка поиска`,searchDetailsTitle:`Подробности поиска`,selectedLabel:`Выбрано`,selectedPagesSubtitle:`Страницы, которые выбрал v3, с меткой полосы, откуда они пришли, и совпавшего раздела (если полоса поиска его нашла).`,selectedPagesTitle:`Выбранные страницы ({count})`,selectedPill:`Выбрано: {count}`,semanticHitsLabel:`Семантические совпадения`,semanticUnavailableLabel:`Семантика недоступна`,sparseDenseOnly:`Только плотные`,sparseUsed:`Использованы`,sparseVectorsLabel:`Разреженные векторы`,statusActive:`Активно`,statusDegraded:`Деградировано`,statusLabel:`Статус`,statusSubtitle:`Провайдер, модель и задержка этого вспоминания.`,statusTitle:`Статус`,tier1Label:`Уровень 1`,tier2Label:`Уровень 2`,topCandidatesSubtitle:`{count, plural, one {# кандидат, ранжированный по итоговому баллу.} few {# кандидата, ранжированных по итоговому баллу.} many {# кандидатов, ранжированных по итоговому баллу.} other {# кандидата, ранжированных по итоговому баллу.}}`,topCandidatesTitle:`Лучшие кандидаты`,totalLatencyLabel:`Общая задержка`,turnLevelRecallBody:`Вспоминание памяти запускается один раз за ход. Эти данные относятся ко всем вызовам LLM этого сообщения.`,turnLevelRecallTitle:`Вспоминание на уровне хода`,turnPill:`Ход {turn}`,unavailable:`Недоступно`,unknown:`Неизвестно`,v2StatusInContext:`В контексте`,v2StatusInjected:`Вставлено`,v2StatusNotInjected:`Не вставлено`,v2StatusPageMissing:`Страницы нет`,v2TurnBody:`Проход памяти с распространением активации: ранжирует концепты и навыки для этого хода.`,v2TurnTitle:`Память - ход {turn} ({mode})`,v3LiveInjectionBody:`v3 в этом ходе живой источник памяти: блок ниже вставлен в контекст (v2 подавлен).`,v3LiveInjectionTitle:`Memory V3 - живая вставка`,v3LoggedSelectionBody:`v3 не живой источник памяти этого ассистента: эти выборы записали, но в этот ход не вставили; память хода пришла из v2.`,v3LoggedSelectionTitle:`Memory V3 - записанный выбор (не вставлено)`,v3SourceCarried:`перенесено`,v3SourceCore:`ядро`,v3SourceL1L2:`L1+L2`,v3SourceNeedle:`needle`,yes:`Да`},N={callOfTotal:`Вызов {number} из {total}`,llmCallCount:`{count, plural, one {1 вызов LLM} few {# вызова LLM} many {# вызовов LLM} other {# вызова LLM}}`,selectCallAria:`Выбор вызова LLM для разбора`,sheetTitle:`Выбор вызова`},P={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:`Использование`},F={colors:{green:`Зелёный`,orange:`Оранжевый`,pink:`Розовый`,purple:`Фиолетовый`,teal:`Бирюзовый`,yellow:`Жёлтый`},noColor:`Без цвета`},I={addCreditsAriaLabel:`Добавить кредиты`,exhausted:`Добавление кредитов для продолжения.`,pctUsed:`использовано {pct}%`,resets:`Сброс {date}`,settingsAriaLabel:`Настройки использования и оплаты`,title:`Использование`},L={availableTools:`Доступные инструменты`,bannerNoSections:`У этого вызова ещё нет нормализованных секций промпта.`,bannerSectionsCount:`{count, plural, one {# нормализованная секция запроса в порядке, который вернул маршрут ассистента.} few {# нормализованные секции запроса в порядке, который вернул маршрут ассистента.} many {# нормализованных секций запроса в порядке, который вернул маршрут ассистента.} other {# нормализованные секции запроса в порядке, который вернул маршрут ассистента.}}`,collapseAll:`Свернуть всё`,copyAriaLabel:`Скопировать {title}`,emptyBody:`У этого вызова нет нормализованных секций промпта. Вкладка Raw показывает полное тело запроса.`,emptyTitle:`Нет нормализованных секций промпта`,expandAll:`Развернуть всё`,formatJavaScript:`JavaScript`,formatJson:`JSON`,formatMarkdown:`Markdown`,formatTypeScript:`TypeScript`,noContentAvailable:`Содержимое недоступно.`,promptSectionsTitle:`Секции промпта`},R={copyRequestPayloadAriaLabel:`Скопировать тело запроса`,copyResponsePayloadAriaLabel:`Скопировать тело ответа`,downloadFailedToast:`Не удалось скачать тело.`,downloadRequestPayloadAriaLabel:`Скачать тело запроса`,downloadResponsePayloadAriaLabel:`Скачать тело ответа`,loadErrorTitle:`Не удалось загрузить сырые тела`,loading:`Загрузка сырых тел…`,payloadRequestFailed:`Запрос тела не удался. Повторите попытку.`,request:`Запрос`,requestPayload:`Тело запроса`,response:`Ответ`,responsePayload:`Тело ответа`,retry:`Повторить`},z={revealFailed:`Не удалось показать {name}.`},B={argumentsPreview:`Предпросмотр аргументов`,copySectionAria:`Скопировать содержимое секции`,kindAssistantText:`Текст ассистента`,kindFunctionResponse:`Ответ функции`,kindReasoning:`Рассуждение`,kindToolCall:`Вызов инструмента`,kindToolResult:`Результат инструмента`,modeResultOnly:`Ответ только с результатом`,modeTextOnly:`Ответ только текстом`,modeToolCalling:`Ответ с вызовом инструмента`,noArgumentsPreview:`Для этого вызова инструмента нет предпросмотра структурированных аргументов.`,noAssistantText:`Для этой секции не записали текст ассистента.`,noSectionsFallback:`У этого ответа нет отрисованных секций. Сырые тела остаются на вкладке Raw, а нормализованные метаданные ответа покажутся, если они есть.`,rawTabHint:`Полное тело провайдера: вкладка Raw для JSON запроса и ответа.`,responseMetadata:`Метаданные ответа`,sectionTitle:`Секция {number}`,sectionUnavailable:`Отрисовка секции недоступна`,stopReasonChip:`Причина остановки: {reason}`,toolChip:`Инструмент: {name}`},V={message:`Не удалось загрузить диалоги.`,retry:`Попробовать снова`},H={actionsAria:`Действия навыка`,moreTooltip:`Ещё`},U={callLink:`Вызов {number}`,emptyBody:`На этой вкладке перечислены все вызовы инструмента <code>skill_load</code> в диалоге. В записанных вызовах LLM их не нашли.`,emptyTitle:`В этом диалоге навыки не загружали`,loadCount:`{count, plural, one {1 загрузка} few {# загрузки} many {# загрузок} other {# загрузки}}`,summaryStats:`{uniqueCount, plural, one {# уникальный навык} few {# уникальных навыка} many {# уникальных навыков} other {# уникальных навыка}} · {totalLoads, plural, one {# вызов загрузки} few {# вызова загрузки} many {# вызовов загрузки} other {# вызова загрузки}}`,summaryTitle:`Навыки, загруженные в этом диалоге`},W={defaultValue:`по умолчанию: {value}`,inputSchema:`Схема ввода`,intro:`{count, plural, one {# инструмент отправили с этим запросом. Разверни инструмент, чтобы увидеть определение и схему ввода.} few {# инструмента отправили с этим запросом. Разверни инструмент, чтобы увидеть определение и схему ввода.} many {# инструментов отправили с этим запросом. Разверни инструмент, чтобы увидеть определение и схему ввода.} other {# инструмента отправили с этим запросом. Разверни инструмент, чтобы увидеть определение и схему ввода.}}`,noInputSchema:`Нет схемы ввода: этот инструмент не принимает структурированный ввод.`,required:`обязательно`,settings:`Настройки`},G={fileUnavailable:`Файл недоступен для скачивания`,fileUnavailableHostTimeout:`Файл недоступен для скачивания (возможно, истекло время на одобрение файла на хосте)`},K={authFailed:`Не удалось аутентифицировать пользователя.`},q={assistantBusy:`Ассистент занят. Повтор, когда закончит отвечать.`,retryFailed:`Не удалось повторить ответ`,summarizeFailed:`Не удалось кратко пересказать диалог`},J={commandFailed:`Не удалось выполнить эту команду. Повторите попытку.`,doctorUnavailable:`Doctor недоступен у этого ассистента.`},Y={nativeSttNoTranscript:`Нативная диктовка {clientName} не вернула расшифровку. Проверьте нативное распознавание речи в системных настройках и повторите попытку.`},X={acpConnectAffordance:e,activityStepsPanel:t,addToChatSheet:n,allowOptionsMenu:r,appAssetActions:i,assistantSideMenu:a,assistantSwitcher:o,cacheBreakpointMapCard:s,cacheDiffCard:c,cacheHealthCard:l,callRail:u,chatComposer:d,compactionTab:f,composerSettingsMenu:p,conversationActions:m,conversationActionsSheet:h,conversationAssets:g,conversationStarterDock:_,copyButton:v,copyIdToClipboard:y,deleteConversationConfirmDialog:b,detailPanelStopButton:x,documentAssetActions:S,exportProgressModal:C,fileDownload:w,groupActions:T,groupActionsSheet:E,inspectPage:D,llmCallErrorCard:O,localFileEmbed:k,localFileLink:A,memoryRouterPlaygroundPage:j,memoryTab:M,mobileCallSelector:N,overviewTab:P,pinnedAppColorSwatches:F,preferencesUsagePanel:I,promptTab:L,rawTab:R,redactedCredentialChip:z,responseTab:B,sidebarConversationError:V,skillDetailPanel:H,skillsTab:U,toolDefinitionsContent:W,transcriptMessageBody:G,useConversationLoader:K,useConversationSecondaryActions:q,useSendMessage:J,voiceErrors:Y};export{e as acpConnectAffordance,t as activityStepsPanel,n as addToChatSheet,r as allowOptionsMenu,i as appAssetActions,a as assistantSideMenu,o as assistantSwitcher,s as cacheBreakpointMapCard,c as cacheDiffCard,l as cacheHealthCard,u as callRail,d as chatComposer,f as compactionTab,p as composerSettingsMenu,m as conversationActions,h as conversationActionsSheet,g as conversationAssets,_ as conversationStarterDock,v as copyButton,y as copyIdToClipboard,X as default,b as deleteConversationConfirmDialog,x as detailPanelStopButton,S as documentAssetActions,C as exportProgressModal,w as fileDownload,T as groupActions,E as groupActionsSheet,D as inspectPage,O as llmCallErrorCard,k as localFileEmbed,A as localFileLink,j as memoryRouterPlaygroundPage,M as memoryTab,N as mobileCallSelector,P as overviewTab,F as pinnedAppColorSwatches,I as preferencesUsagePanel,L as promptTab,R as rawTab,z as redactedCredentialChip,B as responseTab,V as sidebarConversationError,H as skillDetailPanel,U as skillsTab,W as toolDefinitionsContent,G as transcriptMessageBody,K as useConversationLoader,q as useConversationSecondaryActions,J as useSendMessage,Y as voiceErrors};
3
+ Пустое поле берёт встроенный шаблон. «Загрузить по умолчанию» подставляет в поле встроенный текст для правки.`,description:`Прогон маршрутизатора v4 с своими переопределениями уровня и пакета. Только чтение: строки в <code>memory_v2_injection_events</code> и <code>memory_v2_activation_logs</code> не пишутся, состояние активации не меняется. Пустое переопределение берёт живое значение конфига; <code>null</code> явно выключает уровень.`,diffLabel:`Разница`,diffValue:`{shared} общих · {unique} только у этой панели`,effectiveConfig:`Итоговый конфиг`,emaScore:`EMA {score}`,empty:`(пусто)`,emptySelectionHint:`Маршрутизатор вернул пустой выбор. Более точный запрос или ослабление переопределений.`,failedToRunSimulation:`Не удалось запустить симуляцию`,firstTurnAssistantPlaceholder:`Пустое поле: сценарий первого хода.`,inheritActive:`наследовать активный`,inheritActiveWithProfile:`наследовать активный ({profile})`,inheritPlaceholder:`наследовать`,invalidOverrideInput:`Некорректное переопределение`,justArrivedUserLabel:`Только что пришло [user]: сообщение`,lastUserPlaceholder:`например, что выпустить дальше`,legendAOnly:`только A`,legendBOnly:`только B`,legendInBoth:`в обоих`,llmProfilesOverride:`переопределение llm.profiles`,loadDefault:`Загрузить по умолчанию`,loading:`Загрузка…`,noPagesSelected:`Страницы не выбраны`,notAvailable:`Песочница маршрутизатора памяти недоступна.`,nowBlockLabel:`блок '<now>'`,nowDefaultPlaceholder:`Заполнено живым NOW.md. Прави, чтобы проверить другие состояния.`,nowLoadingPlaceholder:`Загрузка текущего NOW.md…`,nullValue:`null`,overrideMustBePositiveInteger:`{fieldName} должен быть положительным целым или 'null' (получено "{value}")`,overrideSuffix:` (переопределение)`,pageCount:`{count, plural, one {# страница} few {# страницы} many {# страниц} other {# страницы}}`,pairLabel:`Пара {index} из {total}`,pairMostRecentSuffix:` · самая свежая`,paneTitle:`Панель {paneId}`,promptModeBundled:`встроенный`,promptModeCustom:`свой`,rawApiExchange:`Сырой обмен API`,recentPairsLabel:`Недавние пары (ассистент, пользователь) · сначала старые`,reloadNowButton:`Перезагрузить живой NOW.md`,removeButton:`Удалить`,requestLabel:`Запрос (панель {paneId})`,reset:`Сбросить`,responseLabel:`Ответ (панель {paneId})`,routerFailure:`Сбой маршрутизатора: {reason}`,runBoth:`Запустить оба`,runPane:`Запустить {paneId}`,running:`Запуск…`,selectedLabel:`Выбрано`,selectedValue:`{count} (живой max_page_ids: {maxPageIds})`,summary:`Сводка`,summaryUserMessageLabel:`Сообщение пользователя`,systemPrompt:`Системный промпт`,systemPromptConfigLabel:`системный промпт`,tier1Label:`уровень 1`,tier2Label:`уровень 2`,tier3Label:`уровень 3 · b{batch}`,title:`Песочница маршрутизатора памяти`,totalCandidatePagesLabel:`Всего страниц-кандидатов`,userMessageLabel:`[user]: сообщение`,userMessagePlaceholder:`Сообщение пользователя.`},j={afterMergeLabel:`После слияния`,breakdownCAssistantRerank:`c_assistant · rerank Δ_a`,breakdownCAssistantSim:`c_assistant · sim_a`,breakdownCNowSim:`c_now · sim_n`,breakdownCUserRerank:`c_user · rerank Δ_u`,breakdownCUserSim:`c_user · sim_u`,breakdownOwnActivation:`A_o (свой)`,breakdownPriorActivation:`prior · d`,breakdownRerankScaledRaw:`+{scaled} (сырой {raw})`,breakdownScaledRaw:`{scaled} (сырой {raw})`,breakdownSource:`источник`,breakdownSpreadDelta:`spread Δ`,breakdownStatus:`статус`,candidateScores:`sem {semantic} · rec {recency}`,carriedPill:`Перенесено: {count}`,conceptActivationsSubtitle:"Сортировка по итоговой активации. Записи навыков идут с префиксом `skills/`; разверни строку, чтобы увидеть разбивку активации.",conceptActivationsTitle:`Активации концептов ({count})`,configCAssistant:`c_assistant`,configCNow:`c_now`,configCUser:`c_user`,configDDecay:`d (затухание)`,configEpsilon:`epsilon`,configHops:`hops`,configKSharpening:`k (обострение)`,configSubtitle:`Веса активации и пороги отбора.`,configTitle:`Конфиг`,configTopK:`top_k`,copyAriaLabel:`Скопировать в буфер обмена`,copyAriaLabelCopied:`Скопировано`,copyButtonCopied:`Скопировано`,copyButtonCopy:`Копировать`,copyErrorMessage:`Не удалось скопировать в буфер обмена.`,copyTitle:`Копировать`,copyTitleCopied:`Скопировано!`,corePill:`Ядро: {count}`,degradationTitle:`Деградация`,fallbackSourcesLabel:`Резервные источники`,hybridSearchLabel:`Гибридный поиск`,inContextPill:`В контексте: {count}`,injectedMemoryContextTitle:`Вставленный контекст памяти`,injectedPill:`Вставлено: {count}`,injectedTokensLabel:`Вставленные токены`,latencyMs:`{ms} мс`,loading:`Загрузка…`,loggedMemorySelectionSubtitle:`Отрисовано из выбора v3, в этот ход не вставлено.`,loggedMemorySelectionTitle:`Записанный выбор памяти`,memoryDisabledDefaultReason:`Для этого хода вспоминание памяти было выключено.`,memoryDisabledTitle:`Память выключена`,missingValue:`-`,modelLabel:`Модель`,no:`Нет`,noDataBody:`Сведения о вспоминании памяти для этого сообщения недоступны.`,noDataTitle:`Нет данных памяти`,noEntriesRanked:`Нет ранжированных записей.`,noPagesSelected:`Страницы не выбраны.`,notInjectedPill:`Не вставлено: {count}`,pageContentLabel:`содержимое страницы`,pageNotFound:`Страница не найдена на диске. Slug может ссылаться на устаревшую запись Qdrant.`,pillMemoryV2:`Memory V2`,pillMemoryV3:`Memory V3`,pillRecallV1:`Recall (v1)`,pinnedChip:`закреплено`,pinnedPill:`Закреплено: {count}`,providerLabel:`Провайдер`,queryContextSubtitle:`Текст, который встроили как поисковый вектор для семантического поиска.`,queryContextTitle:`Контекст запроса`,reasonLabel:`Причина`,retrievalFunnelSubtitle:`Как воспоминания отфильтровали от семантического поиска до вставки.`,retrievalFunnelTitle:`Воронка поиска`,searchDetailsTitle:`Подробности поиска`,selectedLabel:`Выбрано`,selectedPagesSubtitle:`Страницы, которые выбрал v3, с меткой полосы, откуда они пришли, и совпавшего раздела (если полоса поиска его нашла).`,selectedPagesTitle:`Выбранные страницы ({count})`,selectedPill:`Выбрано: {count}`,semanticHitsLabel:`Семантические совпадения`,semanticUnavailableLabel:`Семантика недоступна`,sparseDenseOnly:`Только плотные`,sparseUsed:`Использованы`,sparseVectorsLabel:`Разреженные векторы`,statusActive:`Активно`,statusDegraded:`Деградировано`,statusLabel:`Статус`,statusSubtitle:`Провайдер, модель и задержка этого вспоминания.`,statusTitle:`Статус`,tier1Label:`Уровень 1`,tier2Label:`Уровень 2`,topCandidatesSubtitle:`{count, plural, one {# кандидат, ранжированный по итоговому баллу.} few {# кандидата, ранжированных по итоговому баллу.} many {# кандидатов, ранжированных по итоговому баллу.} other {# кандидата, ранжированных по итоговому баллу.}}`,topCandidatesTitle:`Лучшие кандидаты`,totalLatencyLabel:`Общая задержка`,turnLevelRecallBody:`Вспоминание памяти запускается один раз за ход. Эти данные относятся ко всем вызовам LLM этого сообщения.`,turnLevelRecallTitle:`Вспоминание на уровне хода`,turnPill:`Ход {turn}`,unavailable:`Недоступно`,unknown:`Неизвестно`,v2StatusInContext:`В контексте`,v2StatusInjected:`Вставлено`,v2StatusNotInjected:`Не вставлено`,v2StatusPageMissing:`Страницы нет`,v2TurnBody:`Проход памяти с распространением активации: ранжирует концепты и навыки для этого хода.`,v2TurnTitle:`Память - ход {turn} ({mode})`,v3LiveInjectionBody:`v3 в этом ходе живой источник памяти: блок ниже вставлен в контекст (v2 подавлен).`,v3LiveInjectionTitle:`Memory V3 - живая вставка`,v3LoggedSelectionBody:`v3 не живой источник памяти этого ассистента: эти выборы записали, но в этот ход не вставили; память хода пришла из v2.`,v3LoggedSelectionTitle:`Memory V3 - записанный выбор (не вставлено)`,v3SourceCarried:`перенесено`,v3SourceCore:`ядро`,v3SourceL1L2:`L1+L2`,v3SourceNeedle:`needle`,yes:`Да`},M={callOfTotal:`Вызов {number} из {total}`,llmCallCount:`{count, plural, one {1 вызов LLM} few {# вызова LLM} many {# вызовов LLM} other {# вызова LLM}}`,selectCallAria:`Выбор вызова LLM для разбора`,sheetTitle:`Выбор вызова`},N={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:`Использование`},P={colors:{green:`Зелёный`,orange:`Оранжевый`,pink:`Розовый`,purple:`Фиолетовый`,teal:`Бирюзовый`,yellow:`Жёлтый`},noColor:`Без цвета`},F={addCreditsAriaLabel:`Добавить кредиты`,exhausted:`Добавление кредитов для продолжения.`,pctUsed:`использовано {pct}%`,resets:`Сброс {date}`,settingsAriaLabel:`Настройки использования и оплаты`,title:`Использование`},I={availableTools:`Доступные инструменты`,bannerNoSections:`У этого вызова ещё нет нормализованных секций промпта.`,bannerSectionsCount:`{count, plural, one {# нормализованная секция запроса в порядке, который вернул маршрут ассистента.} few {# нормализованные секции запроса в порядке, который вернул маршрут ассистента.} many {# нормализованных секций запроса в порядке, который вернул маршрут ассистента.} other {# нормализованные секции запроса в порядке, который вернул маршрут ассистента.}}`,collapseAll:`Свернуть всё`,copyAriaLabel:`Скопировать {title}`,emptyBody:`У этого вызова нет нормализованных секций промпта. Вкладка Raw показывает полное тело запроса.`,emptyTitle:`Нет нормализованных секций промпта`,expandAll:`Развернуть всё`,formatJavaScript:`JavaScript`,formatJson:`JSON`,formatMarkdown:`Markdown`,formatTypeScript:`TypeScript`,noContentAvailable:`Содержимое недоступно.`,promptSectionsTitle:`Секции промпта`},L={copyRequestPayloadAriaLabel:`Скопировать тело запроса`,copyResponsePayloadAriaLabel:`Скопировать тело ответа`,downloadFailedToast:`Не удалось скачать тело.`,downloadRequestPayloadAriaLabel:`Скачать тело запроса`,downloadResponsePayloadAriaLabel:`Скачать тело ответа`,loadErrorTitle:`Не удалось загрузить сырые тела`,loading:`Загрузка сырых тел…`,payloadRequestFailed:`Запрос тела не удался. Повторите попытку.`,request:`Запрос`,requestPayload:`Тело запроса`,response:`Ответ`,responsePayload:`Тело ответа`,retry:`Повторить`},R={revealFailed:`Не удалось показать {name}.`},z={argumentsPreview:`Предпросмотр аргументов`,copySectionAria:`Скопировать содержимое секции`,kindAssistantText:`Текст ассистента`,kindFunctionResponse:`Ответ функции`,kindReasoning:`Рассуждение`,kindToolCall:`Вызов инструмента`,kindToolResult:`Результат инструмента`,modeResultOnly:`Ответ только с результатом`,modeTextOnly:`Ответ только текстом`,modeToolCalling:`Ответ с вызовом инструмента`,noArgumentsPreview:`Для этого вызова инструмента нет предпросмотра структурированных аргументов.`,noAssistantText:`Для этой секции не записали текст ассистента.`,noSectionsFallback:`У этого ответа нет отрисованных секций. Сырые тела остаются на вкладке Raw, а нормализованные метаданные ответа покажутся, если они есть.`,rawTabHint:`Полное тело провайдера: вкладка Raw для JSON запроса и ответа.`,responseMetadata:`Метаданные ответа`,sectionTitle:`Секция {number}`,sectionUnavailable:`Отрисовка секции недоступна`,stopReasonChip:`Причина остановки: {reason}`,toolChip:`Инструмент: {name}`},B={message:`Не удалось загрузить диалоги.`,retry:`Попробовать снова`},V={actionsAria:`Действия навыка`,moreTooltip:`Ещё`},H={callLink:`Вызов {number}`,emptyBody:`На этой вкладке перечислены все вызовы инструмента <code>skill_load</code> в диалоге. В записанных вызовах LLM их не нашли.`,emptyTitle:`В этом диалоге навыки не загружали`,loadCount:`{count, plural, one {1 загрузка} few {# загрузки} many {# загрузок} other {# загрузки}}`,summaryStats:`{uniqueCount, plural, one {# уникальный навык} few {# уникальных навыка} many {# уникальных навыков} other {# уникальных навыка}} · {totalLoads, plural, one {# вызов загрузки} few {# вызова загрузки} many {# вызовов загрузки} other {# вызова загрузки}}`,summaryTitle:`Навыки, загруженные в этом диалоге`},U={defaultValue:`по умолчанию: {value}`,inputSchema:`Схема ввода`,intro:`{count, plural, one {# инструмент отправили с этим запросом. Разверни инструмент, чтобы увидеть определение и схему ввода.} few {# инструмента отправили с этим запросом. Разверни инструмент, чтобы увидеть определение и схему ввода.} many {# инструментов отправили с этим запросом. Разверни инструмент, чтобы увидеть определение и схему ввода.} other {# инструмента отправили с этим запросом. Разверни инструмент, чтобы увидеть определение и схему ввода.}}`,noInputSchema:`Нет схемы ввода: этот инструмент не принимает структурированный ввод.`,required:`обязательно`,settings:`Настройки`},W={fileUnavailable:`Файл недоступен для скачивания`,fileUnavailableHostTimeout:`Файл недоступен для скачивания (возможно, истекло время на одобрение файла на хосте)`},G={authFailed:`Не удалось аутентифицировать пользователя.`},K={assistantBusy:`Ассистент занят. Повтор, когда закончит отвечать.`,retryFailed:`Не удалось повторить ответ`,summarizeFailed:`Не удалось кратко пересказать диалог`},q={commandFailed:`Не удалось выполнить эту команду. Повторите попытку.`,doctorUnavailable:`Doctor недоступен у этого ассистента.`},J={nativeSttNoTranscript:`Нативная диктовка {clientName} не вернула расшифровку. Проверьте нативное распознавание речи в системных настройках и повторите попытку.`},Y={acpConnectAffordance:e,activityStepsPanel:t,addToChatSheet:n,allowOptionsMenu:r,appAssetActions:i,assistantSideMenu:a,assistantSwitcher:o,cacheBreakpointMapCard:s,cacheDiffCard:c,cacheHealthCard:l,callRail:u,chatComposer:d,compactionTab:f,composerSettingsMenu:p,conversationActions:m,conversationActionsSheet:h,conversationAssets:g,conversationStarterDock:_,copyButton:v,copyIdToClipboard:y,deleteConversationConfirmDialog:b,documentAssetActions:x,exportProgressModal:S,fileDownload:C,groupActions:w,groupActionsSheet:T,inspectPage:E,llmCallErrorCard:D,localFileEmbed:O,localFileLink:k,memoryRouterPlaygroundPage:A,memoryTab:j,mobileCallSelector:M,overviewTab:N,pinnedAppColorSwatches:P,preferencesUsagePanel:F,promptTab:I,rawTab:L,redactedCredentialChip:R,responseTab:z,sidebarConversationError:B,skillDetailPanel:V,skillsTab:H,toolDefinitionsContent:U,transcriptMessageBody:W,useConversationLoader:G,useConversationSecondaryActions:K,useSendMessage:q,voiceErrors:J};export{e as acpConnectAffordance,t as activityStepsPanel,n as addToChatSheet,r as allowOptionsMenu,i as appAssetActions,a as assistantSideMenu,o as assistantSwitcher,s as cacheBreakpointMapCard,c as cacheDiffCard,l as cacheHealthCard,u as callRail,d as chatComposer,f as compactionTab,p as composerSettingsMenu,m as conversationActions,h as conversationActionsSheet,g as conversationAssets,_ as conversationStarterDock,v as copyButton,y as copyIdToClipboard,Y as default,b as deleteConversationConfirmDialog,x as documentAssetActions,S as exportProgressModal,C as fileDownload,w as groupActions,T as groupActionsSheet,E as inspectPage,D as llmCallErrorCard,O as localFileEmbed,k as localFileLink,A as memoryRouterPlaygroundPage,j as memoryTab,M as mobileCallSelector,N as overviewTab,P as pinnedAppColorSwatches,F as preferencesUsagePanel,I as promptTab,L as rawTab,R as redactedCredentialChip,z as responseTab,B as sidebarConversationError,V as skillDetailPanel,H as skillsTab,U as toolDefinitionsContent,W as transcriptMessageBody,G as useConversationLoader,K as useConversationSecondaryActions,q as useSendMessage,J as voiceErrors};