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.
Files changed (156) hide show
  1. package/README.md +2 -0
  2. package/dist/agent-runtime/capabilities.d.ts +28 -0
  3. package/dist/agent-runtime/capabilities.js +81 -0
  4. package/dist/agent-runtime/capabilities.js.map +1 -0
  5. package/dist/agent-runtime/cli-executor.d.ts +9 -0
  6. package/dist/agent-runtime/cli-executor.js +109 -34
  7. package/dist/agent-runtime/cli-executor.js.map +1 -1
  8. package/dist/agent-runtime/cli-process.d.ts +1 -0
  9. package/dist/agent-runtime/cli-process.js +13 -2
  10. package/dist/agent-runtime/cli-process.js.map +1 -1
  11. package/dist/agent-runtime/cli.d.ts +1 -0
  12. package/dist/agent-runtime/cli.js +60 -11
  13. package/dist/agent-runtime/cli.js.map +1 -1
  14. package/dist/agent-runtime/codex-schema.d.ts +4 -0
  15. package/dist/agent-runtime/codex-schema.js +31 -0
  16. package/dist/agent-runtime/codex-schema.js.map +1 -0
  17. package/dist/agent-runtime/compact/architect.d.ts +349 -0
  18. package/dist/agent-runtime/compact/architect.js +371 -0
  19. package/dist/agent-runtime/compact/architect.js.map +1 -0
  20. package/dist/agent-runtime/compact/chat-client.d.ts +83 -0
  21. package/dist/agent-runtime/compact/chat-client.js +307 -0
  22. package/dist/agent-runtime/compact/chat-client.js.map +1 -0
  23. package/dist/agent-runtime/compact/developer.d.ts +160 -0
  24. package/dist/agent-runtime/compact/developer.js +823 -0
  25. package/dist/agent-runtime/compact/developer.js.map +1 -0
  26. package/dist/agent-runtime/compact/environment.d.ts +62 -0
  27. package/dist/agent-runtime/compact/environment.js +213 -0
  28. package/dist/agent-runtime/compact/environment.js.map +1 -0
  29. package/dist/agent-runtime/compact/exit-code-honesty.d.ts +8 -0
  30. package/dist/agent-runtime/compact/exit-code-honesty.js +28 -0
  31. package/dist/agent-runtime/compact/exit-code-honesty.js.map +1 -0
  32. package/dist/agent-runtime/compact/guarded-loop.d.ts +73 -0
  33. package/dist/agent-runtime/compact/guarded-loop.js +320 -0
  34. package/dist/agent-runtime/compact/guarded-loop.js.map +1 -0
  35. package/dist/agent-runtime/compact/prompt-inputs.d.ts +42 -0
  36. package/dist/agent-runtime/compact/prompt-inputs.js +59 -0
  37. package/dist/agent-runtime/compact/prompt-inputs.js.map +1 -0
  38. package/dist/agent-runtime/compact/reviewer.d.ts +24 -0
  39. package/dist/agent-runtime/compact/reviewer.js +178 -0
  40. package/dist/agent-runtime/compact/reviewer.js.map +1 -0
  41. package/dist/agent-runtime/compact/step.d.ts +70 -0
  42. package/dist/agent-runtime/compact/step.js +136 -0
  43. package/dist/agent-runtime/compact/step.js.map +1 -0
  44. package/dist/agent-runtime/compact/test-reachability.d.ts +30 -0
  45. package/dist/agent-runtime/compact/test-reachability.js +147 -0
  46. package/dist/agent-runtime/compact/test-reachability.js.map +1 -0
  47. package/dist/agent-runtime/config.d.ts +4 -0
  48. package/dist/agent-runtime/config.js +146 -15
  49. package/dist/agent-runtime/config.js.map +1 -1
  50. package/dist/agent-runtime/core-host.d.ts +12 -4
  51. package/dist/agent-runtime/core-host.js +61 -21
  52. package/dist/agent-runtime/core-host.js.map +1 -1
  53. package/dist/agent-runtime/efficiency-summary.d.ts +67 -0
  54. package/dist/agent-runtime/efficiency-summary.js +52 -0
  55. package/dist/agent-runtime/efficiency-summary.js.map +1 -0
  56. package/dist/agent-runtime/efficiency-types.d.ts +60 -0
  57. package/dist/agent-runtime/efficiency-types.js +8 -0
  58. package/dist/agent-runtime/efficiency-types.js.map +1 -0
  59. package/dist/agent-runtime/efficiency.d.ts +5 -0
  60. package/dist/agent-runtime/efficiency.js +35 -0
  61. package/dist/agent-runtime/efficiency.js.map +1 -0
  62. package/dist/agent-runtime/evaluation-corpus.d.ts +13 -0
  63. package/dist/agent-runtime/evaluation-corpus.js +8 -0
  64. package/dist/agent-runtime/evaluation-corpus.js.map +1 -0
  65. package/dist/agent-runtime/evaluation.d.ts +43 -0
  66. package/dist/agent-runtime/evaluation.js +171 -0
  67. package/dist/agent-runtime/evaluation.js.map +1 -0
  68. package/dist/agent-runtime/executor-types.d.ts +71 -4
  69. package/dist/agent-runtime/executor-types.js +7 -2
  70. package/dist/agent-runtime/executor-types.js.map +1 -1
  71. package/dist/agent-runtime/executors.d.ts +1 -0
  72. package/dist/agent-runtime/executors.js +4 -0
  73. package/dist/agent-runtime/executors.js.map +1 -1
  74. package/dist/agent-runtime/graph/artifacts.d.ts +8 -22
  75. package/dist/agent-runtime/graph/artifacts.js +99 -73
  76. package/dist/agent-runtime/graph/artifacts.js.map +1 -1
  77. package/dist/agent-runtime/graph/nodes.d.ts +7 -2
  78. package/dist/agent-runtime/graph/nodes.js +207 -53
  79. package/dist/agent-runtime/graph/nodes.js.map +1 -1
  80. package/dist/agent-runtime/graph/roles.d.ts +11 -3
  81. package/dist/agent-runtime/graph/roles.js +109 -37
  82. package/dist/agent-runtime/graph/roles.js.map +1 -1
  83. package/dist/agent-runtime/graph/state.d.ts +10 -1
  84. package/dist/agent-runtime/graph/state.js +2 -1
  85. package/dist/agent-runtime/graph/state.js.map +1 -1
  86. package/dist/agent-runtime/guardrails.d.ts +15 -0
  87. package/dist/agent-runtime/guardrails.js +76 -0
  88. package/dist/agent-runtime/guardrails.js.map +1 -0
  89. package/dist/agent-runtime/index.d.ts +7 -1
  90. package/dist/agent-runtime/index.js +7 -1
  91. package/dist/agent-runtime/index.js.map +1 -1
  92. package/dist/agent-runtime/kimi-acp.d.ts +4 -0
  93. package/dist/agent-runtime/kimi-acp.js +20 -9
  94. package/dist/agent-runtime/kimi-acp.js.map +1 -1
  95. package/dist/agent-runtime/openai-executor.d.ts +33 -1
  96. package/dist/agent-runtime/openai-executor.js +76 -113
  97. package/dist/agent-runtime/openai-executor.js.map +1 -1
  98. package/dist/agent-runtime/openspec-tool-server.d.ts +1 -0
  99. package/dist/agent-runtime/openspec-tool-server.js +37 -0
  100. package/dist/agent-runtime/openspec-tool-server.js.map +1 -0
  101. package/dist/agent-runtime/openspec.d.ts +198 -0
  102. package/dist/agent-runtime/openspec.js +329 -0
  103. package/dist/agent-runtime/openspec.js.map +1 -0
  104. package/dist/agent-runtime/prompts.d.ts +24 -1
  105. package/dist/agent-runtime/prompts.js +112 -43
  106. package/dist/agent-runtime/prompts.js.map +1 -1
  107. package/dist/agent-runtime/provider-diagnostic.d.ts +2 -0
  108. package/dist/agent-runtime/provider-diagnostic.js +25 -0
  109. package/dist/agent-runtime/provider-diagnostic.js.map +1 -0
  110. package/dist/agent-runtime/repository-context.d.ts +25 -0
  111. package/dist/agent-runtime/repository-context.js +127 -0
  112. package/dist/agent-runtime/repository-context.js.map +1 -0
  113. package/dist/agent-runtime/review-context.d.ts +14 -0
  114. package/dist/agent-runtime/review-context.js +41 -0
  115. package/dist/agent-runtime/review-context.js.map +1 -0
  116. package/dist/agent-runtime/role-routing.d.ts +10 -0
  117. package/dist/agent-runtime/role-routing.js +30 -0
  118. package/dist/agent-runtime/role-routing.js.map +1 -0
  119. package/dist/agent-runtime/role-state.d.ts +19 -0
  120. package/dist/agent-runtime/role-state.js +24 -0
  121. package/dist/agent-runtime/role-state.js.map +1 -0
  122. package/dist/agent-runtime/runtime-identity.d.ts +11 -0
  123. package/dist/agent-runtime/runtime-identity.js +33 -0
  124. package/dist/agent-runtime/runtime-identity.js.map +1 -0
  125. package/dist/agent-runtime/tool-event.d.ts +3 -0
  126. package/dist/agent-runtime/tool-event.js +24 -0
  127. package/dist/agent-runtime/tool-event.js.map +1 -0
  128. package/dist/agent-runtime/verification-plan.d.ts +55 -0
  129. package/dist/agent-runtime/verification-plan.js +206 -0
  130. package/dist/agent-runtime/verification-plan.js.map +1 -0
  131. package/dist/agent-runtime/workflow-types.d.ts +19 -1
  132. package/dist/agent-runtime/workflow.js +29 -2
  133. package/dist/agent-runtime/workflow.js.map +1 -1
  134. package/dist/agent-runtime/workspace-tools.d.ts +4 -0
  135. package/dist/agent-runtime/workspace-tools.js +182 -20
  136. package/dist/agent-runtime/workspace-tools.js.map +1 -1
  137. package/dist/installer/phases/scaffold.js +39 -109
  138. package/dist/installer/phases/scaffold.js.map +1 -1
  139. package/dist/installer/runtime/pipeline-state.d.ts +143 -1
  140. package/dist/installer/runtime/pipeline-state.js +510 -30
  141. package/dist/installer/runtime/pipeline-state.js.map +1 -1
  142. package/docs/agent-runtime-efficiency.md +65 -0
  143. package/docs/agent-runtime.md +86 -15
  144. package/integration-contract.json +2 -1
  145. package/package.json +5 -2
  146. package/schemas/agent-runtime.schema.json +34 -4
  147. package/schemas/fixtures/runtime-efficiency-summary.v1.json +790 -0
  148. package/templates/codex-skills/batch-implement/SKILL.md +33 -58
  149. package/templates/codex-skills/implement/SKILL.md +21 -124
  150. package/templates/codex-skills/retry/SKILL.md +8 -34
  151. package/templates/commands/specrails/batch-implement.md +21 -16
  152. package/templates/commands/specrails/implement.md +17 -276
  153. package/templates/commands/specrails/retry.md +6 -34
  154. package/templates/gemini-commands/batch-implement.toml +34 -28
  155. package/templates/gemini-commands/implement.toml +34 -55
  156. package/templates/gemini-commands/retry.toml +10 -16
