dsh-mnemon 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/README.en.md +31 -2
  2. package/README.md +31 -2
  3. package/SECURITY.md +89 -0
  4. package/docs/en/README.md +1 -0
  5. package/docs/en/configuration.md +6 -1
  6. package/docs/en/getting-started.md +19 -3
  7. package/docs/en/interfaces.md +12 -0
  8. package/docs/en/operations.md +6 -2
  9. package/docs/zh-CN/README.md +1 -0
  10. package/docs/zh-CN/configuration.md +6 -1
  11. package/docs/zh-CN/getting-started.md +19 -3
  12. package/docs/zh-CN/interfaces.md +12 -0
  13. package/docs/zh-CN/operations.md +6 -2
  14. package/lib/client.js +2164 -624
  15. package/lib/client.js.map +1 -1
  16. package/lib/index.js +3608 -2457
  17. package/lib/types/activity.d.ts +32 -0
  18. package/lib/types/activity.d.ts.map +1 -0
  19. package/lib/types/activity.js +93 -0
  20. package/lib/types/activity.js.map +1 -0
  21. package/lib/types/client/MnemonPackSection.d.ts +11 -0
  22. package/lib/types/client/MnemonPackSection.d.ts.map +1 -0
  23. package/lib/types/client/MnemonPackSection.js +136 -0
  24. package/lib/types/client/MnemonPackSection.js.map +1 -0
  25. package/lib/types/client/MnemonSaveAction.d.ts +13 -0
  26. package/lib/types/client/MnemonSaveAction.d.ts.map +1 -0
  27. package/lib/types/client/MnemonSaveAction.js +141 -0
  28. package/lib/types/client/MnemonSaveAction.js.map +1 -0
  29. package/lib/types/client/MnemonSettingsCard.d.ts +11 -3
  30. package/lib/types/client/MnemonSettingsCard.d.ts.map +1 -1
  31. package/lib/types/client/MnemonSettingsCard.js +112 -48
  32. package/lib/types/client/MnemonSettingsCard.js.map +1 -1
  33. package/lib/types/client/MnemonToolviews.d.ts +19 -0
  34. package/lib/types/client/MnemonToolviews.d.ts.map +1 -0
  35. package/lib/types/client/MnemonToolviews.js +172 -0
  36. package/lib/types/client/MnemonToolviews.js.map +1 -0
  37. package/lib/types/client/MnemonTurnTail.d.ts +18 -0
  38. package/lib/types/client/MnemonTurnTail.d.ts.map +1 -0
  39. package/lib/types/client/MnemonTurnTail.js +44 -0
  40. package/lib/types/client/MnemonTurnTail.js.map +1 -0
  41. package/lib/types/client/MnemonView.d.ts.map +1 -1
  42. package/lib/types/client/MnemonView.js +19 -8
  43. package/lib/types/client/MnemonView.js.map +1 -1
  44. package/lib/types/client/anchor.d.ts +28 -0
  45. package/lib/types/client/anchor.d.ts.map +1 -0
  46. package/lib/types/client/anchor.js +46 -0
  47. package/lib/types/client/anchor.js.map +1 -0
  48. package/lib/types/client/api.d.ts +14 -1
  49. package/lib/types/client/api.d.ts.map +1 -1
  50. package/lib/types/client/api.js +56 -3
  51. package/lib/types/client/api.js.map +1 -1
  52. package/lib/types/client/dsh-compat.d.ts +21 -0
  53. package/lib/types/client/dsh-compat.d.ts.map +1 -0
  54. package/lib/types/client/dsh-compat.js +2 -0
  55. package/lib/types/client/dsh-compat.js.map +1 -0
  56. package/lib/types/client/index.d.ts.map +1 -1
  57. package/lib/types/client/index.js +131 -16
  58. package/lib/types/client/index.js.map +1 -1
  59. package/lib/types/client/locales.d.ts +252 -4
  60. package/lib/types/client/locales.d.ts.map +1 -1
  61. package/lib/types/client/locales.js +268 -20
  62. package/lib/types/client/locales.js.map +1 -1
  63. package/lib/types/client/settings.d.ts +10 -5
  64. package/lib/types/client/settings.d.ts.map +1 -1
  65. package/lib/types/client/settings.js +32 -11
  66. package/lib/types/client/settings.js.map +1 -1
  67. package/lib/types/config.d.ts +37 -1
  68. package/lib/types/config.d.ts.map +1 -1
  69. package/lib/types/config.js +78 -6
  70. package/lib/types/config.js.map +1 -1
  71. package/lib/types/contracts.d.ts +17 -38
  72. package/lib/types/contracts.d.ts.map +1 -1
  73. package/lib/types/guidance.d.ts +2 -1
  74. package/lib/types/guidance.d.ts.map +1 -1
  75. package/lib/types/guidance.js +6 -2
  76. package/lib/types/guidance.js.map +1 -1
  77. package/lib/types/index.d.ts +4 -2
  78. package/lib/types/index.d.ts.map +1 -1
  79. package/lib/types/index.js +27 -18
  80. package/lib/types/index.js.map +1 -1
  81. package/lib/types/lifecycle.d.ts +14 -1
  82. package/lib/types/lifecycle.d.ts.map +1 -1
  83. package/lib/types/lifecycle.js +81 -12
  84. package/lib/types/lifecycle.js.map +1 -1
  85. package/lib/types/live-runtime.d.ts +42 -0
  86. package/lib/types/live-runtime.d.ts.map +1 -0
  87. package/lib/types/live-runtime.js +76 -0
  88. package/lib/types/live-runtime.js.map +1 -0
  89. package/lib/types/memory-bodies.d.ts +2 -0
  90. package/lib/types/memory-bodies.d.ts.map +1 -1
  91. package/lib/types/memory-bodies.js +29 -10
  92. package/lib/types/memory-bodies.js.map +1 -1
  93. package/lib/types/pack.d.ts +74 -0
  94. package/lib/types/pack.d.ts.map +1 -0
  95. package/lib/types/pack.js +709 -0
  96. package/lib/types/pack.js.map +1 -0
  97. package/lib/types/rpc.d.ts +5 -1
  98. package/lib/types/rpc.d.ts.map +1 -1
  99. package/lib/types/rpc.js +47 -5
  100. package/lib/types/rpc.js.map +1 -1
  101. package/lib/types/runner.d.ts +2 -0
  102. package/lib/types/runner.d.ts.map +1 -1
  103. package/lib/types/runner.js +5 -0
  104. package/lib/types/runner.js.map +1 -1
  105. package/lib/types/settings.d.ts +1 -0
  106. package/lib/types/settings.d.ts.map +1 -1
  107. package/lib/types/settings.js +45 -16
  108. package/lib/types/settings.js.map +1 -1
  109. package/lib/types/tools.js +4 -2
  110. package/lib/types/tools.js.map +1 -1
  111. package/package.json +23 -12
