@yadsh/dsh-qa-surface 0.15.7 → 0.17.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 (348) hide show
  1. package/README.md +27 -2
  2. package/lib/access/capability-catalog.js +11 -4
  3. package/lib/access/capability-catalog.js.map +1 -1
  4. package/lib/access/service.js +46 -5
  5. package/lib/access/service.js.map +1 -1
  6. package/lib/account-remotes.js +9 -0
  7. package/lib/account-remotes.js.map +1 -1
  8. package/lib/accounts/database.js +34 -3
  9. package/lib/accounts/database.js.map +1 -1
  10. package/lib/accounts/store.js +22 -2
  11. package/lib/accounts/store.js.map +1 -1
  12. package/lib/admin/service.js +4 -2
  13. package/lib/admin/service.js.map +1 -1
  14. package/lib/admin/session-log.js +3 -0
  15. package/lib/admin/session-log.js.map +1 -1
  16. package/lib/agent-scope.js +9 -0
  17. package/lib/agent-scope.js.map +1 -0
  18. package/lib/chat-sharing/native-fence.js +120 -0
  19. package/lib/chat-sharing/native-fence.js.map +1 -0
  20. package/lib/chat-sharing/resources.js +57 -0
  21. package/lib/chat-sharing/resources.js.map +1 -0
  22. package/lib/chat-sharing/store.js +199 -0
  23. package/lib/chat-sharing/store.js.map +1 -0
  24. package/lib/chat-sharing/transport.js +329 -0
  25. package/lib/chat-sharing/transport.js.map +1 -0
  26. package/lib/chat-sharing/turn-guard.js +154 -0
  27. package/lib/chat-sharing/turn-guard.js.map +1 -0
  28. package/lib/chat-sharing/types.js +2 -0
  29. package/lib/chat-sharing/types.js.map +1 -0
  30. package/lib/chat-sharing/uploads.js +55 -0
  31. package/lib/chat-sharing/uploads.js.map +1 -0
  32. package/lib/client/QaAccountsController.js +47 -2
  33. package/lib/client/QaAccountsController.js.map +1 -1
  34. package/lib/client/QaConfigController.js +7 -12
  35. package/lib/client/QaConfigController.js.map +1 -1
  36. package/lib/client/QaSessionController.js +195 -19
  37. package/lib/client/QaSessionController.js.map +1 -1
  38. package/lib/client/QaSurface.js +156 -14
  39. package/lib/client/QaSurface.js.map +1 -1
  40. package/lib/client/QaSurfaceGuard.js +6 -1
  41. package/lib/client/QaSurfaceGuard.js.map +1 -1
  42. package/lib/client/QaTranscriptAdapter.js +28 -5
  43. package/lib/client/QaTranscriptAdapter.js.map +1 -1
  44. package/lib/client/account-conversation.js +33 -0
  45. package/lib/client/account-conversation.js.map +1 -0
  46. package/lib/client/account-sessions.js +106 -0
  47. package/lib/client/account-sessions.js.map +1 -0
  48. package/lib/client/account-upload.js +30 -0
  49. package/lib/client/account-upload.js.map +1 -0
  50. package/lib/client/answer-review.js +89 -0
  51. package/lib/client/answer-review.js.map +1 -0
  52. package/lib/client/chat-artifacts.js +18 -3
  53. package/lib/client/chat-artifacts.js.map +1 -1
  54. package/lib/client/chat-sharing-api.js +2 -0
  55. package/lib/client/chat-sharing-api.js.map +1 -0
  56. package/lib/client/components/QaAnswerReviewStatus.js +45 -0
  57. package/lib/client/components/QaAnswerReviewStatus.js.map +1 -0
  58. package/lib/client/components/QaChangelog.js +92 -3
  59. package/lib/client/components/QaChangelog.js.map +1 -1
  60. package/lib/client/components/QaChatActions.js +52 -0
  61. package/lib/client/components/QaChatActions.js.map +1 -0
  62. package/lib/client/components/QaChatSharing.js +95 -0
  63. package/lib/client/components/QaChatSharing.js.map +1 -0
  64. package/lib/client/components/QaComposer.js +8 -4
  65. package/lib/client/components/QaComposer.js.map +1 -1
  66. package/lib/client/components/QaFileAttachment.js +12 -3
  67. package/lib/client/components/QaFileAttachment.js.map +1 -1
  68. package/lib/client/components/QaFilesPanel.js +11 -4
  69. package/lib/client/components/QaFilesPanel.js.map +1 -1
  70. package/lib/client/components/QaHeader.js +3 -3
  71. package/lib/client/components/QaHeader.js.map +1 -1
  72. package/lib/client/components/QaMarkdownPreview.js +86 -0
  73. package/lib/client/components/QaMarkdownPreview.js.map +1 -0
  74. package/lib/client/components/QaMessage.js +41 -10
  75. package/lib/client/components/QaMessage.js.map +1 -1
  76. package/lib/client/components/QaModal.js +17 -0
  77. package/lib/client/components/QaModal.js.map +1 -1
  78. package/lib/client/components/QaRightRail.js +6 -4
  79. package/lib/client/components/QaRightRail.js.map +1 -1
  80. package/lib/client/components/QaRightRailResize.js +129 -0
  81. package/lib/client/components/QaRightRailResize.js.map +1 -0
  82. package/lib/client/components/QaSidebar.js +11 -2
  83. package/lib/client/components/QaSidebar.js.map +1 -1
  84. package/lib/client/components/QaSourceFilters.js +22 -0
  85. package/lib/client/components/QaSourceFilters.js.map +1 -0
  86. package/lib/client/components/QaSourcesPanel.js +66 -14
  87. package/lib/client/components/QaSourcesPanel.js.map +1 -1
  88. package/lib/client/components/QaSpreadsheetPreview.js +56 -0
  89. package/lib/client/components/QaSpreadsheetPreview.js.map +1 -0
  90. package/lib/client/components/QaWelcomeNotice.js +2 -2
  91. package/lib/client/components/QaWelcomeNotice.js.map +1 -1
  92. package/lib/client/components/QaWorkspaceBrowser.js +46 -12
  93. package/lib/client/components/QaWorkspaceBrowser.js.map +1 -1
  94. package/lib/client/components/QaZoomImage.js +56 -0
  95. package/lib/client/components/QaZoomImage.js.map +1 -0
  96. package/lib/client/components/source-refs.js +57 -24
  97. package/lib/client/components/source-refs.js.map +1 -1
  98. package/lib/client/index.js +76 -8
  99. package/lib/client/index.js.map +1 -1
  100. package/lib/client/lineage.js +4 -3
  101. package/lib/client/lineage.js.map +1 -1
  102. package/lib/client/markdown/SourceImage.js +52 -0
  103. package/lib/client/markdown/SourceImage.js.map +1 -0
  104. package/lib/client/markdown/blocks.js +150 -115
  105. package/lib/client/markdown/blocks.js.map +1 -1
  106. package/lib/client/markdown/katex-css.js +1 -1
  107. package/lib/client/markdown/render.js +26 -9
  108. package/lib/client/markdown/render.js.map +1 -1
  109. package/lib/client/markdown/source-chip.js +6 -2
  110. package/lib/client/markdown/source-chip.js.map +1 -1
  111. package/lib/client/notifications/notification-dispatcher.js +50 -11
  112. package/lib/client/notifications/notification-dispatcher.js.map +1 -1
  113. package/lib/client/notifications/use-turn-notifications.js +107 -18
  114. package/lib/client/notifications/use-turn-notifications.js.map +1 -1
  115. package/lib/client/project-session-state.js +28 -13
  116. package/lib/client/project-session-state.js.map +1 -1
  117. package/lib/client/session-admission.js +9 -1
  118. package/lib/client/session-admission.js.map +1 -1
  119. package/lib/client/session-sources.js +44 -3
  120. package/lib/client/session-sources.js.map +1 -1
  121. package/lib/client/settings/sections/sources.js +1 -1
  122. package/lib/client/settings/sections/sources.js.map +1 -1
  123. package/lib/client/settings/styles.js +18 -28
  124. package/lib/client/settings/styles.js.map +1 -1
  125. package/lib/client/slash/useSlashNavigation.js +8 -5
  126. package/lib/client/slash/useSlashNavigation.js.map +1 -1
  127. package/lib/client/source-filters-styles.js +11 -0
  128. package/lib/client/source-filters-styles.js.map +1 -0
  129. package/lib/client/source-preview.js +1 -1
  130. package/lib/client/source-preview.js.map +1 -1
  131. package/lib/client/styles.js +62 -4
  132. package/lib/client/styles.js.map +1 -1
  133. package/lib/client/turn-sources.js +2 -1
  134. package/lib/client/turn-sources.js.map +1 -1
  135. package/lib/client/types.js.map +1 -1
  136. package/lib/client/use-right-rail.js +1 -1
  137. package/lib/client/use-right-rail.js.map +1 -1
  138. package/lib/client/user-settings/IntegrationTokensPage.js +30 -6
  139. package/lib/client/user-settings/IntegrationTokensPage.js.map +1 -1
  140. package/lib/client/workspace-download.js +42 -2
  141. package/lib/client/workspace-download.js.map +1 -1
  142. package/lib/client.js +6481 -2234
  143. package/lib/client.js.map +1 -1
  144. package/lib/config-resolvers/defaults.js +4 -3
  145. package/lib/config-resolvers/defaults.js.map +1 -1
  146. package/lib/config-resolvers/sources.js +2 -0
  147. package/lib/config-resolvers/sources.js.map +1 -1
  148. package/lib/config.js +3 -0
  149. package/lib/config.js.map +1 -1
  150. package/lib/enforcement/skill-policy.js +29 -4
  151. package/lib/enforcement/skill-policy.js.map +1 -1
  152. package/lib/enforcement/skill-resource-paths.js +32 -0
  153. package/lib/enforcement/skill-resource-paths.js.map +1 -0
  154. package/lib/enforcement/structured-result.js +38 -0
  155. package/lib/enforcement/structured-result.js.map +1 -0
  156. package/lib/enforcement/tool-grants.js +3 -1
  157. package/lib/enforcement/tool-grants.js.map +1 -1
  158. package/lib/index.js +447 -17
  159. package/lib/index.js.map +1 -1
  160. package/lib/integration/host-runner.js +1 -0
  161. package/lib/integration/host-runner.js.map +1 -1
  162. package/lib/integration/question-policy.js +126 -0
  163. package/lib/integration/question-policy.js.map +1 -0
  164. package/lib/integration/service.js +2 -0
  165. package/lib/integration/service.js.map +1 -1
  166. package/lib/llm-identity.js +27 -0
  167. package/lib/llm-identity.js.map +1 -0
  168. package/lib/markdown-frontmatter.js +47 -0
  169. package/lib/markdown-frontmatter.js.map +1 -0
  170. package/lib/markdown-images.js +33 -0
  171. package/lib/markdown-images.js.map +1 -0
  172. package/lib/prompt-notes.js +19 -2
  173. package/lib/prompt-notes.js.map +1 -1
  174. package/lib/provenance/collector.js +15 -1
  175. package/lib/provenance/collector.js.map +1 -1
  176. package/lib/provenance/connectors.js +57 -27
  177. package/lib/provenance/connectors.js.map +1 -1
  178. package/lib/provenance/dedupe.js +25 -1
  179. package/lib/provenance/dedupe.js.map +1 -1
  180. package/lib/provenance/document-preview.js +31 -3
  181. package/lib/provenance/document-preview.js.map +1 -1
  182. package/lib/provenance/extractors.js +88 -4
  183. package/lib/provenance/extractors.js.map +1 -1
  184. package/lib/provenance/file-download.js +56 -0
  185. package/lib/provenance/file-download.js.map +1 -0
  186. package/lib/provenance/file-preview.js +20 -2
  187. package/lib/provenance/file-preview.js.map +1 -1
  188. package/lib/provenance/host-store.js +59 -10
  189. package/lib/provenance/host-store.js.map +1 -1
  190. package/lib/provenance/integration-extractor.js +62 -0
  191. package/lib/provenance/integration-extractor.js.map +1 -0
  192. package/lib/provenance/snapshot-store.js +2 -0
  193. package/lib/provenance/snapshot-store.js.map +1 -1
  194. package/lib/provenance/source-content.js +103 -0
  195. package/lib/provenance/source-content.js.map +1 -0
  196. package/lib/provenance/source-image.js +57 -0
  197. package/lib/provenance/source-image.js.map +1 -0
  198. package/lib/provenance/spreadsheet-preview.js +52 -0
  199. package/lib/provenance/spreadsheet-preview.js.map +1 -0
  200. package/lib/qa-tools/docs-tools.js +14 -0
  201. package/lib/qa-tools/docs-tools.js.map +1 -1
  202. package/lib/questions.js +6 -1
  203. package/lib/questions.js.map +1 -1
  204. package/lib/secure-session.js +9 -3
  205. package/lib/secure-session.js.map +1 -1
  206. package/lib/session-fork-host.js +157 -0
  207. package/lib/session-fork-host.js.map +1 -0
  208. package/lib/session-fork.js +34 -0
  209. package/lib/session-fork.js.map +1 -0
  210. package/lib/session-ownership.js +5 -1
  211. package/lib/session-ownership.js.map +1 -1
  212. package/lib/shared/documents.js +12 -0
  213. package/lib/shared/documents.js.map +1 -1
  214. package/lib/shared/session-lineage.js +6 -0
  215. package/lib/shared/session-lineage.js.map +1 -0
  216. package/lib/slash/draft-target.js +21 -0
  217. package/lib/slash/draft-target.js.map +1 -0
  218. package/lib/slash/remotes.js +39 -4
  219. package/lib/slash/remotes.js.map +1 -1
  220. package/lib/typert.host.js +1869 -163
  221. package/lib/typert.remote-client.d.ts +56 -5
  222. package/lib/typert.remote-client.js +1678 -154
  223. package/lib/types/access/capability-catalog.d.ts +1 -1
  224. package/lib/types/access/service.d.ts +7 -0
  225. package/lib/types/access.js +2 -0
  226. package/lib/types/access.js.map +1 -0
  227. package/lib/types/account-remotes.d.ts +3 -0
  228. package/lib/types/accounts/database.d.ts +5 -0
  229. package/lib/types/accounts/store.d.ts +7 -2
  230. package/lib/types/accounts.js +2 -0
  231. package/lib/types/accounts.js.map +1 -0
  232. package/lib/types/admin/session-log.d.ts +2 -0
  233. package/lib/types/admin.js +2 -0
  234. package/lib/types/admin.js.map +1 -0
  235. package/lib/types/agent-scope.d.ts +4 -0
  236. package/lib/types/answer-review.js +2 -0
  237. package/lib/types/answer-review.js.map +1 -0
  238. package/lib/types/capability.js +2 -0
  239. package/lib/types/capability.js.map +1 -0
  240. package/lib/types/chat-sharing/native-fence.d.ts +11 -0
  241. package/lib/types/chat-sharing/resources.d.ts +5 -0
  242. package/lib/types/chat-sharing/store.d.ts +29 -0
  243. package/lib/types/chat-sharing/transport.d.ts +32 -0
  244. package/lib/types/chat-sharing/turn-guard.d.ts +21 -0
  245. package/lib/types/chat-sharing/types.d.ts +25 -0
  246. package/lib/types/chat-sharing/uploads.d.ts +5 -0
  247. package/lib/types/client/QaAccountsController.d.ts +4 -0
  248. package/lib/types/client/QaConfigController.d.ts +3 -2
  249. package/lib/types/client/QaSessionController.d.ts +17 -3
  250. package/lib/types/client/QaSurface.d.ts +6 -1
  251. package/lib/types/client/account-conversation.d.ts +6 -0
  252. package/lib/types/client/account-sessions.d.ts +7 -0
  253. package/lib/types/client/account-upload.d.ts +15 -0
  254. package/lib/types/client/answer-review.d.ts +16 -0
  255. package/lib/types/client/chat-sharing-api.d.ts +35 -0
  256. package/lib/types/client/components/QaAnswerReviewStatus.d.ts +8 -0
  257. package/lib/types/client/components/QaChatActions.d.ts +7 -0
  258. package/lib/types/client/components/QaChatSharing.d.ts +12 -0
  259. package/lib/types/client/components/QaComposer.d.ts +2 -0
  260. package/lib/types/client/components/QaFileAttachment.d.ts +3 -2
  261. package/lib/types/client/components/QaFilesPanel.d.ts +4 -1
  262. package/lib/types/client/components/QaMarkdownPreview.d.ts +13 -0
  263. package/lib/types/client/components/QaMessage.d.ts +5 -2
  264. package/lib/types/client/components/QaModal.d.ts +9 -0
  265. package/lib/types/client/components/QaRightRail.d.ts +3 -2
  266. package/lib/types/client/components/QaRightRailResize.d.ts +9 -0
  267. package/lib/types/client/components/QaSidebar.d.ts +2 -0
  268. package/lib/types/client/components/QaSourceFilters.d.ts +12 -0
  269. package/lib/types/client/components/QaSpreadsheetPreview.d.ts +8 -0
  270. package/lib/types/client/components/QaWelcomeNotice.d.ts +1 -1
  271. package/lib/types/client/components/QaWorkspaceBrowser.d.ts +8 -1
  272. package/lib/types/client/components/QaZoomImage.d.ts +38 -0
  273. package/lib/types/client/components/source-refs.d.ts +1 -0
  274. package/lib/types/client/lineage.d.ts +2 -2
  275. package/lib/types/client/markdown/SourceImage.d.ts +7 -0
  276. package/lib/types/client/markdown/blocks.d.ts +8 -1
  277. package/lib/types/client/markdown/render.d.ts +5 -1
  278. package/lib/types/client/markdown/source-chip.d.ts +1 -0
  279. package/lib/types/client/notifications/notification-dispatcher.d.ts +10 -6
  280. package/lib/types/client/notifications/use-turn-notifications.d.ts +4 -0
  281. package/lib/types/client/project-session-state.d.ts +1 -0
  282. package/lib/types/client/session-admission.d.ts +2 -0
  283. package/lib/types/client/session-sources.d.ts +1 -0
  284. package/lib/types/client/settings/styles.d.ts +2 -5
  285. package/lib/types/client/source-filters-styles.d.ts +2 -0
  286. package/lib/types/client/turn-sources.d.ts +1 -1
  287. package/lib/types/client/types.d.ts +18 -5
  288. package/lib/types/client/workspace-download.d.ts +9 -1
  289. package/lib/types/config.js +2 -0
  290. package/lib/types/config.js.map +1 -0
  291. package/lib/types/documents.js +2 -0
  292. package/lib/types/documents.js.map +1 -0
  293. package/lib/types/enforcement/skill-resource-paths.d.ts +5 -0
  294. package/lib/types/enforcement/structured-result.d.ts +11 -0
  295. package/lib/types/expert-memory.js +2 -0
  296. package/lib/types/expert-memory.js.map +1 -0
  297. package/lib/types/index.d.ts +42 -3
  298. package/lib/types/integration/contract.d.ts +1 -0
  299. package/lib/types/integration/question-policy.d.ts +20 -0
  300. package/lib/types/integration/service.d.ts +1 -0
  301. package/lib/types/llm-identity.d.ts +20 -0
  302. package/lib/types/markdown-frontmatter.d.ts +10 -0
  303. package/lib/types/markdown-images.d.ts +3 -0
  304. package/lib/types/policy.js +2 -0
  305. package/lib/types/policy.js.map +1 -0
  306. package/lib/types/prompt-notes.d.ts +3 -1
  307. package/lib/types/provenance/connectors.d.ts +4 -1
  308. package/lib/types/provenance/document-preview.d.ts +5 -2
  309. package/lib/types/provenance/extractors.d.ts +2 -0
  310. package/lib/types/provenance/file-download.d.ts +10 -0
  311. package/lib/types/provenance/file-preview.d.ts +2 -1
  312. package/lib/types/provenance/host-store.d.ts +2 -0
  313. package/lib/types/provenance/integration-extractor.d.ts +5 -0
  314. package/lib/types/provenance/source-content.d.ts +19 -0
  315. package/lib/types/provenance/source-image.d.ts +4 -0
  316. package/lib/types/provenance/spreadsheet-preview.d.ts +5 -0
  317. package/lib/types/provenance/types.d.ts +5 -0
  318. package/lib/types/qa-tools/docs-tools.d.ts +2 -0
  319. package/lib/types/quality.js +7 -0
  320. package/lib/types/quality.js.map +1 -0
  321. package/lib/types/questions.d.ts +2 -1
  322. package/lib/types/session-fork-host.d.ts +27 -0
  323. package/lib/types/session-fork.d.ts +7 -0
  324. package/lib/types/session.js +2 -0
  325. package/lib/types/session.js.map +1 -0
  326. package/lib/types/shared/documents.d.ts +2 -0
  327. package/lib/types/shared/session-lineage.d.ts +7 -0
  328. package/lib/types/skills.js +2 -0
  329. package/lib/types/skills.js.map +1 -0
  330. package/lib/types/slash/draft-target.d.ts +7 -0
  331. package/lib/types/slash/remotes.d.ts +7 -0
  332. package/lib/types/slash.js +2 -0
  333. package/lib/types/slash.js.map +1 -0
  334. package/lib/types/types/access.d.ts +43 -0
  335. package/lib/types/types/accounts.d.ts +177 -0
  336. package/lib/types/types/admin.d.ts +286 -0
  337. package/lib/types/types/answer-review.d.ts +11 -0
  338. package/lib/types/types/capability.d.ts +230 -0
  339. package/lib/types/types/config.d.ts +597 -0
  340. package/lib/types/types/documents.d.ts +34 -0
  341. package/lib/types/types/expert-memory.d.ts +35 -0
  342. package/lib/types/types/policy.d.ts +54 -0
  343. package/lib/types/types/quality.d.ts +100 -0
  344. package/lib/types/types/session.d.ts +397 -0
  345. package/lib/types/types/skills.d.ts +143 -0
  346. package/lib/types/types/slash.d.ts +159 -0
  347. package/lib/types/types.d.ts +14 -2180
  348. package/package.json +8 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QaChatSharing.js","sourceRoot":"","sources":["../../../src/client/components/QaChatSharing.tsx"],"names":[],"mappings":"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"}
