vesper-memory 0.3.0

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 (206) hide show
  1. package/.env.example +28 -0
  2. package/CHANGELOG.md +137 -0
  3. package/LICENSE +21 -0
  4. package/README.md +665 -0
  5. package/config/sqlite-schema.sql +413 -0
  6. package/dist/benchmark/index.d.ts +18 -0
  7. package/dist/benchmark/index.d.ts.map +1 -0
  8. package/dist/benchmark/index.js +19 -0
  9. package/dist/benchmark/index.js.map +1 -0
  10. package/dist/benchmark/metrics-collector.d.ts +90 -0
  11. package/dist/benchmark/metrics-collector.d.ts.map +1 -0
  12. package/dist/benchmark/metrics-collector.js +196 -0
  13. package/dist/benchmark/metrics-collector.js.map +1 -0
  14. package/dist/benchmark/report-generator.d.ts +35 -0
  15. package/dist/benchmark/report-generator.d.ts.map +1 -0
  16. package/dist/benchmark/report-generator.js +221 -0
  17. package/dist/benchmark/report-generator.js.map +1 -0
  18. package/dist/benchmark/runner.d.ts +30 -0
  19. package/dist/benchmark/runner.d.ts.map +1 -0
  20. package/dist/benchmark/runner.js +308 -0
  21. package/dist/benchmark/runner.js.map +1 -0
  22. package/dist/benchmark/scenarios/context-recall.d.ts +65 -0
  23. package/dist/benchmark/scenarios/context-recall.d.ts.map +1 -0
  24. package/dist/benchmark/scenarios/context-recall.js +180 -0
  25. package/dist/benchmark/scenarios/context-recall.js.map +1 -0
  26. package/dist/benchmark/scenarios/index.d.ts +34 -0
  27. package/dist/benchmark/scenarios/index.d.ts.map +1 -0
  28. package/dist/benchmark/scenarios/index.js +230 -0
  29. package/dist/benchmark/scenarios/index.js.map +1 -0
  30. package/dist/benchmark/statistics.d.ts +125 -0
  31. package/dist/benchmark/statistics.d.ts.map +1 -0
  32. package/dist/benchmark/statistics.js +520 -0
  33. package/dist/benchmark/statistics.js.map +1 -0
  34. package/dist/benchmark/types.d.ts +458 -0
  35. package/dist/benchmark/types.d.ts.map +1 -0
  36. package/dist/benchmark/types.js +297 -0
  37. package/dist/benchmark/types.js.map +1 -0
  38. package/dist/cli 2.js +583 -0
  39. package/dist/cli.d 2.ts +8 -0
  40. package/dist/cli.d.ts +8 -0
  41. package/dist/cli.d.ts 2.map +1 -0
  42. package/dist/cli.d.ts.map +1 -0
  43. package/dist/cli.js +583 -0
  44. package/dist/cli.js 2.map +1 -0
  45. package/dist/cli.js.map +1 -0
  46. package/dist/config/rate-limits.d.ts +76 -0
  47. package/dist/config/rate-limits.d.ts.map +1 -0
  48. package/dist/config/rate-limits.js +161 -0
  49. package/dist/config/rate-limits.js.map +1 -0
  50. package/dist/config 2/rate-limits.d.ts +76 -0
  51. package/dist/config 2/rate-limits.d.ts.map +1 -0
  52. package/dist/config 2/rate-limits.js +161 -0
  53. package/dist/config 2/rate-limits.js.map +1 -0
  54. package/dist/consolidation/pipeline.d.ts +52 -0
  55. package/dist/consolidation/pipeline.d.ts.map +1 -0
  56. package/dist/consolidation/pipeline.js +193 -0
  57. package/dist/consolidation/pipeline.js.map +1 -0
  58. package/dist/consolidation 2/pipeline.d.ts +52 -0
  59. package/dist/consolidation 2/pipeline.d.ts.map +1 -0
  60. package/dist/consolidation 2/pipeline.js +193 -0
  61. package/dist/consolidation 2/pipeline.js.map +1 -0
  62. package/dist/embeddings/client.d.ts +95 -0
  63. package/dist/embeddings/client.d.ts.map +1 -0
  64. package/dist/embeddings/client.js +162 -0
  65. package/dist/embeddings/client.js.map +1 -0
  66. package/dist/embeddings 2/client.d.ts +94 -0
  67. package/dist/embeddings 2/client.d.ts.map +1 -0
  68. package/dist/embeddings 2/client.js +144 -0
  69. package/dist/embeddings 2/client.js.map +1 -0
  70. package/dist/memory-layers/semantic-memory.d.ts +76 -0
  71. package/dist/memory-layers/semantic-memory.d.ts.map +1 -0
  72. package/dist/memory-layers/semantic-memory.js +231 -0
  73. package/dist/memory-layers/semantic-memory.js.map +1 -0
  74. package/dist/memory-layers/skill-library.d.ts +25 -0
  75. package/dist/memory-layers/skill-library.d.ts.map +1 -0
  76. package/dist/memory-layers/skill-library.js +54 -0
  77. package/dist/memory-layers/skill-library.js.map +1 -0
  78. package/dist/memory-layers/working-memory.d.ts +57 -0
  79. package/dist/memory-layers/working-memory.d.ts.map +1 -0
  80. package/dist/memory-layers/working-memory.js +153 -0
  81. package/dist/memory-layers/working-memory.js.map +1 -0
  82. package/dist/memory-layers 2/semantic-memory.d.ts +33 -0
  83. package/dist/memory-layers 2/semantic-memory.d.ts.map +1 -0
  84. package/dist/memory-layers 2/semantic-memory.js +114 -0
  85. package/dist/memory-layers 2/semantic-memory.js.map +1 -0
  86. package/dist/memory-layers 2/skill-library.d.ts +25 -0
  87. package/dist/memory-layers 2/skill-library.d.ts.map +1 -0
  88. package/dist/memory-layers 2/skill-library.js +54 -0
  89. package/dist/memory-layers 2/skill-library.js.map +1 -0
  90. package/dist/memory-layers 2/working-memory.d.ts +57 -0
  91. package/dist/memory-layers 2/working-memory.d.ts.map +1 -0
  92. package/dist/memory-layers 2/working-memory.js +153 -0
  93. package/dist/memory-layers 2/working-memory.js.map +1 -0
  94. package/dist/middleware/auth.d.ts +287 -0
  95. package/dist/middleware/auth.d.ts.map +1 -0
  96. package/dist/middleware/auth.js +610 -0
  97. package/dist/middleware/auth.js.map +1 -0
  98. package/dist/middleware 2/auth.d.ts +287 -0
  99. package/dist/middleware 2/auth.d.ts.map +1 -0
  100. package/dist/middleware 2/auth.js +610 -0
  101. package/dist/middleware 2/auth.js.map +1 -0
  102. package/dist/monitoring/health.d.ts +241 -0
  103. package/dist/monitoring/health.d.ts.map +1 -0
  104. package/dist/monitoring/health.js +649 -0
  105. package/dist/monitoring/health.js.map +1 -0
  106. package/dist/monitoring/metrics.d.ts +153 -0
  107. package/dist/monitoring/metrics.d.ts.map +1 -0
  108. package/dist/monitoring/metrics.js +349 -0
  109. package/dist/monitoring/metrics.js.map +1 -0
  110. package/dist/monitoring 2/health.d.ts +241 -0
  111. package/dist/monitoring 2/health.d.ts.map +1 -0
  112. package/dist/monitoring 2/health.js +649 -0
  113. package/dist/monitoring 2/health.js.map +1 -0
  114. package/dist/monitoring 2/metrics.d.ts +153 -0
  115. package/dist/monitoring 2/metrics.d.ts.map +1 -0
  116. package/dist/monitoring 2/metrics.js +349 -0
  117. package/dist/monitoring 2/metrics.js.map +1 -0
  118. package/dist/retrieval/hybrid-search.d.ts +186 -0
  119. package/dist/retrieval/hybrid-search.d.ts.map +1 -0
  120. package/dist/retrieval/hybrid-search.js +330 -0
  121. package/dist/retrieval/hybrid-search.js.map +1 -0
  122. package/dist/retrieval 2/hybrid-search.d.ts +186 -0
  123. package/dist/retrieval 2/hybrid-search.d.ts.map +1 -0
  124. package/dist/retrieval 2/hybrid-search.js +327 -0
  125. package/dist/retrieval 2/hybrid-search.js.map +1 -0
  126. package/dist/router/smart-router.d.ts +157 -0
  127. package/dist/router/smart-router.d.ts.map +1 -0
  128. package/dist/router/smart-router.js +524 -0
  129. package/dist/router/smart-router.js.map +1 -0
  130. package/dist/router 2/smart-router.d.ts +111 -0
  131. package/dist/router 2/smart-router.d.ts.map +1 -0
  132. package/dist/router 2/smart-router.js +383 -0
  133. package/dist/router 2/smart-router.js.map +1 -0
  134. package/dist/security/rate-limit-middleware.d.ts +119 -0
  135. package/dist/security/rate-limit-middleware.d.ts.map +1 -0
  136. package/dist/security/rate-limit-middleware.js +193 -0
  137. package/dist/security/rate-limit-middleware.js.map +1 -0
  138. package/dist/security 2/rate-limit-middleware.d.ts +119 -0
  139. package/dist/security 2/rate-limit-middleware.d.ts.map +1 -0
  140. package/dist/security 2/rate-limit-middleware.js +193 -0
  141. package/dist/security 2/rate-limit-middleware.js.map +1 -0
  142. package/dist/server 2.js +861 -0
  143. package/dist/server-wrapper 2.js +170 -0
  144. package/dist/server-wrapper.d 2.ts +12 -0
  145. package/dist/server-wrapper.d.ts +12 -0
  146. package/dist/server-wrapper.d.ts 2.map +1 -0
  147. package/dist/server-wrapper.d.ts.map +1 -0
  148. package/dist/server-wrapper.js +170 -0
  149. package/dist/server-wrapper.js 2.map +1 -0
  150. package/dist/server-wrapper.js.map +1 -0
  151. package/dist/server.d 2.ts +14 -0
  152. package/dist/server.d.ts +14 -0
  153. package/dist/server.d.ts 2.map +1 -0
  154. package/dist/server.d.ts.map +1 -0
  155. package/dist/server.js +656 -0
  156. package/dist/server.js 2.map +1 -0
  157. package/dist/server.js.map +1 -0
  158. package/dist/synthesis/conflict-detector.d.ts +43 -0
  159. package/dist/synthesis/conflict-detector.d.ts.map +1 -0
  160. package/dist/synthesis/conflict-detector.js +125 -0
  161. package/dist/synthesis/conflict-detector.js.map +1 -0
  162. package/dist/synthesis 2/conflict-detector.d.ts +43 -0
  163. package/dist/synthesis 2/conflict-detector.d.ts.map +1 -0
  164. package/dist/synthesis 2/conflict-detector.js +125 -0
  165. package/dist/synthesis 2/conflict-detector.js.map +1 -0
  166. package/dist/utils/monitoring.d.ts +25 -0
  167. package/dist/utils/monitoring.d.ts.map +1 -0
  168. package/dist/utils/monitoring.js +41 -0
  169. package/dist/utils/monitoring.js.map +1 -0
  170. package/dist/utils/rate-limiter.d.ts +97 -0
  171. package/dist/utils/rate-limiter.d.ts.map +1 -0
  172. package/dist/utils/rate-limiter.js +166 -0
  173. package/dist/utils/rate-limiter.js.map +1 -0
  174. package/dist/utils/validation.d.ts +139 -0
  175. package/dist/utils/validation.d.ts.map +1 -0
  176. package/dist/utils/validation.js +195 -0
  177. package/dist/utils/validation.js.map +1 -0
  178. package/dist/utils 2/monitoring.d.ts +25 -0
  179. package/dist/utils 2/monitoring.d.ts.map +1 -0
  180. package/dist/utils 2/monitoring.js +41 -0
  181. package/dist/utils 2/monitoring.js.map +1 -0
  182. package/dist/utils 2/rate-limiter.d.ts +97 -0
  183. package/dist/utils 2/rate-limiter.d.ts.map +1 -0
  184. package/dist/utils 2/rate-limiter.js +166 -0
  185. package/dist/utils 2/rate-limiter.js.map +1 -0
  186. package/dist/utils 2/validation.d.ts +139 -0
  187. package/dist/utils 2/validation.d.ts.map +1 -0
  188. package/dist/utils 2/validation.js +195 -0
  189. package/dist/utils 2/validation.js.map +1 -0
  190. package/docker-compose.yml +65 -0
  191. package/embedding-service/Dockerfile +29 -0
  192. package/embedding-service/README.md +68 -0
  193. package/embedding-service/requirements.txt +6 -0
  194. package/embedding-service/server.py +110 -0
  195. package/package.json +92 -0
  196. package/scripts/FRESH_INSTALL.md +280 -0
  197. package/scripts/README.md +101 -0
  198. package/scripts/ensure-infrastructure.sh +38 -0
  199. package/scripts/fresh-install-auto.sh +96 -0
  200. package/scripts/fresh-install.sh +167 -0
  201. package/scripts/health-check.sh +72 -0
  202. package/scripts/init-qdrant.ts +201 -0
  203. package/scripts/postinstall.js +94 -0
  204. package/scripts/run-accuracy-benchmark.ts +1237 -0
  205. package/scripts/run-real-benchmark.ts +581 -0
  206. package/scripts/test-mcp-server.sh +38 -0
