dino-spec 17.4.2 → 17.5.0

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 (195) hide show
  1. package/dist/commands/init.d.ts.map +1 -1
  2. package/dist/commands/init.js +10 -0
  3. package/dist/commands/init.js.map +1 -1
  4. package/dist/core/agents/__tests__/confidence-gate.test.d.ts +5 -0
  5. package/dist/core/agents/__tests__/confidence-gate.test.d.ts.map +1 -0
  6. package/dist/core/agents/__tests__/confidence-gate.test.js +329 -0
  7. package/dist/core/agents/__tests__/confidence-gate.test.js.map +1 -0
  8. package/dist/core/agents/__tests__/gap-detector.test.d.ts +5 -0
  9. package/dist/core/agents/__tests__/gap-detector.test.d.ts.map +1 -0
  10. package/dist/core/agents/__tests__/gap-detector.test.js +609 -0
  11. package/dist/core/agents/__tests__/gap-detector.test.js.map +1 -0
  12. package/dist/core/agents/__tests__/learning-loop.test.d.ts +5 -0
  13. package/dist/core/agents/__tests__/learning-loop.test.d.ts.map +1 -0
  14. package/dist/core/agents/__tests__/learning-loop.test.js +663 -0
  15. package/dist/core/agents/__tests__/learning-loop.test.js.map +1 -0
  16. package/dist/core/agents/__tests__/parallel-executor.test.d.ts +5 -0
  17. package/dist/core/agents/__tests__/parallel-executor.test.d.ts.map +1 -0
  18. package/dist/core/agents/__tests__/parallel-executor.test.js +610 -0
  19. package/dist/core/agents/__tests__/parallel-executor.test.js.map +1 -0
  20. package/dist/core/agents/__tests__/research-validator.test.js +5 -5
  21. package/dist/core/agents/__tests__/research-validator.test.js.map +1 -1
  22. package/dist/core/agents/__tests__/skill-creator.test.d.ts +5 -0
  23. package/dist/core/agents/__tests__/skill-creator.test.d.ts.map +1 -0
  24. package/dist/core/agents/__tests__/skill-creator.test.js +443 -0
  25. package/dist/core/agents/__tests__/skill-creator.test.js.map +1 -0
  26. package/dist/core/agents/__tests__/state-persistence.test.d.ts +2 -0
  27. package/dist/core/agents/__tests__/state-persistence.test.d.ts.map +1 -0
  28. package/dist/core/agents/__tests__/state-persistence.test.js +270 -0
  29. package/dist/core/agents/__tests__/state-persistence.test.js.map +1 -0
  30. package/dist/core/agents/__tests__/validation-cache.test.d.ts +2 -0
  31. package/dist/core/agents/__tests__/validation-cache.test.d.ts.map +1 -0
  32. package/dist/core/agents/__tests__/validation-cache.test.js +181 -0
  33. package/dist/core/agents/__tests__/validation-cache.test.js.map +1 -0
  34. package/dist/core/agents/blackboard.d.ts +22 -3
  35. package/dist/core/agents/blackboard.d.ts.map +1 -1
  36. package/dist/core/agents/blackboard.js +52 -2
  37. package/dist/core/agents/blackboard.js.map +1 -1
  38. package/dist/core/agents/circuit-breaker.d.ts +79 -1
  39. package/dist/core/agents/circuit-breaker.d.ts.map +1 -1
  40. package/dist/core/agents/circuit-breaker.js +175 -1
  41. package/dist/core/agents/circuit-breaker.js.map +1 -1
  42. package/dist/core/agents/clarification-phase.d.ts +128 -0
  43. package/dist/core/agents/clarification-phase.d.ts.map +1 -0
  44. package/dist/core/agents/clarification-phase.js +375 -0
  45. package/dist/core/agents/clarification-phase.js.map +1 -0
  46. package/dist/core/agents/confidence-gate.d.ts +116 -3
  47. package/dist/core/agents/confidence-gate.d.ts.map +1 -1
  48. package/dist/core/agents/confidence-gate.js +363 -3
  49. package/dist/core/agents/confidence-gate.js.map +1 -1
  50. package/dist/core/agents/correction-tracker.d.ts +197 -0
  51. package/dist/core/agents/correction-tracker.d.ts.map +1 -0
  52. package/dist/core/agents/correction-tracker.js +366 -0
  53. package/dist/core/agents/correction-tracker.js.map +1 -0
  54. package/dist/core/agents/dependency-graph.d.ts +193 -0
  55. package/dist/core/agents/dependency-graph.d.ts.map +1 -0
  56. package/dist/core/agents/dependency-graph.js +462 -0
  57. package/dist/core/agents/dependency-graph.js.map +1 -0
  58. package/dist/core/agents/gap-detector.d.ts +277 -0
  59. package/dist/core/agents/gap-detector.d.ts.map +1 -0
  60. package/dist/core/agents/gap-detector.js +540 -0
  61. package/dist/core/agents/gap-detector.js.map +1 -0
  62. package/dist/core/agents/index.d.ts +14 -1
  63. package/dist/core/agents/index.d.ts.map +1 -1
  64. package/dist/core/agents/index.js +26 -1
  65. package/dist/core/agents/index.js.map +1 -1
  66. package/dist/core/agents/message-protocol.d.ts +13 -2
  67. package/dist/core/agents/message-protocol.d.ts.map +1 -1
  68. package/dist/core/agents/message-protocol.js +20 -1
  69. package/dist/core/agents/message-protocol.js.map +1 -1
  70. package/dist/core/agents/parallel-executor.d.ts +182 -0
  71. package/dist/core/agents/parallel-executor.d.ts.map +1 -0
  72. package/dist/core/agents/parallel-executor.js +474 -0
  73. package/dist/core/agents/parallel-executor.js.map +1 -0
  74. package/dist/core/agents/pattern-detector.d.ts +157 -0
  75. package/dist/core/agents/pattern-detector.d.ts.map +1 -0
  76. package/dist/core/agents/pattern-detector.js +370 -0
  77. package/dist/core/agents/pattern-detector.js.map +1 -0
  78. package/dist/core/agents/registry-client.d.ts +6 -0
  79. package/dist/core/agents/registry-client.d.ts.map +1 -1
  80. package/dist/core/agents/registry-client.js +3 -0
  81. package/dist/core/agents/registry-client.js.map +1 -1
  82. package/dist/core/agents/research-phase.d.ts +114 -0
  83. package/dist/core/agents/research-phase.d.ts.map +1 -0
  84. package/dist/core/agents/research-phase.js +355 -0
  85. package/dist/core/agents/research-phase.js.map +1 -0
  86. package/dist/core/agents/research-validator.d.ts +13 -2
  87. package/dist/core/agents/research-validator.d.ts.map +1 -1
  88. package/dist/core/agents/research-validator.js +63 -31
  89. package/dist/core/agents/research-validator.js.map +1 -1
  90. package/dist/core/agents/skill-creator.d.ts +174 -0
  91. package/dist/core/agents/skill-creator.d.ts.map +1 -0
  92. package/dist/core/agents/skill-creator.js +570 -0
  93. package/dist/core/agents/skill-creator.js.map +1 -0
  94. package/dist/core/agents/state-persistence.d.ts +184 -0
  95. package/dist/core/agents/state-persistence.d.ts.map +1 -0
  96. package/dist/core/agents/state-persistence.js +394 -0
  97. package/dist/core/agents/state-persistence.js.map +1 -0
  98. package/dist/core/agents/validation-cache.d.ts +122 -0
  99. package/dist/core/agents/validation-cache.d.ts.map +1 -0
  100. package/dist/core/agents/validation-cache.js +280 -0
  101. package/dist/core/agents/validation-cache.js.map +1 -0
  102. package/dist/core/agents/validators/__tests__/validators.test.d.ts +5 -0
  103. package/dist/core/agents/validators/__tests__/validators.test.d.ts.map +1 -0
  104. package/dist/core/agents/validators/__tests__/validators.test.js +321 -0
  105. package/dist/core/agents/validators/__tests__/validators.test.js.map +1 -0
  106. package/dist/core/agents/validators/base-validator.d.ts +191 -0
  107. package/dist/core/agents/validators/base-validator.d.ts.map +1 -0
  108. package/dist/core/agents/validators/base-validator.js +192 -0
  109. package/dist/core/agents/validators/base-validator.js.map +1 -0
  110. package/dist/core/agents/validators/index.d.ts +7 -0
  111. package/dist/core/agents/validators/index.d.ts.map +1 -0
  112. package/dist/core/agents/validators/index.js +7 -0
  113. package/dist/core/agents/validators/index.js.map +1 -0
  114. package/dist/core/agents/validators/npm-validator.d.ts +50 -0
  115. package/dist/core/agents/validators/npm-validator.d.ts.map +1 -0
  116. package/dist/core/agents/validators/npm-validator.js +211 -0
  117. package/dist/core/agents/validators/npm-validator.js.map +1 -0
  118. package/dist/core/agents/validators/pip-validator.d.ts +49 -0
  119. package/dist/core/agents/validators/pip-validator.d.ts.map +1 -0
  120. package/dist/core/agents/validators/pip-validator.js +191 -0
  121. package/dist/core/agents/validators/pip-validator.js.map +1 -0
  122. package/dist/core/agents/validators/validator-registry.d.ts +122 -0
  123. package/dist/core/agents/validators/validator-registry.d.ts.map +1 -0
  124. package/dist/core/agents/validators/validator-registry.js +321 -0
  125. package/dist/core/agents/validators/validator-registry.js.map +1 -0
  126. package/dist/core/context-repl/types.d.ts +4 -4
  127. package/dist/core/memory/index.d.ts +1 -0
  128. package/dist/core/memory/index.d.ts.map +1 -1
  129. package/dist/core/memory/index.js +2 -0
  130. package/dist/core/memory/index.js.map +1 -1
  131. package/dist/core/memory/learning-store.d.ts +222 -0
  132. package/dist/core/memory/learning-store.d.ts.map +1 -0
  133. package/dist/core/memory/learning-store.js +477 -0
  134. package/dist/core/memory/learning-store.js.map +1 -0
  135. package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.d.ts +5 -0
  136. package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.d.ts.map +1 -0
  137. package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.js +401 -0
  138. package/dist/core/spec-analyzer/__tests__/ambiguity-detector.test.js.map +1 -0
  139. package/dist/core/spec-analyzer/ambiguity-detector.d.ts +99 -0
  140. package/dist/core/spec-analyzer/ambiguity-detector.d.ts.map +1 -0
  141. package/dist/core/spec-analyzer/ambiguity-detector.js +250 -0
  142. package/dist/core/spec-analyzer/ambiguity-detector.js.map +1 -0
  143. package/dist/core/spec-analyzer/clarification-generator.d.ts +76 -0
  144. package/dist/core/spec-analyzer/clarification-generator.d.ts.map +1 -0
  145. package/dist/core/spec-analyzer/clarification-generator.js +257 -0
  146. package/dist/core/spec-analyzer/clarification-generator.js.map +1 -0
  147. package/dist/core/spec-analyzer/index.d.ts +10 -1
  148. package/dist/core/spec-analyzer/index.d.ts.map +1 -1
  149. package/dist/core/spec-analyzer/index.js +13 -1
  150. package/dist/core/spec-analyzer/index.js.map +1 -1
  151. package/dist/core/spec-analyzer/patterns.d.ts +73 -0
  152. package/dist/core/spec-analyzer/patterns.d.ts.map +1 -0
  153. package/dist/core/spec-analyzer/patterns.js +412 -0
  154. package/dist/core/spec-analyzer/patterns.js.map +1 -0
  155. package/dist/hooks/__tests__/dynamic-generator.test.d.ts +5 -0
  156. package/dist/hooks/__tests__/dynamic-generator.test.d.ts.map +1 -0
  157. package/dist/hooks/__tests__/dynamic-generator.test.js +425 -0
  158. package/dist/hooks/__tests__/dynamic-generator.test.js.map +1 -0
  159. package/dist/hooks/__tests__/hook-agent-bridge.test.d.ts +5 -0
  160. package/dist/hooks/__tests__/hook-agent-bridge.test.d.ts.map +1 -0
  161. package/dist/hooks/__tests__/hook-agent-bridge.test.js +315 -0
  162. package/dist/hooks/__tests__/hook-agent-bridge.test.js.map +1 -0
  163. package/dist/hooks/dynamic-generator.d.ts +158 -0
  164. package/dist/hooks/dynamic-generator.d.ts.map +1 -0
  165. package/dist/hooks/dynamic-generator.js +448 -0
  166. package/dist/hooks/dynamic-generator.js.map +1 -0
  167. package/dist/hooks/hook-agent-bridge.d.ts +252 -0
  168. package/dist/hooks/hook-agent-bridge.d.ts.map +1 -0
  169. package/dist/hooks/hook-agent-bridge.js +489 -0
  170. package/dist/hooks/hook-agent-bridge.js.map +1 -0
  171. package/dist/hooks/index.d.ts +3 -1
  172. package/dist/hooks/index.d.ts.map +1 -1
  173. package/dist/hooks/index.js +5 -1
  174. package/dist/hooks/index.js.map +1 -1
  175. package/dist/mcp/tool-catalog.d.ts.map +1 -1
  176. package/dist/mcp/tool-catalog.js +47 -0
  177. package/dist/mcp/tool-catalog.js.map +1 -1
  178. package/dist/mcp/tool-tiers.d.ts.map +1 -1
  179. package/dist/mcp/tool-tiers.js +4 -0
  180. package/dist/mcp/tool-tiers.js.map +1 -1
  181. package/dist/mcp/tools/index.d.ts +2 -1
  182. package/dist/mcp/tools/index.d.ts.map +1 -1
  183. package/dist/mcp/tools/index.js +15 -1
  184. package/dist/mcp/tools/index.js.map +1 -1
  185. package/dist/mcp/tools/learning-store.d.ts +30 -0
  186. package/dist/mcp/tools/learning-store.d.ts.map +1 -0
  187. package/dist/mcp/tools/learning-store.js +286 -0
  188. package/dist/mcp/tools/learning-store.js.map +1 -0
  189. package/dist/rules/index.d.ts.map +1 -1
  190. package/dist/rules/index.js +2 -47
  191. package/dist/rules/index.js.map +1 -1
  192. package/dist/skills/index.d.ts.map +1 -1
  193. package/dist/skills/index.js +159 -38
  194. package/dist/skills/index.js.map +1 -1
  195. package/package.json +1 -1
