moflo 4.9.21 → 4.9.23

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 (194) hide show
  1. package/.claude/agents/analysis/analyze-code-quality.md +0 -121
  2. package/.claude/agents/analysis/code-analyzer.md +5 -26
  3. package/.claude/agents/architecture/system-design/arch-system-design.md +0 -119
  4. package/.claude/agents/base-template-generator.md +0 -1
  5. package/.claude/agents/core/coder.md +0 -22
  6. package/.claude/agents/core/planner.md +0 -16
  7. package/.claude/agents/core/researcher.md +0 -16
  8. package/.claude/agents/core/reviewer.md +0 -17
  9. package/.claude/agents/core/tester.md +0 -19
  10. package/.claude/agents/custom/test-long-runner.md +0 -2
  11. package/.claude/agents/development/dev-backend-api.md +0 -167
  12. package/.claude/agents/development/dev-database.md +43 -0
  13. package/.claude/agents/development/dev-frontend.md +42 -0
  14. package/.claude/agents/devops/ci-cd/ops-cicd-github.md +0 -112
  15. package/.claude/agents/documentation/api-docs/docs-api-openapi.md +0 -111
  16. package/.claude/agents/security/security-auditor.md +45 -0
  17. package/.claude/guidance/shipped/moflo-cli-reference.md +19 -16
  18. package/.claude/guidance/shipped/moflo-core-guidance.md +0 -2
  19. package/.claude/guidance/shipped/moflo-guidance-rules.md +5 -5
  20. package/.claude/guidance/shipped/moflo-spell-runner.md +1 -0
  21. package/.claude/guidance/shipped/moflo-spell-scheduling.md +225 -0
  22. package/.claude/guidance/shipped/moflo-spell-troubleshooting.md +1 -0
  23. package/.claude/helpers/gate.cjs +70 -3
  24. package/.claude/skills/fl/execution-modes.md +38 -15
  25. package/.claude/skills/fl/phases.md +67 -0
  26. package/.claude/skills/spell-schedule/SKILL.md +18 -5
  27. package/README.md +1 -1
  28. package/bin/gate.cjs +70 -3
  29. package/bin/index-guidance.mjs +32 -6
  30. package/bin/lib/retired-files.mjs +146 -0
  31. package/bin/session-start-launcher.mjs +116 -8
  32. package/dist/src/cli/appliance/rvfa-builder.js +1 -1
  33. package/dist/src/cli/commands/agent.js +3 -9
  34. package/dist/src/cli/commands/daemon.js +13 -17
  35. package/dist/src/cli/commands/hooks.js +4 -9
  36. package/dist/src/cli/commands/index.js +2 -0
  37. package/dist/src/cli/commands/retire.js +111 -0
  38. package/dist/src/cli/commands/spell-schedule.js +237 -49
  39. package/dist/src/cli/hooks/reasoningbank/index.js +7 -7
  40. package/dist/src/cli/init/executor.js +26 -54
  41. package/dist/src/cli/init/helpers-generator.js +66 -3
  42. package/dist/src/cli/init/settings-generator.js +17 -6
  43. package/dist/src/cli/mcp-tools/agent-tools.js +9 -27
  44. package/dist/src/cli/mcp-tools/hooks-tools.js +23 -21
  45. package/dist/src/cli/mcp-tools/memory-tools.js +16 -5
  46. package/dist/src/cli/memory/bridge-embedder.js +26 -6
  47. package/dist/src/cli/memory/bridge-entries.js +33 -15
  48. package/dist/src/cli/memory/controllers/semantic-router.js +18 -12
  49. package/dist/src/cli/memory/sona-optimizer.js +6 -6
  50. package/dist/src/cli/neural/domain/services/learning-service.js +3 -3
  51. package/dist/src/cli/services/agent-router.js +2 -5
  52. package/dist/src/cli/services/daemon-autostart-lifecycle.js +62 -0
  53. package/dist/src/cli/services/daemon-dashboard.js +187 -18
  54. package/dist/src/cli/services/daemon-readiness.js +19 -31
  55. package/dist/src/cli/services/ephemeral-namespace-purge.js +61 -33
  56. package/dist/src/cli/services/headless-worker-executor.js +7 -94
  57. package/dist/src/cli/services/hook-block-hash.js +4 -0
  58. package/dist/src/cli/services/worker-daemon.js +40 -66
  59. package/dist/src/cli/shared/events/example-usage.js +6 -6
  60. package/dist/src/cli/shared/hooks/task-hooks.js +8 -8
  61. package/dist/src/cli/spells/core/runner.js +12 -0
  62. package/dist/src/cli/spells/scheduler/scheduler.js +24 -9
  63. package/dist/src/cli/spells/schema/validator.js +2 -1
  64. package/dist/src/cli/spells/schema/validators/top-level.js +18 -0
  65. package/dist/src/cli/version.js +1 -1
  66. package/package.json +5 -2
  67. package/retired-files.json +1989 -0
  68. package/src/cli/data/model-registry.json +2 -2
  69. package/.claude/agents/consensus/byzantine-coordinator.md +0 -63
  70. package/.claude/agents/consensus/crdt-synchronizer.md +0 -997
  71. package/.claude/agents/consensus/gossip-coordinator.md +0 -63
  72. package/.claude/agents/consensus/performance-benchmarker.md +0 -851
  73. package/.claude/agents/consensus/quorum-manager.md +0 -823
  74. package/.claude/agents/consensus/raft-manager.md +0 -63
  75. package/.claude/agents/consensus/security-manager.md +0 -622
  76. package/.claude/agents/data/ml/data-ml-model.md +0 -193
  77. package/.claude/agents/github/code-review-swarm.md +0 -538
  78. package/.claude/agents/github/github-modes.md +0 -172
  79. package/.claude/agents/github/issue-tracker.md +0 -311
  80. package/.claude/agents/github/multi-repo-swarm.md +0 -551
  81. package/.claude/agents/github/pr-manager.md +0 -183
  82. package/.claude/agents/github/project-board-sync.md +0 -508
  83. package/.claude/agents/github/release-manager.md +0 -360
  84. package/.claude/agents/github/release-swarm.md +0 -580
  85. package/.claude/agents/github/repo-architect.md +0 -391
  86. package/.claude/agents/github/swarm-issue.md +0 -566
  87. package/.claude/agents/github/swarm-pr.md +0 -414
  88. package/.claude/agents/github/sync-coordinator.md +0 -426
  89. package/.claude/agents/github/workflow-automation.md +0 -606
  90. package/.claude/agents/goal/code-goal-planner.md +0 -440
  91. package/.claude/agents/goal/goal-planner.md +0 -168
  92. package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +0 -127
  93. package/.claude/agents/hive-mind/queen-coordinator.md +0 -198
  94. package/.claude/agents/hive-mind/scout-explorer.md +0 -233
  95. package/.claude/agents/hive-mind/swarm-memory-manager.md +0 -184
  96. package/.claude/agents/hive-mind/worker-specialist.md +0 -208
  97. package/.claude/agents/neural/safla-neural.md +0 -73
  98. package/.claude/agents/optimization/benchmark-suite.md +0 -665
  99. package/.claude/agents/optimization/load-balancer.md +0 -431
  100. package/.claude/agents/optimization/performance-monitor.md +0 -672
  101. package/.claude/agents/optimization/resource-allocator.md +0 -674
  102. package/.claude/agents/optimization/topology-optimizer.md +0 -808
  103. package/.claude/agents/reasoning/goal-planner.md +0 -67
  104. package/.claude/agents/sona/sona-learning-optimizer.md +0 -74
  105. package/.claude/agents/sparc/architecture.md +0 -472
  106. package/.claude/agents/sparc/pseudocode.md +0 -318
  107. package/.claude/agents/sparc/refinement.md +0 -525
  108. package/.claude/agents/sparc/specification.md +0 -276
  109. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +0 -225
  110. package/.claude/agents/swarm/adaptive-coordinator.md +0 -391
  111. package/.claude/agents/swarm/hierarchical-coordinator.md +0 -321
  112. package/.claude/agents/swarm/mesh-coordinator.md +0 -383
  113. package/.claude/agents/testing/production-validator.md +0 -395
  114. package/.claude/agents/testing/tdd-london-swarm.md +0 -244
  115. package/.claude/agents/v3/adr-architect.md +0 -184
  116. package/.claude/agents/v3/aidefence-guardian.md +0 -277
  117. package/.claude/agents/v3/claims-authorizer.md +0 -208
  118. package/.claude/agents/v3/collective-intelligence-coordinator.md +0 -988
  119. package/.claude/agents/v3/ddd-domain-expert.md +0 -220
  120. package/.claude/agents/v3/injection-analyst.md +0 -232
  121. package/.claude/agents/v3/memory-specialist.md +0 -987
  122. package/.claude/agents/v3/performance-engineer.md +0 -1225
  123. package/.claude/agents/v3/pii-detector.md +0 -146
  124. package/.claude/agents/v3/reasoningbank-learner.md +0 -213
  125. package/.claude/agents/v3/security-architect-aidefence.md +0 -405
  126. package/.claude/agents/v3/security-architect.md +0 -865
  127. package/.claude/agents/v3/security-auditor.md +0 -771
  128. package/.claude/agents/v3/sparc-orchestrator.md +0 -182
  129. package/.claude/agents/v3/swarm-memory-manager.md +0 -142
  130. package/.claude/agents/v3/v3-integration-architect.md +0 -205
  131. package/.claude/commands/claude-flow-help.md +0 -103
  132. package/.claude/commands/claude-flow-memory.md +0 -107
  133. package/.claude/commands/claude-flow-swarm.md +0 -205
  134. package/.claude/commands/flo-simplify.md +0 -101
  135. package/.claude/commands/github/README.md +0 -11
  136. package/.claude/commands/github/code-review-swarm.md +0 -514
  137. package/.claude/commands/github/code-review.md +0 -25
  138. package/.claude/commands/github/github-modes.md +0 -146
  139. package/.claude/commands/github/github-swarm.md +0 -113
  140. package/.claude/commands/github/issue-tracker.md +0 -284
  141. package/.claude/commands/github/issue-triage.md +0 -25
  142. package/.claude/commands/github/multi-repo-swarm.md +0 -519
  143. package/.claude/commands/github/pr-enhance.md +0 -26
  144. package/.claude/commands/github/pr-manager.md +0 -164
  145. package/.claude/commands/github/project-board-sync.md +0 -471
  146. package/.claude/commands/github/release-manager.md +0 -332
  147. package/.claude/commands/github/release-swarm.md +0 -544
  148. package/.claude/commands/github/repo-analyze.md +0 -25
  149. package/.claude/commands/github/repo-architect.md +0 -361
  150. package/.claude/commands/github/swarm-issue.md +0 -482
  151. package/.claude/commands/github/swarm-pr.md +0 -285
  152. package/.claude/commands/github/sync-coordinator.md +0 -294
  153. package/.claude/commands/github/workflow-automation.md +0 -442
  154. package/.claude/commands/hooks/README.md +0 -11
  155. package/.claude/commands/hooks/overview.md +0 -58
  156. package/.claude/commands/hooks/post-edit.md +0 -117
  157. package/.claude/commands/hooks/post-task.md +0 -112
  158. package/.claude/commands/hooks/pre-edit.md +0 -113
  159. package/.claude/commands/hooks/pre-task.md +0 -111
  160. package/.claude/commands/hooks/session-end.md +0 -118
  161. package/.claude/commands/hooks/setup.md +0 -103
  162. package/.claude/commands/sparc/analyzer.md +0 -42
  163. package/.claude/commands/sparc/architect.md +0 -43
  164. package/.claude/commands/sparc/ask.md +0 -86
  165. package/.claude/commands/sparc/batch-executor.md +0 -44
  166. package/.claude/commands/sparc/code.md +0 -78
  167. package/.claude/commands/sparc/coder.md +0 -44
  168. package/.claude/commands/sparc/debug.md +0 -72
  169. package/.claude/commands/sparc/debugger.md +0 -44
  170. package/.claude/commands/sparc/designer.md +0 -43
  171. package/.claude/commands/sparc/devops.md +0 -98
  172. package/.claude/commands/sparc/docs-writer.md +0 -69
  173. package/.claude/commands/sparc/documenter.md +0 -44
  174. package/.claude/commands/sparc/innovator.md +0 -44
  175. package/.claude/commands/sparc/integration.md +0 -72
  176. package/.claude/commands/sparc/mcp.md +0 -106
  177. package/.claude/commands/sparc/memory-manager.md +0 -44
  178. package/.claude/commands/sparc/optimizer.md +0 -44
  179. package/.claude/commands/sparc/orchestrator.md +0 -116
  180. package/.claude/commands/sparc/post-deployment-monitoring-mode.md +0 -72
  181. package/.claude/commands/sparc/refinement-optimization-mode.md +0 -72
  182. package/.claude/commands/sparc/researcher.md +0 -44
  183. package/.claude/commands/sparc/reviewer.md +0 -44
  184. package/.claude/commands/sparc/security-review.md +0 -69
  185. package/.claude/commands/sparc/sparc-modes.md +0 -139
  186. package/.claude/commands/sparc/sparc.md +0 -99
  187. package/.claude/commands/sparc/spec-pseudocode.md +0 -69
  188. package/.claude/commands/sparc/spell-manager.md +0 -44
  189. package/.claude/commands/sparc/supabase-admin.md +0 -337
  190. package/.claude/commands/sparc/swarm-coordinator.md +0 -44
  191. package/.claude/commands/sparc/tdd.md +0 -44
  192. package/.claude/commands/sparc/tester.md +0 -44
  193. package/.claude/commands/sparc/tutorial.md +0 -68
  194. package/.claude/commands/sparc.md +0 -151
