agentic-qe 2.2.0 → 2.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 (111) hide show
  1. package/.claude/skills/agentic-quality-engineering/SKILL.md +4 -4
  2. package/.claude/skills/cicd-pipeline-qe-orchestrator/README.md +14 -11
  3. package/.claude/skills/skills-manifest.json +2 -2
  4. package/CHANGELOG.md +15 -0
  5. package/README.md +92 -214
  6. package/dist/agents/BaseAgent.d.ts +5 -1
  7. package/dist/agents/BaseAgent.d.ts.map +1 -1
  8. package/dist/agents/BaseAgent.js +32 -17
  9. package/dist/agents/BaseAgent.js.map +1 -1
  10. package/dist/agents/index.js +3 -3
  11. package/dist/agents/index.js.map +1 -1
  12. package/dist/cli/commands/improve/index.d.ts +8 -1
  13. package/dist/cli/commands/improve/index.d.ts.map +1 -1
  14. package/dist/cli/commands/improve/index.js +18 -16
  15. package/dist/cli/commands/improve/index.js.map +1 -1
  16. package/dist/cli/commands/learn/index.d.ts +10 -2
  17. package/dist/cli/commands/learn/index.d.ts.map +1 -1
  18. package/dist/cli/commands/learn/index.js +99 -63
  19. package/dist/cli/commands/learn/index.js.map +1 -1
  20. package/dist/cli/commands/patterns/index.d.ts +8 -1
  21. package/dist/cli/commands/patterns/index.d.ts.map +1 -1
  22. package/dist/cli/commands/patterns/index.js +79 -45
  23. package/dist/cli/commands/patterns/index.js.map +1 -1
  24. package/dist/cli/commands/routing/index.d.ts +5 -0
  25. package/dist/cli/commands/routing/index.d.ts.map +1 -1
  26. package/dist/cli/commands/routing/index.js +11 -10
  27. package/dist/cli/commands/routing/index.js.map +1 -1
  28. package/dist/cli/init/agents.d.ts +1 -1
  29. package/dist/cli/init/agents.js +2 -2
  30. package/dist/cli/init/database-init.d.ts +7 -0
  31. package/dist/cli/init/database-init.d.ts.map +1 -1
  32. package/dist/cli/init/database-init.js +29 -48
  33. package/dist/cli/init/database-init.js.map +1 -1
  34. package/dist/core/memory/HNSWVectorMemory.d.ts +261 -0
  35. package/dist/core/memory/HNSWVectorMemory.d.ts.map +1 -0
  36. package/dist/core/memory/HNSWVectorMemory.js +647 -0
  37. package/dist/core/memory/HNSWVectorMemory.js.map +1 -0
  38. package/dist/core/memory/SwarmMemoryManager.d.ts +7 -0
  39. package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
  40. package/dist/core/memory/SwarmMemoryManager.js +9 -0
  41. package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
  42. package/dist/core/memory/index.d.ts +2 -0
  43. package/dist/core/memory/index.d.ts.map +1 -1
  44. package/dist/core/memory/index.js +11 -1
  45. package/dist/core/memory/index.js.map +1 -1
  46. package/dist/learning/ExplainableLearning.d.ts +191 -0
  47. package/dist/learning/ExplainableLearning.d.ts.map +1 -0
  48. package/dist/learning/ExplainableLearning.js +441 -0
  49. package/dist/learning/ExplainableLearning.js.map +1 -0
  50. package/dist/learning/GossipPatternSharingProtocol.d.ts +228 -0
  51. package/dist/learning/GossipPatternSharingProtocol.d.ts.map +1 -0
  52. package/dist/learning/GossipPatternSharingProtocol.js +590 -0
  53. package/dist/learning/GossipPatternSharingProtocol.js.map +1 -0
  54. package/dist/learning/LearningEngine.d.ts +4 -4
  55. package/dist/learning/LearningEngine.d.ts.map +1 -1
  56. package/dist/learning/LearningEngine.js +20 -13
  57. package/dist/learning/LearningEngine.js.map +1 -1
  58. package/dist/learning/PerformanceOptimizer.d.ts +268 -0
  59. package/dist/learning/PerformanceOptimizer.d.ts.map +1 -0
  60. package/dist/learning/PerformanceOptimizer.js +552 -0
  61. package/dist/learning/PerformanceOptimizer.js.map +1 -0
  62. package/dist/learning/PrivacyManager.d.ts +197 -0
  63. package/dist/learning/PrivacyManager.d.ts.map +1 -0
  64. package/dist/learning/PrivacyManager.js +551 -0
  65. package/dist/learning/PrivacyManager.js.map +1 -0
  66. package/dist/learning/TransferLearningManager.d.ts +212 -0
  67. package/dist/learning/TransferLearningManager.d.ts.map +1 -0
  68. package/dist/learning/TransferLearningManager.js +497 -0
  69. package/dist/learning/TransferLearningManager.js.map +1 -0
  70. package/dist/learning/algorithms/MAMLMetaLearner.d.ts +218 -0
  71. package/dist/learning/algorithms/MAMLMetaLearner.d.ts.map +1 -0
  72. package/dist/learning/algorithms/MAMLMetaLearner.js +532 -0
  73. package/dist/learning/algorithms/MAMLMetaLearner.js.map +1 -0
  74. package/dist/learning/algorithms/index.d.ts +4 -1
  75. package/dist/learning/algorithms/index.d.ts.map +1 -1
  76. package/dist/learning/algorithms/index.js +7 -1
  77. package/dist/learning/algorithms/index.js.map +1 -1
  78. package/dist/learning/index.d.ts +8 -0
  79. package/dist/learning/index.d.ts.map +1 -1
  80. package/dist/learning/index.js +17 -1
  81. package/dist/learning/index.js.map +1 -1
  82. package/dist/mcp/server-instructions.d.ts +1 -1
  83. package/dist/mcp/server-instructions.js +1 -1
  84. package/dist/providers/HybridRouter.d.ts +217 -0
  85. package/dist/providers/HybridRouter.d.ts.map +1 -0
  86. package/dist/providers/HybridRouter.js +679 -0
  87. package/dist/providers/HybridRouter.js.map +1 -0
  88. package/dist/providers/index.d.ts +1 -0
  89. package/dist/providers/index.d.ts.map +1 -1
  90. package/dist/providers/index.js +7 -1
  91. package/dist/providers/index.js.map +1 -1
  92. package/dist/telemetry/LearningTelemetry.d.ts +190 -0
  93. package/dist/telemetry/LearningTelemetry.d.ts.map +1 -0
  94. package/dist/telemetry/LearningTelemetry.js +403 -0
  95. package/dist/telemetry/LearningTelemetry.js.map +1 -0
  96. package/dist/telemetry/index.d.ts +1 -0
  97. package/dist/telemetry/index.d.ts.map +1 -1
  98. package/dist/telemetry/index.js +20 -2
  99. package/dist/telemetry/index.js.map +1 -1
  100. package/dist/telemetry/instrumentation/agent.d.ts +1 -1
  101. package/dist/telemetry/instrumentation/agent.js +1 -1
  102. package/dist/telemetry/instrumentation/index.d.ts +1 -1
  103. package/dist/telemetry/instrumentation/index.js +1 -1
  104. package/dist/utils/math.d.ts +11 -0
  105. package/dist/utils/math.d.ts.map +1 -0
  106. package/dist/utils/math.js +16 -0
  107. package/dist/utils/math.js.map +1 -0
  108. package/docs/reference/agents.md +1 -1
  109. package/docs/reference/skills.md +3 -3
  110. package/docs/reference/usage.md +4 -4
  111. package/package.json +1 -1
