moflo 4.9.20 → 4.9.22

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 (240) 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-agent-rules.md +172 -0
  18. package/.claude/guidance/shipped/moflo-claude-swarm-cohesion.md +73 -265
  19. package/.claude/guidance/shipped/moflo-cli-reference.md +6 -6
  20. package/.claude/guidance/shipped/moflo-core-guidance.md +66 -184
  21. package/.claude/guidance/shipped/moflo-cross-platform.md +1 -1
  22. package/.claude/guidance/shipped/moflo-error-handling.md +3 -3
  23. package/.claude/guidance/shipped/moflo-guidance-rules.md +17 -7
  24. package/.claude/guidance/shipped/moflo-memory-strategy.md +76 -182
  25. package/.claude/guidance/shipped/moflo-memorydb-maintenance.md +6 -8
  26. package/.claude/guidance/shipped/moflo-settings-injection.md +7 -9
  27. package/.claude/guidance/shipped/moflo-source-hygiene.md +5 -5
  28. package/.claude/guidance/shipped/moflo-spell-connectors.md +3 -4
  29. package/.claude/guidance/shipped/moflo-spell-custom-steps.md +3 -4
  30. package/.claude/guidance/shipped/moflo-spell-engine.md +40 -162
  31. package/.claude/guidance/shipped/moflo-spell-runner.md +134 -0
  32. package/.claude/guidance/shipped/moflo-spell-sandboxing.md +10 -57
  33. package/.claude/guidance/shipped/moflo-spell-troubleshooting.md +149 -0
  34. package/.claude/guidance/shipped/moflo-subagents.md +43 -114
  35. package/.claude/guidance/shipped/moflo-task-icons.md +4 -4
  36. package/.claude/guidance/shipped/moflo-user-facing-language.md +3 -3
  37. package/.claude/guidance/shipped/moflo-verbose-command-filtering.md +3 -3
  38. package/.claude/guidance/shipped/moflo-yaml-reference.md +4 -5
  39. package/.claude/helpers/gate.cjs +192 -15
  40. package/.claude/helpers/prompt-hook.mjs +4 -38
  41. package/.claude/helpers/simplify-classify.cjs +32 -11
  42. package/.claude/helpers/subagent-bootstrap.json +1 -1
  43. package/.claude/helpers/subagent-start.cjs +1 -1
  44. package/.claude/skills/connector-builder/SKILL.md +42 -429
  45. package/.claude/skills/connector-builder/templates/connector.md +189 -0
  46. package/.claude/skills/connector-builder/templates/step-command.md +176 -0
  47. package/.claude/skills/eldar/SKILL.md +7 -7
  48. package/.claude/skills/fl/SKILL.md +3 -3
  49. package/.claude/skills/fl/execution-modes.md +39 -16
  50. package/.claude/skills/fl/phases.md +3 -3
  51. package/.claude/skills/{simplify → flo-simplify}/SKILL.md +11 -11
  52. package/.claude/skills/guidance/SKILL.md +17 -9
  53. package/.claude/skills/memory-patterns/SKILL.md +1 -1
  54. package/.claude/skills/publish/SKILL.md +121 -36
  55. package/.claude/skills/reset-epic/SKILL.md +2 -2
  56. package/.claude/skills/spell-builder/SKILL.md +39 -226
  57. package/.claude/skills/spell-builder/architecture.md +1 -1
  58. package/.claude/skills/spell-builder/permissions.md +107 -0
  59. package/.claude/skills/spell-builder/preflight.md +101 -0
  60. package/.claude/skills/spell-schedule/SKILL.md +2 -3
  61. package/bin/gate.cjs +192 -15
  62. package/bin/lib/retired-files.mjs +146 -0
  63. package/bin/prompt-hook.mjs +4 -38
  64. package/bin/session-start-launcher.mjs +120 -1
  65. package/bin/setup-project.mjs +63 -69
  66. package/bin/simplify-classify.cjs +32 -11
  67. package/dist/src/cli/appliance/rvfa-builder.js +1 -1
  68. package/dist/src/cli/commands/agent.js +3 -9
  69. package/dist/src/cli/commands/doctor-checks-deep.js +4 -0
  70. package/dist/src/cli/commands/hooks.js +1 -3
  71. package/dist/src/cli/commands/index.js +2 -0
  72. package/dist/src/cli/commands/retire.js +111 -0
  73. package/dist/src/cli/hooks/reasoningbank/index.js +7 -7
  74. package/dist/src/cli/init/claudemd-generator.js +30 -33
  75. package/dist/src/cli/init/executor.js +53 -69
  76. package/dist/src/cli/init/helpers-generator.js +165 -52
  77. package/dist/src/cli/init/moflo-init.js +41 -114
  78. package/dist/src/cli/init/settings-generator.js +44 -14
  79. package/dist/src/cli/mcp-tools/agent-tools.js +9 -27
  80. package/dist/src/cli/mcp-tools/hooks-tools.js +23 -21
  81. package/dist/src/cli/memory/controllers/semantic-router.js +18 -12
  82. package/dist/src/cli/memory/sona-optimizer.js +6 -6
  83. package/dist/src/cli/neural/domain/services/learning-service.js +3 -3
  84. package/dist/src/cli/services/agent-router.js +2 -5
  85. package/dist/src/cli/services/hook-block-hash.js +11 -2
  86. package/dist/src/cli/services/hook-wiring.js +86 -3
  87. package/dist/src/cli/services/subagent-bootstrap.js +1 -1
  88. package/dist/src/cli/shared/events/example-usage.js +6 -6
  89. package/dist/src/cli/shared/hooks/task-hooks.js +8 -8
  90. package/dist/src/cli/version.js +1 -1
  91. package/package.json +3 -2
  92. package/retired-files.json +1989 -0
  93. package/scripts/post-install-bootstrap.mjs +19 -0
  94. package/src/cli/data/model-registry.json +2 -2
  95. package/.claude/agents/consensus/byzantine-coordinator.md +0 -63
  96. package/.claude/agents/consensus/crdt-synchronizer.md +0 -997
  97. package/.claude/agents/consensus/gossip-coordinator.md +0 -63
  98. package/.claude/agents/consensus/performance-benchmarker.md +0 -851
  99. package/.claude/agents/consensus/quorum-manager.md +0 -823
  100. package/.claude/agents/consensus/raft-manager.md +0 -63
  101. package/.claude/agents/consensus/security-manager.md +0 -622
  102. package/.claude/agents/data/ml/data-ml-model.md +0 -193
  103. package/.claude/agents/github/code-review-swarm.md +0 -538
  104. package/.claude/agents/github/github-modes.md +0 -172
  105. package/.claude/agents/github/issue-tracker.md +0 -311
  106. package/.claude/agents/github/multi-repo-swarm.md +0 -551
  107. package/.claude/agents/github/pr-manager.md +0 -183
  108. package/.claude/agents/github/project-board-sync.md +0 -508
  109. package/.claude/agents/github/release-manager.md +0 -360
  110. package/.claude/agents/github/release-swarm.md +0 -580
  111. package/.claude/agents/github/repo-architect.md +0 -391
  112. package/.claude/agents/github/swarm-issue.md +0 -566
  113. package/.claude/agents/github/swarm-pr.md +0 -414
  114. package/.claude/agents/github/sync-coordinator.md +0 -426
  115. package/.claude/agents/github/workflow-automation.md +0 -606
  116. package/.claude/agents/goal/code-goal-planner.md +0 -440
  117. package/.claude/agents/goal/goal-planner.md +0 -168
  118. package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +0 -127
  119. package/.claude/agents/hive-mind/queen-coordinator.md +0 -198
  120. package/.claude/agents/hive-mind/scout-explorer.md +0 -233
  121. package/.claude/agents/hive-mind/swarm-memory-manager.md +0 -184
  122. package/.claude/agents/hive-mind/worker-specialist.md +0 -208
  123. package/.claude/agents/neural/safla-neural.md +0 -73
  124. package/.claude/agents/optimization/benchmark-suite.md +0 -665
  125. package/.claude/agents/optimization/load-balancer.md +0 -431
  126. package/.claude/agents/optimization/performance-monitor.md +0 -672
  127. package/.claude/agents/optimization/resource-allocator.md +0 -674
  128. package/.claude/agents/optimization/topology-optimizer.md +0 -808
  129. package/.claude/agents/reasoning/goal-planner.md +0 -67
  130. package/.claude/agents/sona/sona-learning-optimizer.md +0 -74
  131. package/.claude/agents/sparc/architecture.md +0 -472
  132. package/.claude/agents/sparc/pseudocode.md +0 -318
  133. package/.claude/agents/sparc/refinement.md +0 -525
  134. package/.claude/agents/sparc/specification.md +0 -276
  135. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +0 -225
  136. package/.claude/agents/swarm/adaptive-coordinator.md +0 -391
  137. package/.claude/agents/swarm/hierarchical-coordinator.md +0 -321
  138. package/.claude/agents/swarm/mesh-coordinator.md +0 -383
  139. package/.claude/agents/testing/production-validator.md +0 -395
  140. package/.claude/agents/testing/tdd-london-swarm.md +0 -244
  141. package/.claude/agents/v3/adr-architect.md +0 -184
  142. package/.claude/agents/v3/aidefence-guardian.md +0 -277
  143. package/.claude/agents/v3/claims-authorizer.md +0 -208
  144. package/.claude/agents/v3/collective-intelligence-coordinator.md +0 -988
  145. package/.claude/agents/v3/ddd-domain-expert.md +0 -220
  146. package/.claude/agents/v3/injection-analyst.md +0 -232
  147. package/.claude/agents/v3/memory-specialist.md +0 -987
  148. package/.claude/agents/v3/performance-engineer.md +0 -1225
  149. package/.claude/agents/v3/pii-detector.md +0 -146
  150. package/.claude/agents/v3/reasoningbank-learner.md +0 -213
  151. package/.claude/agents/v3/security-architect-aidefence.md +0 -405
  152. package/.claude/agents/v3/security-architect.md +0 -865
  153. package/.claude/agents/v3/security-auditor.md +0 -771
  154. package/.claude/agents/v3/sparc-orchestrator.md +0 -182
  155. package/.claude/agents/v3/swarm-memory-manager.md +0 -142
  156. package/.claude/agents/v3/v3-integration-architect.md +0 -205
  157. package/.claude/commands/claude-flow-help.md +0 -103
  158. package/.claude/commands/claude-flow-memory.md +0 -107
  159. package/.claude/commands/claude-flow-swarm.md +0 -205
  160. package/.claude/commands/github/README.md +0 -11
  161. package/.claude/commands/github/code-review-swarm.md +0 -514
  162. package/.claude/commands/github/code-review.md +0 -25
  163. package/.claude/commands/github/github-modes.md +0 -146
  164. package/.claude/commands/github/github-swarm.md +0 -113
  165. package/.claude/commands/github/issue-tracker.md +0 -284
  166. package/.claude/commands/github/issue-triage.md +0 -25
  167. package/.claude/commands/github/multi-repo-swarm.md +0 -519
  168. package/.claude/commands/github/pr-enhance.md +0 -26
  169. package/.claude/commands/github/pr-manager.md +0 -164
  170. package/.claude/commands/github/project-board-sync.md +0 -471
  171. package/.claude/commands/github/release-manager.md +0 -332
  172. package/.claude/commands/github/release-swarm.md +0 -544
  173. package/.claude/commands/github/repo-analyze.md +0 -25
  174. package/.claude/commands/github/repo-architect.md +0 -361
  175. package/.claude/commands/github/swarm-issue.md +0 -482
  176. package/.claude/commands/github/swarm-pr.md +0 -285
  177. package/.claude/commands/github/sync-coordinator.md +0 -294
  178. package/.claude/commands/github/workflow-automation.md +0 -442
  179. package/.claude/commands/hooks/README.md +0 -11
  180. package/.claude/commands/hooks/overview.md +0 -58
  181. package/.claude/commands/hooks/post-edit.md +0 -117
  182. package/.claude/commands/hooks/post-task.md +0 -112
  183. package/.claude/commands/hooks/pre-edit.md +0 -113
  184. package/.claude/commands/hooks/pre-task.md +0 -111
  185. package/.claude/commands/hooks/session-end.md +0 -118
  186. package/.claude/commands/hooks/setup.md +0 -103
  187. package/.claude/commands/simplify.md +0 -101
  188. package/.claude/commands/sparc/analyzer.md +0 -42
  189. package/.claude/commands/sparc/architect.md +0 -43
  190. package/.claude/commands/sparc/ask.md +0 -86
  191. package/.claude/commands/sparc/batch-executor.md +0 -44
  192. package/.claude/commands/sparc/code.md +0 -78
  193. package/.claude/commands/sparc/coder.md +0 -44
  194. package/.claude/commands/sparc/debug.md +0 -72
  195. package/.claude/commands/sparc/debugger.md +0 -44
  196. package/.claude/commands/sparc/designer.md +0 -43
  197. package/.claude/commands/sparc/devops.md +0 -98
  198. package/.claude/commands/sparc/docs-writer.md +0 -69
  199. package/.claude/commands/sparc/documenter.md +0 -44
  200. package/.claude/commands/sparc/innovator.md +0 -44
  201. package/.claude/commands/sparc/integration.md +0 -72
  202. package/.claude/commands/sparc/mcp.md +0 -106
  203. package/.claude/commands/sparc/memory-manager.md +0 -44
  204. package/.claude/commands/sparc/optimizer.md +0 -44
  205. package/.claude/commands/sparc/orchestrator.md +0 -116
  206. package/.claude/commands/sparc/post-deployment-monitoring-mode.md +0 -72
  207. package/.claude/commands/sparc/refinement-optimization-mode.md +0 -72
  208. package/.claude/commands/sparc/researcher.md +0 -44
  209. package/.claude/commands/sparc/reviewer.md +0 -44
  210. package/.claude/commands/sparc/security-review.md +0 -69
  211. package/.claude/commands/sparc/sparc-modes.md +0 -139
  212. package/.claude/commands/sparc/sparc.md +0 -99
  213. package/.claude/commands/sparc/spec-pseudocode.md +0 -69
  214. package/.claude/commands/sparc/spell-manager.md +0 -44
  215. package/.claude/commands/sparc/supabase-admin.md +0 -337
  216. package/.claude/commands/sparc/swarm-coordinator.md +0 -44
  217. package/.claude/commands/sparc/tdd.md +0 -44
  218. package/.claude/commands/sparc/tester.md +0 -44
  219. package/.claude/commands/sparc/tutorial.md +0 -68
  220. package/.claude/commands/sparc.md +0 -151
  221. package/.claude/guidance/shipped/moflo-session-start.md +0 -154
  222. package/.claude/guidance/shipped/moflo-spell-engine-architecture.md +0 -145
  223. package/.claude/skills/browser/SKILL.md +0 -204
  224. package/.claude/skills/github-code-review/SKILL.md +0 -1140
  225. package/.claude/skills/github-multi-repo/SKILL.md +0 -866
  226. package/.claude/skills/github-project-management/SKILL.md +0 -1272
  227. package/.claude/skills/github-release-management/SKILL.md +0 -1074
  228. package/.claude/skills/github-workflow-automation/SKILL.md +0 -1060
  229. package/.claude/skills/hive-mind-advanced/SKILL.md +0 -712
  230. package/.claude/skills/hooks-automation/SKILL.md +0 -1193
  231. package/.claude/skills/pair-programming/SKILL.md +0 -1202
  232. package/.claude/skills/performance-analysis/SKILL.md +0 -563
  233. package/.claude/skills/skill-builder/SKILL.md +0 -910
  234. package/.claude/skills/sparc-methodology/SKILL.md +0 -904
  235. package/.claude/skills/stream-chain/SKILL.md +0 -563
  236. package/.claude/skills/swarm-advanced/SKILL.md +0 -811
  237. package/.claude/skills/swarm-orchestration/SKILL.md +0 -179
  238. package/.claude/skills/verification-quality/SKILL.md +0 -649
  239. package/.claude/skills/worker-benchmarks/skill.md +0 -135
  240. package/.claude/skills/worker-integration/skill.md +0 -154
@@ -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.