@yadsh/dsh-qa-surface 0.7.4 → 0.9.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 +169 -12
- package/compatibility.json +5 -0
- package/lib/access/capability-catalog.js +32 -3
- package/lib/access/capability-catalog.js.map +1 -1
- package/lib/access/model.js +24 -4
- package/lib/access/model.js.map +1 -1
- package/lib/access/role-repository.js +199 -91
- package/lib/access/role-repository.js.map +1 -1
- package/lib/access/service.js +223 -7
- package/lib/access/service.js.map +1 -1
- package/lib/account-remotes.js +2 -4
- package/lib/account-remotes.js.map +1 -1
- package/lib/accounts/database.js +447 -0
- package/lib/accounts/database.js.map +1 -0
- package/lib/accounts/errors.js.map +1 -1
- package/lib/accounts/file.js +27 -90
- package/lib/accounts/file.js.map +1 -1
- package/lib/accounts/store.js +224 -59
- package/lib/accounts/store.js.map +1 -1
- package/lib/admin/permissions.js +4 -0
- package/lib/admin/permissions.js.map +1 -1
- package/lib/admin/quality-store.js +270 -54
- package/lib/admin/quality-store.js.map +1 -1
- package/lib/admin/service.js +145 -7
- package/lib/admin/service.js.map +1 -1
- package/lib/admin/session-log.js +66 -5
- package/lib/admin/session-log.js.map +1 -1
- package/lib/cli.js +2 -1
- package/lib/cli.js.map +1 -1
- package/lib/client/QaSessionController.js +379 -39
- package/lib/client/QaSessionController.js.map +1 -1
- package/lib/client/QaSurface.js +94 -34
- package/lib/client/QaSurface.js.map +1 -1
- package/lib/client/QaTranscriptAdapter.js +40 -0
- package/lib/client/QaTranscriptAdapter.js.map +1 -1
- package/lib/client/admin/QaAdmin.js +26 -8
- package/lib/client/admin/QaAdmin.js.map +1 -1
- package/lib/client/admin/{format.js → copy.js} +1 -1
- package/lib/client/admin/copy.js.map +1 -0
- package/lib/client/admin/pages/Conversations.js +34 -8
- package/lib/client/admin/pages/Conversations.js.map +1 -1
- package/lib/client/admin/pages/Overview.js +1 -1
- package/lib/client/admin/pages/Overview.js.map +1 -1
- package/lib/client/admin/pages/Quality.js +1 -1
- package/lib/client/admin/pages/Quality.js.map +1 -1
- package/lib/client/admin/pages/Review.js +1 -1
- package/lib/client/admin/pages/Review.js.map +1 -1
- package/lib/client/admin/pages/Users.js +6 -2
- package/lib/client/admin/pages/Users.js.map +1 -1
- package/lib/client/admin/shared.js +10 -1
- package/lib/client/admin/shared.js.map +1 -1
- package/lib/client/admin/styles.js +2 -0
- package/lib/client/admin/styles.js.map +1 -1
- package/lib/client/audit/QaAuditDialog.js +74 -0
- package/lib/client/audit/QaAuditDialog.js.map +1 -0
- package/lib/client/audit/QaAuditRowBadge.js +17 -0
- package/lib/client/audit/QaAuditRowBadge.js.map +1 -0
- package/lib/client/audit/controller.js +39 -0
- package/lib/client/audit/controller.js.map +1 -0
- package/lib/client/audit/types.js +36 -0
- package/lib/client/audit/types.js.map +1 -0
- package/lib/client/audit/use-chat-audits.js +139 -0
- package/lib/client/audit/use-chat-audits.js.map +1 -0
- package/lib/client/components/Markdown.js +14 -206
- package/lib/client/components/Markdown.js.map +1 -1
- package/lib/client/components/QaChangelog.js +91 -0
- package/lib/client/components/QaChangelog.js.map +1 -1
- package/lib/client/components/QaComposer.js +63 -3
- package/lib/client/components/QaComposer.js.map +1 -1
- package/lib/client/components/QaHeader.js +1 -3
- package/lib/client/components/QaHeader.js.map +1 -1
- package/lib/client/components/QaMessage.js +25 -4
- package/lib/client/components/QaMessage.js.map +1 -1
- package/lib/client/components/QaQuestions.js +1 -1
- package/lib/client/components/QaQuestions.js.map +1 -1
- package/lib/client/components/QaSidebar.js +17 -3
- package/lib/client/components/QaSidebar.js.map +1 -1
- package/lib/client/components/QaSourcesPanel.js +3 -18
- package/lib/client/components/QaSourcesPanel.js.map +1 -1
- package/lib/client/components/QaWorkGroup.js +4 -8
- package/lib/client/components/QaWorkGroup.js.map +1 -1
- package/lib/client/components/source-icon.js +26 -0
- package/lib/client/components/source-icon.js.map +1 -0
- package/lib/client/components/thinking-phrases.js +2 -11
- package/lib/client/components/thinking-phrases.js.map +1 -1
- package/lib/client/components/use-now.js +21 -0
- package/lib/client/components/use-now.js.map +1 -0
- package/lib/client/index.js +33 -5
- package/lib/client/index.js.map +1 -1
- package/lib/client/lineage.js +18 -0
- package/lib/client/lineage.js.map +1 -0
- package/lib/client/markdown/CodeBlock.js +28 -0
- package/lib/client/markdown/CodeBlock.js.map +1 -0
- package/lib/client/markdown/blocks.js +342 -0
- package/lib/client/markdown/blocks.js.map +1 -0
- package/lib/client/markdown/highlight.js +1089 -0
- package/lib/client/markdown/highlight.js.map +1 -0
- package/lib/client/markdown/inline.js +377 -0
- package/lib/client/markdown/inline.js.map +1 -0
- package/lib/client/markdown/render.js +147 -0
- package/lib/client/markdown/render.js.map +1 -0
- package/lib/client/markdown/source-chip.js +55 -0
- package/lib/client/markdown/source-chip.js.map +1 -0
- package/lib/client/markdown/use-transient-flag.js +27 -0
- package/lib/client/markdown/use-transient-flag.js.map +1 -0
- package/lib/client/project-session-state.js +15 -2
- package/lib/client/project-session-state.js.map +1 -1
- package/lib/client/prompt-content.js +26 -0
- package/lib/client/prompt-content.js.map +1 -1
- package/lib/client/role/RoleSelector.js +11 -2
- package/lib/client/role/RoleSelector.js.map +1 -1
- package/lib/client/role/preview.js +123 -0
- package/lib/client/role/preview.js.map +1 -0
- package/lib/client/settings/card.js +2 -2
- package/lib/client/settings/card.js.map +1 -1
- package/lib/client/settings/sections/lockdown.js +1 -6
- package/lib/client/settings/sections/lockdown.js.map +1 -1
- package/lib/client/settings/sections/slash.js +57 -0
- package/lib/client/settings/sections/slash.js.map +1 -0
- package/lib/client/settings/sections/status.js +9 -1
- package/lib/client/settings/sections/status.js.map +1 -1
- package/lib/client/settings/sections.js +1 -0
- package/lib/client/settings/sections.js.map +1 -1
- package/lib/client/slash/SlashPalette.js +48 -0
- package/lib/client/slash/SlashPalette.js.map +1 -0
- package/lib/client/slash/copy.js +54 -0
- package/lib/client/slash/copy.js.map +1 -0
- package/lib/client/slash/slash-router.js +49 -0
- package/lib/client/slash/slash-router.js.map +1 -0
- package/lib/client/slash/useSlashNavigation.js +95 -0
- package/lib/client/slash/useSlashNavigation.js.map +1 -0
- package/lib/client/styles.js +124 -20
- package/lib/client/styles.js.map +1 -1
- package/lib/client/types.js +11 -0
- package/lib/client/types.js.map +1 -1
- package/lib/client.js +7615 -1567
- package/lib/client.js.map +1 -1
- package/lib/config-resolvers/accounts.js +15 -0
- package/lib/config-resolvers/accounts.js.map +1 -1
- package/lib/config-resolvers/basics.js +11 -2
- package/lib/config-resolvers/basics.js.map +1 -1
- package/lib/config-resolvers/defaults.js +30 -0
- package/lib/config-resolvers/defaults.js.map +1 -1
- package/lib/config-resolvers/lockdown.js +8 -2
- package/lib/config-resolvers/lockdown.js.map +1 -1
- package/lib/config-resolvers/slash-commands.js +60 -0
- package/lib/config-resolvers/slash-commands.js.map +1 -0
- package/lib/config-resolvers/sources.js +16 -0
- package/lib/config-resolvers/sources.js.map +1 -1
- package/lib/config.js +118 -2
- package/lib/config.js.map +1 -1
- package/lib/index.js +183 -11
- package/lib/index.js.map +1 -1
- package/lib/lockdown-policy.js +19 -0
- package/lib/lockdown-policy.js.map +1 -1
- package/lib/personal-skills/service.js +16 -3
- package/lib/personal-skills/service.js.map +1 -1
- package/lib/provenance/host-store.js +25 -4
- package/lib/provenance/host-store.js.map +1 -1
- package/lib/provenance/retention.js +25 -0
- package/lib/provenance/retention.js.map +1 -0
- package/lib/provenance/snapshot-store.js +290 -35
- package/lib/provenance/snapshot-store.js.map +1 -1
- package/lib/questions.js +98 -38
- package/lib/questions.js.map +1 -1
- package/lib/resolve-config.js +5 -0
- package/lib/resolve-config.js.map +1 -1
- package/lib/secure-session.js +139 -21
- package/lib/secure-session.js.map +1 -1
- package/lib/slash/catalog.js +77 -0
- package/lib/slash/catalog.js.map +1 -0
- package/lib/slash/matcher.js +100 -0
- package/lib/slash/matcher.js.map +1 -0
- package/lib/slash/parser.js +79 -0
- package/lib/slash/parser.js.map +1 -0
- package/lib/slash/policy.js +72 -0
- package/lib/slash/policy.js.map +1 -0
- package/lib/slash/remotes.js +272 -0
- package/lib/slash/remotes.js.map +1 -0
- package/lib/typert.host.js +348 -56
- package/lib/typert.remote-client.d.ts +7 -1
- package/lib/typert.remote-client.js +274 -51
- package/lib/types/access/capability-catalog.d.ts +28 -1
- package/lib/types/access/role-repository.d.ts +38 -7
- package/lib/types/access/service.d.ts +106 -3
- package/lib/types/account-remotes.d.ts +8 -4
- package/lib/types/accounts/database.d.ts +84 -0
- package/lib/types/accounts/errors.d.ts +7 -1
- package/lib/types/accounts/file.d.ts +17 -39
- package/lib/types/accounts/store.d.ts +110 -19
- package/lib/types/admin/quality-store.d.ts +38 -2
- package/lib/types/admin/service.d.ts +34 -2
- package/lib/types/admin/session-log.d.ts +65 -1
- package/lib/types/client/QaSessionController.d.ts +84 -2
- package/lib/types/client/QaSurface.d.ts +14 -1
- package/lib/types/client/admin/{format.d.ts → copy.d.ts} +1 -1
- package/lib/types/client/admin/pages/Conversations.d.ts +4 -0
- package/lib/types/client/audit/QaAuditDialog.d.ts +21 -0
- package/lib/types/client/audit/QaAuditRowBadge.d.ts +18 -0
- package/lib/types/client/audit/controller.d.ts +27 -0
- package/lib/types/client/audit/types.d.ts +72 -0
- package/lib/types/client/audit/use-chat-audits.d.ts +20 -0
- package/lib/types/client/components/Markdown.d.ts +7 -8
- package/lib/types/client/components/QaComposer.d.ts +12 -2
- package/lib/types/client/components/QaQuestions.d.ts +7 -0
- package/lib/types/client/components/QaSidebar.d.ts +11 -1
- package/lib/types/client/components/QaSourcesPanel.d.ts +1 -3
- package/lib/types/client/components/source-icon.d.ts +12 -0
- package/lib/types/client/components/use-now.d.ts +8 -0
- package/lib/types/client/lineage.d.ts +15 -0
- package/lib/types/client/markdown/CodeBlock.d.ts +14 -0
- package/lib/types/client/markdown/blocks.d.ts +74 -0
- package/lib/types/client/markdown/highlight.d.ts +29 -0
- package/lib/types/client/markdown/inline.d.ts +40 -0
- package/lib/types/client/markdown/render.d.ts +13 -0
- package/lib/types/client/markdown/source-chip.d.ts +32 -0
- package/lib/types/client/markdown/use-transient-flag.d.ts +12 -0
- package/lib/types/client/project-session-state.d.ts +3 -1
- package/lib/types/client/prompt-content.d.ts +9 -1
- package/lib/types/client/role/RoleSelector.d.ts +11 -1
- package/lib/types/client/role/preview.d.ts +109 -0
- package/lib/types/client/settings/sections/slash.d.ts +16 -0
- package/lib/types/client/settings/sections.d.ts +1 -0
- package/lib/types/client/slash/SlashPalette.d.ts +24 -0
- package/lib/types/client/slash/copy.d.ts +30 -0
- package/lib/types/client/slash/slash-router.d.ts +67 -0
- package/lib/types/client/slash/useSlashNavigation.d.ts +47 -0
- package/lib/types/client/styles.d.ts +9 -0
- package/lib/types/client/types.d.ts +16 -1
- package/lib/types/config-resolvers/slash-commands.d.ts +20 -0
- package/lib/types/index.d.ts +83 -2
- package/lib/types/lockdown-policy.d.ts +16 -0
- package/lib/types/personal-skills/service.d.ts +5 -0
- package/lib/types/provenance/host-store.d.ts +20 -3
- package/lib/types/provenance/retention.d.ts +46 -0
- package/lib/types/provenance/snapshot-store.d.ts +63 -7
- package/lib/types/questions.d.ts +13 -0
- package/lib/types/secure-session.d.ts +27 -1
- package/lib/types/slash/catalog.d.ts +56 -0
- package/lib/types/slash/matcher.d.ts +51 -0
- package/lib/types/slash/parser.d.ts +46 -0
- package/lib/types/slash/policy.d.ts +40 -0
- package/lib/types/slash/remotes.d.ts +35 -0
- package/lib/types/types.d.ts +254 -5
- package/package.json +9 -5
- package/scripts/attach-workspace-sessions.mjs +472 -0
- package/lib/client/admin/format.js.map +0 -1
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useId } from "react";
|
|
3
|
+
import { SourceIcon } from "../components/source-icon.js";
|
|
4
|
+
import { sourceFileName, } from "../components/source-refs.js";
|
|
5
|
+
/**
|
|
6
|
+
* One inline source footnote: a pill over the matched link or path with a
|
|
7
|
+
* hover/focus preview card (title, target, snippet). A URL-backed source is
|
|
8
|
+
* an anchor that opens right away; a path-backed one is a button whose click
|
|
9
|
+
* the owner routes to the sources drawer. The hover card stays out of the
|
|
10
|
+
* chip's accessible name and rides along as its description instead.
|
|
11
|
+
*/
|
|
12
|
+
export function SourceChip({ source, label, href, onOpen, }) {
|
|
13
|
+
const cardId = useId();
|
|
14
|
+
const target = source.path ?? source.uri ?? source.title;
|
|
15
|
+
const face = (_jsxs(_Fragment, { children: [_jsx("span", { className: "dsh-qa-srcref__icon", "data-kind": source.kind, children: _jsx(SourceIcon, { kind: source.kind }) }), _jsx("span", { className: "dsh-qa-srcref__label", children: label }), _jsxs("span", { className: "dsh-qa-srcref__card", id: cardId, role: "tooltip", "aria-hidden": "true", children: [_jsxs("span", { className: "dsh-qa-srcref__card-title", children: [_jsx("span", { className: "dsh-qa-srcref__icon", "data-kind": source.kind, children: _jsx(SourceIcon, { kind: source.kind }) }), source.title || label] }), _jsx("span", { className: "dsh-qa-srcref__card-target", children: target }), source.snippet === undefined ? null : (_jsx("span", { className: "dsh-qa-srcref__card-snippet", children: source.snippet }))] })] }));
|
|
16
|
+
if (href !== undefined) {
|
|
17
|
+
return (_jsx("a", { className: "dsh-qa-srcref", "data-kind": source.kind, href: href, target: "_blank", rel: "noopener noreferrer", "aria-describedby": cardId, children: face }));
|
|
18
|
+
}
|
|
19
|
+
return (_jsx("button", { type: "button", className: "dsh-qa-srcref", "data-kind": source.kind, "aria-describedby": cardId, onClick: onOpen === undefined ? undefined : () => onOpen(source), children: face }));
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* The chip a path-backed inline-code token earns, or undefined when the token
|
|
23
|
+
* names no known source. A URL-backed token is a chip that opens right away.
|
|
24
|
+
*/
|
|
25
|
+
export function codeChip(value, context) {
|
|
26
|
+
const source = context.refs?.resolvePath(value);
|
|
27
|
+
if (source === undefined)
|
|
28
|
+
return undefined;
|
|
29
|
+
if (source.path === undefined) {
|
|
30
|
+
return (_jsx(SourceChip, { source: source, label: source.title || value, href: safeHref(source.uri ?? "") }));
|
|
31
|
+
}
|
|
32
|
+
if (context.onSourceOpen === undefined)
|
|
33
|
+
return undefined;
|
|
34
|
+
return (_jsx(SourceChip, { source: source, label: sourceFileName(source), onOpen: context.onSourceOpen }));
|
|
35
|
+
}
|
|
36
|
+
/** The chip a matched markdown link earns, or undefined when it matches none. */
|
|
37
|
+
export function linkChip(href, label, context) {
|
|
38
|
+
const source = context.refs?.resolveUrl(href);
|
|
39
|
+
if (source === undefined)
|
|
40
|
+
return undefined;
|
|
41
|
+
return (_jsx(SourceChip, { source: source, label: label || source.title, href: href }));
|
|
42
|
+
}
|
|
43
|
+
/** http(s)/mailto destinations only; images are narrowed further to http(s). */
|
|
44
|
+
export function safeHref(value) {
|
|
45
|
+
try {
|
|
46
|
+
const url = new URL(value);
|
|
47
|
+
return ["http:", "https:", "mailto:"].includes(url.protocol)
|
|
48
|
+
? value
|
|
49
|
+
: undefined;
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=source-chip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-chip.js","sourceRoot":"","sources":["../../../src/client/markdown/source-chip.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* A boolean that turns on for a fixed window and drops back off — the
|
|
4
|
+
* "Скопировано" flash and its siblings. The pending timer lives in a ref and
|
|
5
|
+
* is cleared by the unmount cleanup, so a pulse fired right before the block
|
|
6
|
+
* leaves the DOM never schedules a state update on it, and re-pulsing restarts
|
|
7
|
+
* the window instead of stacking timers.
|
|
8
|
+
*/
|
|
9
|
+
export function useTransientFlag(windowMs) {
|
|
10
|
+
const [on, setOn] = useState(false);
|
|
11
|
+
const timer = useRef(undefined);
|
|
12
|
+
useEffect(() => () => {
|
|
13
|
+
if (timer.current !== undefined)
|
|
14
|
+
clearTimeout(timer.current);
|
|
15
|
+
}, []);
|
|
16
|
+
const pulse = useCallback(() => {
|
|
17
|
+
setOn(true);
|
|
18
|
+
if (timer.current !== undefined)
|
|
19
|
+
clearTimeout(timer.current);
|
|
20
|
+
timer.current = setTimeout(() => {
|
|
21
|
+
timer.current = undefined;
|
|
22
|
+
setOn(false);
|
|
23
|
+
}, windowMs);
|
|
24
|
+
}, [windowMs]);
|
|
25
|
+
return { on, pulse };
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=use-transient-flag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-transient-flag.js","sourceRoot":"","sources":["../../../src/client/markdown/use-transient-flag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjE;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAI/C,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,MAAM,CAA4C,SAAS,CAAC,CAAC;IAC3E,SAAS,CACP,GAAG,EAAE,CAAC,GAAG,EAAE;QACT,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;YAAE,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/D,CAAC,EACD,EAAE,CACH,CAAC;IACF,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;YAAE,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7D,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC;YAC1B,KAAK,CAAC,KAAK,CAAC,CAAC;QACf,CAAC,EAAE,QAAQ,CAAC,CAAC;IACf,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;AACvB,CAAC"}
|
|
@@ -57,6 +57,11 @@ export function projectBoundSessionState(input) {
|
|
|
57
57
|
};
|
|
58
58
|
});
|
|
59
59
|
const latest = input.sourceBundles.at(-1);
|
|
60
|
+
const questions = input.compatibilityReadOnly === true ? [] : input.questions;
|
|
61
|
+
// A parked question owns the composer until it is answered or the turn ends:
|
|
62
|
+
// the operator is answering a tool call that is already waiting, and text
|
|
63
|
+
// sent beside it would open a second turn instead.
|
|
64
|
+
const questionPending = questions.length > 0;
|
|
60
65
|
return {
|
|
61
66
|
phase,
|
|
62
67
|
sessionId: input.sessionId,
|
|
@@ -64,7 +69,10 @@ export function projectBoundSessionState(input) {
|
|
|
64
69
|
pendingMessage: null,
|
|
65
70
|
error,
|
|
66
71
|
compatibilityReadOnly: input.compatibilityReadOnly === true,
|
|
67
|
-
canSend: input.connected &&
|
|
72
|
+
canSend: input.connected &&
|
|
73
|
+
phase === "ready" &&
|
|
74
|
+
input.policyReady &&
|
|
75
|
+
!questionPending,
|
|
68
76
|
canStop: input.connected &&
|
|
69
77
|
snapshot.running &&
|
|
70
78
|
config.ui.showStop &&
|
|
@@ -82,7 +90,12 @@ export function projectBoundSessionState(input) {
|
|
|
82
90
|
incompleteSourceOrigins: latest?.incompleteOrigins,
|
|
83
91
|
viewingSubagent: input.viewingSubagent,
|
|
84
92
|
approvals: input.compatibilityReadOnly === true ? [] : input.approvals,
|
|
85
|
-
questions
|
|
93
|
+
questions,
|
|
94
|
+
// A read-only binding issues no Host operation at all, and running a
|
|
95
|
+
// command is one — the policy gate closes the palette with everything else.
|
|
96
|
+
slash: input.compatibilityReadOnly === true
|
|
97
|
+
? { ...input.slash, enabled: false, entries: [] }
|
|
98
|
+
: input.slash,
|
|
86
99
|
};
|
|
87
100
|
}
|
|
88
101
|
//# sourceMappingURL=project-session-state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-session-state.js","sourceRoot":"","sources":["../../src/client/project-session-state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"project-session-state.js","sourceRoot":"","sources":["../../src/client/project-session-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,32 @@ export async function stageQaFiles(service, session, files) {
|
|
|
35
35
|
* staging failed elsewhere) degrades to an empty receipt rather than
|
|
36
36
|
* dropping the attachment.
|
|
37
37
|
*/
|
|
38
|
+
/**
|
|
39
|
+
* The same two shapes for a human command, which admits attachments through
|
|
40
|
+
* the shared store rather than through the prompt: an image rides encoded, a
|
|
41
|
+
* file rides the receipt its staging minted. An attachment whose staging
|
|
42
|
+
* failed is dropped instead of being sent as an empty receipt — the command
|
|
43
|
+
* would otherwise read a handle that resolves to nothing.
|
|
44
|
+
*/
|
|
45
|
+
export function buildQaSlashAttachments(attachments, receipts) {
|
|
46
|
+
const wire = [];
|
|
47
|
+
for (const attachment of attachments) {
|
|
48
|
+
if (attachment.kind === "image") {
|
|
49
|
+
wire.push({
|
|
50
|
+
type: "image",
|
|
51
|
+
mediaType: attachment.mediaType,
|
|
52
|
+
data: attachment.data,
|
|
53
|
+
name: attachment.name,
|
|
54
|
+
});
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
const receiptId = receipts.get(attachment.id);
|
|
58
|
+
if (receiptId === undefined || receiptId === "")
|
|
59
|
+
continue;
|
|
60
|
+
wire.push({ type: "file", receiptId });
|
|
61
|
+
}
|
|
62
|
+
return wire;
|
|
63
|
+
}
|
|
38
64
|
export function buildQaPromptContent(prompt, attachments, receipts) {
|
|
39
65
|
return [
|
|
40
66
|
...(prompt === "" ? [] : [{ type: "text", text: prompt }]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-content.js","sourceRoot":"","sources":["../../src/client/prompt-content.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prompt-content.js","sourceRoot":"","sources":["../../src/client/prompt-content.ts"],"names":[],"mappings":"AAQA;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAiC,EACjC,OAAoB,EACpB,KAA6B;IAM7B,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IAC1D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CACjC,OAAO,CAAC,SAAS,EACjB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,IAAI,CACV,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBACnE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC5B,CAAC;YACD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;YAC3D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAClC,CAAC;AAED;;;;;;;GAOG;AACH;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACrC,WAAyC,EACzC,QAAqC;IAErC,MAAM,IAAI,GAA8B,EAAE,CAAC;IAC3C,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,UAAU,CAAC,SAAS;gBAC/B,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,IAAI,EAAE,UAAU,CAAC,IAAI;aACtB,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE;YAAE,SAAS;QAC1D,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,MAAc,EACd,WAAyC,EACzC,QAAqC;IAErC,OAAO;QACL,GAAG,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACnE,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAChC,UAAU,CAAC,IAAI,KAAK,OAAO;YACzB,CAAC,CAAC;gBACE,IAAI,EAAE,OAAgB;gBACtB,SAAS,EAAE,UAAU,CAAC,SAAS;gBAC/B,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,IAAI,EAAE,UAAU,CAAC,IAAI;aACtB;YACH,CAAC,CAAC;gBACE,IAAI,EAAE,MAAe;gBACrB,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE;aAC7C,CACN;KACiB,CAAC;AACvB,CAAC"}
|
|
@@ -25,7 +25,16 @@ export function QaRoleSelector(props) {
|
|
|
25
25
|
setPending(undefined);
|
|
26
26
|
}, children: ["\u041D\u0430\u0447\u0430\u0442\u044C \u043D\u043E\u0432\u044B\u0439 \u0447\u0430\u0442 \u043A\u0430\u043A ", pending?.name ?? ""] })] }), children: _jsx("p", { className: "dsh-qa-role-selector__notice", children: "\u0421\u043C\u0435\u043D\u0430 \u0440\u043E\u043B\u0438 \u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442 \u043D\u043E\u0432\u044B\u0439 \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440: \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435 \u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043D\u0442\u0443 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B \u0438 \u043D\u0430\u0432\u044B\u043A\u0438 \u0438\u0437\u043C\u0435\u043D\u044F\u0442\u0441\u044F. \u0422\u0435\u043A\u0443\u0449\u0438\u0439 \u0447\u0430\u0442 \u043E\u0441\u0442\u0430\u043D\u0435\u0442\u0441\u044F \u0432 \u0438\u0441\u0442\u043E\u0440\u0438\u0438 \u0431\u0435\u0437 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439." }) })] }));
|
|
27
27
|
}
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
/**
|
|
29
|
+
* The banner that keeps a preview from being mistaken for an ordinary chat.
|
|
30
|
+
*
|
|
31
|
+
* It carries the way out as well: while previewing, the header's role selector
|
|
32
|
+
* is hidden — the previewed profile need not be one the account holds — so
|
|
33
|
+
* without a control here the only exit was the browser's Back button, and a new
|
|
34
|
+
* chat meanwhile ran as the previewed profile instead of the account's default.
|
|
35
|
+
* @param props - the previewed role's name, and how to leave the preview.
|
|
36
|
+
*/
|
|
37
|
+
export function QaAdminPreviewBanner(props) {
|
|
38
|
+
return (_jsxs("div", { className: "dsh-qa-admin-preview", role: "status", children: [_jsxs("span", { children: ["\u041F\u0420\u041E\u0421\u041C\u041E\u0422\u0420 \u0410\u0414\u041C\u0418\u041D\u0418\u0421\u0422\u0420\u0410\u0422\u041E\u0420\u0410: ", props.role] }), props.onExit === undefined ? null : (_jsx("button", { type: "button", className: "dsh-qa-admin-preview__exit", onClick: props.onExit, title: "\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043A \u0441\u0432\u043E\u0435\u043C\u0443 \u043F\u0440\u043E\u0444\u0438\u043B\u044E \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E: \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 \u0437\u0430\u043A\u043E\u043D\u0447\u0438\u0442\u0441\u044F, \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u0447\u0430\u0442 \u043D\u0430\u0447\u043D\u0451\u0442\u0441\u044F \u0437\u0430\u043D\u043E\u0432\u043E", children: "\u0412\u044B\u0439\u0442\u0438 \u0438\u0437 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430" }))] }));
|
|
30
39
|
}
|
|
31
40
|
//# sourceMappingURL=RoleSelector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoleSelector.js","sourceRoot":"","sources":["../../../src/client/role/RoleSelector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAUnD,0EAA0E;AAC1E,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAa,CAAC;IACpD,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,MAAM,GAAG,CAAC,EAAU,EAAE,EAAE;QAC5B,IAAI,EAAE,KAAK,KAAK,CAAC,QAAQ;YAAE,OAAO;QAClC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAClE,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO;QAC/B,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;YAC9B,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC;IACF,OAAO,CACL,8BACE,iBAAO,SAAS,EAAC,sBAAsB,aACrC,eAAM,SAAS,EAAC,gBAAgB,sGAAuB,EACvD,iBACE,KAAK,EAAE,KAAK,CAAC,QAAQ,EACrB,QAAQ,EAAE,KAAK,CAAC,QAAQ,gBACb,uFAAiB,EAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,YAErD,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACzB,iBAAsB,KAAK,EAAE,IAAI,CAAC,EAAE,YACjC,IAAI,CAAC,IAAI,IADC,IAAI,CAAC,EAAE,CAEX,CACV,CAAC,GACK,IACH,EACR,KAAC,OAAO,IACN,IAAI,EAAE,OAAO,KAAK,SAAS,EAC3B,KAAK,EAAC,yFAAmB,EACzB,UAAU,EAAC,0GAAqB,EAChC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EACpC,MAAM,EACJ,8BACE,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,qDAEjD,EACT,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,uBAAuB,EACjC,OAAO,EAAE,GAAG,EAAE;gCACZ,IAAI,OAAO,KAAK,SAAS;oCAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gCACtD,UAAU,CAAC,SAAS,CAAC,CAAC;4BACxB,CAAC,2HAEqB,OAAO,EAAE,IAAI,IAAI,EAAE,IAClC,IACR,YAGL,YAAG,SAAS,EAAC,8BAA8B,utBAGvC,GACI,IACT,CACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,
|
|
1
|
+
{"version":3,"file":"RoleSelector.js","sourceRoot":"","sources":["../../../src/client/role/RoleSelector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAUnD,0EAA0E;AAC1E,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAa,CAAC;IACpD,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,MAAM,GAAG,CAAC,EAAU,EAAE,EAAE;QAC5B,IAAI,EAAE,KAAK,KAAK,CAAC,QAAQ;YAAE,OAAO;QAClC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAClE,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO;QAC/B,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;YAC9B,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC;IACF,OAAO,CACL,8BACE,iBAAO,SAAS,EAAC,sBAAsB,aACrC,eAAM,SAAS,EAAC,gBAAgB,sGAAuB,EACvD,iBACE,KAAK,EAAE,KAAK,CAAC,QAAQ,EACrB,QAAQ,EAAE,KAAK,CAAC,QAAQ,gBACb,uFAAiB,EAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,YAErD,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACzB,iBAAsB,KAAK,EAAE,IAAI,CAAC,EAAE,YACjC,IAAI,CAAC,IAAI,IADC,IAAI,CAAC,EAAE,CAEX,CACV,CAAC,GACK,IACH,EACR,KAAC,OAAO,IACN,IAAI,EAAE,OAAO,KAAK,SAAS,EAC3B,KAAK,EAAC,yFAAmB,EACzB,UAAU,EAAC,0GAAqB,EAChC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EACpC,MAAM,EACJ,8BACE,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,qDAEjD,EACT,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,uBAAuB,EACjC,OAAO,EAAE,GAAG,EAAE;gCACZ,IAAI,OAAO,KAAK,SAAS;oCAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gCACtD,UAAU,CAAC,SAAS,CAAC,CAAC;4BACxB,CAAC,2HAEqB,OAAO,EAAE,IAAI,IAAI,EAAE,IAClC,IACR,YAGL,YAAG,SAAS,EAAC,8BAA8B,utBAGvC,GACI,IACT,CACJ,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAGpC;IACC,OAAO,CACL,eAAK,SAAS,EAAC,sBAAsB,EAAC,IAAI,EAAC,QAAQ,aACjD,sKAAgC,KAAK,CAAC,IAAI,IAAQ,EACjD,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACnC,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,4BAA4B,EACtC,OAAO,EAAE,KAAK,CAAC,MAAM,EACrB,KAAK,EAAC,meAA6F,mHAG5F,CACV,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
2
|
+
function isRecord(value) {
|
|
3
|
+
return typeof value === "object" && value !== null;
|
|
4
|
+
}
|
|
5
|
+
function text(value) {
|
|
6
|
+
if (typeof value !== "string")
|
|
7
|
+
return undefined;
|
|
8
|
+
const trimmed = value.trim();
|
|
9
|
+
return trimmed === "" ? undefined : trimmed;
|
|
10
|
+
}
|
|
11
|
+
/** The history state a "Preview as role" navigation carries. */
|
|
12
|
+
export function previewEntryState(role) {
|
|
13
|
+
return { qaPreview: role.id, qaPreviewName: role.name };
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The preview one history entry asks for, or undefined for an ordinary entry.
|
|
17
|
+
*
|
|
18
|
+
* Home of an older Host or of a cleared entry carries no marker at all, and a
|
|
19
|
+
* marker whose role id cannot be read is ignored rather than guessed: the name
|
|
20
|
+
* is cosmetic, so an entry written before names travelled with the marker
|
|
21
|
+
* still previews, under its role id.
|
|
22
|
+
*/
|
|
23
|
+
export function readPreviewEntry(state) {
|
|
24
|
+
if (!isRecord(state))
|
|
25
|
+
return undefined;
|
|
26
|
+
const roleId = text(state.qaPreview);
|
|
27
|
+
if (roleId === undefined)
|
|
28
|
+
return undefined;
|
|
29
|
+
return { roleId, name: text(state.qaPreviewName) ?? roleId };
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* What the surface should do with the preview mode for one history entry.
|
|
33
|
+
*
|
|
34
|
+
* Only an administrator can preview, so an entry that asks for one while an
|
|
35
|
+
* ordinary account is signed in leaves the mode instead of entering it — the
|
|
36
|
+
* marker survives in the browser's history across a sign-out, and latching it
|
|
37
|
+
* again would hand the next account a chat under a profile it was never
|
|
38
|
+
* assigned.
|
|
39
|
+
* @param input - the entry's state, the preview in force, and who is signed in.
|
|
40
|
+
* @returns enter, leave, or keep, so the caller only writes state it must.
|
|
41
|
+
*/
|
|
42
|
+
export function planPreviewTransition(input) {
|
|
43
|
+
if (!input.isAdmin)
|
|
44
|
+
return input.preview === null ? { kind: "keep" } : { kind: "leave" };
|
|
45
|
+
const entry = readPreviewEntry(input.state);
|
|
46
|
+
if (entry === undefined) {
|
|
47
|
+
return input.preview === null ? { kind: "keep" } : { kind: "leave" };
|
|
48
|
+
}
|
|
49
|
+
if (entry.roleId === input.preview?.roleId)
|
|
50
|
+
return { kind: "keep" };
|
|
51
|
+
return { kind: "enter", preview: entry };
|
|
52
|
+
}
|
|
53
|
+
/** The live browser, read at call time so a test's own history is honoured. */
|
|
54
|
+
const BROWSER = {
|
|
55
|
+
get state() {
|
|
56
|
+
return window.history.state;
|
|
57
|
+
},
|
|
58
|
+
pushState: (data, unused, url) => window.history.pushState(data, unused, url),
|
|
59
|
+
replaceState: (data, unused, url) => window.history.replaceState(data, unused, url),
|
|
60
|
+
onPopState: (listener) => {
|
|
61
|
+
window.addEventListener("popstate", listener);
|
|
62
|
+
return () => window.removeEventListener("popstate", listener);
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* The administrator preview mode of one browser tab.
|
|
67
|
+
*
|
|
68
|
+
* The mode is a property of the history entry, so entering and leaving it
|
|
69
|
+
* follows the browser: the console pushes an entry that carries the preview,
|
|
70
|
+
* every navigation back to an entry without one ends the mode, and only an
|
|
71
|
+
* administrator can hold it. The alternative — reading the marker once and
|
|
72
|
+
* latching it in component state — kept the mode alive for the whole tab, and
|
|
73
|
+
* since the role selector is hidden while previewing, later new chats silently
|
|
74
|
+
* ran as the previewed profile instead of the account's default one.
|
|
75
|
+
* @param options - who is signed in, the account default, and the history.
|
|
76
|
+
* @returns the preview in force plus the two explicit transitions.
|
|
77
|
+
*/
|
|
78
|
+
export function useQaAdminPreview(options) {
|
|
79
|
+
const target = options.target ?? BROWSER;
|
|
80
|
+
const [preview, setPreview] = useState(null);
|
|
81
|
+
// The listener is registered once per navigation source and cannot read the
|
|
82
|
+
// render it came from, so the current value travels in a ref as well.
|
|
83
|
+
const current = useRef(null);
|
|
84
|
+
const { onSelect, fallbackSubrole, isAdmin, previewUrl, routeKey } = options;
|
|
85
|
+
const apply = useCallback((next) => {
|
|
86
|
+
current.current = next;
|
|
87
|
+
setPreview(next);
|
|
88
|
+
}, []);
|
|
89
|
+
useEffect(() => {
|
|
90
|
+
const sync = () => {
|
|
91
|
+
const transition = planPreviewTransition({
|
|
92
|
+
state: target.state,
|
|
93
|
+
preview: current.current,
|
|
94
|
+
isAdmin,
|
|
95
|
+
});
|
|
96
|
+
if (transition.kind === "enter") {
|
|
97
|
+
apply(transition.preview);
|
|
98
|
+
onSelect(transition.preview.roleId);
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
if (transition.kind === "leave") {
|
|
102
|
+
apply(null);
|
|
103
|
+
onSelect(fallbackSubrole);
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
const unsubscribe = target.onPopState(sync);
|
|
107
|
+
sync();
|
|
108
|
+
return unsubscribe;
|
|
109
|
+
}, [apply, fallbackSubrole, isAdmin, onSelect, routeKey, target]);
|
|
110
|
+
const enter = useCallback((role) => {
|
|
111
|
+
apply({ roleId: role.id, name: role.name });
|
|
112
|
+
onSelect(role.id);
|
|
113
|
+
target.pushState(previewEntryState(role), "", previewUrl);
|
|
114
|
+
}, [apply, onSelect, previewUrl, target]);
|
|
115
|
+
const leave = useCallback(() => {
|
|
116
|
+
apply(null);
|
|
117
|
+
onSelect(fallbackSubrole);
|
|
118
|
+
target.replaceState(null, "", null);
|
|
119
|
+
}, [apply, fallbackSubrole, onSelect, target]);
|
|
120
|
+
const clear = useCallback(() => apply(null), [apply]);
|
|
121
|
+
return { preview, enter, clear, leave };
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=preview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preview.js","sourceRoot":"","sources":["../../../src/client/role/preview.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
|
|
|
2
2
|
import { CardShell, bindSettingsExternalStore, startVisibilityAwarePolling, } from "@yadsh/dsh-plugin-kit/client";
|
|
3
3
|
import { useCallback, useEffect, useMemo, useRef, useState, useSyncExternalStore, } from "react";
|
|
4
4
|
import { badgeText, isOverridden, mutationLanded, overriddenKeys, pluralRu, } from "./format.js";
|
|
5
|
-
import { AccessSection, AttachmentsSection, AccountsSection, BrandingSection, EmbeddingSection, InterfaceSection, LockdownSection, SessionSection, SourcesSection, StatusSection, } from "./sections.js";
|
|
5
|
+
import { AccessSection, AttachmentsSection, AccountsSection, BrandingSection, EmbeddingSection, InterfaceSection, LockdownSection, SessionSection, SlashSection, SourcesSection, StatusSection, } from "./sections.js";
|
|
6
6
|
const REFRESH_INTERVAL_MS = 5_000;
|
|
7
7
|
/** Shown when a settled mutation left the configuration unchanged. */
|
|
8
8
|
const REFUSED_MESSAGE = "Хост отклонил изменение: значение не сохранилось. Обычно так отвечает несовместимая комбинация полей — проверьте связанные значения этого раздела. Точную причину хост пишет в свой журнал.";
|
|
@@ -134,7 +134,7 @@ export function QaSettingsCard({ scope, describe }) {
|
|
|
134
134
|
};
|
|
135
135
|
return (_jsx(CardShell, { title: "\u041F\u043E\u043C\u043E\u0449\u043D\u0438\u043A QA", description: "\u0421\u0442\u0440\u0430\u043D\u0438\u0446\u0430 \u0432\u043E\u043F\u0440\u043E\u0441\u043E\u0432 \u0438 \u043E\u0442\u0432\u0435\u0442\u043E\u0432 \u043D\u0430 \u0441\u0435\u0441\u0441\u0438\u044F\u0445 DeepSeek Harness: \u043C\u0430\u0440\u0448\u0440\u0443\u0442, \u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u0435, \u0441\u0435\u0441\u0441\u0438\u044F, \u043F\u043E\u043B\u0438\u0442\u0438\u043A\u0430 \u0437\u0430\u043F\u0443\u0441\u043A\u0430, \u0430\u043A\u043A\u0430\u0443\u043D\u0442\u044B \u0438 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0438.", badge: _jsx("span", { className: "dsh-plugin-card__badge", children: badgeText(enabled, routePath) }), label: (open) => `${open ? "Скрыть" : "Показать"} настройки: Помощник QA`, bodyClassName: "qa-card-body", children: settings.status === "loading" ? (_jsx("p", { className: "qa-card-muted", children: "\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u044E \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043F\u043E\u043C\u043E\u0449\u043D\u0438\u043A\u0430\u2026" })) : (_jsxs(_Fragment, { children: [writeError !== null ? (_jsx("div", { className: "qa-card-error", children: writeError })) : null, hostError !== null ? (_jsx("div", { className: "qa-card-error", children: hostError })) : null, _jsx(StatusSection, { effective: effective, config: config, refreshing: refreshing, refreshedAt: refreshedAt, overrides: overrides.length, onRefresh: () => {
|
|
136
136
|
void refresh();
|
|
137
|
-
} }), _jsx(AccessSection, { ...sectionProps }), _jsx(BrandingSection, { ...sectionProps }), _jsx(SessionSection, { ...sectionProps }), _jsx(InterfaceSection, { ...sectionProps }), _jsx(LockdownSection, { ...sectionProps }), _jsx(AccountsSection, { ...sectionProps }), _jsx(SourcesSection, { ...sectionProps }), _jsx(AttachmentsSection, { ...sectionProps }), _jsx(EmbeddingSection, { ...sectionProps }), _jsxs("div", { className: "qa-card-footer", children: [_jsx("p", { className: "qa-card-footer-note", children: "\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0443\u0445\u043E\u0434\u044F\u0442 \u043D\u0430 \u0440\u0430\u0431\u043E\u0442\u0430\u044E\u0449\u0438\u0439 Host \u0441\u0440\u0430\u0437\u0443: \u043C\u0430\u0440\u0448\u0440\u0443\u0442 \u043F\u0435\u0440\u0435\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044F, \u043F\u043E\u043B\u0438\u0442\u0438\u043A\u0430 \u043F\u0440\u0438\u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F \u043F\u0440\u0438 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u0438 \u0441\u0435\u0441\u0441\u0438\u0438. \u041F\u0440\u0430\u0432\u043A\u0438 \u043B\u043E\u0436\u0430\u0442\u0441\u044F \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u043C \u0441\u043B\u043E\u0435\u043C \u043F\u043E\u0432\u0435\u0440\u0445 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u044F, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u0438\u0445 \u043C\u043E\u0436\u043D\u043E \u0441\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u2014 \u043D\u043E \u043D\u0435 \u043E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435, \u0437\u0430\u0448\u0438\u0442\u043E\u0435 \u0432 \u0441\u0430\u043C\u043E\u043C \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u0438." }), overrides.length > 0 ? (_jsxs("button", { type: "button", className: "qa-card-btn", disabled: !writable, onClick: resetAll, children: ["\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C", " ", pluralRu(overrides.length, [
|
|
137
|
+
} }), _jsx(AccessSection, { ...sectionProps }), _jsx(BrandingSection, { ...sectionProps }), _jsx(SessionSection, { ...sectionProps }), _jsx(InterfaceSection, { ...sectionProps }), _jsx(LockdownSection, { ...sectionProps }), _jsx(SlashSection, { ...sectionProps }), _jsx(AccountsSection, { ...sectionProps }), _jsx(SourcesSection, { ...sectionProps }), _jsx(AttachmentsSection, { ...sectionProps }), _jsx(EmbeddingSection, { ...sectionProps }), _jsxs("div", { className: "qa-card-footer", children: [_jsx("p", { className: "qa-card-footer-note", children: "\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u0443\u0445\u043E\u0434\u044F\u0442 \u043D\u0430 \u0440\u0430\u0431\u043E\u0442\u0430\u044E\u0449\u0438\u0439 Host \u0441\u0440\u0430\u0437\u0443: \u043C\u0430\u0440\u0448\u0440\u0443\u0442 \u043F\u0435\u0440\u0435\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044F, \u043F\u043E\u043B\u0438\u0442\u0438\u043A\u0430 \u043F\u0440\u0438\u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F \u043F\u0440\u0438 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0435\u043C \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u0438 \u0441\u0435\u0441\u0441\u0438\u0438. \u041F\u0440\u0430\u0432\u043A\u0438 \u043B\u043E\u0436\u0430\u0442\u0441\u044F \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u043C \u0441\u043B\u043E\u0435\u043C \u043F\u043E\u0432\u0435\u0440\u0445 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u044F, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u0438\u0445 \u043C\u043E\u0436\u043D\u043E \u0441\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u2014 \u043D\u043E \u043D\u0435 \u043E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435, \u0437\u0430\u0448\u0438\u0442\u043E\u0435 \u0432 \u0441\u0430\u043C\u043E\u043C \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u0438." }), overrides.length > 0 ? (_jsxs("button", { type: "button", className: "qa-card-btn", disabled: !writable, onClick: resetAll, children: ["\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C", " ", pluralRu(overrides.length, [
|
|
138
138
|
"переопределение",
|
|
139
139
|
"переопределения",
|
|
140
140
|
"переопределений",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.js","sourceRoot":"","sources":["../../../src/client/settings/card.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"card.js","sourceRoot":"","sources":["../../../src/client/settings/card.tsx"],"names":[],"mappings":"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"}
|
|
@@ -57,11 +57,6 @@ export function LockdownSection(props) {
|
|
|
57
57
|
value: "запрещена",
|
|
58
58
|
note: "allowPermissionChanges",
|
|
59
59
|
},
|
|
60
|
-
{
|
|
61
|
-
label: "Слеш-команды",
|
|
62
|
-
value: "запрещены",
|
|
63
|
-
note: "allowSlashCommands",
|
|
64
|
-
},
|
|
65
60
|
{
|
|
66
61
|
label: "Правка настроек",
|
|
67
62
|
value: "запрещена",
|
|
@@ -77,6 +72,6 @@ export function LockdownSection(props) {
|
|
|
77
72
|
value: "запрещено",
|
|
78
73
|
note: "allowArbitrarySessionOpen",
|
|
79
74
|
},
|
|
80
|
-
] }), _jsx("p", { className: "qa-card-muted", children: "\u042D\u0442\u0438 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u043D\u0435 \u043D\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044E\u0442\u0441\u044F: \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F \u0441 \u043B\u044E\u0431\u044B\u043C \u0438\u0437 \u0432\u043A\u043B\u044E\u0447\u0451\u043D\u043D\u044B\u0445 \u0444\u043B\u0430\u0433\u043E\u0432 \u043E\u0442\u0432\u0435\u0440\u0433\u0430\u0435\u0442\u0441\u044F \u0445\u043E\u0441\u0442\u043E\u043C, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0438\u0445 \u043D\u0435 \u043F\u0440\u0435\u0434\u043B\u0430\u0433\u0430\u0435\u0442." })] })] })] }));
|
|
75
|
+
] }), _jsx("p", { className: "qa-card-muted", children: "\u042D\u0442\u0438 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u043D\u0435 \u043D\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044E\u0442\u0441\u044F: \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F \u0441 \u043B\u044E\u0431\u044B\u043C \u0438\u0437 \u0432\u043A\u043B\u044E\u0447\u0451\u043D\u043D\u044B\u0445 \u0444\u043B\u0430\u0433\u043E\u0432 \u043E\u0442\u0432\u0435\u0440\u0433\u0430\u0435\u0442\u0441\u044F \u0445\u043E\u0441\u0442\u043E\u043C, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u0438\u0445 \u043D\u0435 \u043F\u0440\u0435\u0434\u043B\u0430\u0433\u0430\u0435\u0442. \u0421\u043B\u0435\u0448-\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u2014 \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435: \u0438\u0445 \u043C\u0430\u0441\u0442\u0435\u0440-\u0432\u044B\u043A\u043B\u044E\u0447\u0430\u0442\u0435\u043B\u044C \u0438 \u043F\u043E\u043B\u0438\u0442\u0438\u043A\u0430 \u0436\u0438\u0432\u0443\u0442 \u0432 \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u043E\u0439 \u0441\u0435\u043A\u0446\u0438\u0438 \u043D\u0438\u0436\u0435." })] })] })] }));
|
|
81
76
|
}
|
|
82
77
|
//# sourceMappingURL=lockdown.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lockdown.js","sourceRoot":"","sources":["../../../../src/client/settings/sections/lockdown.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"lockdown.js","sourceRoot":"","sources":["../../../../src/client/settings/sections/lockdown.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Slash interface: the master switch, the two admission policies and the
|
|
4
|
+
* palette itself.
|
|
5
|
+
*
|
|
6
|
+
* The allow lists stay name-based, which is what the deployment config stores
|
|
7
|
+
* — an operator writes `generate-tkp`, never an id. They are plain lists
|
|
8
|
+
* rather than checkboxes over a discovered catalog because the two halves are
|
|
9
|
+
* discovered differently and only one of them can be enumerated here at all:
|
|
10
|
+
* skills are a registry lookup, while a command is only resolvable against a
|
|
11
|
+
* live chat's agent, so this card could not honestly offer a fixed list of
|
|
12
|
+
* command names to tick.
|
|
13
|
+
*/
|
|
14
|
+
import { ListField, Notice, NumberField, Section, SelectField, Toggle, } from "../fields.js";
|
|
15
|
+
import { parseCommaList } from "../format.js";
|
|
16
|
+
import { overriddenAny, resetAside, } from "./common.js";
|
|
17
|
+
const POLICY_MODES = [
|
|
18
|
+
{ value: "deny-all", label: "Запретить всё" },
|
|
19
|
+
{ value: "allow-list", label: "Только из списка" },
|
|
20
|
+
{ value: "all", label: "Все доступные" },
|
|
21
|
+
];
|
|
22
|
+
/** Master switch, per-kind admission policy and palette presentation. */
|
|
23
|
+
export function SlashSection(props) {
|
|
24
|
+
const config = props.config;
|
|
25
|
+
const disabled = !props.writable;
|
|
26
|
+
const slash = config?.slashCommands;
|
|
27
|
+
const allow = config?.lockdown?.allowSlashCommands ?? false;
|
|
28
|
+
const skillMode = slash?.skills?.mode ?? "allow-list";
|
|
29
|
+
const commandMode = slash?.commands?.mode ?? "deny-all";
|
|
30
|
+
const palette = slash?.palette;
|
|
31
|
+
const paths = [
|
|
32
|
+
["slashCommands"],
|
|
33
|
+
["lockdown", "allowSlashCommands"],
|
|
34
|
+
];
|
|
35
|
+
const modified = overriddenAny(props, paths);
|
|
36
|
+
// Effective policy: while the switch is off nothing below has an effect, and
|
|
37
|
+
// saying so is the difference between "misconfigured" and "not enabled".
|
|
38
|
+
const effective = props.effective?.slashCommands;
|
|
39
|
+
return (_jsxs(Section, { title: "\u0421\u043B\u0435\u0448-\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F", modified: modified, aside: resetAside(props, paths), children: [_jsx(Toggle, { checked: allow, disabled: disabled, label: "\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044C \u0441\u043B\u044D\u0448-\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F", hint: "\u041E\u0442\u043A\u0440\u044B\u0432\u0430\u0435\u0442 \u043F\u0430\u043B\u0438\u0442\u0440\u0443 \u043F\u043E \u00AB/\u00BB \u0432 \u043F\u043E\u043B\u0435 \u0432\u0432\u043E\u0434\u0430. \u0421\u0430\u043C\u0430 \u043F\u043E \u0441\u0435\u0431\u0435 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442: \u043D\u0430\u0432\u044B\u043A\u0438 \u0438 \u043A\u043E\u043C\u0430\u043D\u0434\u044B \u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u044F\u044E\u0442\u0441\u044F \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u043E \u043D\u0438\u0436\u0435.", onChange: (value) => {
|
|
40
|
+
props.write(["lockdown", "allowSlashCommands"], value);
|
|
41
|
+
} }), allow ? null : (_jsx(Notice, { tone: "info", children: "\u0421\u043B\u044D\u0448-\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u044B: \u00AB/\u00BB \u0432 \u043D\u0430\u0447\u0430\u043B\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043F\u043E-\u043F\u0440\u0435\u0436\u043D\u0435\u043C\u0443 \u043E\u0442\u0432\u0435\u0440\u0433\u0430\u0435\u0442\u0441\u044F \u0441 \u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u043E\u0439, \u043F\u0430\u043B\u0438\u0442\u0440\u0430 \u043D\u0435 \u043E\u0442\u043A\u0440\u044B\u0432\u0430\u0435\u0442\u0441\u044F." })), _jsx(SelectField, { label: "\u041D\u0430\u0432\u044B\u043A\u0438", value: skillMode, disabled: disabled, options: POLICY_MODES, hint: "\u00AB\u0412\u0441\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0435\u00BB \u2014 \u044D\u0442\u043E user-invocable \u043D\u0430\u0432\u044B\u043A\u0438 \u0442\u0435\u043A\u0443\u0449\u0435\u0433\u043E \u0447\u0430\u0442\u0430, \u0430 \u043D\u0435 \u0432\u0435\u0441\u044C \u0440\u0435\u0435\u0441\u0442\u0440.", onChange: (value) => {
|
|
42
|
+
props.write(["slashCommands", "skills", "mode"], value);
|
|
43
|
+
} }), _jsx(ListField, { label: "\u0420\u0430\u0437\u0440\u0435\u0448\u0451\u043D\u043D\u044B\u0435 \u043D\u0430\u0432\u044B\u043A\u0438", value: slash?.skills?.allow ?? [], disabled: disabled || skillMode !== "allow-list", placeholder: "generate-tkp, generate-tz, gap-analysis", hint: "\u0422\u043E\u0447\u043D\u044B\u0435 \u0438\u043C\u0435\u043D\u0430 \u0431\u0435\u0437 \u0441\u043B\u0435\u0448\u0430, \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043F\u044F\u0442\u0443\u044E \u0438\u043B\u0438 \u043F\u043E \u043E\u0434\u043D\u043E\u043C\u0443 \u0432 \u0441\u0442\u0440\u043E\u043A\u0435. \u0414\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u043F\u0440\u0438 \u0440\u0435\u0436\u0438\u043C\u0435 \u00AB\u0422\u043E\u043B\u044C\u043A\u043E \u0438\u0437 \u0441\u043F\u0438\u0441\u043A\u0430\u00BB.", parse: parseCommaList, onCommit: (values) => {
|
|
44
|
+
props.write(["slashCommands", "skills", "allow"], values);
|
|
45
|
+
} }), _jsx(SelectField, { label: "\u041A\u043E\u043C\u0430\u043D\u0434\u044B", value: commandMode, disabled: disabled, options: POLICY_MODES, hint: "\u041A\u043E\u043C\u0430\u043D\u0434\u044B \u2014 \u044D\u0442\u043E \u0443\u043F\u0440\u0430\u0432\u043B\u044F\u044E\u0449\u0438\u0439 \u0441\u043B\u043E\u0439: \u043E\u043D\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u044E\u0442\u0441\u044F \u0445\u043E\u0441\u0442\u043E\u043C \u043D\u0430\u043F\u0440\u044F\u043C\u0443\u044E \u0438 \u043D\u0435 \u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0442\u0441\u044F \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435\u043C \u043C\u043E\u0434\u0435\u043B\u0438.", onChange: (value) => {
|
|
46
|
+
props.write(["slashCommands", "commands", "mode"], value);
|
|
47
|
+
} }), _jsx(ListField, { label: "\u0420\u0430\u0437\u0440\u0435\u0448\u0451\u043D\u043D\u044B\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u044B", value: slash?.commands?.allow ?? [], disabled: disabled || commandMode !== "allow-list", placeholder: "compact, export", hint: "\u0422\u043E\u0447\u043D\u044B\u0435 \u0438\u043C\u0435\u043D\u0430 \u0431\u0435\u0437 \u0441\u043B\u0435\u0448\u0430. \u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u043D\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0430 \u043D\u0438 \u043E\u0434\u043D\u0430 \u043A\u043E\u043C\u0430\u043D\u0434\u0430: \u043D\u043E\u0432\u0430\u044F \u043A\u043E\u043C\u0430\u043D\u0434\u0430 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u043E\u0433\u043E \u043F\u043B\u0430\u0433\u0438\u043D\u0430 \u043D\u0435 \u0434\u043E\u043B\u0436\u043D\u0430 \u043F\u043E\u044F\u0432\u043B\u044F\u0442\u044C\u0441\u044F \u0432 \u043F\u0430\u043B\u0438\u0442\u0440\u0435 \u0441\u0430\u043C\u0430.", parse: parseCommaList, onCommit: (values) => {
|
|
48
|
+
props.write(["slashCommands", "commands", "allow"], values);
|
|
49
|
+
} }), _jsxs("div", { className: "qa-card-grid", children: [_jsx(Toggle, { checked: palette?.enabled ?? true, disabled: disabled, label: "\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043F\u0430\u043B\u0438\u0442\u0440\u0443", hint: "\u0421\u043F\u0438\u0441\u043E\u043A \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043D\u0430\u0434 \u043F\u043E\u043B\u0435\u043C \u0432\u0432\u043E\u0434\u0430. \u0412\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u043D\u0435 \u0437\u0430\u043F\u0440\u0435\u0449\u0430\u0435\u0442 \u0443\u0436\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0451\u043D\u043D\u044B\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u2014 \u0438\u0445 \u043C\u043E\u0436\u043D\u043E \u043D\u0430\u0431\u0440\u0430\u0442\u044C \u0432\u0440\u0443\u0447\u043D\u0443\u044E.", onChange: (value) => {
|
|
50
|
+
props.write(["slashCommands", "palette", "enabled"], value);
|
|
51
|
+
} }), _jsx(Toggle, { checked: palette?.fuzzySearch ?? true, disabled: disabled, label: "\u041D\u0435\u0447\u0451\u0442\u043A\u0438\u0439 \u043F\u043E\u0438\u0441\u043A", hint: "\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0438\u0449\u0435\u0442 \u043F\u043E \u043F\u043E\u0434\u0441\u0442\u0440\u043E\u043A\u0435 \u0438 \u043F\u043E \u043F\u043E\u0440\u044F\u0434\u043A\u0443 \u0431\u0443\u043A\u0432. \u0412\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044B\u0439 \u2014 \u0442\u043E\u043B\u044C\u043A\u043E \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0435, \u043D\u0430\u0447\u0430\u043B\u043E \u0438\u043C\u0435\u043D\u0438 \u0438 \u0433\u0440\u0430\u043D\u0438\u0446\u0430 \u0441\u043B\u043E\u0432\u0430.", onChange: (value) => {
|
|
52
|
+
props.write(["slashCommands", "palette", "fuzzySearch"], value);
|
|
53
|
+
} }), _jsx(NumberField, { label: "\u0421\u0442\u0440\u043E\u043A \u0432 \u043F\u0430\u043B\u0438\u0442\u0440\u0435", value: palette?.maxVisible ?? 12, min: 1, max: 100, disabled: disabled, hint: "\u0421\u043A\u043E\u043B\u044C\u043A\u043E \u0441\u043E\u0432\u043F\u0430\u0434\u0435\u043D\u0438\u0439 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C; \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u044B\u0435 \u043E\u0442\u0441\u0435\u043A\u0430\u044E\u0442\u0441\u044F \u043F\u043E \u0440\u0435\u043B\u0435\u0432\u0430\u043D\u0442\u043D\u043E\u0441\u0442\u0438.", onChange: (value) => {
|
|
54
|
+
props.write(["slashCommands", "palette", "maxVisible"], value);
|
|
55
|
+
} })] }), effective?.legacyDefaults === true ? (_jsx(Notice, { tone: "warn", children: "\u0412\u043A\u043B\u044E\u0447\u0451\u043D \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0439 \u0440\u0435\u0436\u0438\u043C \u0441\u043E\u0432\u043C\u0435\u0441\u0442\u0438\u043C\u043E\u0441\u0442\u0438: \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u0435 \u0432\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0441\u043B\u044D\u0448-\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F, \u043D\u043E \u043D\u0435 \u043E\u043F\u0438\u0441\u044B\u0432\u0430\u0435\u0442 \u0438\u0445 \u043F\u043E\u043B\u0438\u0442\u0438\u043A\u0443. \u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u044B \u0432\u0441\u0435 user-invocable \u043D\u0430\u0432\u044B\u043A\u0438 \u0447\u0430\u0442\u0430, \u043A\u043E\u043C\u0430\u043D\u0434\u044B \u0437\u0430\u043F\u0440\u0435\u0449\u0435\u043D\u044B \u2014 \u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u0438\u0442\u0435 \u043A\u043E\u043C\u0430\u043D\u0434\u044B \u044F\u0432\u043D\u043E, \u0447\u0442\u043E\u0431\u044B \u043E\u043D\u0438 \u043F\u043E\u044F\u0432\u0438\u043B\u0438\u0441\u044C." })) : null, _jsx("p", { className: "qa-card-muted", children: "\u0421\u043B\u044D\u0448-\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u043D\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u044F\u044E\u0442 \u043F\u0440\u0430\u0432\u0430: \u043F\u0435\u0441\u043E\u0447\u043D\u0438\u0446\u0430, \u0431\u0435\u043B\u044B\u0439 \u0441\u043F\u0438\u0441\u043E\u043A \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u0438 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F \u043E\u0441\u0442\u0430\u044E\u0442\u0441\u044F \u043F\u0440\u0435\u0436\u043D\u0438\u043C\u0438. \u041D\u0430\u0432\u044B\u043A \u043B\u0438\u0448\u044C \u0434\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442 \u043C\u043E\u0434\u0435\u043B\u0438 \u0438\u043D\u0441\u0442\u0440\u0443\u043A\u0446\u0438\u0438, \u043A\u043E\u043C\u0430\u043D\u0434\u0430 \u0432\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F \u0445\u043E\u0441\u0442\u043E\u043C." })] }));
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=slash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slash.js","sourceRoot":"","sources":["../../../../src/client/settings/sections/slash.tsx"],"names":[],"mappings":"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"}
|
|
@@ -28,10 +28,18 @@ export function StatusSection(props) {
|
|
|
28
28
|
const accounts = effective?.accounts.enabled ?? config?.accounts?.enabled ?? false;
|
|
29
29
|
const tools = effective?.lockdown.toolPolicy.allow.length ??
|
|
30
30
|
config?.lockdown?.toolPolicy?.allow?.length;
|
|
31
|
+
const questions = effective?.interaction.questions ?? config?.interaction?.questions;
|
|
32
|
+
// The seam only ever produces a form where the tool policy lets the model
|
|
33
|
+
// call the tool: one half without the other is a setting that does nothing.
|
|
34
|
+
const questionTool = "ask_user_question";
|
|
35
|
+
const questionToolAllowed = effective === null
|
|
36
|
+
? null
|
|
37
|
+
: effective.lockdown.enabled &&
|
|
38
|
+
effective.lockdown.toolPolicy.allow.includes(questionTool);
|
|
31
39
|
return (_jsxs(Section, { title: "\u0421\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435", modified: false, aside: _jsx("button", { type: "button", className: "qa-card-btn", disabled: props.refreshing, onClick: props.onRefresh, children: props.refreshing ? "Обновляю…" : "Обновить" }), children: [_jsxs("div", { className: "qa-card-status", children: [_jsx(Chip, { label: "\u0421\u0442\u0440\u0430\u043D\u0438\u0446\u0430", value: enabled ? "включена" : "выключена", tone: enabled ? undefined : "off" }), _jsx(Chip, { label: "\u041C\u0430\u0440\u0448\u0440\u0443\u0442", value: enabled ? routePath : "—" }), _jsx(Chip, { label: "\u0421\u0435\u0441\u0441\u0438\u044F", value: shortPolicy(policy) }), _jsx(Chip, { label: "\u0411\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u0430", value: !lockdown
|
|
32
40
|
? "выключена"
|
|
33
41
|
: sandbox === "workspace-write"
|
|
34
42
|
? "запись"
|
|
35
|
-
: "только чтение", tone: lockdown ? undefined : "off" }), _jsx(Chip, { label: "\u0410\u043A\u043A\u0430\u0443\u043D\u0442\u044B", value: accounts ? "включены" : "выключены" }), _jsx(Chip, { label: "\u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B", value: formatCount(tools) }), _jsx(Chip, { label: "\u041F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E", value: formatClock(props.refreshedAt) })] }), effective === null ? (_jsx(Notice, { tone: "info", children: "\u0425\u043E\u0441\u0442 \u0435\u0449\u0451 \u043D\u0435 \u043E\u0442\u0432\u0435\u0442\u0438\u043B: \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0432\u0437\u044F\u0442\u044B \u0438\u0437 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A. \u041A\u0430\u043A \u0442\u043E\u043B\u044C\u043A\u043E \u043E\u043D \u043E\u0442\u0432\u0435\u0442\u0438\u0442, \u0437\u0434\u0435\u0441\u044C \u043F\u043E\u044F\u0432\u0438\u0442\u0441\u044F \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F, \u0441 \u043A\u043E\u0442\u043E\u0440\u043E\u0439 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430." })) : null, props.overrides > 0 ? (_jsxs("p", { className: "qa-card-muted", children: ["\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439 \u0441\u043B\u043E\u0439 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A \u043F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442", " ", pluralRu(props.overrides, ["ключ", "ключа", "ключей"]), ". \u0421\u0435\u043A\u0446\u0438\u0438 \u043D\u0438\u0436\u0435 \u043F\u043E\u043C\u0435\u0447\u0430\u044E\u0442 \u0442\u0430\u043A\u0438\u0435 \u043F\u043E\u043B\u044F \u043A\u0430\u043A \u00AB\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E\u00BB, \u0438 \u0440\u044F\u0434\u043E\u043C \u0441 \u043D\u0438\u043C\u0438 \u0435\u0441\u0442\u044C \u0441\u0431\u0440\u043E\u0441."] })) : null] }));
|
|
43
|
+
: "только чтение", tone: lockdown ? undefined : "off" }), _jsx(Chip, { label: "\u0410\u043A\u043A\u0430\u0443\u043D\u0442\u044B", value: accounts ? "включены" : "выключены" }), _jsx(Chip, { label: "\u0412\u043E\u043F\u0440\u043E\u0441\u044B \u043C\u043E\u0434\u0435\u043B\u0438", value: questions === "interactive" ? "формой в чате" : "отклоняются", tone: questions === "interactive" ? undefined : "off" }), _jsx(Chip, { label: "\u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B", value: formatCount(tools) }), _jsx(Chip, { label: "\u041F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E", value: formatClock(props.refreshedAt) })] }), effective === null ? (_jsx(Notice, { tone: "info", children: "\u0425\u043E\u0441\u0442 \u0435\u0449\u0451 \u043D\u0435 \u043E\u0442\u0432\u0435\u0442\u0438\u043B: \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0432\u0437\u044F\u0442\u044B \u0438\u0437 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A. \u041A\u0430\u043A \u0442\u043E\u043B\u044C\u043A\u043E \u043E\u043D \u043E\u0442\u0432\u0435\u0442\u0438\u0442, \u0437\u0434\u0435\u0441\u044C \u043F\u043E\u044F\u0432\u0438\u0442\u0441\u044F \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F, \u0441 \u043A\u043E\u0442\u043E\u0440\u043E\u0439 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430." })) : null, questions === "interactive" && questionToolAllowed === false ? (_jsxs(Notice, { tone: "warn", children: ["\u0412\u043E\u043F\u0440\u043E\u0441\u044B \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u044B, \u043D\u043E \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 ", questionTool, " \u043D\u0435 \u0432\u0445\u043E\u0434\u0438\u0442 \u0432 \u0441\u043F\u0438\u0441\u043E\u043A \u0440\u0430\u0437\u0440\u0435\u0448\u0451\u043D\u043D\u044B\u0445 (lockdown.toolPolicy.allow): \u043C\u043E\u0434\u0435\u043B\u044C \u043D\u0435 \u0441\u043C\u043E\u0436\u0435\u0442 \u0437\u0430\u0434\u0430\u0442\u044C \u0432\u043E\u043F\u0440\u043E\u0441, \u0438 \u0444\u043E\u0440\u043C\u0430 \u043D\u0435 \u043F\u043E\u044F\u0432\u0438\u0442\u0441\u044F. \u0414\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 \u0432 \u0441\u043F\u0438\u0441\u043E\u043A \u0438\u043B\u0438 \u0432\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u0435 \u0432\u043E\u043F\u0440\u043E\u0441\u044B."] })) : null, questions !== "interactive" && questionToolAllowed === true ? (_jsxs(Notice, { tone: "warn", children: ["\u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 ", questionTool, " \u0440\u0430\u0437\u0440\u0435\u0448\u0451\u043D, \u0430 \u0432\u043E\u043F\u0440\u043E\u0441\u044B \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u044B: \u043A\u0430\u0436\u0434\u044B\u0439 \u0437\u0430\u043F\u0440\u043E\u0441 \u043C\u043E\u0434\u0435\u043B\u0438 \u0431\u0443\u0434\u0435\u0442 \u043E\u0442\u043A\u043B\u043E\u043D\u0451\u043D. \u0412\u043A\u043B\u044E\u0447\u0438\u0442\u0435 \u00AB\u0412\u043E\u043F\u0440\u043E\u0441\u044B \u043C\u043E\u0434\u0435\u043B\u0438\u00BB \u0432 \u0440\u0430\u0437\u0434\u0435\u043B\u0435 \u00AB\u0412\u0437\u0430\u0438\u043C\u043E\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u00BB \u0438\u043B\u0438 \u0443\u0431\u0435\u0440\u0438\u0442\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 \u0438\u0437 \u0441\u043F\u0438\u0441\u043A\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0451\u043D\u043D\u044B\u0445."] })) : null, props.overrides > 0 ? (_jsxs("p", { className: "qa-card-muted", children: ["\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0439 \u0441\u043B\u043E\u0439 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A \u043F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u0435\u0442", " ", pluralRu(props.overrides, ["ключ", "ключа", "ключей"]), ". \u0421\u0435\u043A\u0446\u0438\u0438 \u043D\u0438\u0436\u0435 \u043F\u043E\u043C\u0435\u0447\u0430\u044E\u0442 \u0442\u0430\u043A\u0438\u0435 \u043F\u043E\u043B\u044F \u043A\u0430\u043A \u00AB\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E\u00BB, \u0438 \u0440\u044F\u0434\u043E\u043C \u0441 \u043D\u0438\u043C\u0438 \u0435\u0441\u0442\u044C \u0441\u0431\u0440\u043E\u0441."] })) : null] }));
|
|
36
44
|
}
|
|
37
45
|
//# sourceMappingURL=status.js.map
|