@riddledc/riddle-proof 0.7.221 → 0.7.223

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.
Files changed (3) hide show
  1. package/dist/cli.cjs +41 -11
  2. package/dist/cli.js +41 -11
  3. package/package.json +1 -1
package/dist/cli.cjs CHANGED
@@ -17575,6 +17575,10 @@ function profileSemanticWinnerReason(receipts, text) {
17575
17575
  const asksCounts = text.includes("count");
17576
17576
  const asksWinCells = text.includes("win-cell") || text.includes("winning") || text.includes("inventory") || text.includes("top-row");
17577
17577
  const asksPlayAgain = text.includes("play again") || text.includes("play-again") || text.includes("playagain");
17578
+ const asksNewGame = text.includes("new game") || text.includes("new-game") || text.includes("newgame");
17579
+ const asksNewRound = text.includes("new round") || text.includes("new-round") || text.includes("newround");
17580
+ const asksNewRoute = text.includes("new route") || text.includes("new-route") || text.includes("newroute");
17581
+ const asksRestartReset = text.includes("restart") || text.includes("reset");
17578
17582
  for (const receipt of receipts) {
17579
17583
  if (!profileSemanticReceiptPassed(receipt)) continue;
17580
17584
  const winnerText = (cliString(setupReturnSummaryValue(receipt, ["winnerText", "terminalText", "statusText"])) || "").toLowerCase();
@@ -17591,17 +17595,43 @@ function profileSemanticWinnerReason(receipts, text) {
17591
17595
  const hasWinCells = profileSemanticArrayEvidence(setupReturnSummaryValue(receipt, ["winCells", "winningCells", "winningLine"])) || Boolean(cliString(setupReturnSummaryValue(receipt, ["winCellsCsv"])));
17592
17596
  const hasPlayAgain = profileSemanticTruthyField(receipt, [
17593
17597
  "playAgainVisible",
17594
- "play_again_visible",
17598
+ "play_again_visible"
17599
+ ]);
17600
+ const hasNewGame = profileSemanticTruthyField(receipt, [
17601
+ "hasNewGame",
17602
+ "newGameVisible",
17603
+ "new_game_visible"
17604
+ ]);
17605
+ const hasNewRound = profileSemanticTruthyField(receipt, [
17606
+ "hasNewRound",
17607
+ "newRoundVisible",
17608
+ "new_round_visible"
17609
+ ]);
17610
+ const hasNewRoute = profileSemanticTruthyField(receipt, [
17611
+ "hasNewRoute",
17612
+ "newRouteVisible",
17613
+ "new_route_visible"
17614
+ ]);
17615
+ const hasRestartReset = profileSemanticTruthyField(receipt, [
17595
17616
  "restartVisible",
17596
- "resetVisible"
17617
+ "restart_visible",
17618
+ "resetVisible",
17619
+ "reset_visible"
17597
17620
  ]);
17598
17621
  if (asksCounts && !hasCounts) continue;
17599
17622
  if (asksWinCells && !hasWinCells) continue;
17600
17623
  if (asksPlayAgain && !hasPlayAgain) continue;
17624
+ if (asksNewGame && !hasNewGame) continue;
17625
+ if (asksNewRound && !hasNewRound) continue;
17626
+ if (asksNewRoute && !hasNewRoute) continue;
17627
+ if (asksRestartReset && !(hasPlayAgain || hasNewGame || hasNewRound || hasNewRoute || hasRestartReset)) continue;
17628
+ const hasResetStyleRecovery = hasNewGame || hasNewRound || hasNewRoute || hasRestartReset;
17629
+ const matchedRequestedResetStyle = !asksPlayAgain && (asksNewGame && hasNewGame || asksNewRound && hasNewRound || asksNewRoute && hasNewRoute || asksRestartReset && hasResetStyleRecovery);
17630
+ const recoveryControlReason = matchedRequestedResetStyle || !hasPlayAgain && hasResetStyleRecovery ? "restart/reset visible" : hasPlayAgain ? "play-again visible" : "";
17601
17631
  const parts = [
17602
17632
  hasCounts ? "counts present" : "",
17603
17633
  hasWinCells ? "win cells present" : "",
17604
- hasPlayAgain ? "play-again visible" : ""
17634
+ recoveryControlReason
17605
17635
  ].filter(Boolean);
17606
17636
  return `semantic winner receipt present${parts.length ? `: ${parts.join(", ")}` : ""}`;
17607
17637
  }
@@ -17855,6 +17885,14 @@ function profilePackReceiptStatus(result, metadata, receipt) {
17855
17885
  }
17856
17886
  return profileReceiptSignalStatus(hasTextAbsence, "absence check passed", "absence check missing");
17857
17887
  }
17888
+ if (text.includes("screenshot")) {
17889
+ const needsBoundaryScreenshots = text.includes("each") || text.includes("before and after") || text.includes("state boundary") || text.includes("boundaries");
17890
+ return profileReceiptSignalStatus(
17891
+ needsBoundaryScreenshots ? screenshotCount >= 2 : screenshotCount > 0,
17892
+ needsBoundaryScreenshots ? "multiple screenshots present" : "screenshot evidence present",
17893
+ needsBoundaryScreenshots ? "multiple screenshots missing" : "screenshot evidence missing"
17894
+ );
17895
+ }
17858
17896
  if (text.includes("generated-output") || text.includes("generated output") || text.includes("output-size") || text.includes("output size") || (text.includes("output") || text.includes("result")) && (text.includes("mutation") || text.includes("final"))) {
17859
17897
  return profileReceiptSignalStatus(
17860
17898
  hasGeneratedOutputContract && hasGeneratedOutputReceipt,
@@ -17967,14 +18005,6 @@ function profilePackReceiptStatus(result, metadata, receipt) {
17967
18005
  "visible cleanup affordance receipt missing"
17968
18006
  );
17969
18007
  }
17970
- if (text.includes("screenshot")) {
17971
- const needsBoundaryScreenshots = text.includes("each") || text.includes("before and after") || text.includes("state boundary");
17972
- return profileReceiptSignalStatus(
17973
- needsBoundaryScreenshots ? screenshotCount >= 2 : screenshotCount > 0,
17974
- needsBoundaryScreenshots ? "multiple screenshots present" : "screenshot evidence present",
17975
- needsBoundaryScreenshots ? "multiple screenshots missing" : "screenshot evidence missing"
17976
- );
17977
- }
17978
18008
  if (text.includes("input") && (text.includes("sequence") || text.includes("short-long") || text.includes("short long") || text.includes("long-short") || text.includes("long long") || text.includes("long short"))) {
17979
18009
  return profileReceiptSignalStatus(
17980
18010
  hasSequenceInputReceipt,
package/dist/cli.js CHANGED
@@ -1284,6 +1284,10 @@ function profileSemanticWinnerReason(receipts, text) {
1284
1284
  const asksCounts = text.includes("count");
1285
1285
  const asksWinCells = text.includes("win-cell") || text.includes("winning") || text.includes("inventory") || text.includes("top-row");
1286
1286
  const asksPlayAgain = text.includes("play again") || text.includes("play-again") || text.includes("playagain");
1287
+ const asksNewGame = text.includes("new game") || text.includes("new-game") || text.includes("newgame");
1288
+ const asksNewRound = text.includes("new round") || text.includes("new-round") || text.includes("newround");
1289
+ const asksNewRoute = text.includes("new route") || text.includes("new-route") || text.includes("newroute");
1290
+ const asksRestartReset = text.includes("restart") || text.includes("reset");
1287
1291
  for (const receipt of receipts) {
1288
1292
  if (!profileSemanticReceiptPassed(receipt)) continue;
1289
1293
  const winnerText = (cliString(setupReturnSummaryValue(receipt, ["winnerText", "terminalText", "statusText"])) || "").toLowerCase();
@@ -1300,17 +1304,43 @@ function profileSemanticWinnerReason(receipts, text) {
1300
1304
  const hasWinCells = profileSemanticArrayEvidence(setupReturnSummaryValue(receipt, ["winCells", "winningCells", "winningLine"])) || Boolean(cliString(setupReturnSummaryValue(receipt, ["winCellsCsv"])));
1301
1305
  const hasPlayAgain = profileSemanticTruthyField(receipt, [
1302
1306
  "playAgainVisible",
1303
- "play_again_visible",
1307
+ "play_again_visible"
1308
+ ]);
1309
+ const hasNewGame = profileSemanticTruthyField(receipt, [
1310
+ "hasNewGame",
1311
+ "newGameVisible",
1312
+ "new_game_visible"
1313
+ ]);
1314
+ const hasNewRound = profileSemanticTruthyField(receipt, [
1315
+ "hasNewRound",
1316
+ "newRoundVisible",
1317
+ "new_round_visible"
1318
+ ]);
1319
+ const hasNewRoute = profileSemanticTruthyField(receipt, [
1320
+ "hasNewRoute",
1321
+ "newRouteVisible",
1322
+ "new_route_visible"
1323
+ ]);
1324
+ const hasRestartReset = profileSemanticTruthyField(receipt, [
1304
1325
  "restartVisible",
1305
- "resetVisible"
1326
+ "restart_visible",
1327
+ "resetVisible",
1328
+ "reset_visible"
1306
1329
  ]);
1307
1330
  if (asksCounts && !hasCounts) continue;
1308
1331
  if (asksWinCells && !hasWinCells) continue;
1309
1332
  if (asksPlayAgain && !hasPlayAgain) continue;
1333
+ if (asksNewGame && !hasNewGame) continue;
1334
+ if (asksNewRound && !hasNewRound) continue;
1335
+ if (asksNewRoute && !hasNewRoute) continue;
1336
+ if (asksRestartReset && !(hasPlayAgain || hasNewGame || hasNewRound || hasNewRoute || hasRestartReset)) continue;
1337
+ const hasResetStyleRecovery = hasNewGame || hasNewRound || hasNewRoute || hasRestartReset;
1338
+ const matchedRequestedResetStyle = !asksPlayAgain && (asksNewGame && hasNewGame || asksNewRound && hasNewRound || asksNewRoute && hasNewRoute || asksRestartReset && hasResetStyleRecovery);
1339
+ const recoveryControlReason = matchedRequestedResetStyle || !hasPlayAgain && hasResetStyleRecovery ? "restart/reset visible" : hasPlayAgain ? "play-again visible" : "";
1310
1340
  const parts = [
1311
1341
  hasCounts ? "counts present" : "",
1312
1342
  hasWinCells ? "win cells present" : "",
1313
- hasPlayAgain ? "play-again visible" : ""
1343
+ recoveryControlReason
1314
1344
  ].filter(Boolean);
1315
1345
  return `semantic winner receipt present${parts.length ? `: ${parts.join(", ")}` : ""}`;
1316
1346
  }
@@ -1564,6 +1594,14 @@ function profilePackReceiptStatus(result, metadata, receipt) {
1564
1594
  }
1565
1595
  return profileReceiptSignalStatus(hasTextAbsence, "absence check passed", "absence check missing");
1566
1596
  }
1597
+ if (text.includes("screenshot")) {
1598
+ const needsBoundaryScreenshots = text.includes("each") || text.includes("before and after") || text.includes("state boundary") || text.includes("boundaries");
1599
+ return profileReceiptSignalStatus(
1600
+ needsBoundaryScreenshots ? screenshotCount >= 2 : screenshotCount > 0,
1601
+ needsBoundaryScreenshots ? "multiple screenshots present" : "screenshot evidence present",
1602
+ needsBoundaryScreenshots ? "multiple screenshots missing" : "screenshot evidence missing"
1603
+ );
1604
+ }
1567
1605
  if (text.includes("generated-output") || text.includes("generated output") || text.includes("output-size") || text.includes("output size") || (text.includes("output") || text.includes("result")) && (text.includes("mutation") || text.includes("final"))) {
1568
1606
  return profileReceiptSignalStatus(
1569
1607
  hasGeneratedOutputContract && hasGeneratedOutputReceipt,
@@ -1676,14 +1714,6 @@ function profilePackReceiptStatus(result, metadata, receipt) {
1676
1714
  "visible cleanup affordance receipt missing"
1677
1715
  );
1678
1716
  }
1679
- if (text.includes("screenshot")) {
1680
- const needsBoundaryScreenshots = text.includes("each") || text.includes("before and after") || text.includes("state boundary");
1681
- return profileReceiptSignalStatus(
1682
- needsBoundaryScreenshots ? screenshotCount >= 2 : screenshotCount > 0,
1683
- needsBoundaryScreenshots ? "multiple screenshots present" : "screenshot evidence present",
1684
- needsBoundaryScreenshots ? "multiple screenshots missing" : "screenshot evidence missing"
1685
- );
1686
- }
1687
1717
  if (text.includes("input") && (text.includes("sequence") || text.includes("short-long") || text.includes("short long") || text.includes("long-short") || text.includes("long long") || text.includes("long short"))) {
1688
1718
  return profileReceiptSignalStatus(
1689
1719
  hasSequenceInputReceipt,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@riddledc/riddle-proof",
3
- "version": "0.7.221",
3
+ "version": "0.7.223",
4
4
  "description": "Reusable Riddle Proof contracts and helpers for evidence-backed agent changes.",
5
5
  "license": "MIT",
6
6
  "author": "RiddleDC",