@@ -0,0 +1,552 @@
1
+ "use strict";
2
+ /**
3
+ * PerformanceOptimizer - Performance optimizations for learning algorithms
4
+ *
5
+ * Implements performance optimizations for production use with many agents:
6
+ * - Batched Q-value updates for efficiency
7
+ * - Lazy evaluation for rarely-accessed Q-values
8
+ * - Caching layer for frequently-accessed states
9
+ * - Optimized vector operations with typed arrays
10
+ * - Experience prioritization for faster convergence
11
+ * - Memory pooling for experience objects
12
+ *
13
+ * Target Performance:
14
+ * - Q-value lookups: < 1ms
15
+ * - Experience storage: < 5ms
16
+ * - Pattern matching: < 10ms for 10k patterns
17
+ * - Memory usage: < 100MB for 100k experiences
18
+ *
19
+ * @module learning/PerformanceOptimizer
20
+ * @version 1.0.0
21
+ */
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.VectorOps = exports.PerformanceOptimizer = void 0;
24
+ const Logger_1 = require("../utils/Logger");
25
+ /**
26
+ * Default optimizer configuration
27
+ */
28
+ const DEFAULT_CONFIG = {
29
+ enableCaching: true,
30
+ cacheSize: 1000,
31
+ enableLazyEval: true,
32
+ lazyAccessThreshold: 2,
33
+ enableBatchUpdates: true,
34
+ batchUpdateSize: 32,
35
+ enableMemoryPooling: true,
36
+ memoryPoolSize: 500,
37
+ enablePrioritization: true,
38
+ priorityDecay: 0.95
39
+ };
40
+ /**
41
+ * LRU Cache for Q-values
42
+ * Optimized for fast lookups using Map with LRU eviction
43
+ */
44
+ class LRUCache {
45
+ constructor(maxSize) {
46
+ this.maxSize = maxSize;
47
+ this.cache = new Map();
48
+ this.accessOrder = [];
49
+ }
50
+ /**
51
+ * Get value from cache (< 1ms target)
52
+ */
53
+ get(stateKey, actionKey) {
54
+ const key = `${stateKey}:${actionKey}`;
55
+ const entry = this.cache.get(key);
56
+ if (!entry) {
57
+ return undefined;
58
+ }
59
+ // Update access tracking
60
+ entry.accessCount++;
61
+ entry.lastAccessed = Date.now();
62
+ // Move to front of access order (LRU)
63
+ const index = this.accessOrder.indexOf(key);
64
+ if (index > -1) {
65
+ this.accessOrder.splice(index, 1);
66
+ }
67
+ this.accessOrder.push(key);
68
+ return entry.value;
69
+ }
70
+ /**
71
+ * Set value in cache with LRU eviction
72
+ */
73
+ set(stateKey, actionKey, value) {
74
+ const key = `${stateKey}:${actionKey}`;
75
+ // Evict LRU entry if at capacity
76
+ if (this.cache.size >= this.maxSize && !this.cache.has(key)) {
77
+ const lruKey = this.accessOrder.shift();
78
+ if (lruKey) {
79
+ this.cache.delete(lruKey);
80
+ }
81
+ }
82
+ const entry = {
83
+ stateKey,
84
+ actionKey,
85
+ value,
86
+ accessCount: 1,
87
+ lastAccessed: Date.now(),
88
+ dirty: false
89
+ };
90
+ this.cache.set(key, entry);
91
+ this.accessOrder.push(key);
92
+ }
93
+ /**
94
+ * Mark entry as dirty (needs persistence)
95
+ */
96
+ markDirty(stateKey, actionKey) {
97
+ const key = `${stateKey}:${actionKey}`;
98
+ const entry = this.cache.get(key);
99
+ if (entry) {
100
+ entry.dirty = true;
101
+ }
102
+ }
103
+ /**
104
+ * Get all dirty entries
105
+ */
106
+ getDirtyEntries() {
107
+ return Array.from(this.cache.values()).filter(e => e.dirty);
108
+ }
109
+ /**
110
+ * Clear dirty flags
111
+ */
112
+ clearDirtyFlags() {
113
+ for (const entry of this.cache.values()) {
114
+ entry.dirty = false;
115
+ }
116
+ }
117
+ /**
118
+ * Get cache statistics
119
+ */
120
+ getStats() {
121
+ const entries = Array.from(this.cache.values());
122
+ const totalAccess = entries.reduce((sum, e) => sum + e.accessCount, 0);
123
+ const avgAccess = entries.length > 0 ? totalAccess / entries.length : 0;
124
+ return {
125
+ size: this.cache.size,
126
+ hitRate: 0, // Would need to track misses
127
+ avgAccessCount: avgAccess
128
+ };
129
+ }
130
+ /**
131
+ * Clear cache
132
+ */
133
+ clear() {
134
+ this.cache.clear();
135
+ this.accessOrder = [];
136
+ }
137
+ }
138
+ /**
139
+ * Optimized vector operations using Float64Array
140
+ * Faster than standard array operations for numerical computations
141
+ */
142
+ class VectorOps {
143
+ /**
144
+ * Encode state features to typed array (faster than regular arrays)
145
+ */
146
+ static encodeStateToTypedArray(state) {
147
+ const features = new Float64Array(6);
148
+ features[0] = state.taskComplexity;
149
+ features[1] = state.requiredCapabilities.length / 10; // normalized
150
+ features[2] = state.previousAttempts / 5; // normalized
151
+ features[3] = state.availableResources;
152
+ features[4] = state.timeConstraint ? Math.min(state.timeConstraint / 300000, 1) : 1;
153
+ features[5] = Object.keys(state.contextFeatures).length / 10; // context complexity
154
+ return features;
155
+ }
156
+ /**
157
+ * Fast dot product using typed arrays
158
+ */
159
+ static dotProduct(a, b) {
160
+ let result = 0;
161
+ const len = Math.min(a.length, b.length);
162
+ for (let i = 0; i < len; i++) {
163
+ result += a[i] * b[i];
164
+ }
165
+ return result;
166
+ }
167
+ /**
168
+ * Fast euclidean distance
169
+ */
170
+ static euclideanDistance(a, b) {
171
+ let sum = 0;
172
+ const len = Math.min(a.length, b.length);
173
+ for (let i = 0; i < len; i++) {
174
+ const diff = a[i] - b[i];
175
+ sum += diff * diff;
176
+ }
177
+ return Math.sqrt(sum);
178
+ }
179
+ /**
180
+ * Normalize vector in-place
181
+ */
182
+ static normalize(vec) {
183
+ let sum = 0;
184
+ for (let i = 0; i < vec.length; i++) {
185
+ sum += vec[i] * vec[i];
186
+ }
187
+ const magnitude = Math.sqrt(sum);
188
+ if (magnitude > 0) {
189
+ for (let i = 0; i < vec.length; i++) {
190
+ vec[i] /= magnitude;
191
+ }
192
+ }
193
+ }
194
+ }
195
+ exports.VectorOps = VectorOps;
196
+ /**
197
+ * Memory pool for experience objects
198
+ * Reduces GC pressure by reusing objects
199
+ */
200
+ class ExperiencePool {
201
+ constructor(maxSize) {
202
+ this.maxSize = maxSize;
203
+ this.pool = [];
204
+ this.preallocate();
205
+ }
206
+ /**
207
+ * Preallocate pool entries
208
+ */
209
+ preallocate() {
210
+ for (let i = 0; i < this.maxSize; i++) {
211
+ this.pool.push({
212
+ experience: null,
213
+ inUse: false,
214
+ lastUsed: 0
215
+ });
216
+ }
217
+ }
218
+ /**
219
+ * Acquire experience object from pool
220
+ */
221
+ acquire() {
222
+ for (const entry of this.pool) {
223
+ if (!entry.inUse) {
224
+ entry.inUse = true;
225
+ entry.lastUsed = Date.now();
226
+ return entry;
227
+ }
228
+ }
229
+ return null; // Pool exhausted
230
+ }
231
+ /**
232
+ * Release experience object back to pool
233
+ */
234
+ release(pooled) {
235
+ pooled.inUse = false;
236
+ pooled.experience = null;
237
+ }
238
+ /**
239
+ * Get pool statistics
240
+ */
241
+ getStats() {
242
+ const inUse = this.pool.filter(e => e.inUse).length;
243
+ return {
244
+ total: this.pool.length,
245
+ inUse,
246
+ available: this.pool.length - inUse,
247
+ utilization: inUse / this.pool.length
248
+ };
249
+ }
250
+ }
251
+ /**
252
+ * PerformanceOptimizer - Main optimizer class
253
+ *
254
+ * Optimizes learning algorithm performance through:
255
+ * 1. Caching frequently-accessed Q-values
256
+ * 2. Lazy evaluation of rarely-used values
257
+ * 3. Batched updates to reduce overhead
258
+ * 4. Memory pooling to reduce GC pressure
259
+ * 5. Optimized vector operations with typed arrays
260
+ */
261
+ class PerformanceOptimizer {
262
+ constructor(config = {}) {
263
+ this.logger = Logger_1.Logger.getInstance();
264
+ this.config = { ...DEFAULT_CONFIG, ...config };
265
+ // Initialize cache
266
+ this.cache = new LRUCache(this.config.cacheSize);
267
+ // Initialize lazy evaluation tracking
268
+ this.lazyValues = new Map();
269
+ // Initialize batch queue
270
+ this.batchQueue = [];
271
+ // Initialize experience pool
272
+ this.experiencePool = new ExperiencePool(this.config.memoryPoolSize);
273
+ // Initialize statistics
274
+ this.stats = {
275
+ cacheHits: 0,
276
+ cacheMisses: 0,
277
+ batchUpdates: 0,
278
+ poolAcquisitions: 0,
279
+ poolExhausted: 0
280
+ };
281
+ this.logger.info('PerformanceOptimizer initialized', { config: this.config });
282
+ }
283
+ /**
284
+ * Get Q-value with caching (< 1ms target)
285
+ */
286
+ getQValue(stateKey, actionKey, loadCallback) {
287
+ // Try cache first
288
+ if (this.config.enableCaching) {
289
+ const cached = this.cache.get(stateKey, actionKey);
290
+ if (cached !== undefined) {
291
+ this.stats.cacheHits++;
292
+ return cached;
293
+ }
294
+ this.stats.cacheMisses++;
295
+ }
296
+ // Check lazy evaluation
297
+ if (this.config.enableLazyEval) {
298
+ const key = `${stateKey}:${actionKey}`;
299
+ const lazy = this.lazyValues.get(key);
300
+ if (lazy && !lazy.loaded) {
301
+ lazy.accessCount++;
302
+ // Load if accessed frequently enough
303
+ if (lazy.accessCount >= this.config.lazyAccessThreshold) {
304
+ const value = loadCallback();
305
+ lazy.loaded = true;
306
+ // Add to cache
307
+ if (this.config.enableCaching) {
308
+ this.cache.set(stateKey, actionKey, value);
309
+ }
310
+ return value;
311
+ }
312
+ return 0; // Default value for rarely-accessed
313
+ }
314
+ }
315
+ // Load value
316
+ const value = loadCallback();
317
+ // Add to cache
318
+ if (this.config.enableCaching) {
319
+ this.cache.set(stateKey, actionKey, value);
320
+ }
321
+ return value;
322
+ }
323
+ /**
324
+ * Queue Q-value update for batching
325
+ */
326
+ queueUpdate(stateKey, actionKey, oldValue, newValue) {
327
+ if (!this.config.enableBatchUpdates) {
328
+ // Apply immediately if batching disabled
329
+ this.applyUpdate(stateKey, actionKey, newValue);
330
+ return;
331
+ }
332
+ // Add to batch queue
333
+ this.batchQueue.push({
334
+ stateKey,
335
+ actionKey,
336
+ oldValue,
337
+ newValue,
338
+ timestamp: Date.now()
339
+ });
340
+ // Process batch if threshold reached
341
+ if (this.batchQueue.length >= this.config.batchUpdateSize) {
342
+ this.processBatchUpdates();
343
+ }
344
+ }
345
+ /**
346
+ * Process batched updates (< 5ms target for 32 updates)
347
+ */
348
+ processBatchUpdates() {
349
+ if (this.batchQueue.length === 0) {
350
+ return;
351
+ }
352
+ const startTime = performance.now();
353
+ // Group updates by state for efficiency
354
+ const updatesByState = new Map();
355
+ for (const update of this.batchQueue) {
356
+ if (!updatesByState.has(update.stateKey)) {
357
+ updatesByState.set(update.stateKey, new Map());
358
+ }
359
+ updatesByState.get(update.stateKey).set(update.actionKey, update.newValue);
360
+ }
361
+ // Apply grouped updates
362
+ for (const [stateKey, actions] of updatesByState.entries()) {
363
+ for (const [actionKey, value] of actions.entries()) {
364
+ this.applyUpdate(stateKey, actionKey, value);
365
+ }
366
+ }
367
+ const duration = performance.now() - startTime;
368
+ this.stats.batchUpdates++;
369
+ this.logger.debug(`Processed ${this.batchQueue.length} batched updates in ${duration.toFixed(2)}ms`);
370
+ // Clear queue
371
+ this.batchQueue = [];
372
+ }
373
+ /**
374
+ * Apply single update to cache and storage
375
+ */
376
+ applyUpdate(stateKey, actionKey, value) {
377
+ // Update cache
378
+ if (this.config.enableCaching) {
379
+ this.cache.set(stateKey, actionKey, value);
380
+ this.cache.markDirty(stateKey, actionKey);
381
+ }
382
+ // Mark as loaded in lazy evaluation
383
+ if (this.config.enableLazyEval) {
384
+ const key = `${stateKey}:${actionKey}`;
385
+ const lazy = this.lazyValues.get(key);
386
+ if (lazy) {
387
+ lazy.loaded = true;
388
+ }
389
+ }
390
+ }
391
+ /**
392
+ * Register lazy Q-value
393
+ */
394
+ registerLazyValue(stateKey, actionKey) {
395
+ if (!this.config.enableLazyEval) {
396
+ return;
397
+ }
398
+ const key = `${stateKey}:${actionKey}`;
399
+ if (!this.lazyValues.has(key)) {
400
+ this.lazyValues.set(key, {
401
+ stateKey,
402
+ actionKey,
403
+ loaded: false,
404
+ accessCount: 0
405
+ });
406
+ }
407
+ }
408
+ /**
409
+ * Acquire experience from pool (reduces GC pressure)
410
+ */
411
+ acquireExperience() {
412
+ if (!this.config.enableMemoryPooling) {
413
+ return null;
414
+ }
415
+ const pooled = this.experiencePool.acquire();
416
+ if (pooled) {
417
+ this.stats.poolAcquisitions++;
418
+ }
419
+ else {
420
+ this.stats.poolExhausted++;
421
+ }
422
+ return pooled;
423
+ }
424
+ /**
425
+ * Release experience back to pool
426
+ */
427
+ releaseExperience(pooled) {
428
+ if (!this.config.enableMemoryPooling) {
429
+ return;
430
+ }
431
+ this.experiencePool.release(pooled);
432
+ }
433
+ /**
434
+ * Encode state using optimized vector operations
435
+ */
436
+ encodeState(state) {
437
+ const features = VectorOps.encodeStateToTypedArray(state);
438
+ // Round to reduce state space
439
+ const rounded = Array.from(features).map(f => Math.round(f * 10) / 10);
440
+ return rounded.join(',');
441
+ }
442
+ /**
443
+ * Calculate state similarity using optimized operations
444
+ */
445
+ calculateStateSimilarity(state1, state2) {
446
+ const vec1 = VectorOps.encodeStateToTypedArray(state1);
447
+ const vec2 = VectorOps.encodeStateToTypedArray(state2);
448
+ // Normalize vectors
449
+ VectorOps.normalize(vec1);
450
+ VectorOps.normalize(vec2);
451
+ // Calculate cosine similarity
452
+ return VectorOps.dotProduct(vec1, vec2);
453
+ }
454
+ /**
455
+ * Find similar states using optimized operations (< 10ms for 1000 states)
456
+ */
457
+ findSimilarStates(targetState, candidateStates, topK = 5, threshold = 0.8) {
458
+ const startTime = performance.now();
459
+ const targetVec = VectorOps.encodeStateToTypedArray(targetState);
460
+ VectorOps.normalize(targetVec);
461
+ const similarities = [];
462
+ for (const candidate of candidateStates) {
463
+ const candidateVec = VectorOps.encodeStateToTypedArray(candidate);
464
+ VectorOps.normalize(candidateVec);
465
+ const similarity = VectorOps.dotProduct(targetVec, candidateVec);
466
+ if (similarity >= threshold) {
467
+ similarities.push({ state: candidate, similarity });
468
+ }
469
+ }
470
+ // Sort by similarity and take top K
471
+ similarities.sort((a, b) => b.similarity - a.similarity);
472
+ const result = similarities.slice(0, topK);
473
+ const duration = performance.now() - startTime;
474
+ this.logger.debug(`Found ${result.length} similar states from ${candidateStates.length} candidates in ${duration.toFixed(2)}ms`);
475
+ return result;
476
+ }
477
+ /**
478
+ * Flush pending updates
479
+ */
480
+ flush() {
481
+ if (this.batchQueue.length > 0) {
482
+ this.processBatchUpdates();
483
+ }
484
+ }
485
+ /**
486
+ * Get dirty cache entries for persistence
487
+ */
488
+ getDirtyEntries() {
489
+ return this.cache.getDirtyEntries();
490
+ }
491
+ /**
492
+ * Clear dirty flags after persistence
493
+ */
494
+ clearDirtyFlags() {
495
+ this.cache.clearDirtyFlags();
496
+ }
497
+ /**
498
+ * Get optimizer statistics
499
+ */
500
+ getStatistics() {
501
+ const totalCacheAccess = this.stats.cacheHits + this.stats.cacheMisses;
502
+ const cacheHitRate = totalCacheAccess > 0 ? this.stats.cacheHits / totalCacheAccess : 0;
503
+ const lazyLoaded = Array.from(this.lazyValues.values()).filter(v => v.loaded).length;
504
+ return {
505
+ cache: this.cache.getStats(),
506
+ lazyValues: {
507
+ total: this.lazyValues.size,
508
+ loaded: lazyLoaded,
509
+ unloaded: this.lazyValues.size - lazyLoaded
510
+ },
511
+ batch: {
512
+ queueSize: this.batchQueue.length,
513
+ totalBatches: this.stats.batchUpdates,
514
+ avgBatchSize: this.stats.batchUpdates > 0
515
+ ? this.batchQueue.length / this.stats.batchUpdates
516
+ : 0
517
+ },
518
+ pool: this.experiencePool.getStats(),
519
+ performance: {
520
+ cacheHitRate,
521
+ poolUtilization: this.experiencePool.getStats().utilization
522
+ }
523
+ };
524
+ }
525
+ /**
526
+ * Reset optimizer state
527
+ */
528
+ reset() {
529
+ this.cache.clear();
530
+ this.lazyValues.clear();
531
+ this.batchQueue = [];
532
+ this.stats = {
533
+ cacheHits: 0,
534
+ cacheMisses: 0,
535
+ batchUpdates: 0,
536
+ poolAcquisitions: 0,
537
+ poolExhausted: 0
538
+ };
539
+ this.logger.info('PerformanceOptimizer reset');
540
+ }
541
+ /**
542
+ * Get memory usage estimate
543
+ */
544
+ getMemoryUsage() {
545
+ const cacheSize = JSON.stringify(Array.from(this.cache['cache'].values())).length;
546
+ const lazySize = JSON.stringify(Array.from(this.lazyValues.values())).length;
547
+ const batchSize = JSON.stringify(this.batchQueue).length;
548
+ return cacheSize + lazySize + batchSize;
549
+ }
550
+ }
551
+ exports.PerformanceOptimizer = PerformanceOptimizer;
552
+ //# sourceMappingURL=PerformanceOptimizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PerformanceOptimizer.js","sourceRoot":"","sources":["../../src/learning/PerformanceOptimizer.ts"],"names":[],"mappings":"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"}