@riddledc/riddle-proof 0.7.204 → 0.7.206

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/cli.cjs CHANGED
@@ -17145,9 +17145,14 @@ function profilePackReceiptStatus(result, metadata, receipt) {
17145
17145
  const setupScreenshotCount = profileSetupScreenshotCount(setupViewports);
17146
17146
  const screenshotCount = (result.artifacts.screenshots?.length || 0) + evidenceViewports.filter((viewport) => cliString(viewport.screenshot_label)).length + setupScreenshotCount;
17147
17147
  const windowEvalCount = profileSetupReceiptTotal(setupViewports, "window_eval");
17148
+ const setupActionValueReceipts = setupViewports.flatMap((viewport) => setupReceiptArray(viewport, "setup_action_results")).concat(evidenceViewports.flatMap((viewport) => setupReceiptArray(cliRecord(viewport) || {}, "setup_action_results"))).filter((item) => {
17149
+ const action = cliString(item.action);
17150
+ return action === "window_eval" || action === "window_call" || action === "window_call_until" || action === "assert_window_value" || action === "assert_window_number";
17151
+ });
17148
17152
  const valueReceipts = [
17149
17153
  ...setupViewports.flatMap((viewport) => setupReceiptArray(viewport, "window_eval")),
17150
- ...setupViewports.flatMap((viewport) => setupReceiptArray(viewport, "window_call"))
17154
+ ...setupViewports.flatMap((viewport) => setupReceiptArray(viewport, "window_call")),
17155
+ ...setupActionValueReceipts
17151
17156
  ].filter((item) => item.ok !== false);
17152
17157
  const clickCount = setupViewports.reduce((sum, viewport) => sum + (cliFiniteNumber(viewport.clicked_total) || 0), 0) + profileSetupReceiptTotal(setupViewports, "click") + profileSetupReceiptTotal(setupViewports, "click_count");
17153
17158
  const clickFallbackTapKeys = /* @__PURE__ */ new Set();
@@ -17201,6 +17206,20 @@ function profilePackReceiptStatus(result, metadata, receipt) {
17201
17206
  const hasTextVisibility = profileHasPassedCheck(result, ["text_visible", "selector_text_visible", "selector_visible"]);
17202
17207
  const hasTextAbsence = profileHasPassedCheck(result, ["text_absent", "selector_text_absent"]);
17203
17208
  const hasMeasuredStateChange = hasNaturalInput || hasCanvasChange || valueReceipts.some((item) => setupReturnSummaryValue(item, ["changed"]) === true || setupReturnSummaryValue(item, ["nonWhiteDelta", "darkDelta", "pixelDelta", "movementDelta"]) !== void 0);
17209
+ const hasMovingPlayabilityReceipt = valueReceipts.some((item) => {
17210
+ const started = setupReturnSummaryValue(item, ["started", "runStarted", "playStarted"]) === true;
17211
+ const distance = cliFiniteNumber(setupReturnSummaryValue(item, ["distance", "distanceMeters", "travelDistance"]));
17212
+ const speed = cliFiniteNumber(setupReturnSummaryValue(item, ["speed", "velocity"]));
17213
+ return started && (distance !== void 0 && distance > 0 || speed !== void 0 && speed > 0);
17214
+ });
17215
+ const hasAcceptedPlayabilityInputReceipt = valueReceipts.some((item) => {
17216
+ const accepted = setupReturnSummaryValue(item, ["acceptedInput", "inputAccepted", "steeringAccepted", "touchInputAccepted"]) === true;
17217
+ const inputModality = (cliString(setupReturnSummaryValue(item, ["inputModality", "inputKind", "pointerType", "modality"])) || "").toLowerCase();
17218
+ const distance = cliFiniteNumber(setupReturnSummaryValue(item, ["distance", "distanceMeters", "travelDistance"]));
17219
+ const speed = cliFiniteNumber(setupReturnSummaryValue(item, ["speed", "velocity"]));
17220
+ const moving = distance !== void 0 && distance > 0 || speed !== void 0 && speed > 0;
17221
+ return accepted && Boolean(inputModality) && inputModality !== "none" && moving;
17222
+ });
17204
17223
  const hasRouteExitAffordanceReceipt = profileHasRouteExitAffordanceReceipt(valueReceipts);
17205
17224
  const hasCleanupBoundaryAffordanceReceipt = profileHasCleanupBoundaryAffordanceReceipt(valueReceipts);
17206
17225
  const hasOfflineAudioMetricsReceipt = profileHasOfflineAudioMetricsReceipt(valueReceipts);
@@ -17246,7 +17265,7 @@ function profilePackReceiptStatus(result, metadata, receipt) {
17246
17265
  "tap_until receipt missing"
17247
17266
  );
17248
17267
  }
17249
- if (text.includes("active") && (text.includes("route-local") || text.includes("route local")) && (text.includes("proof helper") || text.includes("proof api") || text.includes("proof state"))) {
17268
+ if (text.includes("active") && (text.includes("route-local") || text.includes("route local")) && (text.includes("proof helper") || text.includes("proof api") || text.includes("proof state") || text.includes("proof globals") || text.includes("playability state"))) {
17250
17269
  return profileReceiptSignalStatus(
17251
17270
  hasActiveRouteLocalProofReceipt,
17252
17271
  "active route-local proof receipt present",
@@ -17413,6 +17432,16 @@ function profilePackReceiptStatus(result, metadata, receipt) {
17413
17432
  needsBoundaryScreenshots ? "multiple screenshots missing" : "screenshot evidence missing"
17414
17433
  );
17415
17434
  }
17435
+ if (text.includes("input") && (text.includes("playability") || text.includes("moving") || text.includes("steering") || text.includes("real") || text.includes("natural"))) {
17436
+ const needsAcceptedInput = text.includes("steering") || text.includes("accepted");
17437
+ const hasInputDispatch = inputDispatchCount > 0 || hasNaturalInput;
17438
+ const hasInputStateReceipt = needsAcceptedInput ? hasAcceptedPlayabilityInputReceipt : hasAcceptedPlayabilityInputReceipt || hasMovingPlayabilityReceipt;
17439
+ return profileReceiptSignalStatus(
17440
+ hasInputDispatch && hasInputStateReceipt,
17441
+ needsAcceptedInput ? "accepted playability input receipt present" : "playability input receipt present",
17442
+ needsAcceptedInput ? "accepted playability input receipt missing" : "playability input receipt missing"
17443
+ );
17444
+ }
17416
17445
  if (text.includes("input dispatch") || text.includes("pointer") || text.includes("touch") || text.includes("key event") || text.includes("trusted-event")) {
17417
17446
  return profileReceiptSignalStatus(inputDispatchCount > 0 || hasNaturalInput, "input dispatch evidence present", "input dispatch evidence missing");
17418
17447
  }
package/dist/cli.js CHANGED
@@ -970,9 +970,14 @@ function profilePackReceiptStatus(result, metadata, receipt) {
970
970
  const setupScreenshotCount = profileSetupScreenshotCount(setupViewports);
971
971
  const screenshotCount = (result.artifacts.screenshots?.length || 0) + evidenceViewports.filter((viewport) => cliString(viewport.screenshot_label)).length + setupScreenshotCount;
972
972
  const windowEvalCount = profileSetupReceiptTotal(setupViewports, "window_eval");
973
+ const setupActionValueReceipts = setupViewports.flatMap((viewport) => setupReceiptArray(viewport, "setup_action_results")).concat(evidenceViewports.flatMap((viewport) => setupReceiptArray(cliRecord(viewport) || {}, "setup_action_results"))).filter((item) => {
974
+ const action = cliString(item.action);
975
+ return action === "window_eval" || action === "window_call" || action === "window_call_until" || action === "assert_window_value" || action === "assert_window_number";
976
+ });
973
977
  const valueReceipts = [
974
978
  ...setupViewports.flatMap((viewport) => setupReceiptArray(viewport, "window_eval")),
975
- ...setupViewports.flatMap((viewport) => setupReceiptArray(viewport, "window_call"))
979
+ ...setupViewports.flatMap((viewport) => setupReceiptArray(viewport, "window_call")),
980
+ ...setupActionValueReceipts
976
981
  ].filter((item) => item.ok !== false);
977
982
  const clickCount = setupViewports.reduce((sum, viewport) => sum + (cliFiniteNumber(viewport.clicked_total) || 0), 0) + profileSetupReceiptTotal(setupViewports, "click") + profileSetupReceiptTotal(setupViewports, "click_count");
978
983
  const clickFallbackTapKeys = /* @__PURE__ */ new Set();
@@ -1026,6 +1031,20 @@ function profilePackReceiptStatus(result, metadata, receipt) {
1026
1031
  const hasTextVisibility = profileHasPassedCheck(result, ["text_visible", "selector_text_visible", "selector_visible"]);
1027
1032
  const hasTextAbsence = profileHasPassedCheck(result, ["text_absent", "selector_text_absent"]);
1028
1033
  const hasMeasuredStateChange = hasNaturalInput || hasCanvasChange || valueReceipts.some((item) => setupReturnSummaryValue(item, ["changed"]) === true || setupReturnSummaryValue(item, ["nonWhiteDelta", "darkDelta", "pixelDelta", "movementDelta"]) !== void 0);
1034
+ const hasMovingPlayabilityReceipt = valueReceipts.some((item) => {
1035
+ const started = setupReturnSummaryValue(item, ["started", "runStarted", "playStarted"]) === true;
1036
+ const distance = cliFiniteNumber(setupReturnSummaryValue(item, ["distance", "distanceMeters", "travelDistance"]));
1037
+ const speed = cliFiniteNumber(setupReturnSummaryValue(item, ["speed", "velocity"]));
1038
+ return started && (distance !== void 0 && distance > 0 || speed !== void 0 && speed > 0);
1039
+ });
1040
+ const hasAcceptedPlayabilityInputReceipt = valueReceipts.some((item) => {
1041
+ const accepted = setupReturnSummaryValue(item, ["acceptedInput", "inputAccepted", "steeringAccepted", "touchInputAccepted"]) === true;
1042
+ const inputModality = (cliString(setupReturnSummaryValue(item, ["inputModality", "inputKind", "pointerType", "modality"])) || "").toLowerCase();
1043
+ const distance = cliFiniteNumber(setupReturnSummaryValue(item, ["distance", "distanceMeters", "travelDistance"]));
1044
+ const speed = cliFiniteNumber(setupReturnSummaryValue(item, ["speed", "velocity"]));
1045
+ const moving = distance !== void 0 && distance > 0 || speed !== void 0 && speed > 0;
1046
+ return accepted && Boolean(inputModality) && inputModality !== "none" && moving;
1047
+ });
1029
1048
  const hasRouteExitAffordanceReceipt = profileHasRouteExitAffordanceReceipt(valueReceipts);
1030
1049
  const hasCleanupBoundaryAffordanceReceipt = profileHasCleanupBoundaryAffordanceReceipt(valueReceipts);
1031
1050
  const hasOfflineAudioMetricsReceipt = profileHasOfflineAudioMetricsReceipt(valueReceipts);
@@ -1071,7 +1090,7 @@ function profilePackReceiptStatus(result, metadata, receipt) {
1071
1090
  "tap_until receipt missing"
1072
1091
  );
1073
1092
  }
1074
- if (text.includes("active") && (text.includes("route-local") || text.includes("route local")) && (text.includes("proof helper") || text.includes("proof api") || text.includes("proof state"))) {
1093
+ if (text.includes("active") && (text.includes("route-local") || text.includes("route local")) && (text.includes("proof helper") || text.includes("proof api") || text.includes("proof state") || text.includes("proof globals") || text.includes("playability state"))) {
1075
1094
  return profileReceiptSignalStatus(
1076
1095
  hasActiveRouteLocalProofReceipt,
1077
1096
  "active route-local proof receipt present",
@@ -1238,6 +1257,16 @@ function profilePackReceiptStatus(result, metadata, receipt) {
1238
1257
  needsBoundaryScreenshots ? "multiple screenshots missing" : "screenshot evidence missing"
1239
1258
  );
1240
1259
  }
1260
+ if (text.includes("input") && (text.includes("playability") || text.includes("moving") || text.includes("steering") || text.includes("real") || text.includes("natural"))) {
1261
+ const needsAcceptedInput = text.includes("steering") || text.includes("accepted");
1262
+ const hasInputDispatch = inputDispatchCount > 0 || hasNaturalInput;
1263
+ const hasInputStateReceipt = needsAcceptedInput ? hasAcceptedPlayabilityInputReceipt : hasAcceptedPlayabilityInputReceipt || hasMovingPlayabilityReceipt;
1264
+ return profileReceiptSignalStatus(
1265
+ hasInputDispatch && hasInputStateReceipt,
1266
+ needsAcceptedInput ? "accepted playability input receipt present" : "playability input receipt present",
1267
+ needsAcceptedInput ? "accepted playability input receipt missing" : "playability input receipt missing"
1268
+ );
1269
+ }
1241
1270
  if (text.includes("input dispatch") || text.includes("pointer") || text.includes("touch") || text.includes("key event") || text.includes("trusted-event")) {
1242
1271
  return profileReceiptSignalStatus(inputDispatchCount > 0 || hasNaturalInput, "input dispatch evidence present", "input dispatch evidence missing");
1243
1272
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@riddledc/riddle-proof",
3
- "version": "0.7.204",
3
+ "version": "0.7.206",
4
4
  "description": "Reusable Riddle Proof contracts and helpers for evidence-backed agent changes.",
5
5
  "license": "MIT",
6
6
  "author": "RiddleDC",