wolbarg 0.4.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/README.md +226 -88
- package/dist/index.cjs +1199 -75
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +282 -2
- package/dist/index.d.ts +282 -2
- package/dist/index.js +1192 -74
- package/dist/index.js.map +1 -1
- package/package.json +11 -4
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,25 @@ All notable changes to this project are documented here.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/).
|
|
7
7
|
|
|
8
|
+
## [0.5.0] — 2026-07-19
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **Optional graph memory** — `graph` constructor option with `sqliteGraph({ path })` (local) and `neo4jGraph({ url, username, password })` (networked); optional peer `neo4j-driver`
|
|
13
|
+
- **Typed graph API** — `linkMemories()`, `getRelated()` on the facade; provider surface also includes `unlinkMemories`, `upsertEntity`, `linkEntityToMemory`, `deleteMemory`
|
|
14
|
+
- **`recall({ includeGraph: true })`** — attaches `related` neighbor memories from the graph
|
|
15
|
+
- **Cascade deletes** — `forget` / `clear` remove graph memory nodes and incident edges when graph is configured
|
|
16
|
+
- **Graph-aware checkpoints / export** — file-backed SQLite graph snapshots alongside memory DB; Neo4j refuses with `GraphCheckpointNotSupportedError` (`GRAPH_CHECKPOINT_NOT_SUPPORTED`)
|
|
17
|
+
- **Schema v4** — memory DB index / ANN housekeeping migration on open (graph tables live in a separate SQLite file or Neo4j)
|
|
18
|
+
- **Wolbarg Studio** — graph canvas, Connect for memory/telemetry/checkpoints/graph, ops filters for graph methods, stream / checkpoints / explain polish
|
|
19
|
+
- **Docs** — Graph memory, What's New 0.5, Observability screenshots, provider-isolated project layout
|
|
20
|
+
|
|
21
|
+
### Compatibility
|
|
22
|
+
|
|
23
|
+
- Graph is **optional** and **additive**. Omitting `graph` leaves 0.4 behavior unchanged.
|
|
24
|
+
- No required constructor changes for upgrades from **0.4.x**.
|
|
25
|
+
- Raw Cypher `query()` is Neo4j-only; SQLite graph hard-errors (use typed methods for portable code).
|
|
26
|
+
|
|
8
27
|
## [0.4.0] — 2026-07-18
|
|
9
28
|
|
|
10
29
|
### Added
|
|
@@ -147,6 +166,7 @@ const ctx = wolbarg({
|
|
|
147
166
|
|
|
148
167
|
- Initial npm release path (pre–modular storage / ingest)
|
|
149
168
|
|
|
169
|
+
[0.5.0]: https://github.com/wolbarg/wolbarg/releases/tag/v0.5.0
|
|
150
170
|
[0.4.0]: https://github.com/wolbarg/wolbarg/releases/tag/v0.4.0
|
|
151
171
|
[0.3.2]: https://github.com/wolbarg/wolbarg/releases/tag/v0.3.2
|
|
152
172
|
[0.3.1]: https://github.com/wolbarg/wolbarg/releases/tag/v0.3.1
|
package/README.md
CHANGED
|
@@ -1,52 +1,131 @@
|
|
|
1
|
-
|
|
2
|
-
<img src="./assets/wolbarg-banner.png" alt="Wolbarg Logo: Memory Infrastructure for AI Agents" width="720" />
|
|
3
|
-
</p>
|
|
1
|
+

|
|
4
2
|
|
|
5
3
|
# Wolbarg
|
|
6
4
|
|
|
7
|
-
**Modular, provider-agnostic semantic memory for AI agents
|
|
5
|
+
**Modular, provider-agnostic semantic memory for AI agents.**
|
|
8
6
|
|
|
9
7
|
[](https://www.npmjs.com/package/wolbarg)
|
|
10
8
|
[](./LICENSE)
|
|
9
|
+
[](https://nodejs.org)
|
|
11
10
|
[](https://wolbarg.com)
|
|
12
|
-
[](https://wolbarg.com/benchmarks)
|
|
13
12
|
|
|
14
|
-
|
|
13
|
+
```bash
|
|
14
|
+
npm install wolbarg
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Wolbarg is **memory infrastructure**, not an agent framework. Agents call `remember()` / `recall()` (and optionally ingest, compress, subscribe, and link memories in a graph). You bring SQLite or PostgreSQL, any OpenAI-compatible embedding API, and optional peers for PDF/DOCX/OCR/Neo4j.
|
|
18
|
+
|
|
19
|
+
**Current release: [v0.5.0](./CHANGELOG.md)** — optional graph memory (SQLite + Neo4j), `includeGraph` recall, cascade forget, graph-aware checkpoints, and [Wolbarg Studio](https://wolbarg.com/docs/observability) graph canvas.
|
|
15
20
|
|
|
16
|
-
|
|
21
|
+
---
|
|
17
22
|
|
|
18
|
-
|
|
23
|
+
## Why Wolbarg?
|
|
24
|
+
|
|
25
|
+
| Problem | What Wolbarg does |
|
|
19
26
|
| --- | --- |
|
|
20
|
-
|
|
|
21
|
-
|
|
|
22
|
-
|
|
|
23
|
-
|
|
|
27
|
+
| Agents forget between sessions | Durable semantic memory on **your** disk or Postgres |
|
|
28
|
+
| Vendor lock-in | Pluggable embeddings, LLM, rerankers, OCR, vision, storage, graph |
|
|
29
|
+
| Vectors alone are not enough | Hybrid search (semantic + BM25), metadata filters, MMR, optional rerank |
|
|
30
|
+
| Multi-agent writes collide | SQLite `BEGIN IMMEDIATE` + retries; Postgres row-level locking |
|
|
31
|
+
| Duplicate facts pile up | Opt-in write-time dedupe / upsert |
|
|
32
|
+
| Repeated embeds cost money | Transparent embedding cache (default on) |
|
|
33
|
+
| Need structure, not only similarity | Optional **graph** — `linkMemories` / `getRelated` (SQLite ↔ Neo4j) |
|
|
34
|
+
| Hard to debug memory | Telemetry + **Wolbarg Studio** (local, read-only) |
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Features
|
|
39
|
+
|
|
40
|
+
- **Storage** — SQLite (`node:sqlite` + sqlite-vec) or PostgreSQL (+ optional pgvector)
|
|
41
|
+
- **Recall** — semantic, hybrid, metadata filters, MMR, rerank, `explain: true`
|
|
42
|
+
- **Ingest** — text / markdown / PDF / DOCX / images (peers for PDF/DOCX/OCR)
|
|
43
|
+
- **Compress** — optional LLM summarization with archive lineage
|
|
44
|
+
- **`subscribe()`** — real-time change events (SQLite in-process; Postgres LISTEN/NOTIFY)
|
|
45
|
+
- **Concurrency** — multi-writer SQLite hardening (`WOLBARG_STORAGE_LOCKED`)
|
|
46
|
+
- **Embedding cache** — `hash(content) + model`
|
|
47
|
+
- **Dedupe / upsert** — opt-in exact / near / exact-or-near
|
|
48
|
+
- **Graph memory (0.5)** — `sqliteGraph` / `neo4jGraph`, `linkMemories`, `getRelated`, `includeGraph`
|
|
49
|
+
- **Checkpoints / export** — file-backed SQLite snapshots (+ graph file when applicable)
|
|
50
|
+
- **Telemetry** — independent event DB; Studio dashboard, Trace Explorer, graph canvas
|
|
24
51
|
|
|
25
|
-
|
|
52
|
+
Docs: [Getting started](https://wolbarg.com/docs/getting-started) · [What's new in 0.5](https://wolbarg.com/docs/guides/whats-new) · [Graph memory](https://wolbarg.com/docs/graph-memory) · [Studio](https://wolbarg.com/docs/observability)
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Benchmarks (v0.4.0 stress · mock embeddings)
|
|
57
|
+
|
|
58
|
+
Published dual-backend **v4-stress** suite (2026-07-18 · Node v24.13.1 · win32/arm64 · 8 CPUs). Mock embeddings isolate SDK + database cost — not LIVE provider latency.
|
|
59
|
+
|
|
60
|
+
### Headlines
|
|
61
|
+
|
|
62
|
+
| Metric | SQLite | PostgreSQL |
|
|
63
|
+
| --- | --- | --- |
|
|
64
|
+
| Cold `ready()` | **16.18 ms** | **91.39 ms** |
|
|
65
|
+
| Batch remember (200) | **5,795 ops/s** | **2,795 ops/s** |
|
|
66
|
+
| Bulk insert 2k | **7,509 ops/s** | **4,085 ops/s** |
|
|
67
|
+
| Recall p95 @ 2k | **4.83 ms** | **141.5 ms** |
|
|
68
|
+
| 16 writers throughput | **8,660 ops/s** | **3,335 ops/s** |
|
|
69
|
+
| Embedding cache speedup | **1.47×** | **1.18×** |
|
|
70
|
+
| Suite result | 25 pass / 0 fail | 21 pass / 0 fail / 4 skip\* |
|
|
71
|
+
|
|
72
|
+
\*Postgres skips SQLite-only paths (telemetry EventDatabase, file checkpoints, export/import).
|
|
73
|
+
|
|
74
|
+
### SQLite — stress & concurrency
|
|
75
|
+
|
|
76
|
+
| Case | Result |
|
|
77
|
+
| --- | --- |
|
|
78
|
+
| Bulk insert 2k + search | 7,509 insert ops/s · recall p50 **4.12 ms** · p95 **4.83 ms** |
|
|
79
|
+
| 8 writers × 20 ops | **6,084** ops/s · p95 **3.05 ms** · 0 failures |
|
|
80
|
+
| 16 writers × 20 ops | **8,660** ops/s · p95 **2.46 ms** · 0 failures |
|
|
81
|
+
| 32 writers × 20 ops | **6,798** ops/s · p95 **22.94 ms** · 0 failures |
|
|
82
|
+
| Mixed read/write storm | 0 failures |
|
|
83
|
+
|
|
84
|
+
### PostgreSQL — stress & concurrency
|
|
85
|
+
|
|
86
|
+
| Case | Result |
|
|
87
|
+
| --- | --- |
|
|
88
|
+
| Bulk insert 2k + search | 4,085 insert ops/s · recall p50 **23.29 ms** · p95 **141.5 ms** |
|
|
89
|
+
| 8 writers × 20 ops | **2,555** ops/s · p95 **8.51 ms** · 0 failures |
|
|
90
|
+
| 16 writers × 20 ops | **3,335** ops/s · p95 **9.48 ms** · 0 failures |
|
|
91
|
+
| 32 writers × 20 ops | **3,802** ops/s · p95 **14.77 ms** · 0 failures |
|
|
92
|
+
| Mixed read/write storm | 0 failures |
|
|
93
|
+
|
|
94
|
+
**Artifacts:** [SQLite JSON](https://wolbarg.com/benchmarks/version-0.4.0-sqlite-benchmark.json) · [SQLite MD](https://wolbarg.com/benchmarks/version-0.4.0-sqlite-benchmark.md) · [Postgres JSON](https://wolbarg.com/benchmarks/version-0.4.0-postgres-benchmark.json) · [Postgres MD](https://wolbarg.com/benchmarks/version-0.4.0-postgres-benchmark.md) · [Interactive page](https://wolbarg.com/benchmarks) · [Methodology](https://wolbarg.com/docs/benchmarks)
|
|
95
|
+
|
|
96
|
+
Also published: [embedding-cache](https://wolbarg.com/benchmarks/embedding-cache.json) · [multiprocess concurrency](https://wolbarg.com/benchmarks/multiprocess-concurrency.json)
|
|
97
|
+
|
|
98
|
+
---
|
|
26
99
|
|
|
27
100
|
## Installation
|
|
28
101
|
|
|
29
102
|
```bash
|
|
30
103
|
npm install wolbarg
|
|
104
|
+
# or: pnpm add wolbarg · yarn add wolbarg · bun add wolbarg
|
|
31
105
|
```
|
|
32
106
|
|
|
33
|
-
Node.js
|
|
107
|
+
**Requires Node.js 22.5+** (built-in `node:sqlite`).
|
|
108
|
+
|
|
109
|
+
### Optional peers
|
|
34
110
|
|
|
35
|
-
|
|
111
|
+
Install only what you use:
|
|
36
112
|
|
|
37
113
|
| Peer | Required for |
|
|
38
114
|
| --- | --- |
|
|
39
|
-
| `pg` |
|
|
40
|
-
| `
|
|
41
|
-
| `
|
|
42
|
-
| `
|
|
115
|
+
| `pg` | PostgreSQL storage |
|
|
116
|
+
| `neo4j-driver` | `neo4jGraph(...)` |
|
|
117
|
+
| `pdf-parse@1.1.4` | PDF ingest |
|
|
118
|
+
| `mammoth` | DOCX ingest |
|
|
119
|
+
| `tesseract.js` | OCR |
|
|
43
120
|
|
|
44
121
|
```bash
|
|
45
|
-
#
|
|
46
|
-
npm install pdf-parse@1.1.4 mammoth
|
|
122
|
+
npm install pg neo4j-driver # production storage + graph
|
|
123
|
+
npm install pdf-parse@1.1.4 mammoth # document ingest
|
|
47
124
|
```
|
|
48
125
|
|
|
49
|
-
|
|
126
|
+
Peers are **not** bundled. Missing peers fail at use time for that path — not at import. Plain `.txt` / `.md` / `.csv` / `.json` and SQLite graph need no extras.
|
|
127
|
+
|
|
128
|
+
---
|
|
50
129
|
|
|
51
130
|
## Quick start
|
|
52
131
|
|
|
@@ -65,39 +144,83 @@ const ctx = wolbarg({
|
|
|
65
144
|
model: "gpt-4.1-mini",
|
|
66
145
|
}),
|
|
67
146
|
keywordSearch: bm25(),
|
|
147
|
+
concurrency: { maxRetries: 5 },
|
|
148
|
+
embeddingCache: { enabled: true },
|
|
149
|
+
memory: { dedupe: { enabled: true, strategy: "exact-or-near" } },
|
|
68
150
|
telemetry: {
|
|
69
151
|
enabled: true,
|
|
70
152
|
database: { provider: "sqlite", url: "./telemetry.db" },
|
|
71
153
|
level: "debug",
|
|
72
|
-
captureQueries: true,
|
|
73
|
-
captureLatency: true,
|
|
74
154
|
},
|
|
75
155
|
});
|
|
76
156
|
|
|
77
|
-
await ctx.
|
|
157
|
+
await ctx.ready();
|
|
158
|
+
|
|
159
|
+
const saved = await ctx.remember({
|
|
78
160
|
agent: "research",
|
|
79
161
|
content: { text: "Stripe supports recurring invoices." },
|
|
80
162
|
metadata: { topic: "billing" },
|
|
81
163
|
});
|
|
164
|
+
// saved.action === "created" | "updated"
|
|
165
|
+
|
|
166
|
+
const hits = await ctx.recall({
|
|
167
|
+
query: "How do recurring invoices work?",
|
|
168
|
+
topK: 5,
|
|
169
|
+
hybrid: true,
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
ctx.subscribe({ organization: "my-org" }, (e) => {
|
|
173
|
+
console.log(e.event, e.memoryId);
|
|
174
|
+
});
|
|
82
175
|
|
|
83
|
-
const hits = await ctx.recall({ query: "invoices", topK: 5 });
|
|
84
|
-
const explained = await ctx.recall({ query: "invoices", explain: true });
|
|
85
176
|
await ctx.checkpoint("before-compress");
|
|
177
|
+
await ctx.close();
|
|
86
178
|
```
|
|
87
179
|
|
|
88
|
-
|
|
180
|
+
### Graph memory (0.5)
|
|
89
181
|
|
|
90
|
-
|
|
182
|
+
Same typed API locally and in production — swap only the factory:
|
|
91
183
|
|
|
92
184
|
```ts
|
|
93
|
-
import {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
185
|
+
import { wolbarg, openaiEmbedding, sqliteGraph, neo4jGraph } from "wolbarg";
|
|
186
|
+
|
|
187
|
+
// Local
|
|
188
|
+
graph: sqliteGraph({ path: "./graph.db" })
|
|
189
|
+
|
|
190
|
+
// Production
|
|
191
|
+
graph: neo4jGraph({
|
|
192
|
+
url: process.env.NEO4J_URL!,
|
|
193
|
+
username: process.env.NEO4J_USER!,
|
|
194
|
+
password: process.env.NEO4J_PASSWORD!,
|
|
195
|
+
})
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
```ts
|
|
199
|
+
const a = await ctx.remember({
|
|
200
|
+
agent: "support",
|
|
201
|
+
content: { text: "Refunds take 5 business days." },
|
|
202
|
+
});
|
|
203
|
+
const b = await ctx.remember({
|
|
204
|
+
agent: "support",
|
|
205
|
+
content: { text: "Chargebacks escalate to risk." },
|
|
206
|
+
});
|
|
207
|
+
|
|
208
|
+
await ctx.linkMemories(a.id, b.id, "related_to");
|
|
209
|
+
const related = await ctx.getRelated(a.id, { depth: 1 });
|
|
210
|
+
|
|
211
|
+
const withGraph = await ctx.recall({
|
|
212
|
+
query: "refunds",
|
|
213
|
+
includeGraph: true,
|
|
214
|
+
});
|
|
215
|
+
// withGraph[0].related — neighbors from the graph
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Guide: [Graph memory](https://wolbarg.com/docs/graph-memory) · Prefer a [provider-isolated project layout](https://wolbarg.com/docs/installation#project-layout) so backend swaps stay one-file.
|
|
219
|
+
|
|
220
|
+
### Constructor DI (still supported)
|
|
221
|
+
|
|
222
|
+
```ts
|
|
223
|
+
import { Wolbarg, sqlite, openaiEmbedding } from "wolbarg";
|
|
101
224
|
|
|
102
225
|
const ctx = new Wolbarg({
|
|
103
226
|
organization: "my-org",
|
|
@@ -106,78 +229,93 @@ const ctx = new Wolbarg({
|
|
|
106
229
|
apiKey: process.env.OPENAI_API_KEY!,
|
|
107
230
|
model: "text-embedding-3-small",
|
|
108
231
|
}),
|
|
109
|
-
llm: openaiLlm({
|
|
110
|
-
apiKey: process.env.OPENAI_API_KEY!,
|
|
111
|
-
model: "gpt-4.1-mini",
|
|
112
|
-
}),
|
|
113
|
-
keywordSearch: bm25(),
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
await ctx.remember({
|
|
117
|
-
agent: "research",
|
|
118
|
-
content: { text: "Stripe supports recurring invoices." },
|
|
119
|
-
metadata: { topic: "billing" },
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
const hits = await ctx.recall({
|
|
123
|
-
query: "recurring invoices",
|
|
124
|
-
topK: 5,
|
|
125
|
-
hybrid: true,
|
|
126
|
-
filter: { metadata: meta.eq("topic", "billing") },
|
|
127
232
|
});
|
|
128
233
|
```
|
|
129
234
|
|
|
130
235
|
**Required:** `organization`, `storage` or `database`, `embedding`.
|
|
131
|
-
**Optional:** `llm`, `
|
|
236
|
+
**Optional:** `llm`, `keywordSearch`, `reranker`, `ocr`, `vision`, `chunking`, `telemetry`, `concurrency`, `embeddingCache`, `memory.dedupe`, `graph`, `checkpoint` / `checkpointDirectory`.
|
|
132
237
|
|
|
133
|
-
|
|
238
|
+
---
|
|
134
239
|
|
|
135
|
-
## API
|
|
240
|
+
## API surface
|
|
136
241
|
|
|
137
|
-
| Method |
|
|
242
|
+
| Method | Role |
|
|
138
243
|
| --- | --- |
|
|
139
|
-
| `remember` / `rememberBatch` |
|
|
140
|
-
| `
|
|
141
|
-
| `
|
|
142
|
-
| `
|
|
143
|
-
| `
|
|
144
|
-
| `
|
|
145
|
-
| `
|
|
146
|
-
| `
|
|
244
|
+
| `remember` / `rememberBatch` | Embed + store (`RememberResult` includes `action`) |
|
|
245
|
+
| `update` | Edit an existing memory by id |
|
|
246
|
+
| `recall` / `recallBatch` | Semantic / hybrid search; `explain` · `includeGraph` |
|
|
247
|
+
| `ingest` | Documents → chunks → memories |
|
|
248
|
+
| `compress` | LLM summary (requires `llm`) |
|
|
249
|
+
| `linkMemories` / `getRelated` | Graph edges / traversal (requires `graph`) |
|
|
250
|
+
| `subscribe` | Real-time change callbacks |
|
|
251
|
+
| `checkpoint` / `rollback` / `listCheckpoints` / … | SQLite snapshots (+ graph file when SQLite graph) |
|
|
252
|
+
| `export` / `import` | Portable SQLite + manifest |
|
|
253
|
+
| `forget` / `history` / `stats` / `clear` | Lifecycle (forget/clear cascade graph when configured) |
|
|
254
|
+
| `ready` / `close` / `flushTelemetry` | Lifecycle |
|
|
255
|
+
|
|
256
|
+
Full reference: [wolbarg.com/docs/api](https://wolbarg.com/docs/api)
|
|
147
257
|
|
|
148
|
-
|
|
258
|
+
---
|
|
149
259
|
|
|
150
|
-
|
|
260
|
+
## Wolbarg Studio
|
|
261
|
+
|
|
262
|
+
Local observability dashboard — **not** bundled in the npm package. The SDK writes telemetry; Studio reads it (and can open memory / graph files for the canvas).
|
|
151
263
|
|
|
152
264
|
```bash
|
|
153
|
-
|
|
265
|
+
git clone https://github.com/Atharvmunde11/wolbarg-studio
|
|
266
|
+
cd wolbarg-studio
|
|
154
267
|
npm install
|
|
155
|
-
npm run dev
|
|
268
|
+
npm run dev # http://localhost:3100
|
|
156
269
|
```
|
|
157
270
|
|
|
158
|
-
|
|
271
|
+
Connect telemetry (`./telemetry.db`), optional memory DB, checkpoint directory, and graph backend. Screenshots and setup: [Observability & Studio](https://wolbarg.com/docs/observability).
|
|
159
272
|
|
|
160
|
-
|
|
161
|
-
files are migrated in place to telemetry schema v2 and retain all existing
|
|
162
|
-
events. V2 adds organization, agent, tags, checkpoint, persisted recall
|
|
163
|
-
explanations, and measured stage spans. `SqliteEventDatabase.query()` can filter
|
|
164
|
-
by `organization`, `agentId`, `tag`, and `checkpointId`; read-only access to an
|
|
165
|
-
unmigrated v1 file remains supported.
|
|
273
|
+
---
|
|
166
274
|
|
|
167
|
-
|
|
275
|
+
## Documentation
|
|
168
276
|
|
|
169
|
-
|
|
277
|
+
| Topic | Link |
|
|
278
|
+
| --- | --- |
|
|
279
|
+
| Getting started | https://wolbarg.com/docs/getting-started |
|
|
280
|
+
| Installation & project layout | https://wolbarg.com/docs/installation |
|
|
281
|
+
| Configuration | https://wolbarg.com/docs/configuration |
|
|
282
|
+
| Graph memory | https://wolbarg.com/docs/graph-memory |
|
|
283
|
+
| Observability & Studio | https://wolbarg.com/docs/observability |
|
|
284
|
+
| Concurrency | https://wolbarg.com/docs/concurrency |
|
|
285
|
+
| Real-time events | https://wolbarg.com/docs/realtime-events |
|
|
286
|
+
| Embedding cache | https://wolbarg.com/docs/embedding-cache |
|
|
287
|
+
| Memory upsert | https://wolbarg.com/docs/memory-upsert |
|
|
288
|
+
| What's new in 0.5 | https://wolbarg.com/docs/guides/whats-new |
|
|
289
|
+
| Migration | https://wolbarg.com/docs/migration |
|
|
290
|
+
| Limitations | https://wolbarg.com/docs/guides/limitations |
|
|
291
|
+
| Changelog | [CHANGELOG.md](./CHANGELOG.md) |
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
## Limitations
|
|
296
|
+
|
|
297
|
+
- **Node 22.5+** required (`node:sqlite`).
|
|
298
|
+
- **Ingest peers** required for PDF / DOCX / OCR paths.
|
|
299
|
+
- **PDF** text-layer via `pdf-parse`; scan PDFs need OCR/vision.
|
|
300
|
+
- **Telemetry** is SQLite-only today (Postgres typed but not implemented).
|
|
301
|
+
- **SQLite `subscribe()`** is in-process only; Postgres uses LISTEN/NOTIFY.
|
|
302
|
+
- **Checkpoints / export** require file-backed SQLite memory (not `:memory:` / not Postgres).
|
|
303
|
+
- **Neo4j** checkpoint / export / import throw `GraphCheckpointNotSupportedError` (refuse, don't skip).
|
|
304
|
+
- **Cypher `query()`** is Neo4j-only; SQLite graph uses typed methods.
|
|
305
|
+
- Not an agent framework, chat UI, or hosted vector SaaS.
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
## Upgrade
|
|
170
310
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
- **Postgres** memory storage needs `pg`; telemetry/checkpoints are SQLite-only in v0.3 (interfaces ready for Postgres).
|
|
175
|
-
- **Not** an agent framework, chat UI, or hosted vector SaaS.
|
|
311
|
+
```bash
|
|
312
|
+
npm install wolbarg@^0.5.0
|
|
313
|
+
```
|
|
176
314
|
|
|
177
|
-
|
|
315
|
+
0.5 is **additive**. Omitting `graph` keeps 0.4 behavior. See [Migration](https://wolbarg.com/docs/migration) and [CHANGELOG](./CHANGELOG.md).
|
|
178
316
|
|
|
179
|
-
|
|
317
|
+
---
|
|
180
318
|
|
|
181
319
|
## License
|
|
182
320
|
|
|
183
|
-
MIT
|
|
321
|
+
MIT © [Atharv Munde](https://github.com/Atharvmunde11)
|