@zhixuan92/multi-model-agent-core 4.5.3 → 4.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 (271) hide show
  1. package/README.md +8 -3
  2. package/dist/escalation/delegate-with-escalation.d.ts +2 -2
  3. package/dist/escalation/delegate-with-escalation.d.ts.map +1 -1
  4. package/dist/escalation/delegate-with-escalation.js +11 -17
  5. package/dist/escalation/delegate-with-escalation.js.map +1 -1
  6. package/dist/escalation/fallback-helpers.d.ts +5 -5
  7. package/dist/escalation/fallback-helpers.d.ts.map +1 -1
  8. package/dist/escalation/fallback-helpers.js +5 -3
  9. package/dist/escalation/fallback-helpers.js.map +1 -1
  10. package/dist/events/event-builder.d.ts +36 -5
  11. package/dist/events/event-builder.d.ts.map +1 -1
  12. package/dist/events/event-builder.js +175 -33
  13. package/dist/events/event-builder.js.map +1 -1
  14. package/dist/events/observability-events.d.ts +6 -0
  15. package/dist/events/observability-events.d.ts.map +1 -1
  16. package/dist/events/observability-events.js +5 -0
  17. package/dist/events/observability-events.js.map +1 -1
  18. package/dist/events/telemetry-types.d.ts +10 -0
  19. package/dist/events/telemetry-types.d.ts.map +1 -1
  20. package/dist/events/verbose-log-channel.d.ts +7 -7
  21. package/dist/events/verbose-log-channel.js +10 -10
  22. package/dist/index.d.ts +9 -3
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +8 -2
  25. package/dist/index.js.map +1 -1
  26. package/dist/lifecycle/annotate-parser.d.ts +9 -0
  27. package/dist/lifecycle/annotate-parser.d.ts.map +1 -0
  28. package/dist/lifecycle/annotate-parser.js +83 -0
  29. package/dist/lifecycle/annotate-parser.js.map +1 -0
  30. package/dist/lifecycle/annotate-prompts.d.ts +9 -0
  31. package/dist/lifecycle/annotate-prompts.d.ts.map +1 -0
  32. package/dist/lifecycle/annotate-prompts.js +86 -0
  33. package/dist/lifecycle/annotate-prompts.js.map +1 -0
  34. package/dist/lifecycle/auto-register-context-block.d.ts +2 -2
  35. package/dist/lifecycle/auto-register-context-block.d.ts.map +1 -1
  36. package/dist/lifecycle/auto-register-context-block.js.map +1 -1
  37. package/dist/lifecycle/build-cancelled-result.d.ts +11 -0
  38. package/dist/lifecycle/build-cancelled-result.d.ts.map +1 -0
  39. package/dist/lifecycle/build-cancelled-result.js +27 -0
  40. package/dist/lifecycle/build-cancelled-result.js.map +1 -0
  41. package/dist/lifecycle/executor-output-types.d.ts +2 -2
  42. package/dist/lifecycle/executor-output-types.d.ts.map +1 -1
  43. package/dist/lifecycle/fallback-report.d.ts +2 -2
  44. package/dist/lifecycle/fallback-report.d.ts.map +1 -1
  45. package/dist/lifecycle/fallback-report.js.map +1 -1
  46. package/dist/lifecycle/findings-parser.d.ts +2 -0
  47. package/dist/lifecycle/findings-parser.d.ts.map +1 -1
  48. package/dist/lifecycle/findings-parser.js +9 -4
  49. package/dist/lifecycle/findings-parser.js.map +1 -1
  50. package/dist/lifecycle/git-toplevel.d.ts +12 -0
  51. package/dist/lifecycle/git-toplevel.d.ts.map +1 -0
  52. package/dist/lifecycle/git-toplevel.js +49 -0
  53. package/dist/lifecycle/git-toplevel.js.map +1 -0
  54. package/dist/lifecycle/handlers/annotator.d.ts +2 -1
  55. package/dist/lifecycle/handlers/annotator.d.ts.map +1 -1
  56. package/dist/lifecycle/handlers/annotator.js +225 -7
  57. package/dist/lifecycle/handlers/annotator.js.map +1 -1
  58. package/dist/lifecycle/handlers/baseline-handlers.d.ts +10 -5
  59. package/dist/lifecycle/handlers/baseline-handlers.d.ts.map +1 -1
  60. package/dist/lifecycle/handlers/baseline-handlers.js +206 -316
  61. package/dist/lifecycle/handlers/baseline-handlers.js.map +1 -1
  62. package/dist/lifecycle/handlers/enrich-runtime-result.d.ts +3 -0
  63. package/dist/lifecycle/handlers/enrich-runtime-result.d.ts.map +1 -0
  64. package/dist/lifecycle/handlers/enrich-runtime-result.js +191 -0
  65. package/dist/lifecycle/handlers/enrich-runtime-result.js.map +1 -0
  66. package/dist/lifecycle/handlers/git-commit-handler.d.ts +3 -2
  67. package/dist/lifecycle/handlers/git-commit-handler.d.ts.map +1 -1
  68. package/dist/lifecycle/handlers/git-commit-handler.js +139 -110
  69. package/dist/lifecycle/handlers/git-commit-handler.js.map +1 -1
  70. package/dist/lifecycle/handlers/prepare-execution-context-handler.d.ts +7 -13
  71. package/dist/lifecycle/handlers/prepare-execution-context-handler.d.ts.map +1 -1
  72. package/dist/lifecycle/handlers/prepare-execution-context-handler.js +72 -49
  73. package/dist/lifecycle/handlers/prepare-execution-context-handler.js.map +1 -1
  74. package/dist/lifecycle/handlers/register-context-block-handlers.d.ts +2 -1
  75. package/dist/lifecycle/handlers/register-context-block-handlers.d.ts.map +1 -1
  76. package/dist/lifecycle/handlers/register-context-block-handlers.js +35 -14
  77. package/dist/lifecycle/handlers/register-context-block-handlers.js.map +1 -1
  78. package/dist/lifecycle/handlers/review-handler.d.ts +2 -1
  79. package/dist/lifecycle/handlers/review-handler.d.ts.map +1 -1
  80. package/dist/lifecycle/handlers/review-handler.js +152 -154
  81. package/dist/lifecycle/handlers/review-handler.js.map +1 -1
  82. package/dist/lifecycle/handlers/rework-handler.d.ts +2 -1
  83. package/dist/lifecycle/handlers/rework-handler.d.ts.map +1 -1
  84. package/dist/lifecycle/handlers/rework-handler.js +62 -14
  85. package/dist/lifecycle/handlers/rework-handler.js.map +1 -1
  86. package/dist/lifecycle/handlers/task-executor.d.ts +5 -4
  87. package/dist/lifecycle/handlers/task-executor.d.ts.map +1 -1
  88. package/dist/lifecycle/handlers/task-executor.js +153 -74
  89. package/dist/lifecycle/handlers/task-executor.js.map +1 -1
  90. package/dist/lifecycle/handlers/terminal-handlers.d.ts +22 -0
  91. package/dist/lifecycle/handlers/terminal-handlers.d.ts.map +1 -1
  92. package/dist/lifecycle/handlers/terminal-handlers.js +86 -5
  93. package/dist/lifecycle/handlers/terminal-handlers.js.map +1 -1
  94. package/dist/lifecycle/lifecycle-context.d.ts +31 -3
  95. package/dist/lifecycle/lifecycle-context.d.ts.map +1 -1
  96. package/dist/lifecycle/lifecycle-dispatcher.d.ts +18 -19
  97. package/dist/lifecycle/lifecycle-dispatcher.d.ts.map +1 -1
  98. package/dist/lifecycle/lifecycle-dispatcher.js +38 -22
  99. package/dist/lifecycle/lifecycle-dispatcher.js.map +1 -1
  100. package/dist/lifecycle/lifecycle-driver.d.ts +15 -8
  101. package/dist/lifecycle/lifecycle-driver.d.ts.map +1 -1
  102. package/dist/lifecycle/lifecycle-driver.js +110 -29
  103. package/dist/lifecycle/lifecycle-driver.js.map +1 -1
  104. package/dist/lifecycle/merge-stage-stats.d.ts +3 -3
  105. package/dist/lifecycle/merge-stage-stats.d.ts.map +1 -1
  106. package/dist/lifecycle/merge-stage-stats.js +2 -2
  107. package/dist/lifecycle/merge-stage-stats.js.map +1 -1
  108. package/dist/lifecycle/perform-implementation.d.ts +3 -0
  109. package/dist/lifecycle/perform-implementation.d.ts.map +1 -0
  110. package/dist/lifecycle/perform-implementation.js +264 -0
  111. package/dist/lifecycle/perform-implementation.js.map +1 -0
  112. package/dist/lifecycle/repo-hygiene.d.ts +14 -0
  113. package/dist/lifecycle/repo-hygiene.d.ts.map +1 -0
  114. package/dist/lifecycle/repo-hygiene.js +71 -0
  115. package/dist/lifecycle/repo-hygiene.js.map +1 -0
  116. package/dist/lifecycle/shared-compute.d.ts +4 -4
  117. package/dist/lifecycle/shared-compute.d.ts.map +1 -1
  118. package/dist/lifecycle/shared-compute.js +1 -1
  119. package/dist/lifecycle/shared-compute.js.map +1 -1
  120. package/dist/lifecycle/stage-io.d.ts +139 -0
  121. package/dist/lifecycle/stage-io.d.ts.map +1 -0
  122. package/dist/lifecycle/stage-io.js +20 -0
  123. package/dist/lifecycle/stage-io.js.map +1 -0
  124. package/dist/lifecycle/stage-plan-builder.d.ts +3 -3
  125. package/dist/lifecycle/stage-plan-builder.d.ts.map +1 -1
  126. package/dist/lifecycle/stage-plan-builder.js +157 -128
  127. package/dist/lifecycle/stage-plan-builder.js.map +1 -1
  128. package/dist/lifecycle/stage-plan-types.d.ts +5 -21
  129. package/dist/lifecycle/stage-plan-types.d.ts.map +1 -1
  130. package/dist/lifecycle/stage-progression.d.ts +3 -15
  131. package/dist/lifecycle/stage-progression.d.ts.map +1 -1
  132. package/dist/lifecycle/stage-progression.js +48 -91
  133. package/dist/lifecycle/stage-progression.js.map +1 -1
  134. package/dist/lifecycle/task-completion-summary.d.ts +2 -2
  135. package/dist/lifecycle/task-completion-summary.d.ts.map +1 -1
  136. package/dist/lifecycle/task-completion-summary.js +0 -6
  137. package/dist/lifecycle/task-completion-summary.js.map +1 -1
  138. package/dist/lifecycle/task-executor.d.ts +23 -0
  139. package/dist/lifecycle/task-executor.d.ts.map +1 -1
  140. package/dist/lifecycle/task-executor.js +77 -5
  141. package/dist/lifecycle/task-executor.js.map +1 -1
  142. package/dist/lifecycle/task-grouping.d.ts +19 -0
  143. package/dist/lifecycle/task-grouping.d.ts.map +1 -0
  144. package/dist/lifecycle/task-grouping.js +48 -0
  145. package/dist/lifecycle/task-grouping.js.map +1 -0
  146. package/dist/lifecycle/task-runner.d.ts +20 -7
  147. package/dist/lifecycle/task-runner.d.ts.map +1 -1
  148. package/dist/lifecycle/task-runner.js +42 -278
  149. package/dist/lifecycle/task-runner.js.map +1 -1
  150. package/dist/lifecycle/tool-config-types.d.ts +9 -0
  151. package/dist/lifecycle/tool-config-types.d.ts.map +1 -1
  152. package/dist/lifecycle/worker-output-contract.d.ts +9 -15
  153. package/dist/lifecycle/worker-output-contract.d.ts.map +1 -1
  154. package/dist/lifecycle/worker-output-contract.js +45 -30
  155. package/dist/lifecycle/worker-output-contract.js.map +1 -1
  156. package/dist/providers/assemble-run-result.d.ts +3 -3
  157. package/dist/providers/assemble-run-result.d.ts.map +1 -1
  158. package/dist/providers/assemble-run-result.js +20 -9
  159. package/dist/providers/assemble-run-result.js.map +1 -1
  160. package/dist/providers/claude-session.d.ts.map +1 -1
  161. package/dist/providers/claude-session.js +1 -0
  162. package/dist/providers/claude-session.js.map +1 -1
  163. package/dist/providers/claude.js.map +1 -1
  164. package/dist/providers/codex-cli-launch.js +1 -1
  165. package/dist/providers/codex-cli-launch.js.map +1 -1
  166. package/dist/providers/codex-cli-session.d.ts +4 -1
  167. package/dist/providers/codex-cli-session.d.ts.map +1 -1
  168. package/dist/providers/codex-cli-session.js +73 -46
  169. package/dist/providers/codex-cli-session.js.map +1 -1
  170. package/dist/providers/codex.js.map +1 -1
  171. package/dist/providers/index.d.ts +1 -0
  172. package/dist/providers/index.d.ts.map +1 -1
  173. package/dist/providers/index.js +1 -0
  174. package/dist/providers/index.js.map +1 -1
  175. package/dist/providers/normalize-claude.d.ts +2 -0
  176. package/dist/providers/normalize-claude.d.ts.map +1 -1
  177. package/dist/providers/normalize-claude.js +1 -0
  178. package/dist/providers/normalize-claude.js.map +1 -1
  179. package/dist/providers/run-annotator-turn.d.ts +24 -0
  180. package/dist/providers/run-annotator-turn.d.ts.map +1 -0
  181. package/dist/providers/run-annotator-turn.js +43 -0
  182. package/dist/providers/run-annotator-turn.js.map +1 -0
  183. package/dist/providers/run-worker-turn.d.ts +26 -0
  184. package/dist/providers/run-worker-turn.d.ts.map +1 -0
  185. package/dist/providers/run-worker-turn.js +58 -0
  186. package/dist/providers/run-worker-turn.js.map +1 -0
  187. package/dist/providers/runner-types.d.ts +1 -1
  188. package/dist/providers/runner-types.d.ts.map +1 -1
  189. package/dist/reporting/headline-composer.d.ts +3 -3
  190. package/dist/reporting/headline-composer.d.ts.map +1 -1
  191. package/dist/review/index.d.ts +4 -3
  192. package/dist/review/index.d.ts.map +1 -1
  193. package/dist/review/index.js +7 -4
  194. package/dist/review/index.js.map +1 -1
  195. package/dist/review/parse-review-report.d.ts +7 -1
  196. package/dist/review/parse-review-report.d.ts.map +1 -1
  197. package/dist/review/parse-review-report.js +13 -21
  198. package/dist/review/parse-review-report.js.map +1 -1
  199. package/dist/review/review-verdict-mapping.d.ts +3 -3
  200. package/dist/review/review-verdict-mapping.d.ts.map +1 -1
  201. package/dist/review/review-verdict-mapping.js +1 -1
  202. package/dist/review/review-verdict-mapping.js.map +1 -1
  203. package/dist/review/run-reviewer.d.ts +40 -0
  204. package/dist/review/run-reviewer.d.ts.map +1 -0
  205. package/dist/review/run-reviewer.js +54 -0
  206. package/dist/review/run-reviewer.js.map +1 -0
  207. package/dist/review/templates/quality-review.d.ts +5 -0
  208. package/dist/review/templates/quality-review.d.ts.map +1 -1
  209. package/dist/review/templates/quality-review.js +35 -25
  210. package/dist/review/templates/quality-review.js.map +1 -1
  211. package/dist/review/templates/spec-review.d.ts +6 -0
  212. package/dist/review/templates/spec-review.d.ts.map +1 -1
  213. package/dist/review/templates/spec-review.js +36 -8
  214. package/dist/review/templates/spec-review.js.map +1 -1
  215. package/dist/stores/batch-cache.d.ts +3 -3
  216. package/dist/stores/batch-cache.d.ts.map +1 -1
  217. package/dist/stores/batch-cache.js.map +1 -1
  218. package/dist/stores/batch-registry.d.ts +31 -0
  219. package/dist/stores/batch-registry.d.ts.map +1 -1
  220. package/dist/stores/batch-registry.js +12 -0
  221. package/dist/stores/batch-registry.js.map +1 -1
  222. package/dist/tools/debug/tool-config.js +1 -1
  223. package/dist/tools/debug/tool-config.js.map +1 -1
  224. package/dist/tools/delegate/tool-config.d.ts.map +1 -1
  225. package/dist/tools/delegate/tool-config.js +3 -1
  226. package/dist/tools/delegate/tool-config.js.map +1 -1
  227. package/dist/tools/execute-plan/tool-config.d.ts.map +1 -1
  228. package/dist/tools/execute-plan/tool-config.js +3 -1
  229. package/dist/tools/execute-plan/tool-config.js.map +1 -1
  230. package/dist/tools/investigate/tool-config.js +1 -1
  231. package/dist/tools/investigate/tool-config.js.map +1 -1
  232. package/dist/tools/retry/tool-config.js.map +1 -1
  233. package/dist/types/run-result.d.ts +164 -213
  234. package/dist/types/run-result.d.ts.map +1 -1
  235. package/dist/types/run-result.js +17 -0
  236. package/dist/types/run-result.js.map +1 -1
  237. package/dist/types.d.ts +1 -1
  238. package/dist/types.d.ts.map +1 -1
  239. package/package.json +1 -1
  240. package/dist/lifecycle/handlers/derive-terminal-status.d.ts +0 -10
  241. package/dist/lifecycle/handlers/derive-terminal-status.d.ts.map +0 -1
  242. package/dist/lifecycle/handlers/derive-terminal-status.js +0 -35
  243. package/dist/lifecycle/handlers/derive-terminal-status.js.map +0 -1
  244. package/dist/lifecycle/handlers/files-written-cross-check.d.ts +0 -27
  245. package/dist/lifecycle/handlers/files-written-cross-check.d.ts.map +0 -1
  246. package/dist/lifecycle/handlers/files-written-cross-check.js +0 -91
  247. package/dist/lifecycle/handlers/files-written-cross-check.js.map +0 -1
  248. package/dist/lifecycle/handlers/verify-stage.d.ts +0 -37
  249. package/dist/lifecycle/handlers/verify-stage.d.ts.map +0 -1
  250. package/dist/lifecycle/handlers/verify-stage.js +0 -208
  251. package/dist/lifecycle/handlers/verify-stage.js.map +0 -1
  252. package/dist/review/default-engines.d.ts +0 -3
  253. package/dist/review/default-engines.d.ts.map +0 -1
  254. package/dist/review/default-engines.js +0 -22
  255. package/dist/review/default-engines.js.map +0 -1
  256. package/dist/review/reviewer-engine.d.ts +0 -53
  257. package/dist/review/reviewer-engine.d.ts.map +0 -1
  258. package/dist/review/reviewer-engine.js +0 -47
  259. package/dist/review/reviewer-engine.js.map +0 -1
  260. package/dist/review/reviewer-output-parser.d.ts +0 -12
  261. package/dist/review/reviewer-output-parser.d.ts.map +0 -1
  262. package/dist/review/reviewer-output-parser.js +0 -213
  263. package/dist/review/reviewer-output-parser.js.map +0 -1
  264. package/dist/review/reviewer-prompt-builder.d.ts +0 -21
  265. package/dist/review/reviewer-prompt-builder.d.ts.map +0 -1
  266. package/dist/review/reviewer-prompt-builder.js +0 -22
  267. package/dist/review/reviewer-prompt-builder.js.map +0 -1
  268. package/dist/review/templates/annotate-completion.d.ts +0 -12
  269. package/dist/review/templates/annotate-completion.d.ts.map +0 -1
  270. package/dist/review/templates/annotate-completion.js +0 -72
  271. package/dist/review/templates/annotate-completion.js.map +0 -1
