@yadsh/dsh-qa-surface 0.3.0 → 0.5.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 (276) hide show
  1. package/README.md +192 -15
  2. package/cordis.patch.yml +8 -0
  3. package/lib/account-remotes.js +100 -0
  4. package/lib/account-remotes.js.map +1 -0
  5. package/lib/accounts/credentials.js +35 -0
  6. package/lib/accounts/credentials.js.map +1 -0
  7. package/lib/accounts/errors.js +9 -0
  8. package/lib/accounts/errors.js.map +1 -0
  9. package/lib/accounts/file.js +101 -0
  10. package/lib/accounts/file.js.map +1 -0
  11. package/lib/accounts/store.js +159 -161
  12. package/lib/accounts/store.js.map +1 -1
  13. package/lib/accounts/token.js +61 -0
  14. package/lib/accounts/token.js.map +1 -0
  15. package/lib/approvals.js +179 -0
  16. package/lib/approvals.js.map +1 -0
  17. package/lib/attachment-rules.js +111 -0
  18. package/lib/attachment-rules.js.map +1 -0
  19. package/lib/cli.js +132 -9
  20. package/lib/cli.js.map +1 -1
  21. package/lib/client/QaAccountsController.js +32 -2
  22. package/lib/client/QaAccountsController.js.map +1 -1
  23. package/lib/client/QaSessionController.js +140 -65
  24. package/lib/client/QaSessionController.js.map +1 -1
  25. package/lib/client/QaSurface.js +134 -107
  26. package/lib/client/QaSurface.js.map +1 -1
  27. package/lib/client/QaTranscriptAdapter.js +71 -6
  28. package/lib/client/QaTranscriptAdapter.js.map +1 -1
  29. package/lib/client/approvals.js +104 -0
  30. package/lib/client/approvals.js.map +1 -0
  31. package/lib/client/attachments.js +150 -0
  32. package/lib/client/attachments.js.map +1 -0
  33. package/lib/client/attestation.js +4 -1
  34. package/lib/client/attestation.js.map +1 -1
  35. package/lib/client/base64.js +16 -0
  36. package/lib/client/base64.js.map +1 -0
  37. package/lib/client/chat-files.js +48 -0
  38. package/lib/client/chat-files.js.map +1 -0
  39. package/lib/client/components/Markdown.js +1 -1
  40. package/lib/client/components/Markdown.js.map +1 -1
  41. package/lib/client/components/QaApproval.js +23 -0
  42. package/lib/client/components/QaApproval.js.map +1 -0
  43. package/lib/client/components/QaChangelog.js +62 -19
  44. package/lib/client/components/QaChangelog.js.map +1 -1
  45. package/lib/client/components/QaComposer.js +56 -74
  46. package/lib/client/components/QaComposer.js.map +1 -1
  47. package/lib/client/components/QaFileAttachment.js +19 -0
  48. package/lib/client/components/QaFileAttachment.js.map +1 -0
  49. package/lib/client/components/QaFilesPanel.js +45 -0
  50. package/lib/client/components/QaFilesPanel.js.map +1 -0
  51. package/lib/client/components/QaHeader.js +34 -0
  52. package/lib/client/components/QaHeader.js.map +1 -0
  53. package/lib/client/components/QaMessage.js +17 -4
  54. package/lib/client/components/QaMessage.js.map +1 -1
  55. package/lib/client/components/QaModal.js +31 -0
  56. package/lib/client/components/QaModal.js.map +1 -0
  57. package/lib/client/components/QaProfile.js +64 -0
  58. package/lib/client/components/QaProfile.js.map +1 -0
  59. package/lib/client/components/QaQuestions.js +96 -0
  60. package/lib/client/components/QaQuestions.js.map +1 -0
  61. package/lib/client/components/QaRightRail.js +15 -0
  62. package/lib/client/components/QaRightRail.js.map +1 -0
  63. package/lib/client/components/QaSidebar.js +6 -1
  64. package/lib/client/components/QaSidebar.js.map +1 -1
  65. package/lib/client/components/{QaSourcesDrawer.js → QaSourcesPanel.js} +3 -3
  66. package/lib/client/components/QaSourcesPanel.js.map +1 -0
  67. package/lib/client/components/QaTurnRail.js +15 -0
  68. package/lib/client/components/QaTurnRail.js.map +1 -1
  69. package/lib/client/components/QaWidthHandle.js +25 -20
  70. package/lib/client/components/QaWidthHandle.js.map +1 -1
  71. package/lib/client/components/QaWorkGroup.js +19 -20
  72. package/lib/client/components/QaWorkGroup.js.map +1 -1
  73. package/lib/client/components/surface-utils.js +28 -0
  74. package/lib/client/components/surface-utils.js.map +1 -0
  75. package/lib/client/components/thinking-phrases.js +24 -0
  76. package/lib/client/components/thinking-phrases.js.map +1 -0
  77. package/lib/client/create-session.js +7 -32
  78. package/lib/client/create-session.js.map +1 -1
  79. package/lib/client/failure-copy.js +63 -0
  80. package/lib/client/failure-copy.js.map +1 -0
  81. package/lib/client/index.js +49 -7
  82. package/lib/client/index.js.map +1 -1
  83. package/lib/client/project-session-state.js +5 -3
  84. package/lib/client/project-session-state.js.map +1 -1
  85. package/lib/client/prompt-content.js +54 -0
  86. package/lib/client/prompt-content.js.map +1 -0
  87. package/lib/client/questions.js +114 -0
  88. package/lib/client/questions.js.map +1 -0
  89. package/lib/client/settings/card.js +143 -0
  90. package/lib/client/settings/card.js.map +1 -0
  91. package/lib/client/settings/fields.js +145 -0
  92. package/lib/client/settings/fields.js.map +1 -0
  93. package/lib/client/settings/format.js +255 -0
  94. package/lib/client/settings/format.js.map +1 -0
  95. package/lib/client/settings/sections/access.js +25 -0
  96. package/lib/client/settings/sections/access.js.map +1 -0
  97. package/lib/client/settings/sections/accounts.js +47 -0
  98. package/lib/client/settings/sections/accounts.js.map +1 -0
  99. package/lib/client/settings/sections/attachments.js +46 -0
  100. package/lib/client/settings/sections/attachments.js.map +1 -0
  101. package/lib/client/settings/sections/branding.js +28 -0
  102. package/lib/client/settings/sections/branding.js.map +1 -0
  103. package/lib/client/settings/sections/common.js +20 -0
  104. package/lib/client/settings/sections/common.js.map +1 -0
  105. package/lib/client/settings/sections/embedding.js +19 -0
  106. package/lib/client/settings/sections/embedding.js.map +1 -0
  107. package/lib/client/settings/sections/interface.js +60 -0
  108. package/lib/client/settings/sections/interface.js.map +1 -0
  109. package/lib/client/settings/sections/lockdown.js +82 -0
  110. package/lib/client/settings/sections/lockdown.js.map +1 -0
  111. package/lib/client/settings/sections/session.js +53 -0
  112. package/lib/client/settings/sections/session.js.map +1 -0
  113. package/lib/client/settings/sections/sources.js +74 -0
  114. package/lib/client/settings/sections/sources.js.map +1 -0
  115. package/lib/client/settings/sections/status.js +37 -0
  116. package/lib/client/settings/sections/status.js.map +1 -0
  117. package/lib/client/settings/sections.js +23 -0
  118. package/lib/client/settings/sections.js.map +1 -0
  119. package/lib/client/settings/styles.js +57 -0
  120. package/lib/client/settings/styles.js.map +1 -0
  121. package/lib/client/stream-publisher.js +47 -0
  122. package/lib/client/stream-publisher.js.map +1 -0
  123. package/lib/client/styles.js +127 -19
  124. package/lib/client/styles.js.map +1 -1
  125. package/lib/client/types.js +2 -0
  126. package/lib/client/types.js.map +1 -1
  127. package/lib/client/use-right-rail.js +96 -0
  128. package/lib/client/use-right-rail.js.map +1 -0
  129. package/lib/client/use-session-ui-state.js +26 -19
  130. package/lib/client/use-session-ui-state.js.map +1 -1
  131. package/lib/client.js +5694 -813
  132. package/lib/client.js.map +1 -1
  133. package/lib/config-resolvers/accounts.js +60 -0
  134. package/lib/config-resolvers/accounts.js.map +1 -0
  135. package/lib/config-resolvers/attachments.js +28 -0
  136. package/lib/config-resolvers/attachments.js.map +1 -0
  137. package/lib/config-resolvers/basics.js +61 -0
  138. package/lib/config-resolvers/basics.js.map +1 -0
  139. package/lib/config-resolvers/defaults.js +136 -0
  140. package/lib/config-resolvers/defaults.js.map +1 -0
  141. package/lib/config-resolvers/lockdown.js +90 -0
  142. package/lib/config-resolvers/lockdown.js.map +1 -0
  143. package/lib/config-resolvers/session.js +42 -0
  144. package/lib/config-resolvers/session.js.map +1 -0
  145. package/lib/config-resolvers/shared.js +51 -0
  146. package/lib/config-resolvers/shared.js.map +1 -0
  147. package/lib/config-resolvers/sources.js +83 -0
  148. package/lib/config-resolvers/sources.js.map +1 -0
  149. package/lib/config-resolvers/ui.js +20 -0
  150. package/lib/config-resolvers/ui.js.map +1 -0
  151. package/lib/config.js +76 -6
  152. package/lib/config.js.map +1 -1
  153. package/lib/entry-redirect.js +2 -1
  154. package/lib/entry-redirect.js.map +1 -1
  155. package/lib/index.js +198 -79
  156. package/lib/index.js.map +1 -1
  157. package/lib/profile.js +214 -0
  158. package/lib/profile.js.map +1 -0
  159. package/lib/prompt-notes.js +231 -0
  160. package/lib/prompt-notes.js.map +1 -0
  161. package/lib/provenance/host-store.js +25 -9
  162. package/lib/provenance/host-store.js.map +1 -1
  163. package/lib/provenance/reported.js +37 -12
  164. package/lib/provenance/reported.js.map +1 -1
  165. package/lib/questions.js +185 -0
  166. package/lib/questions.js.map +1 -0
  167. package/lib/resolve-config.js +35 -410
  168. package/lib/resolve-config.js.map +1 -1
  169. package/lib/secure-session.js +139 -21
  170. package/lib/secure-session.js.map +1 -1
  171. package/lib/session-ownership.js +55 -0
  172. package/lib/session-ownership.js.map +1 -0
  173. package/lib/shared/session-key.js +18 -0
  174. package/lib/shared/session-key.js.map +1 -0
  175. package/lib/shared/settings.js +10 -0
  176. package/lib/shared/settings.js.map +1 -0
  177. package/lib/thinking-phrases.js +68 -0
  178. package/lib/thinking-phrases.js.map +1 -0
  179. package/lib/typert.host.js +506 -21
  180. package/lib/typert.remote-client.d.ts +15 -1
  181. package/lib/typert.remote-client.js +407 -15
  182. package/lib/types/account-remotes.d.ts +42 -0
  183. package/lib/types/accounts/credentials.d.ts +20 -0
  184. package/lib/types/accounts/errors.d.ts +11 -0
  185. package/lib/types/accounts/file.d.ts +82 -0
  186. package/lib/types/accounts/store.d.ts +74 -43
  187. package/lib/types/accounts/token.d.ts +31 -0
  188. package/lib/types/approvals.d.ts +65 -0
  189. package/lib/types/attachment-rules.d.ts +44 -0
  190. package/lib/types/cli.d.ts +2 -2
  191. package/lib/types/client/QaAccountsController.d.ts +8 -1
  192. package/lib/types/client/QaSessionController.d.ts +53 -16
  193. package/lib/types/client/QaSurface.d.ts +14 -1
  194. package/lib/types/client/approvals.d.ts +39 -0
  195. package/lib/types/client/attachments.d.ts +54 -0
  196. package/lib/types/client/base64.d.ts +10 -0
  197. package/lib/types/client/chat-files.d.ts +30 -0
  198. package/lib/types/client/components/QaApproval.d.ts +13 -0
  199. package/lib/types/client/components/QaChangelog.d.ts +1 -1
  200. package/lib/types/client/components/QaComposer.d.ts +8 -4
  201. package/lib/types/client/components/QaFileAttachment.d.ts +14 -0
  202. package/lib/types/client/components/QaFilesPanel.d.ts +15 -0
  203. package/lib/types/client/components/QaHeader.d.ts +41 -0
  204. package/lib/types/client/components/QaMessage.d.ts +3 -1
  205. package/lib/types/client/components/QaModal.d.ts +26 -0
  206. package/lib/types/client/components/QaProfile.d.ts +25 -0
  207. package/lib/types/client/components/QaQuestions.d.ts +13 -0
  208. package/lib/types/client/components/QaRightRail.d.ts +23 -0
  209. package/lib/types/client/components/QaSidebar.d.ts +14 -0
  210. package/lib/types/client/components/{QaSourcesDrawer.d.ts → QaSourcesPanel.d.ts} +7 -4
  211. package/lib/types/client/components/QaTurnRail.d.ts +6 -0
  212. package/lib/types/client/components/QaWidthHandle.d.ts +14 -7
  213. package/lib/types/client/components/QaWorkGroup.d.ts +5 -3
  214. package/lib/types/client/components/surface-utils.d.ts +11 -0
  215. package/lib/types/client/components/thinking-phrases.d.ts +9 -0
  216. package/lib/types/client/create-session.d.ts +6 -9
  217. package/lib/types/client/failure-copy.d.ts +19 -0
  218. package/lib/types/client/project-session-state.d.ts +8 -1
  219. package/lib/types/client/prompt-content.d.ts +30 -0
  220. package/lib/types/client/questions.d.ts +45 -0
  221. package/lib/types/client/settings/card.d.ts +23 -0
  222. package/lib/types/client/settings/fields.d.ts +139 -0
  223. package/lib/types/client/settings/format.d.ts +108 -0
  224. package/lib/types/client/settings/sections/access.d.ts +9 -0
  225. package/lib/types/client/settings/sections/accounts.d.ts +9 -0
  226. package/lib/types/client/settings/sections/attachments.d.ts +15 -0
  227. package/lib/types/client/settings/sections/branding.d.ts +8 -0
  228. package/lib/types/client/settings/sections/common.d.ts +28 -0
  229. package/lib/types/client/settings/sections/embedding.d.ts +8 -0
  230. package/lib/types/client/settings/sections/interface.d.ts +9 -0
  231. package/lib/types/client/settings/sections/lockdown.d.ts +9 -0
  232. package/lib/types/client/settings/sections/session.d.ts +9 -0
  233. package/lib/types/client/settings/sections/sources.d.ts +9 -0
  234. package/lib/types/client/settings/sections/status.d.ts +22 -0
  235. package/lib/types/client/settings/sections.d.ts +25 -0
  236. package/lib/types/client/settings/styles.d.ts +8 -0
  237. package/lib/types/client/stream-publisher.d.ts +28 -0
  238. package/lib/types/client/types.d.ts +76 -1
  239. package/lib/types/client/use-right-rail.d.ts +56 -0
  240. package/lib/types/client/use-session-ui-state.d.ts +13 -7
  241. package/lib/types/config-resolvers/accounts.d.ts +15 -0
  242. package/lib/types/config-resolvers/attachments.d.ts +6 -0
  243. package/lib/types/config-resolvers/basics.d.ts +8 -0
  244. package/lib/types/config-resolvers/defaults.d.ts +4 -0
  245. package/lib/types/config-resolvers/lockdown.d.ts +10 -0
  246. package/lib/types/config-resolvers/session.d.ts +6 -0
  247. package/lib/types/config-resolvers/shared.d.ts +23 -0
  248. package/lib/types/config-resolvers/sources.d.ts +6 -0
  249. package/lib/types/config-resolvers/ui.d.ts +6 -0
  250. package/lib/types/index.d.ts +48 -15
  251. package/lib/types/profile.d.ts +76 -0
  252. package/lib/types/prompt-notes.d.ts +110 -0
  253. package/lib/types/provenance/reported.d.ts +9 -1
  254. package/lib/types/questions.d.ts +83 -0
  255. package/lib/types/resolve-config.d.ts +8 -3
  256. package/lib/types/secure-session.d.ts +46 -2
  257. package/lib/types/session-ownership.d.ts +30 -0
  258. package/lib/types/shared/session-key.d.ts +23 -0
  259. package/lib/types/shared/settings.d.ts +10 -0
  260. package/lib/types/thinking-phrases.d.ts +17 -0
  261. package/lib/types/types.d.ts +203 -9
  262. package/lib/types/user-workspace.d.ts +42 -0
  263. package/lib/user-workspace.js +246 -0
  264. package/lib/user-workspace.js.map +1 -0
  265. package/package.json +15 -8
  266. package/CHANGELOG.md +0 -176
  267. package/SPEC-dsh-qa-surface.md +0 -2425
  268. package/docs/ARCHITECTURE.md +0 -66
  269. package/docs/COMPATIBILITY.md +0 -14
  270. package/docs/CONFIGURATION.md +0 -199
  271. package/docs/EMBEDDING.md +0 -13
  272. package/docs/SOURCES-MIGRATION.md +0 -28
  273. package/docs/SOURCES-PROVENANCE-AUDIT.md +0 -88
  274. package/docs/SPEC-dsh-qa-surface-accounts.md +0 -219
  275. package/docs/SPEC-dsh-qa-surface-sources-provenance.md +0 -1692
  276. package/lib/client/components/QaSourcesDrawer.js.map +0 -1
