moflo 4.8.19 → 4.8.20

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 (241) hide show
  1. package/.claude/guidance/shipped/moflo.md +45 -0
  2. package/.claude/helpers/statusline.cjs +1 -1
  3. package/.claude/workflow-state.json +9 -0
  4. package/package.json +2 -2
  5. package/src/@claude-flow/cli/dist/src/init/statusline-generator.js +1 -1
  6. package/src/@claude-flow/cli/dist/src/services/agentic-flow-bridge.js +5 -3
  7. package/src/@claude-flow/cli/package.json +1 -1
  8. package/src/@claude-flow/memory/dist/agent-memory-scope.d.ts +131 -0
  9. package/src/@claude-flow/memory/dist/agent-memory-scope.js +223 -0
  10. package/src/@claude-flow/memory/dist/agent-memory-scope.test.d.ts +8 -0
  11. package/src/@claude-flow/memory/dist/agent-memory-scope.test.js +466 -0
  12. package/src/@claude-flow/memory/dist/agentdb-adapter.d.ts +165 -0
  13. package/src/@claude-flow/memory/dist/agentdb-adapter.js +806 -0
  14. package/src/@claude-flow/memory/dist/agentdb-backend.d.ts +212 -0
  15. package/src/@claude-flow/memory/dist/agentdb-backend.js +842 -0
  16. package/src/@claude-flow/memory/dist/agentdb-backend.test.d.ts +7 -0
  17. package/src/@claude-flow/memory/dist/agentdb-backend.test.js +258 -0
  18. package/src/@claude-flow/memory/dist/application/commands/delete-memory.command.d.ts +65 -0
  19. package/src/@claude-flow/memory/dist/application/commands/delete-memory.command.js +129 -0
  20. package/src/@claude-flow/memory/dist/application/commands/store-memory.command.d.ts +48 -0
  21. package/src/@claude-flow/memory/dist/application/commands/store-memory.command.js +72 -0
  22. package/src/@claude-flow/memory/dist/application/index.d.ts +12 -0
  23. package/src/@claude-flow/memory/dist/application/index.js +15 -0
  24. package/src/@claude-flow/memory/dist/application/queries/search-memory.query.d.ts +72 -0
  25. package/src/@claude-flow/memory/dist/application/queries/search-memory.query.js +143 -0
  26. package/src/@claude-flow/memory/dist/application/services/memory-application-service.d.ts +121 -0
  27. package/src/@claude-flow/memory/dist/application/services/memory-application-service.js +190 -0
  28. package/src/@claude-flow/memory/dist/auto-memory-bridge.d.ts +226 -0
  29. package/src/@claude-flow/memory/dist/auto-memory-bridge.js +709 -0
  30. package/src/@claude-flow/memory/dist/auto-memory-bridge.test.d.ts +8 -0
  31. package/src/@claude-flow/memory/dist/auto-memory-bridge.test.js +757 -0
  32. package/src/@claude-flow/memory/dist/benchmark.test.d.ts +2 -0
  33. package/src/@claude-flow/memory/dist/benchmark.test.js +277 -0
  34. package/src/@claude-flow/memory/dist/cache-manager.d.ts +134 -0
  35. package/src/@claude-flow/memory/dist/cache-manager.js +407 -0
  36. package/src/@claude-flow/memory/dist/controller-registry.d.ts +216 -0
  37. package/src/@claude-flow/memory/dist/controller-registry.js +893 -0
  38. package/src/@claude-flow/memory/dist/controller-registry.test.d.ts +14 -0
  39. package/src/@claude-flow/memory/dist/controller-registry.test.js +593 -0
  40. package/src/@claude-flow/memory/dist/database-provider.d.ts +87 -0
  41. package/src/@claude-flow/memory/dist/database-provider.js +372 -0
  42. package/src/@claude-flow/memory/dist/database-provider.test.d.ts +7 -0
  43. package/src/@claude-flow/memory/dist/database-provider.test.js +287 -0
  44. package/src/@claude-flow/memory/dist/domain/entities/memory-entry.d.ts +143 -0
  45. package/src/@claude-flow/memory/dist/domain/entities/memory-entry.js +226 -0
  46. package/src/@claude-flow/memory/dist/domain/index.d.ts +11 -0
  47. package/src/@claude-flow/memory/dist/domain/index.js +12 -0
  48. package/src/@claude-flow/memory/dist/domain/repositories/memory-repository.interface.d.ts +102 -0
  49. package/src/@claude-flow/memory/dist/domain/repositories/memory-repository.interface.js +11 -0
  50. package/src/@claude-flow/memory/dist/domain/services/memory-domain-service.d.ts +105 -0
  51. package/src/@claude-flow/memory/dist/domain/services/memory-domain-service.js +297 -0
  52. package/src/@claude-flow/memory/dist/hnsw-index.d.ts +111 -0
  53. package/src/@claude-flow/memory/dist/hnsw-index.js +781 -0
  54. package/src/@claude-flow/memory/dist/hnsw-lite.d.ts +23 -0
  55. package/src/@claude-flow/memory/dist/hnsw-lite.js +168 -0
  56. package/src/@claude-flow/memory/dist/index.d.ts +204 -0
  57. package/src/@claude-flow/memory/dist/index.js +358 -0
  58. package/src/@claude-flow/memory/dist/infrastructure/index.d.ts +17 -0
  59. package/src/@claude-flow/memory/dist/infrastructure/index.js +16 -0
  60. package/src/@claude-flow/memory/dist/infrastructure/repositories/hybrid-memory-repository.d.ts +66 -0
  61. package/src/@claude-flow/memory/dist/infrastructure/repositories/hybrid-memory-repository.js +409 -0
  62. package/src/@claude-flow/memory/dist/learning-bridge.d.ts +137 -0
  63. package/src/@claude-flow/memory/dist/learning-bridge.js +335 -0
  64. package/src/@claude-flow/memory/dist/learning-bridge.test.d.ts +8 -0
  65. package/src/@claude-flow/memory/dist/learning-bridge.test.js +578 -0
  66. package/src/@claude-flow/memory/dist/memory-graph.d.ts +100 -0
  67. package/src/@claude-flow/memory/dist/memory-graph.js +333 -0
  68. package/src/@claude-flow/memory/dist/memory-graph.test.d.ts +8 -0
  69. package/src/@claude-flow/memory/dist/memory-graph.test.js +609 -0
  70. package/src/@claude-flow/memory/dist/migration.d.ts +68 -0
  71. package/src/@claude-flow/memory/dist/migration.js +513 -0
  72. package/src/@claude-flow/memory/dist/persistent-sona.d.ts +144 -0
  73. package/src/@claude-flow/memory/dist/persistent-sona.js +332 -0
  74. package/src/@claude-flow/memory/dist/query-builder.d.ts +211 -0
  75. package/src/@claude-flow/memory/dist/query-builder.js +438 -0
  76. package/src/@claude-flow/memory/dist/rvf-backend.d.ts +51 -0
  77. package/src/@claude-flow/memory/dist/rvf-backend.js +481 -0
  78. package/src/@claude-flow/memory/dist/rvf-learning-store.d.ts +139 -0
  79. package/src/@claude-flow/memory/dist/rvf-learning-store.js +295 -0
  80. package/src/@claude-flow/memory/dist/rvf-migration.d.ts +45 -0
  81. package/src/@claude-flow/memory/dist/rvf-migration.js +234 -0
  82. package/src/@claude-flow/memory/dist/sqljs-backend.d.ts +127 -0
  83. package/src/@claude-flow/memory/dist/sqljs-backend.js +600 -0
  84. package/src/@claude-flow/memory/dist/types.d.ts +484 -0
  85. package/src/@claude-flow/memory/dist/types.js +58 -0
  86. package/src/@claude-flow/shared/dist/core/config/defaults.d.ts +41 -0
  87. package/src/@claude-flow/shared/dist/core/config/defaults.js +186 -0
  88. package/src/@claude-flow/shared/dist/core/config/index.d.ts +8 -0
  89. package/src/@claude-flow/shared/dist/core/config/index.js +12 -0
  90. package/src/@claude-flow/shared/dist/core/config/loader.d.ts +45 -0
  91. package/src/@claude-flow/shared/dist/core/config/loader.js +222 -0
  92. package/src/@claude-flow/shared/dist/core/config/schema.d.ts +1134 -0
  93. package/src/@claude-flow/shared/dist/core/config/schema.js +158 -0
  94. package/src/@claude-flow/shared/dist/core/config/validator.d.ts +92 -0
  95. package/src/@claude-flow/shared/dist/core/config/validator.js +147 -0
  96. package/src/@claude-flow/shared/dist/core/event-bus.d.ts +31 -0
  97. package/src/@claude-flow/shared/dist/core/event-bus.js +197 -0
  98. package/src/@claude-flow/shared/dist/core/index.d.ts +15 -0
  99. package/src/@claude-flow/shared/dist/core/index.js +19 -0
  100. package/src/@claude-flow/shared/dist/core/interfaces/agent.interface.d.ts +200 -0
  101. package/src/@claude-flow/shared/dist/core/interfaces/agent.interface.js +6 -0
  102. package/src/@claude-flow/shared/dist/core/interfaces/coordinator.interface.d.ts +310 -0
  103. package/src/@claude-flow/shared/dist/core/interfaces/coordinator.interface.js +7 -0
  104. package/src/@claude-flow/shared/dist/core/interfaces/event.interface.d.ts +224 -0
  105. package/src/@claude-flow/shared/dist/core/interfaces/event.interface.js +46 -0
  106. package/src/@claude-flow/shared/dist/core/interfaces/index.d.ts +10 -0
  107. package/src/@claude-flow/shared/dist/core/interfaces/index.js +15 -0
  108. package/src/@claude-flow/shared/dist/core/interfaces/memory.interface.d.ts +298 -0
  109. package/src/@claude-flow/shared/dist/core/interfaces/memory.interface.js +7 -0
  110. package/src/@claude-flow/shared/dist/core/interfaces/task.interface.d.ts +185 -0
  111. package/src/@claude-flow/shared/dist/core/interfaces/task.interface.js +6 -0
  112. package/src/@claude-flow/shared/dist/core/orchestrator/event-coordinator.d.ts +35 -0
  113. package/src/@claude-flow/shared/dist/core/orchestrator/event-coordinator.js +101 -0
  114. package/src/@claude-flow/shared/dist/core/orchestrator/health-monitor.d.ts +60 -0
  115. package/src/@claude-flow/shared/dist/core/orchestrator/health-monitor.js +166 -0
  116. package/src/@claude-flow/shared/dist/core/orchestrator/index.d.ts +46 -0
  117. package/src/@claude-flow/shared/dist/core/orchestrator/index.js +64 -0
  118. package/src/@claude-flow/shared/dist/core/orchestrator/lifecycle-manager.d.ts +56 -0
  119. package/src/@claude-flow/shared/dist/core/orchestrator/lifecycle-manager.js +195 -0
  120. package/src/@claude-flow/shared/dist/core/orchestrator/session-manager.d.ts +83 -0
  121. package/src/@claude-flow/shared/dist/core/orchestrator/session-manager.js +193 -0
  122. package/src/@claude-flow/shared/dist/core/orchestrator/task-manager.d.ts +49 -0
  123. package/src/@claude-flow/shared/dist/core/orchestrator/task-manager.js +253 -0
  124. package/src/@claude-flow/shared/dist/events/domain-events.d.ts +282 -0
  125. package/src/@claude-flow/shared/dist/events/domain-events.js +165 -0
  126. package/src/@claude-flow/shared/dist/events/event-store.d.ts +126 -0
  127. package/src/@claude-flow/shared/dist/events/event-store.js +432 -0
  128. package/src/@claude-flow/shared/dist/events/event-store.test.d.ts +8 -0
  129. package/src/@claude-flow/shared/dist/events/event-store.test.js +297 -0
  130. package/src/@claude-flow/shared/dist/events/example-usage.d.ts +10 -0
  131. package/src/@claude-flow/shared/dist/events/example-usage.js +193 -0
  132. package/src/@claude-flow/shared/dist/events/index.d.ts +21 -0
  133. package/src/@claude-flow/shared/dist/events/index.js +22 -0
  134. package/src/@claude-flow/shared/dist/events/projections.d.ts +177 -0
  135. package/src/@claude-flow/shared/dist/events/projections.js +421 -0
  136. package/src/@claude-flow/shared/dist/events/rvf-event-log.d.ts +82 -0
  137. package/src/@claude-flow/shared/dist/events/rvf-event-log.js +340 -0
  138. package/src/@claude-flow/shared/dist/events/state-reconstructor.d.ts +101 -0
  139. package/src/@claude-flow/shared/dist/events/state-reconstructor.js +263 -0
  140. package/src/@claude-flow/shared/dist/events.d.ts +80 -0
  141. package/src/@claude-flow/shared/dist/events.js +249 -0
  142. package/src/@claude-flow/shared/dist/hooks/example-usage.d.ts +42 -0
  143. package/src/@claude-flow/shared/dist/hooks/example-usage.js +351 -0
  144. package/src/@claude-flow/shared/dist/hooks/executor.d.ts +100 -0
  145. package/src/@claude-flow/shared/dist/hooks/executor.js +267 -0
  146. package/src/@claude-flow/shared/dist/hooks/hooks.test.d.ts +9 -0
  147. package/src/@claude-flow/shared/dist/hooks/hooks.test.js +322 -0
  148. package/src/@claude-flow/shared/dist/hooks/index.d.ts +52 -0
  149. package/src/@claude-flow/shared/dist/hooks/index.js +51 -0
  150. package/src/@claude-flow/shared/dist/hooks/registry.d.ts +133 -0
  151. package/src/@claude-flow/shared/dist/hooks/registry.js +277 -0
  152. package/src/@claude-flow/shared/dist/hooks/safety/bash-safety.d.ts +105 -0
  153. package/src/@claude-flow/shared/dist/hooks/safety/bash-safety.js +481 -0
  154. package/src/@claude-flow/shared/dist/hooks/safety/file-organization.d.ts +144 -0
  155. package/src/@claude-flow/shared/dist/hooks/safety/file-organization.js +328 -0
  156. package/src/@claude-flow/shared/dist/hooks/safety/git-commit.d.ts +158 -0
  157. package/src/@claude-flow/shared/dist/hooks/safety/git-commit.js +450 -0
  158. package/src/@claude-flow/shared/dist/hooks/safety/index.d.ts +17 -0
  159. package/src/@claude-flow/shared/dist/hooks/safety/index.js +17 -0
  160. package/src/@claude-flow/shared/dist/hooks/session-hooks.d.ts +234 -0
  161. package/src/@claude-flow/shared/dist/hooks/session-hooks.js +334 -0
  162. package/src/@claude-flow/shared/dist/hooks/task-hooks.d.ts +163 -0
  163. package/src/@claude-flow/shared/dist/hooks/task-hooks.js +326 -0
  164. package/src/@claude-flow/shared/dist/hooks/types.d.ts +267 -0
  165. package/src/@claude-flow/shared/dist/hooks/types.js +62 -0
  166. package/src/@claude-flow/shared/dist/hooks/verify-exports.test.d.ts +9 -0
  167. package/src/@claude-flow/shared/dist/hooks/verify-exports.test.js +93 -0
  168. package/src/@claude-flow/shared/dist/index.d.ts +20 -0
  169. package/src/@claude-flow/shared/dist/index.js +50 -0
  170. package/src/@claude-flow/shared/dist/mcp/connection-pool.d.ts +98 -0
  171. package/src/@claude-flow/shared/dist/mcp/connection-pool.js +364 -0
  172. package/src/@claude-flow/shared/dist/mcp/index.d.ts +69 -0
  173. package/src/@claude-flow/shared/dist/mcp/index.js +84 -0
  174. package/src/@claude-flow/shared/dist/mcp/server.d.ts +166 -0
  175. package/src/@claude-flow/shared/dist/mcp/server.js +593 -0
  176. package/src/@claude-flow/shared/dist/mcp/session-manager.d.ts +136 -0
  177. package/src/@claude-flow/shared/dist/mcp/session-manager.js +335 -0
  178. package/src/@claude-flow/shared/dist/mcp/tool-registry.d.ts +178 -0
  179. package/src/@claude-flow/shared/dist/mcp/tool-registry.js +439 -0
  180. package/src/@claude-flow/shared/dist/mcp/transport/http.d.ts +104 -0
  181. package/src/@claude-flow/shared/dist/mcp/transport/http.js +476 -0
  182. package/src/@claude-flow/shared/dist/mcp/transport/index.d.ts +102 -0
  183. package/src/@claude-flow/shared/dist/mcp/transport/index.js +238 -0
  184. package/src/@claude-flow/shared/dist/mcp/transport/stdio.d.ts +104 -0
  185. package/src/@claude-flow/shared/dist/mcp/transport/stdio.js +263 -0
  186. package/src/@claude-flow/shared/dist/mcp/transport/websocket.d.ts +133 -0
  187. package/src/@claude-flow/shared/dist/mcp/transport/websocket.js +396 -0
  188. package/src/@claude-flow/shared/dist/mcp/types.d.ts +438 -0
  189. package/src/@claude-flow/shared/dist/mcp/types.js +54 -0
  190. package/src/@claude-flow/shared/dist/plugin-interface.d.ts +544 -0
  191. package/src/@claude-flow/shared/dist/plugin-interface.js +23 -0
  192. package/src/@claude-flow/shared/dist/plugin-loader.d.ts +139 -0
  193. package/src/@claude-flow/shared/dist/plugin-loader.js +434 -0
  194. package/src/@claude-flow/shared/dist/plugin-registry.d.ts +183 -0
  195. package/src/@claude-flow/shared/dist/plugin-registry.js +457 -0
  196. package/src/@claude-flow/shared/dist/plugins/index.d.ts +10 -0
  197. package/src/@claude-flow/shared/dist/plugins/index.js +10 -0
  198. package/src/@claude-flow/shared/dist/plugins/official/hive-mind-plugin.d.ts +106 -0
  199. package/src/@claude-flow/shared/dist/plugins/official/hive-mind-plugin.js +241 -0
  200. package/src/@claude-flow/shared/dist/plugins/official/index.d.ts +10 -0
  201. package/src/@claude-flow/shared/dist/plugins/official/index.js +10 -0
  202. package/src/@claude-flow/shared/dist/plugins/official/maestro-plugin.d.ts +121 -0
  203. package/src/@claude-flow/shared/dist/plugins/official/maestro-plugin.js +355 -0
  204. package/src/@claude-flow/shared/dist/plugins/types.d.ts +93 -0
  205. package/src/@claude-flow/shared/dist/plugins/types.js +9 -0
  206. package/src/@claude-flow/shared/dist/resilience/bulkhead.d.ts +105 -0
  207. package/src/@claude-flow/shared/dist/resilience/bulkhead.js +206 -0
  208. package/src/@claude-flow/shared/dist/resilience/circuit-breaker.d.ts +132 -0
  209. package/src/@claude-flow/shared/dist/resilience/circuit-breaker.js +233 -0
  210. package/src/@claude-flow/shared/dist/resilience/index.d.ts +19 -0
  211. package/src/@claude-flow/shared/dist/resilience/index.js +19 -0
  212. package/src/@claude-flow/shared/dist/resilience/rate-limiter.d.ts +168 -0
  213. package/src/@claude-flow/shared/dist/resilience/rate-limiter.js +314 -0
  214. package/src/@claude-flow/shared/dist/resilience/retry.d.ts +91 -0
  215. package/src/@claude-flow/shared/dist/resilience/retry.js +159 -0
  216. package/src/@claude-flow/shared/dist/security/index.d.ts +10 -0
  217. package/src/@claude-flow/shared/dist/security/index.js +12 -0
  218. package/src/@claude-flow/shared/dist/security/input-validation.d.ts +73 -0
  219. package/src/@claude-flow/shared/dist/security/input-validation.js +201 -0
  220. package/src/@claude-flow/shared/dist/security/secure-random.d.ts +92 -0
  221. package/src/@claude-flow/shared/dist/security/secure-random.js +142 -0
  222. package/src/@claude-flow/shared/dist/services/index.d.ts +7 -0
  223. package/src/@claude-flow/shared/dist/services/index.js +7 -0
  224. package/src/@claude-flow/shared/dist/services/v3-progress.service.d.ts +124 -0
  225. package/src/@claude-flow/shared/dist/services/v3-progress.service.js +402 -0
  226. package/src/@claude-flow/shared/dist/types/agent.types.d.ts +137 -0
  227. package/src/@claude-flow/shared/dist/types/agent.types.js +6 -0
  228. package/src/@claude-flow/shared/dist/types/index.d.ts +11 -0
  229. package/src/@claude-flow/shared/dist/types/index.js +17 -0
  230. package/src/@claude-flow/shared/dist/types/mcp.types.d.ts +266 -0
  231. package/src/@claude-flow/shared/dist/types/mcp.types.js +7 -0
  232. package/src/@claude-flow/shared/dist/types/memory.types.d.ts +236 -0
  233. package/src/@claude-flow/shared/dist/types/memory.types.js +7 -0
  234. package/src/@claude-flow/shared/dist/types/swarm.types.d.ts +186 -0
  235. package/src/@claude-flow/shared/dist/types/swarm.types.js +65 -0
  236. package/src/@claude-flow/shared/dist/types/task.types.d.ts +178 -0
  237. package/src/@claude-flow/shared/dist/types/task.types.js +32 -0
  238. package/src/@claude-flow/shared/dist/types.d.ts +197 -0
  239. package/src/@claude-flow/shared/dist/types.js +21 -0
  240. package/src/@claude-flow/shared/dist/utils/secure-logger.d.ts +69 -0
  241. package/src/@claude-flow/shared/dist/utils/secure-logger.js +208 -0
