@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.
Files changed (80) hide show
  1. package/README.md +416 -34
  2. package/_bin/aarch64-apple-darwin/libsochdb_storage.dylib +0 -0
  3. package/_bin/aarch64-apple-darwin/sochdb-bulk +0 -0
  4. package/_bin/aarch64-apple-darwin/sochdb-grpc-server +0 -0
  5. package/_bin/aarch64-apple-darwin/sochdb-server +0 -0
  6. package/_bin/x86_64-pc-windows-msvc/sochdb-bulk.exe +0 -0
  7. package/_bin/x86_64-pc-windows-msvc/sochdb-grpc-server.exe +0 -0
  8. package/_bin/x86_64-pc-windows-msvc/sochdb_storage.dll +0 -0
  9. package/_bin/x86_64-unknown-linux-gnu/libsochdb_storage.so +0 -0
  10. package/_bin/x86_64-unknown-linux-gnu/sochdb-bulk +0 -0
  11. package/_bin/x86_64-unknown-linux-gnu/sochdb-grpc-server +0 -0
  12. package/_bin/x86_64-unknown-linux-gnu/sochdb-server +0 -0
  13. package/bin/sochdb-bulk.js +1 -1
  14. package/bin/sochdb-grpc-server.js +1 -1
  15. package/bin/sochdb-server.js +1 -1
  16. package/dist/cjs/context-builder.js +280 -0
  17. package/dist/cjs/database.js +2 -2
  18. package/dist/cjs/embedded/database.js +2 -2
  19. package/dist/cjs/embedded/ffi/hnsw-bindings.js +295 -0
  20. package/dist/cjs/embedded/ffi/library-finder.js +10 -3
  21. package/dist/cjs/embedded/index.js +5 -2
  22. package/dist/cjs/errors.js +99 -7
  23. package/dist/cjs/index.js +46 -6
  24. package/dist/cjs/ipc-client.js +2 -2
  25. package/dist/cjs/memory/consolidation.js +202 -0
  26. package/dist/cjs/memory/extraction.js +181 -0
  27. package/dist/cjs/memory/index.js +26 -0
  28. package/dist/cjs/memory/retrieval.js +232 -0
  29. package/dist/cjs/memory/types.js +69 -0
  30. package/dist/cjs/namespace.js +255 -0
  31. package/dist/cjs/queue.js +289 -0
  32. package/dist/cjs/semantic-cache.js +220 -0
  33. package/dist/esm/context-builder.js +280 -0
  34. package/dist/esm/database.js +2 -2
  35. package/dist/esm/embedded/database.js +2 -2
  36. package/dist/esm/embedded/ffi/hnsw-bindings.js +316 -0
  37. package/dist/esm/embedded/ffi/library-finder.js +10 -3
  38. package/dist/esm/embedded/index.js +5 -2
  39. package/dist/esm/errors.js +107 -7
  40. package/dist/esm/index.js +46 -6
  41. package/dist/esm/ipc-client.js +2 -2
  42. package/dist/esm/memory/consolidation.js +206 -0
  43. package/dist/esm/memory/extraction.js +185 -0
  44. package/dist/esm/memory/index.js +26 -0
  45. package/dist/esm/memory/retrieval.js +243 -0
  46. package/dist/esm/memory/types.js +72 -0
  47. package/dist/esm/namespace.js +262 -0
  48. package/dist/esm/queue.js +291 -0
  49. package/dist/esm/semantic-cache.js +223 -0
  50. package/dist/types/context-builder.d.ts +97 -0
  51. package/dist/types/context-builder.d.ts.map +1 -0
  52. package/dist/types/database.d.ts +1 -1
  53. package/dist/types/embedded/database.d.ts +1 -1
  54. package/dist/types/embedded/ffi/hnsw-bindings.d.ts +90 -0
  55. package/dist/types/embedded/ffi/hnsw-bindings.d.ts.map +1 -0
  56. package/dist/types/embedded/ffi/library-finder.d.ts.map +1 -1
  57. package/dist/types/embedded/index.d.ts +1 -0
  58. package/dist/types/embedded/index.d.ts.map +1 -1
  59. package/dist/types/errors.d.ts +57 -1
  60. package/dist/types/errors.d.ts.map +1 -1
  61. package/dist/types/index.d.ts +15 -3
  62. package/dist/types/index.d.ts.map +1 -1
  63. package/dist/types/ipc-client.d.ts +1 -1
  64. package/dist/types/memory/consolidation.d.ts +66 -0
  65. package/dist/types/memory/consolidation.d.ts.map +1 -0
  66. package/dist/types/memory/extraction.d.ts +82 -0
  67. package/dist/types/memory/extraction.d.ts.map +1 -0
  68. package/dist/types/memory/index.d.ts +10 -0
  69. package/dist/types/memory/index.d.ts.map +1 -0
  70. package/dist/types/memory/retrieval.d.ts +46 -0
  71. package/dist/types/memory/retrieval.d.ts.map +1 -0
  72. package/dist/types/memory/types.d.ts +147 -0
  73. package/dist/types/memory/types.d.ts.map +1 -0
  74. package/dist/types/namespace.d.ts +129 -0
  75. package/dist/types/namespace.d.ts.map +1 -0
  76. package/dist/types/queue.d.ts +120 -0
  77. package/dist/types/queue.d.ts.map +1 -0
  78. package/dist/types/semantic-cache.d.ts +84 -0
  79. package/dist/types/semantic-cache.d.ts.map +1 -0
  80. 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.0",
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",