@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/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: normalizeSetupActions(targetInput.setup_actions ?? targetInput.setupActions),
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-7N6X54WG.js";
66
+ } from "./chunk-6T6ZAK77.js";
67
67
  import {
68
68
  RIDDLE_PROOF_PROFILE_SUGGESTIONS_VERSION,
69
69
  suggestRiddleProofProfileChecks
70
- } from "./chunk-RQPCKRKT.js";
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-6VFS2JFR.js";
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-FCSJZBC5.js";
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,
@@ -3,10 +3,10 @@ import {
3
3
  buildRiddleProofHandoffPrCommentMarkdown,
4
4
  buildRiddleProofPrCommentMarkdown,
5
5
  summarizeRiddleProofPrComment
6
- } from "./chunk-7N6X54WG.js";
7
- import "./chunk-6VFS2JFR.js";
6
+ } from "./chunk-6T6ZAK77.js";
7
+ import "./chunk-IL7MLYB5.js";
8
8
  import "./chunk-MEVVL4TI.js";
9
- import "./chunk-FCSJZBC5.js";
9
+ import "./chunk-ZNVYJFR7.js";
10
10
  import "./chunk-ZAR7BWMN.js";
11
11
  import "./chunk-MLKGABMK.js";
12
12
  export {