@farmslot/protocol 0.37.0 → 0.39.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 +29 -0
- package/dist/agents/reviewer-context.d.ts +4 -4
- package/dist/agents/reviewer-context.d.ts.map +1 -1
- package/dist/agents/reviewer-context.js +10 -10
- package/dist/agents/reviewer-context.js.map +1 -1
- package/dist/agents/roles.d.ts +2 -2
- package/dist/agents/roles.d.ts.map +1 -1
- package/dist/agents/roles.js +5 -9
- package/dist/agents/roles.js.map +1 -1
- package/dist/checklist-target.d.ts +6 -6
- package/dist/checklist-target.d.ts.map +1 -1
- package/dist/checklist-target.js +11 -11
- package/dist/checklist-target.js.map +1 -1
- package/dist/contracts/acceptance.d.ts +19 -34
- package/dist/contracts/acceptance.d.ts.map +1 -1
- package/dist/contracts/acceptance.js +11 -156
- package/dist/contracts/acceptance.js.map +1 -1
- package/dist/contracts/agents.d.ts +4 -2
- package/dist/contracts/agents.d.ts.map +1 -1
- package/dist/contracts/agents.js +1 -2
- package/dist/contracts/agents.js.map +1 -1
- package/dist/contracts/analytics.d.ts +2 -2
- package/dist/contracts/analytics.d.ts.map +1 -1
- package/dist/contracts/backlog.d.ts +16 -7
- package/dist/contracts/backlog.d.ts.map +1 -1
- package/dist/contracts/backlog.js.map +1 -1
- package/dist/contracts/config.d.ts +12 -3
- package/dist/contracts/config.d.ts.map +1 -1
- package/dist/contracts/config.js +32 -0
- package/dist/contracts/config.js.map +1 -1
- package/dist/contracts/dispatch.d.ts +7 -4
- package/dist/contracts/dispatch.d.ts.map +1 -1
- package/dist/contracts/family.d.ts +2 -2
- package/dist/contracts/family.d.ts.map +1 -1
- package/dist/contracts/gate-park.d.ts +4 -1
- package/dist/contracts/gate-park.d.ts.map +1 -1
- package/dist/contracts/gate-park.js +3 -0
- package/dist/contracts/gate-park.js.map +1 -1
- package/dist/contracts/index.d.ts +1 -0
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js +1 -0
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/pr-monitoring.d.ts +9 -9
- package/dist/contracts/pr-monitoring.d.ts.map +1 -1
- package/dist/contracts/pr-rules.d.ts +5 -7
- package/dist/contracts/pr-rules.d.ts.map +1 -1
- package/dist/contracts/pr-rules.js +4 -6
- package/dist/contracts/pr-rules.js.map +1 -1
- package/dist/contracts/qa.d.ts +2 -2
- package/dist/contracts/qa.d.ts.map +1 -1
- package/dist/contracts/qa.js +5 -9
- package/dist/contracts/qa.js.map +1 -1
- package/dist/contracts/recipe-conformance.d.ts +51 -0
- package/dist/contracts/recipe-conformance.d.ts.map +1 -1
- package/dist/contracts/recipe-conformance.js +134 -1
- package/dist/contracts/recipe-conformance.js.map +1 -1
- package/dist/contracts/resources.d.ts +1 -1
- package/dist/contracts/resources.d.ts.map +1 -1
- package/dist/contracts/resources.js.map +1 -1
- package/dist/contracts/reviews.d.ts +19 -3
- package/dist/contracts/reviews.d.ts.map +1 -1
- package/dist/contracts/reviews.js +2 -2
- package/dist/contracts/reviews.js.map +1 -1
- package/dist/contracts/runner-mobile-keys.d.ts +217 -0
- package/dist/contracts/runner-mobile-keys.d.ts.map +1 -0
- package/dist/contracts/runner-mobile-keys.js +189 -0
- package/dist/contracts/runner-mobile-keys.js.map +1 -0
- package/dist/contracts/runs.d.ts +105 -91
- package/dist/contracts/runs.d.ts.map +1 -1
- package/dist/contracts/runs.js +10 -14
- package/dist/contracts/runs.js.map +1 -1
- package/dist/contracts/runtime-capabilities.d.ts +2 -0
- package/dist/contracts/runtime-capabilities.d.ts.map +1 -1
- package/dist/contracts/runtime-capabilities.js.map +1 -1
- package/dist/contracts/template-placeholders.d.ts +0 -6
- package/dist/contracts/template-placeholders.d.ts.map +1 -1
- package/dist/contracts/template-placeholders.js +22 -4
- package/dist/contracts/template-placeholders.js.map +1 -1
- package/dist/contracts/worker-terminal.d.ts +19 -0
- package/dist/contracts/worker-terminal.d.ts.map +1 -1
- package/dist/contracts/worker-terminal.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/integrations/pr-monitoring.d.ts +5 -0
- package/dist/integrations/pr-monitoring.d.ts.map +1 -1
- package/dist/integrations/pr-monitoring.js +54 -9
- package/dist/integrations/pr-monitoring.js.map +1 -1
- package/dist/integrations/pr-rule-config.d.ts.map +1 -1
- package/dist/integrations/pr-rule-config.js +21 -25
- package/dist/integrations/pr-rule-config.js.map +1 -1
- package/dist/integrations/pr-workflow-defaults.d.ts.map +1 -1
- package/dist/integrations/pr-workflow-defaults.js +2 -5
- package/dist/integrations/pr-workflow-defaults.js.map +1 -1
- package/dist/node/pack-portability.d.ts +19 -0
- package/dist/node/pack-portability.d.ts.map +1 -0
- package/dist/node/pack-portability.js +192 -0
- package/dist/node/pack-portability.js.map +1 -0
- package/dist/node/slot-by-repo.d.ts +6 -0
- package/dist/node/slot-by-repo.d.ts.map +1 -1
- package/dist/node/slot-by-repo.js +27 -15
- package/dist/node/slot-by-repo.js.map +1 -1
- package/dist/recipe/artifact.d.ts.map +1 -1
- package/dist/recipe/artifact.js +20 -4
- package/dist/recipe/artifact.js.map +1 -1
- package/dist/recipe/document.d.ts +2 -0
- package/dist/recipe/document.d.ts.map +1 -1
- package/dist/recipe/document.js +38 -35
- package/dist/recipe/document.js.map +1 -1
- package/dist/recipe/evidence.d.ts +128 -0
- package/dist/recipe/evidence.d.ts.map +1 -0
- package/dist/recipe/evidence.js +141 -0
- package/dist/recipe/evidence.js.map +1 -0
- package/dist/recipe/hud-intent.d.ts +56 -0
- package/dist/recipe/hud-intent.d.ts.map +1 -0
- package/dist/recipe/hud-intent.js +46 -0
- package/dist/recipe/hud-intent.js.map +1 -0
- package/dist/recipe/index.d.ts +4 -2
- package/dist/recipe/index.d.ts.map +1 -1
- package/dist/recipe/index.js +4 -2
- package/dist/recipe/index.js.map +1 -1
- package/dist/recipe/recording.d.ts +7 -0
- package/dist/recipe/recording.d.ts.map +1 -1
- package/dist/recipe/recording.js +48 -0
- package/dist/recipe/recording.js.map +1 -1
- package/dist/recipe/workflow.d.ts.map +1 -1
- package/dist/recipe/workflow.js +23 -1
- package/dist/recipe/workflow.js.map +1 -1
- package/dist/recipes/step-io.d.ts +8 -4
- package/dist/recipes/step-io.d.ts.map +1 -1
- package/dist/recipes/step-io.js.map +1 -1
- package/dist/rpc/copilot-runtime.d.ts +1 -1
- package/dist/rpc/copilot-runtime.d.ts.map +1 -1
- package/dist/rpc/dispatch.d.ts +10 -6
- package/dist/rpc/dispatch.d.ts.map +1 -1
- package/dist/rpc/native-session.d.ts +1 -0
- package/dist/rpc/native-session.d.ts.map +1 -1
- package/dist/rpc/native-session.js.map +1 -1
- package/dist/rpc/nodes.d.ts +15 -0
- package/dist/rpc/nodes.d.ts.map +1 -1
- package/dist/rpc/nodes.js +32 -1
- package/dist/rpc/nodes.js.map +1 -1
- package/dist/rpc/registry.d.ts +1 -0
- package/dist/rpc/registry.d.ts.map +1 -1
- package/dist/rpc/registry.js +1 -0
- package/dist/rpc/registry.js.map +1 -1
- package/dist/rpc/roadmap.d.ts +2 -0
- package/dist/rpc/roadmap.d.ts.map +1 -1
- package/dist/rpc/run.d.ts +20 -3
- package/dist/rpc/run.d.ts.map +1 -1
- package/dist/rpc/run.js +1 -0
- package/dist/rpc/run.js.map +1 -1
- package/dist/rpc/slot.d.ts +1 -0
- package/dist/rpc/slot.d.ts.map +1 -1
- package/dist/rpc/tmux.d.ts +10 -0
- package/dist/rpc/tmux.d.ts.map +1 -1
- package/dist/runs/ci-decision-context.d.ts +40 -0
- package/dist/runs/ci-decision-context.d.ts.map +1 -0
- package/dist/runs/ci-decision-context.js +129 -0
- package/dist/runs/ci-decision-context.js.map +1 -0
- package/dist/runs/decision-resolution.d.ts +37 -1
- package/dist/runs/decision-resolution.d.ts.map +1 -1
- package/dist/runs/decision-resolution.js +36 -0
- package/dist/runs/decision-resolution.js.map +1 -1
- package/dist/runs/family-iteration-ledger.js +1 -1
- package/dist/runs/family-iteration-ledger.js.map +1 -1
- package/dist/runs/publish-approval.d.ts +20 -0
- package/dist/runs/publish-approval.d.ts.map +1 -0
- package/dist/runs/publish-approval.js +29 -0
- package/dist/runs/publish-approval.js.map +1 -0
- package/dist/runs/review-chain.d.ts +2 -2
- package/dist/runs/review-chain.d.ts.map +1 -1
- package/dist/runs/review-chain.js +4 -4
- package/dist/runs/review-chain.js.map +1 -1
- package/dist/runs/review-policy.d.ts +9 -0
- package/dist/runs/review-policy.d.ts.map +1 -0
- package/dist/runs/review-policy.js +34 -0
- package/dist/runs/review-policy.js.map +1 -0
- package/dist/runs/review-retries.d.ts +10 -10
- package/dist/runs/review-retries.d.ts.map +1 -1
- package/dist/runs/review-retries.js +17 -22
- package/dist/runs/review-retries.js.map +1 -1
- package/dist/runs/slot-resolution.js +1 -1
- package/dist/runs/slot-resolution.js.map +1 -1
- package/dist/transport/signal.d.ts +3 -3
- package/dist/transport/signal.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +14 -2
- package/schemas/recipe-v1.schema.json +113 -22
- package/scripts/acceptance.d.mts +16 -0
- package/scripts/acceptance.mjs +233 -0
package/dist/recipe/document.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { addFinding, createContext, finishResult, hasOwn, isNonEmptyString, isRecord, RECIPE_PROTOCOL_SCHEMA_URL, validateOptionalStringField, } from './common.js';
|
|
2
|
+
import { normalizeRecipeClaimId, validateRecipeClaimDeclarations } from './evidence.js';
|
|
3
|
+
import { RECIPE_INTENT_MAX_LENGTH, RECIPE_INTENT_WARN_LENGTH } from './hud-intent.js';
|
|
2
4
|
import { getRecipeActionManifestActionNames, validateRecipeActionManifestDocument, } from './manifest.js';
|
|
3
5
|
import { validateRecipeParams, validateRecipeParamsSchema } from './params.js';
|
|
4
6
|
import { extractWorkflow, getRecipeActionParams, getRecipeWorkflowActionEntries, validateRecipeActionCases, validateRecipeCalls, validateWorkflowGraph, } from './workflow.js';
|
|
@@ -123,62 +125,63 @@ export function validateRecipeDocument(recipe, options) {
|
|
|
123
125
|
const workflow = extractWorkflow(ctx, recipe);
|
|
124
126
|
if (workflow) {
|
|
125
127
|
validateWorkflowGraph(ctx, workflow);
|
|
128
|
+
if (options?.lintIntent) {
|
|
129
|
+
for (const [id, node] of Object.entries(workflow.nodes)) {
|
|
130
|
+
if (typeof node.intent !== 'string')
|
|
131
|
+
continue;
|
|
132
|
+
const length = Array.from(node.intent.trim()).length;
|
|
133
|
+
if (length > RECIPE_INTENT_WARN_LENGTH) {
|
|
134
|
+
addFinding(ctx, length > RECIPE_INTENT_MAX_LENGTH ? 'error' : 'warning', 'workflow.intent_too_long', `workflow.nodes.${id}.intent`, `Intent has ${length} characters. Use one plain sentence, preferably at most ${RECIPE_INTENT_WARN_LENGTH} characters, never more than ${RECIPE_INTENT_MAX_LENGTH}.`);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
126
138
|
validateRecipeCalls(ctx, workflow, {
|
|
127
139
|
...(options?.externalRecipeIds ? { externalRecipeIds: options.externalRecipeIds } : {}),
|
|
128
140
|
skipResolution: options?.skipRecipeCallResolution === true,
|
|
129
141
|
});
|
|
130
|
-
|
|
142
|
+
const parentIds = new Set(Array.isArray(recipe.proofTargets)
|
|
143
|
+
? recipe.proofTargets
|
|
144
|
+
.filter(isRecord)
|
|
145
|
+
.filter((target) => isNonEmptyString(target.parentId))
|
|
146
|
+
.map((target) => normalizeRecipeClaimId(String(target.parentId)))
|
|
147
|
+
: []);
|
|
148
|
+
validateProofLinks(ctx, workflow.nodes, proofTargetIds, parentIds);
|
|
131
149
|
}
|
|
132
150
|
return finishResult(ctx);
|
|
133
151
|
}
|
|
134
152
|
function validateProofTargets(ctx, value) {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
if (!isRecord(target)) {
|
|
143
|
-
addFinding(ctx, 'error', 'recipe.invalid_proof_target', path, `${path} must be an object.`);
|
|
144
|
-
return;
|
|
145
|
-
}
|
|
146
|
-
for (const field of Object.keys(target)) {
|
|
147
|
-
if (field !== 'id' && field !== 'claim') {
|
|
148
|
-
addFinding(ctx, 'error', 'recipe.unsupported_proof_target_field', `${path}.${field}`, `Proof targets do not support ${field}.`);
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
if (!isNonEmptyString(target.id)) {
|
|
152
|
-
addFinding(ctx, 'error', 'recipe.invalid_proof_target_id', `${path}.id`, 'Proof target id must be a non-empty string.');
|
|
153
|
-
}
|
|
154
|
-
else if (ids.has(target.id)) {
|
|
155
|
-
addFinding(ctx, 'error', 'recipe.duplicate_proof_target', `${path}.id`, `Proof target ${target.id} is duplicated.`);
|
|
156
|
-
}
|
|
157
|
-
else {
|
|
158
|
-
ids.add(target.id);
|
|
159
|
-
}
|
|
160
|
-
if (!isNonEmptyString(target.claim)) {
|
|
161
|
-
addFinding(ctx, 'error', 'recipe.invalid_proof_target_claim', `${path}.claim`, 'Proof target claim must be a non-empty string.');
|
|
162
|
-
}
|
|
163
|
-
});
|
|
164
|
-
return ids;
|
|
153
|
+
ctx.findings.push(...validateRecipeClaimDeclarations(value).findings);
|
|
154
|
+
return new Set(Array.isArray(value)
|
|
155
|
+
? value
|
|
156
|
+
.filter(isRecord)
|
|
157
|
+
.filter((target) => isNonEmptyString(target.id))
|
|
158
|
+
.map((target) => normalizeRecipeClaimId(String(target.id)))
|
|
159
|
+
: []);
|
|
165
160
|
}
|
|
166
|
-
function validateProofLinks(ctx, nodes, declared) {
|
|
161
|
+
function validateProofLinks(ctx, nodes, declared, parents) {
|
|
167
162
|
const covered = new Set();
|
|
168
163
|
for (const [nodeId, node] of Object.entries(nodes)) {
|
|
164
|
+
if (node.action === 'call' && isRecord(node.claimBindings)) {
|
|
165
|
+
for (const target of Object.values(node.claimBindings)) {
|
|
166
|
+
if (isNonEmptyString(target) && declared.has(normalizeRecipeClaimId(target)))
|
|
167
|
+
covered.add(normalizeRecipeClaimId(target));
|
|
168
|
+
else
|
|
169
|
+
addFinding(ctx, 'error', 'recipe.undeclared_proof_target', `workflow.nodes.${nodeId}.claimBindings`, 'Claim binding must name a registered parent claim.');
|
|
170
|
+
}
|
|
171
|
+
}
|
|
169
172
|
if (!Array.isArray(node.proves))
|
|
170
173
|
continue;
|
|
171
174
|
node.proves.forEach((target, index) => {
|
|
172
175
|
if (!isNonEmptyString(target))
|
|
173
176
|
return;
|
|
174
|
-
if (!declared.has(target)) {
|
|
177
|
+
if (!declared.has(normalizeRecipeClaimId(target))) {
|
|
175
178
|
addFinding(ctx, 'error', 'recipe.undeclared_proof_target', `workflow.nodes.${nodeId}.proves[${index}]`, `Proof target ${target} is not declared by recipe.proofTargets.`);
|
|
176
179
|
}
|
|
177
|
-
covered.add(target);
|
|
180
|
+
covered.add(normalizeRecipeClaimId(target));
|
|
178
181
|
});
|
|
179
182
|
}
|
|
180
183
|
for (const target of declared) {
|
|
181
|
-
if (!covered.has(target)) {
|
|
184
|
+
if (!covered.has(target) && !parents.has(target)) {
|
|
182
185
|
addFinding(ctx, 'error', 'recipe.uncovered_proof_target', 'proofTargets', `Proof target ${target} is not covered by any workflow node.`);
|
|
183
186
|
}
|
|
184
187
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/recipe/document.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/recipe/document.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { type RecipeArtifactPackageInput, type RecipeValidationResult } from './common.js';
|
|
2
|
+
import type { RecipeRecordingTimelineDocument } from './recording.js';
|
|
3
|
+
/** Serialized target identity; resolution remains the provider's responsibility. */
|
|
4
|
+
export type RecipeRecordingTarget = {
|
|
5
|
+
kind: 'cdp-page';
|
|
6
|
+
host: string;
|
|
7
|
+
port: number;
|
|
8
|
+
targetId: string;
|
|
9
|
+
} | {
|
|
10
|
+
kind: 'android-device';
|
|
11
|
+
serial: string;
|
|
12
|
+
} | {
|
|
13
|
+
kind: 'window-id';
|
|
14
|
+
windowId: string;
|
|
15
|
+
} | {
|
|
16
|
+
kind: 'pid';
|
|
17
|
+
pid: number;
|
|
18
|
+
} | {
|
|
19
|
+
kind: 'app-window';
|
|
20
|
+
appName: string;
|
|
21
|
+
windowName: string;
|
|
22
|
+
} | {
|
|
23
|
+
kind: 'simulator';
|
|
24
|
+
device: string;
|
|
25
|
+
};
|
|
26
|
+
/** Canonical serialized identity validation for providers and lease acquisition. */
|
|
27
|
+
export declare function validateRecipeRecordingTarget(value: unknown): RecipeValidationResult;
|
|
28
|
+
/** Shared by SDK admission and the existing lease registry's declared recording binding. */
|
|
29
|
+
export declare function recordingTargetClaimKey(context: {
|
|
30
|
+
backend: string;
|
|
31
|
+
target: RecipeRecordingTarget;
|
|
32
|
+
}): string;
|
|
33
|
+
/** One policy for every recorded-evidence consumer (ADR-062). */
|
|
34
|
+
export declare const EVIDENCE_PADDING_MS = 1000;
|
|
35
|
+
export declare const RECIPE_CLAIM_KINDS: readonly ["acceptance", "qa-case", "qa-check"];
|
|
36
|
+
export declare const RECIPE_ASSERTION_ACTIONS: ReadonlySet<string>;
|
|
37
|
+
/** Declared retries retain failed attempts without turning a later successful occurrence into failure. */
|
|
38
|
+
export declare function hasUnresolvedRecipeFailure(entries: readonly unknown[]): boolean;
|
|
39
|
+
export type RecipeClaimKind = (typeof RECIPE_CLAIM_KINDS)[number];
|
|
40
|
+
export declare const RECIPE_CLAIM_VERDICTS: readonly ["proven", "weak", "missing", "untestable", "failed", "awaiting-review"];
|
|
41
|
+
export type RecipeClaimVerdict = (typeof RECIPE_CLAIM_VERDICTS)[number];
|
|
42
|
+
export type RecipeClaimProofMode = 'state' | 'visual' | 'mixed';
|
|
43
|
+
/** Extends the existing proofTargets declaration; it is not a second registry. */
|
|
44
|
+
export interface RecipeClaimDeclaration {
|
|
45
|
+
id: string;
|
|
46
|
+
claim: string;
|
|
47
|
+
kind?: RecipeClaimKind;
|
|
48
|
+
parentId?: string;
|
|
49
|
+
proofMode?: RecipeClaimProofMode;
|
|
50
|
+
}
|
|
51
|
+
/** Foreign keys only. Labels, intent and playback ranges come from the trace/timeline. */
|
|
52
|
+
export interface EvidenceMomentRef {
|
|
53
|
+
recipeRunId: string;
|
|
54
|
+
videoDigest: string;
|
|
55
|
+
traceIndex: number;
|
|
56
|
+
}
|
|
57
|
+
/** Verdict and checked references, derived once from the executed proof. */
|
|
58
|
+
export interface RecipeClaimEvidence {
|
|
59
|
+
id: string;
|
|
60
|
+
text: string;
|
|
61
|
+
kind: RecipeClaimKind;
|
|
62
|
+
parentId?: string;
|
|
63
|
+
proofMode: RecipeClaimProofMode;
|
|
64
|
+
verdict: RecipeClaimVerdict;
|
|
65
|
+
recipeNodes: string[];
|
|
66
|
+
assertionIndices: number[];
|
|
67
|
+
evidence: string[];
|
|
68
|
+
moments: EvidenceMomentRef[];
|
|
69
|
+
/** Honest timing limitations, independent of the semantic verdict. */
|
|
70
|
+
timing?: 'measured' | 'untimed' | 'outside-recording';
|
|
71
|
+
note?: string;
|
|
72
|
+
}
|
|
73
|
+
export interface RecipeClaimLedger {
|
|
74
|
+
schemaVersion: 2;
|
|
75
|
+
recipeRunId: string;
|
|
76
|
+
criteria: RecipeClaimEvidence[];
|
|
77
|
+
recording: RecordedEvidenceState;
|
|
78
|
+
judgments?: RecipeVisualJudgment[];
|
|
79
|
+
}
|
|
80
|
+
/** A gate reviewer confirms visual meaning against the exact retained moments. */
|
|
81
|
+
export interface RecipeVisualJudgment {
|
|
82
|
+
claimId: string;
|
|
83
|
+
recipeRunId: string;
|
|
84
|
+
verdict: 'confirmed' | 'rejected';
|
|
85
|
+
moments: EvidenceMomentRef[];
|
|
86
|
+
actor: string;
|
|
87
|
+
reason: string;
|
|
88
|
+
judgedAt: string;
|
|
89
|
+
}
|
|
90
|
+
/** Original media in capture order. A restart gap must never be hidden with held frames. */
|
|
91
|
+
export interface RecordingSegmentRef {
|
|
92
|
+
videoPath: string;
|
|
93
|
+
videoDigest: string;
|
|
94
|
+
timelinePath?: string;
|
|
95
|
+
gapBefore?: boolean;
|
|
96
|
+
}
|
|
97
|
+
export interface RecordedEvidencePolicy {
|
|
98
|
+
mode?: 'auto' | 'full-run' | 'off';
|
|
99
|
+
reason?: string;
|
|
100
|
+
maxFps?: number;
|
|
101
|
+
maxSize?: number;
|
|
102
|
+
maxDurationMs?: number;
|
|
103
|
+
maxBytes?: number;
|
|
104
|
+
}
|
|
105
|
+
export declare const DEFAULT_RECORDED_EVIDENCE_POLICY: {
|
|
106
|
+
readonly mode: "auto";
|
|
107
|
+
readonly maxFps: 15;
|
|
108
|
+
readonly maxSize: 1080;
|
|
109
|
+
readonly maxDurationMs: number;
|
|
110
|
+
readonly maxBytes: number;
|
|
111
|
+
};
|
|
112
|
+
export interface RecordedEvidenceState {
|
|
113
|
+
status: 'not-required' | 'explicit-off' | 'recording' | 'finalizing' | 'complete' | 'incomplete' | 'failed';
|
|
114
|
+
reason?: string;
|
|
115
|
+
segments: RecordingSegmentRef[];
|
|
116
|
+
}
|
|
117
|
+
/** Readers supply identities computed from actual bytes, not hashes copied from a manifest. */
|
|
118
|
+
export interface RecordedEvidencePackageInput extends RecipeArtifactPackageInput {
|
|
119
|
+
recipeRunId?: string;
|
|
120
|
+
artifactDigests: Readonly<Record<string, string>>;
|
|
121
|
+
timelines: Readonly<Record<string, RecipeRecordingTimelineDocument>>;
|
|
122
|
+
claims?: RecipeClaimLedger;
|
|
123
|
+
/** Retained execution-input snapshot; task registration comes from this, never the verdict file. */
|
|
124
|
+
invocation?: unknown;
|
|
125
|
+
}
|
|
126
|
+
export declare function normalizeRecipeClaimId(id: string): string;
|
|
127
|
+
export declare function validateRecipeClaimDeclarations(value: unknown): RecipeValidationResult;
|
|
128
|
+
//# sourceMappingURL=evidence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../src/recipe/evidence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { ACCEPTANCE_VERDICTS } from '../contracts/acceptance.js';
|
|
2
|
+
import { addFinding, createContext, finishResult, isNonEmptyString, isRecord, } from './common.js';
|
|
3
|
+
import { digestRecipeDocument } from './digest.js';
|
|
4
|
+
/** Canonical serialized identity validation for providers and lease acquisition. */
|
|
5
|
+
export function validateRecipeRecordingTarget(value) {
|
|
6
|
+
const context = createContext();
|
|
7
|
+
const issue = (path, message) => addFinding(context, 'error', 'recording_target.invalid', path, message);
|
|
8
|
+
if (!isRecord(value)) {
|
|
9
|
+
issue('$', 'Recording target must be an object.');
|
|
10
|
+
return finishResult(context);
|
|
11
|
+
}
|
|
12
|
+
const fields = {
|
|
13
|
+
'cdp-page': ['host', 'port', 'targetId'],
|
|
14
|
+
'android-device': ['serial'],
|
|
15
|
+
'window-id': ['windowId'],
|
|
16
|
+
pid: ['pid'],
|
|
17
|
+
'app-window': ['appName', 'windowName'],
|
|
18
|
+
simulator: ['device'],
|
|
19
|
+
};
|
|
20
|
+
const required = typeof value.kind === 'string' && Object.hasOwn(fields, value.kind)
|
|
21
|
+
? fields[value.kind]
|
|
22
|
+
: undefined;
|
|
23
|
+
if (!required) {
|
|
24
|
+
issue('kind', 'Unknown recording target kind.');
|
|
25
|
+
return finishResult(context);
|
|
26
|
+
}
|
|
27
|
+
for (const field of Object.keys(value)) {
|
|
28
|
+
if (field !== 'kind' && !required.includes(field))
|
|
29
|
+
issue(field, 'Unknown recording target field.');
|
|
30
|
+
}
|
|
31
|
+
for (const field of required) {
|
|
32
|
+
if (field === 'pid' || field === 'port') {
|
|
33
|
+
const number = value[field];
|
|
34
|
+
if (typeof number !== 'number' ||
|
|
35
|
+
!Number.isSafeInteger(number) ||
|
|
36
|
+
number < 1 ||
|
|
37
|
+
(field === 'port' && number > 65_535))
|
|
38
|
+
issue(field, `Recording ${field} must be a positive integer${field === 'port' ? ' at most 65535' : ''}.`);
|
|
39
|
+
}
|
|
40
|
+
else if (!isNonEmptyString(value[field])) {
|
|
41
|
+
issue(field, `Recording ${field} must be non-empty.`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return finishResult(context);
|
|
45
|
+
}
|
|
46
|
+
/** Shared by SDK admission and the existing lease registry's declared recording binding. */
|
|
47
|
+
export function recordingTargetClaimKey(context) {
|
|
48
|
+
const validation = validateRecipeRecordingTarget(context.target);
|
|
49
|
+
if (!isNonEmptyString(context.backend) || validation.status !== 'valid')
|
|
50
|
+
throw new TypeError(`Invalid recording identity: ${validation.findings.map((finding) => finding.message).join('; ') || 'Backend must be non-empty.'}`);
|
|
51
|
+
return `recording/${context.backend}/${digestRecipeDocument(context.target)}`;
|
|
52
|
+
}
|
|
53
|
+
/** One policy for every recorded-evidence consumer (ADR-062). */
|
|
54
|
+
export const EVIDENCE_PADDING_MS = 1_000;
|
|
55
|
+
export const RECIPE_CLAIM_KINDS = ['acceptance', 'qa-case', 'qa-check'];
|
|
56
|
+
export const RECIPE_ASSERTION_ACTIONS = new Set([
|
|
57
|
+
'assert_output',
|
|
58
|
+
'assert_json',
|
|
59
|
+
'ui.wait_for',
|
|
60
|
+
]);
|
|
61
|
+
/** Declared retries retain failed attempts without turning a later successful occurrence into failure. */
|
|
62
|
+
export function hasUnresolvedRecipeFailure(entries) {
|
|
63
|
+
return entries.some((entry, index) => {
|
|
64
|
+
if (!isRecord(entry) || entry.ok !== false)
|
|
65
|
+
return false;
|
|
66
|
+
if (!isNonEmptyString(entry.retryGroup) || !RECIPE_ASSERTION_ACTIONS.has(String(entry.action)))
|
|
67
|
+
return true;
|
|
68
|
+
const later = entries
|
|
69
|
+
.slice(index + 1)
|
|
70
|
+
.filter(isRecord)
|
|
71
|
+
.filter((candidate) => candidate.nodeId === entry.nodeId && candidate.retryGroup === entry.retryGroup);
|
|
72
|
+
return later.at(-1)?.ok !== true;
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
export const RECIPE_CLAIM_VERDICTS = ACCEPTANCE_VERDICTS;
|
|
76
|
+
export const DEFAULT_RECORDED_EVIDENCE_POLICY = {
|
|
77
|
+
mode: 'auto',
|
|
78
|
+
maxFps: 15,
|
|
79
|
+
maxSize: 1_080,
|
|
80
|
+
maxDurationMs: 120 * 60 * 1_000,
|
|
81
|
+
maxBytes: 1_024 * 1_024 * 1_024,
|
|
82
|
+
};
|
|
83
|
+
export function normalizeRecipeClaimId(id) {
|
|
84
|
+
const match = /^AC-?([1-9][0-9]*)$/iu.exec(id);
|
|
85
|
+
return match ? `AC-${match[1]}` : id;
|
|
86
|
+
}
|
|
87
|
+
export function validateRecipeClaimDeclarations(value) {
|
|
88
|
+
const context = createContext();
|
|
89
|
+
const issue = (path, message) => addFinding(context, 'error', 'recipe.invalid_claim', path, message);
|
|
90
|
+
if (!Array.isArray(value)) {
|
|
91
|
+
issue('proofTargets', 'proofTargets must be an array.');
|
|
92
|
+
return finishResult(context);
|
|
93
|
+
}
|
|
94
|
+
const declarations = new Map();
|
|
95
|
+
for (const [index, target] of value.entries()) {
|
|
96
|
+
const path = `proofTargets[${index}]`;
|
|
97
|
+
if (!isRecord(target)) {
|
|
98
|
+
issue(path, 'A claim must be an object.');
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
for (const field of Object.keys(target)) {
|
|
102
|
+
if (!['id', 'claim', 'kind', 'parentId', 'proofMode'].includes(field))
|
|
103
|
+
issue(`${path}.${field}`, 'Unknown claim declaration field.');
|
|
104
|
+
}
|
|
105
|
+
if (!isNonEmptyString(target.id) || !isNonEmptyString(target.claim)) {
|
|
106
|
+
issue(path, 'A claim requires a non-empty id and expectation text.');
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
const id = normalizeRecipeClaimId(target.id);
|
|
110
|
+
if (declarations.has(id))
|
|
111
|
+
issue(`${path}.id`, `Duplicate registered claim ${id}.`);
|
|
112
|
+
else
|
|
113
|
+
declarations.set(id, typeof target.parentId === 'string' ? target.parentId : undefined);
|
|
114
|
+
if (target.kind !== undefined && !RECIPE_CLAIM_KINDS.some((kind) => kind === target.kind))
|
|
115
|
+
issue(`${path}.kind`, 'Unknown claim kind.');
|
|
116
|
+
if (target.parentId !== undefined && !isNonEmptyString(target.parentId))
|
|
117
|
+
issue(`${path}.parentId`, 'Parent claim id must be non-empty.');
|
|
118
|
+
if (target.proofMode !== undefined &&
|
|
119
|
+
!['state', 'visual', 'mixed'].includes(String(target.proofMode)))
|
|
120
|
+
issue(`${path}.proofMode`, 'Unknown claim proof mode.');
|
|
121
|
+
}
|
|
122
|
+
for (const [id, declaredParent] of declarations) {
|
|
123
|
+
const ancestors = new Set([id]);
|
|
124
|
+
let parent = declaredParent ? normalizeRecipeClaimId(declaredParent) : undefined;
|
|
125
|
+
while (parent) {
|
|
126
|
+
if (!declarations.has(parent)) {
|
|
127
|
+
issue(`proofTargets.${id}.parentId`, `Unknown parent claim ${parent}.`);
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
if (ancestors.has(parent)) {
|
|
131
|
+
issue(`proofTargets.${id}.parentId`, 'Claim parent relationship is cyclic.');
|
|
132
|
+
break;
|
|
133
|
+
}
|
|
134
|
+
ancestors.add(parent);
|
|
135
|
+
const nextParent = declarations.get(parent);
|
|
136
|
+
parent = nextParent ? normalizeRecipeClaimId(nextParent) : undefined;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return finishResult(context);
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=evidence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../src/recipe/evidence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/** Display limits apply after font layout, never by cutting authored copy. */
|
|
2
|
+
export declare const HUD_INTENT_MAX_LINES = 2;
|
|
3
|
+
export declare const HUD_INTENT_LINE_HEIGHT = 16;
|
|
4
|
+
export declare const RECIPE_INTENT_WARN_LENGTH = 80;
|
|
5
|
+
export declare const RECIPE_INTENT_MAX_LENGTH = 120;
|
|
6
|
+
export declare const HUD_PANEL_BOUNDS: {
|
|
7
|
+
readonly native: {
|
|
8
|
+
readonly maxWidth: 360;
|
|
9
|
+
readonly maxHeight: 88;
|
|
10
|
+
};
|
|
11
|
+
readonly card: {
|
|
12
|
+
readonly maxWidth: 360;
|
|
13
|
+
readonly maxHeight: 144;
|
|
14
|
+
};
|
|
15
|
+
readonly bar: {
|
|
16
|
+
readonly maxWidth: 960;
|
|
17
|
+
readonly maxHeight: 144;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
export declare function hudIntentDisplay(value: string | number | null | undefined, platform?: keyof typeof HUD_PANEL_BOUNDS): {
|
|
21
|
+
text: string;
|
|
22
|
+
panel: {
|
|
23
|
+
readonly maxWidth: 360;
|
|
24
|
+
readonly maxHeight: 88;
|
|
25
|
+
} | {
|
|
26
|
+
readonly maxWidth: 360;
|
|
27
|
+
readonly maxHeight: 144;
|
|
28
|
+
} | {
|
|
29
|
+
readonly maxWidth: 960;
|
|
30
|
+
readonly maxHeight: 144;
|
|
31
|
+
};
|
|
32
|
+
nativeProps: {
|
|
33
|
+
numberOfLines: number;
|
|
34
|
+
ellipsizeMode: "tail";
|
|
35
|
+
allowFontScaling: boolean;
|
|
36
|
+
};
|
|
37
|
+
nativeStyle: {
|
|
38
|
+
lineHeight: number;
|
|
39
|
+
maxHeight: number;
|
|
40
|
+
fontSize: number;
|
|
41
|
+
};
|
|
42
|
+
webStyle: {
|
|
43
|
+
display: string;
|
|
44
|
+
WebkitBoxOrient: string;
|
|
45
|
+
WebkitLineClamp: string;
|
|
46
|
+
whiteSpace: string;
|
|
47
|
+
overflowWrap: string;
|
|
48
|
+
overflow: string;
|
|
49
|
+
textOverflow: string;
|
|
50
|
+
lineHeight: string;
|
|
51
|
+
maxHeight: string;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
/** Existing metadata/error cap; intent always uses the uncut display model. */
|
|
55
|
+
export declare function hudSecondaryText(value: string | number | null | undefined, max?: number): string;
|
|
56
|
+
//# sourceMappingURL=hud-intent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hud-intent.d.ts","sourceRoot":"","sources":["../../src/recipe/hud-intent.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAC5C,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAC5C,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;CAInB,CAAC;AAEX,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EACzC,QAAQ,GAAE,MAAM,OAAO,gBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BjD;AAED,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG,SAAM,GAAG,MAAM,CAI7F"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/** Display limits apply after font layout, never by cutting authored copy. */
|
|
2
|
+
export const HUD_INTENT_MAX_LINES = 2;
|
|
3
|
+
export const HUD_INTENT_LINE_HEIGHT = 16;
|
|
4
|
+
export const RECIPE_INTENT_WARN_LENGTH = 80;
|
|
5
|
+
export const RECIPE_INTENT_MAX_LENGTH = 120;
|
|
6
|
+
export const HUD_PANEL_BOUNDS = {
|
|
7
|
+
native: { maxWidth: 360, maxHeight: 88 },
|
|
8
|
+
card: { maxWidth: 360, maxHeight: 144 },
|
|
9
|
+
bar: { maxWidth: 960, maxHeight: 144 },
|
|
10
|
+
};
|
|
11
|
+
export function hudIntentDisplay(value, platform = 'card') {
|
|
12
|
+
return {
|
|
13
|
+
text: String(value ?? '')
|
|
14
|
+
.replace(/\s+/gu, ' ')
|
|
15
|
+
.trim(),
|
|
16
|
+
panel: HUD_PANEL_BOUNDS[platform],
|
|
17
|
+
nativeProps: {
|
|
18
|
+
numberOfLines: HUD_INTENT_MAX_LINES,
|
|
19
|
+
ellipsizeMode: 'tail',
|
|
20
|
+
allowFontScaling: false,
|
|
21
|
+
},
|
|
22
|
+
nativeStyle: {
|
|
23
|
+
lineHeight: HUD_INTENT_LINE_HEIGHT,
|
|
24
|
+
maxHeight: HUD_INTENT_LINE_HEIGHT * HUD_INTENT_MAX_LINES,
|
|
25
|
+
fontSize: 12,
|
|
26
|
+
},
|
|
27
|
+
webStyle: {
|
|
28
|
+
display: '-webkit-box',
|
|
29
|
+
WebkitBoxOrient: 'vertical',
|
|
30
|
+
WebkitLineClamp: String(HUD_INTENT_MAX_LINES),
|
|
31
|
+
whiteSpace: 'normal',
|
|
32
|
+
overflowWrap: 'anywhere',
|
|
33
|
+
overflow: 'hidden',
|
|
34
|
+
textOverflow: 'ellipsis',
|
|
35
|
+
lineHeight: `${HUD_INTENT_LINE_HEIGHT}px`,
|
|
36
|
+
maxHeight: `${HUD_INTENT_LINE_HEIGHT * HUD_INTENT_MAX_LINES}px`,
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/** Existing metadata/error cap; intent always uses the uncut display model. */
|
|
41
|
+
export function hudSecondaryText(value, max = 180) {
|
|
42
|
+
const text = hudIntentDisplay(value).text;
|
|
43
|
+
const characters = Array.from(text);
|
|
44
|
+
return characters.length > max ? `${characters.slice(0, max - 1).join('')}…` : text;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=hud-intent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hud-intent.js","sourceRoot":"","sources":["../../src/recipe/hud-intent.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AACtC,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AACzC,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAC5C,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAC5C,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,MAAM,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE;IACxC,IAAI,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE;IACvC,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE;CAC9B,CAAC;AAEX,MAAM,UAAU,gBAAgB,CAC9B,KAAyC,EACzC,WAA0C,MAAM;IAEhD,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;aACtB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;aACrB,IAAI,EAAE;QACT,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC;QACjC,WAAW,EAAE;YACX,aAAa,EAAE,oBAAoB;YACnC,aAAa,EAAE,MAAe;YAC9B,gBAAgB,EAAE,KAAK;SACxB;QACD,WAAW,EAAE;YACX,UAAU,EAAE,sBAAsB;YAClC,SAAS,EAAE,sBAAsB,GAAG,oBAAoB;YACxD,QAAQ,EAAE,EAAE;SACb;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,aAAa;YACtB,eAAe,EAAE,UAAU;YAC3B,eAAe,EAAE,MAAM,CAAC,oBAAoB,CAAC;YAC7C,UAAU,EAAE,QAAQ;YACpB,YAAY,EAAE,UAAU;YACxB,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,UAAU;YACxB,UAAU,EAAE,GAAG,sBAAsB,IAAI;YACzC,SAAS,EAAE,GAAG,sBAAsB,GAAG,oBAAoB,IAAI;SAChE;KACF,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,gBAAgB,CAAC,KAAyC,EAAE,GAAG,GAAG,GAAG;IACnF,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;IAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACtF,CAAC"}
|
package/dist/recipe/index.d.ts
CHANGED
|
@@ -3,11 +3,13 @@ export { BUILT_IN_UI_OBSERVERS, type BuiltInUiObserverRef, isRecord, OFFICIAL_RE
|
|
|
3
3
|
export { recipeProtocolSchemaUrlForVersion } from './common.js';
|
|
4
4
|
export { canonicalRecipeJson, digestRecipeDocument, resolvedRecipeArtifactPath } from './digest.js';
|
|
5
5
|
export { type RecipeDocumentValidationOptions, validateRecipeDocument, validateRecipeWithManifest, validateResolvedRecipeActionNode, } from './document.js';
|
|
6
|
+
export { DEFAULT_RECORDED_EVIDENCE_POLICY, EVIDENCE_PADDING_MS, type EvidenceMomentRef, hasUnresolvedRecipeFailure, normalizeRecipeClaimId, RECIPE_ASSERTION_ACTIONS, RECIPE_CLAIM_KINDS, RECIPE_CLAIM_VERDICTS, type RecipeClaimDeclaration, type RecipeClaimEvidence, type RecipeClaimKind, type RecipeClaimLedger, type RecipeClaimProofMode, type RecipeClaimVerdict, type RecipeRecordingTarget, type RecipeVisualJudgment, type RecordedEvidencePackageInput, type RecordedEvidencePolicy, type RecordedEvidenceState, type RecordingSegmentRef, recordingTargetClaimKey, validateRecipeClaimDeclarations, validateRecipeRecordingTarget, } from './evidence.js';
|
|
7
|
+
export { HUD_INTENT_LINE_HEIGHT, HUD_INTENT_MAX_LINES, HUD_PANEL_BOUNDS, hudIntentDisplay, hudSecondaryText, RECIPE_INTENT_MAX_LENGTH, RECIPE_INTENT_WARN_LENGTH, } from './hud-intent.js';
|
|
6
8
|
export { getRecipeActionManifestActionNames, validateRecipeActionManifestDocument, } from './manifest.js';
|
|
7
9
|
export { applyRecipeParamDefaults, validateRecipeParams, validateRecipeParamsSchema, } from './params.js';
|
|
8
|
-
export { type RecipeRecordingMarker, type RecipeRecordingTimelineDocument, type RecipeVideoTiming, validateRecipeRecordingTimelineDocument, } from './recording.js';
|
|
10
|
+
export { type RecipeRecordingMarker, type RecipeRecordingTimelineBinding, type RecipeRecordingTimelineDocument, type RecipeVideoTiming, validateRecipeRecordingTimelineBinding, validateRecipeRecordingTimelineDocument, } from './recording.js';
|
|
9
11
|
export { CAPTURE_EVIDENCE_INCOMPLETE, CAPTURE_INTERRUPTED_REASON, digestRecipeSuiteScope, RECIPE_SUITE_EVIDENCE_INCOMPLETE_REASONS, RECIPE_SUITE_NON_EXECUTION_REASONS, RECIPE_SUITE_RESULT_SCHEMA_URL, RECIPE_SUITE_SCOPE_SCHEMA_URL, type RecipeSuiteEvidenceIncomplete, type RecipeSuiteEvidenceIncompleteReason, type RecipeSuiteNonExecutionReason, type RecipeSuiteNonExecutionResolution, type RecipeSuitePackageInput, type RecipeSuiteResolution, type RecipeSuiteResultDocument, type RecipeSuiteScopeCase, type RecipeSuiteScopeDocument, type RecipeSuiteVerdictResolution, type RecipeSuiteVerdictStatus, validateRecipeSuitePackage, validateRecipeSuiteResultDocument, validateRecipeSuiteScopeDocument, } from './suite.js';
|
|
10
12
|
export { findUnsupportedRecipeTemplates, parseRecipeTemplate, type RecipeTemplateReference, type RecipeTemplateSource, replaceRecipeTemplates, } from './template.js';
|
|
11
13
|
export { DEFAULT_UNTRUSTED_RECIPE_BLOCKED_CAPABILITIES, officialRecipeActionCapabilities, RECIPE_EXECUTION_CAPABILITIES, type RecipeExecutionApproval, type RecipeExecutionCapability, type RecipeExecutionPlan, type RecipePlanNode, type RecipeSourceKind, type RecipeSourceProvenance, type RecipeSourceTrust, type RecipeTrustFailure, } from './trust.js';
|
|
12
|
-
export { getRecipeCallRefs, getRecipeWorkflowActions, getRecipeWorkflowNodeIds, isDynamicRecipeRef, normalizeRecipeRef, } from './workflow.js';
|
|
14
|
+
export { getRecipeCallRefs, getRecipeWorkflowActionEntries, getRecipeWorkflowActions, getRecipeWorkflowNodeIds, isDynamicRecipeRef, normalizeRecipeRef, } from './workflow.js';
|
|
13
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
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,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,sBAAsB,EACtB,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kCAAkC,EAClC,oCAAoC,GACrC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,+BAA+B,EACpC,KAAK,iBAAiB,EACtB,uCAAuC,GACxC,MAAM,gBAAgB,CAAC;AACxB,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,wBAAwB,EACxB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,eAAe,CAAC"}
|
|
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,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,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,gBAAgB,EAChB,wBAAwB,EACxB,yBAAyB,GAC1B,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,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,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,kBAAkB,GACnB,MAAM,eAAe,CAAC"}
|
package/dist/recipe/index.js
CHANGED
|
@@ -3,11 +3,13 @@ export { BUILT_IN_UI_OBSERVERS, isRecord, OFFICIAL_RECIPE_ACTIONS, RECIPE_ACTION
|
|
|
3
3
|
export { recipeProtocolSchemaUrlForVersion } from './common.js';
|
|
4
4
|
export { canonicalRecipeJson, digestRecipeDocument, resolvedRecipeArtifactPath } from './digest.js';
|
|
5
5
|
export { validateRecipeDocument, validateRecipeWithManifest, validateResolvedRecipeActionNode, } from './document.js';
|
|
6
|
+
export { DEFAULT_RECORDED_EVIDENCE_POLICY, EVIDENCE_PADDING_MS, hasUnresolvedRecipeFailure, normalizeRecipeClaimId, RECIPE_ASSERTION_ACTIONS, RECIPE_CLAIM_KINDS, RECIPE_CLAIM_VERDICTS, recordingTargetClaimKey, validateRecipeClaimDeclarations, validateRecipeRecordingTarget, } from './evidence.js';
|
|
7
|
+
export { HUD_INTENT_LINE_HEIGHT, HUD_INTENT_MAX_LINES, HUD_PANEL_BOUNDS, hudIntentDisplay, hudSecondaryText, RECIPE_INTENT_MAX_LENGTH, RECIPE_INTENT_WARN_LENGTH, } from './hud-intent.js';
|
|
6
8
|
export { getRecipeActionManifestActionNames, validateRecipeActionManifestDocument, } from './manifest.js';
|
|
7
9
|
export { applyRecipeParamDefaults, validateRecipeParams, validateRecipeParamsSchema, } from './params.js';
|
|
8
|
-
export { validateRecipeRecordingTimelineDocument, } from './recording.js';
|
|
10
|
+
export { validateRecipeRecordingTimelineBinding, validateRecipeRecordingTimelineDocument, } from './recording.js';
|
|
9
11
|
export { CAPTURE_EVIDENCE_INCOMPLETE, CAPTURE_INTERRUPTED_REASON, digestRecipeSuiteScope, RECIPE_SUITE_EVIDENCE_INCOMPLETE_REASONS, RECIPE_SUITE_NON_EXECUTION_REASONS, RECIPE_SUITE_RESULT_SCHEMA_URL, RECIPE_SUITE_SCOPE_SCHEMA_URL, validateRecipeSuitePackage, validateRecipeSuiteResultDocument, validateRecipeSuiteScopeDocument, } from './suite.js';
|
|
10
12
|
export { findUnsupportedRecipeTemplates, parseRecipeTemplate, replaceRecipeTemplates, } from './template.js';
|
|
11
13
|
export { DEFAULT_UNTRUSTED_RECIPE_BLOCKED_CAPABILITIES, officialRecipeActionCapabilities, RECIPE_EXECUTION_CAPABILITIES, } from './trust.js';
|
|
12
|
-
export { getRecipeCallRefs, getRecipeWorkflowActions, getRecipeWorkflowNodeIds, isDynamicRecipeRef, normalizeRecipeRef, } from './workflow.js';
|
|
14
|
+
export { getRecipeCallRefs, getRecipeWorkflowActionEntries, getRecipeWorkflowActions, getRecipeWorkflowNodeIds, isDynamicRecipeRef, normalizeRecipeRef, } from './workflow.js';
|
|
13
15
|
//# sourceMappingURL=index.js.map
|
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,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,sBAAsB,EACtB,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kCAAkC,EAClC,oCAAoC,GACrC,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AACrB,OAAO,
|
|
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,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,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,gBAAgB,EAChB,wBAAwB,EACxB,yBAAyB,GAC1B,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,OAAO,EAKL,sCAAsC,EACtC,uCAAuC,GACxC,MAAM,gBAAgB,CAAC;AACxB,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,kBAAkB,GACnB,MAAM,eAAe,CAAC"}
|
|
@@ -31,5 +31,12 @@ export interface RecipeRecordingTimelineDocument extends RecipeVideoTiming {
|
|
|
31
31
|
traceDigest: string;
|
|
32
32
|
markers: RecipeRecordingMarker[];
|
|
33
33
|
}
|
|
34
|
+
export interface RecipeRecordingTimelineBinding {
|
|
35
|
+
videoPath: string;
|
|
36
|
+
videoDigest: string;
|
|
37
|
+
trace: unknown;
|
|
38
|
+
}
|
|
39
|
+
/** Shared identity check previously owned by the desktop player. No clock precision policy. */
|
|
40
|
+
export declare function validateRecipeRecordingTimelineBinding(value: unknown, binding: RecipeRecordingTimelineBinding): RecipeValidationResult;
|
|
34
41
|
export declare function validateRecipeRecordingTimelineDocument(value: unknown): RecipeValidationResult;
|
|
35
42
|
//# sourceMappingURL=recording.d.ts.map
|