@@ -1,674 +0,0 @@
1
- ---
2
- name: Resource Allocator
3
- type: agent
4
- category: optimization
5
- description: Adaptive resource allocation, predictive scaling and intelligent capacity planning
6
- ---
7
-
8
- # Resource Allocator Agent
9
-
10
- ## Agent Profile
11
- - **Name**: Resource Allocator
12
- - **Type**: Performance Optimization Agent
13
- - **Specialization**: Adaptive resource allocation and predictive scaling
14
- - **Performance Focus**: Intelligent resource management and capacity planning
15
-
16
- ## Core Capabilities
17
-
18
- ### 1. Adaptive Resource Allocation
19
- ```javascript
20
- // Advanced adaptive resource allocation system
21
- class AdaptiveResourceAllocator {
22
- constructor() {
23
- this.allocators = {
24
- cpu: new CPUAllocator(),
25
- memory: new MemoryAllocator(),
26
- storage: new StorageAllocator(),
27
- network: new NetworkAllocator(),
28
- agents: new AgentAllocator()
29
- };
30
-
31
- this.predictor = new ResourcePredictor();
32
- this.optimizer = new AllocationOptimizer();
33
- this.monitor = new ResourceMonitor();
34
- }
35
-
36
- // Dynamic resource allocation based on workload patterns
37
- async allocateResources(swarmId, workloadProfile, constraints = {}) {
38
- // Analyze current resource usage
39
- const currentUsage = await this.analyzeCurrentUsage(swarmId);
40
-
41
- // Predict future resource needs
42
- const predictions = await this.predictor.predict(workloadProfile, currentUsage);
43
-
44
- // Calculate optimal allocation
45
- const allocation = await this.optimizer.optimize(predictions, constraints);
46
-
47
- // Apply allocation with gradual rollout
48
- const rolloutPlan = await this.planGradualRollout(allocation, currentUsage);
49
-
50
- // Execute allocation
51
- const result = await this.executeAllocation(rolloutPlan);
52
-
53
- return {
54
- allocation,
55
- rolloutPlan,
56
- result,
57
- monitoring: await this.setupMonitoring(allocation)
58
- };
59
- }
60
-
61
- // Workload pattern analysis
62
- async analyzeWorkloadPatterns(historicalData, timeWindow = '7d') {
63
- const patterns = {
64
- // Temporal patterns
65
- temporal: {
66
- hourly: this.analyzeHourlyPatterns(historicalData),
67
- daily: this.analyzeDailyPatterns(historicalData),
68
- weekly: this.analyzeWeeklyPatterns(historicalData),
69
- seasonal: this.analyzeSeasonalPatterns(historicalData)
70
- },
71
-
72
- // Load patterns
73
- load: {
74
- baseline: this.calculateBaselineLoad(historicalData),
75
- peaks: this.identifyPeakPatterns(historicalData),
76
- valleys: this.identifyValleyPatterns(historicalData),
77
- spikes: this.detectAnomalousSpikes(historicalData)
78
- },
79
-
80
- // Resource correlation patterns
81
- correlations: {
82
- cpu_memory: this.analyzeCPUMemoryCorrelation(historicalData),
83
- network_load: this.analyzeNetworkLoadCorrelation(historicalData),
84
- agent_resource: this.analyzeAgentResourceCorrelation(historicalData)
85
- },
86
-
87
- // Predictive indicators
88
- indicators: {
89
- growth_rate: this.calculateGrowthRate(historicalData),
90
- volatility: this.calculateVolatility(historicalData),
91
- predictability: this.calculatePredictability(historicalData)
92
- }
93
- };
94
-
95
- return patterns;
96
- }
97
-
98
- // Multi-objective resource optimization
99
- async optimizeResourceAllocation(resources, demands, objectives) {
100
- const optimizationProblem = {
101
- variables: this.defineOptimizationVariables(resources),
102
- constraints: this.defineConstraints(resources, demands),
103
- objectives: this.defineObjectives(objectives)
104
- };
105
-
106
- // Use multi-objective genetic algorithm
107
- const solver = new MultiObjectiveGeneticSolver({
108
- populationSize: 100,
109
- generations: 200,
110
- mutationRate: 0.1,
111
- crossoverRate: 0.8
112
- });
113
-
114
- const solutions = await solver.solve(optimizationProblem);
115
-
116
- // Select solution from Pareto front
117
- const selectedSolution = this.selectFromParetoFront(solutions, objectives);
118
-
119
- return {
120
- optimalAllocation: selectedSolution.allocation,
121
- paretoFront: solutions.paretoFront,
122
- tradeoffs: solutions.tradeoffs,
123
- confidence: selectedSolution.confidence
124
- };
125
- }
126
- }
127
- ```
128
-
129
- ### 2. Predictive Scaling with Machine Learning
130
- ```javascript
131
- // ML-powered predictive scaling system
132
- class PredictiveScaler {
133
- constructor() {
134
- this.models = {
135
- time_series: new LSTMTimeSeriesModel(),
136
- regression: new RandomForestRegressor(),
137
- anomaly: new IsolationForestModel(),
138
- ensemble: new EnsemblePredictor()
139
- };
140
-
141
- this.featureEngineering = new FeatureEngineer();
142
- this.dataPreprocessor = new DataPreprocessor();
143
- }
144
-
145
- // Predict scaling requirements
146
- async predictScaling(swarmId, timeHorizon = 3600, confidence = 0.95) {
147
- // Collect training data
148
- const trainingData = await this.collectTrainingData(swarmId);
149
-
150
- // Engineer features
151
- const features = await this.featureEngineering.engineer(trainingData);
152
-
153
- // Train/update models
154
- await this.updateModels(features);
155
-
156
- // Generate predictions
157
- const predictions = await this.generatePredictions(timeHorizon, confidence);
158
-
159
- // Calculate scaling recommendations
160
- const scalingPlan = await this.calculateScalingPlan(predictions);
161
-
162
- return {
163
- predictions,
164
- scalingPlan,
165
- confidence: predictions.confidence,
166
- timeHorizon,
167
- features: features.summary
168
- };
169
- }
170
-
171
- // LSTM-based time series prediction
172
- async trainTimeSeriesModel(data, config = {}) {
173
- const model = await mcp.neural_train({
174
- pattern_type: 'prediction',
175
- training_data: JSON.stringify({
176
- sequences: data.sequences,
177
- targets: data.targets,
178
- features: data.features
179
- }),
180
- epochs: config.epochs || 100
181
- });
182
-
183
- // Validate model performance
184
- const validation = await this.validateModel(model, data.validation);
185
-
186
- if (validation.accuracy > 0.85) {
187
- await mcp.model_save({
188
- modelId: model.modelId,
189
- path: '/models/scaling_predictor.model'
190
- });
191
-
192
- return {
193
- model,
194
- validation,
195
- ready: true
196
- };
197
- }
198
-
199
- return {
200
- model: null,
201
- validation,
202
- ready: false,
203
- reason: 'Model accuracy below threshold'
204
- };
205
- }
206
-
207
- // Reinforcement learning for scaling decisions
208
- async trainScalingAgent(environment, episodes = 1000) {
209
- const agent = new DeepQNetworkAgent({
210
- stateSize: environment.stateSize,
211
- actionSize: environment.actionSize,
212
- learningRate: 0.001,
213
- epsilon: 1.0,
214
- epsilonDecay: 0.995,
215
- memorySize: 10000
216
- });
217
-
218
- const trainingHistory = [];
219
-
220
- for (let episode = 0; episode < episodes; episode++) {
221
- let state = environment.reset();
222
- let totalReward = 0;
223
- let done = false;
224
-
225
- while (!done) {
226
- // Agent selects action
227
- const action = agent.selectAction(state);
228
-
229
- // Environment responds
230
- const { nextState, reward, terminated } = environment.step(action);
231
-
232
- // Agent learns from experience
233
- agent.remember(state, action, reward, nextState, terminated);
234
-
235
- state = nextState;
236
- totalReward += reward;
237
- done = terminated;
238
-
239
- // Train agent periodically
240
- if (agent.memory.length > agent.batchSize) {
241
- await agent.train();
242
- }
243
- }
244
-
245
- trainingHistory.push({
246
- episode,
247
- reward: totalReward,
248
- epsilon: agent.epsilon
249
- });
250
-
251
- // Log progress
252
- if (episode % 100 === 0) {
253
- console.log(`Episode ${episode}: Reward ${totalReward}, Epsilon ${agent.epsilon}`);
254
- }
255
- }
256
-
257
- return {
258
- agent,
259
- trainingHistory,
260
- performance: this.evaluateAgentPerformance(trainingHistory)
261
- };
262
- }
263
- }
264
- ```
265
-
266
- ### 3. Circuit Breaker and Fault Tolerance
267
- ```javascript
268
- // Advanced circuit breaker with adaptive thresholds
269
- class AdaptiveCircuitBreaker {
270
- constructor(config = {}) {
271
- this.failureThreshold = config.failureThreshold || 5;
272
- this.recoveryTimeout = config.recoveryTimeout || 60000;
273
- this.successThreshold = config.successThreshold || 3;
274
-
275
- this.state = 'CLOSED'; // CLOSED, OPEN, HALF_OPEN
276
- this.failureCount = 0;
277
- this.successCount = 0;
278
- this.lastFailureTime = null;
279
-
280
- // Adaptive thresholds
281
- this.adaptiveThresholds = new AdaptiveThresholdManager();
282
- this.performanceHistory = new CircularBuffer(1000);
283
-
284
- // Metrics
285
- this.metrics = {
286
- totalRequests: 0,
287
- successfulRequests: 0,
288
- failedRequests: 0,
289
- circuitOpenEvents: 0,
290
- circuitHalfOpenEvents: 0,
291
- circuitClosedEvents: 0
292
- };
293
- }
294
-
295
- // Execute operation with circuit breaker protection
296
- async execute(operation, fallback = null) {
297
- this.metrics.totalRequests++;
298
-
299
- // Check circuit state
300
- if (this.state === 'OPEN') {
301
- if (this.shouldAttemptReset()) {
302
- this.state = 'HALF_OPEN';
303
- this.successCount = 0;
304
- this.metrics.circuitHalfOpenEvents++;
305
- } else {
306
- return await this.executeFallback(fallback);
307
- }
308
- }
309
-
310
- try {
311
- const startTime = performance.now();
312
- const result = await operation();
313
- const endTime = performance.now();
314
-
315
- // Record success
316
- this.onSuccess(endTime - startTime);
317
- return result;
318
-
319
- } catch (error) {
320
- // Record failure
321
- this.onFailure(error);
322
-
323
- // Execute fallback if available
324
- if (fallback) {
325
- return await this.executeFallback(fallback);
326
- }
327
-
328
- throw error;
329
- }
330
- }
331
-
332
- // Adaptive threshold adjustment
333
- adjustThresholds(performanceData) {
334
- const analysis = this.adaptiveThresholds.analyze(performanceData);
335
-
336
- if (analysis.recommendAdjustment) {
337
- this.failureThreshold = Math.max(
338
- 1,
339
- Math.round(this.failureThreshold * analysis.thresholdMultiplier)
340
- );
341
-
342
- this.recoveryTimeout = Math.max(
343
- 1000,
344
- Math.round(this.recoveryTimeout * analysis.timeoutMultiplier)
345
- );
346
- }
347
- }
348
-
349
- // Bulk head pattern for resource isolation
350
- createBulkhead(resourcePools) {
351
- return resourcePools.map(pool => ({
352
- name: pool.name,
353
- capacity: pool.capacity,
354
- queue: new PriorityQueue(),
355
- semaphore: new Semaphore(pool.capacity),
356
- circuitBreaker: new AdaptiveCircuitBreaker(pool.config),
357
- metrics: new BulkheadMetrics()
358
- }));
359
- }
360
- }
361
- ```
362
-
363
- ### 4. Performance Profiling and Optimization
364
- ```javascript
365
- // Comprehensive performance profiling system
366
- class PerformanceProfiler {
367
- constructor() {
368
- this.profilers = {
369
- cpu: new CPUProfiler(),
370
- memory: new MemoryProfiler(),
371
- io: new IOProfiler(),
372
- network: new NetworkProfiler(),
373
- application: new ApplicationProfiler()
374
- };
375
-
376
- this.analyzer = new ProfileAnalyzer();
377
- this.optimizer = new PerformanceOptimizer();
378
- }
379
-
380
- // Comprehensive performance profiling
381
- async profilePerformance(swarmId, duration = 60000) {
382
- const profilingSession = {
383
- swarmId,
384
- startTime: Date.now(),
385
- duration,
386
- profiles: new Map()
387
- };
388
-
389
- // Start all profilers concurrently
390
- const profilingTasks = Object.entries(this.profilers).map(
391
- async ([type, profiler]) => {
392
- const profile = await profiler.profile(duration);
393
- return [type, profile];
394
- }
395
- );
396
-
397
- const profiles = await Promise.all(profilingTasks);
398
-
399
- for (const [type, profile] of profiles) {
400
- profilingSession.profiles.set(type, profile);
401
- }
402
-
403
- // Analyze performance data
404
- const analysis = await this.analyzer.analyze(profilingSession);
405
-
406
- // Generate optimization recommendations
407
- const recommendations = await this.optimizer.recommend(analysis);
408
-
409
- return {
410
- session: profilingSession,
411
- analysis,
412
- recommendations,
413
- summary: this.generateSummary(analysis, recommendations)
414
- };
415
- }
416
-
417
- // CPU profiling with flame graphs
418
- async profileCPU(duration) {
419
- const cpuProfile = {
420
- samples: [],
421
- functions: new Map(),
422
- hotspots: [],
423
- flamegraph: null
424
- };
425
-
426
- // Sample CPU usage at high frequency
427
- const sampleInterval = 10; // 10ms
428
- const samples = duration / sampleInterval;
429
-
430
- for (let i = 0; i < samples; i++) {
431
- const sample = await this.sampleCPU();
432
- cpuProfile.samples.push(sample);
433
-
434
- // Update function statistics
435
- this.updateFunctionStats(cpuProfile.functions, sample);
436
-
437
- await this.sleep(sampleInterval);
438
- }
439
-
440
- // Generate flame graph
441
- cpuProfile.flamegraph = this.generateFlameGraph(cpuProfile.samples);
442
-
443
- // Identify hotspots
444
- cpuProfile.hotspots = this.identifyHotspots(cpuProfile.functions);
445
-
446
- return cpuProfile;
447
- }
448
-
449
- // Memory profiling with leak detection
450
- async profileMemory(duration) {
451
- const memoryProfile = {
452
- snapshots: [],
453
- allocations: [],
454
- deallocations: [],
455
- leaks: [],
456
- growth: []
457
- };
458
-
459
- // Take initial snapshot
460
- let previousSnapshot = await this.takeMemorySnapshot();
461
- memoryProfile.snapshots.push(previousSnapshot);
462
-
463
- const snapshotInterval = 5000; // 5 seconds
464
- const snapshots = duration / snapshotInterval;
465
-
466
- for (let i = 0; i < snapshots; i++) {
467
- await this.sleep(snapshotInterval);
468
-
469
- const snapshot = await this.takeMemorySnapshot();
470
- memoryProfile.snapshots.push(snapshot);
471
-
472
- // Analyze memory changes
473
- const changes = this.analyzeMemoryChanges(previousSnapshot, snapshot);
474
- memoryProfile.allocations.push(...changes.allocations);
475
- memoryProfile.deallocations.push(...changes.deallocations);
476
-
477
- // Detect potential leaks
478
- const leaks = this.detectMemoryLeaks(changes);
479
- memoryProfile.leaks.push(...leaks);
480
-
481
- previousSnapshot = snapshot;
482
- }
483
-
484
- // Analyze memory growth patterns
485
- memoryProfile.growth = this.analyzeMemoryGrowth(memoryProfile.snapshots);
486
-
487
- return memoryProfile;
488
- }
489
- }
490
- ```
491
-
492
- ## MCP Integration Hooks
493
-
494
- ### Resource Management Integration
495
- ```javascript
496
- // Comprehensive MCP resource management
497
- const resourceIntegration = {
498
- // Dynamic resource allocation
499
- async allocateResources(swarmId, requirements) {
500
- // Analyze current resource usage
501
- const currentUsage = await mcp.metrics_collect({
502
- components: ['cpu', 'memory', 'network', 'agents']
503
- });
504
-
505
- // Get performance metrics
506
- const performance = await mcp.performance_report({ format: 'detailed' });
507
-
508
- // Identify bottlenecks
509
- const bottlenecks = await mcp.bottleneck_analyze({});
510
-
511
- // Calculate optimal allocation
512
- const allocation = await this.calculateOptimalAllocation(
513
- currentUsage,
514
- performance,
515
- bottlenecks,
516
- requirements
517
- );
518
-
519
- // Apply resource allocation
520
- const result = await mcp.daa_resource_alloc({
521
- resources: allocation.resources,
522
- agents: allocation.agents
523
- });
524
-
525
- return {
526
- allocation,
527
- result,
528
- monitoring: await this.setupResourceMonitoring(allocation)
529
- };
530
- },
531
-
532
- // Predictive scaling
533
- async predictiveScale(swarmId, predictions) {
534
- // Get current swarm status
535
- const status = await mcp.swarm_status({ swarmId });
536
-
537
- // Calculate scaling requirements
538
- const scalingPlan = this.calculateScalingPlan(status, predictions);
539
-
540
- if (scalingPlan.scaleRequired) {
541
- // Execute scaling
542
- const scalingResult = await mcp.swarm_scale({
543
- swarmId,
544
- targetSize: scalingPlan.targetSize
545
- });
546
-
547
- // Optimize topology after scaling
548
- if (scalingResult.success) {
549
- await mcp.topology_optimize({ swarmId });
550
- }
551
-
552
- return {
553
- scaled: true,
554
- plan: scalingPlan,
555
- result: scalingResult
556
- };
557
- }
558
-
559
- return {
560
- scaled: false,
561
- reason: 'No scaling required',
562
- plan: scalingPlan
563
- };
564
- },
565
-
566
- // Performance optimization
567
- async optimizePerformance(swarmId) {
568
- // Collect comprehensive metrics
569
- const metrics = await Promise.all([
570
- mcp.performance_report({ format: 'json' }),
571
- mcp.bottleneck_analyze({}),
572
- mcp.agent_metrics({}),
573
- mcp.metrics_collect({ components: ['system', 'agents', 'coordination'] })
574
- ]);
575
-
576
- const [performance, bottlenecks, agentMetrics, systemMetrics] = metrics;
577
-
578
- // Generate optimization recommendations
579
- const optimizations = await this.generateOptimizations({
580
- performance,
581
- bottlenecks,
582
- agentMetrics,
583
- systemMetrics
584
- });
585
-
586
- // Apply optimizations
587
- const results = await this.applyOptimizations(swarmId, optimizations);
588
-
589
- return {
590
- optimizations,
591
- results,
592
- impact: await this.measureOptimizationImpact(swarmId, results)
593
- };
594
- }
595
- };
596
- ```
597
-
598
- ## Operational Commands
599
-
600
- ### Resource Management Commands
601
- ```bash
602
- # Analyze resource usage
603
- npx claude-flow metrics-collect --components ["cpu", "memory", "network"]
604
-
605
- # Optimize resource allocation
606
- npx claude-flow daa-resource-alloc --resources <resource-config>
607
-
608
- # Predictive scaling
609
- npx claude-flow swarm-scale --swarm-id <id> --target-size <size>
610
-
611
- # Performance profiling
612
- npx claude-flow performance-report --format detailed --timeframe 24h
613
-
614
- # Circuit breaker configuration
615
- npx claude-flow fault-tolerance --strategy circuit-breaker --config <config>
616
- ```
617
-
618
- ### Optimization Commands
619
- ```bash
620
- # Run performance optimization
621
- npx claude-flow optimize-performance --swarm-id <id> --strategy adaptive
622
-
623
- # Generate resource forecasts
624
- npx claude-flow forecast-resources --time-horizon 3600 --confidence 0.95
625
-
626
- # Profile system performance
627
- npx claude-flow profile-performance --duration 60000 --components all
628
-
629
- # Analyze bottlenecks
630
- npx claude-flow bottleneck-analyze --component swarm-coordination
631
- ```
632
-
633
- ## Integration Points
634
-
635
- ### With Other Optimization Agents
636
- - **Load Balancer**: Provides resource allocation data for load balancing decisions
637
- - **Performance Monitor**: Shares performance metrics and bottleneck analysis
638
- - **Topology Optimizer**: Coordinates resource allocation with topology changes
639
-
640
- ### With Swarm Infrastructure
641
- - **Task Orchestrator**: Allocates resources for task execution
642
- - **Agent Coordinator**: Manages agent resource requirements
643
- - **Memory System**: Stores resource allocation history and patterns
644
-
645
- ## Performance Metrics
646
-
647
- ### Resource Allocation KPIs
648
- ```javascript
649
- // Resource allocation performance metrics
650
- const allocationMetrics = {
651
- efficiency: {
652
- utilization_rate: this.calculateUtilizationRate(),
653
- waste_percentage: this.calculateWastePercentage(),
654
- allocation_accuracy: this.calculateAllocationAccuracy(),
655
- prediction_accuracy: this.calculatePredictionAccuracy()
656
- },
657
-
658
- performance: {
659
- allocation_latency: this.calculateAllocationLatency(),
660
- scaling_response_time: this.calculateScalingResponseTime(),
661
- optimization_impact: this.calculateOptimizationImpact(),
662
- cost_efficiency: this.calculateCostEfficiency()
663
- },
664
-
665
- reliability: {
666
- availability: this.calculateAvailability(),
667
- fault_tolerance: this.calculateFaultTolerance(),
668
- recovery_time: this.calculateRecoveryTime(),
669
- circuit_breaker_effectiveness: this.calculateCircuitBreakerEffectiveness()
670
- }
671
- };
672
- ```
673
-
674
- This Resource Allocator agent provides comprehensive adaptive resource allocation with ML-powered predictive scaling, fault tolerance patterns, and advanced performance optimization for efficient swarm resource management.