@riddledc/riddle-proof 0.8.78 → 0.8.80
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -0
- package/dist/advanced/index.d.cts +1 -1
- package/dist/advanced/index.d.ts +1 -1
- package/dist/advanced/proof-run-engine.d.cts +1 -1
- package/dist/advanced/proof-run-engine.d.ts +1 -1
- package/dist/change-proof.js +2 -2
- package/dist/{chunk-7N6X54WG.js → chunk-6T6ZAK77.js} +1 -1
- package/dist/{chunk-RQPCKRKT.js → chunk-A4EF4M3B.js} +1 -1
- package/dist/{chunk-6VFS2JFR.js → chunk-IL7MLYB5.js} +1 -1
- package/dist/{chunk-HSGZV2NK.js → chunk-N7EETHYG.js} +20 -5
- package/dist/{chunk-FCSJZBC5.js → chunk-ZNVYJFR7.js} +341 -4
- package/dist/cli/index.js +5 -5
- package/dist/cli.cjs +354 -5
- package/dist/cli.js +5 -5
- package/dist/index.cjs +344 -4
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +10 -4
- package/dist/pr-comment.js +3 -3
- package/dist/profile/index.cjs +344 -4
- package/dist/profile/index.d.cts +1 -1
- package/dist/profile/index.d.ts +1 -1
- package/dist/profile/index.js +7 -1
- package/dist/profile-suggestions.js +2 -2
- package/dist/profile.cjs +344 -4
- package/dist/profile.d.cts +38 -3
- package/dist/profile.d.ts +38 -3
- package/dist/profile.js +7 -1
- package/dist/{proof-run-engine-DmUqh7Cw.d.cts → proof-run-engine-Baiv6l3A.d.cts} +3 -3
- package/dist/{proof-run-engine-CsQshTUX.d.ts → proof-run-engine-MiKZt9oY.d.ts} +3 -3
- package/dist/proof-run-engine.d.cts +1 -1
- package/dist/proof-run-engine.d.ts +1 -1
- package/examples/profiles/ordered-trace.json +58 -0
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -3428,6 +3428,7 @@ __export(index_exports, {
|
|
|
3428
3428
|
RIDDLE_PROOF_HANDOFF_RECEIPT_VERSION: () => RIDDLE_PROOF_HANDOFF_RECEIPT_VERSION,
|
|
3429
3429
|
RIDDLE_PROOF_HOSTED_PROFILE_ARTIFACTS: () => RIDDLE_PROOF_HOSTED_PROFILE_ARTIFACTS,
|
|
3430
3430
|
RIDDLE_PROOF_OBSERVATION_RECEIPT_VERSION: () => RIDDLE_PROOF_OBSERVATION_RECEIPT_VERSION,
|
|
3431
|
+
RIDDLE_PROOF_ORDERED_TRACE_OPERATORS: () => RIDDLE_PROOF_ORDERED_TRACE_OPERATORS,
|
|
3431
3432
|
RIDDLE_PROOF_PLAYABILITY_ASSESSMENT_VERSION: () => RIDDLE_PROOF_PLAYABILITY_ASSESSMENT_VERSION,
|
|
3432
3433
|
RIDDLE_PROOF_PLAYABILITY_VERSION: () => RIDDLE_PROOF_PLAYABILITY_VERSION,
|
|
3433
3434
|
RIDDLE_PROOF_PROFILE_CHECK_TYPES: () => RIDDLE_PROOF_PROFILE_CHECK_TYPES,
|
|
@@ -3458,6 +3459,8 @@ __export(index_exports, {
|
|
|
3458
3459
|
assessBasicGameplayRoute: () => assessBasicGameplayRoute,
|
|
3459
3460
|
assessPlayabilityEvidence: () => assessPlayabilityEvidence,
|
|
3460
3461
|
assessRiddleProofChange: () => assessRiddleProofChange,
|
|
3462
|
+
assessRiddleProofOrderedTrace: () => assessRiddleProofOrderedTrace,
|
|
3463
|
+
assessRiddleProofOrderedTraceSetupResults: () => assessRiddleProofOrderedTraceSetupResults,
|
|
3461
3464
|
assessRiddleProofProfileArtifactCompleteness: () => assessRiddleProofProfileArtifactCompleteness,
|
|
3462
3465
|
assessRiddleProofProfileEvidence: () => assessRiddleProofProfileEvidence,
|
|
3463
3466
|
attachBasicGameplayArtifactScreenshotHashes: () => attachBasicGameplayArtifactScreenshotHashes,
|
|
@@ -10205,6 +10208,7 @@ var RIDDLE_PROOF_PROFILE_CHECK_TYPES = [
|
|
|
10205
10208
|
"selector_text_visible",
|
|
10206
10209
|
"selector_text_absent",
|
|
10207
10210
|
"selector_text_order",
|
|
10211
|
+
"ordered_trace",
|
|
10208
10212
|
"observe_within",
|
|
10209
10213
|
"frame_text_visible",
|
|
10210
10214
|
"frame_url_equals",
|
|
@@ -10268,6 +10272,21 @@ var RIDDLE_PROOF_PROFILE_NETWORK_ABORT_ERROR_CODES = [
|
|
|
10268
10272
|
"timedout",
|
|
10269
10273
|
"failed"
|
|
10270
10274
|
];
|
|
10275
|
+
var RIDDLE_PROOF_ORDERED_TRACE_OPERATORS = [
|
|
10276
|
+
"exists",
|
|
10277
|
+
"equals",
|
|
10278
|
+
"not_equals",
|
|
10279
|
+
"truthy",
|
|
10280
|
+
"falsy",
|
|
10281
|
+
"gt",
|
|
10282
|
+
"gte",
|
|
10283
|
+
"lt",
|
|
10284
|
+
"lte",
|
|
10285
|
+
"abs_gt",
|
|
10286
|
+
"abs_gte",
|
|
10287
|
+
"abs_lt",
|
|
10288
|
+
"abs_lte"
|
|
10289
|
+
];
|
|
10271
10290
|
function uniqueNonEmptyStrings(values) {
|
|
10272
10291
|
const seen = /* @__PURE__ */ new Set();
|
|
10273
10292
|
const result = [];
|
|
@@ -10559,6 +10578,185 @@ function resolveJsonPath(root, path6) {
|
|
|
10559
10578
|
}
|
|
10560
10579
|
return { exists: true, value: current };
|
|
10561
10580
|
}
|
|
10581
|
+
function assessRiddleProofOrderedTrace(trace, events) {
|
|
10582
|
+
const insufficient = (reason, traceLength = Array.isArray(trace) ? trace.length : 0, witnesses2 = [], missingEvent, missingPaths) => ({
|
|
10583
|
+
version: "riddle-proof.ordered-trace-assessment.v1",
|
|
10584
|
+
status: "proof_insufficient",
|
|
10585
|
+
trace_length: traceLength,
|
|
10586
|
+
witnesses: witnesses2,
|
|
10587
|
+
missing_event: missingEvent,
|
|
10588
|
+
missing_paths: missingPaths,
|
|
10589
|
+
reason
|
|
10590
|
+
});
|
|
10591
|
+
const parsePath = (path6) => {
|
|
10592
|
+
const segments = [];
|
|
10593
|
+
let token = "";
|
|
10594
|
+
const pushToken = () => {
|
|
10595
|
+
const value = token.trim();
|
|
10596
|
+
if (value) segments.push(value);
|
|
10597
|
+
token = "";
|
|
10598
|
+
};
|
|
10599
|
+
for (let index = 0; index < path6.length; index += 1) {
|
|
10600
|
+
const char = path6[index];
|
|
10601
|
+
if (char === ".") {
|
|
10602
|
+
pushToken();
|
|
10603
|
+
continue;
|
|
10604
|
+
}
|
|
10605
|
+
if (char !== "[") {
|
|
10606
|
+
token += char;
|
|
10607
|
+
continue;
|
|
10608
|
+
}
|
|
10609
|
+
pushToken();
|
|
10610
|
+
const closeIndex = path6.indexOf("]", index + 1);
|
|
10611
|
+
if (closeIndex === -1) throw new Error(`unterminated bracket at ${index}`);
|
|
10612
|
+
const bracket = path6.slice(index + 1, closeIndex).trim();
|
|
10613
|
+
if (!bracket) throw new Error(`empty bracket at ${index}`);
|
|
10614
|
+
if (/^\d+$/.test(bracket)) {
|
|
10615
|
+
segments.push(Number(bracket));
|
|
10616
|
+
} else {
|
|
10617
|
+
segments.push(bracket.replace(/^['"]|['"]$/g, ""));
|
|
10618
|
+
}
|
|
10619
|
+
index = closeIndex;
|
|
10620
|
+
}
|
|
10621
|
+
pushToken();
|
|
10622
|
+
return segments;
|
|
10623
|
+
};
|
|
10624
|
+
const resolve = (root, path6) => {
|
|
10625
|
+
let segments;
|
|
10626
|
+
try {
|
|
10627
|
+
segments = parsePath(path6);
|
|
10628
|
+
} catch {
|
|
10629
|
+
return { exists: false };
|
|
10630
|
+
}
|
|
10631
|
+
let current = root;
|
|
10632
|
+
for (const segment of segments) {
|
|
10633
|
+
if (Array.isArray(current)) {
|
|
10634
|
+
const index = typeof segment === "number" ? segment : /^\d+$/.test(segment) ? Number(segment) : -1;
|
|
10635
|
+
if (index < 0 || index >= current.length) return { exists: false };
|
|
10636
|
+
current = current[index];
|
|
10637
|
+
continue;
|
|
10638
|
+
}
|
|
10639
|
+
if (typeof segment !== "string" || current === null || typeof current !== "object") return { exists: false };
|
|
10640
|
+
if (!Object.hasOwn(current, segment)) return { exists: false };
|
|
10641
|
+
current = current[segment];
|
|
10642
|
+
}
|
|
10643
|
+
return { exists: true, value: current };
|
|
10644
|
+
};
|
|
10645
|
+
const valuesEqual = (left, right) => {
|
|
10646
|
+
if (Object.is(left, right)) return true;
|
|
10647
|
+
if (Array.isArray(left) || Array.isArray(right)) {
|
|
10648
|
+
return Array.isArray(left) && Array.isArray(right) && left.length === right.length && left.every((value, index) => valuesEqual(value, right[index]));
|
|
10649
|
+
}
|
|
10650
|
+
if (left === null || right === null || typeof left !== "object" || typeof right !== "object") return false;
|
|
10651
|
+
const leftRecord = left;
|
|
10652
|
+
const rightRecord = right;
|
|
10653
|
+
const leftKeys = Object.keys(leftRecord).sort();
|
|
10654
|
+
const rightKeys = Object.keys(rightRecord).sort();
|
|
10655
|
+
return leftKeys.length === rightKeys.length && leftKeys.every((key, index) => key === rightKeys[index] && valuesEqual(leftRecord[key], rightRecord[key]));
|
|
10656
|
+
};
|
|
10657
|
+
const numericOperator = (op) => [
|
|
10658
|
+
"gt",
|
|
10659
|
+
"gte",
|
|
10660
|
+
"lt",
|
|
10661
|
+
"lte",
|
|
10662
|
+
"abs_gt",
|
|
10663
|
+
"abs_gte",
|
|
10664
|
+
"abs_lt",
|
|
10665
|
+
"abs_lte"
|
|
10666
|
+
].includes(op);
|
|
10667
|
+
const matches = (value, predicate) => {
|
|
10668
|
+
if (predicate.op === "exists") return true;
|
|
10669
|
+
if (predicate.op === "equals") return valuesEqual(value, predicate.value);
|
|
10670
|
+
if (predicate.op === "not_equals") return !valuesEqual(value, predicate.value);
|
|
10671
|
+
if (predicate.op === "truthy") return Boolean(value);
|
|
10672
|
+
if (predicate.op === "falsy") return !value;
|
|
10673
|
+
const observed = typeof value === "number" ? value : Number.NaN;
|
|
10674
|
+
const expected = typeof predicate.value === "number" ? predicate.value : Number.NaN;
|
|
10675
|
+
if (!Number.isFinite(observed) || !Number.isFinite(expected)) return false;
|
|
10676
|
+
const candidate = predicate.op.startsWith("abs_") ? Math.abs(observed) : observed;
|
|
10677
|
+
if (predicate.op === "gt" || predicate.op === "abs_gt") return candidate > expected;
|
|
10678
|
+
if (predicate.op === "gte" || predicate.op === "abs_gte") return candidate >= expected;
|
|
10679
|
+
if (predicate.op === "lt" || predicate.op === "abs_lt") return candidate < expected;
|
|
10680
|
+
return candidate <= expected;
|
|
10681
|
+
};
|
|
10682
|
+
if (!Array.isArray(trace) || trace.length === 0) return insufficient("trace_missing_or_empty");
|
|
10683
|
+
if (!Array.isArray(events) || events.length === 0) return insufficient("events_missing", trace.length);
|
|
10684
|
+
for (const event of events) {
|
|
10685
|
+
const missingPaths = event.predicates.filter((predicate) => !trace.some((sample) => {
|
|
10686
|
+
const resolved = resolve(sample, predicate.path);
|
|
10687
|
+
return resolved.exists && (!numericOperator(predicate.op) || typeof resolved.value === "number" && Number.isFinite(resolved.value));
|
|
10688
|
+
})).map((predicate) => predicate.path);
|
|
10689
|
+
if (missingPaths.length) {
|
|
10690
|
+
return insufficient("required_trace_field_missing", trace.length, [], event.label, Array.from(new Set(missingPaths)));
|
|
10691
|
+
}
|
|
10692
|
+
}
|
|
10693
|
+
const witnesses = [];
|
|
10694
|
+
let cursor = 0;
|
|
10695
|
+
for (const event of events) {
|
|
10696
|
+
let witnessIndex = -1;
|
|
10697
|
+
for (let index = cursor; index < trace.length; index += 1) {
|
|
10698
|
+
if (event.predicates.every((predicate) => {
|
|
10699
|
+
const resolved = resolve(trace[index], predicate.path);
|
|
10700
|
+
return resolved.exists && matches(resolved.value, predicate);
|
|
10701
|
+
})) {
|
|
10702
|
+
witnessIndex = index;
|
|
10703
|
+
break;
|
|
10704
|
+
}
|
|
10705
|
+
}
|
|
10706
|
+
if (witnessIndex < 0) {
|
|
10707
|
+
return {
|
|
10708
|
+
version: "riddle-proof.ordered-trace-assessment.v1",
|
|
10709
|
+
status: "failed",
|
|
10710
|
+
trace_length: trace.length,
|
|
10711
|
+
witnesses,
|
|
10712
|
+
missing_event: event.label,
|
|
10713
|
+
reason: "ordered_event_not_observed"
|
|
10714
|
+
};
|
|
10715
|
+
}
|
|
10716
|
+
witnesses.push({
|
|
10717
|
+
label: event.label,
|
|
10718
|
+
index: witnessIndex,
|
|
10719
|
+
observations: event.predicates.map((predicate) => {
|
|
10720
|
+
const observed = resolve(trace[witnessIndex], predicate.path).value;
|
|
10721
|
+
return {
|
|
10722
|
+
path: predicate.path,
|
|
10723
|
+
op: predicate.op,
|
|
10724
|
+
expected: predicate.value,
|
|
10725
|
+
observed
|
|
10726
|
+
};
|
|
10727
|
+
})
|
|
10728
|
+
});
|
|
10729
|
+
cursor = witnessIndex + 1;
|
|
10730
|
+
}
|
|
10731
|
+
return {
|
|
10732
|
+
version: "riddle-proof.ordered-trace-assessment.v1",
|
|
10733
|
+
status: "passed",
|
|
10734
|
+
trace_length: trace.length,
|
|
10735
|
+
witnesses
|
|
10736
|
+
};
|
|
10737
|
+
}
|
|
10738
|
+
function assessRiddleProofOrderedTraceSetupResults(results, setupActionLabel, tracePath, events) {
|
|
10739
|
+
const insufficient = (reason) => ({
|
|
10740
|
+
version: "riddle-proof.ordered-trace-assessment.v1",
|
|
10741
|
+
status: "proof_insufficient",
|
|
10742
|
+
trace_length: 0,
|
|
10743
|
+
witnesses: [],
|
|
10744
|
+
reason
|
|
10745
|
+
});
|
|
10746
|
+
if (!Array.isArray(results)) return insufficient("setup_results_missing");
|
|
10747
|
+
const source = results.find((item) => item && typeof item === "object" && !Array.isArray(item) && item.label === setupActionLabel);
|
|
10748
|
+
if (!source) return insufficient("setup_action_result_missing");
|
|
10749
|
+
if (!Object.hasOwn(source, "returned")) return insufficient("setup_action_return_missing");
|
|
10750
|
+
const segments = tracePath.split(".").map((segment) => segment.trim()).filter(Boolean);
|
|
10751
|
+
let trace = source.returned;
|
|
10752
|
+
for (const segment of segments) {
|
|
10753
|
+
if (trace === null || typeof trace !== "object" || Array.isArray(trace) || !Object.hasOwn(trace, segment)) {
|
|
10754
|
+
return insufficient("trace_path_missing");
|
|
10755
|
+
}
|
|
10756
|
+
trace = trace[segment];
|
|
10757
|
+
}
|
|
10758
|
+
return assessRiddleProofOrderedTrace(trace, events);
|
|
10759
|
+
}
|
|
10562
10760
|
function evaluateHttpStatusBodyJsonAssertion(root, assertion) {
|
|
10563
10761
|
const resolved = resolveJsonPath(root, assertion.path);
|
|
10564
10762
|
const errors = [];
|
|
@@ -10665,6 +10863,7 @@ function profileSetupWindowCallReceipts(results) {
|
|
|
10665
10863
|
return results.filter((result) => profileSetupResultAction(result) === "window_call").map((result) => {
|
|
10666
10864
|
const receipt = {
|
|
10667
10865
|
ordinal: result.ordinal ?? null,
|
|
10866
|
+
label: result.label ?? null,
|
|
10668
10867
|
ok: result.ok !== false,
|
|
10669
10868
|
path: result.path ?? null,
|
|
10670
10869
|
return_captured: result.return_captured ?? null,
|
|
@@ -10683,6 +10882,7 @@ function profileSetupWindowEvalReceipts(results) {
|
|
|
10683
10882
|
return results.filter((result) => profileSetupResultAction(result) === "window_eval").map((result) => {
|
|
10684
10883
|
const receipt = {
|
|
10685
10884
|
ordinal: result.ordinal ?? null,
|
|
10885
|
+
label: result.label ?? null,
|
|
10686
10886
|
ok: result.ok !== false,
|
|
10687
10887
|
script_length: result.script_length ?? null,
|
|
10688
10888
|
return_captured: result.return_captured ?? null,
|
|
@@ -11955,6 +12155,51 @@ function dialogCountFieldForCheckType(type) {
|
|
|
11955
12155
|
if (type === "dialog_dismiss_count_equals") return "dialog_dismiss_count";
|
|
11956
12156
|
return "dialog_count";
|
|
11957
12157
|
}
|
|
12158
|
+
function normalizeOrderedTraceEvents(value, label) {
|
|
12159
|
+
if (value === void 0) return void 0;
|
|
12160
|
+
if (!Array.isArray(value) || !value.length) throw new Error(`${label} must be a non-empty array.`);
|
|
12161
|
+
const seenLabels = /* @__PURE__ */ new Set();
|
|
12162
|
+
return value.map((item, eventIndex) => {
|
|
12163
|
+
const eventLabel = `${label}[${eventIndex}]`;
|
|
12164
|
+
if (!isRecord2(item)) throw new Error(`${eventLabel} must be an object.`);
|
|
12165
|
+
const name = stringFromOwn(item, "label", "name", "event");
|
|
12166
|
+
if (!name) throw new Error(`${eventLabel}.label is required.`);
|
|
12167
|
+
if (seenLabels.has(name)) throw new Error(`${eventLabel}.label must be unique.`);
|
|
12168
|
+
seenLabels.add(name);
|
|
12169
|
+
const predicatesInput = item.predicates ?? item.all ?? item.where;
|
|
12170
|
+
if (!Array.isArray(predicatesInput) || !predicatesInput.length) {
|
|
12171
|
+
throw new Error(`${eventLabel}.predicates must be a non-empty array.`);
|
|
12172
|
+
}
|
|
12173
|
+
const predicates = predicatesInput.map((predicateInput, predicateIndex) => {
|
|
12174
|
+
const predicateLabel = `${eventLabel}.predicates[${predicateIndex}]`;
|
|
12175
|
+
if (!isRecord2(predicateInput)) throw new Error(`${predicateLabel} must be an object.`);
|
|
12176
|
+
const path6 = stringFromOwn(predicateInput, "path", "field", "key");
|
|
12177
|
+
if (!path6) throw new Error(`${predicateLabel}.path is required.`);
|
|
12178
|
+
const op = stringFromOwn(predicateInput, "op", "operator");
|
|
12179
|
+
if (!op || !RIDDLE_PROOF_ORDERED_TRACE_OPERATORS.includes(op)) {
|
|
12180
|
+
throw new Error(`${predicateLabel}.op must be one of ${RIDDLE_PROOF_ORDERED_TRACE_OPERATORS.join(", ")}.`);
|
|
12181
|
+
}
|
|
12182
|
+
const requiresValue = !["exists", "truthy", "falsy"].includes(op);
|
|
12183
|
+
const hasValue = hasOwn(predicateInput, "value") || hasOwn(predicateInput, "expected");
|
|
12184
|
+
if (requiresValue && !hasValue) throw new Error(`${predicateLabel}.value is required for ${op}.`);
|
|
12185
|
+
const value2 = hasOwn(predicateInput, "value") ? predicateInput.value : predicateInput.expected;
|
|
12186
|
+
if (["gt", "gte", "lt", "lte", "abs_gt", "abs_gte", "abs_lt", "abs_lte"].includes(op)) {
|
|
12187
|
+
if (typeof value2 !== "number" || !Number.isFinite(value2)) {
|
|
12188
|
+
throw new Error(`${predicateLabel}.value must be a finite number for ${op}.`);
|
|
12189
|
+
}
|
|
12190
|
+
if (op.startsWith("abs_") && value2 < 0) {
|
|
12191
|
+
throw new Error(`${predicateLabel}.value must be non-negative for ${op}.`);
|
|
12192
|
+
}
|
|
12193
|
+
}
|
|
12194
|
+
return {
|
|
12195
|
+
path: path6,
|
|
12196
|
+
op,
|
|
12197
|
+
value: requiresValue ? toJsonValue(value2) : void 0
|
|
12198
|
+
};
|
|
12199
|
+
});
|
|
12200
|
+
return { label: name, predicates };
|
|
12201
|
+
});
|
|
12202
|
+
}
|
|
11958
12203
|
function normalizeCheck(input, index) {
|
|
11959
12204
|
if (!isRecord2(input)) throw new Error(`checks[${index}] must be an object.`);
|
|
11960
12205
|
const type = stringValue6(input.type);
|
|
@@ -12005,6 +12250,17 @@ function normalizeCheck(input, index) {
|
|
|
12005
12250
|
if (!stringValue6(input.selector)) throw new Error(`checks[${index}] selector_text_order requires selector.`);
|
|
12006
12251
|
if (!expectedTexts?.length) throw new Error(`checks[${index}] selector_text_order requires expected_texts.`);
|
|
12007
12252
|
}
|
|
12253
|
+
const setupActionLabel = stringFromOwn(input, "setup_action_label", "setupActionLabel", "source_action_label", "sourceActionLabel");
|
|
12254
|
+
const tracePath = stringFromOwn(input, "trace_path", "tracePath", "path");
|
|
12255
|
+
const orderedTraceEvents = normalizeOrderedTraceEvents(
|
|
12256
|
+
input.events ?? input.sequence ?? input.ordered_events ?? input.orderedEvents,
|
|
12257
|
+
`checks[${index}].events`
|
|
12258
|
+
);
|
|
12259
|
+
if (type === "ordered_trace") {
|
|
12260
|
+
if (!setupActionLabel) throw new Error(`checks[${index}] ordered_trace requires setup_action_label.`);
|
|
12261
|
+
if (!tracePath) throw new Error(`checks[${index}] ordered_trace requires trace_path.`);
|
|
12262
|
+
if (!orderedTraceEvents?.length) throw new Error(`checks[${index}] ordered_trace requires events.`);
|
|
12263
|
+
}
|
|
12008
12264
|
const expectedRoutes = normalizeRouteInventoryRoutes(input.expected_routes ?? input.expectedRoutes, index);
|
|
12009
12265
|
if (type === "route_inventory" && !expectedRoutes?.length) {
|
|
12010
12266
|
throw new Error(`checks[${index}] route_inventory requires expected_routes.`);
|
|
@@ -12077,6 +12333,9 @@ function normalizeCheck(input, index) {
|
|
|
12077
12333
|
body_not_patterns: bodyNotPatterns,
|
|
12078
12334
|
body_json_assertions: bodyJsonAssertions,
|
|
12079
12335
|
expected_texts: expectedTexts,
|
|
12336
|
+
setup_action_label: type === "ordered_trace" ? setupActionLabel : void 0,
|
|
12337
|
+
trace_path: type === "ordered_trace" ? tracePath : void 0,
|
|
12338
|
+
events: type === "ordered_trace" ? orderedTraceEvents : void 0,
|
|
12080
12339
|
link_selector: stringValue6(input.link_selector) || stringValue6(input.linkSelector),
|
|
12081
12340
|
source_selector: stringValue6(input.source_selector) || stringValue6(input.sourceSelector),
|
|
12082
12341
|
route_path_prefix: stringValue6(input.route_path_prefix) || stringValue6(input.routePathPrefix),
|
|
@@ -12143,6 +12402,20 @@ function normalizeRiddleProofProfile(input, options = {}) {
|
|
|
12143
12402
|
const targetUrl = stringValue6(options.url) || stringValue6(targetInput.url);
|
|
12144
12403
|
const route = stringValue6(options.route) || stringValue6(targetInput.route);
|
|
12145
12404
|
if (!targetUrl && !route) throw new Error("profile.target requires url or route, or pass --url.");
|
|
12405
|
+
const setupActions = normalizeSetupActions(targetInput.setup_actions ?? targetInput.setupActions);
|
|
12406
|
+
for (const [index, check] of checks.entries()) {
|
|
12407
|
+
if (check.type !== "ordered_trace") continue;
|
|
12408
|
+
const matches = (setupActions || []).filter((action) => action.label === check.setup_action_label);
|
|
12409
|
+
if (matches.length !== 1) {
|
|
12410
|
+
throw new Error(`checks[${index}] ordered_trace setup_action_label must match exactly one target.setup_actions label.`);
|
|
12411
|
+
}
|
|
12412
|
+
if (!["window_eval", "window_call", "window_call_until"].includes(matches[0].type)) {
|
|
12413
|
+
throw new Error(`checks[${index}] ordered_trace source action must capture a window_eval, window_call, or window_call_until return.`);
|
|
12414
|
+
}
|
|
12415
|
+
if (matches[0].capture_return === false) {
|
|
12416
|
+
throw new Error(`checks[${index}] ordered_trace source action must not set capture_return to false.`);
|
|
12417
|
+
}
|
|
12418
|
+
}
|
|
12146
12419
|
return {
|
|
12147
12420
|
version: RIDDLE_PROOF_PROFILE_VERSION,
|
|
12148
12421
|
name: normalizeName(input.name, "riddle-proof-profile"),
|
|
@@ -12155,7 +12428,7 @@ function normalizeRiddleProofProfile(input, options = {}) {
|
|
|
12155
12428
|
wait_for_selector: stringValue6(targetInput.wait_for_selector) || stringValue6(targetInput.waitForSelector),
|
|
12156
12429
|
wait_ms: numberValue4(targetInput.wait_ms) ?? numberValue4(targetInput.waitMs),
|
|
12157
12430
|
screenshot_full_page: normalizeTargetScreenshotFullPage(targetInput),
|
|
12158
|
-
setup_actions:
|
|
12431
|
+
setup_actions: setupActions,
|
|
12159
12432
|
network_mocks: normalizeNetworkMocks(targetInput.network_mocks ?? targetInput.networkMocks)
|
|
12160
12433
|
},
|
|
12161
12434
|
checks,
|
|
@@ -13168,6 +13441,32 @@ function assessCheckFromEvidence(check, evidence) {
|
|
|
13168
13441
|
message: failed ? `Selector ${key} text order failed in ${failed} viewport(s).` : void 0
|
|
13169
13442
|
};
|
|
13170
13443
|
}
|
|
13444
|
+
if (check.type === "ordered_trace") {
|
|
13445
|
+
const assessments = viewports.map((viewport) => ({
|
|
13446
|
+
viewport: viewport.name,
|
|
13447
|
+
assessment: assessRiddleProofOrderedTraceSetupResults(
|
|
13448
|
+
viewport.setup_action_results,
|
|
13449
|
+
check.setup_action_label || "",
|
|
13450
|
+
check.trace_path || "",
|
|
13451
|
+
check.events || []
|
|
13452
|
+
)
|
|
13453
|
+
}));
|
|
13454
|
+
const insufficient = assessments.filter((item) => item.assessment.status === "proof_insufficient");
|
|
13455
|
+
const failed = assessments.filter((item) => item.assessment.status === "failed");
|
|
13456
|
+
const status = insufficient.length ? "proof_insufficient" : failed.length ? "failed" : "passed";
|
|
13457
|
+
return {
|
|
13458
|
+
type: check.type,
|
|
13459
|
+
label: checkLabel(check),
|
|
13460
|
+
status,
|
|
13461
|
+
evidence: {
|
|
13462
|
+
setup_action_label: check.setup_action_label || "",
|
|
13463
|
+
trace_path: check.trace_path || "",
|
|
13464
|
+
events: toJsonValue((check.events || []).map((event) => event.label)),
|
|
13465
|
+
viewports: toJsonValue(assessments)
|
|
13466
|
+
},
|
|
13467
|
+
message: insufficient.length ? `Ordered trace evidence was insufficient in ${insufficient.length} viewport(s).` : failed.length ? `Ordered trace did not contain the required event sequence in ${failed.length} viewport(s).` : void 0
|
|
13468
|
+
};
|
|
13469
|
+
}
|
|
13171
13470
|
if (check.type === "observe_within") {
|
|
13172
13471
|
const key = observeWithinKey(check);
|
|
13173
13472
|
const timeoutMs = observeWithinTimeoutMs(check);
|
|
@@ -13667,6 +13966,7 @@ function profileStatusFromEvidence(profile, evidence, checks) {
|
|
|
13667
13966
|
if (!viewports.length || !checks.length) return "proof_insufficient";
|
|
13668
13967
|
if (viewports.some((viewport) => viewport.navigation_error)) return "environment_blocked";
|
|
13669
13968
|
if (expectedViewportCount && viewports.length < expectedViewportCount) return "proof_insufficient";
|
|
13969
|
+
if (checks.some((check) => check.status === "proof_insufficient")) return "proof_insufficient";
|
|
13670
13970
|
if (checks.some((check) => check.status === "needs_human_review")) return "needs_human_review";
|
|
13671
13971
|
if (checks.some((check) => check.status === "failed")) return "product_regression";
|
|
13672
13972
|
return "passed";
|
|
@@ -13996,8 +14296,12 @@ function createRiddleProofProfileInsufficientResult(input) {
|
|
|
13996
14296
|
error: message
|
|
13997
14297
|
};
|
|
13998
14298
|
}
|
|
13999
|
-
function runtimeScriptAssessmentSource() {
|
|
14299
|
+
function runtimeScriptAssessmentSource(includeOrderedTrace = false) {
|
|
14300
|
+
const orderedTraceSource = includeOrderedTrace ? String.raw`
|
|
14301
|
+
const assessRiddleProofOrderedTrace = ${assessRiddleProofOrderedTrace.toString()};
|
|
14302
|
+
const assessRiddleProofOrderedTraceSetupResults = ${assessRiddleProofOrderedTraceSetupResults.toString()};` : "";
|
|
14000
14303
|
return String.raw`
|
|
14304
|
+
${orderedTraceSource}
|
|
14001
14305
|
function normalizeRoutePath(path) {
|
|
14002
14306
|
const value = path || "/";
|
|
14003
14307
|
if (value === "/") return "/";
|
|
@@ -14827,6 +15131,7 @@ function profileSetupWindowCallReceipts(results) {
|
|
|
14827
15131
|
.map((result) => {
|
|
14828
15132
|
const receipt = {
|
|
14829
15133
|
ordinal: result.ordinal ?? null,
|
|
15134
|
+
label: result.label ?? null,
|
|
14830
15135
|
ok: result.ok !== false,
|
|
14831
15136
|
path: result.path ?? null,
|
|
14832
15137
|
return_captured: result.return_captured ?? null,
|
|
@@ -14847,6 +15152,7 @@ function profileSetupWindowEvalReceipts(results) {
|
|
|
14847
15152
|
.map((result) => {
|
|
14848
15153
|
const receipt = {
|
|
14849
15154
|
ordinal: result.ordinal ?? null,
|
|
15155
|
+
label: result.label ?? null,
|
|
14850
15156
|
ok: result.ok !== false,
|
|
14851
15157
|
script_length: result.script_length ?? null,
|
|
14852
15158
|
return_captured: result.return_captured ?? null,
|
|
@@ -15662,6 +15968,36 @@ function assessProfile(profile, evidence) {
|
|
|
15662
15968
|
});
|
|
15663
15969
|
continue;
|
|
15664
15970
|
}
|
|
15971
|
+
if (check.type === "ordered_trace") {
|
|
15972
|
+
const assessments = checkViewports.map((viewport) => ({
|
|
15973
|
+
viewport: viewport.name,
|
|
15974
|
+
assessment: assessRiddleProofOrderedTraceSetupResults(
|
|
15975
|
+
viewport.setup_action_results,
|
|
15976
|
+
check.setup_action_label || "",
|
|
15977
|
+
check.trace_path || "",
|
|
15978
|
+
check.events || [],
|
|
15979
|
+
),
|
|
15980
|
+
}));
|
|
15981
|
+
const insufficient = assessments.filter((item) => item.assessment.status === "proof_insufficient");
|
|
15982
|
+
const failed = assessments.filter((item) => item.assessment.status === "failed");
|
|
15983
|
+
checks.push({
|
|
15984
|
+
type: check.type,
|
|
15985
|
+
label: check.label || check.type,
|
|
15986
|
+
status: insufficient.length ? "proof_insufficient" : failed.length ? "failed" : "passed",
|
|
15987
|
+
evidence: {
|
|
15988
|
+
setup_action_label: check.setup_action_label || "",
|
|
15989
|
+
trace_path: check.trace_path || "",
|
|
15990
|
+
events: (check.events || []).map((event) => event.label),
|
|
15991
|
+
viewports: assessments,
|
|
15992
|
+
},
|
|
15993
|
+
message: insufficient.length
|
|
15994
|
+
? "Ordered trace evidence was insufficient in " + insufficient.length + " viewport(s)."
|
|
15995
|
+
: failed.length
|
|
15996
|
+
? "Ordered trace did not contain the required event sequence in " + failed.length + " viewport(s)."
|
|
15997
|
+
: undefined,
|
|
15998
|
+
});
|
|
15999
|
+
continue;
|
|
16000
|
+
}
|
|
15665
16001
|
if (check.type === "observe_within") {
|
|
15666
16002
|
const key = observeWithinKey(check);
|
|
15667
16003
|
const timeoutMs = observeWithinTimeoutMs(check);
|
|
@@ -16018,6 +16354,7 @@ function assessProfile(profile, evidence) {
|
|
|
16018
16354
|
if (!viewports.length || !checks.length) status = "proof_insufficient";
|
|
16019
16355
|
else if (viewports.some((viewport) => viewport.navigation_error)) status = "environment_blocked";
|
|
16020
16356
|
else if (expectedViewportCount && viewports.length < expectedViewportCount) status = "proof_insufficient";
|
|
16357
|
+
else if (checks.some((check) => check.status === "proof_insufficient")) status = "proof_insufficient";
|
|
16021
16358
|
else if (checks.some((check) => check.status === "needs_human_review")) status = "needs_human_review";
|
|
16022
16359
|
else if (checks.some((check) => check.status === "failed")) status = "product_regression";
|
|
16023
16360
|
const screenshotLabels = profileScreenshotLabels(viewports);
|
|
@@ -16949,7 +17286,7 @@ let activeViewportName = null;
|
|
|
16949
17286
|
async function executeSetupAction(action, ordinal, viewport) {
|
|
16950
17287
|
const type = setupActionType(action);
|
|
16951
17288
|
const frameSelector = setupFrameSelector(action);
|
|
16952
|
-
const base = { ok: false, action: type || "unknown", ordinal, selector: action.selector || null, frame_selector: frameSelector || null, optional: action.optional === true };
|
|
17289
|
+
const base = { ok: false, action: type || "unknown", ordinal, label: action.label || null, selector: action.selector || null, frame_selector: frameSelector || null, optional: action.optional === true };
|
|
16953
17290
|
const timeout = setupNumber(action.timeout_ms, 5000);
|
|
16954
17291
|
try {
|
|
16955
17292
|
if (type === "wait") {
|
|
@@ -19601,7 +19938,7 @@ async function captureViewport(viewport) {
|
|
|
19601
19938
|
wait_error: waitError,
|
|
19602
19939
|
};
|
|
19603
19940
|
}
|
|
19604
|
-
${runtimeScriptAssessmentSource()}
|
|
19941
|
+
${runtimeScriptAssessmentSource(profile.checks.some((check) => check.type === "ordered_trace"))}
|
|
19605
19942
|
const viewports = [];
|
|
19606
19943
|
function buildProfileEvidence(currentViewports) {
|
|
19607
19944
|
const expectedViewportCount = (profile.target.viewports || []).length;
|
|
@@ -22261,6 +22598,7 @@ function buildRiddleProofPrCommentMarkdown(input) {
|
|
|
22261
22598
|
RIDDLE_PROOF_HANDOFF_RECEIPT_VERSION,
|
|
22262
22599
|
RIDDLE_PROOF_HOSTED_PROFILE_ARTIFACTS,
|
|
22263
22600
|
RIDDLE_PROOF_OBSERVATION_RECEIPT_VERSION,
|
|
22601
|
+
RIDDLE_PROOF_ORDERED_TRACE_OPERATORS,
|
|
22264
22602
|
RIDDLE_PROOF_PLAYABILITY_ASSESSMENT_VERSION,
|
|
22265
22603
|
RIDDLE_PROOF_PLAYABILITY_VERSION,
|
|
22266
22604
|
RIDDLE_PROOF_PROFILE_CHECK_TYPES,
|
|
@@ -22291,6 +22629,8 @@ function buildRiddleProofPrCommentMarkdown(input) {
|
|
|
22291
22629
|
assessBasicGameplayRoute,
|
|
22292
22630
|
assessPlayabilityEvidence,
|
|
22293
22631
|
assessRiddleProofChange,
|
|
22632
|
+
assessRiddleProofOrderedTrace,
|
|
22633
|
+
assessRiddleProofOrderedTraceSetupResults,
|
|
22294
22634
|
assessRiddleProofProfileArtifactCompleteness,
|
|
22295
22635
|
assessRiddleProofProfileEvidence,
|
|
22296
22636
|
attachBasicGameplayArtifactScreenshotHashes,
|
package/dist/index.d.cts
CHANGED
|
@@ -11,7 +11,7 @@ export { CreateCaptureDiagnosticInput, DEFAULT_DIAGNOSTIC_ARRAY_LIMIT, DEFAULT_D
|
|
|
11
11
|
export { BuildVisualProofSessionInput, RIDDLE_PROOF_VISUAL_SESSION_FINGERPRINT_VERSION, RIDDLE_PROOF_VISUAL_SESSION_VERSION, VisualProofSessionMismatch, buildVisualProofSession, compareVisualProofSessionFingerprint, parseVisualProofSession, visualSessionFingerprint, visualSessionFingerprintBasis } from './proof-session.cjs';
|
|
12
12
|
export { AssessPlayabilityOptions, RIDDLE_PROOF_PLAYABILITY_ASSESSMENT_VERSION, RIDDLE_PROOF_PLAYABILITY_VERSION, RiddleProofPlayabilityAssessment, RiddleProofPlayabilityEvidence, assessPlayabilityEvidence, extractPlayabilityEvidence, isRiddleProofPlayabilityMode } from './playability.cjs';
|
|
13
13
|
export { AssessBasicGameplayOptions, AttachBasicGameplayArtifactOptions, BASIC_GAMEPLAY_ACTION_TYPES, BASIC_GAMEPLAY_PROGRESS_CHECK_TYPES, BasicGameplayActionResult, BasicGameplayActionType, BasicGameplayArtifactResolution, BasicGameplayAssessmentSummary, BasicGameplayBoundsOffender, BasicGameplayCanvasState, BasicGameplayCatchRecord, BasicGameplayChangeSummary, BasicGameplayFailureCode, BasicGameplayFixReference, BasicGameplayMetric, BasicGameplayMobileEvidence, BasicGameplayProgressCheckType, BasicGameplayProgressionCheck, BasicGameplayProofArtifact, BasicGameplayResponsiveViewportEvidence, BasicGameplayRouteReference, BasicGameplaySnapshot, BasicGameplaySuiteFailure, BasicGameplayWarningCode, CreateBasicGameplayCatchSummaryInput, RIDDLE_PROOF_BASIC_GAMEPLAY_ASSESSMENT_VERSION, RIDDLE_PROOF_BASIC_GAMEPLAY_CATCH_VERSION, RIDDLE_PROOF_BASIC_GAMEPLAY_VERSION, RiddleProofBasicGameplayAssessment, RiddleProofBasicGameplayCatchSummary, RiddleProofBasicGameplayEvidence, RiddleProofBasicGameplayRouteAssessment, RiddleProofBasicGameplayRouteEvidence, assessBasicGameplayEvidence, assessBasicGameplayProgressionCheck, assessBasicGameplayProgressionChecks, assessBasicGameplayRoute, attachBasicGameplayArtifactScreenshotHashes, augmentBasicGameplayAssessmentWithProgressionChecks, compactBasicGameplayText, createBasicGameplayCatchRecords, createBasicGameplayCatchSummary, extractBasicGameplayEvidence, resolveBasicGameplayProgressionCheckWithArtifactScreenshots, sanitizeBasicGameplayJsonString } from './basic-gameplay.cjs';
|
|
14
|
-
export { NormalizeRiddleProofProfileOptions, RIDDLE_PROOF_HOSTED_PROFILE_ARTIFACTS, RIDDLE_PROOF_PROFILE_CHECK_TYPES, RIDDLE_PROOF_PROFILE_EVIDENCE_VERSION, RIDDLE_PROOF_PROFILE_NETWORK_ABORT_ERROR_CODES, RIDDLE_PROOF_PROFILE_RESULT_VERSION, RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES, RIDDLE_PROOF_PROFILE_STATUSES, RIDDLE_PROOF_PROFILE_VERSION, RiddleProofArtifactBodyAssertionInput, RiddleProofArtifactBodyAssertionResult, RiddleProofProfile, RiddleProofProfileArtifactCompleteness, RiddleProofProfileArtifactRef, RiddleProofProfileBaselinePolicy, RiddleProofProfileBoundsOffender, RiddleProofProfileCheck, RiddleProofProfileCheckResult, RiddleProofProfileCheckType, RiddleProofProfileEvidence, RiddleProofProfileFailureAction, RiddleProofProfileHttpStatusBodyJsonAssertion, RiddleProofProfileHttpStatusBodyJsonAssertionResult, RiddleProofProfileHttpStatusPreflightCheckResult, RiddleProofProfileHttpStatusPreflightFetch, RiddleProofProfileHttpStatusPreflightFetchResponse, RiddleProofProfileHttpStatusPreflightOptions, RiddleProofProfileHttpStatusPreflightResult, RiddleProofProfileJsonValueType, RiddleProofProfileNetworkAbortErrorCode, RiddleProofProfileNetworkMock, RiddleProofProfileNetworkMockResponse, RiddleProofProfileResult, RiddleProofProfileReturnSummaryField, RiddleProofProfileRouteEvidence, RiddleProofProfileRouteInventoryRoute, RiddleProofProfileRunner, RiddleProofProfileRunnerArtifactPreflight, RiddleProofProfileSetupAction, RiddleProofProfileSetupActionType, RiddleProofProfileStatus, RiddleProofProfileTarget, RiddleProofProfileViewport, RiddleProofProfileViewportEvidence, applyRiddleProofProfileArtifactCompleteness, assessRiddleProofProfileArtifactCompleteness, assessRiddleProofProfileEvidence, buildRiddleProofProfileScript, collectRiddleProfileArtifactRefs, collectRiddleProofProfileWarnings, createRiddleProofProfileConfigurationError, createRiddleProofProfileEnvironmentBlockedResult, createRiddleProofProfileInsufficientResult, deriveRiddleProofArtifactBodyAssertions, extractRiddleProofProfileResult, normalizeRiddleProofProfile, preflightRiddleProofProfileHttpStatusChecks, preflightRiddleProofProfileRunnerArtifacts, profileStatusExitCode, resolveRiddleProofProfileRouteUrl, resolveRiddleProofProfileTargetUrl, resolveRiddleProofProfileTimeoutSec, slugifyRiddleProofProfileName, summarizeRiddleProofProfileResult } from './profile.cjs';
|
|
14
|
+
export { NormalizeRiddleProofProfileOptions, RIDDLE_PROOF_HOSTED_PROFILE_ARTIFACTS, RIDDLE_PROOF_ORDERED_TRACE_OPERATORS, RIDDLE_PROOF_PROFILE_CHECK_TYPES, RIDDLE_PROOF_PROFILE_EVIDENCE_VERSION, RIDDLE_PROOF_PROFILE_NETWORK_ABORT_ERROR_CODES, RIDDLE_PROOF_PROFILE_RESULT_VERSION, RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES, RIDDLE_PROOF_PROFILE_STATUSES, RIDDLE_PROOF_PROFILE_VERSION, RiddleProofArtifactBodyAssertionInput, RiddleProofArtifactBodyAssertionResult, RiddleProofOrderedTraceAssessment, RiddleProofOrderedTraceEvent, RiddleProofOrderedTraceOperator, RiddleProofOrderedTracePredicate, RiddleProofOrderedTraceWitness, RiddleProofProfile, RiddleProofProfileArtifactCompleteness, RiddleProofProfileArtifactRef, RiddleProofProfileBaselinePolicy, RiddleProofProfileBoundsOffender, RiddleProofProfileCheck, RiddleProofProfileCheckResult, RiddleProofProfileCheckType, RiddleProofProfileEvidence, RiddleProofProfileFailureAction, RiddleProofProfileHttpStatusBodyJsonAssertion, RiddleProofProfileHttpStatusBodyJsonAssertionResult, RiddleProofProfileHttpStatusPreflightCheckResult, RiddleProofProfileHttpStatusPreflightFetch, RiddleProofProfileHttpStatusPreflightFetchResponse, RiddleProofProfileHttpStatusPreflightOptions, RiddleProofProfileHttpStatusPreflightResult, RiddleProofProfileJsonValueType, RiddleProofProfileNetworkAbortErrorCode, RiddleProofProfileNetworkMock, RiddleProofProfileNetworkMockResponse, RiddleProofProfileResult, RiddleProofProfileReturnSummaryField, RiddleProofProfileRouteEvidence, RiddleProofProfileRouteInventoryRoute, RiddleProofProfileRunner, RiddleProofProfileRunnerArtifactPreflight, RiddleProofProfileSetupAction, RiddleProofProfileSetupActionType, RiddleProofProfileStatus, RiddleProofProfileTarget, RiddleProofProfileViewport, RiddleProofProfileViewportEvidence, applyRiddleProofProfileArtifactCompleteness, assessRiddleProofOrderedTrace, assessRiddleProofOrderedTraceSetupResults, assessRiddleProofProfileArtifactCompleteness, assessRiddleProofProfileEvidence, buildRiddleProofProfileScript, collectRiddleProfileArtifactRefs, collectRiddleProofProfileWarnings, createRiddleProofProfileConfigurationError, createRiddleProofProfileEnvironmentBlockedResult, createRiddleProofProfileInsufficientResult, deriveRiddleProofArtifactBodyAssertions, extractRiddleProofProfileResult, normalizeRiddleProofProfile, preflightRiddleProofProfileHttpStatusChecks, preflightRiddleProofProfileRunnerArtifacts, profileStatusExitCode, resolveRiddleProofProfileRouteUrl, resolveRiddleProofProfileTargetUrl, resolveRiddleProofProfileTimeoutSec, slugifyRiddleProofProfileName, summarizeRiddleProofProfileResult } from './profile.cjs';
|
|
15
15
|
export { RIDDLE_PROOF_PROFILE_SUGGESTIONS_VERSION, RiddleProofProfileChangedTextInput, RiddleProofProfileSuggestion, RiddleProofProfileSuggestionInput, RiddleProofProfileSuggestionsResult, suggestRiddleProofProfileChecks } from './profile-suggestions.cjs';
|
|
16
16
|
export { CreateRiddleProofObservationReceiptInput, RIDDLE_PREVIEW_RECEIPT_VERSION, RIDDLE_PROOF_OBSERVATION_RECEIPT_VERSION, RiddlePreviewReceipt, RiddleProofComparisonRole, RiddleProofExecutionPhase, RiddleProofExecutionTelemetry, RiddleProofObservationArtifact, RiddleProofObservationArtifactRole, RiddleProofObservationExecutor, RiddleProofObservationExecutorKind, RiddleProofObservationPublication, RiddleProofObservationReceipt, RiddleProofObservationTarget, RiddleProofSourceIdentity, createRiddleProofObservationReceipt, parseRiddlePreviewReceipt, parseRiddleProofObservationReceipt } from './receipts.cjs';
|
|
17
17
|
export { AssessRiddleProofChangeInput, CreateRiddleProofChangeReceiptInput, RIDDLE_PROOF_CHANGE_CONTRACT_VERSION, RIDDLE_PROOF_CHANGE_RECEIPT_V1_VERSION, RIDDLE_PROOF_CHANGE_RECEIPT_VERSION, RIDDLE_PROOF_CHANGE_RESULT_VERSION, RIDDLE_PROOF_HANDOFF_RECEIPT_VERSION, RiddleProofChangeContract, RiddleProofChangeDelta, RiddleProofChangeDeltaResult, RiddleProofChangeDeltaStatus, RiddleProofChangeGroupContract, RiddleProofChangeGroupResult, RiddleProofChangeProfileCheckStatus, RiddleProofChangeReceipt, RiddleProofChangeReceiptArtifact, RiddleProofChangeReceiptArtifactKind, RiddleProofChangeReceiptCheckCounts, RiddleProofChangeReceiptDelta, RiddleProofChangeReceiptSide, RiddleProofChangeReceiptVerdict, RiddleProofChangeRecommendation, RiddleProofChangeResult, RiddleProofChangeSide, RiddleProofChangeSourceBindingContract, RiddleProofChangeSourceBindingRequirement, RiddleProofChangeSourceBindingResult, RiddleProofChangeSourceBindingStatus, RiddleProofChangeStatus, RiddleProofCheckStatusTransitionDelta, RiddleProofHandoffReceipt, RiddleProofLegacyChangeReceipt, RiddleProofProfileStatusTransitionDelta, RiddleProofShippingAuthorization, assessRiddleProofChange, createRiddleProofChangeReceipt, createRiddleProofHandoffReceipt, migrateRiddleProofChangeReceipt, parseRiddleProofChangeReceipt, parseRiddleProofHandoffReceipt, riddleProofChangeReceiptHtml, riddleProofChangeReceiptMarkdown } from './change-proof.cjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export { CreateCaptureDiagnosticInput, DEFAULT_DIAGNOSTIC_ARRAY_LIMIT, DEFAULT_D
|
|
|
11
11
|
export { BuildVisualProofSessionInput, RIDDLE_PROOF_VISUAL_SESSION_FINGERPRINT_VERSION, RIDDLE_PROOF_VISUAL_SESSION_VERSION, VisualProofSessionMismatch, buildVisualProofSession, compareVisualProofSessionFingerprint, parseVisualProofSession, visualSessionFingerprint, visualSessionFingerprintBasis } from './proof-session.js';
|
|
12
12
|
export { AssessPlayabilityOptions, RIDDLE_PROOF_PLAYABILITY_ASSESSMENT_VERSION, RIDDLE_PROOF_PLAYABILITY_VERSION, RiddleProofPlayabilityAssessment, RiddleProofPlayabilityEvidence, assessPlayabilityEvidence, extractPlayabilityEvidence, isRiddleProofPlayabilityMode } from './playability.js';
|
|
13
13
|
export { AssessBasicGameplayOptions, AttachBasicGameplayArtifactOptions, BASIC_GAMEPLAY_ACTION_TYPES, BASIC_GAMEPLAY_PROGRESS_CHECK_TYPES, BasicGameplayActionResult, BasicGameplayActionType, BasicGameplayArtifactResolution, BasicGameplayAssessmentSummary, BasicGameplayBoundsOffender, BasicGameplayCanvasState, BasicGameplayCatchRecord, BasicGameplayChangeSummary, BasicGameplayFailureCode, BasicGameplayFixReference, BasicGameplayMetric, BasicGameplayMobileEvidence, BasicGameplayProgressCheckType, BasicGameplayProgressionCheck, BasicGameplayProofArtifact, BasicGameplayResponsiveViewportEvidence, BasicGameplayRouteReference, BasicGameplaySnapshot, BasicGameplaySuiteFailure, BasicGameplayWarningCode, CreateBasicGameplayCatchSummaryInput, RIDDLE_PROOF_BASIC_GAMEPLAY_ASSESSMENT_VERSION, RIDDLE_PROOF_BASIC_GAMEPLAY_CATCH_VERSION, RIDDLE_PROOF_BASIC_GAMEPLAY_VERSION, RiddleProofBasicGameplayAssessment, RiddleProofBasicGameplayCatchSummary, RiddleProofBasicGameplayEvidence, RiddleProofBasicGameplayRouteAssessment, RiddleProofBasicGameplayRouteEvidence, assessBasicGameplayEvidence, assessBasicGameplayProgressionCheck, assessBasicGameplayProgressionChecks, assessBasicGameplayRoute, attachBasicGameplayArtifactScreenshotHashes, augmentBasicGameplayAssessmentWithProgressionChecks, compactBasicGameplayText, createBasicGameplayCatchRecords, createBasicGameplayCatchSummary, extractBasicGameplayEvidence, resolveBasicGameplayProgressionCheckWithArtifactScreenshots, sanitizeBasicGameplayJsonString } from './basic-gameplay.js';
|
|
14
|
-
export { NormalizeRiddleProofProfileOptions, RIDDLE_PROOF_HOSTED_PROFILE_ARTIFACTS, RIDDLE_PROOF_PROFILE_CHECK_TYPES, RIDDLE_PROOF_PROFILE_EVIDENCE_VERSION, RIDDLE_PROOF_PROFILE_NETWORK_ABORT_ERROR_CODES, RIDDLE_PROOF_PROFILE_RESULT_VERSION, RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES, RIDDLE_PROOF_PROFILE_STATUSES, RIDDLE_PROOF_PROFILE_VERSION, RiddleProofArtifactBodyAssertionInput, RiddleProofArtifactBodyAssertionResult, RiddleProofProfile, RiddleProofProfileArtifactCompleteness, RiddleProofProfileArtifactRef, RiddleProofProfileBaselinePolicy, RiddleProofProfileBoundsOffender, RiddleProofProfileCheck, RiddleProofProfileCheckResult, RiddleProofProfileCheckType, RiddleProofProfileEvidence, RiddleProofProfileFailureAction, RiddleProofProfileHttpStatusBodyJsonAssertion, RiddleProofProfileHttpStatusBodyJsonAssertionResult, RiddleProofProfileHttpStatusPreflightCheckResult, RiddleProofProfileHttpStatusPreflightFetch, RiddleProofProfileHttpStatusPreflightFetchResponse, RiddleProofProfileHttpStatusPreflightOptions, RiddleProofProfileHttpStatusPreflightResult, RiddleProofProfileJsonValueType, RiddleProofProfileNetworkAbortErrorCode, RiddleProofProfileNetworkMock, RiddleProofProfileNetworkMockResponse, RiddleProofProfileResult, RiddleProofProfileReturnSummaryField, RiddleProofProfileRouteEvidence, RiddleProofProfileRouteInventoryRoute, RiddleProofProfileRunner, RiddleProofProfileRunnerArtifactPreflight, RiddleProofProfileSetupAction, RiddleProofProfileSetupActionType, RiddleProofProfileStatus, RiddleProofProfileTarget, RiddleProofProfileViewport, RiddleProofProfileViewportEvidence, applyRiddleProofProfileArtifactCompleteness, assessRiddleProofProfileArtifactCompleteness, assessRiddleProofProfileEvidence, buildRiddleProofProfileScript, collectRiddleProfileArtifactRefs, collectRiddleProofProfileWarnings, createRiddleProofProfileConfigurationError, createRiddleProofProfileEnvironmentBlockedResult, createRiddleProofProfileInsufficientResult, deriveRiddleProofArtifactBodyAssertions, extractRiddleProofProfileResult, normalizeRiddleProofProfile, preflightRiddleProofProfileHttpStatusChecks, preflightRiddleProofProfileRunnerArtifacts, profileStatusExitCode, resolveRiddleProofProfileRouteUrl, resolveRiddleProofProfileTargetUrl, resolveRiddleProofProfileTimeoutSec, slugifyRiddleProofProfileName, summarizeRiddleProofProfileResult } from './profile.js';
|
|
14
|
+
export { NormalizeRiddleProofProfileOptions, RIDDLE_PROOF_HOSTED_PROFILE_ARTIFACTS, RIDDLE_PROOF_ORDERED_TRACE_OPERATORS, RIDDLE_PROOF_PROFILE_CHECK_TYPES, RIDDLE_PROOF_PROFILE_EVIDENCE_VERSION, RIDDLE_PROOF_PROFILE_NETWORK_ABORT_ERROR_CODES, RIDDLE_PROOF_PROFILE_RESULT_VERSION, RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES, RIDDLE_PROOF_PROFILE_STATUSES, RIDDLE_PROOF_PROFILE_VERSION, RiddleProofArtifactBodyAssertionInput, RiddleProofArtifactBodyAssertionResult, RiddleProofOrderedTraceAssessment, RiddleProofOrderedTraceEvent, RiddleProofOrderedTraceOperator, RiddleProofOrderedTracePredicate, RiddleProofOrderedTraceWitness, RiddleProofProfile, RiddleProofProfileArtifactCompleteness, RiddleProofProfileArtifactRef, RiddleProofProfileBaselinePolicy, RiddleProofProfileBoundsOffender, RiddleProofProfileCheck, RiddleProofProfileCheckResult, RiddleProofProfileCheckType, RiddleProofProfileEvidence, RiddleProofProfileFailureAction, RiddleProofProfileHttpStatusBodyJsonAssertion, RiddleProofProfileHttpStatusBodyJsonAssertionResult, RiddleProofProfileHttpStatusPreflightCheckResult, RiddleProofProfileHttpStatusPreflightFetch, RiddleProofProfileHttpStatusPreflightFetchResponse, RiddleProofProfileHttpStatusPreflightOptions, RiddleProofProfileHttpStatusPreflightResult, RiddleProofProfileJsonValueType, RiddleProofProfileNetworkAbortErrorCode, RiddleProofProfileNetworkMock, RiddleProofProfileNetworkMockResponse, RiddleProofProfileResult, RiddleProofProfileReturnSummaryField, RiddleProofProfileRouteEvidence, RiddleProofProfileRouteInventoryRoute, RiddleProofProfileRunner, RiddleProofProfileRunnerArtifactPreflight, RiddleProofProfileSetupAction, RiddleProofProfileSetupActionType, RiddleProofProfileStatus, RiddleProofProfileTarget, RiddleProofProfileViewport, RiddleProofProfileViewportEvidence, applyRiddleProofProfileArtifactCompleteness, assessRiddleProofOrderedTrace, assessRiddleProofOrderedTraceSetupResults, assessRiddleProofProfileArtifactCompleteness, assessRiddleProofProfileEvidence, buildRiddleProofProfileScript, collectRiddleProfileArtifactRefs, collectRiddleProofProfileWarnings, createRiddleProofProfileConfigurationError, createRiddleProofProfileEnvironmentBlockedResult, createRiddleProofProfileInsufficientResult, deriveRiddleProofArtifactBodyAssertions, extractRiddleProofProfileResult, normalizeRiddleProofProfile, preflightRiddleProofProfileHttpStatusChecks, preflightRiddleProofProfileRunnerArtifacts, profileStatusExitCode, resolveRiddleProofProfileRouteUrl, resolveRiddleProofProfileTargetUrl, resolveRiddleProofProfileTimeoutSec, slugifyRiddleProofProfileName, summarizeRiddleProofProfileResult } from './profile.js';
|
|
15
15
|
export { RIDDLE_PROOF_PROFILE_SUGGESTIONS_VERSION, RiddleProofProfileChangedTextInput, RiddleProofProfileSuggestion, RiddleProofProfileSuggestionInput, RiddleProofProfileSuggestionsResult, suggestRiddleProofProfileChecks } from './profile-suggestions.js';
|
|
16
16
|
export { CreateRiddleProofObservationReceiptInput, RIDDLE_PREVIEW_RECEIPT_VERSION, RIDDLE_PROOF_OBSERVATION_RECEIPT_VERSION, RiddlePreviewReceipt, RiddleProofComparisonRole, RiddleProofExecutionPhase, RiddleProofExecutionTelemetry, RiddleProofObservationArtifact, RiddleProofObservationArtifactRole, RiddleProofObservationExecutor, RiddleProofObservationExecutorKind, RiddleProofObservationPublication, RiddleProofObservationReceipt, RiddleProofObservationTarget, RiddleProofSourceIdentity, createRiddleProofObservationReceipt, parseRiddlePreviewReceipt, parseRiddleProofObservationReceipt } from './receipts.js';
|
|
17
17
|
export { AssessRiddleProofChangeInput, CreateRiddleProofChangeReceiptInput, RIDDLE_PROOF_CHANGE_CONTRACT_VERSION, RIDDLE_PROOF_CHANGE_RECEIPT_V1_VERSION, RIDDLE_PROOF_CHANGE_RECEIPT_VERSION, RIDDLE_PROOF_CHANGE_RESULT_VERSION, RIDDLE_PROOF_HANDOFF_RECEIPT_VERSION, RiddleProofChangeContract, RiddleProofChangeDelta, RiddleProofChangeDeltaResult, RiddleProofChangeDeltaStatus, RiddleProofChangeGroupContract, RiddleProofChangeGroupResult, RiddleProofChangeProfileCheckStatus, RiddleProofChangeReceipt, RiddleProofChangeReceiptArtifact, RiddleProofChangeReceiptArtifactKind, RiddleProofChangeReceiptCheckCounts, RiddleProofChangeReceiptDelta, RiddleProofChangeReceiptSide, RiddleProofChangeReceiptVerdict, RiddleProofChangeRecommendation, RiddleProofChangeResult, RiddleProofChangeSide, RiddleProofChangeSourceBindingContract, RiddleProofChangeSourceBindingRequirement, RiddleProofChangeSourceBindingResult, RiddleProofChangeSourceBindingStatus, RiddleProofChangeStatus, RiddleProofCheckStatusTransitionDelta, RiddleProofHandoffReceipt, RiddleProofLegacyChangeReceipt, RiddleProofProfileStatusTransitionDelta, RiddleProofShippingAuthorization, assessRiddleProofChange, createRiddleProofChangeReceipt, createRiddleProofHandoffReceipt, migrateRiddleProofChangeReceipt, parseRiddleProofChangeReceipt, parseRiddleProofHandoffReceipt, riddleProofChangeReceiptHtml, riddleProofChangeReceiptMarkdown } from './change-proof.js';
|
package/dist/index.js
CHANGED
|
@@ -63,11 +63,11 @@ import {
|
|
|
63
63
|
buildRiddleProofHandoffPrCommentMarkdown,
|
|
64
64
|
buildRiddleProofPrCommentMarkdown,
|
|
65
65
|
summarizeRiddleProofPrComment
|
|
66
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-6T6ZAK77.js";
|
|
67
67
|
import {
|
|
68
68
|
RIDDLE_PROOF_PROFILE_SUGGESTIONS_VERSION,
|
|
69
69
|
suggestRiddleProofProfileChecks
|
|
70
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-A4EF4M3B.js";
|
|
71
71
|
import {
|
|
72
72
|
RIDDLE_PROOF_CHANGE_CONTRACT_VERSION,
|
|
73
73
|
RIDDLE_PROOF_CHANGE_RECEIPT_V1_VERSION,
|
|
@@ -82,7 +82,7 @@ import {
|
|
|
82
82
|
parseRiddleProofHandoffReceipt,
|
|
83
83
|
riddleProofChangeReceiptHtml,
|
|
84
84
|
riddleProofChangeReceiptMarkdown
|
|
85
|
-
} from "./chunk-
|
|
85
|
+
} from "./chunk-IL7MLYB5.js";
|
|
86
86
|
import {
|
|
87
87
|
RIDDLE_PREVIEW_RECEIPT_VERSION,
|
|
88
88
|
RIDDLE_PROOF_OBSERVATION_RECEIPT_VERSION,
|
|
@@ -92,6 +92,7 @@ import {
|
|
|
92
92
|
} from "./chunk-MEVVL4TI.js";
|
|
93
93
|
import {
|
|
94
94
|
RIDDLE_PROOF_HOSTED_PROFILE_ARTIFACTS,
|
|
95
|
+
RIDDLE_PROOF_ORDERED_TRACE_OPERATORS,
|
|
95
96
|
RIDDLE_PROOF_PROFILE_CHECK_TYPES,
|
|
96
97
|
RIDDLE_PROOF_PROFILE_EVIDENCE_VERSION,
|
|
97
98
|
RIDDLE_PROOF_PROFILE_NETWORK_ABORT_ERROR_CODES,
|
|
@@ -100,6 +101,8 @@ import {
|
|
|
100
101
|
RIDDLE_PROOF_PROFILE_STATUSES,
|
|
101
102
|
RIDDLE_PROOF_PROFILE_VERSION,
|
|
102
103
|
applyRiddleProofProfileArtifactCompleteness,
|
|
104
|
+
assessRiddleProofOrderedTrace,
|
|
105
|
+
assessRiddleProofOrderedTraceSetupResults,
|
|
103
106
|
assessRiddleProofProfileArtifactCompleteness,
|
|
104
107
|
assessRiddleProofProfileEvidence,
|
|
105
108
|
buildRiddleProofProfileScript,
|
|
@@ -119,7 +122,7 @@ import {
|
|
|
119
122
|
resolveRiddleProofProfileTimeoutSec,
|
|
120
123
|
slugifyRiddleProofProfileName,
|
|
121
124
|
summarizeRiddleProofProfileResult
|
|
122
|
-
} from "./chunk-
|
|
125
|
+
} from "./chunk-ZNVYJFR7.js";
|
|
123
126
|
import {
|
|
124
127
|
createCodexExecAgentAdapter,
|
|
125
128
|
createCodexExecJsonRunner,
|
|
@@ -221,6 +224,7 @@ export {
|
|
|
221
224
|
RIDDLE_PROOF_HANDOFF_RECEIPT_VERSION,
|
|
222
225
|
RIDDLE_PROOF_HOSTED_PROFILE_ARTIFACTS,
|
|
223
226
|
RIDDLE_PROOF_OBSERVATION_RECEIPT_VERSION,
|
|
227
|
+
RIDDLE_PROOF_ORDERED_TRACE_OPERATORS,
|
|
224
228
|
RIDDLE_PROOF_PLAYABILITY_ASSESSMENT_VERSION,
|
|
225
229
|
RIDDLE_PROOF_PLAYABILITY_VERSION,
|
|
226
230
|
RIDDLE_PROOF_PROFILE_CHECK_TYPES,
|
|
@@ -251,6 +255,8 @@ export {
|
|
|
251
255
|
assessBasicGameplayRoute,
|
|
252
256
|
assessPlayabilityEvidence,
|
|
253
257
|
assessRiddleProofChange,
|
|
258
|
+
assessRiddleProofOrderedTrace,
|
|
259
|
+
assessRiddleProofOrderedTraceSetupResults,
|
|
254
260
|
assessRiddleProofProfileArtifactCompleteness,
|
|
255
261
|
assessRiddleProofProfileEvidence,
|
|
256
262
|
attachBasicGameplayArtifactScreenshotHashes,
|
package/dist/pr-comment.js
CHANGED
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
buildRiddleProofHandoffPrCommentMarkdown,
|
|
4
4
|
buildRiddleProofPrCommentMarkdown,
|
|
5
5
|
summarizeRiddleProofPrComment
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-6T6ZAK77.js";
|
|
7
|
+
import "./chunk-IL7MLYB5.js";
|
|
8
8
|
import "./chunk-MEVVL4TI.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-ZNVYJFR7.js";
|
|
10
10
|
import "./chunk-ZAR7BWMN.js";
|
|
11
11
|
import "./chunk-MLKGABMK.js";
|
|
12
12
|
export {
|