@xdarkicex/openclaw-memory-libravdb 1.3.5
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 +46 -0
- package/docs/README.md +14 -0
- package/docs/architecture-decisions/README.md +6 -0
- package/docs/architecture-decisions/adr-001-onnx-over-ollama.md +21 -0
- package/docs/architecture-decisions/adr-002-libravdb-over-lancedb.md +19 -0
- package/docs/architecture-decisions/adr-003-convex-gating-over-threshold.md +27 -0
- package/docs/architecture-decisions/adr-004-sidecar-over-native-ts.md +21 -0
- package/docs/architecture.md +188 -0
- package/docs/contributing.md +76 -0
- package/docs/dependencies.md +38 -0
- package/docs/embedding-profiles.md +42 -0
- package/docs/gating.md +329 -0
- package/docs/implementation.md +381 -0
- package/docs/installation.md +272 -0
- package/docs/mathematics.md +695 -0
- package/docs/models.md +63 -0
- package/docs/problem.md +64 -0
- package/docs/security.md +86 -0
- package/openclaw.plugin.json +84 -0
- package/package.json +41 -0
- package/scripts/build-sidecar.sh +30 -0
- package/scripts/postinstall.js +169 -0
- package/scripts/setup.sh +20 -0
- package/scripts/setup.ts +505 -0
- package/scripts/sidecar-release.d.ts +4 -0
- package/scripts/sidecar-release.js +17 -0
- package/sidecar/cmd/inspect_onnx/main.go +105 -0
- package/sidecar/compact/gate.go +273 -0
- package/sidecar/compact/gate_test.go +85 -0
- package/sidecar/compact/summarize.go +345 -0
- package/sidecar/compact/summarize_test.go +319 -0
- package/sidecar/compact/tokens.go +11 -0
- package/sidecar/config/config.go +119 -0
- package/sidecar/config/config_test.go +75 -0
- package/sidecar/embed/engine.go +696 -0
- package/sidecar/embed/engine_test.go +349 -0
- package/sidecar/embed/matryoshka.go +93 -0
- package/sidecar/embed/matryoshka_test.go +150 -0
- package/sidecar/embed/onnx_local.go +319 -0
- package/sidecar/embed/onnx_local_test.go +159 -0
- package/sidecar/embed/profile_contract_test.go +71 -0
- package/sidecar/embed/profile_eval_test.go +923 -0
- package/sidecar/embed/profiles.go +39 -0
- package/sidecar/go.mod +21 -0
- package/sidecar/go.sum +30 -0
- package/sidecar/health/check.go +33 -0
- package/sidecar/health/check_test.go +55 -0
- package/sidecar/main.go +151 -0
- package/sidecar/model/encoder.go +222 -0
- package/sidecar/model/registry.go +262 -0
- package/sidecar/model/registry_test.go +102 -0
- package/sidecar/model/seq2seq.go +133 -0
- package/sidecar/server/rpc.go +343 -0
- package/sidecar/server/rpc_test.go +350 -0
- package/sidecar/server/transport.go +160 -0
- package/sidecar/store/libravdb.go +676 -0
- package/sidecar/store/libravdb_test.go +472 -0
- package/sidecar/summarize/engine.go +360 -0
- package/sidecar/summarize/engine_test.go +148 -0
- package/sidecar/summarize/onnx_local.go +494 -0
- package/sidecar/summarize/onnx_local_test.go +48 -0
- package/sidecar/summarize/profiles.go +52 -0
- package/sidecar/summarize/tokenizer.go +13 -0
- package/sidecar/summarize/tokenizer_hf.go +76 -0
- package/sidecar/summarize/util.go +13 -0
- package/src/cli.ts +205 -0
- package/src/context-engine.ts +195 -0
- package/src/index.ts +27 -0
- package/src/memory-provider.ts +24 -0
- package/src/openclaw-plugin-sdk.d.ts +53 -0
- package/src/plugin-runtime.ts +67 -0
- package/src/recall-cache.ts +34 -0
- package/src/recall-utils.ts +22 -0
- package/src/rpc.ts +84 -0
- package/src/scoring.ts +58 -0
- package/src/sidecar.ts +506 -0
- package/src/tokens.ts +36 -0
- package/src/types.ts +146 -0
- package/tsconfig.json +20 -0
- package/tsconfig.tests.json +12 -0
package/src/types.ts
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
export interface PluginConfig {
|
|
2
|
+
dbPath?: string;
|
|
3
|
+
sidecarPath?: string;
|
|
4
|
+
embeddingRuntimePath?: string;
|
|
5
|
+
embeddingBackend?: "bundled" | "onnx-local" | "custom-local";
|
|
6
|
+
embeddingProfile?: string;
|
|
7
|
+
fallbackProfile?: string;
|
|
8
|
+
embeddingModelPath?: string;
|
|
9
|
+
embeddingTokenizerPath?: string;
|
|
10
|
+
embeddingDimensions?: number;
|
|
11
|
+
embeddingNormalize?: boolean;
|
|
12
|
+
summarizerBackend?: "bundled" | "onnx-local" | "ollama-local" | "custom-local";
|
|
13
|
+
summarizerProfile?: string;
|
|
14
|
+
summarizerRuntimePath?: string;
|
|
15
|
+
summarizerModelPath?: string;
|
|
16
|
+
summarizerTokenizerPath?: string;
|
|
17
|
+
summarizerModel?: string;
|
|
18
|
+
summarizerEndpoint?: string;
|
|
19
|
+
sessionTTL?: number;
|
|
20
|
+
topK?: number;
|
|
21
|
+
alpha?: number;
|
|
22
|
+
beta?: number;
|
|
23
|
+
gamma?: number;
|
|
24
|
+
ingestionGateThreshold?: number;
|
|
25
|
+
gatingWeights?: {
|
|
26
|
+
w1c?: number;
|
|
27
|
+
w2c?: number;
|
|
28
|
+
w3c?: number;
|
|
29
|
+
w1t?: number;
|
|
30
|
+
w2t?: number;
|
|
31
|
+
w3t?: number;
|
|
32
|
+
};
|
|
33
|
+
gatingTechNorm?: number;
|
|
34
|
+
gatingCentroidK?: number;
|
|
35
|
+
compactionQualityWeight?: number;
|
|
36
|
+
recencyLambdaSession?: number;
|
|
37
|
+
recencyLambdaUser?: number;
|
|
38
|
+
recencyLambdaGlobal?: number;
|
|
39
|
+
tokenBudgetFraction?: number;
|
|
40
|
+
compactThreshold?: number;
|
|
41
|
+
ollamaUrl?: string;
|
|
42
|
+
compactModel?: string;
|
|
43
|
+
rpcTimeoutMs?: number;
|
|
44
|
+
maxRetries?: number;
|
|
45
|
+
logLevel?: "debug" | "info" | "warn" | "error";
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export interface GatingResult {
|
|
49
|
+
g: number;
|
|
50
|
+
t: number;
|
|
51
|
+
h: number;
|
|
52
|
+
r: number;
|
|
53
|
+
d: number;
|
|
54
|
+
p: number;
|
|
55
|
+
a: number;
|
|
56
|
+
dtech: number;
|
|
57
|
+
gconv: number;
|
|
58
|
+
gtech: number;
|
|
59
|
+
inputFreq: number;
|
|
60
|
+
memSaturation: number;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export interface MemoryMessage {
|
|
64
|
+
id?: string;
|
|
65
|
+
role: string;
|
|
66
|
+
content: string;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export interface SearchResult {
|
|
70
|
+
id: string;
|
|
71
|
+
score: number;
|
|
72
|
+
text: string;
|
|
73
|
+
metadata: {
|
|
74
|
+
ts?: number;
|
|
75
|
+
sessionId?: string;
|
|
76
|
+
userId?: string;
|
|
77
|
+
role?: string;
|
|
78
|
+
[key: string]: unknown;
|
|
79
|
+
};
|
|
80
|
+
finalScore?: number;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export interface SidecarSocket {
|
|
84
|
+
setEncoding(encoding: string): void;
|
|
85
|
+
on(event: "data", handler: (chunk: string) => void): void;
|
|
86
|
+
on(event: "close", handler: () => void): void;
|
|
87
|
+
once(event: "connect", handler: () => void): void;
|
|
88
|
+
once(event: "error", handler: (error: Error) => void): void;
|
|
89
|
+
write(chunk: string): void;
|
|
90
|
+
destroy(): void;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export interface LoggerLike {
|
|
94
|
+
error(message: string): void;
|
|
95
|
+
info?(message: string): void;
|
|
96
|
+
warn?(message: string): void;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export interface SidecarHandle {
|
|
100
|
+
socket: SidecarSocket;
|
|
101
|
+
isDegraded(): boolean;
|
|
102
|
+
shutdown(): Promise<void>;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export interface RpcCallOptions {
|
|
106
|
+
timeoutMs: number;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export interface RecallCacheEntry<T = unknown> {
|
|
110
|
+
userId: string;
|
|
111
|
+
queryText: string;
|
|
112
|
+
userHits: T[];
|
|
113
|
+
globalHits: T[];
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export interface RecallCache<T = unknown> {
|
|
117
|
+
put(entry: RecallCacheEntry<T>): void;
|
|
118
|
+
get(key: Pick<RecallCacheEntry<T>, "userId" | "queryText">): RecallCacheEntry<T> | undefined;
|
|
119
|
+
take(key: Pick<RecallCacheEntry<T>, "userId" | "queryText">): RecallCacheEntry<T> | undefined;
|
|
120
|
+
clearUser(userId: string): void;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
export interface ContextBootstrapArgs {
|
|
124
|
+
sessionId: string;
|
|
125
|
+
userId: string;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
export interface ContextIngestArgs {
|
|
129
|
+
sessionId: string;
|
|
130
|
+
userId: string;
|
|
131
|
+
message: MemoryMessage;
|
|
132
|
+
isHeartbeat?: boolean;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export interface ContextAssembleArgs {
|
|
136
|
+
sessionId: string;
|
|
137
|
+
userId: string;
|
|
138
|
+
messages: MemoryMessage[];
|
|
139
|
+
tokenBudget: number;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
export interface ContextCompactArgs {
|
|
143
|
+
sessionId: string;
|
|
144
|
+
force?: boolean;
|
|
145
|
+
targetSize?: number;
|
|
146
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2022",
|
|
4
|
+
"module": "NodeNext",
|
|
5
|
+
"moduleResolution": "NodeNext",
|
|
6
|
+
"strict": true,
|
|
7
|
+
"noEmit": true,
|
|
8
|
+
"types": ["node"],
|
|
9
|
+
"typeRoots": ["./.ts-toolchain/node_modules/@types"],
|
|
10
|
+
"skipLibCheck": true,
|
|
11
|
+
"resolveJsonModule": true,
|
|
12
|
+
"allowSyntheticDefaultImports": true
|
|
13
|
+
},
|
|
14
|
+
"include": [
|
|
15
|
+
"src/**/*.ts",
|
|
16
|
+
"scripts/**/*.ts",
|
|
17
|
+
"scripts/**/*.js",
|
|
18
|
+
"test/**/*.ts"
|
|
19
|
+
]
|
|
20
|
+
}
|