@trentapps/manager-protocol 1.1.3 → 1.2.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/README.md +164 -17
- package/dist/analyzers/CSSAnalyzer.d.ts +180 -8
- package/dist/analyzers/CSSAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/CSSAnalyzer.js +561 -105
- package/dist/analyzers/CSSAnalyzer.js.map +1 -1
- package/dist/config/dashboard.d.ts +55 -0
- package/dist/config/dashboard.d.ts.map +1 -0
- package/dist/config/dashboard.js +103 -0
- package/dist/config/dashboard.js.map +1 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +7 -0
- package/dist/config/index.js.map +1 -0
- package/dist/dashboard/httpDashboard.d.ts +100 -0
- package/dist/dashboard/httpDashboard.d.ts.map +1 -0
- package/dist/dashboard/httpDashboard.js +1276 -0
- package/dist/dashboard/httpDashboard.js.map +1 -0
- package/dist/dashboard/index.d.ts +6 -0
- package/dist/dashboard/index.d.ts.map +1 -0
- package/dist/dashboard/index.js +7 -0
- package/dist/dashboard/index.js.map +1 -0
- package/dist/engine/AuditLogger.d.ts +370 -2
- package/dist/engine/AuditLogger.d.ts.map +1 -1
- package/dist/engine/AuditLogger.js +1064 -24
- package/dist/engine/AuditLogger.js.map +1 -1
- package/dist/engine/GitHubClient.d.ts +183 -0
- package/dist/engine/GitHubClient.d.ts.map +1 -0
- package/dist/engine/GitHubClient.js +411 -0
- package/dist/engine/GitHubClient.js.map +1 -0
- package/dist/engine/RateLimiter.d.ts +5 -3
- package/dist/engine/RateLimiter.d.ts.map +1 -1
- package/dist/engine/RateLimiter.js +49 -72
- package/dist/engine/RateLimiter.js.map +1 -1
- package/dist/engine/RuleDependencyAnalyzer.d.ts +73 -0
- package/dist/engine/RuleDependencyAnalyzer.d.ts.map +1 -0
- package/dist/engine/RuleDependencyAnalyzer.js +475 -0
- package/dist/engine/RuleDependencyAnalyzer.js.map +1 -0
- package/dist/engine/RulesEngine.d.ts +102 -3
- package/dist/engine/RulesEngine.d.ts.map +1 -1
- package/dist/engine/RulesEngine.js +326 -21
- package/dist/engine/RulesEngine.js.map +1 -1
- package/dist/engine/TaskManager.d.ts +10 -14
- package/dist/engine/TaskManager.d.ts.map +1 -1
- package/dist/engine/TaskManager.js +169 -197
- package/dist/engine/TaskManager.js.map +1 -1
- package/dist/engine/index.d.ts +3 -0
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +5 -0
- package/dist/engine/index.js.map +1 -1
- package/dist/rules/azure.d.ts.map +1 -1
- package/dist/rules/azure.js +12 -14
- package/dist/rules/azure.js.map +1 -1
- package/dist/rules/compliance.d.ts.map +1 -1
- package/dist/rules/compliance.js +23 -41
- package/dist/rules/compliance.js.map +1 -1
- package/dist/rules/condition-optimizer.d.ts +151 -0
- package/dist/rules/condition-optimizer.d.ts.map +1 -0
- package/dist/rules/condition-optimizer.js +479 -0
- package/dist/rules/condition-optimizer.js.map +1 -0
- package/dist/rules/css.d.ts.map +1 -1
- package/dist/rules/css.js +538 -0
- package/dist/rules/css.js.map +1 -1
- package/dist/rules/field-standards.d.ts +1172 -0
- package/dist/rules/field-standards.d.ts.map +1 -0
- package/dist/rules/field-standards.js +908 -0
- package/dist/rules/field-standards.js.map +1 -0
- package/dist/rules/flask.d.ts.map +1 -1
- package/dist/rules/flask.js +18 -31
- package/dist/rules/flask.js.map +1 -1
- package/dist/rules/index.d.ts +220 -0
- package/dist/rules/index.d.ts.map +1 -1
- package/dist/rules/index.js +155 -0
- package/dist/rules/index.js.map +1 -1
- package/dist/rules/ml-ai.d.ts.map +1 -1
- package/dist/rules/ml-ai.js +11 -13
- package/dist/rules/ml-ai.js.map +1 -1
- package/dist/rules/patterns.d.ts +568 -0
- package/dist/rules/patterns.d.ts.map +1 -0
- package/dist/rules/patterns.js +1359 -0
- package/dist/rules/patterns.js.map +1 -0
- package/dist/rules/security.d.ts.map +1 -1
- package/dist/rules/security.js +580 -19
- package/dist/rules/security.js.map +1 -1
- package/dist/rules/shared-patterns.d.ts +268 -0
- package/dist/rules/shared-patterns.d.ts.map +1 -0
- package/dist/rules/shared-patterns.js +556 -0
- package/dist/rules/shared-patterns.js.map +1 -0
- package/dist/rules/storage.d.ts +8 -2
- package/dist/rules/storage.d.ts.map +1 -1
- package/dist/rules/storage.js +541 -3
- package/dist/rules/storage.js.map +1 -1
- package/dist/rules/stripe.d.ts.map +1 -1
- package/dist/rules/stripe.js +19 -26
- package/dist/rules/stripe.js.map +1 -1
- package/dist/rules/websocket.d.ts.map +1 -1
- package/dist/rules/websocket.js +32 -40
- package/dist/rules/websocket.js.map +1 -1
- package/dist/supervisor/AgentSupervisor.d.ts +52 -0
- package/dist/supervisor/AgentSupervisor.d.ts.map +1 -1
- package/dist/supervisor/AgentSupervisor.js +120 -1
- package/dist/supervisor/AgentSupervisor.js.map +1 -1
- package/dist/supervisor/ManagedServerRegistry.d.ts +139 -2
- package/dist/supervisor/ManagedServerRegistry.d.ts.map +1 -1
- package/dist/supervisor/ManagedServerRegistry.js +590 -6
- package/dist/supervisor/ManagedServerRegistry.js.map +1 -1
- package/dist/supervisor/ProjectTracker.d.ts +2 -1
- package/dist/supervisor/ProjectTracker.d.ts.map +1 -1
- package/dist/supervisor/ProjectTracker.js +5 -9
- package/dist/supervisor/ProjectTracker.js.map +1 -1
- package/dist/testing/index.d.ts +11 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +12 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/rule-tester.d.ts +217 -0
- package/dist/testing/rule-tester.d.ts.map +1 -0
- package/dist/testing/rule-tester.examples.d.ts +57 -0
- package/dist/testing/rule-tester.examples.d.ts.map +1 -0
- package/dist/testing/rule-tester.examples.js +375 -0
- package/dist/testing/rule-tester.examples.js.map +1 -0
- package/dist/testing/rule-tester.js +381 -0
- package/dist/testing/rule-tester.js.map +1 -0
- package/dist/testing/rule-validator.d.ts +141 -0
- package/dist/testing/rule-validator.d.ts.map +1 -0
- package/dist/testing/rule-validator.js +640 -0
- package/dist/testing/rule-validator.js.map +1 -0
- package/dist/types/index.d.ts +265 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +57 -2
- package/dist/types/index.js.map +1 -1
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/rate-limiting.d.ts +268 -0
- package/dist/utils/rate-limiting.d.ts.map +1 -0
- package/dist/utils/rate-limiting.js +403 -0
- package/dist/utils/rate-limiting.js.map +1 -0
- package/dist/utils/shared.d.ts +306 -0
- package/dist/utils/shared.d.ts.map +1 -0
- package/dist/utils/shared.js +464 -0
- package/dist/utils/shared.js.map +1 -0
- package/package.json +3 -2
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
* Managed Server Registry
|
|
3
3
|
*
|
|
4
4
|
* Allows registering servers (ip + sourceDir) and checking online status.
|
|
5
|
+
* Features:
|
|
6
|
+
* - Connection pooling for TCP checks (reuse connections, timeout limits)
|
|
7
|
+
* - Caching for health check results (short TTL for success, no cache for failures)
|
|
8
|
+
* - Rate limiting with exponential backoff for repeated failures
|
|
5
9
|
*/
|
|
6
10
|
export interface ManagedServer {
|
|
7
11
|
id: string;
|
|
@@ -19,12 +23,83 @@ export interface ServerStatus {
|
|
|
19
23
|
sourceDir: string;
|
|
20
24
|
sourceDirExists: boolean;
|
|
21
25
|
checkedAt: string;
|
|
26
|
+
/** Whether result came from cache */
|
|
27
|
+
cached?: boolean;
|
|
28
|
+
/** Cache age in milliseconds if cached */
|
|
29
|
+
cacheAgeMs?: number;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Configuration for connection pooling
|
|
33
|
+
*/
|
|
34
|
+
export interface ConnectionPoolConfig {
|
|
35
|
+
/** Maximum connections per host:port combination (default: 5) */
|
|
36
|
+
maxConnectionsPerEndpoint?: number;
|
|
37
|
+
/** Connection idle timeout in ms before cleanup (default: 30000) */
|
|
38
|
+
connectionIdleTimeoutMs?: number;
|
|
39
|
+
/** Maximum connection age in ms before forced cleanup (default: 60000) */
|
|
40
|
+
maxConnectionAgeMs?: number;
|
|
41
|
+
/** Interval to run cleanup of stale connections (default: 10000) */
|
|
42
|
+
cleanupIntervalMs?: number;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Configuration for health check caching
|
|
46
|
+
*/
|
|
47
|
+
export interface CacheConfig {
|
|
48
|
+
/** TTL for successful checks in ms (default: 5000) */
|
|
49
|
+
successTtlMs?: number;
|
|
50
|
+
/** Whether to cache failures - generally should be false (default: false) */
|
|
51
|
+
cacheFailures?: boolean;
|
|
52
|
+
/** TTL for failed checks if cacheFailures is true (default: 1000) */
|
|
53
|
+
failureTtlMs?: number;
|
|
54
|
+
/** Maximum cache entries before LRU eviction (default: 1000) */
|
|
55
|
+
maxEntries?: number;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Configuration for rate limiting
|
|
59
|
+
*/
|
|
60
|
+
export interface RateLimitConfig {
|
|
61
|
+
/** Initial delay after first failure in ms (default: 1000) */
|
|
62
|
+
initialDelayMs?: number;
|
|
63
|
+
/** Maximum delay between retries in ms (default: 60000) */
|
|
64
|
+
maxDelayMs?: number;
|
|
65
|
+
/** Multiplier for exponential backoff (default: 2) */
|
|
66
|
+
backoffMultiplier?: number;
|
|
67
|
+
/** Number of consecutive failures before rate limiting kicks in (default: 3) */
|
|
68
|
+
failureThreshold?: number;
|
|
69
|
+
/** Time window to track failures in ms (default: 60000) */
|
|
70
|
+
failureWindowMs?: number;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Configuration for ManagedServerRegistry
|
|
74
|
+
*/
|
|
75
|
+
export interface ManagedServerRegistryConfig {
|
|
76
|
+
/** Path to persist server list (default: ./managed-servers.json) */
|
|
77
|
+
filePath?: string;
|
|
78
|
+
/** Connection pool configuration */
|
|
79
|
+
connectionPool?: ConnectionPoolConfig;
|
|
80
|
+
/** Health check cache configuration */
|
|
81
|
+
cache?: CacheConfig;
|
|
82
|
+
/** Rate limiting configuration */
|
|
83
|
+
rateLimit?: RateLimitConfig;
|
|
84
|
+
/** Whether to use connection pooling (default: true) */
|
|
85
|
+
enablePooling?: boolean;
|
|
86
|
+
/** Whether to use caching (default: true) */
|
|
87
|
+
enableCaching?: boolean;
|
|
88
|
+
/** Whether to use rate limiting (default: true) */
|
|
89
|
+
enableRateLimiting?: boolean;
|
|
22
90
|
}
|
|
23
91
|
export declare class ManagedServerRegistry {
|
|
24
92
|
private filePath;
|
|
25
93
|
private servers;
|
|
26
94
|
private loaded;
|
|
27
|
-
|
|
95
|
+
private connectionPool;
|
|
96
|
+
private healthCache;
|
|
97
|
+
private rateLimiter;
|
|
98
|
+
private enablePooling;
|
|
99
|
+
private enableCaching;
|
|
100
|
+
private enableRateLimiting;
|
|
101
|
+
private stats;
|
|
102
|
+
constructor(config?: ManagedServerRegistryConfig);
|
|
28
103
|
private ensureLoaded;
|
|
29
104
|
private persist;
|
|
30
105
|
addServer(params: {
|
|
@@ -41,8 +116,70 @@ export declare class ManagedServerRegistry {
|
|
|
41
116
|
ip?: string;
|
|
42
117
|
sourceDir?: string;
|
|
43
118
|
ports?: number[];
|
|
119
|
+
skipCache?: boolean;
|
|
44
120
|
}): Promise<ServerStatus>;
|
|
45
|
-
|
|
121
|
+
/**
|
|
122
|
+
* TCP check with connection pooling, caching, and rate limiting
|
|
123
|
+
*/
|
|
124
|
+
private tcpCheckWithFeatures;
|
|
125
|
+
/**
|
|
126
|
+
* TCP check using connection pool
|
|
127
|
+
*/
|
|
128
|
+
private tcpCheckPooled;
|
|
129
|
+
/**
|
|
130
|
+
* Direct TCP check without pooling (original implementation)
|
|
131
|
+
*/
|
|
132
|
+
private tcpCheckDirect;
|
|
133
|
+
/**
|
|
134
|
+
* Get comprehensive statistics about TCP checks
|
|
135
|
+
*/
|
|
136
|
+
getCheckStats(): {
|
|
137
|
+
totalChecks: number;
|
|
138
|
+
cacheHits: number;
|
|
139
|
+
cacheMisses: number;
|
|
140
|
+
cacheHitRate: number;
|
|
141
|
+
pooledConnections: number;
|
|
142
|
+
newConnections: number;
|
|
143
|
+
poolReuseRate: number;
|
|
144
|
+
rateLimitedChecks: number;
|
|
145
|
+
pool: {
|
|
146
|
+
totalConnections: number;
|
|
147
|
+
activeConnections: number;
|
|
148
|
+
endpoints: number;
|
|
149
|
+
};
|
|
150
|
+
cache: {
|
|
151
|
+
entries: number;
|
|
152
|
+
hitRate?: number;
|
|
153
|
+
};
|
|
154
|
+
rateLimit: {
|
|
155
|
+
trackedEndpoints: number;
|
|
156
|
+
rateLimitedEndpoints: number;
|
|
157
|
+
};
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* Invalidate cache for a specific endpoint
|
|
161
|
+
*/
|
|
162
|
+
invalidateCache(host: string, port: number): boolean;
|
|
163
|
+
/**
|
|
164
|
+
* Clear all caches
|
|
165
|
+
*/
|
|
166
|
+
clearCache(): void;
|
|
167
|
+
/**
|
|
168
|
+
* Clear rate limiting for an endpoint
|
|
169
|
+
*/
|
|
170
|
+
clearRateLimit(host: string, port: number): boolean;
|
|
171
|
+
/**
|
|
172
|
+
* Clear all rate limiting
|
|
173
|
+
*/
|
|
174
|
+
clearAllRateLimits(): void;
|
|
175
|
+
/**
|
|
176
|
+
* Reset all statistics
|
|
177
|
+
*/
|
|
178
|
+
resetStats(): void;
|
|
179
|
+
/**
|
|
180
|
+
* Clean up resources (connection pool, timers)
|
|
181
|
+
*/
|
|
182
|
+
destroy(): void;
|
|
46
183
|
}
|
|
47
184
|
export declare const managedServerRegistry: ManagedServerRegistry;
|
|
48
185
|
//# sourceMappingURL=ManagedServerRegistry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManagedServerRegistry.d.ts","sourceRoot":"","sources":["../../src/supervisor/ManagedServerRegistry.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ManagedServerRegistry.d.ts","sourceRoot":"","sources":["../../src/supervisor/ManagedServerRegistry.ts"],"names":[],"mappings":"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"}
|