snow-flow 1.1.76 → 1.1.78

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 (234) hide show
  1. package/.claude-flow/queen/queen-memory.db +0 -0
  2. package/CLAUDE.md +34 -5
  3. package/README.md +256 -384
  4. package/dist/agents/base-agent.d.ts +92 -0
  5. package/dist/agents/base-agent.d.ts.map +1 -0
  6. package/dist/agents/base-agent.js +228 -0
  7. package/dist/agents/base-agent.js.map +1 -0
  8. package/dist/agents/coordinator.d.ts +200 -0
  9. package/dist/agents/coordinator.d.ts.map +1 -0
  10. package/dist/agents/coordinator.js +775 -0
  11. package/dist/agents/coordinator.js.map +1 -0
  12. package/dist/agents/flow-builder-agent.d.ts +18 -0
  13. package/dist/agents/flow-builder-agent.d.ts.map +1 -0
  14. package/dist/agents/flow-builder-agent.js +536 -0
  15. package/dist/agents/flow-builder-agent.js.map +1 -0
  16. package/dist/agents/index.d.ts +18 -0
  17. package/dist/agents/index.d.ts.map +1 -0
  18. package/dist/agents/index.js +61 -0
  19. package/dist/agents/index.js.map +1 -0
  20. package/dist/agents/queen-agent-example.d.ts +23 -0
  21. package/dist/agents/queen-agent-example.d.ts.map +1 -0
  22. package/dist/agents/queen-agent-example.js +241 -0
  23. package/dist/agents/queen-agent-example.js.map +1 -0
  24. package/dist/agents/queen-agent.d.ts +180 -0
  25. package/dist/agents/queen-agent.d.ts.map +1 -0
  26. package/dist/agents/queen-agent.js +909 -0
  27. package/dist/agents/queen-agent.js.map +1 -0
  28. package/dist/agents/queen-agent.test.d.ts +6 -0
  29. package/dist/agents/queen-agent.test.d.ts.map +1 -0
  30. package/dist/agents/queen-agent.test.js.map +1 -0
  31. package/dist/agents/script-writer-agent.d.ts +22 -0
  32. package/dist/agents/script-writer-agent.d.ts.map +1 -0
  33. package/dist/agents/script-writer-agent.js +695 -0
  34. package/dist/agents/script-writer-agent.js.map +1 -0
  35. package/dist/agents/security-agent.d.ts +23 -0
  36. package/dist/agents/security-agent.d.ts.map +1 -0
  37. package/dist/agents/security-agent.js +619 -0
  38. package/dist/agents/security-agent.js.map +1 -0
  39. package/dist/agents/test-agent.d.ts +26 -0
  40. package/dist/agents/test-agent.d.ts.map +1 -0
  41. package/dist/agents/test-agent.js +735 -0
  42. package/dist/agents/test-agent.js.map +1 -0
  43. package/dist/agents/test-agents.d.ts +7 -0
  44. package/dist/agents/test-agents.d.ts.map +1 -0
  45. package/dist/agents/test-agents.js +65 -0
  46. package/dist/agents/test-agents.js.map +1 -0
  47. package/dist/agents/widget-creator-agent.d.ts +18 -0
  48. package/dist/agents/widget-creator-agent.d.ts.map +1 -0
  49. package/dist/agents/widget-creator-agent.js +440 -0
  50. package/dist/agents/widget-creator-agent.js.map +1 -0
  51. package/dist/cli/snow-flow-cli-integration.d.ts +30 -0
  52. package/dist/cli/snow-flow-cli-integration.d.ts.map +1 -0
  53. package/dist/cli/snow-flow-cli-integration.js +385 -0
  54. package/dist/cli/snow-flow-cli-integration.js.map +1 -0
  55. package/dist/cli.js +466 -150
  56. package/dist/cli.js.map +1 -1
  57. package/dist/config/snow-flow-config.d.ts +1454 -0
  58. package/dist/config/snow-flow-config.d.ts.map +1 -0
  59. package/dist/config/snow-flow-config.js +403 -0
  60. package/dist/config/snow-flow-config.js.map +1 -0
  61. package/dist/health/system-health.d.ts +123 -0
  62. package/dist/health/system-health.d.ts.map +1 -0
  63. package/dist/health/system-health.js +580 -0
  64. package/dist/health/system-health.js.map +1 -0
  65. package/dist/index.d.ts +12 -1
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +19 -3
  68. package/dist/index.js.map +1 -1
  69. package/dist/mcp/servicenow-deployment-mcp-refactored.d.ts +58 -0
  70. package/dist/mcp/servicenow-deployment-mcp-refactored.d.ts.map +1 -0
  71. package/dist/mcp/servicenow-deployment-mcp-refactored.js +651 -0
  72. package/dist/mcp/servicenow-deployment-mcp-refactored.js.map +1 -0
  73. package/dist/mcp/servicenow-intelligent-mcp-refactored.d.ts +43 -0
  74. package/dist/mcp/servicenow-intelligent-mcp-refactored.d.ts.map +1 -0
  75. package/dist/mcp/servicenow-intelligent-mcp-refactored.js +576 -0
  76. package/dist/mcp/servicenow-intelligent-mcp-refactored.js.map +1 -0
  77. package/dist/mcp/servicenow-intelligent-mcp.d.ts +102 -1
  78. package/dist/mcp/servicenow-intelligent-mcp.d.ts.map +1 -1
  79. package/dist/mcp/servicenow-intelligent-mcp.js +2 -0
  80. package/dist/mcp/servicenow-intelligent-mcp.js.map +1 -1
  81. package/dist/mcp/shared/agent-context-provider.d.ts +77 -0
  82. package/dist/mcp/shared/agent-context-provider.d.ts.map +1 -0
  83. package/dist/mcp/shared/agent-context-provider.js +292 -0
  84. package/dist/mcp/shared/agent-context-provider.js.map +1 -0
  85. package/dist/mcp/shared/base-mcp-server.d.ts +97 -0
  86. package/dist/mcp/shared/base-mcp-server.d.ts.map +1 -0
  87. package/dist/mcp/shared/base-mcp-server.js +216 -0
  88. package/dist/mcp/shared/base-mcp-server.js.map +1 -0
  89. package/dist/mcp/shared/mcp-memory-manager.d.ts +87 -0
  90. package/dist/mcp/shared/mcp-memory-manager.d.ts.map +1 -0
  91. package/dist/mcp/shared/mcp-memory-manager.js +423 -0
  92. package/dist/mcp/shared/mcp-memory-manager.js.map +1 -0
  93. package/dist/memory/index.d.ts +9 -0
  94. package/dist/memory/index.d.ts.map +1 -0
  95. package/dist/memory/index.js +20 -0
  96. package/dist/memory/index.js.map +1 -0
  97. package/dist/memory/mcp-integration-example.d.ts +6 -0
  98. package/dist/memory/mcp-integration-example.d.ts.map +1 -0
  99. package/dist/memory/mcp-integration-example.js +282 -0
  100. package/dist/memory/mcp-integration-example.js.map +1 -0
  101. package/dist/memory/memory-client.d.ts +184 -0
  102. package/dist/memory/memory-client.d.ts.map +1 -0
  103. package/dist/memory/memory-client.js +325 -0
  104. package/dist/memory/memory-client.js.map +1 -0
  105. package/dist/memory/memory-operations.d.ts +170 -0
  106. package/dist/memory/memory-operations.d.ts.map +1 -0
  107. package/dist/memory/memory-operations.js +639 -0
  108. package/dist/memory/memory-operations.js.map +1 -0
  109. package/dist/memory/memory-system.d.ts +118 -0
  110. package/dist/memory/memory-system.d.ts.map +1 -0
  111. package/dist/memory/memory-system.js +477 -0
  112. package/dist/memory/memory-system.js.map +1 -0
  113. package/dist/memory/memory-test.d.ts +6 -0
  114. package/dist/memory/memory-test.d.ts.map +1 -0
  115. package/dist/memory/memory-test.js +162 -0
  116. package/dist/memory/memory-test.js.map +1 -0
  117. package/dist/memory/swarm-memory.d.ts +135 -0
  118. package/dist/memory/swarm-memory.d.ts.map +1 -0
  119. package/dist/memory/swarm-memory.js +378 -0
  120. package/dist/memory/swarm-memory.js.map +1 -0
  121. package/dist/monitoring/performance-tracker.d.ts +157 -0
  122. package/dist/monitoring/performance-tracker.d.ts.map +1 -0
  123. package/dist/monitoring/performance-tracker.js +571 -0
  124. package/dist/monitoring/performance-tracker.js.map +1 -0
  125. package/dist/queen/agent-factory.d.ts +3 -0
  126. package/dist/queen/agent-factory.d.ts.map +1 -1
  127. package/dist/queen/agent-factory.js +52 -0
  128. package/dist/queen/agent-factory.js.map +1 -1
  129. package/dist/queen/queen-memory.d.ts +8 -2
  130. package/dist/queen/queen-memory.d.ts.map +1 -1
  131. package/dist/queen/queen-memory.js +46 -4
  132. package/dist/queen/queen-memory.js.map +1 -1
  133. package/dist/snow-flow-system.d.ts +132 -0
  134. package/dist/snow-flow-system.d.ts.map +1 -0
  135. package/dist/snow-flow-system.js +396 -0
  136. package/dist/snow-flow-system.js.map +1 -0
  137. package/dist/types/todo.types.d.ts +61 -0
  138. package/dist/types/todo.types.d.ts.map +1 -0
  139. package/dist/types/todo.types.js +7 -0
  140. package/dist/types/todo.types.js.map +1 -0
  141. package/dist/utils/error-recovery.d.ts +101 -0
  142. package/dist/utils/error-recovery.d.ts.map +1 -0
  143. package/dist/utils/error-recovery.js +548 -0
  144. package/dist/utils/error-recovery.js.map +1 -0
  145. package/dist/version.d.ts +1 -1
  146. package/dist/version.js +1 -1
  147. package/package.json +7 -2
  148. package/deploy.sh +0 -366
  149. package/docker/base/Dockerfile.base +0 -45
  150. package/docker/generate-services.js +0 -244
  151. package/docker/nginx/Dockerfile +0 -71
  152. package/docker/nginx/consul-template.hcl +0 -64
  153. package/docker/nginx/healthcheck.sh +0 -178
  154. package/docker/nginx/nginx.conf +0 -210
  155. package/docker/nginx/supervisord.conf +0 -57
  156. package/docker/nginx/templates/upstreams.conf.tpl +0 -48
  157. package/docker/services/automation-mcp/Dockerfile +0 -32
  158. package/docker/services/automation-mcp/config/service.json +0 -28
  159. package/docker/services/automation-mcp/entrypoint.js +0 -51
  160. package/docker/services/deployment-mcp/Dockerfile +0 -32
  161. package/docker/services/deployment-mcp/entrypoint.js +0 -51
  162. package/docker/services/flow-composer-mcp/Dockerfile +0 -32
  163. package/docker/services/flow-composer-mcp/config/service.json +0 -28
  164. package/docker/services/flow-composer-mcp/entrypoint.js +0 -51
  165. package/docker/services/graph-memory-mcp/Dockerfile +0 -32
  166. package/docker/services/graph-memory-mcp/config/service.json +0 -28
  167. package/docker/services/graph-memory-mcp/entrypoint.js +0 -51
  168. package/docker/services/integration-mcp/Dockerfile +0 -32
  169. package/docker/services/integration-mcp/config/service.json +0 -28
  170. package/docker/services/integration-mcp/entrypoint.js +0 -51
  171. package/docker/services/intelligent-mcp/Dockerfile +0 -32
  172. package/docker/services/intelligent-mcp/config/service.json +0 -28
  173. package/docker/services/intelligent-mcp/entrypoint.js +0 -51
  174. package/docker/services/operations-mcp/Dockerfile +0 -32
  175. package/docker/services/operations-mcp/config/service.json +0 -28
  176. package/docker/services/operations-mcp/entrypoint.js +0 -51
  177. package/docker/services/platform-development-mcp/Dockerfile +0 -32
  178. package/docker/services/platform-development-mcp/config/service.json +0 -28
  179. package/docker/services/platform-development-mcp/entrypoint.js +0 -51
  180. package/docker/services/reporting-analytics-mcp/Dockerfile +0 -32
  181. package/docker/services/reporting-analytics-mcp/config/service.json +0 -28
  182. package/docker/services/reporting-analytics-mcp/entrypoint.js +0 -51
  183. package/docker/services/security-compliance-mcp/Dockerfile +0 -32
  184. package/docker/services/security-compliance-mcp/config/service.json +0 -28
  185. package/docker/services/security-compliance-mcp/entrypoint.js +0 -51
  186. package/docker/services/update-set-mcp/Dockerfile +0 -32
  187. package/docker/services/update-set-mcp/config/service.json +0 -28
  188. package/docker/services/update-set-mcp/entrypoint.js +0 -51
  189. package/docker-compose.override.yml +0 -132
  190. package/docker-compose.prod.yml +0 -340
  191. package/docker-compose.yml +0 -579
  192. package/k8s/automation-mcp.yaml +0 -232
  193. package/k8s/configmap.yaml +0 -237
  194. package/k8s/deployment-mcp.yaml +0 -232
  195. package/k8s/flow-composer-mcp.yaml +0 -232
  196. package/k8s/generate-k8s-manifests.js +0 -453
  197. package/k8s/graph-memory-mcp.yaml +0 -232
  198. package/k8s/infrastructure.yaml +0 -456
  199. package/k8s/ingress.yaml +0 -361
  200. package/k8s/integration-mcp.yaml +0 -232
  201. package/k8s/intelligent-mcp.yaml +0 -232
  202. package/k8s/kustomization.yaml +0 -111
  203. package/k8s/mcp-services.yaml +0 -2552
  204. package/k8s/monitoring.yaml +0 -515
  205. package/k8s/namespace.yaml +0 -80
  206. package/k8s/operations-mcp.yaml +0 -232
  207. package/k8s/platform-development-mcp.yaml +0 -232
  208. package/k8s/rbac.yaml +0 -140
  209. package/k8s/reporting-analytics-mcp.yaml +0 -232
  210. package/k8s/security-compliance-mcp.yaml +0 -232
  211. package/k8s/update-set-mcp.yaml +0 -232
  212. package/test-clean-install/.claude/config.json +0 -12
  213. package/test-clean-install/.env.example +0 -49
  214. package/test-clean-install/CLAUDE.md +0 -26
  215. package/test-clean-install/README.md +0 -23
  216. package/test-global-install/.claude/config.json +0 -12
  217. package/test-global-install/CLAUDE.md +0 -26
  218. package/test-global-install/README.md +0 -23
  219. package/test-global-install/test-global-install/.claude/config.json +0 -12
  220. package/test-global-install/test-global-install/CLAUDE.md +0 -26
  221. package/test-global-install/test-global-install/README.md +0 -23
  222. package/test-global-install/test-global-install/test-global-install/.claude/config.json +0 -12
  223. package/test-global-install/test-global-install/test-global-install/.env.example +0 -49
  224. package/test-global-install/test-global-install/test-global-install/CLAUDE.md +0 -26
  225. package/test-global-install/test-global-install/test-global-install/README.md +0 -23
  226. package/test-init-debug/.claude/config.json +0 -12
  227. package/test-init-debug/CLAUDE.md +0 -693
  228. package/test-init-debug/README.md +0 -392
  229. package/test-init-real/.claude/config.json +0 -12
  230. package/test-init-real/.claude/mcp-config.json +0 -128
  231. package/test-init-real/.claude/settings.json +0 -37
  232. package/test-init-real/CLAUDE.md +0 -693
  233. package/test-init-real/README.md +0 -392
  234. package/test-init-real/activate-mcp.sh +0 -15