@@ -1,19 +1,30 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore, } from "react";
3
3
  import { QaSessionController } from "./QaSessionController.js";
4
+ import { attachmentLimits } from "./attachments.js";
4
5
  import { QA_SESSION_IDLE_STATE } from "./types.js";
5
6
  import { QaAuthGate } from "./components/QaAuthGate.js";
7
+ import { QaApproval } from "./components/QaApproval.js";
8
+ import { QaQuestions } from "./components/QaQuestions.js";
6
9
  import { QaComposer } from "./components/QaComposer.js";
10
+ import { QaHeader, QaSubagentBanner } from "./components/QaHeader.js";
7
11
  import { QaMessage } from "./components/QaMessage.js";
8
12
  import { buildChatRows, QaSidebar } from "./components/QaSidebar.js";
9
13
  import { QaAgentsDrawer, collectSubagents, } from "./components/QaAgentsDrawer.js";
10
- import { QaSourcesDrawer } from "./components/QaSourcesDrawer.js";
11
- import { QA_TURN_ANCHOR_ATTRIBUTE, QaTurnRail, computeActiveTurn, turnScrollTarget, } from "./components/QaTurnRail.js";
14
+ import { collectChatFiles, countChatAttachments } from "./chat-files.js";
15
+ import { QaFilesPanel } from "./components/QaFilesPanel.js";
16
+ import { QaRightRail } from "./components/QaRightRail.js";
17
+ import { QaSourcesPanel } from "./components/QaSourcesPanel.js";
18
+ import { QA_TURN_FOLLOW_PX, QaTurnRail, computeActiveTurn, scrollToTranscriptAnchor, } from "./components/QaTurnRail.js";
12
19
  import { QaWidthHandle, useQaContentWidth, } from "./components/QaWidthHandle.js";
