@riddledc/riddle-proof 0.7.205 → 0.7.207

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
@@ -17041,6 +17041,23 @@ function profileHasTerminalLossReceipt(receipts) {
17041
17041
  return lastFlightLost || outOfBounds || ["over", "lost", "loss", "failed", "failure", "game_over", "gameover"].includes(status) || ["lost", "loss", "failed", "failure", "game_over", "gameover"].includes(outcome);
17042
17042
  });
17043
17043
  }
17044
+ function profileHasTerminalGameOverReceipt(receipts) {
17045
+ return receipts.some((receipt) => {
17046
+ const status = profileLowerSummaryValue(receipt, ["status", "state", "phase"]);
17047
+ const outcome = profileLowerSummaryValue(receipt, ["lastOutcome", "outcome", "terminalOutcome", "terminal", "result"]);
17048
+ const gameOver = setupReturnSummaryValue(receipt, ["gameOver", "game_over", "isGameOver"]) === true;
17049
+ const caught = setupReturnSummaryValue(receipt, ["caught", "playerCaught", "wasCaught"]) === true;
17050
+ const storedTo = cliString(receipt.return_stored_to) || "";
17051
+ const label = cliString(receipt.label) || "";
17052
+ const path7 = cliString(receipt.path) || cliString(receipt.function_name) || "";
17053
+ const slot = cliString(setupReturnSummaryValue(receipt, ["slot"])) || "";
17054
+ const haystack = `${storedTo} ${label} ${path7} ${slot}`.toLowerCase();
17055
+ const labelsTerminal = haystack.includes("gameover") || haystack.includes("game_over") || haystack.includes("game-over") || haystack.includes("game over") || haystack.includes("terminal") || haystack.includes("caught") || haystack.includes("catch");
17056
+ const terminalStatus = ["over", "game_over", "gameover"].includes(status) || ["game_over", "gameover"].includes(outcome);
17057
+ if (!labelsTerminal && !caught && !gameOver && !terminalStatus) return false;
17058
+ return gameOver || caught || terminalStatus;
17059
+ });
17060
+ }
17044
17061
  function profileHasTerminalSuccessReceipt(receipts) {
17045
17062
  return receipts.some((receipt) => {
17046
17063
  const status = profileLowerSummaryValue(receipt, ["status", "state", "phase"]);
@@ -17206,11 +17223,26 @@ function profilePackReceiptStatus(result, metadata, receipt) {
17206
17223
  const hasTextVisibility = profileHasPassedCheck(result, ["text_visible", "selector_text_visible", "selector_visible"]);
17207
17224
  const hasTextAbsence = profileHasPassedCheck(result, ["text_absent", "selector_text_absent"]);
17208
17225
  const hasMeasuredStateChange = hasNaturalInput || hasCanvasChange || valueReceipts.some((item) => setupReturnSummaryValue(item, ["changed"]) === true || setupReturnSummaryValue(item, ["nonWhiteDelta", "darkDelta", "pixelDelta", "movementDelta"]) !== void 0);
17226
+ const hasMovingPlayabilityReceipt = valueReceipts.some((item) => {
17227
+ const started = setupReturnSummaryValue(item, ["started", "runStarted", "playStarted"]) === true;
17228
+ const distance = cliFiniteNumber(setupReturnSummaryValue(item, ["distance", "distanceMeters", "travelDistance"]));
17229
+ const speed = cliFiniteNumber(setupReturnSummaryValue(item, ["speed", "velocity"]));
17230
+ return started && (distance !== void 0 && distance > 0 || speed !== void 0 && speed > 0);
17231
+ });
17232
+ const hasAcceptedPlayabilityInputReceipt = valueReceipts.some((item) => {
17233
+ const accepted = setupReturnSummaryValue(item, ["acceptedInput", "inputAccepted", "steeringAccepted", "touchInputAccepted"]) === true;
17234
+ const inputModality = (cliString(setupReturnSummaryValue(item, ["inputModality", "inputKind", "pointerType", "modality"])) || "").toLowerCase();
17235
+ const distance = cliFiniteNumber(setupReturnSummaryValue(item, ["distance", "distanceMeters", "travelDistance"]));
17236
+ const speed = cliFiniteNumber(setupReturnSummaryValue(item, ["speed", "velocity"]));
17237
+ const moving = distance !== void 0 && distance > 0 || speed !== void 0 && speed > 0;
17238
+ return accepted && Boolean(inputModality) && inputModality !== "none" && moving;
17239
+ });
17209
17240
  const hasRouteExitAffordanceReceipt = profileHasRouteExitAffordanceReceipt(valueReceipts);
17210
17241
  const hasCleanupBoundaryAffordanceReceipt = profileHasCleanupBoundaryAffordanceReceipt(valueReceipts);
17211
17242
  const hasOfflineAudioMetricsReceipt = profileHasOfflineAudioMetricsReceipt(valueReceipts);
17212
17243
  const hasActiveRouteLocalProofReceipt = profileHasActiveRouteLocalProofReceipt(valueReceipts);
17213
17244
  const hasTerminalLossReceipt = profileHasTerminalLossReceipt(valueReceipts);
17245
+ const hasTerminalGameOverReceipt = profileHasTerminalGameOverReceipt(valueReceipts);
17214
17246
  const hasTerminalSuccessReceipt = profileHasTerminalSuccessReceipt(valueReceipts);
17215
17247
  const hasControlledFailureLaunchReceipt = profileHasControlledLaunchReceipt(valueReceipts, "failure");
17216
17248
  const hasControlledSuccessLaunchReceipt = profileHasControlledLaunchReceipt(valueReceipts, "success");
@@ -17251,7 +17283,7 @@ function profilePackReceiptStatus(result, metadata, receipt) {
17251
17283
  "tap_until receipt missing"
17252
17284
  );
17253
17285
  }
17254
- if (text.includes("active") && (text.includes("route-local") || text.includes("route local")) && (text.includes("proof helper") || text.includes("proof api") || text.includes("proof state"))) {
17286
+ 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"))) {
17255
17287
  return profileReceiptSignalStatus(
17256
17288
  hasActiveRouteLocalProofReceipt,
17257
17289
  "active route-local proof receipt present",
@@ -17299,6 +17331,13 @@ function profilePackReceiptStatus(result, metadata, receipt) {
17299
17331
  "terminal loss receipt missing"
17300
17332
  );
17301
17333
  }
17334
+ if (text.includes("terminal") && (text.includes("game-over") || text.includes("game over") || text.includes("gameover") || text.includes("caught") || text.includes("catch"))) {
17335
+ return profileReceiptSignalStatus(
17336
+ hasTerminalGameOverReceipt,
17337
+ "terminal game-over receipt present",
17338
+ "terminal game-over receipt missing"
17339
+ );
17340
+ }
17302
17341
  if (text.includes("success") && text.includes("terminal")) {
17303
17342
  return profileReceiptSignalStatus(
17304
17343
  hasTerminalSuccessReceipt,
@@ -17418,6 +17457,16 @@ function profilePackReceiptStatus(result, metadata, receipt) {
17418
17457
  needsBoundaryScreenshots ? "multiple screenshots missing" : "screenshot evidence missing"
17419
17458
  );
17420
17459
  }
17460
+ if (text.includes("input") && (text.includes("playability") || text.includes("moving") || text.includes("steering") || text.includes("real") || text.includes("natural"))) {
17461
+ const needsAcceptedInput = text.includes("steering") || text.includes("accepted");
17462
+ const hasInputDispatch = inputDispatchCount > 0 || hasNaturalInput;
17463
+ const hasInputStateReceipt = needsAcceptedInput ? hasAcceptedPlayabilityInputReceipt : hasAcceptedPlayabilityInputReceipt || hasMovingPlayabilityReceipt;
17464
+ return profileReceiptSignalStatus(
17465
+ hasInputDispatch && hasInputStateReceipt,
17466
+ needsAcceptedInput ? "accepted playability input receipt present" : "playability input receipt present",
17467
+ needsAcceptedInput ? "accepted playability input receipt missing" : "playability input receipt missing"
17468
+ );
17469
+ }
17421
17470
  if (text.includes("input dispatch") || text.includes("pointer") || text.includes("touch") || text.includes("key event") || text.includes("trusted-event")) {
17422
17471
  return profileReceiptSignalStatus(inputDispatchCount > 0 || hasNaturalInput, "input dispatch evidence present", "input dispatch evidence missing");
17423
17472
  }
package/dist/cli.js CHANGED
@@ -866,6 +866,23 @@ function profileHasTerminalLossReceipt(receipts) {
866
866
  return lastFlightLost || outOfBounds || ["over", "lost", "loss", "failed", "failure", "game_over", "gameover"].includes(status) || ["lost", "loss", "failed", "failure", "game_over", "gameover"].includes(outcome);
867
867
  });
868
868
  }
869
+ function profileHasTerminalGameOverReceipt(receipts) {
870
+ return receipts.some((receipt) => {
871
+ const status = profileLowerSummaryValue(receipt, ["status", "state", "phase"]);
872
+ const outcome = profileLowerSummaryValue(receipt, ["lastOutcome", "outcome", "terminalOutcome", "terminal", "result"]);
873
+ const gameOver = setupReturnSummaryValue(receipt, ["gameOver", "game_over", "isGameOver"]) === true;
874
+ const caught = setupReturnSummaryValue(receipt, ["caught", "playerCaught", "wasCaught"]) === true;
875
+ const storedTo = cliString(receipt.return_stored_to) || "";
876
+ const label = cliString(receipt.label) || "";
877
+ const path2 = cliString(receipt.path) || cliString(receipt.function_name) || "";
878
+ const slot = cliString(setupReturnSummaryValue(receipt, ["slot"])) || "";
879
+ const haystack = `${storedTo} ${label} ${path2} ${slot}`.toLowerCase();
880
+ const labelsTerminal = haystack.includes("gameover") || haystack.includes("game_over") || haystack.includes("game-over") || haystack.includes("game over") || haystack.includes("terminal") || haystack.includes("caught") || haystack.includes("catch");
881
+ const terminalStatus = ["over", "game_over", "gameover"].includes(status) || ["game_over", "gameover"].includes(outcome);
882
+ if (!labelsTerminal && !caught && !gameOver && !terminalStatus) return false;
883
+ return gameOver || caught || terminalStatus;
884
+ });
885
+ }
869
886
  function profileHasTerminalSuccessReceipt(receipts) {
870
887
  return receipts.some((receipt) => {
871
888
  const status = profileLowerSummaryValue(receipt, ["status", "state", "phase"]);
@@ -1031,11 +1048,26 @@ function profilePackReceiptStatus(result, metadata, receipt) {
1031
1048
  const hasTextVisibility = profileHasPassedCheck(result, ["text_visible", "selector_text_visible", "selector_visible"]);
1032
1049
  const hasTextAbsence = profileHasPassedCheck(result, ["text_absent", "selector_text_absent"]);
1033
1050
  const hasMeasuredStateChange = hasNaturalInput || hasCanvasChange || valueReceipts.some((item) => setupReturnSummaryValue(item, ["changed"]) === true || setupReturnSummaryValue(item, ["nonWhiteDelta", "darkDelta", "pixelDelta", "movementDelta"]) !== void 0);
1051
+ const hasMovingPlayabilityReceipt = valueReceipts.some((item) => {
1052
+ const started = setupReturnSummaryValue(item, ["started", "runStarted", "playStarted"]) === true;
1053
+ const distance = cliFiniteNumber(setupReturnSummaryValue(item, ["distance", "distanceMeters", "travelDistance"]));
1054
+ const speed = cliFiniteNumber(setupReturnSummaryValue(item, ["speed", "velocity"]));
1055
+ return started && (distance !== void 0 && distance > 0 || speed !== void 0 && speed > 0);
1056
+ });
1057
+ const hasAcceptedPlayabilityInputReceipt = valueReceipts.some((item) => {
1058
+ const accepted = setupReturnSummaryValue(item, ["acceptedInput", "inputAccepted", "steeringAccepted", "touchInputAccepted"]) === true;
1059
+ const inputModality = (cliString(setupReturnSummaryValue(item, ["inputModality", "inputKind", "pointerType", "modality"])) || "").toLowerCase();
1060
+ const distance = cliFiniteNumber(setupReturnSummaryValue(item, ["distance", "distanceMeters", "travelDistance"]));
1061
+ const speed = cliFiniteNumber(setupReturnSummaryValue(item, ["speed", "velocity"]));
1062
+ const moving = distance !== void 0 && distance > 0 || speed !== void 0 && speed > 0;
1063
+ return accepted && Boolean(inputModality) && inputModality !== "none" && moving;
1064
+ });
1034
1065
  const hasRouteExitAffordanceReceipt = profileHasRouteExitAffordanceReceipt(valueReceipts);
1035
1066
  const hasCleanupBoundaryAffordanceReceipt = profileHasCleanupBoundaryAffordanceReceipt(valueReceipts);
1036
1067
  const hasOfflineAudioMetricsReceipt = profileHasOfflineAudioMetricsReceipt(valueReceipts);
1037
1068
  const hasActiveRouteLocalProofReceipt = profileHasActiveRouteLocalProofReceipt(valueReceipts);
1038
1069
  const hasTerminalLossReceipt = profileHasTerminalLossReceipt(valueReceipts);
1070
+ const hasTerminalGameOverReceipt = profileHasTerminalGameOverReceipt(valueReceipts);
1039
1071
  const hasTerminalSuccessReceipt = profileHasTerminalSuccessReceipt(valueReceipts);
1040
1072
  const hasControlledFailureLaunchReceipt = profileHasControlledLaunchReceipt(valueReceipts, "failure");
1041
1073
  const hasControlledSuccessLaunchReceipt = profileHasControlledLaunchReceipt(valueReceipts, "success");
@@ -1076,7 +1108,7 @@ function profilePackReceiptStatus(result, metadata, receipt) {
1076
1108
  "tap_until receipt missing"
1077
1109
  );
1078
1110
  }
1079
- if (text.includes("active") && (text.includes("route-local") || text.includes("route local")) && (text.includes("proof helper") || text.includes("proof api") || text.includes("proof state"))) {
1111
+ 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"))) {
1080
1112
  return profileReceiptSignalStatus(
1081
1113
  hasActiveRouteLocalProofReceipt,
1082
1114
  "active route-local proof receipt present",
@@ -1124,6 +1156,13 @@ function profilePackReceiptStatus(result, metadata, receipt) {
1124
1156
  "terminal loss receipt missing"
1125
1157
  );
1126
1158
  }
1159
+ if (text.includes("terminal") && (text.includes("game-over") || text.includes("game over") || text.includes("gameover") || text.includes("caught") || text.includes("catch"))) {
1160
+ return profileReceiptSignalStatus(
1161
+ hasTerminalGameOverReceipt,
1162
+ "terminal game-over receipt present",
1163
+ "terminal game-over receipt missing"
1164
+ );
1165
+ }
1127
1166
  if (text.includes("success") && text.includes("terminal")) {
1128
1167
  return profileReceiptSignalStatus(
1129
1168
  hasTerminalSuccessReceipt,
@@ -1243,6 +1282,16 @@ function profilePackReceiptStatus(result, metadata, receipt) {
1243
1282
  needsBoundaryScreenshots ? "multiple screenshots missing" : "screenshot evidence missing"
1244
1283
  );
1245
1284
  }
1285
+ if (text.includes("input") && (text.includes("playability") || text.includes("moving") || text.includes("steering") || text.includes("real") || text.includes("natural"))) {
1286
+ const needsAcceptedInput = text.includes("steering") || text.includes("accepted");
1287
+ const hasInputDispatch = inputDispatchCount > 0 || hasNaturalInput;
1288
+ const hasInputStateReceipt = needsAcceptedInput ? hasAcceptedPlayabilityInputReceipt : hasAcceptedPlayabilityInputReceipt || hasMovingPlayabilityReceipt;
1289
+ return profileReceiptSignalStatus(
1290
+ hasInputDispatch && hasInputStateReceipt,
1291
+ needsAcceptedInput ? "accepted playability input receipt present" : "playability input receipt present",
1292
+ needsAcceptedInput ? "accepted playability input receipt missing" : "playability input receipt missing"
1293
+ );
1294
+ }
1246
1295
  if (text.includes("input dispatch") || text.includes("pointer") || text.includes("touch") || text.includes("key event") || text.includes("trusted-event")) {
1247
1296
  return profileReceiptSignalStatus(inputDispatchCount > 0 || hasNaturalInput, "input dispatch evidence present", "input dispatch evidence missing");
1248
1297
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@riddledc/riddle-proof",
3
- "version": "0.7.205",
3
+ "version": "0.7.207",
4
4
  "description": "Reusable Riddle Proof contracts and helpers for evidence-backed agent changes.",
5
5
  "license": "MIT",
6
6
  "author": "RiddleDC",