@@ -159,12 +159,15 @@ export const QaComposer = memo(function QaComposer(props) {
159
159
  ? undefined
160
160
  : `${SLASH_LIST_ID}-option-${String(navigation.active)}`, onKeyDown: (event) => {
161
161
  if (navigation.open) {
162
- if (event.key === "ArrowDown" || event.key === "ArrowUp") {
162
+ if (navigation.active !== -1 &&
163
+ (event.key === "ArrowDown" || event.key === "ArrowUp")) {
163
164
  event.preventDefault();
164
165
  navigation.move(event.key === "ArrowDown" ? 1 : -1);
165
166
  return;
166
167
  }
167
- if (event.key === "Tab") {
168
+ if (event.key === "Tab" &&
169
+ navigation.active !== -1 &&
170
+ !event.shiftKey) {
168
171
  // Tab inserts, it does not complete-and-run: the user still
169
172
  // has to write the argument and press Enter again.
170
173
  event.preventDefault();
@@ -176,7 +179,8 @@ export const QaComposer = memo(function QaComposer(props) {
176
179
  navigation.dismiss();
177
180
  return;
178
181
  }
179
- if (event.key === "Enter" &&
182
+ if (navigation.active !== -1 &&
183
+ event.key === "Enter" &&
180
184
  !event.shiftKey &&
181
185
  !event.nativeEvent.isComposing) {
182
186
  event.preventDefault();
@@ -193,6 +197,6 @@ export const QaComposer = memo(function QaComposer(props) {
193
197
  } }), _jsxs("div", { className: "dsh-qa-composer__toolbar", children: [_jsx("input", { ref: fileInput, type: "file", "data-testid": "qa-composer-file-input", accept: attachmentAccept(limits), multiple: true, className: "dsh-qa-sr-only", tabIndex: -1, "aria-hidden": "true", onChange: (event) => {
194
198
  void addFiles([...(event.target.files ?? [])]);
195
199
  event.target.value = "";
196
- } }), _jsx("button", { type: "button", className: "dsh-qa-composer__attach", "data-testid": "qa-composer-attach", "aria-label": "\u041F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u0444\u0430\u0439\u043B", title: "\u041F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u0444\u0430\u0439\u043B \u0438\u043B\u0438 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435", disabled: !props.canSend || attachments.length >= limits.maxPending, onClick: () => fileInput.current?.click(), children: _jsx(AttachIcon, {}) }), _jsx("span", { className: "dsh-qa-composer__hint", "data-testid": "qa-composer-hint", "aria-live": "polite", children: hint }), props.running && props.showStop ? (_jsx("button", { type: "button", className: "dsh-qa-composer__action dsh-qa-composer__action--stop", "data-testid": "qa-composer-stop", "aria-label": "\u041E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C", title: "\u041E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C", disabled: !props.canStop, onClick: () => void props.onStop(), children: _jsx("svg", { viewBox: "0 0 18 18", "aria-hidden": "true", children: _jsx("rect", { x: "5.25", y: "5.25", width: "7.5", height: "7.5", rx: "1.5" }) }) })) : null, props.running && props.showStop && props.canSend ? (_jsx("button", { type: "button", className: "dsh-qa-composer__action dsh-qa-composer__action--send", "data-testid": "qa-composer-send", "aria-label": "\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0432 \u043E\u0447\u0435\u0440\u0435\u0434\u044C", title: "\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0432 \u043E\u0447\u0435\u0440\u0435\u0434\u044C", disabled: submitting || !hasContent, onClick: () => void send(), children: _jsx(SendIcon, {}) })) : null, props.running && props.showStop ? null : (_jsx("button", { type: "button", className: "dsh-qa-composer__action dsh-qa-composer__action--send", "data-testid": "qa-composer-send", "aria-label": props.running ? "Отправить в очередь" : "Отправить", title: props.running ? "Отправить в очередь" : "Отправить", disabled: !props.canSend || submitting || !hasContent, onClick: () => void send(), children: _jsx(SendIcon, {}) }))] })] })] }));
200
+ } }), _jsx("button", { type: "button", className: "dsh-qa-composer__attach", "data-testid": "qa-composer-attach", "aria-label": "\u041F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u0444\u0430\u0439\u043B", title: "\u041F\u0440\u0438\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u0444\u0430\u0439\u043B \u0438\u043B\u0438 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435", disabled: !props.canSend || attachments.length >= limits.maxPending, onClick: () => fileInput.current?.click(), children: _jsx(AttachIcon, {}) }), _jsx("span", { className: "dsh-qa-composer__hint", "data-testid": "qa-composer-hint", "aria-live": "polite", children: hint }), props.onFastModeChange === undefined ? null : (_jsx("button", { type: "button", className: `dsh-qa-composer__fast${props.fastMode === true ? " dsh-qa-composer__fast--active" : ""}`, "data-testid": "qa-composer-fast", "aria-label": "Fast: \u0431\u0435\u0437 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u0440\u0435\u0432\u044C\u044E \u043E\u0442\u0432\u0435\u0442\u043E\u0432", "aria-pressed": props.fastMode === true, title: "Fast \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u043D\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0432 \u044D\u0442\u043E\u043C \u0447\u0430\u0442\u0435", disabled: !props.canSend || submitting, onClick: () => props.onFastModeChange?.(props.fastMode !== true), children: "Fast" })), props.running && props.showStop ? (_jsx("button", { type: "button", className: "dsh-qa-composer__action dsh-qa-composer__action--stop", "data-testid": "qa-composer-stop", "aria-label": "\u041E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C", title: "\u041E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C", disabled: !props.canStop, onClick: () => void props.onStop(), children: _jsx("svg", { viewBox: "0 0 18 18", "aria-hidden": "true", children: _jsx("rect", { x: "5.25", y: "5.25", width: "7.5", height: "7.5", rx: "1.5" }) }) })) : null, props.running && props.showStop && props.canSend ? (_jsx("button", { type: "button", className: "dsh-qa-composer__action dsh-qa-composer__action--send", "data-testid": "qa-composer-send", "aria-label": "\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0432 \u043E\u0447\u0435\u0440\u0435\u0434\u044C", title: "\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0432 \u043E\u0447\u0435\u0440\u0435\u0434\u044C", disabled: submitting || !hasContent, onClick: () => void send(), children: _jsx(SendIcon, {}) })) : null, props.running && props.showStop ? null : (_jsx("button", { type: "button", className: "dsh-qa-composer__action dsh-qa-composer__action--send", "data-testid": "qa-composer-send", "aria-label": props.running ? "Отправить в очередь" : "Отправить", title: props.running ? "Отправить в очередь" : "Отправить", disabled: !props.canSend || submitting || !hasContent, onClick: () => void send(), children: _jsx(SendIcon, {}) }))] })] }), props.fastMode === true ? (_jsx("p", { className: "dsh-qa-composer__fast-warning", "data-testid": "qa-composer-fast-warning", role: "status", children: "Fast \u0432\u043A\u043B\u044E\u0447\u0451\u043D \u0434\u043B\u044F \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0445 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439. \u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0435 \u0440\u0435\u0432\u044C\u044E \u043E\u0442\u0432\u0435\u0442\u043E\u0432 \u043F\u0440\u043E\u043F\u0443\u0441\u043A\u0430\u0435\u0442\u0441\u044F: \u043E\u0448\u0438\u0431\u043A\u0438 \u0438 \u043D\u0435\u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0451\u043D\u043D\u044B\u0435 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F \u043C\u043E\u0433\u0443\u0442 \u043E\u0441\u0442\u0430\u0442\u044C\u0441\u044F \u043D\u0435\u0437\u0430\u043C\u0435\u0447\u0435\u043D\u043D\u044B\u043C\u0438. \u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043F\u0435\u0440\u0435\u0434 \u0441\u043E\u0433\u043B\u0430\u0441\u043E\u0432\u0430\u043D\u0438\u0435\u043C \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0435\u0442\u0441\u044F." })) : null] }));
197
201
  });