@@ -1,243 +1,194 @@
1
- import type { AttemptRecord, CostBreakdown, RunOptions, RunStatus, TerminationReason, TokenUsage } from '../providers/runner-types.js';
2
- export type { TokenUsage } from '../providers/runner-types.js';
3
- import type { VerifyStageResult, VerifyStepStatus } from '../lifecycle/handlers/verify-stage.js';
4
- import type { AgentType } from './task-spec.js';
5
- import type { ProviderConfig, FallbackOverride } from './config.js';
6
- import type { StageStatsMap } from './stage-stats.js';
7
- export interface Commit {
8
- sha: string;
9
- subject: string;
10
- body: string;
11
- filesChanged: string[];
12
- authoredAt: string;
1
+ export type { ComposePayload as RunResult } from '../lifecycle/stage-io.js';
2
+ export interface TokenUsage {
3
+ inputTokens: number;
4
+ outputTokens: number;
5
+ cachedReadTokens: number;
6
+ cachedNonReadTokens: number;
13
7
  }
14
- export interface RunResult {
8
+ /** Cause values for the TerminationReason object (inline to break circularity). */
9
+ export type _TerminationCause = 'finished' | 'incomplete' | 'timeout' | 'cost_exceeded' | 'time_ceiling' | 'degenerate_exhausted' | 'api_error' | 'provider_transport_failure' | 'api_aborted' | 'brief_too_vague' | 'error';
10
+ /** Used inside TurnResult (internal); exported for runner-types.ts alignment. */
11
+ export type TurnTerminationReason = _TerminationCause;
12
+ export interface TurnResult {
15
13
  output: string;
16
- status: RunStatus;
17
14
  usage: TokenUsage;
18
- /**
19
- * Existing per-task cost surface — `{ costUSD, costDeltaVsMainUSD }`.
20
- * Kept for back-compat. New readers should prefer `actualCostUSD`
21
- * which is populated by composeResponse from `sumStageCosts` and
22
- * matches the batch roll-up's per-task contribution.
23
- */
24
- cost?: CostBreakdown;
25
- /**
26
- * A11.2 (4.2.3+): canonical per-task total cost on the public envelope,
27
- * computed as the sum of `stageStats[*].costUSD` across entered stages
28
- * (same logic as the batch-level `costSummary.totalActualCostUSD`).
29
- * Equal to `cost.costUSD` for runs where stage-level pricing is
30
- * registered; null when no stage carried a finite cost (e.g. mock
31
- * provider runs). Populated by composeResponse — workers and runners
32
- * may leave this undefined.
33
- */
34
- actualCostUSD?: number | null;
35
- /** Spec lint-reviewer raw report. */
36
- specReviewerNotes?: string;
37
- /** Quality lint-reviewer raw report. */
38
- qualityReviewerNotes?: string;
39
- /** Combined review verdict from both reviewers. */
40
- reviewVerdict?: 'approved' | 'changes_required';
41
- /** Merged deviations from both reviewers. */
42
- reviewFindings?: Array<{
43
- source: 'spec' | 'quality';
44
- text: string;
45
- }>;
46
- /** Rework worker free-text summary (set when rework stage fired). */
47
- reworkOutput?: string;
48
- /** True if rework stage applied edits; false if reviewers approved so it skipped; undefined if stage didn't fire. */
49
- reworkApplied?: boolean;
50
- /** Stage 4 deterministic verify-command result (run inside annotate handler). */
51
- verifyResult?: {
52
- ran: boolean;
53
- passed: boolean | null;
54
- exitCode: number | null;
55
- command: string[];
56
- tailOutput: string | null;
57
- };
15
+ filesRead: string[];
16
+ filesWritten: string[];
17
+ toolCallsByName: Record<string, number>;
18
+ turns: number;
19
+ durationMs: number;
20
+ costUSD: number;
21
+ /** Raw termination reason from the SDK; may include provider-specific values
22
+ * beyond the standard _TerminationCause set. assembleRunResult normalizes
23
+ * via mapStatus/mapTermination before writing to RunResult.terminationReason. */
24
+ terminationReason: string;
25
+ workerSelfAssessment?: string;
26
+ outputIsDiagnostic?: boolean;
27
+ errorCode?: string;
28
+ errorMessage?: string;
29
+ model?: string;
30
+ }
31
+ export interface SessionOpts {
32
+ cwd?: string;
33
+ wallClockDeadline: number;
34
+ idleStallTimeoutMs?: number;
35
+ abortSignal: AbortSignal;
36
+ bus?: object;
37
+ }
38
+ export interface TurnOpts {
39
+ stageLabel?: string;
40
+ }
41
+ /** Interface implemented by ClaudeSession and CodexCliSession. */
42
+ export interface Session {
43
+ send(instruction: string, opts?: TurnOpts): Promise<TurnResult>;
44
+ close(): Promise<void>;
45
+ }
46
+ export interface Provider {
47
+ name: string;
48
+ /** Provider config — shape varies by runtime (ClaudeProviderConfig | CodexProviderConfig).
49
+ * Consumers access .type and .model via unsafe downcasts; the full type lives
50
+ * in types/config.ts to avoid circular deps. */
51
+ config: any;
52
+ openSession(opts: SessionOpts): Session;
53
+ }
54
+ export interface RuntimeRunResult {
55
+ output: string;
56
+ status: string;
57
+ usage: TokenUsage;
58
+ actualCostUSD: number;
58
59
  turns: number;
59
60
  filesRead: string[];
60
61
  filesWritten: string[];
61
- /** A4b §2a (4.2.2+): worker write attempts that failed the path-validity
62
- * filter — shell heredoc commands, absolute paths, paths containing
63
- * shell metacharacters. NOT real, verifiable disk artifacts. The
64
- * lifecycle layer drains this into LifecycleContext.diagnostics for the
65
- * `writes_unverifiable` daemon-log message; not surfaced on the public
66
- * HTTP envelope. Optional so legacy consumers / mocks compile without
67
- * setting the field. */
68
- filesWrittenRejected?: string[];
69
- /** A4b §2b (4.2.2+): post-§2a paths that didn't pass `stat()` against
70
- * taskSpec.cwd at terminal time — the worker reported a path but no
71
- * artifact actually landed there. Surfaced on the public envelope so
72
- * callers can see "you said you wrote X but I can't find it." */
73
- filesWrittenMissing?: string[];
74
62
  toolCalls: string[];
75
63
  outputIsDiagnostic: boolean;
76
- escalationLog: AttemptRecord[];
77
- durationMs?: number;
78
- directoriesListed?: string[];
79
- error?: string;
64
+ directoriesListed: string[];
65
+ workerStatus?: 'done' | 'failed' | 'blocked';
66
+ terminationReason?: {
67
+ cause: _TerminationCause;
68
+ turnsUsed: number;
69
+ hasFileArtifacts: boolean;
70
+ usedShell: boolean;
71
+ workerSelfAssessment: 'done' | 'done_with_concerns' | 'needs_context' | 'blocked' | 'failed' | 'review_loop_capped' | null;
72
+ wasPromoted: boolean;
73
+ wallClockMs?: number;
74
+ };
80
75
  errorCode?: string;
76
+ error?: string;
81
77
  retryable?: boolean;
82
- terminationReason?: TerminationReason | 'round_cap' | 'cost_ceiling' | 'time_ceiling' | 'all_tiers_unavailable';
78
+ incompleteReason?: string;
79
+ escalationLog: EscalationRecord[];
80
+ durationMs?: number;
81
+ models?: {
82
+ implementer?: string;
83
+ reviewer?: string;
84
+ [key: string]: string | undefined;
85
+ };
86
+ agents?: {
87
+ implementer?: string;
88
+ implementerToolMode?: string;
89
+ fallbackOverrides?: Array<{
90
+ role: string;
91
+ assigned: string;
92
+ }>;
93
+ [key: string]: unknown;
94
+ };
95
+ stageStats?: StageStatsShape;
96
+ reviewVerdict?: string;
97
+ qualityReviewStatus?: string;
98
+ specReviewStatus?: string;
83
99
  reviewRounds?: {
84
100
  spec: number;
85
101
  quality: number;
86
- metadata: number;
87
- cap: number;
88
102
  };
103
+ structuredReport?: {
104
+ findings?: Array<{
105
+ severity?: string;
106
+ category?: string;
107
+ claim?: string;
108
+ }>;
109
+ reviewConcerns?: string[];
110
+ };
111
+ implementationReport?: unknown;
112
+ commits?: Array<{
113
+ filesChanged?: string[];
114
+ }>;
115
+ stallCount?: number;
116
+ stallTriggered?: boolean;
117
+ taskMaxIdleMs?: number;
89
118
  structuredError?: {
90
- code: 'validator_verify_command_failed' | 'validator_commit_metadata_invalid' | 'validator_commit_metadata_repair_modified_files' | 'validator_dirty_worktree' | 'review_diff_rejected' | 'runner_crash' | 'provider_rate_limited' | 'provider_api_error' | 'provider_transport_failure' | 'provider_timeout' | 'provider_api_aborted' | 'validator_silent_incomplete' | 'config_main_agent_pricing_unresolvable';
119
+ code: string;
91
120
  message: string;
92
121
  where?: string;
93
- step?: number;
94
- status?: VerifyStepStatus;
95
- attemptsUsed?: number;
96
- dirtyTreePreserved?: boolean;
97
122
  };
98
- workerStatus?: 'done' | 'done_with_concerns' | 'needs_context' | 'blocked' | 'review_loop_capped' | 'failed';
99
- specReviewStatus?: 'approved' | 'changes_required' | 'skipped' | 'error' | 'not_applicable';
100
- specReviewReason?: string;
101
- filePathsSkipped?: boolean;
102
- fileArtifactsMissing?: boolean;
103
- commits?: Commit[];
104
- commitError?: string;
105
- incompleteReason?: 'turn_cap' | 'cost_cap' | 'timeout' | 'missing_sections';
106
- /** True when the orchestrator's stall watchdog fired and force-aborted
107
- * the in-flight provider.run mid-task. Distinct from cap exhaustion —
108
- * signals "no progress" rather than "budget exhausted". */
109
- stallTriggered?: boolean;
110
- /** Number of times the stall watchdog fired across this task's lifecycle.
111
- * Multiple stalls in a single task are possible when the watchdog resets
112
- * across stage transitions. */
113
- stallCount?: number;
114
- /** Per-stage token allocation (optional — populated when runner tracks per-stage).
115
- * Keyed by stage name; stages that didn't run have no entry. */
116
- perStageTokens?: Partial<Record<string, {
117
- input: number;
118
- output: number;
119
- cached: number;
120
- reasoning: number;
121
- }>>;
122
- /** Per-stage turn count (optional — populated when orchestration tags turns). */
123
- turnsByStage?: Partial<Record<string, number>>;
124
- /** Per-stage sandbox violation count. */
125
- sandboxViolationCount?: number;
126
- /** Longest silent gap between LLM/tool/text activity events seen anywhere
127
- * in the lifecycle (across all stages). Use to retro-tune stallTimeoutMs. */
128
- taskMaxIdleMs?: number | null;
129
- workerError?: Error;
130
- /** Per-stage raw stats. Bucketing happens in the telemetry event-builder. */
131
- stageStats?: StageStatsMap;
132
- verification?: VerifyStageResult;
133
- qualityReviewStatus?: 'approved' | 'changes_required' | 'annotated' | 'skipped' | 'error' | 'not_applicable';
134
- qualityReviewReason?: string;
135
- diffReviewStatus?: 'approved' | 'changes_required' | 'skipped' | 'error' | 'not_applicable';
136
- structuredReport?: import('../reporting/structured-report.js').ParsedStructuredReport;
137
- agents?: {
138
- implementer: 'standard' | 'complex' | 'not_run';
139
- implementerHistory?: AgentType[];
140
- implementerToolMode?: 'none' | 'readonly' | 'no-shell' | 'full';
141
- specReviewer: 'standard' | 'complex' | 'skipped' | 'not_applicable';
142
- specReviewerHistory?: (AgentType | 'skipped')[];
143
- qualityReviewer: 'standard' | 'complex' | 'skipped' | 'not_applicable';
144
- qualityReviewerHistory?: (AgentType | 'skipped')[];
145
- fallbackOverrides?: FallbackOverride[];
123
+ verifyResult?: unknown;
124
+ cost?: {
125
+ costUSD: number | null;
126
+ costDeltaVsMainUSD: number | null;
146
127
  };
147
- models?: {
148
- implementer: string;
149
- specReviewer: string | null;
150
- qualityReviewer: string | null;
151
- };
152
- implementationReport?: import('../reporting/structured-report.js').ParsedStructuredReport;
153
- specReviewReport?: import('../reporting/structured-report.js').ParsedStructuredReport;
154
- qualityReviewReport?: import('../reporting/structured-report.js').ParsedStructuredReport;
155
- /** Per-criterion narratives from parallel-criteria fan-out. Read-only
156
- * routes populate this; artifact-producing routes leave it undefined.
157
- * The merge annotator reads this to produce the unified
158
- * annotatedFindings array. */
159
- workerOutputs?: Array<{
160
- criterionId: string;
161
- criterionTitle: string;
162
- narrative: string;
163
- }>;
164
- /** IDs of criteria whose sub-workers succeeded. Read-only routes only. */
165
- partialCriteriaCovered?: string[];
166
- /** Failed criteria with reason. Read-only routes only. */
167
- partialCriteriaFailed?: Array<{
168
- id: string;
169
- title: string;
170
- reason: 'timeout' | 'transport' | 'parse' | 'other';
171
- lastError: string;
172
- }>;
128
+ }
129
+ export interface EscalationRecord {
130
+ provider: string;
131
+ status: string;
132
+ turns: number;
133
+ inputTokens: number;
134
+ outputTokens: number;
135
+ costUSD: number | null;
136
+ initialPromptLengthChars: number;
137
+ initialPromptHash: string;
138
+ reason?: string;
139
+ }
140
+ export interface Commit {
141
+ sha: string;
142
+ message: string;
143
+ files: string[];
144
+ authoredAt: string;
173
145
  }
174
146
  export interface ReviewPromptParts {
175
- systemPrefix: string;
176
- userBody: string;
147
+ specPortion?: string;
148
+ codePortion?: string;
149
+ rubricPortion?: string;
177
150
  }
178
151
  export interface CacheHints {
179
152
  cacheableSystemPrompt?: boolean;
180
153
  }
181
- export type ReviewRunOptions = RunOptions & {
154
+ export interface ReviewRunOptions {
155
+ mode?: 'standard' | 'review';
156
+ instructionsSuffix?: string;
182
157
  cacheHints?: CacheHints;
183
- };
184
- export interface Provider {
185
- name: string;
186
- config: ProviderConfig;
187
- openSession(opts: SessionOpts): Session;
188
- }
189
- /** Stage-tagging payload for a single session.send() call. */
190
- export interface TurnOpts {
191
- /** e.g. 'implementing', 'review', 'rework', 'annotating', 'committing'. */
192
- stageLabel: string;
158
+ abortSignal?: AbortSignal;
193
159
  }
194
- export interface SessionOpts {
195
- cwd: string;
196
- allowedHosts?: ReadonlySet<string>;
197
- /** Hard wall-clock deadline (epoch ms). External guard aborts at this time. */
198
- wallClockDeadline: number;
199
- /** Idle threshold (ms): no SDK event for this long → abort. */
200
- idleStallTimeoutMs: number;
201
- /** Advisory only. Authoritative enforcement = mma-side CostMeter (task-wide). */
202
- maxCostUSD?: number;
203
- /** Wired through to the SDK's own cancellation parameter. */
204
- abortSignal: AbortSignal;
205
- /** Telemetry sink. Optional. Untyped to avoid a circular import with
206
- * channels/event-bus; concrete shape verified at the bind site. */
207
- bus?: unknown;
208
- /** Initial stage label so telemetry has one before the first TurnOpts lands. */
209
- initialStageLabel?: string;
210
- }
211
- export interface TurnResult {
212
- output: string;
213
- usage: TokenUsage;
214
- filesRead: string[];
215
- filesWritten: string[];
216
- toolCallsByName: Record<string, number>;
217
- turns: number;
218
- durationMs: number;
219
- /** USD cost when known (>= 0). `null` means cost couldn't be determined
220
- * (e.g. mock providers, missing rate-card entry). Distinct from `0`,
221
- * which means a real zero charge — important for downstream telemetry
222
- * that treats null as "no data". */
223
- costUSD: number | null;
224
- terminationReason: 'ok' | 'cost_exceeded' | 'time_exceeded' | 'cap_exhausted' | 'stalled' | 'aborted' | 'error';
225
- errorCode?: string;
226
- errorMessage?: string;
227
- /** Worker's self-assessment as written into its structured report.
228
- * Optional — populated by adapters that parse the SDK output (or by
229
- * test mocks). assembleRunResult prefers this over its termination-
230
- * reason-derived default so the "incomplete + worker self-assessed
231
- * done" promotion path can fire. */
232
- workerSelfAssessment?: 'done' | 'done_with_concerns' | 'needs_context' | 'blocked' | 'failed' | 'review_loop_capped';
233
- /** True when the assistantText is a diagnostic shell (e.g.
234
- * "Sub-agent error: …" or scratchpad-only fallback) rather than real
235
- * worker content. Lets delegateWithEscalation's selection prefer any
236
- * real-content attempt over a longer diagnostic-only attempt. */
237
- outputIsDiagnostic?: boolean;
160
+ /** Minimal shape for stageStats — enough for event-builder.ts to access
161
+ * stageStats.implementing, stageStats.review, etc. without TS errors.
162
+ * The full StageStatsMap lives in types/stage-stats.ts. */
163
+ export interface StageStatsShape {
164
+ implementing?: RawStageStatsShape;
165
+ review?: RawStageStatsShape & {
166
+ roundsUsed?: number;
167
+ };
168
+ rework?: RawStageStatsShape;
169
+ annotating?: RawStageStatsShape & {
170
+ outcome?: string;
171
+ skipReason?: string;
172
+ };
173
+ committing?: RawStageStatsShape;
238
174
  }
239
- export interface Session {
240
- send(instruction: string, opts?: TurnOpts): Promise<TurnResult>;
241
- close(): Promise<void>;
175
+ export interface RawStageStatsShape {
176
+ entered?: boolean;
177
+ durationMs?: number | null;
178
+ costUSD?: number | null;
179
+ agentTier?: string | null;
180
+ modelFamily?: string | null;
181
+ model?: string | null;
182
+ maxIdleMs?: number | null;
183
+ totalIdleMs?: number | null;
184
+ inputTokens?: number | null;
185
+ outputTokens?: number | null;
186
+ cachedReadTokens?: number | null;
187
+ cachedNonReadTokens?: number | null;
188
+ turnCount?: number | null;
189
+ toolCallCount?: number | null;
190
+ filesReadCount?: number | null;
191
+ filesWrittenCount?: number | null;
192
+ activityEvents?: number | null;
242
193
  }
243
194
  //# sourceMappingURL=run-result.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-result.d.ts","sourceRoot":"","sources":["../../src/types/run-result.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,UAAU,EACX,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACjG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,SAAS,CAAA;IACjB,KAAK,EAAE,UAAU,CAAA;IACjB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAE7B,qCAAqC;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,wCAAwC;IACxC,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,mDAAmD;IACnD,aAAa,CAAC,EAAE,UAAU,GAAG,kBAAkB,CAAA;IAC/C,6CAA6C;IAC7C,cAAc,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACpE,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,qHAAqH;IACrH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,iFAAiF;IACjF,YAAY,CAAC,EAAE;QACb,GAAG,EAAE,OAAO,CAAC;QACb,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;QACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3B,CAAA;IACD,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB;;;;;;6BAMyB;IACzB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC/B;;;sEAGkE;IAClE,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC9B,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,kBAAkB,EAAE,OAAO,CAAA;IAC3B,aAAa,EAAE,aAAa,EAAE,CAAA;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,GAAG,uBAAuB,CAAA;IAC/G,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/E,eAAe,CAAC,EAAE;QAAE,IAAI,EAAE,iCAAiC,GAAG,mCAAmC,GAAG,iDAAiD,GAAG,0BAA0B,GAAG,sBAAsB,GAAG,cAAc,GAAG,uBAAuB,GAAG,oBAAoB,GAAG,4BAA4B,GAAG,kBAAkB,GAAG,sBAAsB,GAAG,6BAA6B,GAAG,wCAAwC,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;IACviB,YAAY,CAAC,EAAE,MAAM,GAAG,oBAAoB,GAAG,eAAe,GAAG,SAAS,GAAG,oBAAoB,GAAG,QAAQ,CAAA;IAC5G,gBAAgB,CAAC,EAAE,UAAU,GAAG,kBAAkB,GAAG,SAAS,GAAG,OAAO,GAAG,gBAAgB,CAAA;IAC3F,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gBAAgB,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,kBAAkB,CAAA;IAC3E;;gEAE4D;IAC5D,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;oCAEgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;qEACiE;IACjE,cAAc,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAA;IAC9G,iFAAiF;IACjF,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC9C,yCAAyC;IACzC,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B;kFAC8E;IAC9E,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,aAAa,CAAA;IAM1B,YAAY,CAAC,EAAE,iBAAiB,CAAA;IAChC,mBAAmB,CAAC,EAAE,UAAU,GAAG,kBAAkB,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,gBAAgB,CAAA;IAC5G,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,gBAAgB,CAAC,EAAE,UAAU,GAAG,kBAAkB,GAAG,SAAS,GAAG,OAAO,GAAG,gBAAgB,CAAA;IAC3F,gBAAgB,CAAC,EAAE,OAAO,mCAAmC,EAAE,sBAAsB,CAAA;IACrF,MAAM,CAAC,EAAE;QACP,WAAW,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAA;QAC/C,kBAAkB,CAAC,EAAE,SAAS,EAAE,CAAA;QAChC,mBAAmB,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAA;QAC/D,YAAY,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,gBAAgB,CAAA;QACnE,mBAAmB,CAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC,EAAE,CAAA;QAC/C,eAAe,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,gBAAgB,CAAA;QACtE,sBAAsB,CAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC,EAAE,CAAA;QAClD,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAA;KACvC,CAAA;IACD,MAAM,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;IAC7F,oBAAoB,CAAC,EAAE,OAAO,mCAAmC,EAAE,sBAAsB,CAAA;IACzF,gBAAgB,CAAC,EAAE,OAAO,mCAAmC,EAAE,sBAAsB,CAAA;IACrF,mBAAmB,CAAC,EAAE,OAAO,mCAAmC,EAAE,sBAAsB,CAAA;IACxF;;;mCAG+B;IAC/B,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACzF,0EAA0E;IAC1E,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAA;IACjC,0DAA0D;IAC1D,qBAAqB,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACrI;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG;IAAE,UAAU,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAKxE,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC;CACzC;AAED,8DAA8D;AAC9D,MAAM,WAAW,QAAQ;IACvB,2EAA2E;IAC3E,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,+EAA+E;IAC/E,iBAAiB,EAAE,MAAM,CAAC;IAC1B,+DAA+D;IAC/D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,WAAW,EAAE,WAAW,CAAC;IACzB;wEACoE;IACpE,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,gFAAgF;IAChF,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB;;;yCAGqC;IACrC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,iBAAiB,EAAE,IAAI,GAAG,eAAe,GAAG,eAAe,GAAG,eAAe,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IAChH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;yCAIqC;IACrC,oBAAoB,CAAC,EAAE,MAAM,GAAG,oBAAoB,GAAG,eAAe,GAAG,SAAS,GAAG,QAAQ,GAAG,oBAAoB,CAAC;IACrH;;;sEAGkE;IAClE,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAChE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
1
+ {"version":3,"file":"run-result.d.ts","sourceRoot":"","sources":["../../src/types/run-result.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,19 @@
1
+ // Full type definitions for the codebase's actual run-time result shapes.
2
+ //
3
+ // ── PLAN TASK 2 — RunResult IS ComposePayload ─────────────────────────────
4
+ // Per the stage-io-standardization plan, `RunResult` is the v5 wire envelope
5
+ // (= ComposePayload from stage-io.ts). The internal lifecycle data flow
6
+ // (what runners produce, what `state.lastRunResult` holds, what the
7
+ // recorder/event-builder reads) uses a separate type — `RuntimeRunResult`
8
+ // (declared below) — kept distinct from the wire envelope.
9
+ //
10
+ // Consumer rule:
11
+ // - Anywhere code is reading the BATCH/WIRE-side result → `RunResult`
12
+ // (= ComposePayload — 8 fields).
13
+ // - Anywhere code is reading the RUNTIME mirror (workerStatus, stageStats,
14
+ // usage, terminationReason, …) → `RuntimeRunResult`.
15
+ //
16
+ // Drift detector lives at `tests/types/run-result.test.ts`.
17
+ // ──────────────────────────────────────────────────────────────────────────
1
18
  export {};
2
19
  //# sourceMappingURL=run-result.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-result.js","sourceRoot":"","sources":["../../src/types/run-result.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"run-result.js","sourceRoot":"","sources":["../../src/types/run-result.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,wEAAwE;AACxE,oEAAoE;AACpE,0EAA0E;AAC1E,2DAA2D;AAC3D,EAAE;AACF,iBAAiB;AACjB,wEAAwE;AACxE,qCAAqC;AACrC,6EAA6E;AAC7E,yDAAyD;AACzD,EAAE;AACF,4DAA4D;AAC5D,6EAA6E"}
package/dist/types.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export type { ReviewVerdict, VerifyOutcome, VerifySkipReason, StageName, RawStageStats, StageStatsMap, } from './types/stage-stats.js';
2
2
  export type { ToolMode, SandboxPolicy, AgentType, Effort, CostTier, WorkerStatus, FormatConstraints, TaskSpec, } from './types/task-spec.js';
3
3
  export type { AgentConfig, FallbackOverride, CodexProviderConfig, ClaudeProviderConfig, ProviderConfig, ResearchConfig, MultiModelConfig, } from './types/config.js';
4
- export type { Commit, RunResult, ReviewPromptParts, CacheHints, ReviewRunOptions, Provider, } from './types/run-result.js';
4
+ export type { Commit, RunResult, RuntimeRunResult, ReviewPromptParts, CacheHints, ReviewRunOptions, Provider, } from './types/run-result.js';
5
5
  export type { ErrorCode } from './error-codes.js';
6
6
  export interface PerTaskCostSlots {
7
7
  /** Canonical total cost for this task (sum of all stage costs). */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAKA,YAAY,EACV,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,aAAa,GACd,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACV,QAAQ,EACR,aAAa,EACb,SAAS,EACT,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,QAAQ,GACT,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,MAAM,EACN,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,QAAQ,GACT,MAAM,uBAAuB,CAAC;AAK/B,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAWlD,MAAM,WAAW,gBAAgB;IAC/B,mEAAmE;IACnE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,0CAA0C;IAC1C,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,0CAA0C;IAC1C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iFAAiF;IACjF,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAKA,YAAY,EACV,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,aAAa,GACd,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACV,QAAQ,EACR,aAAa,EACb,SAAS,EACT,MAAM,EACN,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,QAAQ,GACT,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,MAAM,EACN,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,QAAQ,GACT,MAAM,uBAAuB,CAAC;AAK/B,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAWlD,MAAM,WAAW,gBAAgB;IAC/B,mEAAmE;IACnE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,0CAA0C;IAC1C,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,0CAA0C;IAC1C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iFAAiF;IACjF,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhixuan92/multi-model-agent-core",
3
- "version": "4.5.3",
3
+ "version": "4.6.0",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "Core library for multi-model-agent: provider runners (Claude, Codex, OpenAI-compatible), routing logic, config schema, and tool/sandbox primitives.",
@@ -1,10 +0,0 @@
1
- import type { LifecycleState } from '../stage-plan-types.js';
2
- import type { TerminalStatusDeriver } from '../../reporting/terminal-status-deriver.js';
3
- import type { ShutdownCoordinator } from '../../cleanup/shutdown-coordinator.js';
4
- export declare class DeriveTerminalStatusHandler {
5
- private deriver;
6
- private coordinator;
7
- constructor(deriver: TerminalStatusDeriver, coordinator: ShutdownCoordinator);
8
- handler: (state: LifecycleState) => void;
9
- }
10
- //# sourceMappingURL=derive-terminal-status.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"derive-terminal-status.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/handlers/derive-terminal-status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAqF,MAAM,4CAA4C,CAAC;AAC3K,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAEjF,qBAAa,2BAA2B;IAC1B,OAAO,CAAC,OAAO;IAAyB,OAAO,CAAC,WAAW;gBAAnD,OAAO,EAAE,qBAAqB,EAAU,WAAW,EAAE,mBAAmB;IAE5F,OAAO,GAAI,OAAO,cAAc,KAAG,IAAI,CAyBrC;CACH"}
@@ -1,35 +0,0 @@
1
- export class DeriveTerminalStatusHandler {
2
- deriver;
3
- coordinator;
4
- constructor(deriver, coordinator) {
5
- this.deriver = deriver;
6
- this.coordinator = coordinator;
7
- }
8
- handler = (state) => {
9
- const inputs = {
10
- shutdownInProgress: this.coordinator.isShutdownInProgress(),
11
- workerStatus: state.workerStatus || 'done',
12
- overallReviewVerdict: state.reviewVerdict || 'not_applicable',
13
- artifactsCheck: state.artifactsCheck || 'not_applicable',
14
- verifyOutcome: state.verifyOutcome || 'not_applicable',
15
- guardFires: state.guardFires || [],
16
- errorCode: state.errorCode || null,
17
- };
18
- const decision = this.deriver.derive(inputs);
19
- state.terminalStatus = decision.terminalStatus;
20
- state.terminationReason = decision.errorCode;
21
- // CRITICAL: do NOT set state.terminal=true here. This handler is wired as
22
- // the compose_response row (5.3); rows 5.3.5 (register_terminal_block),
23
- // 5.4 (emit_task_terminal), 5.5 (persist_to_batch_registry), and 6.1
24
- // (flush_telemetry) MUST still fire after this handler runs. The
25
- // LifecycleDriver short-circuits on state.terminal === true, so setting
26
- // it here would prevent terminal-block registration, telemetry flush, and
27
- // batch persistence — silently breaking every task's tail.
28
- //
29
- // terminalStatus is the system-verdict field (caller-facing); terminal
30
- // is the lifecycle-driver short-circuit flag — they are different things.
31
- // Only error-path handlers (intake errors, guard fires) set
32
- // state.terminal = true to skip the rest of the lifecycle.
33
- };
34
- }
35
- //# sourceMappingURL=derive-terminal-status.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"derive-terminal-status.js","sourceRoot":"","sources":["../../../src/lifecycle/handlers/derive-terminal-status.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,2BAA2B;IAClB;IAAwC;IAA5D,YAAoB,OAA8B,EAAU,WAAgC;QAAxE,YAAO,GAAP,OAAO,CAAuB;QAAU,gBAAW,GAAX,WAAW,CAAqB;IAAG,CAAC;IAEhG,OAAO,GAAG,CAAC,KAAqB,EAAQ,EAAE;QACxC,MAAM,MAAM,GAAmB;YAC7B,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE;YAC3D,YAAY,EAAG,KAAK,CAAC,YAA6B,IAAI,MAAM;YAC5D,oBAAoB,EAAG,KAAK,CAAC,aAAsC,IAAI,gBAAgB;YACvF,cAAc,EAAG,KAAK,CAAC,cAAiC,IAAI,gBAAgB;YAC5E,aAAa,EAAG,KAAK,CAAC,aAA+B,IAAI,gBAAgB;YACzE,UAAU,EAAG,KAAK,CAAC,UAAuB,IAAI,EAAE;YAChD,SAAS,EAAG,KAAK,CAAC,SAAoB,IAAI,IAAI;SAC/C,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7C,KAAK,CAAC,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;QAC/C,KAAK,CAAC,iBAAiB,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC7C,0EAA0E;QAC1E,wEAAwE;QACxE,qEAAqE;QACrE,iEAAiE;QACjE,wEAAwE;QACxE,0EAA0E;QAC1E,2DAA2D;QAC3D,EAAE;QACF,uEAAuE;QACvE,0EAA0E;QAC1E,4DAA4D;QAC5D,2DAA2D;IAC7D,CAAC,CAAC;CACH"}
@@ -1,27 +0,0 @@
1
- export interface CrossCheckInputs {
2
- /** Canonical (realpath) cwd from request. */
3
- cwd: string;
4
- /** Already filtered per A4b §2a — relative paths only, no shell entries. */
5
- filesWritten: string[];
6
- workerSelfAssessment: 'done' | 'in_progress' | 'no_op' | null | undefined;
7
- toolsMode: 'full' | 'readonly' | 'none' | undefined;
8
- autoCommit: boolean | undefined;
9
- /** True iff the worker actually attempted any filesystem write — either a
10
- * real path landed in `filesWritten`, the path-validity filter pushed at
11
- * least one entry to `filesWrittenRejected`, or a shell heredoc fired.
12
- * When false, the worker never tried to write — `writes_unverifiable` is
13
- * a false positive (e.g., a chat-only response that didn't need a file). */
14
- writeAttempted?: boolean;
15
- }
16
- export interface CrossCheckResult {
17
- /** Possibly trimmed of nonexistent or absolute-path entries. */
18
- filesWritten: string[];
19
- /** Entries that didn't pass stat (or were absolute — sandbox guard). */
20
- filesWrittenMissing: string[];
21
- /** Set only when the downgrade fires. */
22
- workerStatus?: 'error';
23
- errorCode?: 'writes_unverifiable';
24
- errorMessage?: string;
25
- }
26
- export declare function crossCheckFilesWritten(inputs: CrossCheckInputs): CrossCheckResult;
27
- //# sourceMappingURL=files-written-cross-check.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"files-written-cross-check.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/handlers/files-written-cross-check.ts"],"names":[],"mappings":"AAgCA,MAAM,WAAW,gBAAgB;IAC/B,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,4EAA4E;IAC5E,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,oBAAoB,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1E,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;IACpD,UAAU,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC;;;;iFAI6E;IAC7E,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,gEAAgE;IAChE,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,wEAAwE;IACxE,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,yCAAyC;IACzC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAOD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CA2DjF"}