@yadsh/dsh-qa-surface 0.16.0 → 0.18.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 (325) hide show
  1. package/README.md +34 -5
  2. package/compatibility.json +1 -1
  3. package/lib/account-remotes.js +13 -0
  4. package/lib/account-remotes.js.map +1 -1
  5. package/lib/accounts/database.js +120 -4
  6. package/lib/accounts/database.js.map +1 -1
  7. package/lib/accounts/file.js.map +1 -1
  8. package/lib/accounts/store.js +131 -5
  9. package/lib/accounts/store.js.map +1 -1
  10. package/lib/accounts/token.js +8 -2
  11. package/lib/accounts/token.js.map +1 -1
  12. package/lib/admin/metrics.js +15 -2
  13. package/lib/admin/metrics.js.map +1 -1
  14. package/lib/admin/read-budget.js +28 -0
  15. package/lib/admin/read-budget.js.map +1 -0
  16. package/lib/admin/service.js +135 -40
  17. package/lib/admin/service.js.map +1 -1
  18. package/lib/admin/session-log.js +63 -4
  19. package/lib/admin/session-log.js.map +1 -1
  20. package/lib/chat-sharing/native-fence.js +31 -2
  21. package/lib/chat-sharing/native-fence.js.map +1 -1
  22. package/lib/chat-sharing/store.js +9 -3
  23. package/lib/chat-sharing/store.js.map +1 -1
  24. package/lib/chat-sharing/transport.js +74 -13
  25. package/lib/chat-sharing/transport.js.map +1 -1
  26. package/lib/chat-sharing/uploads.js +79 -6
  27. package/lib/chat-sharing/uploads.js.map +1 -1
  28. package/lib/cli.js +13 -0
  29. package/lib/cli.js.map +1 -1
  30. package/lib/client/QaAccountsController.js +79 -0
  31. package/lib/client/QaAccountsController.js.map +1 -1
  32. package/lib/client/QaRouteController.js +3 -1
  33. package/lib/client/QaRouteController.js.map +1 -1
  34. package/lib/client/QaSessionController.js +102 -29
  35. package/lib/client/QaSessionController.js.map +1 -1
  36. package/lib/client/QaSurface.js +89 -19
  37. package/lib/client/QaSurface.js.map +1 -1
  38. package/lib/client/QaTranscriptAdapter.js +15 -2
  39. package/lib/client/QaTranscriptAdapter.js.map +1 -1
  40. package/lib/client/account-sessions.js +74 -8
  41. package/lib/client/account-sessions.js.map +1 -1
  42. package/lib/client/admin/CapabilityPicker.js +50 -0
  43. package/lib/client/admin/CapabilityPicker.js.map +1 -0
  44. package/lib/client/admin/CoverageNotice.js +9 -0
  45. package/lib/client/admin/CoverageNotice.js.map +1 -0
  46. package/lib/client/admin/QaAdmin.js +3 -150
  47. package/lib/client/admin/QaAdmin.js.map +1 -1
  48. package/lib/client/admin/RoleEditor.js +46 -0
  49. package/lib/client/admin/RoleEditor.js.map +1 -0
  50. package/lib/client/admin/capability-selection.js +63 -0
  51. package/lib/client/admin/capability-selection.js.map +1 -0
  52. package/lib/client/admin/pages/Conversations.js +35 -17
  53. package/lib/client/admin/pages/Conversations.js.map +1 -1
  54. package/lib/client/admin/pages/Overview.js +3 -2
  55. package/lib/client/admin/pages/Overview.js.map +1 -1
  56. package/lib/client/admin/pages/Quality.js +77 -20
  57. package/lib/client/admin/pages/Quality.js.map +1 -1
  58. package/lib/client/admin/pages/SkillFiles.js +14 -3
  59. package/lib/client/admin/pages/SkillFiles.js.map +1 -1
  60. package/lib/client/admin/shared.js +68 -3
  61. package/lib/client/admin/shared.js.map +1 -1
  62. package/lib/client/answer-review.js +89 -0
  63. package/lib/client/answer-review.js.map +1 -0
  64. package/lib/client/chat-artifacts.js +1 -0
  65. package/lib/client/chat-artifacts.js.map +1 -1
  66. package/lib/client/components/QaAnswerReviewStatus.js +45 -0
  67. package/lib/client/components/QaAnswerReviewStatus.js.map +1 -0
  68. package/lib/client/components/QaAuthGate.js +31 -28
  69. package/lib/client/components/QaAuthGate.js.map +1 -1
  70. package/lib/client/components/QaChangelog.js +79 -0
  71. package/lib/client/components/QaChangelog.js.map +1 -1
  72. package/lib/client/components/QaChatActions.js +52 -0
  73. package/lib/client/components/QaChatActions.js.map +1 -0
  74. package/lib/client/components/QaChatSharing.js +22 -19
  75. package/lib/client/components/QaChatSharing.js.map +1 -1
  76. package/lib/client/components/QaComposer.js +27 -4
  77. package/lib/client/components/QaComposer.js.map +1 -1
  78. package/lib/client/components/QaFormItem.js +63 -0
  79. package/lib/client/components/QaFormItem.js.map +1 -0
  80. package/lib/client/components/QaInputForm.js +281 -0
  81. package/lib/client/components/QaInputForm.js.map +1 -0
  82. package/lib/client/components/QaMarkdownPreview.js +86 -0
  83. package/lib/client/components/QaMarkdownPreview.js.map +1 -0
  84. package/lib/client/components/QaMessage.js +8 -2
  85. package/lib/client/components/QaMessage.js.map +1 -1
  86. package/lib/client/components/QaModal.js +34 -4
  87. package/lib/client/components/QaModal.js.map +1 -1
  88. package/lib/client/components/QaRightRail.js +6 -4
  89. package/lib/client/components/QaRightRail.js.map +1 -1
  90. package/lib/client/components/QaRightRailResize.js +129 -0
  91. package/lib/client/components/QaRightRailResize.js.map +1 -0
  92. package/lib/client/components/QaSidebar.js +10 -1
  93. package/lib/client/components/QaSidebar.js.map +1 -1
  94. package/lib/client/components/QaSourceFilters.js +22 -0
  95. package/lib/client/components/QaSourceFilters.js.map +1 -0
  96. package/lib/client/components/QaSourcesPanel.js +57 -13
  97. package/lib/client/components/QaSourcesPanel.js.map +1 -1
  98. package/lib/client/components/QaSpreadsheetPreview.js +56 -0
  99. package/lib/client/components/QaSpreadsheetPreview.js.map +1 -0
  100. package/lib/client/components/QaWelcomeNotice.js +2 -2
  101. package/lib/client/components/QaWelcomeNotice.js.map +1 -1
  102. package/lib/client/components/QaWorkspaceBrowser.js +22 -9
  103. package/lib/client/components/QaWorkspaceBrowser.js.map +1 -1
  104. package/lib/client/components/QaZoomImage.js +56 -0
  105. package/lib/client/components/QaZoomImage.js.map +1 -0
  106. package/lib/client/components/source-refs.js +18 -4
  107. package/lib/client/components/source-refs.js.map +1 -1
  108. package/lib/client/forms-styles.js +14 -0
  109. package/lib/client/forms-styles.js.map +1 -0
  110. package/lib/client/forms.js +40 -0
  111. package/lib/client/forms.js.map +1 -0
  112. package/lib/client/index.js +31 -3
  113. package/lib/client/index.js.map +1 -1
  114. package/lib/client/markdown/SourceImage.js +52 -0
  115. package/lib/client/markdown/SourceImage.js.map +1 -0
  116. package/lib/client/markdown/blocks.js +150 -115
  117. package/lib/client/markdown/blocks.js.map +1 -1
  118. package/lib/client/markdown/render.js +23 -5
  119. package/lib/client/markdown/render.js.map +1 -1
  120. package/lib/client/markdown/source-chip.js +2 -1
  121. package/lib/client/markdown/source-chip.js.map +1 -1
  122. package/lib/client/oidc-browser.js +39 -0
  123. package/lib/client/oidc-browser.js.map +1 -0
  124. package/lib/client/panels/PanelHost.js +23 -1
  125. package/lib/client/panels/PanelHost.js.map +1 -1
  126. package/lib/client/settings/sections/interface.js +2 -1
  127. package/lib/client/settings/sections/interface.js.map +1 -1
  128. package/lib/client/settings/sections/sources.js +1 -1
  129. package/lib/client/settings/sections/sources.js.map +1 -1
  130. package/lib/client/settings/sections/status.js +3 -1
  131. package/lib/client/settings/sections/status.js.map +1 -1
  132. package/lib/client/settings/styles.js +18 -28
  133. package/lib/client/settings/styles.js.map +1 -1
  134. package/lib/client/source-filters-styles.js +11 -0
  135. package/lib/client/source-filters-styles.js.map +1 -0
  136. package/lib/client/styles.js +56 -5
  137. package/lib/client/styles.js.map +1 -1
  138. package/lib/client/types.js.map +1 -1
  139. package/lib/client/use-right-rail.js +1 -1
  140. package/lib/client/use-right-rail.js.map +1 -1
  141. package/lib/client/user-settings/IntegrationTokensPage.js +30 -6
  142. package/lib/client/user-settings/IntegrationTokensPage.js.map +1 -1
  143. package/lib/client.js +540 -71128
  144. package/lib/client.js.map +1 -1
  145. package/lib/config-resolvers/accounts.js +5 -4
  146. package/lib/config-resolvers/accounts.js.map +1 -1
  147. package/lib/config-resolvers/defaults.js +20 -3
  148. package/lib/config-resolvers/defaults.js.map +1 -1
  149. package/lib/config-resolvers/oidc.js +53 -0
  150. package/lib/config-resolvers/oidc.js.map +1 -0
  151. package/lib/config-resolvers/sources.js +2 -0
  152. package/lib/config-resolvers/sources.js.map +1 -1
  153. package/lib/config.js +74 -0
  154. package/lib/config.js.map +1 -1
  155. package/lib/forms/attachments.js +214 -0
  156. package/lib/forms/attachments.js.map +1 -0
  157. package/lib/forms/errors.js +37 -0
  158. package/lib/forms/errors.js.map +1 -0
  159. package/lib/forms/fingerprint.js +21 -0
  160. package/lib/forms/fingerprint.js.map +1 -0
  161. package/lib/forms/gate.js +125 -0
  162. package/lib/forms/gate.js.map +1 -0
  163. package/lib/forms/schema.js +182 -0
  164. package/lib/forms/schema.js.map +1 -0
  165. package/lib/forms/service.js +220 -0
  166. package/lib/forms/service.js.map +1 -0
  167. package/lib/forms/store.js +194 -0
  168. package/lib/forms/store.js.map +1 -0
  169. package/lib/forms/types.js +2 -0
  170. package/lib/forms/types.js.map +1 -0
  171. package/lib/forms/validation.js +113 -0
  172. package/lib/forms/validation.js.map +1 -0
  173. package/lib/index.js +276 -5
  174. package/lib/index.js.map +1 -1
  175. package/lib/integration/host-runner.js +1 -0
  176. package/lib/integration/host-runner.js.map +1 -1
  177. package/lib/integration/question-policy.js +126 -0
  178. package/lib/integration/question-policy.js.map +1 -0
  179. package/lib/integration/service.js +2 -0
  180. package/lib/integration/service.js.map +1 -1
  181. package/lib/llm-identity.js +27 -0
  182. package/lib/llm-identity.js.map +1 -0
  183. package/lib/markdown-frontmatter.js +47 -0
  184. package/lib/markdown-frontmatter.js.map +1 -0
  185. package/lib/markdown-images.js +33 -0
  186. package/lib/markdown-images.js.map +1 -0
  187. package/lib/oidc/http.js +30 -0
  188. package/lib/oidc/http.js.map +1 -0
  189. package/lib/oidc/service.js +250 -0
  190. package/lib/oidc/service.js.map +1 -0
  191. package/lib/prompt-notes.js +1 -1
  192. package/lib/prompt-notes.js.map +1 -1
  193. package/lib/provenance/collector.js +2 -0
  194. package/lib/provenance/collector.js.map +1 -1
  195. package/lib/provenance/connectors.js +25 -19
  196. package/lib/provenance/connectors.js.map +1 -1
  197. package/lib/provenance/dedupe.js +17 -0
  198. package/lib/provenance/dedupe.js.map +1 -1
  199. package/lib/provenance/document-preview.js +12 -2
  200. package/lib/provenance/document-preview.js.map +1 -1
  201. package/lib/provenance/extractors.js +23 -5
  202. package/lib/provenance/extractors.js.map +1 -1
  203. package/lib/provenance/file-preview.js +9 -2
  204. package/lib/provenance/file-preview.js.map +1 -1
  205. package/lib/provenance/integration-extractor.js +5 -6
  206. package/lib/provenance/integration-extractor.js.map +1 -1
  207. package/lib/provenance/snapshot-store.js +2 -0
  208. package/lib/provenance/snapshot-store.js.map +1 -1
  209. package/lib/provenance/source-content.js +103 -0
  210. package/lib/provenance/source-content.js.map +1 -0
  211. package/lib/provenance/source-image.js +57 -0
  212. package/lib/provenance/source-image.js.map +1 -0
  213. package/lib/provenance/spreadsheet-preview.js +52 -0
  214. package/lib/provenance/spreadsheet-preview.js.map +1 -0
  215. package/lib/qa-tools/activation-manager.js +24 -2
  216. package/lib/qa-tools/activation-manager.js.map +1 -1
  217. package/lib/qa-tools/catalog.js +11 -1
  218. package/lib/qa-tools/catalog.js.map +1 -1
  219. package/lib/qa-tools/index.js +27 -0
  220. package/lib/qa-tools/index.js.map +1 -1
  221. package/lib/qa-tools/request-user-form.js +121 -0
  222. package/lib/qa-tools/request-user-form.js.map +1 -0
  223. package/lib/questions.js +6 -1
  224. package/lib/questions.js.map +1 -1
  225. package/lib/resolve-config.js +2 -0
  226. package/lib/resolve-config.js.map +1 -1
  227. package/lib/secure-session.js +14 -8
  228. package/lib/secure-session.js.map +1 -1
  229. package/lib/shared/documents.js +12 -0
  230. package/lib/shared/documents.js.map +1 -1
  231. package/lib/typert.host.js +5136 -1341
  232. package/lib/typert.remote-client.d.ts +141 -7
  233. package/lib/typert.remote-client.js +5896 -2255
  234. package/lib/types/account-remotes.d.ts +3 -0
  235. package/lib/types/accounts/database.d.ts +13 -0
  236. package/lib/types/accounts/file.d.ts +2 -0
  237. package/lib/types/accounts/store.d.ts +23 -1
  238. package/lib/types/accounts/token.d.ts +3 -1
  239. package/lib/types/admin/metrics.d.ts +5 -1
  240. package/lib/types/admin/read-budget.d.ts +8 -0
  241. package/lib/types/admin/service.d.ts +17 -0
  242. package/lib/types/admin/session-log.d.ts +30 -1
  243. package/lib/types/answer-review.js +2 -0
  244. package/lib/types/answer-review.js.map +1 -0
  245. package/lib/types/chat-sharing/store.d.ts +1 -0
  246. package/lib/types/chat-sharing/transport.d.ts +1 -0
  247. package/lib/types/chat-sharing/uploads.d.ts +2 -1
  248. package/lib/types/client/QaAccountsController.d.ts +5 -0
  249. package/lib/types/client/QaRouteController.d.ts +1 -0
  250. package/lib/types/client/QaSessionController.d.ts +12 -3
  251. package/lib/types/client/QaSurface.d.ts +2 -0
  252. package/lib/types/client/admin/CapabilityPicker.d.ts +14 -0
  253. package/lib/types/client/admin/CoverageNotice.d.ts +6 -0
  254. package/lib/types/client/admin/RoleEditor.d.ts +15 -0
  255. package/lib/types/client/admin/capability-selection.d.ts +27 -0
  256. package/lib/types/client/admin/shared.d.ts +39 -1
  257. package/lib/types/client/answer-review.d.ts +16 -0
  258. package/lib/types/client/components/QaAnswerReviewStatus.d.ts +8 -0
  259. package/lib/types/client/components/QaAuthGate.d.ts +2 -0
  260. package/lib/types/client/components/QaChatActions.d.ts +7 -0
  261. package/lib/types/client/components/QaChatSharing.d.ts +4 -2
  262. package/lib/types/client/components/QaFormItem.d.ts +20 -0
  263. package/lib/types/client/components/QaInputForm.d.ts +18 -0
  264. package/lib/types/client/components/QaMarkdownPreview.d.ts +13 -0
  265. package/lib/types/client/components/QaModal.d.ts +9 -0
  266. package/lib/types/client/components/QaRightRail.d.ts +3 -2
  267. package/lib/types/client/components/QaRightRailResize.d.ts +9 -0
  268. package/lib/types/client/components/QaSidebar.d.ts +2 -0
  269. package/lib/types/client/components/QaSourceFilters.d.ts +12 -0
  270. package/lib/types/client/components/QaSpreadsheetPreview.d.ts +8 -0
  271. package/lib/types/client/components/QaWelcomeNotice.d.ts +1 -1
  272. package/lib/types/client/components/QaZoomImage.d.ts +38 -0
  273. package/lib/types/client/forms-styles.d.ts +2 -0
  274. package/lib/types/client/forms.d.ts +23 -0
  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/oidc-browser.d.ts +12 -0
  280. package/lib/types/client/settings/styles.d.ts +2 -5
  281. package/lib/types/client/source-filters-styles.d.ts +2 -0
  282. package/lib/types/client/types.d.ts +18 -6
  283. package/lib/types/config-resolvers/oidc.d.ts +3 -0
  284. package/lib/types/forms/attachments.d.ts +48 -0
  285. package/lib/types/forms/errors.d.ts +11 -0
  286. package/lib/types/forms/fingerprint.d.ts +9 -0
  287. package/lib/types/forms/gate.d.ts +33 -0
  288. package/lib/types/forms/schema.d.ts +72 -0
  289. package/lib/types/forms/service.d.ts +15 -0
  290. package/lib/types/forms/store.d.ts +25 -0
  291. package/lib/types/forms/types.d.ts +215 -0
  292. package/lib/types/forms/validation.d.ts +20 -0
  293. package/lib/types/index.d.ts +36 -3
  294. package/lib/types/integration/contract.d.ts +1 -0
  295. package/lib/types/integration/question-policy.d.ts +20 -0
  296. package/lib/types/integration/service.d.ts +1 -0
  297. package/lib/types/llm-identity.d.ts +20 -0
  298. package/lib/types/markdown-frontmatter.d.ts +10 -0
  299. package/lib/types/markdown-images.d.ts +3 -0
  300. package/lib/types/oidc/http.d.ts +5 -0
  301. package/lib/types/oidc/service.d.ts +30 -0
  302. package/lib/types/oidc.js +2 -0
  303. package/lib/types/oidc.js.map +1 -0
  304. package/lib/types/prompt-notes.d.ts +1 -1
  305. package/lib/types/provenance/document-preview.d.ts +3 -2
  306. package/lib/types/provenance/file-preview.d.ts +2 -1
  307. package/lib/types/provenance/source-content.d.ts +19 -0
  308. package/lib/types/provenance/source-image.d.ts +4 -0
  309. package/lib/types/provenance/spreadsheet-preview.d.ts +5 -0
  310. package/lib/types/provenance/types.d.ts +3 -0
  311. package/lib/types/qa-tools/activation-manager.d.ts +5 -0
  312. package/lib/types/qa-tools/catalog.d.ts +4 -1
  313. package/lib/types/qa-tools/index.d.ts +5 -1
  314. package/lib/types/qa-tools/request-user-form.d.ts +5 -0
  315. package/lib/types/questions.d.ts +2 -1
  316. package/lib/types/secure-session.d.ts +1 -0
  317. package/lib/types/shared/documents.d.ts +2 -0
  318. package/lib/types/types/accounts.d.ts +7 -1
  319. package/lib/types/types/admin.d.ts +6 -0
  320. package/lib/types/types/answer-review.d.ts +11 -0
  321. package/lib/types/types/config.d.ts +9 -0
  322. package/lib/types/types/oidc.d.ts +36 -0
  323. package/lib/types/types/session.d.ts +18 -3
  324. package/lib/types/types.d.ts +3 -0
  325. package/package.json +58 -56
