@sochdb/sochdb 0.4.0 → 0.4.2
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 +416 -34
- package/_bin/aarch64-apple-darwin/libsochdb_storage.dylib +0 -0
- package/_bin/aarch64-apple-darwin/sochdb-bulk +0 -0
- package/_bin/aarch64-apple-darwin/sochdb-grpc-server +0 -0
- package/_bin/aarch64-apple-darwin/sochdb-server +0 -0
- package/_bin/x86_64-pc-windows-msvc/sochdb-bulk.exe +0 -0
- package/_bin/x86_64-pc-windows-msvc/sochdb-grpc-server.exe +0 -0
- package/_bin/x86_64-pc-windows-msvc/sochdb_storage.dll +0 -0
- package/_bin/x86_64-unknown-linux-gnu/libsochdb_storage.so +0 -0
- package/_bin/x86_64-unknown-linux-gnu/sochdb-bulk +0 -0
- package/_bin/x86_64-unknown-linux-gnu/sochdb-grpc-server +0 -0
- package/_bin/x86_64-unknown-linux-gnu/sochdb-server +0 -0
- package/bin/sochdb-bulk.js +1 -1
- package/bin/sochdb-grpc-server.js +1 -1
- package/bin/sochdb-server.js +1 -1
- package/dist/cjs/context-builder.js +280 -0
- package/dist/cjs/database.js +2 -2
- package/dist/cjs/embedded/database.js +2 -2
- package/dist/cjs/embedded/ffi/hnsw-bindings.js +295 -0
- package/dist/cjs/embedded/ffi/library-finder.js +10 -3
- package/dist/cjs/embedded/index.js +5 -2
- package/dist/cjs/errors.js +99 -7
- package/dist/cjs/index.js +46 -6
- package/dist/cjs/ipc-client.js +2 -2
- package/dist/cjs/memory/consolidation.js +202 -0
- package/dist/cjs/memory/extraction.js +181 -0
- package/dist/cjs/memory/index.js +26 -0
- package/dist/cjs/memory/retrieval.js +232 -0
- package/dist/cjs/memory/types.js +69 -0
- package/dist/cjs/namespace.js +255 -0
- package/dist/cjs/queue.js +289 -0
- package/dist/cjs/semantic-cache.js +220 -0
- package/dist/esm/context-builder.js +280 -0
- package/dist/esm/database.js +2 -2
- package/dist/esm/embedded/database.js +2 -2
- package/dist/esm/embedded/ffi/hnsw-bindings.js +316 -0
- package/dist/esm/embedded/ffi/library-finder.js +10 -3
- package/dist/esm/embedded/index.js +5 -2
- package/dist/esm/errors.js +107 -7
- package/dist/esm/index.js +46 -6
- package/dist/esm/ipc-client.js +2 -2
- package/dist/esm/memory/consolidation.js +206 -0
- package/dist/esm/memory/extraction.js +185 -0
- package/dist/esm/memory/index.js +26 -0
- package/dist/esm/memory/retrieval.js +243 -0
- package/dist/esm/memory/types.js +72 -0
- package/dist/esm/namespace.js +262 -0
- package/dist/esm/queue.js +291 -0
- package/dist/esm/semantic-cache.js +223 -0
- package/dist/types/context-builder.d.ts +97 -0
- package/dist/types/context-builder.d.ts.map +1 -0
- package/dist/types/database.d.ts +1 -1
- package/dist/types/embedded/database.d.ts +1 -1
- package/dist/types/embedded/ffi/hnsw-bindings.d.ts +90 -0
- package/dist/types/embedded/ffi/hnsw-bindings.d.ts.map +1 -0
- package/dist/types/embedded/ffi/library-finder.d.ts.map +1 -1
- package/dist/types/embedded/index.d.ts +1 -0
- package/dist/types/embedded/index.d.ts.map +1 -1
- package/dist/types/errors.d.ts +57 -1
- package/dist/types/errors.d.ts.map +1 -1
- package/dist/types/index.d.ts +15 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/ipc-client.d.ts +1 -1
- package/dist/types/memory/consolidation.d.ts +66 -0
- package/dist/types/memory/consolidation.d.ts.map +1 -0
- package/dist/types/memory/extraction.d.ts +82 -0
- package/dist/types/memory/extraction.d.ts.map +1 -0
- package/dist/types/memory/index.d.ts +10 -0
- package/dist/types/memory/index.d.ts.map +1 -0
- package/dist/types/memory/retrieval.d.ts +46 -0
- package/dist/types/memory/retrieval.d.ts.map +1 -0
- package/dist/types/memory/types.d.ts +147 -0
- package/dist/types/memory/types.d.ts.map +1 -0
- package/dist/types/namespace.d.ts +129 -0
- package/dist/types/namespace.d.ts.map +1 -0
- package/dist/types/queue.d.ts +120 -0
- package/dist/types/queue.d.ts.map +1 -0
- package/dist/types/semantic-cache.d.ts +84 -0
- package/dist/types/semantic-cache.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic Cache for LLM responses
|
|
3
|
+
*
|
|
4
|
+
* Cache LLM responses with similarity-based retrieval for cost savings.
|
|
5
|
+
* Uses database prefix scanning to store and retrieve cached responses.
|
|
6
|
+
*/
|
|
7
|
+
import { EmbeddedDatabase } from './embedded';
|
|
8
|
+
export interface CacheEntry {
|
|
9
|
+
key: string;
|
|
10
|
+
value: string;
|
|
11
|
+
embedding: number[];
|
|
12
|
+
timestamp: number;
|
|
13
|
+
ttl?: number;
|
|
14
|
+
metadata?: Record<string, any>;
|
|
15
|
+
}
|
|
16
|
+
export interface CacheHit extends CacheEntry {
|
|
17
|
+
score: number;
|
|
18
|
+
}
|
|
19
|
+
export interface CacheStats {
|
|
20
|
+
count: number;
|
|
21
|
+
hits: number;
|
|
22
|
+
misses: number;
|
|
23
|
+
hitRate: number;
|
|
24
|
+
memoryUsage: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Semantic Cache with vector similarity matching
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* const cache = new SemanticCache(db, 'llm_responses');
|
|
32
|
+
*
|
|
33
|
+
* // Store response
|
|
34
|
+
* await cache.put(
|
|
35
|
+
* 'What is Python?',
|
|
36
|
+
* 'Python is a high-level programming language...',
|
|
37
|
+
* embedding,
|
|
38
|
+
* 3600 // TTL in seconds
|
|
39
|
+
* );
|
|
40
|
+
*
|
|
41
|
+
* // Check cache
|
|
42
|
+
* const hit = await cache.get(queryEmbedding, 0.85);
|
|
43
|
+
* if (hit) {
|
|
44
|
+
* console.log(`Cache HIT: ${hit.value} (similarity: ${hit.score})`);
|
|
45
|
+
* }
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare class SemanticCache {
|
|
49
|
+
private db;
|
|
50
|
+
private cacheName;
|
|
51
|
+
private prefix;
|
|
52
|
+
private hits;
|
|
53
|
+
private misses;
|
|
54
|
+
constructor(db: EmbeddedDatabase, cacheName: string);
|
|
55
|
+
/**
|
|
56
|
+
* Store a cached response
|
|
57
|
+
*/
|
|
58
|
+
put(key: string, value: string, embedding: number[], ttlSeconds?: number, metadata?: Record<string, any>): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Retrieve cached response by similarity
|
|
61
|
+
*
|
|
62
|
+
* @param queryEmbedding - Query embedding vector
|
|
63
|
+
* @param threshold - Minimum cosine similarity (0-1)
|
|
64
|
+
* @returns Best matching cache entry or null
|
|
65
|
+
*/
|
|
66
|
+
get(queryEmbedding: number[], threshold?: number): Promise<CacheHit | null>;
|
|
67
|
+
/**
|
|
68
|
+
* Delete a specific cache entry
|
|
69
|
+
*/
|
|
70
|
+
delete(key: string): Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* Clear all entries in this cache
|
|
73
|
+
*/
|
|
74
|
+
clear(): Promise<number>;
|
|
75
|
+
/**
|
|
76
|
+
* Get cache statistics
|
|
77
|
+
*/
|
|
78
|
+
stats(): Promise<CacheStats>;
|
|
79
|
+
/**
|
|
80
|
+
* Purge expired entries
|
|
81
|
+
*/
|
|
82
|
+
purgeExpired(): Promise<number>;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=semantic-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-cache.d.ts","sourceRoot":"","sources":["../../src/semantic-cache.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA2B9C,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,QAAS,SAAQ,UAAU;IAC1C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAAmB;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,MAAM,CAAK;gBAEP,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM;IAMnD;;OAEG;IACG,GAAG,CACP,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EAAE,EACnB,UAAU,SAAI,EACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,OAAO,CAAC,IAAI,CAAC;IAkBhB;;;;;;OAMG;IACG,GAAG,CACP,cAAc,EAAE,MAAM,EAAE,EACxB,SAAS,SAAO,GACf,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IA0C3B;;OAEG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAyB9B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC;IAoClC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;CA6BtC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sochdb/sochdb",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "SochDB is an AI-native database with token-optimized output, O(|path|) lookups, built-in vector search, and durable transactions.",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|