harnery 0.38.0 → 0.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/agents.js +32 -8
- package/dist/commands/artifacts.d.ts.map +1 -1
- package/dist/commands/artifacts.js +97 -6
- package/dist/commands/backup.d.ts +16 -0
- package/dist/commands/backup.d.ts.map +1 -1
- package/dist/commands/backup.js +239 -33
- package/dist/commands/browse.d.ts +8 -0
- package/dist/commands/browse.d.ts.map +1 -1
- package/dist/commands/browse.js +466 -231
- package/dist/commands/diagnostics.d.ts.map +1 -1
- package/dist/commands/diagnostics.js +6 -3
- package/dist/commands/ledger-v3.d.ts.map +1 -1
- package/dist/commands/ledger-v3.js +20 -4
- package/dist/commands/qa-run.d.ts.map +1 -1
- package/dist/commands/qa-run.js +26 -3
- package/dist/commands/qa-status.d.ts.map +1 -1
- package/dist/commands/qa-status.js +7 -2
- package/dist/commands/resources.d.ts.map +1 -1
- package/dist/commands/resources.js +23 -3
- package/dist/commands/review-pack.d.ts.map +1 -1
- package/dist/commands/review-pack.js +98 -23
- package/dist/commands/tunnel.d.ts.map +1 -1
- package/dist/commands/tunnel.js +2 -2
- package/dist/core/adapters/profiles.d.ts +1 -1
- package/dist/core/agents/canonical-emit.d.ts +3 -2
- package/dist/core/agents/canonical-emit.d.ts.map +1 -1
- package/dist/core/agents/canonical-emit.js +2 -0
- package/dist/core/agents/cli.js +13 -6
- package/dist/core/agents/live-authority-v3.d.ts.map +1 -1
- package/dist/core/agents/live-authority-v3.js +5 -3
- package/dist/core/agents/live-lifecycle-v3.d.ts +2 -2
- package/dist/core/agents/live-lifecycle-v3.d.ts.map +1 -1
- package/dist/core/agents/render/prompt-context.d.ts +7 -5
- package/dist/core/agents/render/prompt-context.d.ts.map +1 -1
- package/dist/core/agents/render/prompt-context.js +63 -8
- package/dist/core/agents/session-finalizer-v3.d.ts +2 -2
- package/dist/core/agents/session-finalizer-v3.d.ts.map +1 -1
- package/dist/core/agents/state/live-coordination-view.d.ts +3 -3
- package/dist/core/agents/state/live-coordination-view.d.ts.map +1 -1
- package/dist/core/agents/state/live-coordination-view.js +2 -1
- package/dist/core/agents/state/names.d.ts +35 -2
- package/dist/core/agents/state/names.d.ts.map +1 -1
- package/dist/core/agents/state/names.js +80 -5
- package/dist/core/agents/state/stale-sweep.d.ts +2 -1
- package/dist/core/agents/state/stale-sweep.d.ts.map +1 -1
- package/dist/core/agents/state/stale-sweep.js +23 -6
- package/dist/core/agents/turn-elapsed.d.ts +51 -0
- package/dist/core/agents/turn-elapsed.d.ts.map +1 -0
- package/dist/core/agents/turn-elapsed.js +91 -0
- package/dist/core/artifacts/activity.d.ts +14 -0
- package/dist/core/artifacts/activity.d.ts.map +1 -0
- package/dist/core/artifacts/activity.js +52 -0
- package/dist/core/artifacts/delivery-card.d.ts +39 -0
- package/dist/core/artifacts/delivery-card.d.ts.map +1 -0
- package/dist/core/artifacts/delivery-card.js +282 -0
- package/dist/core/artifacts/index.d.ts +42 -7
- package/dist/core/artifacts/index.d.ts.map +1 -1
- package/dist/core/artifacts/index.js +288 -76
- package/dist/core/artifacts/mutation-lock.d.ts +2 -0
- package/dist/core/artifacts/mutation-lock.d.ts.map +1 -0
- package/dist/core/artifacts/mutation-lock.js +91 -0
- package/dist/core/backup/host-snapshot.d.ts +18 -0
- package/dist/core/backup/host-snapshot.d.ts.map +1 -0
- package/dist/core/backup/host-snapshot.js +64 -0
- package/dist/core/config.d.ts +20 -5
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +44 -10
- package/dist/core/diagnostics/advice.d.ts +38 -3
- package/dist/core/diagnostics/advice.d.ts.map +1 -1
- package/dist/core/diagnostics/advice.js +103 -99
- package/dist/core/diagnostics/bundle.d.ts.map +1 -1
- package/dist/core/diagnostics/bundle.js +111 -47
- package/dist/core/diagnostics/comparison.d.ts.map +1 -1
- package/dist/core/diagnostics/comparison.js +3 -2
- package/dist/core/diagnostics/contract.d.ts +15 -31
- package/dist/core/diagnostics/contract.d.ts.map +1 -1
- package/dist/core/diagnostics/contract.js +2 -5
- package/dist/core/diagnostics/index.d.ts +2 -0
- package/dist/core/diagnostics/index.d.ts.map +1 -1
- package/dist/core/diagnostics/index.js +2 -0
- package/dist/core/diagnostics/pressure-contract.d.ts +260 -0
- package/dist/core/diagnostics/pressure-contract.d.ts.map +1 -0
- package/dist/core/diagnostics/pressure-contract.js +70 -0
- package/dist/core/diagnostics/pressure.d.ts +25 -0
- package/dist/core/diagnostics/pressure.d.ts.map +1 -0
- package/dist/core/diagnostics/pressure.js +1138 -0
- package/dist/core/diagnostics/replay.d.ts.map +1 -1
- package/dist/core/diagnostics/replay.js +90 -10
- package/dist/core/events/v3/adapter-id.d.ts +6 -0
- package/dist/core/events/v3/adapter-id.d.ts.map +1 -0
- package/dist/core/events/v3/adapter-id.js +7 -0
- package/dist/core/events/v3/archive-retention.d.ts.map +1 -1
- package/dist/core/events/v3/archive-retention.js +3 -2
- package/dist/core/events/v3/bootstrap.d.ts +41 -4
- package/dist/core/events/v3/bootstrap.d.ts.map +1 -1
- package/dist/core/events/v3/bootstrap.js +120 -17
- package/dist/core/events/v3/capabilities.d.ts +16 -9
- package/dist/core/events/v3/capabilities.d.ts.map +1 -1
- package/dist/core/events/v3/capabilities.js +37 -2
- package/dist/core/events/v3/capability-drift.d.ts +2 -2
- package/dist/core/events/v3/capability-drift.d.ts.map +1 -1
- package/dist/core/events/v3/control-witness.d.ts +48 -5
- package/dist/core/events/v3/control-witness.d.ts.map +1 -1
- package/dist/core/events/v3/control-witness.js +91 -36
- package/dist/core/events/v3/control.d.ts.map +1 -1
- package/dist/core/events/v3/control.js +22 -2
- package/dist/core/events/v3/index.d.ts +2 -1
- package/dist/core/events/v3/index.d.ts.map +1 -1
- package/dist/core/events/v3/index.js +2 -1
- package/dist/core/events/v3/live-feed.d.ts +7 -1
- package/dist/core/events/v3/live-feed.d.ts.map +1 -1
- package/dist/core/events/v3/live-feed.js +21 -3
- package/dist/core/events/v3/live-routing.d.ts.map +1 -1
- package/dist/core/events/v3/live-routing.js +10 -2
- package/dist/core/events/v3/producers/command-recorder.d.ts +2 -2
- package/dist/core/events/v3/producers/command-recorder.d.ts.map +1 -1
- package/dist/core/events/v3/producers/command-recorder.js +2 -1
- package/dist/core/events/v3/producers/coordination-recorder.d.ts +2 -2
- package/dist/core/events/v3/producers/coordination-recorder.d.ts.map +1 -1
- package/dist/core/events/v3/producers/coordination-recorder.js +2 -1
- package/dist/core/events/v3/producers/hook-base.d.ts +2 -2
- package/dist/core/events/v3/producers/hook-base.d.ts.map +1 -1
- package/dist/core/events/v3/producers/hook-base.js +15 -5
- package/dist/core/events/v3/producers/hook.d.ts.map +1 -1
- package/dist/core/events/v3/producers/hook.js +17 -4
- package/dist/core/events/v3/producers/intake.d.ts +4 -4
- package/dist/core/events/v3/producers/intake.d.ts.map +1 -1
- package/dist/core/events/v3/producers/intake.js +3 -2
- package/dist/core/events/v3/producers/producer-state-observer.d.ts.map +1 -1
- package/dist/core/events/v3/producers/producer-state-observer.js +2 -1
- package/dist/core/events/v3/producers/recorder.d.ts +16 -5
- package/dist/core/events/v3/producers/recorder.d.ts.map +1 -1
- package/dist/core/events/v3/producers/recorder.js +31 -9
- package/dist/core/events/v3/reader.d.ts.map +1 -1
- package/dist/core/events/v3/reader.js +10 -13
- package/dist/core/events/v3/runtime-build.d.ts.map +1 -1
- package/dist/core/events/v3/runtime-build.js +3 -2
- package/dist/core/events/v3/runtime-telemetry-capabilities.d.ts +2 -2
- package/dist/core/events/v3/runtime-telemetry-capabilities.d.ts.map +1 -1
- package/dist/core/events/v3/turn-telemetry.d.ts +2 -2
- package/dist/core/events/v3/turn-telemetry.d.ts.map +1 -1
- package/dist/core/hooks/adapter/output.d.ts +16 -14
- package/dist/core/hooks/adapter/output.d.ts.map +1 -1
- package/dist/core/hooks/adapter/output.js +36 -38
- package/dist/core/hooks/backup-schedule.d.ts +34 -0
- package/dist/core/hooks/backup-schedule.d.ts.map +1 -0
- package/dist/core/hooks/backup-schedule.js +114 -0
- package/dist/core/hooks/cli.js +61 -18
- package/dist/core/hooks/codex-wsl-bridge.d.ts +2 -0
- package/dist/core/hooks/codex-wsl-bridge.d.ts.map +1 -1
- package/dist/core/hooks/codex-wsl-bridge.js +18 -4
- package/dist/core/hooks/index.d.ts +1 -0
- package/dist/core/hooks/index.d.ts.map +1 -1
- package/dist/core/hooks/index.js +1 -0
- package/dist/core/hooks/prompt-context/contract.d.ts +61 -0
- package/dist/core/hooks/prompt-context/contract.d.ts.map +1 -0
- package/dist/core/hooks/prompt-context/contract.js +102 -0
- package/dist/core/hooks/prompt-context/index.d.ts +5 -0
- package/dist/core/hooks/prompt-context/index.d.ts.map +1 -0
- package/dist/core/hooks/prompt-context/index.js +2 -0
- package/dist/core/hooks/prompt-context/runner.d.ts +24 -0
- package/dist/core/hooks/prompt-context/runner.d.ts.map +1 -0
- package/dist/core/hooks/prompt-context/runner.js +249 -0
- package/dist/core/qa-artifacts.d.ts +3 -0
- package/dist/core/qa-artifacts.d.ts.map +1 -1
- package/dist/core/qa-artifacts.js +25 -3
- package/dist/core/resources/contract.d.ts +69 -3
- package/dist/core/resources/contract.d.ts.map +1 -1
- package/dist/core/resources/contract.js +1 -1
- package/dist/core/resources/index.d.ts +1 -0
- package/dist/core/resources/index.d.ts.map +1 -1
- package/dist/core/resources/index.js +1 -0
- package/dist/core/resources/native.d.ts +36 -0
- package/dist/core/resources/native.d.ts.map +1 -0
- package/dist/core/resources/native.js +418 -0
- package/dist/core/resources/sampler.d.ts +2 -0
- package/dist/core/resources/sampler.d.ts.map +1 -1
- package/dist/core/resources/sampler.js +31 -1
- package/dist/core/resources/status.d.ts +61 -0
- package/dist/core/resources/status.d.ts.map +1 -0
- package/dist/core/resources/status.js +536 -0
- package/dist/core/resources/system.d.ts +27 -0
- package/dist/core/resources/system.d.ts.map +1 -0
- package/dist/core/resources/system.js +439 -0
- package/dist/core/semantic/contract.d.ts +13 -13
- package/dist/core/semantic/service.d.ts +2 -0
- package/dist/core/semantic/service.d.ts.map +1 -1
- package/dist/core/semantic/service.js +27 -4
- package/dist/core/storage/builtins.js +41 -0
- package/dist/core/supervisor/contract.d.ts +41 -3
- package/dist/core/supervisor/contract.d.ts.map +1 -1
- package/dist/core/supervisor/contract.js +3 -2
- package/dist/core/supervisor/findings.d.ts +3 -0
- package/dist/core/supervisor/findings.d.ts.map +1 -1
- package/dist/core/supervisor/findings.js +88 -0
- package/dist/core/supervisor/history.d.ts.map +1 -1
- package/dist/core/supervisor/history.js +14 -0
- package/dist/core/supervisor/ledger-state.d.ts +55 -0
- package/dist/core/supervisor/ledger-state.d.ts.map +1 -0
- package/dist/core/supervisor/ledger-state.js +0 -0
- package/dist/core/supervisor/service.d.ts.map +1 -1
- package/dist/core/supervisor/service.js +120 -7
- package/dist/core/supervisor/storage.d.ts +3 -1
- package/dist/core/supervisor/storage.d.ts.map +1 -1
- package/dist/core/supervisor/storage.js +4 -0
- package/dist/core/workflow/admission.d.ts +3 -0
- package/dist/core/workflow/admission.d.ts.map +1 -1
- package/dist/core/workflow/admission.js +28 -16
- package/dist/core/workflow/engine.js +2 -2
- package/dist/core/workflow/live-session-v3.d.ts.map +1 -1
- package/dist/core/workflow/live-session-v3.js +6 -1
- package/dist/core/workflow/proof.d.ts.map +1 -1
- package/dist/core/workflow/proof.js +4 -3
- package/dist/lib/browser/capture-fidelity.d.ts +7 -0
- package/dist/lib/browser/capture-fidelity.d.ts.map +1 -1
- package/dist/lib/browser/capture-fidelity.js +17 -0
- package/dist/lib/browser/client.d.ts +9 -0
- package/dist/lib/browser/client.d.ts.map +1 -1
- package/dist/lib/browser/client.js +85 -37
- package/dist/lib/browser/index.d.ts +3 -1
- package/dist/lib/browser/index.d.ts.map +1 -1
- package/dist/lib/browser/index.js +2 -1
- package/dist/lib/browser/page-review-budget.d.ts +13 -0
- package/dist/lib/browser/page-review-budget.d.ts.map +1 -0
- package/dist/lib/browser/page-review-budget.js +251 -0
- package/dist/lib/browser/page-review-contracts.d.ts +127 -0
- package/dist/lib/browser/page-review-contracts.d.ts.map +1 -0
- package/dist/lib/browser/page-review-contracts.js +5 -0
- package/dist/lib/browser/page-review-evidence.d.ts +48 -0
- package/dist/lib/browser/page-review-evidence.d.ts.map +1 -0
- package/dist/lib/browser/page-review-evidence.js +340 -0
- package/dist/lib/browser/page-review-judge.d.ts +1 -1
- package/dist/lib/browser/page-review-judge.d.ts.map +1 -1
- package/dist/lib/browser/page-review-judge.js +46 -38
- package/dist/lib/browser/page-review-pack.d.ts +44 -22
- package/dist/lib/browser/page-review-pack.d.ts.map +1 -1
- package/dist/lib/browser/page-review-pack.js +116 -36
- package/dist/lib/browser/page-review-source.d.ts +12 -0
- package/dist/lib/browser/page-review-source.d.ts.map +1 -0
- package/dist/lib/browser/page-review-source.js +22 -0
- package/dist/lib/browser/qa-run-contracts.d.ts +35 -9
- package/dist/lib/browser/qa-run-contracts.d.ts.map +1 -1
- package/dist/lib/browser/qa-run-contracts.js +48 -14
- package/dist/lib/browser/qa-run.d.ts.map +1 -1
- package/dist/lib/browser/qa-run.js +215 -68
- package/dist/lib/browser/qa-snapshot.d.ts +6 -0
- package/dist/lib/browser/qa-snapshot.d.ts.map +1 -1
- package/dist/lib/browser/qa-snapshot.js +259 -48
- package/dist/lib/browser/review-capture-transaction.d.ts +13 -0
- package/dist/lib/browser/review-capture-transaction.d.ts.map +1 -0
- package/dist/lib/browser/review-capture-transaction.js +79 -0
- package/dist/lib/browser/standalone-html.d.ts.map +1 -1
- package/dist/lib/browser/standalone-html.js +4 -2
- package/dist/lib/browser/thumbnail-association.d.ts +34 -0
- package/dist/lib/browser/thumbnail-association.d.ts.map +1 -0
- package/dist/lib/browser/thumbnail-association.js +158 -0
- package/dist/lib/browser/tiling.d.ts +30 -0
- package/dist/lib/browser/tiling.d.ts.map +1 -1
- package/dist/lib/browser/tiling.js +38 -0
- package/dist/lib/docs-metadata-managed.d.ts.map +1 -1
- package/dist/lib/docs-metadata-managed.js +4 -1
- package/dist/lib/identities/assume.d.ts.map +1 -1
- package/dist/lib/identities/assume.js +7 -1
- package/dist/lib/instructions/templates.d.ts.map +1 -1
- package/dist/lib/instructions/templates.js +1 -0
- package/dist/lib/local-file-url.d.ts +12 -0
- package/dist/lib/local-file-url.d.ts.map +1 -1
- package/dist/lib/local-file-url.js +16 -2
- package/dist/lib/tunnel/state.d.ts +19 -4
- package/dist/lib/tunnel/state.d.ts.map +1 -1
- package/dist/lib/tunnel/state.js +53 -13
- package/package.json +7 -4
- package/schemas/config.schema.json +69 -2
- package/src/commands/agents.ts +42 -9
- package/src/commands/artifacts.ts +130 -6
- package/src/commands/backup.ts +287 -34
- package/src/commands/browse.ts +564 -267
- package/src/commands/diagnostics.ts +6 -3
- package/src/commands/ledger-v3.ts +20 -3
- package/src/commands/qa-run.ts +37 -3
- package/src/commands/qa-status.ts +11 -2
- package/src/commands/resources.ts +23 -3
- package/src/commands/review-pack.ts +165 -62
- package/src/commands/tunnel.ts +2 -1
- package/src/core/agents/canonical-emit.ts +4 -2
- package/src/core/agents/cli.ts +14 -6
- package/src/core/agents/live-authority-v3.ts +7 -3
- package/src/core/agents/live-lifecycle-v3.ts +2 -2
- package/src/core/agents/render/prompt-context.ts +68 -14
- package/src/core/agents/session-finalizer-v3.ts +2 -2
- package/src/core/agents/state/live-coordination-view.ts +4 -4
- package/src/core/agents/state/names.ts +92 -7
- package/src/core/agents/state/stale-sweep.ts +22 -8
- package/src/core/agents/turn-elapsed.ts +135 -0
- package/src/core/artifacts/activity.ts +71 -0
- package/src/core/artifacts/delivery-card.ts +375 -0
- package/src/core/artifacts/index.ts +385 -91
- package/src/core/artifacts/mutation-lock.ts +106 -0
- package/src/core/backup/host-snapshot.ts +76 -0
- package/src/core/config.ts +66 -13
- package/src/core/diagnostics/advice.ts +148 -120
- package/src/core/diagnostics/bundle.ts +138 -52
- package/src/core/diagnostics/comparison.ts +6 -2
- package/src/core/diagnostics/contract.ts +39 -42
- package/src/core/diagnostics/index.ts +2 -0
- package/src/core/diagnostics/pressure-contract.ts +294 -0
- package/src/core/diagnostics/pressure.ts +1361 -0
- package/src/core/diagnostics/replay.ts +116 -11
- package/src/core/events/v3/adapter-id.ts +12 -0
- package/src/core/events/v3/archive-retention.ts +3 -6
- package/src/core/events/v3/bootstrap.ts +163 -16
- package/src/core/events/v3/capabilities.ts +75 -25
- package/src/core/events/v3/capability-drift.ts +2 -2
- package/src/core/events/v3/control-witness.ts +172 -41
- package/src/core/events/v3/control.ts +34 -2
- package/src/core/events/v3/index.ts +3 -0
- package/src/core/events/v3/live-feed.ts +23 -5
- package/src/core/events/v3/live-routing.ts +14 -2
- package/src/core/events/v3/producers/command-recorder.ts +4 -4
- package/src/core/events/v3/producers/coordination-recorder.ts +4 -4
- package/src/core/events/v3/producers/hook-base.ts +21 -16
- package/src/core/events/v3/producers/hook.ts +21 -4
- package/src/core/events/v3/producers/intake.ts +6 -6
- package/src/core/events/v3/producers/producer-state-observer.ts +2 -1
- package/src/core/events/v3/producers/recorder.ts +50 -21
- package/src/core/events/v3/reader.ts +14 -13
- package/src/core/events/v3/runtime-build.ts +3 -2
- package/src/core/events/v3/runtime-telemetry-capabilities.ts +3 -3
- package/src/core/events/v3/turn-telemetry.ts +4 -4
- package/src/core/hooks/adapter/output.ts +50 -36
- package/src/core/hooks/backup-schedule.ts +147 -0
- package/src/core/hooks/cli.ts +65 -14
- package/src/core/hooks/codex-wsl-bridge.ts +21 -5
- package/src/core/hooks/index.ts +1 -0
- package/src/core/hooks/prompt-context/contract.ts +177 -0
- package/src/core/hooks/prompt-context/index.ts +22 -0
- package/src/core/hooks/prompt-context/runner.ts +303 -0
- package/src/core/qa-artifacts.ts +29 -3
- package/src/core/resources/contract.ts +76 -3
- package/src/core/resources/index.ts +1 -0
- package/src/core/resources/native.ts +481 -0
- package/src/core/resources/sampler.ts +46 -1
- package/src/core/resources/status.ts +717 -0
- package/src/core/resources/system.ts +530 -0
- package/src/core/semantic/service.ts +37 -3
- package/src/core/storage/builtins.ts +41 -0
- package/src/core/supervisor/contract.ts +45 -3
- package/src/core/supervisor/findings.ts +159 -0
- package/src/core/supervisor/history.ts +15 -0
- package/src/core/supervisor/ledger-state.ts +0 -0
- package/src/core/supervisor/service.ts +133 -5
- package/src/core/supervisor/storage.ts +7 -0
- package/src/core/workflow/admission.ts +33 -17
- package/src/core/workflow/engine.ts +2 -2
- package/src/core/workflow/live-session-v3.ts +6 -8
- package/src/core/workflow/proof.ts +4 -3
- package/src/lib/browser/capture-fidelity.ts +23 -0
- package/src/lib/browser/client.ts +96 -44
- package/src/lib/browser/index.ts +15 -1
- package/src/lib/browser/page-review-budget.ts +309 -0
- package/src/lib/browser/page-review-contracts.ts +129 -0
- package/src/lib/browser/page-review-evidence.ts +465 -0
- package/src/lib/browser/page-review-judge.ts +56 -40
- package/src/lib/browser/page-review-pack.ts +181 -43
- package/src/lib/browser/page-review-source.ts +30 -0
- package/src/lib/browser/qa-run-contracts.ts +62 -18
- package/src/lib/browser/qa-run.ts +259 -71
- package/src/lib/browser/qa-snapshot.ts +289 -48
- package/src/lib/browser/review-capture-transaction.ts +106 -0
- package/src/lib/browser/standalone-html.ts +4 -2
- package/src/lib/browser/thumbnail-association.ts +190 -0
- package/src/lib/browser/tiling.ts +63 -0
- package/src/lib/docs-metadata-managed.ts +4 -1
- package/src/lib/identities/assume.ts +12 -4
- package/src/lib/instructions/templates.ts +1 -0
- package/src/lib/local-file-url.ts +17 -2
- package/src/lib/tunnel/state.ts +70 -13
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { CritiqueCoverage, CritiqueFinding, CritiqueTile } from "./critique.js";
|
|
2
|
+
import type { PageReviewBudgetCoverage, PageReviewCapturePlan, PageReviewEvidenceContext, PageReviewNativeTile, PageReviewRect } from "./page-review-contracts.js";
|
|
2
3
|
import type { QaContext, QaSignature } from "./qa-plan.js";
|
|
3
|
-
export
|
|
4
|
+
export type { PageReviewRect } from "./page-review-contracts.js";
|
|
5
|
+
export declare const PAGE_REVIEW_PACK_SCHEMA = "harnery-page-review/v2";
|
|
4
6
|
export declare const PAGE_REVIEW_FINDINGS_SCHEMA = "harnery-page-review-findings/v3";
|
|
5
7
|
/** Directory name a qa-run gives its pack inside the run directory. */
|
|
6
8
|
export declare const PAGE_REVIEW_PACK_DIRNAME = "pack";
|
|
@@ -63,6 +65,7 @@ export interface PageReviewFindingsDocument {
|
|
|
63
65
|
target: string;
|
|
64
66
|
reviewer: string | null;
|
|
65
67
|
reviewed_at: string | null;
|
|
68
|
+
machine_evidence_digest?: string | null;
|
|
66
69
|
delegated_reviews: PageReviewDelegatedReviewRecord[];
|
|
67
70
|
findings: PageReviewReviewerFinding[];
|
|
68
71
|
dispositions?: PageReviewDispositionRecord[];
|
|
@@ -185,6 +188,17 @@ export interface PageReviewContextRecord {
|
|
|
185
188
|
width: number;
|
|
186
189
|
height: number;
|
|
187
190
|
};
|
|
191
|
+
viewport_size: {
|
|
192
|
+
width: number;
|
|
193
|
+
height: number;
|
|
194
|
+
};
|
|
195
|
+
dpr: number;
|
|
196
|
+
recipe_version: string;
|
|
197
|
+
full_page_scale: 0.5;
|
|
198
|
+
capture_plan?: PageReviewCapturePlan;
|
|
199
|
+
allocation_coverage?: PageReviewBudgetCoverage;
|
|
200
|
+
evidence_context?: PageReviewEvidenceContext;
|
|
201
|
+
capture_incomplete?: boolean;
|
|
188
202
|
/** Full-page band coverage (what the tiler kept of the page). */
|
|
189
203
|
coverage: CritiqueCoverage;
|
|
190
204
|
scopes: Array<{
|
|
@@ -223,6 +237,15 @@ export interface PageReviewContextCapture {
|
|
|
223
237
|
fullPage: Buffer;
|
|
224
238
|
pageWidth: number;
|
|
225
239
|
pageHeight: number;
|
|
240
|
+
viewportSize: {
|
|
241
|
+
width: number;
|
|
242
|
+
height: number;
|
|
243
|
+
};
|
|
244
|
+
dpr: number;
|
|
245
|
+
recipeVersion: string;
|
|
246
|
+
capturePlan?: PageReviewCapturePlan;
|
|
247
|
+
allocationCoverage?: PageReviewBudgetCoverage;
|
|
248
|
+
captureIncomplete?: boolean;
|
|
226
249
|
tiles: CritiqueTile[];
|
|
227
250
|
coverage: CritiqueCoverage;
|
|
228
251
|
scopeTiles?: Array<{
|
|
@@ -252,12 +275,11 @@ export interface PageReviewCritiqueRecord {
|
|
|
252
275
|
}>;
|
|
253
276
|
coverage: CritiqueCoverage;
|
|
254
277
|
error?: string;
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
height: number;
|
|
278
|
+
evidence?: {
|
|
279
|
+
schema: string;
|
|
280
|
+
context: PageReviewEvidenceContext;
|
|
281
|
+
tiles: Array<Omit<PageReviewNativeTile, "png">>;
|
|
282
|
+
};
|
|
261
283
|
}
|
|
262
284
|
/** One gate finding that carries a document-space rectangle (CSS px at the
|
|
263
285
|
* capture's device scale factor 1, the same space as tile `x`/`scrollY`). */
|
|
@@ -447,7 +469,8 @@ export declare function readPackTiles(packDir: string, record: PageReviewContext
|
|
|
447
469
|
id: string;
|
|
448
470
|
scope?: string;
|
|
449
471
|
}>;
|
|
450
|
-
|
|
472
|
+
/** Half-scale navigation image; never native evidence. */
|
|
473
|
+
export declare function readPackOverview(packDir: string, record: PageReviewContextRecord): Buffer;
|
|
451
474
|
export declare function readPackSignature(packDir: string, record: PageReviewContextRecord): QaSignature;
|
|
452
475
|
/** Read a context's serialized DOM, inflating a gzip-compressed `dom.html.gz`
|
|
453
476
|
* and reading an older plain `dom.html` as-is. */
|
|
@@ -483,7 +506,7 @@ export declare function machineFindingTargets(critique: PageReviewCritiqueRecord
|
|
|
483
506
|
* review-subagent finding at `critical` or `high`. Nothing here rewrites the
|
|
484
507
|
* critique: `evidence/critique.json` stays the machine record.
|
|
485
508
|
*/
|
|
486
|
-
export declare function resolvePackVerdict(manifest: Pick<PageReviewPackManifest, "critique"
|
|
509
|
+
export declare function resolvePackVerdict(manifest: Pick<PageReviewPackManifest, "critique"> & Partial<Pick<PageReviewPackManifest, "gates" | "contexts">>, inspectionPlan: PageReviewInspectionPlan, findings: PageReviewFindingsDocument): PageReviewVerdict;
|
|
487
510
|
/** The verdict a previous `review-pack verdict` wrote, or undefined when none exists. */
|
|
488
511
|
export declare function readPackVerdict(packDir: string): PageReviewVerdictDocument | undefined;
|
|
489
512
|
export interface FinalizePageReviewPackInput {
|
|
@@ -525,15 +548,15 @@ export declare const GATE_HITS_PER_ENVELOPE = 50;
|
|
|
525
548
|
* target-size (`hit`). Anything without a rect is skipped; the gate's
|
|
526
549
|
* `failures` lines still describe it. Capped at `GATE_HITS_PER_ENVELOPE`.
|
|
527
550
|
*/
|
|
528
|
-
export declare function gateHitsFromEnvelope(envelope: Record<string, unknown> | undefined): PageReviewGateHit[];
|
|
551
|
+
export declare function gateHitsFromEnvelope(envelope: Record<string, unknown> | undefined, maxHits?: number): PageReviewGateHit[];
|
|
529
552
|
/** Tile ids whose rect intersects `rect` (both in document-space px). */
|
|
530
553
|
export declare function tilesCoveringRect(tiles: PageReviewTileRecord[], rect: PageReviewRect): string[];
|
|
531
554
|
export declare function buildInspectionPlan(contexts: PageReviewContextRecord[], critique: PageReviewCritiqueRecord[] | null | undefined, gates?: PageReviewGateRecord[]): PageReviewInspectionPlan;
|
|
532
555
|
/**
|
|
533
556
|
* Write the pack's navigation layer: manifest, evidence files, the findings
|
|
534
|
-
* skeleton and schema
|
|
535
|
-
*
|
|
536
|
-
*
|
|
557
|
+
* skeleton and schema, and `review.md`. An unchanged judge result preserves
|
|
558
|
+
* the review; changed machine evidence archives it before starting a fresh
|
|
559
|
+
* review, so a previous finding position cannot acquire a new meaning.
|
|
537
560
|
*/
|
|
538
561
|
export declare function finalizePageReviewPack(input: FinalizePageReviewPackInput): {
|
|
539
562
|
manifest: string;
|
|
@@ -554,6 +577,14 @@ export interface PageReviewExpiredStub {
|
|
|
554
577
|
contexts: number;
|
|
555
578
|
/** Aggregate of the manifest's critique outcomes; null when no judge ran. */
|
|
556
579
|
machine_outcome: PageReviewCritiqueRecord["outcome"] | null;
|
|
580
|
+
result: PageReviewVerdictDocument | null;
|
|
581
|
+
findings_summary: {
|
|
582
|
+
machine_high: number;
|
|
583
|
+
machine_medium: number;
|
|
584
|
+
machine_low: number;
|
|
585
|
+
reviewer_findings: number;
|
|
586
|
+
dispositions: number;
|
|
587
|
+
} | null;
|
|
557
588
|
}
|
|
558
589
|
/** One pack as seen by the expiry sweep. `expires_at`, `size_bytes`, and
|
|
559
590
|
* `managed` are null when the manifest does not carry them; such a pack is
|
|
@@ -600,14 +631,5 @@ export declare function isPackDeletable(row: PageReviewPackRow, includeUnmanaged
|
|
|
600
631
|
/** One verdict for the whole pack from its per-context critique rows: any
|
|
601
632
|
* fail is a fail, otherwise the weakest non-pass outcome, otherwise pass. */
|
|
602
633
|
export declare function aggregateMachineOutcome(critique: PageReviewCritiqueRecord[] | null | undefined): PageReviewCritiqueRecord["outcome"] | null;
|
|
603
|
-
/**
|
|
604
|
-
* Delete every expired pack under the roots and leave `pack-expired.json` in
|
|
605
|
-
* its place. Deletion removes every entry inside the pack directory except
|
|
606
|
-
* the artifact store's own `.harnery-artifact.json` (a standalone review-pack
|
|
607
|
-
* workspace is the pack, and the store still owns the workspace). Nothing
|
|
608
|
-
* outside the pack directory is touched. Only a pack whose manifest carries
|
|
609
|
-
* `retention.expires_at` in the past is eligible, and an unmanaged pack
|
|
610
|
-
* (explicit `--out`) only when `includeUnmanaged` is set.
|
|
611
|
-
*/
|
|
612
634
|
export declare function deleteExpiredPacks(input: DeleteExpiredPacksInput): DeleteExpiredPacksResult;
|
|
613
635
|
//# sourceMappingURL=page-review-pack.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-review-pack.d.ts","sourceRoot":"","sources":["../../../src/lib/browser/page-review-pack.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"page-review-pack.d.ts","sourceRoot":"","sources":["../../../src/lib/browser/page-review-pack.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,11 +12,12 @@
|
|
|
12
12
|
//
|
|
13
13
|
// Toolkit tier: this module must not import src/core (layering check).
|
|
14
14
|
import { createHash } from "node:crypto";
|
|
15
|
-
import { existsSync, lstatSync, mkdirSync, readdirSync, readFileSync, renameSync, rmdirSync, rmSync, writeFileSync, } from "node:fs";
|
|
15
|
+
import { copyFileSync, existsSync, lstatSync, mkdirSync, mkdtempSync, readdirSync, readFileSync, renameSync, rmdirSync, rmSync, writeFileSync, } from "node:fs";
|
|
16
16
|
import { basename, dirname, join, relative, resolve } from "node:path";
|
|
17
17
|
import { gunzipSync, gzipSync } from "node:zlib";
|
|
18
18
|
import { PNG } from "pngjs";
|
|
19
|
-
|
|
19
|
+
import { machineEvidenceDigest, PAGE_REVIEW_CRITIQUE_SCHEMA } from "./page-review-evidence.js";
|
|
20
|
+
export const PAGE_REVIEW_PACK_SCHEMA = "harnery-page-review/v2";
|
|
20
21
|
export const PAGE_REVIEW_FINDINGS_SCHEMA = "harnery-page-review-findings/v3";
|
|
21
22
|
/** Directory name a qa-run gives its pack inside the run directory. */
|
|
22
23
|
export const PAGE_REVIEW_PACK_DIRNAME = "pack";
|
|
@@ -160,6 +161,7 @@ export function writePackExpandedTile(packDir, contextId, input) {
|
|
|
160
161
|
const paths = packPaths(packDir);
|
|
161
162
|
const dir = paths.contextDir(contextId);
|
|
162
163
|
const file = join(dir, "tiles", expandedTileFilename(tile.id, input.dpr));
|
|
164
|
+
const scale = input.dpr / record.dpr;
|
|
163
165
|
const { png, width, height } = input.region
|
|
164
166
|
? {
|
|
165
167
|
png: input.region,
|
|
@@ -167,10 +169,10 @@ export function writePackExpandedTile(packDir, contextId, input) {
|
|
|
167
169
|
height: input.region.readUInt32BE(20),
|
|
168
170
|
}
|
|
169
171
|
: cropPngRegion(input.fullPage, {
|
|
170
|
-
x: tile.x *
|
|
171
|
-
y: tile.scrollY *
|
|
172
|
-
width: tile.width *
|
|
173
|
-
height: tile.height *
|
|
172
|
+
x: tile.x * scale,
|
|
173
|
+
y: tile.scrollY * scale,
|
|
174
|
+
width: tile.width * scale,
|
|
175
|
+
height: tile.height * scale,
|
|
174
176
|
});
|
|
175
177
|
mkdirSync(join(dir, "tiles"), { recursive: true });
|
|
176
178
|
writeFileSync(file, png);
|
|
@@ -196,6 +198,11 @@ export function writePackExpandedTile(packDir, contextId, input) {
|
|
|
196
198
|
* tile ids are stable for a given capture. Returns the record written.
|
|
197
199
|
*/
|
|
198
200
|
export function writePackContext(packDir, capture) {
|
|
201
|
+
if (!capture.viewportSize ||
|
|
202
|
+
![capture.viewportSize.width, capture.viewportSize.height, capture.dpr].every((n) => Number.isFinite(n) && n > 0) ||
|
|
203
|
+
!capture.recipeVersion?.trim()) {
|
|
204
|
+
throw new Error("Native pack capture requires viewportSize, positive DPR, and a capture recipe version");
|
|
205
|
+
}
|
|
199
206
|
const contextId = capture.context.id ??
|
|
200
207
|
`${capture.context.viewport}-${capture.context.theme}-${capture.context.state}`;
|
|
201
208
|
const paths = packPaths(packDir);
|
|
@@ -208,7 +215,10 @@ export function writePackContext(packDir, capture) {
|
|
|
208
215
|
const signaturePath = join(dir, "signature.json");
|
|
209
216
|
const tilesPath = join(dir, "tiles.json");
|
|
210
217
|
const contextPath = join(dir, "context.json");
|
|
211
|
-
|
|
218
|
+
// Full-page pixels are transient. The saved image is orientation only.
|
|
219
|
+
const native = PNG.sync.read(capture.fullPage);
|
|
220
|
+
const overview = boxDownscale(native, Math.max(1, Math.round(native.width / 2)), Math.max(1, Math.round(native.height / 2)));
|
|
221
|
+
writeFileSync(fullPagePath, PNG.sync.write(overview));
|
|
212
222
|
// The serialized DOM compresses roughly 10:1; `dom_sha256` stays the digest
|
|
213
223
|
// of the uncompressed bytes so a reader can verify what `readPackDom` returns.
|
|
214
224
|
writeFileSync(domPath, gzipSync(Buffer.from(capture.domHtml, "utf8")));
|
|
@@ -248,7 +258,17 @@ export function writePackContext(packDir, capture) {
|
|
|
248
258
|
url: capture.url,
|
|
249
259
|
...(capture.title !== undefined ? { title: capture.title } : {}),
|
|
250
260
|
captured_at: capture.capturedAt ?? new Date().toISOString(),
|
|
251
|
-
page: {
|
|
261
|
+
page: {
|
|
262
|
+
width: Math.round(capture.pageWidth * capture.dpr),
|
|
263
|
+
height: Math.round(capture.pageHeight * capture.dpr),
|
|
264
|
+
},
|
|
265
|
+
viewport_size: capture.viewportSize,
|
|
266
|
+
dpr: capture.dpr,
|
|
267
|
+
recipe_version: capture.recipeVersion,
|
|
268
|
+
full_page_scale: 0.5,
|
|
269
|
+
...(capture.capturePlan ? { capture_plan: capture.capturePlan } : {}),
|
|
270
|
+
...(capture.allocationCoverage ? { allocation_coverage: capture.allocationCoverage } : {}),
|
|
271
|
+
...(capture.captureIncomplete ? { capture_incomplete: true } : {}),
|
|
252
272
|
coverage: capture.coverage,
|
|
253
273
|
scopes: (capture.scopeTiles ?? []).map((entry) => ({
|
|
254
274
|
selector: entry.selector,
|
|
@@ -456,7 +476,7 @@ export function readPackContext(packDir, contextId) {
|
|
|
456
476
|
const path = join(packPaths(packDir).contextDir(contextId), "context.json");
|
|
457
477
|
const { schema, ...record } = readJson(path);
|
|
458
478
|
if (schema !== PAGE_REVIEW_PACK_SCHEMA) {
|
|
459
|
-
throw new Error(`${path}: expected schema ${PAGE_REVIEW_PACK_SCHEMA}, found ${schema}`);
|
|
479
|
+
throw new Error(`${path}: expected schema ${PAGE_REVIEW_PACK_SCHEMA}, found ${schema}; recapture the target to create a v2 pack`);
|
|
460
480
|
}
|
|
461
481
|
return record;
|
|
462
482
|
}
|
|
@@ -486,7 +506,8 @@ export function readPackTiles(packDir, record) {
|
|
|
486
506
|
};
|
|
487
507
|
});
|
|
488
508
|
}
|
|
489
|
-
|
|
509
|
+
/** Half-scale navigation image; never native evidence. */
|
|
510
|
+
export function readPackOverview(packDir, record) {
|
|
490
511
|
return readFileSync(join(packDir, record.files.full_page));
|
|
491
512
|
}
|
|
492
513
|
export function readPackSignature(packDir, record) {
|
|
@@ -502,7 +523,7 @@ export function readPackDom(packDir, record) {
|
|
|
502
523
|
export function readPackManifest(packDir) {
|
|
503
524
|
const manifest = readJson(packPaths(packDir).manifest);
|
|
504
525
|
if (manifest.schema !== PAGE_REVIEW_PACK_SCHEMA) {
|
|
505
|
-
throw new Error(`${packPaths(packDir).manifest}: expected schema ${PAGE_REVIEW_PACK_SCHEMA}, found ${manifest.schema}`);
|
|
526
|
+
throw new Error(`${packPaths(packDir).manifest}: expected schema ${PAGE_REVIEW_PACK_SCHEMA}, found ${manifest.schema}; recapture the target to create a v2 pack`);
|
|
506
527
|
}
|
|
507
528
|
return manifest;
|
|
508
529
|
}
|
|
@@ -550,6 +571,7 @@ export function validateFindingsDocument(doc) {
|
|
|
550
571
|
"target",
|
|
551
572
|
"reviewer",
|
|
552
573
|
"reviewed_at",
|
|
574
|
+
"machine_evidence_digest",
|
|
553
575
|
"delegated_reviews",
|
|
554
576
|
"findings",
|
|
555
577
|
"dispositions",
|
|
@@ -835,7 +857,7 @@ export function resolvePackVerdict(manifest, inspectionPlan, findings) {
|
|
|
835
857
|
const disposition = byTarget.get(target)?.disposition;
|
|
836
858
|
if (disposition === undefined)
|
|
837
859
|
high_open += 1;
|
|
838
|
-
else if (disposition === "confirmed")
|
|
860
|
+
else if (disposition === "confirmed" || finding.category === "provider-error")
|
|
839
861
|
high_confirmed += 1;
|
|
840
862
|
else
|
|
841
863
|
high_dismissed += 1;
|
|
@@ -848,8 +870,15 @@ export function resolvePackVerdict(manifest, inspectionPlan, findings) {
|
|
|
848
870
|
const uncovered_primary_tiles = [...requiredTiles]
|
|
849
871
|
.filter((tile) => !completedTiles.has(tile))
|
|
850
872
|
.sort();
|
|
851
|
-
const blocking = high_confirmed +
|
|
852
|
-
|
|
873
|
+
const blocking = high_confirmed +
|
|
874
|
+
high_open +
|
|
875
|
+
reviewer_high +
|
|
876
|
+
(manifest.gates?.filter((g) => g.outcome === "failed").length ?? 0);
|
|
877
|
+
const anyIncomplete = (critique?.some((row) => row.outcome === "incomplete" ||
|
|
878
|
+
(row.outcome === "skipped" && machine_outcome !== "skipped")) ??
|
|
879
|
+
false) ||
|
|
880
|
+
manifest.contexts?.some((c) => c.capture_incomplete || c.coverage.capped) ||
|
|
881
|
+
false;
|
|
853
882
|
const reviewed_outcome = blocking > 0
|
|
854
883
|
? "fail"
|
|
855
884
|
: anyIncomplete || uncovered_primary_tiles.length > 0
|
|
@@ -889,6 +918,7 @@ export function findingsSchemaDocument() {
|
|
|
889
918
|
additionalProperties: false,
|
|
890
919
|
required: ["schema", "target", "reviewer", "reviewed_at", "delegated_reviews", "findings"],
|
|
891
920
|
properties: {
|
|
921
|
+
machine_evidence_digest: { type: ["string", "null"], pattern: "^[a-f0-9]{64}$" },
|
|
892
922
|
schema: { const: PAGE_REVIEW_FINDINGS_SCHEMA },
|
|
893
923
|
schema_path: { type: "string" },
|
|
894
924
|
target: { type: "string" },
|
|
@@ -1016,12 +1046,12 @@ function str(value, fallback = "?") {
|
|
|
1016
1046
|
* target-size (`hit`). Anything without a rect is skipped; the gate's
|
|
1017
1047
|
* `failures` lines still describe it. Capped at `GATE_HITS_PER_ENVELOPE`.
|
|
1018
1048
|
*/
|
|
1019
|
-
export function gateHitsFromEnvelope(envelope) {
|
|
1049
|
+
export function gateHitsFromEnvelope(envelope, maxHits = GATE_HITS_PER_ENVELOPE) {
|
|
1020
1050
|
if (!envelope)
|
|
1021
1051
|
return [];
|
|
1022
1052
|
const hits = [];
|
|
1023
1053
|
const push = (rule, label, rect) => {
|
|
1024
|
-
if (rect && hits.length <
|
|
1054
|
+
if (rect && hits.length < maxHits)
|
|
1025
1055
|
hits.push({ rule, label, rect });
|
|
1026
1056
|
};
|
|
1027
1057
|
const runts = envelope.runts;
|
|
@@ -1142,7 +1172,7 @@ export function buildInspectionPlan(contexts, critique, gates) {
|
|
|
1142
1172
|
if (tile.scope !== undefined)
|
|
1143
1173
|
add(tile.id, `scoped tile for ${tile.scope}`);
|
|
1144
1174
|
if (tile.kind === "hit-band")
|
|
1145
|
-
add(tile.id, "hit band:
|
|
1175
|
+
add(tile.id, "hit band: selected for a gate hit");
|
|
1146
1176
|
}
|
|
1147
1177
|
const row = critique?.find((entry) => entry.context_id === ctx.id);
|
|
1148
1178
|
for (const finding of row?.findings ?? []) {
|
|
@@ -1189,9 +1219,9 @@ function walkFiles(root, dir, out) {
|
|
|
1189
1219
|
}
|
|
1190
1220
|
/**
|
|
1191
1221
|
* Write the pack's navigation layer: manifest, evidence files, the findings
|
|
1192
|
-
* skeleton and schema
|
|
1193
|
-
*
|
|
1194
|
-
*
|
|
1222
|
+
* skeleton and schema, and `review.md`. An unchanged judge result preserves
|
|
1223
|
+
* the review; changed machine evidence archives it before starting a fresh
|
|
1224
|
+
* review, so a previous finding position cannot acquire a new meaning.
|
|
1195
1225
|
*/
|
|
1196
1226
|
export function finalizePageReviewPack(input) {
|
|
1197
1227
|
const paths = packPaths(input.packDir);
|
|
@@ -1202,6 +1232,48 @@ export function finalizePageReviewPack(input) {
|
|
|
1202
1232
|
const gates = input.gates ?? [];
|
|
1203
1233
|
const notChecked = [...(input.not_checked ?? [])];
|
|
1204
1234
|
const warnings = [...(input.warnings ?? [])];
|
|
1235
|
+
const reviewDigest = critique === null ? null : machineEvidenceDigest(input.target, critique);
|
|
1236
|
+
const freshFindings = () => ({
|
|
1237
|
+
schema: PAGE_REVIEW_FINDINGS_SCHEMA,
|
|
1238
|
+
schema_path: PAGE_REVIEW_FINDINGS_SCHEMA_FILENAME,
|
|
1239
|
+
target: input.target,
|
|
1240
|
+
machine_evidence_digest: reviewDigest,
|
|
1241
|
+
reviewer: null,
|
|
1242
|
+
reviewed_at: null,
|
|
1243
|
+
delegated_reviews: [],
|
|
1244
|
+
findings: [],
|
|
1245
|
+
dispositions: [],
|
|
1246
|
+
});
|
|
1247
|
+
// Preserve the old machine evidence before any navigation files are replaced.
|
|
1248
|
+
// Archive failure aborts finalization without clearing the current review.
|
|
1249
|
+
if (critique !== null && existsSync(paths.findings)) {
|
|
1250
|
+
const previous = readPackFindings(input.packDir);
|
|
1251
|
+
if (previous.machine_evidence_digest !== reviewDigest) {
|
|
1252
|
+
if (previous.machine_evidence_digest ||
|
|
1253
|
+
previous.reviewer ||
|
|
1254
|
+
previous.reviewed_at ||
|
|
1255
|
+
previous.delegated_reviews.length ||
|
|
1256
|
+
previous.findings.length ||
|
|
1257
|
+
previous.dispositions?.length) {
|
|
1258
|
+
const historyRoot = join(input.packDir, "review-history");
|
|
1259
|
+
mkdirSync(historyRoot, { recursive: true });
|
|
1260
|
+
const historyDir = mkdtempSync(join(historyRoot, "review-"));
|
|
1261
|
+
for (const source of [
|
|
1262
|
+
paths.findings,
|
|
1263
|
+
paths.critique,
|
|
1264
|
+
paths.inspectionPlan,
|
|
1265
|
+
paths.verdict,
|
|
1266
|
+
paths.manifest,
|
|
1267
|
+
]) {
|
|
1268
|
+
if (existsSync(source))
|
|
1269
|
+
copyFileSync(source, join(historyDir, basename(source)));
|
|
1270
|
+
}
|
|
1271
|
+
warnings.push(`Changed machine evidence requires a new review. Previous review archived at ${rel(historyDir)}.`);
|
|
1272
|
+
}
|
|
1273
|
+
rmSync(paths.verdict, { force: true });
|
|
1274
|
+
writePackFindings(input.packDir, freshFindings());
|
|
1275
|
+
}
|
|
1276
|
+
}
|
|
1205
1277
|
if (critique === null) {
|
|
1206
1278
|
notChecked.push({
|
|
1207
1279
|
check: "machine vision critique",
|
|
@@ -1222,7 +1294,7 @@ export function finalizePageReviewPack(input) {
|
|
|
1222
1294
|
`(${ctx.coverage.reviewed_height_px} of ${ctx.coverage.page_height_px} px) are in the pack; the rest of the page is unreviewed.`);
|
|
1223
1295
|
}
|
|
1224
1296
|
if (ctx.hit_bands !== undefined && ctx.hit_bands > 0) {
|
|
1225
|
-
warnings.push(`${ctx.id}: ${ctx.hit_bands} band(s)
|
|
1297
|
+
warnings.push(`${ctx.id}: ${ctx.hit_bands} band(s) were selected because gate hits land in them.`);
|
|
1226
1298
|
}
|
|
1227
1299
|
}
|
|
1228
1300
|
notChecked.push({
|
|
@@ -1268,23 +1340,14 @@ export function finalizePageReviewPack(input) {
|
|
|
1268
1340
|
});
|
|
1269
1341
|
if (critique !== null) {
|
|
1270
1342
|
writeJson(paths.critique, {
|
|
1271
|
-
schema:
|
|
1343
|
+
schema: PAGE_REVIEW_CRITIQUE_SCHEMA,
|
|
1272
1344
|
...(input.pool ? { pool: input.pool } : {}),
|
|
1273
1345
|
contexts: critique,
|
|
1274
1346
|
});
|
|
1275
1347
|
}
|
|
1276
1348
|
writeJson(paths.findingsSchema, findingsSchemaDocument());
|
|
1277
1349
|
if (!existsSync(paths.findings)) {
|
|
1278
|
-
writeJson(paths.findings,
|
|
1279
|
-
schema: PAGE_REVIEW_FINDINGS_SCHEMA,
|
|
1280
|
-
schema_path: PAGE_REVIEW_FINDINGS_SCHEMA_FILENAME,
|
|
1281
|
-
target: input.target,
|
|
1282
|
-
reviewer: null,
|
|
1283
|
-
reviewed_at: null,
|
|
1284
|
-
delegated_reviews: [],
|
|
1285
|
-
findings: [],
|
|
1286
|
-
dispositions: [],
|
|
1287
|
-
});
|
|
1350
|
+
writeJson(paths.findings, freshFindings());
|
|
1288
1351
|
}
|
|
1289
1352
|
// Retention: what the caller says, else what the manifest already carries.
|
|
1290
1353
|
let retention = input.retention;
|
|
@@ -1342,9 +1405,8 @@ export function finalizePageReviewPack(input) {
|
|
|
1342
1405
|
contact_sheets: Object.fromEntries(contexts.flatMap((ctx) => (ctx.contact_sheet ? [[ctx.id, ctx.contact_sheet.file]] : []))),
|
|
1343
1406
|
},
|
|
1344
1407
|
});
|
|
1345
|
-
// A verdict
|
|
1346
|
-
//
|
|
1347
|
-
// when the verdict predates the current critique.
|
|
1408
|
+
// A verdict survives an unchanged refinalize. Changed machine evidence
|
|
1409
|
+
// archives and removes it above, before starting the next review.
|
|
1348
1410
|
let verdict;
|
|
1349
1411
|
try {
|
|
1350
1412
|
verdict = readPackVerdict(input.packDir);
|
|
@@ -1384,7 +1446,7 @@ export function renderReviewMarkdown(manifest, plan, judgeCommand, verdict) {
|
|
|
1384
1446
|
lines.push("");
|
|
1385
1447
|
lines.push("## Delegated review protocol");
|
|
1386
1448
|
lines.push("");
|
|
1387
|
-
lines.push("1. The coordinating agent reads the context table and coverage below. A
|
|
1449
|
+
lines.push("1. The coordinating agent reads the context table and coverage below. A budgeted context can have unreviewed gaps between selected tiles; use its recorded coverage intervals.");
|
|
1388
1450
|
lines.push("2. Read `evidence/inspection-plan.json`, then dispatch review subagents with disjoint assignments covering every `primary_tiles` entry. Choose the first model available in this exact order: GPT-5.6 Luna (`gpt-5.6-luna` where an id is required), Composer 2.5, Haiku 4.5. Use that model for every tile-review subagent; do not substitute another model. If none exists, the review is incomplete. Each tile must be opened at native pixels by at least one completed subagent. The coordinating agent must not open tile images itself.");
|
|
1389
1451
|
lines.push("3. Review subagents may use the contact sheet (`contacts.png`, every tile downscaled into one grid, ids stamped, row-major order) and the full-page screenshot for orientation only; both hide small defects a tile shows at native pixels.");
|
|
1390
1452
|
lines.push("4. Review subagents read the machine findings for their assigned tiles. A finding is a claim to confirm against the tile, never a fact. Slice-edge cropping is a tiling artifact, not a defect.");
|
|
@@ -1657,6 +1719,22 @@ export function aggregateMachineOutcome(critique) {
|
|
|
1657
1719
|
* `retention.expires_at` in the past is eligible, and an unmanaged pack
|
|
1658
1720
|
* (explicit `--out`) only when `includeUnmanaged` is set.
|
|
1659
1721
|
*/
|
|
1722
|
+
function expiredFindingsSummary(dir, manifest) {
|
|
1723
|
+
try {
|
|
1724
|
+
const findings = readPackFindings(dir);
|
|
1725
|
+
const machine = manifest.critique?.flatMap((row) => row.findings) ?? [];
|
|
1726
|
+
return {
|
|
1727
|
+
machine_high: machine.filter((f) => f.severity === "high").length,
|
|
1728
|
+
machine_medium: machine.filter((f) => f.severity === "medium").length,
|
|
1729
|
+
machine_low: machine.filter((f) => f.severity === "low").length,
|
|
1730
|
+
reviewer_findings: findings.findings.length,
|
|
1731
|
+
dispositions: findings.dispositions?.length ?? 0,
|
|
1732
|
+
};
|
|
1733
|
+
}
|
|
1734
|
+
catch {
|
|
1735
|
+
return null;
|
|
1736
|
+
}
|
|
1737
|
+
}
|
|
1660
1738
|
export function deleteExpiredPacks(input) {
|
|
1661
1739
|
const now = input.now ?? new Date();
|
|
1662
1740
|
const nowMs = now.getTime();
|
|
@@ -1696,6 +1774,8 @@ export function deleteExpiredPacks(input) {
|
|
|
1696
1774
|
deleted_at: now.toISOString(),
|
|
1697
1775
|
contexts: Array.isArray(manifest.contexts) ? manifest.contexts.length : 0,
|
|
1698
1776
|
machine_outcome: aggregateMachineOutcome(manifest.critique),
|
|
1777
|
+
result: readPackVerdict(dir) ?? null,
|
|
1778
|
+
findings_summary: expiredFindingsSummary(dir, manifest),
|
|
1699
1779
|
};
|
|
1700
1780
|
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
|
1701
1781
|
if (entry.name === ARTIFACT_WORKSPACE_MANIFEST_FILENAME)
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { PageReviewSourceEvidence } from "./page-review-contracts.js";
|
|
2
|
+
/** The caller supplies the already-canonicalized DOM. Keep every identity input
|
|
3
|
+
* and its order: this receipt diagnoses differences without accepting them. */
|
|
4
|
+
export declare function retainPageReviewSourceIdentity(input: {
|
|
5
|
+
nodes: unknown[];
|
|
6
|
+
stylesheets: unknown[];
|
|
7
|
+
dom: string;
|
|
8
|
+
}, artifactPrefix?: string): {
|
|
9
|
+
digest: string;
|
|
10
|
+
evidence?: PageReviewSourceEvidence;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=page-review-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-review-source.d.ts","sourceRoot":"","sources":["../../../src/lib/browser/page-review-source.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAE3E;+EAC+E;AAC/E,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE;IAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAAC,WAAW,EAAE,OAAO,EAAE,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAChE,cAAc,CAAC,EAAE,MAAM,GACtB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,wBAAwB,CAAA;CAAE,CAmBzD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { mkdirSync, mkdtempSync, writeFileSync } from "node:fs";
|
|
3
|
+
import { dirname, join, resolve } from "node:path";
|
|
4
|
+
/** The caller supplies the already-canonicalized DOM. Keep every identity input
|
|
5
|
+
* and its order: this receipt diagnoses differences without accepting them. */
|
|
6
|
+
export function retainPageReviewSourceIdentity(input, artifactPrefix) {
|
|
7
|
+
const bytes = Buffer.from(JSON.stringify({ nodes: input.nodes, stylesheets: input.stylesheets, dom: input.dom }), "utf8");
|
|
8
|
+
const digest = createHash("sha256").update(bytes).digest("hex");
|
|
9
|
+
if (!artifactPrefix)
|
|
10
|
+
return { digest };
|
|
11
|
+
// Raw source can contain session metadata. Keep it out of stdout and create
|
|
12
|
+
// a private directory per attempt, preserving both sides of a failed retry.
|
|
13
|
+
const prefix = resolve(artifactPrefix);
|
|
14
|
+
mkdirSync(dirname(prefix), { recursive: true, mode: 0o700 });
|
|
15
|
+
const dir = mkdtempSync(`${prefix}.source-identity-`);
|
|
16
|
+
const path = join(dir, `${digest}.json`);
|
|
17
|
+
writeFileSync(path, bytes, { mode: 0o600, flag: "wx" });
|
|
18
|
+
return {
|
|
19
|
+
digest,
|
|
20
|
+
evidence: { path, sha256: digest, bytes: bytes.length, encoding: "utf8" },
|
|
21
|
+
};
|
|
22
|
+
}
|
|
@@ -57,11 +57,13 @@ export interface QaRunPolicy {
|
|
|
57
57
|
* recorded, and the result finalizes as incomplete — releasing the
|
|
58
58
|
* admission slot instead of holding it open-endedly. */
|
|
59
59
|
run_deadline_ms?: number;
|
|
60
|
-
/**
|
|
61
|
-
*
|
|
62
|
-
* per-tile cost is accepted; each critique row's `coverage` records what the
|
|
63
|
-
* run actually saw, which is why this knob can stay out of the job digest. */
|
|
60
|
+
/** Explicit per-context ceiling. When absent, a pack context may use the
|
|
61
|
+
* whole shared budget; independent browse commands keep their own default. */
|
|
64
62
|
critique_max_tiles?: number;
|
|
63
|
+
/** Maximum native tiles across the complete pack (8-400, default 96). */
|
|
64
|
+
critique_tile_budget?: number;
|
|
65
|
+
/** Apply exact-match, fully reviewed prior dispositions. Default false. */
|
|
66
|
+
accept_dispositions?: boolean;
|
|
65
67
|
/** Vision calls in flight during the judge stage, across every context of
|
|
66
68
|
* the run (1 to 16). Default: the host provider's own concurrency. The
|
|
67
69
|
* capture stage closes every browser before judging starts, so this knob
|
|
@@ -131,6 +133,22 @@ export interface QaRunCritiqueCoverage {
|
|
|
131
133
|
bands_total: number;
|
|
132
134
|
bands_reviewed: number;
|
|
133
135
|
capped: boolean;
|
|
136
|
+
selected_rectangles?: Array<{
|
|
137
|
+
x: number;
|
|
138
|
+
y: number;
|
|
139
|
+
width: number;
|
|
140
|
+
height: number;
|
|
141
|
+
}>;
|
|
142
|
+
reviewed_intervals?: Array<{
|
|
143
|
+
start: number;
|
|
144
|
+
end: number;
|
|
145
|
+
}>;
|
|
146
|
+
uncovered_intervals?: Array<{
|
|
147
|
+
start: number;
|
|
148
|
+
end: number;
|
|
149
|
+
}>;
|
|
150
|
+
omitted_gate_hits?: string[];
|
|
151
|
+
omitted_scopes?: string[];
|
|
134
152
|
}
|
|
135
153
|
export interface QaRunCritiqueOutcome {
|
|
136
154
|
context_id: string;
|
|
@@ -145,6 +163,12 @@ export interface QaRunCritiqueOutcome {
|
|
|
145
163
|
selector?: string;
|
|
146
164
|
tile?: string;
|
|
147
165
|
}>;
|
|
166
|
+
/** Applied reviewer decisions; the machine findings above remain unchanged. */
|
|
167
|
+
dismissed?: Array<{
|
|
168
|
+
finding_key: string;
|
|
169
|
+
target: string;
|
|
170
|
+
disposition: string;
|
|
171
|
+
}>;
|
|
148
172
|
/** Tile coverage of the page. Absent when the capture died or reported none. */
|
|
149
173
|
coverage?: QaRunCritiqueCoverage;
|
|
150
174
|
}
|
|
@@ -323,15 +347,17 @@ export declare function contextIdFor(context: QaContext): string;
|
|
|
323
347
|
/**
|
|
324
348
|
* Merge planner-manifest coverage with the job's extra contexts. The manifest
|
|
325
349
|
* is the floor: its contexts always run, in manifest order, and a job can only
|
|
326
|
-
* append
|
|
350
|
+
* append coverage or supply setup arguments for an exactly matching context.
|
|
351
|
+
* IDs and rendering identities must agree; aliases are rejected rather than
|
|
352
|
+
* silently losing a setup or leaving a check pointed at an absent context.
|
|
353
|
+
* The union construction makes narrowing impossible by design; the
|
|
327
354
|
* returned list is what the runner executes and what the result reports.
|
|
328
355
|
*/
|
|
329
356
|
export declare function mergeCoverage(manifest: QaManifest, job: QaRunJob): QaRunContext[];
|
|
330
357
|
/** SHA-256 hex digest over the effective validated job (after the CLI merges
|
|
331
|
-
* its authoritative `target` and `mode`).
|
|
332
|
-
*
|
|
333
|
-
*
|
|
334
|
-
* them would make the same job file verify differently across invocations. */
|
|
358
|
+
* its authoritative `target` and `mode`). Runtime policy knobs are excluded.
|
|
359
|
+
* Disposition acceptance changes what can establish a pass, so enabling it
|
|
360
|
+
* is identity-bearing; an ordinary run cannot verify as an accepting run. */
|
|
335
361
|
export declare function computeJobDigest(job: QaRunJob): string;
|
|
336
362
|
export interface QaEvidenceExpectations {
|
|
337
363
|
/** Exact run ID the caller expects (from the invocation it just made). */
|