specrails-core 5.4.0 → 5.5.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 +2 -0
- package/dist/agent-runtime/capabilities.d.ts +3 -2
- package/dist/agent-runtime/capabilities.js +10 -2
- package/dist/agent-runtime/capabilities.js.map +1 -1
- package/dist/agent-runtime/cli-executor.js +10 -5
- package/dist/agent-runtime/cli-executor.js.map +1 -1
- package/dist/agent-runtime/cli-process.d.ts +1 -0
- package/dist/agent-runtime/cli-process.js +13 -2
- package/dist/agent-runtime/cli-process.js.map +1 -1
- package/dist/agent-runtime/cli.js +2 -1
- package/dist/agent-runtime/cli.js.map +1 -1
- package/dist/agent-runtime/compact/architect.d.ts +349 -0
- package/dist/agent-runtime/compact/architect.js +371 -0
- package/dist/agent-runtime/compact/architect.js.map +1 -0
- package/dist/agent-runtime/compact/chat-client.d.ts +83 -0
- package/dist/agent-runtime/compact/chat-client.js +307 -0
- package/dist/agent-runtime/compact/chat-client.js.map +1 -0
- package/dist/agent-runtime/compact/developer.d.ts +160 -0
- package/dist/agent-runtime/compact/developer.js +823 -0
- package/dist/agent-runtime/compact/developer.js.map +1 -0
- package/dist/agent-runtime/compact/environment.d.ts +62 -0
- package/dist/agent-runtime/compact/environment.js +213 -0
- package/dist/agent-runtime/compact/environment.js.map +1 -0
- package/dist/agent-runtime/compact/exit-code-honesty.d.ts +8 -0
- package/dist/agent-runtime/compact/exit-code-honesty.js +28 -0
- package/dist/agent-runtime/compact/exit-code-honesty.js.map +1 -0
- package/dist/agent-runtime/compact/guarded-loop.d.ts +73 -0
- package/dist/agent-runtime/compact/guarded-loop.js +320 -0
- package/dist/agent-runtime/compact/guarded-loop.js.map +1 -0
- package/dist/agent-runtime/compact/prompt-inputs.d.ts +42 -0
- package/dist/agent-runtime/compact/prompt-inputs.js +59 -0
- package/dist/agent-runtime/compact/prompt-inputs.js.map +1 -0
- package/dist/agent-runtime/compact/reviewer.d.ts +24 -0
- package/dist/agent-runtime/compact/reviewer.js +178 -0
- package/dist/agent-runtime/compact/reviewer.js.map +1 -0
- package/dist/agent-runtime/compact/step.d.ts +70 -0
- package/dist/agent-runtime/compact/step.js +136 -0
- package/dist/agent-runtime/compact/step.js.map +1 -0
- package/dist/agent-runtime/compact/test-reachability.d.ts +30 -0
- package/dist/agent-runtime/compact/test-reachability.js +147 -0
- package/dist/agent-runtime/compact/test-reachability.js.map +1 -0
- package/dist/agent-runtime/config.js +40 -10
- package/dist/agent-runtime/config.js.map +1 -1
- package/dist/agent-runtime/core-host.d.ts +4 -4
- package/dist/agent-runtime/core-host.js +8 -3
- package/dist/agent-runtime/core-host.js.map +1 -1
- package/dist/agent-runtime/executor-types.d.ts +37 -3
- package/dist/agent-runtime/executor-types.js +7 -2
- package/dist/agent-runtime/executor-types.js.map +1 -1
- package/dist/agent-runtime/graph/nodes.d.ts +4 -2
- package/dist/agent-runtime/graph/nodes.js +160 -53
- package/dist/agent-runtime/graph/nodes.js.map +1 -1
- package/dist/agent-runtime/graph/roles.d.ts +7 -2
- package/dist/agent-runtime/graph/roles.js +19 -11
- package/dist/agent-runtime/graph/roles.js.map +1 -1
- package/dist/agent-runtime/graph/state.d.ts +2 -1
- package/dist/agent-runtime/graph/state.js +2 -1
- package/dist/agent-runtime/graph/state.js.map +1 -1
- package/dist/agent-runtime/guardrails.d.ts +15 -0
- package/dist/agent-runtime/guardrails.js +76 -0
- package/dist/agent-runtime/guardrails.js.map +1 -0
- package/dist/agent-runtime/openai-executor.d.ts +25 -1
- package/dist/agent-runtime/openai-executor.js +67 -122
- package/dist/agent-runtime/openai-executor.js.map +1 -1
- package/dist/agent-runtime/openspec-tool-server.js +3 -3
- package/dist/agent-runtime/openspec-tool-server.js.map +1 -1
- package/dist/agent-runtime/openspec.d.ts +76 -1
- package/dist/agent-runtime/openspec.js +70 -4
- package/dist/agent-runtime/openspec.js.map +1 -1
- package/dist/agent-runtime/prompts.d.ts +21 -2
- package/dist/agent-runtime/prompts.js +56 -6
- package/dist/agent-runtime/prompts.js.map +1 -1
- package/dist/agent-runtime/repository-context.js +39 -12
- package/dist/agent-runtime/repository-context.js.map +1 -1
- package/dist/agent-runtime/role-routing.js +1 -0
- package/dist/agent-runtime/role-routing.js.map +1 -1
- package/dist/agent-runtime/workflow-types.d.ts +2 -0
- package/dist/agent-runtime/workflow.js +1 -1
- package/dist/agent-runtime/workflow.js.map +1 -1
- package/dist/installer/runtime/pipeline-state.d.ts +1 -0
- package/dist/installer/runtime/pipeline-state.js +35 -4
- package/dist/installer/runtime/pipeline-state.js.map +1 -1
- package/package.json +1 -1
- package/schemas/agent-runtime.schema.json +10 -2
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { guardrailEnabled } from '../guardrails.js';
|
|
1
2
|
import { addDeveloperChecks, bindPlan, expandedPlanCommands, initializeVerificationPlan, readVerificationPlan, validateProposedChecks } from '../verification-plan.js';
|
|
2
3
|
import path from 'node:path';
|
|
3
4
|
import { OpenSpecTools } from '../openspec.js';
|
|
@@ -5,6 +6,9 @@ import { candidateManifest, fingerprintCandidate, frozenAcceptanceCriteria, reco
|
|
|
5
6
|
import { ARCHITECT_OUTPUT_SCHEMA, DEVELOPER_OUTPUT_SCHEMA, REVIEW_OUTPUT_SCHEMA, correctionInstructions, deepenInstructions, roleInstructions } from '../prompts.js';
|
|
6
7
|
import { archive, child, journal, object, parseArchitecture, proposedVerification, write, writeDesignConfidence } from './artifacts.js';
|
|
7
8
|
import { evaluateReview } from './review-policy.js';
|
|
9
|
+
import { installEnvironment, isEnvironmentFailure } from '../compact/environment.js';
|
|
10
|
+
import { unreachedTestFiles, unreachedTestsReason } from '../compact/test-reachability.js';
|
|
11
|
+
import { exitCodeContradiction, exitHonestyReason } from '../compact/exit-code-honesty.js';
|
|
8
12
|
import { boundedReviewManifest, reviewChanges } from '../review-context.js';
|
|
9
13
|
/** Autonomous investigation passes before a low-confidence design asks or proceeds. */
|
|
10
14
|
export const MAX_DEEPEN_PASSES = 1;
|
|
@@ -12,6 +16,11 @@ const DEVELOPER_SUMMARY_LIMIT = 32_000;
|
|
|
12
16
|
/** Deterministic steps spend nothing; provider spend is reported by the role invoker as it happens. */
|
|
13
17
|
const NO_SPEND = { costUsd: 0, inputTokens: 0, outputTokens: 0 };
|
|
14
18
|
function failed(error) { return { status: 'failed', error }; }
|
|
19
|
+
/** A role that ran out of its time budget, or lost its endpoint mid-request (a local server restart, a dropped connection), did not err: block (resumable) instead of failing the run. */
|
|
20
|
+
const RESUMABLE_CODES = new Set(['timeout', 'provider_request_error']);
|
|
21
|
+
function settle(outcome, blockedHint) {
|
|
22
|
+
return outcome.code && RESUMABLE_CODES.has(outcome.code) ? { status: 'blocked', error: `${outcome.error}. ${blockedHint}` } : failed(outcome.error);
|
|
23
|
+
}
|
|
15
24
|
function plural(count, noun) { return `${count} ${noun}${count === 1 ? '' : 's'}`; }
|
|
16
25
|
function feedbackFor(state) {
|
|
17
26
|
return { verification: state.verifyResult, review: state.review };
|
|
@@ -21,6 +30,15 @@ export function developerVisitsSinceResume(checkpoint) {
|
|
|
21
30
|
const resumed = [...checkpoint.events].reverse().find(event => event.type === 'workflow_resumed');
|
|
22
31
|
return checkpoint.history.filter(attempt => attempt.stepId === 'developer' && (!resumed || attempt.startedAt >= resumed.timestamp)).length;
|
|
23
32
|
}
|
|
33
|
+
/** Correction rounds (fixer visits) since the latest explicit resume; first passes and continuations of unchecked tasks live on the developer node and never count. */
|
|
34
|
+
export function fixerVisitsSinceResume(checkpoint) {
|
|
35
|
+
const resumed = [...checkpoint.events].reverse().find(event => event.type === 'workflow_resumed');
|
|
36
|
+
return checkpoint.history.filter(attempt => attempt.stepId === 'fixer' && (!resumed || attempt.startedAt >= resumed.timestamp)).length;
|
|
37
|
+
}
|
|
38
|
+
function isCompactDeveloper(config) {
|
|
39
|
+
const provider = config.providers.find(item => item.id === config.agents.developer.provider);
|
|
40
|
+
return provider?.kind === 'openai-compatible' && (provider.agentLoop ?? 'compact') === 'compact';
|
|
41
|
+
}
|
|
24
42
|
function uncoveredRepositories(context, plan) {
|
|
25
43
|
return context.repositories.filter(repository => !plan.some(command => command.repositoryId === repository.id)).map(repository => repository.id);
|
|
26
44
|
}
|
|
@@ -72,7 +90,7 @@ function architectNode(deps) {
|
|
|
72
90
|
const prompt = roleInstructions('architect', context, change, { definition: config.rolePrompts?.architect, verification: config.verification, answers, planning: config.efficiency?.planning });
|
|
73
91
|
const first = await invoke('architect', step, { prompt, structured: true, outputSchema: ARCHITECT_OUTPUT_SCHEMA }, accept);
|
|
74
92
|
if (!first.ok)
|
|
75
|
-
return
|
|
93
|
+
return settle(first, 'Resume to run the architect again, or raise limits.timeoutMs.');
|
|
76
94
|
let architecture = first.value;
|
|
77
95
|
let passes = state.deepenPasses;
|
|
78
96
|
if (architecture.confidence === 'low' && passes < MAX_DEEPEN_PASSES) {
|
|
@@ -127,61 +145,103 @@ function architectNode(deps) {
|
|
|
127
145
|
},
|
|
128
146
|
};
|
|
129
147
|
}
|
|
130
|
-
|
|
148
|
+
/**
|
|
149
|
+
* Shared body of the two implementation nodes. `developer` implements the
|
|
150
|
+
* plan and continues unchecked tasks; `fixer` is the correction round after a
|
|
151
|
+
* failed verification or a rejected review — its own graph node, its own
|
|
152
|
+
* editable definition and (when configured) its own engine, so the log, the
|
|
153
|
+
* spans and the phase chips say who acted. Both write the same
|
|
154
|
+
* `development` record and hand over to `verify`.
|
|
155
|
+
*/
|
|
156
|
+
async function implementationVisit(deps, state, step, mode) {
|
|
131
157
|
const { context, config, change, invoke, note } = deps;
|
|
158
|
+
const fixing = mode === 'fixer';
|
|
159
|
+
transitionPipeline(context, 'developer', 'running');
|
|
160
|
+
await new OpenSpecTools(deps.openspec.developer, step.signal).assertReady();
|
|
161
|
+
const feedback = feedbackFor(state);
|
|
162
|
+
// The fixer ENGINE only when the project configured one — "Inherit
|
|
163
|
+
// developer" keeps the developer's engine but repairs with the fixer's
|
|
164
|
+
// instructions.
|
|
165
|
+
const fixer = fixing ? config.fixer : undefined;
|
|
166
|
+
const provider = (fixer ?? config.agents.developer).provider;
|
|
167
|
+
const full = roleInstructions('developer', context, change, { definition: fixing ? config.rolePrompts?.fixer : config.rolePrompts?.developer, ...(fixing ? { stance: 'fixer' } : {}), feedback, verification: state.plan }) + (config.efficiency?.acceptDeveloperChecks !== false ? '\nYou may propose verificationChecks in your JSON summary. These are additive required checks, never replacements for the baseline. Use kind command with structured command/args, or kind harness with entrypoint and 1–8 relative source files (64 KiB each, 256 KiB total). Core persists harnesses outside delivery, appends the absolute entrypoint to argv and supplies SPECRAILS_CHECK_REPO_ROOT. Stable keys revise your own checks; omission retains them. Do not claim a check passed until Core has executed it.' : '');
|
|
168
|
+
const previous = state.development;
|
|
169
|
+
// A CLI developer with a live session takes corrections and continuations
|
|
170
|
+
// as a short follow-up in that session; a configured fixer engine always
|
|
171
|
+
// starts fresh (sessions never carry across engines).
|
|
172
|
+
const visits = developerVisitsSinceResume(step.checkpoint) + fixerVisitsSinceResume(step.checkpoint);
|
|
173
|
+
const resumable = !fixer && previous?.sessionId !== undefined && previous.provider === provider && visits > 1;
|
|
174
|
+
if (fixer)
|
|
175
|
+
note('fixer', `Correction round on the fixer engine (${fixer.provider}/${fixer.model ?? 'provider default'}).`);
|
|
176
|
+
const outcome = await invoke('developer', step, {
|
|
177
|
+
kind: visits > 1 ? 'correction' : 'initial',
|
|
178
|
+
...(fixer ? { agentOverride: fixer } : {}), ...(fixing ? { stance: 'fixer' } : {}),
|
|
179
|
+
...(resumable
|
|
180
|
+
? { prompt: correctionInstructions('developer', feedback), resumeSessionId: previous.sessionId, fallbackPrompt: full }
|
|
181
|
+
: { prompt: full }),
|
|
182
|
+
structured: true, lenient: true, outputSchema: DEVELOPER_OUTPUT_SCHEMA,
|
|
183
|
+
}, (output, text, result) => {
|
|
184
|
+
if (!output && /"verificationChecks"\s*:/.test(text))
|
|
185
|
+
throw new Error('Malformed developer verificationChecks response');
|
|
186
|
+
const checks = validateProposedChecks(context, output?.verificationChecks);
|
|
187
|
+
if (checks.length && config.efficiency?.acceptDeveloperChecks === false)
|
|
188
|
+
throw new Error('Developer verification proposals are disabled by the frozen policy');
|
|
189
|
+
return { ...developerRecord(output, text, result, provider), ...(checks.length ? { verificationChecks: checks } : {}) };
|
|
190
|
+
});
|
|
191
|
+
// A timeout is a budget, not a defect: the groups already finished are
|
|
192
|
+
// ticked in tasks.md and verified, and write_progress holds the handoff, so
|
|
193
|
+
// the run BLOCKS (resume continues from the next open group, or raise
|
|
194
|
+
// limits.timeoutMs) instead of failing the whole workflow.
|
|
195
|
+
if (!outcome.ok)
|
|
196
|
+
return settle(outcome, 'Finished task groups are ticked and verified; resume to continue from the next open group, or raise limits.timeoutMs.');
|
|
197
|
+
new OpenSpecTools(deps.openspec.developer, step.signal).assertParticipation();
|
|
198
|
+
const record = outcome.value;
|
|
199
|
+
const effective = addDeveloperChecks(context, record.verificationChecks ?? []);
|
|
200
|
+
bindPlan(context, effective);
|
|
201
|
+
const who = fixing ? 'Fixer' : 'Developer';
|
|
202
|
+
note(mode, record.structured
|
|
203
|
+
? `${who} finished: ${plural(record.files.length, 'file')} changed, ${plural(record.tests.length, 'test file')} touched${record.incomplete.length ? `, ${plural(record.incomplete.length, 'task')} left incomplete` : ''}.`
|
|
204
|
+
: `${who} finished without the structured summary; the prose summary is recorded instead.`);
|
|
205
|
+
for (const item of record.incomplete)
|
|
206
|
+
note(mode, `Pending task: ${item.task} — ${item.reason}`);
|
|
207
|
+
if (record.structured && record.incomplete.length && record.files.length === 0 && record.tests.length === 0) {
|
|
208
|
+
return { status: 'blocked', error: `${who} could not make progress: ${record.incomplete.map(item => `${item.task}: ${item.reason}`).join('; ')}`, output: record };
|
|
209
|
+
}
|
|
210
|
+
return {
|
|
211
|
+
status: 'succeeded', next: 'verify', update: { development: record, plan: expandedPlanCommands(context, effective) },
|
|
212
|
+
output: { summary: record.summary, provider, ...(record.sessionId ? { sessionId: record.sessionId } : {}), files: record.files, tests: record.tests, incomplete: record.incomplete, structured: record.structured },
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
function developerNode(deps) {
|
|
132
216
|
return {
|
|
133
217
|
effect: 'write', ends: ['verify'],
|
|
134
218
|
async run(state, step) {
|
|
135
|
-
|
|
136
|
-
|
|
219
|
+
// The developer budget covers the first pass and its continuations of
|
|
220
|
+
// unchecked tasks (the compact developer needs several); corrections
|
|
221
|
+
// have their own budget on the fixer node.
|
|
222
|
+
if (developerVisitsSinceResume(step.checkpoint) > deps.attempts + (isCompactDeveloper(deps.config) ? deps.attempts : 0)) {
|
|
223
|
+
return { status: 'blocked', error: 'Implementation continuation limit reached; inspect the log and resume to grant more attempts', usage: NO_SPEND };
|
|
137
224
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
? { prompt: correctionInstructions('developer', feedback), resumeSessionId: previous.sessionId, fallbackPrompt: full }
|
|
149
|
-
: { prompt: full }),
|
|
150
|
-
structured: true, lenient: true, outputSchema: DEVELOPER_OUTPUT_SCHEMA,
|
|
151
|
-
}, (output, text, result) => {
|
|
152
|
-
if (!output && /"verificationChecks"\s*:/.test(text))
|
|
153
|
-
throw new Error('Malformed developer verificationChecks response');
|
|
154
|
-
const checks = validateProposedChecks(context, output?.verificationChecks);
|
|
155
|
-
if (checks.length && config.efficiency?.acceptDeveloperChecks === false)
|
|
156
|
-
throw new Error('Developer verification proposals are disabled by the frozen policy');
|
|
157
|
-
return { ...developerRecord(output, text, result, provider), ...(checks.length ? { verificationChecks: checks } : {}) };
|
|
158
|
-
});
|
|
159
|
-
if (!outcome.ok)
|
|
160
|
-
return failed(outcome.error);
|
|
161
|
-
new OpenSpecTools(deps.openspec.developer, step.signal).assertParticipation();
|
|
162
|
-
const record = outcome.value;
|
|
163
|
-
const effective = addDeveloperChecks(context, record.verificationChecks ?? []);
|
|
164
|
-
bindPlan(context, effective);
|
|
165
|
-
note('developer', record.structured
|
|
166
|
-
? `Developer finished: ${plural(record.files.length, 'file')} changed, ${plural(record.tests.length, 'test file')} touched${record.incomplete.length ? `, ${plural(record.incomplete.length, 'task')} left incomplete` : ''}.`
|
|
167
|
-
: 'Developer finished without the structured summary; the prose summary is recorded instead.');
|
|
168
|
-
for (const item of record.incomplete)
|
|
169
|
-
note('developer', `Pending task: ${item.task} — ${item.reason}`);
|
|
170
|
-
if (record.structured && record.incomplete.length && record.files.length === 0 && record.tests.length === 0) {
|
|
171
|
-
return { status: 'blocked', error: `Developer could not make progress: ${record.incomplete.map(item => `${item.task}: ${item.reason}`).join('; ')}`, output: record };
|
|
225
|
+
return implementationVisit(deps, state, step, 'developer');
|
|
226
|
+
},
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
function fixerNode(deps) {
|
|
230
|
+
return {
|
|
231
|
+
effect: 'write', ends: ['verify'],
|
|
232
|
+
async run(state, step) {
|
|
233
|
+
if (fixerVisitsSinceResume(step.checkpoint) > deps.attempts) {
|
|
234
|
+
return { status: 'blocked', error: 'Implementation correction limit reached; inspect the feedback in the log and resume to grant more attempts', usage: NO_SPEND };
|
|
172
235
|
}
|
|
173
|
-
return
|
|
174
|
-
status: 'succeeded', next: 'verify', update: { development: record, plan: expandedPlanCommands(context, effective) },
|
|
175
|
-
output: { summary: record.summary, provider, ...(record.sessionId ? { sessionId: record.sessionId } : {}), files: record.files, tests: record.tests, incomplete: record.incomplete, structured: record.structured },
|
|
176
|
-
};
|
|
236
|
+
return implementationVisit(deps, state, step, 'fixer');
|
|
177
237
|
},
|
|
178
238
|
};
|
|
179
239
|
}
|
|
180
240
|
function verifyNode(deps) {
|
|
181
|
-
const { context, note } = deps;
|
|
241
|
+
const { context, note, config } = deps;
|
|
182
242
|
return {
|
|
183
|
-
effect: 'write', ends: ['reviewer', 'developer'],
|
|
184
|
-
async run(
|
|
243
|
+
effect: 'write', ends: ['reviewer', 'developer', 'fixer'],
|
|
244
|
+
async run(state, step) {
|
|
185
245
|
// Unchecked tasks are developer feedback, not a workflow failure: the
|
|
186
246
|
// developer sees exactly which tasks remain and continues its session.
|
|
187
247
|
const workflow = new OpenSpecTools(deps.openspec.developer, step.signal);
|
|
@@ -197,14 +257,52 @@ function verifyNode(deps) {
|
|
|
197
257
|
throw new Error('Verification plan is unavailable');
|
|
198
258
|
const plan = expandedPlanCommands(context, effective);
|
|
199
259
|
const uncovered = uncoveredRepositories(context, plan);
|
|
200
|
-
|
|
260
|
+
let receipt = await verifyPipeline(context, { kind: 'full', planHash: effective.planHash, commands: plan, ...(uncovered.length ? { unverified: true } : {}) }, deps.onVerificationOutput, step.signal, { ...(guardrailEnabled(config.guardrails, 'verify-idle-timeout') ? {} : { idleTimeoutMs: 0 }), onEvidence: async (kind, payload) => { await step.reportEfficiencyActivity?.(kind, payload); }, maxConcurrency: effective.executionPolicy.maxConcurrency, ...(step.remainingBudget().maxDurationMs === undefined ? {} : { deadline: Date.now() + step.remainingBudget().maxDurationMs }) });
|
|
261
|
+
// A failure that is really a missing toolchain or dependency (exit 127,
|
|
262
|
+
// "command not found", "Cannot find module"…) is the HOST's to fix, not
|
|
263
|
+
// the model's — for every developer: a fresh worktree has no
|
|
264
|
+
// node_modules whatever wrote the code. Install once and re-verify; only
|
|
265
|
+
// a second failure becomes developer feedback.
|
|
266
|
+
if (!receipt.valid && guardrailEnabled(config.guardrails, 'environment-repair') && receipt.commands.some(command => isEnvironmentFailure(command.exitCode, command.output))) {
|
|
267
|
+
const installs = installEnvironment(context.repositories.map(repository => repository.path), { failureOutput: receipt.commands.map(command => command.output).join('\n'), lockfileRepair: guardrailEnabled(config.guardrails, 'lockfile-repair'), onEvent: event => note('developer', event.kind === 'text' ? event.text ?? '' : `[environment] ${event.tool ?? ''} ${event.detail ?? ''}`.trim()) });
|
|
268
|
+
if (installs.some(outcome => outcome.ok)) {
|
|
269
|
+
note('developer', 'Verification failed on the environment (missing dependencies or tools); the host installed them and is verifying again.');
|
|
270
|
+
receipt = await verifyPipeline(context, { kind: 'full', planHash: effective.planHash, commands: plan, ...(uncovered.length ? { unverified: true } : {}) }, deps.onVerificationOutput, step.signal, { ...(guardrailEnabled(config.guardrails, 'verify-idle-timeout') ? {} : { idleTimeoutMs: 0 }), onEvidence: async (kind, payload) => { await step.reportEfficiencyActivity?.(kind, payload); }, maxConcurrency: effective.executionPolicy.maxConcurrency, ...(step.remainingBudget().maxDurationMs === undefined ? {} : { deadline: Date.now() + step.remainingBudget().maxDurationMs }) });
|
|
271
|
+
}
|
|
272
|
+
}
|
|
201
273
|
const evidence = {
|
|
202
274
|
valid: receipt.valid, ...(receipt.reason ? { reason: receipt.reason } : {}), receiptId: receipt.id, unverifiedRepositories: uncovered,
|
|
203
275
|
commands: receipt.commands.map(({ evidenceId, repositoryId, command, args, exitCode, output }) => ({ ...(evidenceId ? { evidenceId } : {}), repositoryId, command, args, exitCode, output: output.slice(-2000) })),
|
|
204
276
|
};
|
|
205
277
|
if (!receipt.valid) {
|
|
206
|
-
note('
|
|
207
|
-
return { status: 'succeeded', next: '
|
|
278
|
+
note('fixer', `Verification failed (${receipt.reason ?? 'a command failed'}); handing the exact output to the fixer.`);
|
|
279
|
+
return { status: 'succeeded', next: 'fixer', update: { verifyResult: evidence }, output: evidence, usage: NO_SPEND };
|
|
280
|
+
}
|
|
281
|
+
// Exit 0 with "3 failed" in the output is a broken harness, not a pass.
|
|
282
|
+
if (guardrailEnabled(config.guardrails, 'exit-code-honesty')) {
|
|
283
|
+
const findings = receipt.commands.flatMap(command => { const found = exitCodeContradiction(command.exitCode, command.output); return found ? [{ ...found, command: [command.command, ...command.args].join(' ') }] : []; });
|
|
284
|
+
if (findings.length) {
|
|
285
|
+
const reason = exitHonestyReason(findings);
|
|
286
|
+
note('fixer', `Verification exited 0 but reported failures (${findings.map(item => item.sample).join(' | ')}); handing it to the fixer as a failure.`);
|
|
287
|
+
const dishonest = { ...evidence, valid: false, reason };
|
|
288
|
+
return { status: 'succeeded', next: 'fixer', update: { verifyResult: dishonest }, output: dishonest, usage: NO_SPEND };
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
// Every command exited 0 — but did any of them RUN the tests the
|
|
292
|
+
// developer wrote? An enumerating test script (`node tests/a.test.js &&
|
|
293
|
+
// node tests/b.test.js`) silently skips a new file (observed: a 622-line
|
|
294
|
+
// browser suite with 6 failing cases shipped green). The host knows the
|
|
295
|
+
// reported test files and the exact commands; an unreached file is a
|
|
296
|
+
// verification failure with a precise instruction, never a pass.
|
|
297
|
+
if (guardrailEnabled(config.guardrails, 'test-reachability')) {
|
|
298
|
+
const reported = [...(state.development?.tests ?? []), ...(state.development?.files ?? [])];
|
|
299
|
+
const unreached = context.repositories.flatMap(repository => unreachedTestFiles(repository.path, plan.filter(command => command.repositoryId === repository.id).map(({ command, args, cwd }) => ({ command, args, ...(cwd ? { cwd } : {}) })), reported).map(file => context.repositories.length > 1 ? `${repository.id}:${file}` : file));
|
|
300
|
+
if (unreached.length) {
|
|
301
|
+
const reason = unreachedTestsReason(unreached);
|
|
302
|
+
note('fixer', `Verification incomplete: ${unreached.join(', ')} ${unreached.length === 1 ? 'is' : 'are'} not run by any verification command; handing it to the fixer.`);
|
|
303
|
+
const incomplete = { ...evidence, valid: false, reason };
|
|
304
|
+
return { status: 'succeeded', next: 'fixer', update: { verifyResult: incomplete }, output: incomplete, usage: NO_SPEND };
|
|
305
|
+
}
|
|
208
306
|
}
|
|
209
307
|
transitionPipeline(context, 'developer', 'done');
|
|
210
308
|
note('developer', plan.length ? `Verification passed: ${plural(plan.length, 'command')} exited 0.` : 'No verification commands available; relying on task completion and review.');
|
|
@@ -253,12 +351,21 @@ function reviewerNode(deps) {
|
|
|
253
351
|
const { context, change, invoke, note, policy, config } = deps;
|
|
254
352
|
const criteria = frozenAcceptanceCriteria(context);
|
|
255
353
|
return {
|
|
256
|
-
effect: 'write', ends: ['archive', '
|
|
354
|
+
effect: 'write', ends: ['archive', 'fixer'],
|
|
257
355
|
async run(state, step) {
|
|
258
356
|
transitionPipeline(context, 'reviewer', 'running');
|
|
259
357
|
const manifest = boundedReviewManifest(candidateManifest(journal(context)));
|
|
260
358
|
const delta = reviewChanges(state.review?.manifest, manifest);
|
|
261
|
-
|
|
359
|
+
// A follow-up pass (previous verdict + an incremental manifest delta) tells
|
|
360
|
+
// the reviewer what changed and what it already certified, whatever the
|
|
361
|
+
// transport: CLI sessions get the short follow-up below; sessionless
|
|
362
|
+
// (compact/local) reviewers get the same facts inside the full prompt.
|
|
363
|
+
const reReview = config.efficiency?.reviewMode !== 'full' && delta.mode === 'incremental' && state.review
|
|
364
|
+
? { changes: delta.changes, previouslyMet: (journal(context).acceptance?.criteria ?? []).filter(item => item.status === 'met').map(({ specId, criterionIndex }) => ({ specId, criterionIndex })) }
|
|
365
|
+
: undefined;
|
|
366
|
+
if (reReview)
|
|
367
|
+
note('reviewer', `Re-review: ${plural(reReview.changes.length, 'file')} changed since the previous verdict; certifying the previous issues instead of re-reading the candidate.`);
|
|
368
|
+
const prompt = roleInstructions('reviewer', context, change, { definition: config.rolePrompts?.reviewer, feedback: feedbackFor(state), verification: state.plan, policy, criteria, developer: state.development, ...(reReview ? { reReview } : {}) });
|
|
262
369
|
const incremental = config.efficiency?.reviewMode !== 'full' && delta.mode === 'incremental' && state.review?.sessionId;
|
|
263
370
|
const followup = correctionInstructions('reviewer', feedbackFor(state)) + '\nChanges since YOUR previous reviewed candidate:\n' + JSON.stringify(delta.changes)
|
|
264
371
|
+ '\nRecertify EVERY current acceptance criterion; previous met results are not current evidence:\n' + JSON.stringify(criteria)
|
|
@@ -286,8 +393,8 @@ function reviewerNode(deps) {
|
|
|
286
393
|
recordAcceptance(context, report);
|
|
287
394
|
if (!approved) {
|
|
288
395
|
transitionPipeline(context, 'reviewer', 'blocked', 'Review requests corrections');
|
|
289
|
-
note('reviewer', `Review requested corrections (score ${record.score}, ${plural(record.issues.length, 'issue')});
|
|
290
|
-
return { status: 'succeeded', next: '
|
|
396
|
+
note('reviewer', `Review requested corrections (score ${record.score}, ${plural(record.issues.length, 'issue')}); handing them to the fixer.`);
|
|
397
|
+
return { status: 'succeeded', next: 'fixer', update: { review: reviewedRecord }, output: reviewedRecord };
|
|
291
398
|
}
|
|
292
399
|
write(child(context.artifactRoot, 'openspec/changes/' + change + '/confidence-score.json'), JSON.stringify({ change, overall: record.score, aspects: record.aspects, summary: record.summary }, null, 2) + '\n');
|
|
293
400
|
transitionPipeline(context, 'reviewer', 'done');
|
|
@@ -316,6 +423,6 @@ function archiveNode(deps) {
|
|
|
316
423
|
}
|
|
317
424
|
/** The five Core phases as LangGraph nodes. Declaration order defines "downstream" for invalidation. */
|
|
318
425
|
export function coreNodes(deps) {
|
|
319
|
-
return { architect: architectNode(deps), developer: developerNode(deps), verify: verifyNode(deps), reviewer: reviewerNode(deps), archive: archiveNode(deps) };
|
|
426
|
+
return { architect: architectNode(deps), developer: developerNode(deps), fixer: fixerNode(deps), verify: verifyNode(deps), reviewer: reviewerNode(deps), archive: archiveNode(deps) };
|
|
320
427
|
}
|
|
321
428
|
//# sourceMappingURL=nodes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../src/agent-runtime/graph/nodes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../src/agent-runtime/graph/nodes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type InvocationKind } from '../role-routing.js';
|
|
2
2
|
import { type PipelineContext } from '../../installer/runtime/pipeline-state.js';
|
|
3
3
|
import type { ExecutorRegistry } from '../executors.js';
|
|
4
|
-
import { type AgentEvent, type AgentResult, type AgentRole, type AgentUsage, type RuntimeConfig } from '../executor-types.js';
|
|
4
|
+
import { type AgentEvent, type AgentEventRole, type AgentResult, type AgentRole, type AgentUsage, type RuntimeConfig, type RuntimeAgentConfig } from '../executor-types.js';
|
|
5
5
|
import type { WorkflowStepContext } from '../workflow-types.js';
|
|
6
6
|
/** Executor failures that mean "this session cannot be continued", not "the role failed". */
|
|
7
7
|
export declare const SESSION_FALLBACK_CODES: Set<string>;
|
|
@@ -16,6 +16,9 @@ export interface InvokeOptions {
|
|
|
16
16
|
resumeSessionId?: string;
|
|
17
17
|
/** Full prompt for a fresh session when the resumed session is unavailable. */
|
|
18
18
|
fallbackPrompt?: string;
|
|
19
|
+
/** Run this invocation on another configured engine (the fixer) with the matching stance; sessions never carry across engines. */
|
|
20
|
+
agentOverride?: RuntimeAgentConfig;
|
|
21
|
+
stance?: 'fixer';
|
|
19
22
|
}
|
|
20
23
|
export type InvokeOutcome<T> = {
|
|
21
24
|
ok: true;
|
|
@@ -25,6 +28,7 @@ export type InvokeOutcome<T> = {
|
|
|
25
28
|
} | {
|
|
26
29
|
ok: false;
|
|
27
30
|
error: string;
|
|
31
|
+
code?: string;
|
|
28
32
|
};
|
|
29
33
|
/** Validates and converts a role's reply. Throwing `Invalid|Expected|requires|Duplicate|malformed` requests one repair turn. */
|
|
30
34
|
export type Accept<T> = (output: Record<string, unknown> | undefined, text: string, result: AgentResult) => T;
|
|
@@ -34,7 +38,8 @@ export interface RoleInvokerDeps {
|
|
|
34
38
|
config: RuntimeConfig;
|
|
35
39
|
registry: ExecutorRegistry;
|
|
36
40
|
openspec?: Record<AgentRole, import('../openspec.js').OpenSpecRoleContext>;
|
|
37
|
-
|
|
41
|
+
/** `fixer` labels the developer step's events during a correction round on the fixer stance, so a log reader sees who is acting. */
|
|
42
|
+
onAgentEvent?: (role: AgentEventRole, event: AgentEvent) => void;
|
|
38
43
|
}
|
|
39
44
|
export declare function sumUsage(a: AgentUsage, b: AgentUsage): AgentUsage;
|
|
40
45
|
/**
|
|
@@ -59,10 +59,10 @@ export function createRoleInvoker(deps) {
|
|
|
59
59
|
if (budget.maxTokens === 0 || budget.maxCostUsd === 0 || step.signal.aborted)
|
|
60
60
|
throw new AgentExecutionError('No budget remains for another role invocation', step.signal.aborted ? 'aborted' : 'budget_exhausted', { inputTokens: 0, outputTokens: 0, costUsd: 0 });
|
|
61
61
|
const kind = extra.kind ?? (extra.resumeSessionId ? 'correction' : 'initial');
|
|
62
|
-
const route = selectRoleRoute(role, config.agents[role], kind, step.checkpoint, saved.routes[role]);
|
|
62
|
+
const route = selectRoleRoute(role, extra.agentOverride ?? config.agents[role], kind, step.checkpoint, extra.agentOverride ? undefined : saved.routes[role]);
|
|
63
63
|
const selected = route.selection;
|
|
64
64
|
const capabilities = await registry.capabilities(selected.provider, selected.model);
|
|
65
|
-
const identity = fingerprint({ role, selected, transport: capabilities.transport, instructionsVersion: ROLE_INSTRUCTIONS_VERSION, provider: config.providers.find(provider => provider.id === selected.provider) ?? selected.provider, definition: config.rolePrompts?.[role] ?? null, openspec: deps.openspec?.[role] ?? null, context });
|
|
65
|
+
const identity = fingerprint({ role, selected, transport: capabilities.transport, instructionsVersion: ROLE_INSTRUCTIONS_VERSION, provider: config.providers.find(provider => provider.id === selected.provider) ?? selected.provider, definition: (extra.agentOverride ? config.rolePrompts?.fixer : config.rolePrompts?.[role]) ?? null, openspec: deps.openspec?.[role] ?? null, context });
|
|
66
66
|
const previous = saved.sessions[role];
|
|
67
67
|
const resumeSessionId = capabilities.continuation === 'supported' && previous?.identity === identity && previous.sessionId === extra.resumeSessionId ? extra.resumeSessionId : undefined;
|
|
68
68
|
const snapshot = repositoryContextSnapshot(context);
|
|
@@ -71,25 +71,33 @@ export function createRoleInvoker(deps) {
|
|
|
71
71
|
const rolePrompt = !resumeSessionId && extra.fallbackPrompt ? extra.fallbackPrompt : prompt;
|
|
72
72
|
const obligations = '\nCurrent frozen acceptance obligations (all remain required):\n' + JSON.stringify(frozenAcceptanceCriteria(context));
|
|
73
73
|
const fullPrompt = rolePrompt + obligations + '\n\n' + packet;
|
|
74
|
-
if (
|
|
74
|
+
if (extra.agentOverride)
|
|
75
|
+
note(role, `Fixer route: ${selected.provider}/${selected.model ?? 'provider default'} — correction round on the fixer engine`);
|
|
76
|
+
else if (saved.routes[role]?.tier !== route.tier)
|
|
75
77
|
note(role, `Role route: ${selected.provider}/${selected.model ?? 'provider default'} — ${route.reason}`);
|
|
76
|
-
|
|
77
|
-
|
|
78
|
+
if (!extra.agentOverride) {
|
|
79
|
+
saved.routes[role] = { tier: route.tier, reason: route.reason, attemptId: step.attemptId };
|
|
80
|
+
writeRoleState(directory, saved);
|
|
81
|
+
}
|
|
78
82
|
const measurement = { provider: selected.provider, ...(selected.model ? { model: selected.model } : {}),
|
|
79
83
|
contextMode: incremental ? 'incremental' : 'full', promptBytes: Buffer.byteLength(fullPrompt), contextBytes: Buffer.byteLength(packet), handoffBytes: Buffer.byteLength(rolePrompt), requestedEffort: selected.effort ?? null,
|
|
80
84
|
kind, tier: route.tier, routeReason: route.reason };
|
|
81
85
|
const invocationIdentity = await step.reportInvocationStarted?.(measurement);
|
|
82
86
|
const started = performance.now();
|
|
83
87
|
let toolCalls = 0, succeeded = false, usageReported = false, usage = unknownUsage();
|
|
84
|
-
|
|
88
|
+
// Tool calls and notes of a correction round are attributed to the FIXER so
|
|
89
|
+
// the log reads `[fixer] read_file …`, not as another developer pass.
|
|
90
|
+
const onEvent = forward(extra.stance === 'fixer' ? 'fixer' : role, structured);
|
|
85
91
|
try {
|
|
86
92
|
if (deps.openspec?.[role])
|
|
87
93
|
note(role, `OpenSpec ${OPENSPEC_VERSION}: ${ROLE_SKILLS[role]} (official skill document through scoped tools).`);
|
|
88
94
|
const result = await registry.execute(selected.provider, {
|
|
89
95
|
role, prompt: fullPrompt, openspec: deps.openspec?.[role] ? { ...deps.openspec[role], ...(role === 'architect' ? {} : { evidenceScope: { backlogRoot: context.backlogRoot, runId: context.runId } }) } : undefined, cwd: context.artifactRoot, allowedRoots: context.repositories.map(repo => repo.path),
|
|
90
|
-
model: selected.model, effort: selected.effort, maxTurns: selected.maxTurns, signal: step.signal,
|
|
96
|
+
model: selected.model, effort: selected.effort, ...(selected.thinking ? { thinking: selected.thinking } : {}), maxTurns: selected.maxTurns, signal: step.signal,
|
|
91
97
|
timeoutMs: config.limits?.timeoutMs,
|
|
92
98
|
maxTokens: budget.maxTokens, maxCostUsd: budget.maxCostUsd,
|
|
99
|
+
...(config.guardrails ? { guardrails: config.guardrails } : {}),
|
|
100
|
+
...(extra.stance ? { stance: extra.stance } : {}),
|
|
93
101
|
resumeSessionId, outputSchema: extra.outputSchema, onEvent: event => { if (event.kind === 'tool-start')
|
|
94
102
|
toolCalls++; onEvent(event); },
|
|
95
103
|
});
|
|
@@ -143,17 +151,17 @@ export function createRoleInvoker(deps) {
|
|
|
143
151
|
// A correction pass continues the role's own session: the work it did and
|
|
144
152
|
// the reasons behind it are already in context.
|
|
145
153
|
try {
|
|
146
|
-
result = await execute(role, step, options.prompt, structured, { kind: options.kind, resumeSessionId: options.resumeSessionId, outputSchema: options.outputSchema, fallbackPrompt: options.fallbackPrompt });
|
|
154
|
+
result = await execute(role, step, options.prompt, structured, { kind: options.kind, resumeSessionId: options.resumeSessionId, outputSchema: options.outputSchema, fallbackPrompt: options.fallbackPrompt, agentOverride: options.agentOverride, stance: options.stance });
|
|
147
155
|
}
|
|
148
156
|
catch (error) {
|
|
149
157
|
if (!(error instanceof AgentExecutionError) || !SESSION_FALLBACK_CODES.has(error.code))
|
|
150
158
|
throw error;
|
|
151
159
|
note(role, `Previous ${role} session is unavailable; starting a fresh ${role} turn with the same instructions.`);
|
|
152
|
-
result = await execute(role, step, options.fallbackPrompt, structured, { kind: 'session-fallback', outputSchema: options.outputSchema });
|
|
160
|
+
result = await execute(role, step, options.fallbackPrompt, structured, { kind: 'session-fallback', outputSchema: options.outputSchema, agentOverride: options.agentOverride, stance: options.stance });
|
|
153
161
|
}
|
|
154
162
|
}
|
|
155
163
|
else {
|
|
156
|
-
result = await execute(role, step, options.prompt, structured, { kind: options.kind, resumeSessionId: options.resumeSessionId, outputSchema: options.outputSchema, fallbackPrompt: options.fallbackPrompt });
|
|
164
|
+
result = await execute(role, step, options.prompt, structured, { kind: options.kind, resumeSessionId: options.resumeSessionId, outputSchema: options.outputSchema, fallbackPrompt: options.fallbackPrompt, agentOverride: options.agentOverride, stance: options.stance });
|
|
157
165
|
}
|
|
158
166
|
let problem, omittedWorkflow = false;
|
|
159
167
|
try {
|
|
@@ -183,7 +191,7 @@ export function createRoleInvoker(deps) {
|
|
|
183
191
|
}
|
|
184
192
|
}
|
|
185
193
|
catch (error) {
|
|
186
|
-
return { ok: false, error: error instanceof Error ? error.message : String(error) };
|
|
194
|
+
return { ok: false, error: error instanceof Error ? error.message : String(error), ...(error instanceof AgentExecutionError ? { code: error.code } : {}) };
|
|
187
195
|
}
|
|
188
196
|
};
|
|
189
197
|
}
|