@zhixuan92/multi-model-agent-core 3.1.7 → 3.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 (181) hide show
  1. package/dist/auto-commit.d.ts +8 -1
  2. package/dist/auto-commit.d.ts.map +1 -1
  3. package/dist/auto-commit.js +6 -3
  4. package/dist/auto-commit.js.map +1 -1
  5. package/dist/batch-cache.d.ts +1 -1
  6. package/dist/batch-cache.d.ts.map +1 -1
  7. package/dist/batch-cache.js +3 -5
  8. package/dist/batch-cache.js.map +1 -1
  9. package/dist/config/schema.d.ts +13 -13
  10. package/dist/delegate-with-escalation.d.ts +2 -1
  11. package/dist/delegate-with-escalation.d.ts.map +1 -1
  12. package/dist/delegate-with-escalation.js.map +1 -1
  13. package/dist/diagnostics/request-spill.d.ts +16 -0
  14. package/dist/diagnostics/request-spill.d.ts.map +1 -0
  15. package/dist/diagnostics/request-spill.js +23 -0
  16. package/dist/diagnostics/request-spill.js.map +1 -0
  17. package/dist/diagnostics/verbose-line.d.ts +12 -0
  18. package/dist/diagnostics/verbose-line.d.ts.map +1 -0
  19. package/dist/diagnostics/verbose-line.js +80 -0
  20. package/dist/diagnostics/verbose-line.js.map +1 -0
  21. package/dist/executors/audit.js +1 -1
  22. package/dist/executors/audit.js.map +1 -1
  23. package/dist/executors/debug.js +2 -2
  24. package/dist/executors/debug.js.map +1 -1
  25. package/dist/executors/delegate.d.ts +2 -2
  26. package/dist/executors/delegate.d.ts.map +1 -1
  27. package/dist/executors/delegate.js +7 -3
  28. package/dist/executors/delegate.js.map +1 -1
  29. package/dist/executors/execute-plan.d.ts.map +1 -1
  30. package/dist/executors/execute-plan.js +10 -3
  31. package/dist/executors/execute-plan.js.map +1 -1
  32. package/dist/executors/execution-context.d.ts +3 -0
  33. package/dist/executors/execution-context.d.ts.map +1 -0
  34. package/dist/executors/execution-context.js +20 -0
  35. package/dist/executors/execution-context.js.map +1 -0
  36. package/dist/executors/retry.d.ts +1 -1
  37. package/dist/executors/retry.d.ts.map +1 -1
  38. package/dist/executors/retry.js +5 -2
  39. package/dist/executors/retry.js.map +1 -1
  40. package/dist/executors/review.js +1 -1
  41. package/dist/executors/review.js.map +1 -1
  42. package/dist/executors/shared-compute.d.ts +2 -1
  43. package/dist/executors/shared-compute.d.ts.map +1 -1
  44. package/dist/executors/shared-compute.js.map +1 -1
  45. package/dist/executors/types.d.ts +29 -26
  46. package/dist/executors/types.d.ts.map +1 -1
  47. package/dist/executors/verify.js +1 -1
  48. package/dist/executors/verify.js.map +1 -1
  49. package/dist/heartbeat.d.ts +8 -1
  50. package/dist/heartbeat.d.ts.map +1 -1
  51. package/dist/heartbeat.js +28 -1
  52. package/dist/heartbeat.js.map +1 -1
  53. package/dist/index.d.ts +7 -3
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +1 -1
  56. package/dist/index.js.map +1 -1
  57. package/dist/intake/compilers/delegate.d.ts +3 -1
  58. package/dist/intake/compilers/delegate.d.ts.map +1 -1
  59. package/dist/intake/compilers/delegate.js +23 -12
  60. package/dist/intake/compilers/delegate.js.map +1 -1
  61. package/dist/intake/compilers/execute-plan.d.ts +6 -1
  62. package/dist/intake/compilers/execute-plan.d.ts.map +1 -1
  63. package/dist/intake/compilers/execute-plan.js +8 -1
  64. package/dist/intake/compilers/execute-plan.js.map +1 -1
  65. package/dist/intake/resolve.js +1 -1
  66. package/dist/intake/resolve.js.map +1 -1
  67. package/dist/intake/types.d.ts +10 -0
  68. package/dist/intake/types.d.ts.map +1 -1
  69. package/dist/provider.d.ts.map +1 -1
  70. package/dist/provider.js.map +1 -1
  71. package/dist/readiness/readiness.d.ts +2 -1
  72. package/dist/readiness/readiness.d.ts.map +1 -1
  73. package/dist/readiness/readiness.js.map +1 -1
  74. package/dist/reporting/structured-report.d.ts +19 -0
  75. package/dist/reporting/structured-report.d.ts.map +1 -1
  76. package/dist/reporting/structured-report.js +50 -1
  77. package/dist/reporting/structured-report.js.map +1 -1
  78. package/dist/review/diff-review.d.ts +29 -0
  79. package/dist/review/diff-review.d.ts.map +1 -0
  80. package/dist/review/diff-review.js +53 -0
  81. package/dist/review/diff-review.js.map +1 -0
  82. package/dist/review/evidence.d.ts +15 -0
  83. package/dist/review/evidence.d.ts.map +1 -0
  84. package/dist/review/evidence.js +26 -0
  85. package/dist/review/evidence.js.map +1 -0
  86. package/dist/review/quality-reviewer.d.ts +1 -1
  87. package/dist/review/quality-reviewer.d.ts.map +1 -1
  88. package/dist/review/quality-reviewer.js +5 -3
  89. package/dist/review/quality-reviewer.js.map +1 -1
  90. package/dist/review/spec-reviewer.d.ts +1 -1
  91. package/dist/review/spec-reviewer.d.ts.map +1 -1
  92. package/dist/review/spec-reviewer.js +3 -2
  93. package/dist/review/spec-reviewer.js.map +1 -1
  94. package/dist/routing/model-profiles.d.ts +1 -1
  95. package/dist/routing/types.d.ts +15 -0
  96. package/dist/routing/types.d.ts.map +1 -0
  97. package/dist/routing/types.js +2 -0
  98. package/dist/routing/types.js.map +1 -0
  99. package/dist/run-tasks/commit-stage.d.ts +16 -0
  100. package/dist/run-tasks/commit-stage.d.ts.map +1 -0
  101. package/dist/run-tasks/commit-stage.js +43 -0
  102. package/dist/run-tasks/commit-stage.js.map +1 -0
  103. package/dist/run-tasks/execute-task.d.ts +20 -0
  104. package/dist/run-tasks/execute-task.d.ts.map +1 -0
  105. package/dist/run-tasks/execute-task.js +29 -0
  106. package/dist/run-tasks/execute-task.js.map +1 -0
  107. package/dist/run-tasks/fallback-report.d.ts +5 -0
  108. package/dist/run-tasks/fallback-report.d.ts.map +1 -0
  109. package/dist/run-tasks/fallback-report.js +33 -0
  110. package/dist/run-tasks/fallback-report.js.map +1 -0
  111. package/dist/{run-tasks.d.ts → run-tasks/index.d.ts} +8 -5
  112. package/dist/run-tasks/index.d.ts.map +1 -0
  113. package/dist/run-tasks/index.js +118 -0
  114. package/dist/run-tasks/index.js.map +1 -0
  115. package/dist/run-tasks/metadata-repair.d.ts +15 -0
  116. package/dist/run-tasks/metadata-repair.d.ts.map +1 -0
  117. package/dist/run-tasks/metadata-repair.js +30 -0
  118. package/dist/run-tasks/metadata-repair.js.map +1 -0
  119. package/dist/run-tasks/plan-extraction.d.ts +2 -0
  120. package/dist/run-tasks/plan-extraction.d.ts.map +1 -0
  121. package/dist/run-tasks/plan-extraction.js +44 -0
  122. package/dist/run-tasks/plan-extraction.js.map +1 -0
  123. package/dist/run-tasks/reviewed-lifecycle.d.ts +15 -0
  124. package/dist/run-tasks/reviewed-lifecycle.d.ts.map +1 -0
  125. package/dist/run-tasks/reviewed-lifecycle.js +839 -0
  126. package/dist/run-tasks/reviewed-lifecycle.js.map +1 -0
  127. package/dist/run-tasks/verify-stage.d.ts +25 -0
  128. package/dist/run-tasks/verify-stage.d.ts.map +1 -0
  129. package/dist/run-tasks/verify-stage.js +168 -0
  130. package/dist/run-tasks/verify-stage.js.map +1 -0
  131. package/dist/run-tasks/worker-status.d.ts +3 -0
  132. package/dist/run-tasks/worker-status.d.ts.map +1 -0
  133. package/dist/run-tasks/worker-status.js +13 -0
  134. package/dist/run-tasks/worker-status.js.map +1 -0
  135. package/dist/runners/base/result-builders.d.ts +81 -0
  136. package/dist/runners/base/result-builders.d.ts.map +1 -0
  137. package/dist/runners/base/result-builders.js +103 -0
  138. package/dist/runners/base/result-builders.js.map +1 -0
  139. package/dist/runners/base/types.d.ts +53 -0
  140. package/dist/runners/base/types.d.ts.map +1 -0
  141. package/dist/runners/base/types.js +2 -0
  142. package/dist/runners/base/types.js.map +1 -0
  143. package/dist/runners/claude-runner.d.ts +2 -1
  144. package/dist/runners/claude-runner.d.ts.map +1 -1
  145. package/dist/runners/claude-runner.js +44 -109
  146. package/dist/runners/claude-runner.js.map +1 -1
  147. package/dist/runners/codex-runner.d.ts +2 -1
  148. package/dist/runners/codex-runner.d.ts.map +1 -1
  149. package/dist/runners/codex-runner.js +45 -110
  150. package/dist/runners/codex-runner.js.map +1 -1
  151. package/dist/runners/error-classification.d.ts +1 -1
  152. package/dist/runners/error-classification.d.ts.map +1 -1
  153. package/dist/runners/openai-runner.d.ts +2 -1
  154. package/dist/runners/openai-runner.d.ts.map +1 -1
  155. package/dist/runners/openai-runner.js +34 -84
  156. package/dist/runners/openai-runner.js.map +1 -1
  157. package/dist/runners/prevention.d.ts.map +1 -1
  158. package/dist/runners/prevention.js +18 -0
  159. package/dist/runners/prevention.js.map +1 -1
  160. package/dist/runners/types.d.ts +126 -0
  161. package/dist/runners/types.d.ts.map +1 -0
  162. package/dist/runners/types.js +2 -0
  163. package/dist/runners/types.js.map +1 -0
  164. package/dist/tool-schemas/audit.d.ts +2 -2
  165. package/dist/tool-schemas/delegate.d.ts +9 -0
  166. package/dist/tool-schemas/delegate.d.ts.map +1 -1
  167. package/dist/tool-schemas/delegate.js +4 -0
  168. package/dist/tool-schemas/delegate.js.map +1 -1
  169. package/dist/tool-schemas/execute-plan.d.ts +13 -2
  170. package/dist/tool-schemas/execute-plan.d.ts.map +1 -1
  171. package/dist/tool-schemas/execute-plan.js +22 -4
  172. package/dist/tool-schemas/execute-plan.js.map +1 -1
  173. package/dist/tool-schemas/review.d.ts +1 -1
  174. package/dist/types.d.ts +36 -327
  175. package/dist/types.d.ts.map +1 -1
  176. package/dist/types.js +8 -37
  177. package/dist/types.js.map +1 -1
  178. package/package.json +35 -3
  179. package/dist/run-tasks.d.ts.map +0 -1
  180. package/dist/run-tasks.js +0 -687
  181. package/dist/run-tasks.js.map +0 -1