@@ -0,0 +1,162 @@
1
+ /**
2
+ * BGE-large Embedding Client
3
+ *
4
+ * TypeScript client for the BGE-large embedding service.
5
+ * Provides methods for generating 1024-dimensional dense embeddings.
6
+ */
7
+ import { LRUCache } from 'lru-cache';
8
+ /**
9
+ * BGE-large Embedding Client
10
+ *
11
+ * Communicates with the Python embedding service to generate
12
+ * 1024-dimensional dense embeddings using BGE-large-en-v1.5.
13
+ */
14
+ export class EmbeddingClient {
15
+ serviceUrl;
16
+ timeout;
17
+ maxRetries;
18
+ embeddingCache;
19
+ constructor(config = {}) {
20
+ this.serviceUrl = config.serviceUrl || process.env.EMBEDDING_SERVICE_URL || 'http://localhost:8000';
21
+ this.timeout = config.timeout || 30000;
22
+ this.maxRetries = config.maxRetries || 3;
23
+ // Initialize LRU cache for embeddings (1000 entries, 1 hour TTL)
24
+ this.embeddingCache = new LRUCache({
25
+ max: 1000,
26
+ ttl: 1000 * 60 * 60, // 1 hour
27
+ });
28
+ }
29
+ /**
30
+ * Check if the embedding service is healthy
31
+ *
32
+ * @returns Health status and model information
33
+ */
34
+ async health() {
35
+ const response = await this.fetchWithRetry(`${this.serviceUrl}/health`, {
36
+ method: 'GET',
37
+ });
38
+ if (!response.ok) {
39
+ throw new Error(`Health check failed: ${response.status} ${response.statusText}`);
40
+ }
41
+ return (await response.json());
42
+ }
43
+ /**
44
+ * Generate embedding for a single text
45
+ *
46
+ * @param text - Text to embed
47
+ * @param normalize - Whether to normalize the embedding (default: true)
48
+ * @returns 1024-dimensional embedding vector
49
+ */
50
+ async embed(text, normalize = true) {
51
+ // Create cache key from text and normalize flag
52
+ const cacheKey = `${text}:${normalize}`;
53
+ // Check cache first
54
+ const cached = this.embeddingCache.get(cacheKey);
55
+ if (cached) {
56
+ return cached;
57
+ }
58
+ // Cache miss - generate embedding
59
+ const response = await this.embedBatch([text], normalize);
60
+ const embedding = response.embeddings[0];
61
+ // Store in cache
62
+ this.embeddingCache.set(cacheKey, embedding);
63
+ return embedding;
64
+ }
65
+ /**
66
+ * Generate embeddings for multiple texts
67
+ *
68
+ * @param texts - Array of texts to embed
69
+ * @param normalize - Whether to normalize embeddings (default: true)
70
+ * @returns Array of 1024-dimensional embedding vectors
71
+ */
72
+ async embedBatch(texts, normalize = true) {
73
+ if (texts.length === 0) {
74
+ return {
75
+ embeddings: [],
76
+ dimensions: 1024,
77
+ count: 0,
78
+ };
79
+ }
80
+ const response = await this.fetchWithRetry(`${this.serviceUrl}/embed`, {
81
+ method: 'POST',
82
+ headers: {
83
+ 'Content-Type': 'application/json',
84
+ },
85
+ body: JSON.stringify({
86
+ text: texts,
87
+ normalize,
88
+ }),
89
+ });
90
+ if (!response.ok) {
91
+ const error = await response.text();
92
+ throw new Error(`Embedding generation failed: ${response.status} ${error}`);
93
+ }
94
+ const result = (await response.json());
95
+ // Validate dimensions
96
+ if (result.dimensions !== 1024) {
97
+ throw new Error(`Expected 1024-dimensional embeddings, got ${result.dimensions}`);
98
+ }
99
+ // Validate count
100
+ if (result.count !== texts.length) {
101
+ throw new Error(`Expected ${texts.length} embeddings, got ${result.count}`);
102
+ }
103
+ return result;
104
+ }
105
+ /**
106
+ * Generate embeddings with optimized batching
107
+ *
108
+ * Automatically splits large batches to avoid memory issues
109
+ * and timeouts on the embedding service.
110
+ *
111
+ * @param texts - Array of texts to embed
112
+ * @param batchSize - Number of texts per batch (default: 32)
113
+ * @returns Array of 1024-dimensional embedding vectors
114
+ */
115
+ async embedLargeBatch(texts, batchSize = 32) {
116
+ const allEmbeddings = [];
117
+ for (let i = 0; i < texts.length; i += batchSize) {
118
+ const batch = texts.slice(i, i + batchSize);
119
+ const response = await this.embedBatch(batch);
120
+ allEmbeddings.push(...response.embeddings);
121
+ }
122
+ return allEmbeddings;
123
+ }
124
+ /**
125
+ * Fetch with automatic retry on failure
126
+ *
127
+ * @param url - URL to fetch
128
+ * @param options - Fetch options
129
+ * @returns Response
130
+ */
131
+ async fetchWithRetry(url, options, retries = 0) {
132
+ try {
133
+ const controller = new AbortController();
134
+ const timeoutId = setTimeout(() => controller.abort(), this.timeout);
135
+ const response = await fetch(url, {
136
+ ...options,
137
+ signal: controller.signal,
138
+ });
139
+ clearTimeout(timeoutId);
140
+ return response;
141
+ }
142
+ catch (error) {
143
+ if (retries < this.maxRetries) {
144
+ // Wait before retrying (exponential backoff)
145
+ const delay = Math.pow(2, retries) * 1000;
146
+ await new Promise((resolve) => setTimeout(resolve, delay));
147
+ return this.fetchWithRetry(url, options, retries + 1);
148
+ }
149
+ throw new Error(`Embedding service request failed after ${this.maxRetries} retries: ${error instanceof Error ? error.message : String(error)}`);
150
+ }
151
+ }
152
+ }
153
+ /**
154
+ * Factory function to create an embedding client
155
+ *
156
+ * @param config - Optional configuration
157
+ * @returns Embedding client instance
158
+ */
159
+ export function createEmbeddingClient(config) {
160
+ return new EmbeddingClient(config);
161
+ }
162
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/embeddings/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * BGE-large Embedding Client
3
+ *
4
+ * TypeScript client for the BGE-large embedding service.
5
+ * Provides methods for generating 1024-dimensional dense embeddings.
6
+ */
7
+ /**
8
+ * Embedding service response
9
+ */
10
+ export interface EmbeddingResponse {
11
+ embeddings: number[][];
12
+ dimensions: number;
13
+ count: number;
14
+ }
15
+ /**
16
+ * Health check response
17
+ */
18
+ export interface HealthResponse {
19
+ status: string;
20
+ model: string;
21
+ dimensions: number;
22
+ }
23
+ /**
24
+ * BGE-large embedding client configuration
25
+ */
26
+ export interface EmbeddingClientConfig {
27
+ /** Embedding service URL (default: http://localhost:8000) */
28
+ serviceUrl?: string;
29
+ /** Request timeout in milliseconds (default: 30000) */
30
+ timeout?: number;
31
+ /** Maximum retries on failure (default: 3) */
32
+ maxRetries?: number;
33
+ }
34
+ /**
35
+ * BGE-large Embedding Client
36
+ *
37
+ * Communicates with the Python embedding service to generate
38
+ * 1024-dimensional dense embeddings using BGE-large-en-v1.5.
39
+ */
40
+ export declare class EmbeddingClient {
41
+ private serviceUrl;
42
+ private timeout;
43
+ private maxRetries;
44
+ constructor(config?: EmbeddingClientConfig);
45
+ /**
46
+ * Check if the embedding service is healthy
47
+ *
48
+ * @returns Health status and model information
49
+ */
50
+ health(): Promise<HealthResponse>;
51
+ /**
52
+ * Generate embedding for a single text
53
+ *
54
+ * @param text - Text to embed
55
+ * @param normalize - Whether to normalize the embedding (default: true)
56
+ * @returns 1024-dimensional embedding vector
57
+ */
58
+ embed(text: string, normalize?: boolean): Promise<number[]>;
59
+ /**
60
+ * Generate embeddings for multiple texts
61
+ *
62
+ * @param texts - Array of texts to embed
63
+ * @param normalize - Whether to normalize embeddings (default: true)
64
+ * @returns Array of 1024-dimensional embedding vectors
65
+ */
66
+ embedBatch(texts: string[], normalize?: boolean): Promise<EmbeddingResponse>;
67
+ /**
68
+ * Generate embeddings with optimized batching
69
+ *
70
+ * Automatically splits large batches to avoid memory issues
71
+ * and timeouts on the embedding service.
72
+ *
73
+ * @param texts - Array of texts to embed
74
+ * @param batchSize - Number of texts per batch (default: 32)
75
+ * @returns Array of 1024-dimensional embedding vectors
76
+ */
77
+ embedLargeBatch(texts: string[], batchSize?: number): Promise<number[][]>;
78
+ /**
79
+ * Fetch with automatic retry on failure
80
+ *
81
+ * @param url - URL to fetch
82
+ * @param options - Fetch options
83
+ * @returns Response
84
+ */
85
+ private fetchWithRetry;
86
+ }
87
+ /**
88
+ * Factory function to create an embedding client
89
+ *
90
+ * @param config - Optional configuration
91
+ * @returns Embedding client instance
92
+ */
93
+ export declare function createEmbeddingClient(config?: EmbeddingClientConfig): EmbeddingClient;
94
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/embeddings/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,GAAE,qBAA0B;IAM9C;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;IAYvC;;;;;;OAMG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,OAAc,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAKvE;;;;;;OAMG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,GAAE,OAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA4CxF;;;;;;;;;OASG;IACG,eAAe,CACnB,KAAK,EAAE,MAAM,EAAE,EACf,SAAS,GAAE,MAAW,GACrB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAYtB;;;;;;OAMG;YACW,cAAc;CA6B7B;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,CAAC,EAAE,qBAAqB,GAC7B,eAAe,CAEjB"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * BGE-large Embedding Client
3
+ *
4
+ * TypeScript client for the BGE-large embedding service.
5
+ * Provides methods for generating 1024-dimensional dense embeddings.
6
+ */
7
+ /**
8
+ * BGE-large Embedding Client
9
+ *
10
+ * Communicates with the Python embedding service to generate
11
+ * 1024-dimensional dense embeddings using BGE-large-en-v1.5.
12
+ */
13
+ export class EmbeddingClient {
14
+ serviceUrl;
15
+ timeout;
16
+ maxRetries;
17
+ constructor(config = {}) {
18
+ this.serviceUrl = config.serviceUrl || process.env.EMBEDDING_SERVICE_URL || 'http://localhost:8000';
19
+ this.timeout = config.timeout || 30000;
20
+ this.maxRetries = config.maxRetries || 3;
21
+ }
22
+ /**
23
+ * Check if the embedding service is healthy
24
+ *
25
+ * @returns Health status and model information
26
+ */
27
+ async health() {
28
+ const response = await this.fetchWithRetry(`${this.serviceUrl}/health`, {
29
+ method: 'GET',
30
+ });
31
+ if (!response.ok) {
32
+ throw new Error(`Health check failed: ${response.status} ${response.statusText}`);
33
+ }
34
+ return (await response.json());
35
+ }
36
+ /**
37
+ * Generate embedding for a single text
38
+ *
39
+ * @param text - Text to embed
40
+ * @param normalize - Whether to normalize the embedding (default: true)
41
+ * @returns 1024-dimensional embedding vector
42
+ */
43
+ async embed(text, normalize = true) {
44
+ const response = await this.embedBatch([text], normalize);
45
+ return response.embeddings[0];
46
+ }
47
+ /**
48
+ * Generate embeddings for multiple texts
49
+ *
50
+ * @param texts - Array of texts to embed
51
+ * @param normalize - Whether to normalize embeddings (default: true)
52
+ * @returns Array of 1024-dimensional embedding vectors
53
+ */
54
+ async embedBatch(texts, normalize = true) {
55
+ if (texts.length === 0) {
56
+ return {
57
+ embeddings: [],
58
+ dimensions: 1024,
59
+ count: 0,
60
+ };
61
+ }
62
+ const response = await this.fetchWithRetry(`${this.serviceUrl}/embed`, {
63
+ method: 'POST',
64
+ headers: {
65
+ 'Content-Type': 'application/json',
66
+ },
67
+ body: JSON.stringify({
68
+ text: texts,
69
+ normalize,
70
+ }),
71
+ });
72
+ if (!response.ok) {
73
+ const error = await response.text();
74
+ throw new Error(`Embedding generation failed: ${response.status} ${error}`);
75
+ }
76
+ const result = (await response.json());
77
+ // Validate dimensions
78
+ if (result.dimensions !== 1024) {
79
+ throw new Error(`Expected 1024-dimensional embeddings, got ${result.dimensions}`);
80
+ }
81
+ // Validate count
82
+ if (result.count !== texts.length) {
83
+ throw new Error(`Expected ${texts.length} embeddings, got ${result.count}`);
84
+ }
85
+ return result;
86
+ }
87
+ /**
88
+ * Generate embeddings with optimized batching
89
+ *
90
+ * Automatically splits large batches to avoid memory issues
91
+ * and timeouts on the embedding service.
92
+ *
93
+ * @param texts - Array of texts to embed
94
+ * @param batchSize - Number of texts per batch (default: 32)
95
+ * @returns Array of 1024-dimensional embedding vectors
96
+ */
97
+ async embedLargeBatch(texts, batchSize = 32) {
98
+ const allEmbeddings = [];
99
+ for (let i = 0; i < texts.length; i += batchSize) {
100
+ const batch = texts.slice(i, i + batchSize);
101
+ const response = await this.embedBatch(batch);
102
+ allEmbeddings.push(...response.embeddings);
103
+ }
104
+ return allEmbeddings;
105
+ }
106
+ /**
107
+ * Fetch with automatic retry on failure
108
+ *
109
+ * @param url - URL to fetch
110
+ * @param options - Fetch options
111
+ * @returns Response
112
+ */
113
+ async fetchWithRetry(url, options, retries = 0) {
114
+ try {
115
+ const controller = new AbortController();
116
+ const timeoutId = setTimeout(() => controller.abort(), this.timeout);
117
+ const response = await fetch(url, {
118
+ ...options,
119
+ signal: controller.signal,
120
+ });
121
+ clearTimeout(timeoutId);
122
+ return response;
123
+ }
124
+ catch (error) {
125
+ if (retries < this.maxRetries) {
126
+ // Wait before retrying (exponential backoff)
127
+ const delay = Math.pow(2, retries) * 1000;
128
+ await new Promise((resolve) => setTimeout(resolve, delay));
129
+ return this.fetchWithRetry(url, options, retries + 1);
130
+ }
131
+ throw new Error(`Embedding service request failed after ${this.maxRetries} retries: ${error instanceof Error ? error.message : String(error)}`);
132
+ }
133
+ }
134
+ }
135
+ /**
136
+ * Factory function to create an embedding client
137
+ *
138
+ * @param config - Optional configuration
139
+ * @returns Embedding client instance
140
+ */
141
+ export function createEmbeddingClient(config) {
142
+ return new EmbeddingClient(config);
143
+ }
144
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/embeddings/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Semantic Memory Layer - v3.0 Implementation
3
+ *
4
+ * SQLite knowledge graph with HippoRAG Personalized PageRank.
5
+ */
6
+ import Database from 'better-sqlite3';
7
+ export interface Entity {
8
+ id: string;
9
+ name: string;
10
+ type: 'person' | 'project' | 'concept' | 'preference';
11
+ description?: string;
12
+ confidence: number;
13
+ }
14
+ export interface Fact {
15
+ id: string;
16
+ entity_id: string;
17
+ property: string;
18
+ value: string;
19
+ confidence: number;
20
+ valid_from?: string;
21
+ valid_until?: string;
22
+ source_conversation?: string;
23
+ }
24
+ export interface TraversalPath {
25
+ sourceId: string;
26
+ targetId: string;
27
+ hops: number;
28
+ path: string[];
29
+ relationType: string;
30
+ }
31
+ export interface FactChain {
32
+ targetId: string;
33
+ targetName: string;
34
+ intermediaries: string[];
35
+ totalScore: number;
36
+ }
37
+ export interface PageRankWithFactsResult {
38
+ entities: Array<Entity & {
39
+ relevanceScore: number;
40
+ }>;
41
+ facts: Fact[];
42
+ paths: TraversalPath[];
43
+ chains?: FactChain[];
44
+ }
45
+ export declare class SemanticMemoryLayer {
46
+ private db;
47
+ constructor(db: Database.Database);
48
+ upsertEntity(entity: Partial<Entity> & {
49
+ name: string;
50
+ type: string;
51
+ }): Entity;
52
+ getEntity(name: string): any | null;
53
+ upsertRelationship(rel: {
54
+ sourceId: string;
55
+ targetId: string;
56
+ relationType: string;
57
+ strength?: number;
58
+ }): void;
59
+ personalizedPageRank(entityId: string, depth?: number): any[];
60
+ /**
61
+ * Enhanced Personalized PageRank with fact retrieval for multi-hop reasoning.
62
+ *
63
+ * Returns both entities AND their associated facts along the traversal path,
64
+ * enabling multi-hop query answering (e.g., "What protocol does Vesper follow?"
65
+ * can chain Vesper -> MCP -> "Model Context Protocol").
66
+ *
67
+ * @param entityId - Starting entity ID for traversal
68
+ * @param depth - Maximum hops to traverse (default: 3 for multi-hop queries)
69
+ * @returns PageRankWithFactsResult containing entities, facts, paths, and chains
70
+ */
71
+ personalizedPageRankWithFacts(entityId: string, depth?: number): PageRankWithFactsResult;
72
+ applyTemporalDecay(): number;
73
+ getPreferences(domain?: string): any[];
74
+ getByTimeRange(start?: Date, end?: Date): any[];
75
+ }
76
+ //# sourceMappingURL=semantic-memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-memory.d.ts","sourceRoot":"","sources":["../../src/memory-layers/semantic-memory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,KAAK,CAAC,MAAM,GAAG;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;CACtB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,EAAE,CAAoB;gBAElB,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAIjC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAiC9E,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI;IAcnC,kBAAkB,CAAC,GAAG,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAuB9G,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,GAAG,EAAE;IAmChE;;;;;;;;;;OAUG;IACH,6BAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,uBAAuB;IAyI3F,kBAAkB,IAAI,MAAM;IAgB5B,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,GAAG,EAAE;IAStC,cAAc,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE;CAgBhD"}