@cat-factory/orchestration 0.194.0 → 0.195.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 (92) hide show
  1. package/dist/container/dependencies.d.ts +17 -1
  2. package/dist/container/dependencies.d.ts.map +1 -1
  3. package/dist/container/module-shapes.d.ts +5 -0
  4. package/dist/container/module-shapes.d.ts.map +1 -1
  5. package/dist/container/platform-modules.d.ts.map +1 -1
  6. package/dist/container/platform-modules.js +14 -1
  7. package/dist/container/platform-modules.js.map +1 -1
  8. package/dist/container.d.ts +20 -2
  9. package/dist/container.d.ts.map +1 -1
  10. package/dist/container.js +14 -0
  11. package/dist/container.js.map +1 -1
  12. package/dist/index.d.ts +2 -0
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +2 -0
  15. package/dist/index.js.map +1 -1
  16. package/dist/modules/debug/RunDebugService.d.ts +27 -1
  17. package/dist/modules/debug/RunDebugService.d.ts.map +1 -1
  18. package/dist/modules/debug/RunDebugService.js +24 -2
  19. package/dist/modules/debug/RunDebugService.js.map +1 -1
  20. package/dist/modules/debug/debug.logic.d.ts +3 -3
  21. package/dist/modules/debug/debug.logic.d.ts.map +1 -1
  22. package/dist/modules/debug/debug.logic.js +4 -1
  23. package/dist/modules/debug/debug.logic.js.map +1 -1
  24. package/dist/modules/execution/ExecutionService.d.ts.map +1 -1
  25. package/dist/modules/execution/ExecutionService.js +7 -0
  26. package/dist/modules/execution/ExecutionService.js.map +1 -1
  27. package/dist/modules/execution/ExecutionServiceDependencies.d.ts +6 -0
  28. package/dist/modules/execution/ExecutionServiceDependencies.d.ts.map +1 -1
  29. package/dist/modules/execution/MergeResolver.d.ts +14 -2
  30. package/dist/modules/execution/MergeResolver.d.ts.map +1 -1
  31. package/dist/modules/execution/MergeResolver.js +83 -30
  32. package/dist/modules/execution/MergeResolver.js.map +1 -1
  33. package/dist/modules/execution/PrVerificationReportController.d.ts +23 -0
  34. package/dist/modules/execution/PrVerificationReportController.d.ts.map +1 -1
  35. package/dist/modules/execution/PrVerificationReportController.js +18 -0
  36. package/dist/modules/execution/PrVerificationReportController.js.map +1 -1
  37. package/dist/modules/execution/RunLifecycleController.d.ts +14 -1
  38. package/dist/modules/execution/RunLifecycleController.d.ts.map +1 -1
  39. package/dist/modules/execution/RunLifecycleController.js +20 -2
  40. package/dist/modules/execution/RunLifecycleController.js.map +1 -1
  41. package/dist/modules/execution/RunStateMachine.d.ts.map +1 -1
  42. package/dist/modules/execution/RunStateMachine.js +27 -14
  43. package/dist/modules/execution/RunStateMachine.js.map +1 -1
  44. package/dist/modules/execution/StepDecisionController.d.ts +20 -0
  45. package/dist/modules/execution/StepDecisionController.d.ts.map +1 -1
  46. package/dist/modules/execution/StepDecisionController.js +30 -0
  47. package/dist/modules/execution/StepDecisionController.js.map +1 -1
  48. package/dist/modules/execution/policy-types.d.ts +14 -1
  49. package/dist/modules/execution/policy-types.d.ts.map +1 -1
  50. package/dist/modules/execution/prReport.commands.d.ts +54 -0
  51. package/dist/modules/execution/prReport.commands.d.ts.map +1 -0
  52. package/dist/modules/execution/prReport.commands.js +316 -0
  53. package/dist/modules/execution/prReport.commands.js.map +1 -0
  54. package/dist/modules/execution/prReport.environments.d.ts +11 -0
  55. package/dist/modules/execution/prReport.environments.d.ts.map +1 -1
  56. package/dist/modules/execution/prReport.environments.js +9 -1
  57. package/dist/modules/execution/prReport.environments.js.map +1 -1
  58. package/dist/modules/execution/prReport.logic.d.ts.map +1 -1
  59. package/dist/modules/execution/prReport.logic.js +23 -2
  60. package/dist/modules/execution/prReport.logic.js.map +1 -1
  61. package/dist/modules/execution/reproductionProof.logic.js +1 -1
  62. package/dist/modules/execution/reproductionProof.logic.js.map +1 -1
  63. package/dist/modules/execution/retry.logic.d.ts +3 -2
  64. package/dist/modules/execution/retry.logic.d.ts.map +1 -1
  65. package/dist/modules/execution/retry.logic.js +14 -2
  66. package/dist/modules/execution/retry.logic.js.map +1 -1
  67. package/dist/modules/execution/runMode.logic.d.ts +78 -0
  68. package/dist/modules/execution/runMode.logic.d.ts.map +1 -0
  69. package/dist/modules/execution/runMode.logic.js +78 -0
  70. package/dist/modules/execution/runMode.logic.js.map +1 -0
  71. package/dist/modules/execution/runStartOptions.d.ts +16 -1
  72. package/dist/modules/execution/runStartOptions.d.ts.map +1 -1
  73. package/dist/modules/merge/RiskPolicyService.d.ts.map +1 -1
  74. package/dist/modules/merge/RiskPolicyService.js +4 -0
  75. package/dist/modules/merge/RiskPolicyService.js.map +1 -1
  76. package/dist/modules/observability/LlmObservabilityService.d.ts +35 -4
  77. package/dist/modules/observability/LlmObservabilityService.d.ts.map +1 -1
  78. package/dist/modules/observability/LlmObservabilityService.js +43 -7
  79. package/dist/modules/observability/LlmObservabilityService.js.map +1 -1
  80. package/dist/modules/observability/observability.logic.d.ts +12 -2
  81. package/dist/modules/observability/observability.logic.d.ts.map +1 -1
  82. package/dist/modules/observability/observability.logic.js +31 -2
  83. package/dist/modules/observability/observability.logic.js.map +1 -1
  84. package/dist/modules/tutorial/TutorialProgressService.d.ts +51 -0
  85. package/dist/modules/tutorial/TutorialProgressService.d.ts.map +1 -0
  86. package/dist/modules/tutorial/TutorialProgressService.js +111 -0
  87. package/dist/modules/tutorial/TutorialProgressService.js.map +1 -0
  88. package/dist/modules/tutorial/TutorialTelemetryService.d.ts +47 -0
  89. package/dist/modules/tutorial/TutorialTelemetryService.d.ts.map +1 -0
  90. package/dist/modules/tutorial/TutorialTelemetryService.js +67 -0
  91. package/dist/modules/tutorial/TutorialTelemetryService.js.map +1 -0
  92. package/package.json +11 -11
