@dungle-scrubs/hippo 0.1.0 → 0.2.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.
Files changed (53) hide show
  1. package/README.md +57 -12
  2. package/dist/chunk-mutations.d.ts +28 -0
  3. package/dist/chunk-mutations.d.ts.map +1 -0
  4. package/dist/chunk-mutations.js +83 -0
  5. package/dist/chunk-mutations.js.map +1 -0
  6. package/dist/cli.js +7 -3
  7. package/dist/cli.js.map +1 -1
  8. package/dist/db.d.ts +13 -3
  9. package/dist/db.d.ts.map +1 -1
  10. package/dist/db.js +78 -10
  11. package/dist/db.js.map +1 -1
  12. package/dist/index.d.ts +2 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +5 -3
  15. package/dist/index.js.map +1 -1
  16. package/dist/schema.d.ts.map +1 -1
  17. package/dist/schema.js +63 -1
  18. package/dist/schema.js.map +1 -1
  19. package/dist/server/index.d.ts +3 -1
  20. package/dist/server/index.d.ts.map +1 -1
  21. package/dist/server/index.js +96 -250
  22. package/dist/server/index.js.map +1 -1
  23. package/dist/tools/append-memory-block.d.ts +2 -1
  24. package/dist/tools/append-memory-block.d.ts.map +1 -1
  25. package/dist/tools/append-memory-block.js +4 -1
  26. package/dist/tools/append-memory-block.js.map +1 -1
  27. package/dist/tools/forget-memory.d.ts +3 -1
  28. package/dist/tools/forget-memory.d.ts.map +1 -1
  29. package/dist/tools/forget-memory.js +2 -2
  30. package/dist/tools/forget-memory.js.map +1 -1
  31. package/dist/tools/recall-memories.d.ts +4 -1
  32. package/dist/tools/recall-memories.d.ts.map +1 -1
  33. package/dist/tools/recall-memories.js +10 -4
  34. package/dist/tools/recall-memories.js.map +1 -1
  35. package/dist/tools/recall-memory-block.d.ts +2 -1
  36. package/dist/tools/recall-memory-block.d.ts.map +1 -1
  37. package/dist/tools/recall-memory-block.js +3 -1
  38. package/dist/tools/recall-memory-block.js.map +1 -1
  39. package/dist/tools/remember-facts.d.ts +2 -0
  40. package/dist/tools/remember-facts.d.ts.map +1 -1
  41. package/dist/tools/remember-facts.js +8 -4
  42. package/dist/tools/remember-facts.js.map +1 -1
  43. package/dist/tools/replace-memory-block.d.ts +2 -1
  44. package/dist/tools/replace-memory-block.d.ts.map +1 -1
  45. package/dist/tools/replace-memory-block.js +4 -1
  46. package/dist/tools/replace-memory-block.js.map +1 -1
  47. package/dist/tools/store-memory.d.ts +3 -1
  48. package/dist/tools/store-memory.d.ts.map +1 -1
  49. package/dist/tools/store-memory.js +5 -2
  50. package/dist/tools/store-memory.js.map +1 -1
  51. package/dist/types.d.ts +8 -0
  52. package/dist/types.d.ts.map +1 -1
  53. package/package.json +2 -4
package/README.md CHANGED
@@ -1,3 +1,7 @@
1
+ <p align="center">
2
+ <img src="assets/logo.png" alt="Hippo" width="200" height="200">
3
+ </p>
4
+
1
5
  # Hippo
2
6
 
3
7
  Persistent memory for AI agents. Give your agent the ability to
@@ -13,9 +17,10 @@ on command — backed by SQLite, with no external services.
13
17
  | **CLI** | `hippo` binary for inspection and management | Database admin, debugging, backup/restore |
14
18
 
15
19
  All three share the same SQLite storage, strength model, and
16
- conflict resolution. The library and MCP server provide all 8
17
- memory tools. The CLI provides read/write database access without
18
- embedding or LLM calls.
20
+ conflict resolution. The library provides all 8 memory tools; the
21
+ MCP server exposes 7 (all except `recall_conversation`, which
22
+ requires a client-managed messages table). The CLI provides
23
+ read/write database access without embedding or LLM calls.
19
24
 
20
25
  ## Install
21
26
 
@@ -23,8 +28,19 @@ embedding or LLM calls.
23
28
  pnpm add @dungle-scrubs/hippo