@@ -0,0 +1,241 @@
1
+ /**
2
+ * HiveMind Plugin - Official Plugin (ADR-004)
3
+ *
4
+ * Implements collective intelligence and emergent behavior patterns.
5
+ * Part of the official plugin collection.
6
+ *
7
+ * @module v3/shared/plugins/official/hive-mind
8
+ */
9
+ import { HookEvent, HookPriority } from '../../hooks/index.js';
10
+ /**
11
+ * HiveMind Plugin Implementation
12
+ */
13
+ export class HiveMindPlugin {
14
+ id = 'hive-mind';
15
+ name = 'HiveMind Collective Intelligence';
16
+ version = '1.0.0';
17
+ description = 'Collective intelligence with consensus mechanisms and emergent behavior';
18
+ context;
19
+ config;
20
+ decisions = new Map();
21
+ patterns = new Map();
22
+ collectiveMemory = new Map();
23
+ constructor(config) {
24
+ this.config = {
25
+ enabled: true,
26
+ consensusThreshold: 0.7,
27
+ collectiveMemoryEnabled: true,
28
+ emergentBehaviorEnabled: true,
29
+ maxVotingRounds: 3,
30
+ decisionTimeout: 30000,
31
+ ...config,
32
+ };
33
+ }
34
+ async initialize(context) {
35
+ this.context = context;
36
+ // Register hooks for collective behavior
37
+ context.hooks?.register(HookEvent.PreTaskExecute, async (ctx) => {
38
+ // Check collective memory for similar tasks
39
+ const taskKey = this.generateTaskKey(ctx.task);
40
+ const previous = this.collectiveMemory.get(taskKey);
41
+ if (previous && ctx.metadata) {
42
+ ctx.metadata.collectiveInsight = previous;
43
+ }
44
+ return { success: true, continueChain: true };
45
+ }, HookPriority.Normal, { name: 'hive-mind-pre-task' });
46
+ context.hooks?.register(HookEvent.PostTaskComplete, async (ctx) => {
47
+ // Store result in collective memory
48
+ if (this.config.collectiveMemoryEnabled && ctx.task) {
49
+ const taskInfo = ctx.task;
50
+ this.collectiveMemory.set(taskInfo.id, {
51
+ result: ctx.metadata?.result,
52
+ timestamp: new Date(),
53
+ agentId: ctx.agent?.id,
54
+ });
55
+ }
56
+ // Detect emergent patterns
57
+ if (this.config.emergentBehaviorEnabled && ctx.task) {
58
+ this.detectEmergentPatterns(ctx.task);
59
+ }
60
+ return { success: true, continueChain: true };
61
+ }, HookPriority.Normal, { name: 'hive-mind-post-task' });
62
+ }
63
+ async shutdown() {
64
+ this.decisions.clear();
65
+ this.patterns.clear();
66
+ this.collectiveMemory.clear();
67
+ this.context = undefined;
68
+ }
69
+ // ============================================================================
70
+ // Collective Decision Making
71
+ // ============================================================================
72
+ /**
73
+ * Request a collective decision from the swarm
74
+ */
75
+ async requestDecision(question, options) {
76
+ const decision = {
77
+ id: `decision-${Date.now()}`,
78
+ question,
79
+ votes: new Map(),
80
+ consensusConfidence: 0,
81
+ timestamp: new Date(),
82
+ };
83
+ this.decisions.set(decision.id, decision);
84
+ // Generate initial vote distribution from available agents
85
+ // When integrated with swarm, this receives real agent votes via event system
86
+ for (let i = 0; i < options.length && i < 3; i++) {
87
+ decision.votes.set(`agent-${i}`, {
88
+ agentId: `agent-${i}`,
89
+ vote: options[i % options.length],
90
+ confidence: 0.7 + Math.random() * 0.3,
91
+ });
92
+ }
93
+ // Calculate consensus
94
+ const voteCounts = new Map();
95
+ for (const vote of decision.votes.values()) {
96
+ voteCounts.set(vote.vote, (voteCounts.get(vote.vote) ?? 0) + vote.confidence);
97
+ }
98
+ let maxVotes = 0;
99
+ let consensusOption = '';
100
+ for (const [option, count] of voteCounts) {
101
+ if (count > maxVotes) {
102
+ maxVotes = count;
103
+ consensusOption = option;
104
+ }
105
+ }
106
+ const totalConfidence = Array.from(decision.votes.values()).reduce((sum, v) => sum + v.confidence, 0);
107
+ const consensusConfidence = maxVotes / totalConfidence;
108
+ if (consensusConfidence >= this.config.consensusThreshold) {
109
+ decision.consensus = consensusOption;
110
+ decision.consensusConfidence = consensusConfidence;
111
+ }
112
+ return decision;
113
+ }
114
+ /**
115
+ * Submit a vote for a decision
116
+ */
117
+ submitVote(decisionId, agentId, vote, confidence) {
118
+ const decision = this.decisions.get(decisionId);
119
+ if (!decision)
120
+ return false;
121
+ decision.votes.set(agentId, { agentId, vote, confidence });
122
+ this.recalculateConsensus(decision);
123
+ return true;
124
+ }
125
+ /**
126
+ * Get decision result
127
+ */
128
+ getDecision(decisionId) {
129
+ return this.decisions.get(decisionId);
130
+ }
131
+ // ============================================================================
132
+ // Emergent Behavior Detection
133
+ // ============================================================================
134
+ /**
135
+ * Detect emergent patterns from agent behavior
136
+ */
137
+ detectEmergentPatterns(taskData) {
138
+ // Analyze task patterns
139
+ const type = taskData.description?.split(' ')[0] ?? 'unknown';
140
+ const patternKey = `pattern-${type}`;
141
+ const existing = this.patterns.get(patternKey);
142
+ if (existing) {
143
+ existing.strength += 0.1;
144
+ if (!existing.contributors.includes(String(taskData.agentId))) {
145
+ existing.contributors.push(String(taskData.agentId));
146
+ }
147
+ }
148
+ else if (this.collectiveMemory.size > 5) {
149
+ // Only create patterns after enough collective memory
150
+ this.patterns.set(patternKey, {
151
+ id: patternKey,
152
+ type: 'task-pattern',
153
+ description: `Emergent pattern for ${type} tasks`,
154
+ contributors: [String(taskData.agentId)],
155
+ strength: 0.5,
156
+ discoveredAt: new Date(),
157
+ });
158
+ }
159
+ }
160
+ /**
161
+ * Get emergent patterns
162
+ */
163
+ getEmergentPatterns() {
164
+ return Array.from(this.patterns.values()).filter((p) => p.strength > 0.5);
165
+ }
166
+ // ============================================================================
167
+ // Collective Memory
168
+ // ============================================================================
169
+ /**
170
+ * Store in collective memory
171
+ */
172
+ storeCollective(key, value) {
173
+ this.collectiveMemory.set(key, {
174
+ value,
175
+ timestamp: new Date(),
176
+ accessCount: 0,
177
+ });
178
+ }
179
+ /**
180
+ * Retrieve from collective memory
181
+ */
182
+ retrieveCollective(key) {
183
+ const entry = this.collectiveMemory.get(key);
184
+ if (entry) {
185
+ entry.accessCount++;
186
+ return entry.value;
187
+ }
188
+ return undefined;
189
+ }
190
+ /**
191
+ * Get collective memory statistics
192
+ */
193
+ getCollectiveStats() {
194
+ return {
195
+ totalEntries: this.collectiveMemory.size,
196
+ patterns: this.patterns.size,
197
+ decisions: this.decisions.size,
198
+ topPatterns: this.getEmergentPatterns().slice(0, 5),
199
+ };
200
+ }
201
+ // ============================================================================
202
+ // Private Helpers
203
+ // ============================================================================
204
+ generateTaskKey(taskData) {
205
+ if (!taskData)
206
+ return 'unknown';
207
+ return `${taskData.description || 'task'}-${JSON.stringify(taskData.metadata ?? {})}`.slice(0, 100);
208
+ }
209
+ recalculateConsensus(decision) {
210
+ const voteCounts = new Map();
211
+ let totalConfidence = 0;
212
+ for (const vote of decision.votes.values()) {
213
+ voteCounts.set(vote.vote, (voteCounts.get(vote.vote) ?? 0) + vote.confidence);
214
+ totalConfidence += vote.confidence;
215
+ }
216
+ let maxVotes = 0;
217
+ let consensusOption = '';
218
+ for (const [option, count] of voteCounts) {
219
+ if (count > maxVotes) {
220
+ maxVotes = count;
221
+ consensusOption = option;
222
+ }
223
+ }
224
+ const consensusConfidence = totalConfidence > 0 ? maxVotes / totalConfidence : 0;
225
+ if (consensusConfidence >= this.config.consensusThreshold) {
226
+ decision.consensus = consensusOption;
227
+ decision.consensusConfidence = consensusConfidence;
228
+ }
229
+ else {
230
+ decision.consensus = undefined;
231
+ decision.consensusConfidence = consensusConfidence;
232
+ }
233
+ }
234
+ }
235
+ /**
236
+ * Factory function
237
+ */
238
+ export function createHiveMindPlugin(config) {
239
+ return new HiveMindPlugin(config);
240
+ }
241
+ //# sourceMappingURL=hive-mind-plugin.js.map
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Official Plugins - ADR-004 Implementation
3
+ *
4
+ * Exports all official @claude-flow plugins.
5
+ *
6
+ * @module v3/shared/plugins/official
7
+ */
8
+ export { HiveMindPlugin, createHiveMindPlugin, type HiveMindConfig, type CollectiveDecision, type EmergentPattern, } from './hive-mind-plugin.js';
9
+ export { MaestroPlugin, createMaestroPlugin, type MaestroConfig, type WorkflowStep, type Workflow, type OrchestrationResult, } from './maestro-plugin.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Official Plugins - ADR-004 Implementation
3
+ *
4
+ * Exports all official @claude-flow plugins.
5
+ *
6
+ * @module v3/shared/plugins/official
7
+ */
8
+ export { HiveMindPlugin, createHiveMindPlugin, } from './hive-mind-plugin.js';
9
+ export { MaestroPlugin, createMaestroPlugin, } from './maestro-plugin.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Maestro Plugin - Official Plugin (ADR-004)
3
+ *
4
+ * Implements orchestration patterns for complex multi-agent workflows.
5
+ * Part of the official plugin collection.
6
+ *
7
+ * @module v3/shared/plugins/official/maestro
8
+ */
9
+ import type { ClaudeFlowPlugin, PluginContext, PluginConfig } from '../types.js';
10
+ /**
11
+ * Maestro configuration
12
+ */
13
+ export interface MaestroConfig extends PluginConfig {
14
+ orchestrationMode: 'sequential' | 'parallel' | 'adaptive';
15
+ maxConcurrentWorkflows: number;
16
+ workflowTimeout: number;
17
+ autoRecovery: boolean;
18
+ checkpointInterval: number;
19
+ }
20
+ /**
21
+ * Workflow step
22
+ */
23
+ export interface WorkflowStep {
24
+ id: string;
25
+ name: string;
26
+ type: string;
27
+ input: Record<string, unknown>;
28
+ dependencies: string[];
29
+ assignedAgent?: string;
30
+ status: 'pending' | 'running' | 'completed' | 'failed' | 'skipped';
31
+ output?: unknown;
32
+ error?: string;
33
+ startedAt?: Date;
34
+ completedAt?: Date;
35
+ }
36
+ /**
37
+ * Workflow definition
38
+ */
39
+ export interface Workflow {
40
+ id: string;
41
+ name: string;
42
+ description: string;
43
+ steps: WorkflowStep[];
44
+ status: 'created' | 'running' | 'paused' | 'completed' | 'failed';
45
+ currentStep?: string;
46
+ progress: number;
47
+ createdAt: Date;
48
+ startedAt?: Date;
49
+ completedAt?: Date;
50
+ checkpoints: Map<string, unknown>;
51
+ }
52
+ /**
53
+ * Orchestration result
54
+ */
55
+ export interface OrchestrationResult {
56
+ workflowId: string;
57
+ success: boolean;
58
+ stepsCompleted: number;
59
+ stepsTotal: number;
60
+ outputs: Record<string, unknown>;
61
+ errors: Array<{
62
+ stepId: string;
63
+ error: string;
64
+ }>;
65
+ duration: number;
66
+ }
67
+ /**
68
+ * Maestro Plugin Implementation
69
+ */
70
+ export declare class MaestroPlugin implements ClaudeFlowPlugin {
71
+ readonly id = "maestro";
72
+ readonly name = "Maestro Workflow Orchestrator";
73
+ readonly version = "1.0.0";
74
+ readonly description = "Complex multi-agent workflow orchestration with adaptive strategies";
75
+ private context?;
76
+ private config;
77
+ private workflows;
78
+ private activeWorkflows;
79
+ constructor(config?: Partial<MaestroConfig>);
80
+ initialize(context: PluginContext): Promise<void>;
81
+ shutdown(): Promise<void>;
82
+ /**
83
+ * Create a new workflow
84
+ */
85
+ createWorkflow(name: string, description: string, steps: Array<Omit<WorkflowStep, 'id' | 'status'>>): Workflow;
86
+ /**
87
+ * Execute a workflow
88
+ */
89
+ executeWorkflow(workflowId: string): Promise<OrchestrationResult>;
90
+ /**
91
+ * Pause a workflow
92
+ */
93
+ pauseWorkflow(workflowId: string): boolean;
94
+ /**
95
+ * Resume a paused workflow
96
+ */
97
+ resumeWorkflow(workflowId: string): Promise<OrchestrationResult>;
98
+ /**
99
+ * Get workflow status
100
+ */
101
+ getWorkflow(workflowId: string): Workflow | undefined;
102
+ /**
103
+ * List all workflows
104
+ */
105
+ listWorkflows(): Workflow[];
106
+ private executeSequential;
107
+ private executeParallel;
108
+ private executeAdaptive;
109
+ private executeStep;
110
+ private buildExecutionLayers;
111
+ private resolveInputReferences;
112
+ private updateProgress;
113
+ private updateWorkflowProgress;
114
+ private handleWorkflowError;
115
+ private checkpointWorkflow;
116
+ }
117
+ /**
118
+ * Factory function
119
+ */
120
+ export declare function createMaestroPlugin(config?: Partial<MaestroConfig>): MaestroPlugin;
121
+ //# sourceMappingURL=maestro-plugin.d.ts.map