@zhixuan92/multi-model-agent-core 3.0.1 → 3.1.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 (100) hide show
  1. package/README.md +15 -16
  2. package/dist/batch-registry.d.ts +15 -2
  3. package/dist/batch-registry.d.ts.map +1 -1
  4. package/dist/batch-registry.js +18 -1
  5. package/dist/batch-registry.js.map +1 -1
  6. package/dist/config/load.d.ts +12 -2
  7. package/dist/config/load.d.ts.map +1 -1
  8. package/dist/config/load.js +24 -16
  9. package/dist/config/load.js.map +1 -1
  10. package/dist/config/schema.d.ts +3 -0
  11. package/dist/config/schema.d.ts.map +1 -1
  12. package/dist/config/schema.js +4 -0
  13. package/dist/config/schema.js.map +1 -1
  14. package/dist/diagnostics/disconnect-log.d.ts +45 -0
  15. package/dist/diagnostics/disconnect-log.d.ts.map +1 -1
  16. package/dist/diagnostics/disconnect-log.js +96 -2
  17. package/dist/diagnostics/disconnect-log.js.map +1 -1
  18. package/dist/executors/audit.d.ts.map +1 -1
  19. package/dist/executors/audit.js +12 -4
  20. package/dist/executors/audit.js.map +1 -1
  21. package/dist/executors/debug.d.ts.map +1 -1
  22. package/dist/executors/debug.js +7 -2
  23. package/dist/executors/debug.js.map +1 -1
  24. package/dist/executors/delegate.d.ts.map +1 -1
  25. package/dist/executors/delegate.js +18 -4
  26. package/dist/executors/delegate.js.map +1 -1
  27. package/dist/executors/execute-plan.d.ts.map +1 -1
  28. package/dist/executors/execute-plan.js +12 -4
  29. package/dist/executors/execute-plan.js.map +1 -1
  30. package/dist/executors/retry.d.ts.map +1 -1
  31. package/dist/executors/retry.js +8 -1
  32. package/dist/executors/retry.js.map +1 -1
  33. package/dist/executors/review.d.ts.map +1 -1
  34. package/dist/executors/review.js +12 -4
  35. package/dist/executors/review.js.map +1 -1
  36. package/dist/executors/types.d.ts +20 -5
  37. package/dist/executors/types.d.ts.map +1 -1
  38. package/dist/executors/verify.d.ts.map +1 -1
  39. package/dist/executors/verify.js +12 -4
  40. package/dist/executors/verify.js.map +1 -1
  41. package/dist/heartbeat.d.ts +50 -0
  42. package/dist/heartbeat.d.ts.map +1 -1
  43. package/dist/heartbeat.js +48 -0
  44. package/dist/heartbeat.js.map +1 -1
  45. package/dist/index.d.ts +5 -2
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +4 -1
  48. package/dist/index.js.map +1 -1
  49. package/dist/reporting/compose-running-headline.d.ts +16 -0
  50. package/dist/reporting/compose-running-headline.d.ts.map +1 -0
  51. package/dist/reporting/compose-running-headline.js +29 -0
  52. package/dist/reporting/compose-running-headline.js.map +1 -0
  53. package/dist/reporting/compose-terminal-headline.d.ts +8 -0
  54. package/dist/reporting/compose-terminal-headline.d.ts.map +1 -0
  55. package/dist/reporting/compose-terminal-headline.js +10 -0
  56. package/dist/reporting/compose-terminal-headline.js.map +1 -0
  57. package/dist/reporting/not-applicable.d.ts +9 -0
  58. package/dist/reporting/not-applicable.d.ts.map +1 -0
  59. package/dist/reporting/not-applicable.js +12 -0
  60. package/dist/reporting/not-applicable.js.map +1 -0
  61. package/dist/run-tasks.d.ts +20 -0
  62. package/dist/run-tasks.d.ts.map +1 -1
  63. package/dist/run-tasks.js +78 -3
  64. package/dist/run-tasks.js.map +1 -1
  65. package/dist/tool-schemas/audit.d.ts +28 -3
  66. package/dist/tool-schemas/audit.d.ts.map +1 -1
  67. package/dist/tool-schemas/audit.js +2 -7
  68. package/dist/tool-schemas/audit.js.map +1 -1
  69. package/dist/tool-schemas/debug.d.ts +28 -3
  70. package/dist/tool-schemas/debug.d.ts.map +1 -1
  71. package/dist/tool-schemas/debug.js +2 -7
  72. package/dist/tool-schemas/debug.js.map +1 -1
  73. package/dist/tool-schemas/delegate.d.ts +28 -3
  74. package/dist/tool-schemas/delegate.d.ts.map +1 -1
  75. package/dist/tool-schemas/delegate.js +2 -7
  76. package/dist/tool-schemas/delegate.js.map +1 -1
  77. package/dist/tool-schemas/execute-plan.d.ts +28 -3
  78. package/dist/tool-schemas/execute-plan.d.ts.map +1 -1
  79. package/dist/tool-schemas/execute-plan.js +2 -7
  80. package/dist/tool-schemas/execute-plan.js.map +1 -1
  81. package/dist/tool-schemas/retry.d.ts +28 -3
  82. package/dist/tool-schemas/retry.d.ts.map +1 -1
  83. package/dist/tool-schemas/retry.js +2 -7
  84. package/dist/tool-schemas/retry.js.map +1 -1
  85. package/dist/tool-schemas/review.d.ts +28 -3
  86. package/dist/tool-schemas/review.d.ts.map +1 -1
  87. package/dist/tool-schemas/review.js +2 -7
  88. package/dist/tool-schemas/review.js.map +1 -1
  89. package/dist/tool-schemas/shared-output.d.ts +41 -0
  90. package/dist/tool-schemas/shared-output.d.ts.map +1 -0
  91. package/dist/tool-schemas/shared-output.js +25 -0
  92. package/dist/tool-schemas/shared-output.js.map +1 -0
  93. package/dist/tool-schemas/verify.d.ts +28 -3
  94. package/dist/tool-schemas/verify.d.ts.map +1 -1
  95. package/dist/tool-schemas/verify.js +2 -7
  96. package/dist/tool-schemas/verify.js.map +1 -1
  97. package/dist/types.d.ts +2 -0
  98. package/dist/types.d.ts.map +1 -1
  99. package/dist/types.js.map +1 -1
  100. package/package.json +1 -1
