@agent-relay/resiliency 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 (49) hide show
  1. package/dist/context-persistence.d.ts +140 -0
  2. package/dist/context-persistence.d.ts.map +1 -0
  3. package/dist/context-persistence.js +397 -0
  4. package/dist/context-persistence.js.map +1 -0
  5. package/dist/crash-insights.d.ts +156 -0
  6. package/dist/crash-insights.d.ts.map +1 -0
  7. package/dist/crash-insights.js +492 -0
  8. package/dist/crash-insights.js.map +1 -0
  9. package/dist/gossip-health.d.ts +137 -0
  10. package/dist/gossip-health.d.ts.map +1 -0
  11. package/dist/gossip-health.js +241 -0
  12. package/dist/gossip-health.js.map +1 -0
  13. package/dist/health-monitor.d.ts +97 -0
  14. package/dist/health-monitor.d.ts.map +1 -0
  15. package/dist/health-monitor.js +291 -0
  16. package/dist/health-monitor.js.map +1 -0
  17. package/dist/index.d.ts +68 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +68 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/leader-watchdog.d.ts +109 -0
  22. package/dist/leader-watchdog.d.ts.map +1 -0
  23. package/dist/leader-watchdog.js +189 -0
  24. package/dist/leader-watchdog.js.map +1 -0
  25. package/dist/logger.d.ts +114 -0
  26. package/dist/logger.d.ts.map +1 -0
  27. package/dist/logger.js +250 -0
  28. package/dist/logger.js.map +1 -0
  29. package/dist/memory-monitor.d.ts +172 -0
  30. package/dist/memory-monitor.d.ts.map +1 -0
  31. package/dist/memory-monitor.js +599 -0
  32. package/dist/memory-monitor.js.map +1 -0
  33. package/dist/metrics.d.ts +115 -0
  34. package/dist/metrics.d.ts.map +1 -0
  35. package/dist/metrics.js +239 -0
  36. package/dist/metrics.js.map +1 -0
  37. package/dist/provider-context.d.ts +100 -0
  38. package/dist/provider-context.d.ts.map +1 -0
  39. package/dist/provider-context.js +362 -0
  40. package/dist/provider-context.js.map +1 -0
  41. package/dist/stateless-lead.d.ts +149 -0
  42. package/dist/stateless-lead.d.ts.map +1 -0
  43. package/dist/stateless-lead.js +308 -0
  44. package/dist/stateless-lead.js.map +1 -0
  45. package/dist/supervisor.d.ts +147 -0
  46. package/dist/supervisor.d.ts.map +1 -0
  47. package/dist/supervisor.js +459 -0
  48. package/dist/supervisor.js.map +1 -0
  49. package/package.json +28 -0
