@haoyiyin/workflow 0.2.11 → 0.3.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 (164) hide show
  1. package/dist/src/agents/contracts/implementer.d.ts +29 -0
  2. package/dist/src/agents/contracts/implementer.d.ts.map +1 -0
  3. package/dist/src/agents/contracts/implementer.js +94 -0
  4. package/dist/src/agents/contracts/implementer.js.map +1 -0
  5. package/dist/src/agents/contracts/index.d.ts +11 -0
  6. package/dist/src/agents/contracts/index.d.ts.map +1 -0
  7. package/dist/src/agents/contracts/index.js +11 -0
  8. package/dist/src/agents/contracts/index.js.map +1 -0
  9. package/dist/src/agents/contracts/planner.d.ts +25 -0
  10. package/dist/src/agents/contracts/planner.d.ts.map +1 -0
  11. package/dist/src/agents/contracts/planner.js +107 -0
  12. package/dist/src/agents/contracts/planner.js.map +1 -0
  13. package/dist/src/agents/contracts/router.d.ts +24 -0
  14. package/dist/src/agents/contracts/router.d.ts.map +1 -0
  15. package/dist/src/agents/contracts/router.js +137 -0
  16. package/dist/src/agents/contracts/router.js.map +1 -0
  17. package/dist/src/agents/contracts/verifier.d.ts +27 -0
  18. package/dist/src/agents/contracts/verifier.d.ts.map +1 -0
  19. package/dist/src/agents/contracts/verifier.js +115 -0
  20. package/dist/src/agents/contracts/verifier.js.map +1 -0
  21. package/dist/src/agents/dispatcher.d.ts +94 -51
  22. package/dist/src/agents/dispatcher.d.ts.map +1 -1
  23. package/dist/src/agents/dispatcher.js +207 -164
  24. package/dist/src/agents/dispatcher.js.map +1 -1
  25. package/dist/src/persistence/index.d.ts +4 -2
  26. package/dist/src/persistence/index.d.ts.map +1 -1
  27. package/dist/src/persistence/index.js +4 -1
  28. package/dist/src/persistence/index.js.map +1 -1
  29. package/dist/src/persistence/plan-md.d.ts +3 -2
  30. package/dist/src/persistence/plan-md.d.ts.map +1 -1
  31. package/dist/src/persistence/plan-md.js +47 -15
  32. package/dist/src/persistence/plan-md.js.map +1 -1
  33. package/dist/src/persistence/state-md.d.ts +2 -0
  34. package/dist/src/persistence/state-md.d.ts.map +1 -1
  35. package/dist/src/persistence/state-md.js +40 -22
  36. package/dist/src/persistence/state-md.js.map +1 -1
  37. package/dist/src/persistence/types.d.ts +35 -39
  38. package/dist/src/persistence/types.d.ts.map +1 -1
  39. package/dist/src/router/namespace/core/intent-router.d.ts +24 -0
  40. package/dist/src/router/namespace/core/intent-router.d.ts.map +1 -0
  41. package/dist/src/router/namespace/core/intent-router.js +190 -0
  42. package/dist/src/router/namespace/core/intent-router.js.map +1 -0
  43. package/dist/src/router/namespace/core/lifecycle-router.d.ts +28 -0
  44. package/dist/src/router/namespace/core/lifecycle-router.d.ts.map +1 -0
  45. package/dist/src/router/namespace/core/lifecycle-router.js +132 -0
  46. package/dist/src/router/namespace/core/lifecycle-router.js.map +1 -0
  47. package/dist/src/router/namespace/core/state-router.d.ts +32 -0
  48. package/dist/src/router/namespace/core/state-router.d.ts.map +1 -0
  49. package/dist/src/router/namespace/core/state-router.js +157 -0
  50. package/dist/src/router/namespace/core/state-router.js.map +1 -0
  51. package/dist/src/router/namespace/domain/code-router.d.ts +26 -0
  52. package/dist/src/router/namespace/domain/code-router.d.ts.map +1 -0
  53. package/dist/src/router/namespace/domain/code-router.js +171 -0
  54. package/dist/src/router/namespace/domain/code-router.js.map +1 -0
  55. package/dist/src/router/namespace/domain/debug-router.d.ts +25 -0
  56. package/dist/src/router/namespace/domain/debug-router.d.ts.map +1 -0
  57. package/dist/src/router/namespace/domain/debug-router.js +139 -0
  58. package/dist/src/router/namespace/domain/debug-router.js.map +1 -0
  59. package/dist/src/router/namespace/domain/plan-router.d.ts +29 -0
  60. package/dist/src/router/namespace/domain/plan-router.d.ts.map +1 -0
  61. package/dist/src/router/namespace/domain/plan-router.js +160 -0
  62. package/dist/src/router/namespace/domain/plan-router.js.map +1 -0
  63. package/dist/src/router/namespace/domain/review-router.d.ts +24 -0
  64. package/dist/src/router/namespace/domain/review-router.d.ts.map +1 -0
  65. package/dist/src/router/namespace/domain/review-router.js +116 -0
  66. package/dist/src/router/namespace/domain/review-router.js.map +1 -0
  67. package/dist/src/router/namespace/index.d.ts +19 -0
  68. package/dist/src/router/namespace/index.d.ts.map +1 -0
  69. package/dist/src/router/namespace/index.js +22 -0
  70. package/dist/src/router/namespace/index.js.map +1 -0
  71. package/dist/src/router/namespace/registry.d.ts +67 -0
  72. package/dist/src/router/namespace/registry.d.ts.map +1 -0
  73. package/dist/src/router/namespace/registry.js +197 -0
  74. package/dist/src/router/namespace/registry.js.map +1 -0
  75. package/dist/src/router/namespace/types.d.ts +124 -0
  76. package/dist/src/router/namespace/types.d.ts.map +1 -0
  77. package/dist/src/router/namespace/types.js +20 -0
  78. package/dist/src/router/namespace/types.js.map +1 -0
  79. package/dist/src/router/namespace/utility/fallback-router.d.ts +28 -0
  80. package/dist/src/router/namespace/utility/fallback-router.d.ts.map +1 -0
  81. package/dist/src/router/namespace/utility/fallback-router.js +88 -0
  82. package/dist/src/router/namespace/utility/fallback-router.js.map +1 -0
  83. package/dist/src/router/namespace/utility/quick-task-router.d.ts +28 -0
  84. package/dist/src/router/namespace/utility/quick-task-router.d.ts.map +1 -0
  85. package/dist/src/router/namespace/utility/quick-task-router.js +99 -0
  86. package/dist/src/router/namespace/utility/quick-task-router.js.map +1 -0
  87. package/dist/src/router/namespace/utility/research-router.d.ts +24 -0
  88. package/dist/src/router/namespace/utility/research-router.d.ts.map +1 -0
  89. package/dist/src/router/namespace/utility/research-router.js +84 -0
  90. package/dist/src/router/namespace/utility/research-router.js.map +1 -0
  91. package/dist/src/skills/agents-md/index.js +2 -2
  92. package/dist/src/skills/agents-md/index.js.map +1 -1
  93. package/dist/src/skills/execute-plan/index.d.ts +45 -65
  94. package/dist/src/skills/execute-plan/index.d.ts.map +1 -1
  95. package/dist/src/skills/execute-plan/index.js +325 -551
  96. package/dist/src/skills/execute-plan/index.js.map +1 -1
  97. package/dist/src/skills/index.d.ts +1 -0
  98. package/dist/src/skills/index.d.ts.map +1 -1
  99. package/dist/src/skills/index.js +1 -0
  100. package/dist/src/skills/index.js.map +1 -1
  101. package/dist/src/skills/quick-task/index.d.ts +4 -4
  102. package/dist/src/skills/quick-task/index.js +1 -1
  103. package/dist/src/skills/quick-task/index.js.map +1 -1
  104. package/dist/src/skills/review-diff/index.d.ts +6 -6
  105. package/dist/src/skills/review-diff/index.js +1 -1
  106. package/dist/src/skills/review-diff/index.js.map +1 -1
  107. package/dist/src/skills/router/index.d.ts +101 -0
  108. package/dist/src/skills/router/index.d.ts.map +1 -0
  109. package/dist/src/skills/router/index.js +450 -0
  110. package/dist/src/skills/router/index.js.map +1 -0
  111. package/dist/src/skills/router/types.d.ts +79 -0
  112. package/dist/src/skills/router/types.d.ts.map +1 -0
  113. package/dist/src/skills/router/types.js +8 -0
  114. package/dist/src/skills/router/types.js.map +1 -0
  115. package/dist/src/skills/systematic-debugging/index.js +1 -1
  116. package/dist/src/skills/systematic-debugging/index.js.map +1 -1
  117. package/dist/src/skills/tdd/index.d.ts +14 -14
  118. package/dist/src/skills/tdd/index.js +1 -1
  119. package/dist/src/skills/tdd/index.js.map +1 -1
  120. package/dist/src/skills/to-plan/index-enhanced.d.ts +4 -4
  121. package/dist/src/skills/to-plan/index-enhanced.d.ts.map +1 -1
  122. package/dist/src/skills/to-plan/index-enhanced.js +3 -5
  123. package/dist/src/skills/to-plan/index-enhanced.js.map +1 -1
  124. package/dist/src/skills/to-plan/index.d.ts +24 -91
  125. package/dist/src/skills/to-plan/index.d.ts.map +1 -1
  126. package/dist/src/skills/to-plan/index.js +214 -409
  127. package/dist/src/skills/to-plan/index.js.map +1 -1
  128. package/package.json +3 -5
  129. package/src/agents/contracts/implementer.ts +122 -0
  130. package/src/agents/contracts/index.ts +27 -0
  131. package/src/agents/contracts/planner.ts +129 -0
  132. package/src/agents/contracts/router.ts +168 -0
  133. package/src/agents/contracts/verifier.ts +137 -0
  134. package/src/agents/dispatcher.ts +387 -362
  135. package/src/persistence/index.ts +10 -4
  136. package/src/persistence/plan-md.ts +52 -18
  137. package/src/persistence/state-md.ts +45 -23
  138. package/src/persistence/types.ts +37 -40
  139. package/src/router/namespace/README.md +127 -0
  140. package/src/router/namespace/core/intent-router.ts +221 -0
  141. package/src/router/namespace/core/lifecycle-router.ts +156 -0
  142. package/src/router/namespace/core/state-router.ts +192 -0
  143. package/src/router/namespace/domain/code-router.ts +202 -0
  144. package/src/router/namespace/domain/debug-router.ts +167 -0
  145. package/src/router/namespace/domain/plan-router.ts +196 -0
  146. package/src/router/namespace/domain/review-router.ts +142 -0
  147. package/src/router/namespace/index.ts +84 -0
  148. package/src/router/namespace/registry.ts +242 -0
  149. package/src/router/namespace/types.ts +182 -0
  150. package/src/router/namespace/utility/fallback-router.ts +107 -0
  151. package/src/router/namespace/utility/quick-task-router.ts +121 -0
  152. package/src/router/namespace/utility/research-router.ts +105 -0
  153. package/src/skills/agents-md/index.ts +2 -2
  154. package/src/skills/execute-plan/index.ts +419 -673
  155. package/src/skills/index.ts +1 -0
  156. package/src/skills/quick-task/index.ts +1 -1
  157. package/src/skills/review-diff/index.ts +1 -1
  158. package/src/skills/router/SKILL.md +181 -0
  159. package/src/skills/router/index.ts +577 -0
  160. package/src/skills/router/types.ts +90 -0
  161. package/src/skills/systematic-debugging/index.ts +1 -1
  162. package/src/skills/tdd/index.ts +1 -1
  163. package/src/skills/to-plan/index-enhanced.ts +3 -5
  164. package/src/skills/to-plan/index.ts +231 -502