package/dist/types.d.ts CHANGED
@@ -1,8 +1,12 @@
1
- import type { ContextBlockStore } from './context/context-block-store.js';
1
+ import type { AttemptRecord, RunOptions, RunStatus, TerminationReason, TokenUsage } from './runners/types.js';
2
+ import type { BriefQualityPolicy, BriefQualityWarning } from './intake/types.js';
3
+ import type { VerifyStageResult, VerifyStepStatus } from './run-tasks/verify-stage.js';
2
4
  export type ToolMode = 'none' | 'readonly' | 'no-shell' | 'full';
3
5
  export type SandboxPolicy = 'none' | 'cwd-only';
4
6
  export type AgentType = 'standard' | 'complex';
5
7
  export type AgentCapability = 'web_search' | 'web_fetch';
8
+ export type Effort = 'none' | 'low' | 'medium' | 'high';
9
+ export type CostTier = 'free' | 'low' | 'medium' | 'high';
6
10
  export interface AgentConfig {
7
11
  type: 'openai-compatible' | 'claude' | 'codex';
8
12
  model: string;
@@ -16,34 +20,23 @@ export interface AgentConfig {
16
20
  sandboxPolicy?: SandboxPolicy;
17
21
  inputTokenSoftLimit?: number;
18
22
  }
19
- export type Effort = 'none' | 'low' | 'medium' | 'high';
20
- export type CostTier = 'free' | 'low' | 'medium' | 'high';
21
- export type RunStatus = 'ok' | 'incomplete' | 'timeout' | 'api_aborted' | 'api_error' | 'network_error' | 'error' | 'brief_too_vague' | 'cost_exceeded';
22
23
  export interface FormatConstraints {
23
24
  inputFormat?: 'json' | 'yaml' | 'xml' | 'csv' | 'markdown';
24
25
  outputFormat?: 'json' | 'yaml' | 'xml' | 'csv' | 'markdown';
25
26
  }
26
27
  export interface TaskSpec {
27
- /** The task instruction. Required. */
28
28
  prompt: string;
29
- /** How hard the task is. Default: standard. */
30
29
  agentType?: AgentType;
31
- /** Files the sub-agent should focus on. Existing files are pre-verified;
32
- * non-existent paths are treated as intended output targets. */
33
30
  filePaths?: string[];
34
- /** Acceptance criteria in plain language. The worker reads it as a goal.
35
- * The spec reviewer checks whether the output satisfies it. */
36
31
  done?: string;
37
- /** Context block IDs to prepend to prompt. */
38
32
  contextBlockIds?: string[];
39
- /** Resolved from config. Callers never set these directly. */
40
33
  tools?: ToolMode;
41
34
  timeoutMs?: number;
42
35
  cwd?: string;
43
36
  effort?: Effort;
44
37
  sandboxPolicy?: SandboxPolicy;
45
38
  maxCostUSD?: number;
46
- reviewPolicy?: 'full' | 'spec_only' | 'off';
39
+ reviewPolicy?: 'full' | 'spec_only' | 'diff_only' | 'off';
47
40
  maxReviewRounds?: number;
48
41
  briefQualityPolicy?: BriefQualityPolicy;
49
42
  parentModel?: string;
@@ -56,11 +49,8 @@ export interface TaskSpec {
56
49
  };
57
50
  requiredCapabilities?: AgentCapability[];
58
51
  testCommand?: string;
59
- /** When true, the platform commits filesWritten via git after the worker finishes.
60
- * Set by preset tools (execute_plan, delegate_tasks, debug_task). Callers don't set this. */
52
+ verifyCommand?: string[];
61
53
  autoCommit?: boolean;
62
- /** Plan section content for execute_plan tasks. Injected into spec reviewer prompt
63
- * so the reviewer checks implementation against the plan, not just the brief. */
64
54
  planContext?: string;
65
55
  }
66
56
  export interface CodexProviderConfig {
@@ -71,13 +61,8 @@ export interface CodexProviderConfig {
71
61
  sandboxPolicy?: SandboxPolicy;
72
62
  hostedTools?: ('web_search' | 'image_generation' | 'code_interpreter')[];
73
63
  costTier?: CostTier;
74
- /** Optional pricing in USD per million input tokens. Used to compute RunResult.usage.costUSD. */
75
64
  inputCostPerMTok?: number;
76
- /** Optional pricing in USD per million output tokens. Used to compute RunResult.usage.costUSD. */
77
65
  outputCostPerMTok?: number;
78
- /** Optional override for the per-provider input token soft limit
79
- * used by the watchdog. When unset, falls back to the model profile
80
- * default, then to a hardcoded 100_000 fallback. See spec A.1.4. */
81
66
  inputTokenSoftLimit?: number;
82
67
  }
83
68
  export interface ClaudeProviderConfig {
@@ -88,18 +73,13 @@ export interface ClaudeProviderConfig {
88
73
  sandboxPolicy?: SandboxPolicy;
89
74
  hostedTools?: ('web_search' | 'image_generation' | 'code_interpreter')[];
90
75
  costTier?: CostTier;
91
- /** Optional pricing override; if set, recomputes costUSD from token usage instead of trusting the SDK. */
92
76
  inputCostPerMTok?: number;
93
77
  outputCostPerMTok?: number;
94
- /** Optional override for the per-provider input token soft limit
95
- * used by the watchdog. When unset, falls back to the model profile
96
- * default, then to a hardcoded 100_000 fallback. See spec A.1.4. */
97
78
  inputTokenSoftLimit?: number;
98
79
  }
99
80
  export interface OpenAICompatibleProviderConfig {
100
81
  type: 'openai-compatible';
101
82
  model: string;
102
- /** Required — must be specified. No default. */
103
83
  baseUrl: string;
104
84
  apiKey?: string;
105
85
  apiKeyEnv?: string;
@@ -108,16 +88,10 @@ export interface OpenAICompatibleProviderConfig {
108
88
  sandboxPolicy?: SandboxPolicy;
109
89
  hostedTools?: 'web_search'[];
110
90
  costTier?: CostTier;
111
- /** Optional pricing in USD per million input tokens. Used to compute RunResult.usage.costUSD. */
112
91
  inputCostPerMTok?: number;
113
- /** Optional pricing in USD per million output tokens. Used to compute RunResult.usage.costUSD. */
114
92
  outputCostPerMTok?: number;
115
- /** Optional override for the per-provider input token soft limit
116
- * used by the watchdog. When unset, falls back to the model profile
117
- * default, then to a hardcoded 100_000 fallback. See spec A.1.4. */
118
93
  inputTokenSoftLimit?: number;
119
94
  }
120
- /** Discriminated union — each provider type has distinct required fields. */
121
95
  export type ProviderConfig = CodexProviderConfig | ClaudeProviderConfig | OpenAICompatibleProviderConfig;
122
96
  export interface MultiModelConfig {
123
97
  agents: {
@@ -129,13 +103,7 @@ export interface MultiModelConfig {
129
103
  maxCostUSD: number;
130
104
  tools: ToolMode;
131
105
  sandboxPolicy: SandboxPolicy;
132
- /** Character threshold that triggers auto-switch from 'full' to
133
- * 'summary' response mode when the caller uses `responseMode: 'auto'`
134
- * (the default). Optional — defaults to 65_536 when absent.
135
- * Env vars can override at higher precedence. */
136
106
  largeResponseThresholdChars?: number;
137
- /** Model name of the parent session (e.g. 'claude-opus-4-6'). When set,
138
- * each task's `savedCostUSD` is computed against this model's rates. */
139
107
  parentModel?: string;
140
108
  };
141
109
  diagnostics?: {
@@ -166,338 +134,79 @@ export interface MultiModelConfig {
166
134
  autoUpdateSkills: boolean;
167
135
  };
168
136
  }
169
- export interface TokenUsage {
170
- inputTokens: number;
171
- outputTokens: number;
172
- totalTokens: number;
173
- costUSD: number | null;
174
- /** Estimated cost savings versus the declared parent model, if known. */
175
- savedCostUSD?: number | null;
176
- }
177
- export interface TerminationReason {
178
- /** Why the task stopped. 'finished' means the worker returned normally — check
179
- * workerSelfAssessment for the worker's own view of completion. */
180
- cause: 'finished' | 'incomplete' | 'timeout' | 'cost_exceeded' | 'degenerate_exhausted' | 'api_error' | 'network_error' | 'api_aborted' | 'brief_too_vague' | 'error';
181
- turnsUsed: number;
182
- hasFileArtifacts: boolean;
183
- usedShell: boolean;
184
- workerSelfAssessment: 'done' | 'done_with_concerns' | 'needs_context' | 'blocked' | null;
185
- wasPromoted: boolean;
137
+ export interface Commit {
138
+ sha: string;
139
+ subject: string;
140
+ body: string;
141
+ filesChanged: string[];
142
+ authoredAt: string;
186
143
  }
187
144
  export interface RunResult {
188
145
  output: string;
189
146
  status: RunStatus;
190
147
  usage: TokenUsage;
191
148
  turns: number;
192
- /** Files whose contents the worker read (via readFile/grep/listFiles). */
193
149
  filesRead: string[];
194
- /** Files the worker wrote (via writeFile). */
195
150
  filesWritten: string[];
196
- /** Compact one-line summaries of every tool the worker invoked, in order. */
197
151
  toolCalls: string[];
198
- /** `true` when `output` is a runner-synthesized diagnostic template
199
- * (`"Sub-agent error: …"`, `"Agent timed out after …"`, the incomplete
200
- * template from `buildXxxIncompleteDiagnostic`, etc.) because the
201
- * scratchpad was empty at termination. `false` when `output` contains
202
- * real model-produced content — either a clean final answer on the
203
- * `ok` path, or `scratchpad.latest()` on any salvage path where the
204
- * scratchpad had buffered text.
205
- *
206
- * Used by the escalation orchestrator's all-fail fallback to prefer
207
- * real content over diagnostic templates regardless of status or
208
- * length (otherwise a long `"Sub-agent error: <stack trace>"` string
209
- * could beat a shorter genuine partial answer from an earlier
210
- * attempt). */
211
152
  outputIsDiagnostic: boolean;
212
- /** One entry per provider attempt within this dispatch. Length === 1
213
- * for tasks that succeeded on the first try; longer when escalation
214
- * occurred. Runners initialize this to `[]`; the escalation
215
- * orchestrator populates it on each return path. */
216
153
  escalationLog: AttemptRecord[];
217
- /** Wall-clock duration of this task in milliseconds. */
218
154
  durationMs?: number;
219
- /** Directories whose entries the worker listed. */
220
155
  directoriesListed?: string[];
221
156
  error?: string;
222
- /** Error code for refused briefs. */
223
157
  errorCode?: string;
224
- /** Whether the task can be retried. */
225
158
  retryable?: boolean;
226
- /** Brief quality warnings from readiness evaluation. */
227
159
  briefQualityWarnings?: BriefQualityWarning[];
228
- /** Structured termination reason. Tells the parent why the task stopped and what evidence exists. */
229
- terminationReason?: TerminationReason;
230
- /** Internal: worker status extracted from implementer report. Consumed by escalation orchestrator
231
- * to build terminationReason. NOT exposed in MCP responses — use terminationReason.workerSelfAssessment. */
232
- workerStatus?: 'done' | 'done_with_concerns' | 'needs_context' | 'blocked';
233
- /** Spec review outcome. */
160
+ terminationReason?: TerminationReason | 'round_cap' | 'cost_ceiling';
161
+ reviewRounds?: {
162
+ spec: number;
163
+ quality: number;
164
+ metadata: number;
165
+ cap: number;
166
+ };
167
+ concerns?: Array<{
168
+ source: 'spec_review' | 'quality_review' | 'diff_review' | 'verification' | 'diff_truncated';
169
+ severity: 'low' | 'medium' | 'high';
170
+ message: string;
171
+ }>;
172
+ structuredError?: {
173
+ code: 'verify_command_error' | 'commit_metadata_invalid' | 'commit_metadata_repair_modified_files' | 'dirty_worktree' | 'diff_review_rejected' | 'runner_crash';
174
+ message: string;
175
+ step?: number;
176
+ status?: VerifyStepStatus;
177
+ attemptsUsed?: number;
178
+ dirtyTreePreserved?: boolean;
179
+ };
180
+ workerStatus?: 'done' | 'done_with_concerns' | 'needs_context' | 'blocked' | 'review_loop_aborted' | 'failed';
234
181
  specReviewStatus?: 'approved' | 'changes_required' | 'skipped' | 'error' | 'not_applicable';
235
- /** Why spec review returned its status. Present for 'error', 'skipped', and 'not_applicable'. */
236
182
  specReviewReason?: string;
237
- /** Internal: true when task.filePaths was specified but the worker never
238
- * read or wrote any of them — a soft completion concern. */
239
183
  filePathsSkipped?: boolean;
240
- /** True when task.filePaths included non-existent output targets that still
241
- * don't exist after all work (worker + rework) completes. */
242
184
  fileArtifactsMissing?: boolean;
243
- /** SHA of the last auto-commit created during this task lifecycle. */
244
- commitSha?: string;
245
- /** Error from the last failed auto-commit attempt, if any. */
185
+ commits?: Commit[];
246
186
  commitError?: string;
247
- /** Quality review outcome. */
187
+ verification?: VerifyStageResult;
248
188
  qualityReviewStatus?: 'approved' | 'changes_required' | 'skipped' | 'error' | 'not_applicable';
249
- /** Why quality review returned its status. Present for 'error', 'skipped', and 'not_applicable'. */
250
189
  qualityReviewReason?: string;
251
- /** Aggregated structured report from the reviewed execution loop. */
252
190
  structuredReport?: import('./reporting/structured-report.js').ParsedStructuredReport;
253
- /** Which agent ran in each role. */
254
191
  agents?: {
255
192
  implementer: 'standard' | 'complex' | 'not_run';
256
193
  specReviewer: 'standard' | 'complex' | 'skipped' | 'not_applicable';
257
194
  qualityReviewer: 'standard' | 'complex' | 'skipped' | 'not_applicable';
258
195
  };
259
- /** Actual model name used in each role. */
260
196
  models?: {
261
197
  implementer: string;
262
198
  specReviewer: string | null;
263
199
  qualityReviewer: string | null;
264
200
  };
265
- /** The implementer's structured report. */
266
201
  implementationReport?: import('./reporting/structured-report.js').ParsedStructuredReport;
267
- /** The spec reviewer's structured report. */
268
202
  specReviewReport?: import('./reporting/structured-report.js').ParsedStructuredReport;
269
- /** The quality reviewer's structured report. */
270
203
  qualityReviewReport?: import('./reporting/structured-report.js').ParsedStructuredReport;
271
204
  }
272
- /** Aggregate timing metrics for a `delegate_tasks` batch. */
273
- export interface BatchTimings {
274
- wallClockMs: number;
275
- sumOfTaskMs: number;
276
- estimatedParallelSavingsMs: number;
277
- }
278
- /** Aggregate completion counts for a `delegate_tasks` batch. */
279
- export interface BatchProgress {
280
- totalTasks: number;
281
- completedTasks: number;
282
- incompleteTasks: number;
283
- failedTasks: number;
284
- successPercent: number;
285
- }
286
- /** Aggregate cost metrics for a `delegate_tasks` batch. */
287
- export interface BatchAggregateCost {
288
- totalActualCostUSD: number;
289
- totalSavedCostUSD: number;
290
- }
291
- /**
292
- * Single provider-attempt record inside an escalation chain. The orchestrator
293
- * (`delegateWithEscalation`) pushes one entry per `provider.run(...)` call.
294
- */
295
- export interface AttemptRecord {
296
- provider: string;
297
- status: RunStatus;
298
- turns: number;
299
- inputTokens: number;
300
- outputTokens: number;
301
- costUSD: number | null;
302
- /** Character count of the canonical orchestrator-side initial brief for
303
- * this attempt — the exact string
304
- * `${buildSystemPrompt()}\n\n${buildBudgetHint(...)}\n\n${prompt}`
305
- * (as assembled before any runner-specific wrapping). Populated by the
306
- * escalation orchestrator via the `RunOptions.onInitialRequest` callback
307
- * the runner invokes exactly once per attempt.
308
- *
309
- * NOTE: This is a canonical identifier, NOT a wire-level checksum. The
310
- * provider's SDK may wrap or transform this string before sending (e.g.
311
- * the Anthropic SDK prepends its `claude_code` preset to the system
312
- * prompt via `{ type: 'preset', preset: 'claude_code', append: ... }`;
313
- * the OpenAI SDKs wrap it in a `messages` array). All three runners use
314
- * the same canonical form so the hash is cross-runner stable: identical
315
- * briefs produce identical hashes regardless of which runner executed
316
- * them. Use this to verify "did the orchestrator send the same brief
317
- * across retries?", not "were the literal bytes on the wire identical?".
318
- *
319
- * Defaults to 0 if the runner never invoked the callback. */
320
- initialPromptLengthChars: number;
321
- /** sha256 hex of the canonical orchestrator-side initial brief. See the
322
- * comment on `initialPromptLengthChars` above for the exact hashed
323
- * string and the wire-level caveat. Defaults to the empty string if the
324
- * runner never invoked the callback. */
325
- initialPromptHash: string;
326
- /** Why this attempt was abandoned, if it was. Empty if status === 'ok'. */
327
- reason?: string;
328
- }
329
205
  export interface Provider {
330
206
  name: string;
331
207
  config: ProviderConfig;
332
208
  run(prompt: string, options?: RunOptions): Promise<RunResult>;
333
209
  }
334
- export interface RunOptions {
335
- tools?: ToolMode;
336
- timeoutMs?: number;
337
- cwd?: string;
338
- effort?: Effort;
339
- sandboxPolicy?: SandboxPolicy;
340
- /** Optional caller-declared output expectations. When supplied, the
341
- * supervision layer runs `validateCoverage` after `validateCompletion`'s
342
- * syntactic check passes, and re-prompts with specific missing-item
343
- * guidance if coverage is insufficient. Same 3-retry budget as other
344
- * degeneracy classes. Opt-in: callers who omit this field see zero
345
- * change in runner behavior. Generic across all workload shapes that
346
- * produce enumerable deliverables. */
347
- expectedCoverage?: TaskSpec['expectedCoverage'];
348
- /** Opt-out: when true, the runner skips the `no_terminator` and `fragment`
349
- * short-output heuristics for this task. Use for tight-format outputs
350
- * (single-line verdicts, CSV rows, opaque identifiers) that don't follow
351
- * prose conventions. The `empty` and `thinking_only` degeneracy checks
352
- * still fire independently. If `expectedCoverage` is also declared and
353
- * passes, coverage is authoritative — you don't need this flag. */
354
- skipCompletionHeuristic?: boolean;
355
- /** Optional callback invoked by runners and the escalation orchestrator to
356
- * stream in-flight internal progress events. These are `InternalRunnerEvent`
357
- * variants — the runner-to-orchestrator telemetry channel. They are NEVER
358
- * forwarded to the parent. HeartbeatTimer is the sole parent emitter. */
359
- onProgress?: (event: InternalRunnerEvent) => void;
360
- /** Called exactly once per attempt, when the runner has assembled the
361
- * canonical orchestrator-side initial brief — the string
362
- * `${buildSystemPrompt()}\n\n${buildBudgetHint(...)}\n\n${prompt}`,
363
- * after prevention scaffolding has been produced but before any tool
364
- * cycles, re-grounding, supervision, or watchdog injections happen.
365
- * The escalation orchestrator passes a closure here to capture the
366
- * metadata into the `AttemptRecord` it builds.
367
- *
368
- * This is a canonical identifier, NOT a wire-level checksum: each
369
- * runner computes it from the same canonical string so the hash is
370
- * cross-runner stable, even though the SDK underneath may wrap the
371
- * inputs before sending (Claude prepends its `claude_code` preset to
372
- * the system prompt; OpenAI/Codex wrap inputs in structured message
373
- * arrays). See `AttemptRecord.initialPromptHash` for the full caveat.
374
- *
375
- * If a runner is re-invoked by escalation, the callback fires again
376
- * for the new attempt because the orchestrator resets its per-attempt
377
- * closure. Passing nothing keeps existing behaviour (no-op). */
378
- onInitialRequest?: (meta: {
379
- lengthChars: number;
380
- sha256: string;
381
- }) => void;
382
- /** Optional hint about the parent session's model for saved-cost estimates.
383
- * When supplied, `RunResult.usage.savedCostUSD` is computed against this
384
- * model's profile rates. */
385
- parentModel?: string;
386
- /** Optional cost ceiling in USD. Runner will reject tool calls that would exceed this budget. */
387
- maxCostUSD?: number;
388
- /** Optional format constraints for input/output. */
389
- formatConstraints?: FormatConstraints;
390
- }
391
- /**
392
- * Runtime dependencies for `runTasks`. Kept separate from static `MultiModelConfig`
393
- * because these are per-session objects (today: the context-block store) the
394
- * caller owns and passes in explicitly, not config loaded from disk.
395
- */
396
- export interface RunTasksRuntime {
397
- /** Optional store of registered context blocks. When provided, each task's
398
- * `contextBlockIds` are resolved against this store before dispatch; when
399
- * omitted, tasks with `contextBlockIds` are passed through unchanged. */
400
- contextBlockStore?: ContextBlockStore;
401
- }
402
- /**
403
- * Internal progress events emitted by runners and the escalation orchestrator.
404
- * These flow from runners → run-tasks.ts (intercepted for live counter updates)
405
- * but are NEVER forwarded to the parent. HeartbeatTimer is the sole parent emitter.
406
- *
407
- * Runners emit these via `onProgress`. `delegateWithEscalation` also emits
408
- * `escalation_start` and `retry` variants here.
409
- */
410
- export type InternalRunnerEvent = {
411
- kind: 'turn_start';
412
- turn: number;
413
- provider: string;
414
- } | {
415
- kind: 'tool_call';
416
- turn: number;
417
- toolSummary: string;
418
- } | {
419
- kind: 'text_emission';
420
- turn: number;
421
- chars: number;
422
- preview: string;
423
- } | {
424
- kind: 'turn_complete';
425
- turn: number;
426
- cumulativeInputTokens: number;
427
- cumulativeOutputTokens: number;
428
- } | {
429
- kind: 'injection';
430
- injectionType: 'reground' | 'supervise_empty' | 'supervise_thinking' | 'supervise_fragment' | 'supervise_insufficient_coverage' | 'watchdog_warning' | 'watchdog_force_salvage';
431
- turn: number;
432
- contentLengthChars: number;
433
- } | {
434
- kind: 'escalation_start';
435
- previousProvider: string;
436
- previousReason: string;
437
- nextProvider: string;
438
- } | {
439
- kind: 'retry';
440
- attempt: number;
441
- previousStatus: RunStatus;
442
- delayMs: number;
443
- } | {
444
- kind: 'done';
445
- status: RunStatus;
446
- };
447
- /**
448
- * Single progress event shape emitted by HeartbeatTimer during task execution.
449
- * All progress notifications use this one shape — no discriminated union.
450
- * Emitted on timer ticks (every 5s), significant transitions (stage/provider change),
451
- * and once with `final: true` on completion.
452
- */
453
- export type ProgressEvent = {
454
- kind: 'heartbeat';
455
- elapsed: string;
456
- provider: string;
457
- stage: 'implementing' | 'spec_review' | 'spec_rework' | 'quality_review' | 'quality_rework';
458
- stageIndex: number;
459
- stageCount: number;
460
- reviewRound?: number;
461
- maxReviewRounds?: number;
462
- progress: {
463
- filesRead: number;
464
- filesWritten: number;
465
- toolCalls: number;
466
- };
467
- costUSD: number | null;
468
- savedCostUSD: number | null;
469
- final: boolean;
470
- headline: string;
471
- };
472
- export type EligibilityFailureCheck = 'capability' | 'tier' | 'tool_mode' | 'provider_not_found' | 'unsupported_provider_type' | 'missing_required_field' | string;
473
- export interface EligibilityFailure {
474
- check: EligibilityFailureCheck;
475
- detail: string;
476
- message: string;
477
- }
478
- export interface ProviderEligibility {
479
- name: string;
480
- config: ProviderConfig;
481
- eligible: boolean;
482
- /** Reasons only present when eligible === false. */
483
- reasons: EligibilityFailure[];
484
- }
485
- export type BriefQualityWarning = 'outsourced_discovery' | 'brittle_line_anchors' | 'mixed_environment_actions' | 'bare_topic_noun' | 'no_done_condition' | 'no_output_contract' | 'tiny_brief' | 'huge_brief';
486
- export type BriefQualityPolicy = 'strict' | 'warn' | 'off' | undefined;
487
- export interface ReadinessResult {
488
- action: 'refuse' | 'warn' | 'ignored';
489
- missingPillars: ('scope' | 'inputs' | 'done_condition' | 'output_contract')[];
490
- layer2Warnings: BriefQualityWarning[];
491
- layer3Hints: ('concrete_path' | 'named_code_artifact' | 'reasonable_length')[];
492
- briefQualityWarnings: BriefQualityWarning[];
493
- }
494
- /**
495
- * Compute USD cost from token usage and the provider config's optional
496
- * per-million-token rates. Returns null when either rate is missing — that
497
- * way the caller can distinguish "we know the cost is zero" (free provider
498
- * with both rates set to 0) from "we don't know the cost" (rates not
499
- * configured). Negative or non-finite rates are treated as missing.
500
- */
501
210
  export declare function computeCostUSD(inputTokens: number, outputTokens: number, config: ProviderConfig): number | null;
502
211
  export declare function computeSavedCostUSD(actualCostUSD: number | null, inputTokens: number, outputTokens: number, parentModel: string | undefined): number | null;
503
212
  export declare function withTimeout<T>(promise: Promise<T>, timeoutMs: number, onTimeout: () => T, abort?: AbortController): Promise<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -1,65 +1,36 @@
1
1
  import { findModelProfile } from './routing/model-profiles.js';
2
- // === Utilities ===
3
- /**
4
- * Compute USD cost from token usage and the provider config's optional
5
- * per-million-token rates. Returns null when either rate is missing — that
6
- * way the caller can distinguish "we know the cost is zero" (free provider
7
- * with both rates set to 0) from "we don't know the cost" (rates not
8
- * configured). Negative or non-finite rates are treated as missing.
9
- */
10
2
  export function computeCostUSD(inputTokens, outputTokens, config) {
11
3
  const explicitRates = resolveRatePair(config.inputCostPerMTok, config.outputCostPerMTok);
12
- if (explicitRates !== null) {
4
+ if (explicitRates !== null)
13
5
  return (inputTokens * explicitRates.input + outputTokens * explicitRates.output) / 1_000_000;
14
- }
15
6
  const profile = findModelProfile(config.model);
16
7
  const profileRates = resolveRatePair(profile.inputCostPerMTok, profile.outputCostPerMTok);
17
- if (profileRates === null) {
8
+ if (profileRates === null)
18
9
  return null;
19
- }
20
10
  return (inputTokens * profileRates.input + outputTokens * profileRates.output) / 1_000_000;
21
11
  }
22
12
  export function computeSavedCostUSD(actualCostUSD, inputTokens, outputTokens, parentModel) {
23
- if (actualCostUSD === null || parentModel === undefined) {
13
+ if (actualCostUSD === null || parentModel === undefined)
24
14
  return null;
25
- }
26
15
  const profile = findModelProfile(parentModel);
27
16
  const profileRates = resolveRatePair(profile.inputCostPerMTok, profile.outputCostPerMTok);
28
- if (profileRates === null) {
17
+ if (profileRates === null)
29
18
  return null;
30
- }
31
- const hypotheticalParentCostUSD = (inputTokens * profileRates.input + outputTokens * profileRates.output) / 1_000_000;
32
- return hypotheticalParentCostUSD - actualCostUSD;
19
+ return (inputTokens * profileRates.input + outputTokens * profileRates.output) / 1_000_000 - actualCostUSD;
33
20
  }
34
21
  function resolveRatePair(inputCostPerMTok, outputCostPerMTok) {
35
- if (inputCostPerMTok !== undefined &&
36
- outputCostPerMTok !== undefined &&
37
- Number.isFinite(inputCostPerMTok) &&
38
- Number.isFinite(outputCostPerMTok) &&
39
- inputCostPerMTok >= 0 &&
40
- outputCostPerMTok >= 0) {
22
+ if (inputCostPerMTok !== undefined && outputCostPerMTok !== undefined && Number.isFinite(inputCostPerMTok) && Number.isFinite(outputCostPerMTok) && inputCostPerMTok >= 0 && outputCostPerMTok >= 0)
41
23
  return { input: inputCostPerMTok, output: outputCostPerMTok };
42
- }
43
24
  return null;
44
25
  }
45
26
  export function withTimeout(promise, timeoutMs, onTimeout, abort) {
46
27
  let timeoutId;
47
28
  const timeoutPromise = new Promise((resolve) => {
48
- timeoutId = setTimeout(() => {
49
- abort?.abort();
50
- resolve(onTimeout());
51
- }, timeoutMs);
29
+ timeoutId = setTimeout(() => { abort?.abort(); resolve(onTimeout()); }, timeoutMs);
52
30
  });
53
- return promise
54
- .then((result) => {
31
+ return Promise.race([promise, timeoutPromise]).finally(() => {
55
32
  if (timeoutId !== undefined)
56
33
  clearTimeout(timeoutId);
57
- return result;
58
- })
59
- .catch((error) => {
60
- if (timeoutId !== undefined)
61
- clearTimeout(timeoutId);
62
- throw error;
63
34
  });
64
35
  }
65
36
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AA8H/D,MAAM,UAAU,cAAc,CAAC,WAAmB,EAAE,YAAoB,EAAE,MAAsB;IAC9F,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACzF,IAAI,aAAa,KAAK,IAAI;QAAE,OAAO,CAAC,WAAW,GAAG,aAAa,CAAC,KAAK,GAAG,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACzH,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC1F,IAAI,YAAY,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,CAAC,WAAW,GAAG,YAAY,CAAC,KAAK,GAAG,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;AAC7F,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,aAA4B,EAAE,WAAmB,EAAE,YAAoB,EAAE,WAA+B;IAC1I,IAAI,aAAa,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrE,MAAM,OAAO,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC1F,IAAI,YAAY,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,CAAC,WAAW,GAAG,YAAY,CAAC,KAAK,GAAG,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,aAAa,CAAC;AAC7G,CAAC;AAED,SAAS,eAAe,CAAC,gBAAoC,EAAE,iBAAqC;IAClG,IAAI,gBAAgB,KAAK,SAAS,IAAI,iBAAiB,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,gBAAgB,IAAI,CAAC,IAAI,iBAAiB,IAAI,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;IACnQ,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,WAAW,CAAI,OAAmB,EAAE,SAAiB,EAAE,SAAkB,EAAE,KAAuB;IAChH,IAAI,SAAoD,CAAC;IACzD,MAAM,cAAc,GAAG,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,EAAE;QAChD,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;QAC1D,IAAI,SAAS,KAAK,SAAS;YAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC"}