@@ -1,9 +1,50 @@
1
1
  import type { ProgressEvent } from './types.js';
2
2
  export type HeartbeatStage = 'implementing' | 'spec_review' | 'spec_rework' | 'quality_review' | 'quality_rework';
3
+ /**
4
+ * Lightweight state snapshot passed to `recordHeartbeat` on every tick (including
5
+ * the final flush). The server uses this — combined with the BatchRegistry entry
6
+ * it already holds — to compose the running headline and push it via
7
+ * `BatchRegistry.updateRunningHeadline`.
8
+ *
9
+ * HeartbeatTimer has no knowledge of BatchRegistry; it only emits this payload.
10
+ */
11
+ export interface HeartbeatTickInfo {
12
+ batchId: string;
13
+ elapsedMs: number;
14
+ stage: HeartbeatStage;
15
+ stageIndex: number;
16
+ stageCount: number;
17
+ reviewRound?: number;
18
+ maxReviewRounds?: number;
19
+ provider: string;
20
+ progress: {
21
+ filesRead: number;
22
+ filesWritten: number;
23
+ toolCalls: number;
24
+ };
25
+ costUSD: number | null;
26
+ savedCostUSD: number | null;
27
+ /** Populated only on the tick immediately following a stage change. */
28
+ phaseChange?: {
29
+ from: HeartbeatStage;
30
+ to: HeartbeatStage;
31
+ };
32
+ }
3
33
  export interface HeartbeatTimerOptions {
4
34
  provider: string;
5
35
  parentModel?: string;
6
36
  intervalMs?: number;
37
+ /**
38
+ * Optional callback invoked on every HeartbeatTimer tick (including the
39
+ * final one). Receives a snapshot of the timer's current state so the
40
+ * caller can compose the running headline from the BatchRegistry entry.
41
+ *
42
+ * Core HeartbeatTimer has no knowledge of BatchRegistry — it only invokes
43
+ * this callback if provided.
44
+ */
45
+ recordHeartbeat?: (tick: HeartbeatTickInfo) => void;
46
+ /** The batchId this timer belongs to. Required when recordHeartbeat is set. */
47
+ batchId?: string;
7
48
  }