@@ -2,21 +2,35 @@ 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
- const FIELD_ORDER = ['storageScope', 'dataDir'];
5
+ import { MnemonPackSection } from "./MnemonPackSection.js";
6
+ const CORE_FIELDS = ['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 draftOf(value) {
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);
13
20
  return {
14
- storageScope: resolved.storageScope ?? (resolved.dataDir?.trim() ? 'custom' : 'global'),
15
- dataDir: resolved.dataDir?.trim() ?? '',
21
+ storageScope: resolved.storageScope ?? (dataDir === '' ? 'global' : 'custom'),
22
+ dataDir,
16
23
  };
17
24
  }
18
- function inheritedDraft(base) {
19
- return draftOf(record(base));
25
+ function interactionDraft(value) {
26
+ return {
27
+ toolviews: value?.toolviews === true,
28
+ turnBar: value?.turnBar === true,
29
+ saveAction: value?.saveAction === true,
30
+ };
31
+ }
32
+ function draftOf(core, interaction) {
33
+ return { ...coreDraft(core), ...interactionDraft(interaction) };
20
34
  }
21
35
  function validation(t, draft) {
22
36
  if (!['global', 'workspace', 'custom'].includes(draft.storageScope))
@@ -30,66 +44,113 @@ function validation(t, draft) {
30
44
  return t('config.customAbsolute');
31
45
  return null;
32
46
  }
33
- export function MnemonSettingsCard({ scope, t = translateZh }) {
47
+ function useScope(scope) {
34
48
  const subscribe = useMemo(() => scope.subscribe.bind(scope), [scope]);
35
49
  const getSnapshot = useMemo(() => scope.getSnapshot.bind(scope), [scope]);
36
- const snapshot = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
37
- const [draft, setDraft] = useState(() => draftOf(snapshot.value));
50
+ return useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
51
+ }
52
+ function operations(fields, dirty, draft) {
53
+ return fields.flatMap((field) => {
54
+ if (!dirty.has(field))
55
+ return [];
56
+ if (field === 'dataDir' && draft.dataDir.trim() === '')
57
+ return [{ op: 'unset', path: [field] }];
58
+ const value = draft[field];
59
+ return [{ op: 'set', path: [field], value: typeof value === 'string' ? value.trim() : value }];
60
+ });
61
+ }
62
+ async function commit(scope, edits) {
63
+ if (scope.mutate !== undefined)
64
+ return scope.mutate(edits);
65
+ for (const edit of edits) {
66
+ if (edit.path.length === 1) {
67
+ if (edit.op === 'set')
68
+ await scope.set(edit.path[0], edit.value);
69
+ else
70
+ await scope.unset(edit.path[0]);
71
+ }
72
+ else if (edit.op === 'set')
73
+ await scope.setPath(edit.path, edit.value);
74
+ else
75
+ await scope.unsetPath(edit.path);
76
+ }
77
+ }
78
+ /** Dedicated Mnemon page contributed directly to DSH's settings navigation. */
79
+ export function MnemonSettingsCard({ scope, interactionScope: suppliedInteractionScope, connection, pickDirectory, t = translateZh }) {
80
+ const interactionScope = suppliedInteractionScope ?? scope;
81
+ const coreSnapshot = useScope(scope);
82
+ const interactionSnapshot = useScope(interactionScope);
83
+ const [draft, setDraft] = useState(() => draftOf(coreSnapshot.value, interactionSnapshot.value));
38
84
  const [dirty, setDirty] = useState(() => new Set());
39
- const [reset, setReset] = useState(() => new Set());
40
85
  const [saving, setSaving] = useState(false);
86
+ const [browsing, setBrowsing] = useState(false);
41
87
  const [failed, setFailed] = useState(null);
88
+ const [applied, setApplied] = useState(false);
89
+ const [targetRevision, setTargetRevision] = useState(0);
42
90
  useEffect(() => {
43
91
  if (dirty.size === 0)
44
- setDraft(draftOf(snapshot.value));
45
- }, [dirty.size, snapshot.value]);
46
- const overridden = useMemo(() => record(snapshot.user), [snapshot.user]);
47
- const inherited = useMemo(() => inheritedDraft(snapshot.base), [snapshot.base]);
92
+ setDraft(draftOf(coreSnapshot.value, interactionSnapshot.value));
93
+ }, [dirty.size, coreSnapshot.value, interactionSnapshot.value]);
94
+ const coreUser = useMemo(() => record(coreSnapshot.user), [coreSnapshot.user]);
48
95
  const error = validation(t, draft);
49
- const controlsDisabled = !snapshot.writable || saving;
50
- if (snapshot.status === 'unavailable')
96
+ const loading = coreSnapshot.status === 'loading' || interactionSnapshot.status === 'loading';
97
+ const writable = coreSnapshot.writable && interactionSnapshot.writable;
98
+ if (coreSnapshot.status === 'unavailable' && interactionSnapshot.status === 'unavailable')
51
99
  return null;
52
100
  const edit = (field, value) => {
53
101
  setDraft(current => ({ ...current, [field]: value }));
54
102
  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
103
  setFailed(null);
104
+ setApplied(false);
61
105
  };
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));
106
+ const browse = async () => {
107
+ if (pickDirectory === undefined || browsing)
108
+ return;
109
+ setBrowsing(true);
66
110
  setFailed(null);
111
+ try {
112
+ const path = await pickDirectory();
113
+ if (path !== null) {
114
+ if (draft.storageScope !== 'custom')
115
+ edit('storageScope', 'custom');
116
+ edit('dataDir', path);
117
+ }
118
+ }
119
+ catch (reason) {
120
+ setFailed(reason instanceof Error ? reason.message : String(reason));
121
+ }
122
+ finally {
123
+ setBrowsing(false);
124
+ }
67
125
  };
