@zhixuan92/multi-model-agent-core 4.0.3 → 4.0.5
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 +10 -12
- package/dist/events/cloud-events.d.ts +1 -3
- package/dist/events/cloud-events.d.ts.map +1 -1
- package/dist/events/event-builder.d.ts +1 -1
- package/dist/events/event-builder.d.ts.map +1 -1
- package/dist/events/observability-events.d.ts +3 -111
- package/dist/events/observability-events.d.ts.map +1 -1
- package/dist/events/observability-events.js +0 -58
- package/dist/events/observability-events.js.map +1 -1
- package/dist/events/telemetry-types.d.ts +3 -3
- package/dist/events/telemetry-types.js +1 -1
- package/dist/events/telemetry-types.js.map +1 -1
- package/dist/index.d.ts +2 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -7
- package/dist/index.js.map +1 -1
- package/dist/intake/brief-compiler-slots/debug.d.ts +0 -26
- package/dist/intake/brief-compiler-slots/debug.d.ts.map +1 -1
- package/dist/intake/brief-compiler-slots/debug.js +5 -44
- package/dist/intake/brief-compiler-slots/debug.js.map +1 -1
- package/dist/intake/brief-compiler-slots/delegate.d.ts +0 -24
- package/dist/intake/brief-compiler-slots/delegate.d.ts.map +1 -1
- package/dist/intake/brief-compiler-slots/delegate.js +2 -45
- package/dist/intake/brief-compiler-slots/delegate.js.map +1 -1
- package/dist/intake/brief-compiler-slots/research.d.ts +18 -0
- package/dist/intake/brief-compiler-slots/research.d.ts.map +1 -0
- package/dist/intake/brief-compiler-slots/research.js +43 -0
- package/dist/intake/brief-compiler-slots/research.js.map +1 -0
- package/dist/intake/brief-compiler-slots/review.d.ts +0 -23
- package/dist/intake/brief-compiler-slots/review.d.ts.map +1 -1
- package/dist/intake/brief-compiler-slots/review.js +0 -62
- package/dist/intake/brief-compiler-slots/review.js.map +1 -1
- package/dist/lifecycle/diff-tracker.d.ts +72 -0
- package/dist/lifecycle/diff-tracker.d.ts.map +1 -0
- package/dist/lifecycle/diff-tracker.js +316 -0
- package/dist/lifecycle/diff-tracker.js.map +1 -0
- package/dist/lifecycle/handlers/prepare-execution-context-handler.d.ts +1 -1
- package/dist/lifecycle/handlers/prepare-execution-context-handler.d.ts.map +1 -1
- package/dist/lifecycle/handlers/prepare-execution-context-handler.js +23 -1
- package/dist/lifecycle/handlers/prepare-execution-context-handler.js.map +1 -1
- package/dist/lifecycle/handlers/quality-chain-handlers.d.ts.map +1 -1
- package/dist/lifecycle/handlers/quality-chain-handlers.js +57 -6
- package/dist/lifecycle/handlers/quality-chain-handlers.js.map +1 -1
- package/dist/lifecycle/handlers/review-diff-handler.d.ts.map +1 -1
- package/dist/lifecycle/handlers/review-diff-handler.js +38 -12
- package/dist/lifecycle/handlers/review-diff-handler.js.map +1 -1
- package/dist/lifecycle/handlers/spec-chain-handlers.d.ts.map +1 -1
- package/dist/lifecycle/handlers/spec-chain-handlers.js +38 -10
- package/dist/lifecycle/handlers/spec-chain-handlers.js.map +1 -1
- package/dist/lifecycle/handlers/terminal-handlers.d.ts.map +1 -1
- package/dist/lifecycle/handlers/terminal-handlers.js +17 -2
- package/dist/lifecycle/handlers/terminal-handlers.js.map +1 -1
- package/dist/lifecycle/merge-stage-stats.d.ts +27 -0
- package/dist/lifecycle/merge-stage-stats.d.ts.map +1 -1
- package/dist/lifecycle/merge-stage-stats.js +56 -0
- package/dist/lifecycle/merge-stage-stats.js.map +1 -1
- package/dist/lifecycle/stage-plan-types.d.ts +15 -0
- package/dist/lifecycle/stage-plan-types.d.ts.map +1 -1
- package/dist/lifecycle/stage-progression.d.ts.map +1 -1
- package/dist/lifecycle/stage-progression.js +1 -0
- package/dist/lifecycle/stage-progression.js.map +1 -1
- package/dist/lifecycle/task-runner.js +1 -1
- package/dist/lifecycle/task-runner.js.map +1 -1
- package/dist/providers/provider-factory.d.ts.map +1 -1
- package/dist/providers/provider-factory.js +6 -0
- package/dist/providers/provider-factory.js.map +1 -1
- package/dist/reporting/headline-templates/audit.d.ts.map +1 -1
- package/dist/reporting/headline-templates/audit.js +17 -8
- package/dist/reporting/headline-templates/audit.js.map +1 -1
- package/dist/reporting/headline-templates/debug.d.ts +22 -3
- package/dist/reporting/headline-templates/debug.d.ts.map +1 -1
- package/dist/reporting/headline-templates/debug.js +38 -8
- package/dist/reporting/headline-templates/debug.js.map +1 -1
- package/dist/reporting/headline-templates/delegate.d.ts.map +1 -1
- package/dist/reporting/headline-templates/delegate.js +14 -3
- package/dist/reporting/headline-templates/delegate.js.map +1 -1
- package/dist/reporting/headline-templates/execute-plan.d.ts.map +1 -1
- package/dist/reporting/headline-templates/execute-plan.js +17 -8
- package/dist/reporting/headline-templates/execute-plan.js.map +1 -1
- package/dist/reporting/headline-templates/research.d.ts +3 -0
- package/dist/reporting/headline-templates/research.d.ts.map +1 -0
- package/dist/reporting/headline-templates/research.js +23 -0
- package/dist/reporting/headline-templates/research.js.map +1 -0
- package/dist/reporting/headline-templates/review.d.ts.map +1 -1
- package/dist/reporting/headline-templates/review.js +23 -6
- package/dist/reporting/headline-templates/review.js.map +1 -1
- package/dist/reporting/headline-templates/verify.d.ts.map +1 -1
- package/dist/reporting/headline-templates/verify.js +23 -6
- package/dist/reporting/headline-templates/verify.js.map +1 -1
- package/dist/reporting/headline-text.d.ts +5 -0
- package/dist/reporting/headline-text.d.ts.map +1 -1
- package/dist/reporting/headline-text.js +36 -5
- package/dist/reporting/headline-text.js.map +1 -1
- package/dist/reporting/report-parser-slots/research-report.d.ts +30 -0
- package/dist/reporting/report-parser-slots/research-report.d.ts.map +1 -0
- package/dist/reporting/report-parser-slots/research-report.js +94 -0
- package/dist/reporting/report-parser-slots/research-report.js.map +1 -0
- package/dist/reporting/report-parser-slots/verify-report.d.ts +17 -0
- package/dist/reporting/report-parser-slots/verify-report.d.ts.map +1 -1
- package/dist/reporting/report-parser-slots/verify-report.js +45 -3
- package/dist/reporting/report-parser-slots/verify-report.js.map +1 -1
- package/dist/reporting/severity.d.ts +22 -0
- package/dist/reporting/severity.d.ts.map +1 -1
- package/dist/reporting/severity.js +36 -0
- package/dist/reporting/severity.js.map +1 -1
- package/dist/review/annotator-output-parser.d.ts.map +1 -1
- package/dist/review/annotator-output-parser.js +94 -14
- package/dist/review/annotator-output-parser.js.map +1 -1
- package/dist/review/annotator-prompt-builder.d.ts +20 -0
- package/dist/review/annotator-prompt-builder.d.ts.map +1 -1
- package/dist/review/annotator-prompt-builder.js +54 -3
- package/dist/review/annotator-prompt-builder.js.map +1 -1
- package/dist/review/reviewer-engine.d.ts +15 -1
- package/dist/review/reviewer-engine.d.ts.map +1 -1
- package/dist/review/reviewer-engine.js.map +1 -1
- package/dist/review/reviewer-output-parser.d.ts.map +1 -1
- package/dist/review/reviewer-output-parser.js +171 -16
- package/dist/review/reviewer-output-parser.js.map +1 -1
- package/dist/review/reviewer-prompt-builder.d.ts +5 -13
- package/dist/review/reviewer-prompt-builder.d.ts.map +1 -1
- package/dist/review/reviewer-prompt-builder.js.map +1 -1
- package/dist/review/templates/annotator-audit.d.ts.map +1 -1
- package/dist/review/templates/annotator-audit.js +13 -0
- package/dist/review/templates/annotator-audit.js.map +1 -1
- package/dist/review/templates/annotator-debug.d.ts.map +1 -1
- package/dist/review/templates/annotator-debug.js +11 -1
- package/dist/review/templates/annotator-debug.js.map +1 -1
- package/dist/review/templates/annotator-investigate.d.ts.map +1 -1
- package/dist/review/templates/annotator-investigate.js +10 -1
- package/dist/review/templates/annotator-investigate.js.map +1 -1
- package/dist/review/templates/annotator-review.d.ts.map +1 -1
- package/dist/review/templates/annotator-review.js +10 -0
- package/dist/review/templates/annotator-review.js.map +1 -1
- package/dist/review/templates/annotator-shared.d.ts +7 -1
- package/dist/review/templates/annotator-shared.d.ts.map +1 -1
- package/dist/review/templates/annotator-shared.js +18 -29
- package/dist/review/templates/annotator-shared.js.map +1 -1
- package/dist/review/templates/annotator-verify.d.ts.map +1 -1
- package/dist/review/templates/annotator-verify.js +11 -1
- package/dist/review/templates/annotator-verify.js.map +1 -1
- package/dist/review/templates/diff-review.d.ts +8 -0
- package/dist/review/templates/diff-review.d.ts.map +1 -1
- package/dist/review/templates/diff-review.js +34 -2
- package/dist/review/templates/diff-review.js.map +1 -1
- package/dist/review/templates/finding-criteria.d.ts +15 -0
- package/dist/review/templates/finding-criteria.d.ts.map +1 -0
- package/dist/review/templates/finding-criteria.js +39 -0
- package/dist/review/templates/finding-criteria.js.map +1 -0
- package/dist/review/templates/quality-review-artifact.d.ts +13 -0
- package/dist/review/templates/quality-review-artifact.d.ts.map +1 -1
- package/dist/review/templates/quality-review-artifact.js +41 -3
- package/dist/review/templates/quality-review-artifact.js.map +1 -1
- package/dist/review/templates/quality-review-audit.d.ts.map +1 -1
- package/dist/review/templates/quality-review-audit.js +3 -2
- package/dist/review/templates/quality-review-audit.js.map +1 -1
- package/dist/review/templates/quality-review-debug.d.ts.map +1 -1
- package/dist/review/templates/quality-review-debug.js +3 -2
- package/dist/review/templates/quality-review-debug.js.map +1 -1
- package/dist/review/templates/quality-review-investigate.d.ts.map +1 -1
- package/dist/review/templates/quality-review-investigate.js +3 -2
- package/dist/review/templates/quality-review-investigate.js.map +1 -1
- package/dist/review/templates/quality-review-review.d.ts.map +1 -1
- package/dist/review/templates/quality-review-review.js +3 -2
- package/dist/review/templates/quality-review-review.js.map +1 -1
- package/dist/review/templates/quality-review-verify.d.ts.map +1 -1
- package/dist/review/templates/quality-review-verify.js +3 -2
- package/dist/review/templates/quality-review-verify.js.map +1 -1
- package/dist/review/templates/shared.d.ts +22 -5
- package/dist/review/templates/shared.d.ts.map +1 -1
- package/dist/review/templates/spec-review.d.ts +15 -0
- package/dist/review/templates/spec-review.d.ts.map +1 -1
- package/dist/review/templates/spec-review.js +43 -3
- package/dist/review/templates/spec-review.js.map +1 -1
- package/dist/stores/file-backed-context-block-store.d.ts +5 -1
- package/dist/stores/file-backed-context-block-store.d.ts.map +1 -1
- package/dist/stores/file-backed-context-block-store.js +16 -19
- package/dist/stores/file-backed-context-block-store.js.map +1 -1
- package/dist/stores/project-context-registry.d.ts +5 -3
- package/dist/stores/project-context-registry.d.ts.map +1 -1
- package/dist/stores/project-context-registry.js.map +1 -1
- package/dist/tool-surface/openapi-generator.d.ts.map +1 -1
- package/dist/tool-surface/openapi-generator.js +4 -4
- package/dist/tool-surface/openapi-generator.js.map +1 -1
- package/dist/tool-surface/register-all-tools.js +3 -3
- package/dist/tool-surface/register-all-tools.js.map +1 -1
- package/dist/tools/audit/implementer-criteria.d.ts +17 -0
- package/dist/tools/audit/implementer-criteria.d.ts.map +1 -0
- package/dist/tools/audit/implementer-criteria.js +36 -0
- package/dist/tools/audit/implementer-criteria.js.map +1 -0
- package/dist/tools/audit/tool-config.d.ts.map +1 -1
- package/dist/tools/audit/tool-config.js +24 -6
- package/dist/tools/audit/tool-config.js.map +1 -1
- package/dist/tools/debug/implementer-criteria.d.ts +12 -0
- package/dist/tools/debug/implementer-criteria.d.ts.map +1 -0
- package/dist/tools/debug/implementer-criteria.js +29 -0
- package/dist/tools/debug/implementer-criteria.js.map +1 -0
- package/dist/tools/debug/tool-config.d.ts.map +1 -1
- package/dist/tools/debug/tool-config.js +18 -4
- package/dist/tools/debug/tool-config.js.map +1 -1
- package/dist/tools/execute-plan/tool-config.d.ts.map +1 -1
- package/dist/tools/execute-plan/tool-config.js +5 -1
- package/dist/tools/execute-plan/tool-config.js.map +1 -1
- package/dist/tools/index.d.ts +0 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +0 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/investigate/implementer-criteria.d.ts +17 -0
- package/dist/tools/investigate/implementer-criteria.d.ts.map +1 -0
- package/dist/tools/investigate/implementer-criteria.js +33 -0
- package/dist/tools/investigate/implementer-criteria.js.map +1 -0
- package/dist/tools/investigate/tool-config.d.ts +13 -1
- package/dist/tools/investigate/tool-config.d.ts.map +1 -1
- package/dist/tools/investigate/tool-config.js +34 -4
- package/dist/tools/investigate/tool-config.js.map +1 -1
- package/dist/tools/research/implementer-criteria.d.ts +15 -0
- package/dist/tools/research/implementer-criteria.d.ts.map +1 -0
- package/dist/tools/research/implementer-criteria.js +37 -0
- package/dist/tools/research/implementer-criteria.js.map +1 -0
- package/dist/tools/{explore → research}/schema.d.ts +2 -3
- package/dist/tools/research/schema.d.ts.map +1 -0
- package/dist/tools/{explore → research}/schema.js +10 -16
- package/dist/tools/research/schema.js.map +1 -0
- package/dist/tools/research/tool-config.d.ts +20 -0
- package/dist/tools/research/tool-config.d.ts.map +1 -0
- package/dist/tools/research/tool-config.js +51 -0
- package/dist/tools/research/tool-config.js.map +1 -0
- package/dist/tools/retry/tool-config.d.ts.map +1 -1
- package/dist/tools/retry/tool-config.js +27 -4
- package/dist/tools/retry/tool-config.js.map +1 -1
- package/dist/tools/review/implementer-criteria.d.ts +11 -0
- package/dist/tools/review/implementer-criteria.d.ts.map +1 -0
- package/dist/tools/review/implementer-criteria.js +27 -0
- package/dist/tools/review/implementer-criteria.js.map +1 -0
- package/dist/tools/review/tool-config.d.ts.map +1 -1
- package/dist/tools/review/tool-config.js +43 -4
- package/dist/tools/review/tool-config.js.map +1 -1
- package/dist/tools/verify/implementer-criteria.d.ts +12 -0
- package/dist/tools/verify/implementer-criteria.d.ts.map +1 -0
- package/dist/tools/verify/implementer-criteria.js +29 -0
- package/dist/tools/verify/implementer-criteria.js.map +1 -0
- package/dist/tools/verify/tool-config.d.ts.map +1 -1
- package/dist/tools/verify/tool-config.js +18 -4
- package/dist/tools/verify/tool-config.js.map +1 -1
- package/dist/types/enums.d.ts +1 -11
- package/dist/types/enums.d.ts.map +1 -1
- package/dist/types/enums.js +2 -4
- package/dist/types/enums.js.map +1 -1
- package/package.json +12 -40
- package/dist/intake/brief-compiler-slots/audit.d.ts +0 -23
- package/dist/intake/brief-compiler-slots/audit.d.ts.map +0 -1
- package/dist/intake/brief-compiler-slots/audit.js +0 -61
- package/dist/intake/brief-compiler-slots/audit.js.map +0 -1
- package/dist/intake/brief-compiler-slots/explore.d.ts +0 -43
- package/dist/intake/brief-compiler-slots/explore.d.ts.map +0 -1
- package/dist/intake/brief-compiler-slots/explore.js +0 -116
- package/dist/intake/brief-compiler-slots/explore.js.map +0 -1
- package/dist/intake/brief-compiler-slots/investigate.d.ts +0 -26
- package/dist/intake/brief-compiler-slots/investigate.d.ts.map +0 -1
- package/dist/intake/brief-compiler-slots/investigate.js +0 -42
- package/dist/intake/brief-compiler-slots/investigate.js.map +0 -1
- package/dist/intake/brief-compiler-slots/verify.d.ts +0 -21
- package/dist/intake/brief-compiler-slots/verify.d.ts.map +0 -1
- package/dist/intake/brief-compiler-slots/verify.js +0 -62
- package/dist/intake/brief-compiler-slots/verify.js.map +0 -1
- package/dist/reporting/compose-explore-headline.d.ts +0 -14
- package/dist/reporting/compose-explore-headline.d.ts.map +0 -1
- package/dist/reporting/compose-explore-headline.js +0 -14
- package/dist/reporting/compose-explore-headline.js.map +0 -1
- package/dist/reporting/derive-explore-status.d.ts +0 -18
- package/dist/reporting/derive-explore-status.d.ts.map +0 -1
- package/dist/reporting/derive-explore-status.js +0 -15
- package/dist/reporting/derive-explore-status.js.map +0 -1
- package/dist/reporting/headline-templates/explore.d.ts +0 -3
- package/dist/reporting/headline-templates/explore.d.ts.map +0 -1
- package/dist/reporting/headline-templates/explore.js +0 -13
- package/dist/reporting/headline-templates/explore.js.map +0 -1
- package/dist/reporting/parse-explore-report.d.ts +0 -38
- package/dist/reporting/parse-explore-report.d.ts.map +0 -1
- package/dist/reporting/parse-explore-report.js +0 -185
- package/dist/reporting/parse-explore-report.js.map +0 -1
- package/dist/reporting/report-parser-slots/explore-report.d.ts +0 -17
- package/dist/reporting/report-parser-slots/explore-report.d.ts.map +0 -1
- package/dist/reporting/report-parser-slots/explore-report.js +0 -9
- package/dist/reporting/report-parser-slots/explore-report.js.map +0 -1
- package/dist/research/explore-orchestrator.d.ts +0 -14
- package/dist/research/explore-orchestrator.d.ts.map +0 -1
- package/dist/research/explore-orchestrator.js +0 -362
- package/dist/research/explore-orchestrator.js.map +0 -1
- package/dist/tools/explore/schema.d.ts.map +0 -1
- package/dist/tools/explore/schema.js.map +0 -1
- package/dist/tools/explore/tool-config.d.ts +0 -7
- package/dist/tools/explore/tool-config.d.ts.map +0 -1
- package/dist/tools/explore/tool-config.js +0 -36
- package/dist/tools/explore/tool-config.js.map +0 -1
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DiffTracker — snapshot files at task start, produce a cumulative
|
|
3
|
+
* unified diff at any point during the lifecycle.
|
|
4
|
+
*
|
|
5
|
+
* Tool sweep #6 motivation: every reviewer template (spec / quality /
|
|
6
|
+
* diff) was reviewing the worker's TEXT CLAIM about its work, not the
|
|
7
|
+
* actual change on disk. Result:
|
|
8
|
+
* - Spec reviewers defaulted to "changes_required" because they
|
|
9
|
+
* could not verify a claim they couldn't see → endless rework
|
|
10
|
+
* spirals on already-correct work.
|
|
11
|
+
* - Quality findings were rooted in the worker's prose summary
|
|
12
|
+
* rather than diff lines → false positives, missed regressions.
|
|
13
|
+
* - The "diff reviewer" did not actually receive a diff (a misnomer).
|
|
14
|
+
*
|
|
15
|
+
* Fix: every reviewer prompt now receives `cumulativeDiff` — the
|
|
16
|
+
* unified diff of every change made since task start, regardless of
|
|
17
|
+
* which rework round produced it. With evidence in hand the reviewer
|
|
18
|
+
* can be precise: "diff matches brief? approve" — single round, no
|
|
19
|
+
* spiral, no waste.
|
|
20
|
+
*
|
|
21
|
+
* "Cumulative" matters: across spec_rework rounds 1..N, the reviewer
|
|
22
|
+
* needs to see the totality of edits so it can confirm prior reworks'
|
|
23
|
+
* additions are still present. A latest-round-only diff would make
|
|
24
|
+
* the round-2 reviewer say "you didn't add Y" when round-1 actually
|
|
25
|
+
* did.
|
|
26
|
+
*
|
|
27
|
+
* Implementation choice: snapshot-based, NOT git-based.
|
|
28
|
+
* - Works in non-git directories (test fixtures, sandboxes,
|
|
29
|
+
* fresh-scaffold projects).
|
|
30
|
+
* - No assumption about HEAD state.
|
|
31
|
+
* - No mutation of `.git/` (no `add -N`, no temporary index entries).
|
|
32
|
+
* - Captures new files cleanly (baseline=null → full new-file diff).
|
|
33
|
+
*
|
|
34
|
+
* Diff format: unified diff (`@@ -before,count +after,count @@`)
|
|
35
|
+
* generated via Myers-style line LCS. The LLM is the consumer; the
|
|
36
|
+
* format is what every model has been trained on.
|
|
37
|
+
*
|
|
38
|
+
* Output cap: 50KB total. Excess is truncated with a "[diff truncated
|
|
39
|
+
* at 50KB — N more bytes elided]" marker so the LLM knows the diff is
|
|
40
|
+
* incomplete and can react accordingly (rather than silently judging
|
|
41
|
+
* a partial picture).
|
|
42
|
+
*/
|
|
43
|
+
import * as fs from 'node:fs/promises';
|
|
44
|
+
import * as path from 'node:path';
|
|
45
|
+
const MAX_DIFF_BYTES = 50 * 1024; // 50KB cap to protect reviewer context window
|
|
46
|
+
const CONTEXT_LINES = 3; // unified-diff convention
|
|
47
|
+
export class DiffTracker {
|
|
48
|
+
cwd;
|
|
49
|
+
baselines = new Map();
|
|
50
|
+
constructor(cwd) {
|
|
51
|
+
this.cwd = cwd;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Capture current file content as the baseline. Idempotent: if a
|
|
55
|
+
* path was already snapshotted, the existing baseline wins (the
|
|
56
|
+
* earliest-known content is the canonical pre-task state).
|
|
57
|
+
*
|
|
58
|
+
* Call once at task start with all `task.filePaths`; call again
|
|
59
|
+
* lazily (via `ensureSnapshotted`) if a worker writes a path that
|
|
60
|
+
* wasn't pre-declared.
|
|
61
|
+
*/
|
|
62
|
+
async snapshot(relativePaths) {
|
|
63
|
+
for (const rel of relativePaths) {
|
|
64
|
+
if (this.baselines.has(rel))
|
|
65
|
+
continue;
|
|
66
|
+
const abs = path.resolve(this.cwd, rel);
|
|
67
|
+
try {
|
|
68
|
+
const content = await fs.readFile(abs, 'utf-8');
|
|
69
|
+
this.baselines.set(rel, content);
|
|
70
|
+
}
|
|
71
|
+
catch (e) {
|
|
72
|
+
if (e.code === 'ENOENT') {
|
|
73
|
+
// File didn't exist at task start. Worker may create it →
|
|
74
|
+
// diff later will show as a full new-file diff.
|
|
75
|
+
this.baselines.set(rel, null);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
throw e;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Defensive: if the worker writes a file that wasn't pre-declared
|
|
85
|
+
* in `task.filePaths`, we don't have a baseline for it. Capture
|
|
86
|
+
* one NOW (whatever the file's current state) so subsequent diffs
|
|
87
|
+
* show only what THIS rework round changed for it. This is a
|
|
88
|
+
* best-effort fallback; the operator should declare filePaths.
|
|
89
|
+
*/
|
|
90
|
+
async ensureSnapshotted(relativePath) {
|
|
91
|
+
if (this.baselines.has(relativePath))
|
|
92
|
+
return;
|
|
93
|
+
await this.snapshot([relativePath]);
|
|
94
|
+
}
|
|
95
|
+
/** Return the unified diff of every snapshotted path against its
|
|
96
|
+
* current on-disk content. Empty string when nothing changed.
|
|
97
|
+
* Capped at MAX_DIFF_BYTES with a truncation marker. */
|
|
98
|
+
async cumulativeDiff() {
|
|
99
|
+
const segments = [];
|
|
100
|
+
for (const [rel, before] of this.baselines.entries()) {
|
|
101
|
+
const abs = path.resolve(this.cwd, rel);
|
|
102
|
+
let after;
|
|
103
|
+
try {
|
|
104
|
+
after = await fs.readFile(abs, 'utf-8');
|
|
105
|
+
}
|
|
106
|
+
catch (e) {
|
|
107
|
+
if (e.code === 'ENOENT')
|
|
108
|
+
after = null;
|
|
109
|
+
else
|
|
110
|
+
throw e;
|
|
111
|
+
}
|
|
112
|
+
if (before === after)
|
|
113
|
+
continue;
|
|
114
|
+
const seg = formatUnifiedDiff(rel, before, after);
|
|
115
|
+
if (seg)
|
|
116
|
+
segments.push(seg);
|
|
117
|
+
}
|
|
118
|
+
return capWithMarker(segments.join('\n\n'));
|
|
119
|
+
}
|
|
120
|
+
/** Test hook: how many baselines have been captured. */
|
|
121
|
+
size() {
|
|
122
|
+
return this.baselines.size;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
function capWithMarker(s) {
|
|
126
|
+
if (s.length <= MAX_DIFF_BYTES)
|
|
127
|
+
return s;
|
|
128
|
+
const elided = s.length - MAX_DIFF_BYTES;
|
|
129
|
+
return s.slice(0, MAX_DIFF_BYTES) + `\n\n[diff truncated at ${MAX_DIFF_BYTES} bytes — ${elided} more bytes elided]`;
|
|
130
|
+
}
|
|
131
|
+
/** Unified-diff for one file. */
|
|
132
|
+
function formatUnifiedDiff(relPath, before, after) {
|
|
133
|
+
if (before === after)
|
|
134
|
+
return '';
|
|
135
|
+
const beforeLines = before === null ? [] : splitKeepNewlines(before);
|
|
136
|
+
const afterLines = after === null ? [] : splitKeepNewlines(after);
|
|
137
|
+
const aLabel = before === null ? '/dev/null' : `a/${relPath}`;
|
|
138
|
+
const bLabel = after === null ? '/dev/null' : `b/${relPath}`;
|
|
139
|
+
const ops = lineDiff(beforeLines, afterLines);
|
|
140
|
+
const hunks = collectHunks(ops, CONTEXT_LINES);
|
|
141
|
+
if (hunks.length === 0)
|
|
142
|
+
return '';
|
|
143
|
+
const out = [];
|
|
144
|
+
out.push(`--- ${aLabel}`);
|
|
145
|
+
out.push(`+++ ${bLabel}`);
|
|
146
|
+
for (const h of hunks) {
|
|
147
|
+
out.push(`@@ -${h.beforeStart + 1},${h.beforeCount} +${h.afterStart + 1},${h.afterCount} @@`);
|
|
148
|
+
for (const line of h.lines)
|
|
149
|
+
out.push(line);
|
|
150
|
+
}
|
|
151
|
+
return out.join('\n');
|
|
152
|
+
}
|
|
153
|
+
function splitKeepNewlines(s) {
|
|
154
|
+
// Split into logical lines. Trailing newline is preserved on each
|
|
155
|
+
// line except the last (which may or may not have one, like POSIX).
|
|
156
|
+
if (s === '')
|
|
157
|
+
return [];
|
|
158
|
+
const out = s.split('\n');
|
|
159
|
+
// If original ended with \n, the split produces a trailing '' which
|
|
160
|
+
// represents "the final newline" — drop it (unified diff lines DON'T
|
|
161
|
+
// include the trailing newline; it's implicit).
|
|
162
|
+
if (out.length > 0 && out[out.length - 1] === '')
|
|
163
|
+
out.pop();
|
|
164
|
+
return out;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Line-level diff using a simple LCS (Hirschberg / dynamic-programming).
|
|
168
|
+
* Returns ops in document order. For typical edits (a few lines changed
|
|
169
|
+
* in a file of hundreds of lines) this is O(N×M) but with N×M small.
|
|
170
|
+
* For huge files it's still bounded — the result is line-count
|
|
171
|
+
* sensitive, not byte-count sensitive.
|
|
172
|
+
*/
|
|
173
|
+
function lineDiff(a, b) {
|
|
174
|
+
const n = a.length;
|
|
175
|
+
const m = b.length;
|
|
176
|
+
// Build LCS length matrix.
|
|
177
|
+
const dp = Array.from({ length: n + 1 }, () => new Array(m + 1).fill(0));
|
|
178
|
+
for (let i = n - 1; i >= 0; i--) {
|
|
179
|
+
for (let j = m - 1; j >= 0; j--) {
|
|
180
|
+
if (a[i] === b[j])
|
|
181
|
+
dp[i][j] = dp[i + 1][j + 1] + 1;
|
|
182
|
+
else
|
|
183
|
+
dp[i][j] = Math.max(dp[i + 1][j], dp[i][j + 1]);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
// Backtrack to produce ops.
|
|
187
|
+
const ops = [];
|
|
188
|
+
let i = 0, j = 0;
|
|
189
|
+
while (i < n && j < m) {
|
|
190
|
+
if (a[i] === b[j]) {
|
|
191
|
+
ops.push({ kind: 'equal', text: a[i] });
|
|
192
|
+
i++;
|
|
193
|
+
j++;
|
|
194
|
+
}
|
|
195
|
+
else if (dp[i + 1][j] >= dp[i][j + 1]) {
|
|
196
|
+
ops.push({ kind: 'delete', text: a[i] });
|
|
197
|
+
i++;
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
ops.push({ kind: 'insert', text: b[j] });
|
|
201
|
+
j++;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
while (i < n)
|
|
205
|
+
ops.push({ kind: 'delete', text: a[i++] });
|
|
206
|
+
while (j < m)
|
|
207
|
+
ops.push({ kind: 'insert', text: b[j++] });
|
|
208
|
+
return ops;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Group ops into unified-diff hunks with `context` lines of unchanged
|
|
212
|
+
* surrounding code. Skip pure-equal stretches longer than 2×context.
|
|
213
|
+
*/
|
|
214
|
+
function collectHunks(ops, context) {
|
|
215
|
+
const hunks = [];
|
|
216
|
+
let i = 0;
|
|
217
|
+
let beforeIdx = 0; // 0-based line index into the "before" file
|
|
218
|
+
let afterIdx = 0;
|
|
219
|
+
while (i < ops.length) {
|
|
220
|
+
// Skip purely-equal runs up to first change.
|
|
221
|
+
while (i < ops.length && ops[i].kind === 'equal') {
|
|
222
|
+
// Tentatively advance — but if a change is within `context`
|
|
223
|
+
// ahead, we'll back off to include it as preceding-context.
|
|
224
|
+
let lookahead = i;
|
|
225
|
+
while (lookahead < ops.length && lookahead < i + context && ops[lookahead].kind === 'equal')
|
|
226
|
+
lookahead++;
|
|
227
|
+
if (lookahead < ops.length && ops[lookahead].kind !== 'equal')
|
|
228
|
+
break;
|
|
229
|
+
beforeIdx++;
|
|
230
|
+
afterIdx++;
|
|
231
|
+
i++;
|
|
232
|
+
}
|
|
233
|
+
if (i >= ops.length)
|
|
234
|
+
break;
|
|
235
|
+
// Start a hunk. Include up to `context` preceding equal lines.
|
|
236
|
+
const hunkLines = [];
|
|
237
|
+
let preStart = Math.max(0, i - context);
|
|
238
|
+
// Walk back to preStart, but only include 'equal' ops on the way.
|
|
239
|
+
// Use bookkeeping: how many equal lines we step back.
|
|
240
|
+
const preLines = [];
|
|
241
|
+
let walkBack = i - 1;
|
|
242
|
+
while (walkBack >= preStart && ops[walkBack].kind === 'equal' && preLines.length < context) {
|
|
243
|
+
preLines.unshift(' ' + ops[walkBack].text);
|
|
244
|
+
walkBack--;
|
|
245
|
+
}
|
|
246
|
+
const hunkBeforeStart = beforeIdx - preLines.length;
|
|
247
|
+
const hunkAfterStart = afterIdx - preLines.length;
|
|
248
|
+
hunkLines.push(...preLines);
|
|
249
|
+
// Walk forward, collecting changes + interleaved equals (up to
|
|
250
|
+
// 2×context equals before splitting into a new hunk).
|
|
251
|
+
let beforeCount = preLines.length;
|
|
252
|
+
let afterCount = preLines.length;
|
|
253
|
+
let trailingEqualCount = 0;
|
|
254
|
+
while (i < ops.length) {
|
|
255
|
+
const op = ops[i];
|
|
256
|
+
if (op.kind === 'equal') {
|
|
257
|
+
if (trailingEqualCount >= 2 * context) {
|
|
258
|
+
// Decide whether to split: peek to see if more changes coming.
|
|
259
|
+
let look = i;
|
|
260
|
+
while (look < ops.length && ops[look].kind === 'equal')
|
|
261
|
+
look++;
|
|
262
|
+
if (look >= ops.length || look - i > context) {
|
|
263
|
+
// No more changes within range — close the hunk with `context` trailing.
|
|
264
|
+
break;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
hunkLines.push(' ' + op.text);
|
|
268
|
+
beforeCount++;
|
|
269
|
+
afterCount++;
|
|
270
|
+
beforeIdx++;
|
|
271
|
+
afterIdx++;
|
|
272
|
+
trailingEqualCount++;
|
|
273
|
+
i++;
|
|
274
|
+
}
|
|
275
|
+
else if (op.kind === 'delete') {
|
|
276
|
+
hunkLines.push('-' + op.text);
|
|
277
|
+
beforeCount++;
|
|
278
|
+
beforeIdx++;
|
|
279
|
+
trailingEqualCount = 0;
|
|
280
|
+
i++;
|
|
281
|
+
}
|
|
282
|
+
else {
|
|
283
|
+
// insert
|
|
284
|
+
hunkLines.push('+' + op.text);
|
|
285
|
+
afterCount++;
|
|
286
|
+
afterIdx++;
|
|
287
|
+
trailingEqualCount = 0;
|
|
288
|
+
i++;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
// Trim trailing context to exactly `context` lines if we accumulated more.
|
|
292
|
+
while (trailingEqualCount > context) {
|
|
293
|
+
const last = hunkLines[hunkLines.length - 1];
|
|
294
|
+
if (last.startsWith(' ')) {
|
|
295
|
+
hunkLines.pop();
|
|
296
|
+
beforeCount--;
|
|
297
|
+
afterCount--;
|
|
298
|
+
trailingEqualCount--;
|
|
299
|
+
beforeIdx--;
|
|
300
|
+
afterIdx--;
|
|
301
|
+
i--;
|
|
302
|
+
}
|
|
303
|
+
else
|
|
304
|
+
break;
|
|
305
|
+
}
|
|
306
|
+
hunks.push({
|
|
307
|
+
beforeStart: hunkBeforeStart,
|
|
308
|
+
beforeCount,
|
|
309
|
+
afterStart: hunkAfterStart,
|
|
310
|
+
afterCount,
|
|
311
|
+
lines: hunkLines,
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
return hunks;
|
|
315
|
+
}
|
|
316
|
+
//# sourceMappingURL=diff-tracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff-tracker.js","sourceRoot":"","sources":["../../src/lifecycle/diff-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,5 +15,5 @@ import type { LifecycleState } from '../stage-plan-types.js';
|
|
|
15
15
|
* so state.task is the per-dispatch task. This handler surfaces task[0]
|
|
16
16
|
* as a fallback for downstream handlers that need a TaskSpec.
|
|
17
17
|
*/
|
|
18
|
-
export declare function prepareExecutionContextHandler(state: LifecycleState): void
|
|
18
|
+
export declare function prepareExecutionContextHandler(state: LifecycleState): Promise<void>;
|
|
19
19
|
//# sourceMappingURL=prepare-execution-context-handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare-execution-context-handler.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/handlers/prepare-execution-context-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"prepare-execution-context-handler.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/handlers/prepare-execution-context-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAI7D;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,8BAA8B,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAyCzF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DiffTracker } from '../diff-tracker.js';
|
|
1
2
|
/**
|
|
2
3
|
* StageHandler for row 2.5 (prepare_execution_context).
|
|
3
4
|
*
|
|
@@ -14,7 +15,7 @@
|
|
|
14
15
|
* so state.task is the per-dispatch task. This handler surfaces task[0]
|
|
15
16
|
* as a fallback for downstream handlers that need a TaskSpec.
|
|
16
17
|
*/
|
|
17
|
-
export function prepareExecutionContextHandler(state) {
|
|
18
|
+
export async function prepareExecutionContextHandler(state) {
|
|
18
19
|
// Fallback: if rawRequest carries a TaskSpec[] and state.task is empty,
|
|
19
20
|
// surface the first task so per-task handlers have something to read.
|
|
20
21
|
if (!state.task) {
|
|
@@ -34,5 +35,26 @@ export function prepareExecutionContextHandler(state) {
|
|
|
34
35
|
if (task && task.reviewPolicy) {
|
|
35
36
|
state.reviewPolicy = task.reviewPolicy;
|
|
36
37
|
}
|
|
38
|
+
// Tool sweep #6: snapshot the worker's declared filePaths BEFORE the
|
|
39
|
+
// implementer runs so reviewer stages can produce a cumulative diff
|
|
40
|
+
// against the pre-task baseline. Skip read-only routes (audit / review
|
|
41
|
+
// / verify / debug / investigate / explore) — they don't write files
|
|
42
|
+
// by sandbox policy, so a tracker would just be empty noise.
|
|
43
|
+
if (!state.diffTracker && task && state.toolCategory !== 'read_only') {
|
|
44
|
+
const cwd = task.cwd;
|
|
45
|
+
const filePaths = Array.isArray(task.filePaths) ? task.filePaths : [];
|
|
46
|
+
if (cwd && filePaths.length > 0) {
|
|
47
|
+
const tracker = new DiffTracker(cwd);
|
|
48
|
+
try {
|
|
49
|
+
await tracker.snapshot(filePaths);
|
|
50
|
+
state.diffTracker = tracker;
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
// Snapshot failures (permission, unreadable) shouldn't block the
|
|
54
|
+
// task. Reviewer just sees an empty diff and falls back to the
|
|
55
|
+
// worker-output-only path — degraded but not broken.
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
37
59
|
}
|
|
38
60
|
//# sourceMappingURL=prepare-execution-context-handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare-execution-context-handler.js","sourceRoot":"","sources":["../../../src/lifecycle/handlers/prepare-execution-context-handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prepare-execution-context-handler.js","sourceRoot":"","sources":["../../../src/lifecycle/handlers/prepare-execution-context-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,KAAqB;IACxE,wEAAwE;IACxE,sEAAsE;IACtE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,KAAK,CAAC,OAA6C,CAAC;QAChE,MAAM,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,KAAK;YAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;IAChC,CAAC;IAED,4EAA4E;IAC5E,yEAAyE;IACzE,sEAAsE;IACtE,2DAA2D;IAC3D,4EAA4E;IAC5E,4EAA4E;IAC5E,mEAAmE;IACnE,MAAM,IAAI,GAAG,KAAK,CAAC,IAA4B,CAAC;IAChD,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QAC9B,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IACzC,CAAC;IAED,qEAAqE;IACrE,oEAAoE;IACpE,uEAAuE;IACvE,qEAAqE;IACrE,6DAA6D;IAC7D,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,IAAI,KAAK,CAAC,YAAY,KAAK,WAAW,EAAE,CAAC;QACrE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,IAAI,GAAG,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAClC,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACP,iEAAiE;gBACjE,+DAA+D;gBAC/D,qDAAqD;YACvD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quality-chain-handlers.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/handlers/quality-chain-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"quality-chain-handlers.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/handlers/quality-chain-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAmW7D,eAAO,MAAM,0BAA0B,UApJkB,cAAc,KAAG,OAAO,CAAC,IAAI,CAoJjB,CAAC;AACtE,eAAO,MAAM,0BAA0B,UArJkB,cAAc,KAAG,OAAO,CAAC,IAAI,CAqJjB,CAAC;AACtE,eAAO,MAAM,0BAA0B,UAtJkB,cAAc,KAAG,OAAO,CAAC,IAAI,CAsJjB,CAAC;AACtE,eAAO,MAAM,0BAA0B,UAhDa,cAAc,KAAG,OAAO,CAAC,IAAI,CAgDZ,CAAC;AACtE,eAAO,MAAM,0BAA0B,UAjDa,cAAc,KAAG,OAAO,CAAC,IAAI,CAiDZ,CAAC;AAEtE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAyCrE"}
|
|
@@ -4,7 +4,7 @@ import { delegateWithEscalation } from '../../escalation/delegate-with-escalatio
|
|
|
4
4
|
import { runWithFallback, TRANSPORT_FAILURES, isReviewTransportFailure, makeSyntheticRunResult, } from '../../escalation/fallback.js';
|
|
5
5
|
import { makeSkippedReviewResult } from '../../review/skipped-result.js';
|
|
6
6
|
import { makeRunnerShell } from '../../providers/make-runner-shell.js';
|
|
7
|
-
import { mergeStageStats } from '../merge-stage-stats.js';
|
|
7
|
+
import { mergeStageStats, replaceLastRunResultPreservingTrackers } from '../merge-stage-stats.js';
|
|
8
8
|
async function runQualityReviewRound(input) {
|
|
9
9
|
const { state, ctx, round } = input;
|
|
10
10
|
const last = state.lastRunResult;
|
|
@@ -25,6 +25,20 @@ async function runQualityReviewRound(input) {
|
|
|
25
25
|
const filesWritten = last.filesWritten ?? [];
|
|
26
26
|
state.qualityUnavailable ??= new Map();
|
|
27
27
|
const qualityUnavailable = state.qualityUnavailable;
|
|
28
|
+
// Tool sweep #6: cumulative diff for quality review (artifact-producing
|
|
29
|
+
// routes). Same plumbing as spec-chain — reviewer needs to see the
|
|
30
|
+
// actual code change to make precise findings. Read-only routes don't
|
|
31
|
+
// have a diffTracker, so this is empty for them (and harmless).
|
|
32
|
+
let cumulativeDiff = '';
|
|
33
|
+
if (state.diffTracker) {
|
|
34
|
+
try {
|
|
35
|
+
cumulativeDiff = await state.diffTracker.cumulativeDiff();
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
// Diff failures shouldn't block review.
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
const priorConcerns = Array.isArray(state.priorQualityConcerns) ? state.priorQualityConcerns : [];
|
|
28
42
|
const reviewerCall = await runWithFallback({
|
|
29
43
|
assigned: reviewerTier,
|
|
30
44
|
providerFor: (tier) => ctx.providers[tier],
|
|
@@ -47,6 +61,8 @@ async function runQualityReviewRound(input) {
|
|
|
47
61
|
fileContents,
|
|
48
62
|
toolCallLog,
|
|
49
63
|
filesWritten,
|
|
64
|
+
diff: cumulativeDiff,
|
|
65
|
+
priorConcerns,
|
|
50
66
|
abortSignal: ctx.stall.controller.signal,
|
|
51
67
|
deadlineMs: ctx.timing.deadlineMs,
|
|
52
68
|
...(ctx.bus && { bus: ctx.bus }),
|
|
@@ -147,6 +163,21 @@ function makeQualityReviewHandler(round) {
|
|
|
147
163
|
if (!result)
|
|
148
164
|
return;
|
|
149
165
|
state[slot] = mapQualityVerdict(result);
|
|
166
|
+
// Tool sweep #6: accumulate concerns across rounds for reviewer
|
|
167
|
+
// continuity. Same merge pattern as priorSpecConcerns.
|
|
168
|
+
const concernsList = result.concerns;
|
|
169
|
+
if (Array.isArray(concernsList) && concernsList.length > 0) {
|
|
170
|
+
const prior = Array.isArray(state.priorQualityConcerns) ? state.priorQualityConcerns : [];
|
|
171
|
+
const seen = new Set(prior);
|
|
172
|
+
const merged = [...prior];
|
|
173
|
+
for (const c of concernsList) {
|
|
174
|
+
if (typeof c === 'string' && !seen.has(c)) {
|
|
175
|
+
seen.add(c);
|
|
176
|
+
merged.push(c);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
state.priorQualityConcerns = merged;
|
|
180
|
+
}
|
|
150
181
|
// Persist findings + concerns onto lastRunResult so:
|
|
151
182
|
// - the wire event-builder's findingsBySeverity (reads rr.concerns)
|
|
152
183
|
// populates findings_critical/high/medium/low DB columns instead
|
|
@@ -240,11 +271,10 @@ function makeQualityReworkHandler(reworkIndex) {
|
|
|
240
271
|
}
|
|
241
272
|
return;
|
|
242
273
|
}
|
|
243
|
-
//
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
: newResult;
|
|
274
|
+
// Tool sweep #6: same fix as spec-chain — union file-tracker arrays
|
|
275
|
+
// across rework rounds so the envelope reflects ALL writes, not
|
|
276
|
+
// just the most recent attempt's writes.
|
|
277
|
+
replaceLastRunResultPreservingTrackers(state, newResult);
|
|
248
278
|
// Record rework cost. Quality rework_2 (attemptIndex 2) escalates impl
|
|
249
279
|
// from base tier to the other tier; rework_1 stays on base.
|
|
250
280
|
const baseTier = ctx.assignedTier;
|
|
@@ -300,6 +330,27 @@ export function settleQualityChainHandler(state) {
|
|
|
300
330
|
return;
|
|
301
331
|
}
|
|
302
332
|
if (v1 === 'error' || v2 === 'error' || v3 === 'error') {
|
|
333
|
+
// 4.0.3+ soft-success path for read-only routes (audit / review /
|
|
334
|
+
// verify / debug / investigate). These routes have NO rework loop —
|
|
335
|
+
// the annotator is single-pass. When the annotator returns 'error'
|
|
336
|
+
// (typically a parse failure on its own JSON block) BUT the
|
|
337
|
+
// implementer produced a non-empty narrative output, the findings
|
|
338
|
+
// are still recoverable from `lastRunResult.output` in the canonical
|
|
339
|
+
// `## Finding N:` format. Treat that as chain-passed so the wire
|
|
340
|
+
// envelope reports terminal_status='ok' / worker_status='done'
|
|
341
|
+
// instead of leaking 'review_loop_capped' (artifact-producing-route
|
|
342
|
+
// terminology). Round-1 verdict='error' stays in stage stats as a
|
|
343
|
+
// soft telemetry signal. Headline composers + envelope builders
|
|
344
|
+
// fall back to narrative parsing for the findings count.
|
|
345
|
+
const last = state.lastRunResult;
|
|
346
|
+
const isReadOnly = state.toolCategory === 'read_only';
|
|
347
|
+
const implementerProducedOutput = typeof last?.output === 'string' && last.output.trim().length > 0;
|
|
348
|
+
if (isReadOnly && implementerProducedOutput) {
|
|
349
|
+
state.qualityChainPassed = true;
|
|
350
|
+
return;
|
|
351
|
+
}
|
|
352
|
+
// Artifact-producing route, OR read-only with empty implementer
|
|
353
|
+
// output: hard-fail (no findings to recover).
|
|
303
354
|
state.qualityChainPassed = false;
|
|
304
355
|
state.terminal = true;
|
|
305
356
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quality-chain-handlers.js","sourceRoot":"","sources":["../../../src/lifecycle/handlers/quality-chain-handlers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAGrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,wBAAwB,EACxB,sBAAsB,GAEvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAgC1D,KAAK,UAAU,qBAAqB,CAAC,KAAuB;IAC1D,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IACpC,MAAM,IAAI,GAAG,KAAK,CAAC,aAAsC,CAAC;IAC1D,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,gBAAgB,CAAC;IACtE,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAE7B,MAAM,QAAQ,GAAc,GAAG,CAAC,YAAY,CAAC;IAC7C,MAAM,YAAY,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE1F,MAAM,IAAI,GAAG,KAAK,CAAC,IAA4B,CAAC;IAChD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAgB,CAAC;IACxD,MAAM,mBAAmB,GAAG,KAAK,CAAC,YAAY,KAAK,oBAAoB,CAAC;IAExE,MAAM,YAAY,GAA2B,EAAE,CAAC;IAChD,MAAM,WAAW,GAAa,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;IACnD,MAAM,YAAY,GAAa,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;IAEvD,KAAK,CAAC,kBAAkB,KAAK,IAAI,GAAG,EAAoB,CAAC;IACzD,MAAM,kBAAkB,GAAmB,KAAK,CAAC,kBAAkB,CAAC;IAEpE,MAAM,YAAY,GAAG,MAAM,eAAe,CAAiE;QACzG,QAAQ,EAAE,YAAY;QACtB,WAAW,EAAE,CAAC,IAAe,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAyB;QAC7E,gBAAgB,EAAE,kBAAkB;QACpC,kBAAkB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,wBAAwB,CAAC,CAAwB,CAAC;QAC7E,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAE,CAAsC,CAAC,MAAM;QAChE,oBAAoB,EAAE,GAAG,EAAE,CAAC,uBAAuB,CAAC,uBAAuB,CAAC;QAC5E,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;YACjC,MAAM,KAAK,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,mBAAmB,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,GAAG,CAAC,cAAc,CAAC;gBAClC,IAAI,CAAC,MAAM;oBAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;gBAC9D,IAAI,CAAC;oBACH,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE;wBAChC,YAAY,EAAE,IAAI,CAAC,MAAM;wBACzB,KAAK,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;wBACxB,GAAG,EAAE,GAAG,CAAC,GAAG;wBACZ,KAAK;wBACL,YAAY;wBACZ,WAAW;wBACX,YAAY;wBACZ,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM;wBACxC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU;wBACjC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;wBAChC,GAAG,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;wBAC1D,GAAG,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC;wBAChE,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE,gBAAgB;qBAC7B,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,GAAG,YAAY,kBAAkB,EAAE,CAAC;wBACtC,OAAO,EAAE,OAAO,EAAE,OAAgB,EAAE,QAAQ,EAAE,EAAE,EAAmC,CAAC;oBACtF,CAAC;oBACD,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC;YACD,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC;YACtC,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAClE,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE;gBAC/B,YAAY,EAAE,IAAI,CAAC,MAAM;gBACzB,KAAK,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;gBACxB,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,KAAK,EAAE,KAAuB;gBAC9B,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM;gBACxC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU;gBACjC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;gBAChC,GAAG,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;gBACtD,GAAG,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC;gBACpE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,YAAY;aACzB,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;IAEH,IAAI,YAAY,CAAC,eAAe;QAAE,OAAO,IAAI,CAAC;IAC9C,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC;IAChC,IAAI,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC7D,OAAO,GAA+C,CAAC;AACzD,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,KAAqB,EAAE,GAAqB,EAAE,YAAoB;IAChG,MAAM,IAAI,GAAG,KAAK,CAAC,IAA4B,CAAC;IAChD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,QAAQ,GAAc,GAAG,CAAC,YAAY,CAAC;IAC7C,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE7E,KAAK,CAAC,wBAAwB,GAAG,YAAY,CAAC;IAC9C,KAAK,CAAC,kBAAkB,KAAK,IAAI,GAAG,EAAoB,CAAC;IACzD,MAAM,kBAAkB,GAAmB,KAAK,CAAC,kBAAkB,CAAC;IAEpE,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,4DAA4D,CAAC;IAExG,MAAM,UAAU,GAAG,MAAM,eAAe,CAAY;QAClD,QAAQ,EAAE,QAAQ,CAAC,IAAI;QACvB,WAAW,EAAE,CAAC,IAAe,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAyB;QAC7E,gBAAgB,EAAE,kBAAkB;QACpC,kBAAkB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,gBAAgB,KAAK,SAAS;QAC/F,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM;QAC1B,oBAAoB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,sBAAsB,CAAC,QAAQ,EAAE,uBAAuB,CAAC;QAC7F,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAC3B,sBAAsB,CACpB;YACE,MAAM,EAAE,YAAY;YACpB,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,SAAS,EAAE,QAAQ;YACnB,kBAAkB,EAAE,KAAK;YACzB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS;SAChC,EACD,CAAC,QAAQ,CAAC,EACV;YACE,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU;YACrC,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM;YACxC,YAAY,EAAE,QAAQ;YACtB,kEAAkE;YAClE,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YAChC,GAAG,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;YAC1D,GAAG,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC;YAChE,UAAU,EAAE,wBAAwB,YAAY,EAAE;SACnD,CACF;KACJ,CAAC,CAAC;IAEH,IAAI,UAAU,CAAC,eAAe;QAAE,OAAO,IAAI,CAAC;IAC5C,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IACjC,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACxC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAsE;IAC/F,IAAI,QAAQ,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxE,OAAQ,MAAmD,CAAC,OAAO,CAAC;AACtE,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAgB;IAChD,MAAM,IAAI,GAAG,qBAAqB,KAAK,SAAkB,CAAC;IAC1D,OAAO,KAAK,UAAU,yBAAyB,CAAC,KAAqB;QACnE,IAAI,KAAK,CAAC,IAAI,CAAC;YAAE,OAAO;QACxB,MAAM,GAAG,GAAG,KAAK,CAAC,gBAAgB,CAAC;QACnC,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,KAAK,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACxC,qDAAqD;QACrD,sEAAsE;QACtE,qEAAqE;QACrE,6EAA6E;QAC7E,kEAAkE;QAClE,gEAAgE;QAChE,mDAAmD;QACnD,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACrC,qEAAqE;QACrE,uEAAuE;QACvE,6EAA6E;QAC7E,MAAM,QAAQ,GAAc,GAAG,CAAC,YAAY,CAAC;QAC7C,MAAM,YAAY,GAAc,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;YACpD,CAAC,CAAC,QAAQ,CAAC;QACb,MAAM,gBAAgB,GAAG,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACrD,MAAM,IAAI,GAAI,MAAmD,CAAC,IAAI,CAAC;QACvE,eAAe,CAAC,KAAK,EAAE,gBAAgB,EAAE;YACvC,WAAW,EAAE,IAAI,EAAE,WAAW,IAAI,CAAC;YACnC,YAAY,EAAE,IAAI,EAAE,YAAY,IAAI,CAAC;YACrC,SAAS,EAAE,IAAI,EAAE,SAAS,IAAI,CAAC;YAC/B,aAAa,EAAE,IAAI,EAAE,aAAa,IAAI,CAAC;YACvC,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,IAAI;YAC9B,UAAU,EAAE,IAAI,EAAE,UAAU,IAAI,IAAI;SACrC,EAAE;YACD,IAAI,EAAE,YAAY;YAClB,KAAK,EAAG,gBAAgB,EAAE,MAAyC,EAAE,KAAK,IAAI,IAAI;YAClF,OAAO,EAAG,MAAmD,CAAC,OAAO;SACtE,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;+CAQ+C;AAC/C,SAAS,qBAAqB,CAC5B,KAAqB,EACrB,MAAsE;IAEtE,IAAI,QAAQ,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO;IAC9D,MAAM,IAAI,GAAG,KAAK,CAAC,aAAsC,CAAC;IAC1D,IAAI,CAAC,IAAI;QAAE,OAAO;IAElB,+CAA+C;IAC/C,MAAM,iBAAiB,GAAI,MAA8B,CAAC,iBAAiB,CAAC;IAC5E,IAAI,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrE,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC;QACzE,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;QAChC,MAAM,WAAW,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9C,MAAM,EAAE,gBAAyB;YACjC,QAAQ,EAAE,CAAE,CAA2B,CAAC,QAAQ,IAAI,QAAQ,CAA2C;YACvG,OAAO,EAAE,CAAC,CAAC,KAAK;SACjB,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC;QAC3D,OAAO;IACT,CAAC;IAED,oEAAoE;IACpE,uEAAuE;IACvE,wCAAwC;IACxC,MAAM,gBAAgB,GAAI,MAA6B,CAAC,QAAQ,CAAC;IACjE,IAAI,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnE,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChD,MAAM,EAAE,gBAAyB;YACjC,QAAQ,EAAE,QAAiB;YAC3B,OAAO,EAAE,IAAI;SACd,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,WAAkB;IAClD,6EAA6E;IAC7E,4BAA4B;IAC5B,MAAM,YAAY,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,OAAO,KAAK,UAAU,oBAAoB,CAAC,KAAqB;QAC9D,MAAM,GAAG,GAAG,KAAK,CAAC,gBAAgB,CAAC;QACnC,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;QACnE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,gEAAgE;YAChE,qEAAqE;YACrE,kEAAkE;YAClE,iEAAiE;YACjE,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAC;YACjC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YACtB,IAAI,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;gBAC3D,GAAG,CAAC,aAAa,CACf,oDAAoD,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,aAAa,GAAG,CAAC,OAAO,IAAI,EAAE,eAAe,GAAG,CAAC,SAAS,IAAI,CAAC,iBAAiB,WAAW,IAAI,CAC5K,CAAC;YACJ,CAAC;YACD,OAAO;QACT,CAAC;QACD,8EAA8E;QAC9E,MAAM,eAAe,GAAI,KAAK,CAAC,aAAuC,EAAE,UAAU,CAAC;QACnF,KAAK,CAAC,aAAa,GAAG,eAAe;YACnC,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE;YAC/C,CAAC,CAAC,SAAS,CAAC;QACd,uEAAuE;QACvE,4DAA4D;QAC5D,MAAM,QAAQ,GAAc,GAAG,CAAC,YAAY,CAAC;QAC7C,MAAM,UAAU,GAAc,CAAC,YAAY,KAAK,CAAC,IAAI,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QACrG,MAAM,cAAc,GAAG,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACjD,eAAe,CAAC,KAAK,EAAE,gBAAgB,EAAE;YACvC,WAAW,EAAE,SAAS,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC;YAC9C,YAAY,EAAE,SAAS,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC;YAChD,gBAAgB,EAAE,SAAS,CAAC,KAAK,EAAE,gBAAgB,IAAI,CAAC;YACxD,mBAAmB,EAAE,SAAS,CAAC,KAAK,EAAE,mBAAmB,IAAI,CAAC;YAC9D,SAAS,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC;YAC/B,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAClF,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,IAAI,IAAI;YACxC,UAAU,EAAE,SAAS,CAAC,UAAU,IAAI,IAAI;YACxC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACnF,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAC7F,EAAE;YACD,IAAI,EAAE,UAAU;YAChB,KAAK,EAAG,cAAc,EAAE,MAAyC,EAAE,KAAK,IAAI,IAAI;SACjF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,0BAA0B,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,0BAA0B,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,0BAA0B,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,0BAA0B,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC;AAEtE;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAqB;IAC7D,IAAI,OAAO,KAAK,CAAC,kBAAkB,KAAK,SAAS;QAAE,OAAO;IAC1D,MAAM,EAAE,GAAG,KAAK,CAAC,0BAA0B,CAAC;IAC5C,MAAM,EAAE,GAAG,KAAK,CAAC,0BAA0B,CAAC;IAC5C,MAAM,EAAE,GAAG,KAAK,CAAC,0BAA0B,CAAC;IAE5C,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS;QAAE,OAAO;IAErE,MAAM,KAAK,GAAG,CAAC,CAAY,EAAW,EAAE,CAAC,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,SAAS,CAAC;IAClG,IAAI,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;QACxC,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAChC,OAAO;IACT,CAAC;IACD,IAAI,EAAE,KAAK,OAAO,IAAI,EAAE,KAAK,OAAO,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;QACvD,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC;QACjC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QACtB,OAAO;IACT,CAAC;IACD,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC;AACnC,CAAC"}
|
|
1
|
+
{"version":3,"file":"quality-chain-handlers.js","sourceRoot":"","sources":["../../../src/lifecycle/handlers/quality-chain-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-diff-handler.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/handlers/review-diff-handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAiB7D;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"review-diff-handler.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/handlers/review-diff-handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAiB7D;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAkI5E"}
|
|
@@ -45,19 +45,37 @@ export async function reviewDiffHandler(state) {
|
|
|
45
45
|
return;
|
|
46
46
|
const baseTier = ctx.assignedTier;
|
|
47
47
|
const reviewerTier = pickReviewer({ loop: 'spec', attemptIndex: 0, baseTier });
|
|
48
|
+
// Tool sweep #6: prefer the snapshot-based DiffTracker (works in
|
|
49
|
+
// non-git dirs, captures the cumulative across rework rounds against
|
|
50
|
+
// the pre-task baseline). Fall back to `git diff HEAD~..HEAD` for
|
|
51
|
+
// legacy callers (autoCommit pipelines that ran before the tracker
|
|
52
|
+
// was wired in). If BOTH sources fail, hard-error: reviewing without
|
|
53
|
+
// evidence would be the very bug this sweep is fixing.
|
|
48
54
|
let diff = '';
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
55
|
+
let trackerProvided = false;
|
|
56
|
+
if (state.diffTracker) {
|
|
57
|
+
try {
|
|
58
|
+
diff = await state.diffTracker.cumulativeDiff();
|
|
59
|
+
trackerProvided = true;
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
// tracker error — fall through to git
|
|
63
|
+
}
|
|
56
64
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
65
|
+
if (!trackerProvided) {
|
|
66
|
+
try {
|
|
67
|
+
const { stdout } = await exec('git', ['diff', 'HEAD~..HEAD'], { cwd: ctx.cwd });
|
|
68
|
+
const cap = 64 * 1024;
|
|
69
|
+
const bytes = Buffer.byteLength(stdout, 'utf8');
|
|
70
|
+
diff = bytes > cap
|
|
71
|
+
? Buffer.from(stdout, 'utf8').subarray(0, cap).toString('utf8') + '\n[diff truncated]'
|
|
72
|
+
: stdout;
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
state.diffReviewVerdict = 'error';
|
|
76
|
+
state.terminal = true;
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
61
79
|
}
|
|
62
80
|
state.diffUnavailable ??= new Map();
|
|
63
81
|
const diffUnavailable = state.diffUnavailable;
|
|
@@ -73,9 +91,17 @@ export async function reviewDiffHandler(state) {
|
|
|
73
91
|
const engine = ctx.reviewerEngine;
|
|
74
92
|
if (!engine)
|
|
75
93
|
throw new Error('reviewerEngine not configured');
|
|
94
|
+
// Tool sweep #6: pass diff via the dedicated `diff` field so the
|
|
95
|
+
// template's "# Cumulative diff" section gets actual diff content
|
|
96
|
+
// instead of conflating it with the worker's text summary.
|
|
97
|
+
// workerOutput stays as the verification summary so the diff
|
|
98
|
+
// reviewer has both signals.
|
|
99
|
+
const lastResult = state.lastRunResult;
|
|
100
|
+
const verifySummary = `Verification: ${verifyResult.status}\n${verifyResult.steps.map(s => `- ${s.command} → ${s.status}`).join('\n')}`;
|
|
76
101
|
return engine.runDiff(shell, {
|
|
77
|
-
workerOutput:
|
|
102
|
+
workerOutput: lastResult?.output ?? verifySummary,
|
|
78
103
|
brief: `verification: ${verifyResult.status}\n${verifyResult.steps.map(s => `- ${s.command} → ${s.status}`).join('\n')}`,
|
|
104
|
+
diff,
|
|
79
105
|
cwd: ctx.cwd,
|
|
80
106
|
abortSignal: ctx.stall.controller.signal,
|
|
81
107
|
deadlineMs: ctx.timing.deadlineMs,
|