dsh-mnemon 0.1.0 → 0.1.2
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.en.md +33 -3
- package/README.md +33 -3
- package/SECURITY.md +89 -0
- package/cordis.patch.yml +1 -0
- package/docs/en/README.md +1 -0
- package/docs/en/configuration.md +17 -7
- package/docs/en/getting-started.md +23 -5
- package/docs/en/interfaces.md +17 -3
- package/docs/en/operations.md +9 -4
- package/docs/en/project-overview.md +3 -1
- package/docs/en/roadmap.md +1 -1
- package/docs/en/storage-model.md +1 -1
- package/docs/zh-CN/README.md +1 -0
- package/docs/zh-CN/configuration.md +17 -7
- package/docs/zh-CN/getting-started.md +23 -5
- package/docs/zh-CN/interfaces.md +17 -3
- package/docs/zh-CN/operations.md +9 -4
- package/docs/zh-CN/project-overview.md +3 -1
- package/docs/zh-CN/roadmap.md +1 -1
- package/docs/zh-CN/storage-model.md +1 -1
- package/lib/client.js +2545 -620
- package/lib/client.js.map +1 -1
- package/lib/index.js +3816 -2481
- package/lib/types/activity.d.ts +32 -0
- package/lib/types/activity.d.ts.map +1 -0
- package/lib/types/activity.js +93 -0
- package/lib/types/activity.js.map +1 -0
- package/lib/types/client/MnemonPackSection.d.ts +11 -0
- package/lib/types/client/MnemonPackSection.d.ts.map +1 -0
- package/lib/types/client/MnemonPackSection.js +136 -0
- package/lib/types/client/MnemonPackSection.js.map +1 -0
- package/lib/types/client/MnemonSaveAction.d.ts +13 -0
- package/lib/types/client/MnemonSaveAction.d.ts.map +1 -0
- package/lib/types/client/MnemonSaveAction.js +141 -0
- package/lib/types/client/MnemonSaveAction.js.map +1 -0
- package/lib/types/client/MnemonSettingsCard.d.ts +9 -3
- package/lib/types/client/MnemonSettingsCard.d.ts.map +1 -1
- package/lib/types/client/MnemonSettingsCard.js +98 -51
- package/lib/types/client/MnemonSettingsCard.js.map +1 -1
- package/lib/types/client/MnemonToolviews.d.ts +19 -0
- package/lib/types/client/MnemonToolviews.d.ts.map +1 -0
- package/lib/types/client/MnemonToolviews.js +172 -0
- package/lib/types/client/MnemonToolviews.js.map +1 -0
- package/lib/types/client/MnemonTurnTail.d.ts +18 -0
- package/lib/types/client/MnemonTurnTail.d.ts.map +1 -0
- package/lib/types/client/MnemonTurnTail.js +44 -0
- package/lib/types/client/MnemonTurnTail.js.map +1 -0
- package/lib/types/client/MnemonView.d.ts +13 -0
- package/lib/types/client/MnemonView.d.ts.map +1 -1
- package/lib/types/client/MnemonView.js +33 -14
- package/lib/types/client/MnemonView.js.map +1 -1
- package/lib/types/client/anchor.d.ts +28 -0
- package/lib/types/client/anchor.d.ts.map +1 -0
- package/lib/types/client/anchor.js +46 -0
- package/lib/types/client/anchor.js.map +1 -0
- package/lib/types/client/api.d.ts +17 -2
- package/lib/types/client/api.d.ts.map +1 -1
- package/lib/types/client/api.js +86 -25
- package/lib/types/client/api.js.map +1 -1
- package/lib/types/client/dsh-compat.d.ts +21 -0
- package/lib/types/client/dsh-compat.d.ts.map +1 -0
- package/lib/types/client/dsh-compat.js +2 -0
- package/lib/types/client/dsh-compat.js.map +1 -0
- package/lib/types/client/index.d.ts +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/index.js +140 -12
- package/lib/types/client/index.js.map +1 -1
- package/lib/types/client/locales.d.ts +272 -4
- package/lib/types/client/locales.d.ts.map +1 -1
- package/lib/types/client/locales.js +292 -24
- package/lib/types/client/locales.js.map +1 -1
- package/lib/types/client/settings.d.ts +10 -5
- package/lib/types/client/settings.d.ts.map +1 -1
- package/lib/types/client/settings.js +32 -11
- package/lib/types/client/settings.js.map +1 -1
- package/lib/types/client/sidebar-entry.d.ts +6 -0
- package/lib/types/client/sidebar-entry.d.ts.map +1 -0
- package/lib/types/client/sidebar-entry.js +132 -0
- package/lib/types/client/sidebar-entry.js.map +1 -0
- package/lib/types/client/workspace-controller.d.ts +15 -0
- package/lib/types/client/workspace-controller.d.ts.map +1 -0
- package/lib/types/client/workspace-controller.js +21 -0
- package/lib/types/client/workspace-controller.js.map +1 -0
- package/lib/types/client/workspace-mount.d.ts +8 -0
- package/lib/types/client/workspace-mount.d.ts.map +1 -0
- package/lib/types/client/workspace-mount.js +135 -0
- package/lib/types/client/workspace-mount.js.map +1 -0
- package/lib/types/commands.d.ts +10 -2
- package/lib/types/commands.d.ts.map +1 -1
- package/lib/types/commands.js +5 -1
- package/lib/types/commands.js.map +1 -1
- package/lib/types/config.d.ts +42 -3
- package/lib/types/config.d.ts.map +1 -1
- package/lib/types/config.js +80 -6
- package/lib/types/config.js.map +1 -1
- package/lib/types/contracts.d.ts +27 -37
- package/lib/types/contracts.d.ts.map +1 -1
- package/lib/types/documents.d.ts.map +1 -1
- package/lib/types/documents.js +6 -14
- package/lib/types/documents.js.map +1 -1
- package/lib/types/guidance.d.ts +5 -2
- package/lib/types/guidance.d.ts.map +1 -1
- package/lib/types/guidance.js +18 -2
- package/lib/types/guidance.js.map +1 -1
- package/lib/types/index.d.ts +4 -2
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/index.js +29 -20
- package/lib/types/index.js.map +1 -1
- package/lib/types/lifecycle.d.ts +23 -3
- package/lib/types/lifecycle.d.ts.map +1 -1
- package/lib/types/lifecycle.js +89 -13
- package/lib/types/lifecycle.js.map +1 -1
- package/lib/types/live-runtime.d.ts +66 -0
- package/lib/types/live-runtime.d.ts.map +1 -0
- package/lib/types/live-runtime.js +146 -0
- package/lib/types/live-runtime.js.map +1 -0
- package/lib/types/memory-bodies.d.ts +2 -0
- package/lib/types/memory-bodies.d.ts.map +1 -1
- package/lib/types/memory-bodies.js +29 -10
- package/lib/types/memory-bodies.js.map +1 -1
- package/lib/types/pack.d.ts +74 -0
- package/lib/types/pack.d.ts.map +1 -0
- package/lib/types/pack.js +709 -0
- package/lib/types/pack.js.map +1 -0
- package/lib/types/rpc.d.ts +10 -3
- package/lib/types/rpc.d.ts.map +1 -1
- package/lib/types/rpc.js +158 -19
- package/lib/types/rpc.js.map +1 -1
- package/lib/types/runner.d.ts +3 -1
- package/lib/types/runner.d.ts.map +1 -1
- package/lib/types/runner.js +7 -2
- package/lib/types/runner.js.map +1 -1
- package/lib/types/service.d.ts +16 -0
- package/lib/types/service.d.ts.map +1 -1
- package/lib/types/service.js.map +1 -1
- package/lib/types/settings.d.ts +1 -0
- package/lib/types/settings.d.ts.map +1 -1
- package/lib/types/settings.js +45 -16
- package/lib/types/settings.js.map +1 -1
- package/lib/types/subagent.d.ts +11 -2
- package/lib/types/subagent.d.ts.map +1 -1
- package/lib/types/subagent.js +34 -29
- package/lib/types/subagent.js.map +1 -1
- package/lib/types/tools.d.ts +11 -1
- package/lib/types/tools.d.ts.map +1 -1
- package/lib/types/tools.js +29 -16
- package/lib/types/tools.js.map +1 -1
- package/package.json +23 -12
|
@@ -2,21 +2,36 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
import { useEffect, useMemo, useState, useSyncExternalStore } from 'react';
|
|
3
3
|
import css from './MnemonSettingsCard.module.css';
|
|
4
4
|
import { translateZh } from "./locales.js";
|
|
5
|
-
|
|
5
|
+
import { MnemonPackSection } from "./MnemonPackSection.js";
|
|
6
|
+
const CORE_FIELDS = ['displayMode', 'storageScope', 'dataDir'];
|
|
7
|
+
const INTERACTION_FIELDS = ['toolviews', 'turnBar', 'saveAction'];
|
|
6
8
|
function record(value) {
|
|
7
|
-
return typeof value === 'object' && value !== null && !Array.isArray(value)
|
|
8
|
-
? value
|
|
9
|
-
: {};
|
|
9
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value) ? value : {};
|
|
10
10
|
}
|
|
11
|
-
function
|
|
11
|
+
function legacyPackDirectory(value) {
|
|
12
|
+
const packs = value.customPacks ?? [];
|
|
13
|
+
return packs.find(pack => pack.id === value.customPackId)?.dataDir?.trim()
|
|
14
|
+
?? (packs.length === 1 ? packs[0]?.dataDir?.trim() : undefined)
|
|
15
|
+
?? '';
|
|
16
|
+
}
|
|
17
|
+
function coreDraft(value) {
|
|
12
18
|
const resolved = value ?? {};
|
|
19
|
+
const dataDir = resolved.dataDir?.trim() || legacyPackDirectory(resolved);
|
|
20
|
+
return {
|
|
21
|
+
displayMode: resolved.displayMode ?? 'sidebar',
|
|
22
|
+
storageScope: resolved.storageScope ?? (dataDir === '' ? 'global' : 'custom'),
|
|
23
|
+
dataDir,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
function interactionDraft(value) {
|
|
13
27
|
return {
|
|
14
|
-
|
|
15
|
-
|
|
28
|
+
toolviews: value?.toolviews === true,
|
|
29
|
+
turnBar: value?.turnBar === true,
|
|
30
|
+
saveAction: value?.saveAction === true,
|
|
16
31
|
};
|
|
17
32
|
}
|
|
18
|
-
function
|
|
19
|
-
return
|
|
33
|
+
function draftOf(core, interaction) {
|
|
34
|
+
return { ...coreDraft(core), ...interactionDraft(interaction) };
|
|
20
35
|
}
|
|
21
36
|
function validation(t, draft) {
|
|
22
37
|
if (!['global', 'workspace', 'custom'].includes(draft.storageScope))
|
|
@@ -26,70 +41,100 @@ function validation(t, draft) {
|
|
|
26
41
|
const directory = draft.dataDir.trim();
|
|
27
42
|
if (directory === '')
|
|
28
43
|
return t('config.customRequired');
|
|
29
|
-
|
|
44
|
+
const posixAbsolute = directory.startsWith('/');
|
|
45
|
+
const homeRelative = directory === '~' || directory.startsWith('~/');
|
|
46
|
+
const windowsDriveAbsolute = /^[a-zA-Z]:[\\/]/.test(directory);
|
|
47
|
+
const windowsUncAbsolute = /^\\\\[^\\/]+[\\/][^\\/]+/.test(directory);
|
|
48
|
+
if (!posixAbsolute && !homeRelative && !windowsDriveAbsolute && !windowsUncAbsolute)
|
|
30
49
|
return t('config.customAbsolute');
|
|
31
50
|
return null;
|
|
32
51
|
}
|
|
33
|
-
|
|
52
|
+
function useScope(scope) {
|
|
34
53
|
const subscribe = useMemo(() => scope.subscribe.bind(scope), [scope]);
|
|
35
54
|
const getSnapshot = useMemo(() => scope.getSnapshot.bind(scope), [scope]);
|
|
36
|
-
|
|
37
|
-
|
|
55
|
+
return useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
|
|
56
|
+
}
|
|
57
|
+
function operations(fields, dirty, draft) {
|
|
58
|
+
return fields.flatMap((field) => {
|
|
59
|
+
if (!dirty.has(field))
|
|
60
|
+
return [];
|
|
61
|
+
if (field === 'dataDir' && draft.dataDir.trim() === '')
|
|
62
|
+
return [{ op: 'unset', path: [field] }];
|
|
63
|
+
const value = draft[field];
|
|
64
|
+
return [{ op: 'set', path: [field], value: typeof value === 'string' ? value.trim() : value }];
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
async function commit(scope, edits) {
|
|
68
|
+
if (scope.mutate !== undefined)
|
|
69
|
+
return scope.mutate(edits);
|
|
70
|
+
for (const edit of edits) {
|
|
71
|
+
if (edit.path.length === 1) {
|
|
72
|
+
if (edit.op === 'set')
|
|
73
|
+
await scope.set(edit.path[0], edit.value);
|
|
74
|
+
else
|
|
75
|
+
await scope.unset(edit.path[0]);
|
|
76
|
+
}
|
|
77
|
+
else if (edit.op === 'set')
|
|
78
|
+
await scope.setPath(edit.path, edit.value);
|
|
79
|
+
else
|
|
80
|
+
await scope.unsetPath(edit.path);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/** Dedicated Mnemon page contributed directly to DSH's settings navigation. */
|
|
84
|
+
export function MnemonSettingsCard({ scope, interactionScope: suppliedInteractionScope, connection, t = translateZh }) {
|
|
85
|
+
const interactionScope = suppliedInteractionScope ?? scope;
|
|
86
|
+
const coreSnapshot = useScope(scope);
|
|
87
|
+
const interactionSnapshot = useScope(interactionScope);
|
|
88
|
+
const [draft, setDraft] = useState(() => draftOf(coreSnapshot.value, interactionSnapshot.value));
|
|
38
89
|
const [dirty, setDirty] = useState(() => new Set());
|
|
39
|
-
const [reset, setReset] = useState(() => new Set());
|
|
40
90
|
const [saving, setSaving] = useState(false);
|
|
41
91
|
const [failed, setFailed] = useState(null);
|
|
92
|
+
const [applied, setApplied] = useState(false);
|
|
93
|
+
const [targetRevision, setTargetRevision] = useState(0);
|
|
42
94
|
useEffect(() => {
|
|
43
95
|
if (dirty.size === 0)
|
|
44
|
-
setDraft(draftOf(
|
|
45
|
-
}, [dirty.size,
|
|
46
|
-
const
|
|
47
|
-
const inherited = useMemo(() => inheritedDraft(snapshot.base), [snapshot.base]);
|
|
96
|
+
setDraft(draftOf(coreSnapshot.value, interactionSnapshot.value));
|
|
97
|
+
}, [dirty.size, coreSnapshot.value, interactionSnapshot.value]);
|
|
98
|
+
const coreUser = useMemo(() => record(coreSnapshot.user), [coreSnapshot.user]);
|
|
48
99
|
const error = validation(t, draft);
|
|
49
|
-
const
|
|
50
|
-
|
|
100
|
+
const loading = coreSnapshot.status === 'loading' || interactionSnapshot.status === 'loading';
|
|
101
|
+
const writable = coreSnapshot.writable && interactionSnapshot.writable;
|
|
102
|
+
if (coreSnapshot.status === 'unavailable' && interactionSnapshot.status === 'unavailable')
|
|
51
103
|
return null;
|
|
52
104
|
const edit = (field, value) => {
|
|
53
105
|
setDraft(current => ({ ...current, [field]: value }));
|
|
54
106
|
setDirty(current => new Set(current).add(field));
|
|
55
|
-
setReset(current => {
|
|
56
|
-
const next = new Set(current);
|
|
57
|
-
next.delete(field);
|
|
58
|
-
return next;
|
|
59
|
-
});
|
|
60
|
-
setFailed(null);
|
|
61
|
-
};
|
|
62
|
-
const resetField = (field) => {
|
|
63
|
-
setDraft(current => ({ ...current, [field]: inherited[field] }));
|
|
64
|
-
setDirty(current => new Set(current).add(field));
|
|
65
|
-
setReset(current => new Set(current).add(field));
|
|
66
107
|
setFailed(null);
|
|
108
|
+
setApplied(false);
|
|
67
109
|
};
|
|
68
110
|
const discard = () => {
|
|
69
|
-
setDraft(draftOf(
|
|
111
|
+
setDraft(draftOf(coreSnapshot.value, interactionSnapshot.value));
|
|
70
112
|
setDirty(new Set());
|
|
71
|
-
setReset(new Set());
|
|
72
113
|
setFailed(null);
|
|
114
|
+
setApplied(false);
|
|
73
115
|
};
|
|
74
116
|
const save = async () => {
|
|
75
|
-
if (error !== null || dirty.size === 0 || saving)
|
|
117
|
+
if (error !== null || dirty.size === 0 || saving || !writable)
|
|
76
118
|
return;
|
|
77
119
|
setSaving(true);
|
|
78
120
|
setFailed(null);
|
|
79
121
|
try {
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
if (
|
|
83
|
-
|
|
84
|
-
if (
|
|
85
|
-
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
await scope.set(field, draft[field].trim());
|
|
89
|
-
}
|
|
122
|
+
const coreOps = operations(CORE_FIELDS, dirty, draft);
|
|
123
|
+
if (coreOps.length > 0) {
|
|
124
|
+
if (Object.hasOwn(coreUser, 'customPackId'))
|
|
125
|
+
coreOps.push({ op: 'unset', path: ['customPackId'] });
|
|
126
|
+
if (Object.hasOwn(coreUser, 'customPacks'))
|
|
127
|
+
coreOps.push({ op: 'unset', path: ['customPacks'] });
|
|
90
128
|
}
|
|
129
|
+
const interactionOps = operations(INTERACTION_FIELDS, dirty, draft);
|
|
130
|
+
await Promise.all([
|
|
131
|
+
...(coreOps.length === 0 ? [] : [commit(scope, coreOps)]),
|
|
132
|
+
...(interactionOps.length === 0 ? [] : [commit(interactionScope, interactionOps)]),
|
|
133
|
+
]);
|
|
91
134
|
setDirty(new Set());
|
|
92
|
-
|
|
135
|
+
setApplied(true);
|
|
136
|
+
if (coreOps.length > 0)
|
|
137
|
+
setTargetRevision(revision => revision + 1);
|
|
93
138
|
}
|
|
94
139
|
catch (reason) {
|
|
95
140
|
setFailed(reason instanceof Error ? reason.message : String(reason));
|
|
@@ -98,12 +143,14 @@ export function MnemonSettingsCard({ scope, t = translateZh }) {
|
|
|
98
143
|
setSaving(false);
|
|
99
144
|
}
|
|
100
145
|
};
|
|
101
|
-
const
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
|
|
146
|
+
const coreDisabled = loading || saving || !coreSnapshot.writable;
|
|
147
|
+
const interactionDisabled = loading || saving || !interactionSnapshot.writable;
|
|
148
|
+
return (_jsx("section", { className: css.page, "aria-label": t('config.aria'), "aria-busy": saving || loading, children: loading ? _jsx("p", { className: css.loading, role: "status", children: t('common.loading') }) : _jsxs(_Fragment, { children: [_jsxs("header", { className: css.pageHeader, children: [_jsx("h1", { children: t('config.title') }), _jsx("p", { children: t('config.description') })] }), _jsxs("section", { className: css.section, "aria-labelledby": "mnemon-display-heading", children: [_jsx("div", { className: css.sectionHeading, children: _jsxs("div", { children: [_jsx("h2", { id: "mnemon-display-heading", children: t('config.displayTitle') }), _jsx("p", { children: t('config.displayDescription') })] }) }), _jsxs("div", { className: `${css.choiceGrid} ${css.displayGrid}`, role: "radiogroup", "aria-label": t('config.displayAria'), children: [_jsx(ChoiceCard, { id: "mnemon-display-sidebar", name: "mnemon-display", label: t('config.displaySidebar'), detail: t('config.displaySidebarHint'), checked: draft.displayMode === 'sidebar', disabled: coreDisabled, onChange: () => edit('displayMode', 'sidebar') }), _jsx(ChoiceCard, { id: "mnemon-display-buildin", name: "mnemon-display", label: t('config.displayBuildin'), detail: t('config.displayBuildinHint'), checked: draft.displayMode === 'buildin', disabled: coreDisabled, onChange: () => edit('displayMode', 'buildin') })] })] }), _jsxs("section", { className: css.section, "aria-labelledby": "mnemon-storage-heading", children: [_jsx("div", { className: css.sectionHeading, children: _jsxs("div", { children: [_jsx("h2", { id: "mnemon-storage-heading", children: t('config.storageTitle') }), _jsx("p", { children: t('config.storageDescription') })] }) }), _jsxs("div", { className: css.choiceGrid, role: "radiogroup", "aria-label": t('config.scopeAria'), children: [_jsx(ChoiceCard, { id: "mnemon-storage-global", name: "mnemon-storage", label: t('config.global'), detail: "~/.mnemon", checked: draft.storageScope === 'global', disabled: coreDisabled, onChange: () => edit('storageScope', 'global') }), _jsx(ChoiceCard, { id: "mnemon-storage-workspace", name: "mnemon-storage", label: t('config.workspace'), detail: "<workspace>/.mnemon", checked: draft.storageScope === 'workspace', disabled: coreDisabled, onChange: () => edit('storageScope', 'workspace') }), _jsx(ChoiceCard, { id: "mnemon-storage-custom", name: "mnemon-storage", label: t('config.custom'), detail: draft.dataDir === '' ? t('config.customHintShort') : t('config.customSelected'), checked: draft.storageScope === 'custom', disabled: coreDisabled, onChange: () => edit('storageScope', 'custom') })] }), draft.storageScope === 'custom' && _jsxs("div", { className: css.settingRow, children: [_jsxs("div", { className: css.settingCopy, children: [_jsx("strong", { children: t('config.customDirectory') }), _jsx("small", { children: t('config.customDirectoryHint') })] }), _jsx("div", { className: css.directoryControl, children: _jsx("input", { id: "mnemon-custom-directory", name: "mnemon-custom-directory", type: "text", className: css.directoryInput, "aria-label": t('config.customAria'), "aria-invalid": error !== null, placeholder: t('config.customPlaceholder'), value: draft.dataDir, disabled: coreDisabled, autoComplete: "off", spellCheck: false, autoCapitalize: "none", autoCorrect: "off", onChange: event => edit('dataDir', event.target.value) }) })] })] }), _jsxs("section", { className: css.section, "aria-labelledby": "mnemon-interaction-heading", children: [_jsx("div", { className: css.sectionHeading, children: _jsxs("div", { children: [_jsx("h2", { id: "mnemon-interaction-heading", children: t('config.interactionTitle') }), _jsx("p", { children: t('config.interactionHint') })] }) }), _jsxs("div", { className: css.rowGroup, children: [_jsx(ToggleRow, { id: "mnemon-interaction-toolviews", label: t('config.interactionToolviews'), hint: t('config.interactionToolviewsHint'), checked: draft.toolviews, disabled: interactionDisabled, onChange: value => edit('toolviews', value) }), _jsx(ToggleRow, { id: "mnemon-interaction-turn-bar", label: t('config.interactionTurnBar'), hint: t('config.interactionTurnBarHint'), checked: draft.turnBar, disabled: interactionDisabled, onChange: value => edit('turnBar', value) }), _jsx(ToggleRow, { id: "mnemon-interaction-save-action", label: t('config.interactionSaveAction'), hint: t('config.interactionSaveActionHint'), checked: draft.saveAction, disabled: interactionDisabled, onChange: value => edit('saveAction', value) })] })] }), _jsx(MnemonPackSection, { ...(connection === undefined ? {} : { connection }), refreshKey: targetRevision, t: t }), _jsxs("div", { className: css.feedback, "aria-live": "polite", children: [error !== null && _jsx("p", { className: css.error, role: "alert", children: error }), failed !== null && _jsx("p", { className: css.error, role: "alert", children: t('config.saveFailed', { error: failed }) }), applied && _jsx("p", { className: css.success, role: "status", children: t('config.ready') }), !writable && _jsx("p", { className: css.readOnly, children: t('config.readOnly') })] }), _jsxs("footer", { className: `${css.actions} ${dirty.size > 0 ? css.actionsVisible : ''}`, "aria-live": "polite", children: [_jsx("span", { children: t('config.unsaved') }), _jsxs("div", { children: [_jsx("button", { type: "button", className: css.discard, disabled: saving, onClick: discard, children: t('config.discard') }), _jsx("button", { type: "button", className: css.save, disabled: saving || error !== null || !writable, onClick: () => void save(), children: saving ? t('config.saving') : t('config.save') })] })] }), _jsxs("p", { className: css.settingsNote, children: [t('config.noticeBefore'), " ", _jsx("code", { children: ".dsh/settings.yaml" }), t('config.noticeAfter')] })] }) }));
|
|
149
|
+
}
|
|
150
|
+
function ChoiceCard(props) {
|
|
151
|
+
return _jsxs("label", { className: css.choiceCard, htmlFor: props.id, children: [_jsx("input", { id: props.id, name: props.name, type: "radio", "aria-label": props.label, checked: props.checked, disabled: props.disabled, onChange: props.onChange }), _jsxs("span", { className: css.choiceFace, children: [_jsx("strong", { children: props.label }), _jsx("small", { children: props.detail }), _jsx("span", { className: css.check, "aria-hidden": "true", children: "\u2713" })] })] });
|
|
105
152
|
}
|
|
106
|
-
function
|
|
107
|
-
return
|
|
153
|
+
function ToggleRow(props) {
|
|
154
|
+
return _jsxs("label", { className: css.toggleRow, htmlFor: props.id, children: [_jsxs("span", { className: css.settingCopy, children: [_jsx("strong", { children: props.label }), _jsx("small", { children: props.hint })] }), _jsx("input", { id: props.id, type: "checkbox", "aria-label": props.label, checked: props.checked, disabled: props.disabled, onChange: event => props.onChange(event.target.checked) }), _jsx("span", { className: css.switch, "aria-hidden": "true", children: _jsx("i", {}) })] });
|
|
108
155
|
}
|
|
109
156
|
//# sourceMappingURL=MnemonSettingsCard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MnemonSettingsCard.js","sourceRoot":"","sources":["../../../src/client/MnemonSettingsCard.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MnemonSettingsCard.js","sourceRoot":"","sources":["../../../src/client/MnemonSettingsCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { MnemonKey } from './locales.ts';
|
|
2
|
+
export interface MnemonToolViewProps {
|
|
3
|
+
callId: string;
|
|
4
|
+
toolName: string;
|
|
5
|
+
/** RunningToolCall while live, ToolResultNode once settled; both are opaque wire slices. */
|
|
6
|
+
block: unknown;
|
|
7
|
+
openFile?: ((path: string) => void) | undefined;
|
|
8
|
+
cwd?: string | undefined;
|
|
9
|
+
/** Optional on older/newer DSH tool hosts; omit the action when unavailable. */
|
|
10
|
+
inspect?: (() => void) | undefined;
|
|
11
|
+
/** Session the call belongs to; injected by the slot host. */
|
|
12
|
+
sessionId?: string | undefined;
|
|
13
|
+
t: (key: MnemonKey, params?: Record<string, unknown>) => string;
|
|
14
|
+
}
|
|
15
|
+
/** Render one mnemon_* tool call as a memory-flavoured row with expandable evidence. */
|
|
16
|
+
export declare const MnemonToolView: import("react").NamedExoticComponent<MnemonToolViewProps>;
|
|
17
|
+
/** Tool name → toolview component, registered as keyed `tool.call.toolview` entries. */
|
|
18
|
+
export declare const MNEMON_TOOLVIEW_NAMES: readonly string[];
|
|
19
|
+
//# sourceMappingURL=MnemonToolviews.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MnemonToolviews.d.ts","sourceRoot":"","sources":["../../../src/client/MnemonToolviews.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAG7C,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,4FAA4F;IAC5F,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IAC/C,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,gFAAgF;IAChF,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;IAClC,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAA;CAChE;AAqID,wFAAwF;AACxF,eAAO,MAAM,cAAc,2DAyDzB,CAAA;AAEF,wFAAwF;AACxF,eAAO,MAAM,qBAAqB,EAAkC,SAAS,MAAM,EAAE,CAAA"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { memo, useMemo, useState } from 'react';
|
|
3
|
+
import { MnemonLogo } from "./MnemonLogo.js";
|
|
4
|
+
import { dispatchMnemonAnchor } from "./anchor.js";
|
|
5
|
+
import css from './MnemonToolviews.module.css';
|
|
6
|
+
const READ_TOOLS = new Set(['mnemon_recall', 'mnemon_related', 'mnemon_document_search', 'mnemon_status', 'mnemon_memory_bodies']);
|
|
7
|
+
/** Anchor destination per tool: where "open in Memory view" should land. */
|
|
8
|
+
const ANCHOR_TARGETS = {
|
|
9
|
+
mnemon_recall: { page: 'explore', seed: args => typeof args.query === 'string' && args.query.trim() !== '' ? args.query.trim() : undefined },
|
|
10
|
+
mnemon_related: { page: 'explore', seed: args => typeof args.id === 'string' && args.id.trim() !== '' ? args.id.trim() : undefined },
|
|
11
|
+
mnemon_document_search: { page: 'documents' },
|
|
12
|
+
mnemon_status: { page: 'status' },
|
|
13
|
+
mnemon_memory_bodies: { page: 'overview' },
|
|
14
|
+
mnemon_runtime_memory: { page: 'runtime' },
|
|
15
|
+
mnemon_document_manage: { page: 'documents' },
|
|
16
|
+
mnemon_remember: { page: 'overview' },
|
|
17
|
+
mnemon_forget: { page: 'overview' },
|
|
18
|
+
mnemon_link: { page: 'overview' },
|
|
19
|
+
mnemon_memory_body_create: { page: 'overview' },
|
|
20
|
+
mnemon_memory_body_update: { page: 'overview' },
|
|
21
|
+
mnemon_memory_body_merge: { page: 'overview' },
|
|
22
|
+
};
|
|
23
|
+
function isSettled(block) {
|
|
24
|
+
return typeof block === 'object' && block !== null && 'kind' in block;
|
|
25
|
+
}
|
|
26
|
+
/** Parse the call's raw arguments JSON; always returns a plain object. */
|
|
27
|
+
function argsOf(block) {
|
|
28
|
+
const record = block;
|
|
29
|
+
const raw = typeof record?.call?.argsRaw === 'string' ? record.call.argsRaw : typeof record?.argsRaw === 'string' ? record.argsRaw : '';
|
|
30
|
+
if (raw === '')
|
|
31
|
+
return {};
|
|
32
|
+
try {
|
|
33
|
+
const parsed = JSON.parse(raw);
|
|
34
|
+
return typeof parsed === 'object' && parsed !== null && !Array.isArray(parsed) ? parsed : {};
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return {};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/** Joined text blocks of a settled result; empty while running. */
|
|
41
|
+
function resultText(block) {
|
|
42
|
+
if (!isSettled(block))
|
|
43
|
+
return '';
|
|
44
|
+
const content = block.content;
|
|
45
|
+
if (!Array.isArray(content))
|
|
46
|
+
return '';
|
|
47
|
+
return content
|
|
48
|
+
.filter(item => typeof item === 'object' && item !== null && item.type === 'text' && typeof item.text === 'string')
|
|
49
|
+
.map(item => String(item.text))
|
|
50
|
+
.join('');
|
|
51
|
+
}
|
|
52
|
+
/** Parsed result JSON when the output is one object; otherwise null. */
|
|
53
|
+
function outputJson(block) {
|
|
54
|
+
const text = resultText(block);
|
|
55
|
+
if (text === '')
|
|
56
|
+
return null;
|
|
57
|
+
try {
|
|
58
|
+
const parsed = JSON.parse(text);
|
|
59
|
+
return typeof parsed === 'object' && parsed !== null && !Array.isArray(parsed) ? parsed : null;
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function truncateInline(value, max) {
|
|
66
|
+
const normalized = value.replace(/\s+/g, ' ').trim();
|
|
67
|
+
return normalized.length <= max ? normalized : `${normalized.slice(0, max)}…`;
|
|
68
|
+
}
|
|
69
|
+
function truncateBlock(value, max) {
|
|
70
|
+
const normalized = value.trim();
|
|
71
|
+
return normalized.length <= max ? normalized : `${normalized.slice(0, max)}\n…`;
|
|
72
|
+
}
|
|
73
|
+
function countOf(value) {
|
|
74
|
+
return Array.isArray(value) ? value.length : undefined;
|
|
75
|
+
}
|
|
76
|
+
/** Tool-specific one-line summary from the call args and the settled output. */
|
|
77
|
+
function summaryFor(toolName, args, out, t) {
|
|
78
|
+
switch (toolName) {
|
|
79
|
+
case 'mnemon_recall': {
|
|
80
|
+
const query = typeof args.query === 'string' ? truncateInline(args.query, 56) : '';
|
|
81
|
+
const hits = out === null ? undefined : countOf(out.results);
|
|
82
|
+
return hits === undefined ? query : t('toolview.recallSummary', { query, count: hits });
|
|
83
|
+
}
|
|
84
|
+
case 'mnemon_related': {
|
|
85
|
+
const id = typeof args.id === 'string' ? args.id : '';
|
|
86
|
+
const hits = out === null ? undefined : countOf(out.results);
|
|
87
|
+
return hits === undefined ? truncateInline(id, 56) : t('toolview.relatedSummary', { id: truncateInline(id, 28), count: hits });
|
|
88
|
+
}
|
|
89
|
+
case 'mnemon_document_search': {
|
|
90
|
+
const query = typeof args.query === 'string' ? truncateInline(args.query, 56) : '';
|
|
91
|
+
const hits = out === null ? undefined : countOf(out.results);
|
|
92
|
+
return hits === undefined ? query : t('toolview.documentSearchSummary', { query, count: hits });
|
|
93
|
+
}
|
|
94
|
+
case 'mnemon_status':
|
|
95
|
+
return out === null ? t('toolview.running') : out.healthy === true ? t('toolview.statusHealthy') : t('toolview.statusUnhealthy');
|
|
96
|
+
case 'mnemon_memory_bodies':
|
|
97
|
+
return out === null ? t('toolview.running') : t('toolview.bodiesSummary', { count: out.total ?? 0, active: out.activeCount ?? 0 });
|
|
98
|
+
case 'mnemon_remember':
|
|
99
|
+
return typeof args.content === 'string' ? truncateInline(args.content, 56) : t('toolview.genericSummary');
|
|
100
|
+
case 'mnemon_runtime_memory': {
|
|
101
|
+
const action = typeof args.action === 'string' ? args.action : '';
|
|
102
|
+
const target = typeof args.target === 'string' ? args.target : '';
|
|
103
|
+
const content = typeof args.content === 'string' ? truncateInline(args.content, 40) : '';
|
|
104
|
+
return content === '' ? t('toolview.runtimeSummary', { action, target }) : t('toolview.runtimeSummaryWithContent', { action, target, content });
|
|
105
|
+
}
|
|
106
|
+
case 'mnemon_document_manage': {
|
|
107
|
+
const action = typeof args.action === 'string' ? args.action : '';
|
|
108
|
+
const title = typeof args.title === 'string' ? truncateInline(args.title, 40) : '';
|
|
109
|
+
return title === '' ? t('toolview.documentManageSummary', { action }) : t('toolview.documentManageSummaryWithTitle', { action, title });
|
|
110
|
+
}
|
|
111
|
+
case 'mnemon_link': {
|
|
112
|
+
const source = typeof args.sourceId === 'string' ? truncateInline(args.sourceId, 18) : '?';
|
|
113
|
+
const target = typeof args.targetId === 'string' ? truncateInline(args.targetId, 18) : '?';
|
|
114
|
+
return `${source} → ${target}`;
|
|
115
|
+
}
|
|
116
|
+
case 'mnemon_forget':
|
|
117
|
+
return typeof args.id === 'string' ? truncateInline(args.id, 56) : t('toolview.genericSummary');
|
|
118
|
+
case 'mnemon_memory_body_create':
|
|
119
|
+
return typeof args.name === 'string' ? truncateInline(args.name, 56) : t('toolview.genericSummary');
|
|
120
|
+
case 'mnemon_memory_body_update': {
|
|
121
|
+
const id = typeof args.memoryBodyId === 'string' ? truncateInline(args.memoryBodyId, 32) : '';
|
|
122
|
+
return id === '' ? t('toolview.genericSummary') : t('toolview.bodyUpdateSummary', { id });
|
|
123
|
+
}
|
|
124
|
+
case 'mnemon_memory_body_merge': {
|
|
125
|
+
const target = typeof args.targetMemoryBodyId === 'string' ? truncateInline(args.targetMemoryBodyId, 24) : '?';
|
|
126
|
+
const sources = countOf(args.sourceMemoryBodyIds) ?? 0;
|
|
127
|
+
return t('toolview.bodyMergeSummary', { target, count: sources });
|
|
128
|
+
}
|
|
129
|
+
default:
|
|
130
|
+
return t('toolview.genericSummary');
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/** Render one mnemon_* tool call as a memory-flavoured row with expandable evidence. */
|
|
134
|
+
export const MnemonToolView = memo(function MnemonToolView({ toolName, block, inspect, sessionId, t }) {
|
|
135
|
+
const [open, setOpen] = useState(false);
|
|
136
|
+
const settled = isSettled(block);
|
|
137
|
+
const record = block;
|
|
138
|
+
const state = !settled
|
|
139
|
+
? 'running'
|
|
140
|
+
: record?.error?.code === 'interrupted'
|
|
141
|
+
? 'stopped'
|
|
142
|
+
: record?.isError === true
|
|
143
|
+
? 'error'
|
|
144
|
+
: 'ok';
|
|
145
|
+
const args = useMemo(() => argsOf(block), [block]);
|
|
146
|
+
const out = useMemo(() => outputJson(block), [block]);
|
|
147
|
+
const text = useMemo(() => resultText(block), [block]);
|
|
148
|
+
const title = READ_TOOLS.has(toolName) ? t('toolview.recallTitle') : t('toolview.writeTitle');
|
|
149
|
+
const summary = summaryFor(toolName, args, out, t);
|
|
150
|
+
const target = ANCHOR_TARGETS[toolName];
|
|
151
|
+
const seed = target?.seed?.(args);
|
|
152
|
+
const toggle = () => setOpen(value => !value);
|
|
153
|
+
const openView = (event) => {
|
|
154
|
+
event.stopPropagation();
|
|
155
|
+
if (target === undefined)
|
|
156
|
+
return;
|
|
157
|
+
dispatchMnemonAnchor({ page: target.page, ...(seed === undefined ? {} : { seed }), ...(sessionId === undefined ? {} : { sessionId }) });
|
|
158
|
+
};
|
|
159
|
+
const inspectCall = (event) => {
|
|
160
|
+
event.stopPropagation();
|
|
161
|
+
inspect?.();
|
|
162
|
+
};
|
|
163
|
+
const showArgs = Object.keys(args).length > 0;
|
|
164
|
+
const showResult = text !== '';
|
|
165
|
+
return (_jsxs("div", { className: css.root, "data-state": state, "data-open": open || undefined, children: [_jsxs("div", { className: css.row, role: "button", tabIndex: 0, "aria-expanded": open, "aria-label": `${title}:${summary}`, onClick: toggle, onKeyDown: event => { if (event.key === 'Enter' || event.key === ' ') {
|
|
166
|
+
event.preventDefault();
|
|
167
|
+
toggle();
|
|
168
|
+
} }, children: [_jsx("span", { className: `${css.dot} ${state === 'running' ? css.dotRunning : state === 'error' ? css.dotError : state === 'stopped' ? css.dotStopped : css.dotOk}`, "aria-hidden": "true" }), _jsx(MnemonLogo, { className: css.leading, title: title }), _jsx("span", { className: css.title, children: title }), _jsx("span", { className: css.summary, children: summary }), (inspect !== undefined || target !== undefined) && (_jsxs("span", { className: css.actions, onClick: event => event.stopPropagation(), children: [target !== undefined && _jsx("button", { type: "button", className: css.actionButton, onClick: openView, title: t('toolview.openView'), children: t('toolview.openView') }), settled && inspect !== undefined && _jsx("button", { type: "button", className: css.actionButton, onClick: inspectCall, title: t('toolview.inspect'), children: t('toolview.inspect') })] })), _jsx("span", { className: `${css.chevron} ${open ? css.chevronOpen : ''}`, "aria-hidden": "true" })] }), open && (_jsxs("div", { className: css.details, onClick: event => event.stopPropagation(), children: [showArgs && _jsxs("div", { className: css.detailSection, children: [_jsx("span", { className: css.detailLabel, children: t('toolview.args') }), _jsx("pre", { className: css.detailCode, children: truncateBlock(JSON.stringify(args, null, 2), 2000) })] }), showResult && _jsxs("div", { className: css.detailSection, children: [_jsx("span", { className: css.detailLabel, children: t('toolview.result') }), _jsx("pre", { className: css.detailCode, children: truncateBlock(text, 4000) })] }), !showArgs && !showResult && _jsx("div", { className: css.detailEmpty, children: state === 'running' ? t('toolview.running') : t('toolview.noResult') })] }))] }));
|
|
169
|
+
});
|
|
170
|
+
/** Tool name → toolview component, registered as keyed `tool.call.toolview` entries. */
|
|
171
|
+
export const MNEMON_TOOLVIEW_NAMES = Object.keys(ANCHOR_TARGETS);
|
|
172
|
+
//# sourceMappingURL=MnemonToolviews.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MnemonToolviews.js","sourceRoot":"","sources":["../../../src/client/MnemonToolviews.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ClientConnectionHandle } from '../contracts.ts';
|
|
2
|
+
import type { TurnTailOwnerProps } from '@deepseek-ai/dsh-client-ui-conversation/client';
|
|
3
|
+
import type { MnemonKey } from './locales.ts';
|
|
4
|
+
export interface MnemonTurnTailProps {
|
|
5
|
+
/** Engine-owned closing Turn boundary (TurnLocation on the wire). */
|
|
6
|
+
turn: unknown;
|
|
7
|
+
seq: number;
|
|
8
|
+
openFile: (path: string) => void;
|
|
9
|
+
/** Injected by the slot host: the session this tail belongs to. */
|
|
10
|
+
sessionId?: string;
|
|
11
|
+
connection: ClientConnectionHandle;
|
|
12
|
+
t: (key: MnemonKey, params?: Record<string, unknown>) => string;
|
|
13
|
+
}
|
|
14
|
+
/** Whether this entry renders for the owner; chain selectors decline quietly. */
|
|
15
|
+
export declare function selectMnemonTurnTail(owner: TurnTailOwnerProps): Record<string, never> | null;
|
|
16
|
+
/** One-line memory-activity bar under a completed turn; hides when the turn touched no memory. */
|
|
17
|
+
export declare const MnemonTurnTail: import("react").NamedExoticComponent<MnemonTurnTailProps>;
|
|
18
|
+
//# sourceMappingURL=MnemonTurnTail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MnemonTurnTail.d.ts","sourceRoot":"","sources":["../../../src/client/MnemonTurnTail.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAE7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAA;AAGxF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAG7C,MAAM,WAAW,mBAAmB;IAClC,qEAAqE;IACrE,IAAI,EAAE,OAAO,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAChC,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,sBAAsB,CAAA;IAClC,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAA;CAChE;AAOD,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,IAAI,CAG5F;AAED,kGAAkG;AAClG,eAAO,MAAM,cAAc,2DAmDzB,CAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { memo, useEffect, useState } from 'react';
|
|
3
|
+
import { MnemonClient } from "./api.js";
|
|
4
|
+
import { dispatchMnemonAnchor } from "./anchor.js";
|
|
5
|
+
import css from './MnemonTurnTail.module.css';
|
|
6
|
+
function turnNumber(turn) {
|
|
7
|
+
const value = turn?.turn;
|
|
8
|
+
return typeof value === 'number' ? value : undefined;
|
|
9
|
+
}
|
|
10
|
+
/** Whether this entry renders for the owner; chain selectors decline quietly. */
|
|
11
|
+
export function selectMnemonTurnTail(owner) {
|
|
12
|
+
const turn = owner.turn;
|
|
13
|
+
return turn.status === 'closed' ? {} : null;
|
|
14
|
+
}
|
|
15
|
+
/** One-line memory-activity bar under a completed turn; hides when the turn touched no memory. */
|
|
16
|
+
export const MnemonTurnTail = memo(function MnemonTurnTail({ turn, seq, sessionId, connection, t }) {
|
|
17
|
+
const [activity, setActivity] = useState(undefined);
|
|
18
|
+
const [open, setOpen] = useState(false);
|
|
19
|
+
const number = turnNumber(turn);
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
if (number === undefined) {
|
|
22
|
+
setActivity(null);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
let alive = true;
|
|
26
|
+
const client = new MnemonClient(connection, sessionId);
|
|
27
|
+
client.turnActivity(number, seq)
|
|
28
|
+
.then(result => { if (alive)
|
|
29
|
+
setActivity(result); })
|
|
30
|
+
.catch(() => { if (alive)
|
|
31
|
+
setActivity(null); });
|
|
32
|
+
return () => { alive = false; };
|
|
33
|
+
}, [connection, sessionId, number, seq]);
|
|
34
|
+
if (activity === undefined || activity === null)
|
|
35
|
+
return null;
|
|
36
|
+
if (number === undefined)
|
|
37
|
+
return null;
|
|
38
|
+
const openView = (event) => {
|
|
39
|
+
event.stopPropagation();
|
|
40
|
+
dispatchMnemonAnchor({ page: 'status', ...(sessionId === undefined ? {} : { sessionId }) });
|
|
41
|
+
};
|
|
42
|
+
return (_jsxs("div", { className: css.root, "data-open": open || undefined, children: [_jsxs("button", { type: "button", className: css.bar, "aria-expanded": open, onClick: () => setOpen(value => !value), children: [_jsx("span", { className: css.mark, "aria-hidden": "true", children: "\u25C8" }), _jsx("span", { className: css.label, children: t('turnTail.label') }), _jsxs("span", { className: css.metrics, children: [activity.recalls > 0 && _jsx("span", { children: t('turnTail.recall', { count: activity.recalls }) }), activity.writes > 0 && _jsx("span", { children: t('turnTail.write', { count: activity.writes }) }), activity.documentSearches > 0 && _jsx("span", { children: t('turnTail.documents', { count: activity.documentSearches }) }), activity.inspections > 0 && _jsx("span", { children: t('turnTail.inspect', { count: activity.inspections }) }), activity.failures > 0 && _jsx("span", { className: css.failureMetric, children: t('turnTail.failed', { count: activity.failures }) })] }), _jsx("span", { className: `${css.chevron} ${open ? css.chevronOpen : ''}`, "aria-hidden": "true" })] }), open && (_jsxs("div", { className: css.details, children: [_jsx("span", { className: css.detailLabel, children: t('turnTail.toolList') }), _jsx("div", { className: css.tools, children: activity.names.map((name, index) => _jsx("code", { className: css.toolChip, children: name }, `${name}-${index}`)) }), _jsx("button", { type: "button", className: css.viewButton, onClick: openView, children: t('turnTail.openView') })] }))] }));
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=MnemonTurnTail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MnemonTurnTail.js","sourceRoot":"","sources":["../../../src/client/MnemonTurnTail.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,20 @@ export interface MnemonViewProps {
|
|
|
5
5
|
connection: ClientConnectionHandle;
|
|
6
6
|
settingsScope: ClientSettingsScope<Config>;
|
|
7
7
|
sessionId?: string;
|
|
8
|
+
workspaceId?: string;
|
|
9
|
+
workspaceSelection?: MnemonWorkspaceSelection;
|
|
8
10
|
t?: MnemonTranslate;
|
|
9
11
|
}
|
|
12
|
+
export interface MnemonWorkspaceSelection {
|
|
13
|
+
options: Array<{
|
|
14
|
+
id: string;
|
|
15
|
+
title: string;
|
|
16
|
+
path: string;
|
|
17
|
+
}>;
|
|
18
|
+
selectedWorkspaceId?: string;
|
|
19
|
+
effectiveWorkspaceId?: string;
|
|
20
|
+
onSelect(workspaceId: string): void;
|
|
21
|
+
onAlign(): void;
|
|
22
|
+
}
|
|
10
23
|
export declare function MnemonView(props: MnemonViewProps): JSX.Element;
|
|
11
24
|
//# sourceMappingURL=MnemonView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MnemonView.d.ts","sourceRoot":"","sources":["../../../src/client/MnemonView.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MnemonView.d.ts","sourceRoot":"","sources":["../../../src/client/MnemonView.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAClF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAkB1C,OAAO,EAA+B,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AAIhF,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,sBAAsB,CAAA;IAClC,aAAa,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAA;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kBAAkB,CAAC,EAAE,wBAAwB,CAAA;IAC7C,CAAC,CAAC,EAAE,eAAe,CAAA;CACpB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC3D,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,OAAO,IAAI,IAAI,CAAA;CAChB;AAo8CD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,GAAG,CAAC,OAAO,CAE9D"}
|