@yadsh/dsh-qa-surface 0.13.0 → 0.14.0

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 (336) hide show
  1. package/README.md +148 -22
  2. package/compatibility.json +7 -3
  3. package/lib/access/capability-catalog.js +22 -6
  4. package/lib/access/capability-catalog.js.map +1 -1
  5. package/lib/access/model.js +36 -2
  6. package/lib/access/model.js.map +1 -1
  7. package/lib/access/service.js +19 -4
  8. package/lib/access/service.js.map +1 -1
  9. package/lib/account-remotes.js +4 -0
  10. package/lib/account-remotes.js.map +1 -1
  11. package/lib/accounts/database.js +49 -9
  12. package/lib/accounts/database.js.map +1 -1
  13. package/lib/accounts/errors.js.map +1 -1
  14. package/lib/accounts/file.js.map +1 -1
  15. package/lib/accounts/store.js +53 -8
  16. package/lib/accounts/store.js.map +1 -1
  17. package/lib/admin/permissions.js +6 -0
  18. package/lib/admin/permissions.js.map +1 -1
  19. package/lib/admin/quality-store.js +95 -19
  20. package/lib/admin/quality-store.js.map +1 -1
  21. package/lib/admin/service.js +178 -0
  22. package/lib/admin/service.js.map +1 -1
  23. package/lib/cli.js +24 -4
  24. package/lib/cli.js.map +1 -1
  25. package/lib/client/QaAccountsController.js +52 -5
  26. package/lib/client/QaAccountsController.js.map +1 -1
  27. package/lib/client/QaConfigController.js.map +1 -1
  28. package/lib/client/QaSessionController.js +626 -63
  29. package/lib/client/QaSessionController.js.map +1 -1
  30. package/lib/client/QaSurface.js +279 -43
  31. package/lib/client/QaSurface.js.map +1 -1
  32. package/lib/client/QaSurfaceGuard.js +2 -2
  33. package/lib/client/QaSurfaceGuard.js.map +1 -1
  34. package/lib/client/QaTranscriptAdapter.js +4 -2
  35. package/lib/client/QaTranscriptAdapter.js.map +1 -1
  36. package/lib/client/admin/QaAdmin.js +59 -34
  37. package/lib/client/admin/QaAdmin.js.map +1 -1
  38. package/lib/client/admin/pages/Conversations.js +12 -12
  39. package/lib/client/admin/pages/Conversations.js.map +1 -1
  40. package/lib/client/admin/pages/ExpertMemory.js +210 -0
  41. package/lib/client/admin/pages/ExpertMemory.js.map +1 -0
  42. package/lib/client/admin/pages/Overview.js +4 -4
  43. package/lib/client/admin/pages/Overview.js.map +1 -1
  44. package/lib/client/admin/pages/Quality.js +5 -5
  45. package/lib/client/admin/pages/Quality.js.map +1 -1
  46. package/lib/client/admin/pages/Review.js +5 -5
  47. package/lib/client/admin/pages/Review.js.map +1 -1
  48. package/lib/client/admin/pages/SkillFiles.js +3 -3
  49. package/lib/client/admin/pages/SkillFiles.js.map +1 -1
  50. package/lib/client/admin/pages/Users.js +12 -12
  51. package/lib/client/admin/pages/Users.js.map +1 -1
  52. package/lib/client/admin/routes.js +4 -0
  53. package/lib/client/admin/routes.js.map +1 -1
  54. package/lib/client/admin/shared.js +15 -6
  55. package/lib/client/admin/shared.js.map +1 -1
  56. package/lib/client/admin/styles.js +3 -0
  57. package/lib/client/admin/styles.js.map +1 -1
  58. package/lib/client/attestation.js +11 -2
  59. package/lib/client/attestation.js.map +1 -1
  60. package/lib/client/audit/QaAuditDialog.js +2 -2
  61. package/lib/client/audit/QaAuditDialog.js.map +1 -1
  62. package/lib/client/audit/QaAuditRowBadge.js +1 -1
  63. package/lib/client/audit/QaAuditRowBadge.js.map +1 -1
  64. package/lib/client/components/Markdown.js +7 -2
  65. package/lib/client/components/Markdown.js.map +1 -1
  66. package/lib/client/components/QaAgentsDrawer.js +7 -5
  67. package/lib/client/components/QaAgentsDrawer.js.map +1 -1
  68. package/lib/client/components/QaApproval.js +2 -2
  69. package/lib/client/components/QaApproval.js.map +1 -1
  70. package/lib/client/components/QaAuthGate.js +6 -6
  71. package/lib/client/components/QaAuthGate.js.map +1 -1
  72. package/lib/client/components/QaChangelog.js +64 -0
  73. package/lib/client/components/QaChangelog.js.map +1 -1
  74. package/lib/client/components/QaComposer.js +9 -6
  75. package/lib/client/components/QaComposer.js.map +1 -1
  76. package/lib/client/components/QaFileAttachment.js +1 -1
  77. package/lib/client/components/QaFileAttachment.js.map +1 -1
  78. package/lib/client/components/QaFilesPanel.js +7 -7
  79. package/lib/client/components/QaFilesPanel.js.map +1 -1
  80. package/lib/client/components/QaHeader.js +4 -4
  81. package/lib/client/components/QaHeader.js.map +1 -1
  82. package/lib/client/components/QaMessage.js +12 -12
  83. package/lib/client/components/QaMessage.js.map +1 -1
  84. package/lib/client/components/QaModal.js +11 -2
  85. package/lib/client/components/QaModal.js.map +1 -1
  86. package/lib/client/components/QaQuestions.js +4 -4
  87. package/lib/client/components/QaQuestions.js.map +1 -1
  88. package/lib/client/components/QaQueueDock.js +137 -0
  89. package/lib/client/components/QaQueueDock.js.map +1 -0
  90. package/lib/client/components/QaRequestQueue.js +22 -0
  91. package/lib/client/components/QaRequestQueue.js.map +1 -0
  92. package/lib/client/components/QaRightRail.js +2 -2
  93. package/lib/client/components/QaRightRail.js.map +1 -1
  94. package/lib/client/components/QaSidebar.js +66 -6
  95. package/lib/client/components/QaSidebar.js.map +1 -1
  96. package/lib/client/components/QaSourcesPanel.js +10 -8
  97. package/lib/client/components/QaSourcesPanel.js.map +1 -1
  98. package/lib/client/components/QaThemeSwitcher.js +19 -0
  99. package/lib/client/components/QaThemeSwitcher.js.map +1 -0
  100. package/lib/client/components/QaTurnNotice.js +40 -0
  101. package/lib/client/components/QaTurnNotice.js.map +1 -0
  102. package/lib/client/components/QaTurnRail.js +3 -3
  103. package/lib/client/components/QaTurnRail.js.map +1 -1
  104. package/lib/client/components/QaWelcomeNotice.js +2 -6
  105. package/lib/client/components/QaWelcomeNotice.js.map +1 -1
  106. package/lib/client/components/QaWidthHandle.js +2 -2
  107. package/lib/client/components/QaWidthHandle.js.map +1 -1
  108. package/lib/client/components/QaWorkGroup.js +5 -5
  109. package/lib/client/components/QaWorkGroup.js.map +1 -1
  110. package/lib/client/components/QaWorkspaceBrowser.js +10 -10
  111. package/lib/client/components/QaWorkspaceBrowser.js.map +1 -1
  112. package/lib/client/components/VariantSwitcher.js +1 -1
  113. package/lib/client/components/VariantSwitcher.js.map +1 -1
  114. package/lib/client/failure-copy.js +26 -8
  115. package/lib/client/failure-copy.js.map +1 -1
  116. package/lib/client/focus-ring.js +193 -0
  117. package/lib/client/focus-ring.js.map +1 -0
  118. package/lib/client/index.js +40 -20
  119. package/lib/client/index.js.map +1 -1
  120. package/lib/client/lineage.js +3 -16
  121. package/lib/client/lineage.js.map +1 -1
  122. package/lib/client/markdown/CodeBlock.js +2 -2
  123. package/lib/client/markdown/CodeBlock.js.map +1 -1
  124. package/lib/client/markdown/blocks.js +118 -31
  125. package/lib/client/markdown/blocks.js.map +1 -1
  126. package/lib/client/markdown/math.js +1 -1
  127. package/lib/client/markdown/math.js.map +1 -1
  128. package/lib/client/markdown/render.js +32 -16
  129. package/lib/client/markdown/render.js.map +1 -1
  130. package/lib/client/markdown/source-chip.js +3 -3
  131. package/lib/client/markdown/source-chip.js.map +1 -1
  132. package/lib/client/notifications/notification-dispatcher.js +90 -0
  133. package/lib/client/notifications/notification-dispatcher.js.map +1 -0
  134. package/lib/client/notifications/preferences.js +61 -0
  135. package/lib/client/notifications/preferences.js.map +1 -0
  136. package/lib/client/notifications/turn-completion-source.js +82 -0
  137. package/lib/client/notifications/turn-completion-source.js.map +1 -0
  138. package/lib/client/notifications/use-turn-notifications.js +108 -0
  139. package/lib/client/notifications/use-turn-notifications.js.map +1 -0
  140. package/lib/client/panels/PanelHost.js +5 -5
  141. package/lib/client/panels/PanelHost.js.map +1 -1
  142. package/lib/client/panels/PanelLauncher.js +2 -2
  143. package/lib/client/panels/PanelLauncher.js.map +1 -1
  144. package/lib/client/project-session-state.js +156 -4
  145. package/lib/client/project-session-state.js.map +1 -1
  146. package/lib/client/role/RoleSelector.js +9 -4
  147. package/lib/client/role/RoleSelector.js.map +1 -1
  148. package/lib/client/settings/card.js +58 -17
  149. package/lib/client/settings/card.js.map +1 -1
  150. package/lib/client/settings/fields.js +11 -10
  151. package/lib/client/settings/fields.js.map +1 -1
  152. package/lib/client/settings/format.js +0 -9
  153. package/lib/client/settings/format.js.map +1 -1
  154. package/lib/client/settings/sections/access.js +5 -5
  155. package/lib/client/settings/sections/access.js.map +1 -1
  156. package/lib/client/settings/sections/accounts.js +10 -10
  157. package/lib/client/settings/sections/accounts.js.map +1 -1
  158. package/lib/client/settings/sections/attachments.js +6 -6
  159. package/lib/client/settings/sections/attachments.js.map +1 -1
  160. package/lib/client/settings/sections/branding.js +7 -7
  161. package/lib/client/settings/sections/branding.js.map +1 -1
  162. package/lib/client/settings/sections/common.js +4 -2
  163. package/lib/client/settings/sections/common.js.map +1 -1
  164. package/lib/client/settings/sections/docs.js +4 -3
  165. package/lib/client/settings/sections/docs.js.map +1 -1
  166. package/lib/client/settings/sections/embedding.js +2 -2
  167. package/lib/client/settings/sections/embedding.js.map +1 -1
  168. package/lib/client/settings/sections/interface.js +12 -12
  169. package/lib/client/settings/sections/interface.js.map +1 -1
  170. package/lib/client/settings/sections/lockdown.js +9 -9
  171. package/lib/client/settings/sections/lockdown.js.map +1 -1
  172. package/lib/client/settings/sections/notes.js +12 -12
  173. package/lib/client/settings/sections/notes.js.map +1 -1
  174. package/lib/client/settings/sections/session.js +15 -12
  175. package/lib/client/settings/sections/session.js.map +1 -1
  176. package/lib/client/settings/sections/slash.js +9 -9
  177. package/lib/client/settings/sections/slash.js.map +1 -1
  178. package/lib/client/settings/sections/sources.js +26 -26
  179. package/lib/client/settings/sections/sources.js.map +1 -1
  180. package/lib/client/settings/sections/status.js +2 -2
  181. package/lib/client/settings/sections/status.js.map +1 -1
  182. package/lib/client/settings/styles.js +15 -9
  183. package/lib/client/settings/styles.js.map +1 -1
  184. package/lib/client/slash/SlashPalette.js +4 -4
  185. package/lib/client/slash/SlashPalette.js.map +1 -1
  186. package/lib/client/styles.js +133 -83
  187. package/lib/client/styles.js.map +1 -1
  188. package/lib/client/theme-preference.js +162 -0
  189. package/lib/client/theme-preference.js.map +1 -0
  190. package/lib/client/types.js +8 -0
  191. package/lib/client/types.js.map +1 -1
  192. package/lib/client/use-session-ui-state.js +7 -5
  193. package/lib/client/use-session-ui-state.js.map +1 -1
  194. package/lib/client/user-settings/GeneralSettingsPage.js +6 -6
  195. package/lib/client/user-settings/GeneralSettingsPage.js.map +1 -1
  196. package/lib/client/user-settings/IntegrationTokensPage.js +6 -6
  197. package/lib/client/user-settings/IntegrationTokensPage.js.map +1 -1
  198. package/lib/client/user-settings/NotificationSettingsPage.js +107 -0
  199. package/lib/client/user-settings/NotificationSettingsPage.js.map +1 -0
  200. package/lib/client/user-settings/PasswordSettingsPage.js +1 -1
  201. package/lib/client/user-settings/PasswordSettingsPage.js.map +1 -1
  202. package/lib/client/user-settings/ProfileSettingsPage.js +2 -2
  203. package/lib/client/user-settings/ProfileSettingsPage.js.map +1 -1
  204. package/lib/client/user-settings/SkillCatalog.js +3 -3
  205. package/lib/client/user-settings/SkillCatalog.js.map +1 -1
  206. package/lib/client/user-settings/SkillEditor.js +26 -8
  207. package/lib/client/user-settings/SkillEditor.js.map +1 -1
  208. package/lib/client/user-settings/SkillToolPicker.js +3 -3
  209. package/lib/client/user-settings/SkillToolPicker.js.map +1 -1
  210. package/lib/client/user-settings/SkillsSettingsPage.js +1 -1
  211. package/lib/client/user-settings/SkillsSettingsPage.js.map +1 -1
  212. package/lib/client/user-settings/StartersSettingsPage.js +6 -6
  213. package/lib/client/user-settings/StartersSettingsPage.js.map +1 -1
  214. package/lib/client/user-settings/UserSettingsDialog.js +7 -2
  215. package/lib/client/user-settings/UserSettingsDialog.js.map +1 -1
  216. package/lib/client/user-settings/copy.js +2 -0
  217. package/lib/client/user-settings/copy.js.map +1 -1
  218. package/lib/client/user-settings/draft.js +4 -1
  219. package/lib/client/user-settings/draft.js.map +1 -1
  220. package/lib/client/user-settings/fields.js +5 -5
  221. package/lib/client/user-settings/fields.js.map +1 -1
  222. package/lib/client.js +7228 -4002
  223. package/lib/client.js.map +1 -1
  224. package/lib/config-resolvers/defaults.js +7 -0
  225. package/lib/config-resolvers/defaults.js.map +1 -1
  226. package/lib/config-resolvers/lockdown.js +7 -0
  227. package/lib/config-resolvers/lockdown.js.map +1 -1
  228. package/lib/config-resolvers/notifications.js +15 -0
  229. package/lib/config-resolvers/notifications.js.map +1 -0
  230. package/lib/config-resolvers/session.js +11 -1
  231. package/lib/config-resolvers/session.js.map +1 -1
  232. package/lib/config.js +67 -18
  233. package/lib/config.js.map +1 -1
  234. package/lib/enforcement/tool-grants.js +6 -6
  235. package/lib/enforcement/tool-grants.js.map +1 -1
  236. package/lib/index.js +145 -30
  237. package/lib/index.js.map +1 -1
  238. package/lib/integration/answer.js +74 -8
  239. package/lib/integration/answer.js.map +1 -1
  240. package/lib/integration/expert-memory.js +39 -0
  241. package/lib/integration/expert-memory.js.map +1 -0
  242. package/lib/integration/host-runner.js +26 -14
  243. package/lib/integration/host-runner.js.map +1 -1
  244. package/lib/notifications.js +66 -0
  245. package/lib/notifications.js.map +1 -0
  246. package/lib/personal-skills/errors.js.map +1 -1
  247. package/lib/personal-skills/service.js +81 -7
  248. package/lib/personal-skills/service.js.map +1 -1
  249. package/lib/prompt-notes.js +2 -10
  250. package/lib/prompt-notes.js.map +1 -1
  251. package/lib/qa-tools/docs-tools.js +1 -1
  252. package/lib/qa-tools/docs-tools.js.map +1 -1
  253. package/lib/qa-tools/lifecycle.js +6 -3
  254. package/lib/qa-tools/lifecycle.js.map +1 -1
  255. package/lib/request-queue.js +32 -0
  256. package/lib/request-queue.js.map +1 -0
  257. package/lib/resolve-config.js +2 -0
  258. package/lib/resolve-config.js.map +1 -1
  259. package/lib/secure-session.js +7 -2
  260. package/lib/secure-session.js.map +1 -1
  261. package/lib/shared/settings.js +19 -2
  262. package/lib/shared/settings.js.map +1 -1
  263. package/lib/turn-failure-log.js +67 -0
  264. package/lib/turn-failure-log.js.map +1 -0
  265. package/lib/typert.host.js +1398 -651
  266. package/lib/typert.remote-client.d.ts +15 -1
  267. package/lib/typert.remote-client.js +1315 -645
  268. package/lib/types/access/capability-catalog.d.ts +20 -4
  269. package/lib/types/access/model.d.ts +23 -0
  270. package/lib/types/access/service.d.ts +2 -3
  271. package/lib/types/account-remotes.d.ts +8 -1
  272. package/lib/types/accounts/database.d.ts +13 -3
  273. package/lib/types/accounts/errors.d.ts +9 -1
  274. package/lib/types/accounts/file.d.ts +12 -0
  275. package/lib/types/accounts/store.d.ts +30 -2
  276. package/lib/types/admin/quality-store.d.ts +33 -0
  277. package/lib/types/admin/service.d.ts +60 -1
  278. package/lib/types/client/QaAccountsController.d.ts +25 -2
  279. package/lib/types/client/QaConfigController.d.ts +2 -2
  280. package/lib/types/client/QaSessionController.d.ts +199 -6
  281. package/lib/types/client/QaSurface.d.ts +6 -1
  282. package/lib/types/client/admin/pages/ExpertMemory.d.ts +19 -0
  283. package/lib/types/client/admin/routes.d.ts +3 -1
  284. package/lib/types/client/admin/shared.d.ts +4 -0
  285. package/lib/types/client/components/Markdown.d.ts +8 -1
  286. package/lib/types/client/components/QaHeader.d.ts +3 -1
  287. package/lib/types/client/components/QaModal.d.ts +7 -0
  288. package/lib/types/client/components/QaQueueDock.d.ts +27 -0
  289. package/lib/types/client/components/QaRequestQueue.d.ts +20 -0
  290. package/lib/types/client/components/QaThemeSwitcher.d.ts +14 -0
  291. package/lib/types/client/components/QaTurnNotice.d.ts +55 -0
  292. package/lib/types/client/focus-ring.d.ts +65 -0
  293. package/lib/types/client/lineage.d.ts +3 -13
  294. package/lib/types/client/markdown/blocks.d.ts +30 -2
  295. package/lib/types/client/markdown/render.d.ts +4 -1
  296. package/lib/types/client/notifications/notification-dispatcher.d.ts +68 -0
  297. package/lib/types/client/notifications/preferences.d.ts +44 -0
  298. package/lib/types/client/notifications/turn-completion-source.d.ts +114 -0
  299. package/lib/types/client/notifications/use-turn-notifications.d.ts +51 -0
  300. package/lib/types/client/project-session-state.d.ts +35 -1
  301. package/lib/types/client/role/RoleSelector.d.ts +7 -1
  302. package/lib/types/client/settings/card.d.ts +36 -5
  303. package/lib/types/client/settings/fields.d.ts +24 -0
  304. package/lib/types/client/settings/format.d.ts +0 -5
  305. package/lib/types/client/settings/sections/common.d.ts +3 -1
  306. package/lib/types/client/settings/sections/session.d.ts +2 -1
  307. package/lib/types/client/settings/styles.d.ts +9 -4
  308. package/lib/types/client/settings-extensions/user-session.d.ts +1 -1
  309. package/lib/types/client/theme-preference.d.ts +69 -0
  310. package/lib/types/client/types.d.ts +25 -1
  311. package/lib/types/client/use-session-ui-state.d.ts +6 -4
  312. package/lib/types/client/user-settings/GeneralSettingsPage.d.ts +5 -5
  313. package/lib/types/client/user-settings/NotificationSettingsPage.d.ts +40 -0
  314. package/lib/types/client/user-settings/UserSettingsDialog.d.ts +12 -2
  315. package/lib/types/client/user-settings/draft.d.ts +4 -1
  316. package/lib/types/client/user-settings/fields.d.ts +7 -0
  317. package/lib/types/config-resolvers/notifications.d.ts +10 -0
  318. package/lib/types/config-resolvers/session.d.ts +6 -0
  319. package/lib/types/config.d.ts +20 -1
  320. package/lib/types/index.d.ts +53 -5
  321. package/lib/types/integration/answer.d.ts +27 -0
  322. package/lib/types/integration/expert-memory.d.ts +49 -0
  323. package/lib/types/notifications.d.ts +32 -0
  324. package/lib/types/personal-skills/errors.d.ts +1 -1
  325. package/lib/types/personal-skills/service.d.ts +6 -0
  326. package/lib/types/prompt-notes.d.ts +17 -4
  327. package/lib/types/request-queue.d.ts +32 -0
  328. package/lib/types/shared/settings.d.ts +19 -2
  329. package/lib/types/turn-failure-log.d.ts +18 -0
  330. package/lib/types/types.d.ts +180 -4
  331. package/package.json +64 -63
  332. package/scripts/attach-workspace-sessions.mjs +24 -5
  333. package/scripts/repair-session-events.mjs +25 -5
  334. package/lib/client/markdown/MermaidBlock.js +0 -80
  335. package/lib/client/markdown/MermaidBlock.js.map +0 -1
  336. package/lib/types/client/markdown/MermaidBlock.d.ts +0 -6