@@ -0,0 +1,571 @@
1
+ "use strict";
2
+ /**
3
+ * Snow-Flow Performance Monitoring System
4
+ * Real-time metrics collection and analysis
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.PerformanceTracker = void 0;
8
+ const events_1 = require("events");
9
+ const logger_1 = require("../utils/logger");
10
+ class PerformanceTracker extends events_1.EventEmitter {
11
+ constructor(options) {
12
+ super();
13
+ this.activeOperations = new Map();
14
+ this.metricsBuffer = [];
15
+ this.initialized = false;
16
+ this.memory = options.memory;
17
+ this.config = options.config;
18
+ this.logger = new logger_1.Logger('PerformanceTracker');
19
+ }
20
+ /**
21
+ * Initialize the performance tracker
22
+ */
23
+ async initialize() {
24
+ if (this.initialized)
25
+ return;
26
+ this.logger.info('Initializing Performance Tracker...');
27
+ // Create performance tables if not exist
28
+ await this.createPerformanceTables();
29
+ // Start aggregation timer
30
+ this.startAggregation();
31
+ // Monitor system resources
32
+ this.startResourceMonitoring();
33
+ this.initialized = true;
34
+ this.logger.info('Performance Tracker initialized');
35
+ }
36
+ /**
37
+ * Start tracking an operation
38
+ */
39
+ async startOperation(operation, metadata = {}) {
40
+ // Apply sampling rate
41
+ if (Math.random() > this.config.sampleRate) {
42
+ return 'not_sampled';
43
+ }
44
+ const id = this.generateMetricId();
45
+ const metric = {
46
+ id,
47
+ operation,
48
+ startTime: Date.now(),
49
+ success: false,
50
+ metadata,
51
+ sessionId: metadata.sessionId,
52
+ agentId: metadata.agentId,
53
+ resourceUsage: this.captureResourceUsage()
54
+ };
55
+ this.activeOperations.set(id, metric);
56
+ // Emit start event
57
+ this.emit('operation:start', {
58
+ id,
59
+ operation,
60
+ metadata
61
+ });
62
+ return id;
63
+ }
64
+ /**
65
+ * End tracking an operation
66
+ */
67
+ async endOperation(operationId, result) {
68
+ const metric = this.activeOperations.get(operationId);
69
+ if (!metric || operationId === 'not_sampled')
70
+ return;
71
+ metric.endTime = Date.now();
72
+ metric.duration = metric.endTime - metric.startTime;
73
+ metric.success = result.success;
74
+ metric.error = result.error;
75
+ if (result.metadata) {
76
+ Object.assign(metric.metadata, result.metadata);
77
+ }
78
+ // Capture final resource usage
79
+ const finalResourceUsage = this.captureResourceUsage();
80
+ metric.resourceUsage = this.calculateResourceDelta(metric.resourceUsage, finalResourceUsage);
81
+ // Remove from active and add to buffer
82
+ this.activeOperations.delete(operationId);
83
+ this.metricsBuffer.push(metric);
84
+ // Store immediately if buffer is large
85
+ if (this.metricsBuffer.length >= 100) {
86
+ await this.flushMetrics();
87
+ }
88
+ // Emit end event
89
+ this.emit('operation:end', {
90
+ id: operationId,
91
+ operation: metric.operation,
92
+ duration: metric.duration,
93
+ success: metric.success
94
+ });
95
+ // Check for performance issues
96
+ this.checkPerformanceThresholds(metric);
97
+ }
98
+ /**
99
+ * Track a complete operation (convenience method)
100
+ */
101
+ async trackOperation(operation, metadata, fn) {
102
+ const id = await this.startOperation(operation, metadata);
103
+ try {
104
+ const result = await fn();
105
+ await this.endOperation(id, { success: true });
106
+ return result;
107
+ }
108
+ catch (error) {
109
+ await this.endOperation(id, {
110
+ success: false,
111
+ error: error.message
112
+ });
113
+ throw error;
114
+ }
115
+ }
116
+ /**
117
+ * Get metrics for a specific session
118
+ */
119
+ async getSessionMetrics(sessionId) {
120
+ const metrics = await this.memory.query(`
121
+ SELECT * FROM performance_metrics
122
+ WHERE session_id = ?
123
+ ORDER BY start_time
124
+ `, [sessionId]);
125
+ if (metrics.length === 0) {
126
+ return {
127
+ sessionId,
128
+ startTime: new Date(),
129
+ operationCount: 0,
130
+ successCount: 0,
131
+ failureCount: 0,
132
+ agentCount: 0,
133
+ artifactCount: 0,
134
+ averageOperationTime: 0,
135
+ resourceUsage: []
136
+ };
137
+ }
138
+ const startTime = new Date(metrics[0].startTime);
139
+ const endTime = metrics[metrics.length - 1].endTime ?
140
+ new Date(metrics[metrics.length - 1].endTime) : undefined;
141
+ const successCount = metrics.filter(m => m.success).length;
142
+ const totalDuration = metrics.reduce((sum, m) => sum + (m.duration || 0), 0);
143
+ const agentIds = new Set(metrics.map(m => m.agentId).filter(Boolean));
144
+ return {
145
+ sessionId,
146
+ startTime,
147
+ endTime,
148
+ duration: endTime ? endTime.getTime() - startTime.getTime() : undefined,
149
+ operationCount: metrics.length,
150
+ successCount,
151
+ failureCount: metrics.length - successCount,
152
+ agentCount: agentIds.size,
153
+ artifactCount: await this.countSessionArtifacts(sessionId),
154
+ averageOperationTime: metrics.length > 0 ? totalDuration / metrics.length : 0,
155
+ resourceUsage: metrics.map(m => m.resourceUsage).filter(Boolean)
156
+ };
157
+ }
158
+ /**
159
+ * Get aggregate metrics for an operation
160
+ */
161
+ async getAggregateMetrics(operation, timeframe) {
162
+ const since = timeframe ? Date.now() - timeframe : 0;
163
+ const metrics = await this.memory.query(`
164
+ SELECT * FROM performance_metrics
165
+ WHERE operation = ? AND start_time > ?
166
+ ORDER BY duration
167
+ `, [operation, since]);
168
+ if (metrics.length === 0) {
169
+ return {
170
+ operation,
171
+ count: 0,
172
+ successCount: 0,
173
+ failureCount: 0,
174
+ averageDuration: 0,
175
+ minDuration: 0,
176
+ maxDuration: 0,
177
+ percentile95: 0,
178
+ percentile99: 0,
179
+ errorRate: 0,
180
+ throughput: 0
181
+ };
182
+ }
183
+ const successCount = metrics.filter(m => m.success).length;
184
+ const durations = metrics.map(m => m.duration || 0).filter(d => d > 0);
185
+ durations.sort((a, b) => a - b);
186
+ const timeRange = metrics[metrics.length - 1].startTime - metrics[0].startTime;
187
+ const throughput = timeRange > 0 ? (metrics.length / timeRange) * 1000 : 0;
188
+ return {
189
+ operation,
190
+ count: metrics.length,
191
+ successCount,
192
+ failureCount: metrics.length - successCount,
193
+ averageDuration: durations.reduce((a, b) => a + b, 0) / durations.length,
194
+ minDuration: durations[0] || 0,
195
+ maxDuration: durations[durations.length - 1] || 0,
196
+ percentile95: this.calculatePercentile(durations, 0.95),
197
+ percentile99: this.calculatePercentile(durations, 0.99),
198
+ errorRate: metrics.length > 0 ? (metrics.length - successCount) / metrics.length : 0,
199
+ throughput
200
+ };
201
+ }
202
+ /**
203
+ * Generate performance report
204
+ */
205
+ async generateReport(period = 'day') {
206
+ const timeframe = this.getTimeframe(period);
207
+ const since = Date.now() - timeframe;
208
+ // Get all metrics for the period
209
+ const allMetrics = await this.memory.query(`
210
+ SELECT * FROM performance_metrics
211
+ WHERE start_time > ?
212
+ `, [since]);
213
+ // Get unique operations
214
+ const operations = [...new Set(allMetrics.map(m => m.operation))];
215
+ // Calculate operation metrics
216
+ const operationMetrics = await Promise.all(operations.map(op => this.getAggregateMetrics(op, timeframe)));
217
+ // Get session metrics
218
+ const sessionIds = [...new Set(allMetrics.map(m => m.sessionId).filter(Boolean))];
219
+ const sessionMetrics = await Promise.all(sessionIds.map(id => this.getSessionMetrics(id)));
220
+ // Identify bottlenecks
221
+ const bottlenecks = await this.identifyBottlenecks(allMetrics);
222
+ // Generate recommendations
223
+ const recommendations = this.generateRecommendations(operationMetrics, sessionMetrics, bottlenecks);
224
+ // Calculate summary
225
+ const totalOperations = allMetrics.length;
226
+ const successCount = allMetrics.filter(m => m.success).length;
227
+ const totalDuration = allMetrics.reduce((sum, m) => sum + (m.duration || 0), 0);
228
+ const report = {
229
+ timestamp: new Date(),
230
+ period,
231
+ summary: {
232
+ totalOperations,
233
+ successRate: totalOperations > 0 ? (successCount / totalOperations) * 100 : 0,
234
+ averageResponseTime: totalOperations > 0 ? totalDuration / totalOperations : 0,
235
+ peakConcurrency: this.calculatePeakConcurrency(allMetrics),
236
+ errorRate: totalOperations > 0 ? ((totalOperations - successCount) / totalOperations) * 100 : 0
237
+ },
238
+ operationMetrics,
239
+ sessionMetrics,
240
+ bottlenecks,
241
+ recommendations
242
+ };
243
+ // Store report
244
+ await this.memory.store(`performance_report_${period}_${Date.now()}`, report);
245
+ return report;
246
+ }
247
+ /**
248
+ * Identify performance bottlenecks
249
+ */
250
+ async identifyBottlenecks(metrics) {
251
+ const bottlenecks = [];
252
+ // Group by operation
253
+ const operationGroups = this.groupBy(metrics, 'operation');
254
+ for (const [operation, operationMetrics] of Object.entries(operationGroups)) {
255
+ const durations = operationMetrics.map(m => m.duration || 0);
256
+ const avgDuration = durations.reduce((a, b) => a + b, 0) / durations.length;
257
+ const p95Duration = this.calculatePercentile(durations, 0.95);
258
+ // Check for slow operations
259
+ if (avgDuration > 5000) { // > 5 seconds average
260
+ bottlenecks.push({
261
+ operation,
262
+ severity: avgDuration > 30000 ? 'critical' : avgDuration > 15000 ? 'high' : 'medium',
263
+ impact: `Average response time of ${(avgDuration / 1000).toFixed(2)}s`,
264
+ occurrences: operationMetrics.length,
265
+ averageDelay: avgDuration - 5000,
266
+ recommendation: 'Optimize operation logic or add caching'
267
+ });
268
+ }
269
+ // Check for high variance
270
+ const variance = this.calculateVariance(durations);
271
+ if (variance > avgDuration * 2) {
272
+ bottlenecks.push({
273
+ operation,
274
+ severity: 'medium',
275
+ impact: 'High response time variance',
276
+ occurrences: operationMetrics.length,
277
+ averageDelay: 0,
278
+ recommendation: 'Investigate inconsistent performance patterns'
279
+ });
280
+ }
281
+ // Check for high error rate
282
+ const errorCount = operationMetrics.filter(m => !m.success).length;
283
+ const errorRate = errorCount / operationMetrics.length;
284
+ if (errorRate > 0.1) { // > 10% error rate
285
+ bottlenecks.push({
286
+ operation,
287
+ severity: errorRate > 0.5 ? 'critical' : errorRate > 0.25 ? 'high' : 'medium',
288
+ impact: `${(errorRate * 100).toFixed(1)}% error rate`,
289
+ occurrences: errorCount,
290
+ averageDelay: 0,
291
+ recommendation: 'Review error handling and retry logic'
292
+ });
293
+ }
294
+ }
295
+ return bottlenecks.sort((a, b) => this.severityScore(b.severity) - this.severityScore(a.severity));
296
+ }
297
+ /**
298
+ * Shutdown the tracker
299
+ */
300
+ async shutdown() {
301
+ this.logger.info('Shutting down Performance Tracker...');
302
+ // Stop timers
303
+ if (this.aggregationTimer) {
304
+ clearInterval(this.aggregationTimer);
305
+ }
306
+ // Flush remaining metrics
307
+ await this.flushMetrics();
308
+ this.initialized = false;
309
+ }
310
+ /**
311
+ * Private helper methods
312
+ */
313
+ async createPerformanceTables() {
314
+ await this.memory.execute(`
315
+ CREATE TABLE IF NOT EXISTS performance_metrics (
316
+ id TEXT PRIMARY KEY,
317
+ operation TEXT NOT NULL,
318
+ start_time INTEGER NOT NULL,
319
+ end_time INTEGER,
320
+ duration INTEGER,
321
+ success BOOLEAN NOT NULL,
322
+ session_id TEXT,
323
+ agent_id TEXT,
324
+ metadata TEXT,
325
+ resource_usage TEXT,
326
+ error TEXT,
327
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
328
+ );
329
+
330
+ CREATE INDEX IF NOT EXISTS idx_performance_operation ON performance_metrics(operation);
331
+ CREATE INDEX IF NOT EXISTS idx_performance_session ON performance_metrics(session_id);
332
+ CREATE INDEX IF NOT EXISTS idx_performance_time ON performance_metrics(start_time);
333
+
334
+ CREATE TABLE IF NOT EXISTS performance_aggregates (
335
+ id TEXT PRIMARY KEY,
336
+ operation TEXT NOT NULL,
337
+ period TEXT NOT NULL,
338
+ timestamp INTEGER NOT NULL,
339
+ metrics TEXT NOT NULL,
340
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
341
+ );
342
+ `);
343
+ }
344
+ startAggregation() {
345
+ this.aggregationTimer = setInterval(async () => {
346
+ await this.flushMetrics();
347
+ await this.aggregateMetrics();
348
+ }, this.config.aggregationInterval);
349
+ }
350
+ startResourceMonitoring() {
351
+ // Monitor Node.js process resources
352
+ setInterval(() => {
353
+ const usage = this.captureResourceUsage();
354
+ // Check thresholds
355
+ if (usage.memoryUsage > 0.8) {
356
+ this.emit('resource:warning', {
357
+ type: 'memory',
358
+ usage: usage.memoryUsage,
359
+ threshold: 0.8
360
+ });
361
+ }
362
+ if (usage.cpuUsage > 0.8) {
363
+ this.emit('resource:warning', {
364
+ type: 'cpu',
365
+ usage: usage.cpuUsage,
366
+ threshold: 0.8
367
+ });
368
+ }
369
+ }, 10000); // Every 10 seconds
370
+ }
371
+ captureResourceUsage() {
372
+ const usage = process.cpuUsage();
373
+ const memory = process.memoryUsage();
374
+ return {
375
+ cpuUsage: (usage.user + usage.system) / 1000000, // Convert to seconds
376
+ memoryUsage: memory.rss / 1024 / 1024, // Convert to MB
377
+ heapUsed: memory.heapUsed / 1024 / 1024,
378
+ heapTotal: memory.heapTotal / 1024 / 1024,
379
+ external: memory.external / 1024 / 1024,
380
+ arrayBuffers: memory.arrayBuffers / 1024 / 1024
381
+ };
382
+ }
383
+ calculateResourceDelta(start, end) {
384
+ return {
385
+ cpuUsage: end.cpuUsage - start.cpuUsage,
386
+ memoryUsage: end.memoryUsage - start.memoryUsage,
387
+ heapUsed: end.heapUsed - start.heapUsed,
388
+ heapTotal: end.heapTotal,
389
+ external: end.external - start.external,
390
+ arrayBuffers: end.arrayBuffers - start.arrayBuffers
391
+ };
392
+ }
393
+ async flushMetrics() {
394
+ if (this.metricsBuffer.length === 0)
395
+ return;
396
+ const metrics = [...this.metricsBuffer];
397
+ this.metricsBuffer = [];
398
+ // Store metrics in database
399
+ for (const metric of metrics) {
400
+ await this.memory.insert('performance_metrics', {
401
+ id: metric.id,
402
+ operation: metric.operation,
403
+ start_time: metric.startTime,
404
+ end_time: metric.endTime,
405
+ duration: metric.duration,
406
+ success: metric.success,
407
+ session_id: metric.sessionId,
408
+ agent_id: metric.agentId,
409
+ metadata: JSON.stringify(metric.metadata),
410
+ resource_usage: JSON.stringify(metric.resourceUsage),
411
+ error: metric.error
412
+ });
413
+ }
414
+ this.emit('metrics:flushed', { count: metrics.length });
415
+ }
416
+ async aggregateMetrics() {
417
+ // Aggregate metrics for different time periods
418
+ const operations = await this.memory.query(`
419
+ SELECT DISTINCT operation FROM performance_metrics
420
+ WHERE start_time > ?
421
+ `, [Date.now() - this.config.aggregationInterval]);
422
+ for (const { operation } of operations) {
423
+ const aggregate = await this.getAggregateMetrics(operation, this.config.aggregationInterval);
424
+ await this.memory.insert('performance_aggregates', {
425
+ id: `${operation}_${Date.now()}`,
426
+ operation,
427
+ period: 'interval',
428
+ timestamp: Date.now(),
429
+ metrics: JSON.stringify(aggregate)
430
+ });
431
+ }
432
+ // Clean up old metrics
433
+ await this.cleanupOldMetrics();
434
+ }
435
+ async cleanupOldMetrics() {
436
+ const cutoff = Date.now() - this.config.metricsRetention;
437
+ await this.memory.execute(`
438
+ DELETE FROM performance_metrics WHERE start_time < ?
439
+ `, [cutoff]);
440
+ await this.memory.execute(`
441
+ DELETE FROM performance_aggregates WHERE timestamp < ?
442
+ `, [cutoff]);
443
+ }
444
+ checkPerformanceThresholds(metric) {
445
+ // Check for slow operations
446
+ if (metric.duration && metric.duration > 10000) { // > 10 seconds
447
+ this.emit('performance:slow', {
448
+ operation: metric.operation,
449
+ duration: metric.duration,
450
+ metadata: metric.metadata
451
+ });
452
+ }
453
+ // Check for failures
454
+ if (!metric.success) {
455
+ this.emit('performance:failure', {
456
+ operation: metric.operation,
457
+ error: metric.error,
458
+ metadata: metric.metadata
459
+ });
460
+ }
461
+ // Check for high resource usage
462
+ if (metric.resourceUsage && metric.resourceUsage.memoryUsage > 100) { // > 100MB
463
+ this.emit('performance:high-memory', {
464
+ operation: metric.operation,
465
+ memoryUsage: metric.resourceUsage.memoryUsage,
466
+ metadata: metric.metadata
467
+ });
468
+ }
469
+ }
470
+ generateMetricId() {
471
+ return `metric_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
472
+ }
473
+ calculatePercentile(values, percentile) {
474
+ if (values.length === 0)
475
+ return 0;
476
+ const index = Math.ceil(values.length * percentile) - 1;
477
+ return values[index] || 0;
478
+ }
479
+ calculateVariance(values) {
480
+ if (values.length === 0)
481
+ return 0;
482
+ const mean = values.reduce((a, b) => a + b, 0) / values.length;
483
+ const squaredDiffs = values.map(v => Math.pow(v - mean, 2));
484
+ return squaredDiffs.reduce((a, b) => a + b, 0) / values.length;
485
+ }
486
+ calculatePeakConcurrency(metrics) {
487
+ if (metrics.length === 0)
488
+ return 0;
489
+ const events = [];
490
+ for (const metric of metrics) {
491
+ events.push({ time: metric.startTime, type: 'start' });
492
+ if (metric.endTime) {
493
+ events.push({ time: metric.endTime, type: 'end' });
494
+ }
495
+ }
496
+ events.sort((a, b) => a.time - b.time);
497
+ let concurrent = 0;
498
+ let peak = 0;
499
+ for (const event of events) {
500
+ if (event.type === 'start') {
501
+ concurrent++;
502
+ peak = Math.max(peak, concurrent);
503
+ }
504
+ else {
505
+ concurrent--;
506
+ }
507
+ }
508
+ return peak;
509
+ }
510
+ async countSessionArtifacts(sessionId) {
511
+ const result = await this.memory.query(`
512
+ SELECT COUNT(*) as count FROM servicenow_artifacts
513
+ WHERE session_id = ?
514
+ `, [sessionId]);
515
+ return result[0]?.count || 0;
516
+ }
517
+ groupBy(array, key) {
518
+ return array.reduce((groups, item) => {
519
+ const group = String(item[key]);
520
+ if (!groups[group])
521
+ groups[group] = [];
522
+ groups[group].push(item);
523
+ return groups;
524
+ }, {});
525
+ }
526
+ getTimeframe(period) {
527
+ const timeframes = {
528
+ hour: 3600000,
529
+ day: 86400000,
530
+ week: 604800000,
531
+ month: 2592000000
532
+ };
533
+ return timeframes[period] || timeframes.day;
534
+ }
535
+ severityScore(severity) {
536
+ const scores = {
537
+ low: 1,
538
+ medium: 2,
539
+ high: 3,
540
+ critical: 4
541
+ };
542
+ return scores[severity] || 0;
543
+ }
544
+ generateRecommendations(operationMetrics, sessionMetrics, bottlenecks) {
545
+ const recommendations = [];
546
+ // Check for slow operations
547
+ const slowOps = operationMetrics.filter(m => m.averageDuration > 5000);
548
+ if (slowOps.length > 0) {
549
+ recommendations.push(`Optimize slow operations: ${slowOps.map(op => op.operation).join(', ')}`);
550
+ }
551
+ // Check for high error rates
552
+ const errorOps = operationMetrics.filter(m => m.errorRate > 0.1);
553
+ if (errorOps.length > 0) {
554
+ recommendations.push(`Review error handling for: ${errorOps.map(op => op.operation).join(', ')}`);
555
+ }
556
+ // Check for resource usage
557
+ const highMemorySessions = sessionMetrics.filter(s => s.resourceUsage.some(r => r.memoryUsage > 500));
558
+ if (highMemorySessions.length > 0) {
559
+ recommendations.push('Consider implementing memory optimization strategies');
560
+ }
561
+ // Add bottleneck recommendations
562
+ bottlenecks.forEach(b => {
563
+ if (!recommendations.includes(b.recommendation)) {
564
+ recommendations.push(b.recommendation);
565
+ }
566
+ });
567
+ return recommendations;
568
+ }
569
+ }
570
+ exports.PerformanceTracker = PerformanceTracker;
571
+ //# sourceMappingURL=performance-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance-tracker.js","sourceRoot":"","sources":["../../src/monitoring/performance-tracker.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import { Agent, AgentType, ServiceNowTask, AgentMessage } from './types';
6
6
  import { QueenMemorySystem } from './queen-memory';
7
+ import { BaseAgent } from '../agents';
7
8
  interface AgentBlueprint {
8
9
  type: AgentType;
9
10
  capabilities: string[];
@@ -35,6 +36,8 @@ export declare class AgentFactory {
35
36
  private generateAgentId;
36
37
  getAgentBlueprint(type: AgentType): AgentBlueprint | null;
37
38
  getStatistics(): any;
39
+ createSpecializedAgent(type: AgentType, taskId?: string): Promise<BaseAgent | null>;
40
+ executeWithSpecializedAgent(type: AgentType, instruction: string, context?: any): Promise<any>;
38
41
  }
39
42
  export {};
40
43
  //# sourceMappingURL=agent-factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-factory.d.ts","sourceRoot":"","sources":["../../src/queen/agent-factory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGnD,UAAU,cAAc;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,aAAa,GAAG,eAAe,GAAG,WAAW,CAAC;CAC7D;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,eAAe,CAAiC;IACxD,OAAO,CAAC,YAAY,CAAiB;gBAEzB,MAAM,EAAE,iBAAiB;IAQrC,OAAO,CAAC,oBAAoB;IAkK5B,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK;IA4BnD,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE;IAcjE,OAAO,CAAC,sBAAsB;IAmB9B,uBAAuB,CAAC,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE;IAkCpF,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;YA2B5D,mBAAmB;IAajC,OAAO,CAAC,qBAAqB;IA6D7B,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI;IAoB1F,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE;IAKjD,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK5C,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAK7C,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAerC,eAAe,IAAI,KAAK,EAAE;IAK1B,sBAAsB,IAAI,MAAM;IAWhC,OAAO,CAAC,eAAe;IAOvB,iBAAiB,CAAC,IAAI,EAAE,SAAS,GAAG,cAAc,GAAG,IAAI;IAKzD,aAAa,IAAI,GAAG;CAiBrB"}
1
+ {"version":3,"file":"agent-factory.d.ts","sourceRoot":"","sources":["../../src/queen/agent-factory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAmB,MAAM,WAAW,CAAC;AAEvD,UAAU,cAAc;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,aAAa,GAAG,eAAe,GAAG,WAAW,CAAC;CAC7D;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,eAAe,CAAiC;IACxD,OAAO,CAAC,YAAY,CAAiB;gBAEzB,MAAM,EAAE,iBAAiB;IAQrC,OAAO,CAAC,oBAAoB;IAkK5B,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK;IA4BnD,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE;IAcjE,OAAO,CAAC,sBAAsB;IAmB9B,uBAAuB,CAAC,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE;IAkCpF,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;YA2B5D,mBAAmB;IAajC,OAAO,CAAC,qBAAqB;IA6D7B,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI;IAoB1F,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE;IAKjD,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK5C,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAK7C,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAerC,eAAe,IAAI,KAAK,EAAE;IAK1B,sBAAsB,IAAI,MAAM;IAWhC,OAAO,CAAC,eAAe;IAOvB,iBAAiB,CAAC,IAAI,EAAE,SAAS,GAAG,cAAc,GAAG,IAAI;IAKzD,aAAa,IAAI,GAAG;IAmBd,sBAAsB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAoCnF,2BAA2B,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CA4BrG"}