13
20
  import { VariantSwitcher } from "./components/VariantSwitcher.js";
14
21
  import { QaWelcomeNotice } from "./components/QaWelcomeNotice.js";
22
+ import { statusText, titleFromMessages } from "./components/surface-utils.js";
23
+ import { useThinkingPhrase } from "./components/thinking-phrases.js";
15
24
  import { useTranscriptView } from "./use-transcript-view.js";
16
25
  import { useSessionUiState } from "./use-session-ui-state.js";
26
+ import { useRightRail } from "./use-right-rail.js";
27
+ import { qaStorageNamespace } from "../shared/session-key.js";
17
28
  const noopSubscribe = () => () => undefined;
18
29
  /** Stable empty stand-in so memoized children see one identity, not a fresh []. */
19
30
  const NO_QUESTIONS = Object.freeze([]);
@@ -45,36 +56,10 @@ function trapKeys(event) {
45
56
  first?.focus();
46
57
  }
47
58
  }
48
- function statusText(state) {
49
- if (state.phase === "creating")
50
- return "Подключаюсь…";
51
- if (state.phase === "reconnecting")
52
- return "Связь потерялась. Подключаюсь снова…";
53
- if (state.phase === "running")
54
- return "Скребу по сусекам…";
55
- return null;
56
- }
57
- function titleFromMessages(state) {
58
- const firstUser = state.messages.find((message) => message.role === "user");
59
- if (firstUser === undefined)
60
- return null;
61
- const title = firstUser.text.replace(/\s+/gu, " ").trim();
62
- if (title === "")
63
- return null;
64
- if (title.length <= 52)
65
- return title;
66
- return `${title.slice(0, 51).trimEnd()}…`;
67
- }
68
- function modeLabel(agentPreset) {
69
- if (agentPreset === null)
70
- return "Режим вопросов";
71
- const name = agentPreset
72
- .replace(/[-_]+/gu, " ")
73
- .replace(/^\p{Ll}/u, (letter) => letter.toUpperCase());
74
- return `Режим «${name}»`;
75
- }
76
- function RobotBadge() {
77
- return (_jsxs("svg", { className: "dsh-qa-agentview__icon", viewBox: "0 0 16 16", "aria-hidden": "true", children: [_jsx("rect", { x: "3", y: "5", width: "10", height: "7.5", rx: "1.75" }), _jsx("path", { d: "M8 2.5V5m0-.25a.9.9 0 1 0-.01-1.8.9.9 0 0 0 .01 1.8ZM5.4 8.4h1.7M8.9 8.4h1.7M6 10.4h4" })] }));
59
+ /** Same follow threshold the rail uses: this close to the floor is "at bottom". */
60
+ function isNearBottom(element) {
61
+ return (element.scrollHeight - element.scrollTop - element.clientHeight <
62
+ QA_TURN_FOLLOW_PX);
78
63
  }
79
64
  export function QaSurface(props) {
80
65
  const route = useSyncExternalStore(props.route.subscribe, props.route.getSnapshot, props.route.getSnapshot);
@@ -90,13 +75,13 @@ export function QaSurface(props) {
90
75
  /** Turn marks of the visible transcript, kept in a ref for stable callbacks. */
91
76
  const railItemsRef = useRef([]);
92
77
  const activeTurnFrame = useRef(null);
93
- const stateKey = `${config.session.storageKey}:v1:${config.route.path}`;
78
+ const stateKey = qaStorageNamespace(config);
94
79
  const widthHandlers = useQaContentWidth({
95
80
  active: route.active,
96
81
  root: chat,
97
82
  storage: window.localStorage,
98
83
  storageKey: `${stateKey}:content-width`,
99
- maxContentWidth: config.ui.maxContentWidth,
84
+ minContentWidth: config.ui.minContentWidth,
100
85
  });
101
86
  useEffect(() => {
102
87
  if (!route.active) {
@@ -127,10 +112,20 @@ export function QaSurface(props) {
127
112
  conversation: props.conversation,
128
113
  connection: props.connection,
129
114
  secureSession: props.secureSession,
115
+ createSession: props.createSession,
130
116
  sourceApi: props.sourceApi,
117
+ ...(props.approvalApi === undefined
118
+ ? {}
119
+ : { approvalApi: props.approvalApi }),
120
+ ...(props.questionApi === undefined
121
+ ? {}
122
+ : { questionApi: props.questionApi }),
131
123
  config,
132
124
  storage: window.localStorage,
133
125
  accounts: facade,
126
+ ...(props.fileUpload === undefined
127
+ ? {}
128
+ : { fileUpload: props.fileUpload }),
134
129
  });
135
130
  setController(next);
136
131
  void next.ensureSession();
@@ -142,6 +137,10 @@ export function QaSurface(props) {
142
137
  props.api,
143
138
  props.conversation,
144
139
  props.connection,
140
+ props.createSession,
141
+ props.fileUpload,
142
+ props.approvalApi,
143
+ props.questionApi,
145
144
  props.secureSession,
146
145
  props.sourceApi,
147
146
  props.sessions,
@@ -158,8 +157,11 @@ export function QaSurface(props) {
158
157
  const state = useSyncExternalStore(controller?.subscribe ?? noopSubscribe, controller?.getSnapshot ?? (() => QA_SESSION_IDLE_STATE), controller?.getSnapshot ?? (() => QA_SESSION_IDLE_STATE));
159
158
  const listState = useSyncExternalStore(props.sessions.list.subscribe, props.sessions.list.getSnapshot, props.sessions.list.getSnapshot);
160
159
  // Draft text, attachments, variant offsets and drawers are chat-local; the
161
- // hook clears them whenever the bound session changes.
162
- const { activeTurn, setActiveTurn, variantOffsets, setVariantOffsets, pendingImages, setPendingImages, agentsOpen, setAgentsOpen, sourcesOpen, setSourcesOpen, drawerSources, setDrawerSources, drawerCompleteness, setDrawerCompleteness, drawerDetail, setDrawerDetail, } = useSessionUiState(state.sessionId);
160
+ // hook clears them whenever the bound session changes. The rail controller
161
+ // takes the drawer slice; the surface keeps the composer and marks state.
162
+ const ui = useSessionUiState(state.sessionId);
163
+ const rail = useRightRail(ui);
164
+ const { activeTurn, setActiveTurn, variantOffsets, setVariantOffsets, agentsOpen, setAgentsOpen, pendingAttachments, setPendingAttachments, } = ui;
163
165
  useEffect(() => {
164
166
  if (!route.active)
165
167
  return;
@@ -184,6 +186,9 @@ export function QaSurface(props) {
184
186
  const resolveImage = useMemo(() => controller === undefined
185
187
  ? undefined
186
188
  : (attachmentId) => controller.readImage(attachmentId), [controller]);
189
+ // One identity per configuration: the composer is memoized on shallow
190
+ // comparison, so a fresh limits object would re-render it every frame.
191
+ const limits = useMemo(() => attachmentLimits(config), [config]);
187
192
  const handleRegenerate = useCallback(() => {
188
193
  void controller?.regenerate();
189
194
  }, [controller]);
@@ -196,8 +201,14 @@ export function QaSurface(props) {
196
201
  const handleDelete = useCallback((sessionId) => {
197
202
  void controller?.deleteChat(sessionId);
198
203
  }, [controller]);
199
- const handleSend = useCallback((text, images) => controller?.send(text, images) ?? Promise.resolve(false), [controller]);
204
+ const handleSend = useCallback((text, attachments) => controller?.send(text, attachments) ?? Promise.resolve(false), [controller]);
200
205
  const handleStop = useCallback(() => controller?.stop() ?? Promise.resolve(), [controller]);
206
+ const handleAnswerApproval = useCallback((requestId, decision) => controller?.answerApproval(requestId, decision) ?? Promise.resolve(), [controller]);
207
+ const handleAnswerQuestion = useCallback((requestId, answers) => controller?.answerQuestion(requestId, answers) ?? Promise.resolve(), [controller]);
208
+ const handleCancelQuestion = useCallback((requestId) => controller?.cancelQuestion(requestId) ?? Promise.resolve(), [controller]);
209
+ const handleCloseSubagent = useCallback(() => {
210
+ void controller?.closeSubagent();
211
+ }, [controller]);
201
212
  /** Turn the transcript's reading line currently owns; rAF-throttled. */
202
213
  const syncActiveTurn = useCallback(() => {
203
214
  const element = transcript.current;
@@ -229,36 +240,27 @@ export function QaSurface(props) {
229
240
  }, []);
230
241
  const handleTurnNavigate = useCallback((item) => {
231
242
  const element = transcript.current;
232
- if (element === null)
243
+ if (element === null || !scrollToTranscriptAnchor(element, item.id))
233
244
  return;
234
- const escaped = typeof CSS !== "undefined" && typeof CSS.escape === "function"
235
- ? CSS.escape(item.id)
236
- : item.id;
237
- const row = element.querySelector(`[${QA_TURN_ANCHOR_ATTRIBUTE}="${escaped}"]`);
238
- if (row === null)
239
- return;
240
- element.scrollTop = turnScrollTarget(element, row);
241
- nearBottom.current =
242
- element.scrollHeight - element.scrollTop - element.clientHeight < 96;
245
+ nearBottom.current = isNearBottom(element);
243
246
  setActiveTurn(item.turn);
244
247
  }, []);
245
- const handleOpenSources = useCallback((sources, complete, incompleteOrigins) => {
246
- setDrawerSources(sources);
247
- setDrawerCompleteness({
248
- complete,
249
- ...(incompleteOrigins === undefined ? {} : { incompleteOrigins }),
250
- });
251
- setDrawerDetail(null);
252
- setSourcesOpen(true);
253
- setAgentsOpen(false);
254
- }, []);
255
- const handleSourceDetail = useCallback((source) => {
256
- setDrawerSources(null);
257
- setDrawerCompleteness(null);
258
- setDrawerDetail(source);
259
- setSourcesOpen(true);
260
- setAgentsOpen(false);
248
+ /** The files tab's jump control: land the transcript on the sender. */
249
+ const handleJumpToMessage = useCallback((messageId) => {
250
+ const element = transcript.current;
251
+ if (element === null || !scrollToTranscriptAnchor(element, messageId)) {
252
+ return;
253
+ }
254
+ nearBottom.current = isNearBottom(element);
261
255
  }, []);
256
+ const view = useTranscriptView(state.messages, variantOffsets);
257
+ const railItems = view.railItems;
258
+ // Publish the visible turn marks before the follow/reading-line effects
259
+ // read them: layout effects flush in declaration order, and the sync below
260
+ // reads exactly this ref.
261
+ useLayoutEffect(() => {
262
+ railItemsRef.current = railItems;
263
+ }, [railItems]);
262
264
  useLayoutEffect(() => {
263
265
  const element = transcript.current;
264
266
  if (element !== null && nearBottom.current) {
@@ -266,16 +268,33 @@ export function QaSurface(props) {
266
268
  }
267
269
  scheduleActiveTurnSync();
268
270
  }, [state.messages, scheduleActiveTurnSync]);
269
- const status = statusText(state);
271
+ // The composer hint repeats the work list's phrase, so both advance in step
272
+ // off the same turn start.
273
+ const runningStartedAt = useMemo(() => {
274
+ if (state.phase !== "running")
275
+ return undefined;
276
+ for (let index = state.messages.length - 1; index >= 0; index -= 1) {
277
+ const message = state.messages[index];
278
+ if (message?.role === "work" && message.status === "running") {
279
+ return message.startedAt;
280
+ }
281
+ }
282
+ return undefined;
283
+ }, [state.messages, state.phase]);
284
+ const runningPhrase = useThinkingPhrase(state.phase === "running", runningStartedAt, config.thinkingPhrases);
285
+ const status = statusText(state, runningPhrase);
270
286
  const empty = state.messages.length === 0;
271
287
  const conversationTitle = titleFromMessages(state);
272
288
  const showSidebar = config.ui.showSessionList && controller !== undefined;
273
289
  const allowNewChat = config.session.policy !== "fixed" &&
274
290
  (!config.lockdown.enabled || config.lockdown.allowSessionReset);
275
- const view = useTranscriptView(state.messages, variantOffsets);
276
291
  const visibleMessages = view.visibleMessages;
277
292
  const activeSessionId = controller?.activeSessionId() ?? null;
278
293
  const agentRows = useMemo(() => collectSubagents(listState.byId, activeSessionId), [listState, activeSessionId]);
294
+ // The files tab projects the chat's durable attachments; the header badge
295
+ // and the panel read the same memoized roster.
296
+ const fileGroups = useMemo(() => collectChatFiles(state.messages), [state.messages]);
297
+ const attachmentCount = useMemo(() => countChatAttachments(fileGroups), [fileGroups]);
279
298
  // Admins group the sidebar by chat owner; everyone else sees the flat list.
280
299
  const ownerNames = useMemo(() => config.accounts.enabled &&
281
300
  config.accounts.showOtherUsersChats &&
@@ -284,8 +303,21 @@ export function QaSurface(props) {
284
303
  accountsSnapshot.user.role === "admin"
285
304
  ? accounts.ownerNames()
286
305
  : undefined, [config, accounts, accountsSnapshot]);
287
- const railItems = view.railItems;
288
- railItemsRef.current = railItems;
306
+ // The sidebar compares this by reference, so every piece of it is stable
307
+ // until the profile, the config, or the signed-in user actually changes.
308
+ const profileDialog = useMemo(() => {
309
+ if (!config.accounts.profile.enabled || accounts === undefined) {
310
+ return undefined;
311
+ }
312
+ if (accountsSnapshot.stage !== "authed")
313
+ return undefined;
314
+ return {
315
+ profile: accountsSnapshot.user.profile,
316
+ fields: config.accounts.profile.identities,
317
+ instructionsMaxLength: config.accounts.profile.instructionsMaxLength,
318
+ onSave: (input) => accounts.updateProfile(input),
319
+ };
320
+ }, [config, accounts, accountsSnapshot]);
289
321
  const busyTurn = state.phase === "running" ? (railItems.at(-1)?.turn ?? null) : null;
290
322
  const chatRows = useMemo(() => showSidebar
291
323
  ? buildChatRows(controller?.chatIds() ?? [], listState.byId, activeSessionId, (id) => ownerNames?.get(id))
@@ -304,6 +336,32 @@ export function QaSurface(props) {
304
336
  : `${stateKey}:chat:${state.sessionId}`;
305
337
  if (!route.active)
306
338
  return null;
339
+ const showResetButton = config.ui.showReset && allowNewChat;
340
+ // Rebuilt per frame, but reconciliation keeps each panel mounted in place,
341
+ // so the sources detail and the files roster carry their state across.
342
+ const railTabs = [
343
+ ...(config.sources.enabled
344
+ ? [
345
+ {
346
+ id: "sources",
347
+ title: "Источники",
348
+ count: (rail.drawerSources ?? state.sources).length,
349
+ body: (_jsx(QaSourcesPanel
350
+ // Remount on a new detail request: the panel is internal-state
351
+ // driven, so an already-mounted panel would ignore a changed
352
+ // initialDetail otherwise.
353
+ , { sources: rail.drawerSources ?? state.sources, complete: rail.drawerCompleteness?.complete ?? state.sourcesComplete, incompleteOrigins: rail.drawerCompleteness?.incompleteOrigins ??
354
+ state.incompleteSourceOrigins, sessionId: state.sessionId, sourceApi: boundSourceApi, display: config.sources.display, filePreview: config.sources.filePreview, initialDetail: rail.drawerDetail, pinned: rail.drawerSources !== null, onShowAll: rail.showAllSources }, rail.drawerDetail?.id ?? "list")),
355
+ },
356
+ ]
357
+ : []),
358
+ {
359
+ id: "files",
360
+ title: "Файлы",
361
+ count: attachmentCount,
362
+ body: (_jsx(QaFilesPanel, { groups: fileGroups, resolveImage: resolveImage, onJumpToMessage: handleJumpToMessage })),
363
+ },
364
+ ];
307
365
  // DSH only seats onboarding while the active Session is blank. Keep the QA
308
366
  // disclosure in this route-owned overlay so sending a prompt cannot dismiss
309
367
  // it; the shadow step registered in index.tsx only suppresses the stock copy.
@@ -323,66 +381,35 @@ export function QaSurface(props) {
323
381
  email: accountsSnapshot.user.email,
324
382
  role: accountsSnapshot.user.role,
325
383
  onLogout: handleLogout,
384
+ ...(profileDialog === undefined ? {} : { profileDialog }),
326
385
  }
327
- : undefined })) : null, _jsxs("div", { className: "dsh-qa-body", children: [state.viewingSubagent !== null && !config.ui.showHeader ? (_jsxs("div", { className: "dsh-qa-agentview", role: "status", children: [_jsx(RobotBadge, {}), _jsx("span", { children: "\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 \u0441\u0443\u0431\u0430\u0433\u0435\u043D\u0442\u0430" }), _jsx("button", { type: "button", onClick: () => void controller?.closeSubagent(), children: "\u2190 \u0412 \u0447\u0430\u0442" })] })) : null, config.ui.showHeader ? (_jsx("header", { className: "dsh-qa-header", children: _jsxs("div", { className: "dsh-qa-header__inner", children: [_jsxs("div", { className: "dsh-qa-header__title-row", children: [config.branding.logoUrl === null ? null : (_jsx("img", { className: "dsh-qa-header__logo", src: config.branding.logoUrl, alt: "" })), conversationTitle === null ? null : (_jsx("h1", { title: conversationTitle, children: conversationTitle })), state.viewingSubagent !== null ? (_jsxs("span", { className: "dsh-qa-header__viewing", children: [_jsx(RobotBadge, {}), "\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 \u0441\u0443\u0431\u0430\u0433\u0435\u043D\u0442\u0430", _jsx("button", { type: "button", className: "dsh-qa-header__back", onClick: () => void controller?.closeSubagent(), children: "\u2190 \u0412 \u0447\u0430\u0442" })] })) : (_jsxs("span", { className: "dsh-qa-header__mode", children: [_jsxs("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", children: [_jsx("circle", { cx: "8", cy: "3.25", r: "1.5" }), _jsx("circle", { cx: "4", cy: "11.75", r: "1.5" }), _jsx("circle", { cx: "12", cy: "11.75", r: "1.5" }), _jsx("path", { d: "M8 4.75v2.5m0 0H4v3m4-3h4v3" })] }), modeLabel(config.session.agentPreset)] })), _jsxs("button", { type: "button", className: config.sources.enabled && config.sources.display.sidebar
328
- ? "dsh-qa-header__agents"
329
- : "dsh-qa-header__agents dsh-qa-header__agents--end", disabled: agentRows.length === 0, "aria-expanded": agentsOpen, onClick: () => {
330
- setAgentsOpen((open) => !open);
331
- setSourcesOpen(false);
332
- }, children: [_jsxs("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", children: [_jsx("rect", { x: "3", y: "5.5", width: "10", height: "7", rx: "1.75" }), _jsx("path", { d: "M8 3v2.5M6.2 9h.01M9.8 9h.01M6.2 11h3.6" })] }), "\u0410\u0433\u0435\u043D\u0442\u044B", agentRows.length === 0 ? null : ` (${agentRows.length})`] }), config.sources.enabled && config.sources.display.sidebar ? (_jsxs("button", { type: "button", className: config.ui.showReset &&
333
- config.session.policy !== "fixed" &&
334
- (!config.lockdown.enabled ||
335
- config.lockdown.allowSessionReset)
336
- ? "dsh-qa-header__sources"
337
- : "dsh-qa-header__sources dsh-qa-header__sources--end", disabled: state.sources.length === 0 && state.sourcesComplete, "aria-expanded": sourcesOpen, onClick: () => {
338
- setSourcesOpen((open) => !open);
339
- setDrawerSources(null);
340
- setDrawerCompleteness(null);
341
- setAgentsOpen(false);
342
- }, children: [_jsxs("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", children: [_jsx("circle", { cx: "8", cy: "8", r: "5.75" }), _jsx("path", { d: "M2.25 8h11.5M8 2.25c1.6 1.55 2.4 3.5 2.4 5.75S9.6 12.2 8 13.75C6.4 12.2 5.6 10.25 5.6 8S6.4 3.8 8 2.25Z" })] }), "\u0418\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0438", state.sources.length === 0 && state.sourcesComplete
343
- ? null
344
- : ` (${state.sources.length})`] })) : null, config.ui.showReset &&
345
- config.session.policy !== "fixed" &&
346
- (!config.lockdown.enabled ||
347
- config.lockdown.allowSessionReset) ? (_jsx("button", { type: "button", className: "dsh-qa-header__reset", disabled: controller === undefined || state.phase === "creating", onClick: () => void controller?.startDraft(), children: "\u041D\u043E\u0432\u044B\u0439 \u0447\u0430\u0442" })) : null] }), _jsx("div", { className: "dsh-qa-header__tabs", "aria-label": "\u0412\u0438\u0434 \u0431\u0435\u0441\u0435\u0434\u044B", children: _jsx("span", { "aria-current": "page", children: "\u0427\u0430\u0442" }) })] }) })) : null, _jsxs("div", { ref: chat, className: "dsh-qa-chat", style: {
348
- "--dsh-qa-content-width": `${config.ui.maxContentWidth}px`,
386
+ : undefined })) : null, _jsxs("div", { className: "dsh-qa-body", children: [state.viewingSubagent !== null && !config.ui.showHeader ? (_jsx(QaSubagentBanner, { onClose: handleCloseSubagent })) : null, config.ui.showHeader ? (_jsx(QaHeader, { logoUrl: config.branding.logoUrl, title: conversationTitle, viewingSubagent: state.viewingSubagent !== null, onCloseSubagent: handleCloseSubagent, agentPreset: config.session.agentPreset, agentCount: agentRows.length, agentsOpen: agentsOpen, onToggleAgents: rail.toggleAgents, sourcesVisible: config.sources.enabled && config.sources.display.sidebar, sourcesCount: state.sources.length, sourcesComplete: state.sourcesComplete, sourcesOpen: rail.railOpen && rail.railTab === "sources", onOpenSources: () => rail.openTab("sources"), fileCount: attachmentCount, filesOpen: rail.railOpen && rail.railTab === "files", onOpenFiles: () => rail.openTab("files"), showReset: showResetButton, resetDisabled: controller === undefined || state.phase === "creating", onReset: handleNewChat })) : null, _jsxs("div", { ref: chat, className: "dsh-qa-chat", style: {
387
+ "--dsh-qa-content-width": `${config.ui.minContentWidth}px`,
349
388
  }, children: [_jsxs("div", { ref: transcript, className: "dsh-qa-transcript", onScroll: (event) => {
350
389
  const element = event.currentTarget;
351
- nearBottom.current =
352
- element.scrollHeight -
353
- element.scrollTop -
354
- element.clientHeight <
355
- 96;
390
+ nearBottom.current = isNearBottom(element);
356
391
  scheduleActiveTurnSync();
357
392
  }, children: [empty ? null : (_jsx(QaTurnRail, { items: railItems, activeTurn: activeTurn, busyTurn: busyTurn, scrollerRef: transcript, onNavigate: handleTurnNavigate })), _jsxs("div", { className: "dsh-qa-transcript__inner", children: [empty ? (_jsxs("section", { className: "dsh-qa-welcome", "aria-labelledby": "dsh-qa-welcome-title", children: [_jsx("h2", { id: "dsh-qa-welcome-title", children: config.branding.welcomeMessage }), config.branding.subtitle === "" ? null : (_jsx("p", { children: config.branding.subtitle }))] })) : (visibleMessages.map((message, index) => {
358
393
  const group = message.role === "user"
359
394
  ? view.groupByPromptId.get(message.id)
360
395
  : undefined;
361
396
  const isLast = index === visibleMessages.length - 1;
362
- return (_jsxs("div", { className: "dsh-qa-message-slot", "data-dsh-qa-turn-anchor": message.role === "user" ? message.id : undefined, children: [_jsx(QaMessage, { message: message, renderMarkdown: config.ui.renderMarkdown, showTimestamp: config.ui.showTimestamps, stateKey: messageStateKey, resolveImage: resolveImage, onRegenerate: isLast &&
397
+ return (_jsxs("div", { className: "dsh-qa-message-slot", "data-dsh-qa-turn-anchor": message.role === "user" ? message.id : undefined, children: [_jsx(QaMessage, { message: message, renderMarkdown: config.ui.renderMarkdown, showTimestamp: config.ui.showTimestamps, stateKey: messageStateKey, thinkingPhrases: config.thinkingPhrases, resolveImage: resolveImage, onRegenerate: isLast &&
363
398
  message.role === "assistant" &&
364
399
  message.status === "committed" &&
365
400
  controller !== undefined
366
401
  ? handleRegenerate
367
402
  : undefined, onOpenSources: config.sources.enabled &&
368
403
  config.sources.display.footer
369
- ? handleOpenSources
404
+ ? rail.openSources
370
405
  : undefined, onSourceDetail: config.sources.enabled
371
- ? handleSourceDetail
406
+ ? rail.openSourceDetail
372
407
  : undefined }), group !== undefined && group.turns.length > 1 ? (_jsx(VariantSwitcher, { count: group.turns.length, offset: variantOffsets[group.groupId] ?? 0, onStep: (step) => setVariantOffsets((offsets) => ({
373
408
  ...offsets,
374
409
  [group.groupId]: step,
375
410
  })) })) : null] }, message.id));
376
- })), state.error === null ? null : (_jsxs("div", { className: "dsh-qa-error", role: "alert", children: [_jsx("span", { children: state.error }), state.phase === "error" ? (_jsx("button", { type: "button", onClick: () => void controller?.ensureSession(), children: "\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C" })) : null] }))] })] }), _jsx("footer", { className: "dsh-qa-footer", children: _jsxs("div", { className: "dsh-qa-footer__inner", children: [_jsx(QaComposer, { placeholder: config.branding.placeholder, quickQuestions: empty ? config.suggestedQuestions : NO_QUESTIONS, canSend: state.canSend, canStop: state.canStop, running: state.phase === "running", showStop: config.ui.showStop, status: status, images: pendingImages, onImagesChange: setPendingImages, onSend: handleSend, onStop: handleStop }, state.sessionId ?? "draft"), config.branding.disclaimer === "" ? null : (_jsxs("p", { className: "dsh-qa-footer__disclaimer", children: [_jsxs("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", children: [_jsx("circle", { cx: "8", cy: "8", r: "5.75" }), _jsx("path", { d: "M8 7.25v3.5m0-5.25v.5" })] }), config.branding.disclaimer] }))] }) }), !empty
411
+ })), state.error === null ? null : (_jsxs("div", { className: "dsh-qa-error", role: "alert", children: [_jsx("span", { children: state.error }), state.phase === "error" ? (_jsx("button", { type: "button", onClick: () => void controller?.ensureSession(), children: "\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C" })) : null] }))] })] }), _jsx("footer", { className: "dsh-qa-footer", children: _jsxs("div", { className: "dsh-qa-footer__inner", children: [_jsx(QaApproval, { approvals: state.approvals, onAnswer: handleAnswerApproval }), _jsx(QaQuestions, { questions: state.questions, onAnswer: handleAnswerQuestion, onCancel: handleCancelQuestion }), _jsx(QaComposer, { placeholder: config.branding.placeholder, quickQuestions: empty ? config.suggestedQuestions : NO_QUESTIONS, canSend: state.canSend, canStop: state.canStop, running: state.phase === "running", showStop: config.ui.showStop, status: status, attachments: pendingAttachments, limits: limits, onAttachmentsChange: setPendingAttachments, onSend: handleSend, onStop: handleStop }, state.sessionId ?? "draft"), config.branding.disclaimer === "" ? null : (_jsxs("p", { className: "dsh-qa-footer__disclaimer", children: [_jsxs("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", children: [_jsx("circle", { cx: "8", cy: "8", r: "5.75" }), _jsx("path", { d: "M8 7.25v3.5m0-5.25v.5" })] }), config.branding.disclaimer] }))] }) }), !empty
377
412
  ? ["left", "right"].map((side) => (_jsx(QaWidthHandle, { side: side, ...widthHandlers }, side)))
378
- : null] })] }), agentsOpen && agentRows.length > 0 ? (_jsx(QaAgentsDrawer, { agents: agentRows, activeId: state.viewingSubagent?.id ?? null, onView: (id, title) => void controller?.viewSubagent(id, title), onClose: () => setAgentsOpen(false) })) : null, sourcesOpen &&
379
- ((drawerSources ?? state.sources).length > 0 ||
380
- !(drawerCompleteness?.complete ?? state.sourcesComplete)) ? (_jsx(QaSourcesDrawer, { sources: drawerSources ?? state.sources, complete: drawerCompleteness?.complete ?? state.sourcesComplete, incompleteOrigins: drawerCompleteness?.incompleteOrigins ??
381
- state.incompleteSourceOrigins, sessionId: state.sessionId, sourceApi: boundSourceApi, display: config.sources.display, filePreview: config.sources.filePreview, initialDetail: drawerDetail, onClose: () => {
382
- setSourcesOpen(false);
383
- setDrawerSources(null);
384
- setDrawerCompleteness(null);
385
- setDrawerDetail(null);
386
- } })) : null] })] }));
413
+ : null] })] }), agentsOpen && agentRows.length > 0 ? (_jsx(QaAgentsDrawer, { agents: agentRows, activeId: state.viewingSubagent?.id ?? null, onView: (id, title) => void controller?.viewSubagent(id, title), onClose: () => setAgentsOpen(false) })) : null, rail.railOpen ? (_jsx(QaRightRail, { tabs: railTabs, activeTab: rail.railTab, onTabSelect: rail.selectTab, onClose: rail.close })) : null] })] }));
387
414
  }
388
415
  //# sourceMappingURL=QaSurface.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QaSurface.js","sourceRoot":"","sources":["../../src/client/QaSurface.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QaSurface.js","sourceRoot":"","sources":["../../src/client/QaSurface.tsx"],"names":[],"mappings":"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"}