@@ -1 +1 @@
1
- {"version":3,"file":"SkillFiles.js","sourceRoot":"","sources":["../../../../src/client/admin/pages/SkillFiles.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SkillFiles.js","sourceRoot":"","sources":["../../../../src/client/admin/pages/SkillFiles.tsx"],"names":[],"mappings":"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"}
@@ -74,6 +74,60 @@ export function useRequestSlot() {
74
74
  // literal on every render.
75
75
  return useMemo(() => ({ start, cancel }), [start, cancel]);
76
76
  }
77
+ /**
78
+ * How long a page waits for one Host answer before it stops waiting.
79
+ *
80
+ * The aggregate pages read conversation logs on the Host, and a log the store
81
+ * cannot answer for used to leave the request pending forever: the page then sat
82
+ * on «Загружаю…» with nothing to click. The Host bounds its own reads well
83
+ * inside this budget, so hitting it means the answer is lost, not that the
84
+ * deployment is merely slow.
85
+ */
86
+ export const ADMIN_REQUEST_TIMEOUT_MS = 20_000;
87
+ /** The copy a page shows once its deadline has passed. */
88
+ export function adminTimeoutMessage(timeoutMs = ADMIN_REQUEST_TIMEOUT_MS) {
89
+ return `Сервер не ответил за ${Math.round(timeoutMs / 1_000)} с. Нажмите «Обновить», чтобы повторить запрос.`;
90
+ }
91
+ /**
92
+ * Run one Host call under a deadline.
93
+ *
94
+ * A promise that never settles is the shape of the hang this exists for, so the
95
+ * deadline is a race rather than an abort alone: aborting the request is what
96
+ * asks the Host to stop working, and the timer is what lets the page go on
97
+ * without an answer. The abandoned call keeps running on its own; its eventual
98
+ * rejection is observed here so it never surfaces as an unhandled one.
99
+ */
100
+ export async function callWithDeadline(call, outer, timeoutMs = ADMIN_REQUEST_TIMEOUT_MS) {
101
+ if (outer.aborted)
102
+ return { status: "aborted" };
103
+ const inner = new AbortController();
104
+ const forward = () => inner.abort();
105
+ outer.addEventListener("abort", forward, { once: true });
106
+ const pending = call(inner.signal);
107
+ void pending.catch(() => undefined);
108
+ let timer;
109
+ const deadline = new Promise((resolve) => {
110
+ timer = setTimeout(() => {
111
+ inner.abort();
112
+ resolve("deadline");
113
+ }, timeoutMs);
114
+ });
115
+ try {
116
+ const outcome = await Promise.race([
117
+ pending.then((value) => ({ status: "ok", value })),
118
+ deadline,
119
+ ]);
120
+ if (outcome === "deadline") {
121
+ return { status: outer.aborted ? "aborted" : "timeout" };
122
+ }
123
+ return outcome;
124
+ }
125
+ finally {
126
+ if (timer !== undefined)
127
+ clearTimeout(timer);
128
+ outer.removeEventListener("abort", forward);
129
+ }
130
+ }
77
131
  /**
78
132
  * Load one administrative resource, keeping the previous value visible while
79
133
  * it refreshes. Reviewers page through lists while new conversations arrive;
@@ -81,8 +135,14 @@ export function useRequestSlot() {
81
135
  *
82
136
  * `load` receives the cancellation of the call it is making: pass it on to the
83
137
  * Remote, and a page the reviewer left stops being read on the server.
138
+ *
139
+ * The call is bounded by {@link ADMIN_REQUEST_TIMEOUT_MS}: a Host that does not
140
+ * answer leaves a stated error and a retry instead of an endless «Загружаю…».
141
+ * Whatever this page already held stays on screen — a partial answer is what a
142
+ * reviewer can still work with.
84
143
  */
85
- export function useAdminResource(load, deps) {
144
+ export function useAdminResource(load, deps, options = {}) {
145
+ const timeoutMs = options.timeoutMs ?? ADMIN_REQUEST_TIMEOUT_MS;
86
146
  const [data, setData] = useState();
87
147
  const [error, setError] = useState();
88
148
  const [loading, setLoading] = useState(true);
@@ -95,11 +155,16 @@ export function useAdminResource(load, deps) {
95
155
  const controller = request.start();
96
156
  setLoading(true);
97
157
  try {
98
- const result = await load(controller.signal);
158
+ const outcome = await callWithDeadline(load, controller.signal, timeoutMs);
99
159
  // A call this page abandoned has no answer worth showing: writing it
100
160
  // anyway is how a stale scan replaced whatever the reviewer opened next.
101
- if (controller.signal.aborted)
161
+ if (controller.signal.aborted || outcome.status === "aborted")
162
+ return;
163
+ if (outcome.status === "timeout") {
164
+ setError(adminTimeoutMessage(timeoutMs));
102
165
  return;
166
+ }
167
+ const result = outcome.value;
103
168
  if (result.ok) {
104
169
  setData(result.value);
105
170
  setError(undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/client/admin/shared.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/client/admin/shared.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ export const QA_REVIEW_NODE = "qa-answer-review";
2
+ const statuses = new Set([
3
+ "reviewing",
4
+ "recovering",
5
+ "pass",
6
+ "revise",
7
+ "failure",
8
+ "cancelled",
9
+ "waived",
10
+ ]);
11
+ const sequence = (value) => typeof value === "number" && Number.isSafeInteger(value) && value >= 0;
12
+ /** Read only the gate's producer metadata; answer prose never supplies a verdict. */
13
+ export function readAnswerReview(event) {
14
+ if (event.type !== "user/message")
15
+ return null;
16
+ const source = event.data?.source;
17
+ if (source?.kind !== "answer-review-status" ||
18
+ source.receipt === null ||
19
+ typeof source.receipt !== "object")
20
+ return null;
21
+ return parseAnswerReview(source.receipt);
22
+ }
23
+ export function parseAnswerReview(receipt) {
24
+ if (receipt === null || typeof receipt !== "object")
25
+ return null;
26
+ const value = receipt;
27
+ if (value.version !== 1 ||
28
+ !sequence(value.candidateSeq) ||
29
+ !(value.requestSeq === null || sequence(value.requestSeq)) ||
30
+ typeof value.candidateHash !== "string" ||
31
+ !/^[a-f0-9]{64}$/u.test(value.candidateHash) ||
32
+ !sequence(value.round) ||
33
+ typeof value.at !== "number" ||
34
+ !Number.isFinite(value.at) ||
35
+ value.at < 0 ||
36
+ typeof value.status !== "string" ||
37
+ !statuses.has(value.status))
38
+ return null;
39
+ return value;
40
+ }
41
+ function requireReview(event) {
42
+ const value = readAnswerReview(event);
43
+ if (value === null)
44
+ throw new Error("Invalid answer review receipt");
45
+ return value;
46
+ }
47
+ /** One current result per human request, with the latest answer's anchor. */
48
+ export const answerReviewConversationDefinition = {
49
+ kind: QA_REVIEW_NODE,
50
+ target: "chat",
51
+ match(event) {
52
+ const receipt = readAnswerReview(event);
53
+ return receipt === null
54
+ ? null
55
+ : {
56
+ id: String(receipt.requestSeq ?? receipt.candidateSeq),
57
+ role: "start",
58
+ };
59
+ },
60
+ start: (_context, match) => requireReview(match.event),
61
+ update: (_context, match) => requireReview(match.event),
62
+ buildViewNode(context) {
63
+ if (context.state === undefined)
64
+ return null;
65
+ const anchor = context.matches.at(-1);
66
+ return {
67
+ key: context.key,
68
+ id: context.id,
69
+ kind: QA_REVIEW_NODE,
70
+ target: "chat",
71
+ anchorSeq: anchor?.event.seq ?? 0,
72
+ location: anchor?.location ?? { kind: "unresolved" },
73
+ visibility: "visible",
74
+ data: context.state,
75
+ };
76
+ },
77
+ };
78
+ export function answerReviewsOf(snapshot) {
79
+ const receipts = new Map();
80
+ for (const node of snapshot?.views.get("chat")?.nodes?.values() ?? []) {
81
+ if (node.kind === QA_REVIEW_NODE) {
82
+ const receipt = parseAnswerReview(node.data);
83
+ if (receipt !== null)
84
+ receipts.set(receipt.candidateSeq, receipt);
85
+ }
86
+ }
87
+ return receipts;
88
+ }
89
+ //# sourceMappingURL=answer-review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"answer-review.js","sourceRoot":"","sources":["../../src/client/answer-review.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAQjD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;IACvB,WAAW;IACX,YAAY;IACZ,MAAM;IACN,QAAQ;IACR,SAAS;IACT,WAAW;IACX,QAAQ;CACT,CAAC,CAAC;AACH,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAmB,EAAE,CACnD,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAEzE,qFAAqF;AACrF,MAAM,UAAU,gBAAgB,CAC9B,KAAuB;IAEvB,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,MAAM,GACV,KAAK,CAAC,IACP,EAAE,MAAM,CAAC;IACV,IACE,MAAM,EAAE,IAAI,KAAK,sBAAsB;QACvC,MAAM,CAAC,OAAO,KAAK,IAAI;QACvB,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;QAElC,OAAO,IAAI,CAAC;IACd,OAAO,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjE,MAAM,KAAK,GAAG,OAAkC,CAAC;IACjD,IACE,KAAK,CAAC,OAAO,KAAK,CAAC;QACnB,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;QAC7B,CAAC,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC1D,OAAO,KAAK,CAAC,aAAa,KAAK,QAAQ;QACvC,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;QAC5C,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;QACtB,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ;QAC5B,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,EAAE,GAAG,CAAC;QACZ,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;QAChC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;QAE3B,OAAO,IAAI,CAAC;IACd,OAAO,KAAuB,CAAC;AACjC,CAAC;AAED,SAAS,aAAa,CAAC,KAAuB;IAC5C,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,KAAK,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACrE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,6EAA6E;AAC7E,MAAM,CAAC,MAAM,kCAAkC,GAC7C;IACE,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE,MAAM;IACd,KAAK,CAAC,KAAK;QACT,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,OAAO,KAAK,IAAI;YACrB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC;gBACE,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,YAAY,CAAC;gBACtD,IAAI,EAAE,OAAO;aACd,CAAC;IACR,CAAC;IACD,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC;IACtD,MAAM,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC;IACvD,aAAa,CAAC,OAAO;QACnB,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,OAAO;YACL,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC;YACjC,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE;YACpD,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,OAAO,CAAC,KAAK;SACpB,CAAC;IACJ,CAAC;CACF,CAAC;AAEJ,MAAM,UAAU,eAAe,CAC7B,QAA0C;IAE1C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;IACnD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;QACtE,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,OAAO,KAAK,IAAI;gBAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -17,6 +17,7 @@
17
17
  /** The tools that hand a file to the user, and the formats each reports. */
18
18
  const PRODUCED_FORMATS = Object.freeze({
19
19
  document_create: ["docx", "pdf"],
20
+ spreadsheet_create: ["xlsx", "csv", "tsv", "ods", "fods"],
20
21
  document_convert: ["docx", "pdf", "md"],
21
22
  document_to_markdown: ["markdown"],
22
23
  document_from_url: ["markdown"],
@@ -1 +1 @@
1
- {"version":3,"file":"chat-artifacts.js","sourceRoot":"","sources":["../../src/client/chat-artifacts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-artifacts.js","sourceRoot":"","sources":["../../src/client/chat-artifacts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ const copy = {
3
+ reviewing: [
4
+ "Проверяем ответ",
5
+ "Идёт независимая проверка этой версии ответа.",
6
+ ],
7
+ recovering: [
8
+ "Повторяем проверку",
9
+ "Проверяющий не передал итог. Выполняется одна повторная проверка того же ответа.",
10
+ ],
11
+ pass: [
12
+ "Ответ проверен",
13
+ "Независимая проверка этой версии ответа прошла. Это актуальный результат проверки.",
14
+ ],
15
+ revise: [
16
+ "Нужны исправления",
17
+ "Независимая проверка нашла замечания к этой версии ответа.",
18
+ ],
19
+ failure: [
20
+ "Проверка не завершена",
21
+ "Получить итог независимой проверки не удалось. Достоверность ответа не подтверждена проверкой.",
22
+ ],
23
+ cancelled: [
24
+ "Проверка остановлена",
25
+ "Проверка остановлена вместе с запросом. Достоверность ответа не подтверждена проверкой.",
26
+ ],
27
+ waived: [
28
+ "Без независимой проверки",
29
+ "Для этого ответа проверка отключена по запросу пользователя.",
30
+ ],
31
+ };
32
+ export function QaAnswerReviewStatus({ review, }) {
33
+ const [label, detail] = copy[review.status];
34
+ return (_jsxs("span", { className: "dsh-qa-review", "data-status": review.status, "data-testid": "qa-answer-review", role: "status", title: detail, "aria-label": `${label}. ${detail}`, children: [_jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", focusable: "false", children: review.status === "pass" ? (_jsx("path", { d: "m3 8 3 3 7-7" })) : (_jsxs(_Fragment, { children: [_jsx("circle", { cx: "8", cy: "8", r: "5.5" }), _jsx("path", { d: "M8 4.5V8l2 1.5" })] })) }), label] }));
35
+ }
36
+ export function QaNativeAnswerReviewStatus({ node, }) {
37
+ return (_jsx("div", { className: "dsh-qa-review-row", children: _jsx(QaAnswerReviewStatus, { review: node.data }) }));
38
+ }
39
+ export const QA_REVIEW_STYLES = `
40
+ .dsh-qa-review-row{padding:4px 0 12px}
41
+ .dsh-qa-review{display:inline-flex;align-items:center;gap:6px;max-width:100%;margin:8px 0 0;padding:4px 9px;border:1px solid var(--dsw-alias-border-l2);border-radius:999px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-2);font-size:12px;line-height:18px}
42
+ .dsh-qa-review svg{width:14px;height:14px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
43
+ .dsh-qa-review[data-status=pass]{color:var(--dsw-alias-state-success-primary,var(--dsw-alias-label-primary))}
44
+ `;
45
+ //# sourceMappingURL=QaAnswerReviewStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QaAnswerReviewStatus.js","sourceRoot":"","sources":["../../../src/client/components/QaAnswerReviewStatus.tsx"],"names":[],"mappings":";AAGA,MAAM,IAAI,GAAgE;IACxE,SAAS,EAAE;QACT,iBAAiB;QACjB,+CAA+C;KAChD;IACD,UAAU,EAAE;QACV,oBAAoB;QACpB,kFAAkF;KACnF;IACD,IAAI,EAAE;QACJ,gBAAgB;QAChB,oFAAoF;KACrF;IACD,MAAM,EAAE;QACN,mBAAmB;QACnB,4DAA4D;KAC7D;IACD,OAAO,EAAE;QACP,uBAAuB;QACvB,gGAAgG;KACjG;IACD,SAAS,EAAE;QACT,sBAAsB;QACtB,yFAAyF;KAC1F;IACD,MAAM,EAAE;QACN,0BAA0B;QAC1B,8DAA8D;KAC/D;CACF,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,EACnC,MAAM,GAGP;IACC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,OAAO,CACL,gBACE,SAAS,EAAC,eAAe,iBACZ,MAAM,CAAC,MAAM,iBACd,kBAAkB,EAC9B,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,MAAM,gBACD,GAAG,KAAK,KAAK,MAAM,EAAE,aAEjC,cAAK,OAAO,EAAC,WAAW,iBAAa,MAAM,EAAC,SAAS,EAAC,OAAO,YAC1D,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAC1B,eAAM,CAAC,EAAC,cAAc,GAAG,CAC1B,CAAC,CAAC,CAAC,CACF,8BACE,iBAAQ,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,KAAK,GAAG,EAChC,eAAM,CAAC,EAAC,gBAAgB,GAAG,IAC1B,CACJ,GACG,EACL,KAAK,IACD,CACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,EACzC,IAAI,GACuD;IAC3D,OAAO,CACL,cAAK,SAAS,EAAC,mBAAmB,YAChC,KAAC,oBAAoB,IAAC,MAAM,EAAE,IAAI,CAAC,IAAI,GAAI,GACvC,CACP,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;CAK/B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState } from "react";
3
3
  import { QA_MIN_PASSWORD_LENGTH, accountsErrorMessage, } from "../QaAccountsController.js";
4
4
  /** The Host's address shape, mirrored so the card refuses before the round trip. */
@@ -31,18 +31,19 @@ export function QaAuthGate(props) {
31
31
  const gate = snapshot.stage === "gate" ? snapshot : undefined;
32
32
  const mode = gate?.mode ?? "login";
33
33
  const busy = gate?.busy ?? false;
34
+ const localLogin = props.localLogin ?? true;
34
35
  const notice = gate?.notice ?? null;
35
36
  const [email, setEmail] = useState("");
36
37
  const [password, setPassword] = useState("");
37
38
  const [refusal, setRefusal] = useState(null);
38
- const showRegister = props.allowRegistration;
39
+ const showRegister = localLogin && props.allowRegistration;
39
40
  // The reset card is the same card with one field: the request only needs an
40
41
  // address, and asking for a password the user does not have would be absurd.
41
42
  const reset = mode === "reset";
42
43
  const error = refusal ?? gate?.error ?? null;
43
44
  const submit = (event) => {
44
45
  event.preventDefault();
45
- if (busy)
46
+ if (busy || !localLogin)
46
47
  return;
47
48
  const next = refusalOf(email, reset ? null : password);
48
49
  setRefusal(next);
@@ -55,31 +56,33 @@ export function QaAuthGate(props) {
55
56
  : accounts.login(email, password);
56
57
  void operation;
57
58
  };
58
- return (_jsx("main", { className: "dsh-qa-surface dsh-qa-auth", "data-testid": "qa-surface-auth", "aria-label": "\u0412\u0445\u043E\u0434 \u0432 \u043F\u043E\u043C\u043E\u0449\u043D\u0438\u043A", children: _jsxs("form", { className: "dsh-qa-auth__card", "data-testid": "qa-surface-auth-card", noValidate: true, onSubmit: submit, children: [_jsxs("div", { className: "dsh-qa-auth__brand", "data-testid": "qa-surface-auth-brand", children: [_jsx(Logo, { logoUrl: props.logoUrl }), _jsx("h1", { "data-testid": "qa-surface-auth-title", children: props.title })] }), reset ? (_jsx("p", { className: "dsh-qa-auth__lead", "data-testid": "qa-surface-auth-lead", children: "\u0423\u043A\u0430\u0436\u0438\u0442\u0435 email: \u0437\u0430\u044F\u0432\u043A\u0443 \u0443\u0432\u0438\u0434\u0438\u0442 \u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u0438 \u0441\u0431\u0440\u043E\u0441\u0438\u0442 \u043F\u0430\u0440\u043E\u043B\u044C. \u041F\u043E\u0447\u0442\u0430 \u0441 \u0441\u0441\u044B\u043B\u043A\u043E\u0439 \u043D\u0430 \u044D\u0442\u043E\u043C \u0441\u0442\u0435\u043D\u0434\u0435 \u043D\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D\u0430." })) : null, showRegister && !reset ? (_jsxs("div", { className: "dsh-qa-auth__tabs", "data-testid": "qa-surface-auth-tabs", role: "tablist", "aria-label": "\u0412\u0445\u043E\u0434 \u0438\u043B\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044F", children: [_jsx("button", { type: "button", role: "tab", "data-testid": "qa-surface-auth-tab-login", "aria-selected": mode === "login", className: mode === "login"
59
- ? "dsh-qa-auth__tab dsh-qa-auth__tab--active"
60
- : "dsh-qa-auth__tab", onClick: () => {
59
+ return (_jsx("main", { className: "dsh-qa-surface dsh-qa-auth", "data-testid": "qa-surface-auth", "aria-label": "\u0412\u0445\u043E\u0434 \u0432 \u043F\u043E\u043C\u043E\u0449\u043D\u0438\u043A", children: _jsxs("form", { className: "dsh-qa-auth__card", "data-testid": "qa-surface-auth-card", noValidate: true, onSubmit: submit, children: [_jsxs("div", { className: "dsh-qa-auth__brand", "data-testid": "qa-surface-auth-brand", children: [_jsx(Logo, { logoUrl: props.logoUrl }), _jsx("h1", { "data-testid": "qa-surface-auth-title", children: props.title })] }), props.oidcLabel ? (_jsx("button", { type: "button", className: "dsh-qa-auth__submit", "data-testid": "qa-surface-auth-oidc", disabled: busy, onClick: () => {
60
+ void accounts.loginOidc();
61
+ }, children: busy ? "Подождите…" : props.oidcLabel })) : null, localLogin ? (_jsxs(_Fragment, { children: [reset ? (_jsx("p", { className: "dsh-qa-auth__lead", "data-testid": "qa-surface-auth-lead", children: "\u0423\u043A\u0430\u0436\u0438\u0442\u0435 email: \u0437\u0430\u044F\u0432\u043A\u0443 \u0443\u0432\u0438\u0434\u0438\u0442 \u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440 \u0438 \u0441\u0431\u0440\u043E\u0441\u0438\u0442 \u043F\u0430\u0440\u043E\u043B\u044C. \u041F\u043E\u0447\u0442\u0430 \u0441 \u0441\u0441\u044B\u043B\u043A\u043E\u0439 \u043D\u0430 \u044D\u0442\u043E\u043C \u0441\u0442\u0435\u043D\u0434\u0435 \u043D\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D\u0430." })) : null, showRegister && !reset ? (_jsxs("div", { className: "dsh-qa-auth__tabs", "data-testid": "qa-surface-auth-tabs", role: "tablist", "aria-label": "\u0412\u0445\u043E\u0434 \u0438\u043B\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044F", children: [_jsx("button", { type: "button", role: "tab", "data-testid": "qa-surface-auth-tab-login", "aria-selected": mode === "login", className: mode === "login"
62
+ ? "dsh-qa-auth__tab dsh-qa-auth__tab--active"
63
+ : "dsh-qa-auth__tab", onClick: () => {
64
+ setRefusal(null);
65
+ accounts.setMode("login");
66
+ }, children: "\u0412\u0445\u043E\u0434" }), _jsx("button", { type: "button", role: "tab", "data-testid": "qa-surface-auth-tab-register", "aria-selected": mode === "register", className: mode === "register"
67
+ ? "dsh-qa-auth__tab dsh-qa-auth__tab--active"
68
+ : "dsh-qa-auth__tab", onClick: () => {
69
+ setRefusal(null);
70
+ accounts.setMode("register");
71
+ }, children: "\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044F" })] })) : null, _jsxs("label", { className: "dsh-qa-auth__field", "data-testid": "qa-surface-auth-email-field", children: [_jsx("span", { children: "Email" }), _jsx("input", { type: "email", name: "email", "data-testid": "qa-surface-auth-email", autoComplete: "email", required: true, disabled: busy, value: email, onChange: (event) => {
72
+ setRefusal(null);
73
+ setEmail(event.currentTarget.value);
74
+ } })] }), reset ? null : (_jsxs("label", { className: "dsh-qa-auth__field", "data-testid": "qa-surface-auth-password-field", children: [_jsx("span", { children: "\u041F\u0430\u0440\u043E\u043B\u044C" }), _jsx("input", { type: "password", name: "password", "data-testid": "qa-surface-auth-password", autoComplete: mode === "register" ? "new-password" : "current-password", required: true, minLength: QA_MIN_PASSWORD_LENGTH, disabled: busy, value: password, onChange: (event) => {
75
+ setRefusal(null);
76
+ setPassword(event.currentTarget.value);
77
+ } })] }))] })) : null, error === null ? null : (_jsx("p", { className: "dsh-qa-auth__error", "data-testid": "qa-surface-auth-error", role: "alert", children: error })), notice === null ? null : (_jsx("p", { className: "dsh-qa-auth__notice", "data-testid": "qa-surface-auth-notice", role: "status", children: notice })), localLogin ? (_jsxs(_Fragment, { children: [_jsx("button", { type: "submit", className: "dsh-qa-auth__submit", "data-testid": "qa-surface-auth-submit", disabled: busy, children: busy
78
+ ? "Подождите…"
79
+ : reset
80
+ ? "Отправить заявку"
81
+ : mode === "register"
82
+ ? "Зарегистрироваться"
83
+ : "Войти" }), _jsx("button", { type: "button", className: "dsh-qa-auth__link", "data-testid": "qa-surface-auth-forgot", disabled: busy, onClick: () => {
61
84
  setRefusal(null);
62
- accounts.setMode("login");
63
- }, children: "\u0412\u0445\u043E\u0434" }), _jsx("button", { type: "button", role: "tab", "data-testid": "qa-surface-auth-tab-register", "aria-selected": mode === "register", className: mode === "register"
64
- ? "dsh-qa-auth__tab dsh-qa-auth__tab--active"
65
- : "dsh-qa-auth__tab", onClick: () => {
66
- setRefusal(null);
67
- accounts.setMode("register");
68
- }, children: "\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044F" })] })) : null, _jsxs("label", { className: "dsh-qa-auth__field", "data-testid": "qa-surface-auth-email-field", children: [_jsx("span", { children: "Email" }), _jsx("input", { type: "email", name: "email", "data-testid": "qa-surface-auth-email", autoComplete: "email", required: true, disabled: busy, value: email, onChange: (event) => {
69
- setRefusal(null);
70
- setEmail(event.currentTarget.value);
71
- } })] }), reset ? null : (_jsxs("label", { className: "dsh-qa-auth__field", "data-testid": "qa-surface-auth-password-field", children: [_jsx("span", { children: "\u041F\u0430\u0440\u043E\u043B\u044C" }), _jsx("input", { type: "password", name: "password", "data-testid": "qa-surface-auth-password", autoComplete: mode === "register" ? "new-password" : "current-password", required: true, minLength: QA_MIN_PASSWORD_LENGTH, disabled: busy, value: password, onChange: (event) => {
72
- setRefusal(null);
73
- setPassword(event.currentTarget.value);
74
- } })] })), error === null ? null : (_jsx("p", { className: "dsh-qa-auth__error", "data-testid": "qa-surface-auth-error", role: "alert", children: error })), notice === null ? null : (_jsx("p", { className: "dsh-qa-auth__notice", "data-testid": "qa-surface-auth-notice", role: "status", children: notice })), _jsx("button", { type: "submit", className: "dsh-qa-auth__submit", "data-testid": "qa-surface-auth-submit", disabled: busy, children: busy
75
- ? "Подождите…"
76
- : reset
77
- ? "Отправить заявку"
78
- : mode === "register"
79
- ? "Зарегистрироваться"
80
- : "Войти" }), _jsx("button", { type: "button", className: "dsh-qa-auth__link", "data-testid": "qa-surface-auth-forgot", disabled: busy, onClick: () => {
81
- setRefusal(null);
82
- accounts.setMode(reset ? "login" : "reset");
83
- }, children: reset ? "Вернуться ко входу" : "Забыли пароль?" })] }) }));
85
+ accounts.setMode(reset ? "login" : "reset");
86
+ }, children: reset ? "Вернуться ко входу" : "Забыли пароль?" })] })) : null] }) }));
84
87
  }
85
88
  //# sourceMappingURL=QaAuthGate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QaAuthGate.js","sourceRoot":"","sources":["../../../src/client/components/QaAuthGate.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QaAuthGate.js","sourceRoot":"","sources":["../../../src/client/components/QaAuthGate.tsx"],"names":[],"mappings":"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"}
@@ -2,6 +2,85 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { QaModal } from "./QaModal.js";
3
3
  export const QA_VERSION = __DSH_QA_VERSION__;
4
4
  export const QA_CHANGELOG = [
5
+ {
6
+ version: "0.18.0",
7
+ date: "2026-10-26",
8
+ sections: [
9
+ {
10
+ title: "Корпоративный вход",
11
+ items: [
12
+ "Вход через OpenID Connect позволяет использовать корпоративную учётную запись. Оператор может связать её с существующим аккаунтом, сохранив чаты и настройки.",
13
+ "Развёртывание может оставить оба способа входа или разрешить только корпоративный. Доступ и роли определяются настройками оператора.",
14
+ ],
15
+ },
16
+ {
17
+ title: "Работа с интерфейсом",
18
+ items: [
19
+ "История версий закрывается по Escape, в том числе при открытой подсказке. Подсказка ввода, номер версии и уведомление под чатом читаются контрастнее. Ошибка открытия чата показывает причину и код обращения; повторное открытие сохраняет вопрос и уже созданный чат.",
20
+ "Новый чат открывается сразу после успешного создания, даже когда обновление истории занимает больше времени. После перезагрузки сохранённый чат открывается после проверки доступа, не ожидая загрузки всей истории. Если открытие прервалось, повторная отправка продолжает тот же чат. При выходе из аккаунта и смене подключения устаревшие ответы истории отбрасываются.",
21
+ "Консоль администратора возвращает данные в пределах общего времени ожидания. Если часть журналов недоступна, обзор и аналитика показывают объём прочитанной выборки, а доля оценённых ответов остаётся недоступной до полного чтения. Кнопка «Обновить» продолжает загрузку. Редактор навыков поясняет, что вкладка «Общие» показывает хранилище навыков QA.",
22
+ "Поля настроек и доступа к чату сохраняют фокус и положение курсора при фоновых обновлениях. Завершение запроса не прерывает ввод в другом поле. В редакторе интеграций можно вводить идентификаторы без повторного клика после каждого символа.",
23
+ ],
24
+ },
25
+ {
26
+ title: "Доступ и данные",
27
+ items: [
28
+ "Загрузка файла без действующего аккаунта или права записи получает ответ об отказе до начала передачи содержимого. Проверки доступа продолжаются во время загрузки и после сохранения файла.",
29
+ "Встроенная панель Browser доступна владельцу чата при включённых QA-аккаунтах. Чтение панели и управление вкладками проверяют владельца до и после проверки политики чата; доступ к общим API Host остаётся закрытым.",
30
+ "Фоновые сводки аудита в истории читают сохранённые данные без запуска агента старого чата. Одинаковое предупреждение о настройке вопросов пишется один раз, пока причина не изменится или не исчезнет; проверки доступа к чату сохраняются.",
31
+ "Оператор может отключить сверку пресета, рабочей папки и модели чата с текущей конфигурацией, сохранив персональные рабочие папки. Проверки владельца, разрешённых инструментов и доступа к файлам продолжают действовать; смена настройки не переносит старые рабочие папки.",
32
+ ],
33
+ },
34
+ {
35
+ title: "Совместимость",
36
+ items: [
37
+ "Пакеты собираются против Host 0.2.1-rc.3 и объявляют поддерживаемый диапазон от 0.1.7-rc.2 до 0.3.0. Проверенной остаётся запись 0.1.7-rc.2: приёмка против нового Host ещё не выполнена, поэтому диапазон говорит о совместимости, а список — о проверенном.",
38
+ ],
39
+ },
40
+ {
41
+ title: "Пошаговый сбор данных",
42
+ items: [
43
+ "При включении оператором ассистент собирает обязательные ответы и файлы через отдельную пошаговую форму. Черновик сохраняется на сервере, а отправить незаполненные обязательные пункты нельзя.",
44
+ "Файлы относятся к конкретному пункту. Замена сохраняет прежнюю версию до проверки новой; отправленные данные фиксируются отдельным снимком. Остановка оставляет черновик и не означает завершённый сбор.",
45
+ ],
46
+ },
47
+ ],
48
+ },
49
+ {
50
+ version: "0.17.0",
51
+ date: "2026-10-14",
52
+ sections: [
53
+ {
54
+ title: "Пользователи и модели",
55
+ items: [
56
+ "Один расширенный провайдер может обслуживать QA-аккаунты с общим API-ключом, передавая DeepSeek отдельную стабильную метку владельца чата для разделения пользователей и KV-кэша. Имена и email в метку не попадают; включение режима настраивается оператором для провайдера.",
57
+ ],
58
+ },
59
+ {
60
+ title: "Обработка данных",
61
+ items: [
62
+ "В источниках доступны фильтр по типу и поиск по названию, тексту и ссылке. Карточка показывает сохранённый текст веб-страницы или записи интеграции; неполный текст отмечается отдельно.",
63
+ "Ассистент с подключённым модулем документов читает и создаёт XLSX, CSV, TSV и OpenDocument (ODS/FODS). Книги с несколькими листами читаются порциями; созданная таблица появляется в чате файлом для скачивания. Панели файлов и источников показывают таблицу с выбором листа и навигацией по строкам и колонкам. Формулы читаются из сохранённого результата без пересчёта, а CSV и TSV сохраняют точное написание полей и явно учитывают разделитель и кодировку.",
64
+ "Интеграционный API по умолчанию ждёт ответ до одного часа. Оператор может изменить этот бюджет в настройках развёртывания.",
65
+ "Девять операторских форм, включая настройки QA Surface, документов, интеграций и авторизованной загрузки, используют общий размер текста, поля и переключатели. Длинные подписи и отметки изменений переносятся внутри строки, а сетка учитывает доступную ширину.",
66
+ "Независимая проверка показывает актуальный статус рядом с ответом. Если проверяющий не передал итог, выполняется одна повторная проверка; ошибка или отмена не считаются успешной проверкой.",
67
+ "Предпросмотр Markdown умеет оформлять YAML-шапку отдельной карточкой по настройке оператора. Чипсы с номером строки прокручивают источник к нужному фрагменту и подсвечивают его в Rendered и Raw; относительные изображения, включая подписи с переносами от конвертера, загружаются с проверкой доступа к документу.",
68
+ "Уведомление перед началом работы объясняет, что запрос и контекст, включая прочитанные источники, передаются выбранному провайдеру модели. После обновления уведомление нужно подтвердить снова.",
69
+ "Управление доступом находится в компактном меню чата в истории. Шапка больше не повторяет имя владельца и отдельную кнопку обмена; права получателя остаются видны рядом с чатом.",
70
+ "Правая панель изменяет ширину перетаскиванием границы и сохраняет выбранный размер.",
71
+ "Оператор сохраняет доступ к нативным разделам Host при включённых QA-аккаунтах; клиентский доступ к чужим данным остаётся закрыт.",
72
+ "Право интеграционного токена на отправку запросов ассистенту описано явно и отделено от уточняющих вопросов в разговоре.",
73
+ "На стендах с поддержкой ограниченного каталога список чатов собирает данные только для доступных разговоров и делегированных сессий владельца.",
74
+ "Фоновые опросы проверяют доступ к списку одной операцией, сохраняя немедленное действие отзыва прав и уменьшая нагрузку на клиентский интерфейс.",
75
+ "У интеграционного токена появился отдельный переключатель уточняющих вопросов. Его можно изменить для уже выданного токена; выключение сохраняет возможность получать ответы через API.",
76
+ "Просмотр субагента из правой панели проверяет доступ владельца к родительскому чату. Фоновая проверка больше не закрывает транскрипт с ложным сообщением об отзыве доступа; просмотр остаётся только для чтения.",
77
+ "Картинку разговора, иллюстрацию документа и изображение в ответе можно открыть в полном размере: клик по миниатюре поднимает просмотр поверх страницы, а Esc, клик по фону и крестик закрывают его.",
78
+ "Кнопка остановки останавливает и делегированную работу чата: проверяющий ответ и субагенты перестают выполняться вместе с запросом, а не продолжают работать за спиной транскрипта.",
79
+ "Команда отмены разбора больше не рисует карточку над вопросом, к которому относится, — статус проверки уже показан рядом с ответом. Отказ команды по-прежнему виден.",
80
+ ],
81
+ },
82
+ ],
83
+ },
5
84
  {
6
85
  version: "0.16.0",
7
86
  date: "2026-10-09",