@@ -0,0 +1,474 @@
1
+ /**
2
+ * Parallel Agent Executor - v17.5.0 (MAC-12)
3
+ *
4
+ * Executes multiple agents in parallel with:
5
+ * - Concurrency control (max simultaneous agents)
6
+ * - Timeout handling (per-agent and global)
7
+ * - Progress tracking and status updates
8
+ * - Result aggregation with partial success support
9
+ * - Integration with blackboard and message bus
10
+ */
11
+ import { EventEmitter } from 'node:events';
12
+ import { broadcastTaskComplete, cleanupOrchestratorContext, completeParallelExecution, createOrchestratorContext, getCoordinationStats, prepareParallelExecution, setCoordinationState, } from './orchestrator.js';
13
+ /**
14
+ * Default configuration
15
+ */
16
+ export const DEFAULT_EXECUTOR_CONFIG = {
17
+ maxConcurrency: 3,
18
+ agentTimeoutMs: 60000,
19
+ globalTimeoutMs: 300000,
20
+ conflictStrategy: 'fail',
21
+ continueOnFailure: true,
22
+ progressIntervalMs: 5000,
23
+ };
24
+ // =============================================================================
25
+ // ParallelExecutor Class
26
+ // =============================================================================
27
+ /**
28
+ * Executes multiple agents in parallel with coordination
29
+ */
30
+ export class ParallelExecutor extends EventEmitter {
31
+ config;
32
+ context;
33
+ agents = new Map();
34
+ startTime = 0;
35
+ progressTimer;
36
+ aborted = false;
37
+ projectDir;
38
+ constructor(config = {}, projectDir = process.cwd()) {
39
+ super();
40
+ this.config = { ...DEFAULT_EXECUTOR_CONFIG, ...config };
41
+ this.projectDir = projectDir;
42
+ this.context = createOrchestratorContext('parallel-executor');
43
+ }
44
+ // EventEmitter type overrides
45
+ on(event, listener) {
46
+ return super.on(event, listener);
47
+ }
48
+ emit(event, ...args) {
49
+ return super.emit(event, ...args);
50
+ }
51
+ /**
52
+ * Execute parallel agents for a parent task
53
+ */
54
+ async execute(parentTaskId, agentExecutor) {
55
+ this.startTime = Date.now();
56
+ this.aborted = false;
57
+ this.agents.clear();
58
+ try {
59
+ // Prepare execution plan
60
+ const { plan, spawnContexts } = await prepareParallelExecution({
61
+ parentTaskId,
62
+ subtaskIds: [],
63
+ conflictStrategy: this.config.conflictStrategy,
64
+ maxConcurrency: this.config.maxConcurrency,
65
+ timeoutMs: this.config.globalTimeoutMs,
66
+ }, this.projectDir);
67
+ // Initialize agent tracking
68
+ this.initializeAgentTracking(plan);
69
+ // Set up progress updates
70
+ this.startProgressUpdates();
71
+ // Set up global timeout
72
+ const globalTimeout = this.setupGlobalTimeout();
73
+ try {
74
+ // Execute waves sequentially, agents within wave in parallel
75
+ const allResults = [];
76
+ for (const wave of plan.waves) {
77
+ if (this.aborted)
78
+ break;
79
+ this.emit('wave:start', wave.waveNumber, wave.tasks.map((t) => t.taskId));
80
+ const waveResults = await this.executeWave(wave.tasks, spawnContexts, agentExecutor);
81
+ allResults.push(...waveResults);
82
+ // Check for failures if not continuing
83
+ if (!this.config.continueOnFailure) {
84
+ const failed = waveResults.some((r) => r.status !== 'completed');
85
+ if (failed) {
86
+ this.aborted = true;
87
+ }
88
+ }
89
+ this.emit('wave:complete', wave.waveNumber);
90
+ }
91
+ // Complete execution and synthesize results
92
+ const result = await completeParallelExecution({
93
+ parentTaskId,
94
+ subtaskIds: allResults.map((r) => r.taskId),
95
+ conflictStrategy: this.config.conflictStrategy,
96
+ }, allResults, this.projectDir);
97
+ this.emit('execution:complete', result);
98
+ return result;
99
+ }
100
+ finally {
101
+ clearTimeout(globalTimeout);
102
+ }
103
+ }
104
+ finally {
105
+ this.stopProgressUpdates();
106
+ cleanupOrchestratorContext(this.context);
107
+ }
108
+ }
109
+ /**
110
+ * Execute a single wave of parallel agents
111
+ */
112
+ async executeWave(tasks, spawnContexts, agentExecutor) {
113
+ const results = [];
114
+ const taskQueue = [...tasks];
115
+ const runningPromises = new Map();
116
+ while ((taskQueue.length > 0 || runningPromises.size > 0) && !this.aborted) {
117
+ // Fill up to max concurrency
118
+ while (taskQueue.length > 0 && runningPromises.size < this.config.maxConcurrency) {
119
+ const task = taskQueue.shift();
120
+ const context = spawnContexts.get(task.taskId);
121
+ if (!context) {
122
+ results.push(this.createFailedResult(task.taskId, 'No spawn context found'));
123
+ continue;
124
+ }
125
+ const promise = this.executeAgent(task.taskId, context, agentExecutor);
126
+ runningPromises.set(task.taskId, promise);
127
+ }
128
+ // Wait for any agent to complete
129
+ if (runningPromises.size > 0) {
130
+ const completedResult = await Promise.race(runningPromises.values());
131
+ runningPromises.delete(completedResult.taskId);
132
+ results.push(completedResult);
133
+ // Broadcast completion
134
+ await broadcastTaskComplete(this.context, completedResult.taskId, completedResult);
135
+ }
136
+ }
137
+ // Handle remaining if aborted
138
+ if (this.aborted && taskQueue.length > 0) {
139
+ for (const task of taskQueue) {
140
+ results.push(this.createCancelledResult(task.taskId));
141
+ }
142
+ }
143
+ return results;
144
+ }
145
+ /**
146
+ * Execute a single agent with timeout
147
+ */
148
+ async executeAgent(taskId, context, agentExecutor) {
149
+ const tracked = this.agents.get(taskId);
150
+ if (tracked) {
151
+ tracked.status = 'running';
152
+ tracked.startedAt = new Date().toISOString();
153
+ }
154
+ this.emit('agent:start', taskId);
155
+ setCoordinationState(this.context, `agent:${taskId}:status`, 'running');
156
+ const startTime = Date.now();
157
+ try {
158
+ // Execute with timeout
159
+ const result = await this.withTimeout(agentExecutor(context, this.config.agentTimeoutMs), this.config.agentTimeoutMs, taskId);
160
+ // Update tracking
161
+ if (tracked) {
162
+ tracked.status = 'completed';
163
+ tracked.completedAt = new Date().toISOString();
164
+ tracked.progress = 100;
165
+ tracked.result = result;
166
+ }
167
+ this.emit('agent:complete', taskId, result);
168
+ setCoordinationState(this.context, `agent:${taskId}:status`, 'completed');
169
+ return result;
170
+ }
171
+ catch (error) {
172
+ const isTimeout = error instanceof TimeoutError;
173
+ const errorMessage = error instanceof Error ? error.message : String(error);
174
+ // Update tracking
175
+ if (tracked) {
176
+ tracked.status = isTimeout ? 'timeout' : 'failed';
177
+ tracked.completedAt = new Date().toISOString();
178
+ tracked.error = errorMessage;
179
+ }
180
+ this.emit('agent:error', taskId, error instanceof Error ? error : new Error(errorMessage));
181
+ setCoordinationState(this.context, `agent:${taskId}:status`, tracked?.status || 'failed');
182
+ return {
183
+ taskId,
184
+ agentRole: context.role,
185
+ status: isTimeout ? 'timeout' : 'failed',
186
+ filesModified: [],
187
+ error: errorMessage,
188
+ tokensUsed: 0,
189
+ executionTimeMs: Date.now() - startTime,
190
+ };
191
+ }
192
+ }
193
+ /**
194
+ * Initialize agent tracking from plan
195
+ */
196
+ initializeAgentTracking(plan) {
197
+ for (const wave of plan.waves) {
198
+ for (const task of wave.tasks) {
199
+ this.agents.set(task.taskId, {
200
+ taskId: task.taskId,
201
+ status: 'pending',
202
+ progress: 0,
203
+ });
204
+ }
205
+ }
206
+ }
207
+ /**
208
+ * Start periodic progress updates
209
+ */
210
+ startProgressUpdates() {
211
+ this.progressTimer = setInterval(() => {
212
+ const progress = this.getProgress();
213
+ this.emit('progress', progress);
214
+ }, this.config.progressIntervalMs);
215
+ }
216
+ /**
217
+ * Stop progress updates
218
+ */
219
+ stopProgressUpdates() {
220
+ if (this.progressTimer) {
221
+ clearInterval(this.progressTimer);
222
+ this.progressTimer = undefined;
223
+ }
224
+ }
225
+ /**
226
+ * Set up global timeout
227
+ */
228
+ setupGlobalTimeout() {
229
+ return setTimeout(() => {
230
+ this.aborted = true;
231
+ // Mark all pending/running agents as cancelled
232
+ for (const [_taskId, agent] of this.agents) {
233
+ if (agent.status === 'pending' || agent.status === 'running') {
234
+ agent.status = 'cancelled';
235
+ agent.error = 'Global timeout exceeded';
236
+ }
237
+ }
238
+ }, this.config.globalTimeoutMs);
239
+ }
240
+ /**
241
+ * Wrap a promise with timeout
242
+ */
243
+ async withTimeout(promise, timeoutMs, taskId) {
244
+ return new Promise((resolve, reject) => {
245
+ const timer = setTimeout(() => {
246
+ reject(new TimeoutError(`Agent ${taskId} timed out after ${timeoutMs}ms`));
247
+ }, timeoutMs);
248
+ promise
249
+ .then((result) => {
250
+ clearTimeout(timer);
251
+ resolve(result);
252
+ })
253
+ .catch((error) => {
254
+ clearTimeout(timer);
255
+ reject(error);
256
+ });
257
+ });
258
+ }
259
+ /**
260
+ * Create a failed result for missing context
261
+ */
262
+ createFailedResult(taskId, error) {
263
+ const tracked = this.agents.get(taskId);
264
+ if (tracked) {
265
+ tracked.status = 'failed';
266
+ tracked.error = error;
267
+ }
268
+ return {
269
+ taskId,
270
+ agentRole: 'implementer',
271
+ status: 'failed',
272
+ filesModified: [],
273
+ error,
274
+ tokensUsed: 0,
275
+ executionTimeMs: 0,
276
+ };
277
+ }
278
+ /**
279
+ * Create a cancelled result
280
+ */
281
+ createCancelledResult(taskId) {
282
+ const tracked = this.agents.get(taskId);
283
+ if (tracked) {
284
+ tracked.status = 'cancelled';
285
+ tracked.error = 'Execution cancelled';
286
+ }
287
+ return {
288
+ taskId,
289
+ agentRole: 'implementer',
290
+ status: 'failed',
291
+ filesModified: [],
292
+ error: 'Execution cancelled',
293
+ tokensUsed: 0,
294
+ executionTimeMs: 0,
295
+ };
296
+ }
297
+ /**
298
+ * Get current execution progress
299
+ */
300
+ getProgress() {
301
+ const agents = Array.from(this.agents.values());
302
+ const pending = agents.filter((a) => a.status === 'pending').length;
303
+ const running = agents.filter((a) => a.status === 'running').length;
304
+ const completed = agents.filter((a) => a.status === 'completed').length;
305
+ const failed = agents.filter((a) => a.status === 'failed' || a.status === 'timeout' || a.status === 'cancelled').length;
306
+ const totalAgents = agents.length;
307
+ const overallProgress = totalAgents > 0 ? Math.round(((completed + failed) / totalAgents) * 100) : 0;
308
+ const elapsedMs = Date.now() - this.startTime;
309
+ // Estimate remaining time based on average completion time
310
+ let estimatedRemainingMs;
311
+ const completedAgents = agents.filter((a) => a.completedAt && a.startedAt);
312
+ if (completedAgents.length > 0 && running + pending > 0) {
313
+ const totalTime = completedAgents.reduce((sum, a) => {
314
+ const start = new Date(a.startedAt).getTime();
315
+ const end = new Date(a.completedAt).getTime();
316
+ return sum + (end - start);
317
+ }, 0);
318
+ const avgTime = totalTime / completedAgents.length;
319
+ estimatedRemainingMs = Math.round(avgTime * (running + pending));
320
+ }
321
+ return {
322
+ totalAgents,
323
+ pending,
324
+ running,
325
+ completed,
326
+ failed,
327
+ overallProgress,
328
+ elapsedMs,
329
+ estimatedRemainingMs,
330
+ agents,
331
+ };
332
+ }
333
+ /**
334
+ * Abort the current execution
335
+ */
336
+ abort() {
337
+ this.aborted = true;
338
+ }
339
+ /**
340
+ * Check if execution is aborted
341
+ */
342
+ isAborted() {
343
+ return this.aborted;
344
+ }
345
+ /**
346
+ * Get coordination statistics
347
+ */
348
+ getCoordinationStats() {
349
+ return getCoordinationStats(this.context);
350
+ }
351
+ }
352
+ // =============================================================================
353
+ // Timeout Error
354
+ // =============================================================================
355
+ /**
356
+ * Custom timeout error
357
+ */
358
+ export class TimeoutError extends Error {
359
+ constructor(message) {
360
+ super(message);
361
+ this.name = 'TimeoutError';
362
+ }
363
+ }
364
+ // =============================================================================
365
+ // Helper Functions
366
+ // =============================================================================
367
+ /**
368
+ * Create a parallel executor with default config
369
+ */
370
+ export function createParallelExecutor(config = {}, projectDir = process.cwd()) {
371
+ return new ParallelExecutor(config, projectDir);
372
+ }
373
+ /**
374
+ * Execute parallel agents with simplified API
375
+ */
376
+ export async function executeParallel(parentTaskId, agentExecutor, config = {}, projectDir = process.cwd()) {
377
+ const executor = createParallelExecutor(config, projectDir);
378
+ return executor.execute(parentTaskId, agentExecutor);
379
+ }
380
+ /**
381
+ * Format execution progress for display
382
+ */
383
+ export function formatExecutionProgress(progress) {
384
+ const lines = [];
385
+ lines.push('## Parallel Execution Progress');
386
+ lines.push('');
387
+ lines.push(`**Overall:** ${progress.overallProgress}%`);
388
+ lines.push(`**Elapsed:** ${Math.round(progress.elapsedMs / 1000)}s`);
389
+ if (progress.estimatedRemainingMs !== undefined) {
390
+ lines.push(`**Estimated Remaining:** ${Math.round(progress.estimatedRemainingMs / 1000)}s`);
391
+ }
392
+ lines.push('');
393
+ lines.push('### Agent Status');
394
+ lines.push(`- Pending: ${progress.pending}`);
395
+ lines.push(`- Running: ${progress.running}`);
396
+ lines.push(`- Completed: ${progress.completed}`);
397
+ lines.push(`- Failed: ${progress.failed}`);
398
+ lines.push('');
399
+ if (progress.running > 0) {
400
+ lines.push('### Running Agents');
401
+ for (const agent of progress.agents.filter((a) => a.status === 'running')) {
402
+ lines.push(`- **${agent.taskId}**: Running since ${agent.startedAt}`);
403
+ }
404
+ lines.push('');
405
+ }
406
+ if (progress.failed > 0) {
407
+ lines.push('### Failed Agents');
408
+ for (const agent of progress.agents.filter((a) => a.status === 'failed' || a.status === 'timeout' || a.status === 'cancelled')) {
409
+ lines.push(`- **${agent.taskId}**: ${agent.status} - ${agent.error || 'Unknown error'}`);
410
+ }
411
+ lines.push('');
412
+ }
413
+ return lines.join('\n');
414
+ }
415
+ /**
416
+ * Format parallel execution result for display
417
+ */
418
+ export function formatParallelResult(result) {
419
+ const lines = [];
420
+ lines.push('## Parallel Execution Result');
421
+ lines.push('');
422
+ lines.push(`**Status:** ${result.success ? '✅ Success' : '❌ Partial/Failed'}`);
423
+ lines.push(`**Completed:** ${result.completedTasks.length}`);
424
+ lines.push(`**Failed:** ${result.failedTasks.length}`);
425
+ lines.push(`**Total Tokens:** ${result.totalTokensUsed}`);
426
+ lines.push(`**Execution Time:** ${Math.round(result.executionTimeMs / 1000)}s`);
427
+ lines.push('');
428
+ if (result.completedTasks.length > 0) {
429
+ lines.push('### Completed Tasks');
430
+ for (const taskId of result.completedTasks) {
431
+ lines.push(`- ✅ ${taskId}`);
432
+ }
433
+ lines.push('');
434
+ }
435
+ if (result.failedTasks.length > 0) {
436
+ lines.push('### Failed Tasks');
437
+ for (const taskId of result.failedTasks) {
438
+ lines.push(`- ❌ ${taskId}`);
439
+ }
440
+ lines.push('');
441
+ }
442
+ if (result.conflicts.hasConflicts) {
443
+ lines.push('### Conflicts Detected');
444
+ for (const conflict of result.conflicts.conflicts) {
445
+ lines.push(`- **${conflict.type}**: ${conflict.description}`);
446
+ }
447
+ lines.push('');
448
+ }
449
+ if (result.synthesizedCheckpointId) {
450
+ lines.push(`**Synthesized Checkpoint:** ${result.synthesizedCheckpointId}`);
451
+ }
452
+ return lines.join('\n');
453
+ }
454
+ /**
455
+ * Create a mock agent executor for testing
456
+ */
457
+ export function createMockAgentExecutor(results, delayMs = 100) {
458
+ return async (context, _timeoutMs) => {
459
+ // Simulate execution time
460
+ await new Promise((resolve) => setTimeout(resolve, delayMs));
461
+ const mockResult = results.get(context.taskId);
462
+ return {
463
+ taskId: context.taskId,
464
+ agentRole: context.role,
465
+ status: mockResult?.status || 'completed',
466
+ checkpointId: mockResult?.checkpointId,
467
+ filesModified: mockResult?.filesModified || [],
468
+ error: mockResult?.error,
469
+ tokensUsed: mockResult?.tokensUsed || 1000,
470
+ executionTimeMs: mockResult?.executionTimeMs || delayMs,
471
+ };
472
+ };
473
+ }
474
+ //# sourceMappingURL=parallel-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parallel-executor.js","sourceRoot":"","sources":["../../../src/core/agents/parallel-executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,157 @@
1
+ /**
2
+ * Pattern Detector - v17.5.0
3
+ *
4
+ * Detects patterns from correction clusters for automation.
5
+ * Works with correction-tracker to identify learnable patterns.
6
+ *
7
+ * Pattern types:
8
+ * - Style patterns: Code formatting preferences
9
+ * - Naming patterns: Variable/function naming conventions
10
+ * - Structure patterns: Code organization preferences
11
+ * - Tool patterns: Library/tool preferences
12
+ *
13
+ * @module pattern-detector
14
+ */
15
+ import type { CorrectionCluster } from './correction-tracker.js';
16
+ /**
17
+ * Type of detected pattern
18
+ */
19
+ export type PatternType = 'style' | 'naming' | 'structure' | 'tool' | 'workflow' | 'preference';
20
+ /**
21
+ * Confidence level for pattern detection
22
+ */
23
+ export type PatternConfidence = 'high' | 'medium' | 'low';
24
+ /**
25
+ * A detected pattern ready for learning
26
+ */
27
+ export interface DetectedPattern {
28
+ id: string;
29
+ type: PatternType;
30
+ /** What triggers this pattern */
31
+ trigger: string;
32
+ /** The preferred approach */
33
+ preference: string;
34
+ /** Confidence based on cluster strength */
35
+ confidence: PatternConfidence;
36
+ /** Number of corrections that formed this pattern */
37
+ occurrences: number;
38
+ /** Example corrections that led to this pattern */
39
+ examples: Array<{
40
+ original: string;
41
+ corrected: string;
42
+ }>;
43
+ /** Keywords for matching */
44
+ keywords: string[];
45
+ /** Source cluster ID */
46
+ sourceClusterId: string;
47
+ /** When pattern was detected */
48
+ detectedAt: Date;
49
+ }
50
+ /**
51
+ * Pattern suggestion for session context
52
+ */
53
+ export interface PatternSuggestion {
54
+ pattern: DetectedPattern;
55
+ relevance: number;
56
+ reason: string;
57
+ }
58
+ /**
59
+ * Configuration for pattern detection
60
+ */
61
+ export interface PatternDetectorConfig {
62
+ /** Minimum cluster size for pattern detection (default: 3) */
63
+ minClusterSize: number;
64
+ /** Minimum similarity within cluster (default: 0.6) */
65
+ minClusterSimilarity: number;
66
+ /** Maximum patterns to suggest per session (default: 5) */
67
+ maxSuggestions: number;
68
+ /** Confidence boost from file context match (default: 0.1) */
69
+ fileContextBoost: number;
70
+ }
71
+ export declare const DEFAULT_DETECTOR_CONFIG: PatternDetectorConfig;
72
+ /**
73
+ * Detects patterns from correction clusters
74
+ */
75
+ export declare class PatternDetector {
76
+ private detectedPatterns;
77
+ private config;
78
+ constructor(config?: Partial<PatternDetectorConfig>);
79
+ /**
80
+ * Detect patterns from a cluster
81
+ */
82
+ detectFromCluster(cluster: CorrectionCluster): DetectedPattern | null;
83
+ /**
84
+ * Detect patterns from multiple clusters
85
+ */
86
+ detectFromClusters(clusters: CorrectionCluster[]): DetectedPattern[];
87
+ /**
88
+ * Get suggestions for current session context
89
+ */
90
+ getSuggestions(context: {
91
+ focusArea?: string;
92
+ recentFiles?: string[];
93
+ currentTask?: string;
94
+ }): PatternSuggestion[];
95
+ /**
96
+ * Get all detected patterns
97
+ */
98
+ getPatterns(): DetectedPattern[];
99
+ /**
100
+ * Get pattern by ID
101
+ */
102
+ getPattern(id: string): DetectedPattern | undefined;
103
+ /**
104
+ * Remove pattern
105
+ */
106
+ removePattern(id: string): boolean;
107
+ /**
108
+ * Clear all patterns
109
+ */
110
+ clear(): void;
111
+ /**
112
+ * Export state for persistence
113
+ */
114
+ export(): DetectedPattern[];
115
+ /**
116
+ * Import state from persistence
117
+ */
118
+ import(patterns: DetectedPattern[]): void;
119
+ private detectType;
120
+ private calculateConfidence;
121
+ private extractTrigger;
122
+ private extractPreference;
123
+ private extractKeywords;
124
+ private calculateRelevance;
125
+ private generateReason;
126
+ }
127
+ /** Global pattern detector */
128
+ export declare const patternDetector: PatternDetector;
129
+ /**
130
+ * Detect patterns from clusters using global detector
131
+ */
132
+ export declare function detectPatterns(clusters: CorrectionCluster[]): DetectedPattern[];
133
+ /**
134
+ * Get pattern suggestions for session context
135
+ */
136
+ export declare function getPatternSuggestions(context: {
137
+ focusArea?: string;
138
+ recentFiles?: string[];
139
+ currentTask?: string;
140
+ }): PatternSuggestion[];
141
+ /**
142
+ * Format pattern for display
143
+ */
144
+ export declare function formatDetectedPattern(pattern: DetectedPattern): string;
145
+ /**
146
+ * Format suggestion for session injection
147
+ */
148
+ export declare function formatSuggestionForSession(suggestion: PatternSuggestion): string;
149
+ /**
150
+ * Format multiple suggestions for session context
151
+ */
152
+ export declare function formatSuggestionsForSession(suggestions: PatternSuggestion[]): string;
153
+ /**
154
+ * Calculate confidence adjustment from patterns
155
+ */
156
+ export declare function calculateConfidenceAdjustment(patterns: DetectedPattern[]): number;
157
+ //# sourceMappingURL=pattern-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-detector.d.ts","sourceRoot":"","sources":["../../../src/core/agents/pattern-detector.ts"],"names":[],"mappings":"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"}