@@ -0,0 +1,108 @@
1
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
2
+ import { isPageFocused, planTurnNotice, raiseDesktopNotice, readNotificationPermission, requestNotificationPermission, } from "./notification-dispatcher.js";
3
+ import { readNotificationPrefs, resolveNoticeChannels, writeNotificationPrefs, } from "./preferences.js";
4
+ import { scopeNoticesToOwnChats, settleTurnCompletions, } from "./turn-completion-source.js";
5
+ /** Lines the stack holds; an older one is dropped rather than pushed away. */
6
+ const MAX_NOTICES = 3;
7
+ /**
8
+ * Turn-completion notices for the chats this reader owns. Of the rows the
9
+ * sidebar shows, only the ones this account owns outright are watched, and when
10
+ * one of them stops running after this page watched that run begin, the reader
11
+ * is told in the channels they and the deployment allow.
12
+ */
13
+ export function useQaTurnNotifications(input) {
14
+ const { chats, ownChatIds, notifications, storage, storageKey, account, paused, activeSessionId, onSwitch, } = input;
15
+ const seen = useRef(new Map());
16
+ const [items, setItems] = useState([]);
17
+ const [prefs, setPrefs] = useState(() => readNotificationPrefs(storage, storageKey));
18
+ // Memoized because the watcher below re-runs on any change to it, and a fresh
19
+ // object per render would have it re-reading the chat list on every keystroke.
20
+ const channels = useMemo(() => resolveNoticeChannels({ account: account?.notifications, prefs }), [account, prefs]);
21
+ // Also memoized for the watcher's sake: the rows are the sidebar's, so a
22
+ // render that changed nothing about them must not read the list again.
23
+ const ownedChats = useMemo(() => scopeNoticesToOwnChats(chats, ownChatIds), [chats, ownChatIds]);
24
+ const savePrefs = useCallback((next) => {
25
+ setPrefs(next);
26
+ writeNotificationPrefs(storage, storageKey, next);
27
+ }, [storage, storageKey]);
28
+ useEffect(() => {
29
+ const completions = settleTurnCompletions(seen.current, ownedChats, {
30
+ paused,
31
+ });
32
+ if (completions.length === 0)
33
+ return;
34
+ const focused = isPageFocused();
35
+ const permission = readNotificationPermission();
36
+ const added = [];
37
+ for (const completion of completions) {
38
+ const planned = planTurnNotice(completion, {
39
+ switches: notifications,
40
+ channels,
41
+ permission,
42
+ focused,
43
+ activeSessionId,
44
+ });
45
+ if (planned === null)
46
+ continue;
47
+ if (planned.desktop)
48
+ raiseDesktopNotice(completion);
49
+ if (planned.inApp)
50
+ added.push(planned.item);
51
+ }
52
+ if (added.length === 0)
53
+ return;
54
+ setItems((previous) => [...added.reverse(), ...previous].slice(0, MAX_NOTICES));
55
+ }, [channels, activeSessionId, ownedChats, notifications, paused]);
56
+ // Opening a chat by any other means is an answer to its notice.
57
+ useEffect(() => {
58
+ if (activeSessionId === null)
59
+ return;
60
+ setItems((previous) => previous.some((item) => item.sessionId === activeSessionId)
61
+ ? previous.filter((item) => item.sessionId !== activeSessionId)
62
+ : previous);
63
+ }, [activeSessionId]);
64
+ const open = useCallback((sessionId) => {
65
+ setItems((previous) => previous.some((item) => item.sessionId === sessionId)
66
+ ? previous.filter((item) => item.sessionId !== sessionId)
67
+ : previous);
68
+ onSwitch(sessionId);
69
+ }, [onSwitch]);
70
+ // The offer is a single question per browser: asked when the desktop channel
71
+ // is still allowed by the deployment, unanswered, and the browser has not
72
+ // decided yet.
73
+ const offered = notifications.enabled &&
74
+ notifications.allowOs &&
75
+ !prefs.osOffered &&
76
+ readNotificationPermission() === "default";
77
+ // Waving a notice off while the offer is on screen is the answer to the
78
+ // offer too: it never returns to ask a second time.
79
+ const dismiss = useCallback((key) => {
80
+ setItems((previous) => previous.filter((item) => item.key !== key));
81
+ if (offered)
82
+ savePrefs({ ...prefs, osOffered: true });
83
+ }, [offered, prefs, savePrefs]);
84
+ // Answering the offer writes the choice where it belongs: on the account once
85
+ // there is one, so it survives into another browser, and in this browser's own
86
+ // store otherwise. The browser keeps its own copy either way — what it decides
87
+ // is that the question has been asked here, which is a fact about this
88
+ // browser's permission prompt rather than about the person.
89
+ const enableDesktop = useCallback(() => {
90
+ void requestNotificationPermission().then((permission) => {
91
+ const granted = permission === "granted";
92
+ savePrefs({ ...prefs, osEnabled: granted, osOffered: true });
93
+ if (account === undefined)
94
+ return;
95
+ void account.onSave({
96
+ inApp: account.notifications.inApp,
97
+ desktop: granted,
98
+ });
99
+ });
100
+ }, [account, prefs, savePrefs]);
101
+ return {
102
+ items,
103
+ onOpen: open,
104
+ onDismiss: dismiss,
105
+ ...(offered ? { onEnableDesktop: enableDesktop } : {}),
106
+ };
107
+ }
108
+ //# sourceMappingURL=use-turn-notifications.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-turn-notifications.js","sourceRoot":"","sources":["../../../src/client/notifications/use-turn-notifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAO1E,OAAO,EACL,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,0BAA0B,EAC1B,6BAA6B,GAE9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,GAEvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,sBAAsB,EACtB,qBAAqB,GAGtB,MAAM,6BAA6B,CAAC;AAErC,8EAA8E;AAC9E,MAAM,WAAW,GAAG,CAAC,CAAC;AA6CtB;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAA+B;IAE/B,MAAM,EACJ,KAAK,EACL,UAAU,EACV,aAAa,EACb,OAAO,EACP,UAAU,EACV,OAAO,EACP,MAAM,EACN,eAAe,EACf,QAAQ,GACT,GAAG,KAAK,CAAC;IACV,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,GAAG,EAA0B,CAAC,CAAC;IACvD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAA8B,EAAE,CAAC,CAAC;IACpE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAsB,GAAG,EAAE,CAC3D,qBAAqB,CAAC,OAAO,EAAE,UAAU,CAAC,CAC3C,CAAC;IACF,8EAA8E;IAC9E,+EAA+E;IAC/E,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EACvE,CAAC,OAAO,EAAE,KAAK,CAAC,CACjB,CAAC;IACF,yEAAyE;IACzE,uEAAuE;IACvE,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CAAC,sBAAsB,CAAC,KAAK,EAAE,UAAU,CAAC,EAC/C,CAAC,KAAK,EAAE,UAAU,CAAC,CACpB,CAAC;IAEF,MAAM,SAAS,GAAG,WAAW,CAC3B,CAAC,IAAyB,EAAE,EAAE;QAC5B,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC,EACD,CAAC,OAAO,EAAE,UAAU,CAAC,CACtB,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,WAAW,GAAG,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE;YAClE,MAAM;SACP,CAAC,CAAC;QACH,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACrC,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,0BAA0B,EAAE,CAAC;QAChD,MAAM,KAAK,GAAuB,EAAE,CAAC;QACrC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,EAAE;gBACzC,QAAQ,EAAE,aAAa;gBACvB,QAAQ;gBACR,UAAU;gBACV,OAAO;gBACP,eAAe;aAChB,CAAC,CAAC;YACH,IAAI,OAAO,KAAK,IAAI;gBAAE,SAAS;YAC/B,IAAI,OAAO,CAAC,OAAO;gBAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;YACpD,IAAI,OAAO,CAAC,KAAK;gBAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC/B,QAAQ,CAAC,CAAC,QAAQ,EAAE,EAAE,CACpB,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CACxD,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;IAEnE,gEAAgE;IAChE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,eAAe,KAAK,IAAI;YAAE,OAAO;QACrC,QAAQ,CAAC,CAAC,QAAQ,EAAE,EAAE,CACpB,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,eAAe,CAAC;YACzD,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,eAAe,CAAC;YAC/D,CAAC,CAAC,QAAQ,CACb,CAAC;IACJ,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,MAAM,IAAI,GAAG,WAAW,CACtB,CAAC,SAAiB,EAAE,EAAE;QACpB,QAAQ,CAAC,CAAC,QAAQ,EAAE,EAAE,CACpB,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC;YACnD,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC;YACzD,CAAC,CAAC,QAAQ,CACb,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,CAAC;IACtB,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,6EAA6E;IAC7E,0EAA0E;IAC1E,eAAe;IACf,MAAM,OAAO,GACX,aAAa,CAAC,OAAO;QACrB,aAAa,CAAC,OAAO;QACrB,CAAC,KAAK,CAAC,SAAS;QAChB,0BAA0B,EAAE,KAAK,SAAS,CAAC;IAE7C,wEAAwE;IACxE,oDAAoD;IACpD,MAAM,OAAO,GAAG,WAAW,CACzB,CAAC,GAAW,EAAE,EAAE;QACd,QAAQ,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;QACpE,IAAI,OAAO;YAAE,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC,EACD,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAC5B,CAAC;IAEF,8EAA8E;IAC9E,+EAA+E;IAC/E,+EAA+E;IAC/E,uEAAuE;IACvE,4DAA4D;IAC5D,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;QACrC,KAAK,6BAA6B,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE;YACvD,MAAM,OAAO,GAAG,UAAU,KAAK,SAAS,CAAC;YACzC,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7D,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAO;YAClC,KAAK,OAAO,CAAC,MAAM,CAAC;gBAClB,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK;gBAClC,OAAO,EAAE,OAAO;aACjB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAEhC,OAAO;QACL,KAAK;QACL,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,OAAO;QAClB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvD,CAAC;AACJ,CAAC"}
@@ -21,13 +21,13 @@ class PanelErrorBoundary extends Component {
21
21
  }