198
202
  //# sourceMappingURL=QaComposer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QaComposer.js","sourceRoot":"","sources":["../../../src/client/components/QaComposer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QaComposer.js","sourceRoot":"","sources":["../../../src/client/components/QaComposer.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { formatFileSize } from "../attachments.js";
3
+ import { useState } from "react";
3
4
  /** Uppercase extension badge; a name without one falls back to a paper glyph. */
4
5
  function badgeText(name) {
5
6
  const dot = name.lastIndexOf(".");
@@ -14,8 +15,16 @@ function badgeText(name) {
14
15
  * re-reads its bytes; a file the turn produced is the same chip with the two
15
16
  * controls that make it usable — open it, or take it away.
16
17
  */
17
- export function QaFileAttachment({ name, bytes, tone, onRemove, onOpen, onDownload, }) {
18
- const text = (_jsxs("span", { className: "dsh-qa-file__text", children: [_jsx("span", { className: "dsh-qa-file__name", "data-testid": "qa-file-name", children: name }), _jsx("span", { className: "dsh-qa-file__meta", "data-testid": "qa-file-size", children: formatFileSize(bytes) })] }));
19
- return (_jsxs("span", { className: "dsh-qa-file", "data-testid": "qa-file", "data-tone": tone, title: name, children: [_jsx("span", { className: "dsh-qa-file__badge", "data-testid": "qa-file-badge", "aria-hidden": "true", children: badgeText(name) }), onOpen === undefined ? (text) : (_jsx("button", { type: "button", className: "dsh-qa-file__open", "data-testid": "qa-file-open", "aria-label": `Открыть ${name}`, title: `Открыть ${name}`, onClick: onOpen, children: text })), onDownload === undefined ? null : (_jsx("button", { type: "button", className: "dsh-qa-file__download", "data-testid": "qa-file-download", "aria-label": `Скачать ${name}`, title: "\u0421\u043A\u0430\u0447\u0430\u0442\u044C", onClick: onDownload, children: "\u0421\u043A\u0430\u0447\u0430\u0442\u044C" })), onRemove === undefined ? null : (_jsx("button", { type: "button", "data-testid": "qa-file-remove", "aria-label": `Убрать ${name}`, title: "\u0423\u0431\u0440\u0430\u0442\u044C", onClick: onRemove, children: _jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", children: _jsx("path", { d: "m4 4 8 8m0-8-8 8" }) }) }))] }));
18
+ export function QaFileAttachment({ name, bytes, tone, onRemove, onOpen, onDownload, onApprove, }) {
19
+ const [approval, setApproval] = useState("idle");
20
+ const text = (_jsxs("span", { className: "dsh-qa-file__text", children: [_jsx("span", { className: "dsh-qa-file__name", "data-testid": "qa-file-name", children: name }), bytes === null ? null : (_jsx("span", { className: "dsh-qa-file__meta", "data-testid": "qa-file-size", children: formatFileSize(bytes) }))] }));
21
+ return (_jsxs("span", { className: "dsh-qa-file", "data-testid": "qa-file", "data-tone": tone, title: name, children: [_jsx("span", { className: "dsh-qa-file__badge", "data-testid": "qa-file-badge", "aria-hidden": "true", children: badgeText(name) }), onOpen === undefined ? (text) : (_jsx("button", { type: "button", className: "dsh-qa-file__open", "data-testid": "qa-file-open", "aria-label": `Открыть ${name}`, title: `Открыть ${name}`, onClick: onOpen, children: text })), onDownload === undefined ? null : (_jsx("button", { type: "button", className: "dsh-qa-file__download", "data-testid": "qa-file-download", "aria-label": `Скачать ${name}`, title: "\u0421\u043A\u0430\u0447\u0430\u0442\u044C", onClick: onDownload, children: "\u0421\u043A\u0430\u0447\u0430\u0442\u044C" })), onRemove === undefined ? null : (_jsx("button", { type: "button", "data-testid": "qa-file-remove", "aria-label": `Убрать ${name}`, title: "\u0423\u0431\u0440\u0430\u0442\u044C", onClick: onRemove, children: _jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", children: _jsx("path", { d: "m4 4 8 8m0-8-8 8" }) }) })), onApprove === undefined ? null : (_jsx("button", { type: "button", className: "dsh-qa-file__download dsh-qa-file__approve", "data-testid": "qa-file-approve", disabled: approval === "pending" || approval === "approved", "aria-label": `Согласовать ${name} и сформировать DOCX`, onClick: () => {
22
+ setApproval("pending");
23
+ void onApprove().then(() => setApproval("approved"), () => setApproval("failed"));
24
+ }, children: approval === "pending"
25
+ ? "Согласование…"
26
+ : approval === "approved"
27
+ ? "Согласовано"
28
+ : "Согласовать и сформировать DOCX" })), approval === "failed" ? (_jsx("span", { className: "dsh-qa-file__error", role: "status", "data-testid": "qa-file-approval-error", children: "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043E\u0433\u043B\u0430\u0441\u043E\u0432\u0430\u0442\u044C \u0438\u043B\u0438 \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0437\u0430\u043F\u0440\u043E\u0441. \u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0442\u0435\u043A\u0443\u0449\u0443\u044E \u0440\u0435\u0434\u0430\u043A\u0446\u0438\u044E \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435." })) : null] }));
20
29
  }
21
30
  //# sourceMappingURL=QaFileAttachment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QaFileAttachment.js","sourceRoot":"","sources":["../../../src/client/components/QaFileAttachment.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,iFAAiF;AACjF,SAAS,SAAS,CAAC,IAAY;IAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACtD,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC;QAClD,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE;QACzB,CAAC,CAAC,MAAM,CAAC;AACb,CAAC;AAkBD;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAC/B,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,UAAU,GACY;IACtB,MAAM,IAAI,GAAG,CACX,gBAAM,SAAS,EAAC,mBAAmB,aACjC,eAAM,SAAS,EAAC,mBAAmB,iBAAa,cAAc,YAC3D,IAAI,GACA,EACP,eAAM,SAAS,EAAC,mBAAmB,iBAAa,cAAc,YAC3D,cAAc,CAAC,KAAK,CAAC,GACjB,IACF,CACR,CAAC;IACF,OAAO,CACL,gBACE,SAAS,EAAC,aAAa,iBACX,SAAS,eACV,IAAI,EACf,KAAK,EAAE,IAAI,aAEX,eACE,SAAS,EAAC,oBAAoB,iBAClB,eAAe,iBACf,MAAM,YAEjB,SAAS,CAAC,IAAI,CAAC,GACX,EACN,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CACtB,IAAI,CACL,CAAC,CAAC,CAAC,CACF,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,mBAAmB,iBACjB,cAAc,gBACd,WAAW,IAAI,EAAE,EAC7B,KAAK,EAAE,WAAW,IAAI,EAAE,EACxB,OAAO,EAAE,MAAM,YAEd,IAAI,GACE,CACV,EACA,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACjC,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,uBAAuB,iBACrB,kBAAkB,gBAClB,WAAW,IAAI,EAAE,EAC7B,KAAK,EAAC,4CAAS,EACf,OAAO,EAAE,UAAU,2DAGZ,CACV,EACA,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC/B,iBACE,IAAI,EAAC,QAAQ,iBACD,gBAAgB,gBAChB,UAAU,IAAI,EAAE,EAC5B,KAAK,EAAC,sCAAQ,EACd,OAAO,EAAE,QAAQ,YAEjB,cAAK,OAAO,EAAC,WAAW,iBAAa,MAAM,YACzC,eAAM,CAAC,EAAC,kBAAkB,GAAG,GACzB,GACC,CACV,IACI,CACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"QaFileAttachment.js","sourceRoot":"","sources":["../../../src/client/components/QaFileAttachment.tsx"],"names":[],"mappings":"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"}
@@ -36,8 +36,10 @@ function QaFileImage({ image, resolve, }) {
36
36
  * back, and the images are the same object URLs the message showed — while the
37
37
  * workspace section reads through the Host's fenced listing and file reads.
38
38
  */
39
- export function QaFilesPanel({ groups, resolveImage, onJumpToMessage, onArtifactOpen, onArtifactDownload, openArtifact, sessionId, api, }) {
40
- const workspace = sessionId === undefined || api === undefined ? null : (_jsxs("section", { className: "dsh-qa-files__workspace", "data-testid": "qa-files-workspace", children: [_jsx("h3", { children: _jsx("span", { children: "\u0420\u0430\u0431\u043E\u0447\u0438\u0439 \u043A\u0430\u0442\u0430\u043B\u043E\u0433" }) }), _jsx(QaWorkspaceBrowser, { sessionId: sessionId, api: api, initialFile: openArtifact?.path }, openArtifact?.stamp ?? "browse")] }));
39
+ export function QaFilesPanel({ groups, resolveImage, onJumpToMessage, onArtifactOpen, onAttachmentOpen, materialsOnly, onArtifactDownload, onArtifactApprove, openArtifact, sessionId, api, }) {
40
+ const workspace = sessionId === undefined ||
41
+ api === undefined ||
42
+ (materialsOnly && openArtifact === undefined) ? null : (_jsxs("section", { className: "dsh-qa-files__workspace", "data-testid": "qa-files-workspace", children: [_jsx("h3", { children: _jsx("span", { children: materialsOnly ? "Материалы чата" : "Рабочий каталог" }) }), _jsx(QaWorkspaceBrowser, { sessionId: sessionId, api: api, initialFile: openArtifact?.path, materialsOnly: materialsOnly }, openArtifact?.stamp ?? "browse")] }));
41
43
  if (groups.length === 0) {
42
44
  return (_jsxs("div", { className: "dsh-qa-files", "data-testid": "qa-files-panel", children: [workspace, _jsx("p", { className: "dsh-qa-files__empty", "data-testid": "qa-files-empty", children: "\u0412 \u044D\u0442\u043E\u043C \u0447\u0430\u0442\u0435 \u043D\u0435\u0442 \u0432\u043B\u043E\u0436\u0435\u043D\u0438\u0439." })] }));
43
45
  }
@@ -45,11 +47,16 @@ export function QaFilesPanel({ groups, resolveImage, onJumpToMessage, onArtifact
45
47
  const time = group.timestamp === undefined
46
48
  ? "Вложенные файлы"
47
49
  : formatDayTime(group.timestamp);
48
- return (_jsxs("section", { className: "dsh-qa-files__group", "data-testid": "qa-files-group", children: [_jsxs("h3", { children: [_jsx("span", { "data-testid": "qa-files-group-time", children: time }), _jsx("button", { type: "button", className: "dsh-qa-files__jump", "data-testid": "qa-files-jump", "aria-label": `Перейти к сообщению от ${time}`, title: "\u041A \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044E", onClick: () => onJumpToMessage(group.messageId), children: _jsx("svg", { viewBox: "0 0 14 14", "aria-hidden": "true", children: _jsx("path", { d: "M3.5 7h7m-3-3.5L11 7l-3.5 3.5" }) }) })] }), _jsxs("div", { className: "dsh-qa-files__items", "data-testid": "qa-files-group-items", children: [group.files.map((file) => (_jsx(QaFileAttachment, { name: file.name, bytes: file.bytes, tone: "sent" }, file.attachmentId))), group.images.map((image) => resolveImage === undefined ? null : (_jsx(QaFileImage, { image: image, resolve: resolveImage }, image.attachmentId))), (group.artifacts ?? []).map((artifact) => (_jsx(QaFileAttachment, { name: artifact.name, bytes: artifact.bytes, tone: "sent", onOpen: onArtifactOpen === undefined
50
+ return (_jsxs("section", { className: "dsh-qa-files__group", "data-testid": "qa-files-group", children: [_jsxs("h3", { children: [_jsx("span", { "data-testid": "qa-files-group-time", children: time }), _jsx("button", { type: "button", className: "dsh-qa-files__jump", "data-testid": "qa-files-jump", "aria-label": `Перейти к сообщению от ${time}`, title: "\u041A \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044E", onClick: () => onJumpToMessage(group.messageId), children: _jsx("svg", { viewBox: "0 0 14 14", "aria-hidden": "true", children: _jsx("path", { d: "M3.5 7h7m-3-3.5L11 7l-3.5 3.5" }) }) })] }), _jsxs("div", { className: "dsh-qa-files__items", "data-testid": "qa-files-group-items", children: [group.files.map((file) => (_jsx(QaFileAttachment, { name: file.name, bytes: file.bytes, tone: "sent", onOpen: onAttachmentOpen === undefined
51
+ ? undefined
52
+ : () => onAttachmentOpen(file) }, file.attachmentId))), group.images.map((image) => resolveImage === undefined ? null : (_jsx(QaFileImage, { image: image, resolve: resolveImage }, image.attachmentId))), (group.artifacts ?? []).map((artifact) => (_jsx(QaFileAttachment, { name: artifact.name, bytes: artifact.bytes, tone: "sent", onOpen: onArtifactOpen === undefined
49
53
  ? undefined
50
54
  : () => onArtifactOpen(artifact), onDownload: onArtifactDownload === undefined
51
55
  ? undefined
52
- : () => onArtifactDownload(artifact) }, artifact.path)))] })] }, group.messageId));
56
+ : () => onArtifactDownload(artifact), onApprove: onArtifactApprove === undefined ||
57
+ artifact.workflow?.status !== "reviewed"
58
+ ? undefined
59
+ : () => onArtifactApprove(artifact) }, artifact.path)))] })] }, group.messageId));
53
60
  })] }));
54
61
  }
55
62
  //# sourceMappingURL=QaFilesPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QaFilesPanel.js","sourceRoot":"","sources":["../../../src/client/components/QaFilesPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QaFilesPanel.js","sourceRoot":"","sources":["../../../src/client/components/QaFilesPanel.tsx"],"names":[],"mappings":"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"}
@@ -23,11 +23,11 @@ export function QaHeader({ logoUrl, title, viewingSubagent, onCloseSubagent, rol
23
23
  onToggleAgents();
24
24
  }, 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", agentCount === 0 ? null : ` (${agentCount})`] }), sourcesVisible ? (_jsxs("button", { type: "button", className: "dsh-qa-header__sources", "data-testid": "qa-surface-header-sources", "aria-expanded": sourcesOpen, ...(sourcesCount === 0 && sourcesComplete
25
25
  ? {
26
- "aria-label": "Источники: этот ответ обошёлся без источников",
26
+ "aria-label": "Источники: в этом чате пока нет источников",
27
27
  }
28
28
  : {}), title: sourcesCount === 0 && sourcesComplete
29
- ? "Этот ответ обошёлся без источников"
30
- : "Показать источники этого ответа", onClick: onOpenSources, 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", sourcesCount === 0 && sourcesComplete
29
+ ? "В этом чате пока нет источников"
30
+ : "Показать источники этого чата", onClick: onOpenSources, 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", sourcesCount === 0 && sourcesComplete
31
31
  ? null
32
32
  : ` (${sourcesCount})`] })) : null, _jsxs("button", { type: "button", className: "dsh-qa-header__files", "data-testid": "qa-surface-header-files", "aria-disabled": !filesEnabled || undefined, "aria-expanded": filesOpen, ...(!filesEnabled
33
33
  ? {
@@ -1 +1 @@
1
- {"version":3,"file":"QaHeader.js","sourceRoot":"","sources":["../../../src/client/components/QaHeader.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QaHeader.js","sourceRoot":"","sources":["../../../src/client/components/QaHeader.tsx"],"names":[],"mappings":";AAQA,SAAS,UAAU;IACjB,OAAO,CACL,eACE,SAAS,EAAC,wBAAwB,EAClC,OAAO,EAAC,WAAW,iBACP,MAAM,aAElB,eAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,EAAE,EAAC,MAAM,GAAG,EACtD,eAAM,CAAC,EAAC,uFAAuF,GAAG,IAC9F,CACP,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAC/B,OAAO,GAGR;IACC,OAAO,CACL,eACE,SAAS,EAAC,kBAAkB,iBAChB,4BAA4B,EACxC,IAAI,EAAC,QAAQ,aAEb,KAAC,UAAU,KAAG,EACd,qIAA+B,EAC/B,iBACE,IAAI,EAAC,QAAQ,iBACD,iCAAiC,EAC7C,OAAO,EAAE,OAAO,iDAGT,IACL,CACP,CAAC;AACJ,CAAC;AAsED,MAAM,UAAU,QAAQ,CAAC,EACvB,OAAO,EACP,KAAK,EACL,eAAe,EACf,eAAe,EACf,YAAY,EACZ,aAAa,EACb,cAAc,EACd,UAAU,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,YAAY,EACZ,eAAe,EACf,WAAW,EACX,aAAa,EACb,SAAS,EACT,YAAY,EACZ,SAAS,EACT,WAAW,EACX,QAAQ,EACR,OAAO,EACP,aAAa,EACb,SAAS,EACT,aAAa,EACb,OAAO,EACP,YAAY,GACE;IACd,OAAO,CACL,iBAAQ,SAAS,EAAC,eAAe,iBAAa,mBAAmB,YAC/D,eACE,SAAS,EAAC,sBAAsB,iBACpB,yBAAyB,aAErC,eACE,SAAS,EAAC,0BAA0B,iBACxB,6BAA6B,aAExC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC9B,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,wBAAwB,iBACtB,2BAA2B,gBAC5B,2EAAe,EAC1B,KAAK,EAAC,2EAAe,mBACN,OAAO,CAAC,IAAI,EAC3B,OAAO,EAAE,OAAO,CAAC,QAAQ,YAEzB,cAAK,OAAO,EAAC,WAAW,iBAAa,MAAM,YACzC,eAAM,CAAC,EAAC,gEAAgE,GAAG,GACvE,GACC,CACV,EACA,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACzB,cACE,SAAS,EAAC,qBAAqB,iBACnB,wBAAwB,EACpC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAC,EAAE,GACN,CACH,EACA,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACvB,aAAI,KAAK,EAAE,KAAK,iBAAc,yBAAyB,YACpD,KAAK,GACH,CACN,EACA,eAAe,CAAC,CAAC,CAAC,CACjB,gBACE,SAAS,EAAC,wBAAwB,iBACtB,2BAA2B,aAEvC,KAAC,UAAU,KAAG,6GAEd,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,qBAAqB,iBACnB,wBAAwB,EACpC,OAAO,EAAE,eAAe,iDAGjB,IACJ,CACR,CAAC,CAAC,CAAC,IAAI,EACP,YAAY,EACZ,aAAa,EAQd,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,uBAAuB,iBACrB,0BAA0B,mBACvB,UAAU,KAAK,CAAC,IAAI,SAAS,mBAC7B,UAAU,KACrB,CAAC,UAAU,KAAK,CAAC;gCACnB,CAAC,CAAC;oCACE,YAAY,EAAE,yCAAyC;iCACxD;gCACH,CAAC,CAAC,EAAE,CAAC,EACP,KAAK,EACH,UAAU,KAAK,CAAC;gCACd,CAAC,CAAC,iCAAiC;gCACnC,CAAC,CAAC,gCAAgC,EAEtC,OAAO,EAAE,GAAG,EAAE;gCACZ,IAAI,UAAU,KAAK,CAAC;oCAAE,OAAO;gCAC7B,cAAc,EAAE,CAAC;4BACnB,CAAC,aAED,eAAK,OAAO,EAAC,WAAW,iBAAa,MAAM,aACzC,eAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAC,EAAE,EAAC,MAAM,GAAG,EACtD,eAAM,CAAC,EAAC,yCAAyC,GAAG,IAChD,0CAEL,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,GAAG,IACtC,EACR,cAAc,CAAC,CAAC,CAAC,CAKhB,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,wBAAwB,iBACtB,2BAA2B,mBACxB,WAAW,KACtB,CAAC,YAAY,KAAK,CAAC,IAAI,eAAe;gCACxC,CAAC,CAAC;oCACE,YAAY,EAAE,4CAA4C;iCAC3D;gCACH,CAAC,CAAC,EAAE,CAAC,EACP,KAAK,EACH,YAAY,KAAK,CAAC,IAAI,eAAe;gCACnC,CAAC,CAAC,iCAAiC;gCACnC,CAAC,CAAC,+BAA+B,EAErC,OAAO,EAAE,aAAa,aAEtB,eAAK,OAAO,EAAC,WAAW,iBAAa,MAAM,aACzC,iBAAQ,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,MAAM,GAAG,EACjC,eAAM,CAAC,EAAC,yGAAyG,GAAG,IAChH,4DAEL,YAAY,KAAK,CAAC,IAAI,eAAe;oCACpC,CAAC,CAAC,IAAI;oCACN,CAAC,CAAC,KAAK,YAAY,GAAG,IACjB,CACV,CAAC,CAAC,CAAC,IAAI,EACR,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,sBAAsB,iBACpB,yBAAyB,mBACtB,CAAC,YAAY,IAAI,SAAS,mBAC1B,SAAS,KACpB,CAAC,CAAC,YAAY;gCAChB,CAAC,CAAC;oCACE,YAAY,EACV,oEAAoE;iCACvE;gCACH,CAAC,CAAC,EAAE,CAAC,EACP,KAAK,EACH,CAAC,YAAY;gCACX,CAAC,CAAC,6DAA6D;gCAC/D,CAAC,CAAC,2BAA2B,EAEjC,OAAO,EAAE,GAAG,EAAE;gCACZ,IAAI,CAAC,YAAY;oCAAE,OAAO;gCAC1B,WAAW,EAAE,CAAC;4BAChB,CAAC,aAED,eAAK,OAAO,EAAC,WAAW,iBAAa,MAAM,aACzC,eAAM,CAAC,EAAC,oHAAoH,GAAG,EAC/H,eAAM,CAAC,EAAC,sCAAsC,GAAG,IAC7C,oCAEL,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,IACpC,EAOT,eACE,SAAS,EAAC,wBAAwB,iBACtB,2BAA2B,aAEtC,SAAS,CAAC,CAAC,CAAC,CACX,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,sBAAsB,iBACpB,yBAAyB,EACrC,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,OAAO,kEAGT,CACV,CAAC,CAAC,CAAC,IAAI,EACP,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACrC,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,sBAAsB,iBACpB,yBAAyB,EACrC,OAAO,EAAE,cAAc,CAAC,MAAM,uHAGvB,CACV,EACA,aAAa,EACb,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC/B,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,yBAAyB,iBACvB,4BAA4B,EACxC,KAAK,EAAE,QAAQ,CAAC,KAAK,EACrB,OAAO,EAAE,QAAQ,CAAC,MAAM,aAExB,eAAK,OAAO,EAAC,WAAW,iBAAa,MAAM,aACzC,iBAAQ,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,KAAK,GAAG,EAChC,eAAM,CAAC,EAAC,6FAA6F,GAAG,IACpG,8DAEC,CACV,IACG,IACF,EAUN,cACE,SAAS,EAAC,qBAAqB,iBACnB,wBAAwB,YAEnC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,CAC5B,+BAAmB,MAAM,mCAAW,CACrC,CAAC,CAAC,CAAC,CACF,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,oBAAoB,iBAClB,4BAA4B,kBAC3B,MAAM,gBACR,wFAAkB,EAC7B,KAAK,EAAC,+KAAmC,EACzC,OAAO,EAAE,YAAY,mCAGd,CACV,GACG,IACF,GACC,CACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,86 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useMemo, useRef } from "react";
3
+ import { renderMarkdown } from "../markdown/render.js";
4
+ const LABELS = {
5
+ domain: "Область",
6
+ corpus: "Корпус",
7
+ applies_to: "Версии",
8
+ document_type: "Тип документа",
9
+ audience: "Аудитория",
10
+ language: "Язык",
11
+ status: "Статус",
12
+ section: "Раздел",
13
+ source: "Исходные файлы",
14
+ conversion: "Подготовка документа",
15
+ id: "Идентификатор",
16
+ version_confidence: "Определение версии",
17
+ parent_id: "Родительский документ",
18
+ supersedes: "Заменяет",
19
+ superseded_by: "Заменён",
20
+ related_domains: "Связанные области",
21
+ };
22
+ function valueText(value, depth = 0) {
23
+ if (value === null || value === undefined)
24
+ return "—";
25
+ if (typeof value === "string" || typeof value === "number")
26
+ return String(value);
27
+ if (typeof value === "boolean")
28
+ return value ? "Да" : "Нет";
29
+ if (depth > 6)
30
+ return "…";
31
+ if (Array.isArray(value))
32
+ return value.map((item) => valueText(item, depth + 1)).join(", ");
33
+ if (typeof value === "object")
34
+ return Object.entries(value)
35
+ .map(([key, item]) => `${key}: ${valueText(item, depth + 1)}`)
36
+ .join(" · ");
37
+ return "—";
38
+ }
39
+ function Metadata({ fields, }) {
40
+ const basic = [
41
+ "applies_to",
42
+ "document_type",
43
+ "audience",
44
+ "language",
45
+ "status",
46
+ "domain",
47
+ "corpus",
48
+ ];
49
+ const details = Object.entries(fields).filter(([key, value]) => !["title", "section", "part", "parts", ...basic].includes(key) &&
50
+ value !== null);
51
+ return (_jsxs("header", { className: "dsh-qa-docmeta", "data-testid": "qa-source-frontmatter", children: [typeof fields.title === "string" ? (_jsx("h2", { children: fields.title })) : (_jsx("h2", { children: "\u041E \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0435" })), _jsx("dl", { className: "dsh-qa-docmeta__attributes", children: basic
52
+ .filter((key) => fields[key] != null)
53
+ .map((key) => (_jsxs("div", { children: [_jsx("dt", { children: LABELS[key] ?? key }), _jsx("dd", { children: valueText(fields[key]) })] }, key))) }), fields.part == null ? null : (_jsxs("p", { children: ["\u0427\u0430\u0441\u0442\u044C ", valueText(fields.part), fields.parts == null ? "" : ` из ${valueText(fields.parts)}`] })), typeof fields.section === "string" ? _jsx("p", { children: fields.section }) : null, details.length === 0 ? null : (_jsxs("details", { "data-testid": "qa-source-frontmatter-details", children: [_jsx("summary", { children: "\u0421\u0432\u0435\u0434\u0435\u043D\u0438\u044F \u043E\u0431 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0435" }), _jsx("dl", { children: details.map(([key, value]) => (_jsxs("div", { children: [_jsx("dt", { children: LABELS[key] ?? key }), _jsx("dd", { children: _jsx(MetadataValue, { value: value }) })] }, key))) })] }))] }));
54
+ }
55
+ function MetadataValue({ value, depth = 0, }) {
56
+ if (depth > 6 || value === null || typeof value !== "object")
57
+ return valueText(value);
58
+ if (Array.isArray(value))
59
+ return (_jsx("ul", { children: value.map((item, index) => (_jsx("li", { children: _jsx(MetadataValue, { value: item, depth: depth + 1 }) }, index))) }));
60
+ return (_jsx("dl", { children: Object.entries(value).map(([key, item]) => (_jsxs("div", { children: [_jsx("dt", { children: key }), _jsx("dd", { children: _jsx(MetadataValue, { value: item, depth: depth + 1 }) })] }, key))) }));
61
+ }
62
+ /** Source-only rendering: original file line numbers survive frontmatter removal. */
63
+ export function QaMarkdownPreview({ text, renderFrontmatter, frontmatter, lineStart, lineEnd, renderImage, requestKey, }) {
64
+ const root = useRef(null);
65
+ const header = renderFrontmatter ? frontmatter : undefined;
66
+ const children = useMemo(() => renderMarkdown(header?.body ?? text, renderImage === undefined ? {} : { renderImage }, {}, {
67
+ offset: header?.offset ?? 0,
68
+ ...(lineStart === undefined ? {} : { start: lineStart }),
69
+ ...(lineEnd === undefined ? {} : { end: lineEnd }),
70
+ }), [text, header, lineStart, lineEnd, renderImage]);
71
+ useEffect(() => {
72
+ if (lineStart === undefined)
73
+ return;
74
+ const nodes = [
75
+ ...(root.current?.querySelectorAll("[data-source-line-start]") ?? []),
76
+ ];
77
+ const target = nodes.find((node) => Number(node.dataset.sourceLineEnd) >= lineStart) ??
78
+ nodes.at(-1);
79
+ target?.scrollIntoView?.({ block: "center" });
80
+ }, [children, lineStart, requestKey]);
81
+ const headerHighlight = lineStart !== undefined &&
82
+ header !== undefined &&
83
+ lineStart <= header.offset;
84
+ return (_jsxs("div", { ref: root, className: "dsh-qa-md", children: [header === undefined ? null : (_jsx("div", { "data-source-line-start": 1, "data-source-line-end": header.offset, className: headerHighlight ? "dsh-qa-preview__block--highlight" : undefined, children: _jsx(Metadata, { fields: header.fields }) })), children] }));
85
+ }
86
+ //# sourceMappingURL=QaMarkdownPreview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QaMarkdownPreview.js","sourceRoot":"","sources":["../../../src/client/components/QaMarkdownPreview.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { memo, useEffect, useRef, useState } from "react";
3
+ import { QaAnswerReviewStatus } from "./QaAnswerReviewStatus.js";
3
4
  import { sameWorkItems } from "./QaWorkGroup.js";
4
5
  import { QaFileAttachment } from "./QaFileAttachment.js";
5
- import { buildSourceRefs } from "./source-refs.js";
6
+ import { QaZoomImage } from "./QaZoomImage.js";
7
+ import { buildSourceRefs, sourceRefsSignature, } from "./source-refs.js";
6
8
  /** The outcome line of a command row; the row already carries the name. */
7
9
  function commandStateCopy(activity) {
8
10
  if (activity.state === "running")
@@ -43,7 +45,7 @@ function QaAttachedImage({ image, resolve, }) {
43
45
  if (url === "") {
44
46
  return (_jsx("span", { className: "dsh-qa-message__image", "data-testid": "qa-message-image", "data-state": "broken" }));
45
47
  }
46
- return (_jsx("a", { href: url, target: "_blank", rel: "noreferrer", children: _jsx("img", { className: "dsh-qa-message__image", "data-testid": "qa-message-image", src: url, alt: "\u041F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u043E\u0435 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435" }) }));
48
+ return (_jsx(QaZoomImage, { className: "dsh-qa-message__image", testId: "qa-message-image", src: url, alt: "\u041F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u043E\u0435 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435" }));
47
49
  }
48
50
  import { FEEDBACK_REASON_LABELS } from "../admin/copy.js";
49
51
  import { useCopyAction } from "../clipboard.js";
@@ -74,7 +76,13 @@ export function sameMessage(a, b) {
74
76
  if (a.text !== b.text || a.timestamp !== b.timestamp)
75
77
  return false;
76
78
  if (a.role === "assistant" && b.role === "assistant") {
77
- return (sameSources(a.sources, b.sources) &&
79
+ return (a.forkable === b.forkable &&
80
+ a.seq === b.seq &&
81
+ a.review?.candidateSeq === b.review?.candidateSeq &&
82
+ a.review?.candidateHash === b.review?.candidateHash &&
83
+ a.review?.status === b.review?.status &&
84
+ a.review?.at === b.review?.at &&
85
+ sameSources(a.sources, b.sources) &&
78
86
  sameArtifacts(a.artifacts, b.artifacts) &&
79
87
  (a.stats === undefined) === (b.stats === undefined) &&
80
88
  (a.stats === undefined ||
@@ -140,7 +148,14 @@ function sameArtifacts(a, b) {
140
148
  return a.every((artifact, index) => artifact.path === b[index].path &&
141
149
  artifact.name === b[index].name &&
142
150
  artifact.format === b[index].format &&
143
- artifact.bytes === b[index].bytes);
151
+ artifact.bytes === b[index].bytes &&
152
+ artifact.workflow?.id === b[index].workflow?.id &&
153
+ artifact.workflow?.revision ===
154
+ b[index].workflow?.revision &&
155
+ artifact.workflow?.sha256 ===
156
+ b[index].workflow?.sha256 &&
157
+ artifact.workflow?.status ===
158
+ b[index].workflow?.status);
144
159
  }
145
160
  const REASONS = [
146
161
  "incorrect",
@@ -213,21 +228,22 @@ function assistantMeta(message) {
213
228
  }
214
229
  return parts;
215
230
  }
216
- export const QaMessage = memo(function QaMessage({ message, renderMarkdown, showTimestamp, stateKey, onRegenerate, resolveImage, onOpenSources, onSourceDetail, onArtifactOpen, onArtifactDownload, thinkingPhrases, onRateFeedback, }) {
231
+ export const QaMessage = memo(function QaMessage({ message, renderMarkdown, showTimestamp, stateKey, onRegenerate, onFork, resolveImage, onOpenSources, onSourceDetail, onArtifactOpen, onAttachmentOpen, onArtifactDownload, onArtifactApprove, thinkingPhrases, onRateFeedback, }) {
217
232
  // A work row carries no copyable text; the footer action renders for the
218
233
  // roles that have it.
219
234
  const { copied, impossible: copyImpossible, refused: copyRefused, copy, } = useCopyAction(message.role === "work" ? "" : message.text);
235
+ const [forking, setForking] = useState(false);
220
236
  const [rating, setRating] = useState(null);
221
237
  // The negative flow asks why, once, without blocking the rating itself.
222
238
  const [askingWhy, setAskingWhy] = useState(false);
223
- // Source-footnote registry, cached by the source-id set so the memoized
239
+ // Source-footnote registry, cached by the full source payload so the memoized
224
240
  // Markdown keeps one resolver identity across streaming frames.
225
241
  const refsCache = useRef({
226
242
  ids: "",
227
243
  refs: buildSourceRefs([]),
228
244
  });
229
245
  if (message.role === "assistant") {
230
- const ids = message.sources?.map((source) => source.id).join("|") ?? "";
246
+ const ids = sourceRefsSignature(message.sources ?? []);
231
247
  if (refsCache.current.ids !== ids) {
232
248
  refsCache.current = {
233
249
  ids,
@@ -294,16 +310,28 @@ export const QaMessage = memo(function QaMessage({ message, renderMarkdown, show
294
310
  const showActions = message.role !== "system" &&
295
311
  message.status !== "streaming" &&
296
312
  message.status !== "pending";
297
- return (_jsxs("article", { className: `dsh-qa-message dsh-qa-message--${message.role}`, "data-testid": "qa-message", "data-status": message.status, "aria-label": `Сообщение: ${label}`, children: [_jsxs("div", { className: "dsh-qa-message__content", "data-testid": "qa-message-content", children: [message.role === "user" && message.author !== undefined ? (_jsx("span", { className: "dsh-qa-message__byline", "data-testid": "qa-message-author", children: message.author })) : null, message.role === "user" && message.files !== undefined ? (_jsx("div", { className: "dsh-qa-message__files", "data-testid": "qa-message-files", "aria-label": "\u041F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B", children: message.files.map((file) => (_jsx(QaFileAttachment, { name: file.name, bytes: file.bytes, tone: "sent" }, file.attachmentId))) })) : null, message.role === "user" && message.images !== undefined ? (_jsx("div", { className: "dsh-qa-message__images", "data-testid": "qa-message-images", children: message.images.map((image) => (_jsx(QaAttachedImage, { image: image, resolve: resolveImage }, image.attachmentId))) })) : null, message.role === "assistant" && renderMarkdown ? (_jsx(Markdown, { text: message.text, streaming: message.status === "streaming", sourceRefs: sourceRefs, onSourceOpen: onSourceDetail })) : (message.text), message.role === "assistant" &&
313
+ return (_jsxs("article", { className: `dsh-qa-message dsh-qa-message--${message.role}`, "data-testid": "qa-message", "data-status": message.status, "aria-label": `Сообщение: ${label}`, children: [_jsxs("div", { className: "dsh-qa-message__content", "data-testid": "qa-message-content", children: [message.role === "user" && message.author !== undefined ? (_jsx("span", { className: "dsh-qa-message__byline", "data-testid": "qa-message-author", children: message.author })) : null, message.role === "user" && message.files !== undefined ? (_jsx("div", { className: "dsh-qa-message__files", "data-testid": "qa-message-files", "aria-label": "\u041F\u0440\u0438\u043A\u0440\u0435\u043F\u043B\u0451\u043D\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B", children: message.files.map((file) => (_jsx(QaFileAttachment, { name: file.name, bytes: file.bytes, tone: "sent", onOpen: onAttachmentOpen === undefined
314
+ ? undefined
315
+ : () => onAttachmentOpen(file) }, file.attachmentId))) })) : null, message.role === "user" && message.images !== undefined ? (_jsx("div", { className: "dsh-qa-message__images", "data-testid": "qa-message-images", children: message.images.map((image) => (_jsx(QaAttachedImage, { image: image, resolve: resolveImage }, image.attachmentId))) })) : null, message.role === "assistant" && renderMarkdown ? (_jsx(Markdown, { text: message.text, streaming: message.status === "streaming", sourceRefs: sourceRefs, onSourceOpen: onSourceDetail })) : (message.text), message.role === "assistant" &&
298
316
  message.artifacts !== undefined &&
299
317
  message.artifacts.length > 0 ? (_jsx("div", { className: "dsh-qa-message__artifacts", "data-testid": "qa-message-artifacts", "aria-label": "\u0421\u043E\u0437\u0434\u0430\u043D\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B", children: message.artifacts.map((artifact) => (_jsx(QaFileAttachment, { name: artifact.name, bytes: artifact.bytes, tone: "sent", onOpen: onArtifactOpen === undefined
300
318
  ? undefined
301
319
  : () => onArtifactOpen(artifact), onDownload: onArtifactDownload === undefined
302
320
  ? undefined
303
- : () => onArtifactDownload(artifact) }, artifact.path))) })) : null, message.status === "streaming" ? (_jsx("span", { className: "dsh-qa-message__cursor", "aria-hidden": "true" })) : null] }), message.role === "user" && message.status === "pending" ? (_jsxs("span", { className: "dsh-qa-message__pending", "data-testid": "qa-message-pending", role: "status", children: [_jsx("span", { className: "dsh-qa-message__pending-spinner", "aria-hidden": "true" }), "\u041F\u043E\u0434\u0433\u043E\u0442\u0430\u0432\u043B\u0438\u0432\u0430\u044E \u043E\u0442\u0432\u0435\u0442\u2026"] })) : null, message.role === "assistant" &&
321
+ : () => onArtifactDownload(artifact), onApprove: onArtifactApprove === undefined ||
322
+ artifact.workflow?.status !== "reviewed"
323
+ ? undefined
324
+ : () => onArtifactApprove(artifact) }, artifact.path))) })) : null, message.status === "streaming" ? (_jsx("span", { className: "dsh-qa-message__cursor", "aria-hidden": "true" })) : null] }), message.role === "user" && message.status === "pending" ? (_jsxs("span", { className: "dsh-qa-message__pending", "data-testid": "qa-message-pending", role: "status", children: [_jsx("span", { className: "dsh-qa-message__pending-spinner", "aria-hidden": "true" }), "\u041F\u043E\u0434\u0433\u043E\u0442\u0430\u0432\u043B\u0438\u0432\u0430\u044E \u043E\u0442\u0432\u0435\u0442\u2026"] })) : null, message.role === "assistant" &&
304
325
  onOpenSources !== undefined &&
305
326
  message.sources !== undefined &&
306
- message.sources.length > 0 ? (_jsxs("button", { type: "button", className: "dsh-qa-message__sources", "data-testid": "qa-message-sources", onClick: () => onOpenSources(message.sources ?? [], message.sourcesComplete ?? true, message.incompleteSourceOrigins), children: ["\u0418\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0438 (", message.sources.length, ")"] })) : null, showActions ? (_jsxs("div", { className: "dsh-qa-message__actions", "data-testid": "qa-message-actions", "data-persistent": persistentMeta || undefined, children: [message.role === "user" ? meta : null, copyImpossible ? (_jsx(CopyHint, { testId: "qa-message-copy-hint" })) : (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", "data-testid": "qa-message-copy", "aria-label": copied ? "Скопировано" : "Скопировать сообщение", title: copied ? "Скопировано" : "Копировать", onClick: copy, children: copied ? (_jsx("svg", { viewBox: "0 0 18 18", "aria-hidden": "true", children: _jsx("path", { d: "m4.5 9.25 2.75 2.75 6.25-6.25" }) })) : (_jsxs("svg", { viewBox: "0 0 18 18", "aria-hidden": "true", children: [_jsx("rect", { x: "6.25", y: "3.25", width: "8.5", height: "8.5", rx: "2" }), _jsx("path", { d: "M11.75 11.75v.5a2.5 2.5 0 0 1-2.5 2.5h-3.5a2.5 2.5 0 0 1-2.5-2.5v-3.5a2.5 2.5 0 0 1 2.5-2.5h.5" })] })) }), copyRefused ? (_jsx(CopyHint, { testId: "qa-message-copy-hint" })) : null] })), message.role === "user" ? null : (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", "data-testid": "qa-message-rate-up", "aria-label": "\u041D\u0440\u0430\u0432\u0438\u0442\u0441\u044F", title: "\u041D\u0440\u0430\u0432\u0438\u0442\u0441\u044F", "aria-pressed": rating === "up", "data-active": rating === "up" || undefined, onClick: () => toggleRating("up"), children: _jsx("svg", { viewBox: "0 0 18 18", "aria-hidden": "true", children: _jsx("path", { d: "M5.25 8.25 8.1 2.9a1.3 1.3 0 0 1 2.4.75v3.1h3.1c.9 0 1.55.85 1.33 1.72l-1.05 4.2a1.75 1.75 0 0 1-1.7 1.33H5.25m0-5.75v5.75m0-5.75h-2v5.75h2" }) }) }), _jsx("button", { type: "button", "data-testid": "qa-message-rate-down", "aria-label": "\u041D\u0435 \u043D\u0440\u0430\u0432\u0438\u0442\u0441\u044F", title: "\u041D\u0435 \u043D\u0440\u0430\u0432\u0438\u0442\u0441\u044F", "aria-pressed": rating === "down", "data-active": rating === "down" || undefined, onClick: () => toggleRating("down"), children: _jsx("svg", { viewBox: "0 0 18 18", "aria-hidden": "true", children: _jsx("path", { d: "M12.75 9.75 9.9 15.1a1.3 1.3 0 0 1-2.4-.75v-3.1H4.4a1.38 1.38 0 0 1-1.33-1.72l1.05-4.2A1.75 1.75 0 0 1 5.82 4h6.93m0 5.75V4m0 5.75h2V4h-2" }) }) }), onRegenerate === undefined ? null : (_jsx("button", { type: "button", "data-testid": "qa-message-regenerate", "aria-label": "\u041F\u0435\u0440\u0435\u0433\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C", title: "\u041F\u0435\u0440\u0435\u0433\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C", onClick: onRegenerate, children: _jsx("svg", { viewBox: "0 0 18 18", "aria-hidden": "true", children: _jsx("path", { d: "M14.6 9A5.6 5.6 0 1 1 12.9 5l1.7 1.7m0-3.4v3.4h-3.4" }) }) }))] })), message.role === "user" ? null : meta] })) : null, askingWhy ? (_jsx(FeedbackReasonForm, { onSubmit: (reasons, comment) => {
327
+ message.sources.length > 0 ? (_jsxs("button", { type: "button", className: "dsh-qa-message__sources", "data-testid": "qa-message-sources", onClick: () => onOpenSources(message.sources ?? [], message.sourcesComplete ?? true, message.incompleteSourceOrigins), children: ["\u0418\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0438 (", message.sources.length, ")"] })) : null, message.role === "assistant" && message.review !== undefined ? (_jsx(QaAnswerReviewStatus, { review: message.review })) : null, showActions ? (_jsxs("div", { className: "dsh-qa-message__actions", "data-testid": "qa-message-actions", "data-persistent": persistentMeta || undefined, children: [message.role === "user" ? meta : null, copyImpossible ? (_jsx(CopyHint, { testId: "qa-message-copy-hint" })) : (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", "data-testid": "qa-message-copy", "aria-label": copied ? "Скопировано" : "Скопировать сообщение", title: copied ? "Скопировано" : "Копировать", onClick: copy, children: copied ? (_jsx("svg", { viewBox: "0 0 18 18", "aria-hidden": "true", children: _jsx("path", { d: "m4.5 9.25 2.75 2.75 6.25-6.25" }) })) : (_jsxs("svg", { viewBox: "0 0 18 18", "aria-hidden": "true", children: [_jsx("rect", { x: "6.25", y: "3.25", width: "8.5", height: "8.5", rx: "2" }), _jsx("path", { d: "M11.75 11.75v.5a2.5 2.5 0 0 1-2.5 2.5h-3.5a2.5 2.5 0 0 1-2.5-2.5v-3.5a2.5 2.5 0 0 1 2.5-2.5h.5" })] })) }), copyRefused ? (_jsx(CopyHint, { testId: "qa-message-copy-hint" })) : null] })), message.role === "user" ? null : (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", "data-testid": "qa-message-rate-up", "aria-label": "\u041D\u0440\u0430\u0432\u0438\u0442\u0441\u044F", title: "\u041D\u0440\u0430\u0432\u0438\u0442\u0441\u044F", "aria-pressed": rating === "up", "data-active": rating === "up" || undefined, onClick: () => toggleRating("up"), children: _jsx("svg", { viewBox: "0 0 18 18", "aria-hidden": "true", children: _jsx("path", { d: "M5.25 8.25 8.1 2.9a1.3 1.3 0 0 1 2.4.75v3.1h3.1c.9 0 1.55.85 1.33 1.72l-1.05 4.2a1.75 1.75 0 0 1-1.7 1.33H5.25m0-5.75v5.75m0-5.75h-2v5.75h2" }) }) }), _jsx("button", { type: "button", "data-testid": "qa-message-rate-down", "aria-label": "\u041D\u0435 \u043D\u0440\u0430\u0432\u0438\u0442\u0441\u044F", title: "\u041D\u0435 \u043D\u0440\u0430\u0432\u0438\u0442\u0441\u044F", "aria-pressed": rating === "down", "data-active": rating === "down" || undefined, onClick: () => toggleRating("down"), children: _jsx("svg", { viewBox: "0 0 18 18", "aria-hidden": "true", children: _jsx("path", { d: "M12.75 9.75 9.9 15.1a1.3 1.3 0 0 1-2.4-.75v-3.1H4.4a1.38 1.38 0 0 1-1.33-1.72l1.05-4.2A1.75 1.75 0 0 1 5.82 4h6.93m0 5.75V4m0 5.75h2V4h-2" }) }) }), onFork !== undefined &&
328
+ message.role === "assistant" &&
329
+ message.status === "committed" &&
330
+ message.forkable === true &&
331
+ message.seq !== undefined ? (_jsx("button", { type: "button", "data-testid": "qa-message-fork", "aria-label": "\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0432 \u043D\u043E\u0432\u043E\u043C \u0447\u0430\u0442\u0435", title: "\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0432 \u043D\u043E\u0432\u043E\u043C \u0447\u0430\u0442\u0435", disabled: forking, "aria-busy": forking || undefined, onClick: () => {
332
+ setForking(true);
333
+ void onFork(message.seq).finally(() => setForking(false));
334
+ }, children: _jsxs("svg", { viewBox: "0 0 18 18", "aria-hidden": "true", children: [_jsx("path", { d: "M5 3.5v11m0-7h4a4 4 0 0 0 4-4m-2.5 2L13 3l2.5 2.5" }), _jsx("circle", { cx: "5", cy: "14.5", r: "1.5" })] }) })) : null, onRegenerate === undefined ? null : (_jsx("button", { type: "button", "data-testid": "qa-message-regenerate", "aria-label": "\u041F\u0435\u0440\u0435\u0433\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C", title: "\u041F\u0435\u0440\u0435\u0433\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C", onClick: onRegenerate, children: _jsx("svg", { viewBox: "0 0 18 18", "aria-hidden": "true", children: _jsx("path", { d: "M14.6 9A5.6 5.6 0 1 1 12.9 5l1.7 1.7m0-3.4v3.4h-3.4" }) }) }))] })), message.role === "user" ? null : meta] })) : null, askingWhy ? (_jsx(FeedbackReasonForm, { onSubmit: (reasons, comment) => {
307
335
  setAskingWhy(false);
308
336
  persist("down", {
309
337
  ...(reasons.length === 0 ? {} : { reasons }),
@@ -317,10 +345,13 @@ export const QaMessage = memo(function QaMessage({ message, renderMarkdown, show
317
345
  prev.showTimestamp === next.showTimestamp &&
318
346
  prev.stateKey === next.stateKey &&
319
347
  prev.onRegenerate === next.onRegenerate &&
348
+ prev.onFork === next.onFork &&
320
349
  prev.resolveImage === next.resolveImage &&
321
350
  prev.onOpenSources === next.onOpenSources &&
322
351
  prev.onSourceDetail === next.onSourceDetail &&
323
352
  prev.onArtifactOpen === next.onArtifactOpen &&
353
+ prev.onAttachmentOpen === next.onAttachmentOpen &&
354
+ prev.onArtifactApprove === next.onArtifactApprove &&
324
355
  prev.onArtifactDownload === next.onArtifactDownload &&
325
356
  prev.thinkingPhrases === next.thinkingPhrases &&
326
357
  sameMessage(prev.message, next.message));