@@ -1,13 +1,26 @@
1
- import { fingerprintCandidate, frozenAcceptanceCriteria, recordAcceptance, transitionPipeline, validateAcceptanceReport, verifyPipeline, } from '../../installer/runtime/pipeline-state.js';
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, openTasks, parseArchitecture, proposedVerification, write, writeArchitecture } from './artifacts.js';
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 failed(first.error);
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 && first.result.sessionId) {
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
- writeArchitecture(context, change, architecture);
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
- writeArchitecture(context, change, architecture, { assumed });
97
- const plan = [...config.verification, ...proposed];
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(architecture.tasks.length, 'task')}, spec${architecture.specs.length === 1 ? '' : 's'} ${architecture.specs.map(spec => spec.name).join(', ')}, confidence ${architecture.confidence}.`
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: architecture.tasks.length, specs: architecture.specs.map(spec => spec.name), confidence: architecture.confidence,
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
- function developerNode(deps) {
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
- if (developerVisitsSinceResume(step.checkpoint) > deps.attempts) {
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
- transitionPipeline(context, 'developer', 'running');
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, change, note } = deps;
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 open = openTasks(context, change);
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 plan = state.plan;
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
- const receipt = await verifyPipeline(context, { kind: 'full', commands: plan, ...(uncovered.length ? { unverified: true } : {}) }, deps.onVerificationOutput, step.signal);
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('developer', `Verification failed (${receipt.reason ?? 'a command failed'}); returning to the developer with the exact output.`);
170
- return { status: 'succeeded', next: 'developer', update: { verifyResult: evidence }, output: evidence, usage: NO_SPEND };
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', 'developer'],
354
+ effect: 'write', ends: ['archive', 'fixer'],
220
355
  async run(state, step) {
221
356
  transitionPipeline(context, 'reviewer', 'running');
222
- const prompt = roleInstructions('reviewer', context, change, { feedback: feedbackFor(state), verification: state.plan, policy, criteria, developer: state.development });
223
- const outcome = await invoke('reviewer', step, { prompt, structured: true, outputSchema: REVIEW_OUTPUT_SCHEMA }, output => {
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')}); returning to the developer.`);
243
- return { status: 'succeeded', next: 'developer', update: { review: record }, output: record };
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 = { ...record, candidateHash: fingerprintCandidate(journal(context)) };
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 { PipelineContext } from '../../installer/runtime/pipeline-state.js';
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
- onAgentEvent?: (role: AgentRole, event: AgentEvent) => void;
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
  /**