@riddledc/riddle-proof 0.7.80 → 0.7.82
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/README.md +14 -0
- package/dist/checkpoint.js +2 -2
- package/dist/{chunk-EXF7V6TJ.js → chunk-7F5LNUGR.js} +1 -1
- package/dist/{chunk-33XO42CY.js → chunk-ABQQLRTS.js} +1 -1
- package/dist/{chunk-JRFKVTKY.js → chunk-ENWYM4L7.js} +2 -2
- package/dist/{chunk-F7BNWDF6.js → chunk-MPPLZ35C.js} +4 -4
- package/dist/{chunk-4DM3OTWH.js → chunk-UYB7ABWU.js} +3 -2
- package/dist/{chunk-DUFDZJOF.js → chunk-VY4Y5U57.js} +1 -0
- package/dist/{chunk-3UHWI3FO.js → chunk-ZHEFYLII.js} +14 -2
- package/dist/cli.cjs +14 -0
- package/dist/cli.js +6 -6
- package/dist/codex-exec-agent.js +2 -2
- package/dist/engine-harness.cjs +14 -0
- package/dist/engine-harness.js +5 -5
- package/dist/index.cjs +14 -0
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +7 -7
- package/dist/local-agent.js +2 -2
- package/dist/openclaw.js +4 -4
- package/dist/result.cjs +1 -0
- package/dist/result.js +1 -1
- package/dist/run-card.cjs +12 -0
- package/dist/run-card.js +3 -3
- package/dist/runner.cjs +1 -0
- package/dist/runner.js +5 -5
- package/dist/state.cjs +13 -0
- package/dist/state.js +4 -4
- package/dist/types.d.cts +21 -1
- package/dist/types.d.ts +21 -1
- package/package.json +1 -1
- package/runtime/lib/preflight.py +7 -0
- package/runtime/lib/recon.py +40 -6
- package/runtime/lib/util.py +151 -3
- package/runtime/lib/verify.py +400 -32
- package/runtime/tests/recon_verify_smoke.py +128 -0
|
@@ -592,6 +592,104 @@ def run_verify_quality_ignores_proof_telemetry_console_text():
|
|
|
592
592
|
assert weak_delta['passed'] is False
|
|
593
593
|
assert 'below the legibility threshold' in weak_delta['reason']
|
|
594
594
|
|
|
595
|
+
targeted_delta = namespace['extract_visual_delta'](
|
|
596
|
+
{
|
|
597
|
+
'ok': True,
|
|
598
|
+
'result': {
|
|
599
|
+
'proofEvidence': {
|
|
600
|
+
'change_pct': '0.0487',
|
|
601
|
+
'changed_pixels': 2351,
|
|
602
|
+
'width': 1280,
|
|
603
|
+
'height': 900,
|
|
604
|
+
},
|
|
605
|
+
},
|
|
606
|
+
},
|
|
607
|
+
{
|
|
608
|
+
'change_request': 'Add the Riddle Proof recovery smoke badge',
|
|
609
|
+
'success_criteria': 'The recovery smoke badge is visible after verify.',
|
|
610
|
+
'parsed_assertions': [{'kind': 'text_visible', 'text': 'recovery smoke badge'}],
|
|
611
|
+
},
|
|
612
|
+
{
|
|
613
|
+
'after': {
|
|
614
|
+
'visible_text_sample': 'Home page Riddle Proof recovery smoke badge',
|
|
615
|
+
'headings': ['Home page'],
|
|
616
|
+
'buttons': ['Start'],
|
|
617
|
+
'links': [],
|
|
618
|
+
},
|
|
619
|
+
'route': {'after_observed_path': '/'},
|
|
620
|
+
},
|
|
621
|
+
)
|
|
622
|
+
assert targeted_delta['status'] == 'measured'
|
|
623
|
+
assert targeted_delta['passed'] is True
|
|
624
|
+
assert targeted_delta['threshold_mode'] == 'targeted_semantic'
|
|
625
|
+
assert targeted_delta['min_changed_pixels'] == 250
|
|
626
|
+
assert 'targeted-change threshold' in targeted_delta['reason']
|
|
627
|
+
|
|
628
|
+
unmatched_targeted_delta = namespace['extract_visual_delta'](
|
|
629
|
+
{
|
|
630
|
+
'ok': True,
|
|
631
|
+
'result': {
|
|
632
|
+
'proofEvidence': {
|
|
633
|
+
'change_pct': '0.0487',
|
|
634
|
+
'changed_pixels': 2351,
|
|
635
|
+
'width': 1280,
|
|
636
|
+
'height': 900,
|
|
637
|
+
},
|
|
638
|
+
},
|
|
639
|
+
},
|
|
640
|
+
{'change_request': 'Add the billing badge'},
|
|
641
|
+
{'after': {'visible_text_sample': 'Home page unchanged copy'}},
|
|
642
|
+
)
|
|
643
|
+
assert unmatched_targeted_delta['status'] == 'measured'
|
|
644
|
+
assert unmatched_targeted_delta['passed'] is False
|
|
645
|
+
assert unmatched_targeted_delta['threshold_mode'] == 'default'
|
|
646
|
+
|
|
647
|
+
generic_page_token_delta = namespace['extract_visual_delta'](
|
|
648
|
+
{
|
|
649
|
+
'ok': True,
|
|
650
|
+
'result': {
|
|
651
|
+
'proofEvidence': {
|
|
652
|
+
'change_pct': '0.0487',
|
|
653
|
+
'changed_pixels': 2351,
|
|
654
|
+
'width': 1280,
|
|
655
|
+
'height': 900,
|
|
656
|
+
},
|
|
657
|
+
},
|
|
658
|
+
},
|
|
659
|
+
{'change_request': 'Polish the pricing page CTA'},
|
|
660
|
+
{'after': {'visible_text_sample': 'Pricing plans for teams'}},
|
|
661
|
+
)
|
|
662
|
+
assert generic_page_token_delta['status'] == 'measured'
|
|
663
|
+
assert generic_page_token_delta['passed'] is False
|
|
664
|
+
assert generic_page_token_delta['threshold_mode'] == 'default'
|
|
665
|
+
|
|
666
|
+
broad_region_targeted_delta = namespace['extract_visual_delta'](
|
|
667
|
+
{
|
|
668
|
+
'ok': True,
|
|
669
|
+
'result': {
|
|
670
|
+
'proofEvidence': {
|
|
671
|
+
'change_pct': '0.0487',
|
|
672
|
+
'changed_pixels': 2351,
|
|
673
|
+
'total_pixels': 1152000,
|
|
674
|
+
'width': 1280,
|
|
675
|
+
'height': 900,
|
|
676
|
+
'changed_region': {'x': 0, 'y': 0, 'width': 1280, 'height': 720},
|
|
677
|
+
},
|
|
678
|
+
},
|
|
679
|
+
},
|
|
680
|
+
{
|
|
681
|
+
'change_request': 'Add the Riddle Proof recovery smoke badge',
|
|
682
|
+
'success_criteria': 'The recovery smoke badge is visible after verify.',
|
|
683
|
+
'parsed_assertions': [{'kind': 'text_visible', 'text': 'recovery smoke badge'}],
|
|
684
|
+
},
|
|
685
|
+
{'after': {'visible_text_sample': 'Home page Riddle Proof recovery smoke badge'}},
|
|
686
|
+
)
|
|
687
|
+
assert broad_region_targeted_delta['status'] == 'measured'
|
|
688
|
+
assert broad_region_targeted_delta['passed'] is False
|
|
689
|
+
assert broad_region_targeted_delta['threshold_mode'] == 'default'
|
|
690
|
+
assert broad_region_targeted_delta['changed_region']['classification'] == 'broad'
|
|
691
|
+
assert broad_region_targeted_delta['localization_support']['supported'] is False
|
|
692
|
+
|
|
595
693
|
unmeasured_delta = namespace['extract_visual_delta']({
|
|
596
694
|
'ok': True,
|
|
597
695
|
'screenshots': [{'name': 'after-proof.png', 'url': 'https://cdn.example.com/after-proof.png'}],
|
|
@@ -617,6 +715,31 @@ def run_verify_quality_ignores_proof_telemetry_console_text():
|
|
|
617
715
|
assert visual_diff_delta['change_percent'] == 1.45
|
|
618
716
|
assert visual_diff_delta['changed_pixels'] == 14094
|
|
619
717
|
|
|
718
|
+
viewport_status = namespace['capture_viewport_matrix_status'](
|
|
719
|
+
{
|
|
720
|
+
'viewport_matrix': [
|
|
721
|
+
{'name': 'phone', 'width': 390, 'height': 844},
|
|
722
|
+
{'name': 'ipad', 'width': 820, 'height': 1180},
|
|
723
|
+
],
|
|
724
|
+
},
|
|
725
|
+
{
|
|
726
|
+
'outputs': [
|
|
727
|
+
{'name': 'after-proof-phone.png', 'url': 'https://cdn.example.com/phone.png'},
|
|
728
|
+
{'name': 'after-proof-ipad.png', 'url': 'https://cdn.example.com/ipad.png'},
|
|
729
|
+
],
|
|
730
|
+
},
|
|
731
|
+
'after-proof',
|
|
732
|
+
)
|
|
733
|
+
assert viewport_status['status'] == 'complete'
|
|
734
|
+
assert [item['name'] for item in viewport_status['executed']] == ['phone', 'ipad']
|
|
735
|
+
missing_viewport_status = namespace['capture_viewport_matrix_status'](
|
|
736
|
+
{'viewport_matrix': [{'name': 'phone', 'width': 390, 'height': 844}]},
|
|
737
|
+
{'outputs': [{'name': 'after-proof-desktop.png', 'url': 'https://cdn.example.com/desktop.png'}]},
|
|
738
|
+
'after-proof',
|
|
739
|
+
)
|
|
740
|
+
assert missing_viewport_status['status'] == 'incomplete'
|
|
741
|
+
assert missing_viewport_status['missing'][0]['name'] == 'phone'
|
|
742
|
+
|
|
620
743
|
before_png = png_rgba(2, 1, bytes([
|
|
621
744
|
0, 0, 0, 255,
|
|
622
745
|
0, 0, 0, 255,
|
|
@@ -642,6 +765,11 @@ def run_verify_quality_ignores_proof_telemetry_console_text():
|
|
|
642
765
|
assert artifact_image_delta['source'] == 'riddle_artifact_image_diff'
|
|
643
766
|
assert artifact_image_delta['changed_pixels'] == 1
|
|
644
767
|
assert artifact_image_delta['change_percent'] == 50
|
|
768
|
+
assert artifact_image_delta['changed_region']['x'] == 1
|
|
769
|
+
assert artifact_image_delta['changed_region']['y'] == 0
|
|
770
|
+
assert artifact_image_delta['changed_region']['width'] == 1
|
|
771
|
+
assert artifact_image_delta['changed_region']['height'] == 1
|
|
772
|
+
assert artifact_image_delta['changed_region']['localized_for_targeted_change'] is True
|
|
645
773
|
|
|
646
774
|
fallback_calls = []
|
|
647
775
|
|