@@ -0,0 +1,316 @@
1
+ import { hostMarkdown, redactSecrets } from '@cat-factory/kernel';
2
+ import { PR_REPORT_MAX_OUTPUT_CHARS } from '@cat-factory/contracts';
3
+ import { REPRO_DECLARATION_KIND } from './reproductionProof.logic.js';
4
+ import { findStep } from './prReport.steps.js';
5
+ // ---------------------------------------------------------------------------
6
+ // The verification report's two CAPTURED-OUTPUT sections: the platform's own pre-PR validation
7
+ // run, and the bugfix reproduction proof.
8
+ //
9
+ // Every other section of the report is a structured VERDICT somebody produced — a gate's
10
+ // aggregation, a judge's score, an agent's assessment. These two are the raw thing itself: a
11
+ // command ran in the checkout, here is its exit code, and here is what it printed. That is why
12
+ // they are worth the pull-request body budget they cost, and why they live together rather than
13
+ // beside the verdict sections in the report's spine.
14
+ //
15
+ // Both read state the executor-harness already wrote onto the step (`step.validation`,
16
+ // `step.reproduction`), so nothing here re-runs a command or re-reads a repo. The engine's job is
17
+ // to render what was captured, honestly:
18
+ //
19
+ // - **Output is EVIDENCE, so it is bounded from the END.** A failure is reported at the tail of a
20
+ // log (the assertion diff, the stack, the compiler summary), so a prefix cut throws away the
21
+ // half the reader opened the report for. Every cut is recorded in the report's `truncations`.
22
+ //
23
+ // - **A log is fenced with `outputBlock`, never a bare ``` fence.** Test runners and linters print
24
+ // backticks; a fixed fence closes on the first such run and spills the rest of the log — plus
25
+ // every section below it, including the machine-readable JSON block — into the body as prose.
26
+ //
27
+ // - **A passing validation command's log is NOT retained, and the section SAYS so.** Ten green
28
+ // logs would cost the budget that makes the failing one readable, and a `null` tail that could
29
+ // be read as "the command printed nothing" is exactly the collapse this report exists to
30
+ // remove. The reproduction proof keeps BOTH trees' logs whatever they did, because there the
31
+ // log is the whole point: only a human can see whether the pre-fix tree was red for the right
32
+ // reason.
33
+ // ---------------------------------------------------------------------------
34
+ /** Scrub credentials out of an optional free-text value, preserving `null`/`undefined`. */
35
+ function scrub(value) {
36
+ return value == null ? null : (redactSecrets(value) ?? null);
37
+ }
38
+ /**
39
+ * Build the output capper over the report's own truncation log. Lives here (not in the spine)
40
+ * because the char budget and the tail-not-prefix rule are properties of captured output, and the
41
+ * spine's list capper knows nothing about either.
42
+ */
43
+ export function makeOutputCapper(truncations) {
44
+ return (text, label) => {
45
+ const scrubbed = scrub(text);
46
+ if (!scrubbed)
47
+ return null;
48
+ const bounded = hostMarkdown.boundOutput(scrubbed, PR_REPORT_MAX_OUTPUT_CHARS);
49
+ if (bounded.dropped > 0) {
50
+ // Says "the LAST n", because a reader who assumed a prefix would conclude the tail — where
51
+ // the failure is actually reported — was never captured.
52
+ truncations.push(`${label}: showing the last ${bounded.text.length} of ${bounded.total} characters`);
53
+ }
54
+ return bounded.text;
55
+ };
56
+ }
57
+ // ---------------------------------------------------------------------------
58
+ // Pre-PR validation.
59
+ // ---------------------------------------------------------------------------
60
+ /**
61
+ * Compose the PRE-PR VALIDATION section: the service's own check commands as the harness ran them
62
+ * against the final checkout, with the captured output of whatever failed.
63
+ *
64
+ * This is the report's strongest single claim, because it is the one the platform ENFORCED: only a
65
+ * green checkout opens a pull request. It is deliberately distinct from the `ci` section — CI is
66
+ * the host's verdict on the pushed branch, on another machine and later; this is the platform's own
67
+ * run of the service's commands on the exact tree that was pushed.
68
+ *
69
+ * Reported off the LAST step carrying a report: a run re-enters the coding loop on a repair round
70
+ * and a later in-place fixer (`ci-fixer`) opens no PR and so runs no validation, which is why the
71
+ * section follows the evidence rather than a fixed step position.
72
+ */
73
+ export function composeValidation(instance, caps) {
74
+ const step = findStep(instance, (s) => s.validation != null, (s) => s.validation != null);
75
+ const report = step?.validation;
76
+ if (!step || !report) {
77
+ return {
78
+ status: 'absent',
79
+ // The report is only ever published onto an EXISTING pull request, so a PR-opening dispatch
80
+ // has by construction already settled: the absence is about what was configured, not about
81
+ // how far the run got. Both remaining causes are named, because asserting only the first
82
+ // would be a fabricated fact about somebody's setup (a runner image older than the feature
83
+ // reports nothing either).
84
+ note: 'The platform ran no pre-PR validation on this tree: this service configures no check ' +
85
+ 'commands (a runner image predating the feature also reports none).',
86
+ attempts: 0,
87
+ commands: [],
88
+ };
89
+ }
90
+ const commands = caps
91
+ .cap(report.outcomes, 'validation.commands')
92
+ .map((outcome) => ({
93
+ label: scrub(outcome.label) ?? 'check',
94
+ command: scrub(outcome.command) ?? '',
95
+ exitCode: outcome.exitCode,
96
+ passed: outcome.passed,
97
+ timedOut: outcome.timedOut ?? null,
98
+ durationMs: outcome.durationMs ?? null,
99
+ // A green check's log is the one thing here nobody acts on, and retaining ten of them would
100
+ // cost the budget that makes the red one readable. The section states the rule, so a null
101
+ // tail is never read as "it printed nothing".
102
+ outputTail: outcome.passed
103
+ ? null
104
+ : caps.output(outcome.outputTail, `validation.output[${outcome.label}]`),
105
+ }));
106
+ return {
107
+ status: 'reported',
108
+ passed: report.passed,
109
+ stepKind: step.agentKind,
110
+ attempts: report.attempts,
111
+ maxAttempts: report.maxAttempts,
112
+ at: report.at ?? null,
113
+ commands,
114
+ };
115
+ }
116
+ /** One command's cell: the verdict marker plus what it exited with and how long it took. */
117
+ function commandResult(command) {
118
+ if (command.passed)
119
+ return `✅ passed${duration(command.durationMs)}`;
120
+ const how = command.timedOut ? 'timed out' : `exit ${command.exitCode}`;
121
+ return `❌ ${how}${duration(command.durationMs)}`;
122
+ }
123
+ /** A wall-clock duration as a ` · 1.2s` suffix, or nothing when the producer recorded none. */
124
+ function duration(ms) {
125
+ if (ms == null || !Number.isFinite(ms))
126
+ return '';
127
+ return ` · ${(ms / 1000).toFixed(ms < 10_000 ? 1 : 0)}s`;
128
+ }
129
+ export function renderValidation(validation) {
130
+ const out = ['### Pre-PR validation', ''];
131
+ if (validation.status === 'absent')
132
+ return [...out, `_${validation.note}_`, ''];
133
+ out.push(`**Verdict:** ${validation.passed ? '✅ every check passed' : '❌ checks failed'}` +
134
+ ` · attempt ${validation.attempts}` +
135
+ (validation.maxAttempts != null ? ` of ${validation.maxAttempts}` : ''), '',
136
+ // Only a GREEN attempt may claim to be the tree this PR came from: a failing attempt is
137
+ // exactly the one that does NOT open a pull request, so on a red section the report is being
138
+ // published onto a PR some earlier dispatch opened. Claiming otherwise there would be the
139
+ // report asserting the one thing it exists to stop an agent asserting.
140
+ validation.passed
141
+ ? '_The platform ran these commands itself, in the checkout that opened this pull request._'
142
+ : '_The platform ran these commands itself, in the checkout it validated. A failing attempt' +
143
+ ' does not open a pull request, so this is not the tree this one was opened from._', '', '| Check | Command | Result |', '| --- | --- | --- |');
144
+ for (const command of validation.commands) {
145
+ // `codeCell`, never a hand-written `` `${cell(x)}` ``: a check command is configuration a
146
+ // human wrote and a linter invocation carrying a backtick is ordinary, which would close the
147
+ // span and spill the rest of the row into the table as prose.
148
+ out.push(`| ${hostMarkdown.cell(command.label)} | ${hostMarkdown.codeCell(command.command)} |` +
149
+ ` ${commandResult(command)} |`);
150
+ }
151
+ const failing = validation.commands.filter((c) => !c.passed);
152
+ for (const command of failing) {
153
+ if (!command.outputTail)
154
+ continue;
155
+ out.push('', `**${hostMarkdown.inlineCode(command.label)} output**`, '');
156
+ out.push(hostMarkdown.outputBlock(command.outputTail));
157
+ }
158
+ if (validation.commands.length) {
159
+ out.push('', '_Captured output is retained for FAILING commands only; a passing check shows its exit', 'code alone rather than its log._');
160
+ }
161
+ return [...out, ''];
162
+ }
163
+ // ---------------------------------------------------------------------------
164
+ // Bugfix reproduction proof.
165
+ // ---------------------------------------------------------------------------
166
+ /** Copy one tree's run onto the report, scrubbing and bounding its captured log. */
167
+ function composePhase(outcome, caps, label) {
168
+ if (!outcome)
169
+ return null;
170
+ return {
171
+ exitCode: outcome.exitCode,
172
+ passed: outcome.passed,
173
+ durationMs: outcome.durationMs ?? null,
174
+ timedOut: outcome.timedOut ?? null,
175
+ setupFailed: outcome.setupFailed ?? null,
176
+ // Both trees' logs are kept whatever they did: the verdict says red-then-green, and only a
177
+ // human reading the two logs can see whether the pre-fix tree was red for the RIGHT reason —
178
+ // the one thing the symmetric-worktree design deliberately does not claim to detect.
179
+ outputTail: caps.output(outcome.outputTail, `reproduction.output[${label}]`),
180
+ };
181
+ }
182
+ /**
183
+ * Compose the BUGFIX REPRODUCTION PROOF section: was the declared reproducing check RED on the
184
+ * pre-fix tree and GREEN on the final one?
185
+ *
186
+ * The verdict is the harness's, computed from two exit codes — the `repro-test` kind's own
187
+ * `outcome` field has always been the model's CLAIM, and this section is what checks it. A run
188
+ * whose reproduction step conceded carries the engine-minted `declared_infeasible` declaration
189
+ * instead, so "could not be reproduced" reaches a reviewer as a real statement with its reason and
190
+ * the alternative verification performed, never as an empty section indistinguishable from a run
191
+ * that never tried.
192
+ *
193
+ * The two ways the section is `absent` are kept apart because they call for different things: a
194
+ * pipeline with no reproduction step never declared a check to run (nothing to fix, unless the
195
+ * pipeline is wrong for the task), while one that HAS the step and recorded no proof was either not
196
+ * opted in or gave no runnable command.
197
+ */
198
+ export function composeReproduction(instance, caps) {
199
+ const step = findStep(instance, (s) => s.reproduction != null, (s) => s.reproduction != null);
200
+ const report = step?.reproduction;
201
+ if (!step || !report) {
202
+ const declaring = instance.steps.filter((s) => s.agentKind === REPRO_DECLARATION_KIND);
203
+ // A SKIPPED declaring step is its own cause, and it has to be checked before the one below:
204
+ // estimate gating leaves the step IN `instance.steps` (that is what makes the persisted
205
+ // `skipped` flag survive a durable replay), so it satisfies "this pipeline declares one" while
206
+ // being the opposite situation. Reported as the deliberate choice it is, because the operator
207
+ // fix is a threshold on the pipeline, not a look at the reproduction step's own output.
208
+ const skipped = declaring.length > 0 && declaring.every((s) => s.skipped);
209
+ return {
210
+ status: 'absent',
211
+ note: skipped
212
+ ? 'The reproduction step was skipped: this task scored below the threshold its pipeline ' +
213
+ 'gates that step on, so no reproducing check was written and this change is not ' +
214
+ 'demonstrated against the pre-fix tree.'
215
+ : declaring.length > 0
216
+ ? 'This run recorded no reproduction proof: the proof phase was not enabled for this ' +
217
+ 'task, or the reproduction step named no runnable command to verify.'
218
+ : 'No reproduction step in this pipeline. Nothing declared a reproducing check, so this ' +
219
+ 'change is not demonstrated against the pre-fix tree.',
220
+ testPaths: [],
221
+ attempts: 0,
222
+ };
223
+ }
224
+ return {
225
+ status: 'reported',
226
+ verdict: report.status,
227
+ command: scrub(report.command),
228
+ testPaths: caps.cap(report.testPaths, 'reproduction.testPaths').map((p) => scrub(p) ?? ''),
229
+ omittedTestPaths: report.omittedTestPaths ?? null,
230
+ base: composePhase(report.base, caps, 'base'),
231
+ final: composePhase(report.final, caps, 'final'),
232
+ attempts: report.attempts,
233
+ maxAttempts: report.maxAttempts,
234
+ reason: scrub(report.reason),
235
+ alternativeVerification: scrub(report.alternativeVerification),
236
+ observation: scrub(report.note),
237
+ // `||`, not the `??` its validation twin uses, and the difference is in the two schemas: a
238
+ // reproduction report's `at` falls back to 0 when the harness recorded none, so 0 IS the
239
+ // absence here, while the validation report leaves the field optional and says so.
240
+ at: report.at || null,
241
+ };
242
+ }
243
+ /** The verdict headline: what was proven, in the terms a reviewer decides on. */
244
+ function reproductionHeadline(verdict) {
245
+ if (verdict === 'reproduced') {
246
+ return '✅ **reproduced**: the declared check FAILED on the pre-fix tree and PASSES on this one';
247
+ }
248
+ if (verdict === 'declared_infeasible') {
249
+ return '📋 **declared infeasible**: the agent stated the bug cannot be reproduced in a test';
250
+ }
251
+ return '⚠️ **inconclusive**: the check did not demonstrate the defect across the fix';
252
+ }
253
+ /** One tree's row: what it exited with, and whether it even got as far as running. */
254
+ function phaseResult(phase) {
255
+ if (phase.setupFailed)
256
+ return '⚠️ setup failed (the check never ran)';
257
+ if (phase.timedOut)
258
+ return `⏱️ timed out${duration(phase.durationMs)}`;
259
+ const marker = phase.passed ? '✅ passed' : '❌ failed';
260
+ return `${marker} · exit ${phase.exitCode}${duration(phase.durationMs)}`;
261
+ }
262
+ /** The captured log of one tree, fenced so its own backticks cannot break out of the block. */
263
+ function renderPhaseOutput(phase, heading) {
264
+ if (!phase?.outputTail)
265
+ return [];
266
+ return ['', `**${heading} output**`, '', hostMarkdown.outputBlock(phase.outputTail)];
267
+ }
268
+ export function renderReproduction(repro) {
269
+ const out = ['### Reproduction proof', ''];
270
+ if (repro.status === 'absent')
271
+ return [...out, `_${repro.note}_`, ''];
272
+ out.push(`**Verdict:** ${reproductionHeadline(repro.verdict)}`);
273
+ if (repro.verdict === 'declared_infeasible') {
274
+ if (repro.reason)
275
+ out.push('', '**Why not:**', '', hostMarkdown.prose(repro.reason));
276
+ if (repro.alternativeVerification) {
277
+ out.push('', '**Verified instead:**', '', hostMarkdown.prose(repro.alternativeVerification));
278
+ }
279
+ // A concede that named neither is a declaration in form only, and the producer says so; a
280
+ // blank body here is indistinguishable from a rendering bug.
281
+ if (!repro.reason && !repro.alternativeVerification && repro.observation) {
282
+ out.push('', `_${hostMarkdown.inline(repro.observation)}_`);
283
+ }
284
+ return [...out, ''];
285
+ }
286
+ // Both of these are MODEL-authored (the `repro-test` kind declares them), so the code span has
287
+ // to be sized to what they carry rather than assumed to be three ticks' worth.
288
+ if (repro.command)
289
+ out.push(`**Command:** ${hostMarkdown.inlineCode(repro.command)}`);
290
+ if (repro.testPaths.length) {
291
+ out.push(`**Reproduction files:** ${repro.testPaths.map((p) => hostMarkdown.inlineCode(p)).join(', ')}`);
292
+ }
293
+ if (repro.omittedTestPaths) {
294
+ // A dropped path can leave the pre-fix tree without the reproduction, which greens it and reads
295
+ // as "the test does not capture the defect". Stated, never implied.
296
+ out.push(`**⚠️ ${repro.omittedTestPaths} declared test path${repro.omittedTestPaths === 1 ? ' was' : 's were'} dropped** ` +
297
+ 'before the proof ran, so the pre-fix tree was rebuilt from an incomplete reproduction.');
298
+ }
299
+ out.push(`**Attempts:** ${repro.attempts}` +
300
+ (repro.maxAttempts != null ? ` of ${repro.maxAttempts}` : ''), '', '| Tree | Result |', '| --- | --- |');
301
+ out.push(`| Pre-fix | ${repro.base ? phaseResult(repro.base) : 'not run'} |`);
302
+ // An absent `final` is NORMAL for an inconclusive verdict: a green pre-fix tree already settles
303
+ // it, and running the second tree could only confirm what is already not proof. So it says why
304
+ // rather than reading as missing data.
305
+ out.push(`| Final | ${repro.final ? phaseResult(repro.final) : 'not run (the pre-fix tree already settled the verdict)'} |`);
306
+ if (repro.observation) {
307
+ // Rendered VERBATIM. The producer is the only side that can tell a test which does not capture
308
+ // the defect from a resumed run whose pre-fix tree already carried this step's own work, and
309
+ // re-deriving a cause from the exit codes here is exactly the inference that gets it wrong.
310
+ out.push('', `_${hostMarkdown.inline(repro.observation, hostMarkdown.MAX_PROSE_CHARS)}_`);
311
+ }
312
+ out.push(...renderPhaseOutput(repro.base, 'Pre-fix tree'));
313
+ out.push(...renderPhaseOutput(repro.final, 'Final tree'));
314
+ return [...out, ''];
315
+ }
316
+ //# sourceMappingURL=prReport.commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prReport.commands.js","sourceRoot":"","sources":["../../../src/modules/execution/prReport.commands.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,17 @@ export interface PrReportEnvironmentInputs {
31
31
  * configured no public app URL (the report never emits a link to nowhere).
