@yadsh/dsh-qa-surface 0.6.0 → 0.7.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 +148 -9
- package/capability-policy.json +1 -1
- package/cordis.patch.yml +2 -1
- package/lib/access/capability-catalog.js +144 -0
- package/lib/access/capability-catalog.js.map +1 -0
- package/lib/access/model.js +379 -0
- package/lib/access/model.js.map +1 -0
- package/lib/access/role-repository.js +195 -0
- package/lib/access/role-repository.js.map +1 -0
- package/lib/access/service.js +380 -0
- package/lib/access/service.js.map +1 -0
- package/lib/access/skill-metadata.js +234 -0
- package/lib/access/skill-metadata.js.map +1 -0
- package/lib/account-remotes.js +20 -10
- package/lib/account-remotes.js.map +1 -1
- package/lib/accounts/errors.js.map +1 -1
- package/lib/accounts/file.js.map +1 -1
- package/lib/accounts/store.js +202 -3
- package/lib/accounts/store.js.map +1 -1
- package/lib/admin/conversation-log.js +256 -0
- package/lib/admin/conversation-log.js.map +1 -0
- package/lib/admin/index.js +17 -0
- package/lib/admin/index.js.map +1 -0
- package/lib/admin/metrics.js +103 -0
- package/lib/admin/metrics.js.map +1 -0
- package/lib/admin/paging.js +23 -0
- package/lib/admin/paging.js.map +1 -0
- package/lib/admin/permissions.js +50 -0
- package/lib/admin/permissions.js.map +1 -0
- package/lib/admin/quality-store.js +485 -0
- package/lib/admin/quality-store.js.map +1 -0
- package/lib/admin/queue.js +107 -0
- package/lib/admin/queue.js.map +1 -0
- package/lib/admin/redaction.js +45 -0
- package/lib/admin/redaction.js.map +1 -0
- package/lib/admin/service.js +897 -0
- package/lib/admin/service.js.map +1 -0
- package/lib/admin/session-log.js +142 -0
- package/lib/admin/session-log.js.map +1 -0
- package/lib/attestation.js +6 -0
- package/lib/attestation.js.map +1 -1
- package/lib/cli.js +9 -6
- package/lib/cli.js.map +1 -1
- package/lib/client/QaSessionController.js +65 -15
- package/lib/client/QaSessionController.js.map +1 -1
- package/lib/client/QaSurface.js +144 -6
- package/lib/client/QaSurface.js.map +1 -1
- package/lib/client/QaTranscriptAdapter.js +1 -0
- package/lib/client/QaTranscriptAdapter.js.map +1 -1
- package/lib/client/admin/QaAdmin.js +458 -0
- package/lib/client/admin/QaAdmin.js.map +1 -0
- package/lib/client/admin/format.js +177 -0
- package/lib/client/admin/format.js.map +1 -0
- package/lib/client/admin/pages/Conversations.js +114 -0
- package/lib/client/admin/pages/Conversations.js.map +1 -0
- package/lib/client/admin/pages/Overview.js +24 -0
- package/lib/client/admin/pages/Overview.js.map +1 -0
- package/lib/client/admin/pages/Quality.js +71 -0
- package/lib/client/admin/pages/Quality.js.map +1 -0
- package/lib/client/admin/pages/Review.js +93 -0
- package/lib/client/admin/pages/Review.js.map +1 -0
- package/lib/client/admin/pages/Users.js +95 -0
- package/lib/client/admin/pages/Users.js.map +1 -0
- package/lib/client/admin/routes.js +127 -0
- package/lib/client/admin/routes.js.map +1 -0
- package/lib/client/admin/shared.js +91 -0
- package/lib/client/admin/shared.js.map +1 -0
- package/lib/client/admin/styles.js +111 -0
- package/lib/client/admin/styles.js.map +1 -0
- package/lib/client/attestation.js +14 -2
- package/lib/client/attestation.js.map +1 -1
- package/lib/client/components/QaChangelog.js +48 -0
- package/lib/client/components/QaChangelog.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/QaMessage.js +61 -2
- package/lib/client/components/QaMessage.js.map +1 -1
- package/lib/client/create-session.js +1 -1
- package/lib/client/create-session.js.map +1 -1
- package/lib/client/index.js +33 -1
- package/lib/client/index.js.map +1 -1
- package/lib/client/project-session-state.js +10 -5
- package/lib/client/project-session-state.js.map +1 -1
- package/lib/client/role/RoleSelector.js +31 -0
- package/lib/client/role/RoleSelector.js.map +1 -0
- package/lib/client/session-sources.js +37 -1
- package/lib/client/session-sources.js.map +1 -1
- package/lib/client/settings/card.js +2 -2
- package/lib/client/settings/card.js.map +1 -1
- package/lib/client/settings/sections.js +0 -1
- package/lib/client/settings/sections.js.map +1 -1
- package/lib/client/styles.js +32 -0
- package/lib/client/styles.js.map +1 -1
- package/lib/client/types.js +1 -0
- package/lib/client/types.js.map +1 -1
- package/lib/client.js +10786 -5684
- package/lib/client.js.map +1 -1
- package/lib/config-resolvers/defaults.js +0 -2
- package/lib/config-resolvers/defaults.js.map +1 -1
- package/lib/config.js +0 -249
- package/lib/config.js.map +1 -1
- package/lib/enforcement/skill-policy.js +172 -0
- package/lib/enforcement/skill-policy.js.map +1 -0
- package/lib/enforcement/tool-grants.js +151 -0
- package/lib/enforcement/tool-grants.js.map +1 -0
- package/lib/index.js +230 -44
- package/lib/index.js.map +1 -1
- package/lib/personal-skills/service.js +10 -3
- package/lib/personal-skills/service.js.map +1 -1
- package/lib/qa-tools/index.js +4 -0
- package/lib/qa-tools/index.js.map +1 -1
- package/lib/resolve-config.js +0 -2
- package/lib/resolve-config.js.map +1 -1
- package/lib/secure-session.js +111 -32
- package/lib/secure-session.js.map +1 -1
- package/lib/typert.host.js +2237 -202
- package/lib/typert.remote-client.d.ts +49 -3
- package/lib/typert.remote-client.js +1863 -183
- package/lib/types/access/capability-catalog.d.ts +37 -0
- package/lib/types/access/model.d.ts +60 -0
- package/lib/types/access/role-repository.d.ts +32 -0
- package/lib/types/access/service.d.ts +57 -0
- package/lib/types/access/skill-metadata.d.ts +53 -0
- package/lib/types/account-remotes.d.ts +6 -0
- package/lib/types/accounts/errors.d.ts +1 -1
- package/lib/types/accounts/file.d.ts +16 -5
- package/lib/types/accounts/store.d.ts +83 -3
- package/lib/types/admin/conversation-log.d.ts +39 -0
- package/lib/types/admin/index.d.ts +24 -0
- package/lib/types/admin/metrics.d.ts +29 -0
- package/lib/types/admin/paging.d.ts +33 -0
- package/lib/types/admin/permissions.d.ts +10 -0
- package/lib/types/admin/quality-store.d.ts +82 -0
- package/lib/types/admin/queue.d.ts +21 -0
- package/lib/types/admin/redaction.d.ts +29 -0
- package/lib/types/admin/service.d.ts +105 -0
- package/lib/types/admin/session-log.d.ts +53 -0
- package/lib/types/attestation.d.ts +2 -0
- package/lib/types/client/QaSessionController.d.ts +14 -1
- package/lib/types/client/QaSurface.d.ts +7 -1
- package/lib/types/client/admin/QaAdmin.d.ts +17 -0
- package/lib/types/client/admin/format.d.ts +43 -0
- package/lib/types/client/admin/pages/Conversations.d.ts +21 -0
- package/lib/types/client/admin/pages/Overview.d.ts +13 -0
- package/lib/types/client/admin/pages/Quality.d.ts +18 -0
- package/lib/types/client/admin/pages/Review.d.ts +15 -0
- package/lib/types/client/admin/pages/Users.d.ts +22 -0
- package/lib/types/client/admin/routes.d.ts +50 -0
- package/lib/types/client/admin/shared.d.ts +53 -0
- package/lib/types/client/admin/styles.d.ts +11 -0
- package/lib/types/client/attestation.d.ts +8 -1
- package/lib/types/client/components/QaHeader.d.ts +5 -1
- package/lib/types/client/components/QaMessage.d.ts +14 -1
- package/lib/types/client/create-session.d.ts +2 -0
- package/lib/types/client/project-session-state.d.ts +2 -0
- package/lib/types/client/role/RoleSelector.d.ts +14 -0
- package/lib/types/client/session-sources.d.ts +9 -0
- package/lib/types/client/settings/sections.d.ts +0 -1
- package/lib/types/client/types.d.ts +39 -2
- package/lib/types/enforcement/skill-policy.d.ts +29 -0
- package/lib/types/enforcement/tool-grants.d.ts +84 -0
- package/lib/types/index.d.ts +62 -14
- package/lib/types/qa-tools/index.d.ts +2 -0
- package/lib/types/secure-session.d.ts +19 -1
- package/lib/types/types.d.ts +574 -5
- package/package.json +3 -3
- package/lib/client/settings/sections/documents.js +0 -88
- package/lib/client/settings/sections/documents.js.map +0 -1
- package/lib/documents/artifacts/ids.js +0 -43
- package/lib/documents/artifacts/ids.js.map +0 -1
- package/lib/documents/artifacts/manifest.js +0 -66
- package/lib/documents/artifacts/manifest.js.map +0 -1
- package/lib/documents/artifacts/store.js +0 -169
- package/lib/documents/artifacts/store.js.map +0 -1
- package/lib/documents/capabilities.js +0 -93
- package/lib/documents/capabilities.js.map +0 -1
- package/lib/documents/config.js +0 -302
- package/lib/documents/config.js.map +0 -1
- package/lib/documents/defaults.js +0 -78
- package/lib/documents/defaults.js.map +0 -1
- package/lib/documents/errors.js +0 -101
- package/lib/documents/errors.js.map +0 -1
- package/lib/documents/index.js +0 -80
- package/lib/documents/index.js.map +0 -1
- package/lib/documents/inspect/facts.js +0 -161
- package/lib/documents/inspect/facts.js.map +0 -1
- package/lib/documents/inspect/zip.js +0 -108
- package/lib/documents/inspect/zip.js.map +0 -1
- package/lib/documents/markdown/directives.js +0 -135
- package/lib/documents/markdown/directives.js.map +0 -1
- package/lib/documents/markdown/frontmatter.js +0 -35
- package/lib/documents/markdown/frontmatter.js.map +0 -1
- package/lib/documents/markdown/normalize.js +0 -113
- package/lib/documents/markdown/normalize.js.map +0 -1
- package/lib/documents/orchestrator/assets.js +0 -243
- package/lib/documents/orchestrator/assets.js.map +0 -1
- package/lib/documents/orchestrator/convert-document.js +0 -186
- package/lib/documents/orchestrator/convert-document.js.map +0 -1
- package/lib/documents/orchestrator/create-document.js +0 -292
- package/lib/documents/orchestrator/create-document.js.map +0 -1
- package/lib/documents/orchestrator/extract-document.js +0 -162
- package/lib/documents/orchestrator/extract-document.js.map +0 -1
- package/lib/documents/orchestrator/inspect-document.js +0 -89
- package/lib/documents/orchestrator/inspect-document.js.map +0 -1
- package/lib/documents/orchestrator/runtime-deps.js +0 -59
- package/lib/documents/orchestrator/runtime-deps.js.map +0 -1
- package/lib/documents/orchestrator/scope.js +0 -132
- package/lib/documents/orchestrator/scope.js.map +0 -1
- package/lib/documents/providers/docling.js +0 -247
- package/lib/documents/providers/docling.js.map +0 -1
- package/lib/documents/providers/libreoffice.js +0 -130
- package/lib/documents/providers/libreoffice.js.map +0 -1
- package/lib/documents/providers/markitdown.js +0 -89
- package/lib/documents/providers/markitdown.js.map +0 -1
- package/lib/documents/providers/pandoc.js +0 -161
- package/lib/documents/providers/pandoc.js.map +0 -1
- package/lib/documents/providers/process.js +0 -164
- package/lib/documents/providers/process.js.map +0 -1
- package/lib/documents/providers/registry.js +0 -152
- package/lib/documents/providers/registry.js.map +0 -1
- package/lib/documents/providers/shared.js +0 -75
- package/lib/documents/providers/shared.js.map +0 -1
- package/lib/documents/runtime.js +0 -114
- package/lib/documents/runtime.js.map +0 -1
- package/lib/documents/security/file-types.js +0 -188
- package/lib/documents/security/file-types.js.map +0 -1
- package/lib/documents/security/limits.js +0 -78
- package/lib/documents/security/limits.js.map +0 -1
- package/lib/documents/security/mime.js +0 -43
- package/lib/documents/security/mime.js.map +0 -1
- package/lib/documents/security/paths.js +0 -133
- package/lib/documents/security/paths.js.map +0 -1
- package/lib/documents/templates/registry.js +0 -147
- package/lib/documents/templates/registry.js.map +0 -1
- package/lib/documents/templates/resolver.js +0 -59
- package/lib/documents/templates/resolver.js.map +0 -1
- package/lib/documents/tools/convert.js +0 -125
- package/lib/documents/tools/convert.js.map +0 -1
- package/lib/documents/tools/create.js +0 -187
- package/lib/documents/tools/create.js.map +0 -1
- package/lib/documents/tools/index.js +0 -41
- package/lib/documents/tools/index.js.map +0 -1
- package/lib/documents/tools/inspect.js +0 -135
- package/lib/documents/tools/inspect.js.map +0 -1
- package/lib/documents/tools/shared.js +0 -88
- package/lib/documents/tools/shared.js.map +0 -1
- package/lib/documents/tools/to-markdown.js +0 -125
- package/lib/documents/tools/to-markdown.js.map +0 -1
- package/lib/documents/types.js +0 -12
- package/lib/documents/types.js.map +0 -1
- package/lib/types/client/settings/sections/documents.d.ts +0 -13
- package/lib/types/documents/artifacts/ids.d.ts +0 -14
- package/lib/types/documents/artifacts/manifest.d.ts +0 -32
- package/lib/types/documents/artifacts/store.d.ts +0 -67
- package/lib/types/documents/capabilities.d.ts +0 -32
- package/lib/types/documents/config.d.ts +0 -27
- package/lib/types/documents/defaults.d.ts +0 -161
- package/lib/types/documents/errors.d.ts +0 -42
- package/lib/types/documents/index.d.ts +0 -63
- package/lib/types/documents/inspect/facts.d.ts +0 -43
- package/lib/types/documents/inspect/zip.d.ts +0 -28
- package/lib/types/documents/markdown/directives.d.ts +0 -39
- package/lib/types/documents/markdown/frontmatter.d.ts +0 -15
- package/lib/types/documents/markdown/normalize.d.ts +0 -30
- package/lib/types/documents/orchestrator/assets.d.ts +0 -55
- package/lib/types/documents/orchestrator/convert-document.d.ts +0 -25
- package/lib/types/documents/orchestrator/create-document.d.ts +0 -18
- package/lib/types/documents/orchestrator/extract-document.d.ts +0 -24
- package/lib/types/documents/orchestrator/inspect-document.d.ts +0 -12
- package/lib/types/documents/orchestrator/runtime-deps.d.ts +0 -43
- package/lib/types/documents/orchestrator/scope.d.ts +0 -52
- package/lib/types/documents/providers/docling.d.ts +0 -54
- package/lib/types/documents/providers/libreoffice.d.ts +0 -40
- package/lib/types/documents/providers/markitdown.d.ts +0 -28
- package/lib/types/documents/providers/pandoc.d.ts +0 -42
- package/lib/types/documents/providers/process.d.ts +0 -54
- package/lib/types/documents/providers/registry.d.ts +0 -68
- package/lib/types/documents/providers/shared.d.ts +0 -27
- package/lib/types/documents/runtime.d.ts +0 -59
- package/lib/types/documents/security/file-types.d.ts +0 -39
- package/lib/types/documents/security/limits.d.ts +0 -24
- package/lib/types/documents/security/mime.d.ts +0 -13
- package/lib/types/documents/security/paths.d.ts +0 -38
- package/lib/types/documents/templates/registry.d.ts +0 -50
- package/lib/types/documents/templates/resolver.d.ts +0 -30
- package/lib/types/documents/tools/convert.d.ts +0 -9
- package/lib/types/documents/tools/create.d.ts +0 -14
- package/lib/types/documents/tools/index.d.ts +0 -33
- package/lib/types/documents/tools/inspect.d.ts +0 -9
- package/lib/types/documents/tools/shared.d.ts +0 -77
- package/lib/types/documents/tools/to-markdown.d.ts +0 -12
- package/lib/types/documents/types.d.ts +0 -294
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QaAdmin.js","sourceRoot":"","sources":["../../../src/client/admin/QaAdmin.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Russian copy for the console's vocabulary. Kept in one module so the pages
|
|
3
|
+
* stay about layout, and so the wording an operator sees is edited in one
|
|
4
|
+
* place rather than hunted across components.
|
|
5
|
+
*/
|
|
6
|
+
export const ADMIN_ROLE_LABELS = {
|
|
7
|
+
admin: "Администратор",
|
|
8
|
+
reviewer: "Ревьюер",
|
|
9
|
+
user: "Пользователь",
|
|
10
|
+
};
|
|
11
|
+
export const FEEDBACK_RATING_LABELS = {
|
|
12
|
+
positive: "Полезно",
|
|
13
|
+
negative: "Проблема",
|
|
14
|
+
};
|
|
15
|
+
export const FEEDBACK_REASON_LABELS = {
|
|
16
|
+
incorrect: "Неверный ответ",
|
|
17
|
+
instruction_not_followed: "Не выполнил инструкцию",
|
|
18
|
+
missing_information: "Не хватает информации",
|
|
19
|
+
outdated_information: "Устаревшая информация",
|
|
20
|
+
tool_issue: "Проблема с инструментом",
|
|
21
|
+
too_verbose: "Слишком подробно",
|
|
22
|
+
too_short: "Слишком кратко",
|
|
23
|
+
other: "Другое",
|
|
24
|
+
};
|
|
25
|
+
export const REVIEW_STATUS_LABELS = {
|
|
26
|
+
unreviewed: "Не разобрано",
|
|
27
|
+
in_review: "В работе",
|
|
28
|
+
reviewed: "Разобрано",
|
|
29
|
+
needs_followup: "Нужно вернуться",
|
|
30
|
+
};
|
|
31
|
+
export const REVIEW_PRIORITY_LABELS = {
|
|
32
|
+
high: "Высокий",
|
|
33
|
+
normal: "Обычный",
|
|
34
|
+
low: "Низкий",
|
|
35
|
+
};
|
|
36
|
+
export const REVIEW_REASON_LABELS = {
|
|
37
|
+
negative_feedback: "Негативная оценка",
|
|
38
|
+
manual: "Отправлено на разбор",
|
|
39
|
+
tool_failure: "Сбой инструмента",
|
|
40
|
+
automatic: "Автоматически",
|
|
41
|
+
};
|
|
42
|
+
export const SEVERITY_LABELS = {
|
|
43
|
+
minor: "Незначительная",
|
|
44
|
+
major: "Существенная",
|
|
45
|
+
critical: "Критическая",
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Issue labels grouped by the taxonomy's own branches (spec §21). The groups
|
|
49
|
+
* are only a rendering concern: issue ids stay flat so aggregations never walk
|
|
50
|
+
* a tree.
|
|
51
|
+
*/
|
|
52
|
+
export const ISSUE_GROUPS = [
|
|
53
|
+
{
|
|
54
|
+
title: "Ответ",
|
|
55
|
+
issues: [
|
|
56
|
+
"answer.incorrect",
|
|
57
|
+
"answer.incomplete",
|
|
58
|
+
"answer.hallucination",
|
|
59
|
+
"answer.request_not_followed",
|
|
60
|
+
"answer.poor_formatting",
|
|
61
|
+
"answer.communication",
|
|
62
|
+
],
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
title: "Контекст",
|
|
66
|
+
issues: [
|
|
67
|
+
"context.missing_conversation",
|
|
68
|
+
"context.missing_knowledge",
|
|
69
|
+
"context.outdated_knowledge",
|
|
70
|
+
],
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
title: "Инструменты",
|
|
74
|
+
issues: [
|
|
75
|
+
"tool.wrong_selection",
|
|
76
|
+
"tool.should_have_been_used",
|
|
77
|
+
"tool.bad_arguments",
|
|
78
|
+
"tool.failure",
|
|
79
|
+
"tool.unavailable",
|
|
80
|
+
],
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
title: "Навыки и инструкции",
|
|
84
|
+
issues: [
|
|
85
|
+
"skill.missing",
|
|
86
|
+
"skill.wrong",
|
|
87
|
+
"skill.not_followed",
|
|
88
|
+
"skill.prompt_policy",
|
|
89
|
+
],
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
title: "Доступ",
|
|
93
|
+
issues: ["access.missing_capability", "access.excessive_capability"],
|
|
94
|
+
},
|
|
95
|
+
{ title: "Прочее", issues: ["other"] },
|
|
96
|
+
];
|
|
97
|
+
export const ISSUE_LABELS = Object.fromEntries([
|
|
98
|
+
["answer.incorrect", "Неверный ответ"],
|
|
99
|
+
["answer.incomplete", "Неполный ответ"],
|
|
100
|
+
["answer.hallucination", "Выдуманные факты"],
|
|
101
|
+
["answer.request_not_followed", "Не выполнена просьба"],
|
|
102
|
+
["answer.poor_formatting", "Плохое оформление"],
|
|
103
|
+
["answer.communication", "Стиль общения"],
|
|
104
|
+
["context.missing_conversation", "Потерян контекст диалога"],
|
|
105
|
+
["context.missing_knowledge", "Не хватает знаний"],
|
|
106
|
+
["context.outdated_knowledge", "Устаревшие знания"],
|
|
107
|
+
["tool.wrong_selection", "Выбран не тот инструмент"],
|
|
108
|
+
["tool.should_have_been_used", "Инструмент не использован"],
|
|
109
|
+
["tool.bad_arguments", "Неверные аргументы инструмента"],
|
|
110
|
+
["tool.failure", "Сбой инструмента"],
|
|
111
|
+
["tool.unavailable", "Инструмент недоступен"],
|
|
112
|
+
["skill.missing", "Не хватает навыка"],
|
|
113
|
+
["skill.wrong", "Выбран не тот навык"],
|
|
114
|
+
["skill.not_followed", "Навык не соблюдён"],
|
|
115
|
+
["skill.prompt_policy", "Проблема промпта или политики"],
|
|
116
|
+
["access.missing_capability", "Не хватает возможности"],
|
|
117
|
+
["access.excessive_capability", "Лишняя возможность"],
|
|
118
|
+
["other", "Другое"],
|
|
119
|
+
]);
|
|
120
|
+
export const TARGET_LABELS = {
|
|
121
|
+
prompt: "Промпт",
|
|
122
|
+
skill: "Навык",
|
|
123
|
+
tool: "Инструмент",
|
|
124
|
+
knowledge: "База знаний",
|
|
125
|
+
model: "Модель",
|
|
126
|
+
role: "Роль или возможности",
|
|
127
|
+
product_ux: "Интерфейс",
|
|
128
|
+
user_misunderstanding: "Недопонимание пользователя",
|
|
129
|
+
unknown: "Неизвестно",
|
|
130
|
+
};
|
|
131
|
+
export const TRANSCRIPT_UNAVAILABLE_LABELS = {
|
|
132
|
+
"storage-unavailable": "Хранилище разговоров недоступно на этом стенде.",
|
|
133
|
+
"not-found": "Журнал разговора не найден.",
|
|
134
|
+
unreadable: "Журнал разговора не читается: в нём есть событие, неизвестное этой сборке.",
|
|
135
|
+
};
|
|
136
|
+
/** Percent, or a dash when there is nothing to take a share of. */
|
|
137
|
+
export function formatRate(value) {
|
|
138
|
+
return value === null ? "—" : `${Math.round(value * 100)}%`;
|
|
139
|
+
}
|
|
140
|
+
/** Local date and time of an ISO stamp, or a dash for an unusable value. */
|
|
141
|
+
export function formatStamp(iso) {
|
|
142
|
+
if (iso === undefined || iso === "")
|
|
143
|
+
return "—";
|
|
144
|
+
const parsed = Date.parse(iso);
|
|
145
|
+
return Number.isNaN(parsed) ? "—" : new Date(parsed).toLocaleString("ru-RU");
|
|
146
|
+
}
|
|
147
|
+
/** Coarse "how long ago", which is what a triage list needs. */
|
|
148
|
+
export function formatRelative(iso, now = Date.now()) {
|
|
149
|
+
const parsed = Date.parse(iso);
|
|
150
|
+
if (Number.isNaN(parsed))
|
|
151
|
+
return "—";
|
|
152
|
+
const seconds = Math.max(0, Math.round((now - parsed) / 1000));
|
|
153
|
+
if (seconds < 60)
|
|
154
|
+
return "только что";
|
|
155
|
+
const minutes = Math.round(seconds / 60);
|
|
156
|
+
if (minutes < 60)
|
|
157
|
+
return `${minutes} мин назад`;
|
|
158
|
+
const hours = Math.round(minutes / 60);
|
|
159
|
+
if (hours < 24)
|
|
160
|
+
return `${hours} ч назад`;
|
|
161
|
+
const days = Math.round(hours / 24);
|
|
162
|
+
if (days < 30)
|
|
163
|
+
return `${days} дн назад`;
|
|
164
|
+
return formatStamp(iso);
|
|
165
|
+
}
|
|
166
|
+
/** Milliseconds as a short duration; tool timings are second-scale. */
|
|
167
|
+
export function formatDuration(ms) {
|
|
168
|
+
if (ms === undefined)
|
|
169
|
+
return "";
|
|
170
|
+
if (ms < 1_000)
|
|
171
|
+
return `${ms} мс`;
|
|
172
|
+
return `${(ms / 1_000).toFixed(1)} с`;
|
|
173
|
+
}
|
|
174
|
+
export function formatCount(value) {
|
|
175
|
+
return value.toLocaleString("ru-RU");
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/client/admin/format.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useEffect, useState } from "react";
|
|
3
|
+
import { REVIEW_STATUS_LABELS, TRANSCRIPT_UNAVAILABLE_LABELS, formatCount, formatDuration, formatStamp, } from "../format.js";
|
|
4
|
+
import { Badge, Empty, FilterField, Pager, Stamp, adminErrorMessage, useAdminResource, } from "../shared.js";
|
|
5
|
+
import { ReviewPanel } from "./Review.js";
|
|
6
|
+
const PAGE_SIZE = 25;
|
|
7
|
+
/** Coarse status tone: what a triage list needs to scan at a glance. */
|
|
8
|
+
function statusTone(status) {
|
|
9
|
+
switch (status) {
|
|
10
|
+
case "reviewed":
|
|
11
|
+
return "positive";
|
|
12
|
+
case "needs_followup":
|
|
13
|
+
return "negative";
|
|
14
|
+
case "in_review":
|
|
15
|
+
return "warning";
|
|
16
|
+
default:
|
|
17
|
+
return "neutral";
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export function AdminConversations(props) {
|
|
21
|
+
const [search, setSearch] = useState("");
|
|
22
|
+
const [rating, setRating] = useState("");
|
|
23
|
+
const [reviewStatus, setReviewStatus] = useState("");
|
|
24
|
+
const [from, setFrom] = useState("");
|
|
25
|
+
const [to, setTo] = useState("");
|
|
26
|
+
const [rows, setRows] = useState([]);
|
|
27
|
+
const [cursor, setCursor] = useState(null);
|
|
28
|
+
const [total, setTotal] = useState(0);
|
|
29
|
+
const [error, setError] = useState();
|
|
30
|
+
const [loading, setLoading] = useState(true);
|
|
31
|
+
const load = useCallback(async (next, append) => {
|
|
32
|
+
setLoading(true);
|
|
33
|
+
const query = {
|
|
34
|
+
userId: props.userId ?? null,
|
|
35
|
+
search: search === "" ? null : search,
|
|
36
|
+
rating: rating === "" ? null : rating,
|
|
37
|
+
reviewStatus: reviewStatus === "" ? null : reviewStatus,
|
|
38
|
+
from: from === "" ? null : new Date(from).toISOString(),
|
|
39
|
+
to: to === "" ? null : new Date(`${to}T23:59:59.999Z`).toISOString(),
|
|
40
|
+
};
|
|
41
|
+
const result = await props.api.conversations(props.token, query, next, PAGE_SIZE);
|
|
42
|
+
setLoading(false);
|
|
43
|
+
if (!result.ok) {
|
|
44
|
+
setError(adminErrorMessage(result.error));
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
setError(undefined);
|
|
48
|
+
setTotal(result.value.total);
|
|
49
|
+
setCursor(result.value.nextCursor);
|
|
50
|
+
setRows((current) => append ? [...current, ...result.value.items] : result.value.items);
|
|
51
|
+
}, [
|
|
52
|
+
props.api,
|
|
53
|
+
props.token,
|
|
54
|
+
props.userId,
|
|
55
|
+
search,
|
|
56
|
+
rating,
|
|
57
|
+
reviewStatus,
|
|
58
|
+
from,
|
|
59
|
+
to,
|
|
60
|
+
]);
|
|
61
|
+
useEffect(() => {
|
|
62
|
+
void load(null, false);
|
|
63
|
+
}, [load]);
|
|
64
|
+
return (_jsxs("section", { className: "dsh-qa-admin__page", "aria-label": "\u0420\u0430\u0437\u0433\u043E\u0432\u043E\u0440\u044B", children: [_jsx("div", { className: "dsh-qa-admin__title-row", children: _jsxs("div", { children: [_jsx("h1", { children: "\u0420\u0430\u0437\u0433\u043E\u0432\u043E\u0440\u044B" }), _jsx("p", { children: props.userId === undefined
|
|
65
|
+
? "Все разговоры стенда."
|
|
66
|
+
: "Разговоры одного пользователя." })] }) }), _jsxs("div", { className: "dsh-qa-admin__filters", children: [_jsx(FilterField, { label: "\u041F\u043E\u0438\u0441\u043A", children: _jsx("input", { type: "search", value: search, placeholder: "\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A, \u0438\u043C\u044F \u0438\u043B\u0438 \u0430\u0434\u0440\u0435\u0441", onChange: (event) => setSearch(event.currentTarget.value) }) }), _jsx(FilterField, { label: "\u041E\u0446\u0435\u043D\u043A\u0430", children: _jsxs("select", { value: rating, onChange: (event) => setRating(event.currentTarget.value), children: [_jsx("option", { value: "", children: "\u041B\u044E\u0431\u0430\u044F" }), _jsx("option", { value: "positive", children: "\u0415\u0441\u0442\u044C \uD83D\uDC4D" }), _jsx("option", { value: "negative", children: "\u0415\u0441\u0442\u044C \uD83D\uDC4E" })] }) }), _jsx(FilterField, { label: "\u0420\u0430\u0437\u0431\u043E\u0440", children: _jsxs("select", { value: reviewStatus, onChange: (event) => setReviewStatus(event.currentTarget.value), children: [_jsx("option", { value: "", children: "\u041B\u044E\u0431\u043E\u0439" }), _jsx("option", { value: "unreviewed", children: "\u041D\u0435 \u0440\u0430\u0437\u043E\u0431\u0440\u0430\u043D\u043E" }), _jsx("option", { value: "reviewed", children: "\u0420\u0430\u0437\u043E\u0431\u0440\u0430\u043D\u043E" }), _jsx("option", { value: "needs_followup", children: "\u041D\u0443\u0436\u043D\u043E \u0432\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F" })] }) }), _jsx(FilterField, { label: "\u0421 \u0434\u0430\u0442\u044B", children: _jsx("input", { type: "date", value: from, onChange: (event) => setFrom(event.currentTarget.value) }) }), _jsx(FilterField, { label: "\u041F\u043E \u0434\u0430\u0442\u0443", children: _jsx("input", { type: "date", value: to, onChange: (event) => setTo(event.currentTarget.value) }) })] }), error === undefined ? null : (_jsx("p", { className: "dsh-qa-admin__error", role: "alert", children: error })), rows.length === 0 ? (_jsx("p", { className: "dsh-qa-admin__empty", children: loading ? "Загружаю…" : "Ничего не нашлось." })) : (_jsxs("table", { className: "dsh-qa-admin__table", children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", { children: "\u0420\u0430\u0437\u0433\u043E\u0432\u043E\u0440" }), _jsx("th", { children: "\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C" }), _jsx("th", { children: "\u041F\u0440\u043E\u0444\u0438\u043B\u044C" }), _jsx("th", { children: "\u041D\u0430\u0447\u0430\u0442" }), _jsx("th", { children: "\u0410\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u044C" }), _jsx("th", { children: "\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F" }), _jsx("th", { children: "\u041E\u0446\u0435\u043D\u043A\u0438" }), _jsx("th", { children: "\u0420\u0430\u0437\u0431\u043E\u0440" }), _jsx("th", {})] }) }), _jsx("tbody", { children: rows.map((row) => (_jsxs("tr", { children: [_jsxs("td", { children: [_jsx("strong", { children: row.title ?? "Без заголовка" }), _jsx("small", { children: row.conversationId })] }), _jsx("td", { children: row.displayName }), _jsx("td", { children: row.subroleId === "" ? "—" : row.subroleId }), _jsx("td", { children: formatStamp(row.createdAt) }), _jsx("td", { children: _jsx(Stamp, { value: row.updatedAt }) }), _jsx("td", { children: formatCount(row.messageCount) }), _jsxs("td", { children: ["\uD83D\uDC4D ", formatCount(row.positiveFeedback), " \u00B7 \uD83D\uDC4E", " ", formatCount(row.negativeFeedback)] }), _jsx("td", { children: _jsx(Badge, { tone: statusTone(row.reviewStatus), children: REVIEW_STATUS_LABELS[row.reviewStatus] }) }), _jsx("td", { children: _jsx("button", { type: "button", onClick: () => props.onOpenConversation(row.conversationId), children: "\u041E\u0442\u043A\u0440\u044B\u0442\u044C" }) })] }, row.conversationId))) })] })), _jsx(Pager, { total: total, shown: rows.length, hasMore: cursor !== null, loading: loading, onMore: () => void load(cursor, true), onReset: () => void load(null, false) })] }));
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* The review viewer: the conversation as it happened, next to the reviewer's
|
|
70
|
+
* form. Tool calls collapse by default — a reviewer looking for "the tool
|
|
71
|
+
* failed" should not have to scroll past every argument to find it.
|
|
72
|
+
*/
|
|
73
|
+
export function AdminConversation(props) {
|
|
74
|
+
const resource = useAdminResource(() => props.api.conversation(props.token, props.conversationId), [props.api, props.token, props.conversationId]);
|
|
75
|
+
const detail = resource.data;
|
|
76
|
+
if (resource.error !== undefined) {
|
|
77
|
+
return (_jsxs("section", { className: "dsh-qa-admin__page", children: [_jsx("p", { className: "dsh-qa-admin__error", role: "alert", children: adminErrorMessage(resource.error) }), _jsx("button", { type: "button", onClick: props.onBack, children: "\u041A \u0441\u043F\u0438\u0441\u043A\u0443" })] }));
|
|
78
|
+
}
|
|
79
|
+
if (detail === undefined) {
|
|
80
|
+
return (_jsx("section", { className: "dsh-qa-admin__page", children: _jsx("p", { className: "dsh-qa-admin__empty", children: "\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u044E \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440\u2026" }) }));
|
|
81
|
+
}
|
|
82
|
+
return (_jsxs("section", { className: "dsh-qa-admin__page", "aria-label": "\u0420\u0430\u0437\u0433\u043E\u0432\u043E\u0440", children: [_jsx("div", { className: "dsh-qa-admin__title-row", children: _jsxs("div", { children: [_jsx("button", { type: "button", onClick: props.onBack, children: "\u2190 \u0420\u0430\u0437\u0433\u043E\u0432\u043E\u0440\u044B" }), _jsx("h1", { children: detail.summary.title ?? "Без заголовка" }), _jsxs("p", { children: [detail.summary.displayName, " \u00B7", " ", detail.runtime.subroleId === ""
|
|
83
|
+
? "профиль неизвестен"
|
|
84
|
+
: detail.runtime.subroleId, " ", "\u00B7 ", formatStamp(detail.summary.createdAt), detail.runtime.model === undefined
|
|
85
|
+
? ""
|
|
86
|
+
: ` · ${detail.runtime.provider ?? ""} ${detail.runtime.model}`, detail.runtime.agentPreset === undefined
|
|
87
|
+
? ""
|
|
88
|
+
: ` · пресет ${detail.runtime.agentPreset}`, detail.runtime.adminPreview ? " · предпросмотр роли" : ""] })] }) }), _jsxs("div", { className: "dsh-qa-admin__conversation", children: [_jsxs("div", { className: "dsh-qa-admin__transcript", children: [detail.runtime.transcriptUnavailable === undefined ? null : (_jsx("p", { className: "dsh-qa-admin__error", role: "alert", children: TRANSCRIPT_UNAVAILABLE_LABELS[detail.runtime.transcriptUnavailable] })), _jsx(RuntimeFacts, { detail: detail }), detail.messages.length === 0 ? (_jsx(Empty, { children: "\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439 \u043D\u0435\u0442 \u2014 \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440 \u043C\u043E\u0433 \u0431\u044B\u0442\u044C \u0441\u043E\u0437\u0434\u0430\u043D \u0438 \u043D\u0435 \u043D\u0430\u0447\u0430\u0442." })) : (detail.messages.map((message) => (_jsx(MessageRow, { message: message, highlighted: message.id === props.messageId }, message.id))))] }), _jsx(ReviewPanel, { api: props.api, token: props.token, detail: detail, canReview: props.canReview, onSaved: () => void resource.reload() })] })] }));
|
|
89
|
+
}
|
|
90
|
+
function RuntimeFacts(props) {
|
|
91
|
+
const { runtime, summary } = props.detail;
|
|
92
|
+
const tools = runtime.effectiveTools ?? [];
|
|
93
|
+
const skills = runtime.effectiveSkills ?? [];
|
|
94
|
+
const loaded = runtime.loadedSkills ?? [];
|
|
95
|
+
return (_jsxs("section", { className: "dsh-qa-admin__runtime", children: [_jsx("h2", { children: "\u0427\u0442\u043E \u0431\u044B\u043B\u043E \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E \u0442\u043E\u0433\u0434\u0430" }), _jsxs("dl", { className: "dsh-qa-admin__facts", children: [_jsx("dt", { children: "\u041E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E" }), _jsx("dd", { children: formatStamp(summary.createdAt) }), _jsx("dt", { children: "\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u044F\u044F \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u044C" }), _jsx("dd", { children: formatStamp(summary.updatedAt) }), _jsx("dt", { children: "\u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B" }), _jsx("dd", { children: tools.length === 0
|
|
96
|
+
? "снимок не сохранён"
|
|
97
|
+
: `${formatCount(tools.length)}` }), _jsx("dt", { children: "\u041D\u0430\u0432\u044B\u043A\u0438" }), _jsx("dd", { children: skills.length === 0
|
|
98
|
+
? "снимок не сохранён"
|
|
99
|
+
: formatCount(skills.length) }), _jsx("dt", { children: "\u0417\u0430\u0433\u0440\u0443\u0436\u0435\u043D\u043D\u044B\u0435 \u043D\u0430\u0432\u044B\u043A\u0438" }), _jsx("dd", { children: loaded.length === 0 ? "—" : loaded.join(", ") })] }), tools.length === 0 ? null : (_jsxs("details", { children: [_jsxs("summary", { children: ["\u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440\u0430 (", tools.length, ")"] }), _jsx("p", { className: "dsh-qa-admin__mono", children: tools.join(", ") })] })), skills.length === 0 ? null : (_jsxs("details", { children: [_jsxs("summary", { children: ["\u041D\u0430\u0432\u044B\u043A\u0438 \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440\u0430 (", skills.length, ")"] }), _jsx("p", { className: "dsh-qa-admin__mono", children: skills.join(", ") })] }))] }));
|
|
100
|
+
}
|
|
101
|
+
function MessageRow(props) {
|
|
102
|
+
const [open, setOpen] = useState(false);
|
|
103
|
+
const { message } = props;
|
|
104
|
+
const feedback = message.feedback ?? [];
|
|
105
|
+
const reviews = message.reviews ?? [];
|
|
106
|
+
return (_jsxs("article", { className: `dsh-qa-admin__message dsh-qa-admin__message--${message.role}${props.highlighted ? " dsh-qa-admin__message--highlighted" : ""}`, id: `message-${message.id}`, children: [_jsxs("header", { children: [_jsx("strong", { children: message.role === "user"
|
|
107
|
+
? "Пользователь"
|
|
108
|
+
: message.role === "assistant"
|
|
109
|
+
? "Ассистент"
|
|
110
|
+
: "Система" }), _jsx("time", { title: String(message.time), children: formatStamp(new Date(message.time).toISOString()) }), message.model === undefined ? null : (_jsx("span", { className: "dsh-qa-admin__mono", children: message.model })), message.interrupted === true ? (_jsx(Badge, { tone: "warning", children: "\u041F\u0440\u0435\u0440\u0432\u0430\u043D" })) : null, message.usage === undefined ? null : (_jsxs("span", { className: "dsh-qa-admin__usage", children: [formatCount(message.usage.inputTokens), " \u2192", " ", formatCount(message.usage.outputTokens), " \u0442\u043E\u043A\u0435\u043D\u043E\u0432"] })), feedback.map((row) => (_jsxs(Badge, { tone: row.rating === "positive" ? "positive" : "negative", children: [row.rating === "positive" ? "👍" : "👎", row.reasons === undefined || row.reasons.length === 0
|
|
111
|
+
? ""
|
|
112
|
+
: ` ${row.reasons.length}`] }, row.id))), reviews.length === 0 ? null : (_jsxs(Badge, { tone: "neutral", children: ["\u0440\u0430\u0437\u043E\u0431\u0440\u0430\u043D\u043E: ", reviews[0]?.severity] }))] }), _jsx("p", { className: "dsh-qa-admin__message-text", children: message.text === "" ? "(пустой текст)" : message.text }), feedback.map((row) => row.comment === undefined ? null : (_jsxs("p", { className: "dsh-qa-admin__comment", children: ["\u041A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439: ", row.comment] }, `${row.id}:comment`))), (message.toolCalls ?? []).length === 0 ? null : (_jsxs("div", { className: "dsh-qa-admin__tools", children: [_jsxs("button", { type: "button", "aria-expanded": open, onClick: () => setOpen((value) => !value), children: [_jsx("svg", { className: `dsh-qa-admin__disclosure${open ? " dsh-qa-admin__disclosure--open" : ""}`, viewBox: "0 0 14 14", width: "14", height: "14", "aria-hidden": "true", children: _jsx("path", { d: "m3.5 5.25 3.5 3.5 3.5-3.5", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }), "\u0432\u044B\u0437\u043E\u0432\u044B \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 (", (message.toolCalls ?? []).length, ")"] }), open ? (_jsx("ol", { children: (message.toolCalls ?? []).map((call) => (_jsxs("li", { children: [_jsx("strong", { className: "dsh-qa-admin__mono", children: call.name }), call.error === undefined ? null : (_jsxs(Badge, { tone: "negative", children: ["\u0441\u0431\u043E\u0439: ", call.error] })), call.durationMs === undefined ? null : (_jsx("span", { children: formatDuration(call.durationMs) })), _jsx("pre", { children: call.arguments }), call.result === undefined ? null : _jsx("pre", { children: call.result })] }, call.callId))) })) : null] }))] }));
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=Conversations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Conversations.js","sourceRoot":"","sources":["../../../../src/client/admin/pages/Conversations.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useAdminResource } from "../shared.js";
|
|
3
|
+
import { FEEDBACK_REASON_LABELS, REVIEW_PRIORITY_LABELS, REVIEW_REASON_LABELS, formatCount, formatRate, formatRelative, } from "../format.js";
|
|
4
|
+
/**
|
|
5
|
+
* The overview answers the four questions the admin asks on arrival: is
|
|
6
|
+
* anything broken, are users happy, is a spike coming, what needs me now. It
|
|
7
|
+
* is deliberately not an observability dashboard — latency and tokens belong to
|
|
8
|
+
* the harness's own telemetry.
|
|
9
|
+
*/
|
|
10
|
+
function Metric(props) {
|
|
11
|
+
return (_jsxs("article", { className: "dsh-qa-admin__metric", children: [_jsx("span", { className: "dsh-qa-admin__metric-label", children: props.label }), _jsx("strong", { className: "dsh-qa-admin__metric-value", children: props.value }), props.hint === undefined ? null : (_jsx("small", { className: "dsh-qa-admin__metric-hint", children: props.hint }))] }));
|
|
12
|
+
}
|
|
13
|
+
export function AdminOverview(props) {
|
|
14
|
+
const { data, error, reload } = useAdminResource(() => props.api.overview(props.token), [props.api, props.token]);
|
|
15
|
+
return (_jsxs("section", { className: "dsh-qa-admin__page", "aria-label": "\u041E\u0431\u0437\u043E\u0440", children: [_jsxs("div", { className: "dsh-qa-admin__title-row", children: [_jsxs("div", { children: [_jsx("h1", { children: "\u041E\u0431\u0437\u043E\u0440" }), _jsx("p", { children: "\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0438, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435, \u043E\u0431\u0440\u0430\u0442\u043D\u0430\u044F \u0441\u0432\u044F\u0437\u044C \u0438 \u0440\u0430\u0437\u0431\u043E\u0440 \u043E\u0442\u0432\u0435\u0442\u043E\u0432." })] }), _jsx("button", { type: "button", onClick: () => void reload(), children: "\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C" })] }), error === undefined ? null : (_jsx("p", { className: "dsh-qa-admin__error", role: "alert", children: error })), data === undefined ? (_jsx("p", { className: "dsh-qa-admin__empty", children: "\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u044E\u2026" })) : (_jsxs(_Fragment, { children: [_jsxs("div", { className: "dsh-qa-admin__metrics", children: [_jsx(Metric, { label: "\u0420\u0430\u0437\u0433\u043E\u0432\u043E\u0440\u044B", value: formatCount(data.metrics.conversations), hint: `${formatCount(data.metrics.activeUsers)} пользователей` }), _jsx(Metric, { label: "\u041E\u0446\u0435\u043D\u0451\u043D\u043D\u044B\u0435 \u043E\u0442\u0432\u0435\u0442\u044B", value: formatCount(data.metrics.ratedMessages), hint: `${formatRate(data.metrics.ratingRate)} от ответов` }), _jsx(Metric, { label: "\u041F\u043E\u043B\u043E\u0436\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u043E\u0446\u0435\u043D\u043A\u0438", value: formatRate(data.metrics.positiveRate), hint: `👍 ${formatCount(data.metrics.positiveRatings)} · 👎 ${formatCount(data.metrics.negativeRatings)}` }), _jsx(Metric, { label: "\u0416\u0434\u0443\u0442 \u0440\u0430\u0437\u0431\u043E\u0440\u0430", value: formatCount(data.metrics.unreviewedNegatives), hint: `разобрано: ${formatCount(data.metrics.reviewedItems)}` })] }), _jsxs("section", { className: "dsh-qa-admin__panel", children: [_jsx("h2", { children: "\u0422\u0440\u0435\u0431\u0443\u0435\u0442 \u0432\u043D\u0438\u043C\u0430\u043D\u0438\u044F" }), data.alerts.length === 0 ? (_jsx("p", { className: "dsh-qa-admin__empty", children: "\u041D\u0438\u0447\u0435\u0433\u043E \u0441\u0440\u043E\u0447\u043D\u043E\u0433\u043E: \u043D\u0435\u0440\u0430\u0437\u043E\u0431\u0440\u0430\u043D\u043D\u044B\u0445 \u043D\u0435\u0433\u0430\u0442\u0438\u0432\u043D\u044B\u0445 \u043E\u0446\u0435\u043D\u043E\u043A \u043D\u0435\u0442." })) : (_jsx("ul", { className: "dsh-qa-admin__alerts", children: data.alerts.map((alert, index) => (_jsx("li", { className: `dsh-qa-admin__alert dsh-qa-admin__alert--${alert.level}`, children: alert.code === "unreviewed-negatives"
|
|
16
|
+
? `${formatCount(alert.count)} негативных оценок без разбора`
|
|
17
|
+
: alert.code === "subrole-satisfaction"
|
|
18
|
+
? `Роль «${alert.subject}»: положительных ${formatRate(alert.rate ?? null)} против общей доли`
|
|
19
|
+
: `Причина «${FEEDBACK_REASON_LABELS[alert.subject] ?? alert.subject}» повторяется ${formatCount(alert.count)} раз` }, `${alert.code}:${alert.subject ?? index}`))) }))] }), _jsxs("section", { className: "dsh-qa-admin__panel", children: [_jsxs("div", { className: "dsh-qa-admin__panel-head", children: [_jsx("h2", { children: "\u041E\u0447\u0435\u0440\u0435\u0434\u044C \u0440\u0430\u0437\u0431\u043E\u0440\u0430" }), _jsx("button", { type: "button", onClick: props.onOpenQueue, children: "\u0412\u0441\u044F \u043E\u0447\u0435\u0440\u0435\u0434\u044C" })] }), _jsx(QueuePreview, { rows: data.queue, onOpenConversation: props.onOpenConversation })] }), _jsxs("section", { className: "dsh-qa-admin__panel", children: [_jsx("h2", { children: "\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 \u043E\u0446\u0435\u043D\u043A\u0438" }), data.recentFeedback.length === 0 ? (_jsx("p", { className: "dsh-qa-admin__empty", children: "\u041E\u0446\u0435\u043D\u043E\u043A \u043F\u043E\u043A\u0430 \u043D\u0435\u0442." })) : (_jsx("ul", { className: "dsh-qa-admin__recent", children: data.recentFeedback.map((row) => (_jsxs("li", { children: [_jsx("span", { "aria-hidden": "true", children: row.rating === "positive" ? "👍" : "👎" }), _jsx("button", { type: "button", onClick: () => props.onOpenConversation(row.conversationId, row.messageId), children: row.conversationTitle ?? row.conversationId }), _jsx("span", { children: row.displayName }), _jsx("time", { title: row.createdAt, children: formatRelative(row.createdAt) })] }, row.id))) }))] })] }))] }));
|
|
20
|
+
}
|
|
21
|
+
export function QueuePreview(props) {
|
|
22
|
+
return props.rows.length === 0 ? (_jsx("p", { className: "dsh-qa-admin__empty", children: "\u041E\u0447\u0435\u0440\u0435\u0434\u044C \u043F\u0443\u0441\u0442\u0430." })) : (_jsx("ul", { className: "dsh-qa-admin__queue", children: props.rows.map((row, index) => (_jsxs("li", { className: `dsh-qa-admin__queue-item dsh-qa-admin__queue-item--${row.priority}`, children: [_jsxs("div", { className: "dsh-qa-admin__queue-head", children: [_jsx("span", { className: "dsh-qa-admin__queue-priority", children: REVIEW_PRIORITY_LABELS[row.priority] }), _jsx("span", { children: REVIEW_REASON_LABELS[row.reason] }), _jsx("time", { title: row.raisedAt, children: formatRelative(row.raisedAt) })] }), _jsx("button", { type: "button", onClick: () => props.onOpenConversation(row.conversationId, row.messageId), children: row.title ?? row.conversationId }), _jsx("span", { className: "dsh-qa-admin__queue-owner", children: row.displayName })] }, `${row.conversationId}:${row.messageId ?? ""}:${index}`))) }));
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=Overview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Overview.js","sourceRoot":"","sources":["../../../../src/client/admin/pages/Overview.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useEffect, useState } from "react";
|
|
3
|
+
import { FEEDBACK_REASON_LABELS, REVIEW_STATUS_LABELS, formatCount, formatRate, formatStamp, } from "../format.js";
|
|
4
|
+
import { Badge, FilterField, Pager, adminErrorMessage, useAdminResource, } from "../shared.js";
|
|
5
|
+
const PAGE_SIZE = 25;
|
|
6
|
+
/** The feedback table: every rating against the exact answer it judged. */
|
|
7
|
+
export function AdminFeedback(props) {
|
|
8
|
+
const [rating, setRating] = useState("");
|
|
9
|
+
const [reason, setReason] = useState("");
|
|
10
|
+
const [reviewStatus, setReviewStatus] = useState("");
|
|
11
|
+
const [rows, setRows] = useState([]);
|
|
12
|
+
const [cursor, setCursor] = useState(null);
|
|
13
|
+
const [total, setTotal] = useState(0);
|
|
14
|
+
const [loading, setLoading] = useState(true);
|
|
15
|
+
const load = useCallback(async (next, append) => {
|
|
16
|
+
setLoading(true);
|
|
17
|
+
const query = {
|
|
18
|
+
rating: rating === "" ? null : rating,
|
|
19
|
+
reason: reason === "" ? null : reason,
|
|
20
|
+
reviewStatus: reviewStatus === ""
|
|
21
|
+
? null
|
|
22
|
+
: reviewStatus,
|
|
23
|
+
};
|
|
24
|
+
const result = await props.api.feedback(props.token, query, next, PAGE_SIZE);
|
|
25
|
+
setLoading(false);
|
|
26
|
+
if (!result.ok)
|
|
27
|
+
return;
|
|
28
|
+
setTotal(result.value.total);
|
|
29
|
+
setCursor(result.value.nextCursor);
|
|
30
|
+
setRows((current) => append ? [...current, ...result.value.items] : result.value.items);
|
|
31
|
+
}, [props.api, props.token, rating, reason, reviewStatus]);
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
void load(null, false);
|
|
34
|
+
}, [load]);
|
|
35
|
+
return (_jsxs("section", { className: "dsh-qa-admin__page", "aria-label": "\u041E\u0431\u0440\u0430\u0442\u043D\u0430\u044F \u0441\u0432\u044F\u0437\u044C", children: [_jsx("div", { className: "dsh-qa-admin__title-row", children: _jsxs("div", { children: [_jsx("h1", { children: "\u041E\u0431\u0440\u0430\u0442\u043D\u0430\u044F \u0441\u0432\u044F\u0437\u044C" }), _jsx("p", { children: "\u041E\u0446\u0435\u043D\u043A\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u2014 \u044D\u0442\u043E \u0441\u0438\u0433\u043D\u0430\u043B \u0443\u0434\u043E\u0432\u043B\u0435\u0442\u0432\u043E\u0440\u0451\u043D\u043D\u043E\u0441\u0442\u0438, \u0430 \u043D\u0435 \u0438\u0437\u043C\u0435\u0440\u0435\u043D\u0438\u0435 \u0442\u043E\u0447\u043D\u043E\u0441\u0442\u0438 \u043E\u0442\u0432\u0435\u0442\u0430." })] }) }), _jsxs("div", { className: "dsh-qa-admin__filters", children: [_jsx(FilterField, { label: "\u041E\u0446\u0435\u043D\u043A\u0430", children: _jsxs("select", { value: rating, onChange: (event) => setRating(event.currentTarget.value), children: [_jsx("option", { value: "", children: "\u041B\u044E\u0431\u0430\u044F" }), _jsx("option", { value: "positive", children: "\uD83D\uDC4D" }), _jsx("option", { value: "negative", children: "\uD83D\uDC4E" })] }) }), _jsx(FilterField, { label: "\u041F\u0440\u0438\u0447\u0438\u043D\u0430", children: _jsxs("select", { value: reason, onChange: (event) => setReason(event.currentTarget.value), children: [_jsx("option", { value: "", children: "\u041B\u044E\u0431\u0430\u044F" }), Object.keys(FEEDBACK_REASON_LABELS).map((value) => (_jsx("option", { value: value, children: FEEDBACK_REASON_LABELS[value] }, value)))] }) }), _jsx(FilterField, { label: "\u0420\u0430\u0437\u0431\u043E\u0440", children: _jsxs("select", { value: reviewStatus, onChange: (event) => setReviewStatus(event.currentTarget.value), children: [_jsx("option", { value: "", children: "\u041B\u044E\u0431\u043E\u0439" }), _jsx("option", { value: "unreviewed", children: "\u041D\u0435 \u0440\u0430\u0437\u043E\u0431\u0440\u0430\u043D\u043E" }), _jsx("option", { value: "reviewed", children: "\u0420\u0430\u0437\u043E\u0431\u0440\u0430\u043D\u043E" }), _jsx("option", { value: "needs_followup", children: "\u041D\u0443\u0436\u043D\u043E \u0432\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F" })] }) })] }), rows.length === 0 ? (_jsx("p", { className: "dsh-qa-admin__empty", children: loading ? "Загружаю…" : "Оценок пока нет." })) : (_jsxs("table", { className: "dsh-qa-admin__table", children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", { children: "\u041E\u0446\u0435\u043D\u043A\u0430" }), _jsx("th", { children: "\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C" }), _jsx("th", { children: "\u041F\u0440\u043E\u0444\u0438\u043B\u044C" }), _jsx("th", { children: "\u0420\u0430\u0437\u0433\u043E\u0432\u043E\u0440" }), _jsx("th", { children: "\u041F\u0440\u0438\u0447\u0438\u043D\u0430" }), _jsx("th", { children: "\u0414\u0430\u0442\u0430" }), _jsx("th", { children: "\u0420\u0430\u0437\u0431\u043E\u0440" }), _jsx("th", {})] }) }), _jsx("tbody", { children: rows.map((row) => (_jsxs("tr", { children: [_jsx("td", { children: row.rating === "positive" ? "👍" : "👎" }), _jsx("td", { children: row.displayName }), _jsx("td", { children: row.subroleId === "" ? "—" : row.subroleId }), _jsx("td", { children: row.conversationTitle ?? row.conversationId }), _jsxs("td", { children: [(row.reasons ?? [])
|
|
36
|
+
.map((value) => FEEDBACK_REASON_LABELS[value])
|
|
37
|
+
.join(", ") || "—", row.comment === undefined ? null : (_jsx("small", { children: row.comment }))] }), _jsx("td", { children: formatStamp(row.createdAt) }), _jsx("td", { children: _jsx(Badge, { tone: row.reviewStatus === "reviewed" ? "positive" : "neutral", children: REVIEW_STATUS_LABELS[row.reviewStatus] }) }), _jsx("td", { children: _jsx("button", { type: "button", onClick: () => props.onOpenConversation(row.conversationId, row.messageId), children: "\u041A \u043E\u0442\u0432\u0435\u0442\u0443" }) })] }, row.id))) })] })), _jsx(Pager, { total: total, shown: rows.length, hasMore: cursor !== null, loading: loading, onMore: () => void load(cursor, true), onReset: () => void load(null, false) })] }));
|
|
38
|
+
}
|
|
39
|
+
/** Issue distribution, per-subrole satisfaction and the trend over time. */
|
|
40
|
+
export function AdminQuality(props) {
|
|
41
|
+
const resource = useAdminResource(() => props.api.metrics(props.token), [props.api, props.token]);
|
|
42
|
+
const metrics = resource.data;
|
|
43
|
+
return (_jsxs("section", { className: "dsh-qa-admin__page", "aria-label": "\u0410\u043D\u0430\u043B\u0438\u0442\u0438\u043A\u0430 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0430", children: [_jsxs("div", { className: "dsh-qa-admin__title-row", children: [_jsxs("div", { children: [_jsx("h1", { children: "\u0410\u043D\u0430\u043B\u0438\u0442\u0438\u043A\u0430" }), _jsx("p", { children: "\u0414\u043E\u043B\u0438 \u0441\u0447\u0438\u0442\u0430\u044E\u0442\u0441\u044F \u043F\u043E \u043E\u0446\u0435\u043D\u0451\u043D\u043D\u044B\u043C \u043E\u0442\u0432\u0435\u0442\u0430\u043C. \u042D\u0442\u043E \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439 \u0441\u0438\u0433\u043D\u0430\u043B, \u0430 \u043D\u0435 \u0438\u0437\u043C\u0435\u0440\u0435\u043D\u043D\u0430\u044F \u0442\u043E\u0447\u043D\u043E\u0441\u0442\u044C." })] }), _jsx("button", { type: "button", onClick: () => void resource.reload(), children: "\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C" })] }), resource.error === undefined ? null : (_jsx("p", { className: "dsh-qa-admin__error", role: "alert", children: adminErrorMessage(resource.error) })), metrics === undefined ? (_jsx("p", { className: "dsh-qa-admin__empty", children: "\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u044E\u2026" })) : (_jsxs(_Fragment, { children: [_jsxs("dl", { className: "dsh-qa-admin__facts dsh-qa-admin__facts--wide", children: [_jsx("dt", { children: "\u0420\u0430\u0437\u0433\u043E\u0432\u043E\u0440\u044B" }), _jsx("dd", { children: formatCount(metrics.conversations) }), _jsx("dt", { children: "\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0438 \u0441 \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440\u0430\u043C\u0438" }), _jsx("dd", { children: formatCount(metrics.activeUsers) }), _jsx("dt", { children: "\u041E\u0442\u0432\u0435\u0442\u044B \u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043D\u0442\u0430" }), _jsx("dd", { children: formatCount(metrics.assistantMessages) }), _jsx("dt", { children: "\u041E\u0446\u0435\u043D\u0451\u043D\u043D\u044B\u0435 \u043E\u0442\u0432\u0435\u0442\u044B" }), _jsx("dd", { children: formatCount(metrics.ratedMessages) }), _jsx("dt", { children: "\u0414\u043E\u043B\u044F \u043E\u0446\u0435\u043D\u0451\u043D\u043D\u044B\u0445" }), _jsx("dd", { children: formatRate(metrics.ratingRate) }), _jsx("dt", { children: "\u041F\u043E\u043B\u043E\u0436\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0445" }), _jsx("dd", { children: formatCount(metrics.positiveRatings) }), _jsx("dt", { children: "\u041D\u0435\u0433\u0430\u0442\u0438\u0432\u043D\u044B\u0445" }), _jsx("dd", { children: formatCount(metrics.negativeRatings) }), _jsx("dt", { children: "\u041F\u043E\u043B\u043E\u0436\u0438\u0442\u0435\u043B\u044C\u043D\u0430\u044F \u0434\u043E\u043B\u044F" }), _jsx("dd", { children: formatRate(metrics.positiveRate) }), _jsx("dt", { children: "\u041D\u0435\u0440\u0430\u0437\u043E\u0431\u0440\u0430\u043D\u043D\u044B\u0445 \u043D\u0435\u0433\u0430\u0442\u0438\u0432\u043D\u044B\u0445" }), _jsx("dd", { children: formatCount(metrics.unreviewedNegatives) }), _jsx("dt", { children: "\u0420\u0430\u0437\u043E\u0431\u0440\u0430\u043D\u043E" }), _jsx("dd", { children: formatCount(metrics.reviewedItems) })] }), _jsxs("section", { className: "dsh-qa-admin__panel", children: [_jsx("h2", { children: "\u041F\u043E\u043B\u043E\u0436\u0438\u0442\u0435\u043B\u044C\u043D\u0430\u044F \u0434\u043E\u043B\u044F \u043F\u043E \u043F\u0440\u043E\u0444\u0438\u043B\u044F\u043C" }), metrics.bySubrole.length === 0 ? (_jsx("p", { className: "dsh-qa-admin__empty", children: "\u041E\u0446\u0435\u043D\u043E\u043A \u043F\u043E \u043F\u0440\u043E\u0444\u0438\u043B\u044F\u043C \u043D\u0435\u0442." })) : (_jsxs("table", { className: "dsh-qa-admin__table", children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", { children: "\u041F\u0440\u043E\u0444\u0438\u043B\u044C" }), _jsx("th", { children: "\u041E\u0446\u0435\u043D\u0435\u043D\u043E" }), _jsx("th", { children: "\uD83D\uDC4D" }), _jsx("th", { children: "\uD83D\uDC4E" }), _jsx("th", { children: "\u0414\u043E\u043B\u044F" })] }) }), _jsx("tbody", { children: metrics.bySubrole.map((row) => (_jsxs("tr", { children: [_jsx("td", { children: row.label }), _jsx("td", { children: formatCount(row.rated) }), _jsx("td", { children: formatCount(row.positive) }), _jsx("td", { children: formatCount(row.negative) }), _jsx("td", { children: formatRate(row.positiveRate) })] }, row.key))) })] }))] }), _jsxs("section", { className: "dsh-qa-admin__panel", children: [_jsx("h2", { children: "\u041F\u0440\u043E\u0431\u043B\u0435\u043C\u044B \u043F\u043E \u0432\u0435\u0440\u0434\u0438\u043A\u0442\u0430\u043C \u0440\u0435\u0432\u044C\u044E\u0435\u0440\u043E\u0432" }), metrics.issues.length === 0 ? (_jsx("p", { className: "dsh-qa-admin__empty", children: "\u0420\u0430\u0437\u0431\u043E\u0440\u043E\u0432 \u043F\u043E\u043A\u0430 \u043D\u0435\u0442." })) : (_jsx("ul", { className: "dsh-qa-admin__issues-list", children: metrics.issues.map((row) => (_jsxs("li", { children: [_jsx("span", { children: row.issue }), _jsx("strong", { children: formatCount(row.count) })] }, row.issue))) }))] }), _jsxs("section", { className: "dsh-qa-admin__panel", children: [_jsx("h2", { children: "\u041E\u0446\u0435\u043D\u043A\u0438 \u043F\u043E \u0434\u043D\u044F\u043C" }), metrics.trend.length === 0 ? (_jsx("p", { className: "dsh-qa-admin__empty", children: "\u041E\u0446\u0435\u043D\u043E\u043A \u043F\u043E\u043A\u0430 \u043D\u0435\u0442." })) : (_jsx("ul", { className: "dsh-qa-admin__trend", children: metrics.trend.map((point) => (_jsxs("li", { children: [_jsx("span", { children: point.date }), _jsxs("span", { children: ["\uD83D\uDC4D ", formatCount(point.positive)] }), _jsxs("span", { children: ["\uD83D\uDC4E ", formatCount(point.negative)] })] }, point.date))) }))] })] }))] }));
|
|
44
|
+
}
|
|
45
|
+
/** Every administrative action, newest first, from both writers. */
|
|
46
|
+
export function AdminAudit(props) {
|
|
47
|
+
const [rows, setRows] = useState([]);
|
|
48
|
+
const [action, setAction] = useState("");
|
|
49
|
+
const [cursor, setCursor] = useState(null);
|
|
50
|
+
const [total, setTotal] = useState(0);
|
|
51
|
+
const [loading, setLoading] = useState(true);
|
|
52
|
+
const load = useCallback(async (next, append) => {
|
|
53
|
+
setLoading(true);
|
|
54
|
+
const query = {
|
|
55
|
+
action: action === "" ? null : action,
|
|
56
|
+
};
|
|
57
|
+
const result = await props.api.audit(props.token, query, next, PAGE_SIZE);
|
|
58
|
+
setLoading(false);
|
|
59
|
+
if (!result.ok)
|
|
60
|
+
return;
|
|
61
|
+
setTotal(result.value.total);
|
|
62
|
+
setCursor(result.value.nextCursor);
|
|
63
|
+
setRows((current) => append ? [...current, ...result.value.items] : result.value.items);
|
|
64
|
+
}, [props.api, props.token, action]);
|
|
65
|
+
useEffect(() => {
|
|
66
|
+
void load(null, false);
|
|
67
|
+
}, [load]);
|
|
68
|
+
return (_jsxs("section", { className: "dsh-qa-admin__page", "aria-label": "\u0410\u0443\u0434\u0438\u0442", children: [_jsx("div", { className: "dsh-qa-admin__title-row", children: _jsxs("div", { children: [_jsx("h1", { children: "\u0410\u0443\u0434\u0438\u0442" }), _jsx("p", { children: "\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0434\u043E\u0441\u0442\u0443\u043F\u0430, \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u0438 \u0440\u0430\u0437\u0431\u043E\u0440\u043E\u0432. \u0417\u0430\u043F\u0438\u0441\u044C \u0445\u0440\u0430\u043D\u0438\u0442 \u0441\u043D\u0438\u043C\u043E\u043A \u00AB\u0434\u043E\u00BB \u0438 \u00AB\u043F\u043E\u0441\u043B\u0435\u00BB." })] }) }), _jsx("div", { className: "dsh-qa-admin__filters", children: _jsx(FilterField, { label: "\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435", children: _jsxs("select", { value: action, onChange: (event) => setAction(event.currentTarget.value), children: [_jsx("option", { value: "", children: "\u041B\u044E\u0431\u043E\u0435" }), _jsx("option", { value: "authorization.changed", children: "\u0420\u043E\u043B\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0430" }), _jsx("option", { value: "user.disabled", children: "\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C \u043E\u0442\u043A\u043B\u044E\u0447\u0451\u043D" }), _jsx("option", { value: "user.enabled", children: "\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C \u0432\u043A\u043B\u044E\u0447\u0451\u043D" }), _jsx("option", { value: "subrole.assignment.changed", children: "\u041D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E" }), _jsx("option", { value: "subrole.created", children: "\u0421\u0430\u0431\u0440\u043E\u043B\u044C \u0441\u043E\u0437\u0434\u0430\u043D\u0430" }), _jsx("option", { value: "subrole.updated", children: "\u0421\u0430\u0431\u0440\u043E\u043B\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0430" }), _jsx("option", { value: "subrole.deleted", children: "\u0421\u0430\u0431\u0440\u043E\u043B\u044C \u0443\u0434\u0430\u043B\u0435\u043D\u0430" }), _jsx("option", { value: "common_capabilities.updated", children: "\u041E\u0431\u0449\u0438\u0435 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u044B" }), _jsx("option", { value: "conversation.reviewed", children: "\u0420\u0430\u0437\u0433\u043E\u0432\u043E\u0440 \u0440\u0430\u0437\u043E\u0431\u0440\u0430\u043D" }), _jsx("option", { value: "review.updated", children: "\u0420\u0430\u0437\u0431\u043E\u0440 \u043E\u0431\u043D\u043E\u0432\u043B\u0451\u043D" }), _jsx("option", { value: "review.queued", children: "\u041E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E \u043D\u0430 \u0440\u0430\u0437\u0431\u043E\u0440" })] }) }) }), rows.length === 0 ? (_jsx("p", { className: "dsh-qa-admin__empty", children: loading ? "Загружаю…" : "Изменений пока нет." })) : (_jsx("ol", { className: "dsh-qa-audit", children: rows.map((event) => (_jsxs("li", { children: [_jsx("time", { title: event.timestamp, children: formatStamp(event.timestamp) }), _jsx("strong", { children: event.action }), _jsx("span", { children: event.targetId ?? event.targetType ?? "—" }), _jsx("code", { children: event.actorId }), event.before === undefined &&
|
|
69
|
+
event.after === undefined ? null : (_jsxs("details", { children: [_jsx("summary", { children: "\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435" }), _jsxs("pre", { children: [event.before ?? "—", "\n→\n", event.after ?? "—"] })] }))] }, event.id))) })), _jsx(Pager, { total: total, shown: rows.length, hasMore: cursor !== null, loading: loading, onMore: () => void load(cursor, true), onReset: () => void load(null, false) })] }));
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=Quality.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Quality.js","sourceRoot":"","sources":["../../../../src/client/admin/pages/Quality.tsx"],"names":[],"mappings":"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"}
|