8
49
  export interface TransitionFields {
9
50
  stage?: HeartbeatStage;
@@ -19,6 +60,8 @@ export declare class HeartbeatTimer {
19
60
  private readonly onProgress;
20
61
  private readonly intervalMs;
21
62
  private readonly parentModel;
63
+ private readonly _recordHeartbeat?;
64
+ private readonly _batchId?;
22
65
  private timer;
23
66
  private startTime;
24
67
  private started;
@@ -34,7 +77,14 @@ export declare class HeartbeatTimer {
34
77
  private toolCalls;
35
78
  private costUSD;
36
79
  private savedCostUSD;
80
+ private phaseChangeFrom;
81
+ private phaseChangeTo;
37
82
  constructor(onProgress: (event: ProgressEvent) => void, options: HeartbeatTimerOptions);
83
+ /**
84
+ * Returns a snapshot of the timer's current state for use by recordHeartbeat
85
+ * callbacks to compose the running headline.
86
+ */
87
+ getHeartbeatTickInfo(): HeartbeatTickInfo;
38
88
  start(stageCount: number): void;
39
89
  stop(): void;
40
90
  transition(fields: TransitionFields): void;
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../src/heartbeat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAUhD,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,aAAa,GAAG,aAAa,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAclH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiC;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IAGxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,eAAe,CAAqB;IAG5C,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,SAAS,CAAK;IAGtB,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,YAAY,CAAuB;gBAGzC,UAAU,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,EAC1C,OAAO,EAAE,qBAAqB;IAQhC,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAyB/B,IAAI,IAAI,IAAI;IAUZ,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IA0E1C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI;IAIzG,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAQ1C,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAOhF,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAMrE,OAAO,CAAC,IAAI;IA0BZ,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,iBAAiB;CAa1B"}
1
+ {"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../src/heartbeat.ts"],"names":[],"mappings":"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"}
package/dist/heartbeat.js CHANGED
@@ -20,6 +20,8 @@ export class HeartbeatTimer {
20
20
  onProgress;
21
21
  intervalMs;
22
22
  parentModel;
23
+ _recordHeartbeat;
24
+ _batchId;
23
25
  timer = null;
24
26
  startTime = 0;
25
27
  started = false;
@@ -38,11 +40,47 @@ export class HeartbeatTimer {
38
40
  // Cost
39
41
  costUSD = null;
40
42
  savedCostUSD = null;
43
+ // Most recent phase-change, surfaced via getHeartbeatTickInfo so callers can
44
+ // emit task_phase_change events. Cleared after each getHeartbeatTickInfo read.
45
+ phaseChangeFrom = null;
46
+ phaseChangeTo = null;
41
47
  constructor(onProgress, options) {
42
48
  this.onProgress = onProgress;
43
49
  this.provider = options.provider;
44
50
  this.parentModel = options.parentModel;
45
51
  this.intervalMs = options.intervalMs ?? 5000;
52
+ this._recordHeartbeat = options.recordHeartbeat;
53
+ this._batchId = options.batchId;
54
+ }
55
+ /**
56
+ * Returns a snapshot of the timer's current state for use by recordHeartbeat
57
+ * callbacks to compose the running headline.
58
+ */
59
+ getHeartbeatTickInfo() {
60
+ const phaseChange = this.phaseChangeFrom !== null && this.phaseChangeTo !== null
61
+ ? { from: this.phaseChangeFrom, to: this.phaseChangeTo }
62
+ : undefined;
63
+ // Consume the pending phase change so the next tick doesn't re-fire it.
64
+ this.phaseChangeFrom = null;
65
+ this.phaseChangeTo = null;
66
+ return {
67
+ batchId: this._batchId ?? '',
68
+ elapsedMs: this.startTime > 0 ? Date.now() - this.startTime : 0,
69
+ stage: this.stage,
70
+ stageIndex: this.stageIndex,
71
+ stageCount: this.stageCount,
72
+ reviewRound: this.reviewRound,
73
+ maxReviewRounds: this.maxReviewRounds,
74
+ provider: this.provider,
75
+ progress: {
76
+ filesRead: this.filesRead,
77
+ filesWritten: this.filesWritten,
78
+ toolCalls: this.toolCalls,
79
+ },
80
+ costUSD: this.costUSD,
81
+ savedCostUSD: this.savedCostUSD,
82
+ ...(phaseChange !== undefined && { phaseChange }),
83
+ };
46
84
  }
47
85
  start(stageCount) {
48
86
  // Clear any existing timer without emitting final heartbeat
@@ -99,8 +137,13 @@ export class HeartbeatTimer {
99
137
  // Apply stage with invariant enforcement
100
138
  if (fields.stage !== undefined) {
101
139
  const newStageIndex = fields.stageIndex ?? this.stageIndex;
140
+ const prevStage = this.stage;
102
141
  this.stage = fields.stage;
103
142
  this.stageIndex = newStageIndex;
143
+ if (prevStage !== fields.stage) {
144
+ this.phaseChangeFrom = prevStage;
145
+ this.phaseChangeTo = fields.stage;
146
+ }
104
147
  // Auto-clear review fields for implementing
105
148
  if (fields.stage === 'implementing') {
106
149
  this.reviewRound = undefined;
@@ -194,6 +237,11 @@ export class HeartbeatTimer {
194
237
  final,
195
238
  headline: this.composeHeadline(elapsed),
196
239
  });
240
+ // Push a tick snapshot so the server can recompose the running headline
241
+ // and call BatchRegistry.updateRunningHeadline on every tick.
242
+ if (this._recordHeartbeat) {
243
+ this._recordHeartbeat(this.getHeartbeatTickInfo());
244
+ }
197
245
  }
198
246
  composeHeadline(elapsed) {
199
247
  const prefix = `[${this.stageIndex}/${this.stageCount}] ${STAGE_LABELS[this.stage]}`;
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../src/heartbeat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../src/heartbeat.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,11 @@
1
- export { loadConfigFromFile, loadAuthToken } from './config/load.js';
1
+ export { loadConfigFromFile, loadAuthToken, collectInlineApiKeyOffenders } from './config/load.js';
2
2
  export { parseConfig, multiModelConfigSchema, serverConfigSchema } from './config/schema.js';
3
3
  export type { ServerConfig } from './config/schema.js';
4
4
  export type { ToolMode, SandboxPolicy, AgentType, AgentCapability, AgentConfig, Effort, CostTier, RunStatus, TaskSpec, ProviderConfig, CodexProviderConfig, ClaudeProviderConfig, OpenAICompatibleProviderConfig, MultiModelConfig, TokenUsage, RunResult, BatchTimings, BatchProgress, BatchAggregateCost, Provider, RunOptions, RunTasksRuntime, ProgressEvent, InternalRunnerEvent, EligibilityFailureCheck, EligibilityFailure, ProviderEligibility, BriefQualityWarning, BriefQualityPolicy, ReadinessResult, } from './types.js';
5
5
  export { ParsedStructuredReport } from './reporting/structured-report.js';
6
+ export { notApplicableSchema, notApplicable, isNotApplicable, type NotApplicable } from './reporting/not-applicable.js';
7
+ export { composeRunningHeadline, type RunningState, type RunningTask } from './reporting/compose-running-headline.js';
8
+ export { composeTerminalHeadline, type TerminalHeadlineInput } from './reporting/compose-terminal-headline.js';
6
9
  export { InMemoryContextBlockStore, ContextBlockNotFoundError, } from './context/context-block-store.js';
7
10
  export type { ContextBlockStore, RegisteredBlock, InMemoryContextBlockStoreOptions, } from './context/context-block-store.js';
8
11
  export { expandContextBlocks } from './context/expand-context-blocks.js';
@@ -14,7 +17,7 @@ export type { ProjectContext } from './project-context.js';
14
17
  export { runTasks } from './run-tasks.js';
15
18
  export type { RunTasksOptions } from './run-tasks.js';
16
19
  export { HeartbeatTimer } from './heartbeat.js';
17
- export type { HeartbeatTimerOptions, HeartbeatStage, TransitionFields } from './heartbeat.js';
20
+ export type { HeartbeatTimerOptions, HeartbeatStage, TransitionFields, HeartbeatTickInfo, } from './heartbeat.js';
18
21
  export { evaluateReadiness, hasScopePillar, hasInputsPillar, hasDoneConditionPillar, hasOutputContractPillar, detectOutsourcedDiscovery, detectBrittleLineAnchors, detectMixedEnvironmentActions, detectConcretePath, detectNamedCodeArtifact, detectReasonableLength, } from './readiness/readiness.js';
19
22
  export { resolveAgent } from './routing/resolve-agent.js';
20
23
  export type { ResolvedAgent } from './routing/resolve-agent.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,6 +1,9 @@
1
1
  // Config
2
- export { loadConfigFromFile, loadAuthToken } from './config/load.js';
2
+ export { loadConfigFromFile, loadAuthToken, collectInlineApiKeyOffenders } from './config/load.js';
3
3
  export { parseConfig, multiModelConfigSchema, serverConfigSchema } from './config/schema.js';
4
+ export { notApplicableSchema, notApplicable, isNotApplicable } from './reporting/not-applicable.js';
5
+ export { composeRunningHeadline } from './reporting/compose-running-headline.js';
6
+ export { composeTerminalHeadline } from './reporting/compose-terminal-headline.js';
4
7
  // Context blocks
5
8
  export { InMemoryContextBlockStore, ContextBlockNotFoundError, } from './context/context-block-store.js';
6
9
  export { expandContextBlocks } from './context/expand-context-blocks.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAsC7F,iBAAiB;AACjB,OAAO,EACL,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,kCAAkC,CAAC;AAM1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,kBAAkB;AAClB,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5D,YAAY;AACZ,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,YAAY;AACZ,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,YAAY;AACZ,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,6BAA6B,EAC7B,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAElC,mBAAmB;AACnB,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAErF,kBAAkB;AAClB,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAuB3D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEtF,iBAAiB;AACjB,cAAc,qBAAqB,CAAC;AAEpC,cAAc;AACd,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAqC7F,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,eAAe,EAAsB,MAAM,+BAA+B,CAAC;AACxH,OAAO,EAAE,sBAAsB,EAAuC,MAAM,yCAAyC,CAAC;AACtH,OAAO,EAAE,uBAAuB,EAA8B,MAAM,0CAA0C,CAAC;AAE/G,iBAAiB;AACjB,OAAO,EACL,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,kCAAkC,CAAC;AAM1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,WAAW;AACX,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,kBAAkB;AAClB,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5D,YAAY;AACZ,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,YAAY;AACZ,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAQhD,YAAY;AACZ,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,6BAA6B,EAC7B,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAElC,mBAAmB;AACnB,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAErF,kBAAkB;AAClB,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAuB3D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEtF,iBAAiB;AACjB,cAAc,qBAAqB,CAAC;AAEpC,cAAc;AACd,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1,16 @@
1
+ export interface RunningTask {
2
+ worker: string;
3
+ turn: number;
4
+ }
5
+ export interface RunningState {
6
+ tasksTotal: number;
7
+ tasksStarted: number;
8
+ tasksCompleted: number;
9
+ startedAt: number;
10
+ nowMs: number;
11
+ lastHeartbeatAt: number;
12
+ running: RunningTask[];
13
+ heartbeatIntervalMs?: number;
14
+ }
15
+ export declare function composeRunningHeadline(s: RunningState): string;
16
+ //# sourceMappingURL=compose-running-headline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compose-running-headline.d.ts","sourceRoot":"","sources":["../../src/reporting/compose-running-headline.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAID,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CA6B9D"}
@@ -0,0 +1,29 @@
1
+ const DEFAULT_HEARTBEAT_INTERVAL_MS = 15_000;
2
+ export function composeRunningHeadline(s) {
3
+ const tasksTotal = Math.max(0, s.tasksTotal);
4
+ const tasksStarted = Math.min(tasksTotal, Math.max(0, s.tasksStarted));
5
+ const tasksCompleted = Math.min(tasksStarted, Math.max(0, s.tasksCompleted));
6
+ const elapsedS = Math.max(0, Math.floor((s.nowMs - s.startedAt) / 1000));
7
+ const hbInterval = s.heartbeatIntervalMs ?? DEFAULT_HEARTBEAT_INTERVAL_MS;
8
+ const stallThresholdMs = 2 * hbInterval;
9
+ const sinceHeartbeatMs = s.lastHeartbeatAt > 0 ? Math.max(0, s.nowMs - s.lastHeartbeatAt) : 0;
10
+ const stalled = s.lastHeartbeatAt > 0 && sinceHeartbeatMs > stallThresholdMs;
11
+ const stallStr = stalled ? ` (stalled: no heartbeat for ${Math.floor(sinceHeartbeatMs / 1000)}s)` : '';
12
+ if (tasksTotal === 0) {
13
+ return `no tasks, ${elapsedS}s elapsed`;
14
+ }
15
+ if (tasksTotal === 1) {
16
+ if (tasksStarted === 0) {
17
+ return `1/1 queued, ${elapsedS}s elapsed`;
18
+ }
19
+ if (tasksCompleted === 1) {
20
+ return `1/1 complete, ${elapsedS}s elapsed`;
21
+ }
22
+ const w = s.running[0];
23
+ const workerStr = w ? `, worker: ${w.worker} (turn ${w.turn})` : '';
24
+ return `1/1 running, ${elapsedS}s elapsed${stallStr}${workerStr}`;
25
+ }
26
+ const nRunning = Math.max(0, tasksStarted - tasksCompleted);
27
+ return `${tasksCompleted}/${tasksTotal} complete, ${nRunning} running, ${elapsedS}s elapsed${stallStr}`;
28
+ }
29
+ //# sourceMappingURL=compose-running-headline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compose-running-headline.js","sourceRoot":"","sources":["../../src/reporting/compose-running-headline.ts"],"names":[],"mappings":"AAgBA,MAAM,6BAA6B,GAAG,MAAM,CAAC;AAE7C,MAAM,UAAU,sBAAsB,CAAC,CAAe;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IACvE,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;IAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,CAAC,CAAC,mBAAmB,IAAI,6BAA6B,CAAC;IAC1E,MAAM,gBAAgB,GAAG,CAAC,GAAG,UAAU,CAAC;IACxC,MAAM,gBAAgB,GAAG,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9F,MAAM,OAAO,GAAG,CAAC,CAAC,eAAe,GAAG,CAAC,IAAI,gBAAgB,GAAG,gBAAgB,CAAC;IAC7E,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,+BAA+B,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAEvG,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,aAAa,QAAQ,WAAW,CAAC;IAC1C,CAAC;IAED,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;QACrB,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,eAAe,QAAQ,WAAW,CAAC;QAC5C,CAAC;QACD,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,iBAAiB,QAAQ,WAAW,CAAC;QAC9C,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,UAAU,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,OAAO,gBAAgB,QAAQ,YAAY,QAAQ,GAAG,SAAS,EAAE,CAAC;IACpE,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,cAAc,CAAC,CAAC;IAC5D,OAAO,GAAG,cAAc,IAAI,UAAU,cAAc,QAAQ,aAAa,QAAQ,YAAY,QAAQ,EAAE,CAAC;AAC1G,CAAC"}
@@ -0,0 +1,8 @@
1
+ export interface TerminalHeadlineInput {
2
+ tool: string;
3
+ awaitingClarification: boolean;
4
+ tasksTotal: number;
5
+ tasksCompleted: number;
6
+ }
7
+ export declare function composeTerminalHeadline(input: TerminalHeadlineInput): string;
8
+ //# sourceMappingURL=compose-terminal-headline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compose-terminal-headline.d.ts","sourceRoot":"","sources":["../../src/reporting/compose-terminal-headline.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB,EAAE,OAAO,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAM5E"}
@@ -0,0 +1,10 @@
1
+ export function composeTerminalHeadline(input) {
2
+ const { tool, awaitingClarification, tasksTotal, tasksCompleted } = input;
3
+ if (awaitingClarification)
4
+ return `${tool}: awaiting clarification`;
5
+ if (tasksTotal <= 0)
6
+ return `${tool}: no tasks executed`;
7
+ const completed = Math.max(0, Math.min(tasksCompleted, tasksTotal));
8
+ return `${tool}: ${completed}/${tasksTotal} tasks complete`;
9
+ }
10
+ //# sourceMappingURL=compose-terminal-headline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compose-terminal-headline.js","sourceRoot":"","sources":["../../src/reporting/compose-terminal-headline.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,uBAAuB,CAAC,KAA4B;IAClE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAC1E,IAAI,qBAAqB;QAAE,OAAO,GAAG,IAAI,0BAA0B,CAAC;IACpE,IAAI,UAAU,IAAI,CAAC;QAAE,OAAO,GAAG,IAAI,qBAAqB,CAAC;IACzD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;IACpE,OAAO,GAAG,IAAI,KAAK,SAAS,IAAI,UAAU,iBAAiB,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ export declare const notApplicableSchema: z.ZodObject<{
3
+ kind: z.ZodLiteral<"not_applicable">;
4
+ reason: z.ZodString;
5
+ }, z.core.$strip>;
6
+ export type NotApplicable = z.infer<typeof notApplicableSchema>;
7
+ export declare function notApplicable(reason: string): NotApplicable;
8
+ export declare function isNotApplicable(v: unknown): v is NotApplicable;
9
+ //# sourceMappingURL=not-applicable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"not-applicable.d.ts","sourceRoot":"","sources":["../../src/reporting/not-applicable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;iBAG9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAE3D;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,aAAa,CAE9D"}
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+ export const notApplicableSchema = z.object({
3
+ kind: z.literal('not_applicable'),
4
+ reason: z.string().min(1),
5
+ });
6
+ export function notApplicable(reason) {
7
+ return { kind: 'not_applicable', reason };
8
+ }
9
+ export function isNotApplicable(v) {
10
+ return typeof v === 'object' && v !== null && v.kind === 'not_applicable';
11
+ }
12
+ //# sourceMappingURL=not-applicable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"not-applicable.js","sourceRoot":"","sources":["../../src/reporting/not-applicable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACjC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC1B,CAAC,CAAC;AAIH,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,CAAU;IACxC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAK,CAAmB,CAAC,IAAI,KAAK,gBAAgB,CAAC;AAC/F,CAAC"}
@@ -4,6 +4,26 @@ export type RunTasksProgressCallback = (taskIndex: number, event: ProgressEvent)
4
4
  export interface RunTasksOptions {
5
5
  onProgress?: RunTasksProgressCallback;
6
6
  runtime?: RunTasksRuntime;
7
+ /** Batch ID this run belongs to; threaded to HeartbeatTimer when set. */
8
+ batchId?: string;
9
+ /** Callback fired on every heartbeat tick with a state snapshot. */
10
+ recordHeartbeat?: (tick: import('./heartbeat.js').HeartbeatTickInfo) => void;
11
+ /**
12
+ * Optional DiagnosticLogger. When present AND `verbose` is true, the
13
+ * runner records per-tool-call + per-LLM-turn events for post-mortem
14
+ * diagnosis of slow tasks. Logger writes are a no-op if diagnostics.log=false,
15
+ * so passing it is always safe.
16
+ */
17
+ logger?: import('./diagnostics/disconnect-log.js').DiagnosticLogger;
18
+ /**
19
+ * Enable verbose emissions. When true, each tool call and LLM turn is
20
+ * streamed to `verboseStream` (default: process.stderr) so the operator
21
+ * sees the server's work live. Orthogonal to `diagnostics.log` — you
22
+ * can have live streaming without persisting a JSONL file.
23
+ */
24
+ verbose?: boolean;
25
+ /** Injectable stream target for verbose output. Defaults to process.stderr. */
26
+ verboseStream?: (line: string) => void;
7
27
  }
8
28
  export declare function runTasks(tasks: TaskSpec[], config: MultiModelConfig, options?: RunTasksOptions): Promise<RunResult[]>;
9
29
  //# sourceMappingURL=run-tasks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-tasks.d.ts","sourceRoot":"","sources":["../src/run-tasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,SAAS,EAET,QAAQ,EACR,gBAAgB,EAEhB,aAAa,EACb,eAAe,EAIhB,MAAM,YAAY,CAAC;AAqBpB,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,MAAM,EAAE,EACvB,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,MAAM,GAAG,SAAS,GACtB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA6C7B;AAED,MAAM,MAAM,wBAAwB,GAAG,CACrC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,aAAa,KACjB,IAAI,CAAC;AAEV,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AA0hBD,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,QAAQ,EAAE,EACjB,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,SAAS,EAAE,CAAC,CA+GtB"}
1
+ {"version":3,"file":"run-tasks.d.ts","sourceRoot":"","sources":["../src/run-tasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,SAAS,EAET,QAAQ,EACR,gBAAgB,EAEhB,aAAa,EACb,eAAe,EAIhB,MAAM,YAAY,CAAC;AAsBpB,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,MAAM,EAAE,EACvB,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,MAAM,GAAG,SAAS,GACtB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA6C7B;AAED,MAAM,MAAM,wBAAwB,GAAG,CACrC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,aAAa,KACjB,IAAI,CAAC;AAEV,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,gBAAgB,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC7E;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,iCAAiC,EAAE,gBAAgB,CAAC;IACpE;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAwmBD,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,QAAQ,EAAE,EACjB,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,SAAS,EAAE,CAAC,CAsHtB"}
package/dist/run-tasks.js CHANGED
@@ -124,7 +124,7 @@ function buildFallbackImplReport(result) {
124
124
  unresolved: [],
125
125
  };
126
126
  }
127
- async function executeReviewedLifecycle(task, resolved, config, taskIndex, onProgress) {
127
+ async function executeReviewedLifecycle(task, resolved, config, taskIndex, onProgress, heartbeatWiring, diagnostics) {
128
128
  const reviewPolicy = task.reviewPolicy ?? 'full';
129
129
  const otherSlot = resolved.slot === 'standard' ? 'complex' : 'standard';
130
130
  // Partition filePaths into output targets before the worker runs.
@@ -140,12 +140,44 @@ async function executeReviewedLifecycle(task, resolved, config, taskIndex, onPro
140
140
  const stageCount = reviewPolicy === 'off' ? 1 :
141
141
  reviewPolicy === 'spec_only' ? 3 :
142
142
  5;
143
+ const verbose = diagnostics?.verbose ?? false;
144
+ let lastStageSeen;
145
+ const verboseStreamRaw = verbose
146
+ ? (diagnostics?.verboseStream ?? ((line) => { process.stderr.write(line + '\n'); }))
147
+ : undefined;
148
+ const verboseBatchIdEarly = heartbeatWiring?.batchId;
149
+ const shortBatchEarly = verboseBatchIdEarly ? verboseBatchIdEarly.slice(0, 8) : '????????';
143
150
  const heartbeat = onProgress
144
- ? new HeartbeatTimer((event) => onProgress(taskIndex, event), { provider: resolved.provider.config.model, parentModel: task.parentModel })
151
+ ? new HeartbeatTimer((event) => {
152
+ // Detect stage transitions on the heartbeat progress stream. The
153
+ // authoritative phaseChange flag rides HeartbeatTickInfo (server
154
+ // logger path); this redundant detection is for the stderr stream
155
+ // because run-tasks doesn't see HeartbeatTickInfo directly.
156
+ if (verboseStreamRaw && event.kind === 'heartbeat' && event.stage !== lastStageSeen) {
157
+ if (lastStageSeen !== undefined) {
158
+ verboseStreamRaw(`[mmagent verbose] batch=${shortBatchEarly} task=${taskIndex} stage ${lastStageSeen} → ${event.stage}`);
159
+ }
160
+ lastStageSeen = event.stage;
161
+ }
162
+ onProgress(taskIndex, event);
163
+ }, {
164
+ provider: resolved.provider.config.model,
165
+ parentModel: task.parentModel,
166
+ ...(heartbeatWiring?.batchId !== undefined && { batchId: heartbeatWiring.batchId }),
167
+ ...(heartbeatWiring?.recordHeartbeat !== undefined && { recordHeartbeat: heartbeatWiring.recordHeartbeat }),
168
+ })
145
169
  : undefined;
146
170
  heartbeat?.start(stageCount);
147
171
  const implModel = resolved.provider.config.model;
148
172
  const progressCounters = { filesRead: 0, filesWritten: 0, toolCalls: 0 };
173
+ const verboseLogger = verbose && diagnostics?.logger ? diagnostics.logger : undefined;
174
+ const verboseBatchId = verboseBatchIdEarly;
175
+ const verboseStream = verboseStreamRaw;
176
+ const shortBatch = shortBatchEarly;
177
+ if (verboseStream) {
178
+ verboseStream(`[mmagent verbose] batch=${shortBatch} task=${taskIndex} start worker=${resolved.provider.config.model}`);
179
+ }
180
+ let prevEventAtMs = verbose ? Date.now() : 0;
149
181
  const wrappedOnProgress = onProgress
150
182
  ? (event) => {
151
183
  if (event.kind === 'tool_call') {
@@ -158,11 +190,47 @@ async function executeReviewedLifecycle(task, resolved, config, taskIndex, onPro
158
190
  progressCounters.filesWritten++;
159
191
  }
160
192
  heartbeat?.updateProgress(progressCounters.filesRead, progressCounters.filesWritten, progressCounters.toolCalls);
193
+ const now = verbose ? Date.now() : 0;
194
+ const sincePrevMs = verbose ? now - prevEventAtMs : 0;
195
+ if (verbose)
196
+ prevEventAtMs = now;
197
+ if (verboseLogger && verboseBatchId) {
198
+ verboseLogger.toolCall({
199
+ batchId: verboseBatchId,
200
+ taskIndex,
201
+ tool: event.toolSummary,
202
+ durationMs: sincePrevMs,
203
+ });
204
+ }
205
+ if (verboseStream) {
206
+ verboseStream(`[mmagent verbose] batch=${shortBatch} task=${taskIndex} tool=${event.toolSummary} +${sincePrevMs}ms`);
207
+ }
161
208
  }
162
209
  if (event.kind === 'turn_complete') {
163
210
  const costUSD = computeCostUSD(event.cumulativeInputTokens, event.cumulativeOutputTokens, resolved.provider.config);
164
211
  const savedCostUSD = computeSavedCostUSD(costUSD, event.cumulativeInputTokens, event.cumulativeOutputTokens, task.parentModel);
165
212
  heartbeat?.updateCost(costUSD, savedCostUSD);
213
+ const nowTurn = verbose ? Date.now() : 0;
214
+ const turnDurMs = verbose ? nowTurn - prevEventAtMs : 0;
215
+ if (verbose)
216
+ prevEventAtMs = nowTurn;
217
+ if (verboseLogger && verboseBatchId) {
218
+ verboseLogger.llmTurn({
219
+ batchId: verboseBatchId,
220
+ taskIndex,
221
+ turnIndex: progressCounters.toolCalls,
222
+ provider: resolved.provider.config.model,
223
+ inputTokens: event.cumulativeInputTokens,
224
+ outputTokens: event.cumulativeOutputTokens,
225
+ costUSD,
226
+ });
227
+ }
228
+ if (verboseStream) {
229
+ const costStr = costUSD !== null ? ` $${costUSD.toFixed(4)}` : '';
230
+ verboseStream(`[mmagent verbose] batch=${shortBatch} task=${taskIndex} ` +
231
+ `turn in=${event.cumulativeInputTokens} out=${event.cumulativeOutputTokens}${costStr} ` +
232
+ `+${turnDurMs}ms (${resolved.provider.config.model})`);
233
+ }
166
234
  }
167
235
  }
168
236
  : undefined;
@@ -554,7 +622,14 @@ export async function runTasks(tasks, config, options = {}) {
554
622
  return Promise.resolve(refused);
555
623
  }
556
624
  const readiness = readinessResults[index];
557
- return executeReviewedLifecycle(r.task, r.resolved, config, index, options.onProgress).then((result) => {
625
+ return executeReviewedLifecycle(r.task, r.resolved, config, index, options.onProgress, {
626
+ batchId: options.batchId,
627
+ recordHeartbeat: options.recordHeartbeat,
628
+ }, {
629
+ logger: options.logger,
630
+ verbose: options.verbose ?? config.diagnostics?.verbose ?? false,
631
+ verboseStream: options.verboseStream,
632
+ }).then((result) => {
558
633
  if (readiness && readiness.briefQualityWarnings.length > 0) {
559
634
  return { ...result, briefQualityWarnings: readiness.briefQualityWarnings };
560
635
  }