@farmslot/protocol 0.51.0 → 0.53.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/CHANGELOG.md +10 -0
- package/dist/contracts/acceptance.d.ts +16 -0
- package/dist/contracts/acceptance.d.ts.map +1 -1
- package/dist/contracts/acceptance.js +3 -0
- package/dist/contracts/acceptance.js.map +1 -1
- package/dist/contracts/agents.d.ts +3 -0
- package/dist/contracts/agents.d.ts.map +1 -1
- package/dist/contracts/agents.js.map +1 -1
- package/dist/contracts/runs.d.ts +10 -0
- package/dist/contracts/runs.d.ts.map +1 -1
- package/dist/contracts/runs.js.map +1 -1
- package/dist/contracts/slots.d.ts +23 -0
- package/dist/contracts/slots.d.ts.map +1 -1
- package/dist/contracts/worker-terminal.d.ts +2 -0
- package/dist/contracts/worker-terminal.d.ts.map +1 -1
- package/dist/contracts/worker-terminal.js.map +1 -1
- package/dist/recipe/claim-reviews.d.ts +27 -8
- package/dist/recipe/claim-reviews.d.ts.map +1 -1
- package/dist/recipe/claim-reviews.js +46 -35
- package/dist/recipe/claim-reviews.js.map +1 -1
- package/dist/recipe/index.d.ts +1 -0
- package/dist/recipe/index.d.ts.map +1 -1
- package/dist/recipe/index.js +1 -0
- package/dist/recipe/index.js.map +1 -1
- package/dist/recipe/pipeline-visual-judgments.d.ts +127 -0
- package/dist/recipe/pipeline-visual-judgments.d.ts.map +1 -0
- package/dist/recipe/pipeline-visual-judgments.js +78 -0
- package/dist/recipe/pipeline-visual-judgments.js.map +1 -0
- package/dist/rpc/native-session.d.ts +10 -0
- package/dist/rpc/native-session.d.ts.map +1 -1
- package/dist/rpc/native-session.js.map +1 -1
- package/dist/rpc/run.d.ts +1 -1
- package/dist/rpc/run.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/scripts/acceptance.d.mts +8 -0
- package/scripts/acceptance.mjs +27 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-terminal.d.ts","sourceRoot":"","sources":["../../src/contracts/worker-terminal.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;AAEzE,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,6BAA6B;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"worker-terminal.d.ts","sourceRoot":"","sources":["../../src/contracts/worker-terminal.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;AAEzE,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,6BAA6B;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,2BAA2B;IAC1C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,6BAA6B,CAAC;IAC3C,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,WAAW,CAAC,EAAE,yBAAyB,CAAC;IACxC,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CACZ,MAAM,EACN,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,yBAAyB,CAAC,CAAC,GAAG;QAClE,UAAU,CAAC,EAAE,6BAA6B,CAAC;KAC5C,CACF,CAAC;IACF,WAAW,CAAC,EAAE,6BAA6B,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,8BAA8B;IAC7C,6EAA6E;IAC7E,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mFAAmF;IACnF,+BAA+B,CAAC,EAAE,MAAM,CAAC;IACzC,aAAa,EAAE,CAAC,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;IACvB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,6BAA6B,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC,qBAAqB,EAAE,yBAAyB,CAAC,CAAC;IACnE,WAAW,EAAE,6BAA6B,EAAE,CAAC;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,6EAA6E;IAC7E,mBAAmB,CAAC,EAAE,KAAK,CAAC;QAC1B,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ;AAED,wEAAwE;AACxE,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC;IAClE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,8BAA8B,yCAAyC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-terminal.js","sourceRoot":"","sources":["../../src/contracts/worker-terminal.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"worker-terminal.js","sourceRoot":"","sources":["../../src/contracts/worker-terminal.ts"],"names":[],"mappings":"AAqFA,MAAM,CAAC,MAAM,8BAA8B,GAAG,sCAAsC,CAAC"}
|
|
@@ -2,13 +2,12 @@ import { type EvidenceAttestationApprover } from '../contracts/run-gate-readines
|
|
|
2
2
|
import { type RecipeVisualJudgment, type RecordedEvidencePackageInput } from './evidence.js';
|
|
3
3
|
export declare const CONFIRM_VISUAL_CLAIM_ACTION = "confirm-visual";
|
|
4
4
|
export declare const REJECT_VISUAL_CLAIM_ACTION = "reject-visual";
|
|
5
|
-
export type RecipeVisualJudgmentKind = 'person-reviewed' | 'lead-agent-reviewed';
|
|
5
|
+
export type RecipeVisualJudgmentKind = 'person-reviewed' | 'lead-agent-reviewed' | 'pipeline-reviewed';
|
|
6
6
|
/** Undefined kind is unqualified embedded input, which always needs rationale. */
|
|
7
7
|
export declare function validVisualJudgmentReason(kind: RecipeVisualJudgmentKind | undefined, verdict: RecipeVisualJudgment['verdict'], reason?: string): boolean;
|
|
8
8
|
export interface ProjectVisualClaimReviewPolicy {
|
|
9
|
-
delegatedReviewerPrincipalIds
|
|
10
|
-
delegatorPrincipalId
|
|
11
|
-
personOnlyClaimIds?: string[];
|
|
9
|
+
delegatedReviewerPrincipalIds?: string[];
|
|
10
|
+
delegatorPrincipalId?: string;
|
|
12
11
|
}
|
|
13
12
|
export type RecipeVisualReviewer = EvidenceAttestationApprover & {
|
|
14
13
|
subjectKind: 'person' | 'service';
|
|
@@ -16,7 +15,22 @@ export type RecipeVisualReviewer = EvidenceAttestationApprover & {
|
|
|
16
15
|
};
|
|
17
16
|
/** Operator-owned project policy, never supplied by a task or judgment request. */
|
|
18
17
|
export declare function parseProjectVisualClaimReviewPolicy(value: unknown): ProjectVisualClaimReviewPolicy | undefined;
|
|
19
|
-
export declare function delegatedVisualClaimAllowed(
|
|
18
|
+
export declare function delegatedVisualClaimAllowed(reviewerPrincipalId: string, policy: ProjectVisualClaimReviewPolicy | undefined): boolean;
|
|
19
|
+
export interface PipelineVisualReviewerBinding {
|
|
20
|
+
contextId: string;
|
|
21
|
+
executionNodeId: string;
|
|
22
|
+
ownerPrincipalId: string;
|
|
23
|
+
sessionId: string;
|
|
24
|
+
generation: string;
|
|
25
|
+
leaseId: string;
|
|
26
|
+
commandId: string;
|
|
27
|
+
}
|
|
28
|
+
export type RecipeVisualReviewerIdentity = EvidenceAttestationApprover | {
|
|
29
|
+
principalId: string;
|
|
30
|
+
displayName: string;
|
|
31
|
+
credentialId?: never;
|
|
32
|
+
personSessionId?: never;
|
|
33
|
+
};
|
|
20
34
|
export declare function reviewedVisualFiles(input: RecordedEvidencePackageInput, claimId: string): {
|
|
21
35
|
path: string;
|
|
22
36
|
digest: string;
|
|
@@ -29,7 +43,7 @@ export interface RecipeVisualJudgmentReceipt extends Omit<RecipeVisualJudgment,
|
|
|
29
43
|
decisionId?: string;
|
|
30
44
|
snapshotIdentity: string;
|
|
31
45
|
closureIdentity: string;
|
|
32
|
-
approver:
|
|
46
|
+
approver: RecipeVisualReviewerIdentity;
|
|
33
47
|
/** Absence identifies the already-shipped credential-backed person receipts. */
|
|
34
48
|
kind?: RecipeVisualJudgmentKind;
|
|
35
49
|
reviewerSubjectKind?: RecipeVisualReviewer['subjectKind'];
|
|
@@ -42,6 +56,10 @@ export interface RecipeVisualJudgmentReceipt extends Omit<RecipeVisualJudgment,
|
|
|
42
56
|
displayName: string;
|
|
43
57
|
policyDigest: string;
|
|
44
58
|
};
|
|
59
|
+
/** Internal pipeline collection only; manual judgment RPC cannot supply this binding. */
|
|
60
|
+
pipeline?: PipelineVisualReviewerBinding;
|
|
61
|
+
/** New captures retain the same winner in current and frozen projections. */
|
|
62
|
+
precedence?: 'person-first-v1';
|
|
45
63
|
}
|
|
46
64
|
/** Consumers load receipts from the gateway store, never from a recipe/task file. */
|
|
47
65
|
export interface RecipeVisualReviewAuthority {
|
|
@@ -57,9 +75,10 @@ export interface QualifiedRecipeVisualJudgment extends Omit<RecipeVisualJudgment
|
|
|
57
75
|
reason?: string;
|
|
58
76
|
receiptId: string;
|
|
59
77
|
kind: RecipeVisualJudgmentKind;
|
|
60
|
-
reviewer:
|
|
78
|
+
reviewer: RecipeVisualReviewerIdentity;
|
|
61
79
|
delegation?: RecipeVisualJudgmentReceipt['delegation'];
|
|
80
|
+
pipeline?: PipelineVisualReviewerBinding;
|
|
62
81
|
}
|
|
63
|
-
/**
|
|
82
|
+
/** Current projections put the latest person after agents so a person Issue cannot be cleared by an agent. */
|
|
64
83
|
export declare function recordedVisualJudgments(input: RecordedEvidencePackageInput, authority: RecipeVisualReviewAuthority): QualifiedRecipeVisualJudgment[];
|
|
65
84
|
//# sourceMappingURL=claim-reviews.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claim-reviews.d.ts","sourceRoot":"","sources":["../../src/recipe/claim-reviews.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,2BAA2B,EAEjC,MAAM,oCAAoC,CAAC;AAK5C,OAAO,
|
|
1
|
+
{"version":3,"file":"claim-reviews.d.ts","sourceRoot":"","sources":["../../src/recipe/claim-reviews.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,6 @@ import { isEvidenceAttestationApprover, } from '../contracts/run-gate-readiness.
|
|
|
2
2
|
import { recordedEvidenceClosureIdentity } from './claim-overrides.js';
|
|
3
3
|
import { isRecord } from './common.js';
|
|
4
4
|
import { digestRecipeDocument } from './digest.js';
|
|
5
|
-
import { normalizeRecipeClaimId, } from './evidence.js';
|
|
6
5
|
export const CONFIRM_VISUAL_CLAIM_ACTION = 'confirm-visual';
|
|
7
6
|
export const REJECT_VISUAL_CLAIM_ACTION = 'reject-visual';
|
|
8
7
|
/** Undefined kind is unqualified embedded input, which always needs rationale. */
|
|
@@ -14,42 +13,27 @@ export function parseProjectVisualClaimReviewPolicy(value) {
|
|
|
14
13
|
if (value === undefined)
|
|
15
14
|
return undefined;
|
|
16
15
|
if (!isRecord(value) ||
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
Object.keys(value).some((key) => !['delegatedReviewerPrincipalIds', 'delegatorPrincipalId', 'personOnlyClaimIds'].includes(key)))
|
|
16
|
+
((value.delegatorPrincipalId !== undefined ||
|
|
17
|
+
value.delegatedReviewerPrincipalIds !== undefined) &&
|
|
18
|
+
(typeof value.delegatorPrincipalId !== 'string' ||
|
|
19
|
+
!value.delegatorPrincipalId.trim() ||
|
|
20
|
+
!Array.isArray(value.delegatedReviewerPrincipalIds) ||
|
|
21
|
+
value.delegatedReviewerPrincipalIds.some((id) => typeof id !== 'string' || !id.trim()))) ||
|
|
22
|
+
Object.keys(value).some((key) => !['delegatedReviewerPrincipalIds', 'delegatorPrincipalId'].includes(key)))
|
|
25
23
|
throw new TypeError('Invalid project visualClaimReview policy.');
|
|
26
24
|
return {
|
|
27
|
-
|
|
28
|
-
delegatedReviewerPrincipalIds: [
|
|
29
|
-
...new Set(value.delegatedReviewerPrincipalIds),
|
|
30
|
-
].sort(),
|
|
31
|
-
...(value.personOnlyClaimIds
|
|
25
|
+
...(typeof value.delegatorPrincipalId === 'string'
|
|
32
26
|
? {
|
|
33
|
-
|
|
34
|
-
|
|
27
|
+
delegatorPrincipalId: value.delegatorPrincipalId,
|
|
28
|
+
delegatedReviewerPrincipalIds: [
|
|
29
|
+
...new Set(value.delegatedReviewerPrincipalIds),
|
|
35
30
|
].sort(),
|
|
36
31
|
}
|
|
37
32
|
: {}),
|
|
38
33
|
};
|
|
39
34
|
}
|
|
40
|
-
export function delegatedVisualClaimAllowed(
|
|
41
|
-
|
|
42
|
-
return false;
|
|
43
|
-
const personOnly = new Set(policy.personOnlyClaimIds ?? []);
|
|
44
|
-
let claim = input.claims?.criteria.find(({ id }) => id === normalizeRecipeClaimId(claimId));
|
|
45
|
-
if (!claim)
|
|
46
|
-
return false;
|
|
47
|
-
while (claim) {
|
|
48
|
-
if (personOnly.has(claim.id))
|
|
49
|
-
return false;
|
|
50
|
-
claim = input.claims?.criteria.find(({ id }) => id === claim.parentId);
|
|
51
|
-
}
|
|
52
|
-
return true;
|
|
35
|
+
export function delegatedVisualClaimAllowed(reviewerPrincipalId, policy) {
|
|
36
|
+
return Boolean(policy?.delegatedReviewerPrincipalIds?.includes(reviewerPrincipalId));
|
|
53
37
|
}
|
|
54
38
|
export function reviewedVisualFiles(input, claimId) {
|
|
55
39
|
const claim = input.claims?.criteria.find(({ id }) => id === claimId);
|
|
@@ -58,33 +42,53 @@ export function reviewedVisualFiles(input, claimId) {
|
|
|
58
42
|
.sort()
|
|
59
43
|
.map((path) => ({ path, digest: input.artifactDigests[path] }));
|
|
60
44
|
}
|
|
61
|
-
/**
|
|
45
|
+
/** Current projections put the latest person after agents so a person Issue cannot be cleared by an agent. */
|
|
62
46
|
export function recordedVisualJudgments(input, authority) {
|
|
63
47
|
if (!input.claims ||
|
|
64
48
|
authority.recipeRunId !== input.claims.recipeRunId ||
|
|
65
49
|
authority.closureIdentity !== recordedEvidenceClosureIdentity(input))
|
|
66
50
|
return [];
|
|
67
|
-
|
|
51
|
+
const qualified = authority.receipts.flatMap((receipt) => {
|
|
68
52
|
const claim = input.claims.criteria.find(({ id }) => id === receipt.claimId);
|
|
69
53
|
const kind = receipt.kind ?? 'person-reviewed';
|
|
70
54
|
const delegated = kind === 'lead-agent-reviewed';
|
|
55
|
+
const pipeline = kind === 'pipeline-reviewed';
|
|
71
56
|
if (!claim ||
|
|
72
57
|
!['visual', 'mixed'].includes(claim.proofMode) ||
|
|
73
58
|
receipt.runId !== authority.runId ||
|
|
74
59
|
receipt.recipeRunId !== authority.recipeRunId ||
|
|
75
60
|
receipt.closureIdentity !== authority.closureIdentity ||
|
|
76
61
|
!receipt.id?.trim() ||
|
|
77
|
-
|
|
62
|
+
(pipeline
|
|
63
|
+
? !receipt.approver?.displayName?.trim() ||
|
|
64
|
+
receipt.approver.credentialId !== undefined ||
|
|
65
|
+
receipt.approver.personSessionId !== undefined ||
|
|
66
|
+
receipt.approver.principalId !==
|
|
67
|
+
`native-review:${receipt.pipeline?.sessionId}:${receipt.pipeline?.leaseId}`
|
|
68
|
+
: !isEvidenceAttestationApprover(receipt.approver)) ||
|
|
78
69
|
!validVisualJudgmentReason(kind, receipt.verdict, receipt.reason) ||
|
|
79
70
|
!['confirmed', 'rejected'].includes(receipt.verdict) ||
|
|
80
71
|
!Number.isFinite(Date.parse(receipt.judgedAt)) ||
|
|
81
72
|
digestRecipeDocument(receipt.moments) !== digestRecipeDocument(claim.moments) ||
|
|
82
|
-
!['person-reviewed', 'lead-agent-reviewed'].includes(kind) ||
|
|
73
|
+
!['person-reviewed', 'lead-agent-reviewed', 'pipeline-reviewed'].includes(kind) ||
|
|
83
74
|
(receipt.kind !== undefined &&
|
|
84
|
-
receipt.reviewerSubjectKind !== (
|
|
75
|
+
receipt.reviewerSubjectKind !== (kind === 'person-reviewed' ? 'person' : 'service')) ||
|
|
85
76
|
(receipt.reviewedFiles !== undefined &&
|
|
86
77
|
digestRecipeDocument(receipt.reviewedFiles) !==
|
|
87
78
|
digestRecipeDocument(reviewedVisualFiles(input, receipt.claimId))) ||
|
|
79
|
+
(pipeline &&
|
|
80
|
+
(!receipt.pipeline ||
|
|
81
|
+
Object.values(receipt.pipeline).some((value) => typeof value !== 'string' || !value.trim()) ||
|
|
82
|
+
![
|
|
83
|
+
'contextId',
|
|
84
|
+
'executionNodeId',
|
|
85
|
+
'ownerPrincipalId',
|
|
86
|
+
'sessionId',
|
|
87
|
+
'generation',
|
|
88
|
+
'leaseId',
|
|
89
|
+
'commandId',
|
|
90
|
+
].every((key) => Boolean(receipt.pipeline?.[key])) ||
|
|
91
|
+
!receipt.reviewedFiles?.length)) ||
|
|
88
92
|
(delegated &&
|
|
89
93
|
(!receipt.approver.credentialId ||
|
|
90
94
|
!receipt.reviewedFiles?.length ||
|
|
@@ -92,7 +96,7 @@ export function recordedVisualJudgments(input, authority) {
|
|
|
92
96
|
!receipt.delegation?.displayName.trim() ||
|
|
93
97
|
!/^sha256:[a-f0-9]{64}$/u.test(receipt.delegation.policyDigest) ||
|
|
94
98
|
(!authority.historical &&
|
|
95
|
-
(!delegatedVisualClaimAllowed(
|
|
99
|
+
(!delegatedVisualClaimAllowed(receipt.approver.principalId, authority.projectPolicy) ||
|
|
96
100
|
receipt.delegation.principalId !== authority.projectPolicy?.delegatorPrincipalId ||
|
|
97
101
|
receipt.delegation.policyDigest !== digestRecipeDocument(authority.projectPolicy))))))
|
|
98
102
|
return [];
|
|
@@ -102,6 +106,7 @@ export function recordedVisualJudgments(input, authority) {
|
|
|
102
106
|
kind,
|
|
103
107
|
reviewer: receipt.approver,
|
|
104
108
|
...(receipt.delegation ? { delegation: receipt.delegation } : {}),
|
|
109
|
+
...(receipt.pipeline ? { pipeline: receipt.pipeline } : {}),
|
|
105
110
|
claimId: receipt.claimId,
|
|
106
111
|
recipeRunId: receipt.recipeRunId,
|
|
107
112
|
verdict: receipt.verdict,
|
|
@@ -112,5 +117,11 @@ export function recordedVisualJudgments(input, authority) {
|
|
|
112
117
|
},
|
|
113
118
|
];
|
|
114
119
|
});
|
|
120
|
+
const currentPrecedence = authority.receipts.some((receipt) => (receipt.precedence === 'person-first-v1' || receipt.kind === 'pipeline-reviewed') &&
|
|
121
|
+
qualified.some((judgment) => judgment.receiptId === receipt.id));
|
|
122
|
+
return authority.historical && !currentPrecedence
|
|
123
|
+
? qualified
|
|
124
|
+
: qualified.sort((a, b) => Number(a.kind === 'person-reviewed') - Number(b.kind === 'person-reviewed') ||
|
|
125
|
+
Date.parse(a.judgedAt) - Date.parse(b.judgedAt));
|
|
115
126
|
}
|
|
116
127
|
//# sourceMappingURL=claim-reviews.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claim-reviews.js","sourceRoot":"","sources":["../../src/recipe/claim-reviews.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,6BAA6B,GAC9B,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"claim-reviews.js","sourceRoot":"","sources":["../../src/recipe/claim-reviews.ts"],"names":[],"mappings":"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"}
|
package/dist/recipe/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export { DEFAULT_RECORDED_EVIDENCE_POLICY, EVIDENCE_PADDING_MS, type EvidenceMom
|
|
|
9
9
|
export { HUD_INTENT_LINE_HEIGHT, HUD_INTENT_MAX_LINES, HUD_PANEL_BOUNDS, hudIntentDisplay, hudPlacement, hudSecondaryText, RECIPE_INTENT_MAX_LENGTH, RECIPE_INTENT_WARN_LENGTH, type RecipeHudPlacement, waitForHudPaint, } from './hud-intent.js';
|
|
10
10
|
export { getRecipeActionManifestActionNames, validateRecipeActionManifestDocument, } from './manifest.js';
|
|
11
11
|
export { applyRecipeParamDefaults, validateRecipeParams, validateRecipeParamsSchema, } from './params.js';
|
|
12
|
+
export * from './pipeline-visual-judgments.js';
|
|
12
13
|
export type { EvidenceManifest, EvidenceManifestOmit, EvidenceManifestPair, EvidenceManifestVideo, } from './publication-manifest.js';
|
|
13
14
|
export { type RecipeRecordingMarker, type RecipeRecordingTimelineBinding, type RecipeRecordingTimelineDocument, type RecipeVideoTiming, validateRecipeRecordingTimelineBinding, validateRecipeRecordingTimelineDocument, } from './recording.js';
|
|
14
15
|
export { RECORDED_EVIDENCE_RUN_CONTRACT_VERSION, RecordedEvidenceReadError, type RecordedEvidenceReadFailureCode, } from './run-contract.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/recipe/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/recipe/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,kBAAkB,EAClB,gCAAgC,EAChC,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AACvB,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EACL,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,QAAQ,EACR,uBAAuB,EACvB,KAAK,kBAAkB,EACvB,iCAAiC,EACjC,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC3B,8BAA8B,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,4BAA4B,EACjC,KAAK,gBAAgB,EACrB,KAAK,0BAA0B,EAC/B,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,kCAAkC,EACvC,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,0BAA0B,EAC1B,KAAK,aAAa,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EACL,KAAK,+BAA+B,EACpC,iCAAiC,EACjC,sBAAsB,EACtB,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,gCAAgC,EAChC,mBAAmB,EACnB,KAAK,iBAAiB,EACtB,0BAA0B,EAC1B,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EACjC,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,uBAAuB,EACvB,+BAA+B,EAC/B,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,wBAAwB,EACxB,yBAAyB,EACzB,KAAK,kBAAkB,EACvB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kCAAkC,EAClC,oCAAoC,GACrC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AACrB,cAAc,gCAAgC,CAAC;AAC/C,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,8BAA8B,EACnC,KAAK,+BAA+B,EACpC,KAAK,iBAAiB,EACtB,sCAAsC,EACtC,uCAAuC,GACxC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,sCAAsC,EACtC,yBAAyB,EACzB,KAAK,+BAA+B,GACrC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,2BAA2B,EAChC,mCAAmC,GACpC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,sBAAsB,EACtB,wCAAwC,EACxC,kCAAkC,EAClC,8BAA8B,EAC9B,6BAA6B,EAC7B,KAAK,6BAA6B,EAClC,KAAK,mCAAmC,EACxC,KAAK,6BAA6B,EAClC,KAAK,iCAAiC,EACtC,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,4BAA4B,EACjC,KAAK,wBAAwB,EAC7B,0BAA0B,EAC1B,iCAAiC,EACjC,gCAAgC,GACjC,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,8BAA8B,EAC9B,mBAAmB,EACnB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,6CAA6C,EAC7C,gCAAgC,EAChC,6BAA6B,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,iBAAiB,EACjB,8BAA8B,EAC9B,wBAAwB,EACxB,wBAAwB,EACxB,kBAAkB,EAClB,2BAA2B,EAC3B,kBAAkB,GACnB,MAAM,eAAe,CAAC"}
|
package/dist/recipe/index.js
CHANGED
|
@@ -9,6 +9,7 @@ export { DEFAULT_RECORDED_EVIDENCE_POLICY, EVIDENCE_PADDING_MS, hasUnresolvedRec
|
|
|
9
9
|
export { HUD_INTENT_LINE_HEIGHT, HUD_INTENT_MAX_LINES, HUD_PANEL_BOUNDS, hudIntentDisplay, hudPlacement, hudSecondaryText, RECIPE_INTENT_MAX_LENGTH, RECIPE_INTENT_WARN_LENGTH, waitForHudPaint, } from './hud-intent.js';
|
|
10
10
|
export { getRecipeActionManifestActionNames, validateRecipeActionManifestDocument, } from './manifest.js';
|
|
11
11
|
export { applyRecipeParamDefaults, validateRecipeParams, validateRecipeParamsSchema, } from './params.js';
|
|
12
|
+
export * from './pipeline-visual-judgments.js';
|
|
12
13
|
export { validateRecipeRecordingTimelineBinding, validateRecipeRecordingTimelineDocument, } from './recording.js';
|
|
13
14
|
export { RECORDED_EVIDENCE_RUN_CONTRACT_VERSION, RecordedEvidenceReadError, } from './run-contract.js';
|
|
14
15
|
export { sanitizeLatestValidRecipeRunPointer, } from './run-pointer.js';
|
package/dist/recipe/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/recipe/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,kBAAkB,EAClB,gCAAgC,EAChC,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AACvB,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EACL,qBAAqB,EAErB,QAAQ,EACR,uBAAuB,EAEvB,iCAAiC,EACjC,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC3B,8BAA8B,EAe9B,0BAA0B,GAE3B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EAEL,iCAAiC,EACjC,sBAAsB,EACtB,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,gCAAgC,EAChC,mBAAmB,EAEnB,0BAA0B,EAC1B,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,EAarB,uBAAuB,EACvB,+BAA+B,EAC/B,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,wBAAwB,EACxB,yBAAyB,EAEzB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kCAAkC,EAClC,oCAAoC,GACrC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/recipe/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,kBAAkB,EAClB,gCAAgC,EAChC,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AACvB,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EACL,qBAAqB,EAErB,QAAQ,EACR,uBAAuB,EAEvB,iCAAiC,EACjC,qBAAqB,EACrB,0BAA0B,EAC1B,2BAA2B,EAC3B,8BAA8B,EAe9B,0BAA0B,GAE3B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EAEL,iCAAiC,EACjC,sBAAsB,EACtB,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,gCAAgC,EAChC,mBAAmB,EAEnB,0BAA0B,EAC1B,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,EAarB,uBAAuB,EACvB,+BAA+B,EAC/B,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,wBAAwB,EACxB,yBAAyB,EAEzB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kCAAkC,EAClC,oCAAoC,GACrC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AACrB,cAAc,gCAAgC,CAAC;AAO/C,OAAO,EAKL,sCAAsC,EACtC,uCAAuC,GACxC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,sCAAsC,EACtC,yBAAyB,GAE1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,mCAAmC,GACpC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,sBAAsB,EACtB,wCAAwC,EACxC,kCAAkC,EAClC,8BAA8B,EAC9B,6BAA6B,EAY7B,0BAA0B,EAC1B,iCAAiC,EACjC,gCAAgC,GACjC,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,8BAA8B,EAC9B,mBAAmB,EAGnB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,6CAA6C,EAC7C,gCAAgC,EAChC,6BAA6B,GAS9B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,iBAAiB,EACjB,8BAA8B,EAC9B,wBAAwB,EACxB,wBAAwB,EACxB,kBAAkB,EAClB,2BAA2B,EAC3B,kBAAkB,GACnB,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import type { PipelineVisualReviewerBinding } from './claim-reviews.js';
|
|
2
|
+
import type { EvidenceMomentRef } from './evidence.js';
|
|
3
|
+
export declare const PIPELINE_VISUAL_RESULT_SCHEMA = "pipeline-visual-judgments-v1";
|
|
4
|
+
export type NativeResultSchema = typeof PIPELINE_VISUAL_RESULT_SCHEMA;
|
|
5
|
+
export interface PipelineVisualJudgment {
|
|
6
|
+
claimId: string;
|
|
7
|
+
verdict: 'confirmed' | 'rejected';
|
|
8
|
+
reason: string;
|
|
9
|
+
reviewedFiles: {
|
|
10
|
+
path: string;
|
|
11
|
+
digest: string;
|
|
12
|
+
}[];
|
|
13
|
+
moments: EvidenceMomentRef[];
|
|
14
|
+
}
|
|
15
|
+
export interface PipelineVisualJudgments {
|
|
16
|
+
schemaVersion: 1;
|
|
17
|
+
recipeRunId: string;
|
|
18
|
+
closureIdentity: string;
|
|
19
|
+
judgments: PipelineVisualJudgment[];
|
|
20
|
+
}
|
|
21
|
+
export interface NativeStructuredResult {
|
|
22
|
+
schema: NativeResultSchema;
|
|
23
|
+
value: PipelineVisualJudgments;
|
|
24
|
+
}
|
|
25
|
+
/** Gateway-captured review input; shared task files cannot supply it. */
|
|
26
|
+
export interface PipelineVisualReviewInput {
|
|
27
|
+
headSha: string;
|
|
28
|
+
recipeRunId: string;
|
|
29
|
+
closureIdentity: string;
|
|
30
|
+
artifactPrefix: string;
|
|
31
|
+
claims: Array<Omit<PipelineVisualJudgment, 'verdict' | 'reason'> & {
|
|
32
|
+
text: string;
|
|
33
|
+
}>;
|
|
34
|
+
}
|
|
35
|
+
/** Validated completed native turn retained until a matching package is prepared. */
|
|
36
|
+
export interface PipelineVisualReviewResult {
|
|
37
|
+
headSha: string;
|
|
38
|
+
binding: PipelineVisualReviewerBinding;
|
|
39
|
+
result: PipelineVisualJudgments;
|
|
40
|
+
completedAt: string;
|
|
41
|
+
}
|
|
42
|
+
/** The same schema constrains the provider and validates its completed result. */
|
|
43
|
+
export declare const PIPELINE_VISUAL_JUDGMENTS_SCHEMA: {
|
|
44
|
+
type: string;
|
|
45
|
+
additionalProperties: boolean;
|
|
46
|
+
required: string[];
|
|
47
|
+
properties: {
|
|
48
|
+
schemaVersion: {
|
|
49
|
+
type: string;
|
|
50
|
+
enum: number[];
|
|
51
|
+
};
|
|
52
|
+
recipeRunId: {
|
|
53
|
+
type: string;
|
|
54
|
+
pattern: string;
|
|
55
|
+
};
|
|
56
|
+
closureIdentity: {
|
|
57
|
+
type: string;
|
|
58
|
+
pattern: string;
|
|
59
|
+
};
|
|
60
|
+
judgments: {
|
|
61
|
+
type: string;
|
|
62
|
+
items: {
|
|
63
|
+
type: string;
|
|
64
|
+
additionalProperties: boolean;
|
|
65
|
+
required: string[];
|
|
66
|
+
properties: {
|
|
67
|
+
claimId: {
|
|
68
|
+
type: string;
|
|
69
|
+
pattern: string;
|
|
70
|
+
};
|
|
71
|
+
verdict: {
|
|
72
|
+
type: string;
|
|
73
|
+
enum: string[];
|
|
74
|
+
};
|
|
75
|
+
reason: {
|
|
76
|
+
type: string;
|
|
77
|
+
pattern: string;
|
|
78
|
+
};
|
|
79
|
+
reviewedFiles: {
|
|
80
|
+
type: string;
|
|
81
|
+
items: {
|
|
82
|
+
type: string;
|
|
83
|
+
additionalProperties: boolean;
|
|
84
|
+
required: string[];
|
|
85
|
+
properties: {
|
|
86
|
+
path: {
|
|
87
|
+
type: string;
|
|
88
|
+
pattern: string;
|
|
89
|
+
};
|
|
90
|
+
digest: {
|
|
91
|
+
type: string;
|
|
92
|
+
pattern: string;
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
moments: {
|
|
98
|
+
type: string;
|
|
99
|
+
items: {
|
|
100
|
+
type: string;
|
|
101
|
+
additionalProperties: boolean;
|
|
102
|
+
required: string[];
|
|
103
|
+
properties: {
|
|
104
|
+
recipeRunId: {
|
|
105
|
+
type: string;
|
|
106
|
+
pattern: string;
|
|
107
|
+
};
|
|
108
|
+
videoDigest: {
|
|
109
|
+
type: string;
|
|
110
|
+
pattern: string;
|
|
111
|
+
};
|
|
112
|
+
traceIndex: {
|
|
113
|
+
type: string;
|
|
114
|
+
minimum: number;
|
|
115
|
+
};
|
|
116
|
+
};
|
|
117
|
+
};
|
|
118
|
+
};
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
export declare function isNativeResultSchema(value: unknown): value is NativeResultSchema;
|
|
125
|
+
export declare function isPipelineVisualJudgments(value: unknown): value is PipelineVisualJudgments;
|
|
126
|
+
export declare function nativeStructuredResult(schema: unknown, value: unknown): NativeStructuredResult | undefined;
|
|
127
|
+
//# sourceMappingURL=pipeline-visual-judgments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline-visual-judgments.d.ts","sourceRoot":"","sources":["../../src/recipe/pipeline-visual-judgments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAExE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGvD,eAAO,MAAM,6BAA6B,iCAAiC,CAAC;AAC5E,MAAM,MAAM,kBAAkB,GAAG,OAAO,6BAA6B,CAAC;AAEtE,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,WAAW,GAAG,UAAU,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClD,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,CAAC,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,sBAAsB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,KAAK,EAAE,uBAAuB,CAAC;CAChC;AAED,yEAAyE;AACzE,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,EAAE,SAAS,GAAG,QAAQ,CAAC,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtF;AAED,qFAAqF;AACrF,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,6BAA6B,CAAC;IACvC,MAAM,EAAE,uBAAuB,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;CACrB;AAKD,kFAAkF;AAClF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4C5C,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAEhF;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,uBAAuB,CAqB1F;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,OAAO,GACb,sBAAsB,GAAG,SAAS,CAIpC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { isRecord } from './common.js';
|
|
2
|
+
import { validateRecipeParams } from './params.js';
|
|
3
|
+
export const PIPELINE_VISUAL_RESULT_SCHEMA = 'pipeline-visual-judgments-v1';
|
|
4
|
+
const text = { type: 'string', pattern: '\\S' };
|
|
5
|
+
const digest = { type: 'string', pattern: '^sha256:[a-f0-9]{64}$' };
|
|
6
|
+
/** The same schema constrains the provider and validates its completed result. */
|
|
7
|
+
export const PIPELINE_VISUAL_JUDGMENTS_SCHEMA = {
|
|
8
|
+
type: 'object',
|
|
9
|
+
additionalProperties: false,
|
|
10
|
+
required: ['schemaVersion', 'recipeRunId', 'closureIdentity', 'judgments'],
|
|
11
|
+
properties: {
|
|
12
|
+
schemaVersion: { type: 'integer', enum: [1] },
|
|
13
|
+
recipeRunId: text,
|
|
14
|
+
closureIdentity: digest,
|
|
15
|
+
judgments: {
|
|
16
|
+
type: 'array',
|
|
17
|
+
items: {
|
|
18
|
+
type: 'object',
|
|
19
|
+
additionalProperties: false,
|
|
20
|
+
required: ['claimId', 'verdict', 'reason', 'reviewedFiles', 'moments'],
|
|
21
|
+
properties: {
|
|
22
|
+
claimId: text,
|
|
23
|
+
verdict: { type: 'string', enum: ['confirmed', 'rejected'] },
|
|
24
|
+
reason: text,
|
|
25
|
+
reviewedFiles: {
|
|
26
|
+
type: 'array',
|
|
27
|
+
items: {
|
|
28
|
+
type: 'object',
|
|
29
|
+
additionalProperties: false,
|
|
30
|
+
required: ['path', 'digest'],
|
|
31
|
+
properties: { path: text, digest },
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
moments: {
|
|
35
|
+
type: 'array',
|
|
36
|
+
items: {
|
|
37
|
+
type: 'object',
|
|
38
|
+
additionalProperties: false,
|
|
39
|
+
required: ['recipeRunId', 'videoDigest', 'traceIndex'],
|
|
40
|
+
properties: {
|
|
41
|
+
recipeRunId: text,
|
|
42
|
+
videoDigest: digest,
|
|
43
|
+
traceIndex: { type: 'integer', minimum: 0 },
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
export function isNativeResultSchema(value) {
|
|
53
|
+
return value === PIPELINE_VISUAL_RESULT_SCHEMA;
|
|
54
|
+
}
|
|
55
|
+
export function isPipelineVisualJudgments(value) {
|
|
56
|
+
if (!isRecord(value) ||
|
|
57
|
+
validateRecipeParams(value, PIPELINE_VISUAL_JUDGMENTS_SCHEMA).status !== 'valid' ||
|
|
58
|
+
!Array.isArray(value.judgments))
|
|
59
|
+
return false;
|
|
60
|
+
const claims = new Set();
|
|
61
|
+
for (const row of value.judgments) {
|
|
62
|
+
if (!isRecord(row) ||
|
|
63
|
+
typeof row.claimId !== 'string' ||
|
|
64
|
+
claims.has(row.claimId) ||
|
|
65
|
+
!Array.isArray(row.reviewedFiles) ||
|
|
66
|
+
!Array.isArray(row.moments) ||
|
|
67
|
+
(!row.reviewedFiles.length && !row.moments.length))
|
|
68
|
+
return false;
|
|
69
|
+
claims.add(row.claimId);
|
|
70
|
+
}
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
export function nativeStructuredResult(schema, value) {
|
|
74
|
+
return isNativeResultSchema(schema) && isPipelineVisualJudgments(value)
|
|
75
|
+
? { schema, value }
|
|
76
|
+
: undefined;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=pipeline-visual-judgments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline-visual-judgments.js","sourceRoot":"","sources":["../../src/recipe/pipeline-visual-judgments.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { NativeResultSchema, NativeStructuredResult } from '../recipe/pipeline-visual-judgments.js';
|
|
1
2
|
/** Native sessions are opt-in. Authentication and agent execution remain runner-owned. */
|
|
2
3
|
export interface NativeSessionCapabilities {
|
|
3
4
|
modes: Array<'default' | 'plan'>;
|
|
@@ -10,6 +11,8 @@ export interface NativeSessionCapabilities {
|
|
|
10
11
|
/** Saved conversation may resume in a sibling worktree on the same execution host. */
|
|
11
12
|
resumeAcrossWorkspaces?: boolean;
|
|
12
13
|
resumeUnavailableReason?: string;
|
|
14
|
+
/** Schemas accepted and validated through provider-native constrained results. */
|
|
15
|
+
structuredResultSchemas?: NativeResultSchema[];
|
|
13
16
|
}
|
|
14
17
|
export interface NativeSessionCreateParams {
|
|
15
18
|
/** Omitted or local selects the gateway host; otherwise an authenticated execution node. */
|
|
@@ -23,6 +26,8 @@ export interface NativeSessionCreateParams {
|
|
|
23
26
|
model?: string;
|
|
24
27
|
effort?: string;
|
|
25
28
|
mode?: 'default' | 'plan';
|
|
29
|
+
/** Pipeline reviewers bind this schema before their first command. */
|
|
30
|
+
resultSchema?: NativeResultSchema;
|
|
26
31
|
/** Exact native identity, never a live TUI takeover. */
|
|
27
32
|
resumeSessionId?: string;
|
|
28
33
|
}
|
|
@@ -51,6 +56,7 @@ export interface NativeExecutionNodeDeclaration {
|
|
|
51
56
|
/** Private worker launch contract, separate from ordinary session creation. */
|
|
52
57
|
supportsWorkers?: boolean;
|
|
53
58
|
supportsWorkerStopAttestation?: boolean;
|
|
59
|
+
supportsStructuredResults?: boolean;
|
|
54
60
|
supportsProfiles?: boolean;
|
|
55
61
|
}
|
|
56
62
|
export interface NativeSessionListResult {
|
|
@@ -88,6 +94,7 @@ export interface NativeCommandReceipt {
|
|
|
88
94
|
accepted: boolean;
|
|
89
95
|
queued?: boolean;
|
|
90
96
|
outcome?: 'completed' | 'failed' | 'interrupted';
|
|
97
|
+
structuredResult?: NativeStructuredResult;
|
|
91
98
|
}
|
|
92
99
|
export interface NativeSessionResponse {
|
|
93
100
|
decision?: 'approve' | 'deny';
|
|
@@ -129,6 +136,7 @@ export interface NativeSessionInfo extends Partial<NativeProcessExitEvidence> {
|
|
|
129
136
|
model?: string;
|
|
130
137
|
mode: 'default' | 'plan';
|
|
131
138
|
accountMode: 'native';
|
|
139
|
+
resultSchema?: NativeResultSchema;
|
|
132
140
|
effort?: string;
|
|
133
141
|
/** Recovery must rebuild the trusted worker launch configuration through run controls. */
|
|
134
142
|
workerManaged?: boolean;
|
|
@@ -186,6 +194,8 @@ export interface NativeSessionEvent {
|
|
|
186
194
|
}>;
|
|
187
195
|
};
|
|
188
196
|
status?: 'completed' | 'failed' | 'interrupted';
|
|
197
|
+
/** Only a schema-bound completed provider turn may supply this value. */
|
|
198
|
+
structuredResult?: NativeStructuredResult;
|
|
189
199
|
/** Runner-specific diagnostics; clients render normalized fields above. */
|
|
190
200
|
data?: Record<string, unknown>;
|
|
191
201
|
}
|