@trentapps/manager-protocol 1.1.3 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/README.md +28 -0
  2. package/dist/analyzers/CSSAnalyzer.d.ts +180 -8
  3. package/dist/analyzers/CSSAnalyzer.d.ts.map +1 -1
  4. package/dist/analyzers/CSSAnalyzer.js +561 -105
  5. package/dist/analyzers/CSSAnalyzer.js.map +1 -1
  6. package/dist/config/dashboard.d.ts +55 -0
  7. package/dist/config/dashboard.d.ts.map +1 -0
  8. package/dist/config/dashboard.js +103 -0
  9. package/dist/config/dashboard.js.map +1 -0
  10. package/dist/config/index.d.ts +7 -0
  11. package/dist/config/index.d.ts.map +1 -0
  12. package/dist/config/index.js +7 -0
  13. package/dist/config/index.js.map +1 -0
  14. package/dist/dashboard/httpDashboard.d.ts +100 -0
  15. package/dist/dashboard/httpDashboard.d.ts.map +1 -0
  16. package/dist/dashboard/httpDashboard.js +1276 -0
  17. package/dist/dashboard/httpDashboard.js.map +1 -0
  18. package/dist/dashboard/index.d.ts +6 -0
  19. package/dist/dashboard/index.d.ts.map +1 -0
  20. package/dist/dashboard/index.js +7 -0
  21. package/dist/dashboard/index.js.map +1 -0
  22. package/dist/engine/AuditLogger.d.ts +370 -2
  23. package/dist/engine/AuditLogger.d.ts.map +1 -1
  24. package/dist/engine/AuditLogger.js +1064 -24
  25. package/dist/engine/AuditLogger.js.map +1 -1
  26. package/dist/engine/GitHubClient.d.ts +183 -0
  27. package/dist/engine/GitHubClient.d.ts.map +1 -0
  28. package/dist/engine/GitHubClient.js +411 -0
  29. package/dist/engine/GitHubClient.js.map +1 -0
  30. package/dist/engine/RateLimiter.d.ts +5 -3
  31. package/dist/engine/RateLimiter.d.ts.map +1 -1
  32. package/dist/engine/RateLimiter.js +49 -72
  33. package/dist/engine/RateLimiter.js.map +1 -1
  34. package/dist/engine/RuleDependencyAnalyzer.d.ts +73 -0
  35. package/dist/engine/RuleDependencyAnalyzer.d.ts.map +1 -0
  36. package/dist/engine/RuleDependencyAnalyzer.js +475 -0
  37. package/dist/engine/RuleDependencyAnalyzer.js.map +1 -0
  38. package/dist/engine/RulesEngine.d.ts +102 -3
  39. package/dist/engine/RulesEngine.d.ts.map +1 -1
  40. package/dist/engine/RulesEngine.js +326 -21
  41. package/dist/engine/RulesEngine.js.map +1 -1
  42. package/dist/engine/TaskManager.d.ts +10 -14
  43. package/dist/engine/TaskManager.d.ts.map +1 -1
  44. package/dist/engine/TaskManager.js +169 -197
  45. package/dist/engine/TaskManager.js.map +1 -1
  46. package/dist/engine/index.d.ts +3 -0
  47. package/dist/engine/index.d.ts.map +1 -1
  48. package/dist/engine/index.js +5 -0
  49. package/dist/engine/index.js.map +1 -1
  50. package/dist/rules/azure.d.ts.map +1 -1
  51. package/dist/rules/azure.js +12 -14
  52. package/dist/rules/azure.js.map +1 -1
  53. package/dist/rules/compliance.d.ts.map +1 -1
  54. package/dist/rules/compliance.js +23 -41
  55. package/dist/rules/compliance.js.map +1 -1
  56. package/dist/rules/condition-optimizer.d.ts +151 -0
  57. package/dist/rules/condition-optimizer.d.ts.map +1 -0
  58. package/dist/rules/condition-optimizer.js +479 -0
  59. package/dist/rules/condition-optimizer.js.map +1 -0
  60. package/dist/rules/css.d.ts.map +1 -1
  61. package/dist/rules/css.js +538 -0
  62. package/dist/rules/css.js.map +1 -1
  63. package/dist/rules/field-standards.d.ts +1172 -0
  64. package/dist/rules/field-standards.d.ts.map +1 -0
  65. package/dist/rules/field-standards.js +908 -0
  66. package/dist/rules/field-standards.js.map +1 -0
  67. package/dist/rules/flask.d.ts.map +1 -1
  68. package/dist/rules/flask.js +18 -31
  69. package/dist/rules/flask.js.map +1 -1
  70. package/dist/rules/index.d.ts +220 -0
  71. package/dist/rules/index.d.ts.map +1 -1
  72. package/dist/rules/index.js +155 -0
  73. package/dist/rules/index.js.map +1 -1
  74. package/dist/rules/ml-ai.d.ts.map +1 -1
  75. package/dist/rules/ml-ai.js +11 -13
  76. package/dist/rules/ml-ai.js.map +1 -1
  77. package/dist/rules/patterns.d.ts +568 -0
  78. package/dist/rules/patterns.d.ts.map +1 -0
  79. package/dist/rules/patterns.js +1359 -0
  80. package/dist/rules/patterns.js.map +1 -0
  81. package/dist/rules/security.d.ts.map +1 -1
  82. package/dist/rules/security.js +580 -19
  83. package/dist/rules/security.js.map +1 -1
  84. package/dist/rules/shared-patterns.d.ts +268 -0
  85. package/dist/rules/shared-patterns.d.ts.map +1 -0
  86. package/dist/rules/shared-patterns.js +556 -0
  87. package/dist/rules/shared-patterns.js.map +1 -0
  88. package/dist/rules/storage.d.ts +8 -2
  89. package/dist/rules/storage.d.ts.map +1 -1
  90. package/dist/rules/storage.js +541 -3
  91. package/dist/rules/storage.js.map +1 -1
  92. package/dist/rules/stripe.d.ts.map +1 -1
  93. package/dist/rules/stripe.js +19 -26
  94. package/dist/rules/stripe.js.map +1 -1
  95. package/dist/rules/websocket.d.ts.map +1 -1
  96. package/dist/rules/websocket.js +32 -40
  97. package/dist/rules/websocket.js.map +1 -1
  98. package/dist/supervisor/AgentSupervisor.d.ts +52 -0
  99. package/dist/supervisor/AgentSupervisor.d.ts.map +1 -1
  100. package/dist/supervisor/AgentSupervisor.js +120 -1
  101. package/dist/supervisor/AgentSupervisor.js.map +1 -1
  102. package/dist/supervisor/ManagedServerRegistry.d.ts +139 -2
  103. package/dist/supervisor/ManagedServerRegistry.d.ts.map +1 -1
  104. package/dist/supervisor/ManagedServerRegistry.js +590 -6
  105. package/dist/supervisor/ManagedServerRegistry.js.map +1 -1
  106. package/dist/supervisor/ProjectTracker.d.ts +2 -1
  107. package/dist/supervisor/ProjectTracker.d.ts.map +1 -1
  108. package/dist/supervisor/ProjectTracker.js +5 -9
  109. package/dist/supervisor/ProjectTracker.js.map +1 -1
  110. package/dist/testing/index.d.ts +11 -0
  111. package/dist/testing/index.d.ts.map +1 -0
  112. package/dist/testing/index.js +12 -0
  113. package/dist/testing/index.js.map +1 -0
  114. package/dist/testing/rule-tester.d.ts +217 -0
  115. package/dist/testing/rule-tester.d.ts.map +1 -0
  116. package/dist/testing/rule-tester.examples.d.ts +57 -0
  117. package/dist/testing/rule-tester.examples.d.ts.map +1 -0
  118. package/dist/testing/rule-tester.examples.js +375 -0
  119. package/dist/testing/rule-tester.examples.js.map +1 -0
  120. package/dist/testing/rule-tester.js +381 -0
  121. package/dist/testing/rule-tester.js.map +1 -0
  122. package/dist/testing/rule-validator.d.ts +141 -0
  123. package/dist/testing/rule-validator.d.ts.map +1 -0
  124. package/dist/testing/rule-validator.js +640 -0
  125. package/dist/testing/rule-validator.js.map +1 -0
  126. package/dist/types/index.d.ts +265 -4
  127. package/dist/types/index.d.ts.map +1 -1
  128. package/dist/types/index.js +57 -2
  129. package/dist/types/index.js.map +1 -1
  130. package/dist/utils/index.d.ts +2 -0
  131. package/dist/utils/index.d.ts.map +1 -1
  132. package/dist/utils/index.js +2 -0
  133. package/dist/utils/index.js.map +1 -1
  134. package/dist/utils/rate-limiting.d.ts +268 -0
  135. package/dist/utils/rate-limiting.d.ts.map +1 -0
  136. package/dist/utils/rate-limiting.js +403 -0
  137. package/dist/utils/rate-limiting.js.map +1 -0
  138. package/dist/utils/shared.d.ts +306 -0
  139. package/dist/utils/shared.d.ts.map +1 -0
  140. package/dist/utils/shared.js +464 -0
  141. package/dist/utils/shared.js.map +1 -0
  142. package/package.json +2 -1
@@ -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
- constructor(filePath?: string);
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
- private tcpCheck;
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;;;;GAIG;AAQH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,MAAM,CAAS;gBAEX,QAAQ,CAAC,EAAE,MAAM;YAIf,YAAY;YAiBZ,OAAO;IAKf,SAAS,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IAe1G,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAO1C,WAAW,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAKvC,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAKzD,WAAW,CAAC,KAAK,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAqDnH,OAAO,CAAC,QAAQ;CA0BjB;AAGD,eAAO,MAAM,qBAAqB,uBAA8B,CAAC"}
1
+ {"version":3,"file":"ManagedServerRegistry.d.ts","sourceRoot":"","sources":["../../src/supervisor/ManagedServerRegistry.ts"],"names":[],"mappings":"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"}