beddel 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) hide show
  1. package/README.md +297 -0
  2. package/dist/agents/agentRegistry.d.ts +68 -0
  3. package/dist/agents/agentRegistry.d.ts.map +1 -0
  4. package/dist/agents/agentRegistry.js +222 -0
  5. package/dist/agents/agentRegistry.js.map +1 -0
  6. package/dist/agents/formatter-agent.d.ts +10 -0
  7. package/dist/agents/formatter-agent.d.ts.map +1 -0
  8. package/dist/agents/formatter-agent.js +49 -0
  9. package/dist/agents/formatter-agent.js.map +1 -0
  10. package/dist/agents/genkit-agent.d.ts +12 -0
  11. package/dist/agents/genkit-agent.d.ts.map +1 -0
  12. package/dist/agents/genkit-agent.js +119 -0
  13. package/dist/agents/genkit-agent.js.map +1 -0
  14. package/dist/agents/i18n-messages.d.ts +17 -0
  15. package/dist/agents/i18n-messages.d.ts.map +1 -0
  16. package/dist/agents/i18n-messages.js +92 -0
  17. package/dist/agents/i18n-messages.js.map +1 -0
  18. package/dist/agents/index.d.ts +10 -0
  19. package/dist/agents/index.d.ts.map +1 -0
  20. package/dist/agents/index.js +26 -0
  21. package/dist/agents/index.js.map +1 -0
  22. package/dist/agents/pipeline.d.ts +15 -0
  23. package/dist/agents/pipeline.d.ts.map +1 -0
  24. package/dist/agents/pipeline.js +45 -0
  25. package/dist/agents/pipeline.js.map +1 -0
  26. package/dist/agents/schema-factory.d.ts +40 -0
  27. package/dist/agents/schema-factory.d.ts.map +1 -0
  28. package/dist/agents/schema-factory.js +121 -0
  29. package/dist/agents/schema-factory.js.map +1 -0
  30. package/dist/agents/translation-validators.d.ts +26 -0
  31. package/dist/agents/translation-validators.d.ts.map +1 -0
  32. package/dist/agents/translation-validators.js +77 -0
  33. package/dist/agents/translation-validators.js.map +1 -0
  34. package/dist/agents/translator-agents.d.ts +184 -0
  35. package/dist/agents/translator-agents.d.ts.map +1 -0
  36. package/dist/agents/translator-agents.js +613 -0
  37. package/dist/agents/translator-agents.js.map +1 -0
  38. package/dist/agents/types/translation.types.d.ts +100 -0
  39. package/dist/agents/types/translation.types.d.ts.map +1 -0
  40. package/dist/agents/types/translation.types.js +3 -0
  41. package/dist/agents/types/translation.types.js.map +1 -0
  42. package/dist/agents/validator-agent.d.ts +42 -0
  43. package/dist/agents/validator-agent.d.ts.map +1 -0
  44. package/dist/agents/validator-agent.js +122 -0
  45. package/dist/agents/validator-agent.js.map +1 -0
  46. package/dist/audit/auditTrail.d.ts +55 -0
  47. package/dist/audit/auditTrail.d.ts.map +1 -0
  48. package/dist/audit/auditTrail.js +93 -0
  49. package/dist/audit/auditTrail.js.map +1 -0
  50. package/dist/compliance/gdprEngine.d.ts +44 -0
  51. package/dist/compliance/gdprEngine.d.ts.map +1 -0
  52. package/dist/compliance/gdprEngine.js +178 -0
  53. package/dist/compliance/gdprEngine.js.map +1 -0
  54. package/dist/compliance/lgpdEngine.d.ts +51 -0
  55. package/dist/compliance/lgpdEngine.d.ts.map +1 -0
  56. package/dist/compliance/lgpdEngine.js +221 -0
  57. package/dist/compliance/lgpdEngine.js.map +1 -0
  58. package/dist/config.d.ts +78 -0
  59. package/dist/config.d.ts.map +1 -0
  60. package/dist/config.js +77 -0
  61. package/dist/config.js.map +1 -0
  62. package/dist/errors.d.ts +17 -0
  63. package/dist/errors.d.ts.map +1 -0
  64. package/dist/errors.js +40 -0
  65. package/dist/errors.js.map +1 -0
  66. package/dist/firebase/tenantManager.d.ts +84 -0
  67. package/dist/firebase/tenantManager.d.ts.map +1 -0
  68. package/dist/firebase/tenantManager.js +378 -0
  69. package/dist/firebase/tenantManager.js.map +1 -0
  70. package/dist/index.d.ts +36 -0
  71. package/dist/index.d.ts.map +1 -0
  72. package/dist/index.js +118 -0
  73. package/dist/index.js.map +1 -0
  74. package/dist/integration/secure-yaml-runtime.d.ts +68 -0
  75. package/dist/integration/secure-yaml-runtime.d.ts.map +1 -0
  76. package/dist/integration/secure-yaml-runtime.js +245 -0
  77. package/dist/integration/secure-yaml-runtime.js.map +1 -0
  78. package/dist/parser/secure-yaml-parser.d.ts +62 -0
  79. package/dist/parser/secure-yaml-parser.d.ts.map +1 -0
  80. package/dist/parser/secure-yaml-parser.js +234 -0
  81. package/dist/parser/secure-yaml-parser.js.map +1 -0
  82. package/dist/performance/autoscaling.d.ts +100 -0
  83. package/dist/performance/autoscaling.d.ts.map +1 -0
  84. package/dist/performance/autoscaling.js +339 -0
  85. package/dist/performance/autoscaling.js.map +1 -0
  86. package/dist/performance/benchmark.d.ts +104 -0
  87. package/dist/performance/benchmark.d.ts.map +1 -0
  88. package/dist/performance/benchmark.js +514 -0
  89. package/dist/performance/benchmark.js.map +1 -0
  90. package/dist/performance/index.d.ts +14 -0
  91. package/dist/performance/index.d.ts.map +1 -0
  92. package/dist/performance/index.js +35 -0
  93. package/dist/performance/index.js.map +1 -0
  94. package/dist/performance/monitor.d.ts +126 -0
  95. package/dist/performance/monitor.d.ts.map +1 -0
  96. package/dist/performance/monitor.js +324 -0
  97. package/dist/performance/monitor.js.map +1 -0
  98. package/dist/performance/streaming.d.ts +82 -0
  99. package/dist/performance/streaming.d.ts.map +1 -0
  100. package/dist/performance/streaming.js +287 -0
  101. package/dist/performance/streaming.js.map +1 -0
  102. package/dist/runtime/audit.d.ts +240 -0
  103. package/dist/runtime/audit.d.ts.map +1 -0
  104. package/dist/runtime/audit.js +641 -0
  105. package/dist/runtime/audit.js.map +1 -0
  106. package/dist/runtime/declarativeAgentRuntime.d.ts +123 -0
  107. package/dist/runtime/declarativeAgentRuntime.d.ts.map +1 -0
  108. package/dist/runtime/declarativeAgentRuntime.js +576 -0
  109. package/dist/runtime/declarativeAgentRuntime.js.map +1 -0
  110. package/dist/runtime/isolatedRuntime.d.ts +119 -0
  111. package/dist/runtime/isolatedRuntime.d.ts.map +1 -0
  112. package/dist/runtime/isolatedRuntime.js +425 -0
  113. package/dist/runtime/isolatedRuntime.js.map +1 -0
  114. package/dist/runtime/schemaCompiler.d.ts +35 -0
  115. package/dist/runtime/schemaCompiler.d.ts.map +1 -0
  116. package/dist/runtime/schemaCompiler.js +151 -0
  117. package/dist/runtime/schemaCompiler.js.map +1 -0
  118. package/dist/runtime/simpleRuntime.d.ts +57 -0
  119. package/dist/runtime/simpleRuntime.d.ts.map +1 -0
  120. package/dist/runtime/simpleRuntime.js +187 -0
  121. package/dist/runtime/simpleRuntime.js.map +1 -0
  122. package/dist/security/dashboard.d.ts +89 -0
  123. package/dist/security/dashboard.d.ts.map +1 -0
  124. package/dist/security/dashboard.js +300 -0
  125. package/dist/security/dashboard.js.map +1 -0
  126. package/dist/security/hardening.d.ts +130 -0
  127. package/dist/security/hardening.d.ts.map +1 -0
  128. package/dist/security/hardening.js +414 -0
  129. package/dist/security/hardening.js.map +1 -0
  130. package/dist/security/index.d.ts +128 -0
  131. package/dist/security/index.d.ts.map +1 -0
  132. package/dist/security/index.js +353 -0
  133. package/dist/security/index.js.map +1 -0
  134. package/dist/security/monitor.d.ts +88 -0
  135. package/dist/security/monitor.d.ts.map +1 -0
  136. package/dist/security/monitor.js +356 -0
  137. package/dist/security/monitor.js.map +1 -0
  138. package/dist/security/scanner.d.ts +104 -0
  139. package/dist/security/scanner.d.ts.map +1 -0
  140. package/dist/security/scanner.js +298 -0
  141. package/dist/security/scanner.js.map +1 -0
  142. package/dist/security/score.d.ts +150 -0
  143. package/dist/security/score.d.ts.map +1 -0
  144. package/dist/security/score.js +983 -0
  145. package/dist/security/score.js.map +1 -0
  146. package/dist/security/test-security.d.ts +22 -0
  147. package/dist/security/test-security.d.ts.map +1 -0
  148. package/dist/security/test-security.js +154 -0
  149. package/dist/security/test-security.js.map +1 -0
  150. package/dist/security/threatDetector.d.ts +39 -0
  151. package/dist/security/threatDetector.d.ts.map +1 -0
  152. package/dist/security/threatDetector.js +354 -0
  153. package/dist/security/threatDetector.js.map +1 -0
  154. package/dist/security/validation.d.ts +69 -0
  155. package/dist/security/validation.d.ts.map +1 -0
  156. package/dist/security/validation.js +286 -0
  157. package/dist/security/validation.js.map +1 -0
  158. package/dist/server/api/clientsRoute.d.ts +9 -0
  159. package/dist/server/api/clientsRoute.d.ts.map +1 -0
  160. package/dist/server/api/clientsRoute.js +71 -0
  161. package/dist/server/api/clientsRoute.js.map +1 -0
  162. package/dist/server/api/endpointsRoute.d.ts +8 -0
  163. package/dist/server/api/endpointsRoute.d.ts.map +1 -0
  164. package/dist/server/api/endpointsRoute.js +76 -0
  165. package/dist/server/api/endpointsRoute.js.map +1 -0
  166. package/dist/server/api/graphql.d.ts +9 -0
  167. package/dist/server/api/graphql.d.ts.map +1 -0
  168. package/dist/server/api/graphql.js +180 -0
  169. package/dist/server/api/graphql.js.map +1 -0
  170. package/dist/server/errors.d.ts +19 -0
  171. package/dist/server/errors.d.ts.map +1 -0
  172. package/dist/server/errors.js +42 -0
  173. package/dist/server/errors.js.map +1 -0
  174. package/dist/server/index.d.ts +7 -0
  175. package/dist/server/index.d.ts.map +1 -0
  176. package/dist/server/index.js +24 -0
  177. package/dist/server/index.js.map +1 -0
  178. package/dist/server/kvStore.d.ts +27 -0
  179. package/dist/server/kvStore.d.ts.map +1 -0
  180. package/dist/server/kvStore.js +128 -0
  181. package/dist/server/kvStore.js.map +1 -0
  182. package/dist/server/runtimeSecurity.d.ts +28 -0
  183. package/dist/server/runtimeSecurity.d.ts.map +1 -0
  184. package/dist/server/runtimeSecurity.js +85 -0
  185. package/dist/server/runtimeSecurity.js.map +1 -0
  186. package/dist/server/types.d.ts +53 -0
  187. package/dist/server/types.d.ts.map +1 -0
  188. package/dist/server/types.js +8 -0
  189. package/dist/server/types.js.map +1 -0
  190. package/dist/types/executionContext.d.ts +16 -0
  191. package/dist/types/executionContext.d.ts.map +1 -0
  192. package/dist/types/executionContext.js +3 -0
  193. package/dist/types/executionContext.js.map +1 -0
  194. package/package.json +77 -0
  195. package/src/agents/agentRegistry.ts +272 -0
  196. package/src/agents/image-agent.yaml +86 -0
  197. package/src/agents/joker-agent.yaml +47 -0
  198. package/src/agents/translator-agent.yaml +80 -0
  199. package/src/audit/auditTrail.ts +134 -0
  200. package/src/compliance/gdprEngine.ts +209 -0
  201. package/src/compliance/lgpdEngine.ts +268 -0
  202. package/src/config.ts +179 -0
  203. package/src/errors.ts +35 -0
  204. package/src/firebase/tenantManager.ts +443 -0
  205. package/src/index.ts +125 -0
  206. package/src/integration/secure-yaml-runtime.ts +341 -0
  207. package/src/parser/secure-yaml-parser.ts +273 -0
  208. package/src/performance/autoscaling.ts +495 -0
  209. package/src/performance/benchmark.ts +644 -0
  210. package/src/performance/index.ts +34 -0
  211. package/src/performance/monitor.ts +469 -0
  212. package/src/performance/streaming.ts +317 -0
  213. package/src/runtime/audit.ts +907 -0
  214. package/src/runtime/declarativeAgentRuntime.ts +836 -0
  215. package/src/runtime/isolatedRuntime.ts +572 -0
  216. package/src/runtime/schemaCompiler.ts +228 -0
  217. package/src/runtime/simpleRuntime.ts +201 -0
  218. package/src/security/dashboard.ts +462 -0
  219. package/src/security/hardening.ts +560 -0
  220. package/src/security/index.ts +439 -0
  221. package/src/security/monitor.ts +490 -0
  222. package/src/security/scanner.ts +368 -0
  223. package/src/security/score.ts +1138 -0
  224. package/src/security/threatDetector.ts +481 -0
  225. package/src/security/validation.ts +365 -0
  226. package/src/server/api/clientsRoute.ts +92 -0
  227. package/src/server/api/endpointsRoute.ts +97 -0
  228. package/src/server/api/graphql.ts +249 -0
  229. package/src/server/errors.ts +38 -0
  230. package/src/server/index.ts +6 -0
  231. package/src/server/kvStore.ts +152 -0
  232. package/src/server/runtimeSecurity.ts +102 -0
  233. package/src/server/types.ts +60 -0
  234. package/src/types/executionContext.ts +16 -0
  235. package/tools/seed.ts +365 -0
  236. package/tools/test-endpoints.ts +174 -0
