@riddledc/riddle-proof 0.7.186 → 0.7.188

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
@@ -16406,6 +16406,24 @@ function profileHasRouteExitAffordanceReceipt(receipts) {
16406
16406
  return routeFields.some((name) => setupReturnSummaryValue(receipt, [name]) !== void 0) || haystack.includes("route=") || haystack.includes("browserpath=");
16407
16407
  });
16408
16408
  }
16409
+ function profileHasOfflineAudioMetricsReceipt(receipts) {
16410
+ const metricFields = [
16411
+ "mixPeak",
16412
+ "mixRms",
16413
+ "maxPeak",
16414
+ "avgRms",
16415
+ "audioPeak",
16416
+ "audioRms",
16417
+ "offlinePeak",
16418
+ "offlineRms",
16419
+ "peak",
16420
+ "rms"
16421
+ ];
16422
+ return receipts.some((receipt) => metricFields.some((name) => {
16423
+ const value = cliFiniteNumber(setupReturnSummaryValue(receipt, [name]));
16424
+ return value !== void 0 && value > 0;
16425
+ }));
16426
+ }
16409
16427
  function profilePackReceiptStatus(result, metadata, receipt) {
16410
16428
  const text = receipt.toLowerCase();
16411
16429
  const setupSummary = profileSetupSummaryRecord(result);
@@ -16420,6 +16438,7 @@ function profilePackReceiptStatus(result, metadata, receipt) {
16420
16438
  ...setupViewports.flatMap((viewport) => setupReceiptArray(viewport, "window_call"))
16421
16439
  ].filter((item) => item.ok !== false);
16422
16440
  const clickCount = setupViewports.reduce((sum, viewport) => sum + (cliFiniteNumber(viewport.clicked_total) || 0), 0) + profileSetupReceiptTotal(setupViewports, "click") + profileSetupReceiptTotal(setupViewports, "click_count");
16441
+ const visibleUiActionCount = clickCount + profileSetupReceiptTotal(setupViewports, "tap");
16423
16442
  const setupFailureCount = profileSetupFailureCount(setupViewports);
16424
16443
  const setupObstructionCount = profileSetupObstructionCount(setupViewports);
16425
16444
  const inputDispatchCount = profileSetupReceiptTotal(setupViewports, "drag") + profileSetupReceiptTotal(setupViewports, "tap") + profileSetupReceiptTotal(setupViewports, "press") + profileSetupReceiptTotal(setupViewports, "keyboard_sequence");
@@ -16455,6 +16474,7 @@ function profilePackReceiptStatus(result, metadata, receipt) {
16455
16474
  const hasTextAbsence = profileHasPassedCheck(result, ["text_absent", "selector_text_absent"]);
16456
16475
  const hasMeasuredStateChange = hasNaturalInput || hasCanvasChange || valueReceipts.some((item) => setupReturnSummaryValue(item, ["changed"]) === true || setupReturnSummaryValue(item, ["nonWhiteDelta", "darkDelta", "pixelDelta", "movementDelta"]) !== void 0);
16457
16476
  const hasRouteExitAffordanceReceipt = profileHasRouteExitAffordanceReceipt(valueReceipts);
16477
+ const hasOfflineAudioMetricsReceipt = profileHasOfflineAudioMetricsReceipt(valueReceipts);
16458
16478
  const failedCleanupInventoryReason = profileFailedCleanupInventoryReason(setupViewports);
16459
16479
  if (text.includes("artifact link") || text.includes("artifact path")) {
16460
16480
  return profileReceiptSignalStatus(profileResultHasArtifact(result), "artifact references listed", "no artifact references found");
@@ -16493,6 +16513,13 @@ function profilePackReceiptStatus(result, metadata, receipt) {
16493
16513
  if (text.includes("invalid state")) {
16494
16514
  return profileReceiptSignalStatus(hasStateContract || hasInvalidStateReceipt, "invalid-state receipt present", "invalid-state receipt missing");
16495
16515
  }
16516
+ if (text.includes("through visible ui") || text.includes("visible ui action") || text.includes("ui-routed") || text.includes("ui routed") || text.includes("visible") && text.includes("route") && text.includes("exit") && text.includes("action") || text.includes("visible") && text.includes("mode") && text.includes("exit") && text.includes("action")) {
16517
+ return profileReceiptSignalStatus(
16518
+ visibleUiActionCount > 0,
16519
+ "visible UI action receipt present",
16520
+ "visible UI action receipt missing"
16521
+ );
16522
+ }
16496
16523
  if (text.includes("route-exit affordance") || text.includes("route exit affordance") || text.includes("navigation before cleanup") || text.includes("exit control")) {
16497
16524
  return profileReceiptSignalStatus(
16498
16525
  hasRouteExitAffordanceReceipt || hasStateContract || clickCount > 0,
@@ -16559,6 +16586,13 @@ function profilePackReceiptStatus(result, metadata, receipt) {
16559
16586
  if (text.includes("input dispatch") || text.includes("pointer") || text.includes("touch") || text.includes("key event") || text.includes("trusted-event")) {
16560
16587
  return profileReceiptSignalStatus(inputDispatchCount > 0 || hasNaturalInput, "input dispatch evidence present", "input dispatch evidence missing");
16561
16588
  }
16589
+ if (text.includes("offline audio") || text.includes("audio") && text.includes("metric")) {
16590
+ return profileReceiptSignalStatus(
16591
+ hasOfflineAudioMetricsReceipt,
16592
+ "offline audio metric receipt present",
16593
+ "offline audio metric receipt missing"
16594
+ );
16595
+ }
16562
16596
  if (text.includes("measured") || text.includes("state-change") || text.includes("pixel delta") || text.includes("movement receipt") || text.includes("canvas hash")) {
16563
16597
  return profileReceiptSignalStatus(hasMeasuredStateChange, "measured-change evidence present", "measured-change evidence missing");
16564
16598
  }
package/dist/cli.js CHANGED
@@ -611,6 +611,24 @@ function profileHasRouteExitAffordanceReceipt(receipts) {
611
611
  return routeFields.some((name) => setupReturnSummaryValue(receipt, [name]) !== void 0) || haystack.includes("route=") || haystack.includes("browserpath=");
612
612
  });
613
613
  }
614
+ function profileHasOfflineAudioMetricsReceipt(receipts) {
615
+ const metricFields = [
616
+ "mixPeak",
617
+ "mixRms",
618
+ "maxPeak",
619
+ "avgRms",
620
+ "audioPeak",
621
+ "audioRms",
622
+ "offlinePeak",
623
+ "offlineRms",
624
+ "peak",
625
+ "rms"
626
+ ];
627
+ return receipts.some((receipt) => metricFields.some((name) => {
628
+ const value = cliFiniteNumber(setupReturnSummaryValue(receipt, [name]));
629
+ return value !== void 0 && value > 0;
630
+ }));
631
+ }
614
632
  function profilePackReceiptStatus(result, metadata, receipt) {
615
633
  const text = receipt.toLowerCase();
616
634
  const setupSummary = profileSetupSummaryRecord(result);
@@ -625,6 +643,7 @@ function profilePackReceiptStatus(result, metadata, receipt) {
625
643
  ...setupViewports.flatMap((viewport) => setupReceiptArray(viewport, "window_call"))
626
644
  ].filter((item) => item.ok !== false);
627
645
  const clickCount = setupViewports.reduce((sum, viewport) => sum + (cliFiniteNumber(viewport.clicked_total) || 0), 0) + profileSetupReceiptTotal(setupViewports, "click") + profileSetupReceiptTotal(setupViewports, "click_count");
646
+ const visibleUiActionCount = clickCount + profileSetupReceiptTotal(setupViewports, "tap");
628
647
  const setupFailureCount = profileSetupFailureCount(setupViewports);
629
648
  const setupObstructionCount = profileSetupObstructionCount(setupViewports);
630
649
  const inputDispatchCount = profileSetupReceiptTotal(setupViewports, "drag") + profileSetupReceiptTotal(setupViewports, "tap") + profileSetupReceiptTotal(setupViewports, "press") + profileSetupReceiptTotal(setupViewports, "keyboard_sequence");
@@ -660,6 +679,7 @@ function profilePackReceiptStatus(result, metadata, receipt) {
660
679
  const hasTextAbsence = profileHasPassedCheck(result, ["text_absent", "selector_text_absent"]);
661
680
  const hasMeasuredStateChange = hasNaturalInput || hasCanvasChange || valueReceipts.some((item) => setupReturnSummaryValue(item, ["changed"]) === true || setupReturnSummaryValue(item, ["nonWhiteDelta", "darkDelta", "pixelDelta", "movementDelta"]) !== void 0);
662
681
  const hasRouteExitAffordanceReceipt = profileHasRouteExitAffordanceReceipt(valueReceipts);
682
+ const hasOfflineAudioMetricsReceipt = profileHasOfflineAudioMetricsReceipt(valueReceipts);
663
683
  const failedCleanupInventoryReason = profileFailedCleanupInventoryReason(setupViewports);
664
684
  if (text.includes("artifact link") || text.includes("artifact path")) {
665
685
  return profileReceiptSignalStatus(profileResultHasArtifact(result), "artifact references listed", "no artifact references found");
@@ -698,6 +718,13 @@ function profilePackReceiptStatus(result, metadata, receipt) {
698
718
  if (text.includes("invalid state")) {
699
719
  return profileReceiptSignalStatus(hasStateContract || hasInvalidStateReceipt, "invalid-state receipt present", "invalid-state receipt missing");
700
720
  }
721
+ if (text.includes("through visible ui") || text.includes("visible ui action") || text.includes("ui-routed") || text.includes("ui routed") || text.includes("visible") && text.includes("route") && text.includes("exit") && text.includes("action") || text.includes("visible") && text.includes("mode") && text.includes("exit") && text.includes("action")) {
722
+ return profileReceiptSignalStatus(
723
+ visibleUiActionCount > 0,
724
+ "visible UI action receipt present",
725
+ "visible UI action receipt missing"
726
+ );
727
+ }
701
728
  if (text.includes("route-exit affordance") || text.includes("route exit affordance") || text.includes("navigation before cleanup") || text.includes("exit control")) {
702
729
  return profileReceiptSignalStatus(
703
730
  hasRouteExitAffordanceReceipt || hasStateContract || clickCount > 0,
@@ -764,6 +791,13 @@ function profilePackReceiptStatus(result, metadata, receipt) {
764
791
  if (text.includes("input dispatch") || text.includes("pointer") || text.includes("touch") || text.includes("key event") || text.includes("trusted-event")) {
765
792
  return profileReceiptSignalStatus(inputDispatchCount > 0 || hasNaturalInput, "input dispatch evidence present", "input dispatch evidence missing");
766
793
  }
794
+ if (text.includes("offline audio") || text.includes("audio") && text.includes("metric")) {
795
+ return profileReceiptSignalStatus(
796
+ hasOfflineAudioMetricsReceipt,
797
+ "offline audio metric receipt present",
798
+ "offline audio metric receipt missing"
799
+ );
800
+ }
767
801
  if (text.includes("measured") || text.includes("state-change") || text.includes("pixel delta") || text.includes("movement receipt") || text.includes("canvas hash")) {
768
802
  return profileReceiptSignalStatus(hasMeasuredStateChange, "measured-change evidence present", "measured-change evidence missing");
769
803
  }
@@ -71,6 +71,17 @@
71
71
  "product_regression": "fail"
72
72
  },
73
73
  "metadata": {
74
+ "pack_id": "state_hygiene",
75
+ "pack_public_name": "State Hygiene Pack",
76
+ "required_receipts": [
77
+ "active route-local proof helpers and route state receipt",
78
+ "route-exit affordance inventory before cleanup",
79
+ "route or mode exit action receipt through visible UI",
80
+ "post-cleanup stale-state inventory after route cleanup",
81
+ "screenshots at active and post-cleanup boundaries",
82
+ "console and warning accounting",
83
+ "proof JSON and artifact links"
84
+ ],
74
85
  "purpose": "Template for SPA route-exit hygiene profiles. Replace the example route, selectors, and watched globals with route-local proof helpers, receipts, timers, input state, or touch state that must exist while the feature route is active and must be removed after visible UI navigation returns home."
75
86
  }
76
87
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@riddledc/riddle-proof",
3
- "version": "0.7.186",
3
+ "version": "0.7.188",
4
4
  "description": "Reusable Riddle Proof contracts and helpers for evidence-backed agent changes.",
5
5
  "license": "MIT",
6
6
  "author": "RiddleDC",