@revealui/mcp 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +22 -0
- package/LICENSE.commercial +112 -0
- package/README.md +3 -0
- package/dist/adapters/db.d.ts.map +1 -0
- package/dist/adapters/db.js.map +1 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js.map +1 -0
- package/dist/contracts.d.ts.map +1 -0
- package/dist/contracts.js.map +1 -0
- package/dist/hypervisor.d.ts.map +1 -0
- package/dist/hypervisor.js.map +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js.map +1 -0
- package/dist/{packages/mcp/src/servers → servers}/adapter.d.ts +11 -1
- package/dist/servers/adapter.d.ts.map +1 -0
- package/dist/{packages/mcp/src/servers → servers}/adapter.js +20 -4
- package/dist/servers/adapter.js.map +1 -0
- package/dist/servers/revealui-content.d.ts +21 -0
- package/dist/servers/revealui-content.d.ts.map +1 -0
- package/dist/servers/revealui-content.js +199 -0
- package/dist/servers/revealui-content.js.map +1 -0
- package/dist/servers/revealui-email.d.ts +18 -0
- package/dist/servers/revealui-email.d.ts.map +1 -0
- package/dist/servers/revealui-email.js +185 -0
- package/dist/servers/revealui-email.js.map +1 -0
- package/dist/servers/revealui-stripe.d.ts +19 -0
- package/dist/servers/revealui-stripe.d.ts.map +1 -0
- package/dist/servers/revealui-stripe.js +211 -0
- package/dist/servers/revealui-stripe.js.map +1 -0
- package/package.json +47 -8
- package/.env.example +0 -9
- package/MCP_MAINTENANCE.md +0 -265
- package/__tests__/crdt.integration.test.ts +0 -156
- package/configs/README.md +0 -77
- package/configs/claude-template.json +0 -54
- package/dist/packages/core/src/database/ssl-config.d.ts +0 -9
- package/dist/packages/core/src/database/ssl-config.d.ts.map +0 -1
- package/dist/packages/core/src/database/ssl-config.js +0 -8
- package/dist/packages/core/src/database/ssl-config.js.map +0 -1
- package/dist/packages/core/src/features.d.ts +0 -86
- package/dist/packages/core/src/features.d.ts.map +0 -1
- package/dist/packages/core/src/features.js +0 -93
- package/dist/packages/core/src/features.js.map +0 -1
- package/dist/packages/core/src/license.d.ts +0 -75
- package/dist/packages/core/src/license.d.ts.map +0 -1
- package/dist/packages/core/src/license.js +0 -174
- package/dist/packages/core/src/license.js.map +0 -1
- package/dist/packages/core/src/monitoring/alerts.d.ts +0 -118
- package/dist/packages/core/src/monitoring/alerts.d.ts.map +0 -1
- package/dist/packages/core/src/monitoring/alerts.js +0 -325
- package/dist/packages/core/src/monitoring/alerts.js.map +0 -1
- package/dist/packages/core/src/monitoring/cleanup-manager.d.ts +0 -71
- package/dist/packages/core/src/monitoring/cleanup-manager.d.ts.map +0 -1
- package/dist/packages/core/src/monitoring/cleanup-manager.js +0 -227
- package/dist/packages/core/src/monitoring/cleanup-manager.js.map +0 -1
- package/dist/packages/core/src/monitoring/health-monitor.d.ts +0 -22
- package/dist/packages/core/src/monitoring/health-monitor.d.ts.map +0 -1
- package/dist/packages/core/src/monitoring/health-monitor.js +0 -143
- package/dist/packages/core/src/monitoring/health-monitor.js.map +0 -1
- package/dist/packages/core/src/monitoring/index.d.ts +0 -14
- package/dist/packages/core/src/monitoring/index.d.ts.map +0 -1
- package/dist/packages/core/src/monitoring/index.js +0 -18
- package/dist/packages/core/src/monitoring/index.js.map +0 -1
- package/dist/packages/core/src/monitoring/process-registry.d.ts +0 -97
- package/dist/packages/core/src/monitoring/process-registry.d.ts.map +0 -1
- package/dist/packages/core/src/monitoring/process-registry.js +0 -223
- package/dist/packages/core/src/monitoring/process-registry.js.map +0 -1
- package/dist/packages/core/src/monitoring/types.d.ts +0 -231
- package/dist/packages/core/src/monitoring/types.d.ts.map +0 -1
- package/dist/packages/core/src/monitoring/types.js +0 -43
- package/dist/packages/core/src/monitoring/types.js.map +0 -1
- package/dist/packages/core/src/monitoring/zombie-detector.d.ts +0 -81
- package/dist/packages/core/src/monitoring/zombie-detector.d.ts.map +0 -1
- package/dist/packages/core/src/monitoring/zombie-detector.js +0 -232
- package/dist/packages/core/src/monitoring/zombie-detector.js.map +0 -1
- package/dist/packages/core/src/observability/logger.d.ts +0 -47
- package/dist/packages/core/src/observability/logger.d.ts.map +0 -1
- package/dist/packages/core/src/observability/logger.js +0 -141
- package/dist/packages/core/src/observability/logger.js.map +0 -1
- package/dist/packages/core/src/utils/logger-server.d.ts +0 -32
- package/dist/packages/core/src/utils/logger-server.d.ts.map +0 -1
- package/dist/packages/core/src/utils/logger-server.js +0 -69
- package/dist/packages/core/src/utils/logger-server.js.map +0 -1
- package/dist/packages/core/src/utils/request-context.d.ts +0 -143
- package/dist/packages/core/src/utils/request-context.d.ts.map +0 -1
- package/dist/packages/core/src/utils/request-context.js +0 -169
- package/dist/packages/core/src/utils/request-context.js.map +0 -1
- package/dist/packages/dev/src/code-validator/index.d.ts +0 -20
- package/dist/packages/dev/src/code-validator/index.d.ts.map +0 -1
- package/dist/packages/dev/src/code-validator/index.js +0 -20
- package/dist/packages/dev/src/code-validator/index.js.map +0 -1
- package/dist/packages/dev/src/code-validator/types.d.ts +0 -67
- package/dist/packages/dev/src/code-validator/types.d.ts.map +0 -1
- package/dist/packages/dev/src/code-validator/types.js +0 -7
- package/dist/packages/dev/src/code-validator/types.js.map +0 -1
- package/dist/packages/dev/src/code-validator/validator.d.ts +0 -48
- package/dist/packages/dev/src/code-validator/validator.d.ts.map +0 -1
- package/dist/packages/dev/src/code-validator/validator.js +0 -176
- package/dist/packages/dev/src/code-validator/validator.js.map +0 -1
- package/dist/packages/mcp/src/adapters/db.d.ts.map +0 -1
- package/dist/packages/mcp/src/adapters/db.js.map +0 -1
- package/dist/packages/mcp/src/config/index.d.ts.map +0 -1
- package/dist/packages/mcp/src/config/index.js.map +0 -1
- package/dist/packages/mcp/src/contracts.d.ts.map +0 -1
- package/dist/packages/mcp/src/contracts.js.map +0 -1
- package/dist/packages/mcp/src/hypervisor.d.ts.map +0 -1
- package/dist/packages/mcp/src/hypervisor.js.map +0 -1
- package/dist/packages/mcp/src/index.d.ts.map +0 -1
- package/dist/packages/mcp/src/index.js.map +0 -1
- package/dist/packages/mcp/src/servers/adapter.d.ts.map +0 -1
- package/dist/packages/mcp/src/servers/adapter.js.map +0 -1
- package/dist/packages/mcp/src/servers/code-validator.d.ts +0 -24
- package/dist/packages/mcp/src/servers/code-validator.d.ts.map +0 -1
- package/dist/packages/mcp/src/servers/code-validator.js +0 -156
- package/dist/packages/mcp/src/servers/code-validator.js.map +0 -1
- package/dist/packages/mcp/src/servers/neon.d.ts +0 -11
- package/dist/packages/mcp/src/servers/neon.d.ts.map +0 -1
- package/dist/packages/mcp/src/servers/neon.js +0 -90
- package/dist/packages/mcp/src/servers/neon.js.map +0 -1
- package/dist/packages/mcp/src/servers/next-devtools.d.ts +0 -11
- package/dist/packages/mcp/src/servers/next-devtools.d.ts.map +0 -1
- package/dist/packages/mcp/src/servers/next-devtools.js +0 -215
- package/dist/packages/mcp/src/servers/next-devtools.js.map +0 -1
- package/dist/packages/mcp/src/servers/playwright.d.ts +0 -11
- package/dist/packages/mcp/src/servers/playwright.d.ts.map +0 -1
- package/dist/packages/mcp/src/servers/playwright.js +0 -68
- package/dist/packages/mcp/src/servers/playwright.js.map +0 -1
- package/dist/packages/mcp/src/servers/stripe.d.ts +0 -11
- package/dist/packages/mcp/src/servers/stripe.d.ts.map +0 -1
- package/dist/packages/mcp/src/servers/stripe.js +0 -86
- package/dist/packages/mcp/src/servers/stripe.js.map +0 -1
- package/dist/packages/mcp/src/servers/supabase.d.ts +0 -11
- package/dist/packages/mcp/src/servers/supabase.d.ts.map +0 -1
- package/dist/packages/mcp/src/servers/supabase.js +0 -144
- package/dist/packages/mcp/src/servers/supabase.js.map +0 -1
- package/dist/packages/mcp/src/servers/vercel.d.ts +0 -11
- package/dist/packages/mcp/src/servers/vercel.d.ts.map +0 -1
- package/dist/packages/mcp/src/servers/vercel.js +0 -87
- package/dist/packages/mcp/src/servers/vercel.js.map +0 -1
- package/dist/packages/mcp/src/servers/vultr-test.d.ts +0 -3
- package/dist/packages/mcp/src/servers/vultr-test.d.ts.map +0 -1
- package/dist/packages/mcp/src/servers/vultr-test.js +0 -82
- package/dist/packages/mcp/src/servers/vultr-test.js.map +0 -1
- package/dist/scripts/lib/analyzers/console-analyzer.d.ts +0 -188
- package/dist/scripts/lib/analyzers/console-analyzer.d.ts.map +0 -1
- package/dist/scripts/lib/analyzers/console-analyzer.js +0 -432
- package/dist/scripts/lib/analyzers/console-analyzer.js.map +0 -1
- package/dist/scripts/lib/analyzers/index.d.ts +0 -11
- package/dist/scripts/lib/analyzers/index.d.ts.map +0 -1
- package/dist/scripts/lib/analyzers/index.js +0 -11
- package/dist/scripts/lib/analyzers/index.js.map +0 -1
- package/dist/scripts/lib/args.d.ts +0 -104
- package/dist/scripts/lib/args.d.ts.map +0 -1
- package/dist/scripts/lib/args.js +0 -304
- package/dist/scripts/lib/args.js.map +0 -1
- package/dist/scripts/lib/cache.d.ts +0 -185
- package/dist/scripts/lib/cache.d.ts.map +0 -1
- package/dist/scripts/lib/cache.js +0 -390
- package/dist/scripts/lib/cache.js.map +0 -1
- package/dist/scripts/lib/cli/dispatch.d.ts +0 -116
- package/dist/scripts/lib/cli/dispatch.d.ts.map +0 -1
- package/dist/scripts/lib/cli/dispatch.js +0 -206
- package/dist/scripts/lib/cli/dispatch.js.map +0 -1
- package/dist/scripts/lib/cli/index.d.ts +0 -10
- package/dist/scripts/lib/cli/index.d.ts.map +0 -1
- package/dist/scripts/lib/cli/index.js +0 -10
- package/dist/scripts/lib/cli/index.js.map +0 -1
- package/dist/scripts/lib/database/ssl-config.d.ts +0 -26
- package/dist/scripts/lib/database/ssl-config.d.ts.map +0 -1
- package/dist/scripts/lib/database/ssl-config.js +0 -47
- package/dist/scripts/lib/database/ssl-config.js.map +0 -1
- package/dist/scripts/lib/errors.d.ts +0 -218
- package/dist/scripts/lib/errors.d.ts.map +0 -1
- package/dist/scripts/lib/errors.js +0 -543
- package/dist/scripts/lib/errors.js.map +0 -1
- package/dist/scripts/lib/exec.d.ts +0 -107
- package/dist/scripts/lib/exec.d.ts.map +0 -1
- package/dist/scripts/lib/exec.js +0 -232
- package/dist/scripts/lib/exec.js.map +0 -1
- package/dist/scripts/lib/index.d.ts +0 -50
- package/dist/scripts/lib/index.d.ts.map +0 -1
- package/dist/scripts/lib/index.js +0 -65
- package/dist/scripts/lib/index.js.map +0 -1
- package/dist/scripts/lib/logger.d.ts +0 -50
- package/dist/scripts/lib/logger.d.ts.map +0 -1
- package/dist/scripts/lib/logger.js +0 -159
- package/dist/scripts/lib/logger.js.map +0 -1
- package/dist/scripts/lib/output.d.ts +0 -149
- package/dist/scripts/lib/output.d.ts.map +0 -1
- package/dist/scripts/lib/output.js +0 -263
- package/dist/scripts/lib/output.js.map +0 -1
- package/dist/scripts/lib/parallel.d.ts +0 -164
- package/dist/scripts/lib/parallel.d.ts.map +0 -1
- package/dist/scripts/lib/parallel.js +0 -355
- package/dist/scripts/lib/parallel.js.map +0 -1
- package/dist/scripts/lib/paths.d.ts +0 -92
- package/dist/scripts/lib/paths.d.ts.map +0 -1
- package/dist/scripts/lib/paths.js +0 -171
- package/dist/scripts/lib/paths.js.map +0 -1
- package/dist/scripts/lib/state/adapters/memory.d.ts +0 -42
- package/dist/scripts/lib/state/adapters/memory.d.ts.map +0 -1
- package/dist/scripts/lib/state/adapters/memory.js +0 -110
- package/dist/scripts/lib/state/adapters/memory.js.map +0 -1
- package/dist/scripts/lib/state/adapters/pglite.d.ts +0 -46
- package/dist/scripts/lib/state/adapters/pglite.d.ts.map +0 -1
- package/dist/scripts/lib/state/adapters/pglite.js +0 -256
- package/dist/scripts/lib/state/adapters/pglite.js.map +0 -1
- package/dist/scripts/lib/state/index.d.ts +0 -16
- package/dist/scripts/lib/state/index.d.ts.map +0 -1
- package/dist/scripts/lib/state/index.js +0 -16
- package/dist/scripts/lib/state/index.js.map +0 -1
- package/dist/scripts/lib/state/types.d.ts +0 -111
- package/dist/scripts/lib/state/types.d.ts.map +0 -1
- package/dist/scripts/lib/state/types.js +0 -8
- package/dist/scripts/lib/state/types.js.map +0 -1
- package/dist/scripts/lib/state/workflow-state.d.ts +0 -110
- package/dist/scripts/lib/state/workflow-state.d.ts.map +0 -1
- package/dist/scripts/lib/state/workflow-state.js +0 -331
- package/dist/scripts/lib/state/workflow-state.js.map +0 -1
- package/dist/scripts/lib/telemetry.d.ts +0 -194
- package/dist/scripts/lib/telemetry.d.ts.map +0 -1
- package/dist/scripts/lib/telemetry.js +0 -394
- package/dist/scripts/lib/telemetry.js.map +0 -1
- package/dist/scripts/lib/utils.d.ts +0 -270
- package/dist/scripts/lib/utils.d.ts.map +0 -1
- package/dist/scripts/lib/utils.js +0 -473
- package/dist/scripts/lib/utils.js.map +0 -1
- package/dist/scripts/lib/validation/database.d.ts +0 -83
- package/dist/scripts/lib/validation/database.d.ts.map +0 -1
- package/dist/scripts/lib/validation/database.js +0 -199
- package/dist/scripts/lib/validation/database.js.map +0 -1
- package/dist/scripts/lib/validation/env.d.ts +0 -80
- package/dist/scripts/lib/validation/env.d.ts.map +0 -1
- package/dist/scripts/lib/validation/env.js +0 -246
- package/dist/scripts/lib/validation/env.js.map +0 -1
- package/dist/scripts/lib/validation/index.d.ts +0 -16
- package/dist/scripts/lib/validation/index.d.ts.map +0 -1
- package/dist/scripts/lib/validation/index.js +0 -16
- package/dist/scripts/lib/validation/index.js.map +0 -1
- package/dist/scripts/lib/validation/post-execution.d.ts +0 -74
- package/dist/scripts/lib/validation/post-execution.d.ts.map +0 -1
- package/dist/scripts/lib/validation/post-execution.js +0 -110
- package/dist/scripts/lib/validation/post-execution.js.map +0 -1
- package/dist/scripts/lib/validation/pre-execution.d.ts +0 -165
- package/dist/scripts/lib/validation/pre-execution.d.ts.map +0 -1
- package/dist/scripts/lib/validation/pre-execution.js +0 -466
- package/dist/scripts/lib/validation/pre-execution.js.map +0 -1
- package/dist/scripts/lib/validators/documentation-validator.d.ts +0 -242
- package/dist/scripts/lib/validators/documentation-validator.d.ts.map +0 -1
- package/dist/scripts/lib/validators/documentation-validator.js +0 -584
- package/dist/scripts/lib/validators/documentation-validator.js.map +0 -1
- package/dist/scripts/lib/validators/index.d.ts +0 -11
- package/dist/scripts/lib/validators/index.d.ts.map +0 -1
- package/dist/scripts/lib/validators/index.js +0 -11
- package/dist/scripts/lib/validators/index.js.map +0 -1
- package/docker-compose.yml +0 -46
- package/docs/INDEX.md +0 -88
- package/docs/README.md +0 -774
- package/docs/SETUP.md +0 -264
- package/docs/servers/code-validator.md +0 -586
- package/eslint.config.js +0 -7
- package/migrations/0001_add_crdt_columns.sql +0 -8
- package/migrations/0001_rollback.sql +0 -6
- package/migrations/005_performance_indexes.sql +0 -190
- package/migrations/backfill_crdt_meta.js +0 -45
- package/src/__tests__/hypervisor.test.ts +0 -212
- package/src/adapters/db.ts +0 -180
- package/src/config/config.json +0 -49
- package/src/config/index.ts +0 -30
- package/src/contracts.ts +0 -221
- package/src/hypervisor.ts +0 -464
- package/src/index.ts +0 -87
- package/src/servers/adapter.ts +0 -643
- package/src/servers/code-validator.ts +0 -188
- package/src/servers/neon.ts +0 -103
- package/src/servers/next-devtools.ts +0 -230
- package/src/servers/playwright.ts +0 -77
- package/src/servers/stripe.ts +0 -99
- package/src/servers/supabase.ts +0 -161
- package/src/servers/vercel.ts +0 -100
- package/src/servers/vultr-test.ts +0 -97
- package/tsconfig.json +0 -12
- package/vitest.config.ts +0 -22
- /package/dist/{packages/mcp/src/adapters → adapters}/db.d.ts +0 -0
- /package/dist/{packages/mcp/src/adapters → adapters}/db.js +0 -0
- /package/dist/{packages/mcp/src/config → config}/index.d.ts +0 -0
- /package/dist/{packages/mcp/src/config → config}/index.js +0 -0
- /package/dist/{packages/mcp/src/contracts.d.ts → contracts.d.ts} +0 -0
- /package/dist/{packages/mcp/src/contracts.js → contracts.js} +0 -0
- /package/dist/{packages/mcp/src/hypervisor.d.ts → hypervisor.d.ts} +0 -0
- /package/dist/{packages/mcp/src/hypervisor.js → hypervisor.js} +0 -0
- /package/dist/{packages/mcp/src/index.d.ts → index.d.ts} +0 -0
- /package/dist/{packages/mcp/src/index.js → index.js} +0 -0
|
@@ -1,325 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Alert System
|
|
3
|
-
*
|
|
4
|
-
* Manages alert channels (logger, Sentry, console) and alert delivery.
|
|
5
|
-
* Provides configurable thresholds and aggregation for production.
|
|
6
|
-
*/
|
|
7
|
-
import { logger } from '../utils/logger-server.js';
|
|
8
|
-
import { getRequestContext } from '../utils/request-context.js';
|
|
9
|
-
/**
|
|
10
|
-
* Get Sentry client if available
|
|
11
|
-
* Using dynamic import with string variable to avoid build-time resolution
|
|
12
|
-
*/
|
|
13
|
-
async function getSentryClient() {
|
|
14
|
-
try {
|
|
15
|
-
// Use string variable to prevent static analysis and bundler resolution
|
|
16
|
-
const moduleName = '@sentry' + '/node';
|
|
17
|
-
const sentry = await import(/* webpackIgnore: true */ moduleName);
|
|
18
|
-
return sentry;
|
|
19
|
-
}
|
|
20
|
-
catch {
|
|
21
|
-
return null;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Synchronous version that caches the client
|
|
26
|
-
*/
|
|
27
|
-
let sentryClientCache;
|
|
28
|
-
function getSentryClientSync() {
|
|
29
|
-
if (sentryClientCache !== undefined) {
|
|
30
|
-
return sentryClientCache;
|
|
31
|
-
}
|
|
32
|
-
// Initialize asynchronously in the background
|
|
33
|
-
getSentryClient()
|
|
34
|
-
.then((client) => {
|
|
35
|
-
sentryClientCache = client;
|
|
36
|
-
})
|
|
37
|
-
.catch(() => {
|
|
38
|
-
sentryClientCache = null;
|
|
39
|
-
});
|
|
40
|
-
return null;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Default alert configuration
|
|
44
|
-
*/
|
|
45
|
-
const DEFAULT_ALERT_CONFIG = {
|
|
46
|
-
channels: ['logger', 'console'],
|
|
47
|
-
aggregateInProduction: true,
|
|
48
|
-
aggregationInterval: 5 * 60 * 1000, // 5 minutes
|
|
49
|
-
sentryProductionOnly: true,
|
|
50
|
-
};
|
|
51
|
-
/**
|
|
52
|
-
* Alert manager class
|
|
53
|
-
*/
|
|
54
|
-
class AlertManager {
|
|
55
|
-
config;
|
|
56
|
-
alertQueue = [];
|
|
57
|
-
aggregationTimer = null;
|
|
58
|
-
lastAggregationTime = 0;
|
|
59
|
-
sentryClient = null;
|
|
60
|
-
constructor(config = {}, sentryClient) {
|
|
61
|
-
this.config = { ...DEFAULT_ALERT_CONFIG, ...config };
|
|
62
|
-
this.sentryClient = sentryClient !== undefined ? sentryClient : getSentryClientSync();
|
|
63
|
-
// Start aggregation timer if enabled
|
|
64
|
-
if (this.config.aggregateInProduction && this.isProduction()) {
|
|
65
|
-
this.startAggregation();
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Send an alert through configured channels
|
|
70
|
-
*/
|
|
71
|
-
sendAlert(alert) {
|
|
72
|
-
if (this.config.aggregateInProduction && this.isProduction()) {
|
|
73
|
-
// In production, queue alerts for aggregation
|
|
74
|
-
this.alertQueue.push(alert);
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
// In development, send immediately
|
|
78
|
-
this.deliverAlert(alert);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Send multiple alerts
|
|
83
|
-
*/
|
|
84
|
-
sendAlerts(alerts) {
|
|
85
|
-
for (const alert of alerts) {
|
|
86
|
-
this.sendAlert(alert);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Deliver an alert to configured channels
|
|
91
|
-
*/
|
|
92
|
-
deliverAlert(alert) {
|
|
93
|
-
for (const channel of this.config.channels) {
|
|
94
|
-
switch (channel) {
|
|
95
|
-
case 'logger':
|
|
96
|
-
this.sendToLogger(alert);
|
|
97
|
-
break;
|
|
98
|
-
case 'console':
|
|
99
|
-
this.sendToConsole(alert);
|
|
100
|
-
break;
|
|
101
|
-
case 'sentry':
|
|
102
|
-
if (!this.config.sentryProductionOnly || this.isProduction()) {
|
|
103
|
-
this.sendToSentry(alert);
|
|
104
|
-
}
|
|
105
|
-
break;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Send alert to logger
|
|
111
|
-
*/
|
|
112
|
-
sendToLogger(alert) {
|
|
113
|
-
// Get request context for additional metadata
|
|
114
|
-
const context = getRequestContext();
|
|
115
|
-
const logData = {
|
|
116
|
-
metric: alert.metric,
|
|
117
|
-
value: alert.value,
|
|
118
|
-
threshold: alert.threshold,
|
|
119
|
-
timestamp: alert.timestamp,
|
|
120
|
-
// Include request context if available
|
|
121
|
-
...(context?.userId && { userId: context.userId }),
|
|
122
|
-
...(context?.path && { path: context.path }),
|
|
123
|
-
...(context?.method && { method: context.method }),
|
|
124
|
-
...(context?.ip && { ip: context.ip }),
|
|
125
|
-
};
|
|
126
|
-
if (alert.level === 'critical') {
|
|
127
|
-
logger.error(alert.message, logData);
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
logger.warn(alert.message, logData);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Send alert to console (uses logger for structured output)
|
|
135
|
-
*/
|
|
136
|
-
sendToConsole(alert) {
|
|
137
|
-
const logLevel = alert.level === 'critical' ? 'error' : 'warn';
|
|
138
|
-
const prefix = alert.level === 'critical' ? '🔴 CRITICAL' : '⚠️ WARNING';
|
|
139
|
-
logger[logLevel](`${prefix}: ${alert.message}`, {
|
|
140
|
-
metric: alert.metric,
|
|
141
|
-
value: alert.value,
|
|
142
|
-
threshold: alert.threshold,
|
|
143
|
-
timestamp: alert.timestamp,
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Send alert to Sentry
|
|
148
|
-
*/
|
|
149
|
-
sendToSentry(alert) {
|
|
150
|
-
// Only send critical alerts to Sentry
|
|
151
|
-
if (alert.level !== 'critical')
|
|
152
|
-
return;
|
|
153
|
-
// Check if Sentry is available
|
|
154
|
-
if (!this.sentryClient) {
|
|
155
|
-
logger.debug('Sentry not available for alert delivery');
|
|
156
|
-
return;
|
|
157
|
-
}
|
|
158
|
-
try {
|
|
159
|
-
// Get request context for rich tracing
|
|
160
|
-
const context = getRequestContext();
|
|
161
|
-
// Build tags (indexed, searchable fields)
|
|
162
|
-
const tags = {
|
|
163
|
-
metric: alert.metric,
|
|
164
|
-
alert_level: alert.level,
|
|
165
|
-
};
|
|
166
|
-
// Add request context to tags for better filtering
|
|
167
|
-
if (context?.requestId)
|
|
168
|
-
tags.request_id = context.requestId;
|
|
169
|
-
if (context?.userId)
|
|
170
|
-
tags.user_id = context.userId;
|
|
171
|
-
if (context?.path)
|
|
172
|
-
tags.path = context.path;
|
|
173
|
-
if (context?.method)
|
|
174
|
-
tags.method = context.method;
|
|
175
|
-
// Build extra context (non-indexed, rich data)
|
|
176
|
-
const extra = {
|
|
177
|
-
value: alert.value,
|
|
178
|
-
threshold: alert.threshold,
|
|
179
|
-
timestamp: alert.timestamp,
|
|
180
|
-
};
|
|
181
|
-
// Add full request context for debugging
|
|
182
|
-
if (context) {
|
|
183
|
-
extra.request_context = {
|
|
184
|
-
requestId: context.requestId,
|
|
185
|
-
startTime: context.startTime,
|
|
186
|
-
duration: Date.now() - context.startTime,
|
|
187
|
-
userId: context.userId,
|
|
188
|
-
path: context.path,
|
|
189
|
-
method: context.method,
|
|
190
|
-
ip: context.ip,
|
|
191
|
-
userAgent: context.userAgent,
|
|
192
|
-
};
|
|
193
|
-
}
|
|
194
|
-
// Set user context if available (for Sentry user tracking)
|
|
195
|
-
if (context?.userId) {
|
|
196
|
-
this.sentryClient.setUser({
|
|
197
|
-
id: context.userId,
|
|
198
|
-
ip_address: context.ip,
|
|
199
|
-
});
|
|
200
|
-
}
|
|
201
|
-
// Capture the alert as a Sentry event
|
|
202
|
-
this.sentryClient.captureMessage(alert.message, {
|
|
203
|
-
level: 'error',
|
|
204
|
-
tags,
|
|
205
|
-
extra,
|
|
206
|
-
});
|
|
207
|
-
}
|
|
208
|
-
catch (error) {
|
|
209
|
-
// Sentry error, log and continue
|
|
210
|
-
logger.debug('Sentry not available for alert delivery', { error });
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* Start aggregation timer
|
|
215
|
-
*/
|
|
216
|
-
startAggregation() {
|
|
217
|
-
if (this.aggregationTimer)
|
|
218
|
-
return;
|
|
219
|
-
this.aggregationTimer = setInterval(() => {
|
|
220
|
-
this.flushAlerts();
|
|
221
|
-
}, this.config.aggregationInterval);
|
|
222
|
-
// Don't keep process alive
|
|
223
|
-
this.aggregationTimer.unref();
|
|
224
|
-
this.lastAggregationTime = Date.now();
|
|
225
|
-
}
|
|
226
|
-
/**
|
|
227
|
-
* Flush aggregated alerts
|
|
228
|
-
*/
|
|
229
|
-
flushAlerts() {
|
|
230
|
-
if (this.alertQueue.length === 0)
|
|
231
|
-
return;
|
|
232
|
-
// Group alerts by metric and level
|
|
233
|
-
const grouped = new Map();
|
|
234
|
-
for (const alert of this.alertQueue) {
|
|
235
|
-
const key = `${alert.metric}:${alert.level}`;
|
|
236
|
-
const existing = grouped.get(key) || [];
|
|
237
|
-
existing.push(alert);
|
|
238
|
-
grouped.set(key, existing);
|
|
239
|
-
}
|
|
240
|
-
// Send aggregated alerts
|
|
241
|
-
for (const [_key, alerts] of Array.from(grouped.entries())) {
|
|
242
|
-
if (alerts.length === 0)
|
|
243
|
-
continue;
|
|
244
|
-
const first = alerts[0];
|
|
245
|
-
if (!first)
|
|
246
|
-
continue;
|
|
247
|
-
const count = alerts.length;
|
|
248
|
-
const avgValue = alerts.reduce((sum, a) => sum + a.value, 0) / count;
|
|
249
|
-
const aggregatedAlert = {
|
|
250
|
-
level: first.level,
|
|
251
|
-
metric: first.metric,
|
|
252
|
-
value: first.value,
|
|
253
|
-
threshold: first.threshold,
|
|
254
|
-
message: `${first.message} (occurred ${count} times, avg value: ${Math.round(avgValue)})`,
|
|
255
|
-
timestamp: Date.now(),
|
|
256
|
-
};
|
|
257
|
-
this.deliverAlert(aggregatedAlert);
|
|
258
|
-
}
|
|
259
|
-
// Clear queue
|
|
260
|
-
this.alertQueue = [];
|
|
261
|
-
this.lastAggregationTime = Date.now();
|
|
262
|
-
}
|
|
263
|
-
/**
|
|
264
|
-
* Stop aggregation timer
|
|
265
|
-
*/
|
|
266
|
-
stopAggregation() {
|
|
267
|
-
if (this.aggregationTimer) {
|
|
268
|
-
clearInterval(this.aggregationTimer);
|
|
269
|
-
this.aggregationTimer = null;
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
/**
|
|
273
|
-
* Check if running in production
|
|
274
|
-
*/
|
|
275
|
-
isProduction() {
|
|
276
|
-
return process.env.NODE_ENV === 'production';
|
|
277
|
-
}
|
|
278
|
-
/**
|
|
279
|
-
* Get alert queue stats
|
|
280
|
-
*/
|
|
281
|
-
getStats() {
|
|
282
|
-
return {
|
|
283
|
-
queueSize: this.alertQueue.length,
|
|
284
|
-
lastAggregationTime: this.lastAggregationTime,
|
|
285
|
-
aggregationEnabled: this.config.aggregateInProduction && this.isProduction(),
|
|
286
|
-
};
|
|
287
|
-
}
|
|
288
|
-
/**
|
|
289
|
-
* Configure alert channels
|
|
290
|
-
*/
|
|
291
|
-
setChannels(channels) {
|
|
292
|
-
this.config.channels = channels;
|
|
293
|
-
}
|
|
294
|
-
/**
|
|
295
|
-
* Cleanup resources
|
|
296
|
-
*/
|
|
297
|
-
dispose() {
|
|
298
|
-
this.stopAggregation();
|
|
299
|
-
this.flushAlerts(); // Flush remaining alerts
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
/**
|
|
303
|
-
* Singleton instance
|
|
304
|
-
*/
|
|
305
|
-
export const alertManager = new AlertManager();
|
|
306
|
-
/**
|
|
307
|
-
* Export AlertManager class for testing
|
|
308
|
-
*/
|
|
309
|
-
export { AlertManager };
|
|
310
|
-
/**
|
|
311
|
-
* Convenience functions
|
|
312
|
-
*/
|
|
313
|
-
export function sendAlert(alert) {
|
|
314
|
-
alertManager.sendAlert(alert);
|
|
315
|
-
}
|
|
316
|
-
export function sendAlerts(alerts) {
|
|
317
|
-
alertManager.sendAlerts(alerts);
|
|
318
|
-
}
|
|
319
|
-
export function getAlertStats() {
|
|
320
|
-
return alertManager.getStats();
|
|
321
|
-
}
|
|
322
|
-
export function setAlertChannels(channels) {
|
|
323
|
-
alertManager.setChannels(channels);
|
|
324
|
-
}
|
|
325
|
-
//# sourceMappingURL=alerts.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"alerts.js","sourceRoot":"","sources":["../../../../../../core/src/monitoring/alerts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cleanup Manager
|
|
3
|
-
*
|
|
4
|
-
* Global cleanup handler registry and graceful shutdown coordination.
|
|
5
|
-
* Ensures all resources are properly released when the process exits.
|
|
6
|
-
*/
|
|
7
|
-
import type { CleanupHandler, CleanupRegistration } from './types.js';
|
|
8
|
-
/**
|
|
9
|
-
* Cleanup manager class
|
|
10
|
-
*/
|
|
11
|
-
declare class CleanupManager {
|
|
12
|
-
private handlers;
|
|
13
|
-
private isShuttingDown;
|
|
14
|
-
private shutdownTimeout;
|
|
15
|
-
private signalHandlersRegistered;
|
|
16
|
-
/**
|
|
17
|
-
* Register a cleanup handler
|
|
18
|
-
*/
|
|
19
|
-
register(id: string, handler: CleanupHandler, description: string, priority?: number): void;
|
|
20
|
-
/**
|
|
21
|
-
* Unregister a cleanup handler
|
|
22
|
-
*/
|
|
23
|
-
unregister(id: string): void;
|
|
24
|
-
/**
|
|
25
|
-
* Execute all cleanup handlers
|
|
26
|
-
*/
|
|
27
|
-
cleanup(signal?: string): Promise<void>;
|
|
28
|
-
/**
|
|
29
|
-
* Execute cleanup handlers in sequence
|
|
30
|
-
*/
|
|
31
|
-
private executeHandlers;
|
|
32
|
-
/**
|
|
33
|
-
* Register signal handlers for graceful shutdown
|
|
34
|
-
*/
|
|
35
|
-
private registerSignalHandlers;
|
|
36
|
-
/**
|
|
37
|
-
* Force immediate cleanup (skip timeout)
|
|
38
|
-
*/
|
|
39
|
-
forceCleanup(): Promise<void>;
|
|
40
|
-
/**
|
|
41
|
-
* Get registered handlers
|
|
42
|
-
*/
|
|
43
|
-
getHandlers(): CleanupRegistration[];
|
|
44
|
-
/**
|
|
45
|
-
* Check if shutdown is in progress
|
|
46
|
-
*/
|
|
47
|
-
isShutdownInProgress(): boolean;
|
|
48
|
-
/**
|
|
49
|
-
* Set shutdown timeout
|
|
50
|
-
*/
|
|
51
|
-
setShutdownTimeout(ms: number): void;
|
|
52
|
-
/**
|
|
53
|
-
* Clear all handlers
|
|
54
|
-
*/
|
|
55
|
-
clear(): void;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Singleton instance
|
|
59
|
-
*/
|
|
60
|
-
export declare const cleanupManager: CleanupManager;
|
|
61
|
-
/**
|
|
62
|
-
* Convenience functions
|
|
63
|
-
*/
|
|
64
|
-
export declare function registerCleanupHandler(id: string, handler: CleanupHandler, description: string, priority?: number): void;
|
|
65
|
-
export declare function unregisterCleanupHandler(id: string): void;
|
|
66
|
-
export declare function initiateCleanup(signal?: string): Promise<void>;
|
|
67
|
-
export declare function forceCleanup(): Promise<void>;
|
|
68
|
-
export declare function getCleanupHandlers(): CleanupRegistration[];
|
|
69
|
-
export declare function isShutdownInProgress(): boolean;
|
|
70
|
-
export {};
|
|
71
|
-
//# sourceMappingURL=cleanup-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cleanup-manager.d.ts","sourceRoot":"","sources":["../../../../../../core/src/monitoring/cleanup-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAErE;;GAEG;AACH,cAAM,cAAc;IAClB,OAAO,CAAC,QAAQ,CAA8C;IAC9D,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,wBAAwB,CAAQ;IAExC;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,IAAI;IAqBtF;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAM5B;;OAEG;IACG,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmD7C;;OAEG;YACW,eAAe;IAsC7B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAmD9B;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAWnC;;OAEG;IACH,WAAW,IAAI,mBAAmB,EAAE;IAIpC;;OAEG;IACH,oBAAoB,IAAI,OAAO;IAI/B;;OAEG;IACH,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIpC;;OAEG;IACH,KAAK,IAAI,IAAI;CAId;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,gBAAuB,CAAA;AAElD;;GAEG;AAEH,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,MAAM,EACnB,QAAQ,SAAI,GACX,IAAI,CAEN;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAEzD;AAED,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9D;AAED,wBAAgB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAE5C;AAED,wBAAgB,kBAAkB,IAAI,mBAAmB,EAAE,CAE1D;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C"}
|
|
@@ -1,227 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cleanup Manager
|
|
3
|
-
*
|
|
4
|
-
* Global cleanup handler registry and graceful shutdown coordination.
|
|
5
|
-
* Ensures all resources are properly released when the process exits.
|
|
6
|
-
*/
|
|
7
|
-
import { logger } from '../utils/logger-server.js';
|
|
8
|
-
/**
|
|
9
|
-
* Cleanup manager class
|
|
10
|
-
*/
|
|
11
|
-
class CleanupManager {
|
|
12
|
-
handlers = new Map();
|
|
13
|
-
isShuttingDown = false;
|
|
14
|
-
shutdownTimeout = 30_000; // 30 seconds
|
|
15
|
-
signalHandlersRegistered = false;
|
|
16
|
-
/**
|
|
17
|
-
* Register a cleanup handler
|
|
18
|
-
*/
|
|
19
|
-
register(id, handler, description, priority = 0) {
|
|
20
|
-
if (this.handlers.has(id)) {
|
|
21
|
-
logger.warn('Cleanup handler already registered', { id });
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
this.handlers.set(id, {
|
|
25
|
-
id,
|
|
26
|
-
handler,
|
|
27
|
-
priority,
|
|
28
|
-
description,
|
|
29
|
-
});
|
|
30
|
-
logger.debug('Registered cleanup handler', { id, description, priority });
|
|
31
|
-
// Register signal handlers on first handler registration
|
|
32
|
-
if (!this.signalHandlersRegistered) {
|
|
33
|
-
this.registerSignalHandlers();
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Unregister a cleanup handler
|
|
38
|
-
*/
|
|
39
|
-
unregister(id) {
|
|
40
|
-
if (this.handlers.delete(id)) {
|
|
41
|
-
logger.debug('Unregistered cleanup handler', { id });
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Execute all cleanup handlers
|
|
46
|
-
*/
|
|
47
|
-
async cleanup(signal) {
|
|
48
|
-
if (this.isShuttingDown) {
|
|
49
|
-
logger.warn('Cleanup already in progress');
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
this.isShuttingDown = true;
|
|
53
|
-
logger.info('Starting graceful shutdown', {
|
|
54
|
-
signal,
|
|
55
|
-
handlers: this.handlers.size,
|
|
56
|
-
});
|
|
57
|
-
// Sort handlers by priority (highest first)
|
|
58
|
-
const sortedHandlers = Array.from(this.handlers.values()).sort((a, b) => b.priority - a.priority);
|
|
59
|
-
const results = [];
|
|
60
|
-
// Execute handlers with timeout
|
|
61
|
-
const cleanupPromise = this.executeHandlers(sortedHandlers, results);
|
|
62
|
-
const timeoutPromise = new Promise((resolve) => {
|
|
63
|
-
setTimeout(() => {
|
|
64
|
-
logger.error('Cleanup timeout exceeded, forcing shutdown', {
|
|
65
|
-
timeout: this.shutdownTimeout,
|
|
66
|
-
});
|
|
67
|
-
resolve();
|
|
68
|
-
}, this.shutdownTimeout);
|
|
69
|
-
});
|
|
70
|
-
await Promise.race([cleanupPromise, timeoutPromise]);
|
|
71
|
-
// Log results
|
|
72
|
-
const successCount = results.filter((r) => r.success).length;
|
|
73
|
-
const failureCount = results.filter((r) => !r.success).length;
|
|
74
|
-
logger.info('Cleanup complete', {
|
|
75
|
-
total: results.length,
|
|
76
|
-
success: successCount,
|
|
77
|
-
failures: failureCount,
|
|
78
|
-
});
|
|
79
|
-
if (failureCount > 0) {
|
|
80
|
-
logger.error('Some cleanup handlers failed', {
|
|
81
|
-
failures: results.filter((r) => !r.success),
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Execute cleanup handlers in sequence
|
|
87
|
-
*/
|
|
88
|
-
async executeHandlers(handlers, results) {
|
|
89
|
-
for (const registration of handlers) {
|
|
90
|
-
try {
|
|
91
|
-
logger.debug('Executing cleanup handler', {
|
|
92
|
-
id: registration.id,
|
|
93
|
-
description: registration.description,
|
|
94
|
-
});
|
|
95
|
-
const handlerPromise = Promise.resolve(registration.handler());
|
|
96
|
-
// Individual handler timeout (10 seconds)
|
|
97
|
-
const handlerTimeout = new Promise((_, reject) => {
|
|
98
|
-
setTimeout(() => {
|
|
99
|
-
reject(new Error('Handler timeout'));
|
|
100
|
-
}, 10_000);
|
|
101
|
-
});
|
|
102
|
-
await Promise.race([handlerPromise, handlerTimeout]);
|
|
103
|
-
results.push({ id: registration.id, success: true });
|
|
104
|
-
logger.debug('Cleanup handler completed', {
|
|
105
|
-
id: registration.id,
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
catch (error) {
|
|
109
|
-
logger.error('Cleanup handler failed', {
|
|
110
|
-
id: registration.id,
|
|
111
|
-
error,
|
|
112
|
-
});
|
|
113
|
-
results.push({ id: registration.id, success: false, error });
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Register signal handlers for graceful shutdown
|
|
119
|
-
*/
|
|
120
|
-
registerSignalHandlers() {
|
|
121
|
-
if (this.signalHandlersRegistered)
|
|
122
|
-
return;
|
|
123
|
-
const signals = ['SIGTERM', 'SIGINT', 'SIGHUP'];
|
|
124
|
-
for (const signal of signals) {
|
|
125
|
-
process.on(signal, () => {
|
|
126
|
-
logger.info('Received signal, initiating cleanup', { signal });
|
|
127
|
-
this.cleanup(signal)
|
|
128
|
-
.then(() => {
|
|
129
|
-
logger.info('Cleanup successful, exiting', { signal });
|
|
130
|
-
process.exit(0);
|
|
131
|
-
})
|
|
132
|
-
.catch((error) => {
|
|
133
|
-
logger.error('Cleanup failed, forcing exit', { signal, error });
|
|
134
|
-
process.exit(1);
|
|
135
|
-
});
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
// Handle uncaught exceptions
|
|
139
|
-
process.on('uncaughtException', (error) => {
|
|
140
|
-
logger.error('Uncaught exception, initiating cleanup', { error });
|
|
141
|
-
this.cleanup('uncaughtException')
|
|
142
|
-
.then(() => {
|
|
143
|
-
process.exit(1);
|
|
144
|
-
})
|
|
145
|
-
.catch(() => {
|
|
146
|
-
process.exit(1);
|
|
147
|
-
});
|
|
148
|
-
});
|
|
149
|
-
// Handle unhandled rejections
|
|
150
|
-
process.on('unhandledRejection', (reason) => {
|
|
151
|
-
logger.error('Unhandled rejection, initiating cleanup', { reason });
|
|
152
|
-
this.cleanup('unhandledRejection')
|
|
153
|
-
.then(() => {
|
|
154
|
-
process.exit(1);
|
|
155
|
-
})
|
|
156
|
-
.catch(() => {
|
|
157
|
-
process.exit(1);
|
|
158
|
-
});
|
|
159
|
-
});
|
|
160
|
-
this.signalHandlersRegistered = true;
|
|
161
|
-
logger.debug('Signal handlers registered', { signals });
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Force immediate cleanup (skip timeout)
|
|
165
|
-
*/
|
|
166
|
-
async forceCleanup() {
|
|
167
|
-
const originalTimeout = this.shutdownTimeout;
|
|
168
|
-
this.shutdownTimeout = 0;
|
|
169
|
-
try {
|
|
170
|
-
await this.cleanup('force');
|
|
171
|
-
}
|
|
172
|
-
finally {
|
|
173
|
-
this.shutdownTimeout = originalTimeout;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* Get registered handlers
|
|
178
|
-
*/
|
|
179
|
-
getHandlers() {
|
|
180
|
-
return Array.from(this.handlers.values());
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* Check if shutdown is in progress
|
|
184
|
-
*/
|
|
185
|
-
isShutdownInProgress() {
|
|
186
|
-
return this.isShuttingDown;
|
|
187
|
-
}
|
|
188
|
-
/**
|
|
189
|
-
* Set shutdown timeout
|
|
190
|
-
*/
|
|
191
|
-
setShutdownTimeout(ms) {
|
|
192
|
-
this.shutdownTimeout = ms;
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* Clear all handlers
|
|
196
|
-
*/
|
|
197
|
-
clear() {
|
|
198
|
-
this.handlers.clear();
|
|
199
|
-
this.isShuttingDown = false;
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
/**
|
|
203
|
-
* Singleton instance
|
|
204
|
-
*/
|
|
205
|
-
export const cleanupManager = new CleanupManager();
|
|
206
|
-
/**
|
|
207
|
-
* Convenience functions
|
|
208
|
-
*/
|
|
209
|
-
export function registerCleanupHandler(id, handler, description, priority = 0) {
|
|
210
|
-
cleanupManager.register(id, handler, description, priority);
|
|
211
|
-
}
|
|
212
|
-
export function unregisterCleanupHandler(id) {
|
|
213
|
-
cleanupManager.unregister(id);
|
|
214
|
-
}
|
|
215
|
-
export function initiateCleanup(signal) {
|
|
216
|
-
return cleanupManager.cleanup(signal);
|
|
217
|
-
}
|
|
218
|
-
export function forceCleanup() {
|
|
219
|
-
return cleanupManager.forceCleanup();
|
|
220
|
-
}
|
|
221
|
-
export function getCleanupHandlers() {
|
|
222
|
-
return cleanupManager.getHandlers();
|
|
223
|
-
}
|
|
224
|
-
export function isShutdownInProgress() {
|
|
225
|
-
return cleanupManager.isShutdownInProgress();
|
|
226
|
-
}
|
|
227
|
-
//# sourceMappingURL=cleanup-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cleanup-manager.js","sourceRoot":"","sources":["../../../../../../core/src/monitoring/cleanup-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Health Monitor
|
|
3
|
-
*
|
|
4
|
-
* Collects and aggregates system health metrics including process stats,
|
|
5
|
-
* database pools, memory/CPU usage, and active alerts.
|
|
6
|
-
*/
|
|
7
|
-
import type { Alert, HealthMetrics, PoolMetrics } from './types.js';
|
|
8
|
-
/**
|
|
9
|
-
* Get current system health metrics
|
|
10
|
-
*/
|
|
11
|
-
export declare function getHealthMetrics(databasePools?: {
|
|
12
|
-
rest: PoolMetrics[];
|
|
13
|
-
vector: PoolMetrics[];
|
|
14
|
-
}): HealthMetrics;
|
|
15
|
-
/**
|
|
16
|
-
* Get health status based on alerts
|
|
17
|
-
*/
|
|
18
|
-
export declare function getHealthStatus(alerts: Alert[]): {
|
|
19
|
-
status: 'healthy' | 'degraded' | 'unhealthy';
|
|
20
|
-
statusCode: number;
|
|
21
|
-
};
|
|
22
|
-
//# sourceMappingURL=health-monitor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"health-monitor.d.ts","sourceRoot":"","sources":["../../../../../../core/src/monitoring/health-monitor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,KAAK,EAA2B,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAI5F;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,aAAa,CAAC,EAAE;IAC/C,IAAI,EAAE,WAAW,EAAE,CAAA;IACnB,MAAM,EAAE,WAAW,EAAE,CAAA;CACtB,GAAG,aAAa,CAqChB;AAoID;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG;IAChD,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAA;IAC5C,UAAU,EAAE,MAAM,CAAA;CACnB,CAWA"}
|