@zhixuan92/multi-model-agent-core 4.6.0 → 4.7.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 +7 -8
- package/dist/bounded-execution/file-artifact-check.d.ts +4 -11
- package/dist/bounded-execution/file-artifact-check.d.ts.map +1 -1
- package/dist/bounded-execution/file-artifact-check.js +7 -22
- package/dist/bounded-execution/file-artifact-check.js.map +1 -1
- package/dist/bounded-execution/progress-watchdog.d.ts.map +1 -1
- package/dist/bounded-execution/progress-watchdog.js +60 -27
- package/dist/bounded-execution/progress-watchdog.js.map +1 -1
- package/dist/bounded-execution/stall-watchdog.d.ts.map +1 -1
- package/dist/bounded-execution/stall-watchdog.js +29 -12
- package/dist/bounded-execution/stall-watchdog.js.map +1 -1
- package/dist/bounded-execution/wall-clock-guard.d.ts +4 -0
- package/dist/bounded-execution/wall-clock-guard.d.ts.map +1 -1
- package/dist/bounded-execution/wall-clock-guard.js +1 -1
- package/dist/bounded-execution/wall-clock-guard.js.map +1 -1
- package/dist/config/canonical-model-identity.d.ts.map +1 -1
- package/dist/config/canonical-model-identity.js.map +1 -1
- package/dist/config/config-resolver.d.ts +1 -41
- package/dist/config/config-resolver.d.ts.map +1 -1
- package/dist/config/config-resolver.js +1 -43
- package/dist/config/config-resolver.js.map +1 -1
- package/dist/config/load.d.ts +0 -2
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/load.js +0 -4
- package/dist/config/load.js.map +1 -1
- package/dist/config/model-profile-registry.d.ts.map +1 -1
- package/dist/config/model-profile-registry.js +13 -7
- package/dist/config/model-profile-registry.js.map +1 -1
- package/dist/config/schema.d.ts +1 -19
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +12 -38
- package/dist/config/schema.js.map +1 -1
- package/dist/error-codes.d.ts +0 -1
- package/dist/error-codes.d.ts.map +1 -1
- package/dist/error-codes.js +0 -1
- package/dist/error-codes.js.map +1 -1
- package/dist/events/cloud-events.d.ts +0 -1
- package/dist/events/cloud-events.d.ts.map +1 -1
- package/dist/events/cloud-events.js +1 -1
- package/dist/events/cloud-events.js.map +1 -1
- package/dist/events/event-builder.js +1 -2
- package/dist/events/event-builder.js.map +1 -1
- package/dist/events/event-emitter.d.ts +2 -1
- package/dist/events/event-emitter.d.ts.map +1 -1
- package/dist/events/event-emitter.js +6 -1
- package/dist/events/event-emitter.js.map +1 -1
- package/dist/events/observability-events.d.ts +0 -26
- package/dist/events/observability-events.d.ts.map +1 -1
- package/dist/events/observability-events.js +1 -11
- package/dist/events/observability-events.js.map +1 -1
- package/dist/events/telemetry-types.d.ts +0 -7
- package/dist/events/telemetry-types.d.ts.map +1 -1
- package/dist/events/telemetry-types.js +1 -1
- package/dist/events/telemetry-types.js.map +1 -1
- package/dist/index.d.ts +4 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/intake/resolve.d.ts.map +1 -1
- package/dist/intake/resolve.js +0 -1
- package/dist/intake/resolve.js.map +1 -1
- package/dist/lifecycle/handlers/{annotator.d.ts → annotate-stage.d.ts} +1 -1
- package/dist/lifecycle/handlers/annotate-stage.d.ts.map +1 -0
- package/dist/lifecycle/handlers/{annotator.js → annotate-stage.js} +13 -1
- package/dist/lifecycle/handlers/annotate-stage.js.map +1 -0
- package/dist/lifecycle/handlers/git-commit-handler.d.ts.map +1 -1
- package/dist/lifecycle/handlers/git-commit-handler.js +15 -0
- package/dist/lifecycle/handlers/git-commit-handler.js.map +1 -1
- package/dist/lifecycle/handlers/{task-executor.d.ts → implement-stage.d.ts} +1 -1
- package/dist/lifecycle/handlers/implement-stage.d.ts.map +1 -0
- package/dist/lifecycle/handlers/{task-executor.js → implement-stage.js} +31 -2
- package/dist/lifecycle/handlers/implement-stage.js.map +1 -0
- package/dist/lifecycle/handlers/{review-handler.d.ts → review-stage.d.ts} +1 -1
- package/dist/lifecycle/handlers/review-stage.d.ts.map +1 -0
- package/dist/lifecycle/handlers/{review-handler.js → review-stage.js} +18 -1
- package/dist/lifecycle/handlers/review-stage.js.map +1 -0
- package/dist/lifecycle/handlers/{rework-handler.d.ts → rework-stage.d.ts} +1 -1
- package/dist/lifecycle/handlers/rework-stage.d.ts.map +1 -0
- package/dist/lifecycle/handlers/{rework-handler.js → rework-stage.js} +17 -1
- package/dist/lifecycle/handlers/rework-stage.js.map +1 -0
- package/dist/lifecycle/lifecycle-context.d.ts +10 -4
- package/dist/lifecycle/lifecycle-context.d.ts.map +1 -1
- package/dist/lifecycle/lifecycle-dispatcher.d.ts +1 -1
- package/dist/lifecycle/lifecycle-dispatcher.d.ts.map +1 -1
- package/dist/lifecycle/lifecycle-dispatcher.js +1 -1
- package/dist/lifecycle/lifecycle-dispatcher.js.map +1 -1
- package/dist/lifecycle/lifecycle-driver.d.ts.map +1 -1
- package/dist/lifecycle/lifecycle-driver.js +22 -2
- package/dist/lifecycle/lifecycle-driver.js.map +1 -1
- package/dist/lifecycle/normalize-output-targets.d.ts +2 -0
- package/dist/lifecycle/normalize-output-targets.d.ts.map +1 -0
- package/dist/lifecycle/normalize-output-targets.js +14 -0
- package/dist/lifecycle/normalize-output-targets.js.map +1 -0
- package/dist/lifecycle/perform-implementation.d.ts.map +1 -1
- package/dist/lifecycle/perform-implementation.js +63 -26
- package/dist/lifecycle/perform-implementation.js.map +1 -1
- package/dist/lifecycle/rework-budget.d.ts +3 -0
- package/dist/lifecycle/rework-budget.d.ts.map +1 -0
- package/dist/lifecycle/rework-budget.js +9 -0
- package/dist/lifecycle/rework-budget.js.map +1 -0
- package/dist/lifecycle/stage-io.d.ts +3 -2
- package/dist/lifecycle/stage-io.d.ts.map +1 -1
- package/dist/lifecycle/stage-io.js.map +1 -1
- package/dist/lifecycle/stage-plan-builder.js +4 -4
- package/dist/lifecycle/stage-plan-builder.js.map +1 -1
- package/dist/lifecycle/stage-plan-types.d.ts +1 -4
- package/dist/lifecycle/stage-plan-types.d.ts.map +1 -1
- package/dist/lifecycle/task-completion-summary.d.ts.map +1 -1
- package/dist/lifecycle/task-completion-summary.js +0 -1
- package/dist/lifecycle/task-completion-summary.js.map +1 -1
- package/dist/lifecycle/task-executor.d.ts.map +1 -1
- package/dist/lifecycle/task-executor.js +2 -1
- package/dist/lifecycle/task-executor.js.map +1 -1
- package/dist/lifecycle/task-runner.d.ts +5 -1
- package/dist/lifecycle/task-runner.d.ts.map +1 -1
- package/dist/lifecycle/task-runner.js +92 -46
- package/dist/lifecycle/task-runner.js.map +1 -1
- package/dist/providers/agent-resolver.d.ts.map +1 -0
- package/dist/{escalation → providers}/agent-resolver.js +1 -1
- package/dist/providers/agent-resolver.js.map +1 -0
- package/dist/providers/assemble-run-result.js +0 -2
- package/dist/providers/assemble-run-result.js.map +1 -1
- package/dist/providers/claude-session.d.ts +12 -0
- package/dist/providers/claude-session.d.ts.map +1 -1
- package/dist/providers/claude-session.js +38 -1
- package/dist/providers/claude-session.js.map +1 -1
- package/dist/providers/codex-cli-session.d.ts +16 -1
- package/dist/providers/codex-cli-session.d.ts.map +1 -1
- package/dist/providers/codex-cli-session.js +75 -6
- package/dist/providers/codex-cli-session.js.map +1 -1
- package/dist/providers/normalize-claude.js +1 -1
- package/dist/providers/normalize-claude.js.map +1 -1
- package/dist/providers/provider-factory.d.ts +8 -0
- package/dist/providers/provider-factory.d.ts.map +1 -1
- package/dist/providers/provider-factory.js +64 -3
- package/dist/providers/provider-factory.js.map +1 -1
- package/dist/providers/run-annotator-turn.d.ts.map +1 -1
- package/dist/providers/run-annotator-turn.js +2 -1
- package/dist/providers/run-annotator-turn.js.map +1 -1
- package/dist/providers/run-worker-turn.d.ts +1 -1
- package/dist/providers/run-worker-turn.d.ts.map +1 -1
- package/dist/providers/run-worker-turn.js +0 -1
- package/dist/providers/run-worker-turn.js.map +1 -1
- package/dist/providers/runner-types.d.ts +5 -6
- package/dist/providers/runner-types.d.ts.map +1 -1
- package/dist/providers/stall-detector.d.ts +1 -1
- package/dist/providers/stall-detector.d.ts.map +1 -1
- package/dist/providers/stall-detector.js +1 -1
- package/dist/providers/stall-detector.js.map +1 -1
- package/dist/reporting/derive-investigate-status.d.ts +1 -1
- package/dist/reporting/derive-investigate-status.d.ts.map +1 -1
- package/dist/reporting/headline-templates/investigate.d.ts +1 -1
- package/dist/reporting/headline-templates/investigate.d.ts.map +1 -1
- package/dist/reporting/headline-templates/research.d.ts.map +1 -1
- package/dist/reporting/headline-templates/research.js +0 -1
- package/dist/reporting/headline-templates/research.js.map +1 -1
- package/dist/reporting/terminal-status-deriver.d.ts +1 -1
- package/dist/reporting/terminal-status-deriver.d.ts.map +1 -1
- package/dist/reporting/terminal-status-deriver.js +1 -4
- package/dist/reporting/terminal-status-deriver.js.map +1 -1
- package/dist/review/run-reviewer.d.ts.map +1 -1
- package/dist/review/run-reviewer.js +4 -3
- package/dist/review/run-reviewer.js.map +1 -1
- package/dist/stores/batch-registry.d.ts +15 -1
- package/dist/stores/batch-registry.d.ts.map +1 -1
- package/dist/stores/batch-registry.js +27 -0
- package/dist/stores/batch-registry.js.map +1 -1
- package/dist/tool-surface/tool-surface-registry.d.ts +1 -1
- package/dist/tool-surface/tool-surface-registry.d.ts.map +1 -1
- package/dist/tools/audit/tool-config.d.ts.map +1 -1
- package/dist/tools/audit/tool-config.js +0 -1
- package/dist/tools/audit/tool-config.js.map +1 -1
- package/dist/tools/debug/tool-config.d.ts.map +1 -1
- package/dist/tools/debug/tool-config.js +0 -1
- package/dist/tools/debug/tool-config.js.map +1 -1
- package/dist/tools/delegate/schema.d.ts +1 -1
- package/dist/tools/delegate/schema.d.ts.map +1 -1
- package/dist/tools/delegate/schema.js +2 -1
- package/dist/tools/delegate/schema.js.map +1 -1
- package/dist/tools/delegate/tool-config.d.ts +0 -1
- package/dist/tools/delegate/tool-config.d.ts.map +1 -1
- package/dist/tools/delegate/tool-config.js +0 -2
- package/dist/tools/delegate/tool-config.js.map +1 -1
- package/dist/tools/execute-plan/schema.d.ts +1 -1
- package/dist/tools/execute-plan/schema.d.ts.map +1 -1
- package/dist/tools/execute-plan/schema.js +2 -2
- package/dist/tools/execute-plan/schema.js.map +1 -1
- package/dist/tools/execute-plan/tool-config.d.ts.map +1 -1
- package/dist/tools/execute-plan/tool-config.js +0 -1
- package/dist/tools/execute-plan/tool-config.js.map +1 -1
- package/dist/tools/investigate/tool-config.d.ts.map +1 -1
- package/dist/tools/investigate/tool-config.js +0 -1
- package/dist/tools/investigate/tool-config.js.map +1 -1
- package/dist/tools/register-context-block/tool-config.d.ts.map +1 -1
- package/dist/tools/register-context-block/tool-config.js +0 -1
- package/dist/tools/register-context-block/tool-config.js.map +1 -1
- package/dist/tools/research/tool-config.d.ts.map +1 -1
- package/dist/tools/research/tool-config.js +0 -1
- package/dist/tools/research/tool-config.js.map +1 -1
- package/dist/tools/retry/tool-config.d.ts.map +1 -1
- package/dist/tools/retry/tool-config.js +0 -1
- package/dist/tools/retry/tool-config.js.map +1 -1
- package/dist/tools/review/tool-config.d.ts.map +1 -1
- package/dist/tools/review/tool-config.js +0 -1
- package/dist/tools/review/tool-config.js.map +1 -1
- package/dist/types/config.d.ts +0 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/enums.d.ts +0 -3
- package/dist/types/enums.d.ts.map +1 -1
- package/dist/types/enums.js +3 -3
- package/dist/types/enums.js.map +1 -1
- package/dist/types/run-result.d.ts +14 -1
- package/dist/types/run-result.d.ts.map +1 -1
- package/dist/types/task-spec.d.ts +1 -1
- package/dist/types/task-spec.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/bounded-execution/cost-meter.d.ts +0 -20
- package/dist/bounded-execution/cost-meter.d.ts.map +0 -1
- package/dist/bounded-execution/cost-meter.js +0 -21
- package/dist/bounded-execution/cost-meter.js.map +0 -1
- package/dist/bounded-execution/error-classifier.d.ts +0 -11
- package/dist/bounded-execution/error-classifier.d.ts.map +0 -1
- package/dist/bounded-execution/error-classifier.js +0 -23
- package/dist/bounded-execution/error-classifier.js.map +0 -1
- package/dist/bounded-execution/idle-guard.d.ts +0 -8
- package/dist/bounded-execution/idle-guard.d.ts.map +0 -1
- package/dist/bounded-execution/idle-guard.js +0 -18
- package/dist/bounded-execution/idle-guard.js.map +0 -1
- package/dist/bounded-execution/index.d.ts +0 -10
- package/dist/bounded-execution/index.d.ts.map +0 -1
- package/dist/bounded-execution/index.js +0 -11
- package/dist/bounded-execution/index.js.map +0 -1
- package/dist/bounded-execution/safety-max-turns.d.ts +0 -17
- package/dist/bounded-execution/safety-max-turns.d.ts.map +0 -1
- package/dist/bounded-execution/safety-max-turns.js +0 -17
- package/dist/bounded-execution/safety-max-turns.js.map +0 -1
- package/dist/cleanup/batch-retention-sweeper.d.ts +0 -7
- package/dist/cleanup/batch-retention-sweeper.d.ts.map +0 -1
- package/dist/cleanup/batch-retention-sweeper.js +0 -10
- package/dist/cleanup/batch-retention-sweeper.js.map +0 -1
- package/dist/cleanup/context-block-gc-sweeper.d.ts +0 -8
- package/dist/cleanup/context-block-gc-sweeper.d.ts.map +0 -1
- package/dist/cleanup/context-block-gc-sweeper.js +0 -12
- package/dist/cleanup/context-block-gc-sweeper.js.map +0 -1
- package/dist/cleanup/index.d.ts +0 -5
- package/dist/cleanup/index.d.ts.map +0 -1
- package/dist/cleanup/index.js +0 -6
- package/dist/cleanup/index.js.map +0 -1
- package/dist/cleanup/project-idle-cleanup.d.ts +0 -7
- package/dist/cleanup/project-idle-cleanup.d.ts.map +0 -1
- package/dist/cleanup/project-idle-cleanup.js +0 -15
- package/dist/cleanup/project-idle-cleanup.js.map +0 -1
- package/dist/cleanup/shutdown-coordinator.d.ts +0 -7
- package/dist/cleanup/shutdown-coordinator.d.ts.map +0 -1
- package/dist/cleanup/shutdown-coordinator.js +0 -13
- package/dist/cleanup/shutdown-coordinator.js.map +0 -1
- package/dist/config/index.d.ts +0 -8
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -9
- package/dist/config/index.js.map +0 -1
- package/dist/config/pricing-table.d.ts +0 -16
- package/dist/config/pricing-table.d.ts.map +0 -1
- package/dist/config/pricing-table.js +0 -51
- package/dist/config/pricing-table.js.map +0 -1
- package/dist/escalation/agent-resolver.d.ts.map +0 -1
- package/dist/escalation/agent-resolver.js.map +0 -1
- package/dist/escalation/delegate-with-escalation.d.ts +0 -52
- package/dist/escalation/delegate-with-escalation.d.ts.map +0 -1
- package/dist/escalation/delegate-with-escalation.js +0 -201
- package/dist/escalation/delegate-with-escalation.js.map +0 -1
- package/dist/escalation/escalation-policy.d.ts +0 -18
- package/dist/escalation/escalation-policy.d.ts.map +0 -1
- package/dist/escalation/escalation-policy.js +0 -33
- package/dist/escalation/escalation-policy.js.map +0 -1
- package/dist/escalation/fallback-helpers.d.ts +0 -22
- package/dist/escalation/fallback-helpers.d.ts.map +0 -1
- package/dist/escalation/fallback-helpers.js +0 -47
- package/dist/escalation/fallback-helpers.js.map +0 -1
- package/dist/escalation/fallback-types.d.ts +0 -60
- package/dist/escalation/fallback-types.d.ts.map +0 -1
- package/dist/escalation/fallback-types.js +0 -11
- package/dist/escalation/fallback-types.js.map +0 -1
- package/dist/escalation/fallback.d.ts +0 -5
- package/dist/escalation/fallback.d.ts.map +0 -1
- package/dist/escalation/fallback.js +0 -387
- package/dist/escalation/fallback.js.map +0 -1
- package/dist/escalation/index.d.ts +0 -3
- package/dist/escalation/index.d.ts.map +0 -1
- package/dist/escalation/index.js +0 -4
- package/dist/escalation/index.js.map +0 -1
- package/dist/escalation/policy.d.ts +0 -37
- package/dist/escalation/policy.d.ts.map +0 -1
- package/dist/escalation/policy.js +0 -67
- package/dist/escalation/policy.js.map +0 -1
- package/dist/escalation/types.d.ts +0 -15
- package/dist/escalation/types.d.ts.map +0 -1
- package/dist/escalation/types.js +0 -2
- package/dist/escalation/types.js.map +0 -1
- package/dist/events/running-headline-sink.d.ts +0 -27
- package/dist/events/running-headline-sink.d.ts.map +0 -1
- package/dist/events/running-headline-sink.js +0 -156
- package/dist/events/running-headline-sink.js.map +0 -1
- package/dist/lifecycle/handlers/annotator.d.ts.map +0 -1
- package/dist/lifecycle/handlers/annotator.js.map +0 -1
- package/dist/lifecycle/handlers/review-handler.d.ts.map +0 -1
- package/dist/lifecycle/handlers/review-handler.js.map +0 -1
- package/dist/lifecycle/handlers/rework-handler.d.ts.map +0 -1
- package/dist/lifecycle/handlers/rework-handler.js.map +0 -1
- package/dist/lifecycle/handlers/task-executor.d.ts.map +0 -1
- package/dist/lifecycle/handlers/task-executor.js.map +0 -1
- package/dist/lifecycle/metadata-repair.d.ts +0 -15
- package/dist/lifecycle/metadata-repair.d.ts.map +0 -1
- package/dist/lifecycle/metadata-repair.js +0 -33
- package/dist/lifecycle/metadata-repair.js.map +0 -1
- /package/dist/{escalation → providers}/agent-resolver.d.ts +0 -0
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
// containing the worker's structured output plus prose-extracted findings.
|
|
5
5
|
import { parseWorkerOutput } from '../worker-output-contract.js';
|
|
6
6
|
import { performImplementation } from '../perform-implementation.js';
|
|
7
|
+
import { checkOutputTargets } from '../../bounded-execution/file-artifact-check.js';
|
|
7
8
|
import { spawnSync } from 'node:child_process';
|
|
8
9
|
import { join } from 'node:path';
|
|
9
10
|
const READ_ROUTES = ['audit', 'review', 'debug', 'investigate', 'explore'];
|
|
@@ -117,11 +118,39 @@ export async function implementHandler(state) {
|
|
|
117
118
|
// Transform lastRunResult into ImplementPayload for the stage gate.
|
|
118
119
|
// Note: parseWorkerOutput extracts filesChanged from the structured output JSON.
|
|
119
120
|
const parsed = parseWorkerOutput(result.output ?? '');
|
|
121
|
+
const findings = [...(result.findings ?? [])];
|
|
122
|
+
const outputTargets = ctx.outputTargets ?? [];
|
|
123
|
+
if (outputTargets.length > 0) {
|
|
124
|
+
let nextId = findings.length + 1;
|
|
125
|
+
try {
|
|
126
|
+
const missing = checkOutputTargets(outputTargets);
|
|
127
|
+
if (missing.length > 0) {
|
|
128
|
+
findings.push({
|
|
129
|
+
id: `F${nextId++}`,
|
|
130
|
+
severity: 'high',
|
|
131
|
+
category: 'missing_output_targets',
|
|
132
|
+
claim: `Task declared ${missing.length} output target(s) that were not produced`,
|
|
133
|
+
evidence: `Missing paths: ${missing.join(', ')}`,
|
|
134
|
+
source: 'implementer',
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
catch (e) {
|
|
139
|
+
findings.push({
|
|
140
|
+
id: `F${nextId++}`,
|
|
141
|
+
severity: 'medium',
|
|
142
|
+
category: 'output_targets_check_failed',
|
|
143
|
+
claim: 'Output-target existence check raised an error',
|
|
144
|
+
evidence: e instanceof Error ? e.message : String(e),
|
|
145
|
+
source: 'implementer',
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
}
|
|
120
149
|
const payload = {
|
|
121
150
|
workerSelfAssessment: result.workerStatus ?? 'failed',
|
|
122
151
|
summary: parsed.summary ?? result.summary ?? '',
|
|
123
152
|
filesChanged: parsed.filesChanged ?? result.filesWritten ?? result.filesChanged ?? [],
|
|
124
|
-
findings
|
|
153
|
+
findings,
|
|
125
154
|
citations: (result.citations ?? parsed.citations ?? []),
|
|
126
155
|
criteriaSucceeded: result.criteriaSucceeded ?? parsed.criteriaSucceeded ?? [],
|
|
127
156
|
criteriaErrors: result.criteriaErrors ?? parsed.criteriaErrors ?? [],
|
|
@@ -174,4 +203,4 @@ export class TaskExecutor {
|
|
|
174
203
|
await implementHandler(state);
|
|
175
204
|
};
|
|
176
205
|
}
|
|
177
|
-
//# sourceMappingURL=
|
|
206
|
+
//# sourceMappingURL=implement-stage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"implement-stage.js","sourceRoot":"","sources":["../../../src/lifecycle/handlers/implement-stage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { LifecycleState } from '../stage-plan-types.js';
|
|
2
2
|
import type { StageGate, ReviewPayload } from '../stage-io.js';
|
|
3
3
|
export declare function reviewHandler(state: LifecycleState): Promise<StageGate<ReviewPayload>>;
|
|
4
|
-
//# sourceMappingURL=review-
|
|
4
|
+
//# sourceMappingURL=review-stage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-stage.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/handlers/review-stage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAW,MAAM,gBAAgB,CAAC;AAaxE,wBAAsB,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CA0J5F"}
|
|
@@ -3,8 +3,25 @@ import { qualityReviewPrompt } from '../../review/templates/quality-review.js';
|
|
|
3
3
|
import { parseReviewReport } from '../../review/parse-review-report.js';
|
|
4
4
|
import { runReviewerTurn, invertedReviewerTier } from '../../review/run-reviewer.js';
|
|
5
5
|
import { mergeStageStats } from '../merge-stage-stats.js';
|
|
6
|
+
function safeTracker(fn, ctx) {
|
|
7
|
+
try {
|
|
8
|
+
fn();
|
|
9
|
+
}
|
|
10
|
+
catch (e) {
|
|
11
|
+
ctx.logger?.error('heartbeat_call_failed', e);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
6
14
|
export async function reviewHandler(state) {
|
|
7
15
|
const t0 = Date.now();
|
|
16
|
+
const reviewCtx = state.executionContext;
|
|
17
|
+
if (reviewCtx) {
|
|
18
|
+
safeTracker(() => reviewCtx.heartbeat?.transition({
|
|
19
|
+
stage: 'review',
|
|
20
|
+
stageIndex: (state.stageIndex ?? 1),
|
|
21
|
+
reviewRound: (state.reviewRound ?? 1),
|
|
22
|
+
attemptCap: (state.attemptCap ?? 1),
|
|
23
|
+
}), reviewCtx);
|
|
24
|
+
}
|
|
8
25
|
const policy = state.reviewPolicy; // 'full' | 'quality_only' | 'diff_only' | 'none'
|
|
9
26
|
// v5 review-policy mapping (per spec §14 assumption 2 — adapted to v4 enum):
|
|
10
27
|
// 'full' → run BOTH spec + quality
|
|
@@ -164,4 +181,4 @@ async function runReviewerWithRetries(state, prompt, name, implementerTier) {
|
|
|
164
181
|
turnsUsed: turn.turnsUsed,
|
|
165
182
|
};
|
|
166
183
|
}
|
|
167
|
-
//# sourceMappingURL=review-
|
|
184
|
+
//# sourceMappingURL=review-stage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-stage.js","sourceRoot":"","sources":["../../../src/lifecycle/handlers/review-stage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { LifecycleState } from '../stage-plan-types.js';
|
|
2
2
|
import type { StageGate, ReworkPayload } from '../stage-io.js';
|
|
3
3
|
export declare function reworkHandler(state: LifecycleState): Promise<StageGate<ReworkPayload | null>>;
|
|
4
|
-
//# sourceMappingURL=rework-
|
|
4
|
+
//# sourceMappingURL=rework-stage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rework-stage.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/handlers/rework-stage.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAI7D,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AA+B/D,wBAAsB,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CAoLnG"}
|
|
@@ -16,6 +16,14 @@ import { assembleRunResult } from '../../providers/assemble-run-result.js';
|
|
|
16
16
|
import { parseWorkerOutput } from '../worker-output-contract.js';
|
|
17
17
|
import { HUMAN_LABEL } from '../stage-labels.js';
|
|
18
18
|
import { startProgressWatchdog, recordPostHocSignals } from '../../bounded-execution/progress-watchdog.js';
|
|
19
|
+
function safeTracker(fn, ctx) {
|
|
20
|
+
try {
|
|
21
|
+
fn();
|
|
22
|
+
}
|
|
23
|
+
catch (e) {
|
|
24
|
+
ctx.logger?.error('heartbeat_call_failed', e);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
19
27
|
function reworkSkip(comment, t0) {
|
|
20
28
|
return {
|
|
21
29
|
outcome: 'skip',
|
|
@@ -47,6 +55,14 @@ export async function reworkHandler(state) {
|
|
|
47
55
|
const last = state.lastRunResult;
|
|
48
56
|
if (!ctx || !task || !last)
|
|
49
57
|
return reworkSkip('rework skipped: missing context', t0);
|
|
58
|
+
const reworkRound = (state.reviewRound ?? 1);
|
|
59
|
+
const reworkCap = (state.attemptCap ?? 1);
|
|
60
|
+
safeTracker(() => ctx.heartbeat?.transition({
|
|
61
|
+
stage: 'rework',
|
|
62
|
+
stageIndex: (state.stageIndex ?? 1),
|
|
63
|
+
reviewRound: reworkRound,
|
|
64
|
+
attemptCap: reworkCap,
|
|
65
|
+
}), ctx);
|
|
50
66
|
const findings = state.reviewFindings ?? [];
|
|
51
67
|
if (findings.length === 0) {
|
|
52
68
|
state.reworkApplied = false;
|
|
@@ -191,4 +207,4 @@ export async function reworkHandler(state) {
|
|
|
191
207
|
},
|
|
192
208
|
};
|
|
193
209
|
}
|
|
194
|
-
//# sourceMappingURL=rework-
|
|
210
|
+
//# sourceMappingURL=rework-stage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rework-stage.js","sourceRoot":"","sources":["../../../src/lifecycle/handlers/rework-stage.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ import type { ContextBlockStore } from '../stores/context-block-tool.js';
|
|
|
14
14
|
*
|
|
15
15
|
* Inputs (Group A) are read-only after row 2.5 completes.
|
|
16
16
|
* Bus + heartbeat (Group B) carry mutable runtime state for the watchdog.
|
|
17
|
-
* Cost (Group C) is
|
|
17
|
+
* Cost (Group C) is tracked via stateless priceTokens() / rollupByTier() in bounded-execution; not held on ExecutionContext.
|
|
18
18
|
*
|
|
19
19
|
* Per-chain accumulators (Group D) live on `LifecycleState` itself, not
|
|
20
20
|
* here, because each chain handler mutates them as it fires; ExecutionContext
|
|
@@ -48,15 +48,17 @@ export interface ExecutionContext {
|
|
|
48
48
|
*/
|
|
49
49
|
getSession(tier: AgentType): Session;
|
|
50
50
|
closeSessions(): Promise<void>;
|
|
51
|
+
/** Returns OS pids of every currently-open session's CLI subprocess (if any).
|
|
52
|
+
* Used by shutdown drain to SIGKILL stragglers when closeSessions() exceeds
|
|
53
|
+
* its grace window. Empty array when no sessions are open OR the providers
|
|
54
|
+
* do not spawn subprocesses (e.g. in-process SDK clients). */
|
|
55
|
+
getActivePids(): number[];
|
|
51
56
|
timing: {
|
|
52
57
|
startMs: number;
|
|
53
58
|
timeoutMs: number;
|
|
54
59
|
deadlineMs: number;
|
|
55
60
|
stallTimeoutMs: number;
|
|
56
61
|
};
|
|
57
|
-
budgets: {
|
|
58
|
-
maxCostUSD: number | undefined;
|
|
59
|
-
};
|
|
60
62
|
/** Wall-clock budget guard. Throws GuardError once budgetMs since task start
|
|
61
63
|
* is exceeded. Stage entries + tool-call boundaries call checkOrThrow(). */
|
|
62
64
|
wallClockGuard: WallClockGuard;
|
|
@@ -136,5 +138,9 @@ export interface ExecutionContext {
|
|
|
136
138
|
contextBlockStore?: ContextBlockStore;
|
|
137
139
|
/** BatchId owning this execution — threaded so ActivityTracker can tag ticks. */
|
|
138
140
|
batchId?: string;
|
|
141
|
+
/** Optional BatchRegistry — when set, task-runner attaches this ctx onto
|
|
142
|
+
* the entry so shutdown drain can close sessions across all in-flight
|
|
143
|
+
* tasks. Server callers pass this through HandlerDeps; CLI callers omit. */
|
|
144
|
+
batchRegistry?: import('../stores/batch-registry.js').BatchRegistry;
|
|
139
145
|
}
|
|
140
146
|
//# sourceMappingURL=lifecycle-context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle-context.d.ts","sourceRoot":"","sources":["../../src/lifecycle/lifecycle-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AACnG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEzE;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,gBAAgB;IAE/B,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,gBAAgB,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,oIAAoI;IACpI,YAAY,EAAE,SAAS,CAAC;IACxB,mBAAmB,EAAE,QAAQ,CAAC;IAC9B,iHAAiH;IACjH,kBAAkB,EAAE,QAAQ,GAAG,SAAS,CAAC;IACzC,uFAAuF;IACvF,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IAChD,mBAAmB,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAEnD;;;;;;;;;OASG;IACH,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IACrC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"lifecycle-context.d.ts","sourceRoot":"","sources":["../../src/lifecycle/lifecycle-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { LifecycleState } from './stage-plan-types.js';
|
|
2
|
-
import type { ToolCategory } from '
|
|
2
|
+
import type { ToolCategory } from './rework-budget.js';
|
|
3
3
|
import type { ComposePayload } from './stage-io.js';
|
|
4
4
|
export interface DispatchInput {
|
|
5
5
|
route: string;
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,oBAAoB,CAAC;AAGvD,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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { runStagePlan } from './lifecycle-driver.js';
|
|
7
7
|
import { STAGE_PLAN } from './stage-plan-builder.js';
|
|
8
8
|
import { ContextBlockNotFoundError } from '../stores/context-block-tool.js';
|
|
9
|
-
import { ATTEMPT_BUDGETS } from '
|
|
9
|
+
import { ATTEMPT_BUDGETS } from './rework-budget.js';
|
|
10
10
|
export class LifecycleDispatcher {
|
|
11
11
|
async dispatch(input) {
|
|
12
12
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle-dispatcher.js","sourceRoot":"","sources":["../../src/lifecycle/lifecycle-dispatcher.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,EAAE;AACF,wEAAwE;AACxE,0EAA0E;AAC1E,yEAAyE;AAEzE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"lifecycle-dispatcher.js","sourceRoot":"","sources":["../../src/lifecycle/lifecycle-dispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AAgB3E;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,EAChC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CA4FzB"}
|
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
// v5 lifecycle driver — walks STAGE_PLAN (StageDefinition[]) applying
|
|
2
2
|
// Layer-1 (applicableRoutes) then Layer-2 (shouldRun) per spec §4.4.
|
|
3
3
|
import { ContextBlockNotFoundError } from '../stores/context-block-tool.js';
|
|
4
|
+
import { GuardError } from '../bounded-execution/wall-clock-guard.js';
|
|
5
|
+
/** Returns a promise that rejects when the signal aborts. Lets stage-handler
|
|
6
|
+
* awaits unwind on watchdog abort even when the handler itself does not
|
|
7
|
+
* observe the signal directly. Stays pending forever if no signal. */
|
|
8
|
+
function abortAsRejection(signal, message) {
|
|
9
|
+
if (!signal)
|
|
10
|
+
return new Promise(() => { });
|
|
11
|
+
return new Promise((_, reject) => {
|
|
12
|
+
if (signal.aborted) {
|
|
13
|
+
reject(new Error(message));
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
signal.addEventListener('abort', () => reject(new Error(message)), { once: true });
|
|
17
|
+
});
|
|
18
|
+
}
|
|
4
19
|
/**
|
|
5
20
|
* Walk `plan` in order. For each stage:
|
|
6
21
|
* 1. If halted and not `runOnHalt`, silently skip (no gate recorded).
|
|
@@ -57,11 +72,12 @@ export async function runStagePlan(plan, initial) {
|
|
|
57
72
|
}
|
|
58
73
|
catch (err) {
|
|
59
74
|
const msg = err instanceof Error ? err.message : String(err);
|
|
75
|
+
const timeoutKind = err instanceof GuardError && err.errorCode === 'guard_wall_clock' ? 'wall_clock' : 'unknown';
|
|
60
76
|
const haltGate = {
|
|
61
77
|
outcome: 'halt',
|
|
62
78
|
comment: `${stage.name} halted: ${msg}`,
|
|
63
79
|
payload: null,
|
|
64
|
-
telemetry: { stageLabel: stage.name, durationMs: 0, costUSD: 0, turnsUsed: 0, stopReason: 'timeout' },
|
|
80
|
+
telemetry: { stageLabel: stage.name, durationMs: 0, costUSD: 0, turnsUsed: 0, stopReason: 'timeout', timeoutKind },
|
|
65
81
|
};
|
|
66
82
|
state.gates[stage.name] = haltGate;
|
|
67
83
|
state.halted = true;
|
|
@@ -72,7 +88,11 @@ export async function runStagePlan(plan, initial) {
|
|
|
72
88
|
}
|
|
73
89
|
const t0 = Date.now();
|
|
74
90
|
try {
|
|
75
|
-
const
|
|
91
|
+
const stallSignal = state.executionContext?.stall?.controller?.signal;
|
|
92
|
+
const gate = await Promise.race([
|
|
93
|
+
stage.handler(state),
|
|
94
|
+
abortAsRejection(stallSignal, `stage ${stage.name} aborted by stall watchdog`),
|
|
95
|
+
]);
|
|
76
96
|
state.gates[stage.name] = gate;
|
|
77
97
|
emitGateRecorded(state.executionContext, stage.name, gate.outcome, gate.telemetry.costUSD, gate.telemetry.durationMs);
|
|
78
98
|
if (gate.outcome === 'halt') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle-driver.js","sourceRoot":"","sources":["../../src/lifecycle/lifecycle-driver.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,qEAAqE;AAKrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"lifecycle-driver.js","sourceRoot":"","sources":["../../src/lifecycle/lifecycle-driver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-output-targets.d.ts","sourceRoot":"","sources":["../../src/lifecycle/normalize-output-targets.ts"],"names":[],"mappings":"AAEA,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAU3F"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { resolve } from 'node:path';
|
|
2
|
+
export function normalizeOutputTargets(targets, cwd) {
|
|
3
|
+
if (!targets || targets.length === 0)
|
|
4
|
+
return [];
|
|
5
|
+
const absCwd = resolve(cwd);
|
|
6
|
+
return targets.map((t) => {
|
|
7
|
+
const abs = resolve(absCwd, t);
|
|
8
|
+
if (!abs.startsWith(absCwd + '/') && abs !== absCwd) {
|
|
9
|
+
throw new Error(`output_targets_invalid: ${t} escapes cwd`);
|
|
10
|
+
}
|
|
11
|
+
return abs;
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=normalize-output-targets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-output-targets.js","sourceRoot":"","sources":["../../src/lifecycle/normalize-output-targets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,UAAU,sBAAsB,CAAC,OAA6B,EAAE,GAAW;IAC/E,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAChD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACvB,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,cAAc,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"perform-implementation.d.ts","sourceRoot":"","sources":["../../src/lifecycle/perform-implementation.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"perform-implementation.d.ts","sourceRoot":"","sources":["../../src/lifecycle/perform-implementation.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAgB5D,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAiShF"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// Extracted executor closure from task-runner.ts.
|
|
2
2
|
// This function orchestrates the implementation stage: read-route sequential
|
|
3
3
|
// criteria loop or write-route single worker turn, populates state.lastRunResult.
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { assembleRunResult } from '../providers/assemble-run-result.js';
|
|
5
|
+
import { retryableFor } from '../error-codes.js';
|
|
6
6
|
import { parseStructuredReport } from '../reporting/structured-report.js';
|
|
7
7
|
import { mergeStageStats } from './merge-stage-stats.js';
|
|
8
8
|
import { startProgressWatchdog, recordPostHocSignals } from '../bounded-execution/progress-watchdog.js';
|
|
@@ -10,15 +10,26 @@ import { resolveSubtypeSpec, isReadOnlyRoute } from './parallel-criteria-routes.
|
|
|
10
10
|
import { runReadRouteImplementer } from './handlers/read-route-implementer.js';
|
|
11
11
|
import { HUMAN_LABEL } from './stage-labels.js';
|
|
12
12
|
import { readFile as fsReadFile } from 'fs/promises';
|
|
13
|
+
function safeTracker(fn, ctx) {
|
|
14
|
+
try {
|
|
15
|
+
fn();
|
|
16
|
+
}
|
|
17
|
+
catch (e) {
|
|
18
|
+
ctx.logger?.error('heartbeat_call_failed', e);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
13
21
|
export async function performImplementation(state) {
|
|
14
22
|
const task = state.task;
|
|
15
23
|
const ctx = state.executionContext;
|
|
16
24
|
if (!task || !ctx) {
|
|
17
25
|
throw new Error(`performImplementation: state.task / state.executionContext not set for route '${state.route}'`);
|
|
18
26
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
27
|
+
// No tier rotation — tasks stay on their assigned tier per the v0.5 design.
|
|
28
|
+
// The escalation/policy.ts pickEscalation() was used for an attempt-2 swap
|
|
29
|
+
// that this codebase doesn't need; deleted along with the escalation/ dir.
|
|
30
|
+
const implTier = ctx.assignedTier;
|
|
31
|
+
const decision = { impl: implTier };
|
|
32
|
+
const provider = ctx.providers[implTier];
|
|
22
33
|
if (!provider) {
|
|
23
34
|
state.lastRunResult = {
|
|
24
35
|
output: '',
|
|
@@ -30,7 +41,7 @@ export async function performImplementation(state) {
|
|
|
30
41
|
toolCalls: [],
|
|
31
42
|
outputIsDiagnostic: true,
|
|
32
43
|
escalationLog: [],
|
|
33
|
-
error: `no provider configured for tier '${
|
|
44
|
+
error: `no provider configured for tier '${implTier}'`,
|
|
34
45
|
errorCode: 'all_tiers_unavailable',
|
|
35
46
|
workerStatus: 'failed',
|
|
36
47
|
};
|
|
@@ -161,10 +172,11 @@ export async function performImplementation(state) {
|
|
|
161
172
|
return undefined;
|
|
162
173
|
}
|
|
163
174
|
}
|
|
164
|
-
// Build the watchdog config once, just before the
|
|
175
|
+
// Build the watchdog config once, just before the session.send call:
|
|
176
|
+
safeTracker(() => ctx.heartbeat?.transition({ stage: 'implementing', stageIndex: 1 }), ctx);
|
|
165
177
|
const wdConfig = {
|
|
166
178
|
enabled: ctx.config?.defaults?.progressWatchdogEnabled ?? true,
|
|
167
|
-
thrashTurns: ctx.config?.defaults?.thrashTurns ??
|
|
179
|
+
thrashTurns: ctx.config?.defaults?.thrashTurns ?? 50,
|
|
168
180
|
thrashWallClockMs: ctx.config?.defaults?.thrashWallClockMs ?? 1_200_000,
|
|
169
181
|
thrashSoftWallClockMs: ctx.config?.defaults?.thrashWallClockMs
|
|
170
182
|
? Math.floor((ctx.config.defaults.thrashWallClockMs ?? 1_200_000) / 2)
|
|
@@ -174,8 +186,8 @@ export async function performImplementation(state) {
|
|
|
174
186
|
// the abort came from the watchdog vs. some other cancellation.
|
|
175
187
|
const wdState2 = { fired: false };
|
|
176
188
|
// Wire the watchdog. ctx.stall.controller is the existing AbortController
|
|
177
|
-
// passed
|
|
178
|
-
//
|
|
189
|
+
// passed into session.send via TurnOpts.signal — when the watchdog fires,
|
|
190
|
+
// the controller's abort propagates into the active subprocess.
|
|
179
191
|
const disposeWatchdog = startProgressWatchdog({
|
|
180
192
|
state,
|
|
181
193
|
controller: ctx.stall.controller,
|
|
@@ -186,27 +198,50 @@ export async function performImplementation(state) {
|
|
|
186
198
|
state2: wdState2,
|
|
187
199
|
});
|
|
188
200
|
try {
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
...(task.tools !== undefined && { tools: task.tools }),
|
|
196
|
-
}, [provider], {
|
|
197
|
-
explicitlyPinned: false,
|
|
198
|
-
taskDeadlineMs: ctx.timing.deadlineMs,
|
|
199
|
-
abortSignal: ctx.stall.controller.signal,
|
|
200
|
-
assignedTier: decision.impl,
|
|
201
|
+
// v0.5: single cached session per (task, tier) — owned by task-runner.ts's
|
|
202
|
+
// sessions Map and closed in finally{} by closeSessions(). No retry
|
|
203
|
+
// wrapper, no per-attempt respawn; SDKs handle transport retry internally
|
|
204
|
+
// on the same persistent session.
|
|
205
|
+
const session = ctx.getSession(decision.impl);
|
|
206
|
+
const turn = await session.send(task.prompt, {
|
|
201
207
|
stageLabel: HUMAN_LABEL.implementing,
|
|
202
|
-
|
|
203
|
-
...(ctx.batchId !== undefined && { batchId: ctx.batchId }),
|
|
204
|
-
taskIndex: ctx.taskIndex,
|
|
208
|
+
signal: ctx.stall.controller.signal,
|
|
205
209
|
});
|
|
210
|
+
const raw = assembleRunResult(turn);
|
|
211
|
+
// Match the structured `terminationReason` shape that the old
|
|
212
|
+
// delegate-with-escalation wrapper used to populate (consumed by
|
|
213
|
+
// golden-checked downstream telemetry).
|
|
214
|
+
const usedShell = Array.isArray(raw.toolCalls)
|
|
215
|
+
&& raw.toolCalls.some((tc) => typeof tc === 'string' && tc.startsWith('runShell'));
|
|
216
|
+
const cause = raw.status === 'ok' ? 'finished'
|
|
217
|
+
: raw.status === 'incomplete' ? 'incomplete'
|
|
218
|
+
: 'error';
|
|
219
|
+
const result = {
|
|
220
|
+
...raw,
|
|
221
|
+
terminationReason: {
|
|
222
|
+
cause,
|
|
223
|
+
turnsUsed: raw.turns ?? 0,
|
|
224
|
+
hasFileArtifacts: Array.isArray(raw.filesWritten) && raw.filesWritten.length > 0,
|
|
225
|
+
usedShell,
|
|
226
|
+
workerSelfAssessment: raw.workerStatus ?? null,
|
|
227
|
+
wasPromoted: false,
|
|
228
|
+
},
|
|
229
|
+
escalationLog: [],
|
|
230
|
+
// Match the errorCode + retryable defaults the old escalation wrapper
|
|
231
|
+
// used to populate for non-ok statuses (consumed by golden-checked envelope).
|
|
232
|
+
...(raw.status !== 'ok' && {
|
|
233
|
+
errorCode: raw.errorCode ?? raw.status,
|
|
234
|
+
retryable: raw.retryable ?? retryableFor(raw.status),
|
|
235
|
+
}),
|
|
236
|
+
};
|
|
206
237
|
const enrichedResult = {
|
|
207
238
|
...result,
|
|
208
239
|
...(result.implementationReport === undefined && result.output && { implementationReport: parseStructuredReport(result.output) }),
|
|
209
240
|
};
|
|
241
|
+
const filesRead = Array.isArray(result.filesRead) ? result.filesRead.length : 0;
|
|
242
|
+
const filesWritten = Array.isArray(result.filesWritten) ? result.filesWritten.length : 0;
|
|
243
|
+
const toolCalls = Array.isArray(result.toolCalls) ? result.toolCalls.length : 0;
|
|
244
|
+
safeTracker(() => ctx.heartbeat?.updateProgress(filesRead, filesWritten, toolCalls), ctx);
|
|
210
245
|
state.lastRunResult = enrichedResult;
|
|
211
246
|
// Post-hoc: turn-count thrash + scope-violation (replaces nothing existing;
|
|
212
247
|
// adds new signals state for sub-project B's annotator).
|
|
@@ -219,6 +254,7 @@ export async function performImplementation(state) {
|
|
|
219
254
|
// `actualCostUSD` (the current source of truth from claude/codex
|
|
220
255
|
// turns). Without the actualCostUSD fallback every claude-tier
|
|
221
256
|
// implementing stage records cost=null and telemetry under-reports.
|
|
257
|
+
const costUSDForStage = result.cost?.costUSD ?? result.actualCostUSD ?? null;
|
|
222
258
|
mergeStageStats(state, 'implementing', {
|
|
223
259
|
inputTokens: result.usage.inputTokens ?? 0,
|
|
224
260
|
outputTokens: result.usage.outputTokens ?? 0,
|
|
@@ -226,7 +262,7 @@ export async function performImplementation(state) {
|
|
|
226
262
|
cachedNonReadTokens: result.usage.cachedNonReadTokens ?? 0,
|
|
227
263
|
turnCount: result.turns ?? 0,
|
|
228
264
|
toolCallCount: Array.isArray(result.toolCalls) ? result.toolCalls.length : 0,
|
|
229
|
-
costUSD:
|
|
265
|
+
costUSD: costUSDForStage,
|
|
230
266
|
durationMs: result.durationMs ?? null,
|
|
231
267
|
filesReadCount: Array.isArray(result.filesRead) ? result.filesRead.length : 0,
|
|
232
268
|
filesWrittenCount: Array.isArray(result.filesWritten) ? result.filesWritten.length : 0,
|
|
@@ -234,6 +270,7 @@ export async function performImplementation(state) {
|
|
|
234
270
|
tier: ctx.assignedTier,
|
|
235
271
|
model: ctx.implementerProvider?.config?.model ?? null,
|
|
236
272
|
});
|
|
273
|
+
safeTracker(() => ctx.heartbeat?.applyCost({ costUSD: costUSDForStage ?? 0, costDeltaVsMainUSD: 0 }), ctx);
|
|
237
274
|
if (result.status !== 'ok') {
|
|
238
275
|
state.terminal = true;
|
|
239
276
|
}
|