68
126
  const discard = () => {
69
- setDraft(draftOf(snapshot.value));
127
+ setDraft(draftOf(coreSnapshot.value, interactionSnapshot.value));
70
128
  setDirty(new Set());
71
- setReset(new Set());
72
129
  setFailed(null);
130
+ setApplied(false);
73
131
  };
74
132
  const save = async () => {
75
- if (error !== null || dirty.size === 0 || saving)
133
+ if (error !== null || dirty.size === 0 || saving || !writable)
76
134
  return;
77
135
  setSaving(true);
78
136
  setFailed(null);
79
137
  try {
80
- const order = draft.storageScope === 'custom' ? [...FIELD_ORDER].reverse() : FIELD_ORDER;
81
- for (const field of order) {
82
- if (!dirty.has(field))
83
- continue;
84
- if (reset.has(field) || (field === 'dataDir' && draft.dataDir.trim() === '')) {
85
- await scope.unset(field);
86
- }
87
- else {
88
- await scope.set(field, draft[field].trim());
89
- }
138
+ const coreOps = operations(CORE_FIELDS, dirty, draft);
139
+ if (coreOps.length > 0) {
140
+ if (Object.hasOwn(coreUser, 'customPackId'))
141
+ coreOps.push({ op: 'unset', path: ['customPackId'] });
142
+ if (Object.hasOwn(coreUser, 'customPacks'))
143
+ coreOps.push({ op: 'unset', path: ['customPacks'] });
90
144
  }
145
+ const interactionOps = operations(INTERACTION_FIELDS, dirty, draft);
146
+ await Promise.all([
147
+ ...(coreOps.length === 0 ? [] : [commit(scope, coreOps)]),
148
+ ...(interactionOps.length === 0 ? [] : [commit(interactionScope, interactionOps)]),
149
+ ]);
91
150
  setDirty(new Set());
92
- setReset(new Set());
151
+ setApplied(true);
152
+ if (coreOps.length > 0)
153
+ setTargetRevision(revision => revision + 1);
93
154
  }
94
155
  catch (reason) {
95
156
  setFailed(reason instanceof Error ? reason.message : String(reason));
@@ -98,12 +159,15 @@ export function MnemonSettingsCard({ scope, t = translateZh }) {
98
159
  setSaving(false);
99
160
  }
100
161
  };
101
- const fieldMeta = (field) => Object.hasOwn(overridden, field) && !reset.has(field);
102
- const errorId = error === null ? undefined : 'mnemon-settings-validation';
103
- const loading = snapshot.status === 'loading';
104
- return (_jsxs("section", { className: css.card, "aria-label": t('config.aria'), "aria-busy": saving || loading, children: [_jsxs("div", { className: css.panelHeader, children: [_jsxs("div", { className: css.headerCopy, children: [_jsx("h3", { children: "Mnemon" }), _jsx("p", { children: t('config.description') })] }), _jsx("span", { className: `${css.status} ${dirty.size > 0 ? css.statusDirty : ''}`, "aria-live": "polite", children: loading ? t('common.loading') : dirty.size > 0 ? t('config.unsaved') : t('config.restart') })] }), _jsx("div", { className: css.body, children: loading ? _jsx("p", { className: css.loading, role: "status", children: t('common.loading') }) : _jsxs(_Fragment, { children: [_jsxs("p", { className: css.notice, children: [t('config.noticeBefore'), " ", _jsx("code", { children: ".dsh/settings.yaml" }), t('config.noticeAfter')] }), _jsxs("div", { className: css.primarySettings, children: [_jsx(SettingField, { controlId: "mnemon-storage-scope", t: t, label: t('config.scope'), hint: t('config.scopeHint'), overridden: fieldMeta('storageScope'), resetDisabled: controlsDisabled, onReset: () => resetField('storageScope'), children: _jsxs("select", { id: "mnemon-storage-scope", "aria-label": t('config.scopeAria'), "aria-describedby": "mnemon-storage-scope-hint", value: draft.storageScope, onChange: event => edit('storageScope', event.target.value), disabled: controlsDisabled, children: [_jsxs("option", { value: "global", children: [t('config.global'), " \u00B7 ~/.mnemon"] }), _jsxs("option", { value: "workspace", children: [t('config.workspace'), " \u00B7 <workspace>/.mnemon"] }), _jsx("option", { value: "custom", children: t('config.custom') })] }) }), draft.storageScope === 'custom' && _jsx(SettingField, { controlId: "mnemon-custom-directory", t: t, label: t('config.customDirectory'), hint: t('config.customHint'), overridden: fieldMeta('dataDir'), resetDisabled: controlsDisabled, onReset: () => resetField('dataDir'), children: _jsx("input", { id: "mnemon-custom-directory", "aria-label": t('config.customAria'), "aria-describedby": `mnemon-custom-directory-hint${errorId === undefined ? '' : ` ${errorId}`}`, "aria-invalid": error !== null, value: draft.dataDir, onChange: event => edit('dataDir', event.target.value), placeholder: "~/mnemon-data", spellCheck: false, autoComplete: "off", disabled: controlsDisabled }) })] }), _jsxs("div", { className: css.feedback, "aria-live": "polite", children: [error !== null && _jsx("p", { id: "mnemon-settings-validation", className: css.error, role: "alert", children: error }), failed !== null && _jsx("p", { className: css.error, role: "alert", children: t('config.saveFailed', { error: failed }) }), !snapshot.writable && _jsx("p", { className: css.readOnly, children: t('config.readOnly') })] }), _jsxs("div", { className: css.actions, children: [_jsx("button", { type: "button", className: css.discard, disabled: dirty.size === 0 || saving, onClick: discard, children: t('config.discard') }), _jsx("button", { type: "button", className: css.save, disabled: dirty.size === 0 || saving || error !== null || !snapshot.writable, onClick: () => void save(), children: saving ? t('config.saving') : t('config.save') })] })] }) })] }));
162
+ const coreDisabled = loading || saving || browsing || !coreSnapshot.writable;
163
+ const interactionDisabled = loading || saving || !interactionSnapshot.writable;
164
+ return (_jsx("section", { className: css.page, "aria-label": t('config.aria'), "aria-busy": saving || loading || browsing, 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-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'); if (draft.dataDir === '')
165
+ void browse(); } })] }), 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.customBrowseHint') })] }), _jsxs("div", { className: css.directoryControl, children: [_jsx("code", { title: draft.dataDir, children: draft.dataDir || t('config.customNotSelected') }), _jsx("button", { type: "button", className: css.pillButton, disabled: coreDisabled || pickDirectory === undefined, onClick: () => void browse(), children: browsing ? t('config.customBrowsing') : draft.dataDir === '' ? t('config.customBrowse') : t('config.customBrowseAgain') })] })] })] }), _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') }), pickDirectory === undefined && draft.storageScope === 'custom' && _jsx("p", { className: css.readOnly, children: t('config.customBrowseUnavailable') }), !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')] })] }) }));
166
+ }
167
+ function ChoiceCard(props) {
168
+ 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
169
  }
106
- function SettingField(props) {
107
- return (_jsxs("div", { className: css.field, children: [_jsxs("div", { className: css.fieldHeading, children: [_jsx("label", { className: css.fieldTitle, htmlFor: props.controlId, children: props.label }), props.overridden && _jsx("em", { className: css.overridden, children: props.t('config.overridden') }), props.overridden && _jsx("button", { className: css.reset, type: "button", disabled: props.resetDisabled, onClick: props.onReset, children: props.t('config.reset') })] }), props.children, _jsx("p", { id: `${props.controlId}-hint`, className: css.fieldHint, children: props.hint })] }));
170
+ function ToggleRow(props) {
171
+ 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
172
  }
109
173
  //# 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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MnemonView.d.ts","sourceRoot":"","sources":["../../../src/client/MnemonView.tsx"],"names":[],"mappings":"AAEA,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,CAAC,CAAC,EAAE,eAAe,CAAA;CACpB;AAo8CD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,GAAG,CAAC,OAAO,CAE9D"}
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,CAAC,CAAC,EAAE,eAAe,CAAA;CACpB;AAo8CD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,GAAG,CAAC,OAAO,CAE9D"}