22
22
  render() {
23
23
  if (this.state.failed) {
24
- return (_jsxs("div", { className: "dsh-qa-extension-panel__fallback", role: "alert", children: ["\u041F\u0430\u043D\u0435\u043B\u044C \u00AB", this.props.definition.kind, "\u00BB \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0430 (id:", " ", this.props.definition.id, ")."] }));
24
+ return (_jsxs("div", { className: "dsh-qa-extension-panel__fallback", "data-testid": "qa-panel-error", role: "alert", children: ["\u041F\u0430\u043D\u0435\u043B\u044C \u00AB", this.props.definition.kind, "\u00BB \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0430 (id:", " ", this.props.definition.id, ")."] }));
25
25
  }
26
26
  return this.props.children;
27
27
  }
28
28
  }
29
29
  function MissingPanel({ definition, }) {
30
- return (_jsxs("div", { className: "dsh-qa-extension-panel__fallback", role: "status", children: ["\u041F\u0430\u043D\u0435\u043B\u044C \u00AB", definition.kind, "\u00BB \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0430 (id: ", definition.id, ")."] }));
30
+ return (_jsxs("div", { className: "dsh-qa-extension-panel__fallback", "data-testid": "qa-panel-missing", role: "status", children: ["\u041F\u0430\u043D\u0435\u043B\u044C \u00AB", definition.kind, "\u00BB \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0430 (id: ", definition.id, ")."] }));
31
31
  }