@@ -0,0 +1,339 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.autoscaleSystem = exports.AutoscaleSystem = void 0;
4
+ exports.initializeAutoscaling = initializeAutoscaling;
5
+ exports.getAutoscalingConfig = getAutoscalingConfig;
6
+ /**
7
+ * Autoscaling System - Dynamic Pool Management
8
+ * Automatically adjusts isolate pool size based on performance metrics
9
+ */
10
+ const monitor_1 = require("./monitor");
11
+ class AutoscaleSystem {
12
+ constructor(runtimeManager, config) {
13
+ this.runtimeManager = runtimeManager;
14
+ this.config = config;
15
+ this.isRunning = false;
16
+ this.currentDecision = null;
17
+ this.scalingHistory = [];
18
+ this.lastScaleTime = 0;
19
+ this.defaultConfig = {
20
+ enabled: true,
21
+ minPoolSize: 5,
22
+ maxPoolSize: 100,
23
+ scaleUpThreshold: 55, // 55ms - slightly above target
24
+ scaleDownThreshold: 30, // 30ms - comfortable below target
25
+ scaleInterval: 30000, // 30 seconds
26
+ scaleUpFactor: 1.25, // Increase by 25%
27
+ scaleDownFactor: 0.8, // Decrease by 20%
28
+ metricsWindow: 60000, // 1 minute window
29
+ safetyMargin: 1.2, // 20% safety margin
30
+ };
31
+ }
32
+ /**
33
+ * Start autoscaling monitoring
34
+ */
35
+ start() {
36
+ if (this.isRunning)
37
+ return;
38
+ this.isRunning = true;
39
+ this.lastScaleTime = Date.now();
40
+ // Start monitoring loop
41
+ this.monitoringLoop();
42
+ }
43
+ /**
44
+ * Stop autoscaling monitoring
45
+ */
46
+ stop() {
47
+ this.isRunning = false;
48
+ }
49
+ /**
50
+ * Main monitoring loop
51
+ */
52
+ monitoringLoop() {
53
+ if (!this.isRunning)
54
+ return;
55
+ this.evaluateScalingDecision()
56
+ .then((decision) => {
57
+ if (decision.action !== "maintain") {
58
+ this.executeScalingDecision(decision);
59
+ }
60
+ this.currentDecision = decision;
61
+ this.scalingHistory.push(decision);
62
+ // Keep only last 100 decisions
63
+ if (this.scalingHistory.length > 100) {
64
+ this.scalingHistory.shift();
65
+ }
66
+ })
67
+ .catch((error) => {
68
+ console.error("Autoscaling evaluation error:", error);
69
+ });
70
+ // Schedule next evaluation
71
+ setTimeout(() => this.monitoringLoop(), this.config.scaleInterval);
72
+ }
73
+ /**
74
+ * Evaluate scaling decision based on current metrics
75
+ */
76
+ async evaluateScalingDecision() {
77
+ const currentPoolStats = this.runtimeManager.getPoolStats();
78
+ const performanceSnapshot = monitor_1.performanceMonitor.getSnapshot();
79
+ const recentMetricsWindow = monitor_1.performanceMonitor.getStats("executionTime", this.config.metricsWindow);
80
+ // Calculate current average metrics
81
+ const avgExecutionTime = recentMetricsWindow.average;
82
+ const successRate = performanceSnapshot.averages["successRate"] || 99.9;
83
+ const avgMemoryUsage = performanceSnapshot.averages["memoryUsage"] || 2.0;
84
+ // Calculate current pool utilization
85
+ const totalIsolates = currentPoolStats.totalIsolates;
86
+ const activeExecutions = currentPoolStats.activeExecutions;
87
+ const poolUtilization = activeExecutions / totalIsolates || 0;
88
+ const currentSize = totalIsolates;
89
+ let targetSize = currentSize;
90
+ let action = "maintain";
91
+ let reason = "Performance within acceptable ranges";
92
+ const now = Date.now();
93
+ // Prevent frequent scaling (rate limiting)
94
+ if (now - this.lastScaleTime < this.config.scaleInterval / 2) {
95
+ return {
96
+ action: "maintain",
97
+ currentSize,
98
+ targetSize: currentSize,
99
+ reason: "Rate limiting in effect",
100
+ timestamp: new Date(now),
101
+ metrics: {
102
+ avgExecutionTime,
103
+ avgMemoryUsage,
104
+ successRate,
105
+ poolUtilization,
106
+ },
107
+ };
108
+ }
109
+ // High memory usage detection
110
+ if (avgMemoryUsage > 5.0) {
111
+ // >5MB average usage
112
+ action = "scale_up";
113
+ targetSize = Math.min(this.config.maxPoolSize, Math.max(currentSize * this.config.safetyMargin, currentSize + 2));
114
+ reason = `High memory usage detected (${avgMemoryUsage.toFixed(1)}MB avg)`;
115
+ }
116
+ // Long execution time detection
117
+ else if (avgExecutionTime >
118
+ this.config.scaleUpThreshold * this.config.safetyMargin) {
119
+ action = "scale_up";
120
+ targetSize = Math.min(this.config.maxPoolSize, Math.ceil(currentSize * this.config.scaleUpFactor));
121
+ reason = `Execution time exceed threshold (${avgExecutionTime.toFixed(1)}ms > ${this.config.scaleUpThreshold}ms)`;
122
+ }
123
+ // High pool utilization detection
124
+ else if (poolUtilization > 0.8) {
125
+ action = "scale_up";
126
+ targetSize = Math.min(this.config.maxPoolSize, Math.ceil(currentSize * this.config.scaleUpFactor));
127
+ reason = `High pool utilization (${(poolUtilization * 100).toFixed(1)}%)`;
128
+ }
129
+ // Low pool utilization and fast execution
130
+ else if (avgExecutionTime < this.config.scaleDownThreshold &&
131
+ poolUtilization < 0.3 &&
132
+ currentSize > this.config.minPoolSize * 2) {
133
+ action = "scale_down";
134
+ targetSize = Math.max(this.config.minPoolSize, Math.ceil(currentSize * this.config.scaleDownFactor));
135
+ reason = `Low utilization and fast execution (${avgExecutionTime.toFixed(1)}ms < ${this.config.scaleDownThreshold}ms)`;
136
+ }
137
+ // Ensure targetSize is within bounds
138
+ targetSize = Math.max(this.config.minPoolSize, targetSize);
139
+ targetSize = Math.min(this.config.maxPoolSize, targetSize);
140
+ // If action is to scale but targetSize equals currentSize, maintain current size
141
+ if (action !== "maintain" && targetSize === currentSize) {
142
+ action = "maintain";
143
+ reason = "Target size equals current size";
144
+ }
145
+ return {
146
+ action,
147
+ currentSize,
148
+ targetSize,
149
+ reason,
150
+ timestamp: new Date(now),
151
+ metrics: {
152
+ avgExecutionTime,
153
+ avgMemoryUsage,
154
+ successRate,
155
+ poolUtilization,
156
+ },
157
+ };
158
+ }
159
+ /**
160
+ * Execute scaling decision
161
+ */
162
+ executeScalingDecision(decision) {
163
+ if (!this.config.enabled)
164
+ return;
165
+ const currentTime = Date.now();
166
+ const timeSinceLastScale = currentTime - this.lastScaleTime;
167
+ // Additional safety check for scaling frequency
168
+ if (timeSinceLastScale < this.config.scaleInterval / 3) {
169
+ return; // Too soon to scale again
170
+ }
171
+ console.log(`[AUTOSCALE] ${decision.action.toUpperCase()}: Current: ${decision.currentSize} -> Target: ${decision.targetSize}`);
172
+ console.log(`[AUTOSCALE] Reason: ${decision.reason}`);
173
+ console.log(`[AUTOSCALE] Metrics: Execution=${decision.metrics.avgExecutionTime.toFixed(1)}ms, Memory=${decision.metrics.avgMemoryUsage.toFixed(1)}MB, Utilization=${decision.metrics.poolUtilization.toFixed(1)}`);
174
+ if (decision.action === "scale_up") {
175
+ this.scaleUp(decision.targetSize);
176
+ }
177
+ else if (decision.action === "scale_down") {
178
+ this.scaleDown(decision.targetSize);
179
+ }
180
+ this.lastScaleTime = currentTime;
181
+ }
182
+ /**
183
+ * Scale up pool size
184
+ */
185
+ scaleUp(targetSize) {
186
+ const currentStats = this.runtimeManager.getPoolStats();
187
+ const currentSize = currentStats.totalIsolates;
188
+ // Validate scaling decisions
189
+ if (targetSize < currentSize || targetSize > this.config.maxPoolSize) {
190
+ console.warn(`[AUTOSCALE] Invalid scale-up target: ${targetSize} (current: ${currentSize}, max: ${this.config.maxPoolSize})`);
191
+ return;
192
+ }
193
+ // Pool scaling is handled by the runtime manager
194
+ console.log(`[AUTOSCALE] Scaling up from ${currentSize} to ${targetSize}`);
195
+ // The actual pool scaling would be implemented in the IsolatedRuntimeManager
196
+ // For now, we log the intention
197
+ console.log(`[AUTOSCALE EVENT] scale_up from: ${currentSize}, to: ${targetSize}`);
198
+ // Pool scaling logic would go here
199
+ }
200
+ /**
201
+ * Scale down pool size
202
+ */
203
+ scaleDown(targetSize) {
204
+ const currentStats = this.runtimeManager.getPoolStats();
205
+ const currentSize = currentStats.totalIsolates;
206
+ // Validate scaling decisions
207
+ if (targetSize > currentSize || targetSize < this.config.minPoolSize) {
208
+ console.warn(`[AUTOSCALE] Invalid scale-down target: ${targetSize} (current: ${currentSize}, min: ${this.config.minPoolSize})`);
209
+ return;
210
+ }
211
+ console.log(`[AUTOSCALE] Scaling down from ${currentSize} to ${targetSize}`);
212
+ console.log(`[AUTOSCALE] scale_down from: ${currentSize}, to: ${targetSize}`);
213
+ // Pool scaling logic would go here
214
+ }
215
+ /**
216
+ * Get current autoscaling status
217
+ */
218
+ getStatus() {
219
+ return {
220
+ isRunning: this.isRunning,
221
+ currentDecision: this.currentDecision,
222
+ lastScaleTime: new Date(this.lastScaleTime),
223
+ scalingHistory: [...this.scalingHistory],
224
+ config: { ...this.config },
225
+ };
226
+ }
227
+ /**
228
+ * Update autoscaling configuration
229
+ */
230
+ updateConfig(newConfig) {
231
+ this.config = { ...this.config, ...newConfig };
232
+ console.log("[AUTOSCALE] Configuration updated");
233
+ }
234
+ /**
235
+ * Get scaling recommendations
236
+ */
237
+ getRecommendations() {
238
+ const snapshot = monitor_1.performanceMonitor.getSnapshot();
239
+ const alerts = monitor_1.performanceMonitor.getAlerts(); // Use proper method
240
+ const currentStats = this.getCurrentStats();
241
+ const recommendations = [];
242
+ // High execution time recommendation
243
+ if (currentStats.avgExecutionTime > this.config.scaleUpThreshold) {
244
+ recommendations.push(`Execution time (${currentStats.avgExecutionTime.toFixed(1)}ms) exceeds scale-up threshold (${this.config.scaleUpThreshold}ms). Consider scaling up.`);
245
+ }
246
+ // Memory usage recommendation
247
+ if (currentStats.avgMemoryUsage > 3.0) {
248
+ recommendations.push(`High memory usage detected (${currentStats.avgMemoryUsage.toFixed(1)}MB). Review memory patterns and consider scaling adjustments.`);
249
+ }
250
+ // Critical violation recommendation
251
+ if (alerts.criticals.length > 5) {
252
+ recommendations.push(`Multiple critical violations detected (${alerts.criticals.length}). Immediate attention recommended.`);
253
+ }
254
+ return recommendations;
255
+ }
256
+ /**
257
+ * Get current performance stats for scaling decisions
258
+ */
259
+ getCurrentStats() {
260
+ const snapshot = monitor_1.performanceMonitor.getSnapshot();
261
+ return {
262
+ avgExecutionTime: snapshot.averages["executionTime"] || 50,
263
+ avgMemoryUsage: snapshot.averages["memoryUsage"] || 2,
264
+ successRate: snapshot.averages["successRate"] || 99.9,
265
+ };
266
+ }
267
+ /**
268
+ * Predict optimal pool size based on current metrics
269
+ */
270
+ predictOptimalPoolSize() {
271
+ const currentStats = this.runtimeManager.getPoolStats();
272
+ const currentSize = currentStats.totalIsolates;
273
+ const snapshot = monitor_1.performanceMonitor.getSnapshot();
274
+ const avgExecutionTime = snapshot.averages["executionTime"] || 50;
275
+ const poolUtilization = currentStats.activeExecutions / currentSize || 0;
276
+ let recommended = currentSize;
277
+ let confidence = "medium";
278
+ const factors = [];
279
+ // Performance-based recommendation
280
+ if (avgExecutionTime > this.config.scaleUpThreshold * 2) {
281
+ recommended = Math.ceil(currentSize * 1.5);
282
+ confidence = "high";
283
+ factors.push(`High execution time (${avgExecutionTime.toFixed(1)}ms)`);
284
+ }
285
+ else if (avgExecutionTime < this.config.scaleDownThreshold / 2) {
286
+ recommended = Math.max(this.config.minPoolSize, Math.floor(currentSize * 0.7));
287
+ factors.push(`Low execution time (${avgExecutionTime.toFixed(1)}ms)`);
288
+ }
289
+ // Utilization-based recommendation
290
+ if (poolUtilization > 0.9) {
291
+ recommended = Math.ceil(recommended * 1.2);
292
+ confidence = "high";
293
+ factors.push(`High pool utilization (${(poolUtilization * 100).toFixed(1)}%)`);
294
+ }
295
+ else if (poolUtilization < 0.2) {
296
+ recommended = Math.floor(recommended * 0.8);
297
+ factors.push(`Low pool utilization (${(poolUtilization * 100).toFixed(1)}%)`);
298
+ }
299
+ // Ensure bounds
300
+ recommended = Math.max(this.config.minPoolSize, recommended);
301
+ recommended = Math.min(this.config.maxPoolSize, recommended);
302
+ return {
303
+ recommended,
304
+ current: currentSize,
305
+ confidence,
306
+ factors,
307
+ };
308
+ }
309
+ }
310
+ exports.AutoscaleSystem = AutoscaleSystem;
311
+ // Global autoscaling instance
312
+ exports.autoscaleSystem = null;
313
+ function initializeAutoscaling(runtimeManager, config) {
314
+ const baseConfig = {
315
+ enabled: true,
316
+ minPoolSize: 5,
317
+ maxPoolSize: 100,
318
+ scaleUpThreshold: 55,
319
+ scaleDownThreshold: 30,
320
+ scaleInterval: 30000,
321
+ scaleUpFactor: 1.25,
322
+ scaleDownFactor: 0.8,
323
+ metricsWindow: 60000,
324
+ safetyMargin: 1.2,
325
+ };
326
+ // Merge with default config
327
+ const mergedConfig = {
328
+ ...baseConfig,
329
+ ...config,
330
+ };
331
+ exports.autoscaleSystem = new AutoscaleSystem(runtimeManager, mergedConfig);
332
+ return exports.autoscaleSystem;
333
+ }
334
+ // Make config accessible
335
+ function getAutoscalingConfig() {
336
+ return exports.autoscaleSystem ? exports.autoscaleSystem.getStatus().config : null;
337
+ }
338
+ exports.default = AutoscaleSystem;
339
+ //# sourceMappingURL=autoscaling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autoscaling.js","sourceRoot":"","sources":["../../src/performance/autoscaling.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ import { PerformanceMonitor } from "./monitor";
2
+ export interface BenchmarkResult {
3
+ name: string;
4
+ executionTime: number;
5
+ memoryUsed: number;
6
+ successCount: number;
7
+ failureCount: number;
8
+ securityScore: number;
9
+ timestamp: Date;
10
+ }
11
+ export interface BenchmarkSuite {
12
+ name: string;
13
+ description: string;
14
+ testCases: TestCase[];
15
+ }
16
+ export interface TestCase {
17
+ name: string;
18
+ code: string;
19
+ expectedResult?: any;
20
+ context?: Record<string, any>;
21
+ securityProfile?: string;
22
+ timeout?: number;
23
+ memoryLimit?: number;
24
+ }
25
+ export declare class BenchmarkSystem {
26
+ private performanceMonitor;
27
+ private readonly sampleSize;
28
+ private baselineResults;
29
+ private isolateResults;
30
+ private currentSuite?;
31
+ constructor(performanceMonitor: PerformanceMonitor, sampleSize?: number);
32
+ /**
33
+ * Create standard benchmark test cases
34
+ */
35
+ private createStandardTestSuite;
36
+ /**
37
+ * Create security-focused test cases
38
+ */
39
+ private createSecurityTestSuite;
40
+ /**
41
+ * Create memory-intensive test cases
42
+ */
43
+ private createMemoryIntensiveSuite;
44
+ /**
45
+ * Create performance targets test suite
46
+ */
47
+ private createTargetedSuite;
48
+ /**
49
+ * Run comprehensive benchmark suite
50
+ */
51
+ runComprehensiveBenchmark(): Promise<{
52
+ baseline: BenchmarkResult[];
53
+ isolated: BenchmarkResult[];
54
+ comparison: {
55
+ executionTimeRatio: number;
56
+ memoryRatio: number;
57
+ successRateRatio: number;
58
+ summary: string;
59
+ };
60
+ }>;
61
+ /**
62
+ * Run baseline execution (standard runtime)
63
+ */
64
+ private runSuiteBaseline;
65
+ /**
66
+ * Run single baseline test case
67
+ */
68
+ private runTestCaseBaseline;
69
+ /**
70
+ * Execute baseline code safely
71
+ */
72
+ private executeBaselineCode;
73
+ /**
74
+ * Run isolated execution benchmark
75
+ */
76
+ private runSuiteIsolated;
77
+ /**
78
+ * Run single isolated test case
79
+ */
80
+ private runTestCaseIsolated;
81
+ /**
82
+ * Generate comparison analysis
83
+ */
84
+ private generateComparison;
85
+ /**
86
+ * Generate performance report
87
+ */
88
+ generateReport(baseline: BenchmarkResult[], isolated: BenchmarkResult[]): string;
89
+ /**
90
+ * Quick performance check against targets
91
+ */
92
+ quickHealthCheck(): {
93
+ isHealthy: boolean;
94
+ issues: string[];
95
+ metrics: {
96
+ avgExecutionTime: number;
97
+ avgMemoryUsage: number;
98
+ successRate: number;
99
+ };
100
+ };
101
+ }
102
+ export declare let benchmarkSystem: BenchmarkSystem | null;
103
+ export declare function initializeBenchmarks(performanceMonitor: PerformanceMonitor): BenchmarkSystem;
104
+ //# sourceMappingURL=benchmark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"benchmark.d.ts","sourceRoot":"","sources":["../../src/performance/benchmark.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,eAAe;IAMxB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAN7B,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,cAAc,CAAyB;IAC/C,OAAO,CAAC,YAAY,CAAC,CAAiB;gBAG5B,kBAAkB,EAAE,kBAAkB,EAC7B,UAAU,SAAM;IAGnC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA2D/B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA2D/B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA2DlC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAqE3B;;OAEG;IACU,yBAAyB,IAAI,OAAO,CAAC;QAChD,QAAQ,EAAE,eAAe,EAAE,CAAC;QAC5B,QAAQ,EAAE,eAAe,EAAE,CAAC;QAC5B,UAAU,EAAE;YACV,kBAAkB,EAAE,MAAM,CAAC;YAC3B,WAAW,EAAE,MAAM,CAAC;YACpB,gBAAgB,EAAE,MAAM,CAAC;YACzB,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,CAAC;IAoCF;;OAEG;YACW,gBAAgB;IAa9B;;OAEG;YACW,mBAAmB;IA8CjC;;OAEG;YACW,mBAAmB;IAMjC;;OAEG;YACW,gBAAgB;IAa9B;;OAEG;YACW,mBAAmB;IAiEjC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiE1B;;OAEG;IACI,cAAc,CACnB,QAAQ,EAAE,eAAe,EAAE,EAC3B,QAAQ,EAAE,eAAe,EAAE,GAC1B,MAAM;IA4BT;;OAEG;IACI,gBAAgB,IAAI;QACzB,SAAS,EAAE,OAAO,CAAC;QACnB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE;YACP,gBAAgB,EAAE,MAAM,CAAC;YACzB,cAAc,EAAE,MAAM,CAAC;YACvB,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC;KACH;CAaF;AAGD,eAAO,IAAI,eAAe,EAAE,eAAe,GAAG,IAAW,CAAC;AAE1D,wBAAgB,oBAAoB,CAClC,kBAAkB,EAAE,kBAAkB,GACrC,eAAe,CAGjB"}