@xdarkicex/openclaw-memory-libravdb 1.4.30 → 1.4.32

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 CHANGED
@@ -12,22 +12,44 @@
12
12
  </div>
13
13
 
14
14
  `@xdarkicex/openclaw-memory-libravdb` is a local-first OpenClaw memory plugin
15
- backed by the `libravdbd` daemon. It replaces the lightweight default memory
15
+ backed by the `libravdbd` vector service. It replaces the lightweight default memory
16
16
  path with scoped session, user, and global memory; continuity-aware prompt
17
17
  assembly; durable recall; and sidecar-owned compaction.
18
18
 
19
19
  [Install](./docs/install.md) · [Full installation reference](./docs/installation.md) · [Architecture](./docs/architecture.md) · [Security](./docs/security.md) · [Performance and tuning](./docs/performance-and-tuning.md) · [Contributing](./docs/contributing.md)
20
20
 
21
- New install? Start here: [Install guide](./docs/install.md). Preferred setup on
22
- macOS: install `libravdbd` with Homebrew, install the OpenClaw plugin, then
23
- assign the plugin to the OpenClaw memory slot.
21
+ New install? Start here: [Install guide](./docs/install.md).
24
22
 
25
23
  ## Install
26
24
 
25
+ Install `libravdbd` with your system package manager, then install
26
+ the OpenClaw plugin.
27
+
28
+ **macOS (Homebrew)**
29
+
27
30
  ```bash
28
31
  brew tap xDarkicex/homebrew-openclaw-libravdb-memory
29
32
  brew install libravdbd
30
33
  brew services start libravdbd
34
+ ```
35
+
36
+ **Linux (APT)**
37
+
38
+ ```bash
39
+ sudo apt install libravdbd
40
+ systemctl --user enable --now libravdbd
41
+ ```
42
+
43
+ **Linux (AUR)**
44
+
45
+ ```bash
46
+ yay -S libravdbd-bin
47
+ systemctl --user enable --now libravdbd
48
+ ```
49
+
50
+ **Plugin (all platforms)**
51
+
52
+ ```bash
31
53
  openclaw plugins install @xdarkicex/openclaw-memory-libravdb
32
54
  ```
33
55
 
@@ -51,8 +73,11 @@ Then activate the plugin in `~/.openclaw/openclaw.json`:
51
73
  }
52
74
  ```
53
75
 
54
- Verify the daemon and plugin:
76
+ Verify the service and plugin:
55
77
 
78
+ ```bash
79
+ openclaw memory status
80
+ ```
56
81
 
57
82
  Healthy output should show `Sidecar=running`, stored memory counts, the active
58
83
  gate threshold, and the loaded embedding profile.
@@ -63,7 +88,7 @@ Runtime requirements:
63
88
 
64
89
  - OpenClaw `>= 2026.3.22`
65
90
  - Node.js `>= 22`
66
- - a separately installed `libravdbd` daemon
91
+ - a separately installed `libravdbd` service
67
92
 
68
93
  Compatibility note:
69
94
 
@@ -71,11 +96,11 @@ Compatibility note:
71
96
 
72
97
  Default endpoints:
73
98
 
74
- - macOS/Linux user-local daemon: `unix:$HOME/.clawdb/run/libravdb.sock`
75
- - Homebrew daemon on Apple Silicon: `unix:/opt/homebrew/var/clawdb/run/libravdb.sock`
76
- - Windows daemon: `tcp:127.0.0.1:37421`
99
+ - macOS/Linux user-local service: `unix:$HOME/.libravdbd/run/libravdb.sock`
100
+ - Homebrew service on Apple Silicon: `unix:/opt/homebrew/var/libravdbd/run/libravdb.sock`
101
+ - Windows service: `tcp:127.0.0.1:37421`
77
102
 
78
- If your daemon runs elsewhere, set `sidecarPath`:
103
+ If your service runs elsewhere, set `sidecarPath`:
79
104
 
80
105
  ```json
