@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.
- package/README.md +27 -2
- package/lib/access/capability-catalog.js +11 -4
- package/lib/access/capability-catalog.js.map +1 -1
- package/lib/access/service.js +46 -5
- package/lib/access/service.js.map +1 -1
- package/lib/account-remotes.js +9 -0
- package/lib/account-remotes.js.map +1 -1
- package/lib/accounts/database.js +34 -3
- package/lib/accounts/database.js.map +1 -1
- package/lib/accounts/store.js +22 -2
- package/lib/accounts/store.js.map +1 -1
- package/lib/admin/service.js +4 -2
- package/lib/admin/service.js.map +1 -1
- package/lib/admin/session-log.js +3 -0
- package/lib/admin/session-log.js.map +1 -1
- package/lib/agent-scope.js +9 -0
- package/lib/agent-scope.js.map +1 -0
- package/lib/chat-sharing/native-fence.js +120 -0
- package/lib/chat-sharing/native-fence.js.map +1 -0
- package/lib/chat-sharing/resources.js +57 -0
- package/lib/chat-sharing/resources.js.map +1 -0
- package/lib/chat-sharing/store.js +199 -0
- package/lib/chat-sharing/store.js.map +1 -0
- package/lib/chat-sharing/transport.js +329 -0
- package/lib/chat-sharing/transport.js.map +1 -0
- package/lib/chat-sharing/turn-guard.js +154 -0
- package/lib/chat-sharing/turn-guard.js.map +1 -0
- package/lib/chat-sharing/types.js +2 -0
- package/lib/chat-sharing/types.js.map +1 -0
- package/lib/chat-sharing/uploads.js +55 -0
- package/lib/chat-sharing/uploads.js.map +1 -0
- package/lib/client/QaAccountsController.js +47 -2
- package/lib/client/QaAccountsController.js.map +1 -1
- package/lib/client/QaConfigController.js +7 -12
- package/lib/client/QaConfigController.js.map +1 -1
- package/lib/client/QaSessionController.js +195 -19
- package/lib/client/QaSessionController.js.map +1 -1
- package/lib/client/QaSurface.js +156 -14
- package/lib/client/QaSurface.js.map +1 -1
- package/lib/client/QaSurfaceGuard.js +6 -1
- package/lib/client/QaSurfaceGuard.js.map +1 -1
- package/lib/client/QaTranscriptAdapter.js +28 -5
- package/lib/client/QaTranscriptAdapter.js.map +1 -1
- package/lib/client/account-conversation.js +33 -0
- package/lib/client/account-conversation.js.map +1 -0
- package/lib/client/account-sessions.js +106 -0
- package/lib/client/account-sessions.js.map +1 -0
- package/lib/client/account-upload.js +30 -0
- package/lib/client/account-upload.js.map +1 -0
- package/lib/client/answer-review.js +89 -0
- package/lib/client/answer-review.js.map +1 -0
- package/lib/client/chat-artifacts.js +18 -3
- package/lib/client/chat-artifacts.js.map +1 -1
- package/lib/client/chat-sharing-api.js +2 -0
- package/lib/client/chat-sharing-api.js.map +1 -0
- package/lib/client/components/QaAnswerReviewStatus.js +45 -0
- package/lib/client/components/QaAnswerReviewStatus.js.map +1 -0
- package/lib/client/components/QaChangelog.js +92 -3
- package/lib/client/components/QaChangelog.js.map +1 -1
- package/lib/client/components/QaChatActions.js +52 -0
- package/lib/client/components/QaChatActions.js.map +1 -0
- package/lib/client/components/QaChatSharing.js +95 -0
- package/lib/client/components/QaChatSharing.js.map +1 -0
- package/lib/client/components/QaComposer.js +8 -4
- package/lib/client/components/QaComposer.js.map +1 -1
- package/lib/client/components/QaFileAttachment.js +12 -3
- package/lib/client/components/QaFileAttachment.js.map +1 -1
- package/lib/client/components/QaFilesPanel.js +11 -4
- package/lib/client/components/QaFilesPanel.js.map +1 -1
- package/lib/client/components/QaHeader.js +3 -3
- package/lib/client/components/QaHeader.js.map +1 -1
- package/lib/client/components/QaMarkdownPreview.js +86 -0
- package/lib/client/components/QaMarkdownPreview.js.map +1 -0
- package/lib/client/components/QaMessage.js +41 -10
- package/lib/client/components/QaMessage.js.map +1 -1
- package/lib/client/components/QaModal.js +17 -0
- package/lib/client/components/QaModal.js.map +1 -1
- package/lib/client/components/QaRightRail.js +6 -4
- package/lib/client/components/QaRightRail.js.map +1 -1
- package/lib/client/components/QaRightRailResize.js +129 -0
- package/lib/client/components/QaRightRailResize.js.map +1 -0
- package/lib/client/components/QaSidebar.js +11 -2
- package/lib/client/components/QaSidebar.js.map +1 -1
- package/lib/client/components/QaSourceFilters.js +22 -0
- package/lib/client/components/QaSourceFilters.js.map +1 -0
- package/lib/client/components/QaSourcesPanel.js +66 -14
- package/lib/client/components/QaSourcesPanel.js.map +1 -1
- package/lib/client/components/QaSpreadsheetPreview.js +56 -0
- package/lib/client/components/QaSpreadsheetPreview.js.map +1 -0
- package/lib/client/components/QaWelcomeNotice.js +2 -2
- package/lib/client/components/QaWelcomeNotice.js.map +1 -1
- package/lib/client/components/QaWorkspaceBrowser.js +46 -12
- package/lib/client/components/QaWorkspaceBrowser.js.map +1 -1
- package/lib/client/components/QaZoomImage.js +56 -0
- package/lib/client/components/QaZoomImage.js.map +1 -0
- package/lib/client/components/source-refs.js +57 -24
- package/lib/client/components/source-refs.js.map +1 -1
- package/lib/client/index.js +76 -8
- package/lib/client/index.js.map +1 -1
- package/lib/client/lineage.js +4 -3
- package/lib/client/lineage.js.map +1 -1
- package/lib/client/markdown/SourceImage.js +52 -0
- package/lib/client/markdown/SourceImage.js.map +1 -0
- package/lib/client/markdown/blocks.js +150 -115
- package/lib/client/markdown/blocks.js.map +1 -1
- package/lib/client/markdown/katex-css.js +1 -1
- package/lib/client/markdown/render.js +26 -9
- package/lib/client/markdown/render.js.map +1 -1
- package/lib/client/markdown/source-chip.js +6 -2
- package/lib/client/markdown/source-chip.js.map +1 -1
- package/lib/client/notifications/notification-dispatcher.js +50 -11
- package/lib/client/notifications/notification-dispatcher.js.map +1 -1
- package/lib/client/notifications/use-turn-notifications.js +107 -18
- package/lib/client/notifications/use-turn-notifications.js.map +1 -1
- package/lib/client/project-session-state.js +28 -13
- package/lib/client/project-session-state.js.map +1 -1
- package/lib/client/session-admission.js +9 -1
- package/lib/client/session-admission.js.map +1 -1
- package/lib/client/session-sources.js +44 -3
- package/lib/client/session-sources.js.map +1 -1
- package/lib/client/settings/sections/sources.js +1 -1
- package/lib/client/settings/sections/sources.js.map +1 -1
- package/lib/client/settings/styles.js +18 -28
- package/lib/client/settings/styles.js.map +1 -1
- package/lib/client/slash/useSlashNavigation.js +8 -5
- package/lib/client/slash/useSlashNavigation.js.map +1 -1
- package/lib/client/source-filters-styles.js +11 -0
- package/lib/client/source-filters-styles.js.map +1 -0
- package/lib/client/source-preview.js +1 -1
- package/lib/client/source-preview.js.map +1 -1
- package/lib/client/styles.js +62 -4
- package/lib/client/styles.js.map +1 -1
- package/lib/client/turn-sources.js +2 -1
- package/lib/client/turn-sources.js.map +1 -1
- package/lib/client/types.js.map +1 -1
- package/lib/client/use-right-rail.js +1 -1
- package/lib/client/use-right-rail.js.map +1 -1
- package/lib/client/user-settings/IntegrationTokensPage.js +30 -6
- package/lib/client/user-settings/IntegrationTokensPage.js.map +1 -1
- package/lib/client/workspace-download.js +42 -2
- package/lib/client/workspace-download.js.map +1 -1
- package/lib/client.js +6481 -2234
- package/lib/client.js.map +1 -1
- package/lib/config-resolvers/defaults.js +4 -3
- package/lib/config-resolvers/defaults.js.map +1 -1
- package/lib/config-resolvers/sources.js +2 -0
- package/lib/config-resolvers/sources.js.map +1 -1
- package/lib/config.js +3 -0
- package/lib/config.js.map +1 -1
- package/lib/enforcement/skill-policy.js +29 -4
- package/lib/enforcement/skill-policy.js.map +1 -1
- package/lib/enforcement/skill-resource-paths.js +32 -0
- package/lib/enforcement/skill-resource-paths.js.map +1 -0
- package/lib/enforcement/structured-result.js +38 -0
- package/lib/enforcement/structured-result.js.map +1 -0
- package/lib/enforcement/tool-grants.js +3 -1
- package/lib/enforcement/tool-grants.js.map +1 -1
- package/lib/index.js +447 -17
- package/lib/index.js.map +1 -1
- package/lib/integration/host-runner.js +1 -0
- package/lib/integration/host-runner.js.map +1 -1
- package/lib/integration/question-policy.js +126 -0
- package/lib/integration/question-policy.js.map +1 -0
- package/lib/integration/service.js +2 -0
- package/lib/integration/service.js.map +1 -1
- package/lib/llm-identity.js +27 -0
- package/lib/llm-identity.js.map +1 -0
- package/lib/markdown-frontmatter.js +47 -0
- package/lib/markdown-frontmatter.js.map +1 -0
- package/lib/markdown-images.js +33 -0
- package/lib/markdown-images.js.map +1 -0
- package/lib/prompt-notes.js +19 -2
- package/lib/prompt-notes.js.map +1 -1
- package/lib/provenance/collector.js +15 -1
- package/lib/provenance/collector.js.map +1 -1
- package/lib/provenance/connectors.js +57 -27
- package/lib/provenance/connectors.js.map +1 -1
- package/lib/provenance/dedupe.js +25 -1
- package/lib/provenance/dedupe.js.map +1 -1
- package/lib/provenance/document-preview.js +31 -3
- package/lib/provenance/document-preview.js.map +1 -1
- package/lib/provenance/extractors.js +88 -4
- package/lib/provenance/extractors.js.map +1 -1
- package/lib/provenance/file-download.js +56 -0
- package/lib/provenance/file-download.js.map +1 -0
- package/lib/provenance/file-preview.js +20 -2
- package/lib/provenance/file-preview.js.map +1 -1
- package/lib/provenance/host-store.js +59 -10
- package/lib/provenance/host-store.js.map +1 -1
- package/lib/provenance/integration-extractor.js +62 -0
- package/lib/provenance/integration-extractor.js.map +1 -0
- package/lib/provenance/snapshot-store.js +2 -0
- package/lib/provenance/snapshot-store.js.map +1 -1
- package/lib/provenance/source-content.js +103 -0
- package/lib/provenance/source-content.js.map +1 -0
- package/lib/provenance/source-image.js +57 -0
- package/lib/provenance/source-image.js.map +1 -0
- package/lib/provenance/spreadsheet-preview.js +52 -0
- package/lib/provenance/spreadsheet-preview.js.map +1 -0
- package/lib/qa-tools/docs-tools.js +14 -0
- package/lib/qa-tools/docs-tools.js.map +1 -1
- package/lib/questions.js +6 -1
- package/lib/questions.js.map +1 -1
- package/lib/secure-session.js +9 -3
- package/lib/secure-session.js.map +1 -1
- package/lib/session-fork-host.js +157 -0
- package/lib/session-fork-host.js.map +1 -0
- package/lib/session-fork.js +34 -0
- package/lib/session-fork.js.map +1 -0
- package/lib/session-ownership.js +5 -1
- package/lib/session-ownership.js.map +1 -1
- package/lib/shared/documents.js +12 -0
- package/lib/shared/documents.js.map +1 -1
- package/lib/shared/session-lineage.js +6 -0
- package/lib/shared/session-lineage.js.map +1 -0
- package/lib/slash/draft-target.js +21 -0
- package/lib/slash/draft-target.js.map +1 -0
- package/lib/slash/remotes.js +39 -4
- package/lib/slash/remotes.js.map +1 -1
- package/lib/typert.host.js +1869 -163
- package/lib/typert.remote-client.d.ts +56 -5
- package/lib/typert.remote-client.js +1678 -154
- package/lib/types/access/capability-catalog.d.ts +1 -1
- package/lib/types/access/service.d.ts +7 -0
- package/lib/types/access.js +2 -0
- package/lib/types/access.js.map +1 -0
- package/lib/types/account-remotes.d.ts +3 -0
- package/lib/types/accounts/database.d.ts +5 -0
- package/lib/types/accounts/store.d.ts +7 -2
- package/lib/types/accounts.js +2 -0
- package/lib/types/accounts.js.map +1 -0
- package/lib/types/admin/session-log.d.ts +2 -0
- package/lib/types/admin.js +2 -0
- package/lib/types/admin.js.map +1 -0
- package/lib/types/agent-scope.d.ts +4 -0
- package/lib/types/answer-review.js +2 -0
- package/lib/types/answer-review.js.map +1 -0
- package/lib/types/capability.js +2 -0
- package/lib/types/capability.js.map +1 -0
- package/lib/types/chat-sharing/native-fence.d.ts +11 -0
- package/lib/types/chat-sharing/resources.d.ts +5 -0
- package/lib/types/chat-sharing/store.d.ts +29 -0
- package/lib/types/chat-sharing/transport.d.ts +32 -0
- package/lib/types/chat-sharing/turn-guard.d.ts +21 -0
- package/lib/types/chat-sharing/types.d.ts +25 -0
- package/lib/types/chat-sharing/uploads.d.ts +5 -0
- package/lib/types/client/QaAccountsController.d.ts +4 -0
- package/lib/types/client/QaConfigController.d.ts +3 -2
- package/lib/types/client/QaSessionController.d.ts +17 -3
- package/lib/types/client/QaSurface.d.ts +6 -1
- package/lib/types/client/account-conversation.d.ts +6 -0
- package/lib/types/client/account-sessions.d.ts +7 -0
- package/lib/types/client/account-upload.d.ts +15 -0
- package/lib/types/client/answer-review.d.ts +16 -0
- package/lib/types/client/chat-sharing-api.d.ts +35 -0
- package/lib/types/client/components/QaAnswerReviewStatus.d.ts +8 -0
- package/lib/types/client/components/QaChatActions.d.ts +7 -0
- package/lib/types/client/components/QaChatSharing.d.ts +12 -0
- package/lib/types/client/components/QaComposer.d.ts +2 -0
- package/lib/types/client/components/QaFileAttachment.d.ts +3 -2
- package/lib/types/client/components/QaFilesPanel.d.ts +4 -1
- package/lib/types/client/components/QaMarkdownPreview.d.ts +13 -0
- package/lib/types/client/components/QaMessage.d.ts +5 -2
- package/lib/types/client/components/QaModal.d.ts +9 -0
- package/lib/types/client/components/QaRightRail.d.ts +3 -2
- package/lib/types/client/components/QaRightRailResize.d.ts +9 -0
- package/lib/types/client/components/QaSidebar.d.ts +2 -0
- package/lib/types/client/components/QaSourceFilters.d.ts +12 -0
- package/lib/types/client/components/QaSpreadsheetPreview.d.ts +8 -0
- package/lib/types/client/components/QaWelcomeNotice.d.ts +1 -1
- package/lib/types/client/components/QaWorkspaceBrowser.d.ts +8 -1
- package/lib/types/client/components/QaZoomImage.d.ts +38 -0
- package/lib/types/client/components/source-refs.d.ts +1 -0
- package/lib/types/client/lineage.d.ts +2 -2
- package/lib/types/client/markdown/SourceImage.d.ts +7 -0
- package/lib/types/client/markdown/blocks.d.ts +8 -1
- package/lib/types/client/markdown/render.d.ts +5 -1
- package/lib/types/client/markdown/source-chip.d.ts +1 -0
- package/lib/types/client/notifications/notification-dispatcher.d.ts +10 -6
- package/lib/types/client/notifications/use-turn-notifications.d.ts +4 -0
- package/lib/types/client/project-session-state.d.ts +1 -0
- package/lib/types/client/session-admission.d.ts +2 -0
- package/lib/types/client/session-sources.d.ts +1 -0
- package/lib/types/client/settings/styles.d.ts +2 -5
- package/lib/types/client/source-filters-styles.d.ts +2 -0
- package/lib/types/client/turn-sources.d.ts +1 -1
- package/lib/types/client/types.d.ts +18 -5
- package/lib/types/client/workspace-download.d.ts +9 -1
- package/lib/types/config.js +2 -0
- package/lib/types/config.js.map +1 -0
- package/lib/types/documents.js +2 -0
- package/lib/types/documents.js.map +1 -0
- package/lib/types/enforcement/skill-resource-paths.d.ts +5 -0
- package/lib/types/enforcement/structured-result.d.ts +11 -0
- package/lib/types/expert-memory.js +2 -0
- package/lib/types/expert-memory.js.map +1 -0
- package/lib/types/index.d.ts +42 -3
- package/lib/types/integration/contract.d.ts +1 -0
- package/lib/types/integration/question-policy.d.ts +20 -0
- package/lib/types/integration/service.d.ts +1 -0
- package/lib/types/llm-identity.d.ts +20 -0
- package/lib/types/markdown-frontmatter.d.ts +10 -0
- package/lib/types/markdown-images.d.ts +3 -0
- package/lib/types/policy.js +2 -0
- package/lib/types/policy.js.map +1 -0
- package/lib/types/prompt-notes.d.ts +3 -1
- package/lib/types/provenance/connectors.d.ts +4 -1
- package/lib/types/provenance/document-preview.d.ts +5 -2
- package/lib/types/provenance/extractors.d.ts +2 -0
- package/lib/types/provenance/file-download.d.ts +10 -0
- package/lib/types/provenance/file-preview.d.ts +2 -1
- package/lib/types/provenance/host-store.d.ts +2 -0
- package/lib/types/provenance/integration-extractor.d.ts +5 -0
- package/lib/types/provenance/source-content.d.ts +19 -0
- package/lib/types/provenance/source-image.d.ts +4 -0
- package/lib/types/provenance/spreadsheet-preview.d.ts +5 -0
- package/lib/types/provenance/types.d.ts +5 -0
- package/lib/types/qa-tools/docs-tools.d.ts +2 -0
- package/lib/types/quality.js +7 -0
- package/lib/types/quality.js.map +1 -0
- package/lib/types/questions.d.ts +2 -1
- package/lib/types/session-fork-host.d.ts +27 -0
- package/lib/types/session-fork.d.ts +7 -0
- package/lib/types/session.js +2 -0
- package/lib/types/session.js.map +1 -0
- package/lib/types/shared/documents.d.ts +2 -0
- package/lib/types/shared/session-lineage.d.ts +7 -0
- package/lib/types/skills.js +2 -0
- package/lib/types/skills.js.map +1 -0
- package/lib/types/slash/draft-target.d.ts +7 -0
- package/lib/types/slash/remotes.d.ts +7 -0
- package/lib/types/slash.js +2 -0
- package/lib/types/slash.js.map +1 -0
- package/lib/types/types/access.d.ts +43 -0
- package/lib/types/types/accounts.d.ts +177 -0
- package/lib/types/types/admin.d.ts +286 -0
- package/lib/types/types/answer-review.d.ts +11 -0
- package/lib/types/types/capability.d.ts +230 -0
- package/lib/types/types/config.d.ts +597 -0
- package/lib/types/types/documents.d.ts +34 -0
- package/lib/types/types/expert-memory.d.ts +35 -0
- package/lib/types/types/policy.d.ts +54 -0
- package/lib/types/types/quality.d.ts +100 -0
- package/lib/types/types/session.d.ts +397 -0
- package/lib/types/types/skills.d.ts +143 -0
- package/lib/types/types/slash.d.ts +159 -0
- package/lib/types/types.d.ts +14 -2180
- package/package.json +8 -7
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** Use the native background carrier, addressed to the authenticated QA route. */
|
|
2
|
+
export function createQaAccountUpload(carrier, token) {
|
|
3
|
+
return {
|
|
4
|
+
upload: async (sessionId, data, name, signal) => {
|
|
5
|
+
const runtime = carrier();
|
|
6
|
+
const identity = token();
|
|
7
|
+
if (runtime === undefined || identity === null)
|
|
8
|
+
throw new Error("File upload is unavailable.");
|
|
9
|
+
const query = new URLSearchParams({ sessionId });
|
|
10
|
+
if (name !== undefined)
|
|
11
|
+
query.set("name", name);
|
|
12
|
+
const body = data instanceof Uint8Array
|
|
13
|
+
? new Blob([Uint8Array.from(data).buffer])
|
|
14
|
+
: data;
|
|
15
|
+
const response = await runtime.post({
|
|
16
|
+
path: `api/qa-chat-upload?${query}`,
|
|
17
|
+
body,
|
|
18
|
+
headers: {
|
|
19
|
+
authorization: `Bearer ${identity}`,
|
|
20
|
+
"content-type": "application/octet-stream",
|
|
21
|
+
},
|
|
22
|
+
...(signal === undefined ? {} : { signal }),
|
|
23
|
+
});
|
|
24
|
+
if (response.status !== 200 || token() !== identity)
|
|
25
|
+
throw new Error("File upload access was refused.");
|
|
26
|
+
return JSON.parse(response.body);
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=account-upload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-upload.js","sourceRoot":"","sources":["../../src/client/account-upload.ts"],"names":[],"mappings":"AAWA,kFAAkF;AAClF,MAAM,UAAU,qBAAqB,CACnC,OAA0C,EAC1C,KAA0B;IAE1B,OAAO;QACL,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;YAC9C,MAAM,OAAO,GAAG,OAAO,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAC;YACzB,IAAI,OAAO,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI;gBAC5C,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;YACjD,IAAI,IAAI,KAAK,SAAS;gBAAE,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAChD,MAAM,IAAI,GACR,IAAI,YAAY,UAAU;gBACxB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC1C,CAAC,CAAC,IAAI,CAAC;YACX,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;gBAClC,IAAI,EAAE,sBAAsB,KAAK,EAAE;gBACnC,IAAI;gBACJ,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,QAAQ,EAAE;oBACnC,cAAc,EAAE,0BAA0B;iBAC3C;gBACD,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;aAC5C,CAAC,CAAC;YACH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,KAAK,QAAQ;gBACjD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAE9B,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -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":"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"}
|
|
@@ -17,9 +17,14 @@
|
|
|
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"],
|
|
24
|
+
document_workflow_draft: ["markdown"],
|
|
25
|
+
document_workflow_read: ["markdown"],
|
|
26
|
+
document_workflow_review: ["markdown"],
|
|
27
|
+
document_workflow_export: ["docx", "pdf"],
|
|
23
28
|
});
|
|
24
29
|
/** One reported file: `<format>: <path>` with an optional `(<size>, …)`. */
|
|
25
30
|
const FILE_LINE = /^([a-z][a-z0-9]*):\s+(\S+)(?:\s+\(([^)]*)\))?$/u;
|
|
@@ -39,11 +44,11 @@ const UNIT_SCALES = Object.freeze({
|
|
|
39
44
|
function reportedBytes(details) {
|
|
40
45
|
const size = /^([\d.]+)\s*([A-Za-z]+)$/u.exec(details?.split(",")[0]?.trim() ?? "");
|
|
41
46
|
if (size === null)
|
|
42
|
-
return
|
|
47
|
+
return null;
|
|
43
48
|
const value = Number.parseFloat(size[1] ?? "");
|
|
44
49
|
const scale = UNIT_SCALES[(size[2] ?? "").toLowerCase()];
|
|
45
|
-
if (!Number.isFinite(value) || scale === undefined)
|
|
46
|
-
return
|
|
50
|
+
if (!Number.isFinite(value) || value < 0 || scale === undefined)
|
|
51
|
+
return null;
|
|
47
52
|
return Math.round(value * scale);
|
|
48
53
|
}
|
|
49
54
|
/** Last segment of a reported path, spelled with forward slashes. */
|
|
@@ -72,6 +77,10 @@ export function artifactsOfToolResult(toolName, output) {
|
|
|
72
77
|
if (formats === undefined || output === null)
|
|
73
78
|
return [];
|
|
74
79
|
const artifacts = [];
|
|
80
|
+
const workflowId = /^workflow:\s+(wf_[0-9a-f-]{36})$/mu.exec(output)?.[1];
|
|
81
|
+
const revision = Number(/^revision:\s+(\d+)$/mu.exec(output)?.[1]);
|
|
82
|
+
const sha256 = /^draft-sha256:\s+([0-9a-f]{64})$/mu.exec(output)?.[1];
|
|
83
|
+
const status = /^status:\s+(\w+)$/mu.exec(output)?.[1];
|
|
75
84
|
for (const line of output.split(/\r?\n/u)) {
|
|
76
85
|
const reported = FILE_LINE.exec(line.trim());
|
|
77
86
|
if (reported === null)
|
|
@@ -87,6 +96,12 @@ export function artifactsOfToolResult(toolName, output) {
|
|
|
87
96
|
name: baseName(path),
|
|
88
97
|
format,
|
|
89
98
|
bytes: reportedBytes(reported[3]),
|
|
99
|
+
...(workflowId === undefined ||
|
|
100
|
+
!Number.isSafeInteger(revision) ||
|
|
101
|
+
sha256 === undefined ||
|
|
102
|
+
status === undefined
|
|
103
|
+
? {}
|
|
104
|
+
: { workflow: { id: workflowId, revision, sha256, status } }),
|
|
90
105
|
});
|
|
91
106
|
}
|
|
92
107
|
return artifacts;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-artifacts.js","sourceRoot":"","sources":["../../src/client/chat-artifacts.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AAEH,4EAA4E;AAC5E,MAAM,gBAAgB,GACpB,MAAM,CAAC,MAAM,CAAC;IACZ,eAAe,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;IAChC,gBAAgB,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC;IACvC,oBAAoB,EAAE,CAAC,UAAU,CAAC;IAClC,iBAAiB,EAAE,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"chat-artifacts.js","sourceRoot":"","sources":["../../src/client/chat-artifacts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-sharing-api.js","sourceRoot":"","sources":["../../src/client/chat-sharing-api.ts"],"names":[],"mappings":""}
|
|
@@ -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"}
|
|
@@ -2,6 +2,98 @@ 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.17.0",
|
|
7
|
+
date: "2026-10-14",
|
|
8
|
+
sections: [
|
|
9
|
+
{
|
|
10
|
+
title: "Пользователи и модели",
|
|
11
|
+
items: [
|
|
12
|
+
"Один расширенный провайдер может обслуживать QA-аккаунты с общим API-ключом, передавая DeepSeek отдельную стабильную метку владельца чата для разделения пользователей и KV-кэша. Имена и email в метку не попадают; включение режима настраивается оператором для провайдера.",
|
|
13
|
+
],
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
title: "Обработка данных",
|
|
17
|
+
items: [
|
|
18
|
+
"В источниках доступны фильтр по типу и поиск по названию, тексту и ссылке. Карточка показывает сохранённый текст веб-страницы или записи интеграции; неполный текст отмечается отдельно.",
|
|
19
|
+
"Ассистент с подключённым модулем документов читает и создаёт XLSX, CSV, TSV и OpenDocument (ODS/FODS). Книги с несколькими листами читаются порциями; созданная таблица появляется в чате файлом для скачивания. Панели файлов и источников показывают таблицу с выбором листа и навигацией по строкам и колонкам. Формулы читаются из сохранённого результата без пересчёта, а CSV и TSV сохраняют точное написание полей и явно учитывают разделитель и кодировку.",
|
|
20
|
+
"Интеграционный API по умолчанию ждёт ответ до одного часа. Оператор может изменить этот бюджет в настройках развёртывания.",
|
|
21
|
+
"Девять операторских форм, включая настройки QA Surface, документов, интеграций и авторизованной загрузки, используют общий размер текста, поля и переключатели. Длинные подписи и отметки изменений переносятся внутри строки, а сетка учитывает доступную ширину.",
|
|
22
|
+
"Независимая проверка показывает актуальный статус рядом с ответом. Если проверяющий не передал итог, выполняется одна повторная проверка; ошибка или отмена не считаются успешной проверкой.",
|
|
23
|
+
"Предпросмотр Markdown умеет оформлять YAML-шапку отдельной карточкой по настройке оператора. Чипсы с номером строки прокручивают источник к нужному фрагменту и подсвечивают его в Rendered и Raw; относительные изображения, включая подписи с переносами от конвертера, загружаются с проверкой доступа к документу.",
|
|
24
|
+
"Уведомление перед началом работы объясняет, что запрос и контекст, включая прочитанные источники, передаются выбранному провайдеру модели. После обновления уведомление нужно подтвердить снова.",
|
|
25
|
+
"Управление доступом находится в компактном меню чата в истории. Шапка больше не повторяет имя владельца и отдельную кнопку обмена; права получателя остаются видны рядом с чатом.",
|
|
26
|
+
"Правая панель изменяет ширину перетаскиванием границы и сохраняет выбранный размер.",
|
|
27
|
+
"Оператор сохраняет доступ к нативным разделам Host при включённых QA-аккаунтах; клиентский доступ к чужим данным остаётся закрыт.",
|
|
28
|
+
"Право интеграционного токена на отправку запросов ассистенту описано явно и отделено от уточняющих вопросов в разговоре.",
|
|
29
|
+
"На стендах с поддержкой ограниченного каталога список чатов собирает данные только для доступных разговоров и делегированных сессий владельца.",
|
|
30
|
+
"Фоновые опросы проверяют доступ к списку одной операцией, сохраняя немедленное действие отзыва прав и уменьшая нагрузку на клиентский интерфейс.",
|
|
31
|
+
"У интеграционного токена появился отдельный переключатель уточняющих вопросов. Его можно изменить для уже выданного токена; выключение сохраняет возможность получать ответы через API.",
|
|
32
|
+
"Просмотр субагента из правой панели проверяет доступ владельца к родительскому чату. Фоновая проверка больше не закрывает транскрипт с ложным сообщением об отзыве доступа; просмотр остаётся только для чтения.",
|
|
33
|
+
"Картинку разговора, иллюстрацию документа и изображение в ответе можно открыть в полном размере: клик по миниатюре поднимает просмотр поверх страницы, а Esc, клик по фону и крестик закрывают его.",
|
|
34
|
+
"Кнопка остановки останавливает и делегированную работу чата: проверяющий ответ и субагенты перестают выполняться вместе с запросом, а не продолжают работать за спиной транскрипта.",
|
|
35
|
+
"Команда отмены разбора больше не рисует карточку над вопросом, к которому относится, — статус проверки уже показан рядом с ответом. Отказ команды по-прежнему виден.",
|
|
36
|
+
],
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
version: "0.16.0",
|
|
42
|
+
date: "2026-10-09",
|
|
43
|
+
sections: [
|
|
44
|
+
{
|
|
45
|
+
title: "Изменения",
|
|
46
|
+
items: [
|
|
47
|
+
"Разбор ответа можно отменить на один запрос: команда /no-review перед вопросом говорит стенду, что этот ответ разбирать не нужно. Отмена привязана ровно к одному запросу и на следующие не распространяется. Обычные слова — «разбор не нужен», «без проверки» — ничего не отменяют: стенд слушает только команду, иначе молчание в тексте принималось бы за отказ. Развёртывания с закрытым режимом разбора по умолчанию команду не слышат, пока оператор сам её не разрешит. В журнале остаётся отметка об отмене, но ни текст вопроса, ни текст ответа в него не переносится.",
|
|
48
|
+
"Новый пользователь попадает на общий управляемый профиль, если развёртывание держит ровно один такой профиль и помечает его как профиль по умолчанию: карточка интеграции открыта, токен вводить не нужно. Личный выбор сильнее автоматики — после «отключить» стенд больше не подключает общий профиль сам, даже после перезахода, а тот, кто уже вписал свой токен, свой токен и сохраняет. Если профилей несколько, стенд не угадывает: это выбор, для которого в настройках есть форма.",
|
|
49
|
+
"Стенд умеет забирать не только картинки. Ответ по авторизованному доступу сохраняется как вложение разговора — документ, таблица, презентация, архив, лог, страница или другой разрешённый отклик. Правила те же, что у картинок: адрес из списка разрешённых, проверка DNS без переподключения, ограничение на редиректы, время и размер ответа. Логин и токен инструмент у модели не спрашивает — доступ выбирает развёртывание.",
|
|
50
|
+
],
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
title: "Безопасность и отображение",
|
|
54
|
+
items: [
|
|
55
|
+
"Обновили библиотеку отображения формул: ограничения на ссылки и внешние ресурсы сохраняются при обработке математических выражений в ответах.",
|
|
56
|
+
"Клиентский файл содержит все свои зависимости и не запрашивает дополнительные файлы при отображении ответа.",
|
|
57
|
+
],
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
title: "Уведомления и команды",
|
|
61
|
+
items: [
|
|
62
|
+
"Очередь уведомлений очищается при выходе и смене аккаунта. Клик по системному уведомлению открывает нужный доступный чат и убирает его строку в приложении. Старые обработчики отключаются; закрытие уже показанного системного уведомления зависит от браузера и ОС.",
|
|
63
|
+
"Палитра по слешу доступна до первого вопроса: показывает навыки пресета в рамках выбранной роли. После Escape или выбора команды новый ввод снова открывает список. Пустой список не мешает Tab и отправке сообщения, а недоступный каталог оставляет набранное в поле.",
|
|
64
|
+
],
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
title: "Источники",
|
|
68
|
+
items: [
|
|
69
|
+
"Помощник открывается на клиентском адресе и получает свои настройки даже при задержке загрузки стандартных настроек Host. После перезагрузки чат использует доступ своего аккаунта; медленное восстановление получает больше времени.",
|
|
70
|
+
"Источники прочитанных файлов, справки, документов и ответов интеграций сохраняются вместе с чатом и восстанавливаются при повторном открытии. Панель показывает источники всего чата, а ссылки под ответом относятся к этому ответу.",
|
|
71
|
+
"Ссылки на известные файлы открывают предпросмотр; одинаковые веб-адреса и варианты пути распознаются согласованно. PDF и Word-документы показываются через просмотр документов, а неподдерживаемые форматы получают понятное сообщение.",
|
|
72
|
+
"Пустая панель сообщает об отсутствии зарегистрированных источников. Чтение только метаданных документа и неполный сбор отмечаются отдельно.",
|
|
73
|
+
],
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
title: "Fast",
|
|
77
|
+
items: [
|
|
78
|
+
"Существующим чатом можно поделиться с конкретными аккаунтами: только чтение или совместная работа. Владелец меняет режим и отзывает доступ; участники видят владельца и авторов сообщений. Согласование документов и управление чатом остаются у владельца, личные интеграции ему не делегируются.",
|
|
79
|
+
"Продолжить в новом чате: кнопка под завершённым ответом создаёт отдельную ветку с историей до этого ответа, ролью исходного чата и его источниками. Новая ветка принадлежит создавшему её аккаунту. Исходный чат продолжает работать. Файлы унаследованного черновика доступны для просмотра и скачивания; согласование документа остаётся в чате, где он подготовлен.",
|
|
80
|
+
"Переключатель Fast рядом с полем ввода пропускает автоматическое ревью ответов на следующие сообщения в текущем чате. При включении показано предупреждение. Проверка документов перед согласованием и экспортом остаётся обязательной; в другом чате Fast снова выключен.",
|
|
81
|
+
],
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
title: "Подготовка документов",
|
|
85
|
+
items: [
|
|
86
|
+
"Карточки черновиков сохраняют видимое имя файла: согласование вынесено на отдельную строку и помещается на узком экране. Если размер не сообщён, карточка не показывает его как нулевой.",
|
|
87
|
+
"Независимое ревью принимает проверенный структурированный результат дочернего агента через штатный канал DSH. Ограничения рабочих инструментов профиля продолжают действовать.",
|
|
88
|
+
"Черновики ТКП и ТЗ можно сохранять в Markdown, проверять по накопленным требованиям и согласовывать прямо в чате. Согласование относится к конкретной редакции: после правок документ проходит проверку заново. DOCX формируется из согласованного содержания.",
|
|
89
|
+
"Созданные документы скачиваются целиком независимо от ограничения предпросмотра. Если файл изменился во время скачивания, помощник предлагает повторить операцию вместо сохранения неполного файла.",
|
|
90
|
+
"Каталог возможностей чата учитывает инструменты его пресета. Уточняющие вопросы и навыки подготовки документов доступны в рамках назначенной роли.",
|
|
91
|
+
"Загрузчик навыков поясняет, как читать справочные файлы из каталога навыка. Если помощник ошибочно добавил к абсолютному пути каталог проекта, сообщение об ошибке подсказывает точный путь для повторного чтения.",
|
|
92
|
+
"Длинные материалы независимой проверки передаются целиком через сохранённый снимок. Результат ревью проходит проверку структуры перед согласованием документа.",
|
|
93
|
+
],
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
},
|
|
5
97
|
{
|
|
6
98
|
version: "0.15.7",
|
|
7
99
|
date: "2026-10-08",
|
|
@@ -200,9 +292,6 @@ export const QA_CHANGELOG = [
|
|
|
200
292
|
items: [
|
|
201
293
|
"Диаграммы в блоках Mermaid теперь открываются прямо в ответе: их можно увеличить, подогнать по ширине, развернуть на весь экран и переключить на исходный код. Если синтаксис диаграммы неверен, чат не ломается и показывает код с понятным предупреждением.",
|
|
202
294
|
"Стенд добирает оценки, которые нажимали до исправления. Пока отзыв не умел передаваться на стенд, 👍 и 👎 оставались только в браузере того, кто их нажал: в списке оценок, в очереди на разбор и в метриках качества не было ни одной. Теперь при первом входе в свою учётную запись браузер один раз передаёт стенду те из своих оценок, которые относятся к чатам этой учётной записи и которые можно сопоставить с ответом в журнале. Уже записанный отзыв стенд не перезаписывает: оценка с причиной и комментарием остаётся такой, какой её сдали в момент нажатия, — а разовость сбора помечается у себя, чтобы при следующем входе то же самое не предлагать. Учётная запись на другом браузере добирает свои оценки сама. Оценки самых первых версий, где список отзывов был один на весь стенд и не был привязан к чату, остаются в браузере: по ним нельзя понять, к какому разговору их нажимали, а угадывать стенд не стал.",
|
|
203
|
-
"Разбор ответа можно отменить на один запрос: команда /no-review перед вопросом говорит стенду, что этот ответ разбирать не нужно. Отмена привязана ровно к одному запросу и на следующие не распространяется. Обычные слова — «разбор не нужен», «без проверки» — ничего не отменяют: стенд слушает только команду, иначе молчание в тексте принималось бы за отказ. Развёртывания с закрытым режимом разбора по умолчанию команду не слышат, пока оператор сам её не разрешит. В журнале остаётся отметка об отмене, но ни текст вопроса, ни текст ответа в него не переносится.",
|
|
204
|
-
"Новый пользователь попадает на общий управляемый профиль, если развёртывание держит ровно один такой профиль и помечает его как профиль по умолчанию: карточка интеграции открыта, токен вводить не нужно. Личный выбор сильнее автоматики — после «отключить» стенд больше не подключает общий профиль сам, даже после перезахода, а тот, кто уже вписал свой токен, свой токен и сохраняет. Если профилей несколько, стенд не угадывает: это выбор, для которого в настройках есть форма.",
|
|
205
|
-
"Стенд умеет забирать не только картинки. Ответ по авторизованному доступу сохраняется как вложение разговора — документ, таблица, презентация, архив, лог, страница или другой разрешённый отклик. Правила те же, что у картинок: адрес из списка разрешённых, проверка DNS без переподключения, ограничение на редиректы, время и размер ответа. Логин и токен инструмент у модели не спрашивает — доступ выбирает развёртывание.",
|
|
206
295
|
],
|
|
207
296
|
},
|
|
208
297
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QaChangelog.js","sourceRoot":"","sources":["../../../src/client/components/QaChangelog.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"QaChangelog.js","sourceRoot":"","sources":["../../../src/client/components/QaChangelog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useRef, useState } from "react";
|
|
3
|
+
import { createPortal } from "react-dom";
|
|
4
|
+
/** Quiet actions attached to one owned chat, outside the conversation header. */
|
|
5
|
+
export function QaChatActions(props) {
|
|
6
|
+
const [open, setOpen] = useState(false);
|
|
7
|
+
const root = useRef(null);
|
|
8
|
+
const trigger = useRef(null);
|
|
9
|
+
const menu = useRef(null);
|
|
10
|
+
const [position, setPosition] = useState({ left: 0, top: 0 });
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
if (!open)
|
|
13
|
+
return;
|
|
14
|
+
const outside = (event) => {
|
|
15
|
+
if (!root.current?.contains(event.target) &&
|
|
16
|
+
!menu.current?.contains(event.target))
|
|
17
|
+
setOpen(false);
|
|
18
|
+
};
|
|
19
|
+
document.addEventListener("pointerdown", outside);
|
|
20
|
+
return () => document.removeEventListener("pointerdown", outside);
|
|
21
|
+
}, [open]);
|
|
22
|
+
return (_jsxs("div", { ref: root, className: "dsh-qa-chat-actions", onKeyDown: (event) => {
|
|
23
|
+
if (event.key !== "Escape" || !open)
|
|
24
|
+
return;
|
|
25
|
+
event.stopPropagation();
|
|
26
|
+
setOpen(false);
|
|
27
|
+
trigger.current?.focus();
|
|
28
|
+
}, onBlur: (event) => {
|
|
29
|
+
if (!event.currentTarget.contains(event.relatedTarget) &&
|
|
30
|
+
!menu.current?.contains(event.relatedTarget))
|
|
31
|
+
setOpen(false);
|
|
32
|
+
}, children: [_jsx("button", { ref: trigger, type: "button", className: "dsh-qa-chat-actions__trigger", "aria-label": `Действия чата ${props.name}`, title: "\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u0447\u0430\u0442\u0430", "aria-expanded": open, onClick: () => {
|
|
33
|
+
const box = trigger.current?.getBoundingClientRect();
|
|
34
|
+
if (box)
|
|
35
|
+
setPosition({
|
|
36
|
+
left: Math.max(8, box.right - 180),
|
|
37
|
+
top: Math.max(8, Math.min(box.bottom + 6, window.innerHeight - 100)),
|
|
38
|
+
});
|
|
39
|
+
setOpen(!open);
|
|
40
|
+
}, children: _jsxs("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", children: [_jsx("circle", { cx: "3", cy: "8", r: "1" }), _jsx("circle", { cx: "8", cy: "8", r: "1" }), _jsx("circle", { cx: "13", cy: "8", r: "1" })] }) }), open
|
|
41
|
+
? createPortal(_jsxs("div", { ref: menu, style: position, className: "dsh-qa-chat-actions__menu", role: "group", "aria-label": "\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u0447\u0430\u0442\u0430", children: [_jsx("button", { type: "button", onClick: () => {
|
|
42
|
+
setOpen(false);
|
|
43
|
+
trigger.current?.focus();
|
|
44
|
+
props.onShare();
|
|
45
|
+
}, children: "\u041F\u043E\u0434\u0435\u043B\u0438\u0442\u044C\u0441\u044F \u0447\u0430\u0442\u043E\u043C" }), props.onDelete === undefined ? null : (_jsx("button", { type: "button", onClick: () => {
|
|
46
|
+
setOpen(false);
|
|
47
|
+
if (trigger.current)
|
|
48
|
+
props.onDelete?.(trigger.current);
|
|
49
|
+
}, children: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0447\u0430\u0442" }))] }), document.body)
|
|
50
|
+
: null] }));
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=QaChatActions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QaChatActions.js","sourceRoot":"","sources":["../../../src/client/components/QaChatActions.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
import { QaModal } from "./QaModal.js";
|
|
4
|
+
export const qaChatModeLabel = (mode) => mode === "owner"
|
|
5
|
+
? "Владелец"
|
|
6
|
+
: mode === "read"
|
|
7
|
+
? "Только чтение"
|
|
8
|
+
: "Совместная работа";
|
|
9
|
+
export function QaChatSharing(props) {
|
|
10
|
+
const open = props.open;
|
|
11
|
+
const [grants, setGrants] = useState([]);
|
|
12
|
+
const [email, setEmail] = useState("");
|
|
13
|
+
const [mode, setMode] = useState("read");
|
|
14
|
+
const [busy, setBusy] = useState(false);
|
|
15
|
+
const [error, setError] = useState(null);
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
if (!open || props.access.mode !== "owner")
|
|
18
|
+
return;
|
|
19
|
+
let active = true;
|
|
20
|
+
setBusy(true);
|
|
21
|
+
setError(null);
|
|
22
|
+
void props.api
|
|
23
|
+
.grants(props.token, props.access.sessionId)
|
|
24
|
+
.then((result) => {
|
|
25
|
+
if (!active)
|
|
26
|
+
return;
|
|
27
|
+
if (result.ok)
|
|
28
|
+
setGrants(result.value);
|
|
29
|
+
else
|
|
30
|
+
setError("Не удалось прочитать права доступа.");
|
|
31
|
+
})
|
|
32
|
+
.catch(() => {
|
|
33
|
+
if (active)
|
|
34
|
+
setError("Не удалось прочитать права доступа.");
|
|
35
|
+
})
|
|
36
|
+
.finally(() => {
|
|
37
|
+
if (active)
|
|
38
|
+
setBusy(false);
|
|
39
|
+
});
|
|
40
|
+
return () => {
|
|
41
|
+
active = false;
|
|
42
|
+
};
|
|
43
|
+
}, [open, props.api, props.token, props.access.sessionId, props.access.mode]);
|
|
44
|
+
const update = async (address, next) => {
|
|
45
|
+
if (busy)
|
|
46
|
+
return;
|
|
47
|
+
setBusy(true);
|
|
48
|
+
setError(null);
|
|
49
|
+
try {
|
|
50
|
+
const result = await props.api.set(props.token, props.access.sessionId, address, next);
|
|
51
|
+
if (result.ok) {
|
|
52
|
+
setGrants(result.value);
|
|
53
|
+
setEmail("");
|
|
54
|
+
}
|
|
55
|
+
else
|
|
56
|
+
setError("Не удалось изменить доступ. Проверьте адрес существующего аккаунта.");
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
setError("Не удалось изменить доступ. Попробуйте ещё раз.");
|
|
60
|
+
}
|
|
61
|
+
finally {
|
|
62
|
+
setBusy(false);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
if (props.access.mode !== "owner")
|
|
66
|
+
return null;
|
|
67
|
+
return (_jsx(QaModal, { open: open, title: "\u0414\u043E\u0441\u0442\u0443\u043F \u043A \u0447\u0430\u0442\u0443", closeLabel: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0434\u043E\u0441\u0442\u0443\u043F \u043A \u0447\u0430\u0442\u0443", onClose: props.onClose, children: _jsxs("div", { className: "dsh-qa-sharing__body", children: [_jsx("p", { className: "dsh-qa-sharing__intro", children: "\u0414\u043E\u0441\u0442\u0443\u043F \u0434\u043B\u044F \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0445 \u0430\u043A\u043A\u0430\u0443\u043D\u0442\u043E\u0432: \u0438\u0441\u0442\u043E\u0440\u0438\u044F, \u043E\u0442\u0432\u0435\u0442\u044B \u0438 \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u044B \u044D\u0442\u043E\u0433\u043E \u0447\u0430\u0442\u0430." }), _jsxs("details", { className: "dsh-qa-sharing__details", children: [_jsx("summary", { children: "\u041A\u0430\u043A \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u0441\u043E\u0432\u043C\u0435\u0441\u0442\u043D\u044B\u0439 \u0434\u043E\u0441\u0442\u0443\u043F" }), _jsx("p", { children: "\u041F\u043E\u043C\u043E\u0449\u043D\u0438\u043A \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442 \u043C\u043E\u0434\u0435\u043B\u044C \u0438 \u0443\u0447\u0451\u0442\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435 \u0432\u043B\u0430\u0434\u0435\u043B\u044C\u0446\u0430. \u0412 \u0445\u043E\u0434\u0435 \u0441\u043E\u0430\u0432\u0442\u043E\u0440\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044E\u0442 \u0442\u043E\u043B\u044C\u043A\u043E \u043E\u0431\u0449\u0438\u0435 \u0434\u043B\u044F \u043D\u0435\u0433\u043E \u0438 \u0447\u0430\u0442\u0430 \u043F\u0440\u0430\u0432\u0430; \u043B\u0438\u0447\u043D\u044B\u0435 \u0438\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0432\u043B\u0430\u0434\u0435\u043B\u044C\u0446\u0430 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B. \u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B, \u043A\u043E\u0442\u043E\u0440\u044B\u043C \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0434\u043E\u0441\u0442\u0443\u043F \u043A \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043C \u0432\u043B\u0430\u0434\u0435\u043B\u044C\u0446\u0430, \u0441\u043C\u043E\u0436\u0435\u0442 \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C \u0432\u043B\u0430\u0434\u0435\u043B\u0435\u0446. \u0421\u043E\u0433\u043B\u0430\u0441\u043E\u0432\u0430\u043D\u0438\u0435 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u0438 \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u0447\u0430\u0442\u043E\u043C \u043E\u0441\u0442\u0430\u044E\u0442\u0441\u044F \u0443 \u0432\u043B\u0430\u0434\u0435\u043B\u044C\u0446\u0430. \u0420\u0430\u0431\u043E\u0447\u0430\u044F \u043F\u0430\u043F\u043A\u0430 \u0446\u0435\u043B\u0438\u043A\u043E\u043C \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u0430\u043C \u043D\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0430." })] }), _jsxs("form", { className: "dsh-qa-sharing__form", onSubmit: (event) => {
|
|
68
|
+
event.preventDefault();
|
|
69
|
+
void update(email.trim(), mode);
|
|
70
|
+
}, children: [_jsxs("label", { children: ["\u0410\u0434\u0440\u0435\u0441 \u0430\u043A\u043A\u0430\u0443\u043D\u0442\u0430", _jsx("input", { type: "email", required: true, value: email, onChange: (event) => setEmail(event.target.value), disabled: busy, autoComplete: "off" })] }), _jsxs("label", { children: ["\u0420\u0435\u0436\u0438\u043C \u0434\u043E\u0441\u0442\u0443\u043F\u0430", _jsxs("select", { value: mode, onChange: (event) => setMode(event.target.value), disabled: busy, children: [_jsx("option", { value: "read", children: "\u0422\u043E\u043B\u044C\u043A\u043E \u0447\u0442\u0435\u043D\u0438\u0435" }), _jsx("option", { value: "collaborate", children: "\u0421\u043E\u0432\u043C\u0435\u0441\u0442\u043D\u0430\u044F \u0440\u0430\u0431\u043E\u0442\u0430" })] })] }), _jsx("button", { className: "dsh-qa-btn", type: "submit", disabled: busy || email.trim() === "", children: "\u041F\u0440\u0435\u0434\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0434\u043E\u0441\u0442\u0443\u043F" })] }), error === null ? null : _jsx("p", { role: "alert", children: error }), _jsx("ul", { className: "dsh-qa-sharing__people", children: grants.map((grant) => (_jsxs("li", { children: [_jsxs("span", { children: [grant.displayName, _jsx("small", { children: grant.email })] }), _jsxs("select", { "aria-label": `Режим доступа: ${grant.displayName}`, value: grant.mode, disabled: busy, onChange: (event) => {
|
|
71
|
+
void update(grant.email, event.target.value);
|
|
72
|
+
}, children: [_jsx("option", { value: "read", children: "\u0422\u043E\u043B\u044C\u043A\u043E \u0447\u0442\u0435\u043D\u0438\u0435" }), _jsx("option", { value: "collaborate", children: "\u0421\u043E\u0432\u043C\u0435\u0441\u0442\u043D\u0430\u044F \u0440\u0430\u0431\u043E\u0442\u0430" })] }), _jsx("button", { type: "button", className: "dsh-qa-btn dsh-qa-btn--ghost", disabled: busy, onClick: () => {
|
|
73
|
+
void update(grant.email, null);
|
|
74
|
+
}, children: "\u041E\u0442\u043E\u0437\u0432\u0430\u0442\u044C \u0434\u043E\u0441\u0442\u0443\u043F" })] }, grant.userId))) }), !busy && grants.length === 0 ? _jsx("p", { children: "\u0427\u0430\u0442 \u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u0442\u043E\u043B\u044C\u043A\u043E \u0432\u0430\u043C." }) : null] }) }));
|
|
75
|
+
}
|
|
76
|
+
export const QA_SHARING_STYLES = `
|
|
77
|
+
.dsh-qa-sharing__body{font-size:13px;color:var(--dsw-alias-label-secondary)}
|
|
78
|
+
.dsh-qa-sharing__intro{margin:0 0 8px;line-height:1.5}
|
|
79
|
+
.dsh-qa-sharing__details{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:1.5}
|
|
80
|
+
.dsh-qa-sharing__details summary{cursor:pointer}
|
|
81
|
+
.dsh-qa-sharing__body .dsh-qa-btn{appearance:none;cursor:pointer;min-height:36px;font:inherit;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:8px;padding:7px 12px}
|
|
82
|
+
.dsh-qa-sharing__body .dsh-qa-btn:hover{background:var(--dsw-alias-bg-layer-3)}
|
|
83
|
+
.dsh-qa-sharing__body .dsh-qa-btn:disabled{cursor:default;opacity:.55}
|
|
84
|
+
.dsh-qa-sharing__body .dsh-qa-btn:focus-visible{outline:var(--dsw-focus-ring-width,2px) solid var(--dsw-focus-ring-color,var(--dsw-alias-brand-primary));outline-offset:2px}
|
|
85
|
+
.dsh-qa-sharing__form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,160px);gap:12px;margin:20px 0}
|
|
86
|
+
.dsh-qa-sharing__form>.dsh-qa-btn{grid-column:1/-1;justify-self:start}
|
|
87
|
+
.dsh-qa-sharing__body label{display:flex;flex-direction:column;gap:6px}
|
|
88
|
+
.dsh-qa-sharing__body input,.dsh-qa-sharing__body select{font:inherit;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:8px;padding:8px;min-width:0;max-width:100%}
|
|
89
|
+
.dsh-qa-sharing__people{list-style:none;padding:0;margin:16px 0}
|
|
90
|
+
.dsh-qa-sharing__people li{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px 0;border-top:1px solid var(--dsw-alias-border-l2)}
|
|
91
|
+
.dsh-qa-sharing__people span{flex:1;min-width:140px;overflow-wrap:anywhere}
|
|
92
|
+
.dsh-qa-sharing__people small{display:block;color:var(--dsw-alias-label-tertiary)}
|
|
93
|
+
@media(max-width:480px){.dsh-qa-sharing__form{grid-template-columns:minmax(0,1fr)}}
|
|
94
|
+
`;
|
|
95
|
+
//# sourceMappingURL=QaChatSharing.js.map
|