@zhixuan92/multi-model-agent-core 1.1.0 → 1.2.1

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 (51) hide show
  1. package/dist/delegate-with-escalation.d.ts.map +1 -1
  2. package/dist/delegate-with-escalation.js +54 -19
  3. package/dist/delegate-with-escalation.js.map +1 -1
  4. package/dist/effort-inference.d.ts +7 -0
  5. package/dist/effort-inference.d.ts.map +1 -0
  6. package/dist/effort-inference.js +22 -0
  7. package/dist/effort-inference.js.map +1 -0
  8. package/dist/review/aggregate-result.d.ts +1 -1
  9. package/dist/review/aggregate-result.d.ts.map +1 -1
  10. package/dist/review/aggregate-result.js.map +1 -1
  11. package/dist/review/quality-reviewer.d.ts +1 -1
  12. package/dist/review/quality-reviewer.d.ts.map +1 -1
  13. package/dist/review/quality-reviewer.js +4 -4
  14. package/dist/review/quality-reviewer.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 +3 -3
  18. package/dist/review/spec-reviewer.js.map +1 -1
  19. package/dist/run-tasks.d.ts.map +1 -1
  20. package/dist/run-tasks.js +58 -14
  21. package/dist/run-tasks.js.map +1 -1
  22. package/dist/runners/claude-runner.d.ts.map +1 -1
  23. package/dist/runners/claude-runner.js +2 -2
  24. package/dist/runners/claude-runner.js.map +1 -1
  25. package/dist/runners/codex-runner.d.ts.map +1 -1
  26. package/dist/runners/codex-runner.js +16 -0
  27. package/dist/runners/codex-runner.js.map +1 -1
  28. package/dist/runners/openai-runner.d.ts.map +1 -1
  29. package/dist/runners/openai-runner.js +2 -2
  30. package/dist/runners/openai-runner.js.map +1 -1
  31. package/dist/runners/prevention.d.ts.map +1 -1
  32. package/dist/runners/prevention.js +8 -0
  33. package/dist/runners/prevention.js.map +1 -1
  34. package/dist/runners/supervision.d.ts +6 -1
  35. package/dist/runners/supervision.d.ts.map +1 -1
  36. package/dist/runners/supervision.js +12 -2
  37. package/dist/runners/supervision.js.map +1 -1
  38. package/dist/tools/claude-adapter.d.ts.map +1 -1
  39. package/dist/tools/claude-adapter.js +12 -1
  40. package/dist/tools/claude-adapter.js.map +1 -1
  41. package/dist/tools/definitions.d.ts +1 -0
  42. package/dist/tools/definitions.d.ts.map +1 -1
  43. package/dist/tools/definitions.js +21 -0
  44. package/dist/tools/definitions.js.map +1 -1
  45. package/dist/tools/openai-adapter.d.ts.map +1 -1
  46. package/dist/tools/openai-adapter.js +17 -1
  47. package/dist/tools/openai-adapter.js.map +1 -1
  48. package/dist/types.d.ts +12 -4
  49. package/dist/types.d.ts.map +1 -1
  50. package/dist/types.js.map +1 -1
  51. package/package.json +1 -1
@@ -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,EACT,QAAQ,EAER,aAAa,EACd,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,eAAe;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CAC7C;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,QAAQ,EAAE,EACjB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,SAAS,CAAC,CAuGpB"}
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,EACT,QAAQ,EAER,aAAa,EACd,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,eAAe;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CAC7C;AAiBD,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,QAAQ,EAAE,EACjB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,SAAS,CAAC,CAmIpB"}
@@ -1,4 +1,18 @@
1
1
  import { retryableFor } from './error-codes.js';
