@riddledc/riddle-proof 0.7.17 → 0.7.18

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.
@@ -440,6 +440,22 @@ function createBasicGameplayCatchRecords(assessment, evidence) {
440
440
  });
441
441
  }
442
442
  }
443
+ for (const failure of responsiveSetupFailures(route)) {
444
+ catches.push({
445
+ site: run.site || null,
446
+ route: route.name,
447
+ path: route.path,
448
+ code: failure.code,
449
+ label: failure.label,
450
+ type: failure.action_result?.action || "responsive_setup",
451
+ selector: stringValue(failure.action_result?.selector),
452
+ reason: failure.reason || "responsive_setup_failed",
453
+ phase: failure.viewport?.phase || void 0,
454
+ viewport: failure.viewport,
455
+ action_result: failure.action_result,
456
+ summary: `${route.name || route.path || "Route"}: responsive setup failed on ${failure.viewport?.label || "viewport"} (${failure.reason || "responsive_setup_failed"})`
457
+ });
458
+ }
443
459
  for (const check of assessBasicGameplayProgressionChecks(route).filter((item) => item.ok === false)) {
444
460
  catches.push({
445
461
  site: run.site || null,
@@ -576,7 +592,7 @@ function findBasicGameplayEvidence(value, seen, depth = 0) {
576
592
  return null;
577
593
  }
578
594
  function hasRouteShape(record) {
579
- return Boolean(record && (record.initial || record.after_action || record.afterAction || record.after_cleanup || record.afterCleanup || record.action_results || record.actionResults || record.continued_cleanup_action_results || record.continuedCleanupActionResults) && (record.path || record.name));
595
+ return Boolean(record && (record.initial || record.after_action || record.afterAction || record.after_cleanup || record.afterCleanup || record.action_results || record.actionResults || record.continued_cleanup_action_results || record.continuedCleanupActionResults || record.responsive_viewports || record.responsiveViewports) && (record.path || record.name));
580
596
  }
581
597
  function changed(before, after) {
582
598
  const bodyTextChanged = Boolean(before.body_text_hash && after.body_text_hash && before.body_text_hash !== after.body_text_hash);
@@ -596,12 +612,15 @@ function canvasHashes(canvases) {
596
612
  }
597
613
  function augmentRouteAssessmentWithProgressionChecks(result, route) {
598
614
  const progressionFailures = assessBasicGameplayProgressionChecks(route).filter((check) => check.ok === false);
599
- if (!progressionFailures.length) return result;
600
- const failures = result.failures.includes("progression_assertion_failed") ? result.failures : [...result.failures, "progression_assertion_failed"];
615
+ const responsiveFailures = responsiveSetupFailures(route);
616
+ if (!progressionFailures.length && !responsiveFailures.length) return result;
617
+ const failures = new Set(result.failures);
618
+ if (progressionFailures.length) failures.add("progression_assertion_failed");
619
+ for (const failure of responsiveFailures) failures.add(failure.code);
601
620
  return {
602
621
  ...result,
603
622
  ok: false,
604
- failures,
623
+ failures: [...failures],
605
624
  suite_failures: [
606
625
  ...result.suite_failures || [],
607
626
  ...progressionFailures.map((check) => ({
@@ -612,10 +631,36 @@ function augmentRouteAssessmentWithProgressionChecks(result, route) {
612
631
  state_path: check.state_path || null,
613
632
  state_call: check.state_call || null,
614
633
  property_path: check.property_path || null
615
- }))
634
+ })),
635
+ ...responsiveFailures
616
636
  ]
617
637
  };
618
638
  }
639
+ function responsiveSetupFailures(route) {
640
+ const failures = [];
641
+ for (const viewport of responsiveViewportsForRoute(route)) {
642
+ for (const actionResult of listValue(viewport.setup_action_results || viewport.setupActionResults)) {
643
+ if (!actionResult || actionResult.ok !== false) continue;
644
+ failures.push({
645
+ code: "responsive_setup_failed",
646
+ label: `${viewport.label || "responsive"} ${actionResult.action || "setup action"}`,
647
+ reason: stringValue(actionResult.reason) || "responsive_setup_failed",
648
+ selector: stringValue(actionResult.selector),
649
+ viewport: {
650
+ label: viewport.label || null,
651
+ width: numberValue(viewport.width) || null,
652
+ height: numberValue(viewport.height) || null,
653
+ phase: viewport.phase || null
654
+ },
655
+ action_result: actionResult
656
+ });
657
+ }
658
+ }
659
+ return failures;
660
+ }
661
+ function responsiveViewportsForRoute(route) {
662
+ return listValue(route.responsive_viewports || route.responsiveViewports).filter((item) => Boolean(recordValue(item)));
663
+ }
619
664
  function progressionChecksForRoute(route) {
620
665
  return listValue(route.progression_checks || route.progressionChecks).filter((item) => Boolean(recordValue(item)));
621
666
  }
@@ -1,7 +1,7 @@
1
1
  declare const RIDDLE_PROOF_BASIC_GAMEPLAY_VERSION = "riddle-proof.basic-gameplay.v1";
2
2
  declare const RIDDLE_PROOF_BASIC_GAMEPLAY_ASSESSMENT_VERSION = "riddle-proof.basic-gameplay.assessment.v1";
3
3
  declare const RIDDLE_PROOF_BASIC_GAMEPLAY_CATCH_VERSION = "riddle-proof.basic-gameplay.catch.v1";
4
- type BasicGameplayFailureCode = "route_http_error" | "fatal_page_error" | "route_blank_or_thin" | "no_game_surface" | "mobile_horizontal_overflow" | "primary_control_missing" | "primary_control_inert" | "progression_assertion_failed";
4
+ type BasicGameplayFailureCode = "route_http_error" | "fatal_page_error" | "route_blank_or_thin" | "no_game_surface" | "mobile_horizontal_overflow" | "primary_control_missing" | "primary_control_inert" | "progression_assertion_failed" | "responsive_setup_failed";
5
5
  type BasicGameplayWarningCode = "canvas_inert" | "some_actions_failed" | "missing_reset_path" | "critical_console_error";
6
6
  interface BasicGameplayCanvasState {
7
7
  index?: number;
@@ -95,13 +95,29 @@ interface BasicGameplayProgressionCheck {
95
95
  [key: string]: unknown;
96
96
  }
97
97
  interface BasicGameplaySuiteFailure {
98
- code: "progression_assertion_failed";
98
+ code: "progression_assertion_failed" | "responsive_setup_failed";
99
99
  label?: string;
100
100
  reason?: string | null;
101
101
  selector?: string | null;
102
102
  state_path?: string | null;
103
103
  state_call?: string | null;
104
104
  property_path?: string | null;
105
+ viewport?: {
106
+ label?: string | null;
107
+ width?: number | null;
108
+ height?: number | null;
109
+ phase?: string | null;
110
+ };
111
+ action_result?: BasicGameplayActionResult;
112
+ }
113
+ interface BasicGameplayResponsiveViewportEvidence {
114
+ label?: string;
115
+ width?: number;
116
+ height?: number;
117
+ phase?: string;
118
+ setup_action_results?: BasicGameplayActionResult[];
119
+ setupActionResults?: BasicGameplayActionResult[];
120
+ [key: string]: unknown;
105
121
  }
106
122
  interface BasicGameplayMobileEvidence {
107
123
  overflow_px?: number;
@@ -132,6 +148,8 @@ interface RiddleProofBasicGameplayRouteEvidence {
132
148
  continuedCleanupActionResults?: BasicGameplayActionResult[];
133
149
  restart_action_results?: BasicGameplayActionResult[];
134
150
  restartActionResults?: BasicGameplayActionResult[];
151
+ responsive_viewports?: BasicGameplayResponsiveViewportEvidence[];
152
+ responsiveViewports?: BasicGameplayResponsiveViewportEvidence[];
135
153
  progression_checks?: BasicGameplayProgressionCheck[];
136
154
  progressionChecks?: BasicGameplayProgressionCheck[];
137
155
  requires_reset?: boolean;
@@ -296,4 +314,4 @@ declare function createBasicGameplayCatchRecords(assessment: RiddleProofBasicGam
296
314
  declare function createBasicGameplayCatchSummary(input: CreateBasicGameplayCatchSummaryInput, options?: AssessBasicGameplayOptions): RiddleProofBasicGameplayCatchSummary;
297
315
  declare function extractBasicGameplayEvidence(...sources: unknown[]): RiddleProofBasicGameplayEvidence | null;
298
316
 
299
- export { type AssessBasicGameplayOptions, type AttachBasicGameplayArtifactOptions, BASIC_GAMEPLAY_ACTION_TYPES, BASIC_GAMEPLAY_PROGRESS_CHECK_TYPES, type BasicGameplayActionResult, type BasicGameplayActionType, type BasicGameplayArtifactResolution, type BasicGameplayAssessmentSummary, type BasicGameplayCanvasState, type BasicGameplayCatchRecord, type BasicGameplayChangeSummary, type BasicGameplayFailureCode, type BasicGameplayFixReference, type BasicGameplayMetric, type BasicGameplayMobileEvidence, type BasicGameplayProgressCheckType, type BasicGameplayProgressionCheck, type BasicGameplayProofArtifact, type BasicGameplayRouteReference, type BasicGameplaySnapshot, type BasicGameplaySuiteFailure, type BasicGameplayWarningCode, type CreateBasicGameplayCatchSummaryInput, RIDDLE_PROOF_BASIC_GAMEPLAY_ASSESSMENT_VERSION, RIDDLE_PROOF_BASIC_GAMEPLAY_CATCH_VERSION, RIDDLE_PROOF_BASIC_GAMEPLAY_VERSION, type RiddleProofBasicGameplayAssessment, type RiddleProofBasicGameplayCatchSummary, type RiddleProofBasicGameplayEvidence, type RiddleProofBasicGameplayRouteAssessment, type RiddleProofBasicGameplayRouteEvidence, assessBasicGameplayEvidence, assessBasicGameplayProgressionCheck, assessBasicGameplayProgressionChecks, assessBasicGameplayRoute, attachBasicGameplayArtifactScreenshotHashes, augmentBasicGameplayAssessmentWithProgressionChecks, compactBasicGameplayText, createBasicGameplayCatchRecords, createBasicGameplayCatchSummary, extractBasicGameplayEvidence, resolveBasicGameplayProgressionCheckWithArtifactScreenshots, sanitizeBasicGameplayJsonString };
317
+ export { type AssessBasicGameplayOptions, type AttachBasicGameplayArtifactOptions, BASIC_GAMEPLAY_ACTION_TYPES, BASIC_GAMEPLAY_PROGRESS_CHECK_TYPES, type BasicGameplayActionResult, type BasicGameplayActionType, type BasicGameplayArtifactResolution, type BasicGameplayAssessmentSummary, type BasicGameplayCanvasState, type BasicGameplayCatchRecord, type BasicGameplayChangeSummary, type BasicGameplayFailureCode, type BasicGameplayFixReference, type BasicGameplayMetric, type BasicGameplayMobileEvidence, type BasicGameplayProgressCheckType, type BasicGameplayProgressionCheck, type BasicGameplayProofArtifact, type BasicGameplayResponsiveViewportEvidence, type BasicGameplayRouteReference, type BasicGameplaySnapshot, type BasicGameplaySuiteFailure, type BasicGameplayWarningCode, type CreateBasicGameplayCatchSummaryInput, RIDDLE_PROOF_BASIC_GAMEPLAY_ASSESSMENT_VERSION, RIDDLE_PROOF_BASIC_GAMEPLAY_CATCH_VERSION, RIDDLE_PROOF_BASIC_GAMEPLAY_VERSION, type RiddleProofBasicGameplayAssessment, type RiddleProofBasicGameplayCatchSummary, type RiddleProofBasicGameplayEvidence, type RiddleProofBasicGameplayRouteAssessment, type RiddleProofBasicGameplayRouteEvidence, assessBasicGameplayEvidence, assessBasicGameplayProgressionCheck, assessBasicGameplayProgressionChecks, assessBasicGameplayRoute, attachBasicGameplayArtifactScreenshotHashes, augmentBasicGameplayAssessmentWithProgressionChecks, compactBasicGameplayText, createBasicGameplayCatchRecords, createBasicGameplayCatchSummary, extractBasicGameplayEvidence, resolveBasicGameplayProgressionCheckWithArtifactScreenshots, sanitizeBasicGameplayJsonString };
@@ -1,7 +1,7 @@
1
1
  declare const RIDDLE_PROOF_BASIC_GAMEPLAY_VERSION = "riddle-proof.basic-gameplay.v1";
2
2
  declare const RIDDLE_PROOF_BASIC_GAMEPLAY_ASSESSMENT_VERSION = "riddle-proof.basic-gameplay.assessment.v1";
3
3
  declare const RIDDLE_PROOF_BASIC_GAMEPLAY_CATCH_VERSION = "riddle-proof.basic-gameplay.catch.v1";
4
- type BasicGameplayFailureCode = "route_http_error" | "fatal_page_error" | "route_blank_or_thin" | "no_game_surface" | "mobile_horizontal_overflow" | "primary_control_missing" | "primary_control_inert" | "progression_assertion_failed";
4
+ type BasicGameplayFailureCode = "route_http_error" | "fatal_page_error" | "route_blank_or_thin" | "no_game_surface" | "mobile_horizontal_overflow" | "primary_control_missing" | "primary_control_inert" | "progression_assertion_failed" | "responsive_setup_failed";
5
5
  type BasicGameplayWarningCode = "canvas_inert" | "some_actions_failed" | "missing_reset_path" | "critical_console_error";
6
6
  interface BasicGameplayCanvasState {
7
7
  index?: number;
@@ -95,13 +95,29 @@ interface BasicGameplayProgressionCheck {
95
95
  [key: string]: unknown;
96
96
  }
97
97
  interface BasicGameplaySuiteFailure {
98
- code: "progression_assertion_failed";
98
+ code: "progression_assertion_failed" | "responsive_setup_failed";
99
99
  label?: string;
100
100
  reason?: string | null;
101
101
  selector?: string | null;
102
102
  state_path?: string | null;
103
103
  state_call?: string | null;
104
104
  property_path?: string | null;
105
+ viewport?: {
106
+ label?: string | null;
107
+ width?: number | null;
108
+ height?: number | null;
109
+ phase?: string | null;
110
+ };
111
+ action_result?: BasicGameplayActionResult;
112
+ }
113
+ interface BasicGameplayResponsiveViewportEvidence {
114
+ label?: string;
115
+ width?: number;
116
+ height?: number;
117
+ phase?: string;
118
+ setup_action_results?: BasicGameplayActionResult[];
119
+ setupActionResults?: BasicGameplayActionResult[];
120
+ [key: string]: unknown;
105
121
  }
106
122
  interface BasicGameplayMobileEvidence {
107
123
  overflow_px?: number;
@@ -132,6 +148,8 @@ interface RiddleProofBasicGameplayRouteEvidence {
132
148
  continuedCleanupActionResults?: BasicGameplayActionResult[];
133
149
  restart_action_results?: BasicGameplayActionResult[];
134
150
  restartActionResults?: BasicGameplayActionResult[];
151
+ responsive_viewports?: BasicGameplayResponsiveViewportEvidence[];
152
+ responsiveViewports?: BasicGameplayResponsiveViewportEvidence[];
135
153
  progression_checks?: BasicGameplayProgressionCheck[];
136
154
  progressionChecks?: BasicGameplayProgressionCheck[];
137
155
  requires_reset?: boolean;
@@ -296,4 +314,4 @@ declare function createBasicGameplayCatchRecords(assessment: RiddleProofBasicGam
296
314
  declare function createBasicGameplayCatchSummary(input: CreateBasicGameplayCatchSummaryInput, options?: AssessBasicGameplayOptions): RiddleProofBasicGameplayCatchSummary;
297
315
  declare function extractBasicGameplayEvidence(...sources: unknown[]): RiddleProofBasicGameplayEvidence | null;
298
316
 
299
- export { type AssessBasicGameplayOptions, type AttachBasicGameplayArtifactOptions, BASIC_GAMEPLAY_ACTION_TYPES, BASIC_GAMEPLAY_PROGRESS_CHECK_TYPES, type BasicGameplayActionResult, type BasicGameplayActionType, type BasicGameplayArtifactResolution, type BasicGameplayAssessmentSummary, type BasicGameplayCanvasState, type BasicGameplayCatchRecord, type BasicGameplayChangeSummary, type BasicGameplayFailureCode, type BasicGameplayFixReference, type BasicGameplayMetric, type BasicGameplayMobileEvidence, type BasicGameplayProgressCheckType, type BasicGameplayProgressionCheck, type BasicGameplayProofArtifact, type BasicGameplayRouteReference, type BasicGameplaySnapshot, type BasicGameplaySuiteFailure, type BasicGameplayWarningCode, type CreateBasicGameplayCatchSummaryInput, RIDDLE_PROOF_BASIC_GAMEPLAY_ASSESSMENT_VERSION, RIDDLE_PROOF_BASIC_GAMEPLAY_CATCH_VERSION, RIDDLE_PROOF_BASIC_GAMEPLAY_VERSION, type RiddleProofBasicGameplayAssessment, type RiddleProofBasicGameplayCatchSummary, type RiddleProofBasicGameplayEvidence, type RiddleProofBasicGameplayRouteAssessment, type RiddleProofBasicGameplayRouteEvidence, assessBasicGameplayEvidence, assessBasicGameplayProgressionCheck, assessBasicGameplayProgressionChecks, assessBasicGameplayRoute, attachBasicGameplayArtifactScreenshotHashes, augmentBasicGameplayAssessmentWithProgressionChecks, compactBasicGameplayText, createBasicGameplayCatchRecords, createBasicGameplayCatchSummary, extractBasicGameplayEvidence, resolveBasicGameplayProgressionCheckWithArtifactScreenshots, sanitizeBasicGameplayJsonString };
317
+ export { type AssessBasicGameplayOptions, type AttachBasicGameplayArtifactOptions, BASIC_GAMEPLAY_ACTION_TYPES, BASIC_GAMEPLAY_PROGRESS_CHECK_TYPES, type BasicGameplayActionResult, type BasicGameplayActionType, type BasicGameplayArtifactResolution, type BasicGameplayAssessmentSummary, type BasicGameplayCanvasState, type BasicGameplayCatchRecord, type BasicGameplayChangeSummary, type BasicGameplayFailureCode, type BasicGameplayFixReference, type BasicGameplayMetric, type BasicGameplayMobileEvidence, type BasicGameplayProgressCheckType, type BasicGameplayProgressionCheck, type BasicGameplayProofArtifact, type BasicGameplayResponsiveViewportEvidence, type BasicGameplayRouteReference, type BasicGameplaySnapshot, type BasicGameplaySuiteFailure, type BasicGameplayWarningCode, type CreateBasicGameplayCatchSummaryInput, RIDDLE_PROOF_BASIC_GAMEPLAY_ASSESSMENT_VERSION, RIDDLE_PROOF_BASIC_GAMEPLAY_CATCH_VERSION, RIDDLE_PROOF_BASIC_GAMEPLAY_VERSION, type RiddleProofBasicGameplayAssessment, type RiddleProofBasicGameplayCatchSummary, type RiddleProofBasicGameplayEvidence, type RiddleProofBasicGameplayRouteAssessment, type RiddleProofBasicGameplayRouteEvidence, assessBasicGameplayEvidence, assessBasicGameplayProgressionCheck, assessBasicGameplayProgressionChecks, assessBasicGameplayRoute, attachBasicGameplayArtifactScreenshotHashes, augmentBasicGameplayAssessmentWithProgressionChecks, compactBasicGameplayText, createBasicGameplayCatchRecords, createBasicGameplayCatchSummary, extractBasicGameplayEvidence, resolveBasicGameplayProgressionCheckWithArtifactScreenshots, sanitizeBasicGameplayJsonString };
@@ -16,7 +16,7 @@ import {
16
16
  extractBasicGameplayEvidence,
17
17
  resolveBasicGameplayProgressionCheckWithArtifactScreenshots,
18
18
  sanitizeBasicGameplayJsonString
19
- } from "./chunk-GHQR2VEI.js";
19
+ } from "./chunk-6H742VFJ.js";
20
20
  export {
21
21
  BASIC_GAMEPLAY_ACTION_TYPES,
22
22
  BASIC_GAMEPLAY_PROGRESS_CHECK_TYPES,
@@ -400,6 +400,22 @@ function createBasicGameplayCatchRecords(assessment, evidence) {
400
400
  });
401
401
  }
402
402
  }
403
+ for (const failure of responsiveSetupFailures(route)) {
404
+ catches.push({
405
+ site: run.site || null,
406
+ route: route.name,
407
+ path: route.path,
408
+ code: failure.code,
409
+ label: failure.label,
410
+ type: failure.action_result?.action || "responsive_setup",
411
+ selector: stringValue(failure.action_result?.selector),
412
+ reason: failure.reason || "responsive_setup_failed",
413
+ phase: failure.viewport?.phase || void 0,
414
+ viewport: failure.viewport,
415
+ action_result: failure.action_result,
416
+ summary: `${route.name || route.path || "Route"}: responsive setup failed on ${failure.viewport?.label || "viewport"} (${failure.reason || "responsive_setup_failed"})`
417
+ });
418
+ }
403
419
  for (const check of assessBasicGameplayProgressionChecks(route).filter((item) => item.ok === false)) {
404
420
  catches.push({
405
421
  site: run.site || null,
@@ -536,7 +552,7 @@ function findBasicGameplayEvidence(value, seen, depth = 0) {
536
552
  return null;
537
553
  }
538
554
  function hasRouteShape(record) {
539
- return Boolean(record && (record.initial || record.after_action || record.afterAction || record.after_cleanup || record.afterCleanup || record.action_results || record.actionResults || record.continued_cleanup_action_results || record.continuedCleanupActionResults) && (record.path || record.name));
555
+ return Boolean(record && (record.initial || record.after_action || record.afterAction || record.after_cleanup || record.afterCleanup || record.action_results || record.actionResults || record.continued_cleanup_action_results || record.continuedCleanupActionResults || record.responsive_viewports || record.responsiveViewports) && (record.path || record.name));
540
556
  }
541
557
  function changed(before, after) {
542
558
  const bodyTextChanged = Boolean(before.body_text_hash && after.body_text_hash && before.body_text_hash !== after.body_text_hash);
@@ -556,12 +572,15 @@ function canvasHashes(canvases) {
556
572
  }
557
573
  function augmentRouteAssessmentWithProgressionChecks(result, route) {
558
574
  const progressionFailures = assessBasicGameplayProgressionChecks(route).filter((check) => check.ok === false);
559
- if (!progressionFailures.length) return result;
560
- const failures = result.failures.includes("progression_assertion_failed") ? result.failures : [...result.failures, "progression_assertion_failed"];
575
+ const responsiveFailures = responsiveSetupFailures(route);
576
+ if (!progressionFailures.length && !responsiveFailures.length) return result;
577
+ const failures = new Set(result.failures);
578
+ if (progressionFailures.length) failures.add("progression_assertion_failed");
579
+ for (const failure of responsiveFailures) failures.add(failure.code);
561
580
  return {
562
581
  ...result,
563
582
  ok: false,
564
- failures,
583
+ failures: [...failures],
565
584
  suite_failures: [
566
585
  ...result.suite_failures || [],
567
586
  ...progressionFailures.map((check) => ({
@@ -572,10 +591,36 @@ function augmentRouteAssessmentWithProgressionChecks(result, route) {
572
591
  state_path: check.state_path || null,
573
592
  state_call: check.state_call || null,
574
593
  property_path: check.property_path || null
575
- }))
594
+ })),
595
+ ...responsiveFailures
576
596
  ]
577
597
  };
578
598
  }
599
+ function responsiveSetupFailures(route) {
600
+ const failures = [];
601
+ for (const viewport of responsiveViewportsForRoute(route)) {
602
+ for (const actionResult of listValue(viewport.setup_action_results || viewport.setupActionResults)) {
603
+ if (!actionResult || actionResult.ok !== false) continue;
604
+ failures.push({
605
+ code: "responsive_setup_failed",
606
+ label: `${viewport.label || "responsive"} ${actionResult.action || "setup action"}`,
607
+ reason: stringValue(actionResult.reason) || "responsive_setup_failed",
608
+ selector: stringValue(actionResult.selector),
609
+ viewport: {
610
+ label: viewport.label || null,
611
+ width: numberValue(viewport.width) || null,
612
+ height: numberValue(viewport.height) || null,
613
+ phase: viewport.phase || null
614
+ },
615
+ action_result: actionResult
616
+ });
617
+ }
618
+ }
619
+ return failures;
620
+ }
621
+ function responsiveViewportsForRoute(route) {
622
+ return listValue(route.responsive_viewports || route.responsiveViewports).filter((item) => Boolean(recordValue(item)));
623
+ }
579
624
  function progressionChecksForRoute(route) {
580
625
  return listValue(route.progression_checks || route.progressionChecks).filter((item) => Boolean(recordValue(item)));
581
626
  }
package/dist/index.cjs CHANGED
@@ -8210,6 +8210,22 @@ function createBasicGameplayCatchRecords(assessment, evidence) {
8210
8210
  });
8211
8211
  }
8212
8212
  }
8213
+ for (const failure of responsiveSetupFailures(route)) {
8214
+ catches.push({
8215
+ site: run.site || null,
8216
+ route: route.name,
8217
+ path: route.path,
8218
+ code: failure.code,
8219
+ label: failure.label,
8220
+ type: failure.action_result?.action || "responsive_setup",
8221
+ selector: stringValue4(failure.action_result?.selector),
8222
+ reason: failure.reason || "responsive_setup_failed",
8223
+ phase: failure.viewport?.phase || void 0,
8224
+ viewport: failure.viewport,
8225
+ action_result: failure.action_result,
8226
+ summary: `${route.name || route.path || "Route"}: responsive setup failed on ${failure.viewport?.label || "viewport"} (${failure.reason || "responsive_setup_failed"})`
8227
+ });
8228
+ }
8213
8229
  for (const check of assessBasicGameplayProgressionChecks(route).filter((item) => item.ok === false)) {
8214
8230
  catches.push({
8215
8231
  site: run.site || null,
@@ -8346,7 +8362,7 @@ function findBasicGameplayEvidence(value, seen, depth = 0) {
8346
8362
  return null;
8347
8363
  }
8348
8364
  function hasRouteShape(record) {
8349
- return Boolean(record && (record.initial || record.after_action || record.afterAction || record.after_cleanup || record.afterCleanup || record.action_results || record.actionResults || record.continued_cleanup_action_results || record.continuedCleanupActionResults) && (record.path || record.name));
8365
+ return Boolean(record && (record.initial || record.after_action || record.afterAction || record.after_cleanup || record.afterCleanup || record.action_results || record.actionResults || record.continued_cleanup_action_results || record.continuedCleanupActionResults || record.responsive_viewports || record.responsiveViewports) && (record.path || record.name));
8350
8366
  }
8351
8367
  function changed(before, after) {
8352
8368
  const bodyTextChanged = Boolean(before.body_text_hash && after.body_text_hash && before.body_text_hash !== after.body_text_hash);
@@ -8366,12 +8382,15 @@ function canvasHashes(canvases) {
8366
8382
  }
8367
8383
  function augmentRouteAssessmentWithProgressionChecks(result, route) {
8368
8384
  const progressionFailures = assessBasicGameplayProgressionChecks(route).filter((check) => check.ok === false);
8369
- if (!progressionFailures.length) return result;
8370
- const failures = result.failures.includes("progression_assertion_failed") ? result.failures : [...result.failures, "progression_assertion_failed"];
8385
+ const responsiveFailures = responsiveSetupFailures(route);
8386
+ if (!progressionFailures.length && !responsiveFailures.length) return result;
8387
+ const failures = new Set(result.failures);
8388
+ if (progressionFailures.length) failures.add("progression_assertion_failed");
8389
+ for (const failure of responsiveFailures) failures.add(failure.code);
8371
8390
  return {
8372
8391
  ...result,
8373
8392
  ok: false,
8374
- failures,
8393
+ failures: [...failures],
8375
8394
  suite_failures: [
8376
8395
  ...result.suite_failures || [],
8377
8396
  ...progressionFailures.map((check) => ({
@@ -8382,10 +8401,36 @@ function augmentRouteAssessmentWithProgressionChecks(result, route) {
8382
8401
  state_path: check.state_path || null,
8383
8402
  state_call: check.state_call || null,
8384
8403
  property_path: check.property_path || null
8385
- }))
8404
+ })),
8405
+ ...responsiveFailures
8386
8406
  ]
8387
8407
  };
8388
8408
  }
8409
+ function responsiveSetupFailures(route) {
8410
+ const failures = [];
8411
+ for (const viewport of responsiveViewportsForRoute(route)) {
8412
+ for (const actionResult of listValue2(viewport.setup_action_results || viewport.setupActionResults)) {
8413
+ if (!actionResult || actionResult.ok !== false) continue;
8414
+ failures.push({
8415
+ code: "responsive_setup_failed",
8416
+ label: `${viewport.label || "responsive"} ${actionResult.action || "setup action"}`,
8417
+ reason: stringValue4(actionResult.reason) || "responsive_setup_failed",
8418
+ selector: stringValue4(actionResult.selector),
8419
+ viewport: {
8420
+ label: viewport.label || null,
8421
+ width: numberValue2(viewport.width) || null,
8422
+ height: numberValue2(viewport.height) || null,
8423
+ phase: viewport.phase || null
8424
+ },
8425
+ action_result: actionResult
8426
+ });
8427
+ }
8428
+ }
8429
+ return failures;
8430
+ }
8431
+ function responsiveViewportsForRoute(route) {
8432
+ return listValue2(route.responsive_viewports || route.responsiveViewports).filter((item) => Boolean(recordValue3(item)));
8433
+ }
8389
8434
  function progressionChecksForRoute(route) {
8390
8435
  return listValue2(route.progression_checks || route.progressionChecks).filter((item) => Boolean(recordValue3(item)));
8391
8436
  }
package/dist/index.d.cts CHANGED
@@ -9,6 +9,6 @@ export { CodexExecAgentConfig, CodexJsonRequest, CodexJsonResult, CodexJsonRunne
9
9
  export { CreateCaptureDiagnosticInput, DEFAULT_DIAGNOSTIC_ARRAY_LIMIT, DEFAULT_DIAGNOSTIC_HISTORY_LIMIT, DEFAULT_DIAGNOSTIC_STRING_LIMIT, RIDDLE_PROOF_CAPTURE_DIAGNOSTIC_VERSION, RiddleProofArtifactSummary, RiddleProofCaptureArtifactSummary, RiddleProofCaptureDiagnostic, RiddleProofDiagnosticRedactionOptions, appendCaptureDiagnostic, createCaptureDiagnostic, redactForProofDiagnostics, summarizeCaptureArtifacts } from './diagnostics.cjs';
10
10
  export { BuildVisualProofSessionInput, RIDDLE_PROOF_VISUAL_SESSION_FINGERPRINT_VERSION, RIDDLE_PROOF_VISUAL_SESSION_VERSION, VisualProofSessionMismatch, buildVisualProofSession, compareVisualProofSessionFingerprint, parseVisualProofSession, visualSessionFingerprint, visualSessionFingerprintBasis } from './proof-session.cjs';
11
11
  export { AssessPlayabilityOptions, RIDDLE_PROOF_PLAYABILITY_ASSESSMENT_VERSION, RIDDLE_PROOF_PLAYABILITY_VERSION, RiddleProofPlayabilityAssessment, RiddleProofPlayabilityEvidence, assessPlayabilityEvidence, extractPlayabilityEvidence, isRiddleProofPlayabilityMode } from './playability.cjs';
12
- export { AssessBasicGameplayOptions, AttachBasicGameplayArtifactOptions, BASIC_GAMEPLAY_ACTION_TYPES, BASIC_GAMEPLAY_PROGRESS_CHECK_TYPES, BasicGameplayActionResult, BasicGameplayActionType, BasicGameplayArtifactResolution, BasicGameplayAssessmentSummary, BasicGameplayCanvasState, BasicGameplayCatchRecord, BasicGameplayChangeSummary, BasicGameplayFailureCode, BasicGameplayFixReference, BasicGameplayMetric, BasicGameplayMobileEvidence, BasicGameplayProgressCheckType, BasicGameplayProgressionCheck, BasicGameplayProofArtifact, 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';
12
+ export { AssessBasicGameplayOptions, AttachBasicGameplayArtifactOptions, BASIC_GAMEPLAY_ACTION_TYPES, BASIC_GAMEPLAY_PROGRESS_CHECK_TYPES, BasicGameplayActionResult, BasicGameplayActionType, BasicGameplayArtifactResolution, BasicGameplayAssessmentSummary, 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';
13
13
  export { NormalizeRiddleProofProfileOptions, RIDDLE_PROOF_PROFILE_CHECK_TYPES, RIDDLE_PROOF_PROFILE_EVIDENCE_VERSION, RIDDLE_PROOF_PROFILE_RESULT_VERSION, RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES, RIDDLE_PROOF_PROFILE_STATUSES, RIDDLE_PROOF_PROFILE_VERSION, RiddleProofProfile, RiddleProofProfileArtifactRef, RiddleProofProfileBaselinePolicy, RiddleProofProfileCheck, RiddleProofProfileCheckResult, RiddleProofProfileCheckType, RiddleProofProfileEvidence, RiddleProofProfileFailureAction, RiddleProofProfileResult, RiddleProofProfileRouteEvidence, RiddleProofProfileRunner, RiddleProofProfileSetupAction, RiddleProofProfileSetupActionType, RiddleProofProfileStatus, RiddleProofProfileTarget, RiddleProofProfileViewport, RiddleProofProfileViewportEvidence, assessRiddleProofProfileEvidence, buildRiddleProofProfileScript, collectRiddleProfileArtifactRefs, createRiddleProofProfileConfigurationError, createRiddleProofProfileEnvironmentBlockedResult, createRiddleProofProfileInsufficientResult, extractRiddleProofProfileResult, normalizeRiddleProofProfile, profileStatusExitCode, resolveRiddleProofProfileRouteUrl, resolveRiddleProofProfileTargetUrl, resolveRiddleProofProfileTimeoutSec, slugifyRiddleProofProfileName, summarizeRiddleProofProfileResult } from './profile.cjs';
14
14
  export { DEFAULT_RIDDLE_API_BASE_URL, DEFAULT_RIDDLE_API_KEY_FILE, RiddleApiError, RiddleClientConfig, RiddleFetch, RiddlePollJobResult, RiddlePreviewDeployResult, RiddleRunScriptInput, RiddleServerPreviewInput, RiddleServerPreviewResult, createRiddleApiClient, deployRiddleStaticPreview, isTerminalRiddleJobStatus, parseRiddleViewport, pollRiddleJob, resolveRiddleApiKey, riddleRequestJson, runRiddleScript, runRiddleServerPreview } from './riddle-client.cjs';
package/dist/index.d.ts CHANGED
@@ -9,6 +9,6 @@ export { CodexExecAgentConfig, CodexJsonRequest, CodexJsonResult, CodexJsonRunne
9
9
  export { CreateCaptureDiagnosticInput, DEFAULT_DIAGNOSTIC_ARRAY_LIMIT, DEFAULT_DIAGNOSTIC_HISTORY_LIMIT, DEFAULT_DIAGNOSTIC_STRING_LIMIT, RIDDLE_PROOF_CAPTURE_DIAGNOSTIC_VERSION, RiddleProofArtifactSummary, RiddleProofCaptureArtifactSummary, RiddleProofCaptureDiagnostic, RiddleProofDiagnosticRedactionOptions, appendCaptureDiagnostic, createCaptureDiagnostic, redactForProofDiagnostics, summarizeCaptureArtifacts } from './diagnostics.js';
10
10
  export { BuildVisualProofSessionInput, RIDDLE_PROOF_VISUAL_SESSION_FINGERPRINT_VERSION, RIDDLE_PROOF_VISUAL_SESSION_VERSION, VisualProofSessionMismatch, buildVisualProofSession, compareVisualProofSessionFingerprint, parseVisualProofSession, visualSessionFingerprint, visualSessionFingerprintBasis } from './proof-session.js';
11
11
  export { AssessPlayabilityOptions, RIDDLE_PROOF_PLAYABILITY_ASSESSMENT_VERSION, RIDDLE_PROOF_PLAYABILITY_VERSION, RiddleProofPlayabilityAssessment, RiddleProofPlayabilityEvidence, assessPlayabilityEvidence, extractPlayabilityEvidence, isRiddleProofPlayabilityMode } from './playability.js';
12
- export { AssessBasicGameplayOptions, AttachBasicGameplayArtifactOptions, BASIC_GAMEPLAY_ACTION_TYPES, BASIC_GAMEPLAY_PROGRESS_CHECK_TYPES, BasicGameplayActionResult, BasicGameplayActionType, BasicGameplayArtifactResolution, BasicGameplayAssessmentSummary, BasicGameplayCanvasState, BasicGameplayCatchRecord, BasicGameplayChangeSummary, BasicGameplayFailureCode, BasicGameplayFixReference, BasicGameplayMetric, BasicGameplayMobileEvidence, BasicGameplayProgressCheckType, BasicGameplayProgressionCheck, BasicGameplayProofArtifact, 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';
12
+ export { AssessBasicGameplayOptions, AttachBasicGameplayArtifactOptions, BASIC_GAMEPLAY_ACTION_TYPES, BASIC_GAMEPLAY_PROGRESS_CHECK_TYPES, BasicGameplayActionResult, BasicGameplayActionType, BasicGameplayArtifactResolution, BasicGameplayAssessmentSummary, 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';
13
13
  export { NormalizeRiddleProofProfileOptions, RIDDLE_PROOF_PROFILE_CHECK_TYPES, RIDDLE_PROOF_PROFILE_EVIDENCE_VERSION, RIDDLE_PROOF_PROFILE_RESULT_VERSION, RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES, RIDDLE_PROOF_PROFILE_STATUSES, RIDDLE_PROOF_PROFILE_VERSION, RiddleProofProfile, RiddleProofProfileArtifactRef, RiddleProofProfileBaselinePolicy, RiddleProofProfileCheck, RiddleProofProfileCheckResult, RiddleProofProfileCheckType, RiddleProofProfileEvidence, RiddleProofProfileFailureAction, RiddleProofProfileResult, RiddleProofProfileRouteEvidence, RiddleProofProfileRunner, RiddleProofProfileSetupAction, RiddleProofProfileSetupActionType, RiddleProofProfileStatus, RiddleProofProfileTarget, RiddleProofProfileViewport, RiddleProofProfileViewportEvidence, assessRiddleProofProfileEvidence, buildRiddleProofProfileScript, collectRiddleProfileArtifactRefs, createRiddleProofProfileConfigurationError, createRiddleProofProfileEnvironmentBlockedResult, createRiddleProofProfileInsufficientResult, extractRiddleProofProfileResult, normalizeRiddleProofProfile, profileStatusExitCode, resolveRiddleProofProfileRouteUrl, resolveRiddleProofProfileTargetUrl, resolveRiddleProofProfileTimeoutSec, slugifyRiddleProofProfileName, summarizeRiddleProofProfileResult } from './profile.js';
14
14
  export { DEFAULT_RIDDLE_API_BASE_URL, DEFAULT_RIDDLE_API_KEY_FILE, RiddleApiError, RiddleClientConfig, RiddleFetch, RiddlePollJobResult, RiddlePreviewDeployResult, RiddleRunScriptInput, RiddleServerPreviewInput, RiddleServerPreviewResult, createRiddleApiClient, deployRiddleStaticPreview, isTerminalRiddleJobStatus, parseRiddleViewport, pollRiddleJob, resolveRiddleApiKey, riddleRequestJson, runRiddleScript, runRiddleServerPreview } from './riddle-client.js';
package/dist/index.js CHANGED
@@ -36,7 +36,7 @@ import {
36
36
  extractBasicGameplayEvidence,
37
37
  resolveBasicGameplayProgressionCheckWithArtifactScreenshots,
38
38
  sanitizeBasicGameplayJsonString
39
- } from "./chunk-GHQR2VEI.js";
39
+ } from "./chunk-6H742VFJ.js";
40
40
  import {
41
41
  RIDDLE_PROOF_PROFILE_CHECK_TYPES,
42
42
  RIDDLE_PROOF_PROFILE_EVIDENCE_VERSION,
@@ -292,7 +292,7 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
292
292
  blocking?: boolean;
293
293
  details?: Record<string, unknown>;
294
294
  ok: boolean;
295
- action: "recon" | "author" | "ship" | "implement" | "verify" | "setup" | "run";
295
+ action: "setup" | "recon" | "author" | "implement" | "verify" | "ship" | "run";
296
296
  state_path: string;
297
297
  stage: any;
298
298
  summary: string;
@@ -382,7 +382,7 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
382
382
  continueWithStage?: WorkflowStage | null;
383
383
  blocking?: boolean;
384
384
  details?: Record<string, unknown>;
385
- action: "recon" | "author" | "ship" | "implement" | "verify" | "setup" | "run";
385
+ action: "setup" | "recon" | "author" | "implement" | "verify" | "ship" | "run";
386
386
  state_path: string;
387
387
  stage: any;
388
388
  checkpoint: string;
@@ -659,7 +659,7 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
659
659
  error?: undefined;
660
660
  } | {
661
661
  ok: boolean;
662
- action: "recon" | "author" | "ship" | "implement" | "verify" | "setup" | "run";
662
+ action: "setup" | "recon" | "author" | "implement" | "verify" | "ship" | "run";
663
663
  state_path: string;
664
664
  stage: any;
665
665
  summary: string;
@@ -292,7 +292,7 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
292
292
  blocking?: boolean;
293
293
  details?: Record<string, unknown>;
294
294
  ok: boolean;
295
- action: "recon" | "author" | "ship" | "implement" | "verify" | "setup" | "run";
295
+ action: "setup" | "recon" | "author" | "implement" | "verify" | "ship" | "run";
296
296
  state_path: string;
297
297
  stage: any;
298
298
  summary: string;
@@ -382,7 +382,7 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
382
382
  continueWithStage?: WorkflowStage | null;
383
383
  blocking?: boolean;
384
384
  details?: Record<string, unknown>;
385
- action: "recon" | "author" | "ship" | "implement" | "verify" | "setup" | "run";
385
+ action: "setup" | "recon" | "author" | "implement" | "verify" | "ship" | "run";
386
386
  state_path: string;
387
387
  stage: any;
388
388
  checkpoint: string;
@@ -659,7 +659,7 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
659
659
  error?: undefined;
660
660
  } | {
661
661
  ok: boolean;
662
- action: "recon" | "author" | "ship" | "implement" | "verify" | "setup" | "run";
662
+ action: "setup" | "recon" | "author" | "implement" | "verify" | "ship" | "run";
663
663
  state_path: string;
664
664
  stage: any;
665
665
  summary: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@riddledc/riddle-proof",
3
- "version": "0.7.17",
3
+ "version": "0.7.18",
4
4
  "description": "Reusable Riddle Proof contracts and helpers for evidence-backed agent changes.",
5
5
  "license": "MIT",
6
6
  "author": "RiddleDC",