81
106
  {
@@ -108,14 +133,14 @@ If your daemon runs elsewhere, set `sidecarPath`:
108
133
  newest working context.
109
134
  - **Local-first inference** - uses local embedding and compaction paths by
110
135
  default, with optional external summarizer configuration.
111
- - **Explicit daemon lifecycle** - the npm/OpenClaw package stays connect-only;
136
+ - **Explicit service lifecycle** - the npm/OpenClaw package stays connect-only;
112
137
  `libravdbd` is installed and supervised separately.
113
138
 
114
139
  ## Security Defaults
115
140
 
116
141
  Stored memory is treated as untrusted historical context. Retrieved memory is
117
142
  framed before it reaches the downstream model, memory collections are scoped by
118
- session/user/global namespace, and daemon installation is outside the npm plugin
143
+ session/user/global namespace, and service installation is outside the npm plugin
119
144
  package.
120
145
 
121
146
  Before exposing OpenClaw over remote channels, read [Security](./docs/security.md).
@@ -123,7 +148,7 @@ Before exposing OpenClaw over remote channels, read [Security](./docs/security.m
123
148
  ## Operator Quick Refs
124
149
 
125
150
  ```bash
126
- openclaw memory status
151
+ openclaw memory status [--deep] [--json]
127
152
  openclaw memory index --force
128
153
  openclaw memory search "prior context"
129
154
  openclaw memory export --user-id <userId>
@@ -132,17 +157,142 @@ openclaw memory journal --limit 50
132
157
  openclaw memory dream-promote --user-id <userId> --dream-file /path/to/DREAMS.md
133
158
  ```
134
159
 
135
- Use [Install](./docs/install.md) for daemon lifecycle commands and
160
+ Use [Install](./docs/install.md) for service lifecycle commands and
136
161
  [Uninstall](./docs/uninstall.md) for safe shutdown and removal.
137
162
 
163
+ ## Configuration Reference
164
+
165
+ All configuration keys are optional.
166
+
167
+ If you do not have a GPU available, setting `onnxDevice` to `"cpu"` is
168
+ recommended to avoid startup failures from missing GPU/NPU providers,
169
+ but this is also optional — the service auto-detects and falls back to
170
+ CPU when a provider is unavailable.
171
+
172
+ ### Connection
173
+
174
+ | Key | Type | Default | Notes |
175
+ |---|---|---|---|
176
+ | `sidecarPath` | string | `auto` | `"auto"` probes standard socket paths; set `unix:/path` or `tcp:host:port` to override |
177
+ | `grpcEndpoint` | string | — | Optional gRPC kernel endpoint for hosts using the gRPC kernel transport |
178
+ | `rpcTimeoutMs` | number | `30000` | Per-call timeout for service RPC (ms) |
179
+ | `dbPath` | string | auto-named | Explicit DB path; when set bypasses model-specific naming |
180
+
181
+ ### Embedding
182
+
183
+ | Key | Type | Default | Notes |
184
+ |---|---|---|---|
185
+ | `embeddingProfile` | string | `nomic-embed-text-v1.5` | Primary embedding model |
186
+ | `fallbackProfile` | string | `bge-small-en-v1.5` | Fallback when primary model fails dimension checks |
187
+ | `embeddingBackend` | string | — | `bundled`, `onnx-local`, or `custom-local` |
188
+ | `onnxDevice` | string | `auto` | ONNX execution provider: `auto`, `cpu`, `coreml` (macOS), `cuda` (Linux/Windows), `directml` (Windows), `openvino` (Linux) |
189
+ | `embeddingRuntimePath` | string | — | Path to ONNX runtime library (maps to `LIBRAVDB_ONNX_RUNTIME`) |
190
+ | `embeddingModelPath` | string | — | Path to custom embedding model `.onnx` file |
191
+ | `embeddingTokenizerPath` | string | — | Path to custom tokenizer file |
192
+ | `embeddingDimensions` | number | — | Embedding dimension override |
193
+ | `embeddingNormalize` | boolean | — | Enable embedding normalization |
194
+
195
+ ### Retrieval
196
+
197
+ | Key | Type | Default | Notes |
198
+ |---|---|---|---|
199
+ | `topK` | number | — | Max results per search |
200
+ | `alpha` | number | — | Semantic similarity weight |
201
+ | `beta` | number | — | Recency weight |
202
+ | `gamma` | number | — | Summary quality weight |
203
+ | `crossSessionRecall` | boolean | `true` | When `false`, only session-scoped memories are retrieved |
204
+ | `useSessionRecallProjection` | boolean | — | Use `session_recall` collection instead of `session` |
205
+ | `useSessionSummarySearchExperiment` | boolean | — | Use `session_summary` collection for search |
206
+
207
+ ### Ingestion gating
208
+
209
+ Gating thresholds and scoring weights are owned by the vector service and configured via
210
+ service environment variables. See the service documentation for tuning details.
211
+
212
+ The plugin exposes `ingestionGateThreshold` for host-side gating decisions:
213
+
214
+ | Key | Type | Default | Notes |
215
+ |---|---|---|---|
216
+ | `ingestionGateThreshold` | number | `0.35` | Minimum semantic relevance score used by the plugin host for ingestion gating |
217
+
218
+ ### Compaction
219
+
220
+ | Key | Type | Default | Notes |
221
+ |---|---|---|---|
222
+ | `compactThreshold` | number | — | Absolute token threshold for forced compaction |
223
+ | `compactionThresholdFraction` | number | `0.8` | Dynamic trigger as fraction of active token budget |
224
+ | `compactSessionTokenBudget` | number | `2000` | Auto-compact when session exceeds this many tokens since last compaction; `0` disables |
225
+ | `compactionQualityWeight` | number | `0.5` | How much summary confidence affects retrieval score (0 = ignore, 1 = full suppression) |
226
+
227
+ ### Summarizer
228
+
229
+ | Key | Type | Default | Notes |
230
+ |---|---|---|---|
231
+ | `summarizerBackend` | string | — | `bundled`, `onnx-local`, `ollama-local`, or `custom-local` |
232
+ | `summarizerProfile` | string | — | Summarizer model profile |
233
+ | `summarizerModel` | string | — | Model name for summarization |
234
+ | `summarizerModelPath` | string | — | Path to summarizer model file |
235
+ | `summarizerTokenizerPath` | string | — | Path to summarizer tokenizer file |
236
+ | `summarizerRuntimePath` | string | — | Path to summarizer ONNX runtime |
237
+ | `summarizerEndpoint` | string | — | External summarizer endpoint URL |
238
+ | `ollamaUrl` | string | — | Ollama base URL (populates `summarizerEndpoint` when unset) |
239
+ | `compactModel` | string | — | Model to use for compaction summaries (populates `summarizerModel` when unset) |
240
+
241
+ ### Identity
242
+
243
+ | Key | Type | Default | Notes |
244
+ |---|---|---|---|
245
+ | `userId` | string | auto-derived | Stable user identity for cross-session durable memory |
246
+ | `identityPath` | string | `$OPENCLAW_STATE_DIR/libravdb-identity.json` | Custom path for the auto-derived identity file |
247
+
248
+ ### Markdown ingestion
249
+
250
+ | Key | Type | Default | Notes |
251
+ |---|---|---|---|
252
+ | `markdownIngestionEnabled` | boolean | `false` | Watch markdown roots for changes |
253
+ | `markdownIngestionRoots` | string[] | — | Directories to watch |
254
+ | `markdownIngestionInclude` | string[] | — | Glob patterns to include |
255
+ | `markdownIngestionExclude` | string[] | — | Glob patterns to exclude |
256
+ | `markdownIngestionDebounceMs` | number | `150` | Debounce window for file change events |
257
+ | `markdownIngestionObsidianEnabled` | boolean | `false` | Watch Obsidian vault roots |
258
+ | `markdownIngestionObsidianRoots` | string[] | — | Obsidian vault directories |
259
+ | `markdownIngestionObsidianInclude` | string[] | — | Obsidian glob include patterns |
260
+ | `markdownIngestionObsidianExclude` | string[] | — | Obsidian glob exclude patterns |
261
+ | `markdownIngestionObsidianDebounceMs` | number | `150` | Obsidian debounce window |
262
+
263
+ ### Dream promotion
264
+
265
+ | Key | Type | Default | Notes |
266
+ |---|---|---|---|
267
+ | `dreamPromotionEnabled` | boolean | `false` | Enable dream diary promotion |
268
+ | `dreamPromotionDiaryPath` | string | — | Path to dream diary markdown file |
269
+ | `dreamPromotionUserId` | string | — | User ID for dream collection scoping |
270
+ | `dreamPromotionDebounceMs` | number | `150` | Debounce window for dream diary changes |
271
+
272
+ ### Misc
273
+
274
+ | Key | Type | Default | Notes |
275
+ |---|---|---|---|
276
+ | `sessionTTL` | number | — | Session TTL in seconds |
277
+ | `recencyLambdaSession` | number | — | Session recency decay factor |
278
+ | `recencyLambdaUser` | number | — | User recency decay factor |
279
+ | `recencyLambdaGlobal` | number | — | Global recency decay factor |
280
+ | `tokenBudgetFraction` | number | — | Fraction of host token budget to use for memory context |
281
+ | `maxRetries` | number | — | Max RPC retries |
282
+ | `logLevel` | string | — | Log level override |
283
+ | `lifecycleJournalMaxEntries` | number | `500` | Max lifecycle journal entries |
284
+ | `authoredHardBudgetFraction` | number | — | Token budget fraction for hard-authored recall (0–1) |
285
+ | `authoredSoftBudgetFraction` | number | — | Token budget fraction for soft-authored recall (0–1) |
286
+ | `elevatedGuidanceBudgetFraction` | number | — | Token budget fraction for elevated guidance recall (0–1) |
287
+
138
288
  ## Optional Features
139
289
 
140
290
  - **Markdown ingestion** watches OpenClaw-owned markdown roots or Obsidian vaults
141
291
  and syncs eligible notes into memory. See [Features](./docs/features.md).
142
292
  - **Dream promotion** promotes vetted dream diary bullets into an isolated
143
293
  `dream:{userId}` collection. See [Features](./docs/features.md).
144
- - **Embedding profiles** expose local model metadata defaults for MiniLM and
145
- Nomic. See [Embedding profiles](./docs/embedding-profiles.md).
294
+ - **Embedding profiles** default to `nomic-embed-text-v1.5` with `bge-small-en-v1.5`
295
+ fallback. See [Embedding profiles](./docs/embedding-profiles.md).
146
296
 
147
297
  ## Docs By Goal
148
298
 
@@ -162,8 +312,8 @@ bash scripts/build-daemon.sh
162
312
  ```
163
313
 
164
314
  `scripts/build-daemon.sh` prepares `.daemon-bin/libravdbd` for local plugin
165
- testing when you have a published daemon binary, a Homebrew daemon, or a local
166
- daemon checkout. For the full source workflow, read [Development](./docs/development.md).
315
+ testing when you have a published service binary, a Homebrew service, or a local
316
+ service checkout. For the full source workflow, read [Development](./docs/development.md).
167
317
 
168
318
  ## Runtime Facts
169
319
 
@@ -171,6 +321,6 @@ daemon checkout. For the full source workflow, read [Development](./docs/develop
171
321
  - OpenClaw plugin id: `libravdb-memory`
172
322
  - plugin kind: `memory`, `context-engine`
173
323
  - minimum OpenClaw host version: `>= 2026.3.22`
174
- - default data path: `$HOME/.clawdb/data.libravdb`
175
- - default macOS/Linux endpoint: `unix:$HOME/.clawdb/run/libravdb.sock`
324
+ - default data path: `$HOME/.libravdbd/data_nomic-embed-text-v1_5.libravdb`
325
+ - default macOS/Linux endpoint: `unix:$HOME/.libravdbd/run/libravdb.sock`
176
326
  - default Windows endpoint: `tcp:127.0.0.1:37421`
package/dist/sidecar.js CHANGED
@@ -342,11 +342,11 @@ export function defaultEndpoint(platform = process.platform, homeDir = os.homedi
342
342
  const sockName = "libravdb.sock";
343
343
  const candidateDirs = [
344
344
  // User-local (npm plugin convention)
345
- homeDir?.trim() ? path.join(homeDir, ".clawdb", "run") : null,
345
+ homeDir?.trim() ? path.join(homeDir, ".libravdbd", "run") : null,
346
346
  // Homebrew (Apple Silicon) — matches the Homebrew formula LaunchAgent
347
- "/opt/homebrew/var/clawdb/run",
347
+ "/opt/homebrew/var/libravdbd/run",
348
348
  // Homebrew (Intel Mac) / manual Linux installs
349
- "/usr/local/var/clawdb/run",
349
+ "/usr/local/var/libravdbd/run",
350
350
  ].filter((d) => d !== null);
351
351
  for (const dir of candidateDirs) {
352
352
  const sockPath = path.join(dir, sockName);
@@ -361,8 +361,8 @@ export function defaultEndpoint(platform = process.platform, homeDir = os.homedi
361
361
  }
362
362
  // Fallback to the original user-local path so error messages stay familiar.
363
363
  const baseDir = homeDir?.trim()
364
- ? path.join(homeDir, ".clawdb", "run")
365
- : path.join(".", ".clawdb", "run");
364
+ ? path.join(homeDir, ".libravdbd", "run")
365
+ : path.join(".", ".libravdbd", "run");
366
366
  return `unix:${path.join(baseDir, sockName)}`;
367
367
  }
368
368
  export function buildSidecarEnv(cfg) {
@@ -424,33 +424,6 @@ export function buildSidecarEnv(cfg) {
424
424
  if (cfg.compactModel && !env.LIBRAVDB_SUMMARIZER_MODEL) {
425
425
  env.LIBRAVDB_SUMMARIZER_MODEL = cfg.compactModel;
426
426
  }
427
- if (cfg.gatingWeights?.w1c != null) {
428
- env.LIBRAVDB_GATING_W1C = String(cfg.gatingWeights.w1c);
429
- }
430
- if (cfg.gatingWeights?.w2c != null) {
431
- env.LIBRAVDB_GATING_W2C = String(cfg.gatingWeights.w2c);
432
- }
433
- if (cfg.gatingWeights?.w3c != null) {
434
- env.LIBRAVDB_GATING_W3C = String(cfg.gatingWeights.w3c);
435
- }
436
- if (cfg.gatingWeights?.w1t != null) {
437
- env.LIBRAVDB_GATING_W1T = String(cfg.gatingWeights.w1t);
438
- }
439
- if (cfg.gatingWeights?.w2t != null) {
440
- env.LIBRAVDB_GATING_W2T = String(cfg.gatingWeights.w2t);
441
- }
442
- if (cfg.gatingWeights?.w3t != null) {
443
- env.LIBRAVDB_GATING_W3T = String(cfg.gatingWeights.w3t);
444
- }
445
- if (typeof cfg.gatingTechNorm === "number" && cfg.gatingTechNorm > 0) {
446
- env.LIBRAVDB_GATING_TECH_NORM = String(cfg.gatingTechNorm);
447
- }
448
- if (typeof cfg.ingestionGateThreshold === "number" && cfg.ingestionGateThreshold >= 0) {
449
- env.LIBRAVDB_GATING_THRESHOLD = String(cfg.ingestionGateThreshold);
450
- }
451
- if (typeof cfg.gatingCentroidK === "number" && cfg.gatingCentroidK > 0) {
452
- env.LIBRAVDB_GATING_CENTROID_K = String(cfg.gatingCentroidK);
453
- }
454
427
  if (typeof cfg.lifecycleJournalMaxEntries === "number" && cfg.lifecycleJournalMaxEntries > 0) {
455
428
  env.LIBRAVDB_LIFECYCLE_JOURNAL_MAX_ENTRIES = String(cfg.lifecycleJournalMaxEntries);
456
429
  }
package/dist/types.d.ts CHANGED
@@ -52,16 +52,6 @@ export interface PluginConfig {
52
52
  dreamPromotionDiaryPath?: string;
53
53
  dreamPromotionUserId?: string;
54
54
  dreamPromotionDebounceMs?: number;
55
- gatingWeights?: {
56
- w1c?: number;
57
- w2c?: number;
58
- w3c?: number;
59
- w1t?: number;
60
- w2t?: number;
61
- w3t?: number;
62
- };
63
- gatingTechNorm?: number;
64
- gatingCentroidK?: number;
65
55
  lifecycleJournalMaxEntries?: number;
66
56
  compactionQualityWeight?: number;
67
57
  recencyLambdaSession?: number;
@@ -1,33 +1,32 @@
1
1
  # Embedding Profiles
2
2
 
3
- The plugin now supports a lightweight `embeddingProfile` setting for named local model metadata defaults.
3
+ The plugin uses `embeddingProfile` for named local model metadata defaults.
4
4
 
5
- Default selection baseline as of `2026-03-28`:
5
+ Default selection baseline:
6
6
 
7
- - default embedding profile: `all-minilm-l6-v2`
8
- - bundled fallback profile: `all-minilm-l6-v2`
7
+ - default embedding profile: `nomic-embed-text-v1.5`
8
+ - bundled fallback profile: `bge-small-en-v1.5`
9
9
 
10
10
  Why:
11
11
 
12
- - MiniLM keeps the local LongMemEval retrieval slice inside the target memory envelope on macOS.
13
- - Nomic remains available as an explicit opt-in profile for long-context experiments.
14
- - Nomic ONNX on macOS is fragile with CoreML execution and can trigger multi-GB RSS, so it is no longer the safe bundled default.
12
+ - Nomic is the default because its Matryoshka-trained embeddings deliver significantly higher retrieval accuracy than MiniLM, with principled dimensionality tiering (`64d → 256d → 768d`) that lets the daemon trade memory for precision without re-embedding.
13
+ - bge-small-en-v1.5 is the fallback for resource-constrained systems and is automatically selected when the primary model's dimensions do not match the active collection.
15
14
  - Intel Macs without reliable Metal/MPS support should set `onnxDevice: "cpu"` to force CPU ONNX execution and bypass CoreML.
16
15
 
17
16
  Current shipped profile names:
18
17
 
19
- - `all-minilm-l6-v2`
20
- - family: `all-minilm-l6-v2`
21
- - dimensions: `384`
22
- - normalize: `true`
23
- - max context tokens: `128`
24
-
25
18
  - `nomic-embed-text-v1.5`
26
19
  - family: `nomic-embed-text-v1.5`
27
20
  - dimensions: `768`
28
21
  - normalize: `true`
29
22
  - max context tokens: `8192`
30
23
 
24
+ - `bge-small-en-v1.5`
25
+ - family: `bge-small-en-v1.5`
26
+ - dimensions: `384`
27
+ - normalize: `true`
28
+ - max context tokens: `512`
29
+
31
30
  How it works:
32
31
 
33
32
  - `embeddingProfile` supplies metadata defaults like family, dimensions, and normalize behavior.
@@ -38,6 +37,6 @@ How it works:
38
37
 
39
38
  Recommended usage:
40
39
 
41
- - `bundled` for the shipped default path, which now prefers MiniLM for local stability.
42
- - `onnx-local` plus `embeddingProfile` when a power user wants a known model family like Nomic with local assets.
40
+ - `bundled` for the shipped default path, which uses `nomic-embed-text-v1.5`.
41
+ - `onnx-local` plus `embeddingProfile` when a power user wants a known model family with local assets.
43
42
  - treat remote/Ollama providers as future separate backend types, not as overloads of `custom-local`.
package/docs/install.md CHANGED
@@ -63,7 +63,7 @@ If you run the daemon on a non-default endpoint, add a plugin config:
63
63
  "libravdb-memory": {
64
64
  "enabled": true,
65
65
  "config": {
66
- "sidecarPath": "unix:/Users/<you>/.clawdb/run/libravdb.sock"
66
+ "sidecarPath": "unix:/Users/<you>/.libravdbd/run/libravdb.sock"
67
67
  }
68
68
  }
69
69
  }
@@ -74,10 +74,10 @@ If you run the daemon on a non-default endpoint, add a plugin config:
74
74
  When `sidecarPath` is set to `"auto"`, the plugin resolves endpoints in this order on macOS/Linux:
75
75
 
76
76
  1. `LIBRAVDB_RPC_ENDPOINT` if it is set to a valid daemon endpoint
77
- 2. `$HOME/.clawdb/run/libravdb.sock` if it exists
78
- 3. `/opt/homebrew/var/clawdb/run/libravdb.sock` if it exists
79
- 4. `/usr/local/var/clawdb/run/libravdb.sock` if it exists
80
- 5. fallback to `$HOME/.clawdb/run/libravdb.sock`
77
+ 2. `$HOME/.libravdbd/run/libravdb.sock` if it exists
78
+ 3. `/opt/homebrew/var/libravdbd/run/libravdb.sock` if it exists
79
+ 4. `/usr/local/var/libravdbd/run/libravdb.sock` if it exists
80
+ 5. fallback to `$HOME/.libravdbd/run/libravdb.sock`
81
81
 
82
82
  ## Sidecar Daemon Install
83
83
 
@@ -85,13 +85,15 @@ The daemon owns the local database, embeddings, and JSON-RPC endpoint.
85
85
 
86
86
  Default endpoints:
87
87
 
88
- - Homebrew on macOS: `unix:/opt/homebrew/var/clawdb/run/libravdb.sock`
89
- - macOS/Linux user-local installs: `unix:$HOME/.clawdb/run/libravdb.sock`
88
+ - Homebrew on macOS (Apple Silicon): `unix:/opt/homebrew/var/libravdbd/run/libravdb.sock`
89
+ - Homebrew on macOS (Intel): `unix:/usr/local/var/libravdbd/run/libravdb.sock`
90
+ - macOS/Linux user-local installs: `unix:$HOME/.libravdbd/run/libravdb.sock`
90
91
  - Windows: `tcp:127.0.0.1:37421`
91
92
 
92
93
  Default data path:
93
94
 
94
- - macOS/Linux/Windows user installs: `$HOME/.clawdb/data.libravdb`
95
+ - macOS/Linux user installs: `$HOME/.libravdbd/data_nomic-embed-text-v1_5.libravdb`
96
+ - Windows user installs: `%USERPROFILE%\.libravdbd\data_nomic-embed-text-v1_5.libravdb`
95
97
 
96
98
  ### Homebrew
97
99
 
@@ -188,5 +190,5 @@ Healthy output should show that:
188
190
 
189
191
  If OpenClaw cannot reach the daemon, verify the endpoint first:
190
192
 
191
- - macOS/Linux default: `unix:$HOME/.clawdb/run/libravdb.sock`
193
+ - macOS/Linux default: `unix:$HOME/.libravdbd/run/libravdb.sock`
192
194
  - Windows default: `tcp:127.0.0.1:37421`
@@ -87,7 +87,7 @@ If the daemon uses a non-default endpoint, add `sidecarPath`:
87
87
  "libravdb-memory": {
88
88
  "enabled": true,
89
89
  "config": {
90
- "sidecarPath": "unix:/Users/<you>/.clawdb/run/libravdb.sock"
90
+ "sidecarPath": "unix:/Users/<you>/.libravdbd/run/libravdb.sock"
91
91
  }
92
92
  }
93
93
  }
@@ -98,23 +98,23 @@ If the daemon uses a non-default endpoint, add `sidecarPath`:
98
98
  When `sidecarPath` is `"auto"`, macOS/Linux endpoint resolution checks:
99
99
 
100
100
  1. `LIBRAVDB_RPC_ENDPOINT`
101
- 2. `$HOME/.clawdb/run/libravdb.sock`
102
- 3. `/opt/homebrew/var/clawdb/run/libravdb.sock`
103
- 4. `/usr/local/var/clawdb/run/libravdb.sock`
104
- 5. fallback to `$HOME/.clawdb/run/libravdb.sock`
101
+ 2. `$HOME/.libravdbd/run/libravdb.sock`
102
+ 3. `/opt/homebrew/var/libravdbd/run/libravdb.sock`
103
+ 4. `/usr/local/var/libravdbd/run/libravdb.sock`
104
+ 5. fallback to `$HOME/.libravdbd/run/libravdb.sock`
105
105
 
106
106
  ## Default Paths
107
107
 
108
108
  | Platform | Default endpoint |
109
109
  |---|---|
110
- | macOS/Linux user-local | `unix:$HOME/.clawdb/run/libravdb.sock` |
111
- | macOS Homebrew Apple Silicon | `unix:/opt/homebrew/var/clawdb/run/libravdb.sock` |
110
+ | macOS/Linux user-local | `unix:$HOME/.libravdbd/run/libravdb.sock` |
111
+ | macOS Homebrew Apple Silicon | `unix:/opt/homebrew/var/libravdbd/run/libravdb.sock` |
112
112
  | Windows | `tcp:127.0.0.1:37421` |
113
113
 
114
114
  Default data path:
115
115
 
116
116
  ```text
117
- $HOME/.clawdb/data.libravdb
117
+ $HOME/.libravdbd/data_nomic-embed-text-v1_5.libravdb
118
118
  ```
119
119
 
120
120
  ## Verification
@@ -135,7 +135,7 @@ Expected output shape:
135
135
  │ Lifecycle hints │ 0 │
136
136
  │ Gate threshold │ 0.35 │
137
137
  │ Abstractive model │ ready | not provisioned │
138
- │ Embedding profile │ all-minilm-l6-v2
138
+ │ Embedding profile │ nomic-embed-text-v1.5
139
139
  │ Message │ ok │
140
140
  └────────────────────┴──────────────────────────────┘
141
141
  ```
package/docs/models.md CHANGED
@@ -20,16 +20,15 @@ latency and offline operation are part of the product contract.
20
20
 
21
21
  ## Default And Optional Embedding Profiles
22
22
 
23
- The current safe default profile is `all-minilm-l6-v2`.
23
+ The default profile is `nomic-embed-text-v1.5`. Nomic was chosen as the default
24
+ because its Matryoshka-trained embeddings deliver significantly higher retrieval
25
+ accuracy than MiniLM, with principled dimensionality tiering (`64d → 256d →
26
+ 768d`) that lets the daemon trade memory for precision without re-embedding.
24
27
 
25
- MiniLM is the default because it keeps local retrieval within the target memory
26
- envelope on macOS and is less fragile with ONNX Runtime execution than larger
27
- profiles.
28
-
29
- `nomic-embed-text-v1.5` remains available as an explicit opt-in profile for
30
- long-context retrieval experiments. Nomic's Matryoshka training makes
31
- `64d -> 256d -> 768d` tiering principled rather than arbitrary truncation, but
32
- its larger footprint makes it a less conservative default.
28
+ `bge-small-en-v1.5` is the fallback profile. It has a smaller disk and memory
29
+ footprint than Nomic and is automatically selected when the primary model's
30
+ dimensions do not match the active collection. Operators on resource-constrained
31
+ systems can also set it as the primary profile for lighter local inference.
33
32
 
34
33
  For exact profile metadata, read [Embedding profiles](./embedding-profiles.md).
35
34
 
@@ -46,8 +45,8 @@ generative models would increase latency and operational complexity.
46
45
 
47
46
  | Model/profile | Role |
48
47
  |---|---|
49
- | `all-minilm-l6-v2` | Default lightweight embedding profile. |
50
- | `nomic-embed-text-v1.5` | Opt-in long-context embedding profile. |
48
+ | `nomic-embed-text-v1.5` | Default embedding profile — high-accuracy Matryoshka embeddings. |
49
+ | `bge-small-en-v1.5` | Fallback embedding profile — lighter footprint for constrained systems. |
51
50
  | T5-small | Optional local abstractive compaction summarizer. |
52
51
 
53
52
  External summarizer endpoints, such as Ollama, are optional. They are not part
package/docs/security.md CHANGED
@@ -27,7 +27,7 @@ Current implementation facts:
27
27
  - the published plugin manifest does not register `openclaw.setup`
28
28
  - the published plugin source contains no direct `child_process` usage
29
29
  - the plugin connects only to a configured local endpoint such as
30
- `unix:/Users/<you>/.clawdb/run/libravdb.sock` or `tcp:127.0.0.1:37421`
30
+ `unix:/Users/<you>/.libravdbd/run/libravdb.sock` or `tcp:127.0.0.1:37421`
31
31
  - daemon installation and lifecycle are explicit user or operator actions
32
32
 
33
33
  The daemon distribution surface should be evaluated separately from the plugin
package/docs/uninstall.md CHANGED
@@ -84,8 +84,8 @@ Only do this if you want to permanently remove stored LibraVDB memory.
84
84
 
85
85
  Common local state:
86
86
 
87
- - socket directory: `~/.clawdb/run/`
88
- - database file: `~/.clawdb/data.libravdb`
87
+ - socket directory: `~/.libravdbd/run/`
88
+ - database file: `~/.libravdbd/data_nomic-embed-text-v1_5.libravdb`
89
89
 
90
90
  If you configured a custom Unix socket endpoint in `sidecarPath`, remove that
91
91
  socket path or containing directory if applicable. If you configured `dbPath`,
@@ -2,7 +2,7 @@
2
2
  "id": "libravdb-memory",
3
3
  "name": "LibraVDB Memory",
4
4
  "description": "Persistent vector memory with three-tier hybrid scoring",
5
- "version": "1.4.30",
5
+ "version": "1.4.32",
6
6
  "kind": [
7
7
  "memory",
8
8
  "context-engine"
@@ -85,11 +85,11 @@
85
85
  },
86
86
  "embeddingProfile": {
87
87
  "type": "string",
88
- "default": "all-minilm-l6-v2"
88
+ "default": "nomic-embed-text-v1.5"
89
89
  },
90
90
  "fallbackProfile": {
91
91
  "type": "string",
92
- "default": "all-minilm-l6-v2"
92
+ "default": "bge-small-en-v1.5"
93
93
  },
94
94
  "embeddingModelPath": {
95
95
  "type": "string"
@@ -215,52 +215,6 @@
215
215
  "type": "number",
216
216
  "default": 150
217
217
  },
218
- "gatingWeights": {
219
- "type": "object",
220
- "additionalProperties": false,
221
- "default": {
222
- "w1c": 0.35,
223
- "w2c": 0.4,
224
- "w3c": 0.25,
225
- "w1t": 0.4,
226
- "w2t": 0.35,
227
- "w3t": 0.25
228
- },
229
- "properties": {
230
- "w1c": {
231
- "type": "number",
232
- "default": 0.35
233
- },
234
- "w2c": {
235
- "type": "number",
236
- "default": 0.4
237
- },
238
- "w3c": {
239
- "type": "number",
240
- "default": 0.25
241
- },
242
- "w1t": {
243
- "type": "number",
244
- "default": 0.4
245
- },
246
- "w2t": {
247
- "type": "number",
248
- "default": 0.35
249
- },
250
- "w3t": {
251
- "type": "number",
252
- "default": 0.25
253
- }
254
- }
255
- },
256
- "gatingTechNorm": {
257
- "type": "number",
258
- "default": 1.5
259
- },
260
- "gatingCentroidK": {
261
- "type": "number",
262
- "default": 10
263
- },
264
218
  "lifecycleJournalMaxEntries": {
265
219
  "type": "number",
266
220
  "default": 500
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xdarkicex/openclaw-memory-libravdb",
3
- "version": "1.4.30",
3
+ "version": "1.4.32",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",