2
+ const TRANSIENT_STATUSES = new Set(['api_error', 'network_error']);
3
+ const TIMEOUT_STATUS = 'timeout';
4
+ const MAX_RETRIES = 2;
5
+ const BASE_DELAY_MS = 1000;
6
+ function sleep(ms) {
7
+ return new Promise(resolve => setTimeout(resolve, ms));
8
+ }
9
+ function maxRetriesForStatus(status) {
10
+ if (TRANSIENT_STATUSES.has(status))
11
+ return MAX_RETRIES;
12
+ if (status === TIMEOUT_STATUS)
13
+ return 1;
14
+ return 0;
15
+ }
2
16
  export async function delegateWithEscalation(task, chain, options = {}) {
3
17
  if (chain.length === 0) {
4
18
  throw new Error('delegateWithEscalation called with empty chain');
@@ -26,24 +40,39 @@ export async function delegateWithEscalation(task, chain, options = {}) {
26
40
  }
27
41
  let initialPromptLengthChars = 0;
28
42
  let initialPromptHash = '';
29
- const result = await provider.run(task.prompt, {
30
- tools: task.tools,
31
- maxTurns: task.maxTurns,
32
- timeoutMs: task.timeoutMs,
33
- cwd: task.cwd,
34
- effort: task.effort,
35
- sandboxPolicy: task.sandboxPolicy,
36
- expectedCoverage: task.expectedCoverage,
37
- skipCompletionHeuristic: task.skipCompletionHeuristic,
38
- parentModel: task.parentModel,
39
- maxCostUSD: task.maxCostUSD,
40
- formatConstraints: task.formatConstraints,
41
- onProgress: safeSink,
42
- onInitialRequest: (meta) => {
43
- initialPromptLengthChars = meta.lengthChars;
44
- initialPromptHash = meta.sha256;
45
- },
46
- });
43
+ let result;
44
+ let cumulativeCostUSD = 0;
45
+ for (let attempt = 0;; attempt++) {
46
+ const adjustedMaxCostUSD = task.maxCostUSD !== undefined ? Math.max(0, task.maxCostUSD - cumulativeCostUSD) : undefined;
47
+ result = await provider.run(task.prompt, {
48
+ tools: task.tools,
49
+ maxTurns: task.maxTurns,
50
+ timeoutMs: task.timeoutMs,
51
+ cwd: task.cwd,
52
+ effort: task.effort,
53
+ sandboxPolicy: task.sandboxPolicy,
54
+ expectedCoverage: task.expectedCoverage,
55
+ skipCompletionHeuristic: task.skipCompletionHeuristic,
56
+ parentModel: task.parentModel,
57
+ maxCostUSD: adjustedMaxCostUSD,
58
+ formatConstraints: task.formatConstraints,
59
+ onProgress: safeSink,
60
+ onInitialRequest: (meta) => {
61
+ initialPromptLengthChars = meta.lengthChars;
62
+ initialPromptHash = meta.sha256;
63
+ },
64
+ });
65
+ const maxRetries = maxRetriesForStatus(result.status);
66
+ if (result.status === 'ok' || maxRetries === 0 || attempt >= maxRetries)
67
+ break;
68
+ const attemptCost = result.usage.costUSD ?? 0;
69
+ cumulativeCostUSD += attemptCost;
70
+ if (task.maxCostUSD !== undefined && cumulativeCostUSD >= task.maxCostUSD)
71
+ break;
72
+ const delayMs = BASE_DELAY_MS * Math.pow(2, attempt);
73
+ safeSink?.({ kind: 'retry', attempt: attempt + 1, previousStatus: result.status, delayMs });
74
+ await sleep(delayMs);
75
+ }
47
76
  const record = {
48
77
  provider: provider.name,
49
78
  status: result.status,
@@ -81,7 +110,13 @@ export async function delegateWithEscalation(task, chain, options = {}) {
81
110
  best = a.result;
82
111
  }
83
112
  }
84
- const finalStatus = best.status === 'ok' ? 'incomplete' : best.status;
113
+ const baseStatus = best.status === 'ok' ? 'incomplete' : best.status;
114
+ // C2: Promote incomplete → ok when agent self-assessed as done AND produced file artifacts
115
+ const finalStatus = baseStatus === 'incomplete' &&
116
+ best.workerStatus === 'done' &&
117
+ best.filesWritten.length > 0
118
+ ? 'ok'
119
+ : baseStatus;
85
120
  return {
86
121
  ...best,
87
122
  status: finalStatus,
@@ -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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"}
@@ -0,0 +1,7 @@
1
+ import type { Effort } from './types.js';
2
+ /**
3
+ * Infer effort from task prompt shape. Returns undefined when no heuristic
4
+ * matches (caller falls back to provider config default). Exported for testing.
5
+ */
6
+ export declare function inferEffort(prompt: string): Effort | undefined;
7
+ //# sourceMappingURL=effort-inference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effort-inference.d.ts","sourceRoot":"","sources":["../src/effort-inference.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAMzC;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAc9D"}
@@ -0,0 +1,22 @@
1
+ const CODE_BLOCK_RE = /```[\s\S]*?```/g;
2
+ const ACTION_VERB_RE = /\b(edit|modify|update|change|fix|refactor|replace)\b/i;
3
+ const FILE_PATH_RE = /\b[\w\-./]+\.(ts|js|tsx|jsx|py|rs|go|java|rb|cpp|c|h)\b/;
4
+ /**
5
+ * Infer effort from task prompt shape. Returns undefined when no heuristic
6
+ * matches (caller falls back to provider config default). Exported for testing.
7
+ */
8
+ export function inferEffort(prompt) {
9
+ // Heuristic 1: Large code block → exact-write task → low effort
10
+ const codeBlocks = prompt.match(CODE_BLOCK_RE) ?? [];
11
+ for (const block of codeBlocks) {
12
+ const lines = block.split('\n').length - 2; // subtract opening/closing fence lines
13
+ if (lines > 20)
14
+ return 'low';
15
+ }
16
+ // Heuristic 2: File references + action verbs → discovery task → medium effort
17
+ if (FILE_PATH_RE.test(prompt) && ACTION_VERB_RE.test(prompt)) {
18
+ return 'medium';
19
+ }
20
+ return undefined;
21
+ }
22
+ //# sourceMappingURL=effort-inference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effort-inference.js","sourceRoot":"","sources":["../src/effort-inference.ts"],"names":[],"mappings":"AAEA,MAAM,aAAa,GAAG,iBAAiB,CAAC;AACxC,MAAM,cAAc,GAAG,uDAAuD,CAAC;AAC/E,MAAM,YAAY,GAAG,yDAAyD,CAAC;AAE/E;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,gEAAgE;IAChE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IACrD,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,uCAAuC;QACnF,IAAI,KAAK,GAAG,EAAE;YAAE,OAAO,KAAK,CAAC;IAC/B,CAAC;IAED,+EAA+E;IAC/E,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7D,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import type { ParsedStructuredReport } from '../reporting/structured-report.js';
2
- export declare function aggregateResult(implReport: ParsedStructuredReport, specReport: ParsedStructuredReport | undefined, qualityReport: ParsedStructuredReport | undefined, specStatus: 'approved' | 'changes_required' | 'not_run', qualityStatus: 'approved' | 'changes_required' | 'not_run'): ParsedStructuredReport;
2
+ export declare function aggregateResult(implReport: ParsedStructuredReport, specReport: ParsedStructuredReport | undefined, qualityReport: ParsedStructuredReport | undefined, specStatus: 'approved' | 'changes_required' | 'skipped' | 'error', qualityStatus: 'approved' | 'changes_required' | 'skipped' | 'error'): ParsedStructuredReport;
3
3
  //# sourceMappingURL=aggregate-result.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate-result.d.ts","sourceRoot":"","sources":["../../src/review/aggregate-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAEhF,wBAAgB,eAAe,CAC7B,UAAU,EAAE,sBAAsB,EAClC,UAAU,EAAE,sBAAsB,GAAG,SAAS,EAC9C,aAAa,EAAE,sBAAsB,GAAG,SAAS,EACjD,UAAU,EAAE,UAAU,GAAG,kBAAkB,GAAG,SAAS,EACvD,aAAa,EAAE,UAAU,GAAG,kBAAkB,GAAG,SAAS,GACzD,sBAAsB,CA+BxB"}
1
+ {"version":3,"file":"aggregate-result.d.ts","sourceRoot":"","sources":["../../src/review/aggregate-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAEhF,wBAAgB,eAAe,CAC7B,UAAU,EAAE,sBAAsB,EAClC,UAAU,EAAE,sBAAsB,GAAG,SAAS,EAC9C,aAAa,EAAE,sBAAsB,GAAG,SAAS,EACjD,UAAU,EAAE,UAAU,GAAG,kBAAkB,GAAG,SAAS,GAAG,OAAO,EACjE,aAAa,EAAE,UAAU,GAAG,kBAAkB,GAAG,SAAS,GAAG,OAAO,GACnE,sBAAsB,CA+BxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate-result.js","sourceRoot":"","sources":["../../src/review/aggregate-result.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAC7B,UAAkC,EAClC,UAA8C,EAC9C,aAAiD,EACjD,UAAuD,EACvD,aAA0D;IAE1D,MAAM,MAAM,GACV,UAAU,KAAK,kBAAkB;QAC/B,CAAC,CAAC,0BAA0B;QAC5B,CAAC,CAAC,aAAa,KAAK,kBAAkB;YACpC,CAAC,CAAC,6BAA6B;YAC/B,CAAC,CAAC,aAAa,CAAC;IAEtB,OAAO;QACL,OAAO,EAAE,GAAG,MAAM,GAAG,UAAU,CAAC,OAAO,IAAI,EAAE,EAAE;QAC/C,YAAY,EAAE;YACZ,GAAG,UAAU,CAAC,YAAY;YAC1B,GAAG,CAAC,aAAa,EAAE,YAAY,IAAI,EAAE,CAAC;SACvC;QACD,sBAAsB,EAAE,UAAU,CAAC,sBAAsB;QACzD,cAAc,EAAE;YACd,GAAG,UAAU,CAAC,cAAc;YAC5B,GAAG,CAAC,UAAU,EAAE,cAAc,IAAI,EAAE,CAAC;YACrC,GAAG,CAAC,aAAa,EAAE,cAAc,IAAI,EAAE,CAAC;SACzC;QACD,mBAAmB,EAAE;YACnB,GAAG,CAAC,UAAU,CAAC,mBAAmB,IAAI,EAAE,CAAC;YACzC,GAAG,CAAC,UAAU,EAAE,mBAAmB,IAAI,EAAE,CAAC;YAC1C,GAAG,CAAC,aAAa,EAAE,mBAAmB,IAAI,EAAE,CAAC;SAC9C;QACD,UAAU,EAAE;YACV,GAAG,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC;YAChC,GAAG,CAAC,UAAU,EAAE,UAAU,IAAI,EAAE,CAAC;YACjC,GAAG,CAAC,aAAa,EAAE,UAAU,IAAI,EAAE,CAAC;SACrC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"aggregate-result.js","sourceRoot":"","sources":["../../src/review/aggregate-result.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAC7B,UAAkC,EAClC,UAA8C,EAC9C,aAAiD,EACjD,UAAiE,EACjE,aAAoE;IAEpE,MAAM,MAAM,GACV,UAAU,KAAK,kBAAkB;QAC/B,CAAC,CAAC,0BAA0B;QAC5B,CAAC,CAAC,aAAa,KAAK,kBAAkB;YACpC,CAAC,CAAC,6BAA6B;YAC/B,CAAC,CAAC,aAAa,CAAC;IAEtB,OAAO;QACL,OAAO,EAAE,GAAG,MAAM,GAAG,UAAU,CAAC,OAAO,IAAI,EAAE,EAAE;QAC/C,YAAY,EAAE;YACZ,GAAG,UAAU,CAAC,YAAY;YAC1B,GAAG,CAAC,aAAa,EAAE,YAAY,IAAI,EAAE,CAAC;SACvC;QACD,sBAAsB,EAAE,UAAU,CAAC,sBAAsB;QACzD,cAAc,EAAE;YACd,GAAG,UAAU,CAAC,cAAc;YAC5B,GAAG,CAAC,UAAU,EAAE,cAAc,IAAI,EAAE,CAAC;YACrC,GAAG,CAAC,aAAa,EAAE,cAAc,IAAI,EAAE,CAAC;SACzC;QACD,mBAAmB,EAAE;YACnB,GAAG,CAAC,UAAU,CAAC,mBAAmB,IAAI,EAAE,CAAC;YACzC,GAAG,CAAC,UAAU,EAAE,mBAAmB,IAAI,EAAE,CAAC;YAC1C,GAAG,CAAC,aAAa,EAAE,mBAAmB,IAAI,EAAE,CAAC;SAC9C;QACD,UAAU,EAAE;YACV,GAAG,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC;YAChC,GAAG,CAAC,UAAU,EAAE,UAAU,IAAI,EAAE,CAAC;YACjC,GAAG,CAAC,aAAa,EAAE,UAAU,IAAI,EAAE,CAAC;SACrC;KACF,CAAC;AACJ,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { Provider } from '../types.js';
2
2
  import type { ParsedStructuredReport } from '../reporting/structured-report.js';
3
3
  export interface QualityReviewResult {
4
- status: 'approved' | 'changes_required' | 'not_run';
4
+ status: 'approved' | 'changes_required' | 'skipped' | 'error';
5
5
  report?: ParsedStructuredReport;
6
6
  findings: string[];
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"quality-reviewer.d.ts","sourceRoot":"","sources":["../../src/review/quality-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,mBAAmB;IAClC,MAAM,EAAE,UAAU,GAAG,kBAAkB,GAAG,SAAS,CAAC;IACpD,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAsB,gBAAgB,CACpC,gBAAgB,EAAE,QAAQ,EAC1B,MAAM,EAAE;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,EAC5E,UAAU,EAAE,sBAAsB,EAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,WAAW,EAAE,MAAM,EAAE,EACrB,YAAY,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,mBAAmB,CAAC,CA4C9B"}
1
+ {"version":3,"file":"quality-reviewer.d.ts","sourceRoot":"","sources":["../../src/review/quality-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,mBAAmB;IAClC,MAAM,EAAE,UAAU,GAAG,kBAAkB,GAAG,SAAS,GAAG,OAAO,CAAC;IAC9D,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAsB,gBAAgB,CACpC,gBAAgB,EAAE,QAAQ,EAC1B,MAAM,EAAE;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,EAC5E,UAAU,EAAE,sBAAsB,EAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,WAAW,EAAE,MAAM,EAAE,EACrB,YAAY,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,mBAAmB,CAAC,CA4C9B"}
@@ -3,7 +3,7 @@ import { buildQualityReviewPrompt } from './reviewer-prompt.js';
3
3
  import { parseStructuredReport } from '../reporting/structured-report.js';
4
4
  export async function runQualityReview(reviewerProvider, packet, implReport, fileContents, toolCallLog, filesWritten) {
5
5
  if (filesWritten.length === 0) {
6
- return { status: 'not_run', findings: [] };
6
+ return { status: 'skipped', findings: [] };
7
7
  }
8
8
  let result;
9
9
  try {
@@ -17,14 +17,14 @@ export async function runQualityReview(reviewerProvider, packet, implReport, fil
17
17
  }, [reviewerProvider], { explicitlyPinned: true });
18
18
  }
19
19
  catch {
20
- return { status: 'not_run', findings: [] };
20
+ return { status: 'error', findings: [] };
21
21
  }
22
22
  if (result.status !== 'ok') {
23
- return { status: 'not_run', findings: [] };
23
+ return { status: 'error', findings: [] };
24
24
  }
25
25
  const report = parseStructuredReport(result.output);
26
26
  if (!report.summary) {
27
- return { status: 'not_run', findings: [] };
27
+ return { status: 'error', findings: [] };
28
28
  }
29
29
  const summaryLower = report.summary.toLowerCase();
30
30
  if (summaryLower.includes('changes_required')) {
@@ -1 +1 @@
1
- {"version":3,"file":"quality-reviewer.js","sourceRoot":"","sources":["../../src/review/quality-reviewer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAQ1E,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,gBAA0B,EAC1B,MAA4E,EAC5E,UAAkC,EAClC,YAAoC,EACpC,WAAqB,EACrB,YAAsB;IAEtB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC7C,CAAC;IAED,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,EAAE,wBAAwB,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC;YAC/E,SAAS,EAAE,YAAY;YACvB,kBAAkB,EAAE,KAAK;YACzB,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,OAAO;SACnB,EACD,CAAC,gBAAgB,CAAC,EAClB,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAC3B,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC7C,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC7C,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,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC7C,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":"quality-reviewer.js","sourceRoot":"","sources":["../../src/review/quality-reviewer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAQ1E,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,gBAA0B,EAC1B,MAA4E,EAC5E,UAAkC,EAClC,YAAoC,EACpC,WAAqB,EACrB,YAAsB;IAEtB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC7C,CAAC;IAED,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,EAAE,wBAAwB,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC;YAC/E,SAAS,EAAE,YAAY;YACvB,kBAAkB,EAAE,KAAK;YACzB,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,OAAO;SACnB,EACD,CAAC,gBAAgB,CAAC,EAClB,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAC3B,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC3C,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC3C,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,CAAC;IAC3C,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,7 +1,7 @@
1
1
  import type { Provider } from '../types.js';
2
2
  import type { ParsedStructuredReport } from '../reporting/structured-report.js';
3
3
  export interface SpecReviewResult {
4
- status: 'approved' | 'changes_required' | 'not_run';
4
+ status: 'approved' | 'changes_required' | 'error';
5
5
  report?: ParsedStructuredReport;
6
6
  findings: string[];
7
7
  }
@@ -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,SAAS,CAAC;IACpD,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAsB,aAAa,CACjC,gBAAgB,EAAE,QAAQ,EAC1B,MAAM,EAAE;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,EAC5E,UAAU,EAAE,sBAAsB,EAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,gBAAgB,CAAC,CA0C3B"}
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;CACpB;AAED,wBAAsB,aAAa,CACjC,gBAAgB,EAAE,QAAQ,EAC1B,MAAM,EAAE;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,EAC5E,UAAU,EAAE,sBAAsB,EAClC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,gBAAgB,CAAC,CA0C3B"}
@@ -15,14 +15,14 @@ export async function runSpecReview(reviewerProvider, packet, implReport, fileCo
15
15
  }, [reviewerProvider], { explicitlyPinned: true });
16
16
  }
17
17
  catch {
18
- return { status: 'not_run', findings: [] };
18
+ return { status: 'error', findings: [] };
19
19
  }
20
20
  if (result.status !== 'ok') {
21
- return { status: 'not_run', findings: [] };
21
+ return { status: 'error', findings: [] };
22
22
  }
23
23
  const report = parseStructuredReport(result.output);
24
24
  if (!report.summary) {
25
- return { status: 'not_run', findings: [] };
25
+ return { status: 'error', findings: [] };
26
26
  }
27
27
  const summaryLower = report.summary.toLowerCase();
28
28
  if (summaryLower.includes('changes_required')) {
@@ -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;AAQ1E,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,gBAA0B,EAC1B,MAA4E,EAC5E,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,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,OAAO;SACnB,EACD,CAAC,gBAAgB,CAAC,EAClB,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAC3B,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC7C,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC7C,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,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC7C,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;AAQ1E,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,gBAA0B,EAC1B,MAA4E,EAC5E,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,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,OAAO;SACnB,EACD,CAAC,gBAAgB,CAAC,EAClB,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAC3B,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC3C,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC3C,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,CAAC;IAC3C,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 +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;AAepB,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;AAmRD,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,QAAQ,EAAE,EACjB,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,SAAS,EAAE,CAAC,CAyGtB"}
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;AAqSD,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,QAAQ,EAAE,EACjB,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,SAAS,EAAE,CAAC,CAqItB"}
package/dist/run-tasks.js CHANGED
@@ -2,6 +2,7 @@ import { createProvider } from './provider.js';
2
2
  import { resolveAgent } from './routing/resolve-agent.js';
3
3
  import { delegateWithEscalation } from './delegate-with-escalation.js';
4
4
  import { expandContextBlocks } from './context/expand-context-blocks.js';
5
+ import { inferEffort } from './effort-inference.js';
5
6
  import { evaluateReadiness } from './readiness/readiness.js';
6
7
  import { normalizeBrief } from './readiness/normalize-brief.js';
7
8
  import { runSpecReview } from './review/spec-reviewer.js';
@@ -81,17 +82,34 @@ async function executeReviewedLifecycle(task, resolved, config, normResult, onPr
81
82
  const implResult = await delegateWithEscalation(task, [resolved.provider], { explicitlyPinned: true, onProgress });
82
83
  const implReport = implResult.status === 'ok' ? parseStructuredReport(implResult.output) : undefined;
83
84
  const workerStatus = extractWorkerStatus(implReport);
85
+ // C6a: Skip review when there are no file artifacts to review
86
+ const hasWorkProduct = implResult.filesWritten.length > 0;
87
+ if (!hasWorkProduct) {
88
+ return {
89
+ ...implResult,
90
+ workerStatus,
91
+ specReviewStatus: 'skipped',
92
+ qualityReviewStatus: 'skipped',
93
+ agents: {
94
+ normalizer: normResult && !normResult.skipped ? resolved.slot : 'skipped',
95
+ implementer: resolved.slot,
96
+ specReviewer: 'skipped',
97
+ qualityReviewer: 'skipped',
98
+ },
99
+ implementationReport: implReport,
100
+ };
101
+ }
84
102
  if (workerStatus === 'needs_context' || workerStatus === 'blocked') {
85
103
  return {
86
104
  ...implResult,
87
105
  workerStatus,
88
- specReviewStatus: 'not_run',
89
- qualityReviewStatus: 'not_run',
106
+ specReviewStatus: 'skipped',
107
+ qualityReviewStatus: 'skipped',
90
108
  agents: {
91
109
  normalizer: normResult && !normResult.skipped ? resolved.slot : 'skipped',
92
110
  implementer: resolved.slot,
93
- specReviewer: 'not_run',
94
- qualityReviewer: 'not_run',
111
+ specReviewer: 'skipped',
112
+ qualityReviewer: 'skipped',
95
113
  },
96
114
  };
97
115
  }
@@ -99,13 +117,13 @@ async function executeReviewedLifecycle(task, resolved, config, normResult, onPr
99
117
  return {
100
118
  ...implResult,
101
119
  workerStatus,
102
- specReviewStatus: 'not_run',
103
- qualityReviewStatus: 'not_run',
120
+ specReviewStatus: 'skipped',
121
+ qualityReviewStatus: 'skipped',
104
122
  agents: {
105
123
  normalizer: normResult && !normResult.skipped ? resolved.slot : 'skipped',
106
124
  implementer: resolved.slot,
107
- specReviewer: 'not_run',
108
- qualityReviewer: 'not_run',
125
+ specReviewer: 'skipped',
126
+ qualityReviewer: 'skipped',
109
127
  },
110
128
  implementationReport: implReport,
111
129
  };
@@ -118,13 +136,13 @@ async function executeReviewedLifecycle(task, resolved, config, normResult, onPr
118
136
  return {
119
137
  ...implResult,
120
138
  workerStatus,
121
- specReviewStatus: 'not_run',
122
- qualityReviewStatus: 'not_run',
139
+ specReviewStatus: 'skipped',
140
+ qualityReviewStatus: 'skipped',
123
141
  agents: {
124
142
  normalizer: normResult && !normResult.skipped ? resolved.slot : 'skipped',
125
143
  implementer: resolved.slot,
126
- specReviewer: 'not_run',
127
- qualityReviewer: 'not_run',
144
+ specReviewer: 'skipped',
145
+ qualityReviewer: 'skipped',
128
146
  },
129
147
  };
130
148
  }
@@ -156,7 +174,7 @@ async function executeReviewedLifecycle(task, resolved, config, normResult, onPr
156
174
  break;
157
175
  }
158
176
  }
159
- let qualityResult = { status: 'not_run', report: undefined, findings: [] };
177
+ let qualityResult = { status: 'skipped', report: undefined, findings: [] };
160
178
  if (reviewPolicy === 'full') {
161
179
  qualityResult = await runQualityReview(otherProvider, packet, specReport ?? finalImplReport, fileContents, finalImplResult.toolCalls, finalImplResult.filesWritten);
162
180
  if (qualityResult.status === 'changes_required' && maxRounds > 0) {
@@ -188,7 +206,7 @@ async function executeReviewedLifecycle(task, resolved, config, normResult, onPr
188
206
  normalizer: normResult && !normResult.skipped ? resolved.slot : 'skipped',
189
207
  implementer: resolved.slot,
190
208
  specReviewer: otherSlot,
191
- qualityReviewer: reviewPolicy === 'full' ? otherSlot : 'not_run',
209
+ qualityReviewer: reviewPolicy === 'full' ? otherSlot : 'skipped',
192
210
  },
193
211
  };
194
212
  }
@@ -268,6 +286,32 @@ export async function runTasks(tasks, config, options = {}) {
268
286
  };
269
287
  }
270
288
  });
289
+ // C5: Apply effort default when not explicitly set
290
+ for (const r of resolved) {
291
+ if ('error' in r)
292
+ continue;
293
+ if (r.task.effort === undefined) {
294
+ const inferred = inferEffort(r.task.prompt);
295
+ if (inferred !== undefined) {
296
+ r.task = { ...r.task, effort: inferred };
297
+ }
298
+ }
299
+ }
300
+ // C3: Inject parallel-safety suffix when dispatching 2+ tasks
301
+ if (resolved.length > 1) {
302
+ const PARALLEL_SAFETY_SUFFIX = '\n\nYou are running in parallel with other tasks. ' +
303
+ 'Do NOT run full-project build commands (`npm run build`, `tsc`, `cargo build`). ' +
304
+ 'Only run task-specific test commands if provided.';
305
+ for (const r of resolved) {
306
+ if ('error' in r)
307
+ continue;
308
+ r.task = {
309
+ ...r.task,
310
+ prompt: r.task.prompt + PARALLEL_SAFETY_SUFFIX +
311
+ (r.task.testCommand ? `\nTo verify your work, run: \`${r.task.testCommand}\`` : ''),
312
+ };
313
+ }
314
+ }
271
315
  return Promise.all(resolved.map((r, index) => {
272
316
  if ('error' in r) {
273
317
  return Promise.resolve({ ...errorResult(r.error), errorCode: r.errorCode });
@@ -1 +1 @@
1
- {"version":3,"file":"run-tasks.js","sourceRoot":"","sources":["../src/run-tasks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-tasks.js","sourceRoot":"","sources":["../src/run-tasks.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"claude-runner.d.ts","sourceRoot":"","sources":["../../src/runners/claude-runner.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,cAAc,EAEnB,KAAK,QAAQ,EACd,MAAM,aAAa,CAAC;AAwGrB,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,UAAU,EACnB,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,GACjE,OAAO,CAAC,SAAS,CAAC,CAmoBpB"}
1
+ {"version":3,"file":"claude-runner.d.ts","sourceRoot":"","sources":["../../src/runners/claude-runner.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,cAAc,EAEnB,KAAK,QAAQ,EACd,MAAM,aAAa,CAAC;AAyGrB,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,UAAU,EACnB,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,GACjE,OAAO,CAAC,SAAS,CAAC,CAmoBpB"}
@@ -8,7 +8,7 @@ import { TextScratchpad } from '../tools/scratchpad.js';
8
8
  import { CostMeter } from '../cost/cost-meter.js';
9
9
  import { CallCache } from '../tools/call-cache.js';
10
10
  import { buildSystemPrompt, buildBudgetHint, buildReGroundingMessage, buildBudgetPressureNudge, buildFormatConstraintSuffix, RE_GROUNDING_INTERVAL_TURNS, } from './prevention.js';
11
- import { validateSubAgentOutput, buildRePrompt, sameDegenerateOutput, resolveInputTokenSoftLimit, checkWatchdogThreshold, logWatchdogEvent, } from './supervision.js';
11
+ import { validateSubAgentOutput, buildRePrompt, sameDegenerateOutput, resolveInputTokenSoftLimit, checkWatchdogThreshold, logWatchdogEvent, hasCompletedWork, } from './supervision.js';
12
12
  import { injectionTypeFor } from './injection-type.js';
13
13
  import { classifyError } from './error-classification.js';
14
14
  import { findModelProfile } from '../routing/model-profiles.js';
@@ -538,7 +538,7 @@ export async function runClaude(prompt, options, providerConfig, defaults) {
538
538
  // spent / same-output early-out fires — exits as incomplete. ---
539
539
  const validation = validateSubAgentOutput(output, {
540
540
  expectedCoverage: options.expectedCoverage,
541
- skipCompletionHeuristic: options.skipCompletionHeuristic,
541
+ skipCompletionHeuristic: options.skipCompletionHeuristic || hasCompletedWork(tracker.getToolCalls()),
542
542
  });
543
543
  if (validation.valid) {
544
544
  completedResult = buildClaudeOkResult({