dsh-mnemon 0.1.6 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +125 -104
- package/README.zh-CN.md +130 -109
- package/THIRD_PARTY_NOTICES.md +7 -0
- package/lib/client.js +3889 -830
- package/lib/index.js +4224 -288
- package/lib/types/client/GlobalLocationSetting.d.ts +19 -0
- package/lib/types/client/MnemonPackSection.d.ts +4 -1
- package/lib/types/client/MnemonSettingsCard.d.ts +4 -1
- package/lib/types/client/ProviderIcon.d.ts +8 -0
- package/lib/types/client/ProviderSettingsSection.d.ts +16 -0
- package/lib/types/client/api.d.ts +12 -11
- package/lib/types/client/locales.d.ts +548 -0
- package/lib/types/client/settings.d.ts +3 -1
- package/lib/types/contracts.d.ts +36 -2
- package/lib/types/lifecycle.d.ts +30 -3
- package/lib/types/memory-bodies.d.ts +25 -4
- package/lib/types/process.d.ts +4 -1
- package/lib/types/provider-placement.d.ts +26 -0
- package/lib/types/providers/byterover.d.ts +31 -0
- package/lib/types/providers/catalog.d.ts +23 -0
- package/lib/types/providers/hindsight.d.ts +19 -0
- package/lib/types/providers/holographic.d.ts +22 -0
- package/lib/types/providers/honcho.d.ts +18 -0
- package/lib/types/providers/http.d.ts +32 -0
- package/lib/types/providers/mem0.d.ts +17 -0
- package/lib/types/providers/openviking.d.ts +31 -0
- package/lib/types/providers/provider.d.ts +38 -0
- package/lib/types/providers/retaindb.d.ts +16 -0
- package/lib/types/providers/supermemory.d.ts +16 -0
- package/lib/types/rpc.d.ts +1 -1
- package/lib/types/service.d.ts +54 -6
- package/lib/types/shared/contracts.d.ts +261 -1
- package/lib/types/subagent.d.ts +10 -2
- package/package.json +16 -4
|
@@ -2,10 +2,11 @@ import { type ClientConnectionHandle, type ClientSettingsScope, type ClientSetti
|
|
|
2
2
|
export declare class MnemonSettingsScope<T extends object> implements ClientSettingsScope<T> {
|
|
3
3
|
private readonly connection;
|
|
4
4
|
private readonly namespace;
|
|
5
|
+
private readonly requestTimeoutMs;
|
|
5
6
|
private snapshot;
|
|
6
7
|
private readonly listeners;
|
|
7
8
|
private tail;
|
|
8
|
-
constructor(connection: ClientConnectionHandle, namespace?: string);
|
|
9
|
+
constructor(connection: ClientConnectionHandle, namespace?: string, requestTimeoutMs?: number);
|
|
9
10
|
getSnapshot: () => ClientSettingsSnapshot<T>;
|
|
10
11
|
subscribe: (listener: () => void) => (() => void);
|
|
11
12
|
set(field: string, value: unknown): Promise<void>;
|
|
@@ -17,5 +18,6 @@ export declare class MnemonSettingsScope<T extends object> implements ClientSett
|
|
|
17
18
|
mutate(ops: SettingsOperation[]): Promise<void>;
|
|
18
19
|
private load;
|
|
19
20
|
private write;
|
|
21
|
+
private call;
|
|
20
22
|
private publish;
|
|
21
23
|
}
|
package/lib/types/contracts.d.ts
CHANGED
|
@@ -117,6 +117,7 @@ export interface HostAgent {
|
|
|
117
117
|
origin?: 'subagent';
|
|
118
118
|
delegationDepth?: number;
|
|
119
119
|
cwd?: string;
|
|
120
|
+
agentPreset?: string;
|
|
120
121
|
};
|
|
121
122
|
events: readonly HostSessionEvent[];
|
|
122
123
|
};
|
|
@@ -125,9 +126,29 @@ export interface HostAgent {
|
|
|
125
126
|
steer(message: HostUserMessage): void;
|
|
126
127
|
inject(message: HostUserMessage): void;
|
|
127
128
|
}
|
|
129
|
+
export interface HostAgentHandle {
|
|
130
|
+
agent: HostAgent;
|
|
131
|
+
dispose(): Promise<void>;
|
|
132
|
+
}
|
|
133
|
+
export interface CreateHostAgentOptions {
|
|
134
|
+
sessionId: string;
|
|
135
|
+
meta?: {
|
|
136
|
+
cwd?: string;
|
|
137
|
+
agentPreset?: string;
|
|
138
|
+
};
|
|
139
|
+
agentOptions?: {
|
|
140
|
+
provider?: string;
|
|
141
|
+
model?: string;
|
|
142
|
+
maxTokens?: number;
|
|
143
|
+
};
|
|
144
|
+
signal?: AbortSignal;
|
|
145
|
+
setup?: (agentCtx: HostAgentContext) => unknown | Promise<unknown>;
|
|
146
|
+
}
|
|
128
147
|
export interface HostAgentsService {
|
|
129
148
|
get(id: string): HostAgent | undefined;
|
|
130
149
|
roots(): HostAgent[];
|
|
150
|
+
/** DSH rc.6+ factory for an owned, clean top-level Agent. */
|
|
151
|
+
create?(options: CreateHostAgentOptions): Promise<HostAgentHandle>;
|
|
131
152
|
}
|
|
132
153
|
export interface HostWorkspace {
|
|
133
154
|
readonly id: string;
|
|
@@ -187,16 +208,29 @@ export interface HostSubagentsService {
|
|
|
187
208
|
persona?: string;
|
|
188
209
|
}): Promise<HostSubagentRun>;
|
|
189
210
|
}
|
|
211
|
+
export interface HostLlmService {
|
|
212
|
+
listProviders(): Array<{
|
|
213
|
+
id: string;
|
|
214
|
+
name: string;
|
|
215
|
+
}>;
|
|
216
|
+
listModels(provider: string): Promise<Array<{
|
|
217
|
+
id: string;
|
|
218
|
+
name: string;
|
|
219
|
+
description?: string;
|
|
220
|
+
}>>;
|
|
221
|
+
}
|
|
190
222
|
export interface HostContextShape {
|
|
191
223
|
tools: {
|
|
192
224
|
register(definition: ToolDefinition): unknown;
|
|
193
225
|
};
|
|
194
226
|
commands: CommandService;
|
|
195
227
|
settings: HostSettingsService;
|
|
196
|
-
|
|
228
|
+
/** Web-only transport; absent from non-Web profiles such as Headless. */
|
|
229
|
+
connection?: HostConnectionHandle;
|
|
197
230
|
agents: HostAgentsService;
|
|
198
231
|
subagents: HostSubagentsService;
|
|
199
|
-
|
|
232
|
+
/** Web workbench catalog; Agent execution routes by session cwd without it. */
|
|
233
|
+
workspaceRegistry?: HostWorkspaceRegistry;
|
|
200
234
|
get(name: string): unknown;
|
|
201
235
|
inject(services: string[], callback: (ctx: HostContextShape) => void): unknown;
|
|
202
236
|
on(name: string, listener: (...args: never[]) => unknown): () => unknown;
|
package/lib/types/lifecycle.d.ts
CHANGED
|
@@ -6,7 +6,8 @@ import type { DocumentMutation } from './documents.ts';
|
|
|
6
6
|
import { MnemonSubagentCoordinator, type DelegatedWriteResult } from './subagent.ts';
|
|
7
7
|
import { type TurnMemoryActivitySnapshot } from './activity.ts';
|
|
8
8
|
import type { RuntimeMemoryController } from './runtime-memory.ts';
|
|
9
|
-
import type { AssistantMessageText, LifecycleSnapshot } from './shared/contracts.ts';
|
|
9
|
+
import type { AssistantMessageText, LifecycleSnapshot, TaskAgentModelCatalog } from './shared/contracts.ts';
|
|
10
|
+
import type { PreparedMemoryPlacement } from './provider-placement.ts';
|
|
10
11
|
interface AgentRuntimeSource {
|
|
11
12
|
forAgent(agent: HostAgent): {
|
|
12
13
|
runtimeMemory: RuntimeMemoryController;
|
|
@@ -26,11 +27,16 @@ export declare class MnemonLifecycle {
|
|
|
26
27
|
private readonly runtimeSource?;
|
|
27
28
|
private readonly owners;
|
|
28
29
|
private readonly counters;
|
|
30
|
+
/** Creation ids reserved before DSH publishes clean task-root Agents. */
|
|
31
|
+
private readonly taskAgentIds;
|
|
29
32
|
/** Bounded process-local replay fence for finalized-message write actions. */
|
|
30
33
|
private readonly supervisedWritebacks;
|
|
31
34
|
constructor(ctx: HostContextShape, coordinator: MnemonSubagentCoordinator, config: ResolvedConfig, runtimeSource?: AgentRuntimeSource | undefined);
|
|
32
35
|
start(): () => void;
|
|
33
|
-
snapshot(sessionId?: string): LifecycleSnapshot;
|
|
36
|
+
snapshot(sessionId?: string, workspaceRoot?: string): LifecycleSnapshot;
|
|
37
|
+
/** Provider/model directory used by Settings without requiring a live session. */
|
|
38
|
+
taskAgentModels(includeCatalog?: boolean): Promise<TaskAgentModelCatalog>;
|
|
39
|
+
private availableAgent;
|
|
34
40
|
workspaceRoot(sessionId?: string): string | undefined;
|
|
35
41
|
/** Settled memory-tool activity for all turns, resolved per session. */
|
|
36
42
|
turnActivities(sessionId: string): TurnMemoryActivitySnapshot;
|
|
@@ -39,15 +45,36 @@ export declare class MnemonLifecycle {
|
|
|
39
45
|
recall(sessionId: string, request: SearchRequest, signal?: AbortSignal): Promise<import("./subagent.ts").DelegatedRecallResult>;
|
|
40
46
|
related(sessionId: string, id: string, memoryBodyId?: string, signal?: AbortSignal): Promise<import("./subagent.ts").DelegatedRecallResult>;
|
|
41
47
|
answer(sessionId: string, query: string, evidence: Insight[], signal?: AbortSignal): Promise<import("./subagent.ts").DelegatedAnswerResult>;
|
|
48
|
+
/** Synthesize a Web Agent Query without borrowing a conversation Agent or its history. */
|
|
49
|
+
answerTask(sessionId: string, query: string, evidence: Insight[], workspaceRoot?: string, signal?: AbortSignal): Promise<import("./subagent.ts").DelegatedAnswerResult>;
|
|
42
50
|
remember(sessionId: string, request: RememberRequest, signal?: AbortSignal): Promise<DelegatedWriteResult>;
|
|
43
51
|
runtime(sessionId: string, request: RuntimeMemoryMutation, signal?: AbortSignal): Promise<import("./subagent.ts").CoordinatedRuntimeMemoryResult>;
|
|
44
52
|
documents(sessionId: string): import("./documents.ts").DocumentSnapshot;
|
|
45
53
|
document(sessionId: string, id: string): import("./documents.ts").DocumentView;
|
|
46
54
|
searchDocuments(sessionId: string, query: string, includeArchived?: boolean, limit?: number): Promise<import("./documents.ts").DocumentSearchResult>;
|
|
47
55
|
mutateDocument(sessionId: string, request: DocumentMutation, signal?: AbortSignal): Promise<import("./subagent.ts").CoordinatedDocumentResult>;
|
|
48
|
-
archiveDocument(sessionId: string, id: string, signal?: AbortSignal): Promise<import("./subagent.ts").CoordinatedDocumentResult>;
|
|
56
|
+
archiveDocument(sessionId: string, id: string, workspaceRoot?: string, signal?: AbortSignal): Promise<import("./subagent.ts").CoordinatedDocumentResult>;
|
|
49
57
|
mutate(sessionId: string, operation: string, request: unknown, signal?: AbortSignal): Promise<DelegatedWriteResult>;
|
|
58
|
+
placeProvider(sessionId: string, body: {
|
|
59
|
+
name: string;
|
|
60
|
+
description: string;
|
|
61
|
+
}, prepared: PreparedMemoryPlacement, signal?: AbortSignal): Promise<import("./shared/contracts.ts").MemoryPlacementDecision>;
|
|
62
|
+
maintainMetadata(sessionId: string, memoryBodyIds: readonly string[], workspaceRoot?: string, signal?: AbortSignal): Promise<import("./shared/contracts.ts").MemoryBodyMetadataMaintenanceResult>;
|
|
50
63
|
supervise(sessionId: string, content: string, idempotencyKey?: string, signal?: AbortSignal): Promise<SupervisedWritebackResult>;
|
|
64
|
+
/** Run a Web workbench distillation under a fresh top-level task Agent. */
|
|
65
|
+
superviseTask(sessionId: string, content: string, idempotencyKey?: string, workspaceRoot?: string, signal?: AbortSignal): Promise<SupervisedWritebackResult>;
|
|
66
|
+
private superviseResolved;
|
|
51
67
|
private liveAgent;
|
|
68
|
+
/**
|
|
69
|
+
* Run session-independent maintenance under a fresh top-level Agent. Its cwd
|
|
70
|
+
* is the explicit Web workbench scope, so LiveMnemonRuntime resolves the same
|
|
71
|
+
* workspace graph without borrowing conversation history or ownership.
|
|
72
|
+
*/
|
|
73
|
+
private runTaskAgent;
|
|
74
|
+
/** Resolve the same model route and preset composition as an ordinary fresh DSH Agent. */
|
|
75
|
+
private taskAgentCreation;
|
|
76
|
+
/** Resolve a complete task route for both status admission and actual creation. */
|
|
77
|
+
private taskAgentModelRoute;
|
|
78
|
+
private taskAgentModelOptions;
|
|
52
79
|
private install;
|
|
53
80
|
}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import type { MnemonRunner } from './runner.ts';
|
|
2
|
-
import type {
|
|
2
|
+
import type { MemoryPlacementCandidate } from './provider-placement.ts';
|
|
3
|
+
import type { CreateMemoryBodyRequest, MemoryBody, MemoryPlacementDecision, MemoryProviderServiceCatalog, MemoryProviderServiceView, MemoryProviderConnection, MemoryProviderId, MemoryBodyMetadataUpdate, OpenVikingBodyConnection, UpdateMemoryBodyRequest } from './shared/contracts.ts';
|
|
4
|
+
import type { ProviderMemorySpace } from './providers/provider.ts';
|
|
3
5
|
export type { CreateMemoryBodyRequest, MemoryBody, UpdateMemoryBodyRequest } from './shared/contracts.ts';
|
|
4
6
|
export declare function validateMemoryBodyId(value: string): string;
|
|
5
7
|
/**
|
|
6
8
|
* Persistent metadata layered over Mnemon's native named stores.
|
|
7
9
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
+
* Native metadata lives beside Store directories so existing Mnemon Packs stay
|
|
11
|
+
* compatible. External connection metadata lives under state and is never
|
|
12
|
+
* included in Memory Space Packs.
|
|
10
13
|
*/
|
|
11
14
|
export declare class MemoryBodyRegistry {
|
|
12
15
|
readonly runner: MnemonRunner;
|
|
@@ -14,13 +17,30 @@ export declare class MemoryBodyRegistry {
|
|
|
14
17
|
private readonly now;
|
|
15
18
|
readonly directory: string;
|
|
16
19
|
readonly registryPath: string;
|
|
20
|
+
readonly providerRegistryPath: string;
|
|
17
21
|
private bodies;
|
|
22
|
+
private services;
|
|
23
|
+
private serviceEnabled;
|
|
18
24
|
constructor(runner: MnemonRunner, persistent?: boolean, now?: () => Date);
|
|
19
25
|
list(): MemoryBody[];
|
|
20
26
|
active(): MemoryBody[];
|
|
21
27
|
get(id: string): MemoryBody;
|
|
22
|
-
|
|
28
|
+
openVikingConnection(id: string): OpenVikingBodyConnection;
|
|
29
|
+
providerConnection(id: string, expectedProviderId?: MemoryProviderId): MemoryProviderConnection;
|
|
30
|
+
providerServiceConfigured(providerId: MemoryProviderId): boolean;
|
|
31
|
+
providerServiceEnabled(providerId: MemoryProviderId): boolean;
|
|
32
|
+
providerServices(options?: {
|
|
33
|
+
includeSecrets?: boolean;
|
|
34
|
+
}): MemoryProviderServiceCatalog;
|
|
35
|
+
updateProviderService(providerId: MemoryProviderId, settings: MemoryProviderConnection, clearSecrets?: readonly string[], enabled?: boolean): MemoryProviderServiceView;
|
|
36
|
+
resolveProviderService(providerId: MemoryProviderId, settings: MemoryProviderConnection, clearSecrets?: readonly string[]): MemoryProviderConnection;
|
|
37
|
+
/** Atomically replace one provider's local projections after authoritative discovery. */
|
|
38
|
+
syncProviderService(providerId: MemoryProviderId, service: MemoryProviderConnection, discovered: readonly ProviderMemorySpace[]): MemoryProviderServiceView;
|
|
39
|
+
placementCandidates(request: Pick<CreateMemoryBodyRequest, 'connection' | 'providerConnections' | 'openViking'>): MemoryPlacementCandidate[];
|
|
40
|
+
create(request: CreateMemoryBodyRequest, signal?: AbortSignal, placement?: MemoryPlacementDecision): Promise<MemoryBody>;
|
|
23
41
|
update(id: string, request: UpdateMemoryBodyRequest): MemoryBody;
|
|
42
|
+
/** Validate every model-authored update before committing the batch. */
|
|
43
|
+
updateMetadata(updates: readonly MemoryBodyMetadataUpdate[]): MemoryBody[];
|
|
24
44
|
remove(id: string, signal?: AbortSignal): Promise<MemoryBody>;
|
|
25
45
|
setActive(id: string, active: boolean): MemoryBody;
|
|
26
46
|
/** Refresh metadata after an atomic Pack import replaced the data component. */
|
|
@@ -30,4 +50,5 @@ export declare class MemoryBodyRegistry {
|
|
|
30
50
|
private nativeStoreIds;
|
|
31
51
|
private view;
|
|
32
52
|
private save;
|
|
53
|
+
private writeRegistry;
|
|
33
54
|
}
|
package/lib/types/process.d.ts
CHANGED
|
@@ -4,9 +4,12 @@ export interface ProcessResult {
|
|
|
4
4
|
exitCode: number | null;
|
|
5
5
|
}
|
|
6
6
|
export interface ProcessOptions {
|
|
7
|
-
signal?: AbortSignal;
|
|
7
|
+
signal?: AbortSignal | undefined;
|
|
8
8
|
timeoutMs: number;
|
|
9
9
|
maxOutputBytes?: number;
|
|
10
|
+
cwd?: string | undefined;
|
|
11
|
+
env?: NodeJS.ProcessEnv | undefined;
|
|
12
|
+
label?: string | undefined;
|
|
10
13
|
}
|
|
11
14
|
export type ProcessRunner = (command: string, args: readonly string[], options: ProcessOptions) => Promise<ProcessResult>;
|
|
12
15
|
/** Spawn without a shell, with bounded output and cooperative cancellation. */
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { AutomaticMemoryPlacementRequest, MemoryPlacementDecision, MemoryProviderCapabilities, MemoryProviderId } from './shared/contracts.ts';
|
|
2
|
+
export interface MemoryPlacementCandidate {
|
|
3
|
+
id: MemoryProviderId;
|
|
4
|
+
label: string;
|
|
5
|
+
kind: 'local' | 'remote';
|
|
6
|
+
configured: boolean;
|
|
7
|
+
summary: string;
|
|
8
|
+
capabilities: MemoryProviderCapabilities;
|
|
9
|
+
}
|
|
10
|
+
export interface PreparedMemoryPlacement {
|
|
11
|
+
prompt: string;
|
|
12
|
+
candidates: MemoryPlacementCandidate[];
|
|
13
|
+
appliedRules: string[];
|
|
14
|
+
selectorBrief: string;
|
|
15
|
+
}
|
|
16
|
+
export interface LlmMemoryPlacementSelection {
|
|
17
|
+
providerId: string;
|
|
18
|
+
reason: string;
|
|
19
|
+
confidence: string;
|
|
20
|
+
}
|
|
21
|
+
export declare function prepareMemoryPlacement(request: AutomaticMemoryPlacementRequest, candidates: readonly MemoryPlacementCandidate[]): PreparedMemoryPlacement;
|
|
22
|
+
export declare function rulesOnlyPlacement(prepared: PreparedMemoryPlacement, now?: () => Date): MemoryPlacementDecision | undefined;
|
|
23
|
+
export declare function finalizeLlmPlacement(prepared: PreparedMemoryPlacement, selection: LlmMemoryPlacementSelection, delegation: {
|
|
24
|
+
runId: string;
|
|
25
|
+
provider: string;
|
|
26
|
+
}, now?: () => Date): MemoryPlacementDecision;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { JsonValue } from '../contracts.ts';
|
|
2
|
+
import type { MemoryBodyRegistry } from '../memory-bodies.ts';
|
|
3
|
+
import { type ProcessRunner } from '../process.ts';
|
|
4
|
+
import type { Insight, MemoryBody, MemoryGraphSnapshot, MemoryListRequest, MemoryProviderConnection, RememberRequest, SearchRequest } from '../shared/contracts.ts';
|
|
5
|
+
import type { MemoryProviderAdapter, ProviderBodyStatus, ProviderMemorySpace, ProviderSearchResult } from './provider.ts';
|
|
6
|
+
interface ByteRoverProviderOptions {
|
|
7
|
+
process?: ProcessRunner;
|
|
8
|
+
queryTimeoutMs?: number;
|
|
9
|
+
curateTimeoutMs?: number;
|
|
10
|
+
}
|
|
11
|
+
export declare class ByteRoverProvider implements MemoryProviderAdapter {
|
|
12
|
+
private readonly memoryBodies;
|
|
13
|
+
readonly id: "byterover";
|
|
14
|
+
private readonly process;
|
|
15
|
+
private readonly queryTimeoutMs;
|
|
16
|
+
private readonly curateTimeoutMs;
|
|
17
|
+
private readonly statusCache;
|
|
18
|
+
private readonly statusInFlight;
|
|
19
|
+
constructor(memoryBodies: MemoryBodyRegistry, options?: ByteRoverProviderOptions);
|
|
20
|
+
discover(connection: MemoryProviderConnection): Promise<ProviderMemorySpace[]>;
|
|
21
|
+
status(body: MemoryBody, signal?: AbortSignal): Promise<ProviderBodyStatus>;
|
|
22
|
+
invalidateStatus(memoryBodyId?: string): void;
|
|
23
|
+
private checkStatus;
|
|
24
|
+
search(body: MemoryBody, request: SearchRequest, signal?: AbortSignal): Promise<ProviderSearchResult>;
|
|
25
|
+
graph(body: MemoryBody): Promise<MemoryGraphSnapshot>;
|
|
26
|
+
list(body: MemoryBody, request: MemoryListRequest, signal?: AbortSignal): Promise<Insight[]>;
|
|
27
|
+
remember(body: MemoryBody, request: RememberRequest, signal?: AbortSignal): Promise<JsonValue>;
|
|
28
|
+
private connection;
|
|
29
|
+
private run;
|
|
30
|
+
}
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { MemoryProviderConfigField, MemoryProviderConnection, MemoryProviderDescriptor, MemoryProviderId } from '../shared/contracts.ts';
|
|
2
|
+
export declare const MEMORY_PROVIDER_IDS: readonly ["mnemon-native", "openviking", "honcho", "mem0", "hindsight", "holographic", "retaindb", "byterover", "supermemory"];
|
|
3
|
+
export declare const MEMORY_PROVIDER_ID_SET: Set<MemoryProviderId>;
|
|
4
|
+
export declare const MEMORY_PROVIDER_CATALOG: readonly MemoryProviderDescriptor[];
|
|
5
|
+
export declare function memoryProviderDescriptor(id: MemoryProviderId): MemoryProviderDescriptor;
|
|
6
|
+
export declare function isMemoryProviderId(value: unknown): value is MemoryProviderId;
|
|
7
|
+
export declare function providerServiceFields(providerId: MemoryProviderId): MemoryProviderConfigField[];
|
|
8
|
+
export declare function providerMemoryFields(providerId: MemoryProviderId): MemoryProviderConfigField[];
|
|
9
|
+
export declare function splitProviderConnection(providerId: MemoryProviderId, connection: MemoryProviderConnection | undefined): {
|
|
10
|
+
service: MemoryProviderConnection;
|
|
11
|
+
memory: MemoryProviderConnection;
|
|
12
|
+
};
|
|
13
|
+
export declare function normalizeProviderServiceConnection(providerId: MemoryProviderId, input: MemoryProviderConnection | undefined, previous?: MemoryProviderConnection, clearSecrets?: readonly string[]): MemoryProviderConnection;
|
|
14
|
+
export declare function normalizeProviderMemoryConnection(providerId: MemoryProviderId, input: MemoryProviderConnection | undefined, previous?: MemoryProviderConnection): MemoryProviderConnection;
|
|
15
|
+
export declare function normalizeProviderConnection(providerId: MemoryProviderId, input: MemoryProviderConnection | undefined, previous?: MemoryProviderConnection, clearSecrets?: readonly string[]): MemoryProviderConnection;
|
|
16
|
+
export declare function publicScopedProviderConnection(providerId: MemoryProviderId, scope: MemoryProviderConfigField['scope'], connection: MemoryProviderConnection): {
|
|
17
|
+
settings: MemoryProviderConnection;
|
|
18
|
+
configuredSecrets: string[];
|
|
19
|
+
};
|
|
20
|
+
export declare function publicProviderConnection(providerId: MemoryProviderId, connection: MemoryProviderConnection): {
|
|
21
|
+
settings: MemoryProviderConnection;
|
|
22
|
+
configuredSecrets: string[];
|
|
23
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { JsonValue } from '../contracts.ts';
|
|
2
|
+
import type { MemoryBodyRegistry } from '../memory-bodies.ts';
|
|
3
|
+
import type { EdgeType, Insight, MemoryBody, MemoryGraphSnapshot, MemoryListRequest, RememberRequest, SearchRequest } from '../shared/contracts.ts';
|
|
4
|
+
import { HttpMemoryProvider, type HttpProviderOptions } from './http.ts';
|
|
5
|
+
import type { MemoryProviderAdapter, ProviderBodyStatus, ProviderMemorySpace, ProviderSearchResult } from './provider.ts';
|
|
6
|
+
export declare class HindsightProvider extends HttpMemoryProvider implements MemoryProviderAdapter {
|
|
7
|
+
readonly id: "hindsight";
|
|
8
|
+
constructor(memoryBodies: MemoryBodyRegistry, options?: HttpProviderOptions);
|
|
9
|
+
discover(connection: Record<string, string | number | boolean>, signal?: AbortSignal): Promise<ProviderMemorySpace[]>;
|
|
10
|
+
status(body: MemoryBody, signal?: AbortSignal): Promise<ProviderBodyStatus>;
|
|
11
|
+
search(body: MemoryBody, request: SearchRequest, signal?: AbortSignal): Promise<ProviderSearchResult>;
|
|
12
|
+
list(body: MemoryBody, request: MemoryListRequest, signal?: AbortSignal): Promise<Insight[]>;
|
|
13
|
+
graph(body: MemoryBody, signal?: AbortSignal): Promise<MemoryGraphSnapshot>;
|
|
14
|
+
related(body: MemoryBody, id: string, depth: number, _edge?: EdgeType, signal?: AbortSignal): Promise<Insight[]>;
|
|
15
|
+
remember(body: MemoryBody, request: RememberRequest, signal?: AbortSignal): Promise<JsonValue>;
|
|
16
|
+
forget(body: MemoryBody, id: string, signal?: AbortSignal): Promise<JsonValue>;
|
|
17
|
+
private bankPath;
|
|
18
|
+
private headers;
|
|
19
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { JsonValue } from '../contracts.ts';
|
|
2
|
+
import type { MemoryBodyRegistry } from '../memory-bodies.ts';
|
|
3
|
+
import type { Insight, MemoryBody, MemoryGraphSnapshot, MemoryListRequest, MemoryProviderConnection, RememberRequest, SearchRequest } from '../shared/contracts.ts';
|
|
4
|
+
import type { MemoryProviderAdapter, ProviderBodyStatus, ProviderMemorySpace, ProviderSearchResult } from './provider.ts';
|
|
5
|
+
export declare class HolographicProvider implements MemoryProviderAdapter {
|
|
6
|
+
private readonly memoryBodies;
|
|
7
|
+
readonly id: "holographic";
|
|
8
|
+
constructor(memoryBodies: MemoryBodyRegistry);
|
|
9
|
+
discover(connection: MemoryProviderConnection): Promise<ProviderMemorySpace[]>;
|
|
10
|
+
status(body: MemoryBody): Promise<ProviderBodyStatus>;
|
|
11
|
+
search(body: MemoryBody, request: SearchRequest): Promise<ProviderSearchResult>;
|
|
12
|
+
list(body: MemoryBody, request: MemoryListRequest): Promise<Insight[]>;
|
|
13
|
+
graph(body: MemoryBody): Promise<MemoryGraphSnapshot>;
|
|
14
|
+
related(body: MemoryBody, id: string, _depth: number): Promise<Insight[]>;
|
|
15
|
+
remember(body: MemoryBody, request: RememberRequest): Promise<JsonValue>;
|
|
16
|
+
forget(body: MemoryBody, id: string): Promise<JsonValue>;
|
|
17
|
+
private connection;
|
|
18
|
+
private path;
|
|
19
|
+
private load;
|
|
20
|
+
private save;
|
|
21
|
+
private stats;
|
|
22
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { JsonValue } from '../contracts.ts';
|
|
2
|
+
import type { MemoryBodyRegistry } from '../memory-bodies.ts';
|
|
3
|
+
import type { Insight, MemoryBody, MemoryListRequest, RememberRequest, SearchRequest } from '../shared/contracts.ts';
|
|
4
|
+
import { HttpMemoryProvider, type HttpProviderOptions } from './http.ts';
|
|
5
|
+
import type { MemoryProviderAdapter, ProviderBodyStatus, ProviderMemorySpace, ProviderSearchResult } from './provider.ts';
|
|
6
|
+
export declare class HonchoProvider extends HttpMemoryProvider implements MemoryProviderAdapter {
|
|
7
|
+
readonly id: "honcho";
|
|
8
|
+
constructor(memoryBodies: MemoryBodyRegistry, options?: HttpProviderOptions);
|
|
9
|
+
discover(connection: Record<string, string | number | boolean>, signal?: AbortSignal): Promise<ProviderMemorySpace[]>;
|
|
10
|
+
status(body: MemoryBody, signal?: AbortSignal): Promise<ProviderBodyStatus>;
|
|
11
|
+
search(body: MemoryBody, request: SearchRequest, signal?: AbortSignal): Promise<ProviderSearchResult>;
|
|
12
|
+
list(body: MemoryBody, request: MemoryListRequest, signal?: AbortSignal): Promise<Insight[]>;
|
|
13
|
+
remember(body: MemoryBody, request: RememberRequest, signal?: AbortSignal): Promise<JsonValue>;
|
|
14
|
+
forget(body: MemoryBody, id: string, signal?: AbortSignal): Promise<JsonValue>;
|
|
15
|
+
private basePath;
|
|
16
|
+
private scope;
|
|
17
|
+
private headers;
|
|
18
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { JsonValue } from '../contracts.ts';
|
|
2
|
+
import type { MemoryBodyRegistry } from '../memory-bodies.ts';
|
|
3
|
+
import type { Insight, MemoryBody, MemoryGraphSnapshot, MemoryListRequest, MemoryProviderConnection, MemoryProviderId } from '../shared/contracts.ts';
|
|
4
|
+
export interface HttpProviderOptions {
|
|
5
|
+
fetch?: typeof fetch;
|
|
6
|
+
requestTimeoutMs?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface JsonRequestOptions {
|
|
9
|
+
method?: string;
|
|
10
|
+
headers?: HeadersInit;
|
|
11
|
+
json?: JsonValue;
|
|
12
|
+
signal?: AbortSignal | undefined;
|
|
13
|
+
timeoutMs?: number;
|
|
14
|
+
}
|
|
15
|
+
export declare function jsonObject(value: unknown): Record<string, unknown> | undefined;
|
|
16
|
+
export declare function jsonString(value: unknown): string | undefined;
|
|
17
|
+
export declare function jsonNumber(value: unknown): number | undefined;
|
|
18
|
+
export declare function jsonArray(value: unknown): unknown[];
|
|
19
|
+
export declare function firstArray(value: unknown, ...keys: string[]): unknown[];
|
|
20
|
+
/** Shared timeout, cancellation, error, and projection behavior for HTTP providers. */
|
|
21
|
+
export declare abstract class HttpMemoryProvider {
|
|
22
|
+
protected readonly memoryBodies: MemoryBodyRegistry;
|
|
23
|
+
abstract readonly id: MemoryProviderId;
|
|
24
|
+
protected readonly requestFetch: typeof fetch;
|
|
25
|
+
protected readonly requestTimeoutMs: number;
|
|
26
|
+
constructor(memoryBodies: MemoryBodyRegistry, options?: HttpProviderOptions);
|
|
27
|
+
abstract list(body: MemoryBody, request: MemoryListRequest, signal?: AbortSignal): Promise<Insight[]>;
|
|
28
|
+
graph(body: MemoryBody, signal?: AbortSignal): Promise<MemoryGraphSnapshot>;
|
|
29
|
+
protected connection(body: MemoryBody): MemoryProviderConnection;
|
|
30
|
+
protected request(body: MemoryBody, path: string, options?: JsonRequestOptions): Promise<unknown>;
|
|
31
|
+
protected requestConnection(connection: MemoryProviderConnection, path: string, options?: JsonRequestOptions): Promise<unknown>;
|
|
32
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { JsonValue } from '../contracts.ts';
|
|
2
|
+
import type { MemoryBodyRegistry } from '../memory-bodies.ts';
|
|
3
|
+
import type { Insight, MemoryBody, MemoryListRequest, RememberRequest, SearchRequest } from '../shared/contracts.ts';
|
|
4
|
+
import { HttpMemoryProvider, type HttpProviderOptions } from './http.ts';
|
|
5
|
+
import type { MemoryProviderAdapter, ProviderBodyStatus, ProviderMemorySpace, ProviderSearchResult } from './provider.ts';
|
|
6
|
+
export declare class Mem0Provider extends HttpMemoryProvider implements MemoryProviderAdapter {
|
|
7
|
+
readonly id: "mem0";
|
|
8
|
+
constructor(memoryBodies: MemoryBodyRegistry, options?: HttpProviderOptions);
|
|
9
|
+
discover(connection: Record<string, string | number | boolean>, signal?: AbortSignal): Promise<ProviderMemorySpace[]>;
|
|
10
|
+
status(body: MemoryBody, signal?: AbortSignal): Promise<ProviderBodyStatus>;
|
|
11
|
+
search(body: MemoryBody, request: SearchRequest, signal?: AbortSignal): Promise<ProviderSearchResult>;
|
|
12
|
+
list(body: MemoryBody, request: MemoryListRequest, signal?: AbortSignal): Promise<Insight[]>;
|
|
13
|
+
remember(body: MemoryBody, request: RememberRequest, signal?: AbortSignal): Promise<JsonValue>;
|
|
14
|
+
forget(body: MemoryBody, id: string, signal?: AbortSignal): Promise<JsonValue>;
|
|
15
|
+
private filters;
|
|
16
|
+
private headers;
|
|
17
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { JsonValue } from '../contracts.ts';
|
|
2
|
+
import type { MemoryBodyRegistry } from '../memory-bodies.ts';
|
|
3
|
+
import type { Insight, MemoryBody, MemoryGraphSnapshot, MemoryListRequest, MemoryProviderConnection, RememberRequest, SearchRequest } from '../shared/contracts.ts';
|
|
4
|
+
import type { MemoryProviderAdapter, ProviderBodyStatus, ProviderMemorySpace, ProviderSearchResult } from './provider.ts';
|
|
5
|
+
interface OpenVikingProviderOptions {
|
|
6
|
+
fetch?: typeof fetch;
|
|
7
|
+
requestTimeoutMs?: number;
|
|
8
|
+
settlementTimeoutMs?: number;
|
|
9
|
+
pollIntervalMs?: number;
|
|
10
|
+
}
|
|
11
|
+
export declare class OpenVikingProvider implements MemoryProviderAdapter {
|
|
12
|
+
private readonly memoryBodies;
|
|
13
|
+
readonly id: "openviking";
|
|
14
|
+
private readonly requestFetch;
|
|
15
|
+
private readonly requestTimeoutMs;
|
|
16
|
+
private readonly settlementTimeoutMs;
|
|
17
|
+
private readonly pollIntervalMs;
|
|
18
|
+
constructor(memoryBodies: MemoryBodyRegistry, options?: OpenVikingProviderOptions);
|
|
19
|
+
discover(connection: MemoryProviderConnection, signal?: AbortSignal): Promise<ProviderMemorySpace[]>;
|
|
20
|
+
status(body: MemoryBody, signal?: AbortSignal): Promise<ProviderBodyStatus>;
|
|
21
|
+
search(body: MemoryBody, request: SearchRequest, signal?: AbortSignal): Promise<ProviderSearchResult>;
|
|
22
|
+
graph(body: MemoryBody, signal?: AbortSignal): Promise<MemoryGraphSnapshot>;
|
|
23
|
+
list(body: MemoryBody, request: MemoryListRequest, signal?: AbortSignal): Promise<Insight[]>;
|
|
24
|
+
remember(body: MemoryBody, request: RememberRequest, signal?: AbortSignal): Promise<JsonValue>;
|
|
25
|
+
forget(body: MemoryBody, id: string, signal?: AbortSignal): Promise<JsonValue>;
|
|
26
|
+
private connection;
|
|
27
|
+
private settleTask;
|
|
28
|
+
private request;
|
|
29
|
+
private requestConnection;
|
|
30
|
+
}
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { JsonValue } from '../contracts.ts';
|
|
2
|
+
import type { EdgeType, Insight, MemoryBody, MemoryBodyStats, MemoryGraphSnapshot, MemoryListRequest, MemoryProviderConnection, RememberRequest, SearchRequest } from '../shared/contracts.ts';
|
|
3
|
+
export interface ProviderBodyStatus {
|
|
4
|
+
healthy: boolean;
|
|
5
|
+
error?: string;
|
|
6
|
+
stats?: MemoryBodyStats;
|
|
7
|
+
}
|
|
8
|
+
export interface ProviderSearchResult {
|
|
9
|
+
results: Insight[];
|
|
10
|
+
hint?: string;
|
|
11
|
+
}
|
|
12
|
+
/** One provider-owned namespace projected into DSH as a Memory Space. */
|
|
13
|
+
export interface ProviderMemorySpace {
|
|
14
|
+
/** Stable identifier owned by the provider, never a DSH-generated title. */
|
|
15
|
+
externalId: string;
|
|
16
|
+
name: string;
|
|
17
|
+
description: string;
|
|
18
|
+
connection: MemoryProviderConnection;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Third-layer memory data plane. DSH owns routing and lifecycle; adapters own
|
|
22
|
+
* only one body's persistence and retrieval semantics.
|
|
23
|
+
*/
|
|
24
|
+
export interface MemoryProviderAdapter {
|
|
25
|
+
readonly id: MemoryBody['provider']['id'];
|
|
26
|
+
/** Enumerate the complete set of namespaces visible to this service connection. */
|
|
27
|
+
discover?(connection: MemoryProviderConnection, signal?: AbortSignal): Promise<ProviderMemorySpace[]>;
|
|
28
|
+
/** Drop a short-lived health result before an explicit user reconnect. */
|
|
29
|
+
invalidateStatus?(memoryBodyId?: string): void;
|
|
30
|
+
status(body: MemoryBody, signal?: AbortSignal): Promise<ProviderBodyStatus>;
|
|
31
|
+
search(body: MemoryBody, request: SearchRequest, signal?: AbortSignal): Promise<ProviderSearchResult>;
|
|
32
|
+
graph(body: MemoryBody, signal?: AbortSignal): Promise<MemoryGraphSnapshot>;
|
|
33
|
+
list(body: MemoryBody, request: MemoryListRequest, signal?: AbortSignal): Promise<Insight[]>;
|
|
34
|
+
remember(body: MemoryBody, request: RememberRequest, signal?: AbortSignal): Promise<JsonValue>;
|
|
35
|
+
related?(body: MemoryBody, id: string, depth: number, edge?: EdgeType, signal?: AbortSignal): Promise<Insight[]>;
|
|
36
|
+
link?(body: MemoryBody, sourceId: string, targetId: string, type: EdgeType, weight: number, reason?: string, signal?: AbortSignal): Promise<JsonValue>;
|
|
37
|
+
forget?(body: MemoryBody, id: string, signal?: AbortSignal): Promise<JsonValue>;
|
|
38
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { JsonValue } from '../contracts.ts';
|
|
2
|
+
import type { MemoryBodyRegistry } from '../memory-bodies.ts';
|
|
3
|
+
import type { Insight, MemoryBody, MemoryListRequest, RememberRequest, SearchRequest } from '../shared/contracts.ts';
|
|
4
|
+
import { HttpMemoryProvider, type HttpProviderOptions } from './http.ts';
|
|
5
|
+
import type { MemoryProviderAdapter, ProviderBodyStatus, ProviderMemorySpace, ProviderSearchResult } from './provider.ts';
|
|
6
|
+
export declare class RetainDbProvider extends HttpMemoryProvider implements MemoryProviderAdapter {
|
|
7
|
+
readonly id: "retaindb";
|
|
8
|
+
constructor(memoryBodies: MemoryBodyRegistry, options?: HttpProviderOptions);
|
|
9
|
+
discover(connection: Record<string, string | number | boolean>, signal?: AbortSignal): Promise<ProviderMemorySpace[]>;
|
|
10
|
+
status(body: MemoryBody, signal?: AbortSignal): Promise<ProviderBodyStatus>;
|
|
11
|
+
search(body: MemoryBody, request: SearchRequest, signal?: AbortSignal): Promise<ProviderSearchResult>;
|
|
12
|
+
list(body: MemoryBody, request: MemoryListRequest, signal?: AbortSignal): Promise<Insight[]>;
|
|
13
|
+
remember(body: MemoryBody, request: RememberRequest, signal?: AbortSignal): Promise<JsonValue>;
|
|
14
|
+
forget(body: MemoryBody, id: string, signal?: AbortSignal): Promise<JsonValue>;
|
|
15
|
+
private headers;
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { JsonValue } from '../contracts.ts';
|
|
2
|
+
import type { MemoryBodyRegistry } from '../memory-bodies.ts';
|
|
3
|
+
import type { Insight, MemoryBody, MemoryListRequest, RememberRequest, SearchRequest } from '../shared/contracts.ts';
|
|
4
|
+
import { HttpMemoryProvider, type HttpProviderOptions } from './http.ts';
|
|
5
|
+
import type { MemoryProviderAdapter, ProviderBodyStatus, ProviderMemorySpace, ProviderSearchResult } from './provider.ts';
|
|
6
|
+
export declare class SupermemoryProvider extends HttpMemoryProvider implements MemoryProviderAdapter {
|
|
7
|
+
readonly id: "supermemory";
|
|
8
|
+
constructor(memoryBodies: MemoryBodyRegistry, options?: HttpProviderOptions);
|
|
9
|
+
discover(connection: Record<string, string | number | boolean>, signal?: AbortSignal): Promise<ProviderMemorySpace[]>;
|
|
10
|
+
status(body: MemoryBody, signal?: AbortSignal): Promise<ProviderBodyStatus>;
|
|
11
|
+
search(body: MemoryBody, request: SearchRequest, signal?: AbortSignal): Promise<ProviderSearchResult>;
|
|
12
|
+
list(body: MemoryBody, request: MemoryListRequest, signal?: AbortSignal): Promise<Insight[]>;
|
|
13
|
+
remember(body: MemoryBody, request: RememberRequest, signal?: AbortSignal): Promise<JsonValue>;
|
|
14
|
+
forget(body: MemoryBody, id: string, signal?: AbortSignal): Promise<JsonValue>;
|
|
15
|
+
private headers;
|
|
16
|
+
}
|
package/lib/types/rpc.d.ts
CHANGED
|
@@ -11,6 +11,6 @@ type RuntimeInput = MnemonService | LiveMnemonRuntime;
|
|
|
11
11
|
export declare function createReadHandler(input: RuntimeInput, lifecycle?: MnemonLifecycle, runtimeMemory?: RuntimeMemoryController, storage?: StorageScopeInspector, versions?: VersionUpdateManager): HostRpcHandler;
|
|
12
12
|
export declare function createWriteHandler(input: RuntimeInput, lifecycle?: MnemonLifecycle, runtimeMemory?: RuntimeMemoryController, versions?: VersionUpdateManager): HostRpcHandler;
|
|
13
13
|
/** Backup payloads contain private memory and therefore remain loopback-only. */
|
|
14
|
-
export declare function createPackHandler(
|
|
14
|
+
export declare function createPackHandler(input: MnemonPackManager | LiveMnemonRuntime, writeEnabled?: boolean | (() => boolean)): HostRpcHandler;
|
|
15
15
|
/** Read operations are available to trusted Web hosts; local mutations stay loopback-only. */
|
|
16
16
|
export declare function registerRpc(connection: HostConnectionHandle, input: RuntimeInput, lifecycle?: MnemonLifecycle, runtimeMemory?: RuntimeMemoryController, storage?: StorageScopeInspector, packs?: MnemonPackManager, versions?: VersionUpdateManager): void;
|