@farmslot/adapter-sdk 0.13.3 → 0.14.1

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/CHANGELOG.md CHANGED
@@ -6,6 +6,15 @@ All notable changes to `@farmslot/adapter-sdk` are tracked here.
6
6
 
7
7
  - Active-development baseline; add user-facing changes here before release or package publication.
8
8
 
9
+ ## 0.14.1 - 2026-10-15
10
+
11
+ - Keep pending visual criteria visible while recorded evidence is loading or unavailable.
12
+
13
+ ## 0.14.0 - 2026-10-15
14
+
15
+ - Group evidence by registered criterion with explicit Before/After selections, independent video moments, filters and shared normalized zoom.
16
+ - Show assertion and visual-review provenance in the shared evidence model and publication text.
17
+
9
18
  ## 0.13.3 - 2026-10-15
10
19
 
11
20
  - Use the coordinated window screenshot engine dependency closure.
@@ -0,0 +1,37 @@
1
+ import { type ArtifactRef, type RecipeEvidenceCaptureBinding, type RecordedEvidencePackageInput, type ReviewDiffSnapshot } from '@farmslot/protocol';
2
+ import type { EvidenceReviewArtifact, EvidenceReviewClaim, EvidenceReviewClip } from './evidence-review-model.js';
3
+ export type EvidenceReviewComparisonFilter = 'all' | 'before' | 'after' | 'review' | 'screenshots' | 'moments' | 'unassigned';
4
+ export interface EvidenceReviewComparisonMedia extends EvidenceReviewArtifact {
5
+ identity: string;
6
+ originalPath: string;
7
+ recipeRunId?: string;
8
+ capture?: RecipeEvidenceCaptureBinding;
9
+ clips: readonly EvidenceReviewClip[];
10
+ limitation?: string;
11
+ limitationCode?: 'comparison-source-unavailable' | 'comparison-source-mismatch';
12
+ timing: 'measured' | 'untimed' | 'outside-recording';
13
+ eligible: boolean;
14
+ }
15
+ export interface EvidenceReviewComparisonRow {
16
+ claim: EvidenceReviewClaim;
17
+ sourceUrl?: string;
18
+ before: readonly EvidenceReviewComparisonMedia[];
19
+ after: readonly EvidenceReviewComparisonMedia[];
20
+ review: readonly EvidenceReviewComparisonMedia[];
21
+ selectedBefore?: EvidenceReviewComparisonMedia;
22
+ selectedAfter?: EvidenceReviewComparisonMedia;
23
+ }
24
+ export interface EvidenceReviewComparisonTransform {
25
+ scale: number;
26
+ x: number;
27
+ y: number;
28
+ }
29
+ /** One grouping and source check for both clients. Missing bindings never become pairs. */
30
+ export declare function projectEvidenceComparisons(pkg: RecordedEvidencePackageInput | undefined, claims: readonly EvidenceReviewClaim[], prefix: string, inventory: readonly ArtifactRef[], snapshot?: Pick<ReviewDiffSnapshot, 'baseSha' | 'headSha'>, sourceUrl?: string, invalid?: boolean): {
31
+ rows: EvidenceReviewComparisonRow[];
32
+ unassigned: EvidenceReviewComparisonMedia[];
33
+ media: EvidenceReviewComparisonMedia[];
34
+ };
35
+ export declare function matchesComparisonFilter(media: EvidenceReviewComparisonMedia, filter: EvidenceReviewComparisonFilter): boolean;
36
+ export declare function normalizedComparisonTransform(value: EvidenceReviewComparisonTransform): EvidenceReviewComparisonTransform;
37
+ //# sourceMappingURL=evidence-review-comparisons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence-review-comparisons.d.ts","sourceRoot":"","sources":["../src/evidence-review-comparisons.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAC;AAO5B,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,MAAM,8BAA8B,GACtC,KAAK,GACL,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,aAAa,GACb,SAAS,GACT,YAAY,CAAC;AACjB,MAAM,WAAW,6BAA8B,SAAQ,sBAAsB;IAC3E,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,4BAA4B,CAAC;IACvC,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,+BAA+B,GAAG,4BAA4B,CAAC;IAChF,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,mBAAmB,CAAC;IACrD,QAAQ,EAAE,OAAO,CAAC;CACnB;AACD,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,mBAAmB,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,6BAA6B,EAAE,CAAC;IACjD,KAAK,EAAE,SAAS,6BAA6B,EAAE,CAAC;IAChD,MAAM,EAAE,SAAS,6BAA6B,EAAE,CAAC;IACjD,cAAc,CAAC,EAAE,6BAA6B,CAAC;IAC/C,aAAa,CAAC,EAAE,6BAA6B,CAAC;CAC/C;AACD,MAAM,WAAW,iCAAiC;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,2FAA2F;AAC3F,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,4BAA4B,GAAG,SAAS,EAC7C,MAAM,EAAE,SAAS,mBAAmB,EAAE,EACtC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,WAAW,EAAE,EACjC,QAAQ,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,GAAG,SAAS,CAAC,EAC1D,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,UAAQ,GACd;IACD,IAAI,EAAE,2BAA2B,EAAE,CAAC;IACpC,UAAU,EAAE,6BAA6B,EAAE,CAAC;IAC5C,KAAK,EAAE,6BAA6B,EAAE,CAAC;CACxC,CAsHA;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,6BAA6B,EACpC,MAAM,EAAE,8BAA8B,GACrC,OAAO,CAMT;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,iCAAiC,GACvC,iCAAiC,CAOnC"}
@@ -0,0 +1,130 @@
1
+ import { EVIDENCE_PADDING_MS, } from '@farmslot/protocol';
2
+ import { groupRecipeCaptureComparisons, indexRecordingTimelines, occurrenceRecordingCoverage, } from '@farmslot/recipe-runner/evidence';
3
+ /** One grouping and source check for both clients. Missing bindings never become pairs. */
4
+ export function projectEvidenceComparisons(pkg, claims, prefix, inventory, snapshot, sourceUrl, invalid = false) {
5
+ const rows = claims.map((claim) => ({
6
+ claim,
7
+ sourceUrl,
8
+ before: [],
9
+ after: [],
10
+ review: [],
11
+ }));
12
+ const byClaim = new Map(rows.map((row) => [row.claim.id, row]));
13
+ const media = [];
14
+ const unassigned = [];
15
+ const grouped = pkg ? groupRecipeCaptureComparisons(pkg, claims, snapshot) : { media: [] };
16
+ for (const original of grouped.media) {
17
+ const capture = original.capture;
18
+ const source = original.source;
19
+ const timelines = indexRecordingTimelines(Object.values(source.timelines));
20
+ const coverage = capture && !invalid
21
+ ? occurrenceRecordingCoverage(capture.traceIndex, source.claims?.recording.segments ?? [], timelines)
22
+ : { timing: 'untimed', segments: [] };
23
+ const candidate = {
24
+ path: original.path,
25
+ artifactPath: `${prefix}${original.path}`,
26
+ originalPath: original.originalPath,
27
+ identity: `${source.claims?.recipeRunId ?? 'unbound'}:${original.path}`,
28
+ recipeRunId: source.claims?.recipeRunId,
29
+ capture,
30
+ name: original.label,
31
+ mediaType: original.type === 'screenshot' ? 'image' : 'video',
32
+ timing: coverage.timing,
33
+ eligible: original.eligible && !invalid,
34
+ limitation: original.reason,
35
+ limitationCode: original.reasonCode,
36
+ clips: coverage.timing === 'measured'
37
+ ? coverage.segments.map((segment) => {
38
+ const timeline = timelines.get(segment.videoPath);
39
+ const marker = timeline.markers.find((entry) => entry.traceIndex === capture.traceIndex);
40
+ return {
41
+ videoPath: `${original.root}${segment.videoPath}`,
42
+ videoDigest: segment.videoDigest,
43
+ traceIndex: capture.traceIndex,
44
+ momentMs: (marker.startRangeMs[0] + marker.startRangeMs[1]) / 2,
45
+ startMs: Math.max(0, marker.startRangeMs[0] - EVIDENCE_PADDING_MS),
46
+ endMs: Math.min(timeline.durationMs, marker.endRangeMs[1] + EVIDENCE_PADDING_MS),
47
+ caption: original.label,
48
+ moment: {
49
+ recipeRunId: capture.recipeRunId,
50
+ videoDigest: segment.videoDigest,
51
+ traceIndex: capture.traceIndex,
52
+ },
53
+ };
54
+ })
55
+ : [],
56
+ };
57
+ candidate.limitation ??=
58
+ coverage.timing === 'measured'
59
+ ? undefined
60
+ : coverage.timing === 'outside-recording'
61
+ ? 'Outside recording'
62
+ : 'Untimed; no video timestamp';
63
+ const row = capture?.ac ? byClaim.get(capture.ac) : undefined;
64
+ if (capture?.role && row && !invalid)
65
+ row[capture.role] = [...row[capture.role], candidate];
66
+ else {
67
+ candidate.limitation ??= 'No recorded AC and role binding';
68
+ unassigned.push(candidate);
69
+ }
70
+ media.push(candidate);
71
+ }
72
+ const paths = new Set(media.map((entry) => entry.artifactPath));
73
+ for (const artifact of inventory) {
74
+ if (paths.has(artifact.path))
75
+ continue;
76
+ const type = artifact.type === 'screenshot' || /\.(?:png|jpe?g|webp|gif|svg)$/iu.test(artifact.path)
77
+ ? 'image'
78
+ : artifact.type === 'video' || /\.(?:mp4|mov|webm|m4v)$/iu.test(artifact.path)
79
+ ? 'video'
80
+ : undefined;
81
+ if (!type)
82
+ continue;
83
+ const candidate = {
84
+ path: artifact.path,
85
+ artifactPath: artifact.path,
86
+ originalPath: artifact.path,
87
+ name: artifact.label ?? artifact.path,
88
+ identity: `unbound:${artifact.path}`,
89
+ mediaType: type,
90
+ clips: [],
91
+ timing: 'untimed',
92
+ eligible: false,
93
+ limitation: 'No recorded AC and role binding',
94
+ };
95
+ unassigned.push(candidate);
96
+ media.push(candidate);
97
+ }
98
+ const sort = (items) => [...items].sort((a, b) => (a.capture?.traceIndex ?? Infinity) - (b.capture?.traceIndex ?? Infinity) ||
99
+ a.artifactPath.localeCompare(b.artifactPath));
100
+ for (const row of rows) {
101
+ row.before = sort(row.before);
102
+ row.after = sort(row.after);
103
+ row.review = sort(row.review);
104
+ const before = row.before.filter((entry) => entry.eligible);
105
+ const after = row.after.filter((entry) => entry.eligible);
106
+ if (before.length === 1)
107
+ row.selectedBefore = before[0];
108
+ if (after.length === 1)
109
+ row.selectedAfter = after[0];
110
+ }
111
+ return { rows, unassigned: sort(unassigned), media };
112
+ }
113
+ export function matchesComparisonFilter(media, filter) {
114
+ if (filter === 'screenshots')
115
+ return media.mediaType === 'image';
116
+ if (filter === 'moments')
117
+ return media.clips.length > 0;
118
+ if (filter === 'before' || filter === 'after' || filter === 'review')
119
+ return media.capture?.role === filter;
120
+ return true;
121
+ }
122
+ export function normalizedComparisonTransform(value) {
123
+ const clamp = (number, min, max) => Math.max(min, Math.min(max, number));
124
+ return {
125
+ scale: Number.isFinite(value.scale) ? clamp(value.scale, 1, 4) : 1,
126
+ x: Number.isFinite(value.x) ? clamp(value.x, 0, 1) : 0.5,
127
+ y: Number.isFinite(value.y) ? clamp(value.y, 0, 1) : 0.5,
128
+ };
129
+ }
130
+ //# sourceMappingURL=evidence-review-comparisons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence-review-comparisons.js","sourceRoot":"","sources":["../src/evidence-review-comparisons.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,35 @@
1
- import { type AcceptanceCriterionRef, type AcceptanceCriterionView, type AcceptanceEvidenceLink, type AcceptanceStatusLedger, type AcceptanceStatusSummary, type ClaimOverrideAuthority, type EvidenceMomentRef, type OutputReviewPayload, type RecipeClaimKind, type RecipeRecordingTimelineBinding, type RecipeRecordingTimelineDocument, type RecipeVisualReviewAuthority, type RecordedEvidencePackageInput, type RunOutput } from '@farmslot/protocol';
1
+ import { type AcceptanceCriterionRef, type AcceptanceCriterionView, type AcceptanceEvidenceLink, type AcceptanceStatusLedger, type AcceptanceStatusSummary, type ArtifactRef, type ClaimOverrideAuthority, type DeterministicChecklistCheck, type EvidenceMomentRef, type OutputReviewPayload, type RecipeClaimKind, type RecipeRecordingTimelineBinding, type RecipeRecordingTimelineDocument, type RecipeVisualJudgmentKind, type RecipeVisualReviewAuthority, type RecordedEvidencePackageInput, type ReviewDiffSnapshot, type ReviewRequirementDisplay, type ReviewStatus, type RunDecision, type RunGatePrerequisiteReason, type RunOutput, type RunReviewVisualClaimParams, type SelfPrincipalSummary } from '@farmslot/protocol';
2
+ import { type EvidenceReviewComparisonFilter, type EvidenceReviewComparisonMedia, type EvidenceReviewComparisonRow, type EvidenceReviewComparisonTransform } from './evidence-review-comparisons.js';
3
+ export type { EvidenceReviewComparisonFilter, EvidenceReviewComparisonMedia, EvidenceReviewComparisonRow, EvidenceReviewComparisonTransform, } from './evidence-review-comparisons.js';
2
4
  import { type EvidenceReviewPackageStatus } from './evidence-review-status.js';