24
29
  ```
25
30
 
26
- Peer dependencies: `better-sqlite3`, `@mariozechner/pi-agent-core`,
27
- `@mariozechner/pi-ai`.
31
+ ### Dependencies by usage mode
32
+
33
+ | Dependency | Library | MCP server | CLI |
34
+ |------------|---------|------------|-----|
35
+ | `better-sqlite3` | Required | Required | Required |
36
+ | `@mariozechner/pi-agent-core` | Required | — | — |
37
+ | `@mariozechner/pi-ai` | Required | — | — |
38
+
39
+ **Library mode** returns `AgentTool` instances from pi-agent-core,
40
+ so both pi packages are peer dependencies. **MCP server** and
41
+ **CLI** are standalone — they have no pi dependency. If you're
42
+ only using hippo as an MCP server or CLI tool, you only need
43
+ `better-sqlite3`.
28
44
 
29
45
  ## Quick start — Library
30
46
 
@@ -314,17 +330,26 @@ Memory blocks are not touched by `forget_memory` — use
314
330
 
315
331
  ```typescript
316
332
  interface HippoOptions {
317
- db: Database; // better-sqlite3 handle
318
- agentId: string; // namespace for multi-agent isolation
319
- embed: EmbedFn; // (text, signal?) => Float32Array
320
- llm: LlmClient; // { complete(messages, systemPrompt, signal?) }
321
- messagesTable?: string; // enables recall_conversation
333
+ db: Database; // better-sqlite3 handle
334
+ agentId: string; // namespace for multi-agent isolation
335
+ embed: EmbedFn; // (text, signal?) => Float32Array
336
+ llm: LlmClient; // { complete(messages, systemPrompt, signal?) }
337
+ messagesTable?: string; // enables recall_conversation
338
+ scope?: string; // default write scope (optional)
339
+ recallScopes?: string | readonly string[]; // optional recall filter
322
340
  }
323
341
  ```
324
342
 
325
343
  **`agentId`** — all chunks and blocks are scoped to this ID.
326
344
  Multiple agents can share one database without interference.
327
345
 
346
+ **`scope`** — optional default scope for writes (`remember_facts`,
347
+ `store_memory`, and memory block tools). Omit to write globally.
348
+
349
+ **`recallScopes`** — optional scope filter for recall operations
350
+ (`recall_memories`, `forget_memory`). Accepts one scope or many.
351
+ When omitted, recall behavior is unchanged (searches all scopes).
352
+
328
353
  **`embed`** — you provide the embedding function. Hippo stores
329
354
  the resulting `Float32Array` as a BLOB and does brute-force
330
355
  cosine similarity at query time. Any embedding model works;
@@ -395,6 +420,23 @@ Brute-force cosine similarity is viable up to ~10k chunks per
395
420
  agent. Beyond that, pre-filter by recency or tags. Past 50k,
396
421
  consider migrating to sqlite-vec.
397
422
 
423
+ ## Dashboard chunk mutations
424
+
425
+ These are library helpers for building edit/delete APIs outside the
426
+ agent tool interface:
427
+
428
+ ```typescript
429
+ import { deleteChunk, updateChunk } from "@dungle-scrubs/hippo";
430
+
431
+ const updated = await updateChunk(db, embed, chunkId, "new content");
432
+ const deleted = deleteChunk(db, chunkId);
433
+ ```
434
+
435
+ - `updateChunk` re-embeds content and updates chunk fields in a
436
+ single transaction.
437
+ - `deleteChunk` hard-deletes a chunk and clears supersession
438
+ references that pointed to it.
439
+
398
440
  ## Exports
399
441
 
400
442
  The library exports both the tool factory and all building blocks:
@@ -407,6 +449,9 @@ export { createHippoTools } from "@dungle-scrubs/hippo";
407
449
  export { createEmbeddingProvider } from "@dungle-scrubs/hippo";
408
450
  export { createLlmProvider } from "@dungle-scrubs/hippo";
409
451
 
452
+ // Chunk mutation helpers
453
+ export { deleteChunk, updateChunk } from "@dungle-scrubs/hippo";
454
+
410
455
  // Schema utilities
411
456
  export { initSchema, verifyEmbeddingModel } from "@dungle-scrubs/hippo";
412
457
 
@@ -414,7 +459,7 @@ export { initSchema, verifyEmbeddingModel } from "@dungle-scrubs/hippo";
414
459
  export type {
415
460
  Chunk, ChunkKind, EmbedFn, HippoOptions,
416
461
  LlmClient, MemoryBlock, RememberFactAction,
417
- RememberFactsResult, SearchResult,
462
+ RememberFactsResult, ScopeFilter, SearchResult,
418
463
  EmbeddingProviderConfig, LlmProviderConfig,
419
464
  } from "@dungle-scrubs/hippo";
420
465
  ```
@@ -426,7 +471,7 @@ pnpm install
426
471
  just ci # build + check + test
427
472
 
