@zhixuan92/multi-model-agent-core 2.5.0 → 2.6.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 (37) hide show
  1. package/dist/delegate-with-escalation.d.ts +2 -2
  2. package/dist/delegate-with-escalation.d.ts.map +1 -1
  3. package/dist/delegate-with-escalation.js.map +1 -1
  4. package/dist/heartbeat.d.ts +44 -6
  5. package/dist/heartbeat.d.ts.map +1 -1
  6. package/dist/heartbeat.js +230 -19
  7. package/dist/heartbeat.js.map +1 -1
  8. package/dist/index.d.ts +2 -2
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/review/reviewer-prompt.d.ts +1 -1
  12. package/dist/review/reviewer-prompt.d.ts.map +1 -1
  13. package/dist/review/reviewer-prompt.js +9 -21
  14. package/dist/review/reviewer-prompt.js.map +1 -1
  15. package/dist/review/spec-reviewer.d.ts +1 -1
  16. package/dist/review/spec-reviewer.d.ts.map +1 -1
  17. package/dist/review/spec-reviewer.js +2 -2
  18. package/dist/review/spec-reviewer.js.map +1 -1
  19. package/dist/run-tasks.d.ts +1 -0
  20. package/dist/run-tasks.d.ts.map +1 -1
  21. package/dist/run-tasks.js +100 -13
  22. package/dist/run-tasks.js.map +1 -1
  23. package/dist/runners/claude-runner.js.map +1 -1
  24. package/dist/runners/codex-runner.js.map +1 -1
  25. package/dist/runners/injection-type.d.ts +1 -1
  26. package/dist/runners/injection-type.js +1 -1
  27. package/dist/runners/openai-runner.js.map +1 -1
  28. package/dist/runners/supervision.d.ts +1 -0
  29. package/dist/runners/supervision.d.ts.map +1 -1
  30. package/dist/runners/supervision.js +2 -2
  31. package/dist/runners/supervision.js.map +1 -1
  32. package/dist/tools/tracker.d.ts +1 -1
  33. package/dist/tools/tracker.js +1 -1
  34. package/dist/types.d.ts +39 -19
  35. package/dist/types.d.ts.map +1 -1
  36. package/dist/types.js.map +1 -1
  37. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
- import type { TaskSpec, RunResult, Provider, ProgressEvent } from './types.js';
1
+ import type { TaskSpec, RunResult, Provider, InternalRunnerEvent } from './types.js';
2
2
  export interface DelegateOptions {
3
3
  explicitlyPinned?: boolean;
4
- onProgress?: (event: ProgressEvent) => void;
4
+ onProgress?: (event: InternalRunnerEvent) => void;
5
5
  escalateToProvider?: Provider;
6
6
  }
7
7
  export declare function delegateWithEscalation(task: TaskSpec, chain: Provider[], options?: DelegateOptions): Promise<RunResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"delegate-with-escalation.d.ts","sourceRoot":"","sources":["../src/delegate-with-escalation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,SAAS,EAET,QAAQ,EAER,aAAa,EAEd,MAAM,YAAY,CAAC;AAWpB,MAAM,WAAW,eAAe;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC5C,kBAAkB,CAAC,EAAE,QAAQ,CAAC;CAC/B;AAiBD,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,QAAQ,EAAE,EACjB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,SAAS,CAAC,CA0MpB"}