3
5
  export type EvidenceReviewContext = 'gate' | 'pr-preview' | 'run-detail' | 'artifact';
4
6
  export type EvidenceReviewTiming = 'measured' | 'untimed' | 'outside-recording';
5
7
  export type EvidenceReviewMediaType = 'image' | 'video' | 'document';
8
+ export type EvidenceReviewProofKind = 'assertion' | 'agent-reviewed' | 'person-reviewed';
6
9
  /** Standalone players supply the same retained trace and checked video identity. */
7
10
  export interface EvidenceReviewRecordingInput extends RecipeRecordingTimelineBinding {
8
11
  timeline: RecipeRecordingTimelineDocument;
9
12
  gapBefore?: boolean;
10
13
  }
14
+ export interface EvidenceReviewGateSnapshot {
15
+ headSha?: string | null;
16
+ reviewRequirement: ReviewRequirementDisplay;
17
+ reviews: readonly Pick<ReviewStatus, 'id' | 'mode' | 'verdict' | 'stale' | 'reviewedHeadSha' | 'reviewSnapshot'>[];
18
+ ci: readonly DeterministicChecklistCheck[];
19
+ ciChecks: NonNullable<import('@farmslot/protocol').ReadyGatePayload['ciChecks']>;
20
+ ownReviewVerdict?: string;
21
+ requirements: readonly RunGatePrerequisiteReason[];
22
+ nextAction: string;
23
+ }
11
24
  export interface EvidenceReviewInput {
25
+ visualReviewContext?: {
26
+ snapshotIdentity: string;
27
+ decisionId?: string;
28
+ };
29
+ gateDecision?: RunDecision;
30
+ artifacts?: readonly ArtifactRef[];
31
+ comparisonSnapshot?: Pick<ReviewDiffSnapshot, 'baseSha' | 'headSha'>;
32
+ criterionSourceUrl?: string;
12
33
  /** Gateway run contract: 0 is retained pre-cutover data, 1 is selected-attempt evidence. */
13
34
  contractVersion?: number;
14
35
  claimOverrideAuthority?: ClaimOverrideAuthority;
@@ -34,13 +55,21 @@ export interface EvidenceReviewArtifact {
34
55
  name: string;
35
56
  mediaType: EvidenceReviewMediaType;
36
57
  }
58
+ export interface EvidenceReviewArtifactPair<T> {
59
+ before: T;
60
+ after: T;
61
+ claimId: string;
62
+ }
37
63
  export interface EvidenceReviewClaim extends AcceptanceCriterionView {
64
+ proofKinds: readonly EvidenceReviewProofKind[];
65
+ reviewLabels: readonly string[];
38
66
  kind: RecipeClaimKind;
39
67
  parentId?: string;
40
68
  caption: string;
41
69
  timing?: EvidenceReviewTiming;
42
70
  evidence: readonly EvidenceReviewArtifact[];
43
71
  moments: readonly EvidenceMomentRef[];
72
+ clips: readonly EvidenceReviewClip[];
44
73
  occurrences: readonly EvidenceReviewOccurrence[];
45
74
  }
46
75
  export interface EvidenceReviewOccurrence {
@@ -60,6 +89,7 @@ export interface EvidenceReviewClip {
60
89
  videoDigest: string;
61
90
  traceIndex: number;
62
91
  startMs: number;
92
+ momentMs?: number;
63
93
  endMs: number;
64
94
  caption: string;
65
95
  moment?: EvidenceMomentRef;
@@ -82,10 +112,37 @@ export interface EvidenceReviewPlaybackEffect {
82
112
  sourceChanged: boolean;
83
113
  }
84
114
  export interface EvidenceReviewModel {
115
+ artifactRole(path: string): 'before' | 'after' | 'review' | null;
116
+ pairedArtifacts<T extends {
117
+ path: string;
118
+ }>(artifacts: readonly T[]): EvidenceReviewArtifactPair<T>[];
119
+ readonly pendingVisualClaimIds: readonly string[];
120
+ visualReviewKind(claimId: string, principal: SelfPrincipalSummary | null): RecipeVisualJudgmentKind | null;
121
+ visualReviewRequest(claimId: string, principal: SelfPrincipalSummary | null, verdict: 'confirmed' | 'rejected', reason: string): RunReviewVisualClaimParams;
122
+ readonly gateSnapshot: EvidenceReviewGateSnapshot | null;
123
+ readonly comparisons: readonly EvidenceReviewComparisonRow[];
124
+ readonly unassigned: readonly EvidenceReviewComparisonMedia[];
125
+ readonly comparisonErrors: readonly {
126
+ code: 'comparison-source-mismatch';
127
+ artifactPath: string;
128
+ message: string;
129
+ }[];
130
+ readonly comparisonFilter: EvidenceReviewComparisonFilter;
131
+ readonly comparisonTransform: EvidenceReviewComparisonTransform;
132
+ readonly comparisonView: {
133
+ rows: readonly EvidenceReviewComparisonRow[];
134
+ unassigned: readonly EvidenceReviewComparisonMedia[];
135
+ };
136
+ setComparisonFilter(filter: EvidenceReviewComparisonFilter): void;
137
+ chooseComparisonMedia(claimId: string, role: 'before' | 'after', identity: string): boolean;
138
+ setComparisonTransform(transform: EvidenceReviewComparisonTransform): void;
139
+ resetComparisonTransform(): void;
140
+ selectComparisonMedia(identity: string): EvidenceReviewSelection | null;
85
141
  claimOverrideCandidate(id: string): Pick<import('@farmslot/protocol').RunOverrideClaimParams, 'claimId' | 'recipeRunId'> | null;
86
142
  readonly context: EvidenceReviewContext;
87
143
  readonly summary: AcceptanceStatusSummary;
88
144
  readonly claims: readonly EvidenceReviewClaim[];
145
+ readonly visualReviewMarkdown: string;
89
146
  readonly occurrences: readonly EvidenceReviewOccurrence[];
90
147
  readonly recordings: readonly RecipeRecordingTimelineDocument[];
91
148
  readonly errors: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"evidence-review-model.d.ts","sourceRoot":"","sources":["../src/evidence-review-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evidence-review-model.d.ts","sourceRoot":"","sources":["../src/evidence-review-model.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import { acceptanceCriteriaView, EVIDENCE_PADDING_MS, isRecord, projectClaimUntestableOverride, recipeTraceEntries, recordedEvidenceClosureIdentity, summarizeAcceptanceStatus, validateRecipeRecordingTimelineBinding, } from '@farmslot/protocol';
1
+ import { acceptanceCriteriaView, delegatedVisualClaimAllowed, EVIDENCE_PADDING_MS, isRecord, projectClaimUntestableOverride, recipeTraceEntries, recordedEvidenceClosureIdentity, recordedVisualJudgments, reviewRequirementDisplay, summarizeAcceptanceStatus, validateRecipeRecordingTimelineBinding, } from '@farmslot/protocol';
2
2
  import { deriveReviewedRecipeClaims, indexRecordingTimelines, occurrenceRecordingCoverage, planRecipeEvidence, proofDocument, validateRecordedEvidencePackage, } from '@farmslot/recipe-runner/evidence';
3
+ import { matchesComparisonFilter, normalizedComparisonTransform, projectEvidenceComparisons, } from './evidence-review-comparisons.js';
3
4
  import { evidenceReviewPackageStatus, } from './evidence-review-status.js';
4
5
  /** Experimental ADR-062 projection shared by web and native review contexts. */
5
6
  export function createEvidenceReviewModel(input) {
@@ -80,7 +81,7 @@ export function createEvidenceReviewModel(input) {
80
81
  .findings.filter((finding) => finding.severity === 'error')
81
82
  .map((finding) => finding.message));
82
83
  }
83
- const timelines = indexRecordingTimelines(recordings.map(({ timeline }) => timeline));
84
+ const timelines = new Map(indexRecordingTimelines(recordings.map(({ timeline }) => timeline)));
84
85
  const segments = packageClaims?.recording.segments ??
85
86
  recordings.map((recording, index) => ({
86
87
  videoPath: recording.timeline.videoPath,
@@ -94,14 +95,50 @@ export function createEvidenceReviewModel(input) {
94
95
  ? pkg.manifest.artifacts.filter(isRecord)
95
96
  : [];
96
97
  const links = new Map((input.evidenceLinks ?? []).map((link) => [link.id, link.evidence]));
98
+ const judgments = pkg && input.visualReviewAuthority && !errors.length
99
+ ? recordedVisualJudgments(pkg, input.visualReviewAuthority)
100
+ : [];
101
+ const latestJudgments = new Map(judgments.map((judgment) => [judgment.claimId, judgment]));
102
+ function reviewContributions(id) {
103
+ if (!latestJudgments.size)
104
+ return [];
105
+ const ids = new Set([id]);
106
+ for (const claim of packageClaims?.criteria ?? []) {
107
+ let parent = claim.parentId;
108
+ while (parent) {
109
+ if (parent === id) {
110
+ ids.add(claim.id);
111
+ break;
112
+ }
113
+ parent = packageClaims?.criteria.find((entry) => entry.id === parent)?.parentId;
114
+ }
115
+ }
116
+ return [...ids].flatMap((claimId) => {
117
+ const judgment = latestJudgments.get(claimId);
118
+ const claim = packageClaims?.criteria.find(({ id }) => id === claimId);
119
+ return judgment && claim?.verdict === 'awaiting-review' ? [judgment] : [];
120
+ });
121
+ }
97
122
  const claims = acceptanceCriteriaView(packageClaims?.criteria ?? input.criteria ?? ledger?.criteria ?? [], ledger).map((claim) => ({
98
123
  ...claim,
124
+ proofKinds: [
125
+ ...new Set([
126
+ ...(packageClaims && !errors.length && claim.status?.assertionIndices?.length
127
+ ? ['assertion']
128
+ : []),
129
+ ...reviewContributions(claim.id).map((judgment) => judgment.kind === 'lead-agent-reviewed'
130
+ ? 'agent-reviewed'
131
+ : 'person-reviewed'),
132
+ ]),
133
+ ],
134
+ reviewLabels: reviewContributions(claim.id).map((judgment) => `${judgment.kind === 'lead-agent-reviewed' ? `agent-reviewed (delegated by ${judgment.delegation.displayName})` : 'person-reviewed'} · ${judgment.reviewer.displayName}`),
99
135
  kind: claim.status?.kind ?? 'acceptance',
100
136
  ...(claim.status?.parentId ? { parentId: claim.status.parentId } : {}),
101
137
  caption: claimCaption(claim),
102
138
  timing: packageClaims?.criteria.find((status) => status.id === claim.id)?.timing,
103
139
  evidence: artifacts(claim.status?.evidence ?? links.get(claim.id) ?? [], packageClaims ? input.artifactPrefix : undefined),
104
140
  moments: claim.status?.moments ?? [],
141
+ clips: [],
105
142
  occurrences: [],
106
143
  }));
107
144
  const proofNodes = pkg?.recipe && !errors.length
@@ -156,6 +193,34 @@ export function createEvidenceReviewModel(input) {
156
193
  },
157
194
  ];
158
195
  });
196
+ const comparison = projectEvidenceComparisons(pkg, claims, input.artifactPrefix ?? '', input.artifacts ?? [], input.comparisonSnapshot ??
197
+ (input.gateDecision?.payload?.kind === 'ready'
198
+ ? input.gateDecision.payload.prPackage?.reviewSnapshot
199
+ : undefined), input.criterionSourceUrl, errors.length > 0);
200
+ let comparisonFilter = 'all';
201
+ let comparisonTransform = { scale: 1, x: 0.5, y: 0.5 };
202
+ const playbackSources = new Map();
203
+ const headTimelines = new Map(timelines);
204
+ for (const timeline of headTimelines.values())
205
+ playbackSources.set(timeline.videoPath, { segments, timelines: headTimelines });
206
+ const addDependencyTimelines = (source, prefix) => {
207
+ const childTimelines = new Map(Object.values(source.timelines).map((timeline) => [
208
+ `${prefix}${timeline.videoPath}`,
209
+ { ...timeline, videoPath: `${prefix}${timeline.videoPath}` },
210
+ ]));
211
+ const childSegments = (source.claims?.recording.segments ?? []).map((segment) => ({
212
+ ...segment,
213
+ videoPath: `${prefix}${segment.videoPath}`,
214
+ }));
215
+ for (const [videoPath, timeline] of childTimelines) {
216
+ timelines.set(videoPath, timeline);
217
+ playbackSources.set(videoPath, { segments: childSegments, timelines: childTimelines });
218
+ }
219
+ for (const child of source.comparisonDependencies ?? [])
220
+ addDependencyTimelines(child.input, `${prefix}${child.artifactRoot}/`);
221
+ };
222
+ for (const child of pkg?.comparisonDependencies ?? [])
223
+ addDependencyTimelines(child.input, `${child.artifactRoot}/`);
159
224
  const byClaim = new Map(claims.map((claim) => [claim.id, claim]));
160
225
  const byOccurrence = new Map(occurrences.map((occurrence) => [occurrence.traceIndex, occurrence]));
161
226
  for (const claim of claims) {
@@ -193,6 +258,7 @@ export function createEvidenceReviewModel(input) {
193
258
  videoPath: segment.videoPath,
194
259
  videoDigest: segment.videoDigest,
195
260
  traceIndex,
261
+ momentMs: (marker.startRangeMs[0] + marker.startRangeMs[1]) / 2,
196
262
  startMs: Math.max(0, marker.startRangeMs[0] - EVIDENCE_PADDING_MS),
197
263
  endMs: Math.min(timeline.durationMs, marker.endRangeMs[1] + EVIDENCE_PADDING_MS),
198
264
  caption: byOccurrence.get(traceIndex)?.intent ?? marker.nodeId,
@@ -205,6 +271,9 @@ export function createEvidenceReviewModel(input) {
205
271
  // Long recordings may list every original in the retained ledger. Present
206
272
  // only this claim's measured originals; the full file inventory stays browsable.
207
273
  for (const claim of claims) {
274
+ claim.clips = [...new Set(claim.moments.map((moment) => moment.traceIndex))]
275
+ .flatMap(clipsFor)
276
+ .filter((clip) => claim.moments.some((moment) => moment.traceIndex === clip.traceIndex && moment.videoDigest === clip.videoDigest));
208
277
  const measured = new Set(claim.moments.flatMap((moment) => clipsFor(moment.traceIndex)
209
278
  .filter((clip) => clip.videoDigest === moment.videoDigest)
210
279
  .map((clip) => clip.videoPath)));
@@ -253,7 +322,167 @@ export function createEvidenceReviewModel(input) {
253
322
  return selection;
254
323
  };
255
324
  const packageStatus = evidenceReviewPackageStatus(pkg, input.packagePath ?? input.artifactPrefix, errors, input.contractVersion);
325
+ const reviewedClaims = claims.filter((claim) => claim.reviewLabels.length);
326
+ const markdownCell = (value) => value.replace(/[\r\n]+/gu, ' ').replace(/[\\|`*_[\]<>]/gu, '\\$&');
327
+ const visualReviewMarkdown = reviewedClaims.length
328
+ ? [
329
+ '## Visual judgments',
330
+ '',
331
+ `Execution: ${markdownCell(recipeRunId ?? '')}`,
332
+ '',
333
+ '| Criterion | Verdict | Reviewed by |',
334
+ '| --- | --- | --- |',
335
+ ...reviewedClaims.map((claim) => `| ${markdownCell(`${claim.id}: ${claim.text}`)} | ${markdownCell(claim.status?.verdict ?? 'not assessed')} | ${claim.reviewLabels.map(markdownCell).join('; ')} |`),
336
+ ].join('\n')
337
+ : '';
338
+ const gatePayload = input.gateDecision?.payload?.kind === 'ready' ? input.gateDecision.payload : undefined;
339
+ const nextReason = gatePayload?.gateReadiness?.reasons[0];
340
+ const offeredNext = nextReason?.actionId
341
+ ? input.gateDecision?.actions.find((action) => action.id === nextReason.actionId)
342
+ : undefined;
343
+ const reviewableClaims = pkg && !errors.length
344
+ ? deriveReviewedRecipeClaims(pkg).filter((claim) => claim.verdict === 'awaiting-review' &&
345
+ ['visual', 'mixed'].includes(claim.proofMode) &&
346
+ claim.assertionIndices.length)
347
+ : [];
348
+ const pendingVisualClaimIds = claims
349
+ .filter((claim) => claim.status?.verdict === 'awaiting-review' &&
350
+ ['visual', 'mixed'].includes(claim.status?.proofMode ?? ''))
351
+ .map((claim) => claim.id);
352
+ const visualReviewKind = (claimId, principal) => {
353
+ const authority = input.visualReviewAuthority;
354
+ if (!pkg ||
355
+ !input.visualReviewContext ||
356
+ !authority ||
357
+ authority.historical ||
358
+ input.gateDecision?.resolvedAt ||
359
+ authority.recipeRunId !== packageClaims?.recipeRunId ||
360
+ authority.closureIdentity !== recordedEvidenceClosureIdentity(pkg) ||
361
+ !reviewableClaims.some((claim) => claim.id === claimId))
362
+ return null;
363
+ if (principal?.subjectKind === 'person')
364
+ return 'person-reviewed';
365
+ return principal?.subjectKind === 'service' &&
366
+ delegatedVisualClaimAllowed(pkg, claimId, principal.id, authority.projectPolicy)
367
+ ? 'lead-agent-reviewed'
368
+ : null;
369
+ };
370
+ const gateSnapshot = gatePayload
371
+ ? {
372
+ headSha: gatePayload.prPackage?.reviewSnapshot?.headSha ?? gatePayload.headSha,
373
+ reviewRequirement: reviewRequirementDisplay(gatePayload),
374
+ reviews: gatePayload.reviews ?? [],
375
+ ci: gatePayload.prPackage?.deterministicChecks ?? [],
376
+ ciChecks: gatePayload.ciChecks ?? [],
377
+ ownReviewVerdict: gatePayload.reviewVerdict,
378
+ requirements: gatePayload.gateReadiness?.reasons ?? [],
379
+ nextAction: input.gateDecision?.resolvedAt
380
+ ? 'Read retained evidence (read-only)'
381
+ : (offeredNext?.label ?? nextReason?.message ?? 'Use the current gate action'),
382
+ }
383
+ : null;
256
384
  return {
385
+ artifactRole(path) {
386
+ const media = comparison.media.find((entry) => entry.artifactPath === path && entry.eligible);
387
+ return media?.capture?.role ?? null;
388
+ },
389
+ pairedArtifacts(artifacts) {
390
+ return comparison.rows.flatMap((row) => {
391
+ const before = row.selectedBefore?.eligible
392
+ ? artifacts.find((artifact) => artifact.path === row.selectedBefore?.artifactPath)
393
+ : undefined;
394
+ const after = row.selectedAfter?.eligible
395
+ ? artifacts.find((artifact) => artifact.path === row.selectedAfter?.artifactPath)
396
+ : undefined;
397
+ return before && after ? [{ before, after, claimId: row.claim.id }] : [];
398
+ });
399
+ },
400
+ pendingVisualClaimIds,
401
+ visualReviewKind,
402
+ visualReviewRequest(claimId, principal, verdict, reason) {
403
+ const kind = visualReviewKind(claimId, principal);
404
+ if (!kind || !input.visualReviewContext || !input.visualReviewAuthority || !packageClaims)
405
+ throw new Error('This claim requires an authorized reviewer and a captured evidence selection.');
406
+ if (!reason.trim())
407
+ throw new Error('Describe the visual proof you inspected.');
408
+ return {
409
+ runId: input.visualReviewAuthority.runId,
410
+ decisionId: input.visualReviewContext.decisionId,
411
+ snapshotIdentity: input.visualReviewContext.snapshotIdentity,
412
+ recipeRunId: packageClaims.recipeRunId,
413
+ claimId,
414
+ kind,
415
+ verdict,
416
+ reason: reason.trim(),
417
+ };
418
+ },
419
+ gateSnapshot,
420
+ comparisonErrors: comparison.media
421
+ .filter((media) => media.limitationCode === 'comparison-source-mismatch')
422
+ .map((media) => ({
423
+ code: 'comparison-source-mismatch',
424
+ artifactPath: media.artifactPath,
425
+ message: media.limitation,
426
+ })),
427
+ comparisons: comparison.rows,
428
+ unassigned: comparison.unassigned,
429
+ get comparisonFilter() {
430
+ return comparisonFilter;
431
+ },
432
+ get comparisonTransform() {
433
+ return comparisonTransform;
434
+ },
435
+ get comparisonView() {
436
+ const filtered = (media) => media.filter((entry) => matchesComparisonFilter(entry, comparisonFilter));
437
+ return {
438
+ rows: comparisonFilter === 'unassigned'
439
+ ? []
440
+ : comparison.rows.map((row) => ({
441
+ ...row,
442
+ claim: {
443
+ ...row.claim,
444
+ clips: comparisonFilter === 'all' || comparisonFilter === 'moments'
445
+ ? row.claim.clips
446
+ : [],
447
+ },
448
+ before: filtered(row.before),
449
+ after: filtered(row.after),
450
+ review: filtered(row.review),
451
+ selectedBefore: filtered(row.before).find((media) => media.identity === row.selectedBefore?.identity),
452
+ selectedAfter: filtered(row.after).find((media) => media.identity === row.selectedAfter?.identity),
453
+ })),
454
+ unassigned: ['all', 'unassigned', 'screenshots', 'moments'].includes(comparisonFilter)
455
+ ? filtered(comparison.unassigned)
456
+ : [],
457
+ };
458
+ },
459
+ setComparisonFilter(filter) {
460
+ comparisonFilter = filter;
461
+ },
462
+ chooseComparisonMedia(claimId, role, identity) {
463
+ const row = comparison.rows.find((entry) => entry.claim.id === claimId);
464
+ const media = row?.[role].find((entry) => entry.identity === identity);
465
+ if (!row || !media?.eligible)
466
+ return false;
467
+ if (role === 'before')
468
+ row.selectedBefore = media;
469
+ else
470
+ row.selectedAfter = media;
471
+ comparisonTransform = { scale: 1, x: 0.5, y: 0.5 };
472
+ return true;
473
+ },
474
+ setComparisonTransform(transform) {
475
+ comparisonTransform = normalizedComparisonTransform(transform);
476
+ },
477
+ resetComparisonTransform() {
478
+ comparisonTransform = { scale: 1, x: 0.5, y: 0.5 };
479
+ },
480
+ selectComparisonMedia(identity) {
481
+ const media = comparison.media.find((entry) => entry.identity === identity);
482
+ return media
483
+ ? select(media.name, [media], [...media.clips], media.capture?.traceIndex, media.capture?.ac, media.timing)
484
+ : null;
485
+ },
257
486
  context: input.context ?? 'artifact',
258
487
  claimOverrideCandidate(id) {
259
488
  const claim = packageClaims?.criteria.find((claim) => claim.id === id && claim.kind === 'acceptance');
@@ -266,8 +495,9 @@ export function createEvidenceReviewModel(input) {
266
495
  criteria: claims.flatMap((claim) => (claim.status ? [claim.status] : [])),
267
496
  }, claims),
268
497
  claims,
498
+ visualReviewMarkdown,
269
499
  occurrences,
270
- recordings: recordings.map((recording) => recording.timeline),
500
+ recordings: [...timelines.values()],
271
501
  errors,
272
502
  warnings,
273
503
  displayWarnings: [...new Set(warnings)].filter((warning) => packageStatus?.status !== 'Legacy' || !warning.startsWith('Legacy package')),
@@ -358,7 +588,8 @@ export function createEvidenceReviewModel(input) {
358
588
  },
359
589
  markerSeekMs(videoPath, traceIndex, phase, mediaDurationMs) {
360
590
  if (errors.length ||
361
- occurrenceRecordingCoverage(traceIndex, segments, timelines).timing !== 'measured')
591
+ !playbackSources.has(videoPath) ||
592
+ occurrenceRecordingCoverage(traceIndex, playbackSources.get(videoPath).segments, playbackSources.get(videoPath).timelines).timing !== 'measured')
362
593
  return null;
363
594
  const timeline = timelines.get(videoPath);
364
595
  const marker = timeline?.markers.find((marker) => marker.traceIndex === traceIndex);
@@ -1 +1 @@
1
- {"version":3,"file":"evidence-review-model.js","sourceRoot":"","sources":["../src/evidence-review-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evidence-review-model.js","sourceRoot":"","sources":["../src/evidence-review-model.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /** The shared package-validation surface used by CLI, gateway and both review clients. */
2
- export type { EvidenceReviewArtifact, EvidenceReviewClaim, EvidenceReviewClip, EvidenceReviewContext, EvidenceReviewInput, EvidenceReviewMediaType, EvidenceReviewModel, EvidenceReviewOccurrence, EvidenceReviewPlaybackEffect, EvidenceReviewRecordingInput, EvidenceReviewSelection, EvidenceReviewTiming, } from './evidence-review-model.js';
2
+ export type { EvidenceReviewArtifact, EvidenceReviewClaim, EvidenceReviewClip, EvidenceReviewComparisonFilter, EvidenceReviewComparisonMedia, EvidenceReviewComparisonRow, EvidenceReviewComparisonTransform, EvidenceReviewContext, EvidenceReviewGateSnapshot, EvidenceReviewInput, EvidenceReviewMediaType, EvidenceReviewModel, EvidenceReviewOccurrence, EvidenceReviewPlaybackEffect, EvidenceReviewProofKind, EvidenceReviewRecordingInput, EvidenceReviewSelection, EvidenceReviewTiming, } from './evidence-review-model.js';
3
3
  export { createEvidenceReviewModel } from './evidence-review-model.js';
4
4
  export type { EvidenceReviewReport, RecordingEvidenceReadRequest, } from './evidence-review-source.js';
5
5
  export { loadRecordingEvidenceReview, readEvidenceReviewReport } from './evidence-review-source.js';
@@ -1 +1 @@
1
- {"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,YAAY,EACV,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACxB,4BAA4B,EAC5B,4BAA4B,EAC5B,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,YAAY,EACV,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACpG,YAAY,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AACpG,YAAY,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,GAChC,MAAM,kCAAkC,CAAC"}
1
+ {"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,YAAY,EACV,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,8BAA8B,EAC9B,6BAA6B,EAC7B,2BAA2B,EAC3B,iCAAiC,EACjC,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACxB,4BAA4B,EAC5B,uBAAuB,EACvB,4BAA4B,EAC5B,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,YAAY,EACV,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACpG,YAAY,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AACpG,YAAY,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,GAChC,MAAM,kCAAkC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"evidence.js","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAKvE,OAAO,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAGpG,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,GAChC,MAAM,kCAAkC,CAAC"}
1
+ {"version":3,"file":"evidence.js","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAKvE,OAAO,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAGpG,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,GAChC,MAAM,kCAAkC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@farmslot/adapter-sdk",
3
- "version": "0.13.3",
3
+ "version": "0.14.1",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -29,8 +29,8 @@
29
29
  "prepublishOnly": "node ../../scripts/quality/check-farmslot-package-readiness.mjs --publish --packages @farmslot/adapter-sdk"
30
30
  },
31
31
  "dependencies": {
32
- "@farmslot/protocol": "0.44.0",
33
- "@farmslot/recipe-runner": "0.35.0",
32
+ "@farmslot/protocol": "0.46.0",
33
+ "@farmslot/recipe-runner": "0.36.1",
34
34
  "@noble/hashes": "^1.8.0"
35
35
  },
36
36
  "devDependencies": {