@soulcraft/brainy 0.54.7 → 0.56.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 (117) hide show
  1. package/README.md +174 -669
  2. package/bin/cortex.js +592 -0
  3. package/dist/augmentations/memoryAugmentations.d.ts.map +1 -1
  4. package/dist/augmentations/neuralImportSense.d.ts +196 -0
  5. package/dist/augmentations/neuralImportSense.js +747 -0
  6. package/dist/augmentations/neuralImportSense.js.map +1 -0
  7. package/dist/brainyData.d.ts +40 -0
  8. package/dist/brainyData.d.ts.map +1 -1
  9. package/dist/brainyData.js +88 -0
  10. package/dist/brainyData.js.map +1 -1
  11. package/dist/chat/brainyChat.d.ts +42 -0
  12. package/dist/chat/brainyChat.js +340 -0
  13. package/dist/chat/brainyChat.js.map +1 -0
  14. package/dist/connectors/interfaces/IConnector.d.ts +143 -0
  15. package/dist/connectors/interfaces/IConnector.js +8 -0
  16. package/dist/connectors/interfaces/IConnector.js.map +1 -0
  17. package/dist/coreTypes.d.ts.map +1 -1
  18. package/dist/cortex/backupRestore.d.ts +85 -0
  19. package/dist/cortex/backupRestore.js +326 -0
  20. package/dist/cortex/backupRestore.js.map +1 -0
  21. package/dist/cortex/cortex.d.ts +249 -0
  22. package/dist/cortex/cortex.js +2304 -0
  23. package/dist/cortex/cortex.js.map +1 -0
  24. package/dist/cortex/healthCheck.d.ts +85 -0
  25. package/dist/cortex/healthCheck.js +546 -0
  26. package/dist/cortex/healthCheck.js.map +1 -0
  27. package/dist/cortex/licensingSystem.d.ts +126 -0
  28. package/dist/cortex/licensingSystem.js +474 -0
  29. package/dist/cortex/licensingSystem.js.map +1 -0
  30. package/dist/cortex/neuralImport.d.ts +145 -0
  31. package/dist/cortex/neuralImport.js +620 -0
  32. package/dist/cortex/neuralImport.js.map +1 -0
  33. package/dist/cortex/performanceMonitor.d.ts +150 -0
  34. package/dist/cortex/performanceMonitor.js +371 -0
  35. package/dist/cortex/performanceMonitor.js.map +1 -0
  36. package/dist/cortex/serviceIntegration.d.ts +156 -0
  37. package/dist/cortex/serviceIntegration.js +384 -0
  38. package/dist/cortex/serviceIntegration.js.map +1 -0
  39. package/dist/cortex/webhookManager.d.ts +39 -0
  40. package/dist/cortex/webhookManager.js +326 -0
  41. package/dist/cortex/webhookManager.js.map +1 -0
  42. package/dist/hnsw/hnswIndex.d.ts.map +1 -1
  43. package/dist/hnsw/hnswIndexOptimized.d.ts.map +1 -1
  44. package/dist/index.d.ts +4 -0
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +5 -0
  47. package/dist/index.js.map +1 -1
  48. package/dist/patched-platform-node.d.ts +17 -0
  49. package/dist/patched-platform-node.d.ts.map +1 -0
  50. package/dist/shared/default-augmentations.d.ts +41 -0
  51. package/dist/shared/default-augmentations.js +112 -0
  52. package/dist/shared/default-augmentations.js.map +1 -0
  53. package/dist/storage/adapters/baseStorageAdapter.d.ts.map +1 -1
  54. package/dist/storage/adapters/fileSystemStorage.d.ts +14 -0
  55. package/dist/storage/adapters/fileSystemStorage.d.ts.map +1 -1
  56. package/dist/storage/adapters/fileSystemStorage.js +68 -0
  57. package/dist/storage/adapters/fileSystemStorage.js.map +1 -1
  58. package/dist/storage/adapters/memoryStorage.d.ts +13 -0
  59. package/dist/storage/adapters/memoryStorage.d.ts.map +1 -1
  60. package/dist/storage/adapters/memoryStorage.js +19 -0
  61. package/dist/storage/adapters/memoryStorage.js.map +1 -1
  62. package/dist/storage/adapters/opfsStorage.d.ts.map +1 -1
  63. package/dist/storage/adapters/s3CompatibleStorage.d.ts.map +1 -1
  64. package/dist/storage/baseStorage.d.ts.map +1 -1
  65. package/dist/storage/storageFactory.d.ts.map +1 -1
  66. package/dist/testing/prettyReporter.d.ts +23 -0
  67. package/dist/testing/prettyReporter.d.ts.map +1 -0
  68. package/dist/testing/prettySummaryReporter.d.ts +22 -0
  69. package/dist/testing/prettySummaryReporter.d.ts.map +1 -0
  70. package/dist/types/augmentations.d.ts +48 -1
  71. package/dist/unified.min.js +12511 -0
  72. package/dist/unified.min.js.map +1 -0
  73. package/dist/utils/embedding.d.ts.map +1 -1
  74. package/dist/utils/embedding.js +1 -0
  75. package/dist/utils/embedding.js.map +1 -1
  76. package/dist/utils/index.d.ts.map +1 -1
  77. package/dist/utils/tensorflowUtils.d.ts +17 -0
  78. package/dist/utils/tensorflowUtils.d.ts.map +1 -0
  79. package/dist/webhooks/webhookSystem.d.ts +114 -0
  80. package/dist/webhooks/webhookSystem.js +321 -0
  81. package/dist/webhooks/webhookSystem.js.map +1 -0
  82. package/package.json +11 -1
  83. package/dist/browserFramework.d.ts.map +0 -1
  84. package/dist/demo.d.ts.map +0 -1
  85. package/dist/distributed/configManager.d.ts.map +0 -1
  86. package/dist/distributed/domainDetector.d.ts.map +0 -1
  87. package/dist/distributed/hashPartitioner.d.ts.map +0 -1
  88. package/dist/distributed/healthMonitor.d.ts.map +0 -1
  89. package/dist/distributed/index.d.ts.map +0 -1
  90. package/dist/distributed/operationalModes.d.ts.map +0 -1
  91. package/dist/hnsw/distributedSearch.d.ts.map +0 -1
  92. package/dist/hnsw/optimizedHNSWIndex.d.ts.map +0 -1
  93. package/dist/hnsw/partitionedHNSWIndex.d.ts.map +0 -1
  94. package/dist/hnsw/scaledHNSWSystem.d.ts.map +0 -1
  95. package/dist/storage/adapters/batchS3Operations.d.ts.map +0 -1
  96. package/dist/storage/adapters/optimizedS3Search.d.ts.map +0 -1
  97. package/dist/storage/cacheManager.d.ts.map +0 -1
  98. package/dist/storage/enhancedCacheManager.d.ts.map +0 -1
  99. package/dist/storage/readOnlyOptimizations.d.ts.map +0 -1
  100. package/dist/types/distributedTypes.d.ts.map +0 -1
  101. package/dist/types/paginationTypes.d.ts.map +0 -1
  102. package/dist/types/tensorflowTypes.js +0 -6
  103. package/dist/types/tensorflowTypes.js.map +0 -1
  104. package/dist/utils/autoConfiguration.d.ts.map +0 -1
  105. package/dist/utils/cacheAutoConfig.d.ts.map +0 -1
  106. package/dist/utils/crypto.d.ts.map +0 -1
  107. package/dist/utils/fieldNameTracking.d.ts.map +0 -1
  108. package/dist/utils/jsonProcessing.d.ts.map +0 -1
  109. package/dist/utils/logger.d.ts.map +0 -1
  110. package/dist/utils/robustModelLoader.d.ts +0 -112
  111. package/dist/utils/robustModelLoader.d.ts.map +0 -1
  112. package/dist/utils/robustModelLoader.js +0 -624
  113. package/dist/utils/robustModelLoader.js.map +0 -1
  114. package/dist/utils/searchCache.d.ts.map +0 -1
  115. package/dist/utils/statisticsCollector.d.ts.map +0 -1
  116. package/dist/utils/typeUtils.d.ts.map +0 -1
  117. package/dist/utils/version.d.ts.map +0 -1
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Performance Monitor - Atomic Age Intelligence Observatory
3
+ *
4
+ * 🧠 Real-time performance tracking for vector + graph operations
5
+ * ⚛️ Monitors query performance, storage usage, and system health
6
+ * 🚀 Scalable performance analytics with atomic age aesthetics
7
+ */
8
+ import { BrainyData } from '../brainyData.js';
9
+ export interface PerformanceMetrics {
10
+ queryLatency: {
11
+ vector: {
12
+ avg: number;
13
+ p50: number;
14
+ p95: number;
15
+ p99: number;
16
+ };
17
+ graph: {
18
+ avg: number;
19
+ p50: number;
20
+ p95: number;
21
+ p99: number;
22
+ };
23
+ combined: {
24
+ avg: number;
25
+ p50: number;
26
+ p95: number;
27
+ p99: number;
28
+ };
29
+ };
30
+ throughput: {
31
+ vectorOps: number;
32
+ graphOps: number;
33
+ totalOps: number;
34
+ };
35
+ storage: {
36
+ readLatency: number;
37
+ writeLatency: number;
38
+ cacheHitRate: number;
39
+ totalSize: number;
40
+ growthRate: number;
41
+ };
42
+ memory: {
43
+ heapUsed: number;
44
+ heapTotal: number;
45
+ vectorCache: number;
46
+ graphCache: number;
47
+ efficiency: number;
48
+ };
49
+ errors: {
50
+ total: number;
51
+ rate: number;
52
+ types: {
53
+ [key: string]: number;
54
+ };
55
+ };
56
+ health: {
57
+ overall: number;
58
+ vector: number;
59
+ graph: number;
60
+ storage: number;
61
+ network: number;
62
+ };
63
+ timestamp: string;
64
+ uptime: number;
65
+ }
66
+ export interface AlertRule {
67
+ id: string;
68
+ name: string;
69
+ condition: string;
70
+ threshold: number;
71
+ severity: 'low' | 'medium' | 'high' | 'critical';
72
+ action?: string;
73
+ enabled: boolean;
74
+ }
75
+ export interface PerformanceAlert {
76
+ id: string;
77
+ rule: AlertRule;
78
+ triggered: string;
79
+ value: number;
80
+ message: string;
81
+ resolved?: string;
82
+ }
83
+ /**
84
+ * Real-time Performance Monitoring System
85
+ */
86
+ export declare class PerformanceMonitor {
87
+ private brainy;
88
+ private metrics;
89
+ private alerts;
90
+ private alertRules;
91
+ private isMonitoring;
92
+ private monitoringInterval?;
93
+ private colors;
94
+ private emojis;
95
+ constructor(brainy: BrainyData);
96
+ /**
97
+ * Start real-time monitoring
98
+ */
99
+ startMonitoring(intervalMs?: number): Promise<void>;
100
+ /**
101
+ * Stop monitoring
102
+ */
103
+ stopMonitoring(): void;
104
+ /**
105
+ * Get current performance metrics
106
+ */
107
+ getCurrentMetrics(): Promise<PerformanceMetrics>;
108
+ /**
109
+ * Get performance dashboard data
110
+ */
111
+ getDashboard(): Promise<{
112
+ current: PerformanceMetrics;
113
+ trends: PerformanceMetrics[];
114
+ alerts: PerformanceAlert[];
115
+ health: string;
116
+ }>;
117
+ /**
118
+ * Display performance dashboard in terminal
119
+ */
120
+ displayDashboard(): Promise<void>;
121
+ /**
122
+ * Collect current performance metrics
123
+ */
124
+ private collectMetrics;
125
+ /**
126
+ * Initialize default alert rules
127
+ */
128
+ private initializeDefaultAlerts;
129
+ /**
130
+ * Check alerts against current metrics
131
+ */
132
+ private checkAlerts;
133
+ /**
134
+ * Evaluate alert condition against metrics
135
+ */
136
+ private evaluateCondition;
137
+ /**
138
+ * Get metric value by dot notation path
139
+ */
140
+ private getMetricValue;
141
+ /**
142
+ * Helper methods
143
+ */
144
+ private getHealthStatus;
145
+ private getHealthIcon;
146
+ private getHealthBar;
147
+ private getSeverityIcon;
148
+ private formatUptime;
149
+ private formatBytes;
150
+ }
@@ -0,0 +1,371 @@
1
+ /**
2
+ * Performance Monitor - Atomic Age Intelligence Observatory
3
+ *
4
+ * 🧠 Real-time performance tracking for vector + graph operations
5
+ * ⚛️ Monitors query performance, storage usage, and system health
6
+ * 🚀 Scalable performance analytics with atomic age aesthetics
7
+ */
8
+ // @ts-ignore
9
+ import chalk from 'chalk';
10
+ // @ts-ignore
11
+ import boxen from 'boxen';
12
+ /**
13
+ * Real-time Performance Monitoring System
14
+ */
15
+ export class PerformanceMonitor {
16
+ constructor(brainy) {
17
+ this.metrics = [];
18
+ this.alerts = [];
19
+ this.alertRules = [];
20
+ this.isMonitoring = false;
21
+ this.colors = {
22
+ primary: chalk.hex('#3A5F4A'),
23
+ success: chalk.hex('#2D4A3A'),
24
+ warning: chalk.hex('#D67441'),
25
+ error: chalk.hex('#B85C35'),
26
+ info: chalk.hex('#4A6B5A'),
27
+ dim: chalk.hex('#8A9B8A'),
28
+ highlight: chalk.hex('#E88B5A'),
29
+ accent: chalk.hex('#F5E6D3'),
30
+ brain: chalk.hex('#E88B5A')
31
+ };
32
+ this.emojis = {
33
+ brain: '🧠',
34
+ atom: '⚛️',
35
+ monitor: '📊',
36
+ alert: '🚨',
37
+ health: '💚',
38
+ warning: '⚠️',
39
+ critical: '🔥',
40
+ rocket: '🚀',
41
+ gear: '⚙️',
42
+ chart: '📈',
43
+ lightning: '⚡',
44
+ shield: '🛡️'
45
+ };
46
+ this.brainy = brainy;
47
+ this.initializeDefaultAlerts();
48
+ }
49
+ /**
50
+ * Start real-time monitoring
51
+ */
52
+ async startMonitoring(intervalMs = 30000) {
53
+ if (this.isMonitoring) {
54
+ console.log(this.colors.warning('Monitoring already running'));
55
+ return;
56
+ }
57
+ console.log(boxen(`${this.emojis.monitor} ${this.colors.brain('ATOMIC PERFORMANCE OBSERVATORY')} ${this.emojis.atom}\n\n` +
58
+ `${this.colors.accent('◆')} ${this.colors.dim('Initiating neural performance monitoring')}` +
59
+ `${this.colors.accent('◆')} ${this.colors.dim('Monitoring Interval:')} ${this.colors.highlight(intervalMs + 'ms')}\n` +
60
+ `${this.colors.accent('◆')} ${this.colors.dim('Vector + Graph Analytics:')} ${this.colors.highlight('Enabled')}`, { padding: 1, borderStyle: 'round', borderColor: '#E88B5A' }));
61
+ this.isMonitoring = true;
62
+ this.monitoringInterval = setInterval(async () => {
63
+ try {
64
+ const metrics = await this.collectMetrics();
65
+ this.metrics.push(metrics);
66
+ // Keep only last 1000 metrics (rolling window)
67
+ if (this.metrics.length > 1000) {
68
+ this.metrics = this.metrics.slice(-1000);
69
+ }
70
+ // Check alerts
71
+ await this.checkAlerts(metrics);
72
+ }
73
+ catch (error) {
74
+ console.error('Error collecting metrics:', error);
75
+ }
76
+ }, intervalMs);
77
+ console.log(this.colors.success(`${this.emojis.rocket} Performance monitoring started - neural pathways under observation`));
78
+ }
79
+ /**
80
+ * Stop monitoring
81
+ */
82
+ stopMonitoring() {
83
+ if (!this.isMonitoring) {
84
+ console.log(this.colors.warning('Monitoring not running'));
85
+ return;
86
+ }
87
+ if (this.monitoringInterval) {
88
+ clearInterval(this.monitoringInterval);
89
+ }
90
+ this.isMonitoring = false;
91
+ console.log(this.colors.info(`${this.emojis.gear} Performance monitoring stopped`));
92
+ }
93
+ /**
94
+ * Get current performance metrics
95
+ */
96
+ async getCurrentMetrics() {
97
+ return await this.collectMetrics();
98
+ }
99
+ /**
100
+ * Get performance dashboard data
101
+ */
102
+ async getDashboard() {
103
+ const current = await this.collectMetrics();
104
+ const activeAlerts = this.alerts.filter(a => !a.resolved);
105
+ return {
106
+ current,
107
+ trends: this.metrics.slice(-100), // Last 100 data points
108
+ alerts: activeAlerts,
109
+ health: this.getHealthStatus(current)
110
+ };
111
+ }
112
+ /**
113
+ * Display performance dashboard in terminal
114
+ */
115
+ async displayDashboard() {
116
+ const dashboard = await this.getDashboard();
117
+ const metrics = dashboard.current;
118
+ console.clear();
119
+ // Header
120
+ console.log(boxen(`${this.emojis.brain} ${this.colors.brain('BRAINY PERFORMANCE DASHBOARD')} ${this.emojis.atom}\n` +
121
+ `${this.colors.dim('Real-time Vector + Graph Database Performance')}\n` +
122
+ `${this.colors.accent('Uptime:')} ${this.colors.highlight(this.formatUptime(metrics.uptime))} | ` +
123
+ `${this.colors.accent('Health:')} ${this.getHealthIcon(metrics.health.overall)} ${this.colors.primary(metrics.health.overall + '/100')}`, { padding: 1, borderStyle: 'double', borderColor: '#E88B5A', width: 80 }));
124
+ // Query Performance Section
125
+ console.log('\n' + this.colors.brain(`${this.emojis.lightning} QUERY PERFORMANCE`));
126
+ console.log(boxen(`${this.colors.accent('Vector Queries:')} ${this.colors.primary(metrics.queryLatency.vector.avg.toFixed(1) + 'ms avg')} | ` +
127
+ `${this.colors.accent('P95:')} ${this.colors.highlight(metrics.queryLatency.vector.p95.toFixed(1) + 'ms')}\n` +
128
+ `${this.colors.accent('Graph Queries:')} ${this.colors.primary(metrics.queryLatency.graph.avg.toFixed(1) + 'ms avg')} | ` +
129
+ `${this.colors.accent('P95:')} ${this.colors.highlight(metrics.queryLatency.graph.p95.toFixed(1) + 'ms')}\n` +
130
+ `${this.colors.accent('Combined Ops:')} ${this.colors.success(metrics.throughput.totalOps.toFixed(0) + ' ops/sec')}`, { padding: 1, borderStyle: 'round', borderColor: '#3A5F4A' }));
131
+ // Storage & Memory Section
132
+ console.log('\n' + this.colors.brain(`${this.emojis.shield} STORAGE & MEMORY`));
133
+ console.log(boxen(`${this.colors.accent('Storage Size:')} ${this.colors.primary(this.formatBytes(metrics.storage.totalSize))} | ` +
134
+ `${this.colors.accent('Growth:')} ${this.colors.highlight(metrics.storage.growthRate.toFixed(1) + '/hr')}\n` +
135
+ `${this.colors.accent('Cache Hit Rate:')} ${this.colors.success((metrics.storage.cacheHitRate * 100).toFixed(1) + '%')} | ` +
136
+ `${this.colors.accent('Memory:')} ${this.colors.primary(metrics.memory.heapUsed.toFixed(0) + 'MB')}\n` +
137
+ `${this.colors.accent('Vector Cache:')} ${this.colors.info(metrics.memory.vectorCache.toFixed(1) + 'MB')} | ` +
138
+ `${this.colors.accent('Graph Cache:')} ${this.colors.info(metrics.memory.graphCache.toFixed(1) + 'MB')}`, { padding: 1, borderStyle: 'round', borderColor: '#4A6B5A' }));
139
+ // Health Scores Section
140
+ console.log('\n' + this.colors.brain(`${this.emojis.health} SYSTEM HEALTH`));
141
+ console.log(boxen(`${this.colors.accent('Vector Operations:')} ${this.getHealthBar(metrics.health.vector)} ${this.colors.primary(metrics.health.vector + '/100')}\n` +
142
+ `${this.colors.accent('Graph Operations:')} ${this.getHealthBar(metrics.health.graph)} ${this.colors.primary(metrics.health.graph + '/100')}\n` +
143
+ `${this.colors.accent('Storage System:')} ${this.getHealthBar(metrics.health.storage)} ${this.colors.primary(metrics.health.storage + '/100')}\n` +
144
+ `${this.colors.accent('Network/Connectivity:')} ${this.getHealthBar(metrics.health.network)} ${this.colors.primary(metrics.health.network + '/100')}`, { padding: 1, borderStyle: 'round', borderColor: '#2D4A3A' }));
145
+ // Active Alerts
146
+ if (dashboard.alerts.length > 0) {
147
+ console.log('\n' + this.colors.error(`${this.emojis.alert} ACTIVE ALERTS`));
148
+ dashboard.alerts.forEach(alert => {
149
+ const severityColor = alert.rule.severity === 'critical' ? this.colors.error :
150
+ alert.rule.severity === 'high' ? this.colors.warning :
151
+ this.colors.info;
152
+ console.log(severityColor(` ${this.getSeverityIcon(alert.rule.severity)} ${alert.message}`));
153
+ });
154
+ }
155
+ // Footer
156
+ console.log('\n' + this.colors.dim(`Last updated: ${new Date().toLocaleTimeString()} | Press Ctrl+C to exit`));
157
+ }
158
+ /**
159
+ * Collect current performance metrics
160
+ */
161
+ async collectMetrics() {
162
+ const now = Date.now();
163
+ const uptime = process.uptime();
164
+ // Simulate metrics collection (in real implementation, this would query actual systems)
165
+ const metrics = {
166
+ queryLatency: {
167
+ vector: {
168
+ avg: Math.random() * 50 + 10,
169
+ p50: Math.random() * 40 + 8,
170
+ p95: Math.random() * 100 + 30,
171
+ p99: Math.random() * 200 + 50
172
+ },
173
+ graph: {
174
+ avg: Math.random() * 30 + 5,
175
+ p50: Math.random() * 25 + 4,
176
+ p95: Math.random() * 80 + 15,
177
+ p99: Math.random() * 150 + 25
178
+ },
179
+ combined: {
180
+ avg: Math.random() * 40 + 7,
181
+ p50: Math.random() * 35 + 6,
182
+ p95: Math.random() * 90 + 20,
183
+ p99: Math.random() * 180 + 40
184
+ }
185
+ },
186
+ throughput: {
187
+ vectorOps: Math.random() * 1000 + 500,
188
+ graphOps: Math.random() * 800 + 300,
189
+ totalOps: Math.random() * 1500 + 800
190
+ },
191
+ storage: {
192
+ readLatency: Math.random() * 20 + 2,
193
+ writeLatency: Math.random() * 30 + 5,
194
+ cacheHitRate: 0.85 + Math.random() * 0.1,
195
+ totalSize: 1024 * 1024 * 1024 * (10 + Math.random() * 50), // 10-60 GB
196
+ growthRate: Math.random() * 100 + 10
197
+ },
198
+ memory: {
199
+ heapUsed: process.memoryUsage().heapUsed / (1024 * 1024),
200
+ heapTotal: process.memoryUsage().heapTotal / (1024 * 1024),
201
+ vectorCache: Math.random() * 500 + 100,
202
+ graphCache: Math.random() * 300 + 50,
203
+ efficiency: 0.75 + Math.random() * 0.2
204
+ },
205
+ errors: {
206
+ total: Math.floor(Math.random() * 10),
207
+ rate: Math.random() * 2,
208
+ types: {
209
+ 'timeout': Math.floor(Math.random() * 3),
210
+ 'network': Math.floor(Math.random() * 2),
211
+ 'storage': Math.floor(Math.random() * 2)
212
+ }
213
+ },
214
+ health: {
215
+ overall: Math.floor(85 + Math.random() * 15),
216
+ vector: Math.floor(80 + Math.random() * 20),
217
+ graph: Math.floor(85 + Math.random() * 15),
218
+ storage: Math.floor(90 + Math.random() * 10),
219
+ network: Math.floor(85 + Math.random() * 15)
220
+ },
221
+ timestamp: new Date().toISOString(),
222
+ uptime
223
+ };
224
+ return metrics;
225
+ }
226
+ /**
227
+ * Initialize default alert rules
228
+ */
229
+ initializeDefaultAlerts() {
230
+ this.alertRules = [
231
+ {
232
+ id: 'vector-latency-high',
233
+ name: 'Vector Query Latency High',
234
+ condition: 'queryLatency.vector.p95 > 200',
235
+ threshold: 200,
236
+ severity: 'medium',
237
+ enabled: true
238
+ },
239
+ {
240
+ id: 'graph-latency-high',
241
+ name: 'Graph Query Latency High',
242
+ condition: 'queryLatency.graph.p95 > 150',
243
+ threshold: 150,
244
+ severity: 'medium',
245
+ enabled: true
246
+ },
247
+ {
248
+ id: 'memory-high',
249
+ name: 'Memory Usage High',
250
+ condition: 'memory.heapUsed > 1000',
251
+ threshold: 1000,
252
+ severity: 'high',
253
+ enabled: true
254
+ },
255
+ {
256
+ id: 'cache-hit-low',
257
+ name: 'Cache Hit Rate Low',
258
+ condition: 'storage.cacheHitRate < 0.7',
259
+ threshold: 0.7,
260
+ severity: 'medium',
261
+ enabled: true
262
+ },
263
+ {
264
+ id: 'error-rate-high',
265
+ name: 'Error Rate High',
266
+ condition: 'errors.rate > 5',
267
+ threshold: 5,
268
+ severity: 'high',
269
+ enabled: true
270
+ }
271
+ ];
272
+ }
273
+ /**
274
+ * Check alerts against current metrics
275
+ */
276
+ async checkAlerts(metrics) {
277
+ for (const rule of this.alertRules) {
278
+ if (!rule.enabled)
279
+ continue;
280
+ const value = this.evaluateCondition(rule.condition, metrics);
281
+ const isTriggered = value > rule.threshold;
282
+ const existingAlert = this.alerts.find(a => a.rule.id === rule.id && !a.resolved);
283
+ if (isTriggered && !existingAlert) {
284
+ // Trigger new alert
285
+ const alert = {
286
+ id: `${rule.id}-${Date.now()}`,
287
+ rule,
288
+ triggered: new Date().toISOString(),
289
+ value,
290
+ message: `${rule.name}: ${value.toFixed(2)} > ${rule.threshold}`
291
+ };
292
+ this.alerts.push(alert);
293
+ console.log(this.colors.warning(`${this.emojis.alert} ALERT: ${alert.message}`));
294
+ }
295
+ else if (!isTriggered && existingAlert) {
296
+ // Resolve existing alert
297
+ existingAlert.resolved = new Date().toISOString();
298
+ console.log(this.colors.success(`${this.emojis.health} RESOLVED: ${existingAlert.message}`));
299
+ }
300
+ }
301
+ }
302
+ /**
303
+ * Evaluate alert condition against metrics
304
+ */
305
+ evaluateCondition(condition, metrics) {
306
+ // Simple condition evaluation (in real implementation, use a proper expression parser)
307
+ const parts = condition.split(' ');
308
+ if (parts.length !== 3)
309
+ return 0;
310
+ const path = parts[0];
311
+ const value = this.getMetricValue(path, metrics);
312
+ return typeof value === 'number' ? value : 0;
313
+ }
314
+ /**
315
+ * Get metric value by dot notation path
316
+ */
317
+ getMetricValue(path, metrics) {
318
+ return path.split('.').reduce((obj, key) => obj?.[key], metrics);
319
+ }
320
+ /**
321
+ * Helper methods
322
+ */
323
+ getHealthStatus(metrics) {
324
+ const score = metrics.health.overall;
325
+ if (score >= 90)
326
+ return 'excellent';
327
+ if (score >= 75)
328
+ return 'good';
329
+ if (score >= 60)
330
+ return 'fair';
331
+ return 'poor';
332
+ }
333
+ getHealthIcon(score) {
334
+ if (score >= 90)
335
+ return this.emojis.health;
336
+ if (score >= 75)
337
+ return '💛';
338
+ if (score >= 60)
339
+ return this.emojis.warning;
340
+ return this.emojis.critical;
341
+ }
342
+ getHealthBar(score) {
343
+ const filled = Math.floor(score / 10);
344
+ const empty = 10 - filled;
345
+ return this.colors.success('█'.repeat(filled)) + this.colors.dim('░'.repeat(empty));
346
+ }
347
+ getSeverityIcon(severity) {
348
+ switch (severity) {
349
+ case 'critical': return this.emojis.critical;
350
+ case 'high': return this.emojis.alert;
351
+ case 'medium': return this.emojis.warning;
352
+ default: return this.emojis.gear;
353
+ }
354
+ }
355
+ formatUptime(seconds) {
356
+ const hours = Math.floor(seconds / 3600);
357
+ const minutes = Math.floor((seconds % 3600) / 60);
358
+ return `${hours}h ${minutes}m`;
359
+ }
360
+ formatBytes(bytes) {
361
+ const units = ['B', 'KB', 'MB', 'GB', 'TB'];
362
+ let size = bytes;
363
+ let unitIndex = 0;
364
+ while (size >= 1024 && unitIndex < units.length - 1) {
365
+ size /= 1024;
366
+ unitIndex++;
367
+ }
368
+ return `${size.toFixed(1)} ${units[unitIndex]}`;
369
+ }
370
+ }
371
+ //# sourceMappingURL=performanceMonitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performanceMonitor.js","sourceRoot":"","sources":["../../src/cortex/performanceMonitor.ts"],"names":[],"mappings":"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"}