1
+ {"version":3,"file":"delegate-with-escalation.d.ts","sourceRoot":"","sources":["../src/delegate-with-escalation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,SAAS,EAET,QAAQ,EAER,mBAAmB,EAEpB,MAAM,YAAY,CAAC;AAWpB,MAAM,WAAW,eAAe;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAClD,kBAAkB,CAAC,EAAE,QAAQ,CAAC;CAC/B;AAiBD,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,QAAQ,EAAE,EACjB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,SAAS,CAAC,CA0MpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"delegate-with-escalation.js","sourceRoot":"","sources":["../src/delegate-with-escalation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delegate-with-escalation.js","sourceRoot":"","sources":["../src/delegate-with-escalation.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,56 @@
1
1
  import type { ProgressEvent } from './types.js';
2
+ export type HeartbeatStage = 'implementing' | 'spec_review' | 'spec_rework' | 'quality_review' | 'quality_rework';
3
+ /** Number of consecutive unchanged-toolCalls heartbeats before stalled=true. */
4
+ export declare const STALL_HEARTBEAT_THRESHOLD = 5;
2
5
  export interface HeartbeatTimerOptions {
6
+ provider: string;
7
+ parentModel?: string;
3
8
  intervalMs?: number;
4
9
  }
10
+ export interface TransitionFields {
11
+ stage?: HeartbeatStage;
12
+ stageIndex?: number;
13
+ stageCount?: number;
14
+ reviewRound?: number;
15
+ maxReviewRounds?: number;
16
+ provider?: string;
17
+ costUSD?: number | null;
18
+ savedCostUSD?: number | null;
19
+ }
5
20
  export declare class HeartbeatTimer {
6
21
  private readonly onProgress;
7
22
  private readonly intervalMs;
23
+ private readonly parentModel;
8
24
  private timer;
9
25
  private startTime;
10
- private turns;
11
- private phase;
12
- constructor(onProgress: (event: ProgressEvent) => void, options?: HeartbeatTimerOptions);
13
- start(phase?: 'implementing' | 'reviewing'): void;
26
+ private started;
27
+ private stopped;
28
+ private provider;
29
+ private stage;
30
+ private stageIndex;
31
+ private stageCount;
32
+ private reviewRound;
33
+ private maxReviewRounds;
34
+ private filesRead;
35
+ private filesWritten;
36
+ private toolCalls;
37
+ private costUSD;
38
+ private savedCostUSD;
39
+ private prevToolCalls;
40
+ private stallCount;
41
+ private inFlight;
42
+ constructor(onProgress: (event: ProgressEvent) => void, options: HeartbeatTimerOptions);
43
+ start(stageCount: number): void;
14
44
  stop(): void;
15
- setPhase(phase: 'implementing' | 'reviewing'): void;
16
- incrementTurns(): void;
45
+ transition(fields: TransitionFields): void;
46
+ setProvider(provider: string): void;
47
+ setStage(stage: HeartbeatStage, stageIndex: number, reviewRound?: number, maxReviewRounds?: number): void;
48
+ updateStageCount(stageCount: number): void;
49
+ updateProgress(filesRead: number, filesWritten: number, toolCalls: number): void;
50
+ updateCost(costUSD: number | null, savedCostUSD: number | null): void;
51
+ setInFlight(inFlight: boolean): void;
52
+ private emit;
53
+ private composeHeadline;
54
+ private composeCostClause;
17
55
  }
18
56
  //# sourceMappingURL=heartbeat.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../src/heartbeat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAUhD,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiC;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,KAAK,CAAgD;gBAG3D,UAAU,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,EAC1C,OAAO,GAAE,qBAA0B;IAMrC,KAAK,CAAC,KAAK,GAAE,cAAc,GAAG,WAA4B,GAAG,IAAI;IAejE,IAAI,IAAI,IAAI;IAOZ,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,WAAW,GAAG,IAAI;IAInD,cAAc,IAAI,IAAI;CAGvB"}
1
+ {"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../src/heartbeat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAUhD,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,aAAa,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAclH,gFAAgF;AAChF,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiC;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IAGxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,eAAe,CAAqB;IAG5C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,SAAS,CAAK;IAGtB,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,YAAY,CAAuB;IAG3C,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,QAAQ,CAAS;gBAGvB,UAAU,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,EAC1C,OAAO,EAAE,qBAAqB;IAQhC,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IA4B/B,IAAI,IAAI,IAAI;IAUZ,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IA8E1C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI;IAIzG,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAQ1C,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAOhF,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAMrE,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAKpC,OAAO,CAAC,IAAI;IAsCZ,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,iBAAiB;CAa1B"}
package/dist/heartbeat.js CHANGED
@@ -6,42 +6,253 @@ function formatElapsed(ms) {
6
6
  const seconds = rounded % 60;
7
7
  return `${minutes}m ${seconds}s`;
8
8
  }
9
+ const STAGE_LABELS = {
10
+ implementing: 'Implementing',
11
+ spec_review: 'Spec review',
12
+ spec_rework: 'Spec rework',
13
+ quality_review: 'Quality review',
14
+ quality_rework: 'Quality rework',
15
+ };
16
+ const REVIEW_STAGES = new Set([
17
+ 'spec_review', 'spec_rework', 'quality_review', 'quality_rework',
18
+ ]);
19
+ /** Number of consecutive unchanged-toolCalls heartbeats before stalled=true. */
20
+ export const STALL_HEARTBEAT_THRESHOLD = 5;
9
21
  export class HeartbeatTimer {
10
22
  onProgress;
11
23
  intervalMs;
24
+ parentModel;
12
25
  timer = null;
13
26
  startTime = 0;
14
- turns = 0;
15
- phase = 'implementing';
16
- constructor(onProgress, options = {}) {
27
+ started = false;
28
+ stopped = false;
29
+ // State fields
30
+ provider;
31
+ stage = 'implementing';
32
+ stageIndex = 1;
33
+ stageCount = 1;
34
+ reviewRound;
35
+ maxReviewRounds;
36
+ // Progress counters (cumulative totals)
37
+ filesRead = 0;
38
+ filesWritten = 0;
39
+ toolCalls = 0;
40
+ // Cost
41
+ costUSD = null;
42
+ savedCostUSD = null;
43
+ // Stall detection
44
+ prevToolCalls = 0;
45
+ stallCount = 0;
46
+ inFlight = false;
47
+ constructor(onProgress, options) {
17
48
  this.onProgress = onProgress;
49
+ this.provider = options.provider;
50
+ this.parentModel = options.parentModel;
18
51
  this.intervalMs = options.intervalMs ?? 5000;
19
52
  }
20
- start(phase = 'implementing') {
21
- this.stop();
53
+ start(stageCount) {
54
+ // Clear any existing timer without emitting final heartbeat
55
+ if (this.timer !== null) {
56
+ clearInterval(this.timer);
57
+ this.timer = null;
58
+ }
59
+ if (!Number.isInteger(stageCount) || stageCount < 1) {
60
+ throw new Error(`stageCount must be a positive integer, got ${stageCount}`);
61
+ }
62
+ this.started = true;
63
+ this.stopped = false;
22
64
  this.startTime = Date.now();
23
- this.turns = 0;
24
- this.phase = phase;
25
- this.timer = setInterval(() => {
26
- this.onProgress({
27
- kind: 'heartbeat',
28
- elapsed: formatElapsed(Date.now() - this.startTime),
29
- turnsCompleted: this.turns,
30
- phase: this.phase,
31
- });
32
- }, this.intervalMs);
65
+ this.stage = 'implementing';
66
+ this.stageIndex = 1;
67
+ this.stageCount = stageCount;
68
+ this.reviewRound = undefined;
69
+ this.maxReviewRounds = undefined;
70
+ this.filesRead = 0;
71
+ this.filesWritten = 0;
72
+ this.toolCalls = 0;
73
+ this.costUSD = null;
74
+ this.savedCostUSD = null;
75
+ this.prevToolCalls = 0;
76
+ this.stallCount = 0;
77
+ this.inFlight = false;
78
+ this.timer = setInterval(() => this.emit(false), this.intervalMs);
33
79
  }
34
80
  stop() {
81
+ if (this.stopped || !this.started)
82
+ return; // no-op before start() or after stop()
83
+ this.stopped = true;
35
84
  if (this.timer !== null) {
36
85
  clearInterval(this.timer);
37
86
  this.timer = null;
38
87
  }
88
+ this.emit(true); // final flush
39
89
  }
40
- setPhase(phase) {
41
- this.phase = phase;
90
+ transition(fields) {
91
+ if (!this.started || this.stopped)
92
+ return;
93
+ // Apply provider
94
+ if (fields.provider !== undefined) {
95
+ this.provider = fields.provider;
96
+ }
97
+ // Apply cost
98
+ if (fields.costUSD !== undefined) {
99
+ this.costUSD = fields.costUSD;
100
+ }
101
+ if (fields.savedCostUSD !== undefined) {
102
+ this.savedCostUSD = fields.savedCostUSD;
103
+ }
104
+ // Apply stageCount
105
+ if (fields.stageCount !== undefined) {
106
+ this.stageCount = fields.stageCount;
107
+ }
108
+ // Apply stage with invariant enforcement
109
+ if (fields.stage !== undefined) {
110
+ const newStageIndex = fields.stageIndex ?? this.stageIndex;
111
+ this.stage = fields.stage;
112
+ this.stageIndex = newStageIndex;
113
+ // Auto-clear review fields for implementing
114
+ if (fields.stage === 'implementing') {
115
+ this.reviewRound = undefined;
116
+ this.maxReviewRounds = undefined;
117
+ }
118
+ else if (REVIEW_STAGES.has(fields.stage)) {
119
+ // Review/rework requires round fields
120
+ const round = fields.reviewRound ?? this.reviewRound;
121
+ const maxRounds = fields.maxReviewRounds ?? this.maxReviewRounds;
122
+ if (round === undefined || maxRounds === undefined) {
123
+ throw new Error(`reviewRound and maxReviewRounds required for stage '${fields.stage}'`);
124
+ }
125
+ this.reviewRound = round;
126
+ this.maxReviewRounds = maxRounds;
127
+ }
128
+ }
129
+ else {
130
+ // Stage didn't change but stageIndex might
131
+ if (fields.stageIndex !== undefined) {
132
+ this.stageIndex = fields.stageIndex;
133
+ }
134
+ // Apply review fields if provided
135
+ if (fields.reviewRound !== undefined) {
136
+ this.reviewRound = fields.reviewRound;
137
+ }
138
+ if (fields.maxReviewRounds !== undefined) {
139
+ this.maxReviewRounds = fields.maxReviewRounds;
140
+ }
141
+ // Reject review fields if current stage is implementing
142
+ if (this.stage === 'implementing' && (this.reviewRound !== undefined || this.maxReviewRounds !== undefined)) {
143
+ throw new Error('reviewRound and maxReviewRounds must not be set for implementing stage');
144
+ }
145
+ }
146
+ // Validate stageIndex >= 1
147
+ if (this.stageIndex < 1) {
148
+ throw new Error(`stageIndex must be >= 1, got ${this.stageIndex}`);
149
+ }
150
+ // Validate stageIndex <= stageCount
151
+ if (this.stageIndex > this.stageCount) {
152
+ throw new Error(`stageIndex ${this.stageIndex} exceeds stageCount ${this.stageCount}`);
153
+ }
154
+ // Reset stall on stage/provider change
155
+ this.stallCount = 0;
156
+ this.prevToolCalls = this.toolCalls;
157
+ this.emit(false);
42
158
  }
43
- incrementTurns() {
44
- this.turns++;
159
+ setProvider(provider) {
160
+ this.transition({ provider });
161
+ }
162
+ setStage(stage, stageIndex, reviewRound, maxReviewRounds) {
163
+ this.transition({ stage, stageIndex, reviewRound, maxReviewRounds });
164
+ }
165
+ updateStageCount(stageCount) {
166
+ if (!this.started || this.stopped)
167
+ return;
168
+ if (stageCount < 1 || stageCount < this.stageIndex) {
169
+ throw new Error(`stageCount ${stageCount} invalid: must be >= 1 and >= current stageIndex ${this.stageIndex}`);
170
+ }
171
+ this.stageCount = stageCount;
172
+ }
173
+ updateProgress(filesRead, filesWritten, toolCalls) {
174
+ if (!this.started || this.stopped)
175
+ return;
176
+ this.filesRead = filesRead;
177
+ this.filesWritten = filesWritten;
178
+ this.toolCalls = toolCalls;
179
+ }
180
+ updateCost(costUSD, savedCostUSD) {
181
+ if (!this.started || this.stopped)
182
+ return;
183
+ this.costUSD = costUSD;
184
+ this.savedCostUSD = savedCostUSD;
185
+ }
186
+ setInFlight(inFlight) {
187
+ if (!this.started || this.stopped)
188
+ return;
189
+ this.inFlight = inFlight;
190
+ }
191
+ emit(final) {
192
+ if (this.stopped && !final)
193
+ return;
194
+ // Stall detection: only increment when not in-flight and toolCalls unchanged
195
+ if (!final && !this.inFlight) {
196
+ if (this.toolCalls === this.prevToolCalls) {
197
+ this.stallCount++;
198
+ }
199
+ else {
200
+ this.stallCount = 0;
201
+ this.prevToolCalls = this.toolCalls;
202
+ }
203
+ }
204
+ const stalled = this.stallCount >= STALL_HEARTBEAT_THRESHOLD;
205
+ const elapsed = formatElapsed(Date.now() - this.startTime);
206
+ this.onProgress({
207
+ kind: 'heartbeat',
208
+ elapsed,
209
+ provider: this.provider,
210
+ stage: this.stage,
211
+ stageIndex: this.stageIndex,
212
+ stageCount: this.stageCount,
213
+ reviewRound: this.reviewRound,
214
+ maxReviewRounds: this.maxReviewRounds,
215
+ progress: {
216
+ filesRead: this.filesRead,
217
+ filesWritten: this.filesWritten,
218
+ toolCalls: this.toolCalls,
219
+ stalled,
220
+ },
221
+ costUSD: this.costUSD,
222
+ savedCostUSD: this.savedCostUSD,
223
+ final,
224
+ headline: this.composeHeadline(elapsed, stalled),
225
+ });
226
+ }
227
+ composeHeadline(elapsed, stalled) {
228
+ const prefix = `[${this.stageIndex}/${this.stageCount}] ${STAGE_LABELS[this.stage]}`;
229
+ const roundSuffix = this.reviewRound !== undefined && this.maxReviewRounds !== undefined
230
+ ? ` (round ${this.reviewRound}/${this.maxReviewRounds})`
231
+ : '';
232
+ const providerClause = ` (${this.provider})`;
233
+ const costClause = this.composeCostClause();
234
+ const stats = [
235
+ elapsed,
236
+ ...(costClause ? [costClause] : []),
237
+ `${this.filesRead} read`,
238
+ `${this.filesWritten} written`,
239
+ `${this.toolCalls} tool calls`,
240
+ ].join(', ');
241
+ const stallSuffix = stalled ? ' — stalled' : '';
242
+ return `${prefix}${roundSuffix}${providerClause} — ${stats}${stallSuffix}`;
243
+ }
244
+ composeCostClause() {
245
+ if (this.parentModel && this.savedCostUSD !== null && this.costUSD !== null) {
246
+ if (this.costUSD > 0) {
247
+ const roi = (this.costUSD + this.savedCostUSD) / this.costUSD;
248
+ return `$${this.savedCostUSD.toFixed(2)} saved (${roi.toFixed(1)}x)`;
249
+ }
250
+ return `$${this.savedCostUSD.toFixed(2)} saved`;
251
+ }
252
+ if (this.costUSD !== null) {
253
+ return `$${this.costUSD.toFixed(2)}`;
254
+ }
255
+ return null;
45
256
  }
46
257
  }
47
258
  //# sourceMappingURL=heartbeat.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../src/heartbeat.ts"],"names":[],"mappings":"AAEA,SAAS,aAAa,CAAC,EAAU;IAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IACtC,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,GAAG,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,OAAO,GAAG,EAAE,CAAC;IAC7B,OAAO,GAAG,OAAO,KAAK,OAAO,GAAG,CAAC;AACnC,CAAC;AAMD,MAAM,OAAO,cAAc;IACR,UAAU,CAAiC;IAC3C,UAAU,CAAS;IAC5B,KAAK,GAA0C,IAAI,CAAC;IACpD,SAAS,GAAG,CAAC,CAAC;IACd,KAAK,GAAG,CAAC,CAAC;IACV,KAAK,GAAiC,cAAc,CAAC;IAE7D,YACE,UAA0C,EAC1C,UAAiC,EAAE;QAEnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,QAAsC,cAAc;QACxD,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,UAAU,CAAC;gBACd,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;gBACnD,cAAc,EAAE,IAAI,CAAC,KAAK;gBAC1B,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC;QACL,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACxB,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,KAAmC;QAC1C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../src/heartbeat.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { loadConfigFromFile } from './config/load.js';
2
2
  export { parseConfig, multiModelConfigSchema } from './config/schema.js';
3
- export type { ToolMode, SandboxPolicy, AgentType, AgentCapability, AgentConfig, Effort, CostTier, RunStatus, TaskSpec, ProviderConfig, CodexProviderConfig, ClaudeProviderConfig, OpenAICompatibleProviderConfig, MultiModelConfig, TokenUsage, RunResult, BatchTimings, BatchProgress, BatchAggregateCost, Provider, RunOptions, RunTasksRuntime, ProgressEvent, EligibilityFailureCheck, EligibilityFailure, ProviderEligibility, BriefQualityWarning, BriefQualityPolicy, ReadinessResult, } from './types.js';
3
+ export type { ToolMode, SandboxPolicy, AgentType, AgentCapability, AgentConfig, Effort, CostTier, RunStatus, TaskSpec, ProviderConfig, CodexProviderConfig, ClaudeProviderConfig, OpenAICompatibleProviderConfig, MultiModelConfig, TokenUsage, RunResult, BatchTimings, BatchProgress, BatchAggregateCost, Provider, RunOptions, RunTasksRuntime, ProgressEvent, InternalRunnerEvent, EligibilityFailureCheck, EligibilityFailure, ProviderEligibility, BriefQualityWarning, BriefQualityPolicy, ReadinessResult, } from './types.js';
4
4
  export { ParsedStructuredReport } from './reporting/structured-report.js';
5
5
  export { InMemoryContextBlockStore, ContextBlockNotFoundError, } from './context/context-block-store.js';
6
6
  export type { ContextBlockStore, RegisteredBlock, InMemoryContextBlockStoreOptions, } from './context/context-block-store.js';
@@ -9,7 +9,7 @@ export { createProvider } from './provider.js';
9
9
  export { runTasks } from './run-tasks.js';
10
10
  export type { RunTasksOptions } from './run-tasks.js';
11
11
  export { HeartbeatTimer } from './heartbeat.js';
12
- export type { HeartbeatTimerOptions } from './heartbeat.js';
12
+ export type { HeartbeatTimerOptions, HeartbeatStage, TransitionFields } from './heartbeat.js';
13
13
  export { evaluateReadiness, hasScopePillar, hasInputsPillar, hasDoneConditionPillar, hasOutputContractPillar, detectOutsourcedDiscovery, detectBrittleLineAnchors, detectMixedEnvironmentActions, detectConcretePath, detectNamedCodeArtifact, detectReasonableLength, } from './readiness/readiness.js';
14
14
  export { resolveAgent } from './routing/resolve-agent.js';
15
15
  export type { ResolvedAgent } from './routing/resolve-agent.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAGzE,YAAY,EACV,QAAQ,EACR,aAAa,EACb,SAAS,EACT,eAAe,EACf,WAAW,EACX,MAAM,EACN,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,8BAA8B,EAC9B,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,QAAQ,EACR,UAAU,EACV,eAAe,EACf,aAAa,EACb,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAG1E,OAAO,EACL,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,gCAAgC,GACjC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAGzE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAG5D,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,6BAA6B,EAC7B,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,YAAY,EACV,SAAS,EACT,WAAW,EACX,SAAS,EACT,cAAc,EACd,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,UAAU,EACV,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAoCzE,iBAAiB;AACjB,OAAO,EACL,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,kCAAkC,CAAC;AAM1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,YAAY;AACZ,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,YAAY;AACZ,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,YAAY;AACZ,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,6BAA6B,EAC7B,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAElC,mBAAmB;AACnB,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAErF,kBAAkB;AAClB,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAuB3D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAqCzE,iBAAiB;AACjB,OAAO,EACL,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,kCAAkC,CAAC;AAM1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,YAAY;AACZ,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,YAAY;AACZ,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,YAAY;AACZ,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,6BAA6B,EAC7B,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAElC,mBAAmB;AACnB,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAErF,kBAAkB;AAClB,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAuB3D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -4,7 +4,7 @@ interface ReviewerPacketInput {
4
4
  scope: string[];
5
5
  doneCondition: string;
6
6
  }
7
- export declare function buildSpecReviewPrompt(packet: ReviewerPacketInput, implReport: ParsedStructuredReport, fileContents: Record<string, string>, toolCallLog: string[]): string;
7
+ export declare function buildSpecReviewPrompt(packet: ReviewerPacketInput, implReport: ParsedStructuredReport, fileContents: Record<string, string>, toolCallLog: string[], planContext?: string): string;
8
8
  export declare function buildQualityReviewPrompt(packet: ReviewerPacketInput, implReport: ParsedStructuredReport, fileContents: Record<string, string>, toolCallLog: string[]): string;
9
9
  export {};
10
10
  //# sourceMappingURL=reviewer-prompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reviewer-prompt.d.ts","sourceRoot":"","sources":["../../src/review/reviewer-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAEhF,UAAU,mBAAmB;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,mBAAmB,EAC3B,UAAU,EAAE,sBAAsB,EAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,WAAW,EAAE,MAAM,EAAE,GACpB,MAAM,CA6BR;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,mBAAmB,EAC3B,UAAU,EAAE,sBAAsB,EAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,WAAW,EAAE,MAAM,EAAE,GACpB,MAAM,CA4BR"}
1
+ {"version":3,"file":"reviewer-prompt.d.ts","sourceRoot":"","sources":["../../src/review/reviewer-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAEhF,UAAU,mBAAmB;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,mBAAmB,EAC3B,UAAU,EAAE,sBAAsB,EAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,WAAW,EAAE,MAAM,EAAE,EACrB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CA+CR;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,mBAAmB,EAC3B,UAAU,EAAE,sBAAsB,EAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,WAAW,EAAE,MAAM,EAAE,GACpB,MAAM,CA4BR"}
@@ -1,5 +1,5 @@
1
- export function buildSpecReviewPrompt(packet, implReport, fileContents, toolCallLog) {
2
- return [
1
+ export function buildSpecReviewPrompt(packet, implReport, fileContents, toolCallLog, planContext) {
2
+ const sections = [
3
3
  'You are a spec compliance reviewer. Check whether the implementer satisfied the task exactly.',
4
4
  '',
5
5
  '## Execution Packet (what was asked)',
@@ -7,25 +7,13 @@ export function buildSpecReviewPrompt(packet, implReport, fileContents, toolCall
7
7
  `Scope: ${packet.scope.join(', ')}`,
8
8
  `Done condition: ${packet.doneCondition}`,
9
9
  '',
10
- '## Implementer Structured Report',
11
- `Summary: ${implReport.summary ?? 'N/A'}`,
12
- `Files changed: ${implReport.filesChanged.map((f) => `${f.path}: ${f.summary}`).join('; ')}`,
13
- `Validations run: ${implReport.validationsRun.map((v) => `${v.command}: ${v.result}`).join('; ')}`,
14
- `Deviations: ${implReport.deviationsFromBrief.join('; ') || 'none'}`,
15
- `Unresolved: ${implReport.unresolved.join('; ') || 'none'}`,
16
- '',
17
- '## Actual File Contents',
18
- ...Object.entries(fileContents).map(([path, content]) => `### ${path}\n\`\`\`\n${content}\n\`\`\``),
19
- '',
20
- '## Tool-Call Log',
21
- toolCallLog.join('\n'),
22
- '',
23
- '## Your Task',
24
- 'Return a structured report. In ## Summary, state your verdict: "approved" or "changes_required".',
25
- 'In ## Deviations from brief, list specific issues found.',
26
- 'In ## Unresolved, list items needing parent judgment.',
27
- 'Check: scope coverage, acceptance criteria met, required markers present, no out-of-scope changes.',
28
- ].join('\n');
10
+ ];
11
+ // Inject plan context when available (execute_plan tasks)
12
+ if (planContext) {
13
+ sections.push('## Plan Context', 'The implementation was driven by this plan section. Check whether the worker', 'implemented what the plan describes — details, constraints, and acceptance', 'criteria from the plan take precedence over the brief summary.', '', planContext, '');
14
+ }
15
+ sections.push('## Implementer Structured Report', `Summary: ${implReport.summary ?? 'N/A'}`, `Files changed: ${implReport.filesChanged.map((f) => `${f.path}: ${f.summary}`).join('; ')}`, `Validations run: ${implReport.validationsRun.map((v) => `${v.command}: ${v.result}`).join('; ')}`, `Deviations: ${implReport.deviationsFromBrief.join('; ') || 'none'}`, `Unresolved: ${implReport.unresolved.join('; ') || 'none'}`, '', '## Actual File Contents', ...Object.entries(fileContents).map(([path, content]) => `### ${path}\n\`\`\`\n${content}\n\`\`\``), '', '## Tool-Call Log', toolCallLog.join('\n'), '', '## Your Task', 'Return a structured report. In ## Summary, state your verdict: "approved" or "changes_required".', 'In ## Deviations from brief, list specific issues found.', 'In ## Unresolved, list items needing parent judgment.', 'Check: scope coverage, acceptance criteria met, required markers present, no out-of-scope changes.');
16
+ return sections.join('\n');
29
17
  }
30
18
  export function buildQualityReviewPrompt(packet, implReport, fileContents, toolCallLog) {
31
19
  return [
@@ -1 +1 @@
1
- {"version":3,"file":"reviewer-prompt.js","sourceRoot":"","sources":["../../src/review/reviewer-prompt.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,qBAAqB,CACnC,MAA2B,EAC3B,UAAkC,EAClC,YAAoC,EACpC,WAAqB;IAErB,OAAO;QACL,+FAA+F;QAC/F,EAAE;QACF,sCAAsC;QACtC,MAAM,CAAC,MAAM;QACb,UAAU,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACnC,mBAAmB,MAAM,CAAC,aAAa,EAAE;QACzC,EAAE;QACF,kCAAkC;QAClC,YAAY,UAAU,CAAC,OAAO,IAAI,KAAK,EAAE;QACzC,kBAAkB,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC5F,oBAAoB,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAClG,eAAe,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE;QACpE,eAAe,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE;QAC3D,EAAE;QACF,yBAAyB;QACzB,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CACtD,OAAO,IAAI,aAAa,OAAO,UAAU,CAAC;QAC5C,EAAE;QACF,kBAAkB;QAClB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;QACtB,EAAE;QACF,cAAc;QACd,kGAAkG;QAClG,0DAA0D;QAC1D,uDAAuD;QACvD,oGAAoG;KACrG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,MAA2B,EAC3B,UAAkC,EAClC,YAAoC,EACpC,WAAqB;IAErB,OAAO;QACL,qGAAqG;QACrG,EAAE;QACF,qBAAqB;QACrB,MAAM,CAAC,MAAM;QACb,EAAE;QACF,kCAAkC;QAClC,YAAY,UAAU,CAAC,OAAO,IAAI,KAAK,EAAE;QACzC,kBAAkB,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC5F,EAAE;QACF,yBAAyB;QACzB,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CACtD,OAAO,IAAI,aAAa,OAAO,UAAU,CAAC;QAC5C,EAAE;QACF,kBAAkB;QAClB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;QACtB,EAAE;QACF,cAAc;QACd,qFAAqF;QACrF,wDAAwD;QACxD,uBAAuB;QACvB,0BAA0B;QAC1B,sBAAsB;QACtB,4BAA4B;QAC5B,2BAA2B;QAC3B,8DAA8D;KAC/D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"reviewer-prompt.js","sourceRoot":"","sources":["../../src/review/reviewer-prompt.ts"],"names":[],"mappings":"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"}
@@ -10,5 +10,5 @@ export declare function runSpecReview(reviewerProvider: Provider, packet: {
10
10
  prompt: string;
11
11
  scope: string[];
12
12
  doneCondition: string;
13
- }, implReport: ParsedStructuredReport, fileContents: Record<string, string>, toolCallLog: string[]): Promise<SpecReviewResult>;
13
+ }, implReport: ParsedStructuredReport, fileContents: Record<string, string>, toolCallLog: string[], planContext?: string): Promise<SpecReviewResult>;
14
14
  //# sourceMappingURL=spec-reviewer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spec-reviewer.d.ts","sourceRoot":"","sources":["../../src/review/spec-reviewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAGhF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,UAAU,GAAG,kBAAkB,GAAG,OAAO,CAAC;IAClD,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,aAAa,CACjC,gBAAgB,EAAE,QAAQ,EAC1B,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,EAClE,UAAU,EAAE,sBAAsB,EAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAyC3B"}
1
+ {"version":3,"file":"spec-reviewer.d.ts","sourceRoot":"","sources":["../../src/review/spec-reviewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAGhF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,UAAU,GAAG,kBAAkB,GAAG,OAAO,CAAC;IAClD,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,aAAa,CACjC,gBAAgB,EAAE,QAAQ,EAC1B,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,EAClE,UAAU,EAAE,sBAAsB,EAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,WAAW,EAAE,MAAM,EAAE,EACrB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,gBAAgB,CAAC,CAyC3B"}
@@ -1,8 +1,8 @@
1
1
  import { delegateWithEscalation } from '../delegate-with-escalation.js';
2
2
  import { buildSpecReviewPrompt } from './reviewer-prompt.js';
3
3
  import { parseStructuredReport } from '../reporting/structured-report.js';
4
- export async function runSpecReview(reviewerProvider, packet, implReport, fileContents, toolCallLog) {
5
- const prompt = buildSpecReviewPrompt(packet, implReport, fileContents, toolCallLog);
4
+ export async function runSpecReview(reviewerProvider, packet, implReport, fileContents, toolCallLog, planContext) {
5
+ const prompt = buildSpecReviewPrompt(packet, implReport, fileContents, toolCallLog, planContext);
6
6
  let result;
7
7
  try {
8
8
  const reviewerSlot = reviewerProvider.name === 'standard' ? 'standard' : 'complex';
@@ -1 +1 @@
1
- {"version":3,"file":"spec-reviewer.js","sourceRoot":"","sources":["../../src/review/spec-reviewer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAS1E,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,gBAA0B,EAC1B,MAAkE,EAClE,UAAkC,EAClC,YAAoC,EACpC,WAAqB;IAErB,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IAEpF,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,YAAY,GAChB,gBAAgB,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QAChE,MAAM,GAAG,MAAM,sBAAsB,CACnC;YACE,MAAM;YACN,SAAS,EAAE,YAAY;YACvB,kBAAkB,EAAE,KAAK;YACzB,SAAS,EAAE,OAAO;SACnB,EACD,CAAC,gBAAgB,CAAC,EAClB,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAC3B,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,uBAAuB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;IACnI,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,iCAAiC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;IAC1G,CAAC;IAED,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC;IACtG,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAElD,IAAI,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC9C,OAAO;YACL,MAAM,EAAE,kBAAkB;YAC1B,MAAM;YACN,QAAQ,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;SAChF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"spec-reviewer.js","sourceRoot":"","sources":["../../src/review/spec-reviewer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAS1E,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,gBAA0B,EAC1B,MAAkE,EAClE,UAAkC,EAClC,YAAoC,EACpC,WAAqB,EACrB,WAAoB;IAEpB,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IAEjG,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,YAAY,GAChB,gBAAgB,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QAChE,MAAM,GAAG,MAAM,sBAAsB,CACnC;YACE,MAAM;YACN,SAAS,EAAE,YAAY;YACvB,kBAAkB,EAAE,KAAK;YACzB,SAAS,EAAE,OAAO;SACnB,EACD,CAAC,gBAAgB,CAAC,EAClB,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAC3B,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,uBAAuB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;IACnI,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,iCAAiC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;IAC1G,CAAC;IAED,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC;IACtG,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAElD,IAAI,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC9C,OAAO;YACL,MAAM,EAAE,kBAAkB;YAC1B,MAAM;YACN,QAAQ,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;SAChF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACtD,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { RunResult, TaskSpec, MultiModelConfig, ProgressEvent, RunTasksRuntime } from './types.js';
2
+ export declare function extractPlanSection(planFilePaths: string[], taskDescriptor: string, cwd: string | undefined): Promise<string | undefined>;
2
3
  export type RunTasksProgressCallback = (taskIndex: number, event: ProgressEvent) => void;
3
4
  export interface RunTasksOptions {
4
5
  onProgress?: RunTasksProgressCallback;
@@ -1 +1 @@
1
- {"version":3,"file":"run-tasks.d.ts","sourceRoot":"","sources":["../src/run-tasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,eAAe,EAIhB,MAAM,YAAY,CAAC;AAgBpB,MAAM,MAAM,wBAAwB,GAAG,CACrC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,aAAa,KACjB,IAAI,CAAC;AAEV,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAyZD,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,QAAQ,EAAE,EACjB,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,SAAS,EAAE,CAAC,CAqHtB"}
1
+ {"version":3,"file":"run-tasks.d.ts","sourceRoot":"","sources":["../src/run-tasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,SAAS,EACT,QAAQ,EACR,gBAAgB,EAEhB,aAAa,EACb,eAAe,EAIhB,MAAM,YAAY,CAAC;AAmBpB,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,MAAM,EAAE,EACvB,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,MAAM,GAAG,SAAS,GACtB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAgD7B;AAED,MAAM,MAAM,wBAAwB,GAAG,CACrC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,aAAa,KACjB,IAAI,CAAC;AAEV,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAqdD,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,QAAQ,EAAE,EACjB,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,SAAS,EAAE,CAAC,CAiHtB"}