specrails-core 5.3.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 +28 -0
- package/dist/agent-runtime/capabilities.js +81 -0
- package/dist/agent-runtime/capabilities.js.map +1 -0
- package/dist/agent-runtime/cli-executor.d.ts +9 -0
- package/dist/agent-runtime/cli-executor.js +109 -34
- 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.d.ts +1 -0
- package/dist/agent-runtime/cli.js +60 -11
- package/dist/agent-runtime/cli.js.map +1 -1
- package/dist/agent-runtime/codex-schema.d.ts +4 -0
- package/dist/agent-runtime/codex-schema.js +31 -0
- package/dist/agent-runtime/codex-schema.js.map +1 -0
- 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.d.ts +4 -0
- package/dist/agent-runtime/config.js +146 -15
- package/dist/agent-runtime/config.js.map +1 -1
- package/dist/agent-runtime/core-host.d.ts +12 -4
- package/dist/agent-runtime/core-host.js +61 -21
- package/dist/agent-runtime/core-host.js.map +1 -1
- package/dist/agent-runtime/efficiency-summary.d.ts +67 -0
- package/dist/agent-runtime/efficiency-summary.js +52 -0
- package/dist/agent-runtime/efficiency-summary.js.map +1 -0
- package/dist/agent-runtime/efficiency-types.d.ts +60 -0
- package/dist/agent-runtime/efficiency-types.js +8 -0
- package/dist/agent-runtime/efficiency-types.js.map +1 -0
- package/dist/agent-runtime/efficiency.d.ts +5 -0
- package/dist/agent-runtime/efficiency.js +35 -0
- package/dist/agent-runtime/efficiency.js.map +1 -0
- package/dist/agent-runtime/evaluation-corpus.d.ts +13 -0
- package/dist/agent-runtime/evaluation-corpus.js +8 -0
- package/dist/agent-runtime/evaluation-corpus.js.map +1 -0
- package/dist/agent-runtime/evaluation.d.ts +43 -0
- package/dist/agent-runtime/evaluation.js +171 -0
- package/dist/agent-runtime/evaluation.js.map +1 -0
- package/dist/agent-runtime/executor-types.d.ts +71 -4
- package/dist/agent-runtime/executor-types.js +7 -2
- package/dist/agent-runtime/executor-types.js.map +1 -1
- package/dist/agent-runtime/executors.d.ts +1 -0
- package/dist/agent-runtime/executors.js +4 -0
- package/dist/agent-runtime/executors.js.map +1 -1
- package/dist/agent-runtime/graph/artifacts.d.ts +8 -22
- package/dist/agent-runtime/graph/artifacts.js +99 -73
- package/dist/agent-runtime/graph/artifacts.js.map +1 -1
- package/dist/agent-runtime/graph/nodes.d.ts +7 -2
- package/dist/agent-runtime/graph/nodes.js +207 -53
- package/dist/agent-runtime/graph/nodes.js.map +1 -1
- package/dist/agent-runtime/graph/roles.d.ts +11 -3
- package/dist/agent-runtime/graph/roles.js +109 -37
- package/dist/agent-runtime/graph/roles.js.map +1 -1
- package/dist/agent-runtime/graph/state.d.ts +10 -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/index.d.ts +7 -1
- package/dist/agent-runtime/index.js +7 -1
- package/dist/agent-runtime/index.js.map +1 -1
- package/dist/agent-runtime/kimi-acp.d.ts +4 -0
- package/dist/agent-runtime/kimi-acp.js +20 -9
- package/dist/agent-runtime/kimi-acp.js.map +1 -1
- package/dist/agent-runtime/openai-executor.d.ts +33 -1
- package/dist/agent-runtime/openai-executor.js +76 -113
- package/dist/agent-runtime/openai-executor.js.map +1 -1
- package/dist/agent-runtime/openspec-tool-server.d.ts +1 -0
- package/dist/agent-runtime/openspec-tool-server.js +37 -0
- package/dist/agent-runtime/openspec-tool-server.js.map +1 -0
- package/dist/agent-runtime/openspec.d.ts +198 -0
- package/dist/agent-runtime/openspec.js +329 -0
- package/dist/agent-runtime/openspec.js.map +1 -0
- package/dist/agent-runtime/prompts.d.ts +24 -1
- package/dist/agent-runtime/prompts.js +112 -43
- package/dist/agent-runtime/prompts.js.map +1 -1
- package/dist/agent-runtime/provider-diagnostic.d.ts +2 -0
- package/dist/agent-runtime/provider-diagnostic.js +25 -0
- package/dist/agent-runtime/provider-diagnostic.js.map +1 -0
- package/dist/agent-runtime/repository-context.d.ts +25 -0
- package/dist/agent-runtime/repository-context.js +127 -0
- package/dist/agent-runtime/repository-context.js.map +1 -0
- package/dist/agent-runtime/review-context.d.ts +14 -0
- package/dist/agent-runtime/review-context.js +41 -0
- package/dist/agent-runtime/review-context.js.map +1 -0
- package/dist/agent-runtime/role-routing.d.ts +10 -0
- package/dist/agent-runtime/role-routing.js +30 -0
- package/dist/agent-runtime/role-routing.js.map +1 -0
- package/dist/agent-runtime/role-state.d.ts +19 -0
- package/dist/agent-runtime/role-state.js +24 -0
- package/dist/agent-runtime/role-state.js.map +1 -0
- package/dist/agent-runtime/runtime-identity.d.ts +11 -0
- package/dist/agent-runtime/runtime-identity.js +33 -0
- package/dist/agent-runtime/runtime-identity.js.map +1 -0
- package/dist/agent-runtime/tool-event.d.ts +3 -0
- package/dist/agent-runtime/tool-event.js +24 -0
- package/dist/agent-runtime/tool-event.js.map +1 -0
- package/dist/agent-runtime/verification-plan.d.ts +55 -0
- package/dist/agent-runtime/verification-plan.js +206 -0
- package/dist/agent-runtime/verification-plan.js.map +1 -0
- package/dist/agent-runtime/workflow-types.d.ts +19 -1
- package/dist/agent-runtime/workflow.js +29 -2
- package/dist/agent-runtime/workflow.js.map +1 -1
- package/dist/agent-runtime/workspace-tools.d.ts +4 -0
- package/dist/agent-runtime/workspace-tools.js +182 -20
- package/dist/agent-runtime/workspace-tools.js.map +1 -1
- package/dist/installer/phases/scaffold.js +39 -109
- package/dist/installer/phases/scaffold.js.map +1 -1
- package/dist/installer/runtime/pipeline-state.d.ts +143 -1
- package/dist/installer/runtime/pipeline-state.js +510 -30
- package/dist/installer/runtime/pipeline-state.js.map +1 -1
- package/docs/agent-runtime-efficiency.md +65 -0
- package/docs/agent-runtime.md +86 -15
- package/integration-contract.json +2 -1
- package/package.json +5 -2
- package/schemas/agent-runtime.schema.json +34 -4
- package/schemas/fixtures/runtime-efficiency-summary.v1.json +790 -0
- package/templates/codex-skills/batch-implement/SKILL.md +33 -58
- package/templates/codex-skills/implement/SKILL.md +21 -124
- package/templates/codex-skills/retry/SKILL.md +8 -34
- package/templates/commands/specrails/batch-implement.md +21 -16
- package/templates/commands/specrails/implement.md +17 -276
- package/templates/commands/specrails/retry.md +6 -34
- package/templates/gemini-commands/batch-implement.toml +34 -28
- package/templates/gemini-commands/implement.toml +34 -55
- package/templates/gemini-commands/retry.toml +10 -16
|
@@ -1,13 +1,26 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { guardrailEnabled } from '../guardrails.js';
|
|
2
|
+
import { addDeveloperChecks, bindPlan, expandedPlanCommands, initializeVerificationPlan, readVerificationPlan, validateProposedChecks } from '../verification-plan.js';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { OpenSpecTools } from '../openspec.js';
|
|
5
|
+
import { candidateManifest, fingerprintCandidate, frozenAcceptanceCriteria, recordAcceptance, transitionPipeline, validateAcceptanceReport, verifyPipeline, } from '../../installer/runtime/pipeline-state.js';
|
|
2
6
|
import { ARCHITECT_OUTPUT_SCHEMA, DEVELOPER_OUTPUT_SCHEMA, REVIEW_OUTPUT_SCHEMA, correctionInstructions, deepenInstructions, roleInstructions } from '../prompts.js';
|
|
3
|
-
import { archive, child, journal, object,
|
|
7
|
+
import { archive, child, journal, object, parseArchitecture, proposedVerification, write, writeDesignConfidence } from './artifacts.js';
|
|
4
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';
|
|
12
|
+
import { boundedReviewManifest, reviewChanges } from '../review-context.js';
|
|
5
13
|
/** Autonomous investigation passes before a low-confidence design asks or proceeds. */
|
|
6
14
|
export const MAX_DEEPEN_PASSES = 1;
|
|
7
15
|
const DEVELOPER_SUMMARY_LIMIT = 32_000;
|
|
8
16
|
/** Deterministic steps spend nothing; provider spend is reported by the role invoker as it happens. */
|
|
9
17
|
const NO_SPEND = { costUsd: 0, inputTokens: 0, outputTokens: 0 };
|
|
10
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
|
+
}
|
|
11
24
|
function plural(count, noun) { return `${count} ${noun}${count === 1 ? '' : 's'}`; }
|
|
12
25
|
function feedbackFor(state) {
|
|
13
26
|
return { verification: state.verifyResult, review: state.review };
|
|
@@ -17,6 +30,15 @@ export function developerVisitsSinceResume(checkpoint) {
|
|
|
17
30
|
const resumed = [...checkpoint.events].reverse().find(event => event.type === 'workflow_resumed');
|
|
18
31
|
return checkpoint.history.filter(attempt => attempt.stepId === 'developer' && (!resumed || attempt.startedAt >= resumed.timestamp)).length;
|
|
19
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
|
+
}
|
|
20
42
|
function uncoveredRepositories(context, plan) {
|
|
21
43
|
return context.repositories.filter(repository => !plan.some(command => command.repositoryId === repository.id)).map(repository => repository.id);
|
|
22
44
|
}
|
|
@@ -45,6 +67,8 @@ function architectNode(deps) {
|
|
|
45
67
|
const { context, config, change, invoke, note } = deps;
|
|
46
68
|
const accept = (output) => {
|
|
47
69
|
const architecture = parseArchitecture(object(output));
|
|
70
|
+
if (config.efficiency?.planning === 'full' || context.repositories.length > 1 || /\b(?:migration|security|authentication|authorization|public contract|public api|migraci[oó]n|seguridad)\b/i.test(context.specs.map(spec => spec.title + ' ' + spec.description).join('\n')))
|
|
71
|
+
architecture.planningDepth = 'full';
|
|
48
72
|
// Malformed proposals are repaired inside the same session, like any other structural defect.
|
|
49
73
|
proposedVerification(context, config.verification, architecture.verification);
|
|
50
74
|
return architecture;
|
|
@@ -63,16 +87,16 @@ function architectNode(deps) {
|
|
|
63
87
|
fresh.push(reply.answer);
|
|
64
88
|
note('architect', 'Continuing the architecture with the answer to the blocking question.');
|
|
65
89
|
}
|
|
66
|
-
const prompt = roleInstructions('architect', context, change, { verification: config.verification, answers });
|
|
90
|
+
const prompt = roleInstructions('architect', context, change, { definition: config.rolePrompts?.architect, verification: config.verification, answers, planning: config.efficiency?.planning });
|
|
67
91
|
const first = await invoke('architect', step, { prompt, structured: true, outputSchema: ARCHITECT_OUTPUT_SCHEMA }, accept);
|
|
68
92
|
if (!first.ok)
|
|
69
|
-
return
|
|
93
|
+
return settle(first, 'Resume to run the architect again, or raise limits.timeoutMs.');
|
|
70
94
|
let architecture = first.value;
|
|
71
95
|
let passes = state.deepenPasses;
|
|
72
|
-
if (architecture.confidence === 'low' && passes < MAX_DEEPEN_PASSES
|
|
96
|
+
if (architecture.confidence === 'low' && passes < MAX_DEEPEN_PASSES) {
|
|
73
97
|
passes += 1;
|
|
74
98
|
note('architect', `Design confidence is low${architecture.question ? ` (${architecture.question})` : ''}; asking the architect to investigate the code further before deciding.`);
|
|
75
|
-
const second = await invoke('architect', step, { prompt: deepenInstructions(architecture.question), structured: true, outputSchema: ARCHITECT_OUTPUT_SCHEMA, resumeSessionId: first.result.sessionId }, accept);
|
|
99
|
+
const second = await invoke('architect', step, { kind: 'deepen', prompt: deepenInstructions(architecture.question), fallbackPrompt: prompt + '\nPrevious response (bounded):\n' + first.text.slice(-32_000) + '\n' + deepenInstructions(architecture.question), structured: true, outputSchema: ARCHITECT_OUTPUT_SCHEMA, resumeSessionId: first.result.sessionId }, accept);
|
|
76
100
|
if (second.ok)
|
|
77
101
|
architecture = second.value;
|
|
78
102
|
else
|
|
@@ -84,7 +108,7 @@ function architectNode(deps) {
|
|
|
84
108
|
if ((config.architect?.onLowConfidence ?? 'ask') === 'ask') {
|
|
85
109
|
// The draft artifacts are written first so the requester can read the
|
|
86
110
|
// proposal while answering; the resumed pass replaces them.
|
|
87
|
-
|
|
111
|
+
writeDesignConfidence(context, change, architecture);
|
|
88
112
|
transitionPipeline(context, 'architect', 'blocked', 'Design confidence is low');
|
|
89
113
|
note('architect', 'Design confidence is still low; pausing until the blocking question is answered.');
|
|
90
114
|
step.interrupt({ kind: 'question', question });
|
|
@@ -92,16 +116,25 @@ function architectNode(deps) {
|
|
|
92
116
|
assumed = true;
|
|
93
117
|
note('architect', 'Design confidence is still low; proceeding on the stated assumptions because architect.onLowConfidence is "proceed".');
|
|
94
118
|
}
|
|
119
|
+
const workflow = new OpenSpecTools(deps.openspec.architect, step.signal);
|
|
120
|
+
workflow.assertParticipation();
|
|
121
|
+
const applied = await workflow.assertReady();
|
|
122
|
+
const specs = Object.keys((await workflow.status()).artifactPaths).length ? (applied.contextFiles.specs ?? []) : [];
|
|
123
|
+
const names = (Array.isArray(specs) ? specs : [specs]).map(file => path.basename(path.dirname(file)));
|
|
95
124
|
const proposed = proposedVerification(context, config.verification, architecture.verification);
|
|
96
|
-
|
|
97
|
-
const
|
|
125
|
+
writeDesignConfidence(context, change, architecture, { assumed });
|
|
126
|
+
const effective = initializeVerificationPlan(context, config.verification, proposed, config.efficiency?.verification?.maxConcurrency);
|
|
127
|
+
bindPlan(context, effective);
|
|
128
|
+
const plan = expandedPlanCommands(context, effective);
|
|
98
129
|
const uncovered = uncoveredRepositories(context, plan);
|
|
99
130
|
transitionPipeline(context, 'architect', 'done');
|
|
100
|
-
note('architect', `Architecture written: ${plural(
|
|
131
|
+
note('architect', `Architecture written: ${plural(applied.progress.total, 'task')}, spec${names.length === 1 ? '' : 's'} ${names.join(', ')}, confidence ${architecture.confidence}.`
|
|
101
132
|
+ (proposed.length ? ` Verification proposed by the architect: ${proposed.map(command => [command.command, ...command.args].join(' ')).join('; ')}.` : '')
|
|
102
133
|
+ (uncovered.length ? ` No verification command for ${uncovered.join(', ')}; the reviewer will inspect that work without automated checks.` : ''));
|
|
103
134
|
const record = {
|
|
104
|
-
change, tasks:
|
|
135
|
+
change, tasks: applied.progress.total, specs: names, confidence: architecture.confidence,
|
|
136
|
+
planningDepth: architecture.planningDepth, referencePatterns: architecture.referencePatterns, riskFlags: architecture.riskFlags,
|
|
137
|
+
...(architecture.planningReason ? { planningReason: architecture.planningReason } : {}),
|
|
105
138
|
...(architecture.question ? { question: architecture.question } : {}), ...(assumed ? { assumed: true } : {}),
|
|
106
139
|
};
|
|
107
140
|
return {
|
|
@@ -112,62 +145,164 @@ function architectNode(deps) {
|
|
|
112
145
|
},
|
|
113
146
|
};
|
|
114
147
|
}
|
|
115
|
-
|
|
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) {
|
|
116
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) {
|
|
117
216
|
return {
|
|
118
217
|
effect: 'write', ends: ['verify'],
|
|
119
218
|
async run(state, step) {
|
|
120
|
-
|
|
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 };
|
|
224
|
+
}
|
|
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) {
|
|
121
234
|
return { status: 'blocked', error: 'Implementation correction limit reached; inspect the feedback in the log and resume to grant more attempts', usage: NO_SPEND };
|
|
122
235
|
}
|
|
123
|
-
|
|
124
|
-
const feedback = feedbackFor(state);
|
|
125
|
-
const provider = config.agents.developer.provider;
|
|
126
|
-
const full = roleInstructions('developer', context, change, { feedback, verification: state.plan });
|
|
127
|
-
const previous = state.development;
|
|
128
|
-
const resumable = previous?.sessionId !== undefined && previous.provider === provider && developerVisitsSinceResume(step.checkpoint) > 1;
|
|
129
|
-
const outcome = await invoke('developer', step, {
|
|
130
|
-
...(resumable
|
|
131
|
-
? { prompt: correctionInstructions('developer', feedback), resumeSessionId: previous.sessionId, fallbackPrompt: full }
|
|
132
|
-
: { prompt: full }),
|
|
133
|
-
structured: true, lenient: true, outputSchema: DEVELOPER_OUTPUT_SCHEMA,
|
|
134
|
-
}, (output, text, result) => developerRecord(output, text, result, provider));
|
|
135
|
-
if (!outcome.ok)
|
|
136
|
-
return failed(outcome.error);
|
|
137
|
-
const record = outcome.value;
|
|
138
|
-
note('developer', record.structured
|
|
139
|
-
? `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` : ''}.`
|
|
140
|
-
: 'Developer finished without the structured summary; the prose summary is recorded instead.');
|
|
141
|
-
return {
|
|
142
|
-
status: 'succeeded', next: 'verify', update: { development: record },
|
|
143
|
-
output: { summary: record.summary, provider, ...(record.sessionId ? { sessionId: record.sessionId } : {}), files: record.files, tests: record.tests, incomplete: record.incomplete, structured: record.structured },
|
|
144
|
-
};
|
|
236
|
+
return implementationVisit(deps, state, step, 'fixer');
|
|
145
237
|
},
|
|
146
238
|
};
|
|
147
239
|
}
|
|
148
240
|
function verifyNode(deps) {
|
|
149
|
-
const { context,
|
|
241
|
+
const { context, note, config } = deps;
|
|
150
242
|
return {
|
|
151
|
-
effect: 'write', ends: ['reviewer', 'developer'],
|
|
243
|
+
effect: 'write', ends: ['reviewer', 'developer', 'fixer'],
|
|
152
244
|
async run(state, step) {
|
|
153
245
|
// Unchecked tasks are developer feedback, not a workflow failure: the
|
|
154
246
|
// developer sees exactly which tasks remain and continues its session.
|
|
155
|
-
const
|
|
247
|
+
const workflow = new OpenSpecTools(deps.openspec.developer, step.signal);
|
|
248
|
+
const applied = await workflow.assertReady();
|
|
249
|
+
const open = applied.tasks.filter(task => !task.done).map(task => task.description);
|
|
156
250
|
if (open.length) {
|
|
157
251
|
note('developer', `Verification skipped: ${plural(open.length, 'task')} still unchecked in tasks.md; returning to the developer.`);
|
|
158
252
|
const evidence = { valid: false, reason: 'Required implementation tasks remain unchecked in tasks.md', incompleteTasks: open, unverifiedRepositories: [], commands: [] };
|
|
159
253
|
return { status: 'succeeded', next: 'developer', update: { verifyResult: evidence }, output: evidence, usage: NO_SPEND };
|
|
160
254
|
}
|
|
161
|
-
const
|
|
255
|
+
const effective = readVerificationPlan(context);
|
|
256
|
+
if (!effective)
|
|
257
|
+
throw new Error('Verification plan is unavailable');
|
|
258
|
+
const plan = expandedPlanCommands(context, effective);
|
|
162
259
|
const uncovered = uncoveredRepositories(context, plan);
|
|
163
|
-
|
|
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
|
+
}
|
|
164
273
|
const evidence = {
|
|
165
274
|
valid: receipt.valid, ...(receipt.reason ? { reason: receipt.reason } : {}), receiptId: receipt.id, unverifiedRepositories: uncovered,
|
|
166
|
-
commands: receipt.commands.map(({ repositoryId, command, args, exitCode, output }) => ({ repositoryId, command, args, exitCode, output })),
|
|
275
|
+
commands: receipt.commands.map(({ evidenceId, repositoryId, command, args, exitCode, output }) => ({ ...(evidenceId ? { evidenceId } : {}), repositoryId, command, args, exitCode, output: output.slice(-2000) })),
|
|
167
276
|
};
|
|
168
277
|
if (!receipt.valid) {
|
|
169
|
-
note('
|
|
170
|
-
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
|
+
}
|
|
171
306
|
}
|
|
172
307
|
transitionPipeline(context, 'developer', 'done');
|
|
173
308
|
note('developer', plan.length ? `Verification passed: ${plural(plan.length, 'command')} exited 0.` : 'No verification commands available; relying on task completion and review.');
|
|
@@ -213,14 +348,29 @@ export function buildAcceptanceReport(criteria, verification, raw) {
|
|
|
213
348
|
return { criteria: certified, checks, findings: (Array.isArray(input.findings) ? input.findings : []) };
|
|
214
349
|
}
|
|
215
350
|
function reviewerNode(deps) {
|
|
216
|
-
const { context, change, invoke, note, policy } = deps;
|
|
351
|
+
const { context, change, invoke, note, policy, config } = deps;
|
|
217
352
|
const criteria = frozenAcceptanceCriteria(context);
|
|
218
353
|
return {
|
|
219
|
-
effect: 'write', ends: ['archive', '
|
|
354
|
+
effect: 'write', ends: ['archive', 'fixer'],
|
|
220
355
|
async run(state, step) {
|
|
221
356
|
transitionPipeline(context, 'reviewer', 'running');
|
|
222
|
-
const
|
|
223
|
-
const
|
|
357
|
+
const manifest = boundedReviewManifest(candidateManifest(journal(context)));
|
|
358
|
+
const delta = reviewChanges(state.review?.manifest, manifest);
|
|
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 } : {}) });
|
|
369
|
+
const incremental = config.efficiency?.reviewMode !== 'full' && delta.mode === 'incremental' && state.review?.sessionId;
|
|
370
|
+
const followup = correctionInstructions('reviewer', feedbackFor(state)) + '\nChanges since YOUR previous reviewed candidate:\n' + JSON.stringify(delta.changes)
|
|
371
|
+
+ '\nRecertify EVERY current acceptance criterion; previous met results are not current evidence:\n' + JSON.stringify(criteria)
|
|
372
|
+
+ '\nCurrent developer handoff:\n' + JSON.stringify(state.development);
|
|
373
|
+
const outcome = await invoke('reviewer', step, { kind: state.review ? 'correction' : 'initial', prompt: incremental ? followup : prompt, ...(incremental ? { resumeSessionId: state.review.sessionId, fallbackPrompt: prompt } : {}), structured: true, outputSchema: REVIEW_OUTPUT_SCHEMA }, output => {
|
|
224
374
|
const raw = object(output);
|
|
225
375
|
const review = evaluateReview(raw, policy);
|
|
226
376
|
const report = buildAcceptanceReport(criteria, state.verifyResult, raw.acceptance);
|
|
@@ -234,18 +384,22 @@ function reviewerNode(deps) {
|
|
|
234
384
|
});
|
|
235
385
|
if (!outcome.ok)
|
|
236
386
|
return failed(outcome.error);
|
|
387
|
+
const workflow = new OpenSpecTools(deps.openspec.reviewer, step.signal);
|
|
388
|
+
workflow.assertParticipation();
|
|
389
|
+
await workflow.assertReady();
|
|
237
390
|
const { record, approved, report } = outcome.value;
|
|
391
|
+
const reviewedRecord = { ...record, manifest, ...(outcome.result.sessionId ? { sessionId: outcome.result.sessionId } : {}) };
|
|
238
392
|
// Acceptance evidence is bound to the exact candidate before the reviewer verdict is recorded.
|
|
239
393
|
recordAcceptance(context, report);
|
|
240
394
|
if (!approved) {
|
|
241
395
|
transitionPipeline(context, 'reviewer', 'blocked', 'Review requests corrections');
|
|
242
|
-
note('reviewer', `Review requested corrections (score ${record.score}, ${plural(record.issues.length, 'issue')});
|
|
243
|
-
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 };
|
|
244
398
|
}
|
|
245
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');
|
|
246
400
|
transitionPipeline(context, 'reviewer', 'done');
|
|
247
401
|
note('reviewer', `Review approved with score ${record.score}: ${record.summary}`);
|
|
248
|
-
const reviewed = { ...
|
|
402
|
+
const reviewed = { ...reviewedRecord, candidateHash: fingerprintCandidate(journal(context)) };
|
|
249
403
|
return { status: 'succeeded', next: 'archive', update: { review: reviewed }, output: reviewed };
|
|
250
404
|
},
|
|
251
405
|
};
|
|
@@ -255,13 +409,13 @@ function archiveNode(deps) {
|
|
|
255
409
|
return {
|
|
256
410
|
effect: 'write', ends: [],
|
|
257
411
|
async run(_state, step) {
|
|
258
|
-
if (journal(context).phases.archive.status !== 'done' && config.approvalBeforeArchive) {
|
|
412
|
+
if (journal(context).phases.archive.status !== 'done' && config.approvalBeforeArchive && !deps.archiveApproved?.()) {
|
|
259
413
|
// Pauses until the host grants the approval; a resumed node passes straight
|
|
260
414
|
// through. The pause itself spends nothing, and says so.
|
|
261
415
|
step.reportUsage(NO_SPEND);
|
|
262
416
|
step.interrupt({ kind: 'approval', reason: 'Approve archive after inspecting the verified implementation' });
|
|
263
417
|
}
|
|
264
|
-
archive(context, change);
|
|
418
|
+
await archive(context, change, step.signal);
|
|
265
419
|
const record = { archivePath: journal(context).archivePath, deliveryOwner: context.ownership.git };
|
|
266
420
|
return { status: 'succeeded', next: null, update: { archived: record }, output: record, usage: NO_SPEND };
|
|
267
421
|
},
|
|
@@ -269,6 +423,6 @@ function archiveNode(deps) {
|
|
|
269
423
|
}
|
|
270
424
|
/** The five Core phases as LangGraph nodes. Declaration order defines "downstream" for invalidation. */
|
|
271
425
|
export function coreNodes(deps) {
|
|
272
|
-
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) };
|
|
273
427
|
}
|
|
274
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,10 +1,12 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type InvocationKind } from '../role-routing.js';
|
|
2
|
+
import { type PipelineContext } from '../../installer/runtime/pipeline-state.js';
|
|
2
3
|
import type { ExecutorRegistry } from '../executors.js';
|
|
3
|
-
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';
|
|
4
5
|
import type { WorkflowStepContext } from '../workflow-types.js';
|
|
5
6
|
/** Executor failures that mean "this session cannot be continued", not "the role failed". */
|
|
6
7
|
export declare const SESSION_FALLBACK_CODES: Set<string>;
|
|
7
8
|
export interface InvokeOptions {
|
|
9
|
+
kind?: InvocationKind;
|
|
8
10
|
prompt: string;
|
|
9
11
|
/** Parse the reply as one JSON object and hand it to `accept`. */
|
|
10
12
|
structured?: boolean;
|
|
@@ -14,6 +16,9 @@ export interface InvokeOptions {
|
|
|
14
16
|
resumeSessionId?: string;
|
|
15
17
|
/** Full prompt for a fresh session when the resumed session is unavailable. */
|
|
16
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';
|
|
17
22
|
}
|
|
18
23
|
export type InvokeOutcome<T> = {
|
|
19
24
|
ok: true;
|
|
@@ -23,6 +28,7 @@ export type InvokeOutcome<T> = {
|
|
|
23
28
|
} | {
|
|
24
29
|
ok: false;
|
|
25
30
|
error: string;
|
|
31
|
+
code?: string;
|
|
26
32
|
};
|
|
27
33
|
/** Validates and converts a role's reply. Throwing `Invalid|Expected|requires|Duplicate|malformed` requests one repair turn. */
|
|
28
34
|
export type Accept<T> = (output: Record<string, unknown> | undefined, text: string, result: AgentResult) => T;
|
|
@@ -31,7 +37,9 @@ export interface RoleInvokerDeps {
|
|
|
31
37
|
context: PipelineContext;
|
|
32
38
|
config: RuntimeConfig;
|
|
33
39
|
registry: ExecutorRegistry;
|
|
34
|
-
|
|
40
|
+
openspec?: Record<AgentRole, import('../openspec.js').OpenSpecRoleContext>;
|
|
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;
|
|
35
43
|
}
|
|
36
44
|
export declare function sumUsage(a: AgentUsage, b: AgentUsage): AgentUsage;
|
|
37
45
|
/**
|