@@ -0,0 +1,172 @@
1
+ /**
2
+ * Agent Memory Monitor
3
+ *
4
+ * Comprehensive memory monitoring for agent processes:
5
+ * - Detailed memory metrics (RSS, heap, external)
6
+ * - Memory trend analysis (growing/stable/shrinking)
7
+ * - High watermark tracking
8
+ * - Configurable thresholds for proactive alerting
9
+ * - Memory history for trend analysis
10
+ * - Crash prevention through memory pressure detection
11
+ */
12
+ import { EventEmitter } from 'events';
13
+ export interface MemorySnapshot {
14
+ timestamp: Date;
15
+ rssBytes: number;
16
+ heapUsedBytes: number;
17
+ heapTotalBytes: number;
18
+ externalBytes: number;
19
+ cpuPercent: number;
20
+ }
21
+ export interface AgentMemoryMetrics {
22
+ name: string;
23
+ pid: number;
24
+ current: MemorySnapshot;
25
+ highWatermark: number;
26
+ lowWatermark: number;
27
+ averageRss: number;
28
+ trend: 'growing' | 'stable' | 'shrinking' | 'unknown';
29
+ trendRatePerMinute: number;
30
+ alertLevel: 'normal' | 'warning' | 'critical' | 'oom_imminent';
31
+ lastAlertAt?: Date;
32
+ memoryHistory: MemorySnapshot[];
33
+ startedAt: Date;
34
+ uptimeMs: number;
35
+ }
36
+ export interface MemoryThresholds {
37
+ warningBytes: number;
38
+ criticalBytes: number;
39
+ oomImminentBytes: number;
40
+ trendGrowthRateWarning: number;
41
+ historyRetentionMinutes: number;
42
+ historyMaxSamples: number;
43
+ }
44
+ export interface MemoryMonitorConfig {
45
+ checkIntervalMs: number;
46
+ thresholds: MemoryThresholds;
47
+ enableTrendAnalysis: boolean;
48
+ enableProactiveAlerts: boolean;
49
+ }
50
+ export interface MemoryAlert {
51
+ type: 'warning' | 'critical' | 'oom_imminent' | 'trend_warning' | 'recovered';
52
+ agentName: string;
53
+ pid: number;
54
+ currentRss: number;
55
+ threshold: number;
56
+ message: string;
57
+ recommendation: string;
58
+ timestamp: Date;
59
+ }
60
+ export interface CrashMemoryContext {
61
+ agentName: string;
62
+ pid: number;
63
+ crashTime: Date;
64
+ lastKnownMemory: MemorySnapshot | null;
65
+ peakMemory: number;
66
+ averageMemory: number;
67
+ memoryTrend: string;
68
+ recentHistory: MemorySnapshot[];
69
+ likelyCause: 'oom' | 'memory_leak' | 'sudden_spike' | 'unknown';
70
+ analysisNotes: string[];
71
+ }
72
+ export declare class AgentMemoryMonitor extends EventEmitter {
73
+ private agents;
74
+ private pids;
75
+ private intervalId?;
76
+ private config;
77
+ private isRunning;
78
+ private alertCooldowns;
79
+ constructor(config?: Partial<MemoryMonitorConfig>);
80
+ /**
81
+ * Register an agent for memory monitoring
82
+ */
83
+ register(name: string, pid: number): void;
84
+ /**
85
+ * Update PID for an agent (after restart)
86
+ */
87
+ updatePid(name: string, newPid: number): void;
88
+ /**
89
+ * Unregister an agent
90
+ */
91
+ unregister(name: string): void;
92
+ /**
93
+ * Start memory monitoring
94
+ */
95
+ start(): void;
96
+ /**
97
+ * Stop memory monitoring
98
+ */
99
+ stop(): void;
100
+ /**
101
+ * Get memory metrics for all agents
102
+ */
103
+ getAll(): AgentMemoryMetrics[];
104
+ /**
105
+ * Get memory metrics for a specific agent
106
+ */
107
+ get(name: string): AgentMemoryMetrics | undefined;
108
+ /**
109
+ * Get crash context for an agent (for crash analysis)
110
+ */
111
+ getCrashContext(name: string): CrashMemoryContext;
112
+ /**
113
+ * Get system-wide memory summary
114
+ */
115
+ getSystemSummary(): {
116
+ totalAgents: number;
117
+ totalMemoryBytes: number;
118
+ agentsByAlertLevel: Record<string, number>;
119
+ topMemoryConsumers: Array<{
120
+ name: string;
121
+ rssBytes: number;
122
+ }>;
123
+ systemMemory: {
124
+ total: number;
125
+ free: number;
126
+ available: number;
127
+ };
128
+ };
129
+ /**
130
+ * Sample memory for all registered agents
131
+ */
132
+ private sampleAll;
133
+ /**
134
+ * Sample memory for a single agent
135
+ */
136
+ private sampleAgent;
137
+ /**
138
+ * Update metrics with new snapshot
139
+ */
140
+ private updateMetrics;
141
+ /**
142
+ * Analyze memory trend
143
+ */
144
+ private analyzeTrend;
145
+ /**
146
+ * Check and emit alerts
147
+ */
148
+ private checkAlerts;
149
+ /**
150
+ * Get memory for a process using ps
151
+ */
152
+ private getProcessMemory;
153
+ /**
154
+ * Get system memory info
155
+ */
156
+ private getSystemMemory;
157
+ /**
158
+ * Check if a process is alive
159
+ */
160
+ private isProcessAlive;
161
+ /**
162
+ * Structured logging
163
+ */
164
+ private log;
165
+ }
166
+ /**
167
+ * Format bytes for human-readable display
168
+ */
169
+ declare function formatBytes(bytes: number): string;
170
+ export { formatBytes };
171
+ export declare function getMemoryMonitor(config?: Partial<MemoryMonitorConfig>): AgentMemoryMonitor;
172
+ //# sourceMappingURL=memory-monitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-monitor.d.ts","sourceRoot":"","sources":["../src/memory-monitor.ts"],"names":[],"mappings":"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"}