32
32
  */
33
33
  evidenceUrl: string | null;
34
+ /**
35
+ * Builds the direct link to ONE artifact's bytes on the deployment's own blob endpoint, or
36
+ * returns null when no public backend URL is configured.
37
+ *
38
+ * A function rather than pre-built URLs because the composer is what knows which artifacts
39
+ * survived the row cap, and a workspace id threaded through this module for one string would
40
+ * be the only reason it needed one. Absent (a caller that wires no backend URL) ⇒ every row
41
+ * carries its id and no link, which is what the section did before: the id is what an operator
42
+ * greps the store for, so it is never dropped in favour of the link.
43
+ */
44
+ artifactUrl?: (artifactId: string) => string | null;
34
45
  }
35
46
  /** Cap a list, recording what was dropped in the report's own `truncations` log. */
36
47
  type Capper = <T>(items: readonly T[], label: string) => T[];
@@ -1 +1 @@
1
- {"version":3,"file":"prReport.environments.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/prReport.environments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EAMjB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,qBAAqB,CAAA;AA2C5B;;;;;;;;;GASG;AACH,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,qBAAqB,EACrB,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,CACnD,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,yBAAyB,GACjC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,0BAA0B,EAAE,CAAA;CAAE,GACjE;IAAE,MAAM,EAAE,mBAAmB,CAAA;CAAE,CAAA;AAEnC,mEAAmE;AACnE,MAAM,WAAW,yBAAyB;IACxC,yFAAyF;IACzF,YAAY,EAAE,yBAAyB,CAAA;IACvC;;;OAGG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B;AAED,oFAAoF;AACpF,KAAK,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,EAAE,CAAA;AAkV5D;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,yBAAyB,EACjC,GAAG,EAAE,MAAM,GACV,oBAAoB,CAAC,cAAc,CAAC,CAwCtC;AA+ED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,oBAAoB,CAAC,cAAc,CAAC,GAAG,MAAM,EAAE,CAuBvF"}
1
+ {"version":3,"file":"prReport.environments.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/prReport.environments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EAMjB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,qBAAqB,CAAA;AA2C5B;;;;;;;;;GASG;AACH,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,qBAAqB,EACrB,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,CACnD,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,yBAAyB,GACjC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,0BAA0B,EAAE,CAAA;CAAE,GACjE;IAAE,MAAM,EAAE,mBAAmB,CAAA;CAAE,CAAA;AAEnC,mEAAmE;AACnE,MAAM,WAAW,yBAAyB;IACxC,yFAAyF;IACzF,YAAY,EAAE,yBAAyB,CAAA;IACvC;;;OAGG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;CACpD;AAED,oFAAoF;AACpF,KAAK,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,EAAE,CAAA;AAmV5D;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,yBAAyB,EACjC,GAAG,EAAE,MAAM,GACV,oBAAoB,CAAC,cAAc,CAAC,CAwCtC;AAsFD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,oBAAoB,CAAC,cAAc,CAAC,GAAG,MAAM,EAAE,CAuBvF"}
@@ -185,6 +185,7 @@ function composeEvidence(instance, inputs, cap) {
185
185
  view: redactSecrets(shot.view) ?? '',
186
186
  artifactId: shot.artifactId,
187
187
  hasReference: !!shot.referenceArtifactId,
188
+ url: inputs.artifactUrl?.(shot.artifactId) ?? null,
188
189
  }));
