claude-flow 2.0.0-alpha.65 → 2.0.0-alpha.67

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 (112) hide show
  1. package/.claude/cache/agent-pool.json +33 -0
  2. package/.claude/cache/memory-optimization.json +19 -0
  3. package/.claude/cache/neural-optimization.json +25 -0
  4. package/.claude/cache/optimized-hooks.json +19 -0
  5. package/.claude/cache/parallel-processing.json +26 -0
  6. package/.claude/optimized-settings.json +270 -0
  7. package/.claude/settings-enhanced.json +278 -0
  8. package/.claude/settings.json +105 -8
  9. package/CHANGELOG.md +40 -0
  10. package/bin/claude-flow +1 -1
  11. package/dist/cli/simple-commands/hive-mind.js +1 -1
  12. package/dist/cli/simple-commands/hive-mind.js.map +1 -1
  13. package/dist/cli/simple-commands/hooks.js +6 -4
  14. package/dist/cli/simple-commands/hooks.js.map +1 -1
  15. package/dist/providers/anthropic-provider.d.ts +27 -0
  16. package/dist/providers/anthropic-provider.d.ts.map +1 -0
  17. package/dist/providers/anthropic-provider.js +247 -0
  18. package/dist/providers/anthropic-provider.js.map +1 -0
  19. package/dist/providers/base-provider.d.ts +134 -0
  20. package/dist/providers/base-provider.d.ts.map +1 -0
  21. package/dist/providers/base-provider.js +407 -0
  22. package/dist/providers/base-provider.js.map +1 -0
  23. package/dist/providers/cohere-provider.d.ts +28 -0
  24. package/dist/providers/cohere-provider.d.ts.map +1 -0
  25. package/dist/providers/cohere-provider.js +407 -0
  26. package/dist/providers/cohere-provider.js.map +1 -0
  27. package/dist/providers/google-provider.d.ts +23 -0
  28. package/dist/providers/google-provider.d.ts.map +1 -0
  29. package/dist/providers/google-provider.js +362 -0
  30. package/dist/providers/google-provider.js.map +1 -0
  31. package/dist/providers/index.d.ts +14 -0
  32. package/dist/providers/index.d.ts.map +1 -0
  33. package/dist/providers/index.js +18 -0
  34. package/dist/providers/index.js.map +1 -0
  35. package/dist/providers/ollama-provider.d.ts +23 -0
  36. package/dist/providers/ollama-provider.d.ts.map +1 -0
  37. package/dist/providers/ollama-provider.js +374 -0
  38. package/dist/providers/ollama-provider.js.map +1 -0
  39. package/dist/providers/openai-provider.d.ts +23 -0
  40. package/dist/providers/openai-provider.d.ts.map +1 -0
  41. package/dist/providers/openai-provider.js +349 -0
  42. package/dist/providers/openai-provider.js.map +1 -0
  43. package/dist/providers/provider-manager.d.ts +139 -0
  44. package/dist/providers/provider-manager.d.ts.map +1 -0
  45. package/dist/providers/provider-manager.js +513 -0
  46. package/dist/providers/provider-manager.js.map +1 -0
  47. package/dist/providers/types.d.ts +356 -0
  48. package/dist/providers/types.d.ts.map +1 -0
  49. package/dist/providers/types.js +61 -0
  50. package/dist/providers/types.js.map +1 -0
  51. package/dist/providers/utils.d.ts +37 -0
  52. package/dist/providers/utils.d.ts.map +1 -0
  53. package/dist/providers/utils.js +322 -0
  54. package/dist/providers/utils.js.map +1 -0
  55. package/dist/services/agentic-flow-hooks/hook-manager.d.ts +70 -0
  56. package/dist/services/agentic-flow-hooks/hook-manager.d.ts.map +1 -0
  57. package/dist/services/agentic-flow-hooks/hook-manager.js +512 -0
  58. package/dist/services/agentic-flow-hooks/hook-manager.js.map +1 -0
  59. package/dist/services/agentic-flow-hooks/index.d.ts +36 -0
  60. package/dist/services/agentic-flow-hooks/index.d.ts.map +1 -0
  61. package/dist/services/agentic-flow-hooks/index.js +325 -0
  62. package/dist/services/agentic-flow-hooks/index.js.map +1 -0
  63. package/dist/services/agentic-flow-hooks/llm-hooks.d.ts +33 -0
  64. package/dist/services/agentic-flow-hooks/llm-hooks.d.ts.map +1 -0
  65. package/dist/services/agentic-flow-hooks/llm-hooks.js +415 -0
  66. package/dist/services/agentic-flow-hooks/llm-hooks.js.map +1 -0
  67. package/dist/services/agentic-flow-hooks/memory-hooks.d.ts +45 -0
  68. package/dist/services/agentic-flow-hooks/memory-hooks.d.ts.map +1 -0
  69. package/dist/services/agentic-flow-hooks/memory-hooks.js +532 -0
  70. package/dist/services/agentic-flow-hooks/memory-hooks.js.map +1 -0
  71. package/dist/services/agentic-flow-hooks/neural-hooks.d.ts +39 -0
  72. package/dist/services/agentic-flow-hooks/neural-hooks.d.ts.map +1 -0
  73. package/dist/services/agentic-flow-hooks/neural-hooks.js +561 -0
  74. package/dist/services/agentic-flow-hooks/neural-hooks.js.map +1 -0
  75. package/dist/services/agentic-flow-hooks/performance-hooks.d.ts +33 -0
  76. package/dist/services/agentic-flow-hooks/performance-hooks.d.ts.map +1 -0
  77. package/dist/services/agentic-flow-hooks/performance-hooks.js +621 -0
  78. package/dist/services/agentic-flow-hooks/performance-hooks.js.map +1 -0
  79. package/dist/services/agentic-flow-hooks/types.d.ts +379 -0
  80. package/dist/services/agentic-flow-hooks/types.d.ts.map +1 -0
  81. package/dist/services/agentic-flow-hooks/types.js +8 -0
  82. package/dist/services/agentic-flow-hooks/types.js.map +1 -0
  83. package/dist/services/agentic-flow-hooks/workflow-hooks.d.ts +39 -0
  84. package/dist/services/agentic-flow-hooks/workflow-hooks.d.ts.map +1 -0
  85. package/dist/services/agentic-flow-hooks/workflow-hooks.js +742 -0
  86. package/dist/services/agentic-flow-hooks/workflow-hooks.js.map +1 -0
  87. package/package.json +2 -2
  88. package/scripts/install-arm64.js +78 -0
  89. package/scripts/optimize-performance.js +400 -0
  90. package/scripts/performance-monitor.js +263 -0
  91. package/src/cli/help-text.js +1 -1
  92. package/src/cli/simple-cli.js +1 -1
  93. package/src/cli/simple-commands/hive-mind.js +1 -1
  94. package/src/cli/simple-commands/hooks.js +8 -6
  95. package/src/providers/anthropic-provider.ts +282 -0
  96. package/src/providers/base-provider.ts +560 -0
  97. package/src/providers/cohere-provider.ts +521 -0
  98. package/src/providers/google-provider.ts +477 -0
  99. package/src/providers/index.ts +21 -0
  100. package/src/providers/ollama-provider.ts +489 -0
  101. package/src/providers/openai-provider.ts +476 -0
  102. package/src/providers/provider-manager.ts +654 -0
  103. package/src/providers/types.ts +531 -0
  104. package/src/providers/utils.ts +376 -0
  105. package/src/services/agentic-flow-hooks/hook-manager.ts +701 -0
  106. package/src/services/agentic-flow-hooks/index.ts +386 -0
  107. package/src/services/agentic-flow-hooks/llm-hooks.ts +557 -0
  108. package/src/services/agentic-flow-hooks/memory-hooks.ts +710 -0
  109. package/src/services/agentic-flow-hooks/neural-hooks.ts +758 -0
  110. package/src/services/agentic-flow-hooks/performance-hooks.ts +827 -0
  111. package/src/services/agentic-flow-hooks/types.ts +503 -0
  112. package/src/services/agentic-flow-hooks/workflow-hooks.ts +1026 -0
