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,185 @@
1
+ /**
2
+ * V3 Task Interfaces
3
+ * Domain-Driven Design - Task Bounded Context
4
+ */
5
+ /**
6
+ * Task priority levels
7
+ */
8
+ export type TaskPriority = 'critical' | 'high' | 'medium' | 'low';
9
+ /**
10
+ * Task status throughout its lifecycle
11
+ */
12
+ export type TaskStatus = 'pending' | 'queued' | 'assigned' | 'running' | 'completed' | 'failed' | 'cancelled' | 'timeout';
13
+ /**
14
+ * Core task entity
15
+ */
16
+ export interface ITask {
17
+ readonly id: string;
18
+ readonly type: string;
19
+ readonly description: string;
20
+ readonly priority: number;
21
+ readonly createdAt: Date;
22
+ status: TaskStatus;
23
+ assignedAgent?: string;
24
+ startedAt?: Date;
25
+ completedAt?: Date;
26
+ timeout?: number;
27
+ input?: Record<string, unknown>;
28
+ output?: Record<string, unknown>;
29
+ error?: Error;
30
+ metadata?: {
31
+ requiredCapabilities?: string[];
32
+ retryCount?: number;
33
+ maxRetries?: number;
34
+ critical?: boolean;
35
+ parentTaskId?: string;
36
+ childTaskIds?: string[];
37
+ tags?: string[];
38
+ [key: string]: unknown;
39
+ };
40
+ }
41
+ /**
42
+ * Task creation parameters
43
+ */
44
+ export interface ITaskCreate {
45
+ type: string;
46
+ description: string;
47
+ priority?: number;
48
+ timeout?: number;
49
+ assignedAgent?: string;
50
+ input?: Record<string, unknown>;
51
+ metadata?: ITask['metadata'];
52
+ }
53
+ /**
54
+ * Task result after completion
55
+ */
56
+ export interface ITaskResult {
57
+ taskId: string;
58
+ success: boolean;
59
+ output?: Record<string, unknown>;
60
+ error?: Error;
61
+ duration: number;
62
+ agentId?: string;
63
+ metrics?: {
64
+ tokensUsed?: number;
65
+ memoryPeakMb?: number;
66
+ retryCount?: number;
67
+ };
68
+ }
69
+ /**
70
+ * Task queue interface for managing task ordering and processing
71
+ */
72
+ export interface ITaskQueue {
73
+ /**
74
+ * Add a task to the queue
75
+ */
76
+ enqueue(task: ITask): Promise<void>;
77
+ /**
78
+ * Remove and return the highest priority task
79
+ */
80
+ dequeue(): Promise<ITask | undefined>;
81
+ /**
82
+ * Peek at the next task without removing it
83
+ */
84
+ peek(): Promise<ITask | undefined>;
85
+ /**
86
+ * Get the current queue size
87
+ */
88
+ size(): number;
89
+ /**
90
+ * Check if the queue is empty
91
+ */
92
+ isEmpty(): boolean;
93
+ /**
94
+ * Clear all tasks from the queue
95
+ */
96
+ clear(): Promise<void>;
97
+ /**
98
+ * Get all queued tasks (for inspection)
99
+ */
100
+ getAll(): Promise<ITask[]>;
101
+ /**
102
+ * Remove a specific task by ID
103
+ */
104
+ remove(taskId: string): Promise<boolean>;
105
+ /**
106
+ * Update task priority
107
+ */
108
+ updatePriority(taskId: string, priority: number): Promise<boolean>;
109
+ }
110
+ /**
111
+ * Task manager interface for lifecycle management
112
+ */
113
+ export interface ITaskManager {
114
+ /**
115
+ * Create a new task
116
+ */
117
+ createTask(params: ITaskCreate): Promise<ITask>;
118
+ /**
119
+ * Get a task by ID
120
+ */
121
+ getTask(taskId: string): ITask | undefined;
122
+ /**
123
+ * Get all tasks matching optional filter
124
+ */
125
+ getTasks(filter?: Partial<Pick<ITask, 'status' | 'type' | 'assignedAgent'>>): ITask[];
126
+ /**
127
+ * Assign a task to an agent
128
+ */
129
+ assignTask(taskId: string, agentId: string): Promise<void>;
130
+ /**
131
+ * Start task execution
132
+ */
133
+ startTask(taskId: string): Promise<void>;
134
+ /**
135
+ * Complete a task with result
136
+ */
137
+ completeTask(taskId: string, result: ITaskResult): Promise<void>;
138
+ /**
139
+ * Fail a task with error
140
+ */
141
+ failTask(taskId: string, error: Error): Promise<void>;
142
+ /**
143
+ * Cancel a task
144
+ */
145
+ cancelTask(taskId: string, reason?: string): Promise<void>;
146
+ /**
147
+ * Retry a failed task
148
+ */
149
+ retryTask(taskId: string): Promise<void>;
150
+ /**
151
+ * Get task metrics
152
+ */
153
+ getMetrics(): TaskManagerMetrics;
154
+ /**
155
+ * Clean up old completed/failed tasks
156
+ */
157
+ cleanup(olderThan: Date): Promise<number>;
158
+ }
159
+ /**
160
+ * Task manager metrics
161
+ */
162
+ export interface TaskManagerMetrics {
163
+ totalTasks: number;
164
+ pendingTasks: number;
165
+ runningTasks: number;
166
+ completedTasks: number;
167
+ failedTasks: number;
168
+ cancelledTasks: number;
169
+ avgDuration: number;
170
+ avgWaitTime: number;
171
+ }
172
+ /**
173
+ * Task assignment strategy interface
174
+ */
175
+ export interface ITaskAssignmentStrategy {
176
+ /**
177
+ * Select the best agent for a task
178
+ */
179
+ selectAgent(task: ITask, availableAgents: string[]): Promise<string | undefined>;
180
+ /**
181
+ * Score an agent for a task (higher is better)
182
+ */
183
+ scoreAgent(task: ITask, agentId: string): Promise<number>;
184
+ }
185
+ //# sourceMappingURL=task.interface.d.ts.map
@@ -0,0 +1,6 @@
1
+ /**
2
+ * V3 Task Interfaces
3
+ * Domain-Driven Design - Task Bounded Context
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=task.interface.js.map
@@ -0,0 +1,35 @@
1
+ /**
2
+ * V3 Event Coordinator
3
+ * Decomposed from orchestrator.ts - Event routing
4
+ * ~100 lines (target achieved)
5
+ */
6
+ import type { IEvent, IEventBus, IEventHandler, IEventCoordinator } from '../interfaces/event.interface.js';
7
+ /**
8
+ * Event coordinator implementation
9
+ */
10
+ export declare class EventCoordinator implements IEventCoordinator {
11
+ private eventBus;
12
+ private handlers;
13
+ private initialized;
14
+ constructor(eventBus: IEventBus);
15
+ initialize(): Promise<void>;
16
+ shutdown(): Promise<void>;
17
+ route(event: IEvent): Promise<void>;
18
+ registerHandler(type: string, handler: IEventHandler): void;
19
+ unregisterHandler(type: string, handler: IEventHandler): void;
20
+ getEventBus(): IEventBus;
21
+ private registerSystemHandlers;
22
+ /**
23
+ * Get registered handler count for a type
24
+ */
25
+ getHandlerCount(type: string): number;
26
+ /**
27
+ * Get all registered event types
28
+ */
29
+ getRegisteredTypes(): string[];
30
+ /**
31
+ * Check if coordinator is initialized
32
+ */
33
+ isInitialized(): boolean;
34
+ }
35
+ //# sourceMappingURL=event-coordinator.d.ts.map
@@ -0,0 +1,101 @@
1
+ /**
2
+ * V3 Event Coordinator
3
+ * Decomposed from orchestrator.ts - Event routing
4
+ * ~100 lines (target achieved)
5
+ */
6
+ import { SystemEventTypes } from '../interfaces/event.interface.js';
7
+ /**
8
+ * Event coordinator implementation
9
+ */
10
+ export class EventCoordinator {
11
+ eventBus;
12
+ handlers = new Map();
13
+ initialized = false;
14
+ constructor(eventBus) {
15
+ this.eventBus = eventBus;
16
+ }
17
+ async initialize() {
18
+ if (this.initialized) {
19
+ return;
20
+ }
21
+ // Register default system event handlers
22
+ this.registerSystemHandlers();
23
+ this.initialized = true;
24
+ }
25
+ async shutdown() {
26
+ // Clear all handlers
27
+ this.handlers.clear();
28
+ this.initialized = false;
29
+ }
30
+ async route(event) {
31
+ const handlers = this.handlers.get(event.type);
32
+ if (!handlers || handlers.size === 0) {
33
+ return;
34
+ }
35
+ const handlerPromises = Array.from(handlers).map(async (handler) => {
36
+ try {
37
+ await handler(event);
38
+ }
39
+ catch (error) {
40
+ // Log error but don't throw
41
+ console.error(`Error in event handler for ${event.type}:`, error);
42
+ }
43
+ });
44
+ await Promise.allSettled(handlerPromises);
45
+ }
46
+ registerHandler(type, handler) {
47
+ let handlers = this.handlers.get(type);
48
+ if (!handlers) {
49
+ handlers = new Set();
50
+ this.handlers.set(type, handlers);
51
+ }
52
+ handlers.add(handler);
53
+ // Also register with event bus
54
+ this.eventBus.on(type, handler);
55
+ }
56
+ unregisterHandler(type, handler) {
57
+ const handlers = this.handlers.get(type);
58
+ if (handlers) {
59
+ handlers.delete(handler);
60
+ if (handlers.size === 0) {
61
+ this.handlers.delete(type);
62
+ }
63
+ }
64
+ // Also unregister from event bus
65
+ this.eventBus.off(type, handler);
66
+ }
67
+ getEventBus() {
68
+ return this.eventBus;
69
+ }
70
+ registerSystemHandlers() {
71
+ // Error handling
72
+ this.eventBus.on(SystemEventTypes.SYSTEM_ERROR, (event) => {
73
+ const { error, component } = event.payload;
74
+ console.error(`System error in ${component}:`, error);
75
+ });
76
+ // Deadlock detection
77
+ this.eventBus.on(SystemEventTypes.DEADLOCK_DETECTED, (event) => {
78
+ const { agents, resources } = event.payload;
79
+ console.warn('Deadlock detected:', { agents, resources });
80
+ });
81
+ }
82
+ /**
83
+ * Get registered handler count for a type
84
+ */
85
+ getHandlerCount(type) {
86
+ return this.handlers.get(type)?.size ?? 0;
87
+ }
88
+ /**
89
+ * Get all registered event types
90
+ */
91
+ getRegisteredTypes() {
92
+ return Array.from(this.handlers.keys());
93
+ }
94
+ /**
95
+ * Check if coordinator is initialized
96
+ */
97
+ isInitialized() {
98
+ return this.initialized;
99
+ }
100
+ }
101
+ //# sourceMappingURL=event-coordinator.js.map
@@ -0,0 +1,60 @@
1
+ /**
2
+ * V3 Health Monitor
3
+ * Decomposed from orchestrator.ts - Agent health checks
4
+ * ~150 lines (target achieved)
5
+ */
6
+ import type { IHealthMonitor, IHealthStatus, IComponentHealth } from '../interfaces/coordinator.interface.js';
7
+ import type { IEventBus } from '../interfaces/event.interface.js';
8
+ /**
9
+ * Health check function type
10
+ */
11
+ export type HealthCheckFn = () => Promise<{
12
+ healthy: boolean;
13
+ error?: string;
14
+ metrics?: Record<string, number>;
15
+ }>;
16
+ /**
17
+ * Health monitor configuration
18
+ */
19
+ export interface HealthMonitorConfig {
20
+ checkInterval: number;
21
+ historyLimit: number;
22
+ degradedThreshold: number;
23
+ unhealthyThreshold: number;
24
+ }
25
+ /**
26
+ * Health monitor implementation
27
+ */
28
+ export declare class HealthMonitor implements IHealthMonitor {
29
+ private eventBus;
30
+ private config;
31
+ private checks;
32
+ private history;
33
+ private interval?;
34
+ private listeners;
35
+ private running;
36
+ constructor(eventBus: IEventBus, config?: HealthMonitorConfig);
37
+ start(): void;
38
+ stop(): void;
39
+ getStatus(): Promise<IHealthStatus>;
40
+ registerCheck(name: string, check: HealthCheckFn): void;
41
+ unregisterCheck(name: string): void;
42
+ getHistory(limit?: number): IHealthStatus[];
43
+ onHealthChange(callback: (status: IHealthStatus) => void): () => void;
44
+ private addToHistory;
45
+ private notifyListeners;
46
+ private timeout;
47
+ /**
48
+ * Get component health by name
49
+ */
50
+ getComponentHealth(name: string): Promise<IComponentHealth | undefined>;
51
+ /**
52
+ * Check if system is healthy
53
+ */
54
+ isHealthy(): Promise<boolean>;
55
+ /**
56
+ * Get registered check names
57
+ */
58
+ getRegisteredChecks(): string[];
59
+ }
60
+ //# sourceMappingURL=health-monitor.d.ts.map
@@ -0,0 +1,166 @@
1
+ /**
2
+ * V3 Health Monitor
3
+ * Decomposed from orchestrator.ts - Agent health checks
4
+ * ~150 lines (target achieved)
5
+ */
6
+ import { SystemEventTypes } from '../interfaces/event.interface.js';
7
+ /**
8
+ * Health monitor implementation
9
+ */
10
+ export class HealthMonitor {
11
+ eventBus;
12
+ config;
13
+ checks = new Map();
14
+ history = [];
15
+ interval;
16
+ listeners = [];
17
+ running = false;
18
+ constructor(eventBus, config = {
19
+ checkInterval: 30000,
20
+ historyLimit: 100,
21
+ degradedThreshold: 1,
22
+ unhealthyThreshold: 2,
23
+ }) {
24
+ this.eventBus = eventBus;
25
+ this.config = config;
26
+ }
27
+ start() {
28
+ if (this.running) {
29
+ return;
30
+ }
31
+ this.running = true;
32
+ this.interval = setInterval(async () => {
33
+ const status = await this.getStatus();
34
+ this.addToHistory(status);
35
+ this.notifyListeners(status);
36
+ this.eventBus.emit(SystemEventTypes.SYSTEM_HEALTHCHECK, { status });
37
+ }, this.config.checkInterval);
38
+ }
39
+ stop() {
40
+ if (this.interval) {
41
+ clearInterval(this.interval);
42
+ this.interval = undefined;
43
+ }
44
+ this.running = false;
45
+ }
46
+ async getStatus() {
47
+ const components = {};
48
+ let unhealthyCount = 0;
49
+ let degradedCount = 0;
50
+ const checkPromises = Array.from(this.checks.entries()).map(async ([name, check]) => {
51
+ try {
52
+ const result = await Promise.race([
53
+ check(),
54
+ this.timeout(5000, 'Health check timeout'),
55
+ ]);
56
+ const health = {
57
+ name,
58
+ status: result.healthy ? 'healthy' : 'unhealthy',
59
+ lastCheck: new Date(),
60
+ error: result.error,
61
+ metrics: result.metrics,
62
+ };
63
+ return { name, health };
64
+ }
65
+ catch (error) {
66
+ return {
67
+ name,
68
+ health: {
69
+ name,
70
+ status: 'unhealthy',
71
+ lastCheck: new Date(),
72
+ error: error instanceof Error ? error.message : 'Unknown error',
73
+ },
74
+ };
75
+ }
76
+ });
77
+ const results = await Promise.allSettled(checkPromises);
78
+ for (const result of results) {
79
+ if (result.status === 'fulfilled') {
80
+ const { name, health } = result.value;
81
+ components[name] = health;
82
+ if (health.status === 'unhealthy') {
83
+ unhealthyCount++;
84
+ }
85
+ else if (health.status === 'degraded') {
86
+ degradedCount++;
87
+ }
88
+ }
89
+ }
90
+ let overallStatus = 'healthy';
91
+ if (unhealthyCount >= this.config.unhealthyThreshold) {
92
+ overallStatus = 'unhealthy';
93
+ }
94
+ else if (unhealthyCount > 0 ||
95
+ degradedCount >= this.config.degradedThreshold) {
96
+ overallStatus = 'degraded';
97
+ }
98
+ return {
99
+ status: overallStatus,
100
+ components,
101
+ timestamp: new Date(),
102
+ };
103
+ }
104
+ registerCheck(name, check) {
105
+ this.checks.set(name, check);
106
+ }
107
+ unregisterCheck(name) {
108
+ this.checks.delete(name);
109
+ }
110
+ getHistory(limit) {
111
+ const count = limit ?? this.config.historyLimit;
112
+ return this.history.slice(-count);
113
+ }
114
+ onHealthChange(callback) {
115
+ this.listeners.push(callback);
116
+ return () => {
117
+ const index = this.listeners.indexOf(callback);
118
+ if (index !== -1) {
119
+ this.listeners.splice(index, 1);
120
+ }
121
+ };
122
+ }
123
+ addToHistory(status) {
124
+ this.history.push(status);
125
+ // Trim history to limit
126
+ if (this.history.length > this.config.historyLimit) {
127
+ this.history = this.history.slice(-this.config.historyLimit);
128
+ }
129
+ }
130
+ notifyListeners(status) {
131
+ for (const listener of this.listeners) {
132
+ try {
133
+ listener(status);
134
+ }
135
+ catch {
136
+ // Ignore listener errors
137
+ }
138
+ }
139
+ }
140
+ timeout(ms, message) {
141
+ return new Promise((_, reject) => {
142
+ setTimeout(() => reject(new Error(message)), ms);
143
+ });
144
+ }
145
+ /**
146
+ * Get component health by name
147
+ */
148
+ async getComponentHealth(name) {
149
+ const status = await this.getStatus();
150
+ return status.components[name];
151
+ }
152
+ /**
153
+ * Check if system is healthy
154
+ */
155
+ async isHealthy() {
156
+ const status = await this.getStatus();
157
+ return status.status === 'healthy';
158
+ }
159
+ /**
160
+ * Get registered check names
161
+ */
162
+ getRegisteredChecks() {
163
+ return Array.from(this.checks.keys());
164
+ }
165
+ }
166
+ //# sourceMappingURL=health-monitor.js.map
@@ -0,0 +1,46 @@
1
+ /**
2
+ * V3 Orchestrator Facade
3
+ * Unified interface to decomposed orchestrator components
4
+ * ~50 lines (target achieved)
5
+ */
6
+ import { TaskManager } from './task-manager.js';
7
+ import { SessionManager, type SessionManagerConfig } from './session-manager.js';
8
+ import { HealthMonitor, type HealthMonitorConfig } from './health-monitor.js';
9
+ import { LifecycleManager, type LifecycleManagerConfig } from './lifecycle-manager.js';
10
+ import { EventCoordinator } from './event-coordinator.js';
11
+ import { EventBus } from '../event-bus.js';
12
+ export * from './task-manager.js';
13
+ export * from './session-manager.js';
14
+ export * from './health-monitor.js';
15
+ export * from './lifecycle-manager.js';
16
+ export * from './event-coordinator.js';
17
+ /**
18
+ * Orchestrator facade configuration
19
+ * (Note: For schema-validated config, use OrchestratorConfig from config/schema.ts)
20
+ */
21
+ export interface OrchestratorFacadeConfig {
22
+ session: SessionManagerConfig;
23
+ health: HealthMonitorConfig;
24
+ lifecycle: LifecycleManagerConfig;
25
+ }
26
+ /**
27
+ * Default orchestrator facade configuration
28
+ */
29
+ export declare const defaultOrchestratorFacadeConfig: OrchestratorFacadeConfig;
30
+ /**
31
+ * Create orchestrator components
32
+ */
33
+ export declare function createOrchestrator(config?: Partial<OrchestratorFacadeConfig>): {
34
+ eventBus: EventBus;
35
+ taskManager: TaskManager;
36
+ sessionManager: SessionManager;
37
+ healthMonitor: HealthMonitor;
38
+ lifecycleManager: LifecycleManager;
39
+ eventCoordinator: EventCoordinator;
40
+ config: OrchestratorFacadeConfig;
41
+ };
42
+ /**
43
+ * Orchestrator type for facade
44
+ */
45
+ export type OrchestratorComponents = ReturnType<typeof createOrchestrator>;
46
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,64 @@
1
+ /**
2
+ * V3 Orchestrator Facade
3
+ * Unified interface to decomposed orchestrator components
4
+ * ~50 lines (target achieved)
5
+ */
6
+ import { TaskManager } from './task-manager.js';
7
+ import { SessionManager } from './session-manager.js';
8
+ import { HealthMonitor } from './health-monitor.js';
9
+ import { LifecycleManager } from './lifecycle-manager.js';
10
+ import { EventCoordinator } from './event-coordinator.js';
11
+ import { EventBus } from '../event-bus.js';
12
+ export * from './task-manager.js';
13
+ export * from './session-manager.js';
14
+ export * from './health-monitor.js';
15
+ export * from './lifecycle-manager.js';
16
+ export * from './event-coordinator.js';
17
+ /**
18
+ * Default orchestrator facade configuration
19
+ */
20
+ export const defaultOrchestratorFacadeConfig = {
21
+ session: {
22
+ persistSessions: true,
23
+ dataDir: './data',
24
+ sessionRetentionMs: 3600000,
25
+ },
26
+ health: {
27
+ checkInterval: 30000,
28
+ historyLimit: 100,
29
+ degradedThreshold: 1,
30
+ unhealthyThreshold: 2,
31
+ },
32
+ lifecycle: {
33
+ maxConcurrentAgents: 20,
34
+ spawnTimeout: 30000,
35
+ terminateTimeout: 10000,
36
+ maxSpawnRetries: 3,
37
+ },
38
+ };
39
+ /**
40
+ * Create orchestrator components
41
+ */
42
+ export function createOrchestrator(config = {}) {
43
+ const mergedConfig = {
44
+ session: { ...defaultOrchestratorFacadeConfig.session, ...config.session },
45
+ health: { ...defaultOrchestratorFacadeConfig.health, ...config.health },
46
+ lifecycle: { ...defaultOrchestratorFacadeConfig.lifecycle, ...config.lifecycle },
47
+ };
48
+ const eventBus = new EventBus();
49
+ const taskManager = new TaskManager(eventBus);
50
+ const sessionManager = new SessionManager(eventBus, mergedConfig.session);
51
+ const healthMonitor = new HealthMonitor(eventBus, mergedConfig.health);
52
+ const lifecycleManager = new LifecycleManager(eventBus, mergedConfig.lifecycle);
53
+ const eventCoordinator = new EventCoordinator(eventBus);
54
+ return {
55
+ eventBus,
56
+ taskManager,
57
+ sessionManager,
58
+ healthMonitor,
59
+ lifecycleManager,
60
+ eventCoordinator,
61
+ config: mergedConfig,
62
+ };
63
+ }
64
+ //# sourceMappingURL=index.js.map