428
473
  just build # tsc → dist/
429
- just test # vitest run (199 tests)
474
+ just test # vitest run (209 tests)
430
475
  just test-watch # vitest watch mode
431
476
  just typecheck # tsc --noEmit
432
477
  just check # biome lint + format
@@ -0,0 +1,28 @@
1
+ import type { Database } from "better-sqlite3";
2
+ import type { Chunk, EmbedFn } from "./types.js";
3
+ /**
4
+ * Update a chunk's content and embedding.
5
+ *
6
+ * Recomputes embedding and content hash, then applies all chunk updates in
7
+ * a single SQLite transaction.
8
+ *
9
+ * @param db - SQLite handle
10
+ * @param embed - Embedding function used to generate the new vector
11
+ * @param chunkId - Chunk ID to update
12
+ * @param newContent - New chunk content
13
+ * @returns The updated chunk row
14
+ * @throws Error when the chunk does not exist
15
+ */
16
+ export declare function updateChunk(db: Database, embed: EmbedFn, chunkId: string, newContent: string): Promise<Chunk>;
17
+ /**
18
+ * Hard-delete a chunk by ID.
19
+ *
20
+ * Clears any `superseded_by` references that point at the deleted chunk so
21
+ * older superseded chunks become active again.
22
+ *
23
+ * @param db - SQLite handle
24
+ * @param chunkId - Chunk ID to delete
25
+ * @returns True when a chunk was deleted, otherwise false
26
+ */
27
+ export declare function deleteChunk(db: Database, chunkId: string): boolean;
28
+ //# sourceMappingURL=chunk-mutations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-mutations.d.ts","sourceRoot":"","sources":["../src/chunk-mutations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAsBjD;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAChC,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,KAAK,CAAC,CA0ChB;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAYlE"}
@@ -0,0 +1,83 @@
1
+ import { contentHash } from "./hash.js";
2
+ import { embeddingToBuffer } from "./similarity.js";
3
+ /**
4
+ * Load a chunk row by ID.
5
+ *
6
+ * @param db - SQLite handle
7
+ * @param chunkId - Chunk identifier
8
+ * @returns The chunk row if found, otherwise undefined
9
+ */
10
+ function getChunkById(db, chunkId) {
11
+ return db.prepare("SELECT * FROM chunks WHERE id = ?").get(chunkId);
12
+ }
13
+ /**
14
+ * Update a chunk's content and embedding.
15
+ *
16
+ * Recomputes embedding and content hash, then applies all chunk updates in
17
+ * a single SQLite transaction.
18
+ *
19
+ * @param db - SQLite handle
20
+ * @param embed - Embedding function used to generate the new vector
21
+ * @param chunkId - Chunk ID to update
22
+ * @param newContent - New chunk content
23
+ * @returns The updated chunk row
24
+ * @throws Error when the chunk does not exist
25
+ */
26
+ export async function updateChunk(db, embed, chunkId, newContent) {
27
+ const existing = getChunkById(db, chunkId);
28
+ if (!existing) {
29
+ throw new Error(`Chunk not found: ${chunkId}`);
30
+ }
31
+ const now = new Date().toISOString();
32
+ const nextEmbedding = await embed(newContent);
33
+ const params = {
34
+ content: newContent,
35
+ content_hash: existing.kind === "memory" ? contentHash(newContent) : null,
36
+ created_at: now,
37
+ embedding: embeddingToBuffer(nextEmbedding),
38
+ id: chunkId,
39
+ last_accessed_at: now,
40
+ };
41
+ const runUpdate = db.transaction((txParams) => {
42
+ const result = db
43
+ .prepare(`UPDATE chunks
44
+ SET content = @content,
45
+ content_hash = @content_hash,
46
+ created_at = @created_at,
47
+ embedding = @embedding,
48
+ last_accessed_at = @last_accessed_at
49
+ WHERE id = @id`)
50
+ .run(txParams);
51
+ if (result.changes === 0) {
52
+ throw new Error(`Chunk not found: ${txParams.id}`);
53
+ }
54
+ const updated = getChunkById(db, txParams.id);
55
+ if (!updated) {
56
+ throw new Error(`Chunk disappeared during update: ${txParams.id}`);
57
+ }
58
+ return updated;
59
+ });
60
+ return runUpdate(params);
61
+ }
62
+ /**
63
+ * Hard-delete a chunk by ID.
64
+ *
65
+ * Clears any `superseded_by` references that point at the deleted chunk so
66
+ * older superseded chunks become active again.
67
+ *
68
+ * @param db - SQLite handle
69
+ * @param chunkId - Chunk ID to delete
70
+ * @returns True when a chunk was deleted, otherwise false
71
+ */
72
+ export function deleteChunk(db, chunkId) {
73
+ const runDelete = db.transaction((id) => {
74
+ const result = db.prepare("DELETE FROM chunks WHERE id = ?").run(id);
75
+ if (result.changes === 0) {
76
+ return false;
77
+ }
78
+ db.prepare("UPDATE chunks SET superseded_by = NULL WHERE superseded_by = ?").run(id);
79
+ return true;
80
+ });
81
+ return runDelete(chunkId);
82
+ }
83
+ //# sourceMappingURL=chunk-mutations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-mutations.js","sourceRoot":"","sources":["../src/chunk-mutations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAYpD;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,EAAY,EAAE,OAAe;IAClD,OAAO,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAsB,CAAC;AAC1F,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAChC,EAAY,EACZ,KAAc,EACd,OAAe,EACf,UAAkB;IAElB,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAsB;QACjC,OAAO,EAAE,UAAU;QACnB,YAAY,EAAE,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;QACzE,UAAU,EAAE,GAAG;QACf,SAAS,EAAE,iBAAiB,CAAC,aAAa,CAAC;QAC3C,EAAE,EAAE,OAAO;QACX,gBAAgB,EAAE,GAAG;KACrB,CAAC;IAEF,MAAM,SAAS,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,QAA2B,EAAS,EAAE;QACvE,MAAM,MAAM,GAAG,EAAE;aACf,OAAO,CACP;;;;;;oBAMgB,CAChB;aACA,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEhB,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,oBAAoB,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,oCAAoC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,OAAO,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CAAC,EAAY,EAAE,OAAe;IACxD,MAAM,SAAS,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,EAAU,EAAW,EAAE;QACxD,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrE,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACd,CAAC;QAED,EAAE,CAAC,OAAO,CAAC,gEAAgE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrF,OAAO,IAAI,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC"}
package/dist/cli.js CHANGED
@@ -75,7 +75,7 @@ const program = new Command()
75
75
  "",
