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,126 @@
1
+ export interface PerformanceMetric {
2
+ metric: string;
3
+ value: number;
4
+ timestamp: Date;
5
+ executionId: string;
6
+ tenantId?: string;
7
+ context?: any;
8
+ }
9
+ export interface PerformanceSnapshot {
10
+ timestamp: Date;
11
+ metrics: Record<string, number[]>;
12
+ averages: Record<string, number>;
13
+ violations: Violation[];
14
+ recommendations: Recommendation[];
15
+ }
16
+ export interface Violation {
17
+ metric: string;
18
+ value: number;
19
+ target: number;
20
+ severity: "warning" | "critical";
21
+ timestamp: Date;
22
+ executionId: string;
23
+ }
24
+ export interface Recommendation {
25
+ type: "performance" | "memory" | "security" | "scaling";
26
+ priority: "high" | "medium" | "low";
27
+ description: string;
28
+ action: string;
29
+ estimatedImpact: number;
30
+ }
31
+ export interface BenchmarkResult {
32
+ label: string;
33
+ iterations: number;
34
+ averageTime: number;
35
+ minTime: number;
36
+ maxTime: number;
37
+ payloadSize?: number;
38
+ }
39
+ export declare class PerformanceMonitor {
40
+ private metrics;
41
+ private violations;
42
+ private recommendations;
43
+ private readonly retentionPeriod;
44
+ private readonly alertThreshold;
45
+ private readonly criticalThreshold;
46
+ constructor();
47
+ /**
48
+ * Record a performance metric
49
+ */
50
+ recordMetric(metric: PerformanceMetric): void;
51
+ /**
52
+ * Record execution performance metrics
53
+ */
54
+ recordExecution(executionId: string, executionTime: number, memoryUsed: number, tenantId?: string): void;
55
+ /**
56
+ * Simple benchmarking helper so downstream modules can compare strategies.
57
+ */
58
+ benchmark<T>(fn: () => Promise<T> | T, label: string, iterations?: number, payloadSize?: number): Promise<BenchmarkResult>;
59
+ /**
60
+ * Check for performance violations
61
+ */
62
+ private checkViolation;
63
+ /**
64
+ * Log violations for monitoring
65
+ */
66
+ private logViolation;
67
+ /**
68
+ * Generate performance recommendations
69
+ */
70
+ private generateRecommendations;
71
+ /**
72
+ * Get current performance snapshot
73
+ */
74
+ getSnapshot(): PerformanceSnapshot;
75
+ /**
76
+ * Get performance statistics for a specific period
77
+ */
78
+ getStats(metric: string, period?: number): {
79
+ average: number;
80
+ min: number;
81
+ max: number;
82
+ count: number;
83
+ violations: number;
84
+ };
85
+ /**
86
+ * Check if performance is within acceptable ranges
87
+ */
88
+ isPerformanceHealthy(): boolean;
89
+ /**
90
+ * Get performance alerts
91
+ */
92
+ getAlerts(): {
93
+ warnings: Violation[];
94
+ criticals: Violation[];
95
+ };
96
+ /**
97
+ * Cleanup metrics older than retention period
98
+ */
99
+ private cleanupOldMetrics;
100
+ /**
101
+ * Start periodic cleanup interval
102
+ */
103
+ private startCleanupInterval;
104
+ /**
105
+ * Get performance summary
106
+ */
107
+ getPerformanceSummary(): {
108
+ overall: "excellent" | "good" | "warning" | "critical";
109
+ executionTime: number;
110
+ memoryUsage: number;
111
+ successRate: number;
112
+ alerts: number;
113
+ recommendations: number;
114
+ };
115
+ /**
116
+ * Dump performance data for analysis
117
+ */
118
+ dumpData(): string;
119
+ /**
120
+ * Dispose of monitor resources
121
+ */
122
+ dispose(): void;
123
+ }
124
+ export declare const performanceMonitor: PerformanceMonitor;
125
+ export default PerformanceMonitor;
126
+ //# sourceMappingURL=monitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../src/performance/monitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,324 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.performanceMonitor = exports.PerformanceMonitor = void 0;
4
+ /**
5
+ * Performance Monitor - Execution Performance Tracking
6
+ * Monitors execution performance with <50ms target and memory tracking
7
+ */
8
+ const node_perf_hooks_1 = require("node:perf_hooks");
9
+ const config_1 = require("../config");
10
+ class PerformanceMonitor {
11
+ constructor() {
12
+ this.metrics = new Map();
13
+ this.violations = [];
14
+ this.recommendations = [];
15
+ this.retentionPeriod = 60 * 60 * 1000; // 1 hour
16
+ this.alertThreshold = 0.8; // 80% of target
17
+ this.criticalThreshold = 1.5; // 150% of target
18
+ this.startCleanupInterval();
19
+ }
20
+ /**
21
+ * Record a performance metric
22
+ */
23
+ recordMetric(metric) {
24
+ if (!this.metrics.has(metric.metric)) {
25
+ this.metrics.set(metric.metric, []);
26
+ }
27
+ const metrics = this.metrics.get(metric.metric);
28
+ metrics.push(metric);
29
+ // Check for violations
30
+ const target = config_1.performanceTargets.find((t) => t.metric === metric.metric);
31
+ if (target) {
32
+ const violation = this.checkViolation(metric, target);
33
+ if (violation) {
34
+ this.violations.push(violation);
35
+ this.logViolation(violation);
36
+ }
37
+ }
38
+ // Keep only metrics within retention period
39
+ this.cleanupOldMetrics(metric.metric, this.retentionPeriod);
40
+ }
41
+ /**
42
+ * Record execution performance metrics
43
+ */
44
+ recordExecution(executionId, executionTime, memoryUsed, tenantId) {
45
+ const timestamp = new Date();
46
+ // Record execution time
47
+ this.recordMetric({
48
+ metric: "executionTime",
49
+ value: executionTime,
50
+ timestamp,
51
+ executionId,
52
+ tenantId,
53
+ });
54
+ // Record memory usage
55
+ this.recordMetric({
56
+ metric: "memoryUsage",
57
+ value: memoryUsed,
58
+ timestamp,
59
+ executionId,
60
+ tenantId,
61
+ });
62
+ // Generate recommendations based on metrics
63
+ this.generateRecommendations(executionTime, memoryUsed, tenantId);
64
+ }
65
+ /**
66
+ * Simple benchmarking helper so downstream modules can compare strategies.
67
+ */
68
+ async benchmark(fn, label, iterations = 1, payloadSize) {
69
+ if (iterations < 1) {
70
+ throw new Error("Benchmark iterations must be >= 1");
71
+ }
72
+ const samples = [];
73
+ for (let i = 0; i < iterations; i++) {
74
+ const start = node_perf_hooks_1.performance.now();
75
+ await Promise.resolve(fn());
76
+ const duration = node_perf_hooks_1.performance.now() - start;
77
+ samples.push(duration);
78
+ this.recordMetric({
79
+ metric: "benchmark",
80
+ value: duration,
81
+ timestamp: new Date(),
82
+ executionId: `${label}-${i}`,
83
+ });
84
+ }
85
+ const averageTime = samples.reduce((total, value) => total + value, 0) / samples.length;
86
+ return {
87
+ label,
88
+ iterations,
89
+ averageTime,
90
+ minTime: Math.min(...samples),
91
+ maxTime: Math.max(...samples),
92
+ payloadSize,
93
+ };
94
+ }
95
+ /**
96
+ * Check for performance violations
97
+ */
98
+ checkViolation(metric, target) {
99
+ const threshold = target.threshold;
100
+ const isViolation = metric.value > threshold;
101
+ if (!isViolation)
102
+ return null;
103
+ const severity = metric.value > target.target * this.criticalThreshold
104
+ ? "critical"
105
+ : "warning";
106
+ return {
107
+ metric: metric.metric,
108
+ value: metric.value,
109
+ target: target.target,
110
+ severity,
111
+ timestamp: metric.timestamp,
112
+ executionId: metric.executionId,
113
+ };
114
+ }
115
+ /**
116
+ * Log violations for monitoring
117
+ */
118
+ logViolation(violation) {
119
+ const message = `[PERFORMANCE_${violation.severity.toUpperCase()}] ${violation.metric}: ${violation.value} ${config_1.performanceTargets
120
+ .find((t) => t.metric === violation.metric)
121
+ ?.unit?.toLowerCase()} (target: ${violation.target}) - Execution ID: ${violation.executionId}`;
122
+ console.log(`[${violation.timestamp.toISOString()}] ${message}`);
123
+ }
124
+ /**
125
+ * Generate performance recommendations
126
+ */
127
+ generateRecommendations(executionTime, memoryUsed, tenantId) {
128
+ const executionTimeTarget = config_1.performanceTargets.find((t) => t.metric === "executionTime")?.target ||
129
+ 50;
130
+ const memoryTarget = config_1.performanceTargets.find((t) => t.metric === "memoryUsage")?.target || 2;
131
+ // Execution time recommendations
132
+ if (executionTime > executionTimeTarget * 1.2) {
133
+ this.recommendations.push({
134
+ type: "performance",
135
+ priority: "high",
136
+ description: `Execution time ${executionTime}ms exceeds target by ${(((executionTime - executionTimeTarget) / executionTimeTarget) *
137
+ 100).toFixed(1)}%`,
138
+ action: "Consider optimizing code complexity or splitting execution",
139
+ estimatedImpact: -30, // 30% improvement
140
+ });
141
+ }
142
+ // Memory usage recommendations
143
+ if (memoryUsed > memoryTarget * 1.5) {
144
+ this.recommendations.push({
145
+ type: "memory",
146
+ priority: "medium",
147
+ description: `Memory usage ${memoryUsed}MB exceeds target by ${(((memoryUsed - memoryTarget) / memoryTarget) *
148
+ 100).toFixed(1)}%`,
149
+ action: "Review memory allocation patterns and object cleanup",
150
+ estimatedImpact: -25,
151
+ });
152
+ }
153
+ // Pool scaling recommendations
154
+ if (executionTime > executionTimeTarget * 1.5) {
155
+ this.recommendations.push({
156
+ type: "scaling",
157
+ priority: "medium",
158
+ description: "Pool may need scaling due to high execution times",
159
+ action: "Consider increasing pool size or optimizing isolation setup",
160
+ estimatedImpact: -20,
161
+ });
162
+ }
163
+ }
164
+ /**
165
+ * Get current performance snapshot
166
+ */
167
+ getSnapshot() {
168
+ const snapshot = {
169
+ timestamp: new Date(),
170
+ metrics: {},
171
+ averages: {},
172
+ violations: [...this.violations],
173
+ recommendations: [...this.recommendations],
174
+ };
175
+ // Calculate averages for each metric
176
+ for (const target of config_1.performanceTargets) {
177
+ const metrics = this.metrics.get(target.metric) || [];
178
+ if (metrics.length > 0) {
179
+ const values = metrics.map((m) => m.value);
180
+ const average = values.reduce((a, b) => a + b, 0) / values.length;
181
+ snapshot.metrics[target.metric] = values;
182
+ snapshot.averages[target.metric] = Math.round(average * 100) / 100;
183
+ }
184
+ }
185
+ return snapshot;
186
+ }
187
+ /**
188
+ * Get performance statistics for a specific period
189
+ */
190
+ getStats(metric, period = 5 * 60 * 1000) {
191
+ const metrics = this.metrics.get(metric) || [];
192
+ const cutoff = new Date(Date.now() - period);
193
+ const recentMetrics = metrics.filter((m) => m.timestamp >= cutoff);
194
+ if (recentMetrics.length === 0) {
195
+ return {
196
+ average: 0,
197
+ min: 0,
198
+ max: 0,
199
+ count: 0,
200
+ violations: 0,
201
+ };
202
+ }
203
+ const values = recentMetrics.map((m) => m.value);
204
+ const target = config_1.performanceTargets.find((t) => t.metric === metric);
205
+ return {
206
+ average: values.reduce((a, b) => a + b, 0) / recentMetrics.length,
207
+ min: Math.min(...values),
208
+ max: Math.max(...values),
209
+ count: recentMetrics.length,
210
+ violations: this.violations.filter((v) => {
211
+ return (v.metric === metric &&
212
+ v.timestamp >= cutoff &&
213
+ v.value > (target?.target || 0));
214
+ }).length,
215
+ };
216
+ }
217
+ /**
218
+ * Check if performance is within acceptable ranges
219
+ */
220
+ isPerformanceHealthy() {
221
+ const snapshot = this.getSnapshot();
222
+ // Check if any critical violations in last 5 minutes
223
+ const recentViolations = this.violations.filter((v) => v.timestamp >= new Date(Date.now() - 5 * 60 * 1000) &&
224
+ v.severity === "critical");
225
+ if (recentViolations.length > 3) {
226
+ return false; // More than 3 critical violations
227
+ }
228
+ // Check if averages are within acceptable ranges
229
+ for (const target of config_1.performanceTargets) {
230
+ const average = snapshot.averages[target.metric];
231
+ if (average && average > target.target * this.alertThreshold) {
232
+ return false; // Performance target exceeded
233
+ }
234
+ }
235
+ return true;
236
+ }
237
+ /**
238
+ * Get performance alerts
239
+ */
240
+ getAlerts() {
241
+ const now = new Date();
242
+ const recentViolations = this.violations.filter((v) => v.timestamp >= new Date(now.getTime() - 15 * 60 * 1000) // Last 15 minutes
243
+ );
244
+ return {
245
+ warnings: recentViolations.filter((v) => v.severity === "warning"),
246
+ criticals: recentViolations.filter((v) => v.severity === "critical"),
247
+ };
248
+ }
249
+ /**
250
+ * Cleanup metrics older than retention period
251
+ */
252
+ cleanupOldMetrics(metric, maxAge) {
253
+ const metrics = this.metrics.get(metric) || [];
254
+ const cutoff = new Date(Date.now() - maxAge);
255
+ const filteredMetrics = metrics.filter((m) => m.timestamp >= cutoff);
256
+ this.metrics.set(metric, filteredMetrics);
257
+ }
258
+ /**
259
+ * Start periodic cleanup interval
260
+ */
261
+ startCleanupInterval() {
262
+ setInterval(() => {
263
+ for (const [metric] of this.metrics) {
264
+ this.cleanupOldMetrics(metric, this.retentionPeriod);
265
+ }
266
+ // Remove old violations
267
+ const cutoff = new Date(Date.now() - this.retentionPeriod);
268
+ this.violations = this.violations.filter((v) => v.timestamp >= cutoff);
269
+ // Remove old recommendations
270
+ if (this.recommendations.length > 100) {
271
+ this.recommendations = this.recommendations.slice(-100);
272
+ }
273
+ }, this.retentionPeriod / 2);
274
+ }
275
+ /**
276
+ * Get performance summary
277
+ */
278
+ getPerformanceSummary() {
279
+ const snapshot = this.getSnapshot();
280
+ const alerts = this.getAlerts();
281
+ // Calculate overall performance rating
282
+ let overall = "excellent";
283
+ if (alerts.criticals.length > 0)
284
+ overall = "critical";
285
+ else if (alerts.warnings.length > 3)
286
+ overall = "warning";
287
+ else if (alerts.warnings.length > 0)
288
+ overall = "good";
289
+ return {
290
+ overall,
291
+ executionTime: snapshot.averages["executionTime"] || 0,
292
+ memoryUsage: snapshot.averages["memoryUsage"] || 0,
293
+ successRate: snapshot.averages["successRate"] || 99.9,
294
+ alerts: alerts.warnings.length + alerts.criticals.length,
295
+ recommendations: this.recommendations.length,
296
+ };
297
+ }
298
+ /**
299
+ * Dump performance data for analysis
300
+ */
301
+ dumpData() {
302
+ const snapshot = this.getSnapshot();
303
+ const summary = this.getPerformanceSummary();
304
+ return JSON.stringify({
305
+ snapshot,
306
+ summary,
307
+ violations: this.violations.slice(-50), // Last 50 violations
308
+ recommendations: this.recommendations.slice(-20), // Last 20 recommendations
309
+ }, null, 2);
310
+ }
311
+ /**
312
+ * Dispose of monitor resources
313
+ */
314
+ dispose() {
315
+ this.metrics.clear();
316
+ this.violations = [];
317
+ this.recommendations = [];
318
+ }
319
+ }
320
+ exports.PerformanceMonitor = PerformanceMonitor;
321
+ // Singleton instance
322
+ exports.performanceMonitor = new PerformanceMonitor();
323
+ exports.default = PerformanceMonitor;
324
+ //# sourceMappingURL=monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/performance/monitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import { Readable } from 'stream';
2
+ import { SecureYamlParser } from '../parser/secure-yaml-parser';
3
+ /**
4
+ * Interface para opções de streaming
5
+ */
6
+ export interface StreamingOptions {
7
+ chunkSize?: number;
8
+ maxChunkSize?: number;
9
+ validateChunkSize?: boolean;
10
+ enableStreaming?: boolean;
11
+ lazyParsing?: boolean;
12
+ parallelProcessing?: boolean;
13
+ }
14
+ /**
15
+ * Parser YAML com suporte a streaming para arquivos grandes
16
+ */
17
+ export declare class StreamingYamlParser extends SecureYamlParser {
18
+ private readonly streamingOptions;
19
+ constructor(options?: {
20
+ config?: any;
21
+ streaming?: StreamingOptions;
22
+ });
23
+ /**
24
+ * Parse arquivo YAML via streaming
25
+ */
26
+ parseFileStreaming(filePath: string): Promise<any>;
27
+ /**
28
+ * Parse YAML a partir de stream
29
+ */
30
+ parseStream(stream: Readable): Promise<any>;
31
+ /**
32
+ * Parse YAML com lazy loading e streaming
33
+ */
34
+ parseStreamingLazy(yamlContent: string): Promise<any>;
35
+ /**
36
+ * Parse YAML em chunks para não bloquear o event loop
37
+ */
38
+ private parseSecureChunked;
39
+ /**
40
+ * Parser otimizado para streams de entrada com configurações pré-definidas
41
+ */
42
+ parseStreamOptimized(content: string | Readable): Promise<any>;
43
+ /**
44
+ * Otimização para arquivos grandes (> 1MB)
45
+ */
46
+ private parseStreamingLarge;
47
+ /**
48
+ * Segmenta conteúdo grande em partes manejáveis
49
+ */
50
+ private segmentLargeContent;
51
+ /**
52
+ * Processa segmento de forma assíncrona
53
+ */
54
+ private parseSegmentAsync;
55
+ /**
56
+ * Merge resultados de múltiplos segmentos (simplificado)
57
+ */
58
+ private mergeResults;
59
+ /**
60
+ * Wrapper com monitoramento de performance para parsing de arquivos grandes
61
+ */
62
+ parseFileWithMonitoring(filePath: string): Promise<{
63
+ result: any;
64
+ metrics: any;
65
+ }>;
66
+ }
67
+ /**
68
+ * Wrapper para parsing com streaming
69
+ */
70
+ export declare function parseYamlStreaming(content: string | Readable, config?: {
71
+ streaming?: StreamingOptions;
72
+ parser?: any;
73
+ }): Promise<any>;
74
+ /**
75
+ * Benchmark compartivo entre parsing normal e streaming
76
+ */
77
+ export declare function benchmarkStreamingComparison(content: string, iterations?: number): Promise<{
78
+ normal: any;
79
+ streaming: any;
80
+ }>;
81
+ export declare function parseSecureYaml(content: string): Promise<any>;
82
+ //# sourceMappingURL=streaming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../src/performance/streaming.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGlC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,gBAAgB;IACvD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA6B;gBAElD,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,GAAG,CAAC;QAAC,SAAS,CAAC,EAAE,gBAAgB,CAAA;KAAO;IAaxE;;OAEG;IACG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAaxD;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAgDjD;;OAEG;IACG,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAkB3D;;OAEG;YACW,kBAAkB;IAqBhC;;OAEG;IACG,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAQpE;;OAEG;YACW,mBAAmB;IA8BjC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAW3B;;OAEG;YACW,iBAAiB;IAa/B;;OAEG;IACH,OAAO,CAAC,YAAY;IAQpB;;OAEG;IACG,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,GAAG,CAAC;QAAC,OAAO,EAAE,GAAG,CAAA;KAAE,CAAC;CAyBxF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,GAAG,QAAQ,EAC1B,MAAM,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,CAAA;CAAE,GACtD,OAAO,CAAC,GAAG,CAAC,CAQd;AAED;;GAEG;AACH,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,MAAY,GACvB,OAAO,CAAC;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,SAAS,EAAE,GAAG,CAAA;CAAE,CAAC,CAwB1C;AAGD,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAGnE"}