189
190
  const common = {
190
191
  ranAgainst,
@@ -375,7 +376,14 @@ function renderEvidence(evidence) {
375
376
  if (evidence.screenshots.length) {
376
377
  out.push('', '| View | Artifact | Reference |', '| --- | --- | --- |');
377
378
  for (const shot of evidence.screenshots) {
378
- out.push(`| ${hostMarkdown.cell(shot.view)} | \`${hostMarkdown.cell(shot.artifactId)}\` | ${shot.hasReference ? 'paired' : '—'} |`);
379
+ // The id stays in the cell whether or not a link was built: it is what an operator greps the
380
+ // store for, and a deployment with no public backend URL has no link to offer. The URL is
381
+ // ours (built from configured base + a stored id), so it needs no host-markdown escaping;
382
+ // the LABEL is the untrusted half, and it goes through `codeCell` so its own delimiter is
383
+ // sized to it rather than assumed.
384
+ const id = hostMarkdown.codeCell(shot.artifactId);
385
+ const artifact = shot.url ? `[${id}](${shot.url})` : id;
386
+ out.push(`| ${hostMarkdown.cell(shot.view)} | ${artifact} | ${shot.hasReference ? 'paired' : '—'} |`);
379
387
  }
380
388
  }
381
389
  return [...out, ''];
@@ -1 +1 @@
1
- {"version":3,"file":"prReport.environments.js","sourceRoot":"","sources":["../../../src/modules/execution/prReport.environments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prReport.environments.js","sourceRoot":"","sources":["../../../src/modules/execution/prReport.environments.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prReport.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/prReport.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,iBAAiB,EAKjB,aAAa,EAEb,oBAAoB,EAEpB,OAAO,EAER,MAAM,qBAAqB,CAAA;AAI5B,OAAO,EACL,KAAK,yBAAyB,EAG/B,MAAM,4BAA4B,CAAA;AAgFnC,wEAAwE;AACxE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,KAAK,CAAA;IACZ,2FAA2F;IAC3F,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAA;IACrC,+FAA+F;IAC/F,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IACrB;;;;OAIG;IACH,YAAY,EAAE,yBAAyB,CAAA;IACvC,sDAAsD;IACtD,GAAG,EAAE,MAAM,CAAA;CACZ;AA8WD,oFAAoF;AACpF,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,cAAc,GACrB,oBAAoB,CAqCtB;AA0OD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAwC/E"}
1
+ {"version":3,"file":"prReport.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/execution/prReport.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,iBAAiB,EAKjB,aAAa,EAEb,oBAAoB,EAEpB,OAAO,EAER,MAAM,qBAAqB,CAAA;AAI5B,OAAO,EACL,KAAK,yBAAyB,EAG/B,MAAM,4BAA4B,CAAA;AAuFnC,wEAAwE;AACxE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,KAAK,CAAA;IACZ,2FAA2F;IAC3F,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAA;IACrC,+FAA+F;IAC/F,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IACrB;;;;OAIG;IACH,YAAY,EAAE,yBAAyB,CAAA;IACvC,sDAAsD;IACtD,GAAG,EAAE,MAAM,CAAA;CACZ;AA8WD,oFAAoF;AACpF,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,cAAc,GACrB,oBAAoB,CA6CtB;AA0OD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM,CAoD/E"}
@@ -2,6 +2,7 @@ import { hostMarkdown, redactSecrets } from '@cat-factory/kernel';
2
2
  import { PR_VERIFICATION_REPORT_VERSION } from '@cat-factory/contracts';
3
3
  import { CI_AGENT_KIND, MERGER_AGENT_KIND, isTesterKind } from './ci.logic.js';
4
4
  import { composeEnvironments, renderEnvironments, } from './prReport.environments.js';
5
+ import { composeReproduction, composeValidation, makeOutputCapper, renderReproduction, renderValidation, } from './prReport.commands.js';
5
6
  import { findStep } from './prReport.steps.js';
6
7
  // ---------------------------------------------------------------------------
7
8
  // The PR verification report's PURE half: compose it from a run's already-loaded state, and
@@ -398,6 +399,12 @@ function composeJudges(instance, truncations) {
398
399
  /** Compose the report from a run's in-memory state plus the few resolved inputs. */
399
400
  export function composePrVerificationReport(instance, inputs) {
400
401
  const truncations = [];
402
+ // The two captured-output sections share the spine's list cap and add a char cap of their own,
403
+ // both logging into the ONE `truncations` array a reader learns to read.
404
+ const commandCaps = {
405
+ cap: (items, label) => cap(items, label, truncations),
406
+ output: makeOutputCapper(truncations),
407
+ };
401
408
  const steps = instance.steps.map((step, index) => ({
402
409
  index,
403
410
  agentKind: step.agentKind,
@@ -423,6 +430,8 @@ export function composePrVerificationReport(instance, inputs) {
423
430
  })),
424
431
  },
425
432
  ci: composeCi(instance, truncations),
433
+ validation: composeValidation(instance, commandCaps),
434
+ reproduction: composeReproduction(instance, commandCaps),
426
435
  tests: composeTests(instance, truncations),
427
436
  requirements: composeRequirements(instance, inputs.spec, truncations),
428
437
  environments: composeEnvironments(instance, inputs.environments, (items, label) => cap(items, label, truncations)),
@@ -638,6 +647,11 @@ export function renderPrVerificationReport(report) {
638
647
  '',
639
648
  ...renderRun(report.run, report.observability.runUrl),
640
649
  ...renderCi(report.ci),
650
+ // The two CAPTURED-OUTPUT sections sit beside CI rather than at the end: they answer the same
651
+ // question a reviewer asks first ("does it work?"), and unlike CI they are the platform's own
652
+ // run of the commands on the exact tree that was pushed.
653
+ ...renderValidation(report.validation),
654
+ ...renderReproduction(report.reproduction),
641
655
  ...renderTests(report.tests),
642
656
  ...renderRequirements(report.requirements),
643
657
  ...renderEnvironments(report.environments),
@@ -667,8 +681,15 @@ export function renderPrVerificationReport(report) {
667
681
  if (dropped.length <= hostMarkdown.MAX_SECTION_CHARS)
668
682
  return dropped;
669
683
  // Absolute backstop: the prose alone is over budget. Cut it rather than let the host reject
670
- // the whole write.
671
- return `${dropped.slice(0, hostMarkdown.MAX_SECTION_CHARS - TRUNCATED_SECTION_NOTE.length)}${TRUNCATED_SECTION_NOTE}`;
684
+ // the whole write — then drop whatever fenced block the cut landed INSIDE. The captured-output
685
+ // sections put real fences in the prose half (a validation log, a reproduction tree's log), and
686
+ // a blind slice through one leaves it unclosed, which swallows the truncation note and the
687
+ // section's own `:end` marker into a code block. `balanceFences` is the wrong tool here: it
688
+ // ADDS a closing fence to text that is already over the limit, by an amount sized to the
689
+ // longest backtick run in the block. Dropping only ever removes, so it fits by construction,
690
+ // and the half a cut leaves behind is the HEAD of a log whose failure is reported at its tail.
691
+ const room = hostMarkdown.MAX_SECTION_CHARS - TRUNCATED_SECTION_NOTE.length;
692
+ return `${hostMarkdown.dropOpenFence(dropped.slice(0, room))}${TRUNCATED_SECTION_NOTE}`;
672
693
  }
673
694
  /** Closes a section that had to be cut at {@link hostMarkdown.MAX_SECTION_CHARS}. */
674
695
  const TRUNCATED_SECTION_NOTE = '\n\n_… report truncated to fit the pull-request body limit._';