@@ -1,12 +1,15 @@
1
1
  /**
2
- * Subagent Dispatcher - Spawns isolated subagents to do all real work
2
+ * Subagent Dispatcher - Spawns isolated subagents with fresh context
3
3
  *
4
- * Constructs prompts from contracts, manages timeouts, validates outputs,
5
- * and collects results. Uses a pluggable executor backend so the dispatch
6
- * mechanism can be swapped (process, HTTP, in-process) without changing
7
- * the orchestration logic.
4
+ * Key principle: Each subagent gets ONLY the context it needs.
5
+ * - No history pollution from main agent
6
+ * - Minimal, focused prompts
7
+ * - Token budget enforcement
8
+ * - Resilient dispatch with circuit breaker and retry
8
9
  */
9
10
  import { nanoid } from 'nanoid';
11
+ import { TokenBudget, BudgetExceededError } from './token-budget.js';
12
+ import { ResilientDispatcher } from './resilience.js';
10
13
  const DEFAULT_PROCESS_CONFIG = {
11
14
  command: 'claude',
12
15
  args: ['--print', '--output-format', 'json'],
@@ -14,9 +17,6 @@ const DEFAULT_PROCESS_CONFIG = {
14
17
  };
15
18
  /**
16
19
  * Creates a SubagentExecutor that spawns a subprocess for each dispatch.
17
- *
18
- * The executor writes the prompt to a temp file, invokes the configured
19
- * CLI command with `--input-file`, collects stdout/stderr, and cleans up.
20
20
  */
21
21
  export function createProcessExecutor(config = {}) {
22
22
  const resolved = {
@@ -59,9 +59,7 @@ export function createProcessExecutor(config = {}) {
59
59
  if (stderr) {
60
60
  errors.push(stderr);
61
61
  }
62
- // Best-effort cleanup
63
62
  await rm(workDir, { recursive: true, force: true }).catch(() => undefined);
64
- // Rough token estimate: ~4 chars per token
65
63
  const tokensUsed = Math.ceil((prompt.length + stdout.length) / 4);
66
64
  return { output: stdout, tokensUsed, errors };
67
65
  }
@@ -88,6 +86,7 @@ export function createProcessExecutor(config = {}) {
88
86
  // Constants
89
87
  // ---------------------------------------------------------------------------
90
88
  const DEFAULT_TIMEOUT_SECONDS = 300;
89
+ const DEFAULT_TOKEN_BUDGET = 32000;
91
90
  // ---------------------------------------------------------------------------
92
91
  // Role-specific system instructions
93
92
  // ---------------------------------------------------------------------------
@@ -108,27 +107,32 @@ const PERMISSION_LABELS = {
108
107
  writeFiles: 'Write Files',
109
108
  gitOperations: 'Git Operations',
110
109
  };
111
- // ---------------------------------------------------------------------------
112
- // Subagent Dispatcher
113
- // ---------------------------------------------------------------------------
114
110
  export class SubagentDispatcher {
115
- executor;
116
111
  logger;
112
+ tokenBudget;
113
+ resilientDispatcher;
117
114
  activeIds;
118
- constructor(executor, logger) {
119
- this.executor = executor;
120
- this.logger = logger;
115
+ constructor(config) {
116
+ this.logger = config.logger;
117
+ this.tokenBudget = new TokenBudget(config.tokenBudget);
118
+ this.resilientDispatcher = new ResilientDispatcher({
119
+ circuitBreaker: config.resilience?.circuitBreaker,
120
+ retryPolicy: config.resilience?.retryPolicy,
121
+ });
121
122
  this.activeIds = new Set();
122
123
  }
123
124
  // -----------------------------------------------------------------------
124
125
  // Public API
125
126
  // -----------------------------------------------------------------------
126
127
  /**
127
- * Dispatch a single subagent with the given config and contract.
128
+ * Dispatch a single subagent with fresh context.
128
129
  *
129
- * Constructs a structured prompt from the contract, sends it to the
130
- * executor, validates the output against the optional output schema,
131
- * and returns a typed SubagentResult.
130
+ * Steps:
131
+ * 1. Check token budget
132
+ * 2. Build fresh prompt (no history pollution)
133
+ * 3. Spawn subagent via resilient dispatcher
134
+ * 4. Parse and validate output
135
+ * 5. Return structured result
132
136
  */
133
137
  async dispatch(config, contract) {
134
138
  const id = nanoid();
@@ -136,34 +140,42 @@ export class SubagentDispatcher {
136
140
  const timeoutSeconds = config.timeout ?? DEFAULT_TIMEOUT_SECONDS;
137
141
  this.activeIds.add(id);
138
142
  this.logger.info(`[Dispatcher] Dispatching ${id} (role=${config.role})`);
143
+ // Check token budget
144
+ const prompt = this.buildFreshPrompt(config, contract);
145
+ const estimatedTokens = TokenBudget.estimateTokens(prompt);
146
+ if (!this.tokenBudget.canAfford(estimatedTokens)) {
147
+ this.activeIds.delete(id);
148
+ throw new BudgetExceededError(`Cannot afford ${estimatedTokens} tokens. Remaining: ${this.tokenBudget.getRemaining()}`);
149
+ }
139
150
  try {
140
- const prompt = this.buildPrompt(config, contract);
141
- const executorResult = await this.withTimeout(this.executor.execute(prompt, {
142
- id,
143
- model: config.model,
144
- timeout: timeoutSeconds,
145
- }), timeoutSeconds * 1000, id);
151
+ // Execute via resilient dispatcher (handles circuit breaker + retry)
152
+ const result = await this.resilientDispatcher.dispatch(async () => {
153
+ return await this.executeSubagent(id, config, contract, prompt, timeoutSeconds);
154
+ }, {
155
+ fallback: () => ({
156
+ id,
157
+ role: config.role,
158
+ status: 'failure',
159
+ output: '',
160
+ artifacts: [],
161
+ tokensUsed: 0,
162
+ duration: Date.now() - startTime,
163
+ errors: ['Fallback executed due to circuit breaker or retry exhaustion'],
164
+ }),
165
+ });
166
+ // Record actual token usage
167
+ this.tokenBudget.recordUsage(result.tokensUsed || estimatedTokens);
146
168
  const duration = Date.now() - startTime;
147
- const validationErrors = this.validateOutput(executorResult.output, contract.outputSchema);
148
- const allErrors = [...executorResult.errors, ...validationErrors];
149
- const status = allErrors.length > 0 ? 'failure' : 'success';
150
- const artifacts = extractArtifacts(executorResult.output);
151
- this.logger.info(`[Dispatcher] Subagent ${id} completed: status=${status} duration=${duration}ms tokens=${executorResult.tokensUsed}`);
169
+ this.logger.info(`[Dispatcher] Subagent ${id} completed: status=${result.status} duration=${duration}ms tokens=${result.tokensUsed || estimatedTokens}`);
152
170
  return {
153
- id,
154
- role: config.role,
155
- status,
156
- output: executorResult.output,
157
- artifacts,
158
- tokensUsed: executorResult.tokensUsed,
171
+ ...result,
159
172
  duration,
160
- errors: allErrors,
161
173
  };
162
174
  }
163
175
  catch (error) {
164
176
  const duration = Date.now() - startTime;
165
177
  const errorMessage = error instanceof Error ? error.message : String(error);
166
- const isTimeout = errorMessage.includes('timed out');
178
+ const isTimeout = errorMessage.includes('timed out') || errorMessage.includes('Timeout');
167
179
  this.logger.error(`[Dispatcher] Subagent ${id} failed: ${errorMessage}`);
168
180
  return {
169
181
  id,
@@ -171,7 +183,7 @@ export class SubagentDispatcher {
171
183
  status: isTimeout ? 'timeout' : 'failure',
172
184
  output: '',
173
185
  artifacts: [],
174
- tokensUsed: 0,
186
+ tokensUsed: estimatedTokens,
175
187
  duration,
176
188
  errors: [errorMessage],
177
189
  };
@@ -183,16 +195,34 @@ export class SubagentDispatcher {
183
195
  /**
184
196
  * Dispatch multiple subagents in parallel.
185
197
  *
186
- * All subagents run concurrently. Use when tasks are independent
187
- * of each other (e.g. exploring multiple directories at once).
198
+ * Each subagent receives ONLY its own contract - no shared context pollution.
199
+ * Results are returned in the same order as configs.
188
200
  */
189
- async dispatchParallel(configs, contracts) {
190
- if (configs.length !== contracts.length) {
191
- throw new Error(`configs.length (${configs.length}) must equal contracts.length (${contracts.length})`);
192
- }
201
+ async dispatchParallel(configs) {
193
202
  this.logger.info(`[Dispatcher] Dispatching ${configs.length} subagents in parallel`);
194
- const pairs = configs.map((config, i) => ({ config, contract: contracts[i] }));
195
- const results = await Promise.all(pairs.map(({ config, contract }) => this.dispatch(config, contract)));
203
+ // Check total budget before dispatching
204
+ const totalEstimatedTokens = configs.reduce((sum, { contract }) => {
205
+ const prompt = this.buildFreshPrompt({ role: 'general' }, contract);
206
+ return sum + TokenBudget.estimateTokens(prompt);
207
+ }, 0);
208
+ if (!this.tokenBudget.canAfford(totalEstimatedTokens)) {
209
+ throw new BudgetExceededError(`Parallel dispatch requires ${totalEstimatedTokens} tokens. Remaining: ${this.tokenBudget.getRemaining()}`);
210
+ }
211
+ // Dispatch all in parallel
212
+ const promises = configs.map(({ config, contract }) => this.dispatch(config, contract).catch((error) => {
213
+ const errorMessage = error instanceof Error ? error.message : String(error);
214
+ return {
215
+ id: nanoid(),
216
+ role: config.role,
217
+ status: 'failure',
218
+ output: '',
219
+ artifacts: [],
220
+ tokensUsed: 0,
221
+ duration: 0,
222
+ errors: [errorMessage],
223
+ };
224
+ }));
225
+ const results = await Promise.all(promises);
196
226
  const counts = {
197
227
  success: results.filter((r) => r.status === 'success').length,
198
228
  failure: results.filter((r) => r.status === 'failure').length,
@@ -202,53 +232,47 @@ export class SubagentDispatcher {
202
232
  return results;
203
233
  }
204
234
  /**
205
- * Dispatch multiple subagents sequentially.
206
- *
207
- * Each subagent receives the output of all previous subagents as
208
- * additional context. The pipeline stops early if a subagent fails
209
- * or times out. Use when tasks form a pipeline (e.g. explore ->
210
- * implement -> review -> verify).
235
+ * Get current health status including token usage and circuit state
211
236
  */
212
- async dispatchSequential(configs, contracts) {
213
- if (configs.length !== contracts.length) {
214
- throw new Error(`configs.length (${configs.length}) must equal contracts.length (${contracts.length})`);
215
- }
216
- this.logger.info(`[Dispatcher] Dispatching ${configs.length} subagents sequentially`);
217
- const results = [];
218
- for (let i = 0; i < configs.length; i++) {
219
- const augmentedContract = augmentWithPreviousResults(contracts[i], results);
220
- const result = await this.dispatch(configs[i], augmentedContract);
221
- results.push(result);
222
- if (result.status === 'failure' || result.status === 'timeout') {
223
- this.logger.warn(`[Dispatcher] Stopping sequential pipeline at index ${i} (${result.status})`);
224
- break;
225
- }
226
- }
227
- return results;
237
+ getHealth() {
238
+ const resilientHealth = this.resilientDispatcher.getHealth();
239
+ const tokenUsage = this.tokenBudget.getUsage();
240
+ return {
241
+ tokenUsage: {
242
+ ...tokenUsage,
243
+ remaining: this.tokenBudget.getRemaining(),
244
+ },
245
+ circuitState: resilientHealth.circuitState,
246
+ activeSubagents: this.activeIds.size,
247
+ };
228
248
  }
229
249
  /**
230
- * Abort a running subagent by its ID.
250
+ * Reset token budget (for testing or new milestone)
231
251
  */
232
- async abort(id) {
233
- if (!this.activeIds.has(id)) {
234
- this.logger.warn(`[Dispatcher] Cannot abort ${id}: not active`);
235
- return;
236
- }
237
- await this.executor.abort(id);
238
- this.activeIds.delete(id);
239
- this.logger.info(`[Dispatcher] Aborted subagent ${id}`);
252
+ resetBudget() {
253
+ this.tokenBudget.reset();
254
+ this.logger.info('[Dispatcher] Token budget reset');
240
255
  }
241
256
  // -----------------------------------------------------------------------
242
- // Prompt construction
257
+ // Prompt construction - FRESH CONTEXT ONLY
243
258
  // -----------------------------------------------------------------------
244
259
  /**
245
- * Build a structured subagent prompt from config and contract.
260
+ * Build a fresh prompt with ONLY necessary context.
261
+ *
262
+ * Excludes:
263
+ * - Main agent conversation history
264
+ * - Previous subagent outputs (unless explicitly passed)
265
+ * - Internal reasoning
246
266
  *
247
- * The prompt follows the Claude Code agent tool pattern: explicit
248
- * permissions, owned/read file scopes, isolation instructions,
249
- * token budget, output format requirements, and the task itself.
267
+ * Includes:
268
+ * - Role instruction
269
+ * - Permissions
270
+ * - File scope
271
+ * - Token budget
272
+ * - Output schema
273
+ * - Task description
250
274
  */
251
- buildPrompt(config, contract) {
275
+ buildFreshPrompt(config, contract) {
252
276
  const sections = [];
253
277
  sections.push(buildRoleHeader(config.role));
254
278
  sections.push(buildPermissionsBlock(contract.permissions));
@@ -262,73 +286,69 @@ export class SubagentDispatcher {
262
286
  return sections.join('\n\n---\n\n');
263
287
  }
264
288
  // -----------------------------------------------------------------------
265
- // Timeout handling
289
+ // Subagent execution
266
290
  // -----------------------------------------------------------------------
267
291
  /**
268
- * Wraps a promise with a timeout. If the timeout fires first the
269
- * subagent is aborted and the promise rejects.
292
+ * Execute a subagent process.
293
+ * This is the actual implementation that the resilient dispatcher wraps.
270
294
  */
271
- withTimeout(promise, timeoutMs, id) {
272
- if (timeoutMs <= 0 || !Number.isFinite(timeoutMs)) {
273
- return promise;
274
- }
295
+ async executeSubagent(id, config, contract, prompt, timeoutSeconds) {
296
+ const { spawn } = await import('child_process');
297
+ const { writeFile, mkdir, rm } = await import('fs/promises');
298
+ const { join } = await import('path');
299
+ const { tmpdir } = await import('os');
300
+ const workDir = join(tmpdir(), `yi-subagent-${id}`);
301
+ await mkdir(workDir, { recursive: true });
302
+ const promptPath = join(workDir, 'prompt.md');
303
+ await writeFile(promptPath, prompt, 'utf-8');
275
304
  return new Promise((resolve, reject) => {
276
- const timer = setTimeout(() => {
277
- this.executor.abort(id).catch(() => undefined);
278
- reject(new Error(`Subagent ${id} timed out after ${timeoutMs}ms`));
279
- }, timeoutMs);
280
- promise
281
- .then((result) => {
282
- clearTimeout(timer);
283
- resolve(result);
284
- })
285
- .catch((error) => {
286
- clearTimeout(timer);
305
+ const child = spawn('claude', ['--print', '--output-format', 'json', '--input-file', promptPath], {
306
+ env: { ...process.env, CLAUDE_SUBAGENT: '1' },
307
+ stdio: ['ignore', 'pipe', 'pipe'],
308
+ timeout: timeoutSeconds * 1000,
309
+ });
310
+ const outputChunks = [];
311
+ const errorChunks = [];
312
+ child.stdout?.on('data', (chunk) => outputChunks.push(chunk));
313
+ child.stderr?.on('data', (chunk) => errorChunks.push(chunk));
314
+ child.on('close', async (exitCode) => {
315
+ // Cleanup
316
+ await rm(workDir, { recursive: true, force: true }).catch(() => undefined);
317
+ const stdout = Buffer.concat(outputChunks).toString('utf-8').trim();
318
+ const stderr = Buffer.concat(errorChunks).toString('utf-8').trim();
319
+ const errors = [];
320
+ if (exitCode !== 0) {
321
+ errors.push(`Subprocess exited with code ${exitCode}`);
322
+ }
323
+ if (stderr) {
324
+ errors.push(stderr);
325
+ }
326
+ // Parse output and validate
327
+ const tokensUsed = Math.ceil((prompt.length + stdout.length) / 4);
328
+ const artifacts = extractArtifacts(stdout);
329
+ const status = errors.length > 0 ? 'failure' : 'success';
330
+ // Validate against schema if provided
331
+ const validationErrors = validateOutput(stdout, contract.outputSchema);
332
+ if (validationErrors.length > 0) {
333
+ errors.push(...validationErrors);
334
+ }
335
+ resolve({
336
+ id,
337
+ role: config.role,
338
+ status: validationErrors.length > 0 ? 'failure' : status,
339
+ output: stdout,
340
+ artifacts,
341
+ tokensUsed,
342
+ duration: 0, // Will be set by caller
343
+ errors: [...errors, ...validationErrors],
344
+ });
345
+ });
346
+ child.on('error', async (error) => {
347
+ await rm(workDir, { recursive: true, force: true }).catch(() => undefined);
287
348
  reject(error);
288
349
  });
289
350
  });
290
351
  }
291
- // -----------------------------------------------------------------------
292
- // Output validation
293
- // -----------------------------------------------------------------------
294
- /**
295
- * Validate subagent output against an optional schema.
296
- * The schema is a Record<string, unknown> where values are type strings
297
- * like "string", "number", "boolean", "object".
298
- *
299
- * Returns an array of validation error messages (empty = valid).
300
- */
301
- validateOutput(output, schema) {
302
- if (!schema || Object.keys(schema).length === 0) {
303
- return [];
304
- }
305
- // Try to extract a JSON block from the output
306
- const jsonMatch = output.match(/```json\s*([\s\S]*?)\s*```/);
307
- const jsonText = jsonMatch ? jsonMatch[1].trim() : output.trim();
308
- let parsed;
309
- try {
310
- parsed = JSON.parse(jsonText);
311
- }
312
- catch {
313
- return ['Output is not valid JSON'];
314
- }
315
- if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
316
- return ['Output must be a JSON object'];
317
- }
318
- const obj = parsed;
319
- const errors = [];
320
- for (const [key, expectedType] of Object.entries(schema)) {
321
- if (!(key in obj)) {
322
- errors.push(`Missing required field: "${key}"`);
323
- continue;
324
- }
325
- const actualType = typeof obj[key];
326
- if (actualType !== expectedType) {
327
- errors.push(`Field "${key}": expected type ${String(expectedType)}, got ${actualType}`);
328
- }
329
- }
330
- return errors;
331
- }
332
352
  }
333
353
  // ---------------------------------------------------------------------------
334
354
  // Prompt builder helpers (pure functions)
@@ -381,7 +401,7 @@ function buildIsolationBlock() {
381
401
  ].join('\n');
382
402
  }
383
403
  function buildBudgetBlock(tokenBudget) {
384
- const budget = tokenBudget ?? 32000;
404
+ const budget = tokenBudget ?? DEFAULT_TOKEN_BUDGET;
385
405
  return [
386
406
  '## Token Budget',
387
407
  '',
@@ -408,22 +428,47 @@ function buildOutputSchemaBlock(schema) {
408
428
  function buildTaskBlock(prompt) {
409
429
  return `## Task\n\n${prompt}`;
410
430
  }
431
+ // ---------------------------------------------------------------------------
432
+ // Output validation
433
+ // ---------------------------------------------------------------------------
411
434
  /**
412
- * Augment a contract with output from previous subagents.
413
- * Used by dispatchSequential to provide pipeline context.
435
+ * Validate subagent output against an optional schema.
436
+ * Returns an array of validation error messages (empty = valid).
414
437
  */
415
- function augmentWithPreviousResults(contract, previousResults) {
416
- if (previousResults.length === 0) {
417
- return contract;
438
+ function validateOutput(output, schema) {
439
+ if (!schema || Object.keys(schema).length === 0) {
440
+ return [];
418
441
  }
419
- const context = previousResults
420
- .map((r) => `### Previous Subagent (role=${r.role}, status=${r.status})\n\n${r.output || '(no output)'}`)
421
- .join('\n\n');
422
- return {
423
- ...contract,
424
- prompt: `${contract.prompt}\n\n## Context from Previous Steps\n\n${context}`,
425
- };
442
+ // Try to extract a JSON block from the output
443
+ const jsonMatch = output.match(/```json\s*([\s\S]*?)\s*```/);
444
+ const jsonText = jsonMatch ? jsonMatch[1].trim() : output.trim();
445
+ let parsed;
446
+ try {
447
+ parsed = JSON.parse(jsonText);
448
+ }
449
+ catch {
450
+ return ['Output is not valid JSON'];
451
+ }
452
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
453
+ return ['Output must be a JSON object'];
454
+ }
455
+ const obj = parsed;
456
+ const errors = [];
457
+ for (const [key, expectedType] of Object.entries(schema)) {
458
+ if (!(key in obj)) {
459
+ errors.push(`Missing required field: "${key}"`);
460
+ continue;
461
+ }
462
+ const actualType = typeof obj[key];
463
+ if (actualType !== expectedType) {
464
+ errors.push(`Field "${key}": expected type ${String(expectedType)}, got ${actualType}`);
465
+ }
466
+ }
467
+ return errors;
426
468
  }
469
+ // ---------------------------------------------------------------------------
470
+ // Artifact extraction
471
+ // ---------------------------------------------------------------------------
427
472
  /**
428
473
  * Extract structured artifacts from subagent output text.
429
474
  * Recognises fenced code blocks (JSON, diff) and converts them
@@ -443,12 +488,10 @@ function extractArtifacts(output) {
443
488
  }
444
489
  /**
445
490
  * Create a SubagentDispatcher with sensible defaults.
446
- *
447
- * If no executor is provided, a process-based executor is created
448
- * using `createProcessExecutor` which spawns a CLI command.
449
491
  */
450
- export function createDispatcher(logger, options = {}) {
451
- const executor = options.executor ?? createProcessExecutor(options.processConfig);
452
- return new SubagentDispatcher(executor, logger);
492
+ export function createDispatcher(options) {
493
+ return new SubagentDispatcher(options);
453
494
  }
495
+ // Re-export for convenience
496
+ export { TokenBudget, BudgetExceededError, ResilientDispatcher };
454
497
  //# sourceMappingURL=dispatcher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../../src/agents/dispatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../../src/agents/dispatcher.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  /**
2
- * Persistence layer exports
2
+ * Persistence layer entry point
3
+ *
4
+ * Provides STATE.md and PLAN.md management for workflow state persistence.
3
5
  */
4
6
  export { StateMdManager } from './state-md.js';
5
7
  export { PlanMdManager } from './plan-md.js';
6
- export type { Task, Wave, Plan, TaskResult, VerificationResult, DimensionResult, WorkflowState, StateMdManager as IStateMdManager, PlanMdManager as IPlanMdManager, PersistenceManager } from './types.js';
8
+ export type { Task, Wave, Plan, TaskResult, VerificationResult, DimensionResult, WorkflowState, StateMdManager as StateMdManagerInterface, PlanMdManager as PlanMdManagerInterface, PersistenceManager, } from './types.js';
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/persistence/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,YAAY,EACV,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,cAAc,IAAI,eAAe,EACjC,aAAa,IAAI,cAAc,EAC/B,kBAAkB,EACnB,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/persistence/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAG5C,YAAY,EACV,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,cAAc,IAAI,uBAAuB,EACzC,aAAa,IAAI,sBAAsB,EACvC,kBAAkB,GACnB,MAAM,YAAY,CAAA"}
@@ -1,6 +1,9 @@
1
1
  /**
2
- * Persistence layer exports
2
+ * Persistence layer entry point
3
+ *
4
+ * Provides STATE.md and PLAN.md management for workflow state persistence.
3
5
  */
6
+ // Managers
4
7
  export { StateMdManager } from './state-md.js';
5
8
  export { PlanMdManager } from './plan-md.js';
6
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/persistence/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/persistence/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA"}
@@ -1,10 +1,11 @@
1
- import type { Plan, PlanMdManager as IPlanMdManager } from './types.js';
1
+ import type { Plan, Wave, PlanMdManager as IPlanMdManager } from './types.js';
2
2
  export declare class PlanMdManager implements IPlanMdManager {
3
3
  private planPath;
4
4
  constructor(planPath?: string);
5
5
  writePlan(plan: Plan): Promise<void>;
6
- readPlan(): Promise<Plan>;
6
+ readPlan(): Promise<Plan | null>;
7
7
  updateTaskStatus(taskId: string, status: 'pending' | 'in_progress' | 'complete'): Promise<void>;
8
+ getNextPendingWave(): Promise<Wave | null>;
8
9
  private generatePlanMarkdown;
9
10
  private parsePlan;
10
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"plan-md.d.ts","sourceRoot":"","sources":["../../../src/persistence/plan-md.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAQ,aAAa,IAAI,cAAc,EAAE,MAAM,YAAY,CAAA;AAE7E,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,QAAQ,CAAQ;gBAEZ,QAAQ,GAAE,MAA4B;IAI5C,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAQpC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAKzB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrG,OAAO,CAAC,oBAAoB;IA+B5B,OAAO,CAAC,SAAS;CAwElB"}
1
+ {"version":3,"file":"plan-md.d.ts","sourceRoot":"","sources":["../../../src/persistence/plan-md.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAQ,IAAI,EAAE,aAAa,IAAI,cAAc,EAAE,MAAM,YAAY,CAAA;AAEnF,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,QAAQ,CAAQ;gBAEZ,QAAQ,GAAE,MAA4B;IAI5C,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAQpC,QAAQ,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAYhC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAU/F,kBAAkB,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAiBhD,OAAO,CAAC,oBAAoB;IAkC5B,OAAO,CAAC,SAAS;CA+ElB"}