@zhixuan92/multi-model-agent-core 4.5.4 → 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.
- package/README.md +8 -3
- package/dist/escalation/delegate-with-escalation.d.ts +2 -2
- package/dist/escalation/delegate-with-escalation.d.ts.map +1 -1
- package/dist/escalation/delegate-with-escalation.js +11 -17
- package/dist/escalation/delegate-with-escalation.js.map +1 -1
- package/dist/escalation/fallback-helpers.d.ts +5 -5
- package/dist/escalation/fallback-helpers.d.ts.map +1 -1
- package/dist/escalation/fallback-helpers.js +5 -3
- package/dist/escalation/fallback-helpers.js.map +1 -1
- package/dist/events/event-builder.d.ts +36 -5
- package/dist/events/event-builder.d.ts.map +1 -1
- package/dist/events/event-builder.js +173 -31
- package/dist/events/event-builder.js.map +1 -1
- package/dist/events/observability-events.d.ts +6 -0
- package/dist/events/observability-events.d.ts.map +1 -1
- package/dist/events/observability-events.js +5 -0
- package/dist/events/observability-events.js.map +1 -1
- package/dist/events/telemetry-types.d.ts +10 -0
- package/dist/events/telemetry-types.d.ts.map +1 -1
- package/dist/events/verbose-log-channel.d.ts +7 -7
- package/dist/events/verbose-log-channel.js +10 -10
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/lifecycle/annotate-parser.d.ts +9 -0
- package/dist/lifecycle/annotate-parser.d.ts.map +1 -0
- package/dist/lifecycle/annotate-parser.js +83 -0
- package/dist/lifecycle/annotate-parser.js.map +1 -0
- package/dist/lifecycle/annotate-prompts.d.ts +9 -0
- package/dist/lifecycle/annotate-prompts.d.ts.map +1 -0
- package/dist/lifecycle/annotate-prompts.js +86 -0
- package/dist/lifecycle/annotate-prompts.js.map +1 -0
- package/dist/lifecycle/auto-register-context-block.d.ts +2 -2
- package/dist/lifecycle/auto-register-context-block.d.ts.map +1 -1
- package/dist/lifecycle/auto-register-context-block.js.map +1 -1
- package/dist/lifecycle/build-cancelled-result.d.ts +11 -0
- package/dist/lifecycle/build-cancelled-result.d.ts.map +1 -0
- package/dist/lifecycle/build-cancelled-result.js +27 -0
- package/dist/lifecycle/build-cancelled-result.js.map +1 -0
- package/dist/lifecycle/executor-output-types.d.ts +2 -2
- package/dist/lifecycle/executor-output-types.d.ts.map +1 -1
- package/dist/lifecycle/fallback-report.d.ts +2 -2
- package/dist/lifecycle/fallback-report.d.ts.map +1 -1
- package/dist/lifecycle/fallback-report.js.map +1 -1
- package/dist/lifecycle/findings-parser.d.ts +2 -0
- package/dist/lifecycle/findings-parser.d.ts.map +1 -1
- package/dist/lifecycle/findings-parser.js +9 -4
- package/dist/lifecycle/findings-parser.js.map +1 -1
- package/dist/lifecycle/git-toplevel.d.ts +12 -0
- package/dist/lifecycle/git-toplevel.d.ts.map +1 -0
- package/dist/lifecycle/git-toplevel.js +49 -0
- package/dist/lifecycle/git-toplevel.js.map +1 -0
- package/dist/lifecycle/handlers/annotator.d.ts +2 -1
- package/dist/lifecycle/handlers/annotator.d.ts.map +1 -1
- package/dist/lifecycle/handlers/annotator.js +225 -7
- package/dist/lifecycle/handlers/annotator.js.map +1 -1
- package/dist/lifecycle/handlers/baseline-handlers.d.ts +10 -5
- package/dist/lifecycle/handlers/baseline-handlers.d.ts.map +1 -1
- package/dist/lifecycle/handlers/baseline-handlers.js +206 -316
- package/dist/lifecycle/handlers/baseline-handlers.js.map +1 -1
- package/dist/lifecycle/handlers/enrich-runtime-result.d.ts +3 -0
- package/dist/lifecycle/handlers/enrich-runtime-result.d.ts.map +1 -0
- package/dist/lifecycle/handlers/enrich-runtime-result.js +191 -0
- package/dist/lifecycle/handlers/enrich-runtime-result.js.map +1 -0
- package/dist/lifecycle/handlers/git-commit-handler.d.ts +3 -2
- package/dist/lifecycle/handlers/git-commit-handler.d.ts.map +1 -1
- package/dist/lifecycle/handlers/git-commit-handler.js +139 -110
- package/dist/lifecycle/handlers/git-commit-handler.js.map +1 -1
- package/dist/lifecycle/handlers/prepare-execution-context-handler.d.ts +7 -13
- package/dist/lifecycle/handlers/prepare-execution-context-handler.d.ts.map +1 -1
- package/dist/lifecycle/handlers/prepare-execution-context-handler.js +72 -49
- package/dist/lifecycle/handlers/prepare-execution-context-handler.js.map +1 -1
- package/dist/lifecycle/handlers/register-context-block-handlers.d.ts +2 -1
- package/dist/lifecycle/handlers/register-context-block-handlers.d.ts.map +1 -1
- package/dist/lifecycle/handlers/register-context-block-handlers.js +35 -14
- package/dist/lifecycle/handlers/register-context-block-handlers.js.map +1 -1
- package/dist/lifecycle/handlers/review-handler.d.ts +2 -1
- package/dist/lifecycle/handlers/review-handler.d.ts.map +1 -1
- package/dist/lifecycle/handlers/review-handler.js +152 -154
- package/dist/lifecycle/handlers/review-handler.js.map +1 -1
- package/dist/lifecycle/handlers/rework-handler.d.ts +2 -1
- package/dist/lifecycle/handlers/rework-handler.d.ts.map +1 -1
- package/dist/lifecycle/handlers/rework-handler.js +62 -14
- package/dist/lifecycle/handlers/rework-handler.js.map +1 -1
- package/dist/lifecycle/handlers/task-executor.d.ts +5 -4
- package/dist/lifecycle/handlers/task-executor.d.ts.map +1 -1
- package/dist/lifecycle/handlers/task-executor.js +153 -74
- package/dist/lifecycle/handlers/task-executor.js.map +1 -1
- package/dist/lifecycle/handlers/terminal-handlers.d.ts +22 -0
- package/dist/lifecycle/handlers/terminal-handlers.d.ts.map +1 -1
- package/dist/lifecycle/handlers/terminal-handlers.js +86 -5
- package/dist/lifecycle/handlers/terminal-handlers.js.map +1 -1
- package/dist/lifecycle/lifecycle-context.d.ts +31 -3
- package/dist/lifecycle/lifecycle-context.d.ts.map +1 -1
- package/dist/lifecycle/lifecycle-dispatcher.d.ts +18 -19
- package/dist/lifecycle/lifecycle-dispatcher.d.ts.map +1 -1
- package/dist/lifecycle/lifecycle-dispatcher.js +38 -22
- package/dist/lifecycle/lifecycle-dispatcher.js.map +1 -1
- package/dist/lifecycle/lifecycle-driver.d.ts +15 -8
- package/dist/lifecycle/lifecycle-driver.d.ts.map +1 -1
- package/dist/lifecycle/lifecycle-driver.js +110 -29
- package/dist/lifecycle/lifecycle-driver.js.map +1 -1
- package/dist/lifecycle/merge-stage-stats.d.ts +3 -3
- package/dist/lifecycle/merge-stage-stats.d.ts.map +1 -1
- package/dist/lifecycle/merge-stage-stats.js +2 -2
- package/dist/lifecycle/merge-stage-stats.js.map +1 -1
- package/dist/lifecycle/perform-implementation.d.ts +3 -0
- package/dist/lifecycle/perform-implementation.d.ts.map +1 -0
- package/dist/lifecycle/perform-implementation.js +264 -0
- package/dist/lifecycle/perform-implementation.js.map +1 -0
- package/dist/lifecycle/repo-hygiene.d.ts +14 -0
- package/dist/lifecycle/repo-hygiene.d.ts.map +1 -0
- package/dist/lifecycle/repo-hygiene.js +71 -0
- package/dist/lifecycle/repo-hygiene.js.map +1 -0
- package/dist/lifecycle/shared-compute.d.ts +4 -4
- package/dist/lifecycle/shared-compute.d.ts.map +1 -1
- package/dist/lifecycle/shared-compute.js +1 -1
- package/dist/lifecycle/shared-compute.js.map +1 -1
- package/dist/lifecycle/stage-io.d.ts +139 -0
- package/dist/lifecycle/stage-io.d.ts.map +1 -0
- package/dist/lifecycle/stage-io.js +20 -0
- package/dist/lifecycle/stage-io.js.map +1 -0
- package/dist/lifecycle/stage-plan-builder.d.ts +3 -3
- package/dist/lifecycle/stage-plan-builder.d.ts.map +1 -1
- package/dist/lifecycle/stage-plan-builder.js +157 -128
- package/dist/lifecycle/stage-plan-builder.js.map +1 -1
- package/dist/lifecycle/stage-plan-types.d.ts +5 -21
- package/dist/lifecycle/stage-plan-types.d.ts.map +1 -1
- package/dist/lifecycle/stage-progression.d.ts +3 -15
- package/dist/lifecycle/stage-progression.d.ts.map +1 -1
- package/dist/lifecycle/stage-progression.js +48 -91
- package/dist/lifecycle/stage-progression.js.map +1 -1
- package/dist/lifecycle/task-completion-summary.d.ts +2 -2
- package/dist/lifecycle/task-completion-summary.d.ts.map +1 -1
- package/dist/lifecycle/task-completion-summary.js +0 -6
- package/dist/lifecycle/task-completion-summary.js.map +1 -1
- package/dist/lifecycle/task-executor.d.ts +23 -0
- package/dist/lifecycle/task-executor.d.ts.map +1 -1
- package/dist/lifecycle/task-executor.js +77 -5
- package/dist/lifecycle/task-executor.js.map +1 -1
- package/dist/lifecycle/task-grouping.d.ts +19 -0
- package/dist/lifecycle/task-grouping.d.ts.map +1 -0
- package/dist/lifecycle/task-grouping.js +48 -0
- package/dist/lifecycle/task-grouping.js.map +1 -0
- package/dist/lifecycle/task-runner.d.ts +20 -7
- package/dist/lifecycle/task-runner.d.ts.map +1 -1
- package/dist/lifecycle/task-runner.js +42 -278
- package/dist/lifecycle/task-runner.js.map +1 -1
- package/dist/lifecycle/tool-config-types.d.ts +9 -0
- package/dist/lifecycle/tool-config-types.d.ts.map +1 -1
- package/dist/lifecycle/worker-output-contract.d.ts +9 -15
- package/dist/lifecycle/worker-output-contract.d.ts.map +1 -1
- package/dist/lifecycle/worker-output-contract.js +45 -30
- package/dist/lifecycle/worker-output-contract.js.map +1 -1
- package/dist/providers/assemble-run-result.d.ts +3 -3
- package/dist/providers/assemble-run-result.d.ts.map +1 -1
- package/dist/providers/assemble-run-result.js +20 -9
- package/dist/providers/assemble-run-result.js.map +1 -1
- package/dist/providers/claude-session.d.ts.map +1 -1
- package/dist/providers/claude-session.js +1 -0
- package/dist/providers/claude-session.js.map +1 -1
- package/dist/providers/claude.js.map +1 -1
- package/dist/providers/codex-cli-launch.js +1 -1
- package/dist/providers/codex-cli-launch.js.map +1 -1
- package/dist/providers/codex-cli-session.d.ts +4 -1
- package/dist/providers/codex-cli-session.d.ts.map +1 -1
- package/dist/providers/codex-cli-session.js +73 -46
- package/dist/providers/codex-cli-session.js.map +1 -1
- package/dist/providers/codex.js.map +1 -1
- package/dist/providers/index.d.ts +1 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +1 -0
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/normalize-claude.d.ts +2 -0
- package/dist/providers/normalize-claude.d.ts.map +1 -1
- package/dist/providers/normalize-claude.js +1 -0
- package/dist/providers/normalize-claude.js.map +1 -1
- package/dist/providers/run-annotator-turn.d.ts +24 -0
- package/dist/providers/run-annotator-turn.d.ts.map +1 -0
- package/dist/providers/run-annotator-turn.js +43 -0
- package/dist/providers/run-annotator-turn.js.map +1 -0
- package/dist/providers/run-worker-turn.d.ts +26 -0
- package/dist/providers/run-worker-turn.d.ts.map +1 -0
- package/dist/providers/run-worker-turn.js +58 -0
- package/dist/providers/run-worker-turn.js.map +1 -0
- package/dist/providers/runner-types.d.ts +1 -1
- package/dist/providers/runner-types.d.ts.map +1 -1
- package/dist/reporting/headline-composer.d.ts +3 -3
- package/dist/reporting/headline-composer.d.ts.map +1 -1
- package/dist/review/index.d.ts +4 -3
- package/dist/review/index.d.ts.map +1 -1
- package/dist/review/index.js +7 -4
- package/dist/review/index.js.map +1 -1
- package/dist/review/parse-review-report.d.ts +7 -1
- package/dist/review/parse-review-report.d.ts.map +1 -1
- package/dist/review/parse-review-report.js +13 -21
- package/dist/review/parse-review-report.js.map +1 -1
- package/dist/review/review-verdict-mapping.d.ts +3 -3
- package/dist/review/review-verdict-mapping.d.ts.map +1 -1
- package/dist/review/review-verdict-mapping.js +1 -1
- package/dist/review/review-verdict-mapping.js.map +1 -1
- package/dist/review/run-reviewer.d.ts +40 -0
- package/dist/review/run-reviewer.d.ts.map +1 -0
- package/dist/review/run-reviewer.js +54 -0
- package/dist/review/run-reviewer.js.map +1 -0
- package/dist/review/templates/quality-review.d.ts +5 -0
- package/dist/review/templates/quality-review.d.ts.map +1 -1
- package/dist/review/templates/quality-review.js +35 -25
- package/dist/review/templates/quality-review.js.map +1 -1
- package/dist/review/templates/spec-review.d.ts +6 -0
- package/dist/review/templates/spec-review.d.ts.map +1 -1
- package/dist/review/templates/spec-review.js +36 -8
- package/dist/review/templates/spec-review.js.map +1 -1
- package/dist/stores/batch-cache.d.ts +3 -3
- package/dist/stores/batch-cache.d.ts.map +1 -1
- package/dist/stores/batch-cache.js.map +1 -1
- package/dist/stores/batch-registry.d.ts +31 -0
- package/dist/stores/batch-registry.d.ts.map +1 -1
- package/dist/stores/batch-registry.js +12 -0
- package/dist/stores/batch-registry.js.map +1 -1
- package/dist/tools/debug/tool-config.js +1 -1
- package/dist/tools/debug/tool-config.js.map +1 -1
- package/dist/tools/delegate/tool-config.d.ts.map +1 -1
- package/dist/tools/delegate/tool-config.js +3 -1
- package/dist/tools/delegate/tool-config.js.map +1 -1
- package/dist/tools/execute-plan/tool-config.d.ts.map +1 -1
- package/dist/tools/execute-plan/tool-config.js +3 -1
- package/dist/tools/execute-plan/tool-config.js.map +1 -1
- package/dist/tools/investigate/tool-config.js +1 -1
- package/dist/tools/investigate/tool-config.js.map +1 -1
- package/dist/tools/retry/tool-config.js.map +1 -1
- package/dist/types/run-result.d.ts +164 -213
- package/dist/types/run-result.d.ts.map +1 -1
- package/dist/types/run-result.js +17 -0
- package/dist/types/run-result.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/lifecycle/handlers/derive-terminal-status.d.ts +0 -10
- package/dist/lifecycle/handlers/derive-terminal-status.d.ts.map +0 -1
- package/dist/lifecycle/handlers/derive-terminal-status.js +0 -35
- package/dist/lifecycle/handlers/derive-terminal-status.js.map +0 -1
- package/dist/lifecycle/handlers/files-written-cross-check.d.ts +0 -27
- package/dist/lifecycle/handlers/files-written-cross-check.d.ts.map +0 -1
- package/dist/lifecycle/handlers/files-written-cross-check.js +0 -91
- package/dist/lifecycle/handlers/files-written-cross-check.js.map +0 -1
- package/dist/lifecycle/handlers/verify-stage.d.ts +0 -37
- package/dist/lifecycle/handlers/verify-stage.d.ts.map +0 -1
- package/dist/lifecycle/handlers/verify-stage.js +0 -208
- package/dist/lifecycle/handlers/verify-stage.js.map +0 -1
- package/dist/review/default-engines.d.ts +0 -3
- package/dist/review/default-engines.d.ts.map +0 -1
- package/dist/review/default-engines.js +0 -22
- package/dist/review/default-engines.js.map +0 -1
- package/dist/review/reviewer-engine.d.ts +0 -53
- package/dist/review/reviewer-engine.d.ts.map +0 -1
- package/dist/review/reviewer-engine.js +0 -47
- package/dist/review/reviewer-engine.js.map +0 -1
- package/dist/review/reviewer-output-parser.d.ts +0 -12
- package/dist/review/reviewer-output-parser.d.ts.map +0 -1
- package/dist/review/reviewer-output-parser.js +0 -213
- package/dist/review/reviewer-output-parser.js.map +0 -1
- package/dist/review/reviewer-prompt-builder.d.ts +0 -21
- package/dist/review/reviewer-prompt-builder.d.ts.map +0 -1
- package/dist/review/reviewer-prompt-builder.js +0 -22
- package/dist/review/reviewer-prompt-builder.js.map +0 -1
- package/dist/review/templates/annotate-completion.d.ts +0 -12
- package/dist/review/templates/annotate-completion.d.ts.map +0 -1
- package/dist/review/templates/annotate-completion.js +0 -72
- package/dist/review/templates/annotate-completion.js.map +0 -1
|
@@ -50,7 +50,7 @@ export function emitTaskTerminalHandler(state) {
|
|
|
50
50
|
const ss = last?.stageStats;
|
|
51
51
|
// A11.2: compute actualCostUSD as the sum of every stage's costUSD.
|
|
52
52
|
// costUSD and totalCostUSD are back-compat aliases for the same value.
|
|
53
|
-
// costDeltaVsMainUSD comes from the top-level cost field on
|
|
53
|
+
// costDeltaVsMainUSD comes from the top-level cost field on RuntimeRunResult.
|
|
54
54
|
let actualCostUSD = null;
|
|
55
55
|
let costDeltaVsMainUSD = null;
|
|
56
56
|
if (ss) {
|
|
@@ -88,7 +88,7 @@ export function emitTaskTerminalHandler(state) {
|
|
|
88
88
|
if (filesWrittenTotal === 0)
|
|
89
89
|
filesWrittenTotal = Array.isArray(last?.filesWritten) ? last.filesWritten.length : 0;
|
|
90
90
|
// Emit a per-stage map so consumers see the breakdown without unpacking
|
|
91
|
-
//
|
|
91
|
+
// RuntimeRunResult. Each entry: stage -> { inputTokens, outputTokens, costUSD,
|
|
92
92
|
// turnCount, toolCallCount, durationMs, tier, model, verdict? }.
|
|
93
93
|
const stagesMap = {};
|
|
94
94
|
if (ss) {
|
|
@@ -209,6 +209,10 @@ export async function recordTaskCompletedHandler(state) {
|
|
|
209
209
|
realFilesChanged: realFiles.files, // NEW — wire the computed list
|
|
210
210
|
client: ctx.client ?? '',
|
|
211
211
|
mainModel: ctx.mainModel ?? null,
|
|
212
|
+
// v5: thread state.gates so the wire builder can read each stage's
|
|
213
|
+
// canonical telemetry (durationMs / costUSD / turnsUsed) from the gate
|
|
214
|
+
// instead of relying solely on the legacy mergeStageStats mirror.
|
|
215
|
+
...(state.gates && { gates: state.gates }),
|
|
212
216
|
...(task.reviewPolicy !== undefined && { reviewPolicy: task.reviewPolicy }),
|
|
213
217
|
});
|
|
214
218
|
}
|
|
@@ -218,7 +222,7 @@ export async function recordTaskCompletedHandler(state) {
|
|
|
218
222
|
state.taskCompletedRecorded = true;
|
|
219
223
|
}
|
|
220
224
|
/**
|
|
221
|
-
* Synthesize an `implementing` stage entry from top-level
|
|
225
|
+
* Synthesize an `implementing` stage entry from top-level RuntimeRunResult fields
|
|
222
226
|
* when the per-stage tracker hasn't populated it. Without this, the wire
|
|
223
227
|
* event ships with `stages: []` for every task, which violates the backend's
|
|
224
228
|
* R2.1 invariant ("empty stages only allowed for brief_too_vague|error")
|
|
@@ -238,8 +242,8 @@ function ensureImplementingStage(rr, ctx) {
|
|
|
238
242
|
if (rr.models === undefined && fallbackModel !== null) {
|
|
239
243
|
rr.models = {
|
|
240
244
|
implementer: fallbackModel,
|
|
241
|
-
specReviewer:
|
|
242
|
-
qualityReviewer:
|
|
245
|
+
specReviewer: undefined,
|
|
246
|
+
qualityReviewer: undefined,
|
|
243
247
|
};
|
|
244
248
|
}
|
|
245
249
|
const existing = (rr.stageStats?.implementing);
|
|
@@ -265,6 +269,7 @@ function ensureImplementingStage(rr, ctx) {
|
|
|
265
269
|
toolCallCount: Array.isArray(rr.toolCalls) ? rr.toolCalls.length : 0,
|
|
266
270
|
filesReadCount: Array.isArray(rr.filesRead) ? rr.filesRead.length : 0,
|
|
267
271
|
filesWrittenCount: Array.isArray(rr.filesWritten) ? rr.filesWritten.length : 0,
|
|
272
|
+
directoriesListed: 0,
|
|
268
273
|
};
|
|
269
274
|
rr.stageStats = {
|
|
270
275
|
...(rr.stageStats ?? {}),
|
|
@@ -291,4 +296,80 @@ export async function flushTelemetryHandler(state) {
|
|
|
291
296
|
}
|
|
292
297
|
state.telemetryFlushed = true;
|
|
293
298
|
}
|
|
299
|
+
/**
|
|
300
|
+
* v5 unified `terminalHandler` — single entry point that runs the five
|
|
301
|
+
* terminal side effects in idempotency-safe order and returns the
|
|
302
|
+
* `StageGate<TerminalPayload>` the v5 driver expects.
|
|
303
|
+
*
|
|
304
|
+
* The five sub-handlers above are this function's building blocks: one per
|
|
305
|
+
* side effect, kept individually exported so each can be unit-tested in
|
|
306
|
+
* isolation (tests/lifecycle/handlers/terminal-handlers.test.ts) and so
|
|
307
|
+
* observability AC tests can exercise per-side-effect failures
|
|
308
|
+
* (tests/acceptance/stage-io-observability.test.ts). The unified
|
|
309
|
+
* `terminalHandler` is what STAGE_PLAN's `terminal` stage actually invokes;
|
|
310
|
+
* it sequences the five sub-handlers in idempotency-safe order and folds
|
|
311
|
+
* their state-slot guards into the TerminalPayload shape. Per spec §4.7 the side-effect map carries one
|
|
312
|
+
* boolean per side effect — true = succeeded at least once for this state
|
|
313
|
+
* instance; false = attempted-and-failed or never-attempted-because-context-
|
|
314
|
+
* missing.
|
|
315
|
+
*
|
|
316
|
+
* Idempotency: re-invocation MUST be safe and return the same payload (each
|
|
317
|
+
* sub-handler short-circuits on its state-slot guard, e.g. `state.terminalBlockId`).
|
|
318
|
+
*/
|
|
319
|
+
export async function terminalHandler(state) {
|
|
320
|
+
const t0 = Date.now();
|
|
321
|
+
const flags = {
|
|
322
|
+
terminalBlockId: null,
|
|
323
|
+
telemetryFlushed: false,
|
|
324
|
+
batchRegistryPersisted: false,
|
|
325
|
+
taskTerminalEmitted: false,
|
|
326
|
+
projectCleanupTicked: false,
|
|
327
|
+
};
|
|
328
|
+
try {
|
|
329
|
+
registerTerminalBlockHandler(state);
|
|
330
|
+
flags.terminalBlockId = state.terminalBlockId ?? null;
|
|
331
|
+
}
|
|
332
|
+
catch {
|
|
333
|
+
/* leave null on failure */
|
|
334
|
+
}
|
|
335
|
+
try {
|
|
336
|
+
await flushTelemetryHandler(state);
|
|
337
|
+
flags.telemetryFlushed = state.telemetryFlushed === true;
|
|
338
|
+
}
|
|
339
|
+
catch {
|
|
340
|
+
/* leave false */
|
|
341
|
+
}
|
|
342
|
+
try {
|
|
343
|
+
persistToBatchRegistryHandler(state);
|
|
344
|
+
flags.batchRegistryPersisted = state.batchRegistryPersisted === true;
|
|
345
|
+
}
|
|
346
|
+
catch {
|
|
347
|
+
/* leave false */
|
|
348
|
+
}
|
|
349
|
+
try {
|
|
350
|
+
emitTaskTerminalHandler(state);
|
|
351
|
+
flags.taskTerminalEmitted = state.taskTerminalEmitted === true;
|
|
352
|
+
}
|
|
353
|
+
catch {
|
|
354
|
+
/* leave false */
|
|
355
|
+
}
|
|
356
|
+
try {
|
|
357
|
+
await recordTaskCompletedHandler(state);
|
|
358
|
+
flags.projectCleanupTicked = true; // record-completed doubles as project activity tick
|
|
359
|
+
}
|
|
360
|
+
catch {
|
|
361
|
+
/* leave false */
|
|
362
|
+
}
|
|
363
|
+
return {
|
|
364
|
+
outcome: 'advance',
|
|
365
|
+
payload: flags,
|
|
366
|
+
telemetry: {
|
|
367
|
+
stageLabel: 'terminal',
|
|
368
|
+
durationMs: Date.now() - t0,
|
|
369
|
+
costUSD: 0,
|
|
370
|
+
turnsUsed: 0,
|
|
371
|
+
stopReason: 'normal',
|
|
372
|
+
},
|
|
373
|
+
};
|
|
374
|
+
}
|
|
294
375
|
//# sourceMappingURL=terminal-handlers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-handlers.js","sourceRoot":"","sources":["../../../src/lifecycle/handlers/terminal-handlers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"terminal-handlers.js","sourceRoot":"","sources":["../../../src/lifecycle/handlers/terminal-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AA+BtD,MAAM,UAAU,4BAA4B,CAAC,KAAqB;IAChE,IAAI,KAAK,CAAC,eAAe;QAAE,OAAO;IAClC,MAAM,GAAG,GAAG,KAAK,CAAC,gBAEL,CAAC;IACd,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,MAAM,IAAI,GAAG,KAAK,CAAC,aAA6C,CAAC;IACjE,IAAI,CAAC,IAAI;QAAE,OAAO;IAElB,MAAM,EAAE,GAAG,YAAY,UAAU,EAAE,EAAE,CAAC;IACtC,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC;IAE3B,MAAM,KAAK,GAAG,GAAG,CAAC,iBAAiB,CAAC;IACpC,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QAClD,IAAI,CAAC;YACH,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,qEAAqE;YACrE,8DAA8D;QAChE,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAqB;IAC3D,IAAI,KAAK,CAAC,mBAAmB;QAAE,OAAO;IACtC,MAAM,GAAG,GAAG,KAAK,CAAC,gBAAgB,CAAC;IACnC,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;IACpB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC,iDAAiD;QACnF,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,aAA6C,CAAC;IAEjE,8EAA8E;IAC9E,2EAA2E;IAC3E,2EAA2E;IAC3E,gEAAgE;IAChE,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,MAAM,EAAE,GAAI,IAA6E,EAAE,UAAU,CAAC;IAEtG,oEAAoE;IACpE,uEAAuE;IACvE,8EAA8E;IAC9E,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,IAAI,kBAAkB,GAAkB,IAAI,CAAC;IAE7C,IAAI,EAAE,EAAE,CAAC;QACP,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,KAAK,IAAI,CAAE,KAAK,CAAC,SAAS,CAAyB;gBAAE,SAAS;YACnE,WAAW,IAAK,KAAK,CAAC,aAAa,CAA+B,IAAI,CAAC,CAAC;YACxE,YAAY,IAAK,KAAK,CAAC,cAAc,CAA+B,IAAI,CAAC,CAAC;YAC1E,gBAAgB,IAAK,KAAK,CAAC,kBAAkB,CAA+B,IAAI,CAAC,CAAC;YAClF,mBAAmB,IAAK,KAAK,CAAC,qBAAqB,CAA+B,IAAI,CAAC,CAAC;YACxF,cAAc,IAAK,KAAK,CAAC,eAAe,CAA+B,IAAI,CAAC,CAAC;YAC7E,UAAU,IAAK,KAAK,CAAC,WAAW,CAA+B,IAAI,CAAC,CAAC;YACrE,cAAc,IAAK,KAAK,CAAC,gBAAgB,CAA+B,IAAI,CAAC,CAAC;YAC9E,iBAAiB,IAAK,KAAK,CAAC,mBAAmB,CAA+B,IAAI,CAAC,CAAC;YACpF,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAA8B,CAAC;YAChE,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAClD,aAAa,GAAG,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;YACnD,CAAC;QACH,CAAC;QACD,kBAAkB,GAAI,IAA0D,EAAE,IAAI,EAAE,kBAAkB,IAAI,IAAI,CAAC;IACrH,CAAC;IACD,0EAA0E;IAC1E,IAAI,WAAW,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,IAAI,IAAI,EAAE,KAAK,EAAE,CAAC;QAC3D,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;QAC1C,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;QAC5C,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,CAAC;QACpD,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,UAAU,KAAK,CAAC;QAAE,UAAU,GAAG,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC;IACpD,IAAI,cAAc,KAAK,CAAC;QAAE,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACvG,IAAI,cAAc,KAAK,CAAC;QAAE,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACvG,IAAI,iBAAiB,KAAK,CAAC;QAAE,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnH,wEAAwE;IACxE,+EAA+E;IAC/E,iEAAiE;IACjE,MAAM,SAAS,GAA4C,EAAE,CAAC;IAC9D,IAAI,EAAE,EAAE,CAAC;QACP,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC,KAAK,IAAI,CAAE,KAAK,CAAC,SAAS,CAAyB;gBAAE,SAAS;YACnE,SAAS,CAAC,IAAI,CAAC,GAAG;gBAChB,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC;gBACtC,YAAY,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;gBACxC,gBAAgB,EAAE,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBAChD,mBAAmB,EAAE,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC;gBACtD,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI;gBACjC,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;gBAClC,aAAa,EAAE,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC1C,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI,IAAI;gBACvC,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,IAAI;gBACrC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI;gBAC7B,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpE,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;aAC9E,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAEzC,GAAG,CAAC,IAAI,CAAC;QACP,KAAK,EAAE,gBAAgB;QACvB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,OAAO;QAC/B,YAAY,EAAE,IAAI,EAAE,YAAY,IAAI,IAAI;QACxC,KAAK,EAAE,UAAU;QACjB,UAAU,EAAE,IAAI,EAAE,UAAU,IAAI,IAAI;QACpC,SAAS,EAAE,cAAc;QACzB,YAAY,EAAE,iBAAiB;QAC/B,SAAS,EAAE,cAAc;QACzB,WAAW;QACX,YAAY;QACZ,gBAAgB;QAChB,mBAAmB;QACnB,yEAAyE;QACzE,2EAA2E;QAC3E,uEAAuE;QACvE,mEAAmE;QACnE,8EAA8E;QAC9E,aAAa;QACb,OAAO,EAAE,aAAa;QACtB,YAAY,EAAE,aAAa;QAC3B,kBAAkB;QAClB,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,KAAK;QACrB,MAAM;QACN,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;QAC5C,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;KAChB,CAAC,CAAC;IAC9B,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC;AACnC,CAAC;AAMD,MAAM,UAAU,6BAA6B,CAAC,KAAqB;IACjE,IAAI,KAAK,CAAC,sBAAsB;QAAE,OAAO;IACzC,MAAM,GAAG,GAAG,KAAK,CAAC,gBAEL,CAAC;IACd,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,CAAC;IACnC,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QACzD,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC,iBAAiB;QACtD,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;QACvE,wCAAwC;IAC1C,CAAC;IACD,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC;AACtC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,KAAqB;IACpE,IAAI,KAAK,CAAC,qBAAqB;QAAE,OAAO;IACxC,MAAM,GAAG,GAAG,KAAK,CAAC,gBAAgB,CAAC;IACnC,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC9B,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC,mBAAmB,KAAK,UAAU,EAAE,CAAC;QACpE,KAAK,CAAC,qBAAqB,GAAG,IAAI,CAAC;QACnC,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAA4B,CAAC;IAChD,MAAM,IAAI,GAAG,KAAK,CAAC,aAA6C,CAAC;IACjE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,CAAC,qBAAqB,GAAG,IAAI,CAAC;QACnC,OAAO;IACT,CAAC;IACD,uBAAuB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACnD,IAAI,CAAC;QACH,iEAAiE;QACjE,gEAAgE;QAChE,gEAAgE;QAChE,+DAA+D;QAC/D,+DAA+D;QAC/D,gEAAgE;QAChE,2DAA2D;QAC3D,QAAQ,CAAC,mBAAmB,CAAC;YAC3B,KAAK,EAAE,GAAG,CAAC,KAAoE;YAC/E,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;YACf,gBAAgB,EAAE,SAAS,CAAC,KAAK,EAAI,+BAA+B;YACpE,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE;YACxB,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,IAAI;YAChC,mEAAmE;YACnE,uEAAuE;YACvE,kEAAkE;YAClE,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;YAC1C,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;SAC5E,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;IACtE,CAAC;IACD,KAAK,CAAC,qBAAqB,GAAG,IAAI,CAAC;AACrC,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,uBAAuB,CAC9B,EAAoB,EACpB,GAGC;IAED,yEAAyE;IACzE,sEAAsE;IACtE,0EAA0E;IAC1E,2EAA2E;IAC3E,mEAAmE;IACnE,MAAM,aAAa,GAChB,GAAG,CAAC,mBAAmB,EAAE,MAAyC,EAAE,KAAK,IAAI,IAAI,CAAC;IACrF,MAAM,cAAc,GAAG,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAErF,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QACrD,EAA8C,CAAC,MAAM,GAAG;YACvD,WAAW,EAAE,aAAa;YAC1B,YAAY,EAAE,SAAS;YACvB,eAAe,EAAE,SAAS;SAC3B,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,YAAY,CAAsC,CAAC;IACpF,IAAI,QAAQ,EAAE,OAAO;QAAE,OAAO;IAC9B,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC;IAC3G,MAAM,WAAW,GAAG;QAClB,KAAK,EAAE,cAAuB;QAC9B,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,EAAE,CAAC,UAAU,IAAI,CAAC;QAC9B,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,IAAI,IAAI;QACjC,SAAS,EAAE,GAAG,CAAC,YAAY,IAAI,UAAU;QACzC,WAAW,EAAE,cAAc;QAC3B,KAAK,EAAE,aAAa;QACpB,SAAS,EAAE,CAAC;QACZ,WAAW,EAAE,CAAC;QACd,cAAc,EAAE,CAAC;QACjB,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,CAAC;QACnC,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,CAAC;QACrC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,IAAI,CAAC;QAC7C,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,IAAI,CAAC;QACnD,SAAS,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC;QACxB,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpE,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACrE,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC9E,iBAAiB,EAAE,CAAC;KACrB,CAAC;IACD,EAA+C,CAAC,UAAU,GAAG;QAC5D,GAAG,CAAE,EAAE,CAAC,UAAkD,IAAI,EAAE,CAAC;QACjE,YAAY,EAAE,WAAW;KAC1B,CAAC;AACJ,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,KAAqB;IAC/D,IAAI,KAAK,CAAC,gBAAgB;QAAE,OAAO;IACnC,MAAM,GAAG,GAAG,KAAK,CAAC,gBAEL,CAAC;IACd,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC9B,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QACtD,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC9B,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;QACvE,4BAA4B;IAC9B,CAAC;IACD,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAChC,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAqB;IACzD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACtB,MAAM,KAAK,GAAoB;QAC7B,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,KAAK;QACvB,sBAAsB,EAAE,KAAK;QAC7B,mBAAmB,EAAE,KAAK;QAC1B,oBAAoB,EAAE,KAAK;KAC5B,CAAC;IAEF,IAAI,CAAC;QACH,4BAA4B,CAAC,KAAK,CAAC,CAAC;QACpC,KAAK,CAAC,eAAe,GAAI,KAA6C,CAAC,eAAe,IAAI,IAAI,CAAC;IACjG,CAAC;IAAC,MAAM,CAAC;QACP,2BAA2B;IAC7B,CAAC;IAED,IAAI,CAAC;QACH,MAAM,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACnC,KAAK,CAAC,gBAAgB,GAAI,KAAwC,CAAC,gBAAgB,KAAK,IAAI,CAAC;IAC/F,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB;IACnB,CAAC;IAED,IAAI,CAAC;QACH,6BAA6B,CAAC,KAAK,CAAC,CAAC;QACrC,KAAK,CAAC,sBAAsB,GAAI,KAA8C,CAAC,sBAAsB,KAAK,IAAI,CAAC;IACjH,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB;IACnB,CAAC;IAED,IAAI,CAAC;QACH,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAC/B,KAAK,CAAC,mBAAmB,GAAI,KAA2C,CAAC,mBAAmB,KAAK,IAAI,CAAC;IACxG,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB;IACnB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,0BAA0B,CAAC,KAAK,CAAC,CAAC;QACxC,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAA0B,oDAAoD;IAClH,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB;IACnB,CAAC;IAED,OAAO;QACL,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE;YACT,UAAU,EAAE,UAAU;YACtB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE;YAC3B,OAAO,EAAE,CAAC;YACV,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,QAAQ;SACrB;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -86,12 +86,42 @@ export interface ExecutionContext {
|
|
|
86
86
|
* Optional (CLI/local clients don't have a BatchRegistry).
|
|
87
87
|
*/
|
|
88
88
|
recordHeartbeat?: (tick: HeartbeatTickInfo) => void;
|
|
89
|
+
/**
|
|
90
|
+
* Number of repo-groups the current batch was split into by
|
|
91
|
+
* groupTasksByRepo. Set by task-executor immediately after grouping,
|
|
92
|
+
* BEFORE any dispatchOne fires. Consumed by task-runner.ts to gate
|
|
93
|
+
* PARALLEL_SAFETY_SUFFIX (suffix is only appended when this value > 1,
|
|
94
|
+
* because within a single group tasks run serially and full builds are
|
|
95
|
+
* safe).
|
|
96
|
+
*/
|
|
97
|
+
batchGroupCount?: number;
|
|
98
|
+
/**
|
|
99
|
+
* Server-supplied callback that records the per-batch grouping snapshot
|
|
100
|
+
* onto the BatchRegistry entry. Optional (CLI/local clients don't have
|
|
101
|
+
* a BatchRegistry — same pattern as recordHeartbeat). Called once per
|
|
102
|
+
* batch by task-executor immediately after groupTasksByRepo resolves.
|
|
103
|
+
*/
|
|
104
|
+
attachBatchGroups?: (groups: Array<{
|
|
105
|
+
key: string;
|
|
106
|
+
taskIndices: number[];
|
|
107
|
+
}>) => void;
|
|
108
|
+
/**
|
|
109
|
+
* Server-supplied callback that records grouping telemetry to be
|
|
110
|
+
* attached to the eventual batch_completed event. Optional — same
|
|
111
|
+
* pattern as recordHeartbeat / attachBatchGroups. Called once per
|
|
112
|
+
* batch by task-executor immediately after grouping resolves.
|
|
113
|
+
*/
|
|
114
|
+
setBatchGroupingTelemetry?: (info: {
|
|
115
|
+
groupCount: number;
|
|
116
|
+
groupSizes: number[];
|
|
117
|
+
serializationApplied: boolean;
|
|
118
|
+
}) => void;
|
|
89
119
|
/** Telemetry recorder — server-only, used at terminal to record task.completed. */
|
|
90
120
|
recorder?: {
|
|
91
121
|
recordTaskCompleted: (params: {
|
|
92
122
|
route: string;
|
|
93
123
|
taskSpec: TaskSpec;
|
|
94
|
-
runResult: import('../types.js').
|
|
124
|
+
runResult: import('../types.js').RuntimeRunResult;
|
|
95
125
|
realFilesChanged: string[];
|
|
96
126
|
client: string;
|
|
97
127
|
mainModel: string | null;
|
|
@@ -100,8 +130,6 @@ export interface ExecutionContext {
|
|
|
100
130
|
}) => void;
|
|
101
131
|
};
|
|
102
132
|
outputTargets: string[];
|
|
103
|
-
/** Quality + spec + diff reviewer engine. Optional until B2-B4 wire it into chain handlers. */
|
|
104
|
-
reviewerEngine?: import('../review/reviewer-engine.js').ReviewerEngine;
|
|
105
133
|
/** Per-project runtime state — used by executor-layer consumers (delegate, etc.). */
|
|
106
134
|
projectContext?: ProjectContext;
|
|
107
135
|
/** Context block store — used by executor-layer consumers for intake expansion. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle-context.d.ts","sourceRoot":"","sources":["../../src/lifecycle/lifecycle-context.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"lifecycle-context.d.ts","sourceRoot":"","sources":["../../src/lifecycle/lifecycle-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,35 +1,34 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type { StagePlan } from './stage-plan-types.js';
|
|
3
|
-
import { type RouteExecutor } from './handlers/baseline-handlers.js';
|
|
1
|
+
import type { LifecycleState } from './stage-plan-types.js';
|
|
4
2
|
import type { ToolCategory } from '../escalation/escalation-policy.js';
|
|
3
|
+
import type { ComposePayload } from './stage-io.js';
|
|
5
4
|
export interface DispatchInput {
|
|
6
5
|
route: string;
|
|
7
6
|
toolCategory: ToolCategory;
|
|
8
7
|
rawRequest: unknown;
|
|
9
8
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* Server constructs this closure with route-specific options (e.g.
|
|
15
|
-
* delegate's injectDefaults) and the resolved ExecutionContext.
|
|
16
|
-
*/
|
|
17
|
-
executor?: RouteExecutor;
|
|
18
|
-
/**
|
|
19
|
-
* Tool-specific extras the handlers may need. Currently unused; reserved
|
|
20
|
-
* so handlers can read context without an explicit slot per tool.
|
|
9
|
+
* Tool-specific extras the handlers may need. Plumbed via state spread so
|
|
10
|
+
* route-specific data (task, executionContext, projectContext) reaches
|
|
11
|
+
* stage handlers.
|
|
21
12
|
*/
|
|
22
13
|
context?: Record<string, unknown>;
|
|
23
14
|
}
|
|
24
15
|
export interface DispatchOutput {
|
|
25
16
|
status: number;
|
|
26
|
-
|
|
17
|
+
/** ComposePayload on 200; a route error object on 4xx (e.g. missing_context_block). */
|
|
18
|
+
body: ComposePayload | {
|
|
19
|
+
error: string;
|
|
20
|
+
missing?: string[];
|
|
21
|
+
message?: string;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Final lifecycle state — exposed so task-runner.ts and other batch-level
|
|
25
|
+
* orchestrators can read `state.lastRunResult` (the RuntimeRunResult
|
|
26
|
+
* mirror) for downstream consumers (recorder, headline composer) that
|
|
27
|
+
* still expect the legacy fat shape.
|
|
28
|
+
*/
|
|
29
|
+
finalState?: LifecycleState;
|
|
27
30
|
}
|
|
28
|
-
export type DriverFactory = (plan: StagePlan, handlers: Record<string, StageHandler>) => LifecycleDriver;
|
|
29
31
|
export declare class LifecycleDispatcher {
|
|
30
|
-
private buildDriver;
|
|
31
|
-
constructor(handlers?: Record<string, StageHandler>, buildDriver?: DriverFactory);
|
|
32
|
-
private handlers;
|
|
33
32
|
dispatch(input: DispatchInput): Promise<DispatchOutput>;
|
|
34
33
|
private initialState;
|
|
35
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle-dispatcher.d.ts","sourceRoot":"","sources":["../../src/lifecycle/lifecycle-dispatcher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lifecycle-dispatcher.d.ts","sourceRoot":"","sources":["../../src/lifecycle/lifecycle-dispatcher.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAGvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,uFAAuF;IACvF,IAAI,EAAE,cAAc,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/E;;;;;OAKG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED,qBAAa,mBAAmB;IACxB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAqC7D,OAAO,CAAC,YAAY;CAcrB"}
|
|
@@ -1,29 +1,46 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
// v5 lifecycle dispatcher.
|
|
2
|
+
//
|
|
3
|
+
// Single dispatch path: walk STAGE_PLAN via runStagePlan, return the v5
|
|
4
|
+
// ComposePayload from gates['compose']. No more LifecycleDriver class, no
|
|
5
|
+
// more StagePlan rows, no more handlerKey map, no more executor closure.
|
|
6
|
+
import { runStagePlan } from './lifecycle-driver.js';
|
|
7
|
+
import { STAGE_PLAN } from './stage-plan-builder.js';
|
|
4
8
|
import { ContextBlockNotFoundError } from '../stores/context-block-tool.js';
|
|
5
9
|
import { ATTEMPT_BUDGETS } from '../escalation/escalation-policy.js';
|
|
6
10
|
export class LifecycleDispatcher {
|
|
7
|
-
buildDriver;
|
|
8
|
-
constructor(handlers = {}, buildDriver = (plan, handlers) => new LifecycleDriver(plan, handlers)) {
|
|
9
|
-
this.buildDriver = buildDriver;
|
|
10
|
-
// Fill in baseline noops for any missing keys, but keep the SAME reference
|
|
11
|
-
// the caller passed in. Test fixtures (bootstrap.ts) capture this reference
|
|
12
|
-
// and mutate it via overrideHandler() — cloning would break that contract.
|
|
13
|
-
const baseline = buildStageHandlers({});
|
|
14
|
-
for (const key of Object.keys(baseline)) {
|
|
15
|
-
if (!(key in handlers))
|
|
16
|
-
handlers[key] = baseline[key];
|
|
17
|
-
}
|
|
18
|
-
this.handlers = handlers;
|
|
19
|
-
}
|
|
20
|
-
handlers;
|
|
21
11
|
async dispatch(input) {
|
|
22
12
|
try {
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
13
|
+
const finalState = await runStagePlan(STAGE_PLAN, this.initialState(input));
|
|
14
|
+
const composeGate = finalState.gates?.['compose'];
|
|
15
|
+
let body;
|
|
16
|
+
if (input.route === 'register-context-block') {
|
|
17
|
+
// Register-context-block wire shape is the minimal { id } envelope,
|
|
18
|
+
// NOT the full ComposePayload. Lift it from the compose payload's
|
|
19
|
+
// blockId field (set by composeHandler from gates['register-block']).
|
|
20
|
+
const rawBody = (composeGate?.outcome === 'advance' && composeGate.payload)
|
|
21
|
+
? composeGate.payload
|
|
22
|
+
: finalState.responseEnvelope;
|
|
23
|
+
const envelope = finalState.responseEnvelope;
|
|
24
|
+
if (envelope && typeof envelope === 'object' && 'id' in envelope) {
|
|
25
|
+
body = envelope;
|
|
26
|
+
}
|
|
27
|
+
else if (envelope && typeof envelope === 'object' && 'error' in envelope) {
|
|
28
|
+
body = envelope;
|
|
29
|
+
}
|
|
30
|
+
else if (rawBody?.blockId) {
|
|
31
|
+
body = { error: '', message: '' }; // placeholder, overridden below
|
|
32
|
+
body = { id: rawBody.blockId };
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
body = rawBody;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
body = (composeGate?.outcome === 'advance' && composeGate.payload)
|
|
40
|
+
? composeGate.payload
|
|
41
|
+
: finalState.responseEnvelope;
|
|
42
|
+
}
|
|
43
|
+
return { status: 200, body, finalState };
|
|
27
44
|
}
|
|
28
45
|
catch (e) {
|
|
29
46
|
if (e instanceof ContextBlockNotFoundError) {
|
|
@@ -42,7 +59,6 @@ export class LifecycleDispatcher {
|
|
|
42
59
|
route: input.route,
|
|
43
60
|
toolCategory: input.toolCategory,
|
|
44
61
|
request: input.rawRequest,
|
|
45
|
-
executor: input.executor,
|
|
46
62
|
...(input.context ?? {}),
|
|
47
63
|
projectContext: input.context?.projectContext,
|
|
48
64
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle-dispatcher.js","sourceRoot":"","sources":["../../src/lifecycle/lifecycle-dispatcher.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"lifecycle-dispatcher.js","sourceRoot":"","sources":["../../src/lifecycle/lifecycle-dispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import type { LifecycleState } from './stage-plan-types.js';
|
|
2
|
+
import type { StageDefinition } from './stage-io.js';
|
|
3
|
+
/**
|
|
4
|
+
* Walk `plan` in order. For each stage:
|
|
5
|
+
* 1. If halted and not `runOnHalt`, silently skip (no gate recorded).
|
|
6
|
+
* 2. Layer-1 — check `applicableRoutes`; record a skip gate when route
|
|
7
|
+
* doesn't apply.
|
|
8
|
+
* 3. Layer-2 — call `shouldRun(state)`; record a skip gate when it
|
|
9
|
+
* returns `{run: false}`.
|
|
10
|
+
* 4. Run the handler; record the returned gate. Halts set `state.halted`.
|
|
11
|
+
*
|
|
12
|
+
* Handler exceptions become halt gates (except `ContextBlockNotFoundError`,
|
|
13
|
+
* which propagates so the dispatcher can return a structured 400).
|
|
14
|
+
*/
|
|
15
|
+
export declare function runStagePlan(plan: StageDefinition<unknown>[], initial: LifecycleState): Promise<LifecycleState>;
|
|
9
16
|
//# sourceMappingURL=lifecycle-driver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle-driver.d.ts","sourceRoot":"","sources":["../../src/lifecycle/lifecycle-driver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lifecycle-driver.d.ts","sourceRoot":"","sources":["../../src/lifecycle/lifecycle-driver.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAa,eAAe,EAAa,MAAM,eAAe,CAAC;AAI3E;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,EAChC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CAuFzB"}
|
|
@@ -1,35 +1,116 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
// v5 lifecycle driver — walks STAGE_PLAN (StageDefinition[]) applying
|
|
2
|
+
// Layer-1 (applicableRoutes) then Layer-2 (shouldRun) per spec §4.4.
|
|
3
|
+
import { ContextBlockNotFoundError } from '../stores/context-block-tool.js';
|
|
4
|
+
/**
|
|
5
|
+
* Walk `plan` in order. For each stage:
|
|
6
|
+
* 1. If halted and not `runOnHalt`, silently skip (no gate recorded).
|
|
7
|
+
* 2. Layer-1 — check `applicableRoutes`; record a skip gate when route
|
|
8
|
+
* doesn't apply.
|
|
9
|
+
* 3. Layer-2 — call `shouldRun(state)`; record a skip gate when it
|
|
10
|
+
* returns `{run: false}`.
|
|
11
|
+
* 4. Run the handler; record the returned gate. Halts set `state.halted`.
|
|
12
|
+
*
|
|
13
|
+
* Handler exceptions become halt gates (except `ContextBlockNotFoundError`,
|
|
14
|
+
* which propagates so the dispatcher can return a structured 400).
|
|
15
|
+
*/
|
|
16
|
+
export async function runStagePlan(plan, initial) {
|
|
17
|
+
const state = initial;
|
|
18
|
+
if (!state.gates)
|
|
19
|
+
state.gates = {};
|
|
20
|
+
if (state.halted === undefined)
|
|
21
|
+
state.halted = false;
|
|
22
|
+
const route = state.route ?? 'delegate';
|
|
23
|
+
for (const stage of plan) {
|
|
24
|
+
if (state.halted && !stage.runOnHalt)
|
|
25
|
+
continue;
|
|
26
|
+
const applies = stage.applicableRoutes === 'all'
|
|
27
|
+
? true
|
|
28
|
+
: stage.applicableRoutes.includes(route);
|
|
29
|
+
if (!applies) {
|
|
30
|
+
const skipGate = {
|
|
31
|
+
outcome: 'skip',
|
|
32
|
+
comment: `${stage.name} does not apply to route=${route}`,
|
|
33
|
+
payload: null,
|
|
34
|
+
telemetry: { stageLabel: stage.name, durationMs: 0, costUSD: 0, turnsUsed: 0, stopReason: 'normal' },
|
|
35
|
+
};
|
|
36
|
+
state.gates[stage.name] = skipGate;
|
|
37
|
+
emitGateRecorded(state.executionContext, stage.name, 'skip', 0, 0);
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
const decision = stage.shouldRun(state);
|
|
41
|
+
if (!decision.run) {
|
|
42
|
+
const skipGate = {
|
|
43
|
+
outcome: 'skip',
|
|
44
|
+
comment: decision.comment,
|
|
45
|
+
payload: null,
|
|
46
|
+
telemetry: { stageLabel: stage.name, durationMs: 0, costUSD: 0, turnsUsed: 0, stopReason: 'normal' },
|
|
47
|
+
};
|
|
48
|
+
state.gates[stage.name] = skipGate;
|
|
49
|
+
emitGateRecorded(state.executionContext, stage.name, 'skip', 0, 0);
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
// Wall-clock guard before each non-runOnHalt stage.
|
|
53
|
+
const ctx = state.executionContext;
|
|
54
|
+
if (ctx?.wallClockGuard && !stage.runOnHalt) {
|
|
55
|
+
try {
|
|
56
|
+
ctx.wallClockGuard.checkOrThrow();
|
|
57
|
+
}
|
|
58
|
+
catch (err) {
|
|
59
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
60
|
+
const haltGate = {
|
|
61
|
+
outcome: 'halt',
|
|
62
|
+
comment: `${stage.name} halted: ${msg}`,
|
|
63
|
+
payload: null,
|
|
64
|
+
telemetry: { stageLabel: stage.name, durationMs: 0, costUSD: 0, turnsUsed: 0, stopReason: 'timeout' },
|
|
65
|
+
};
|
|
66
|
+
state.gates[stage.name] = haltGate;
|
|
67
|
+
state.halted = true;
|
|
68
|
+
emitGateRecorded(ctx, stage.name, 'halt', 0, 0);
|
|
69
|
+
emitHaltEvent(ctx, stage.name, haltGate.comment ?? '', 'timeout');
|
|
14
70
|
continue;
|
|
15
|
-
const handler = this.handlers[row.handlerKey];
|
|
16
|
-
if (!handler)
|
|
17
|
-
throw new Error(`no handler registered for key '${row.handlerKey}'`);
|
|
18
|
-
const ctx = state.executionContext;
|
|
19
|
-
if (ctx && !row.runOnTerminal) {
|
|
20
|
-
try {
|
|
21
|
-
ctx.wallClockGuard.checkOrThrow();
|
|
22
|
-
}
|
|
23
|
-
catch (err) {
|
|
24
|
-
state.terminal = true;
|
|
25
|
-
state.errorCode = err.errorCode ?? 'guard_wall_clock';
|
|
26
|
-
state.error = err instanceof Error ? err.message : String(err);
|
|
27
|
-
continue;
|
|
28
|
-
}
|
|
29
71
|
}
|
|
30
|
-
await handler(state);
|
|
31
72
|
}
|
|
32
|
-
|
|
73
|
+
const t0 = Date.now();
|
|
74
|
+
try {
|
|
75
|
+
const gate = await stage.handler(state);
|
|
76
|
+
state.gates[stage.name] = gate;
|
|
77
|
+
emitGateRecorded(state.executionContext, stage.name, gate.outcome, gate.telemetry.costUSD, gate.telemetry.durationMs);
|
|
78
|
+
if (gate.outcome === 'halt') {
|
|
79
|
+
state.halted = true;
|
|
80
|
+
emitHaltEvent(state.executionContext, stage.name, gate.comment ?? '', gate.telemetry.stopReason);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
catch (err) {
|
|
84
|
+
if (err instanceof ContextBlockNotFoundError)
|
|
85
|
+
throw err;
|
|
86
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
87
|
+
const tCatch = Date.now() - t0;
|
|
88
|
+
const haltGate = {
|
|
89
|
+
outcome: 'halt',
|
|
90
|
+
comment: `${stage.name} crashed: ${msg}`,
|
|
91
|
+
payload: null,
|
|
92
|
+
telemetry: { stageLabel: stage.name, durationMs: tCatch, costUSD: 0, turnsUsed: 0, stopReason: 'transport_error' },
|
|
93
|
+
};
|
|
94
|
+
state.gates[stage.name] = haltGate;
|
|
95
|
+
emitGateRecorded(state.executionContext, stage.name, 'halt', 0, tCatch);
|
|
96
|
+
state.halted = true;
|
|
97
|
+
state.terminal = true;
|
|
98
|
+
emitHaltEvent(state.executionContext, stage.name, haltGate.comment ?? '', 'transport_error');
|
|
99
|
+
}
|
|
33
100
|
}
|
|
101
|
+
return state;
|
|
102
|
+
}
|
|
103
|
+
function emitHaltEvent(ctx, stageName, comment, stopReason) {
|
|
104
|
+
ctx?.bus?.emit({ event: 'stage_halt', ts: new Date().toISOString(), stageName, comment, stopReason });
|
|
105
|
+
}
|
|
106
|
+
function emitGateRecorded(ctx, stageName, outcome, costUSD, durationMs) {
|
|
107
|
+
ctx?.bus?.emit({
|
|
108
|
+
event: 'stage_gate_recorded',
|
|
109
|
+
ts: new Date().toISOString(),
|
|
110
|
+
stage: stageName,
|
|
111
|
+
outcome,
|
|
112
|
+
costUSD,
|
|
113
|
+
durationMs,
|
|
114
|
+
});
|
|
34
115
|
}
|
|
35
116
|
//# sourceMappingURL=lifecycle-driver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle-driver.js","sourceRoot":"","sources":["../../src/lifecycle/lifecycle-driver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lifecycle-driver.js","sourceRoot":"","sources":["../../src/lifecycle/lifecycle-driver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { LifecycleState } from './stage-plan-types.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { RuntimeRunResult } from '../types.js';
|
|
3
3
|
export type StageName = 'implementing' | 'review' | 'rework' | 'annotating' | 'committing';
|
|
4
4
|
interface StageDelta {
|
|
5
5
|
inputTokens: number;
|
|
@@ -33,7 +33,7 @@ export declare function mergeStageStats(state: LifecycleState, stage: StageName,
|
|
|
33
33
|
* lastRunResult.
|
|
34
34
|
*
|
|
35
35
|
* Tool sweep #6 fix: the spec-chain and quality-chain handlers both
|
|
36
|
-
* replaced `state.lastRunResult` with the rework's
|
|
36
|
+
* replaced `state.lastRunResult` with the rework's RuntimeRunResult, only
|
|
37
37
|
* keeping `stageStats`. Implementing-stage file writes were thereby
|
|
38
38
|
* lost when a spec-rework round produced no writes:
|
|
39
39
|
* implementer: filesWritten=['/x.ts'] ← real edit applied
|
|
@@ -52,6 +52,6 @@ export declare function mergeStageStats(state: LifecycleState, stage: StageName,
|
|
|
52
52
|
* Fix: union the arrays across all rework rounds. Stable de-dupe via
|
|
53
53
|
* Set so a file edited twice doesn't appear twice in the envelope.
|
|
54
54
|
*/
|
|
55
|
-
export declare function replaceLastRunResultPreservingTrackers(state: LifecycleState, newResult:
|
|
55
|
+
export declare function replaceLastRunResultPreservingTrackers(state: LifecycleState, newResult: RuntimeRunResult): void;
|
|
56
56
|
export {};
|
|
57
57
|
//# sourceMappingURL=merge-stage-stats.d.ts.map
|