76
76
  "Database path: pass --db <path> or set HIPPO_DB env var.",
77
77
  ].join("\n"))
78
- .version("0.1.0") // x-release-please-version
78
+ .version("0.2.1") // x-release-please-version
79
79
  .option("--db <path>", "SQLite database path (env: HIPPO_DB)");
80
80
  // ── init ─────────────────────────────────────────────────────────────
81
81
  program
@@ -178,6 +178,7 @@ program
178
178
  .option("--kind <type>", "Filter by kind: fact or memory")
179
179
  .option("--superseded", "Include superseded chunks")
180
180
  .option("--limit <n>", "Max results (default: 50)", "50")
181
+ .option("--offset <n>", "Skip first N results (default: 0)", "0")
181
182
  .option("--json", "Output as JSON")
182
183
  .action((agent, opts) => {
183
184
  const dbPath = resolveDbPath(program);
@@ -191,8 +192,9 @@ program
191
192
  sql += " AND kind = ?";
192
193
  params.push(opts.kind);
193
194
  }
194
- sql += " ORDER BY last_accessed_at DESC LIMIT ?";
195
+ sql += " ORDER BY last_accessed_at DESC LIMIT ? OFFSET ?";
195
196
  params.push(Number.parseInt(opts.limit, 10));
197
+ params.push(Number.parseInt(opts.offset, 10));
196
198
  const rows = db.prepare(sql).all(...params);
197
199
  db.close();
198
200
  // Strip embedding BLOBs from JSON output — they're opaque binary
@@ -291,6 +293,7 @@ program
291
293
  .option("--agent <id>", "Filter to a specific agent")
292
294
  .option("--kind <type>", "Filter by kind: fact or memory")
293
295
  .option("--limit <n>", "Max results (default: 20)", "20")
296
+ .option("--offset <n>", "Skip first N results (default: 0)", "0")
294
297
  .option("--json", "Output as JSON")
295
298
  .action((text, opts) => {
296
299
  const dbPath = resolveDbPath(program);
@@ -305,8 +308,9 @@ program
305
308
  sql += " AND kind = ?";
306
309
  params.push(opts.kind);
307
310
  }
308
- sql += " ORDER BY last_accessed_at DESC LIMIT ?";
311
+ sql += " ORDER BY last_accessed_at DESC LIMIT ? OFFSET ?";
309
312
  params.push(Number.parseInt(opts.limit, 10));
313
+ params.push(Number.parseInt(opts.offset, 10));
310
314
  const rows = db.prepare(sql).all(...params);
311
315
  db.close();
312
316
  const clean = rows.map((r) => ({
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/db.d.ts CHANGED
@@ -1,19 +1,27 @@
1
1
  import type { Database, Statement } from "better-sqlite3";
2
- import type { Chunk } from "./types.js";
2
+ import type { Chunk, ScopeFilter } from "./types.js";
3
3
  /** Prepared statement cache, lazily built per database handle. */
4
4
  export interface DbStatements {
5
+ readonly db: Database;
5
6
  readonly clearSupersededBy: Statement;
7
+ readonly clearSupersededByScoped: Statement;
6
8
  readonly deleteChunk: Statement;
7
9
  readonly getAllActiveChunksByAgent: Statement;
10
+ readonly getAllActiveChunksByAgentAndScope: Statement;
8
11
  readonly getActiveChunksByAgent: Statement;
12
+ readonly getActiveChunksByAgentAndScope: Statement;
9
13
  readonly getBlockByKey: Statement;
14
+ readonly getBlockByKeyAndScope: Statement;
10
15
  readonly getMemoryByHash: Statement;
16
+ readonly getMemoryByHashAndScope: Statement;
11
17
  readonly insertChunk: Statement;
12
18
  readonly reinforceChunk: Statement;
13
19
  readonly supersedeChunk: Statement;
14
20
  readonly touchChunk: Statement;
15
21
  readonly upsertBlock: Statement;
16
22
  }
23
+ /** Normalizes optional scope values to persisted form (empty string = global). */
24
+ export declare function normalizeScope(scope?: string): string;
17
25
  /**
18
26
  * Build all prepared statements for hippo operations.
19
27
  *
@@ -28,9 +36,10 @@ export declare function prepareStatements(db: Database): DbStatements;
28
36
  * @param agentId - Agent namespace
29
37
  * @param kind - Chunk kind ('fact' or 'memory')
30
38
  * @param limit - Max rows to return (-1 for unlimited, default -1)
39
+ * @param scope - Optional scope filter (single scope or list)
31
40
  * @returns Array of chunks
32
41
  */
33
- export declare function getActiveChunks(stmts: DbStatements, agentId: string, kind: "fact" | "memory", limit?: number): Chunk[];
42
+ export declare function getActiveChunks(stmts: DbStatements, agentId: string, kind: "fact" | "memory", limit?: number, scope?: ScopeFilter): Chunk[];
34
43
  /**
35
44
  * Get all active (non-superseded) chunks for an agent regardless of kind.
36
45
  *
@@ -39,7 +48,8 @@ export declare function getActiveChunks(stmts: DbStatements, agentId: string, ki
39
48
  * @param stmts - Prepared statements
40
49
  * @param agentId - Agent namespace
41
50
  * @param limit - Max rows to return (-1 for unlimited, default -1)
51
+ * @param scope - Optional scope filter (single scope or list)
42
52
  * @returns Array of chunks (facts and memories combined)
43
53
  */
44
- export declare function getAllActiveChunks(stmts: DbStatements, agentId: string, limit?: number): Chunk[];
54
+ export declare function getAllActiveChunks(stmts: DbStatements, agentId: string, limit?: number, scope?: ScopeFilter): Chunk[];
45
55
  //# sourceMappingURL=db.d.ts.map
package/dist/db.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,kEAAkE;AAClE,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,iBAAiB,EAAE,SAAS,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC;IAChC,QAAQ,CAAC,yBAAyB,EAAE,SAAS,CAAC;IAC9C,QAAQ,CAAC,sBAAsB,EAAE,SAAS,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC;CAChC;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,GAAG,YAAY,CA6D5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC9B,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GAAG,QAAQ,EACvB,KAAK,SAAK,GACR,KAAK,EAAE,CAET;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,KAAK,EAAE,CAE5F"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAErD,kEAAkE;AAClE,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IACtB,QAAQ,CAAC,iBAAiB,EAAE,SAAS,CAAC;IACtC,QAAQ,CAAC,uBAAuB,EAAE,SAAS,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC;IAChC,QAAQ,CAAC,yBAAyB,EAAE,SAAS,CAAC;IAC9C,QAAQ,CAAC,iCAAiC,EAAE,SAAS,CAAC;IACtD,QAAQ,CAAC,sBAAsB,EAAE,SAAS,CAAC;IAC3C,QAAQ,CAAC,8BAA8B,EAAE,SAAS,CAAC;IACnD,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC;IAClC,QAAQ,CAAC,qBAAqB,EAAE,SAAS,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC;IACpC,QAAQ,CAAC,uBAAuB,EAAE,SAAS,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC;IACnC,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC;CAChC;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAErD;AAeD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,GAAG,YAAY,CA2E5D;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC9B,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GAAG,QAAQ,EACvB,KAAK,SAAK,EACV,KAAK,CAAC,EAAE,WAAW,GACjB,KAAK,EAAE,CAmBT;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,MAAM,EACf,KAAK,SAAK,EACV,KAAK,CAAC,EAAE,WAAW,GACjB,KAAK,EAAE,CAmBT"}
package/dist/db.js CHANGED
@@ -1,3 +1,19 @@
1
+ /** Normalizes optional scope values to persisted form (empty string = global). */
2
+ export function normalizeScope(scope) {
3
+ return scope?.trim() ?? "";
4
+ }
5
+ /** Normalizes optional scope filters to a de-duplicated list. */
6
+ function normalizeScopeFilter(filter) {
7
+ if (filter === undefined) {
8
+ return undefined;
9
+ }
10
+ const raw = Array.isArray(filter) ? filter : [filter];
11
+ if (raw.length === 0) {
12
+ return [];
13
+ }
14
+ const normalized = raw.map((entry) => normalizeScope(entry));
15
+ return [...new Set(normalized)];
16
+ }
1
17
  /**
2
18
  * Build all prepared statements for hippo operations.
3
19
  *
@@ -6,7 +22,9 @@
6
22
  */
7
23
  export function prepareStatements(db) {
8
24
  return {
25
+ db,
9
26
  clearSupersededBy: db.prepare("UPDATE chunks SET superseded_by = NULL WHERE superseded_by = ? AND agent_id = ?"),
27
+ clearSupersededByScoped: db.prepare("UPDATE chunks SET superseded_by = NULL WHERE superseded_by = ? AND agent_id = ? AND scope = ?"),
10
28
  deleteChunk: db.prepare("DELETE FROM chunks WHERE id = ?"),
11
29
  getAllActiveChunksByAgent: db.prepare(`
12
30
  SELECT * FROM chunks
@@ -14,18 +32,32 @@ export function prepareStatements(db) {
14
32
  ORDER BY last_accessed_at DESC
15
33
  LIMIT ?
16
34
  `),
35
+ getAllActiveChunksByAgentAndScope: db.prepare(`
36
+ SELECT * FROM chunks
37
+ WHERE agent_id = ? AND scope = ? AND superseded_by IS NULL
38
+ ORDER BY last_accessed_at DESC
39
+ LIMIT ?
40
+ `),
17
41
  getActiveChunksByAgent: db.prepare(`
18
42
  SELECT * FROM chunks
19
43
  WHERE agent_id = ? AND kind = ? AND superseded_by IS NULL
20
44
  ORDER BY last_accessed_at DESC
21
45
  LIMIT ?
22
46
  `),
23
- getBlockByKey: db.prepare("SELECT * FROM memory_blocks WHERE agent_id = ? AND key = ?"),
47
+ getActiveChunksByAgentAndScope: db.prepare(`
48
+ SELECT * FROM chunks
49
+ WHERE agent_id = ? AND kind = ? AND scope = ? AND superseded_by IS NULL
50
+ ORDER BY last_accessed_at DESC
51
+ LIMIT ?
52
+ `),
53
+ getBlockByKey: db.prepare("SELECT * FROM memory_blocks WHERE agent_id = ? AND scope = '' AND key = ?"),
54
+ getBlockByKeyAndScope: db.prepare("SELECT * FROM memory_blocks WHERE agent_id = ? AND scope = ? AND key = ?"),
24
55
  getMemoryByHash: db.prepare("SELECT * FROM chunks WHERE agent_id = ? AND content_hash = ? AND kind = 'memory' AND superseded_by IS NULL"),
56
+ getMemoryByHashAndScope: db.prepare("SELECT * FROM chunks WHERE agent_id = ? AND scope = ? AND content_hash = ? AND kind = 'memory' AND superseded_by IS NULL"),
25
57
  insertChunk: db.prepare(`
26
- INSERT INTO chunks (id, agent_id, content, content_hash, embedding, metadata,
58
+ INSERT INTO chunks (id, agent_id, scope, content, content_hash, embedding, metadata,
27
59
  kind, running_intensity, encounter_count, access_count, last_accessed_at, created_at)
28
- VALUES (@id, @agent_id, @content, @content_hash, @embedding, @metadata,
60
+ VALUES (@id, @agent_id, @scope, @content, @content_hash, @embedding, @metadata,
29
61
  @kind, @running_intensity, @encounter_count, @access_count, @last_accessed_at, @created_at)
30
62
  `),
31
63
  reinforceChunk: db.prepare(`
@@ -45,9 +77,9 @@ export function prepareStatements(db) {
45
77
  WHERE id = @id
46
78
  `),
47
79
  upsertBlock: db.prepare(`
48
- INSERT INTO memory_blocks (agent_id, key, value, updated_at)
49
- VALUES (@agent_id, @key, @value, @updated_at)
50
- ON CONFLICT(agent_id, key) DO UPDATE
80
+ INSERT INTO memory_blocks (agent_id, scope, key, value, updated_at)
81
+ VALUES (@agent_id, @scope, @key, @value, @updated_at)
82
+ ON CONFLICT(agent_id, scope, key) DO UPDATE
51
83
  SET value = @value, updated_at = @updated_at
52
84
  `),
53
85
  };
@@ -59,10 +91,28 @@ export function prepareStatements(db) {
59
91
  * @param agentId - Agent namespace
60
92
  * @param kind - Chunk kind ('fact' or 'memory')
61
93
  * @param limit - Max rows to return (-1 for unlimited, default -1)
94
+ * @param scope - Optional scope filter (single scope or list)
62
95
  * @returns Array of chunks
63
96
  */
64
- export function getActiveChunks(stmts, agentId, kind, limit = -1) {
65
- return stmts.getActiveChunksByAgent.all(agentId, kind, limit);
97
+ export function getActiveChunks(stmts, agentId, kind, limit = -1, scope) {
98
+ const scopes = normalizeScopeFilter(scope);
99
+ if (!scopes) {
100
+ return stmts.getActiveChunksByAgent.all(agentId, kind, limit);
101
+ }
102
+ if (scopes.length === 0) {
103
+ return [];
104
+ }
105
+ if (scopes.length === 1) {
106
+ return stmts.getActiveChunksByAgentAndScope.all(agentId, kind, scopes[0], limit);
107
+ }
108
+ const placeholders = scopes.map(() => "?").join(", ");
109
+ const sql = `
110
+ SELECT * FROM chunks
111
+ WHERE agent_id = ? AND kind = ? AND scope IN (${placeholders}) AND superseded_by IS NULL
112
+ ORDER BY last_accessed_at DESC
113
+ LIMIT ?
114
+ `;
115
+ return stmts.db.prepare(sql).all(agentId, kind, ...scopes, limit);
66
116
  }
67
117
  /**
68
118
  * Get all active (non-superseded) chunks for an agent regardless of kind.
@@ -72,9 +122,27 @@ export function getActiveChunks(stmts, agentId, kind, limit = -1) {
72
122
  * @param stmts - Prepared statements
73
123
  * @param agentId - Agent namespace
74
124
  * @param limit - Max rows to return (-1 for unlimited, default -1)
125
+ * @param scope - Optional scope filter (single scope or list)
75
126
  * @returns Array of chunks (facts and memories combined)
76
127
  */
77
- export function getAllActiveChunks(stmts, agentId, limit = -1) {
78
- return stmts.getAllActiveChunksByAgent.all(agentId, limit);
128
+ export function getAllActiveChunks(stmts, agentId, limit = -1, scope) {
129
+ const scopes = normalizeScopeFilter(scope);
130
+ if (!scopes) {
131
+ return stmts.getAllActiveChunksByAgent.all(agentId, limit);
132
+ }
133
+ if (scopes.length === 0) {
134
+ return [];
135
+ }
136
+ if (scopes.length === 1) {
137
+ return stmts.getAllActiveChunksByAgentAndScope.all(agentId, scopes[0], limit);
138
+ }
139
+ const placeholders = scopes.map(() => "?").join(", ");
140
+ const sql = `
141
+ SELECT * FROM chunks
142
+ WHERE agent_id = ? AND scope IN (${placeholders}) AND superseded_by IS NULL
143
+ ORDER BY last_accessed_at DESC
144
+ LIMIT ?
145
+ `;
146
+ return stmts.db.prepare(sql).all(agentId, ...scopes, limit);
79
147
  }
80
148
  //# sourceMappingURL=db.js.map
package/dist/db.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAkBA;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAY;IAC7C,OAAO;QACN,iBAAiB,EAAE,EAAE,CAAC,OAAO,CAC5B,iFAAiF,CACjF;QAED,WAAW,EAAE,EAAE,CAAC,OAAO,CAAC,iCAAiC,CAAC;QAE1D,yBAAyB,EAAE,EAAE,CAAC,OAAO,CAAC;;;;;GAKrC,CAAC;QAEF,sBAAsB,EAAE,EAAE,CAAC,OAAO,CAAC;;;;;GAKlC,CAAC;QAEF,aAAa,EAAE,EAAE,CAAC,OAAO,CAAC,4DAA4D,CAAC;QAEvF,eAAe,EAAE,EAAE,CAAC,OAAO,CAC1B,4GAA4G,CAC5G;QAED,WAAW,EAAE,EAAE,CAAC,OAAO,CAAC;;;;;GAKvB,CAAC;QAEF,cAAc,EAAE,EAAE,CAAC,OAAO,CAAC;;;;;;;GAO1B,CAAC;QAEF,cAAc,EAAE,EAAE,CAAC,OAAO,CAAC,kDAAkD,CAAC;QAE9E,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC;;;;;;GAMtB,CAAC;QAEF,WAAW,EAAE,EAAE,CAAC,OAAO,CAAC;;;;;GAKvB,CAAC;KACF,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC9B,KAAmB,EACnB,OAAe,EACf,IAAuB,EACvB,KAAK,GAAG,CAAC,CAAC;IAEV,OAAO,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAY,CAAC;AAC1E,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAmB,EAAE,OAAe,EAAE,KAAK,GAAG,CAAC,CAAC;IAClF,OAAO,KAAK,CAAC,yBAAyB,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAY,CAAC;AACvE,CAAC"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -10,10 +10,11 @@ import type { HippoOptions } from "./types.js";
10
10
  * @returns Array of AgentTool instances (7 or 8 depending on messagesTable)
11
11
  */
12
12
  export declare function createHippoTools(opts: HippoOptions): AgentTool<any>[];
13
+ export { deleteChunk, updateChunk } from "./chunk-mutations.js";
13
14
  export type { EmbeddingProviderConfig } from "./providers/embedding.js";
14
15
  export { createEmbeddingProvider } from "./providers/embedding.js";
15
16
  export type { LlmProviderConfig } from "./providers/llm.js";
16
17
  export { createLlmProvider } from "./providers/llm.js";
17
18
  export { initSchema, verifyEmbeddingModel } from "./schema.js";
18
- export type { Chunk, ChunkKind, EmbedFn, HippoOptions, LlmClient, MemoryBlock, RememberFactAction, RememberFactsResult, SearchResult, } from "./types.js";
19
+ export type { Chunk, ChunkKind, EmbedFn, HippoOptions, LlmClient, MemoryBlock, RememberFactAction, RememberFactsResult, ScopeFilter, SearchResult, } from "./types.js";
19
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAa7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;;;;;;;GAQG;AAEH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CA4BrE;AAED,YAAY,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAE/D,YAAY,EACX,KAAK,EACL,SAAS,EACT,OAAO,EACP,YAAY,EACZ,SAAS,EACT,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,GACZ,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAa7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;;;;;;;GAQG;AAEH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CA6BrE;AAED,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAChE,YAAY,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAE/D,YAAY,EACX,KAAK,EACL,SAAS,EACT,OAAO,EACP,YAAY,EACZ,SAAS,EACT,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,EACX,YAAY,GACZ,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -14,17 +14,18 @@ import { createAppendMemoryBlockTool, createForgetMemoryTool, createRecallConver
14
14
  export function createHippoTools(opts) {
15
15
  initSchema(opts.db);
16
16
  const stmts = prepareStatements(opts.db);
17
- const common = { agentId: opts.agentId, stmts };
17
+ const common = { agentId: opts.agentId, scope: opts.scope, stmts };
18
18
  const withEmbed = { ...common, embed: opts.embed };
19
+ const recallScope = opts.recallScopes ?? (opts.scope !== undefined ? [opts.scope] : undefined);
19
20
  // biome-ignore lint/suspicious/noExplicitAny: AgentTool generics don't unify across different parameter schemas
20
21
  const tools = [
21
22
  createRememberFactsTool({ ...withEmbed, db: opts.db, llm: opts.llm }),
22
23
  createStoreMemoryTool(withEmbed),
23
- createRecallMemoriesTool(withEmbed),
24
+ createRecallMemoriesTool({ ...withEmbed, scope: recallScope }),
24
25
  createRecallMemoryBlockTool(common),
25
26
  createReplaceMemoryBlockTool(common),
26
27
  createAppendMemoryBlockTool(common),
27
- createForgetMemoryTool({ ...withEmbed, db: opts.db }),
28
+ createForgetMemoryTool({ ...withEmbed, db: opts.db, scope: recallScope }),
28
29
  ];
29
30
  if (opts.messagesTable) {
30
31
  tools.push(createRecallConversationTool({
@@ -34,6 +35,7 @@ export function createHippoTools(opts) {
34
35
  }
35
36
  return tools;
36
37
  }
38
+ export { deleteChunk, updateChunk } from "./chunk-mutations.js";
37
39
  export { createEmbeddingProvider } from "./providers/embedding.js";
38
40
  export { createLlmProvider } from "./providers/llm.js";
39
41
  export { initSchema, verifyEmbeddingModel } from "./schema.js";