@nxuss/lemma 0.1.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 (179) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +311 -0
  3. package/dist/cloud/KeyManager.d.ts +29 -0
  4. package/dist/cloud/KeyManager.d.ts.map +1 -0
  5. package/dist/cloud/KeyManager.js +142 -0
  6. package/dist/cloud/KeyManager.js.map +1 -0
  7. package/dist/cloud/TenantCache.d.ts +29 -0
  8. package/dist/cloud/TenantCache.d.ts.map +1 -0
  9. package/dist/cloud/TenantCache.js +162 -0
  10. package/dist/cloud/TenantCache.js.map +1 -0
  11. package/dist/cloud/index.d.ts +4 -0
  12. package/dist/cloud/index.d.ts.map +1 -0
  13. package/dist/cloud/index.js +23 -0
  14. package/dist/cloud/index.js.map +1 -0
  15. package/dist/cloud/server.d.ts +17 -0
  16. package/dist/cloud/server.d.ts.map +1 -0
  17. package/dist/cloud/server.js +189 -0
  18. package/dist/cloud/server.js.map +1 -0
  19. package/dist/cloud/types.d.ts +35 -0
  20. package/dist/cloud/types.d.ts.map +1 -0
  21. package/dist/cloud/types.js +14 -0
  22. package/dist/cloud/types.js.map +1 -0
  23. package/dist/config/index.d.ts +44 -0
  24. package/dist/config/index.d.ts.map +1 -0
  25. package/dist/config/index.js +161 -0
  26. package/dist/config/index.js.map +1 -0
  27. package/dist/consensus/ConsensusEngine.d.ts +119 -0
  28. package/dist/consensus/ConsensusEngine.d.ts.map +1 -0
  29. package/dist/consensus/ConsensusEngine.js +314 -0
  30. package/dist/consensus/ConsensusEngine.js.map +1 -0
  31. package/dist/consensus/ModelPool.d.ts +103 -0
  32. package/dist/consensus/ModelPool.d.ts.map +1 -0
  33. package/dist/consensus/ModelPool.js +276 -0
  34. package/dist/consensus/ModelPool.js.map +1 -0
  35. package/dist/consensus/index.d.ts +8 -0
  36. package/dist/consensus/index.d.ts.map +1 -0
  37. package/dist/consensus/index.js +13 -0
  38. package/dist/consensus/index.js.map +1 -0
  39. package/dist/core/AgentRegistry.d.ts +89 -0
  40. package/dist/core/AgentRegistry.d.ts.map +1 -0
  41. package/dist/core/AgentRegistry.js +264 -0
  42. package/dist/core/AgentRegistry.js.map +1 -0
  43. package/dist/core/DashboardBroadcaster.d.ts +67 -0
  44. package/dist/core/DashboardBroadcaster.d.ts.map +1 -0
  45. package/dist/core/DashboardBroadcaster.js +264 -0
  46. package/dist/core/DashboardBroadcaster.js.map +1 -0
  47. package/dist/core/OrchestrationEngine.d.ts +84 -0
  48. package/dist/core/OrchestrationEngine.d.ts.map +1 -0
  49. package/dist/core/OrchestrationEngine.js +455 -0
  50. package/dist/core/OrchestrationEngine.js.map +1 -0
  51. package/dist/core/SubconsciousEngine.d.ts +53 -0
  52. package/dist/core/SubconsciousEngine.d.ts.map +1 -0
  53. package/dist/core/SubconsciousEngine.js +273 -0
  54. package/dist/core/SubconsciousEngine.js.map +1 -0
  55. package/dist/core/WebSocketServer.d.ts +89 -0
  56. package/dist/core/WebSocketServer.d.ts.map +1 -0
  57. package/dist/core/WebSocketServer.js +416 -0
  58. package/dist/core/WebSocketServer.js.map +1 -0
  59. package/dist/core/index.d.ts +15 -0
  60. package/dist/core/index.d.ts.map +1 -0
  61. package/dist/core/index.js +24 -0
  62. package/dist/core/index.js.map +1 -0
  63. package/dist/core/router.d.ts +105 -0
  64. package/dist/core/router.d.ts.map +1 -0
  65. package/dist/core/router.js +420 -0
  66. package/dist/core/router.js.map +1 -0
  67. package/dist/embed/index.d.ts +153 -0
  68. package/dist/embed/index.d.ts.map +1 -0
  69. package/dist/embed/index.js +408 -0
  70. package/dist/embed/index.js.map +1 -0
  71. package/dist/embed.d.ts +11 -0
  72. package/dist/embed.d.ts.map +1 -0
  73. package/dist/embed.js +19 -0
  74. package/dist/embed.js.map +1 -0
  75. package/dist/index.d.ts +83 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +176 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/protocol/flows.d.ts +126 -0
  80. package/dist/protocol/flows.d.ts.map +1 -0
  81. package/dist/protocol/flows.js +347 -0
  82. package/dist/protocol/flows.js.map +1 -0
  83. package/dist/protocol/iap.d.ts +54 -0
  84. package/dist/protocol/iap.d.ts.map +1 -0
  85. package/dist/protocol/iap.js +108 -0
  86. package/dist/protocol/iap.js.map +1 -0
  87. package/dist/protocol/index.d.ts +23 -0
  88. package/dist/protocol/index.d.ts.map +1 -0
  89. package/dist/protocol/index.js +45 -0
  90. package/dist/protocol/index.js.map +1 -0
  91. package/dist/protocol/types.d.ts +332 -0
  92. package/dist/protocol/types.d.ts.map +1 -0
  93. package/dist/protocol/types.js +57 -0
  94. package/dist/protocol/types.js.map +1 -0
  95. package/dist/protocol/utils.d.ts +130 -0
  96. package/dist/protocol/utils.d.ts.map +1 -0
  97. package/dist/protocol/utils.js +292 -0
  98. package/dist/protocol/utils.js.map +1 -0
  99. package/dist/protocol/validators.d.ts +54 -0
  100. package/dist/protocol/validators.d.ts.map +1 -0
  101. package/dist/protocol/validators.js +344 -0
  102. package/dist/protocol/validators.js.map +1 -0
  103. package/dist/security/AuthManager.d.ts +73 -0
  104. package/dist/security/AuthManager.d.ts.map +1 -0
  105. package/dist/security/AuthManager.js +102 -0
  106. package/dist/security/AuthManager.js.map +1 -0
  107. package/dist/security/MessageSanitizer.d.ts +51 -0
  108. package/dist/security/MessageSanitizer.d.ts.map +1 -0
  109. package/dist/security/MessageSanitizer.js +166 -0
  110. package/dist/security/MessageSanitizer.js.map +1 -0
  111. package/dist/security/RateLimiter.d.ts +46 -0
  112. package/dist/security/RateLimiter.d.ts.map +1 -0
  113. package/dist/security/RateLimiter.js +133 -0
  114. package/dist/security/RateLimiter.js.map +1 -0
  115. package/dist/security/SecurityMiddleware.d.ts +88 -0
  116. package/dist/security/SecurityMiddleware.d.ts.map +1 -0
  117. package/dist/security/SecurityMiddleware.js +146 -0
  118. package/dist/security/SecurityMiddleware.js.map +1 -0
  119. package/dist/security/index.d.ts +35 -0
  120. package/dist/security/index.d.ts.map +1 -0
  121. package/dist/security/index.js +42 -0
  122. package/dist/security/index.js.map +1 -0
  123. package/dist/speculative/PredictionEngine.d.ts +99 -0
  124. package/dist/speculative/PredictionEngine.d.ts.map +1 -0
  125. package/dist/speculative/PredictionEngine.js +291 -0
  126. package/dist/speculative/PredictionEngine.js.map +1 -0
  127. package/dist/speculative/SpeculativeCache.d.ts +117 -0
  128. package/dist/speculative/SpeculativeCache.d.ts.map +1 -0
  129. package/dist/speculative/SpeculativeCache.js +292 -0
  130. package/dist/speculative/SpeculativeCache.js.map +1 -0
  131. package/dist/speculative/SpeculativeEngine.d.ts +114 -0
  132. package/dist/speculative/SpeculativeEngine.d.ts.map +1 -0
  133. package/dist/speculative/SpeculativeEngine.js +244 -0
  134. package/dist/speculative/SpeculativeEngine.js.map +1 -0
  135. package/dist/speculative/WorkerPool.d.ts +109 -0
  136. package/dist/speculative/WorkerPool.d.ts.map +1 -0
  137. package/dist/speculative/WorkerPool.js +327 -0
  138. package/dist/speculative/WorkerPool.js.map +1 -0
  139. package/dist/speculative/index.d.ts +10 -0
  140. package/dist/speculative/index.d.ts.map +1 -0
  141. package/dist/speculative/index.js +17 -0
  142. package/dist/speculative/index.js.map +1 -0
  143. package/dist/subconscious/EmbeddingService.d.ts +73 -0
  144. package/dist/subconscious/EmbeddingService.d.ts.map +1 -0
  145. package/dist/subconscious/EmbeddingService.js +196 -0
  146. package/dist/subconscious/EmbeddingService.js.map +1 -0
  147. package/dist/subconscious/SemanticCache.d.ts +82 -0
  148. package/dist/subconscious/SemanticCache.d.ts.map +1 -0
  149. package/dist/subconscious/SemanticCache.js +164 -0
  150. package/dist/subconscious/SemanticCache.js.map +1 -0
  151. package/dist/subconscious/SubconsciousEngine.d.ts +121 -0
  152. package/dist/subconscious/SubconsciousEngine.d.ts.map +1 -0
  153. package/dist/subconscious/SubconsciousEngine.js +241 -0
  154. package/dist/subconscious/SubconsciousEngine.js.map +1 -0
  155. package/dist/subconscious/VectorStore.d.ts +54 -0
  156. package/dist/subconscious/VectorStore.d.ts.map +1 -0
  157. package/dist/subconscious/VectorStore.js +168 -0
  158. package/dist/subconscious/VectorStore.js.map +1 -0
  159. package/dist/subconscious/cache.d.ts +34 -0
  160. package/dist/subconscious/cache.d.ts.map +1 -0
  161. package/dist/subconscious/cache.js +156 -0
  162. package/dist/subconscious/cache.js.map +1 -0
  163. package/dist/subconscious/embeddings.d.ts +25 -0
  164. package/dist/subconscious/embeddings.d.ts.map +1 -0
  165. package/dist/subconscious/embeddings.js +65 -0
  166. package/dist/subconscious/embeddings.js.map +1 -0
  167. package/dist/subconscious/index.d.ts +12 -0
  168. package/dist/subconscious/index.d.ts.map +1 -0
  169. package/dist/subconscious/index.js +19 -0
  170. package/dist/subconscious/index.js.map +1 -0
  171. package/dist/types/index.d.ts +286 -0
  172. package/dist/types/index.d.ts.map +1 -0
  173. package/dist/types/index.js +43 -0
  174. package/dist/types/index.js.map +1 -0
  175. package/dist/utils/logger.d.ts +63 -0
  176. package/dist/utils/logger.d.ts.map +1 -0
  177. package/dist/utils/logger.js +126 -0
  178. package/dist/utils/logger.js.map +1 -0
  179. package/package.json +99 -0
