snow-flow 1.1.76 → 1.1.78
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.
- package/.claude-flow/queen/queen-memory.db +0 -0
- package/CLAUDE.md +34 -5
- package/README.md +256 -384
- package/dist/agents/base-agent.d.ts +92 -0
- package/dist/agents/base-agent.d.ts.map +1 -0
- package/dist/agents/base-agent.js +228 -0
- package/dist/agents/base-agent.js.map +1 -0
- package/dist/agents/coordinator.d.ts +200 -0
- package/dist/agents/coordinator.d.ts.map +1 -0
- package/dist/agents/coordinator.js +775 -0
- package/dist/agents/coordinator.js.map +1 -0
- package/dist/agents/flow-builder-agent.d.ts +18 -0
- package/dist/agents/flow-builder-agent.d.ts.map +1 -0
- package/dist/agents/flow-builder-agent.js +536 -0
- package/dist/agents/flow-builder-agent.js.map +1 -0
- package/dist/agents/index.d.ts +18 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +61 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/queen-agent-example.d.ts +23 -0
- package/dist/agents/queen-agent-example.d.ts.map +1 -0
- package/dist/agents/queen-agent-example.js +241 -0
- package/dist/agents/queen-agent-example.js.map +1 -0
- package/dist/agents/queen-agent.d.ts +180 -0
- package/dist/agents/queen-agent.d.ts.map +1 -0
- package/dist/agents/queen-agent.js +909 -0
- package/dist/agents/queen-agent.js.map +1 -0
- package/dist/agents/queen-agent.test.d.ts +6 -0
- package/dist/agents/queen-agent.test.d.ts.map +1 -0
- package/dist/agents/queen-agent.test.js.map +1 -0
- package/dist/agents/script-writer-agent.d.ts +22 -0
- package/dist/agents/script-writer-agent.d.ts.map +1 -0
- package/dist/agents/script-writer-agent.js +695 -0
- package/dist/agents/script-writer-agent.js.map +1 -0
- package/dist/agents/security-agent.d.ts +23 -0
- package/dist/agents/security-agent.d.ts.map +1 -0
- package/dist/agents/security-agent.js +619 -0
- package/dist/agents/security-agent.js.map +1 -0
- package/dist/agents/test-agent.d.ts +26 -0
- package/dist/agents/test-agent.d.ts.map +1 -0
- package/dist/agents/test-agent.js +735 -0
- package/dist/agents/test-agent.js.map +1 -0
- package/dist/agents/test-agents.d.ts +7 -0
- package/dist/agents/test-agents.d.ts.map +1 -0
- package/dist/agents/test-agents.js +65 -0
- package/dist/agents/test-agents.js.map +1 -0
- package/dist/agents/widget-creator-agent.d.ts +18 -0
- package/dist/agents/widget-creator-agent.d.ts.map +1 -0
- package/dist/agents/widget-creator-agent.js +440 -0
- package/dist/agents/widget-creator-agent.js.map +1 -0
- package/dist/cli/snow-flow-cli-integration.d.ts +30 -0
- package/dist/cli/snow-flow-cli-integration.d.ts.map +1 -0
- package/dist/cli/snow-flow-cli-integration.js +385 -0
- package/dist/cli/snow-flow-cli-integration.js.map +1 -0
- package/dist/cli.js +466 -150
- package/dist/cli.js.map +1 -1
- package/dist/config/snow-flow-config.d.ts +1454 -0
- package/dist/config/snow-flow-config.d.ts.map +1 -0
- package/dist/config/snow-flow-config.js +403 -0
- package/dist/config/snow-flow-config.js.map +1 -0
- package/dist/health/system-health.d.ts +123 -0
- package/dist/health/system-health.d.ts.map +1 -0
- package/dist/health/system-health.js +580 -0
- package/dist/health/system-health.js.map +1 -0
- package/dist/index.d.ts +12 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -3
- package/dist/index.js.map +1 -1
- package/dist/mcp/servicenow-deployment-mcp-refactored.d.ts +58 -0
- package/dist/mcp/servicenow-deployment-mcp-refactored.d.ts.map +1 -0
- package/dist/mcp/servicenow-deployment-mcp-refactored.js +651 -0
- package/dist/mcp/servicenow-deployment-mcp-refactored.js.map +1 -0
- package/dist/mcp/servicenow-intelligent-mcp-refactored.d.ts +43 -0
- package/dist/mcp/servicenow-intelligent-mcp-refactored.d.ts.map +1 -0
- package/dist/mcp/servicenow-intelligent-mcp-refactored.js +576 -0
- package/dist/mcp/servicenow-intelligent-mcp-refactored.js.map +1 -0
- package/dist/mcp/servicenow-intelligent-mcp.d.ts +102 -1
- package/dist/mcp/servicenow-intelligent-mcp.d.ts.map +1 -1
- package/dist/mcp/servicenow-intelligent-mcp.js +2 -0
- package/dist/mcp/servicenow-intelligent-mcp.js.map +1 -1
- package/dist/mcp/shared/agent-context-provider.d.ts +77 -0
- package/dist/mcp/shared/agent-context-provider.d.ts.map +1 -0
- package/dist/mcp/shared/agent-context-provider.js +292 -0
- package/dist/mcp/shared/agent-context-provider.js.map +1 -0
- package/dist/mcp/shared/base-mcp-server.d.ts +97 -0
- package/dist/mcp/shared/base-mcp-server.d.ts.map +1 -0
- package/dist/mcp/shared/base-mcp-server.js +216 -0
- package/dist/mcp/shared/base-mcp-server.js.map +1 -0
- package/dist/mcp/shared/mcp-memory-manager.d.ts +87 -0
- package/dist/mcp/shared/mcp-memory-manager.d.ts.map +1 -0
- package/dist/mcp/shared/mcp-memory-manager.js +423 -0
- package/dist/mcp/shared/mcp-memory-manager.js.map +1 -0
- package/dist/memory/index.d.ts +9 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +20 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/mcp-integration-example.d.ts +6 -0
- package/dist/memory/mcp-integration-example.d.ts.map +1 -0
- package/dist/memory/mcp-integration-example.js +282 -0
- package/dist/memory/mcp-integration-example.js.map +1 -0
- package/dist/memory/memory-client.d.ts +184 -0
- package/dist/memory/memory-client.d.ts.map +1 -0
- package/dist/memory/memory-client.js +325 -0
- package/dist/memory/memory-client.js.map +1 -0
- package/dist/memory/memory-operations.d.ts +170 -0
- package/dist/memory/memory-operations.d.ts.map +1 -0
- package/dist/memory/memory-operations.js +639 -0
- package/dist/memory/memory-operations.js.map +1 -0
- package/dist/memory/memory-system.d.ts +118 -0
- package/dist/memory/memory-system.d.ts.map +1 -0
- package/dist/memory/memory-system.js +477 -0
- package/dist/memory/memory-system.js.map +1 -0
- package/dist/memory/memory-test.d.ts +6 -0
- package/dist/memory/memory-test.d.ts.map +1 -0
- package/dist/memory/memory-test.js +162 -0
- package/dist/memory/memory-test.js.map +1 -0
- package/dist/memory/swarm-memory.d.ts +135 -0
- package/dist/memory/swarm-memory.d.ts.map +1 -0
- package/dist/memory/swarm-memory.js +378 -0
- package/dist/memory/swarm-memory.js.map +1 -0
- package/dist/monitoring/performance-tracker.d.ts +157 -0
- package/dist/monitoring/performance-tracker.d.ts.map +1 -0
- package/dist/monitoring/performance-tracker.js +571 -0
- package/dist/monitoring/performance-tracker.js.map +1 -0
- package/dist/queen/agent-factory.d.ts +3 -0
- package/dist/queen/agent-factory.d.ts.map +1 -1
- package/dist/queen/agent-factory.js +52 -0
- package/dist/queen/agent-factory.js.map +1 -1
- package/dist/queen/queen-memory.d.ts +8 -2
- package/dist/queen/queen-memory.d.ts.map +1 -1
- package/dist/queen/queen-memory.js +46 -4
- package/dist/queen/queen-memory.js.map +1 -1
- package/dist/snow-flow-system.d.ts +132 -0
- package/dist/snow-flow-system.d.ts.map +1 -0
- package/dist/snow-flow-system.js +396 -0
- package/dist/snow-flow-system.js.map +1 -0
- package/dist/types/todo.types.d.ts +61 -0
- package/dist/types/todo.types.d.ts.map +1 -0
- package/dist/types/todo.types.js +7 -0
- package/dist/types/todo.types.js.map +1 -0
- package/dist/utils/error-recovery.d.ts +101 -0
- package/dist/utils/error-recovery.d.ts.map +1 -0
- package/dist/utils/error-recovery.js +548 -0
- package/dist/utils/error-recovery.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +7 -2
- package/deploy.sh +0 -366
- package/docker/base/Dockerfile.base +0 -45
- package/docker/generate-services.js +0 -244
- package/docker/nginx/Dockerfile +0 -71
- package/docker/nginx/consul-template.hcl +0 -64
- package/docker/nginx/healthcheck.sh +0 -178
- package/docker/nginx/nginx.conf +0 -210
- package/docker/nginx/supervisord.conf +0 -57
- package/docker/nginx/templates/upstreams.conf.tpl +0 -48
- package/docker/services/automation-mcp/Dockerfile +0 -32
- package/docker/services/automation-mcp/config/service.json +0 -28
- package/docker/services/automation-mcp/entrypoint.js +0 -51
- package/docker/services/deployment-mcp/Dockerfile +0 -32
- package/docker/services/deployment-mcp/entrypoint.js +0 -51
- package/docker/services/flow-composer-mcp/Dockerfile +0 -32
- package/docker/services/flow-composer-mcp/config/service.json +0 -28
- package/docker/services/flow-composer-mcp/entrypoint.js +0 -51
- package/docker/services/graph-memory-mcp/Dockerfile +0 -32
- package/docker/services/graph-memory-mcp/config/service.json +0 -28
- package/docker/services/graph-memory-mcp/entrypoint.js +0 -51
- package/docker/services/integration-mcp/Dockerfile +0 -32
- package/docker/services/integration-mcp/config/service.json +0 -28
- package/docker/services/integration-mcp/entrypoint.js +0 -51
- package/docker/services/intelligent-mcp/Dockerfile +0 -32
- package/docker/services/intelligent-mcp/config/service.json +0 -28
- package/docker/services/intelligent-mcp/entrypoint.js +0 -51
- package/docker/services/operations-mcp/Dockerfile +0 -32
- package/docker/services/operations-mcp/config/service.json +0 -28
- package/docker/services/operations-mcp/entrypoint.js +0 -51
- package/docker/services/platform-development-mcp/Dockerfile +0 -32
- package/docker/services/platform-development-mcp/config/service.json +0 -28
- package/docker/services/platform-development-mcp/entrypoint.js +0 -51
- package/docker/services/reporting-analytics-mcp/Dockerfile +0 -32
- package/docker/services/reporting-analytics-mcp/config/service.json +0 -28
- package/docker/services/reporting-analytics-mcp/entrypoint.js +0 -51
- package/docker/services/security-compliance-mcp/Dockerfile +0 -32
- package/docker/services/security-compliance-mcp/config/service.json +0 -28
- package/docker/services/security-compliance-mcp/entrypoint.js +0 -51
- package/docker/services/update-set-mcp/Dockerfile +0 -32
- package/docker/services/update-set-mcp/config/service.json +0 -28
- package/docker/services/update-set-mcp/entrypoint.js +0 -51
- package/docker-compose.override.yml +0 -132
- package/docker-compose.prod.yml +0 -340
- package/docker-compose.yml +0 -579
- package/k8s/automation-mcp.yaml +0 -232
- package/k8s/configmap.yaml +0 -237
- package/k8s/deployment-mcp.yaml +0 -232
- package/k8s/flow-composer-mcp.yaml +0 -232
- package/k8s/generate-k8s-manifests.js +0 -453
- package/k8s/graph-memory-mcp.yaml +0 -232
- package/k8s/infrastructure.yaml +0 -456
- package/k8s/ingress.yaml +0 -361
- package/k8s/integration-mcp.yaml +0 -232
- package/k8s/intelligent-mcp.yaml +0 -232
- package/k8s/kustomization.yaml +0 -111
- package/k8s/mcp-services.yaml +0 -2552
- package/k8s/monitoring.yaml +0 -515
- package/k8s/namespace.yaml +0 -80
- package/k8s/operations-mcp.yaml +0 -232
- package/k8s/platform-development-mcp.yaml +0 -232
- package/k8s/rbac.yaml +0 -140
- package/k8s/reporting-analytics-mcp.yaml +0 -232
- package/k8s/security-compliance-mcp.yaml +0 -232
- package/k8s/update-set-mcp.yaml +0 -232
- package/test-clean-install/.claude/config.json +0 -12
- package/test-clean-install/.env.example +0 -49
- package/test-clean-install/CLAUDE.md +0 -26
- package/test-clean-install/README.md +0 -23
- package/test-global-install/.claude/config.json +0 -12
- package/test-global-install/CLAUDE.md +0 -26
- package/test-global-install/README.md +0 -23
- package/test-global-install/test-global-install/.claude/config.json +0 -12
- package/test-global-install/test-global-install/CLAUDE.md +0 -26
- package/test-global-install/test-global-install/README.md +0 -23
- package/test-global-install/test-global-install/test-global-install/.claude/config.json +0 -12
- package/test-global-install/test-global-install/test-global-install/.env.example +0 -49
- package/test-global-install/test-global-install/test-global-install/CLAUDE.md +0 -26
- package/test-global-install/test-global-install/test-global-install/README.md +0 -23
- package/test-init-debug/.claude/config.json +0 -12
- package/test-init-debug/CLAUDE.md +0 -693
- package/test-init-debug/README.md +0 -392
- package/test-init-real/.claude/config.json +0 -12
- package/test-init-real/.claude/mcp-config.json +0 -128
- package/test-init-real/.claude/settings.json +0 -37
- package/test-init-real/CLAUDE.md +0 -693
- package/test-init-real/README.md +0 -392
- package/test-init-real/activate-mcp.sh +0 -15
|
@@ -0,0 +1,580 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Snow-Flow System Health Monitoring
|
|
4
|
+
* Comprehensive health checks for all components
|
|
5
|
+
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.SystemHealth = void 0;
|
|
11
|
+
const events_1 = require("events");
|
|
12
|
+
const servicenow_client_1 = require("../utils/servicenow-client");
|
|
13
|
+
const logger_1 = require("../utils/logger");
|
|
14
|
+
const os_1 = __importDefault(require("os"));
|
|
15
|
+
class SystemHealth extends events_1.EventEmitter {
|
|
16
|
+
constructor(options) {
|
|
17
|
+
super();
|
|
18
|
+
this.checkHistory = [];
|
|
19
|
+
this.totalChecks = 0;
|
|
20
|
+
this.failedChecks = 0;
|
|
21
|
+
this.memory = options.memory;
|
|
22
|
+
this.mcpManager = options.mcpManager;
|
|
23
|
+
this.config = options.config;
|
|
24
|
+
this.logger = new logger_1.Logger('SystemHealth');
|
|
25
|
+
this.startTime = Date.now();
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Initialize health monitoring
|
|
29
|
+
*/
|
|
30
|
+
async initialize() {
|
|
31
|
+
this.logger.info('Initializing System Health monitoring...');
|
|
32
|
+
// Initialize ServiceNow client for health checks
|
|
33
|
+
try {
|
|
34
|
+
this.serviceNowClient = new servicenow_client_1.ServiceNowClient();
|
|
35
|
+
await this.serviceNowClient.initialize();
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
this.logger.warn('ServiceNow client initialization failed:', error);
|
|
39
|
+
}
|
|
40
|
+
// Create health check tables
|
|
41
|
+
await this.createHealthTables();
|
|
42
|
+
// Perform initial health check
|
|
43
|
+
await this.performHealthCheck();
|
|
44
|
+
this.logger.info('System Health monitoring initialized');
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Start periodic health monitoring
|
|
48
|
+
*/
|
|
49
|
+
async startMonitoring(intervalMs = 60000) {
|
|
50
|
+
if (this.checkInterval) {
|
|
51
|
+
this.logger.warn('Health monitoring already started');
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
this.logger.info(`Starting health monitoring with ${intervalMs}ms interval`);
|
|
55
|
+
this.checkInterval = setInterval(async () => {
|
|
56
|
+
try {
|
|
57
|
+
await this.performHealthCheck();
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
this.logger.error('Health check failed:', error);
|
|
61
|
+
}
|
|
62
|
+
}, intervalMs);
|
|
63
|
+
// Perform immediate check
|
|
64
|
+
await this.performHealthCheck();
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Stop health monitoring
|
|
68
|
+
*/
|
|
69
|
+
async stopMonitoring() {
|
|
70
|
+
if (this.checkInterval) {
|
|
71
|
+
clearInterval(this.checkInterval);
|
|
72
|
+
this.checkInterval = undefined;
|
|
73
|
+
this.logger.info('Health monitoring stopped');
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Perform comprehensive health check
|
|
78
|
+
*/
|
|
79
|
+
async performHealthCheck() {
|
|
80
|
+
this.totalChecks++;
|
|
81
|
+
const startTime = Date.now();
|
|
82
|
+
this.logger.debug('Performing system health check...');
|
|
83
|
+
// Run all health checks in parallel
|
|
84
|
+
const [memory, mcp, servicenow, queen, system, performance] = await Promise.all([
|
|
85
|
+
this.config.checks.memory ? this.checkMemory() : this.createSkippedResult('memory'),
|
|
86
|
+
this.config.checks.mcp ? this.checkMCP() : this.createSkippedResult('mcp'),
|
|
87
|
+
this.config.checks.servicenow ? this.checkServiceNow() : this.createSkippedResult('servicenow'),
|
|
88
|
+
this.config.checks.queen ? this.checkQueen() : this.createSkippedResult('queen'),
|
|
89
|
+
this.checkSystem(),
|
|
90
|
+
this.checkPerformance()
|
|
91
|
+
]);
|
|
92
|
+
const components = { memory, mcp, servicenow, queen, system, performance };
|
|
93
|
+
// Determine overall health status
|
|
94
|
+
const unhealthyCount = Object.values(components).filter(c => c.status === 'unhealthy').length;
|
|
95
|
+
const degradedCount = Object.values(components).filter(c => c.status === 'degraded').length;
|
|
96
|
+
let overallStatus;
|
|
97
|
+
if (unhealthyCount > 0) {
|
|
98
|
+
overallStatus = 'unhealthy';
|
|
99
|
+
this.failedChecks++;
|
|
100
|
+
}
|
|
101
|
+
else if (degradedCount > 0) {
|
|
102
|
+
overallStatus = 'degraded';
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
overallStatus = 'healthy';
|
|
106
|
+
}
|
|
107
|
+
const status = {
|
|
108
|
+
healthy: overallStatus === 'healthy',
|
|
109
|
+
status: overallStatus,
|
|
110
|
+
timestamp: new Date(),
|
|
111
|
+
components,
|
|
112
|
+
metrics: {
|
|
113
|
+
uptime: Date.now() - this.startTime,
|
|
114
|
+
totalChecks: this.totalChecks,
|
|
115
|
+
failedChecks: this.failedChecks,
|
|
116
|
+
avgResponseTime: this.calculateAverageResponseTime(),
|
|
117
|
+
systemResources: await this.getSystemResources()
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
// Store health check result
|
|
121
|
+
await this.storeHealthResult(status);
|
|
122
|
+
// Emit health status
|
|
123
|
+
this.emit('health:check', status);
|
|
124
|
+
// Check for alerts
|
|
125
|
+
this.checkAlerts(status);
|
|
126
|
+
const duration = Date.now() - startTime;
|
|
127
|
+
this.logger.debug(`Health check completed in ${duration}ms - Status: ${overallStatus}`);
|
|
128
|
+
return status;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Get full health status
|
|
132
|
+
*/
|
|
133
|
+
async getFullStatus() {
|
|
134
|
+
return this.performHealthCheck();
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Get health history
|
|
138
|
+
*/
|
|
139
|
+
async getHealthHistory(limit = 100) {
|
|
140
|
+
return this.memory.query(`
|
|
141
|
+
SELECT * FROM health_checks
|
|
142
|
+
ORDER BY timestamp DESC
|
|
143
|
+
LIMIT ?
|
|
144
|
+
`, [limit]);
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Check if system is healthy
|
|
148
|
+
*/
|
|
149
|
+
async isHealthy() {
|
|
150
|
+
const status = await this.performHealthCheck();
|
|
151
|
+
return status.healthy;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Private health check methods
|
|
155
|
+
*/
|
|
156
|
+
async checkMemory() {
|
|
157
|
+
const startTime = Date.now();
|
|
158
|
+
try {
|
|
159
|
+
// Check if memory system is responsive
|
|
160
|
+
const testKey = `health_check_${Date.now()}`;
|
|
161
|
+
await this.memory.store(testKey, { test: true }, 60000); // 1 minute TTL
|
|
162
|
+
const retrieved = await this.memory.get(testKey);
|
|
163
|
+
await this.memory.delete(testKey);
|
|
164
|
+
if (!retrieved) {
|
|
165
|
+
throw new Error('Memory store/retrieve test failed');
|
|
166
|
+
}
|
|
167
|
+
// Check memory database size
|
|
168
|
+
const dbStats = await this.memory.getDatabaseStats();
|
|
169
|
+
const dbSizeMB = dbStats.size / 1024 / 1024;
|
|
170
|
+
// Check cache performance
|
|
171
|
+
const cacheStats = await this.memory.getCacheStats();
|
|
172
|
+
const cacheHitRate = cacheStats.hits / (cacheStats.hits + cacheStats.misses) || 0;
|
|
173
|
+
const responseTime = Date.now() - startTime;
|
|
174
|
+
// Determine status
|
|
175
|
+
let status = 'healthy';
|
|
176
|
+
let message = 'Memory system operating normally';
|
|
177
|
+
if (dbSizeMB > 1000) { // > 1GB
|
|
178
|
+
status = 'degraded';
|
|
179
|
+
message = 'Database size exceeding recommended limits';
|
|
180
|
+
}
|
|
181
|
+
if (cacheHitRate < 0.5 && cacheStats.hits + cacheStats.misses > 100) {
|
|
182
|
+
status = 'degraded';
|
|
183
|
+
message = 'Low cache hit rate';
|
|
184
|
+
}
|
|
185
|
+
if (responseTime > this.config.thresholds.responseTime) {
|
|
186
|
+
status = 'unhealthy';
|
|
187
|
+
message = 'Memory system response time too high';
|
|
188
|
+
}
|
|
189
|
+
return {
|
|
190
|
+
component: 'memory',
|
|
191
|
+
status,
|
|
192
|
+
message,
|
|
193
|
+
details: {
|
|
194
|
+
dbSizeMB,
|
|
195
|
+
cacheHitRate,
|
|
196
|
+
cacheStats,
|
|
197
|
+
responseTime
|
|
198
|
+
},
|
|
199
|
+
timestamp: new Date(),
|
|
200
|
+
responseTime
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
catch (error) {
|
|
204
|
+
return {
|
|
205
|
+
component: 'memory',
|
|
206
|
+
status: 'unhealthy',
|
|
207
|
+
message: 'Memory system check failed',
|
|
208
|
+
error: error.message,
|
|
209
|
+
timestamp: new Date(),
|
|
210
|
+
responseTime: Date.now() - startTime
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
async checkMCP() {
|
|
215
|
+
const startTime = Date.now();
|
|
216
|
+
try {
|
|
217
|
+
const serverStatuses = await this.mcpManager.getServerStatuses();
|
|
218
|
+
const totalServers = Object.keys(serverStatuses).length;
|
|
219
|
+
const healthyServers = Object.values(serverStatuses).filter(s => s.status === 'running').length;
|
|
220
|
+
const unhealthyServers = Object.values(serverStatuses).filter(s => s.status === 'error').length;
|
|
221
|
+
const responseTime = Date.now() - startTime;
|
|
222
|
+
let status = 'healthy';
|
|
223
|
+
let message = `All ${totalServers} MCP servers running`;
|
|
224
|
+
if (unhealthyServers > 0) {
|
|
225
|
+
status = unhealthyServers >= totalServers / 2 ? 'unhealthy' : 'degraded';
|
|
226
|
+
message = `${unhealthyServers} of ${totalServers} MCP servers not running`;
|
|
227
|
+
}
|
|
228
|
+
return {
|
|
229
|
+
component: 'mcp',
|
|
230
|
+
status,
|
|
231
|
+
message,
|
|
232
|
+
details: {
|
|
233
|
+
totalServers,
|
|
234
|
+
healthyServers,
|
|
235
|
+
unhealthyServers,
|
|
236
|
+
serverStatuses
|
|
237
|
+
},
|
|
238
|
+
timestamp: new Date(),
|
|
239
|
+
responseTime
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
catch (error) {
|
|
243
|
+
return {
|
|
244
|
+
component: 'mcp',
|
|
245
|
+
status: 'unhealthy',
|
|
246
|
+
message: 'MCP server check failed',
|
|
247
|
+
error: error.message,
|
|
248
|
+
timestamp: new Date(),
|
|
249
|
+
responseTime: Date.now() - startTime
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
async checkServiceNow() {
|
|
254
|
+
const startTime = Date.now();
|
|
255
|
+
try {
|
|
256
|
+
if (!this.serviceNowClient) {
|
|
257
|
+
return {
|
|
258
|
+
component: 'servicenow',
|
|
259
|
+
status: 'unknown',
|
|
260
|
+
message: 'ServiceNow client not initialized',
|
|
261
|
+
timestamp: new Date(),
|
|
262
|
+
responseTime: Date.now() - startTime
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
// Perform a simple API call to check connectivity
|
|
266
|
+
const testResult = await this.serviceNowClient.testConnection();
|
|
267
|
+
const responseTime = Date.now() - startTime;
|
|
268
|
+
if (!testResult.success) {
|
|
269
|
+
return {
|
|
270
|
+
component: 'servicenow',
|
|
271
|
+
status: 'unhealthy',
|
|
272
|
+
message: 'ServiceNow connection test failed',
|
|
273
|
+
error: testResult.error,
|
|
274
|
+
timestamp: new Date(),
|
|
275
|
+
responseTime
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
let status = 'healthy';
|
|
279
|
+
let message = 'ServiceNow connection healthy';
|
|
280
|
+
if (responseTime > this.config.thresholds.responseTime) {
|
|
281
|
+
status = 'degraded';
|
|
282
|
+
message = 'ServiceNow response time high';
|
|
283
|
+
}
|
|
284
|
+
return {
|
|
285
|
+
component: 'servicenow',
|
|
286
|
+
status,
|
|
287
|
+
message,
|
|
288
|
+
details: {
|
|
289
|
+
instance: testResult.instance,
|
|
290
|
+
version: testResult.version,
|
|
291
|
+
responseTime
|
|
292
|
+
},
|
|
293
|
+
timestamp: new Date(),
|
|
294
|
+
responseTime
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
catch (error) {
|
|
298
|
+
return {
|
|
299
|
+
component: 'servicenow',
|
|
300
|
+
status: 'unhealthy',
|
|
301
|
+
message: 'ServiceNow check failed',
|
|
302
|
+
error: error.message,
|
|
303
|
+
timestamp: new Date(),
|
|
304
|
+
responseTime: Date.now() - startTime
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
async checkQueen() {
|
|
309
|
+
const startTime = Date.now();
|
|
310
|
+
try {
|
|
311
|
+
// Check active queen sessions
|
|
312
|
+
const activeSessions = await this.memory.query(`
|
|
313
|
+
SELECT COUNT(*) as count FROM swarm_sessions
|
|
314
|
+
WHERE status = 'active'
|
|
315
|
+
`);
|
|
316
|
+
// Check agent coordination
|
|
317
|
+
const activeAgents = await this.memory.query(`
|
|
318
|
+
SELECT COUNT(*) as count FROM agent_coordination
|
|
319
|
+
WHERE status IN ('spawned', 'active')
|
|
320
|
+
`);
|
|
321
|
+
const responseTime = Date.now() - startTime;
|
|
322
|
+
let status = 'healthy';
|
|
323
|
+
let message = 'Queen coordination system healthy';
|
|
324
|
+
const sessionCount = activeSessions[0]?.count || 0;
|
|
325
|
+
const agentCount = activeAgents[0]?.count || 0;
|
|
326
|
+
if (agentCount > this.config.thresholds.queueSize) {
|
|
327
|
+
status = 'degraded';
|
|
328
|
+
message = 'High number of active agents';
|
|
329
|
+
}
|
|
330
|
+
return {
|
|
331
|
+
component: 'queen',
|
|
332
|
+
status,
|
|
333
|
+
message,
|
|
334
|
+
details: {
|
|
335
|
+
activeSessions: sessionCount,
|
|
336
|
+
activeAgents: agentCount,
|
|
337
|
+
responseTime
|
|
338
|
+
},
|
|
339
|
+
timestamp: new Date(),
|
|
340
|
+
responseTime
|
|
341
|
+
};
|
|
342
|
+
}
|
|
343
|
+
catch (error) {
|
|
344
|
+
return {
|
|
345
|
+
component: 'queen',
|
|
346
|
+
status: 'unhealthy',
|
|
347
|
+
message: 'Queen system check failed',
|
|
348
|
+
error: error.message,
|
|
349
|
+
timestamp: new Date(),
|
|
350
|
+
responseTime: Date.now() - startTime
|
|
351
|
+
};
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
async checkSystem() {
|
|
355
|
+
const startTime = Date.now();
|
|
356
|
+
try {
|
|
357
|
+
const resources = await this.getSystemResources();
|
|
358
|
+
const responseTime = Date.now() - startTime;
|
|
359
|
+
let status = 'healthy';
|
|
360
|
+
let message = 'System resources within normal limits';
|
|
361
|
+
const issues = [];
|
|
362
|
+
// Check CPU usage
|
|
363
|
+
if (resources.cpuUsage > this.config.thresholds.cpuUsage * 100) {
|
|
364
|
+
status = 'degraded';
|
|
365
|
+
issues.push(`High CPU usage: ${resources.cpuUsage.toFixed(1)}%`);
|
|
366
|
+
}
|
|
367
|
+
// Check memory usage
|
|
368
|
+
const memoryUsagePercent = (resources.memoryUsage / resources.memoryTotal) * 100;
|
|
369
|
+
if (memoryUsagePercent > this.config.thresholds.memoryUsage * 100) {
|
|
370
|
+
status = status === 'degraded' ? 'unhealthy' : 'degraded';
|
|
371
|
+
issues.push(`High memory usage: ${memoryUsagePercent.toFixed(1)}%`);
|
|
372
|
+
}
|
|
373
|
+
// Check disk usage
|
|
374
|
+
if (resources.diskUsage > 90) {
|
|
375
|
+
status = 'unhealthy';
|
|
376
|
+
issues.push(`Critical disk usage: ${resources.diskUsage.toFixed(1)}%`);
|
|
377
|
+
}
|
|
378
|
+
if (issues.length > 0) {
|
|
379
|
+
message = issues.join(', ');
|
|
380
|
+
}
|
|
381
|
+
return {
|
|
382
|
+
component: 'system',
|
|
383
|
+
status,
|
|
384
|
+
message,
|
|
385
|
+
details: resources,
|
|
386
|
+
timestamp: new Date(),
|
|
387
|
+
responseTime
|
|
388
|
+
};
|
|
389
|
+
}
|
|
390
|
+
catch (error) {
|
|
391
|
+
return {
|
|
392
|
+
component: 'system',
|
|
393
|
+
status: 'unhealthy',
|
|
394
|
+
message: 'System resource check failed',
|
|
395
|
+
error: error.message,
|
|
396
|
+
timestamp: new Date(),
|
|
397
|
+
responseTime: Date.now() - startTime
|
|
398
|
+
};
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
async checkPerformance() {
|
|
402
|
+
const startTime = Date.now();
|
|
403
|
+
try {
|
|
404
|
+
// Get recent performance metrics
|
|
405
|
+
const recentMetrics = await this.memory.query(`
|
|
406
|
+
SELECT
|
|
407
|
+
COUNT(*) as total_operations,
|
|
408
|
+
SUM(CASE WHEN success = 1 THEN 1 ELSE 0 END) as successful_operations,
|
|
409
|
+
AVG(duration) as avg_duration,
|
|
410
|
+
MAX(duration) as max_duration
|
|
411
|
+
FROM performance_metrics
|
|
412
|
+
WHERE start_time > ?
|
|
413
|
+
`, [Date.now() - 300000]); // Last 5 minutes
|
|
414
|
+
const metrics = recentMetrics[0] || {};
|
|
415
|
+
const errorRate = metrics.total_operations > 0
|
|
416
|
+
? (metrics.total_operations - metrics.successful_operations) / metrics.total_operations
|
|
417
|
+
: 0;
|
|
418
|
+
const responseTime = Date.now() - startTime;
|
|
419
|
+
let status = 'healthy';
|
|
420
|
+
let message = 'Performance metrics within normal limits';
|
|
421
|
+
if (errorRate > this.config.thresholds.errorRate) {
|
|
422
|
+
status = 'degraded';
|
|
423
|
+
message = `High error rate: ${(errorRate * 100).toFixed(1)}%`;
|
|
424
|
+
}
|
|
425
|
+
if (metrics.avg_duration > this.config.thresholds.responseTime) {
|
|
426
|
+
status = status === 'degraded' ? 'unhealthy' : 'degraded';
|
|
427
|
+
message = `High average response time: ${metrics.avg_duration}ms`;
|
|
428
|
+
}
|
|
429
|
+
return {
|
|
430
|
+
component: 'performance',
|
|
431
|
+
status,
|
|
432
|
+
message,
|
|
433
|
+
details: {
|
|
434
|
+
totalOperations: metrics.total_operations || 0,
|
|
435
|
+
successfulOperations: metrics.successful_operations || 0,
|
|
436
|
+
errorRate,
|
|
437
|
+
avgDuration: metrics.avg_duration || 0,
|
|
438
|
+
maxDuration: metrics.max_duration || 0
|
|
439
|
+
},
|
|
440
|
+
timestamp: new Date(),
|
|
441
|
+
responseTime
|
|
442
|
+
};
|
|
443
|
+
}
|
|
444
|
+
catch (error) {
|
|
445
|
+
return {
|
|
446
|
+
component: 'performance',
|
|
447
|
+
status: 'unhealthy',
|
|
448
|
+
message: 'Performance check failed',
|
|
449
|
+
error: error.message,
|
|
450
|
+
timestamp: new Date(),
|
|
451
|
+
responseTime: Date.now() - startTime
|
|
452
|
+
};
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
createSkippedResult(component) {
|
|
456
|
+
return {
|
|
457
|
+
component,
|
|
458
|
+
status: 'unknown',
|
|
459
|
+
message: 'Health check skipped',
|
|
460
|
+
timestamp: new Date()
|
|
461
|
+
};
|
|
462
|
+
}
|
|
463
|
+
async getSystemResources() {
|
|
464
|
+
const cpus = os_1.default.cpus();
|
|
465
|
+
const totalMemory = os_1.default.totalmem();
|
|
466
|
+
const freeMemory = os_1.default.freemem();
|
|
467
|
+
const usedMemory = totalMemory - freeMemory;
|
|
468
|
+
// Calculate CPU usage
|
|
469
|
+
let totalIdle = 0;
|
|
470
|
+
let totalTick = 0;
|
|
471
|
+
cpus.forEach(cpu => {
|
|
472
|
+
for (const type in cpu.times) {
|
|
473
|
+
totalTick += cpu.times[type];
|
|
474
|
+
}
|
|
475
|
+
totalIdle += cpu.times.idle;
|
|
476
|
+
});
|
|
477
|
+
const cpuUsage = 100 - ~~(100 * totalIdle / totalTick);
|
|
478
|
+
// Get disk usage (simplified - you may want to use a library like 'diskusage')
|
|
479
|
+
const diskUsage = 50; // Placeholder - implement actual disk usage check
|
|
480
|
+
const diskTotal = 100; // Placeholder
|
|
481
|
+
return {
|
|
482
|
+
cpuUsage,
|
|
483
|
+
memoryUsage: usedMemory / 1024 / 1024, // MB
|
|
484
|
+
memoryTotal: totalMemory / 1024 / 1024, // MB
|
|
485
|
+
diskUsage,
|
|
486
|
+
diskTotal,
|
|
487
|
+
loadAverage: os_1.default.loadavg(),
|
|
488
|
+
processCount: cpus.length
|
|
489
|
+
};
|
|
490
|
+
}
|
|
491
|
+
async createHealthTables() {
|
|
492
|
+
await this.memory.execute(`
|
|
493
|
+
CREATE TABLE IF NOT EXISTS health_checks (
|
|
494
|
+
id TEXT PRIMARY KEY,
|
|
495
|
+
component TEXT NOT NULL,
|
|
496
|
+
status TEXT NOT NULL,
|
|
497
|
+
message TEXT,
|
|
498
|
+
details TEXT,
|
|
499
|
+
error TEXT,
|
|
500
|
+
response_time INTEGER,
|
|
501
|
+
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
502
|
+
);
|
|
503
|
+
|
|
504
|
+
CREATE INDEX IF NOT EXISTS idx_health_component ON health_checks(component);
|
|
505
|
+
CREATE INDEX IF NOT EXISTS idx_health_timestamp ON health_checks(timestamp);
|
|
506
|
+
|
|
507
|
+
CREATE TABLE IF NOT EXISTS health_alerts (
|
|
508
|
+
id TEXT PRIMARY KEY,
|
|
509
|
+
alert_type TEXT NOT NULL,
|
|
510
|
+
severity TEXT NOT NULL,
|
|
511
|
+
message TEXT NOT NULL,
|
|
512
|
+
details TEXT,
|
|
513
|
+
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
514
|
+
acknowledged BOOLEAN DEFAULT FALSE
|
|
515
|
+
);
|
|
516
|
+
`);
|
|
517
|
+
}
|
|
518
|
+
async storeHealthResult(status) {
|
|
519
|
+
// Store individual component results
|
|
520
|
+
for (const [component, result] of Object.entries(status.components)) {
|
|
521
|
+
await this.memory.insert('health_checks', {
|
|
522
|
+
id: `${component}_${Date.now()}`,
|
|
523
|
+
component,
|
|
524
|
+
status: result.status,
|
|
525
|
+
message: result.message,
|
|
526
|
+
details: JSON.stringify(result.details),
|
|
527
|
+
error: result.error,
|
|
528
|
+
response_time: result.responseTime,
|
|
529
|
+
timestamp: result.timestamp
|
|
530
|
+
});
|
|
531
|
+
}
|
|
532
|
+
// Add to history
|
|
533
|
+
this.checkHistory.push(...Object.values(status.components));
|
|
534
|
+
// Limit history size
|
|
535
|
+
if (this.checkHistory.length > 1000) {
|
|
536
|
+
this.checkHistory = this.checkHistory.slice(-500);
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
checkAlerts(status) {
|
|
540
|
+
// Check for critical conditions
|
|
541
|
+
const unhealthyComponents = Object.entries(status.components)
|
|
542
|
+
.filter(([_, result]) => result.status === 'unhealthy');
|
|
543
|
+
if (unhealthyComponents.length > 0) {
|
|
544
|
+
this.emit('health:alert', {
|
|
545
|
+
type: 'component_failure',
|
|
546
|
+
severity: 'critical',
|
|
547
|
+
message: `${unhealthyComponents.length} components unhealthy`,
|
|
548
|
+
components: unhealthyComponents.map(([name]) => name)
|
|
549
|
+
});
|
|
550
|
+
}
|
|
551
|
+
// Check system resources
|
|
552
|
+
const resources = status.metrics.systemResources;
|
|
553
|
+
if (resources.cpuUsage > 90) {
|
|
554
|
+
this.emit('health:alert', {
|
|
555
|
+
type: 'resource_critical',
|
|
556
|
+
severity: 'critical',
|
|
557
|
+
message: `CPU usage critical: ${resources.cpuUsage}%`
|
|
558
|
+
});
|
|
559
|
+
}
|
|
560
|
+
if ((resources.memoryUsage / resources.memoryTotal) > 0.9) {
|
|
561
|
+
this.emit('health:alert', {
|
|
562
|
+
type: 'resource_critical',
|
|
563
|
+
severity: 'critical',
|
|
564
|
+
message: `Memory usage critical: ${(resources.memoryUsage / resources.memoryTotal * 100).toFixed(1)}%`
|
|
565
|
+
});
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
calculateAverageResponseTime() {
|
|
569
|
+
if (this.checkHistory.length === 0)
|
|
570
|
+
return 0;
|
|
571
|
+
const responseTimes = this.checkHistory
|
|
572
|
+
.map(h => h.responseTime || 0)
|
|
573
|
+
.filter(t => t > 0);
|
|
574
|
+
if (responseTimes.length === 0)
|
|
575
|
+
return 0;
|
|
576
|
+
return responseTimes.reduce((a, b) => a + b, 0) / responseTimes.length;
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
exports.SystemHealth = SystemHealth;
|
|
580
|
+
//# sourceMappingURL=system-health.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-health.js","sourceRoot":"","sources":["../../src/health/system-health.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* ServiceNow
|
|
2
|
+
* Snow-Flow: ServiceNow Hive-Mind Intelligence Framework
|
|
3
3
|
* Built with Claude Code integration
|
|
4
4
|
*/
|
|
5
5
|
export * from './types/index.js';
|
|
@@ -7,4 +7,15 @@ export { ServiceNowOAuth } from './utils/snow-oauth.js';
|
|
|
7
7
|
export { ServiceNowClient } from './utils/servicenow-client.js';
|
|
8
8
|
export { Logger } from './utils/logger.js';
|
|
9
9
|
export { ServiceNowMCPServer } from './mcp/servicenow-mcp-server.js';
|
|
10
|
+
export { SnowFlowSystem, snowFlowSystem } from './snow-flow-system.js';
|
|
11
|
+
export { SnowFlowConfig, snowFlowConfig } from './config/snow-flow-config.js';
|
|
12
|
+
export { MemorySystem } from './memory/memory-system.js';
|
|
13
|
+
export { ErrorRecovery, FALLBACK_STRATEGIES } from './utils/error-recovery.js';
|
|
14
|
+
export { PerformanceTracker } from './monitoring/performance-tracker.js';
|
|
15
|
+
export { SystemHealth } from './health/system-health.js';
|
|
16
|
+
export type { SwarmSession, AgentInfo, SwarmOptions, SwarmResult, SystemStatus } from './snow-flow-system.js';
|
|
17
|
+
export type { ISnowFlowConfig } from './config/snow-flow-config.js';
|
|
18
|
+
export type { ErrorContext, RecoveryStrategy, RecoveryResult, ErrorMetrics } from './utils/error-recovery.js';
|
|
19
|
+
export type { PerformanceMetric, AggregateMetrics, SessionMetrics, PerformanceReport, Bottleneck } from './monitoring/performance-tracker.js';
|
|
20
|
+
export type { HealthCheckResult, SystemHealthStatus, SystemResources, HealthThresholds } from './health/system-health.js';
|
|
10
21
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAGrE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,YAAY,EACV,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,WAAW,EACX,YAAY,EACb,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,eAAe,EAChB,MAAM,8BAA8B,CAAC;AAEtC,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,YAAY,EACb,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,UAAU,EACX,MAAM,qCAAqC,CAAC;AAE7C,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EACjB,MAAM,2BAA2B,CAAC"}
|