32
32
  function PanelSlotBody({ definition, owner, renderSlot, }) {
33
33
  return renderSlot("qa.surface.panel", owner, {
@@ -168,7 +168,7 @@ export function QaPanelHost({ panels, sessionId, qaToken = "", renderSlot, }) {
168
168
  return;
169
169
  event.preventDefault();
170
170
  };
171
- return (_jsxs(_Fragment, { children: [presentation === "side" ? (_jsx("div", { className: "dsh-qa-extension-panel__resizer", role: "separator", "aria-label": "\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0448\u0438\u0440\u0438\u043D\u0443 \u043F\u0430\u043D\u0435\u043B\u0438", "aria-orientation": "vertical", "aria-valuemin": QA_PANEL_MIN_PX, "aria-valuemax": clampQaPanelWidth(Number.POSITIVE_INFINITY, available), "aria-valuenow": width, tabIndex: 0, onPointerDown: handlePointerDown, onPointerMove: handlePointerMove, onPointerUp: handlePointerEnd, onPointerCancel: handlePointerEnd, onKeyDown: handleSeparatorKey })) : null, _jsxs("aside", { ref: root, className: `dsh-qa-extension-panel dsh-qa-extension-panel--${presentation}`, "data-presentation": presentation, "aria-label": `Панель: ${panelTitle(active)}`, tabIndex: -1, style: presentation === "side"
171
+ return (_jsxs(_Fragment, { children: [presentation === "side" ? (_jsx("div", { className: "dsh-qa-extension-panel__resizer", "data-testid": "qa-panel-resizer", role: "separator", "aria-label": "\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0448\u0438\u0440\u0438\u043D\u0443 \u043F\u0430\u043D\u0435\u043B\u0438", "aria-orientation": "vertical", "aria-valuemin": QA_PANEL_MIN_PX, "aria-valuemax": clampQaPanelWidth(Number.POSITIVE_INFINITY, available), "aria-valuenow": width, tabIndex: 0, onPointerDown: handlePointerDown, onPointerMove: handlePointerMove, onPointerUp: handlePointerEnd, onPointerCancel: handlePointerEnd, onKeyDown: handleSeparatorKey })) : null, _jsxs("aside", { ref: root, className: `dsh-qa-extension-panel dsh-qa-extension-panel--${presentation}`, "data-testid": "qa-panel", "data-presentation": presentation, "aria-label": `Панель: ${panelTitle(active)}`, tabIndex: -1, style: presentation === "side"
172
172
  ? { width: `${width}px` }
173
173
  : undefined, onKeyDown: (event) => {
174
174
  if (presentation === "fullscreen" &&
@@ -177,7 +177,7 @@ export function QaPanelHost({ panels, sessionId, qaToken = "", renderSlot, }) {
177
177
  event.stopPropagation();
178
178
  panels.close({ reason: "user" });
179
179
  }
180
- }, children: [_jsxs("header", { className: "dsh-qa-extension-panel__header", children: [_jsx("h2", { children: panelTitle(active) }), _jsx("button", { type: "button", className: "dsh-qa-extension-panel__close", "aria-label": `Закрыть панель: ${panelTitle(active)}`, onClick: () => panels.close({ reason: "user" }), children: _jsx("svg", { viewBox: "0 0 14 14", "aria-hidden": "true", children: _jsx("path", { d: "m3.5 3.5 7 7m0-7-7 7" }) }) })] }), _jsx("div", { className: "dsh-qa-extension-panel__bodies", children: snapshot.definitions.map((definition) => {
180
+ }, children: [_jsxs("header", { className: "dsh-qa-extension-panel__header", "data-testid": "qa-panel-header", children: [_jsx("h2", { "data-testid": "qa-panel-title", children: panelTitle(active) }), _jsx("button", { type: "button", className: "dsh-qa-extension-panel__close", "data-testid": "qa-panel-close", "aria-label": `Закрыть панель: ${panelTitle(active)}`, onClick: () => panels.close({ reason: "user" }), children: _jsx("svg", { viewBox: "0 0 14 14", "aria-hidden": "true", children: _jsx("path", { d: "m3.5 3.5 7 7m0-7-7 7" }) }) })] }), _jsx("div", { className: "dsh-qa-extension-panel__bodies", children: snapshot.definitions.map((definition) => {
181
181
  const visible = definition.kind === snapshot.activeKind;
182
182
  if (!visible &&
183
183
  (!definition.keepMounted || !mounted.current.has(definition.id))) {
@@ -203,7 +203,7 @@ export function QaPanelHost({ panels, sessionId, qaToken = "", renderSlot, }) {
203
203
  },
204
204
  signal,
205
205
  };
206
- return (_jsx("div", { className: "dsh-qa-extension-panel__body", hidden: !visible, "aria-hidden": !visible, children: _jsx(PanelErrorBoundary, { definition: definition, children: _jsx(PanelSlotBody, { definition: definition, owner: owner, renderSlot: renderSlot }) }) }, definition.id));
206
+ return (_jsx("div", { className: "dsh-qa-extension-panel__body", "data-testid": "qa-panel-body", hidden: !visible, "aria-hidden": !visible, children: _jsx(PanelErrorBoundary, { definition: definition, children: _jsx(PanelSlotBody, { definition: definition, owner: owner, renderSlot: renderSlot }) }) }, definition.id));
207
207
  }) })] })] }));
208
208
  }
209
209
  //# sourceMappingURL=PanelHost.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PanelHost.js","sourceRoot":"","sources":["../../../src/client/panels/PanelHost.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PanelHost.js","sourceRoot":"","sources":["../../../src/client/panels/PanelHost.tsx"],"names":[],"mappings":"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"}
@@ -30,10 +30,10 @@ export function QaPanelLauncher({ panels, }) {
30
30
  const visible = snapshot.definitions.filter((definition) => definition.userVisible !== false);
31
31
  if (visible.length === 0)
32
32
  return null;
33
- return (_jsx("nav", { className: "dsh-qa-panel-launcher", "aria-label": "\u041F\u0430\u043D\u0435\u043B\u0438 QA", children: visible.map((definition) => {
33
+ return (_jsx("nav", { className: "dsh-qa-panel-launcher", "data-testid": "qa-panel-launcher", "aria-label": "\u041F\u0430\u043D\u0435\u043B\u0438 QA", children: visible.map((definition) => {
34
34
  const label = title(definition);
35
35
  const active = snapshot.activeKind === definition.kind;
36
- return (_jsx("button", { type: "button", className: "dsh-qa-panel-launcher__button", "aria-label": `${active ? "Закрыть" : "Открыть"} панель: ${label}`, "aria-pressed": active, title: label, onClick: () => panels.toggle(definition.kind), children: _jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", children: _jsx(PanelIcon, { token: definition.icon }) }) }, definition.id));
36
+ return (_jsx("button", { type: "button", className: "dsh-qa-panel-launcher__button", "data-testid": "qa-panel-launcher-button", "aria-label": `${active ? "Закрыть" : "Открыть"} панель: ${label}`, "aria-pressed": active, title: label, onClick: () => panels.toggle(definition.kind), children: _jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", children: _jsx(PanelIcon, { token: definition.icon }) }) }, definition.id));
37
37
  }) }));
38
38
  }
39
39
  //# sourceMappingURL=PanelLauncher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PanelLauncher.js","sourceRoot":"","sources":["../../../src/client/panels/PanelLauncher.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAI7C,SAAS,KAAK,CAAC,UAAoC;IACjD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;QACxC,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,UAAU,CAAC,IAAI,CAAC;IACzB,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,KAAK,EAA0C;IAClE,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,SAAS;YACZ,OAAO,eAAM,CAAC,EAAC,oDAAoD,GAAG,CAAC;QACzE,KAAK,WAAW;YACd,OAAO,eAAM,CAAC,EAAC,8CAA8C,GAAG,CAAC;QACnE,KAAK,MAAM;YACT,OAAO,eAAM,CAAC,EAAC,mCAAmC,GAAG,CAAC;QACxD,KAAK,UAAU;YACb,OAAO,eAAM,CAAC,EAAC,iCAAiC,GAAG,CAAC;QACtD,KAAK,UAAU;YACb,OAAO,eAAM,CAAC,EAAC,gCAAgC,GAAG,CAAC;QACrD;YACE,OAAO,CACL,eAAM,CAAC,EAAC,mEAAmE,GAAG,CAC/E,CAAC;IACN,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAC9B,MAAM,GAGP;IACC,MAAM,QAAQ,GAAG,oBAAoB,CACnC,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,WAAW,CACnB,CAAC;IACF,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CACzC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,KAAK,KAAK,CACjD,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,CACL,cAAK,SAAS,EAAC,uBAAuB,gBAAY,yCAAW,YAC1D,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;YAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,CAAC;YACvD,OAAO,CACL,iBAEE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,+BAA+B,gBAC7B,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,YAAY,KAAK,EAAE,kBAClD,MAAM,EACpB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,YAE7C,cAAK,OAAO,EAAC,WAAW,iBAAa,MAAM,YACzC,KAAC,SAAS,IAAC,KAAK,EAAE,UAAU,CAAC,IAAI,GAAI,GACjC,IAVD,UAAU,CAAC,EAAE,CAWX,CACV,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"PanelLauncher.js","sourceRoot":"","sources":["../../../src/client/panels/PanelLauncher.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAI7C,SAAS,KAAK,CAAC,UAAoC;IACjD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;QACxC,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,UAAU,CAAC,IAAI,CAAC;IACzB,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,KAAK,EAA0C;IAClE,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,SAAS;YACZ,OAAO,eAAM,CAAC,EAAC,oDAAoD,GAAG,CAAC;QACzE,KAAK,WAAW;YACd,OAAO,eAAM,CAAC,EAAC,8CAA8C,GAAG,CAAC;QACnE,KAAK,MAAM;YACT,OAAO,eAAM,CAAC,EAAC,mCAAmC,GAAG,CAAC;QACxD,KAAK,UAAU;YACb,OAAO,eAAM,CAAC,EAAC,iCAAiC,GAAG,CAAC;QACtD,KAAK,UAAU;YACb,OAAO,eAAM,CAAC,EAAC,gCAAgC,GAAG,CAAC;QACrD;YACE,OAAO,CACL,eAAM,CAAC,EAAC,mEAAmE,GAAG,CAC/E,CAAC;IACN,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAC9B,MAAM,GAGP;IACC,MAAM,QAAQ,GAAG,oBAAoB,CACnC,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,WAAW,CACnB,CAAC;IACF,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CACzC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,KAAK,KAAK,CACjD,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,CACL,cACE,SAAS,EAAC,uBAAuB,iBACrB,mBAAmB,gBACpB,yCAAW,YAErB,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;YAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,CAAC;YACvD,OAAO,CACL,iBAEE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,+BAA+B,iBAC7B,0BAA0B,gBAC1B,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,YAAY,KAAK,EAAE,kBAClD,MAAM,EACpB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,YAE7C,cAAK,OAAO,EAAC,WAAW,iBAAa,MAAM,YACzC,KAAC,SAAS,IAAC,KAAK,EAAE,UAAU,CAAC,IAAI,GAAI,GACjC,IAXD,UAAU,CAAC,EAAE,CAYX,CACV,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -1,4 +1,143 @@
1
1
  import { projectTranscript } from "./QaTranscriptAdapter.js";
2
+ import { chatLegacyOf } from "./turn-sources.js";
3
+ /** Matches the Host queue strip, which folds a long row into one line. */
4
+ const QUEUE_PREVIEW_CHARS = 200;
5
+ function queuePreview(text) {
6
+ const flat = text.replace(/\s+/g, " ").trim();
7
+ const chars = Array.from(flat);
8
+ return chars.length > QUEUE_PREVIEW_CHARS
9
+ ? `${chars.slice(0, QUEUE_PREVIEW_CHARS).join("")}…`
10
+ : flat;
11
+ }
12
+ /** The `source.rpcId` of one Host row, when the Host named the send it carries. */
13
+ function rpcIdOf(source) {
14
+ const rpcId = source?.rpcId;
15
+ return rpcId === undefined || rpcId === null ? null : String(rpcId);
16
+ }
17
+ /**
18
+ * Request ids the Host's queue carries. A queued message lists the submission it
19
+ * answers for, which is what keeps one send from reading as two rows while it is
20
+ * both in transport and admitted.
21
+ */
22
+ function queueNamedIds(queued) {
23
+ const ids = new Set();
24
+ for (const message of queued) {
25
+ const id = rpcIdOf(message.source);
26
+ if (id !== null)
27
+ ids.add(id);
28
+ }
29
+ return ids;
30
+ }
31
+ /**
32
+ * The request ids the Host has itself named for a send, out of the two lists it
33
+ * publishes: the messages waiting in its Inbox and the durable input rows of its
34
+ * transcript (`user` opens the turn that took the message, `steering` is one
35
+ * injected into the turn already running). Either is the server's own receipt
36
+ * that the message crossed, and reading both is what makes the receipt
37
+ * independent of which frame carried the news: a message the turn has claimed is
38
+ * gone from the Inbox yet stays in the transcript, so a send admitted and claimed
39
+ * between two notifications is still named by the next transcript frame.
40
+ */
41
+ export function hostNamedSubmissionIds(queued, conversationSnapshot) {
42
+ const ids = queueNamedIds(queued);
43
+ for (const node of chatLegacyOf(conversationSnapshot).nodes) {
44
+ if (node.kind !== "user" && node.kind !== "steering")
45
+ continue;
46
+ const id = rpcIdOf(node.source);
47
+ if (id !== null)
48
+ ids.add(id);
49
+ }
50
+ return ids;
51
+ }
52
+ /**
53
+ * Messages waiting for the agent's next turn, in the order the Host will claim
54
+ * them. An admitted row comes from the Host's Inbox projection; a row still
55
+ * crossing the transport comes from the submission echo registered for it, so
56
+ * one queued send reads as one row at every moment.
57
+ *
58
+ * That echo is the browser's own, and retiring it is the session library's job.
59
+ * `@deepseek-ai/dsh-api-session-controller` — the harness's
60
+ * `packages/api/session-controller`, pinned here at 0.1.7-rc.2 — documents
61
+ * `SessionSnapshot.pendingSubmissions` as "Local prompt-submission echoes not
62
+ * yet observed as durable events or queue occurrences" and `beginSubmission` as
63
+ * "Queued echoes retire on queue acceptance", that retirement being the
64
+ * `observed` branch of `PendingSubmissionRetirement`. It does not complete the
65
+ * removal at acceptance: the settlement is latched and the removal deferred one
66
+ * animation frame (`scheduleObservedRetirement` hands `finishSubmission` to
67
+ * `scheduleFrame`; in the pinned bundle, `lib/client.js:2233` and `:2309`), and
68
+ * `scheduleFrame` falls back to a macrotask only where `requestAnimationFrame`
69
+ * does not exist at all. A surface whose frame clock has stopped therefore never
70
+ * runs the removal while its snapshot notifications keep arriving on microtasks —
71
+ * the card measured exactly that with the browser panel collapsed
72
+ * (`viewport=0x0`): the question and its answer in the feed, and the survivor
73
+ * drawn below it as a buttonless «отправляется…» row that a page reload cleared.
74
+ *
75
+ * So while that removal waits on a clock the surface may not have, a submission
76
+ * the Host has once named is never drawn as crossing. The follow-up belongs to
77
+ * `scheduleObservedRetirement` / `scheduleFrame` in that package: retire a
78
+ * settlement a delivered notification already proved without a frame.
79
+ *
80
+ * The substitute costs no row the contract would have drawn, because the library
81
+ * has already committed to the removal by the time either Host list can name the
82
+ * send: an Inbox frame that lists a queued echo latches the retirement there and
83
+ * then, and so does the durable row that opens the turn (`observeSubmissionMessage`
84
+ * hands the request to `scheduleObservedRetirement`, `lib/client.js:2201` and
85
+ * `:2213`, both landing at `:2233`). A message the Host takes out of its queue
86
+ * without handing it to the turn is therefore not a case this record swallows — its
87
+ * removal was latched the moment the Inbox listed it, and only the frame is
88
+ * missing. The retirements the library runs without a frame are the ones for a send
89
+ * the Host never named at all: the abandon path and a failed prompt
90
+ * (`lib/client.js:1704`, `:1753`), and the splice reporting `outcome === "canceled"`
91
+ * for a settlement it tracked by insertion receipt, which a queued echo never is
92
+ * (`lib/client.js:2164`, `:2186`, `:2245`). So the mask differs from the contract
93
+ * by the clock, never by the outcome.
94
+ *
95
+ * What it costs is the binding rather than a row. `unbind()` drops the record —
96
+ * leaving a chat, opening a subagent view, a policy re-bind and entering a draft
97
+ * all run it — and only a rebind of the same Session object could draw a survivor
98
+ * again. This surface retains under one source, so releasing its reference makes
99
+ * the manager withdraw the instance and dispose it (`lib/client.js:2413`), and the
100
+ * next binding holds a session with no echoes at all; where another holder keeps
101
+ * that object alive, the next Host frame names the send again and re-earns the
102
+ * record, so the row returns for a frame rather than for good.
103
+ *
104
+ * Where the frame clock does run, the library retires the echo on the frame after
105
+ * the claim, so this filter has nothing left to hide; a release that retired at
106
+ * acceptance rather than on a frame would leave it hiding nothing at all, and the
107
+ * filter becomes dead code to delete.
108
+ */
109
+ function projectQueue(snapshot, queued, admitted) {
110
+ const echoed = queueNamedIds(queued);
111
+ const sending = snapshot.pendingSubmissions
112
+ .filter((item) => item.placement === "queued" &&
113
+ !echoed.has(String(item.requestId)) &&
114
+ !admitted.has(String(item.requestId)))
115
+ .map((item) => ({
116
+ id: String(item.requestId),
117
+ preview: queuePreview(item.text),
118
+ text: item.text,
119
+ attachments: item.attachments.length,
120
+ sending: true,
121
+ }));
122
+ return [
123
+ ...queued.map((message) => {
124
+ const texts = message.content.flatMap((block) => block.type === "text" ? [block.text] : []);
125
+ const plainText = texts.join("\n\n");
126
+ return {
127
+ id: String(message.id),
128
+ preview: queuePreview(plainText),
129
+ // A row that mixes in non-text content cannot be re-sent as plain text,
130
+ // so it is previewed but not editable, exactly as the Host docks it.
131
+ text: message.content.every((block) => block.type === "text")
132
+ ? plainText
133
+ : null,
134
+ attachments: message.content.filter((block) => block.type === "image" || block.type === "file").length,
135
+ sending: false,
136
+ };
137
+ }),
138
+ ...sending,
139
+ ];
140
+ }
2
141
  /**
3
142
  * Project one bound chat into the observable surface state: phase, transcript
4
143
  * with per-turn sources, footer sources, and the composer's capabilities.
@@ -62,21 +201,33 @@ export function projectBoundSessionState(input) {
62
201
  // the operator is answering a tool call that is already waiting, and text
63
202
  // sent beside it would open a second turn instead.
64
203
  const questionPending = questions.length > 0;
204
+ // Every Host operation the binding may still issue: a read-only historical
205
+ // chat issues none, and a parked question owns the composer until it is
206
+ // answered, because text sent beside it would open a second turn.
207
+ const canOperate = input.connected &&
208
+ input.policyReady &&
209
+ !questionPending &&
210
+ input.compatibilityReadOnly !== true;
65
211
  return {
66
212
  phase,
67
213
  sessionId: input.sessionId,
214
+ chatKey: input.chatKey,
68
215
  messages,
69
216
  pendingMessage: null,
70
217
  error,
71
218
  compatibilityReadOnly: input.compatibilityReadOnly === true,
72
- canSend: input.connected &&
73
- phase === "ready" &&
74
- input.policyReady &&
75
- !questionPending,
219
+ // A running turn has nowhere for a new question to land except its queue,
220
+ // so the composer stays live beside it and the message is admitted as the
221
+ // next turn. A send whose admission has not returned yet stays a lock.
222
+ canSend: canOperate &&
223
+ !input.admissionPending &&
224
+ (phase === "ready" || snapshot.running),
76
225
  canStop: input.connected &&
77
226
  snapshot.running &&
78
227
  config.ui.showStop &&
79
228
  input.compatibilityReadOnly !== true,
229
+ queue: projectQueue(snapshot, input.queuedMessages, input.admittedSubmissions),
230
+ canEditQueue: canOperate,
80
231
  chatsRevision: input.chatsRevision,
81
232
  sources: latest === undefined
82
233
  ? []
@@ -91,6 +242,7 @@ export function projectBoundSessionState(input) {
91
242
  viewingSubagent: input.viewingSubagent,
92
243
  approvals: input.compatibilityReadOnly === true ? [] : input.approvals,
93
244
  questions,
245
+ requestQueue: input.requestQueue,
94
246
  // A read-only binding issues no Host operation at all, and running a
95
247
  // command is one — the policy gate closes the palette with everything else.
96
248
  slash: input.compatibilityReadOnly === true
@@ -1 +1 @@
1
- {"version":3,"file":"project-session-state.js","sourceRoot":"","sources":["../../src/client/project-session-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-session-state.js","sourceRoot":"","sources":["../../src/client/project-session-state.ts"],"names":[],"mappings":"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"}
@@ -19,11 +19,11 @@ export function QaRoleSelector(props) {
19
19
  props.onSelect(role.id);
20
20
  }
21
21
  };
22
- return (_jsxs(_Fragment, { children: [_jsxs("label", { className: "dsh-qa-role-selector", children: [_jsx("span", { className: "dsh-qa-sr-only", children: "\u0420\u043E\u043B\u044C \u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043D\u0442\u0430" }), _jsx("select", { value: props.selected, disabled: props.disabled, "aria-label": "\u0420\u043E\u043B\u044C \u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043D\u0442\u0430", onChange: (event) => select(event.currentTarget.value), children: props.roles.map((role) => (_jsx("option", { value: role.id, children: role.name }, role.id))) })] }), _jsx(QaModal, { open: pending !== undefined, title: "\u041D\u0430\u0447\u0430\u0442\u044C \u043D\u043E\u0432\u044B\u0439 \u0447\u0430\u0442?", closeLabel: "\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u043C\u0435\u043D\u0443 \u0440\u043E\u043B\u0438", onClose: () => setPending(undefined), footer: _jsxs(_Fragment, { children: [_jsx("button", { type: "button", onClick: () => setPending(undefined), children: "\u041E\u0442\u043C\u0435\u043D\u0430" }), _jsxs("button", { type: "button", className: "dsh-qa-modal__primary", onClick: () => {
22
+ return (_jsxs(_Fragment, { children: [_jsxs("label", { className: "dsh-qa-role-selector", "data-testid": "qa-role-selector", children: [_jsx("span", { className: "dsh-qa-sr-only", children: "\u0420\u043E\u043B\u044C \u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043D\u0442\u0430" }), _jsx("select", { "data-testid": "qa-role-selector-input", value: props.selected, disabled: props.disabled, "aria-label": "\u0420\u043E\u043B\u044C \u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043D\u0442\u0430", onChange: (event) => select(event.currentTarget.value), children: props.roles.map((role) => (_jsx("option", { value: role.id, "data-testid": "qa-role-selector-option", children: role.name }, role.id))) })] }), _jsx(QaModal, { open: pending !== undefined, title: "\u041D\u0430\u0447\u0430\u0442\u044C \u043D\u043E\u0432\u044B\u0439 \u0447\u0430\u0442?", closeLabel: "\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u043C\u0435\u043D\u0443 \u0440\u043E\u043B\u0438", onClose: () => setPending(undefined), footer: _jsxs(_Fragment, { children: [_jsx("button", { type: "button", "data-testid": "qa-role-change-cancel", onClick: () => setPending(undefined), children: "\u041E\u0442\u043C\u0435\u043D\u0430" }), _jsxs("button", { type: "button", className: "dsh-qa-modal__primary", "data-testid": "qa-role-change-confirm", onClick: () => {
23
23
  if (pending !== undefined)
24
24
  props.onSelect(pending.id);
25
25
  setPending(undefined);
26
- }, children: ["\u041D\u0430\u0447\u0430\u0442\u044C \u043D\u043E\u0432\u044B\u0439 \u0447\u0430\u0442 \u043A\u0430\u043A ", pending?.name ?? ""] })] }), children: _jsx("p", { className: "dsh-qa-role-selector__notice", children: "\u0421\u043C\u0435\u043D\u0430 \u0440\u043E\u043B\u0438 \u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442 \u043D\u043E\u0432\u044B\u0439 \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440: \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043D\u0442\u0443 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B \u0438 \u043D\u0430\u0432\u044B\u043A\u0438 \u0438\u0437\u043C\u0435\u043D\u044F\u0442\u0441\u044F. \u0422\u0435\u043A\u0443\u0449\u0438\u0439 \u0447\u0430\u0442 \u043E\u0441\u0442\u0430\u043D\u0435\u0442\u0441\u044F \u0432 \u0438\u0441\u0442\u043E\u0440\u0438\u0438 \u0431\u0435\u0437 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439." }) })] }));
26
+ }, children: ["\u041D\u0430\u0447\u0430\u0442\u044C \u043D\u043E\u0432\u044B\u0439 \u0447\u0430\u0442 \u043A\u0430\u043A ", pending?.name ?? ""] })] }), children: _jsx("p", { className: "dsh-qa-role-selector__notice", "data-testid": "qa-role-change-notice", children: "\u0421\u043C\u0435\u043D\u0430 \u0440\u043E\u043B\u0438 \u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442 \u043D\u043E\u0432\u044B\u0439 \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440: \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043D\u0442\u0443 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B \u0438 \u043D\u0430\u0432\u044B\u043A\u0438 \u0438\u0437\u043C\u0435\u043D\u044F\u0442\u0441\u044F. \u0422\u0435\u043A\u0443\u0449\u0438\u0439 \u0447\u0430\u0442 \u043E\u0441\u0442\u0430\u043D\u0435\u0442\u0441\u044F \u0432 \u0438\u0441\u0442\u043E\u0440\u0438\u0438 \u0431\u0435\u0437 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439." }) })] }));
27
27
  }
28
28
  /**
29
29
  * The banner that keeps a preview from being mistaken for an ordinary chat.
@@ -32,9 +32,14 @@ export function QaRoleSelector(props) {
32
32
  * is hidden — the previewed profile need not be one the account holds — so
33
33
  * without a control here the only exit was the browser's Back button, and a new
34
34
  * chat meanwhile ran as the previewed profile instead of the account's default.
35
- * @param props - the previewed role's name, and how to leave the preview.
35
+ *
36
+ * Leaving is a new chat, so the way out waits for the same moments the header's
37
+ * "Новый чат" and the role selector wait for: while a chat is still being
38
+ * created, this click would take the screen from the question on its way in.
39
+ * @param props - the previewed role's name, how to leave the preview, and whether
40
+ * that way is currently blocked by a chat being created.
36
41
  */
37
42
  export function QaAdminPreviewBanner(props) {
38
- return (_jsxs("div", { className: "dsh-qa-admin-preview", role: "status", children: [_jsxs("span", { children: ["\u041F\u0420\u041E\u0421\u041C\u041E\u0422\u0420 \u0410\u0414\u041C\u0418\u041D\u0418\u0421\u0422\u0420\u0410\u0422\u041E\u0420\u0410: ", props.role] }), props.onExit === undefined ? null : (_jsx("button", { type: "button", className: "dsh-qa-admin-preview__exit", onClick: props.onExit, title: "\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043A \u0441\u0432\u043E\u0435\u043C\u0443 \u043F\u0440\u043E\u0444\u0438\u043B\u044E \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E: \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 \u0437\u0430\u043A\u043E\u043D\u0447\u0438\u0442\u0441\u044F, \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u0447\u0430\u0442 \u043D\u0430\u0447\u043D\u0451\u0442\u0441\u044F \u0437\u0430\u043D\u043E\u0432\u043E", children: "\u0412\u044B\u0439\u0442\u0438 \u0438\u0437 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430" }))] }));
43
+ return (_jsxs("div", { className: "dsh-qa-admin-preview", "data-testid": "qa-admin-preview", role: "status", children: [_jsxs("span", { "data-testid": "qa-admin-preview-role", children: ["\u041F\u0420\u041E\u0421\u041C\u041E\u0422\u0420 \u0410\u0414\u041C\u0418\u041D\u0418\u0421\u0422\u0420\u0410\u0422\u041E\u0420\u0410: ", props.role] }), props.onExit === undefined ? null : (_jsx("button", { type: "button", className: "dsh-qa-admin-preview__exit", "data-testid": "qa-admin-preview-exit", onClick: props.onExit, disabled: props.disabled === true, title: "\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043A \u0441\u0432\u043E\u0435\u043C\u0443 \u043F\u0440\u043E\u0444\u0438\u043B\u044E \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E: \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 \u0437\u0430\u043A\u043E\u043D\u0447\u0438\u0442\u0441\u044F, \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u0447\u0430\u0442 \u043D\u0430\u0447\u043D\u0451\u0442\u0441\u044F \u0437\u0430\u043D\u043E\u0432\u043E", children: "\u0412\u044B\u0439\u0442\u0438 \u0438\u0437 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430" }))] }));
39
44
  }
40
45
  //# sourceMappingURL=RoleSelector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RoleSelector.js","sourceRoot":"","sources":["../../../src/client/role/RoleSelector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAUnD,0EAA0E;AAC1E,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAa,CAAC;IACpD,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,MAAM,GAAG,CAAC,EAAU,EAAE,EAAE;QAC5B,IAAI,EAAE,KAAK,KAAK,CAAC,QAAQ;YAAE,OAAO;QAClC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAClE,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO;QAC/B,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;YAC9B,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC;IACF,OAAO,CACL,8BACE,iBAAO,SAAS,EAAC,sBAAsB,aACrC,eAAM,SAAS,EAAC,gBAAgB,sGAAuB,EACvD,iBACE,KAAK,EAAE,KAAK,CAAC,QAAQ,EACrB,QAAQ,EAAE,KAAK,CAAC,QAAQ,gBACb,uFAAiB,EAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,YAErD,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACzB,iBAAsB,KAAK,EAAE,IAAI,CAAC,EAAE,YACjC,IAAI,CAAC,IAAI,IADC,IAAI,CAAC,EAAE,CAEX,CACV,CAAC,GACK,IACH,EACR,KAAC,OAAO,IACN,IAAI,EAAE,OAAO,KAAK,SAAS,EAC3B,KAAK,EAAC,yFAAmB,EACzB,UAAU,EAAC,0GAAqB,EAChC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EACpC,MAAM,EACJ,8BACE,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,qDAEjD,EACT,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,uBAAuB,EACjC,OAAO,EAAE,GAAG,EAAE;gCACZ,IAAI,OAAO,KAAK,SAAS;oCAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gCACtD,UAAU,CAAC,SAAS,CAAC,CAAC;4BACxB,CAAC,2HAEqB,OAAO,EAAE,IAAI,IAAI,EAAE,IAClC,IACR,YAGL,YAAG,SAAS,EAAC,8BAA8B,utBAGvC,GACI,IACT,CACJ,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAGpC;IACC,OAAO,CACL,eAAK,SAAS,EAAC,sBAAsB,EAAC,IAAI,EAAC,QAAQ,aACjD,sKAAgC,KAAK,CAAC,IAAI,IAAQ,EACjD,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACnC,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,4BAA4B,EACtC,OAAO,EAAE,KAAK,CAAC,MAAM,EACrB,KAAK,EAAC,meAA6F,mHAG5F,CACV,IACG,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"RoleSelector.js","sourceRoot":"","sources":["../../../src/client/role/RoleSelector.tsx"],"names":[],"mappings":"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"}