@@ -0,0 +1,292 @@
1
+ "use strict";
2
+ /**
3
+ * Speculative Cache - Speculative Execution v2.0
4
+ *
5
+ * Stores pre-computed results from speculative execution with TTL-based expiration.
6
+ * Provides instant (<10ms) cache lookups for predicted requests.
7
+ *
8
+ * Features:
9
+ * - TTL-based expiration
10
+ * - Confidence-based prioritization
11
+ * - Memory-efficient storage
12
+ * - Automatic cleanup
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.SpeculativeCache = void 0;
16
+ const events_1 = require("events");
17
+ class SpeculativeCache extends events_1.EventEmitter {
18
+ constructor(config = {}) {
19
+ super();
20
+ this.cache = new Map();
21
+ this.metrics = {
22
+ size: 0,
23
+ hits: 0,
24
+ misses: 0,
25
+ hitRate: 0,
26
+ averageHitLatency: 0,
27
+ memoryUsageMB: 0,
28
+ evictions: 0,
29
+ };
30
+ this.hitLatencies = [];
31
+ this.config = {
32
+ maxSize: config.maxSize || 100,
33
+ defaultTTL: config.defaultTTL || 60000,
34
+ cleanupInterval: config.cleanupInterval || 10000,
35
+ maxMemoryMB: config.maxMemoryMB || 200,
36
+ };
37
+ }
38
+ /**
39
+ * Start the cache
40
+ */
41
+ start() {
42
+ // Start cleanup timer
43
+ this.cleanupTimer = setInterval(() => {
44
+ this.cleanup();
45
+ }, this.config.cleanupInterval);
46
+ this.emit('started');
47
+ }
48
+ /**
49
+ * Store a pre-computed result
50
+ */
51
+ set(result) {
52
+ if (!result.success) {
53
+ return; // Don't cache failed results
54
+ }
55
+ // Check memory limit
56
+ if (this.getMemoryUsageMB() > this.config.maxMemoryMB) {
57
+ this.evictLowPriority();
58
+ }
59
+ // Check size limit
60
+ if (this.cache.size >= this.config.maxSize) {
61
+ this.evictLowPriority();
62
+ }
63
+ const entry = {
64
+ id: result.taskId,
65
+ prediction: result.prediction,
66
+ result: result.result,
67
+ confidence: result.prediction.confidence,
68
+ createdAt: Date.now(),
69
+ expiresAt: Date.now() + this.config.defaultTTL,
70
+ hits: 0,
71
+ lastAccessedAt: Date.now(),
72
+ };
73
+ this.cache.set(this.generateKey(result.prediction), entry);
74
+ this.updateMetrics();
75
+ this.emit('entry-added', entry);
76
+ }
77
+ /**
78
+ * Get a cached result
79
+ */
80
+ get(taskType, context) {
81
+ const startTime = Date.now();
82
+ const key = this.generateKeyFromRequest(taskType, context);
83
+ // Try exact match first
84
+ let entry = this.cache.get(key);
85
+ // Try fuzzy match if exact match fails
86
+ if (!entry) {
87
+ entry = this.findBestMatch(taskType, context) ?? undefined;
88
+ }
89
+ const latency = Date.now() - startTime;
90
+ if (entry) {
91
+ // Check expiration
92
+ if (entry.expiresAt < Date.now()) {
93
+ this.cache.delete(key);
94
+ this.metrics.misses++;
95
+ this.updateMetrics();
96
+ return null;
97
+ }
98
+ // Update entry stats
99
+ entry.hits++;
100
+ entry.lastAccessedAt = Date.now();
101
+ // Update metrics
102
+ this.metrics.hits++;
103
+ this.hitLatencies.push(latency);
104
+ if (this.hitLatencies.length > 100) {
105
+ this.hitLatencies.shift();
106
+ }
107
+ this.updateMetrics();
108
+ this.emit('cache-hit', { entry, latency });
109
+ return entry;
110
+ }
111
+ this.metrics.misses++;
112
+ this.updateMetrics();
113
+ this.emit('cache-miss', { taskType, context, latency });
114
+ return null;
115
+ }
116
+ /**
117
+ * Find best matching entry using fuzzy matching
118
+ */
119
+ findBestMatch(taskType, context) {
120
+ let bestMatch = null;
121
+ let bestScore = 0;
122
+ for (const entry of this.cache.values()) {
123
+ // Skip expired entries
124
+ if (entry.expiresAt < Date.now()) {
125
+ continue;
126
+ }
127
+ const score = this.calculateMatchScore(taskType, context, entry.prediction);
128
+ if (score > bestScore && score > 0.85) {
129
+ // 85% similarity threshold
130
+ bestScore = score;
131
+ bestMatch = entry;
132
+ }
133
+ }
134
+ return bestMatch;
135
+ }
136
+ /**
137
+ * Calculate match score between request and cached prediction
138
+ */
139
+ calculateMatchScore(taskType, context, prediction) {
140
+ let score = 0;
141
+ // Task type exact match (40% weight)
142
+ if (taskType === prediction.taskType) {
143
+ score += 0.4;
144
+ }
145
+ // Context similarity (40% weight)
146
+ const contextSimilarity = this.calculateTextSimilarity(context, prediction.context);
147
+ score += contextSimilarity * 0.4;
148
+ // Confidence bonus (20% weight)
149
+ score += prediction.confidence * 0.2;
150
+ return score;
151
+ }
152
+ /**
153
+ * Simple text similarity using word overlap
154
+ */
155
+ calculateTextSimilarity(text1, text2) {
156
+ const words1 = new Set(text1.toLowerCase().split(/\s+/));
157
+ const words2 = new Set(text2.toLowerCase().split(/\s+/));
158
+ const intersection = new Set([...words1].filter((w) => words2.has(w)));
159
+ const union = new Set([...words1, ...words2]);
160
+ return union.size > 0 ? intersection.size / union.size : 0;
161
+ }
162
+ /**
163
+ * Generate cache key from prediction
164
+ */
165
+ generateKey(prediction) {
166
+ return `${prediction.taskType}:${this.hashString(prediction.context)}`;
167
+ }
168
+ /**
169
+ * Generate cache key from request
170
+ */
171
+ generateKeyFromRequest(taskType, context) {
172
+ return `${taskType}:${this.hashString(context)}`;
173
+ }
174
+ /**
175
+ * Simple string hash function
176
+ */
177
+ hashString(str) {
178
+ let hash = 0;
179
+ for (let i = 0; i < str.length; i++) {
180
+ const char = str.charCodeAt(i);
181
+ hash = (hash << 5) - hash + char;
182
+ hash = hash & hash; // Convert to 32-bit integer
183
+ }
184
+ return Math.abs(hash).toString(36);
185
+ }
186
+ /**
187
+ * Evict low priority entries
188
+ */
189
+ evictLowPriority() {
190
+ // Sort by priority (confidence * hits / age)
191
+ const entries = Array.from(this.cache.entries()).map(([key, entry]) => {
192
+ const age = Date.now() - entry.createdAt;
193
+ const priority = (entry.confidence * (entry.hits + 1)) / (age + 1);
194
+ return { key, entry, priority };
195
+ });
196
+ entries.sort((a, b) => a.priority - b.priority);
197
+ // Remove lowest 10% or at least 1
198
+ const toRemove = Math.max(1, Math.floor(entries.length * 0.1));
199
+ for (let i = 0; i < toRemove; i++) {
200
+ this.cache.delete(entries[i].key);
201
+ this.metrics.evictions++;
202
+ this.emit('entry-evicted', entries[i].entry);
203
+ }
204
+ this.updateMetrics();
205
+ }
206
+ /**
207
+ * Cleanup expired entries
208
+ */
209
+ cleanup() {
210
+ const now = Date.now();
211
+ let removed = 0;
212
+ for (const [key, entry] of this.cache.entries()) {
213
+ if (entry.expiresAt < now) {
214
+ this.cache.delete(key);
215
+ removed++;
216
+ }
217
+ }
218
+ if (removed > 0) {
219
+ this.updateMetrics();
220
+ this.emit('cleanup', { removed });
221
+ }
222
+ }
223
+ /**
224
+ * Estimate memory usage in MB
225
+ */
226
+ getMemoryUsageMB() {
227
+ let totalSize = 0;
228
+ for (const entry of this.cache.values()) {
229
+ // Rough estimate: JSON size
230
+ totalSize += JSON.stringify(entry).length;
231
+ }
232
+ return totalSize / (1024 * 1024);
233
+ }
234
+ /**
235
+ * Update metrics
236
+ */
237
+ updateMetrics() {
238
+ this.metrics.size = this.cache.size;
239
+ this.metrics.hitRate =
240
+ this.metrics.hits + this.metrics.misses > 0
241
+ ? this.metrics.hits / (this.metrics.hits + this.metrics.misses)
242
+ : 0;
243
+ this.metrics.averageHitLatency =
244
+ this.hitLatencies.length > 0
245
+ ? this.hitLatencies.reduce((sum, l) => sum + l, 0) /
246
+ this.hitLatencies.length
247
+ : 0;
248
+ this.metrics.memoryUsageMB = this.getMemoryUsageMB();
249
+ }
250
+ /**
251
+ * Get current metrics
252
+ */
253
+ getMetrics() {
254
+ this.updateMetrics();
255
+ return { ...this.metrics };
256
+ }
257
+ /**
258
+ * Get all entries
259
+ */
260
+ getEntries() {
261
+ return Array.from(this.cache.values());
262
+ }
263
+ /**
264
+ * Clear all entries
265
+ */
266
+ clear() {
267
+ this.cache.clear();
268
+ this.metrics = {
269
+ size: 0,
270
+ hits: 0,
271
+ misses: 0,
272
+ hitRate: 0,
273
+ averageHitLatency: 0,
274
+ memoryUsageMB: 0,
275
+ evictions: 0,
276
+ };
277
+ this.hitLatencies = [];
278
+ this.emit('cleared');
279
+ }
280
+ /**
281
+ * Stop the cache
282
+ */
283
+ stop() {
284
+ if (this.cleanupTimer) {
285
+ clearInterval(this.cleanupTimer);
286
+ this.cleanupTimer = undefined;
287
+ }
288
+ this.emit('stopped');
289
+ }
290
+ }
291
+ exports.SpeculativeCache = SpeculativeCache;
292
+ //# sourceMappingURL=SpeculativeCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpeculativeCache.js","sourceRoot":"","sources":["../../src/speculative/SpeculativeCache.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEH,mCAAsC;AAgCtC,MAAa,gBAAiB,SAAQ,qBAAY;IAehD,YAAY,SAAiC,EAAE;QAC7C,KAAK,EAAE,CAAC;QAdF,UAAK,GAA4B,IAAI,GAAG,EAAE,CAAC;QAE3C,YAAO,GAA4B;YACzC,IAAI,EAAE,CAAC;YACP,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,iBAAiB,EAAE,CAAC;YACpB,aAAa,EAAE,CAAC;YAChB,SAAS,EAAE,CAAC;SACb,CAAC;QACM,iBAAY,GAAa,EAAE,CAAC;QAIlC,IAAI,CAAC,MAAM,GAAG;YACZ,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,GAAG;YAC9B,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,KAAK;YACtC,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,KAAK;YAChD,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,GAAG;SACvC,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,KAAK;QACV,sBAAsB;QACtB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;YACnC,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAEhC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,GAAG,CAAC,MAAoB;QAC7B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,6BAA6B;QACvC,CAAC;QAED,qBAAqB;QACrB,IAAI,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACtD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;QAED,mBAAmB;QACnB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC3C,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;QAED,MAAM,KAAK,GAAe;YACxB,EAAE,EAAE,MAAM,CAAC,MAAM;YACjB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,UAAU;YACxC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU;YAC9C,IAAI,EAAE,CAAC;YACP,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE;SAC3B,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3D,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACI,GAAG,CAAC,QAAgB,EAAE,OAAe;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE3D,wBAAwB;QACxB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEhC,uCAAuC;QACvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,SAAS,CAAC;QAC7D,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAEvC,IAAI,KAAK,EAAE,CAAC;YACV,mBAAmB;YACnB,IAAI,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBACjC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACtB,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,qBAAqB;YACrB,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAElC,iBAAiB;YACjB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;gBACnC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAC5B,CAAC;YACD,IAAI,CAAC,aAAa,EAAE,CAAC;YAErB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YAE3C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAExD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,QAAgB,EAAE,OAAe;QACrD,IAAI,SAAS,GAAsB,IAAI,CAAC;QACxC,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,uBAAuB;YACvB,IAAI,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBACjC,SAAS;YACX,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CACpC,QAAQ,EACR,OAAO,EACP,KAAK,CAAC,UAAU,CACjB,CAAC;YAEF,IAAI,KAAK,GAAG,SAAS,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;gBACtC,2BAA2B;gBAC3B,SAAS,GAAG,KAAK,CAAC;gBAClB,SAAS,GAAG,KAAK,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,mBAAmB,CACzB,QAAgB,EAChB,OAAe,EACf,UAAsB;QAEtB,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,qCAAqC;QACrC,IAAI,QAAQ,KAAK,UAAU,CAAC,QAAQ,EAAE,CAAC;YACrC,KAAK,IAAI,GAAG,CAAC;QACf,CAAC;QAED,kCAAkC;QAClC,MAAM,iBAAiB,GAAG,IAAI,CAAC,uBAAuB,CACpD,OAAO,EACP,UAAU,CAAC,OAAO,CACnB,CAAC;QACF,KAAK,IAAI,iBAAiB,GAAG,GAAG,CAAC;QAEjC,gCAAgC;QAChC,KAAK,IAAI,UAAU,CAAC,UAAU,GAAG,GAAG,CAAC;QAErC,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,uBAAuB,CAAC,KAAa,EAAE,KAAa;QAC1D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAEzD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;QAE9C,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,UAAsB;QACxC,OAAO,GAAG,UAAU,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;IACzE,CAAC;IAED;;OAEG;IACK,sBAAsB,CAAC,QAAgB,EAAE,OAAe;QAC9D,OAAO,GAAG,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;IACnD,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,GAAW;QAC5B,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;YACjC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,4BAA4B;QAClD,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,6CAA6C;QAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACpE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;YACzC,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACnE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;QAEhD,kCAAkC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;QAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED;;OAEG;IACK,OAAO;QACb,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAChD,IAAI,KAAK,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;gBAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACvB,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,4BAA4B;YAC5B,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;QAC5C,CAAC;QAED,OAAO,SAAS,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACK,aAAa;QACnB,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,OAAO;YAClB,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;gBACzC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC/D,CAAC,CAAC,CAAC,CAAC;QACR,IAAI,CAAC,OAAO,CAAC,iBAAiB;YAC5B,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;gBAC1B,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;oBAChD,IAAI,CAAC,YAAY,CAAC,MAAM;gBAC1B,CAAC,CAAC,CAAC,CAAC;QACR,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACvD,CAAC;IAED;;OAEG;IACI,UAAU;QACf,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACI,UAAU;QACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACI,KAAK;QACV,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG;YACb,IAAI,EAAE,CAAC;YACP,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,iBAAiB,EAAE,CAAC;YACpB,aAAa,EAAE,CAAC;YAChB,SAAS,EAAE,CAAC;SACb,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,IAAI;QACT,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;CACF;AAlVD,4CAkVC"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Speculative Engine - Speculative Execution v2.0
3
+ *
4
+ * Main orchestrator for speculative execution. Coordinates prediction,
5
+ * worker pool, and speculative cache to achieve negative latency.
6
+ *
7
+ * Features:
8
+ * - Automatic prediction generation
9
+ * - Background pre-computation
10
+ * - Instant cache lookups (<10ms)
11
+ * - Graceful fallback to standard routing
12
+ */
13
+ import { EventEmitter } from 'events';
14
+ import { Prediction } from './PredictionEngine';
15
+ import { CacheEntry } from './SpeculativeCache';
16
+ export interface SpeculativeEngineConfig {
17
+ enabled?: boolean;
18
+ predictionEngine?: any;
19
+ workerPool?: any;
20
+ speculativeCache?: any;
21
+ }
22
+ export interface SpeculativeResult {
23
+ hit: boolean;
24
+ result: any;
25
+ latency: number;
26
+ source: 'speculative-cache' | 'semantic-cache' | 'agent';
27
+ confidence?: number;
28
+ }
29
+ export interface SpeculativeMetrics {
30
+ enabled: boolean;
31
+ predictions: {
32
+ total: number;
33
+ accurate: number;
34
+ accuracy: number;
35
+ averageConfidence: number;
36
+ };
37
+ cache: {
38
+ size: number;
39
+ hits: number;
40
+ misses: number;
41
+ hitRate: number;
42
+ averageLatency: number;
43
+ };
44
+ workers: {
45
+ active: number;
46
+ idle: number;
47
+ queued: number;
48
+ completed: number;
49
+ failed: number;
50
+ };
51
+ performance: {
52
+ averageSpeculativeLatency: number;
53
+ averageFallbackLatency: number;
54
+ latencyImprovement: number;
55
+ };
56
+ }
57
+ export declare class SpeculativeEngine extends EventEmitter {
58
+ private config;
59
+ private predictionEngine;
60
+ private workerPool;
61
+ private speculativeCache;
62
+ private enabled;
63
+ private performanceMetrics;
64
+ constructor(config?: SpeculativeEngineConfig);
65
+ /**
66
+ * Setup event handlers between components
67
+ */
68
+ private setupEventHandlers;
69
+ /**
70
+ * Initialize the speculative engine
71
+ */
72
+ initialize(): Promise<void>;
73
+ /**
74
+ * Process a request with speculative execution
75
+ */
76
+ processRequest(taskType: string, context: string, agentId?: string): Promise<SpeculativeResult>;
77
+ /**
78
+ * Trim performance metrics to keep memory bounded
79
+ */
80
+ private trimMetrics;
81
+ /**
82
+ * Get comprehensive metrics
83
+ */
84
+ getMetrics(): SpeculativeMetrics;
85
+ /**
86
+ * Get active predictions
87
+ */
88
+ getActivePredictions(): Prediction[];
89
+ /**
90
+ * Get cached entries
91
+ */
92
+ getCachedEntries(): CacheEntry[];
93
+ /**
94
+ * Enable speculative execution
95
+ */
96
+ enable(): void;
97
+ /**
98
+ * Disable speculative execution
99
+ */
100
+ disable(): void;
101
+ /**
102
+ * Check if enabled
103
+ */
104
+ isEnabled(): boolean;
105
+ /**
106
+ * Clear all caches and predictions
107
+ */
108
+ clear(): void;
109
+ /**
110
+ * Shutdown the speculative engine
111
+ */
112
+ shutdown(): Promise<void>;
113
+ }
114
+ //# sourceMappingURL=SpeculativeEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpeculativeEngine.d.ts","sourceRoot":"","sources":["../../src/speculative/SpeculativeEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAoB,UAAU,EAAqB,MAAM,oBAAoB,CAAC;AAErF,OAAO,EAAoB,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAElE,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,GAAG,CAAC;IACvB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,gBAAgB,CAAC,EAAE,GAAG,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,GAAG,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,mBAAmB,GAAG,gBAAgB,GAAG,OAAO,CAAC;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,WAAW,EAAE;QACX,yBAAyB,EAAE,MAAM,CAAC;QAClC,sBAAsB,EAAE,MAAM,CAAC;QAC/B,kBAAkB,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH;AAED,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,OAAO,CAAC,MAAM,CAAoC;IAClD,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,kBAAkB,CAGxB;gBAEU,MAAM,GAAE,uBAA4B;IAmBhD;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAmC1B;;OAEG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAYxC;;OAEG;IACU,cAAc,CACzB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,iBAAiB,CAAC;IAkD7B;;OAEG;IACH,OAAO,CAAC,WAAW;IAYnB;;OAEG;IACI,UAAU,IAAI,kBAAkB;IAsDvC;;OAEG;IACI,oBAAoB,IAAI,UAAU,EAAE;IAI3C;;OAEG;IACI,gBAAgB,IAAI,UAAU,EAAE;IAIvC;;OAEG;IACI,MAAM,IAAI,IAAI;IAKrB;;OAEG;IACI,OAAO,IAAI,IAAI;IAKtB;;OAEG;IACI,SAAS,IAAI,OAAO;IAI3B;;OAEG;IACI,KAAK,IAAI,IAAI;IAUpB;;OAEG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAMvC"}
@@ -0,0 +1,244 @@
1
+ "use strict";
2
+ /**
3
+ * Speculative Engine - Speculative Execution v2.0
4
+ *
5
+ * Main orchestrator for speculative execution. Coordinates prediction,
6
+ * worker pool, and speculative cache to achieve negative latency.
7
+ *
8
+ * Features:
9
+ * - Automatic prediction generation
10
+ * - Background pre-computation
11
+ * - Instant cache lookups (<10ms)
12
+ * - Graceful fallback to standard routing
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.SpeculativeEngine = void 0;
16
+ const events_1 = require("events");
17
+ const PredictionEngine_1 = require("./PredictionEngine");
18
+ const WorkerPool_1 = require("./WorkerPool");
19
+ const SpeculativeCache_1 = require("./SpeculativeCache");
20
+ class SpeculativeEngine extends events_1.EventEmitter {
21
+ constructor(config = {}) {
22
+ super();
23
+ this.performanceMetrics = {
24
+ speculativeLatencies: [],
25
+ fallbackLatencies: [],
26
+ };
27
+ this.enabled = config.enabled !== false;
28
+ this.predictionEngine = config.predictionEngine || new PredictionEngine_1.PredictionEngine();
29
+ this.workerPool = config.workerPool || new WorkerPool_1.WorkerPool();
30
+ this.speculativeCache = config.speculativeCache || new SpeculativeCache_1.SpeculativeCache();
31
+ this.config = {
32
+ enabled: this.enabled,
33
+ predictionEngine: this.predictionEngine,
34
+ workerPool: this.workerPool,
35
+ speculativeCache: this.speculativeCache,
36
+ };
37
+ this.setupEventHandlers();
38
+ }
39
+ /**
40
+ * Setup event handlers between components
41
+ */
42
+ setupEventHandlers() {
43
+ // When predictions are generated, submit to worker pool
44
+ this.predictionEngine.on('predictions', (predictions) => {
45
+ this.workerPool.submitPredictions(predictions).catch((error) => {
46
+ this.emit('error', error);
47
+ });
48
+ });
49
+ // When tasks complete, store in speculative cache
50
+ this.workerPool.on('task-completed', (result) => {
51
+ if (result.success) {
52
+ this.speculativeCache.set(result);
53
+ }
54
+ });
55
+ // Forward prediction hits
56
+ this.predictionEngine.on('prediction-hit', (data) => {
57
+ this.emit('prediction-hit', data);
58
+ });
59
+ // Forward cache hits
60
+ this.speculativeCache.on('cache-hit', (data) => {
61
+ this.emit('speculative-cache-hit', data);
62
+ });
63
+ // Forward errors
64
+ this.predictionEngine.on('error', (error) => {
65
+ this.emit('error', { source: 'prediction-engine', error });
66
+ });
67
+ this.workerPool.on('worker-error', (error) => {
68
+ this.emit('error', { source: 'worker-pool', error });
69
+ });
70
+ }
71
+ /**
72
+ * Initialize the speculative engine
73
+ */
74
+ async initialize() {
75
+ if (!this.enabled) {
76
+ this.emit('disabled');
77
+ return;
78
+ }
79
+ await this.workerPool.initialize();
80
+ this.speculativeCache.start();
81
+ this.emit('initialized');
82
+ }
83
+ /**
84
+ * Process a request with speculative execution
85
+ */
86
+ async processRequest(taskType, context, agentId) {
87
+ const startTime = Date.now();
88
+ if (!this.enabled) {
89
+ return {
90
+ hit: false,
91
+ result: null,
92
+ latency: Date.now() - startTime,
93
+ source: 'agent',
94
+ };
95
+ }
96
+ // 1. Check speculative cache first (fastest path)
97
+ const cacheEntry = this.speculativeCache.get(taskType, context);
98
+ if (cacheEntry) {
99
+ const latency = Date.now() - startTime;
100
+ this.performanceMetrics.speculativeLatencies.push(latency);
101
+ this.trimMetrics();
102
+ return {
103
+ hit: true,
104
+ result: cacheEntry.result,
105
+ latency,
106
+ source: 'speculative-cache',
107
+ confidence: cacheEntry.confidence,
108
+ };
109
+ }
110
+ // 2. Record request for future predictions
111
+ const request = {
112
+ taskType,
113
+ context,
114
+ agentId,
115
+ timestamp: Date.now(),
116
+ };
117
+ this.predictionEngine.recordRequest(request);
118
+ // 3. Return miss (caller should fallback to semantic cache or agent)
119
+ const latency = Date.now() - startTime;
120
+ this.performanceMetrics.fallbackLatencies.push(latency);
121
+ this.trimMetrics();
122
+ return {
123
+ hit: false,
124
+ result: null,
125
+ latency,
126
+ source: 'agent',
127
+ };
128
+ }
129
+ /**
130
+ * Trim performance metrics to keep memory bounded
131
+ */
132
+ trimMetrics() {
133
+ const maxSize = 1000;
134
+ if (this.performanceMetrics.speculativeLatencies.length > maxSize) {
135
+ this.performanceMetrics.speculativeLatencies =
136
+ this.performanceMetrics.speculativeLatencies.slice(-maxSize);
137
+ }
138
+ if (this.performanceMetrics.fallbackLatencies.length > maxSize) {
139
+ this.performanceMetrics.fallbackLatencies =
140
+ this.performanceMetrics.fallbackLatencies.slice(-maxSize);
141
+ }
142
+ }
143
+ /**
144
+ * Get comprehensive metrics
145
+ */
146
+ getMetrics() {
147
+ const predictionMetrics = this.predictionEngine.getMetrics();
148
+ const cacheMetrics = this.speculativeCache.getMetrics();
149
+ const workerMetrics = this.workerPool.getMetrics();
150
+ const avgSpeculativeLatency = this.performanceMetrics.speculativeLatencies.length > 0
151
+ ? this.performanceMetrics.speculativeLatencies.reduce((sum, l) => sum + l, 0) / this.performanceMetrics.speculativeLatencies.length
152
+ : 0;
153
+ const avgFallbackLatency = this.performanceMetrics.fallbackLatencies.length > 0
154
+ ? this.performanceMetrics.fallbackLatencies.reduce((sum, l) => sum + l, 0) /
155
+ this.performanceMetrics.fallbackLatencies.length
156
+ : 0;
157
+ const latencyImprovement = avgFallbackLatency > 0
158
+ ? ((avgFallbackLatency - avgSpeculativeLatency) / avgFallbackLatency) * 100
159
+ : 0;
160
+ return {
161
+ enabled: this.enabled,
162
+ predictions: {
163
+ total: predictionMetrics.totalPredictions,
164
+ accurate: predictionMetrics.accuratePredictions,
165
+ accuracy: predictionMetrics.accuracy,
166
+ averageConfidence: predictionMetrics.averageConfidence,
167
+ },
168
+ cache: {
169
+ size: cacheMetrics.size,
170
+ hits: cacheMetrics.hits,
171
+ misses: cacheMetrics.misses,
172
+ hitRate: cacheMetrics.hitRate,
173
+ averageLatency: cacheMetrics.averageHitLatency,
174
+ },
175
+ workers: {
176
+ active: workerMetrics.activeWorkers,
177
+ idle: workerMetrics.idleWorkers,
178
+ queued: workerMetrics.queuedTasks,
179
+ completed: workerMetrics.completedTasks,
180
+ failed: workerMetrics.failedTasks,
181
+ },
182
+ performance: {
183
+ averageSpeculativeLatency: avgSpeculativeLatency,
184
+ averageFallbackLatency: avgFallbackLatency,
185
+ latencyImprovement,
186
+ },
187
+ };
188
+ }
189
+ /**
190
+ * Get active predictions
191
+ */
192
+ getActivePredictions() {
193
+ return this.predictionEngine.getActivePredictions();
194
+ }
195
+ /**
196
+ * Get cached entries
197
+ */
198
+ getCachedEntries() {
199
+ return this.speculativeCache.getEntries();
200
+ }
201
+ /**
202
+ * Enable speculative execution
203
+ */
204
+ enable() {
205
+ this.enabled = true;
206
+ this.emit('enabled');
207
+ }
208
+ /**
209
+ * Disable speculative execution
210
+ */
211
+ disable() {
212
+ this.enabled = false;
213
+ this.emit('disabled');
214
+ }
215
+ /**
216
+ * Check if enabled
217
+ */
218
+ isEnabled() {
219
+ return this.enabled;
220
+ }
221
+ /**
222
+ * Clear all caches and predictions
223
+ */
224
+ clear() {
225
+ this.predictionEngine.clear();
226
+ this.speculativeCache.clear();
227
+ this.performanceMetrics = {
228
+ speculativeLatencies: [],
229
+ fallbackLatencies: [],
230
+ };
231
+ this.emit('cleared');
232
+ }
233
+ /**
234
+ * Shutdown the speculative engine
235
+ */
236
+ async shutdown() {
237
+ this.speculativeCache.stop();
238
+ await this.workerPool.shutdown();
239
+ this.clear();
240
+ this.emit('shutdown');
241
+ }
242
+ }
243
+ exports.SpeculativeEngine = SpeculativeEngine;
244
+ //# sourceMappingURL=SpeculativeEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpeculativeEngine.js","sourceRoot":"","sources":["../../src/speculative/SpeculativeEngine.ts"],"names":[],"mappings":"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"}