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
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lightweight anchor channel between conversation-scoped Mnemon surfaces
|
|
3
|
+
* (toolviews, turnTail bar, assistant actions) and the Mnemon workspace view.
|
|
4
|
+
*
|
|
5
|
+
* A dispatch asks the Mnemon view to open a page (optionally with a seed) in
|
|
6
|
+
* the session the dispatch came from. The view may not be mounted when the
|
|
7
|
+
* user clicks — the dispatch is then held per session and consumed the next
|
|
8
|
+
* time that session's Mnemon view mounts, so switching to the Memory System
|
|
9
|
+
* tab afterwards still lands on the requested page.
|
|
10
|
+
*/
|
|
11
|
+
/** Pages of the Mnemon workspace, mirroring MnemonView's internal Page union. */
|
|
12
|
+
export type MnemonAnchorPage = 'overview' | 'runtime' | 'documents' | 'explore' | 'entities' | 'remember' | 'list' | 'status';
|
|
13
|
+
export interface MnemonAnchor {
|
|
14
|
+
/** Target workspace page. */
|
|
15
|
+
page: MnemonAnchorPage;
|
|
16
|
+
/** Optional context seed (recall query for explore, candidate text for remember). */
|
|
17
|
+
seed?: string;
|
|
18
|
+
/** Session the dispatch belongs to; omitted dispatches address every session. */
|
|
19
|
+
sessionId?: string;
|
|
20
|
+
}
|
|
21
|
+
export declare const MNEMON_ANCHOR_EVENT = "mnemon:anchor";
|
|
22
|
+
/** Ask the Mnemon view to open a page; held until a matching view consumes it. */
|
|
23
|
+
export declare function dispatchMnemonAnchor(anchor: MnemonAnchor): void;
|
|
24
|
+
/** Take the anchor held for this session (usually at mount time), or null. */
|
|
25
|
+
export declare function consumeMnemonAnchor(sessionId?: string): MnemonAnchor | null;
|
|
26
|
+
/** Subscribe to anchors addressed to this session; returns an unsubscribe. */
|
|
27
|
+
export declare function subscribeMnemonAnchor(sessionId: string | undefined, onAnchor: (anchor: MnemonAnchor) => void): () => void;
|
|
28
|
+
//# sourceMappingURL=anchor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anchor.d.ts","sourceRoot":"","sources":["../../../src/client/anchor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,iFAAiF;AACjF,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAA;AAE7H,MAAM,WAAW,YAAY;IAC3B,6BAA6B;IAC7B,IAAI,EAAE,gBAAgB,CAAA;IACtB,qFAAqF;IACrF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,mBAAmB,kBAAkB,CAAA;AAQlD,kFAAkF;AAClF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAG/D;AAED,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAM3E;AAED,8EAA8E;AAC9E,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAAG,MAAM,IAAI,CAazH"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lightweight anchor channel between conversation-scoped Mnemon surfaces
|
|
3
|
+
* (toolviews, turnTail bar, assistant actions) and the Mnemon workspace view.
|
|
4
|
+
*
|
|
5
|
+
* A dispatch asks the Mnemon view to open a page (optionally with a seed) in
|
|
6
|
+
* the session the dispatch came from. The view may not be mounted when the
|
|
7
|
+
* user clicks — the dispatch is then held per session and consumed the next
|
|
8
|
+
* time that session's Mnemon view mounts, so switching to the Memory System
|
|
9
|
+
* tab afterwards still lands on the requested page.
|
|
10
|
+
*/
|
|
11
|
+
export const MNEMON_ANCHOR_EVENT = 'mnemon:anchor';
|
|
12
|
+
const pendingBySession = new Map();
|
|
13
|
+
function keyOf(sessionId) {
|
|
14
|
+
return sessionId === undefined || sessionId === '' ? '*' : sessionId;
|
|
15
|
+
}
|
|
16
|
+
/** Ask the Mnemon view to open a page; held until a matching view consumes it. */
|
|
17
|
+
export function dispatchMnemonAnchor(anchor) {
|
|
18
|
+
pendingBySession.set(keyOf(anchor.sessionId), anchor);
|
|
19
|
+
window.dispatchEvent(new CustomEvent(MNEMON_ANCHOR_EVENT, { detail: anchor }));
|
|
20
|
+
}
|
|
21
|
+
/** Take the anchor held for this session (usually at mount time), or null. */
|
|
22
|
+
export function consumeMnemonAnchor(sessionId) {
|
|
23
|
+
const key = keyOf(sessionId);
|
|
24
|
+
const anchor = pendingBySession.get(key);
|
|
25
|
+
if (anchor === undefined)
|
|
26
|
+
return null;
|
|
27
|
+
pendingBySession.delete(key);
|
|
28
|
+
return anchor;
|
|
29
|
+
}
|
|
30
|
+
/** Subscribe to anchors addressed to this session; returns an unsubscribe. */
|
|
31
|
+
export function subscribeMnemonAnchor(sessionId, onAnchor) {
|
|
32
|
+
const key = keyOf(sessionId);
|
|
33
|
+
const handler = (event) => {
|
|
34
|
+
const anchor = event.detail;
|
|
35
|
+
if (anchor !== undefined && keyOf(anchor.sessionId) === key) {
|
|
36
|
+
// A mounted view consumes the event immediately. Clear only this exact
|
|
37
|
+
// dispatch so a newer anchor cannot be lost if listeners navigate again.
|
|
38
|
+
if (pendingBySession.get(key) === anchor)
|
|
39
|
+
pendingBySession.delete(key);
|
|
40
|
+
onAnchor(anchor);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
window.addEventListener(MNEMON_ANCHOR_EVENT, handler);
|
|
44
|
+
return () => window.removeEventListener(MNEMON_ANCHOR_EVENT, handler);
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=anchor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anchor.js","sourceRoot":"","sources":["../../../src/client/anchor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAcH,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAA;AAElD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAwB,CAAA;AAExD,SAAS,KAAK,CAAC,SAAkB;IAC/B,OAAO,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;AACtE,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,oBAAoB,CAAC,MAAoB;IACvD,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAA;IACrD,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAe,mBAAmB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;AAC9F,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,mBAAmB,CAAC,SAAkB;IACpD,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAA;IAC5B,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACxC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACrC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC5B,OAAO,MAAM,CAAA;AACf,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,qBAAqB,CAAC,SAA6B,EAAE,QAAwC;IAC3G,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAA;IAC5B,MAAM,OAAO,GAAG,CAAC,KAAY,EAAQ,EAAE;QACrC,MAAM,MAAM,GAAI,KAAmC,CAAC,MAAM,CAAA;QAC1D,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC;YAC5D,uEAAuE;YACvE,yEAAyE;YACzE,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,MAAM;gBAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACtE,QAAQ,CAAC,MAAM,CAAC,CAAA;QAClB,CAAC;IACH,CAAC,CAAA;IACD,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAA;IACrD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAA;AACvE,CAAC"}
|
|
@@ -3,6 +3,8 @@ import type { MemoryBody } from '../memory-bodies.ts';
|
|
|
3
3
|
import type { DocumentMutation, DocumentMutationResult, DocumentSearchResult, DocumentSnapshot, DocumentView } from '../documents.ts';
|
|
4
4
|
import type { RuntimeMemoryImportance, RuntimeMemoryMutationResult, RuntimeMemorySnapshot, RuntimeMemoryTarget } from '../runtime-memory.ts';
|
|
5
5
|
import type { EntityView, Insight, MemoryBodyCatalog, MemoryGraphSnapshot, MemoryListRequest, MemoryListView, RememberRequest, SearchRequest, StatusView } from '../service.ts';
|
|
6
|
+
import type { AssistantMessageText, TurnMemoryActivity } from '../lifecycle.ts';
|
|
7
|
+
import type { MnemonPackExport, MnemonPackImportResult, MnemonPackPreview } from '../pack.ts';
|
|
6
8
|
export interface SearchResponse {
|
|
7
9
|
query: string;
|
|
8
10
|
mode: string;
|
|
@@ -20,8 +22,10 @@ export interface AgentSearchResponse extends SearchResponse {
|
|
|
20
22
|
export declare class MnemonClient {
|
|
21
23
|
private readonly connection;
|
|
22
24
|
private readonly sessionId?;
|
|
23
|
-
|
|
25
|
+
private readonly workspaceId?;
|
|
26
|
+
constructor(connection: ClientConnectionHandle, sessionId?: string | undefined, workspaceId?: string | undefined);
|
|
24
27
|
private call;
|
|
28
|
+
private scoped;
|
|
25
29
|
status(): Promise<StatusView>;
|
|
26
30
|
runtimeMemory(): Promise<RuntimeMemorySnapshot>;
|
|
27
31
|
mutateRuntimeMemory(request: {
|
|
@@ -43,8 +47,12 @@ export declare class MnemonClient {
|
|
|
43
47
|
search(request: SearchRequest): Promise<SearchResponse>;
|
|
44
48
|
agentSearch(request: SearchRequest): Promise<AgentSearchResponse>;
|
|
45
49
|
related(id: string, memoryBodyId?: string): Promise<Insight[]>;
|
|
50
|
+
/** Settled memory-tool activity of one turn, shared across all mounted tails. */
|
|
51
|
+
turnActivity(turn: number, cursor?: number): Promise<TurnMemoryActivity | null>;
|
|
52
|
+
/** Plain text of one finalized assistant message; null when absent or empty. */
|
|
53
|
+
assistantMessageText(messageId: string): Promise<AssistantMessageText | null>;
|
|
46
54
|
remember(request: RememberRequest): Promise<Record<string, unknown>>;
|
|
47
|
-
supervise(content: string): Promise<{
|
|
55
|
+
supervise(content: string, idempotencyKey?: string): Promise<{
|
|
48
56
|
delegated: true;
|
|
49
57
|
sessionId: string;
|
|
50
58
|
runId: string;
|
|
@@ -64,5 +72,12 @@ export declare class MnemonClient {
|
|
|
64
72
|
description?: string;
|
|
65
73
|
active?: boolean;
|
|
66
74
|
}): Promise<MemoryBody>;
|
|
75
|
+
packTarget(): Promise<{
|
|
76
|
+
root: string;
|
|
77
|
+
scope: 'global' | 'workspace' | 'custom';
|
|
78
|
+
}>;
|
|
79
|
+
exportPack(): Promise<MnemonPackExport>;
|
|
80
|
+
inspectPack(base64: string, fileName?: string): Promise<MnemonPackPreview>;
|
|
81
|
+
importPack(base64: string): Promise<MnemonPackImportResult>;
|
|
67
82
|
}
|
|
68
83
|
//# sourceMappingURL=api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/client/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAE7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACrI,OAAO,KAAK,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC5I,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/client/api.ts"],"names":[],"mappings":"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"}
|
package/lib/types/client/api.js
CHANGED
|
@@ -1,10 +1,44 @@
|
|
|
1
|
-
import { MNEMON_READ_CHANNEL, MNEMON_WRITE_CHANNEL } from "../rpc.js";
|
|
1
|
+
import { MNEMON_PACK_CHANNEL, MNEMON_READ_CHANNEL, MNEMON_WRITE_CHANNEL } from "../rpc.js";
|
|
2
|
+
const turnActivityCache = new WeakMap();
|
|
3
|
+
async function loadTurnActivities(connection, sessionId, requiredCursor) {
|
|
4
|
+
let sessions = turnActivityCache.get(connection);
|
|
5
|
+
if (sessions === undefined) {
|
|
6
|
+
sessions = new Map();
|
|
7
|
+
turnActivityCache.set(connection, sessions);
|
|
8
|
+
}
|
|
9
|
+
const key = sessionId ?? '';
|
|
10
|
+
let entry = sessions.get(key);
|
|
11
|
+
if (entry === undefined) {
|
|
12
|
+
entry = { cursor: -1, activities: new Map() };
|
|
13
|
+
sessions.set(key, entry);
|
|
14
|
+
}
|
|
15
|
+
if (entry.cursor >= requiredCursor)
|
|
16
|
+
return { cursor: entry.cursor, activities: [...entry.activities.values()] };
|
|
17
|
+
if (entry.inFlight !== undefined) {
|
|
18
|
+
const snapshot = await entry.inFlight;
|
|
19
|
+
return snapshot.cursor >= requiredCursor ? snapshot : loadTurnActivities(connection, sessionId, requiredCursor);
|
|
20
|
+
}
|
|
21
|
+
const request = connection.rpc.call(MNEMON_READ_CHANNEL, 'turn-activities', sessionId === undefined ? {} : { sessionId })
|
|
22
|
+
.then(response => {
|
|
23
|
+
if (!response.ok)
|
|
24
|
+
throw new Error(response.error.message);
|
|
25
|
+
const snapshot = response.value;
|
|
26
|
+
entry.cursor = snapshot.cursor;
|
|
27
|
+
entry.activities = new Map(snapshot.activities.map(activity => [activity.turn, activity]));
|
|
28
|
+
return snapshot;
|
|
29
|
+
})
|
|
30
|
+
.finally(() => { delete entry.inFlight; });
|
|
31
|
+
entry.inFlight = request;
|
|
32
|
+
return request;
|
|
33
|
+
}
|
|
2
34
|
export class MnemonClient {
|
|
3
35
|
connection;
|
|
4
36
|
sessionId;
|
|
5
|
-
|
|
37
|
+
workspaceId;
|
|
38
|
+
constructor(connection, sessionId, workspaceId) {
|
|
6
39
|
this.connection = connection;
|
|
7
40
|
this.sessionId = sessionId;
|
|
41
|
+
this.workspaceId = workspaceId;
|
|
8
42
|
}
|
|
9
43
|
async call(channel, endpoint, payload) {
|
|
10
44
|
const response = await this.connection.rpc.call(channel, endpoint, payload);
|
|
@@ -12,69 +46,96 @@ export class MnemonClient {
|
|
|
12
46
|
throw new Error(response.error.message);
|
|
13
47
|
return response.value;
|
|
14
48
|
}
|
|
49
|
+
scoped(payload = {}) {
|
|
50
|
+
return {
|
|
51
|
+
...payload,
|
|
52
|
+
...(this.sessionId === undefined ? {} : { sessionId: this.sessionId }),
|
|
53
|
+
...(this.workspaceId === undefined ? {} : { workspaceId: this.workspaceId }),
|
|
54
|
+
};
|
|
55
|
+
}
|
|
15
56
|
status() {
|
|
16
|
-
return this.call(MNEMON_READ_CHANNEL, 'status', this.
|
|
57
|
+
return this.call(MNEMON_READ_CHANNEL, 'status', this.scoped());
|
|
17
58
|
}
|
|
18
59
|
runtimeMemory() {
|
|
19
|
-
return this.call(MNEMON_READ_CHANNEL, 'runtime-memory',
|
|
60
|
+
return this.call(MNEMON_READ_CHANNEL, 'runtime-memory', this.scoped());
|
|
20
61
|
}
|
|
21
62
|
mutateRuntimeMemory(request) {
|
|
22
|
-
return this.call(MNEMON_WRITE_CHANNEL, 'runtime-memory',
|
|
63
|
+
return this.call(MNEMON_WRITE_CHANNEL, 'runtime-memory', this.scoped(request));
|
|
23
64
|
}
|
|
24
65
|
documents() {
|
|
25
|
-
return this.call(MNEMON_READ_CHANNEL, 'documents',
|
|
66
|
+
return this.call(MNEMON_READ_CHANNEL, 'documents', this.scoped());
|
|
26
67
|
}
|
|
27
68
|
document(id) {
|
|
28
|
-
return this.call(MNEMON_READ_CHANNEL, 'document',
|
|
69
|
+
return this.call(MNEMON_READ_CHANNEL, 'document', this.scoped({ id }));
|
|
29
70
|
}
|
|
30
71
|
searchDocuments(query, includeArchived = false, limit = 50) {
|
|
31
|
-
return this.call(MNEMON_READ_CHANNEL, 'document-search',
|
|
72
|
+
return this.call(MNEMON_READ_CHANNEL, 'document-search', this.scoped({ query, includeArchived, limit }));
|
|
32
73
|
}
|
|
33
74
|
mutateDocument(request) {
|
|
34
|
-
return this.call(MNEMON_WRITE_CHANNEL, 'document',
|
|
75
|
+
return this.call(MNEMON_WRITE_CHANNEL, 'document', this.scoped(request));
|
|
35
76
|
}
|
|
36
77
|
archiveDocument(id) {
|
|
37
|
-
return this.call(MNEMON_WRITE_CHANNEL, 'document', { action: 'archive', id
|
|
78
|
+
return this.call(MNEMON_WRITE_CHANNEL, 'document', this.scoped({ action: 'archive', id }));
|
|
38
79
|
}
|
|
39
80
|
bodies() {
|
|
40
|
-
return this.call(MNEMON_READ_CHANNEL, 'bodies',
|
|
81
|
+
return this.call(MNEMON_READ_CHANNEL, 'bodies', this.scoped());
|
|
41
82
|
}
|
|
42
83
|
graph(memoryBodyIds) {
|
|
43
|
-
return this.call(MNEMON_READ_CHANNEL, 'graph', memoryBodyIds === undefined ? {} : { memoryBodyIds });
|
|
84
|
+
return this.call(MNEMON_READ_CHANNEL, 'graph', this.scoped(memoryBodyIds === undefined ? {} : { memoryBodyIds }));
|
|
44
85
|
}
|
|
45
86
|
list(request = {}) {
|
|
46
|
-
return this.call(MNEMON_READ_CHANNEL, 'list', request);
|
|
87
|
+
return this.call(MNEMON_READ_CHANNEL, 'list', this.scoped(request));
|
|
47
88
|
}
|
|
48
89
|
entities(entity, limit) {
|
|
49
|
-
return this.call(MNEMON_READ_CHANNEL, 'entities', {
|
|
50
|
-
sessionId: this.sessionId,
|
|
90
|
+
return this.call(MNEMON_READ_CHANNEL, 'entities', this.scoped({
|
|
51
91
|
...(entity === undefined ? {} : { entity }),
|
|
52
92
|
...(limit === undefined ? {} : { limit }),
|
|
53
|
-
});
|
|
93
|
+
}));
|
|
54
94
|
}
|
|
55
95
|
search(request) {
|
|
56
|
-
return this.call(MNEMON_READ_CHANNEL, 'search',
|
|
96
|
+
return this.call(MNEMON_READ_CHANNEL, 'search', this.scoped(request));
|
|
57
97
|
}
|
|
58
98
|
agentSearch(request) {
|
|
59
|
-
return this.call(MNEMON_READ_CHANNEL, 'agent-search',
|
|
99
|
+
return this.call(MNEMON_READ_CHANNEL, 'agent-search', this.scoped(request));
|
|
60
100
|
}
|
|
61
101
|
related(id, memoryBodyId) {
|
|
62
|
-
return this.call(MNEMON_READ_CHANNEL, 'related', { id, depth: 2,
|
|
102
|
+
return this.call(MNEMON_READ_CHANNEL, 'related', this.scoped({ id, depth: 2, ...(memoryBodyId === undefined ? {} : { memoryBodyId }) }));
|
|
103
|
+
}
|
|
104
|
+
/** Settled memory-tool activity of one turn, shared across all mounted tails. */
|
|
105
|
+
async turnActivity(turn, cursor = 0) {
|
|
106
|
+
const snapshot = await loadTurnActivities(this.connection, this.sessionId, cursor);
|
|
107
|
+
return snapshot.activities.find(activity => activity.turn === turn) ?? null;
|
|
108
|
+
}
|
|
109
|
+
/** Plain text of one finalized assistant message; null when absent or empty. */
|
|
110
|
+
assistantMessageText(messageId) {
|
|
111
|
+
return this.call(MNEMON_READ_CHANNEL, 'assistant-message', { sessionId: this.sessionId, messageId });
|
|
63
112
|
}
|
|
64
113
|
remember(request) {
|
|
65
|
-
return this.call(MNEMON_WRITE_CHANNEL, 'remember',
|
|
114
|
+
return this.call(MNEMON_WRITE_CHANNEL, 'remember', this.scoped(request));
|
|
66
115
|
}
|
|
67
|
-
supervise(content) {
|
|
68
|
-
return this.call(MNEMON_WRITE_CHANNEL, 'supervise', {
|
|
116
|
+
supervise(content, idempotencyKey) {
|
|
117
|
+
return this.call(MNEMON_WRITE_CHANNEL, 'supervise', this.scoped({ content, ...(idempotencyKey === undefined ? {} : { idempotencyKey }) }));
|
|
69
118
|
}
|
|
70
119
|
forget(id, memoryBodyId) {
|
|
71
|
-
return this.call(MNEMON_WRITE_CHANNEL, 'forget', { id,
|
|
120
|
+
return this.call(MNEMON_WRITE_CHANNEL, 'forget', this.scoped({ id, ...(memoryBodyId === undefined ? {} : { memoryBodyId }) }));
|
|
72
121
|
}
|
|
73
122
|
createBody(request) {
|
|
74
|
-
return this.call(MNEMON_WRITE_CHANNEL, 'body-create', request);
|
|
123
|
+
return this.call(MNEMON_WRITE_CHANNEL, 'body-create', this.scoped(request));
|
|
75
124
|
}
|
|
76
125
|
updateBody(memoryBodyId, request) {
|
|
77
|
-
return this.call(MNEMON_WRITE_CHANNEL, 'body-update', { memoryBodyId, ...request });
|
|
126
|
+
return this.call(MNEMON_WRITE_CHANNEL, 'body-update', this.scoped({ memoryBodyId, ...request }));
|
|
127
|
+
}
|
|
128
|
+
packTarget() {
|
|
129
|
+
return this.call(MNEMON_PACK_CHANNEL, 'target', {});
|
|
130
|
+
}
|
|
131
|
+
exportPack() {
|
|
132
|
+
return this.call(MNEMON_PACK_CHANNEL, 'export', {});
|
|
133
|
+
}
|
|
134
|
+
inspectPack(base64, fileName) {
|
|
135
|
+
return this.call(MNEMON_PACK_CHANNEL, 'inspect', { base64, ...(fileName === undefined ? {} : { fileName }) });
|
|
136
|
+
}
|
|
137
|
+
importPack(base64) {
|
|
138
|
+
return this.call(MNEMON_PACK_CHANNEL, 'import', { base64 });
|
|
78
139
|
}
|
|
79
140
|
}
|
|
80
141
|
//# sourceMappingURL=api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/client/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/client/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compile-time boundary against the public DSH browser contracts.
|
|
3
|
+
*
|
|
4
|
+
* Keep version-sensitive declaration merging in one place so a future DSH
|
|
5
|
+
* upgrade fails here instead of being papered over by local copies of slots.
|
|
6
|
+
*/
|
|
7
|
+
import type { ConnectionHandle } from '@deepseek-ai/dsh-client-connection/client';
|
|
8
|
+
import type { LocaleRuntime } from '@deepseek-ai/dsh-client-locale/client';
|
|
9
|
+
import type { ClientContext } from '@deepseek-ai/dsh-client-runtime/client';
|
|
10
|
+
import type { MnemonKey } from './locales.ts';
|
|
11
|
+
declare module '@deepseek-ai/dsh-client-ui-slots' {
|
|
12
|
+
interface LocaleNamespaceMap {
|
|
13
|
+
mnemon: MnemonKey;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/** DSH 0.1.0-rc.6 client context plus the two injected feature services. */
|
|
17
|
+
export type MnemonClientContext = ClientContext & {
|
|
18
|
+
connection: ConnectionHandle;
|
|
19
|
+
locale: LocaleRuntime;
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=dsh-compat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dsh-compat.d.ts","sourceRoot":"","sources":["../../../src/client/dsh-compat.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAA;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AAI3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE7C,OAAO,QAAQ,kCAAkC,CAAC;IAChD,UAAU,kBAAkB;QAC1B,MAAM,EAAE,SAAS,CAAA;KAClB;CACF;AAED,4EAA4E;AAC5E,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAChD,UAAU,EAAE,gBAAgB,CAAA;IAC5B,MAAM,EAAE,aAAa,CAAA;CACtB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dsh-compat.js","sourceRoot":"","sources":["../../../src/client/dsh-compat.ts"],"names":[],"mappings":""}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare const inject: string[];
|
|
2
|
-
/**
|
|
2
|
+
/** Mount the memory workspace plus the optional in-conversation interaction surfaces. */
|
|
3
3
|
export declare function apply(rawContext: unknown): void;
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,MAAM,UAA8D,CAAA;AA4FjF,yFAAyF;AACzF,wBAAgB,KAAK,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI,CA4E/C"}
|
|
@@ -1,16 +1,74 @@
|
|
|
1
|
+
import { MNEMON_SETTINGS_NAMESPACE, MNEMON_UI_SETTINGS_NAMESPACE } from "../settings.js";
|
|
1
2
|
import { MnemonSettingsCard } from "./MnemonSettingsCard.js";
|
|
2
3
|
import { MnemonView } from "./MnemonView.js";
|
|
4
|
+
import { MnemonToolView, MNEMON_TOOLVIEW_NAMES } from "./MnemonToolviews.js";
|
|
5
|
+
import { MnemonTurnTail, selectMnemonTurnTail } from "./MnemonTurnTail.js";
|
|
6
|
+
import { MnemonSaveAction } from "./MnemonSaveAction.js";
|
|
3
7
|
import { en, zh } from "./locales.js";
|
|
4
8
|
import { MnemonSettingsScope } from "./settings.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
import { mountMnemonWorkspace } from "./workspace-mount.js";
|
|
10
|
+
export const inject = ['slots', 'sessions', 'workspaces', 'connection', 'locale'];
|
|
11
|
+
const INTERACTION_UNITS = {
|
|
12
|
+
toolviews: {
|
|
13
|
+
slot: 'tool.call.toolview',
|
|
14
|
+
enabled: (value) => enabledOf(value, 'toolviews'),
|
|
15
|
+
register(ctx, namespace, translate) {
|
|
16
|
+
const disposers = [];
|
|
17
|
+
for (const toolName of MNEMON_TOOLVIEW_NAMES) {
|
|
18
|
+
disposers.push(ctx.slots.register({
|
|
19
|
+
name: 'tool.call.toolview',
|
|
20
|
+
key: toolName,
|
|
21
|
+
locale: namespace,
|
|
22
|
+
inject: (sessionId) => ({
|
|
23
|
+
...(typeof sessionId === 'string' && sessionId !== '' ? { sessionId } : {}),
|
|
24
|
+
t: translate,
|
|
25
|
+
}),
|
|
26
|
+
}, MnemonToolView));
|
|
27
|
+
}
|
|
28
|
+
return () => { for (const dispose of disposers.reverse())
|
|
29
|
+
dispose(); };
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
turnBar: {
|
|
33
|
+
slot: 'conversation.chat.turnTail',
|
|
34
|
+
enabled: (value) => enabledOf(value, 'turnBar'),
|
|
35
|
+
register(ctx, namespace, translate) {
|
|
36
|
+
return ctx.slots.register({
|
|
37
|
+
name: 'conversation.chat.turnTail',
|
|
38
|
+
locale: namespace,
|
|
39
|
+
select: selectMnemonTurnTail,
|
|
40
|
+
inject: (sessionId) => ({
|
|
41
|
+
...(typeof sessionId === 'string' && sessionId !== '' ? { sessionId } : {}),
|
|
42
|
+
connection: ctx.connection,
|
|
43
|
+
t: translate,
|
|
44
|
+
}),
|
|
45
|
+
}, MnemonTurnTail);
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
saveAction: {
|
|
49
|
+
slot: 'conversation.chat.assistant-actions',
|
|
50
|
+
enabled: (value) => enabledOf(value, 'saveAction'),
|
|
51
|
+
register(ctx, namespace, translate) {
|
|
52
|
+
return ctx.slots.register({
|
|
53
|
+
name: 'conversation.chat.assistant-actions',
|
|
54
|
+
id: 'mnemon-save',
|
|
55
|
+
order: 90,
|
|
56
|
+
locale: namespace,
|
|
57
|
+
inject: (sessionId) => ({
|
|
58
|
+
...(typeof sessionId === 'string' && sessionId !== '' ? { sessionId } : {}),
|
|
59
|
+
connection: ctx.connection,
|
|
60
|
+
t: translate,
|
|
61
|
+
}),
|
|
62
|
+
}, MnemonSaveAction);
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
/** Interaction surfaces are opt-in: an explicit `true` in settings enables one. */
|
|
67
|
+
function enabledOf(value, key) {
|
|
68
|
+
return value?.[key] === true;
|
|
69
|
+
}
|
|
70
|
+
function mountBuildinMemoryView(ctx, settings, namespace, translate) {
|
|
71
|
+
return ctx.slots.inject('conversation.view', () => ctx.slots.register({
|
|
14
72
|
name: 'conversation.view',
|
|
15
73
|
id: 'mnemon',
|
|
16
74
|
order: 30,
|
|
@@ -22,15 +80,85 @@ export function apply(rawContext) {
|
|
|
22
80
|
t: translate,
|
|
23
81
|
}),
|
|
24
82
|
}, MnemonView));
|
|
25
|
-
|
|
26
|
-
|
|
83
|
+
}
|
|
84
|
+
/** Mount the memory workspace plus the optional in-conversation interaction surfaces. */
|
|
85
|
+
export function apply(rawContext) {
|
|
86
|
+
const ctx = rawContext;
|
|
87
|
+
const settings = new MnemonSettingsScope(ctx.connection, MNEMON_SETTINGS_NAMESPACE);
|
|
88
|
+
const interactionSettings = new MnemonSettingsScope(ctx.connection, MNEMON_UI_SETTINGS_NAMESPACE);
|
|
89
|
+
const namespace = 'mnemon';
|
|
90
|
+
ctx.effect(() => ctx.locale.register(namespace, { zh, en }), 'dsh-mnemon: locale dictionaries');
|
|
91
|
+
const translate = ctx.locale.bind(namespace);
|
|
92
|
+
let activeMemoryWorkspace;
|
|
93
|
+
const reconcileMemoryWorkspace = () => {
|
|
94
|
+
const snapshot = settings.getSnapshot();
|
|
95
|
+
const value = snapshot.value;
|
|
96
|
+
// Avoid briefly mounting the default sidebar for users whose persisted
|
|
97
|
+
// mode is buildin while the settings snapshot is still in flight.
|
|
98
|
+
const mode = snapshot.status === 'loading'
|
|
99
|
+
? undefined
|
|
100
|
+
: value?.tabEnabled === false ? undefined : value?.displayMode ?? 'sidebar';
|
|
101
|
+
if (activeMemoryWorkspace?.mode === mode)
|
|
102
|
+
return;
|
|
103
|
+
activeMemoryWorkspace?.dispose();
|
|
104
|
+
activeMemoryWorkspace = mode === undefined
|
|
105
|
+
? undefined
|
|
106
|
+
: {
|
|
107
|
+
mode,
|
|
108
|
+
dispose: mode === 'buildin'
|
|
109
|
+
? mountBuildinMemoryView(ctx, settings, namespace, translate)
|
|
110
|
+
: mountMnemonWorkspace(ctx, settings, translate),
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
ctx.effect(() => {
|
|
114
|
+
const unsubscribe = settings.subscribe(reconcileMemoryWorkspace);
|
|
115
|
+
reconcileMemoryWorkspace();
|
|
116
|
+
return () => {
|
|
117
|
+
unsubscribe();
|
|
118
|
+
activeMemoryWorkspace?.dispose();
|
|
119
|
+
activeMemoryWorkspace = undefined;
|
|
120
|
+
};
|
|
121
|
+
}, 'dsh-mnemon: configurable memory workspace');
|
|
122
|
+
ctx.slots.inject('settings.section', () => ctx.slots.register({
|
|
123
|
+
name: 'settings.section',
|
|
27
124
|
id: 'mnemon',
|
|
28
|
-
order:
|
|
125
|
+
order: 20,
|
|
126
|
+
label: () => translate('tab.label'),
|
|
29
127
|
locale: namespace,
|
|
30
128
|
inject: () => ({
|
|
31
129
|
scope: settings,
|
|
130
|
+
interactionScope: interactionSettings,
|
|
131
|
+
connection: ctx.connection,
|
|
32
132
|
t: translate,
|
|
33
133
|
}),
|
|
34
134
|
}, MnemonSettingsCard));
|
|
135
|
+
// In-conversation interaction surfaces are opt-in and bound live: each
|
|
136
|
+
// settings change registers or disposes the slot contributions without a
|
|
137
|
+
// reload. Until the snapshot loads, nothing registers (conservative default).
|
|
138
|
+
const active = new Map();
|
|
139
|
+
const reconcile = () => {
|
|
140
|
+
const value = interactionSettings.getSnapshot().value;
|
|
141
|
+
for (const key of Object.keys(INTERACTION_UNITS)) {
|
|
142
|
+
const unit = INTERACTION_UNITS[key];
|
|
143
|
+
const enabled = unit.enabled(value);
|
|
144
|
+
if (enabled && !active.has(key)) {
|
|
145
|
+
active.set(key, ctx.slots.inject(unit.slot, () => unit.register(ctx, namespace, translate)));
|
|
146
|
+
}
|
|
147
|
+
else if (!enabled && active.has(key)) {
|
|
148
|
+
active.get(key)();
|
|
149
|
+
active.delete(key);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
ctx.effect(() => {
|
|
154
|
+
const unsubscribe = interactionSettings.subscribe(reconcile);
|
|
155
|
+
reconcile();
|
|
156
|
+
return () => {
|
|
157
|
+
unsubscribe();
|
|
158
|
+
for (const dispose of [...active.values()].reverse())
|
|
159
|
+
dispose();
|
|
160
|
+
active.clear();
|
|
161
|
+
};
|
|
162
|
+
}, 'dsh-mnemon: interaction surfaces');
|
|
35
163
|
}
|
|
36
164
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"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"}
|