@@ -0,0 +1,621 @@
1
+ /**
2
+ * Performance optimization hooks for agentic-flow
3
+ *
4
+ * Tracks metrics, identifies bottlenecks, and provides
5
+ * optimization suggestions based on provider performance.
6
+ */
7
+ import { agenticHookManager } from './hook-manager.js';
8
+ // ===== Performance Metric Hook =====
9
+ export const performanceMetricHook = {
10
+ id: 'agentic-performance-metric',
11
+ type: 'performance-metric',
12
+ priority: 100,
13
+ handler: async (payload, context) => {
14
+ const { metric, value, unit, threshold } = payload;
15
+ const sideEffects = [];
16
+ // Store metric
17
+ const metricData = {
18
+ name: metric,
19
+ value,
20
+ unit,
21
+ timestamp: Date.now(),
22
+ tags: extractTags(payload.context),
23
+ };
24
+ context.performance.metrics.set(metric, metricData);
25
+ // Check threshold violations
26
+ if (threshold !== undefined) {
27
+ const violated = checkThreshold(value, threshold, payload.context);
28
+ if (violated) {
29
+ sideEffects.push({
30
+ type: 'notification',
31
+ action: 'emit',
32
+ data: {
33
+ event: 'performance:threshold:violated',
34
+ data: {
35
+ metric,
36
+ value,
37
+ threshold,
38
+ unit,
39
+ },
40
+ },
41
+ });
42
+ // Generate optimization suggestion
43
+ const suggestion = await generateOptimizationSuggestion(metric, value, threshold, context);
44
+ if (suggestion) {
45
+ context.performance.optimizations.push(suggestion);
46
+ sideEffects.push({
47
+ type: 'log',
48
+ action: 'write',
49
+ data: {
50
+ level: 'info',
51
+ message: 'Optimization suggestion generated',
52
+ data: suggestion,
53
+ },
54
+ });
55
+ }
56
+ }
57
+ }
58
+ // Update rolling averages
59
+ await updateRollingAverages(metric, value, context);
60
+ // Detect anomalies
61
+ const anomaly = await detectAnomaly(metric, value, context);
62
+ if (anomaly) {
63
+ sideEffects.push({
64
+ type: 'notification',
65
+ action: 'emit',
66
+ data: {
67
+ event: 'performance:anomaly:detected',
68
+ data: { metric, value, anomaly },
69
+ },
70
+ });
71
+ }
72
+ return {
73
+ continue: true,
74
+ sideEffects,
75
+ };
76
+ },
77
+ };
78
+ // ===== Performance Bottleneck Hook =====
79
+ export const performanceBottleneckHook = {
80
+ id: 'agentic-performance-bottleneck',
81
+ type: 'performance-bottleneck',
82
+ priority: 90,
83
+ handler: async (payload, context) => {
84
+ const { bottleneck } = payload;
85
+ if (!bottleneck) {
86
+ return { continue: true };
87
+ }
88
+ const sideEffects = [];
89
+ // Analyze bottleneck severity
90
+ const analysis = {
91
+ component: bottleneck.location,
92
+ severity: mapSeverity(bottleneck.severity),
93
+ impact: bottleneck.severity / 10, // Normalize to 0-1
94
+ suggestions: bottleneck.suggestions,
95
+ };
96
+ context.performance.bottlenecks.push(analysis);
97
+ // Store for historical analysis
98
+ sideEffects.push({
99
+ type: 'memory',
100
+ action: 'store',
101
+ data: {
102
+ key: `bottleneck:${analysis.component}:${Date.now()}`,
103
+ value: analysis,
104
+ ttl: 86400, // 24 hours
105
+ },
106
+ });
107
+ // Check for recurring bottlenecks
108
+ const recurrence = await checkBottleneckRecurrence(analysis.component, context);
109
+ if (recurrence.count > 3) {
110
+ // Recurring bottleneck - escalate
111
+ sideEffects.push({
112
+ type: 'notification',
113
+ action: 'emit',
114
+ data: {
115
+ event: 'performance:bottleneck:recurring',
116
+ data: {
117
+ component: analysis.component,
118
+ occurrences: recurrence.count,
119
+ timespan: recurrence.timespan,
120
+ },
121
+ },
122
+ });
123
+ // Generate advanced optimization
124
+ const optimization = await generateAdvancedOptimization(analysis, recurrence, context);
125
+ if (optimization) {
126
+ context.performance.optimizations.push(optimization);
127
+ }
128
+ }
129
+ // Correlate with other metrics
130
+ const correlations = await findMetricCorrelations(analysis.component, context);
131
+ if (correlations.length > 0) {
132
+ sideEffects.push({
133
+ type: 'log',
134
+ action: 'write',
135
+ data: {
136
+ level: 'info',
137
+ message: 'Bottleneck correlations found',
138
+ data: { bottleneck: analysis, correlations },
139
+ },
140
+ });
141
+ }
142
+ return {
143
+ continue: true,
144
+ sideEffects,
145
+ };
146
+ },
147
+ };
148
+ // ===== Performance Optimization Hook =====
149
+ export const performanceOptimizationHook = {
150
+ id: 'agentic-performance-optimization',
151
+ type: 'performance-optimization',
152
+ priority: 80,
153
+ handler: async (payload, context) => {
154
+ const { optimization } = payload;
155
+ if (!optimization) {
156
+ return { continue: true };
157
+ }
158
+ const sideEffects = [];
159
+ // Validate optimization
160
+ const validation = await validateOptimization(optimization, context);
161
+ if (!validation.valid) {
162
+ sideEffects.push({
163
+ type: 'log',
164
+ action: 'write',
165
+ data: {
166
+ level: 'warning',
167
+ message: 'Optimization validation failed',
168
+ data: { optimization, validation },
169
+ },
170
+ });
171
+ return { continue: true, sideEffects };
172
+ }
173
+ // Simulate optimization impact
174
+ const simulation = await simulateOptimization(optimization, context);
175
+ if (simulation.expectedImprovement < 0.1) {
176
+ // Low impact - skip
177
+ return { continue: true };
178
+ }
179
+ // Store optimization recommendation
180
+ const recommendation = {
181
+ optimization,
182
+ simulation,
183
+ timestamp: Date.now(),
184
+ autoApply: optimization.applied && simulation.risk === 'low',
185
+ };
186
+ sideEffects.push({
187
+ type: 'memory',
188
+ action: 'store',
189
+ data: {
190
+ key: `optimization:${optimization.type}:${Date.now()}`,
191
+ value: recommendation,
192
+ ttl: 604800, // 7 days
193
+ },
194
+ });
195
+ // Auto-apply low-risk optimizations
196
+ if (recommendation.autoApply) {
197
+ await applyOptimization(optimization, context);
198
+ sideEffects.push({
199
+ type: 'notification',
200
+ action: 'emit',
201
+ data: {
202
+ event: 'performance:optimization:applied',
203
+ data: { optimization, automatic: true },
204
+ },
205
+ });
206
+ }
207
+ else {
208
+ // Queue for manual review
209
+ sideEffects.push({
210
+ type: 'notification',
211
+ action: 'emit',
212
+ data: {
213
+ event: 'performance:optimization:suggested',
214
+ data: { optimization, simulation },
215
+ },
216
+ });
217
+ }
218
+ return {
219
+ continue: true,
220
+ sideEffects,
221
+ };
222
+ },
223
+ };
224
+ // ===== Performance Threshold Hook =====
225
+ export const performanceThresholdHook = {
226
+ id: 'agentic-performance-threshold',
227
+ type: 'performance-threshold',
228
+ priority: 95,
229
+ handler: async (payload, context) => {
230
+ const { metric, value, threshold } = payload;
231
+ if (threshold === undefined) {
232
+ return { continue: true };
233
+ }
234
+ const sideEffects = [];
235
+ // Dynamic threshold adjustment
236
+ const historicalData = await getMetricHistory(metric, context);
237
+ const adjustedThreshold = calculateDynamicThreshold(threshold, historicalData);
238
+ if (adjustedThreshold !== threshold) {
239
+ sideEffects.push({
240
+ type: 'log',
241
+ action: 'write',
242
+ data: {
243
+ level: 'info',
244
+ message: 'Threshold dynamically adjusted',
245
+ data: {
246
+ metric,
247
+ original: threshold,
248
+ adjusted: adjustedThreshold,
249
+ },
250
+ },
251
+ });
252
+ }
253
+ // Predict threshold violations
254
+ const prediction = await predictThresholdViolation(metric, value, adjustedThreshold, historicalData);
255
+ if (prediction.willViolate && prediction.confidence > 0.7) {
256
+ sideEffects.push({
257
+ type: 'notification',
258
+ action: 'emit',
259
+ data: {
260
+ event: 'performance:threshold:predicted',
261
+ data: {
262
+ metric,
263
+ currentValue: value,
264
+ threshold: adjustedThreshold,
265
+ predictedTime: prediction.timeToViolation,
266
+ confidence: prediction.confidence,
267
+ },
268
+ },
269
+ });
270
+ // Proactive optimization
271
+ const proactiveOpt = await generateProactiveOptimization(metric, prediction, context);
272
+ if (proactiveOpt) {
273
+ context.performance.optimizations.push(proactiveOpt);
274
+ }
275
+ }
276
+ return {
277
+ continue: true,
278
+ sideEffects,
279
+ };
280
+ },
281
+ };
282
+ // ===== Helper Functions =====
283
+ function extractTags(context) {
284
+ const tags = [];
285
+ if (context.provider)
286
+ tags.push(`provider:${context.provider}`);
287
+ if (context.model)
288
+ tags.push(`model:${context.model}`);
289
+ if (context.operation)
290
+ tags.push(`op:${context.operation}`);
291
+ if (context.component)
292
+ tags.push(`component:${context.component}`);
293
+ return tags;
294
+ }
295
+ function checkThreshold(value, threshold, context) {
296
+ // Check if threshold is violated based on context
297
+ const operator = context.thresholdOperator || 'gt';
298
+ switch (operator) {
299
+ case 'gt': return value > threshold;
300
+ case 'gte': return value >= threshold;
301
+ case 'lt': return value < threshold;
302
+ case 'lte': return value <= threshold;
303
+ case 'eq': return value === threshold;
304
+ case 'ne': return value !== threshold;
305
+ default: return value > threshold;
306
+ }
307
+ }
308
+ async function generateOptimizationSuggestion(metric, value, threshold, context) {
309
+ // Generate optimization based on metric type
310
+ const metricType = getMetricType(metric);
311
+ switch (metricType) {
312
+ case 'latency':
313
+ if (value > threshold * 2) {
314
+ return {
315
+ type: 'cache',
316
+ target: metric,
317
+ expectedImprovement: 50,
318
+ implementation: 'Enable response caching for frequently accessed data',
319
+ risk: 'low',
320
+ };
321
+ }
322
+ else if (value > threshold * 1.5) {
323
+ return {
324
+ type: 'parallel',
325
+ target: metric,
326
+ expectedImprovement: 30,
327
+ implementation: 'Parallelize independent operations',
328
+ risk: 'medium',
329
+ };
330
+ }
331
+ break;
332
+ case 'throughput':
333
+ if (value < threshold * 0.5) {
334
+ return {
335
+ type: 'batch',
336
+ target: metric,
337
+ expectedImprovement: 40,
338
+ implementation: 'Batch similar requests together',
339
+ risk: 'low',
340
+ };
341
+ }
342
+ break;
343
+ case 'memory':
344
+ if (value > threshold * 0.9) {
345
+ return {
346
+ type: 'resource',
347
+ target: metric,
348
+ expectedImprovement: 20,
349
+ implementation: 'Implement memory pooling and recycling',
350
+ risk: 'medium',
351
+ };
352
+ }
353
+ break;
354
+ }
355
+ return null;
356
+ }
357
+ async function updateRollingAverages(metric, value, context) {
358
+ const avgKey = `avg:${metric}`;
359
+ const history = await context.memory.cache.get(avgKey) || [];
360
+ history.push({ value, timestamp: Date.now() });
361
+ // Keep last 1000 values
362
+ if (history.length > 1000) {
363
+ history.shift();
364
+ }
365
+ await context.memory.cache.set(avgKey, history);
366
+ }
367
+ async function detectAnomaly(metric, value, context) {
368
+ const avgKey = `avg:${metric}`;
369
+ const history = await context.memory.cache.get(avgKey) || [];
370
+ if (history.length < 100) {
371
+ return null; // Not enough data
372
+ }
373
+ // Calculate statistics
374
+ const values = history.map((h) => h.value);
375
+ const mean = values.reduce((a, b) => a + b, 0) / values.length;
376
+ const variance = values.reduce((a, b) => a + Math.pow(b - mean, 2), 0) / values.length;
377
+ const stdDev = Math.sqrt(variance);
378
+ // Check if value is anomalous (> 3 standard deviations)
379
+ const zScore = Math.abs((value - mean) / stdDev);
380
+ if (zScore > 3) {
381
+ return {
382
+ type: 'statistical',
383
+ zScore,
384
+ mean,
385
+ stdDev,
386
+ severity: zScore > 5 ? 'high' : 'medium',
387
+ };
388
+ }
389
+ return null;
390
+ }
391
+ function mapSeverity(severity) {
392
+ if (severity >= 8)
393
+ return 'critical';
394
+ if (severity >= 6)
395
+ return 'high';
396
+ if (severity >= 4)
397
+ return 'medium';
398
+ return 'low';
399
+ }
400
+ async function checkBottleneckRecurrence(component, context) {
401
+ const historyKey = `bottleneck:history:${component}`;
402
+ const history = await context.memory.cache.get(historyKey) || [];
403
+ const now = Date.now();
404
+ const dayAgo = now - 86400000;
405
+ // Count occurrences in last 24 hours
406
+ const recentOccurrences = history.filter((h) => h.timestamp > dayAgo);
407
+ return {
408
+ count: recentOccurrences.length,
409
+ timespan: 86400000, // 24 hours in ms
410
+ };
411
+ }
412
+ async function generateAdvancedOptimization(bottleneck, recurrence, context) {
413
+ // Generate advanced optimization for recurring bottlenecks
414
+ if (bottleneck.severity === 'critical' && recurrence.count > 5) {
415
+ return {
416
+ type: 'algorithm',
417
+ target: bottleneck.component,
418
+ expectedImprovement: 60,
419
+ implementation: `Redesign ${bottleneck.component} algorithm for better scalability`,
420
+ risk: 'high',
421
+ };
422
+ }
423
+ if (bottleneck.severity === 'high' && recurrence.count > 3) {
424
+ return {
425
+ type: 'cache',
426
+ target: bottleneck.component,
427
+ expectedImprovement: 40,
428
+ implementation: `Implement distributed caching for ${bottleneck.component}`,
429
+ risk: 'medium',
430
+ };
431
+ }
432
+ return null;
433
+ }
434
+ async function findMetricCorrelations(component, context) {
435
+ const correlations = [];
436
+ // Check correlations with other metrics
437
+ for (const [metric, data] of context.performance.metrics) {
438
+ if (data.tags.includes(`component:${component}`)) {
439
+ // Simple correlation check
440
+ correlations.push({
441
+ metric: data.name,
442
+ correlation: 0.7, // Placeholder
443
+ });
444
+ }
445
+ }
446
+ return correlations;
447
+ }
448
+ async function validateOptimization(optimization, context) {
449
+ // Validate optimization is safe to apply
450
+ if (!optimization.type || !optimization.details) {
451
+ return {
452
+ valid: false,
453
+ reason: 'Missing required optimization fields',
454
+ };
455
+ }
456
+ // Check risk level
457
+ if (optimization.details === 'high' && !context.metadata.allowHighRisk) {
458
+ return {
459
+ valid: false,
460
+ reason: 'High-risk optimizations not allowed',
461
+ };
462
+ }
463
+ return { valid: true };
464
+ }
465
+ async function simulateOptimization(optimization, context) {
466
+ // Simulate optimization impact
467
+ const baseline = await getBaselineMetrics(optimization.type, context);
468
+ const simulation = {
469
+ expectedImprovement: optimization.improvement || 0.2,
470
+ risk: calculateRisk(optimization),
471
+ affectedMetrics: identifyAffectedMetrics(optimization),
472
+ rollbackPlan: generateRollbackPlan(optimization),
473
+ };
474
+ return simulation;
475
+ }
476
+ async function applyOptimization(optimization, context) {
477
+ // Apply optimization
478
+ // Placeholder implementation
479
+ const timestamp = Date.now();
480
+ // Store optimization application
481
+ await context.memory.cache.set(`applied:${optimization.type}:${timestamp}`, {
482
+ optimization,
483
+ appliedAt: timestamp,
484
+ appliedBy: 'automatic',
485
+ });
486
+ }
487
+ async function getMetricHistory(metric, context) {
488
+ const historyKey = `history:${metric}`;
489
+ return await context.memory.cache.get(historyKey) || [];
490
+ }
491
+ function calculateDynamicThreshold(baseThreshold, historicalData) {
492
+ if (historicalData.length < 50) {
493
+ return baseThreshold; // Not enough data
494
+ }
495
+ // Calculate percentile-based threshold
496
+ const values = historicalData
497
+ .map(d => d.value)
498
+ .sort((a, b) => a - b);
499
+ const p95 = values[Math.floor(values.length * 0.95)];
500
+ // Adjust threshold based on historical performance
501
+ return Math.max(baseThreshold, p95 * 1.1);
502
+ }
503
+ async function predictThresholdViolation(metric, currentValue, threshold, historicalData) {
504
+ if (historicalData.length < 10) {
505
+ return {
506
+ willViolate: false,
507
+ confidence: 0,
508
+ };
509
+ }
510
+ // Simple linear trend prediction
511
+ const recentValues = historicalData.slice(-10).map(d => d.value);
512
+ const trend = calculateTrend(recentValues);
513
+ if (trend > 0 && currentValue > threshold * 0.8) {
514
+ const timeToViolation = (threshold - currentValue) / trend;
515
+ return {
516
+ willViolate: true,
517
+ timeToViolation,
518
+ confidence: Math.min(trend * 10, 0.9),
519
+ };
520
+ }
521
+ return {
522
+ willViolate: false,
523
+ confidence: 0,
524
+ };
525
+ }
526
+ async function generateProactiveOptimization(metric, prediction, context) {
527
+ // Generate proactive optimization to prevent violation
528
+ const metricType = getMetricType(metric);
529
+ if (metricType === 'latency' && prediction.timeToViolation < 300000) {
530
+ return {
531
+ type: 'cache',
532
+ target: metric,
533
+ expectedImprovement: 30,
534
+ implementation: 'Preemptively cache high-latency operations',
535
+ risk: 'low',
536
+ };
537
+ }
538
+ return null;
539
+ }
540
+ function getMetricType(metric) {
541
+ if (metric.includes('latency'))
542
+ return 'latency';
543
+ if (metric.includes('throughput'))
544
+ return 'throughput';
545
+ if (metric.includes('memory'))
546
+ return 'memory';
547
+ if (metric.includes('cpu'))
548
+ return 'cpu';
549
+ return 'unknown';
550
+ }
551
+ async function getBaselineMetrics(type, context) {
552
+ // Get baseline metrics for comparison
553
+ // Placeholder implementation
554
+ return {};
555
+ }
556
+ function calculateRisk(optimization) {
557
+ // Calculate optimization risk level
558
+ if (optimization.type === 'algorithm')
559
+ return 'high';
560
+ if (optimization.type === 'architecture')
561
+ return 'high';
562
+ if (optimization.type === 'cache')
563
+ return 'low';
564
+ if (optimization.type === 'batch')
565
+ return 'low';
566
+ return 'medium';
567
+ }
568
+ function identifyAffectedMetrics(optimization) {
569
+ // Identify metrics affected by optimization
570
+ const affected = [];
571
+ switch (optimization.type) {
572
+ case 'cache':
573
+ affected.push('latency', 'memory_usage');
574
+ break;
575
+ case 'parallel':
576
+ affected.push('latency', 'cpu_usage', 'throughput');
577
+ break;
578
+ case 'batch':
579
+ affected.push('throughput', 'latency');
580
+ break;
581
+ case 'algorithm':
582
+ affected.push('latency', 'cpu_usage', 'memory_usage');
583
+ break;
584
+ }
585
+ return affected;
586
+ }
587
+ function generateRollbackPlan(optimization) {
588
+ // Generate rollback plan
589
+ return {
590
+ steps: [
591
+ 'Capture current metrics',
592
+ 'Apply optimization',
593
+ 'Monitor for 5 minutes',
594
+ 'Rollback if metrics degrade',
595
+ ],
596
+ triggers: {
597
+ errorRate: 0.05,
598
+ latencyIncrease: 1.5,
599
+ },
600
+ };
601
+ }
602
+ function calculateTrend(values) {
603
+ if (values.length < 2)
604
+ return 0;
605
+ // Simple linear regression
606
+ const n = values.length;
607
+ const sumX = values.reduce((a, _, i) => a + i, 0);
608
+ const sumY = values.reduce((a, b) => a + b, 0);
609
+ const sumXY = values.reduce((a, b, i) => a + i * b, 0);
610
+ const sumX2 = values.reduce((a, _, i) => a + i * i, 0);
611
+ const slope = (n * sumXY - sumX * sumY) / (n * sumX2 - sumX * sumX);
612
+ return slope;
613
+ }
614
+ // ===== Register Hooks =====
615
+ export function registerPerformanceHooks() {
616
+ agenticHookManager.register(performanceMetricHook);
617
+ agenticHookManager.register(performanceBottleneckHook);
618
+ agenticHookManager.register(performanceOptimizationHook);
619
+ agenticHookManager.register(performanceThresholdHook);
620
+ }
621
+ //# sourceMappingURL=performance-hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance-hooks.js","sourceRoot":"","sources":["../../../src/services/agentic-flow-hooks/performance-hooks.ts"],"names":[],"mappings":"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"}