@riddledc/riddle-proof 0.8.29 → 0.8.30

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.
@@ -2684,6 +2684,60 @@ ${implementRes.stderr || ""}`;
2684
2684
  verifyRes = runOne("verify");
2685
2685
  executed.push(executedStep(verifyRes));
2686
2686
  if (!verifyRes.ok || verifyRes.haltedForApproval) {
2687
+ const failedVerifyState = readState(config.statePath);
2688
+ const failedVerifyStatus = failedVerifyState?.verify_status || "";
2689
+ if (!verifyRes.haltedForApproval && (failedVerifyStatus === "capture_incomplete" || failedVerifyStatus === "capture_error")) {
2690
+ const verifyDecisionRequest2 = failedVerifyState?.verify_decision_request || null;
2691
+ const captureQuality = verifyDecisionRequest2?.capture_quality || {};
2692
+ const conclusiveVerifyBlockers2 = proofAssessmentHardBlockersForState({
2693
+ ...failedVerifyState,
2694
+ structured_interaction_capture_failure_summary: stringValue(verifyDecisionRequest2?.structured_interaction_capture_failure_summary) || stringValue(failedVerifyState?.structured_interaction_capture_failure_summary) || void 0,
2695
+ structured_interaction_failure_summary: stringValue(verifyDecisionRequest2?.structured_interaction_failure_summary) || stringValue(failedVerifyState?.structured_interaction_failure_summary) || void 0
2696
+ });
2697
+ const structuredInteractionFailureSummary2 = stringValue(verifyDecisionRequest2?.structured_interaction_capture_failure_summary) || stringValue(verifyDecisionRequest2?.structured_interaction_failure_summary) || stringValue(failedVerifyState?.structured_interaction_capture_failure_summary) || stringValue(failedVerifyState?.structured_interaction_failure_summary) || stringValue(conclusiveVerifyBlockers2[0]);
2698
+ const captureTerminalBlocker = failedVerifyStatus === "capture_error" || conclusiveVerifyBlockers2.length > 0 || Boolean(structuredInteractionFailureSummary2) || captureQuality?.terminal_blocker === true || captureQuality?.blocking === true;
2699
+ const terminalCaptureQualitySummary = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true ? stringValue(captureQuality?.summary) : "";
2700
+ const checkpointName = captureTerminalBlocker ? "verify_capture_blocked" : "verify_capture_retry";
2701
+ const summary = terminalCaptureQualitySummary || structuredInteractionFailureSummary2 || stringValue(verifyDecisionRequest2?.summary) || stringValue(failedVerifyState?.verify_summary) || stringValue(failedVerifyState?.proof_summary) || stringValue(verifyRes.error) || "Verify capture failed before the evidence could be judged.";
2702
+ const failedVerifyDetails = {
2703
+ executed,
2704
+ verifyStatus: failedVerifyStatus,
2705
+ verifySummary: failedVerifyState?.verify_summary || failedVerifyState?.proof_summary || null,
2706
+ afterCdn: failedVerifyState?.after_cdn || null,
2707
+ mergeRecommendation: failedVerifyState?.merge_recommendation || null,
2708
+ verifyDecisionRequest: verifyDecisionRequest2,
2709
+ conclusiveVerifyBlockers: conclusiveVerifyBlockers2,
2710
+ verifyError: verifyRes.error || null,
2711
+ verifyStdout: verifyRes.stdout || "",
2712
+ verifyStderr: verifyRes.stderr || ""
2713
+ };
2714
+ recordAttempt("verify", "checkpoint", summary, {
2715
+ autoApproved: verifyRes.autoApproved || false,
2716
+ checkpoint: checkpointName,
2717
+ error: verifyRes.error || null,
2718
+ details: failedVerifyDetails
2719
+ });
2720
+ return checkpoint(
2721
+ "verify",
2722
+ checkpointName,
2723
+ summary,
2724
+ {
2725
+ ok: true,
2726
+ nextActions: captureTerminalBlocker ? ["inspect_after_capture", "report_specific_browser_evidence_blocker", "start_a_new_run_after_the_product_or_script_is_fixed"] : ["inspect_after_capture", "continue_internal_loop_with_checkpoint", "return_to_recon_if_baseline_is_wrong"],
2727
+ advanceOptions: needsImplementation ? ["author", "implement", "ship", "verify", "recon"] : ["author", "verify", "recon"],
2728
+ recommendedAdvanceStage: captureTerminalBlocker ? null : verifyDecisionRequest2?.recommended_stage || verifyDecisionRequest2?.continue_with_stage || "author",
2729
+ continueWithStage: captureTerminalBlocker ? null : verifyDecisionRequest2?.continue_with_stage || verifyDecisionRequest2?.recommended_stage || "author",
2730
+ blocking: captureTerminalBlocker,
2731
+ details: failedVerifyDetails,
2732
+ verifyStatus: failedVerifyStatus,
2733
+ verifySummary: failedVerifyDetails.verifySummary,
2734
+ afterCdn: failedVerifyState?.after_cdn || null,
2735
+ mergeRecommendation: failedVerifyState?.merge_recommendation || null,
2736
+ verifyDecisionRequest: verifyDecisionRequest2,
2737
+ executed
2738
+ }
2739
+ );
2740
+ }
2687
2741
  return failedRun("verify", verifyRes.haltedForApproval ? "verify halted for approval" : "verify failed", verifyRes, {
2688
2742
  checkpoint: "verify_failed",
2689
2743
  details: { executed },
@@ -2737,8 +2791,9 @@ ${implementRes.stderr || ""}`;
2737
2791
  });
2738
2792
  state = readState(config.statePath);
2739
2793
  }
2794
+ const terminalCaptureQualitySummary = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true ? stringValue(captureQuality?.summary) : "";
2740
2795
  const checkpointName = captureTerminalBlocker ? "verify_capture_blocked" : "verify_capture_retry";
2741
- const summary = structuredInteractionFailureSummary || stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
2796
+ const summary = terminalCaptureQualitySummary || structuredInteractionFailureSummary || stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
2742
2797
  recordAttempt("verify", "checkpoint", summary, {
2743
2798
  autoApproved: verifyRes.autoApproved || false,
2744
2799
  checkpoint: checkpointName,
@@ -2,7 +2,7 @@ import {
2
2
  createDisabledRiddleProofAgentAdapter,
3
3
  readRiddleProofRunStatus,
4
4
  runRiddleProofEngineHarness
5
- } from "../chunk-AM3K5FPW.js";
5
+ } from "../chunk-UWO4YR7I.js";
6
6
  import "../chunk-ZQWVXQKJ.js";
7
7
  import "../chunk-RDPG554T.js";
8
8
  import "../chunk-K6HZUSHH.js";
@@ -2715,6 +2715,60 @@ ${implementRes.stderr || ""}`;
2715
2715
  verifyRes = runOne("verify");
2716
2716
  executed.push(executedStep(verifyRes));
2717
2717
  if (!verifyRes.ok || verifyRes.haltedForApproval) {
2718
+ const failedVerifyState = readState(config.statePath);
2719
+ const failedVerifyStatus = failedVerifyState?.verify_status || "";
2720
+ if (!verifyRes.haltedForApproval && (failedVerifyStatus === "capture_incomplete" || failedVerifyStatus === "capture_error")) {
2721
+ const verifyDecisionRequest2 = failedVerifyState?.verify_decision_request || null;
2722
+ const captureQuality = verifyDecisionRequest2?.capture_quality || {};
2723
+ const conclusiveVerifyBlockers2 = proofAssessmentHardBlockersForState({
2724
+ ...failedVerifyState,
2725
+ structured_interaction_capture_failure_summary: stringValue(verifyDecisionRequest2?.structured_interaction_capture_failure_summary) || stringValue(failedVerifyState?.structured_interaction_capture_failure_summary) || void 0,
2726
+ structured_interaction_failure_summary: stringValue(verifyDecisionRequest2?.structured_interaction_failure_summary) || stringValue(failedVerifyState?.structured_interaction_failure_summary) || void 0
2727
+ });
2728
+ const structuredInteractionFailureSummary2 = stringValue(verifyDecisionRequest2?.structured_interaction_capture_failure_summary) || stringValue(verifyDecisionRequest2?.structured_interaction_failure_summary) || stringValue(failedVerifyState?.structured_interaction_capture_failure_summary) || stringValue(failedVerifyState?.structured_interaction_failure_summary) || stringValue(conclusiveVerifyBlockers2[0]);
2729
+ const captureTerminalBlocker = failedVerifyStatus === "capture_error" || conclusiveVerifyBlockers2.length > 0 || Boolean(structuredInteractionFailureSummary2) || captureQuality?.terminal_blocker === true || captureQuality?.blocking === true;
2730
+ const terminalCaptureQualitySummary = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true ? stringValue(captureQuality?.summary) : "";
2731
+ const checkpointName = captureTerminalBlocker ? "verify_capture_blocked" : "verify_capture_retry";
2732
+ const summary = terminalCaptureQualitySummary || structuredInteractionFailureSummary2 || stringValue(verifyDecisionRequest2?.summary) || stringValue(failedVerifyState?.verify_summary) || stringValue(failedVerifyState?.proof_summary) || stringValue(verifyRes.error) || "Verify capture failed before the evidence could be judged.";
2733
+ const failedVerifyDetails = {
2734
+ executed,
2735
+ verifyStatus: failedVerifyStatus,
2736
+ verifySummary: failedVerifyState?.verify_summary || failedVerifyState?.proof_summary || null,
2737
+ afterCdn: failedVerifyState?.after_cdn || null,
2738
+ mergeRecommendation: failedVerifyState?.merge_recommendation || null,
2739
+ verifyDecisionRequest: verifyDecisionRequest2,
2740
+ conclusiveVerifyBlockers: conclusiveVerifyBlockers2,
2741
+ verifyError: verifyRes.error || null,
2742
+ verifyStdout: verifyRes.stdout || "",
2743
+ verifyStderr: verifyRes.stderr || ""
2744
+ };
2745
+ recordAttempt("verify", "checkpoint", summary, {
2746
+ autoApproved: verifyRes.autoApproved || false,
2747
+ checkpoint: checkpointName,
2748
+ error: verifyRes.error || null,
2749
+ details: failedVerifyDetails
2750
+ });
2751
+ return checkpoint(
2752
+ "verify",
2753
+ checkpointName,
2754
+ summary,
2755
+ {
2756
+ ok: true,
2757
+ nextActions: captureTerminalBlocker ? ["inspect_after_capture", "report_specific_browser_evidence_blocker", "start_a_new_run_after_the_product_or_script_is_fixed"] : ["inspect_after_capture", "continue_internal_loop_with_checkpoint", "return_to_recon_if_baseline_is_wrong"],
2758
+ advanceOptions: needsImplementation ? ["author", "implement", "ship", "verify", "recon"] : ["author", "verify", "recon"],
2759
+ recommendedAdvanceStage: captureTerminalBlocker ? null : verifyDecisionRequest2?.recommended_stage || verifyDecisionRequest2?.continue_with_stage || "author",
2760
+ continueWithStage: captureTerminalBlocker ? null : verifyDecisionRequest2?.continue_with_stage || verifyDecisionRequest2?.recommended_stage || "author",
2761
+ blocking: captureTerminalBlocker,
2762
+ details: failedVerifyDetails,
2763
+ verifyStatus: failedVerifyStatus,
2764
+ verifySummary: failedVerifyDetails.verifySummary,
2765
+ afterCdn: failedVerifyState?.after_cdn || null,
2766
+ mergeRecommendation: failedVerifyState?.merge_recommendation || null,
2767
+ verifyDecisionRequest: verifyDecisionRequest2,
2768
+ executed
2769
+ }
2770
+ );
2771
+ }
2718
2772
  return failedRun("verify", verifyRes.haltedForApproval ? "verify halted for approval" : "verify failed", verifyRes, {
2719
2773
  checkpoint: "verify_failed",
2720
2774
  details: { executed },
@@ -2768,8 +2822,9 @@ ${implementRes.stderr || ""}`;
2768
2822
  });
2769
2823
  state = readState(config.statePath);
2770
2824
  }
2825
+ const terminalCaptureQualitySummary = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true ? stringValue(captureQuality?.summary) : "";
2771
2826
  const checkpointName = captureTerminalBlocker ? "verify_capture_blocked" : "verify_capture_retry";
2772
- const summary = structuredInteractionFailureSummary || stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
2827
+ const summary = terminalCaptureQualitySummary || structuredInteractionFailureSummary || stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
2773
2828
  recordAttempt("verify", "checkpoint", summary, {
2774
2829
  autoApproved: verifyRes.autoApproved || false,
2775
2830
  checkpoint: checkpointName,
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  proof_run_engine_exports
3
- } from "../chunk-YC77HZVF.js";
3
+ } from "../chunk-32RE64IO.js";
4
4
  import {
5
5
  runner_exports
6
6
  } from "../chunk-3OTO7IDH.js";
7
7
  import {
8
8
  engine_harness_exports
9
- } from "../chunk-AM3K5FPW.js";
9
+ } from "../chunk-UWO4YR7I.js";
10
10
  import "../chunk-ZQWVXQKJ.js";
11
11
  import "../chunk-RDPG554T.js";
12
12
  import {
@@ -2684,6 +2684,60 @@ ${implementRes.stderr || ""}`;
2684
2684
  verifyRes = runOne("verify");
2685
2685
  executed.push(executedStep(verifyRes));
2686
2686
  if (!verifyRes.ok || verifyRes.haltedForApproval) {
2687
+ const failedVerifyState = readState(config.statePath);
2688
+ const failedVerifyStatus = failedVerifyState?.verify_status || "";
2689
+ if (!verifyRes.haltedForApproval && (failedVerifyStatus === "capture_incomplete" || failedVerifyStatus === "capture_error")) {
2690
+ const verifyDecisionRequest2 = failedVerifyState?.verify_decision_request || null;
2691
+ const captureQuality = verifyDecisionRequest2?.capture_quality || {};
2692
+ const conclusiveVerifyBlockers2 = proofAssessmentHardBlockersForState({
2693
+ ...failedVerifyState,
2694
+ structured_interaction_capture_failure_summary: stringValue(verifyDecisionRequest2?.structured_interaction_capture_failure_summary) || stringValue(failedVerifyState?.structured_interaction_capture_failure_summary) || void 0,
2695
+ structured_interaction_failure_summary: stringValue(verifyDecisionRequest2?.structured_interaction_failure_summary) || stringValue(failedVerifyState?.structured_interaction_failure_summary) || void 0
2696
+ });
2697
+ const structuredInteractionFailureSummary2 = stringValue(verifyDecisionRequest2?.structured_interaction_capture_failure_summary) || stringValue(verifyDecisionRequest2?.structured_interaction_failure_summary) || stringValue(failedVerifyState?.structured_interaction_capture_failure_summary) || stringValue(failedVerifyState?.structured_interaction_failure_summary) || stringValue(conclusiveVerifyBlockers2[0]);
2698
+ const captureTerminalBlocker = failedVerifyStatus === "capture_error" || conclusiveVerifyBlockers2.length > 0 || Boolean(structuredInteractionFailureSummary2) || captureQuality?.terminal_blocker === true || captureQuality?.blocking === true;
2699
+ const terminalCaptureQualitySummary = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true ? stringValue(captureQuality?.summary) : "";
2700
+ const checkpointName = captureTerminalBlocker ? "verify_capture_blocked" : "verify_capture_retry";
2701
+ const summary = terminalCaptureQualitySummary || structuredInteractionFailureSummary2 || stringValue(verifyDecisionRequest2?.summary) || stringValue(failedVerifyState?.verify_summary) || stringValue(failedVerifyState?.proof_summary) || stringValue(verifyRes.error) || "Verify capture failed before the evidence could be judged.";
2702
+ const failedVerifyDetails = {
2703
+ executed,
2704
+ verifyStatus: failedVerifyStatus,
2705
+ verifySummary: failedVerifyState?.verify_summary || failedVerifyState?.proof_summary || null,
2706
+ afterCdn: failedVerifyState?.after_cdn || null,
2707
+ mergeRecommendation: failedVerifyState?.merge_recommendation || null,
2708
+ verifyDecisionRequest: verifyDecisionRequest2,
2709
+ conclusiveVerifyBlockers: conclusiveVerifyBlockers2,
2710
+ verifyError: verifyRes.error || null,
2711
+ verifyStdout: verifyRes.stdout || "",
2712
+ verifyStderr: verifyRes.stderr || ""
2713
+ };
2714
+ recordAttempt("verify", "checkpoint", summary, {
2715
+ autoApproved: verifyRes.autoApproved || false,
2716
+ checkpoint: checkpointName,
2717
+ error: verifyRes.error || null,
2718
+ details: failedVerifyDetails
2719
+ });
2720
+ return checkpoint(
2721
+ "verify",
2722
+ checkpointName,
2723
+ summary,
2724
+ {
2725
+ ok: true,
2726
+ nextActions: captureTerminalBlocker ? ["inspect_after_capture", "report_specific_browser_evidence_blocker", "start_a_new_run_after_the_product_or_script_is_fixed"] : ["inspect_after_capture", "continue_internal_loop_with_checkpoint", "return_to_recon_if_baseline_is_wrong"],
2727
+ advanceOptions: needsImplementation ? ["author", "implement", "ship", "verify", "recon"] : ["author", "verify", "recon"],
2728
+ recommendedAdvanceStage: captureTerminalBlocker ? null : verifyDecisionRequest2?.recommended_stage || verifyDecisionRequest2?.continue_with_stage || "author",
2729
+ continueWithStage: captureTerminalBlocker ? null : verifyDecisionRequest2?.continue_with_stage || verifyDecisionRequest2?.recommended_stage || "author",
2730
+ blocking: captureTerminalBlocker,
2731
+ details: failedVerifyDetails,
2732
+ verifyStatus: failedVerifyStatus,
2733
+ verifySummary: failedVerifyDetails.verifySummary,
2734
+ afterCdn: failedVerifyState?.after_cdn || null,
2735
+ mergeRecommendation: failedVerifyState?.merge_recommendation || null,
2736
+ verifyDecisionRequest: verifyDecisionRequest2,
2737
+ executed
2738
+ }
2739
+ );
2740
+ }
2687
2741
  return failedRun("verify", verifyRes.haltedForApproval ? "verify halted for approval" : "verify failed", verifyRes, {
2688
2742
  checkpoint: "verify_failed",
2689
2743
  details: { executed },
@@ -2737,8 +2791,9 @@ ${implementRes.stderr || ""}`;
2737
2791
  });
2738
2792
  state = readState(config.statePath);
2739
2793
  }
2794
+ const terminalCaptureQualitySummary = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true ? stringValue(captureQuality?.summary) : "";
2740
2795
  const checkpointName = captureTerminalBlocker ? "verify_capture_blocked" : "verify_capture_retry";
2741
- const summary = structuredInteractionFailureSummary || stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
2796
+ const summary = terminalCaptureQualitySummary || structuredInteractionFailureSummary || stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
2742
2797
  recordAttempt("verify", "checkpoint", summary, {
2743
2798
  autoApproved: verifyRes.autoApproved || false,
2744
2799
  checkpoint: checkpointName,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createRiddleProofEngine,
3
3
  executeWorkflow
4
- } from "../chunk-YC77HZVF.js";
4
+ } from "../chunk-32RE64IO.js";
5
5
  import "../chunk-K6HZUSHH.js";
6
6
  import "../chunk-MLKGABMK.js";
7
7
  export {
@@ -1476,6 +1476,60 @@ ${implementRes.stderr || ""}`;
1476
1476
  verifyRes = runOne("verify");
1477
1477
  executed.push(executedStep(verifyRes));
1478
1478
  if (!verifyRes.ok || verifyRes.haltedForApproval) {
1479
+ const failedVerifyState = readState(config.statePath);
1480
+ const failedVerifyStatus = failedVerifyState?.verify_status || "";
1481
+ if (!verifyRes.haltedForApproval && (failedVerifyStatus === "capture_incomplete" || failedVerifyStatus === "capture_error")) {
1482
+ const verifyDecisionRequest2 = failedVerifyState?.verify_decision_request || null;
1483
+ const captureQuality = verifyDecisionRequest2?.capture_quality || {};
1484
+ const conclusiveVerifyBlockers2 = proofAssessmentHardBlockersForState({
1485
+ ...failedVerifyState,
1486
+ structured_interaction_capture_failure_summary: stringValue(verifyDecisionRequest2?.structured_interaction_capture_failure_summary) || stringValue(failedVerifyState?.structured_interaction_capture_failure_summary) || void 0,
1487
+ structured_interaction_failure_summary: stringValue(verifyDecisionRequest2?.structured_interaction_failure_summary) || stringValue(failedVerifyState?.structured_interaction_failure_summary) || void 0
1488
+ });
1489
+ const structuredInteractionFailureSummary2 = stringValue(verifyDecisionRequest2?.structured_interaction_capture_failure_summary) || stringValue(verifyDecisionRequest2?.structured_interaction_failure_summary) || stringValue(failedVerifyState?.structured_interaction_capture_failure_summary) || stringValue(failedVerifyState?.structured_interaction_failure_summary) || stringValue(conclusiveVerifyBlockers2[0]);
1490
+ const captureTerminalBlocker = failedVerifyStatus === "capture_error" || conclusiveVerifyBlockers2.length > 0 || Boolean(structuredInteractionFailureSummary2) || captureQuality?.terminal_blocker === true || captureQuality?.blocking === true;
1491
+ const terminalCaptureQualitySummary = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true ? stringValue(captureQuality?.summary) : "";
1492
+ const checkpointName = captureTerminalBlocker ? "verify_capture_blocked" : "verify_capture_retry";
1493
+ const summary = terminalCaptureQualitySummary || structuredInteractionFailureSummary2 || stringValue(verifyDecisionRequest2?.summary) || stringValue(failedVerifyState?.verify_summary) || stringValue(failedVerifyState?.proof_summary) || stringValue(verifyRes.error) || "Verify capture failed before the evidence could be judged.";
1494
+ const failedVerifyDetails = {
1495
+ executed,
1496
+ verifyStatus: failedVerifyStatus,
1497
+ verifySummary: failedVerifyState?.verify_summary || failedVerifyState?.proof_summary || null,
1498
+ afterCdn: failedVerifyState?.after_cdn || null,
1499
+ mergeRecommendation: failedVerifyState?.merge_recommendation || null,
1500
+ verifyDecisionRequest: verifyDecisionRequest2,
1501
+ conclusiveVerifyBlockers: conclusiveVerifyBlockers2,
1502
+ verifyError: verifyRes.error || null,
1503
+ verifyStdout: verifyRes.stdout || "",
1504
+ verifyStderr: verifyRes.stderr || ""
1505
+ };
1506
+ recordAttempt("verify", "checkpoint", summary, {
1507
+ autoApproved: verifyRes.autoApproved || false,
1508
+ checkpoint: checkpointName,
1509
+ error: verifyRes.error || null,
1510
+ details: failedVerifyDetails
1511
+ });
1512
+ return checkpoint(
1513
+ "verify",
1514
+ checkpointName,
1515
+ summary,
1516
+ {
1517
+ ok: true,
1518
+ nextActions: captureTerminalBlocker ? ["inspect_after_capture", "report_specific_browser_evidence_blocker", "start_a_new_run_after_the_product_or_script_is_fixed"] : ["inspect_after_capture", "continue_internal_loop_with_checkpoint", "return_to_recon_if_baseline_is_wrong"],
1519
+ advanceOptions: needsImplementation ? ["author", "implement", "ship", "verify", "recon"] : ["author", "verify", "recon"],
1520
+ recommendedAdvanceStage: captureTerminalBlocker ? null : verifyDecisionRequest2?.recommended_stage || verifyDecisionRequest2?.continue_with_stage || "author",
1521
+ continueWithStage: captureTerminalBlocker ? null : verifyDecisionRequest2?.continue_with_stage || verifyDecisionRequest2?.recommended_stage || "author",
1522
+ blocking: captureTerminalBlocker,
1523
+ details: failedVerifyDetails,
1524
+ verifyStatus: failedVerifyStatus,
1525
+ verifySummary: failedVerifyDetails.verifySummary,
1526
+ afterCdn: failedVerifyState?.after_cdn || null,
1527
+ mergeRecommendation: failedVerifyState?.merge_recommendation || null,
1528
+ verifyDecisionRequest: verifyDecisionRequest2,
1529
+ executed
1530
+ }
1531
+ );
1532
+ }
1479
1533
  return failedRun("verify", verifyRes.haltedForApproval ? "verify halted for approval" : "verify failed", verifyRes, {
1480
1534
  checkpoint: "verify_failed",
1481
1535
  details: { executed },
@@ -1529,8 +1583,9 @@ ${implementRes.stderr || ""}`;
1529
1583
  });
1530
1584
  state = readState(config.statePath);
1531
1585
  }
1586
+ const terminalCaptureQualitySummary = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true ? stringValue(captureQuality?.summary) : "";
1532
1587
  const checkpointName = captureTerminalBlocker ? "verify_capture_blocked" : "verify_capture_retry";
1533
- const summary = structuredInteractionFailureSummary || stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
1588
+ const summary = terminalCaptureQualitySummary || structuredInteractionFailureSummary || stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
1534
1589
  recordAttempt("verify", "checkpoint", summary, {
1535
1590
  autoApproved: verifyRes.autoApproved || false,
1536
1591
  checkpoint: checkpointName,
@@ -22,7 +22,7 @@ import {
22
22
  createDisabledRiddleProofAgentAdapter,
23
23
  readRiddleProofRunStatus,
24
24
  runRiddleProofEngineHarness
25
- } from "./chunk-AM3K5FPW.js";
25
+ } from "./chunk-UWO4YR7I.js";
26
26
  import {
27
27
  createCheckpointResponseTemplate
28
28
  } from "./chunk-OILKSY5J.js";
package/dist/cli/index.js CHANGED
@@ -1,7 +1,7 @@
1
- import "../chunk-FJPZZ4JO.js";
1
+ import "../chunk-XJA2GDVN.js";
2
2
  import "../chunk-PEWAIEER.js";
3
3
  import "../chunk-TWTEUS7R.js";
4
- import "../chunk-AM3K5FPW.js";
4
+ import "../chunk-UWO4YR7I.js";
5
5
  import "../chunk-ZQWVXQKJ.js";
6
6
  import "../chunk-RDPG554T.js";
7
7
  import "../chunk-K6HZUSHH.js";
package/dist/cli.cjs CHANGED
@@ -2684,6 +2684,60 @@ ${implementRes.stderr || ""}`;
2684
2684
  verifyRes = runOne("verify");
2685
2685
  executed.push(executedStep(verifyRes));
2686
2686
  if (!verifyRes.ok || verifyRes.haltedForApproval) {
2687
+ const failedVerifyState = readState(config.statePath);
2688
+ const failedVerifyStatus = failedVerifyState?.verify_status || "";
2689
+ if (!verifyRes.haltedForApproval && (failedVerifyStatus === "capture_incomplete" || failedVerifyStatus === "capture_error")) {
2690
+ const verifyDecisionRequest2 = failedVerifyState?.verify_decision_request || null;
2691
+ const captureQuality = verifyDecisionRequest2?.capture_quality || {};
2692
+ const conclusiveVerifyBlockers2 = proofAssessmentHardBlockersForState({
2693
+ ...failedVerifyState,
2694
+ structured_interaction_capture_failure_summary: stringValue(verifyDecisionRequest2?.structured_interaction_capture_failure_summary) || stringValue(failedVerifyState?.structured_interaction_capture_failure_summary) || void 0,
2695
+ structured_interaction_failure_summary: stringValue(verifyDecisionRequest2?.structured_interaction_failure_summary) || stringValue(failedVerifyState?.structured_interaction_failure_summary) || void 0
2696
+ });
2697
+ const structuredInteractionFailureSummary2 = stringValue(verifyDecisionRequest2?.structured_interaction_capture_failure_summary) || stringValue(verifyDecisionRequest2?.structured_interaction_failure_summary) || stringValue(failedVerifyState?.structured_interaction_capture_failure_summary) || stringValue(failedVerifyState?.structured_interaction_failure_summary) || stringValue(conclusiveVerifyBlockers2[0]);
2698
+ const captureTerminalBlocker = failedVerifyStatus === "capture_error" || conclusiveVerifyBlockers2.length > 0 || Boolean(structuredInteractionFailureSummary2) || captureQuality?.terminal_blocker === true || captureQuality?.blocking === true;
2699
+ const terminalCaptureQualitySummary = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true ? stringValue(captureQuality?.summary) : "";
2700
+ const checkpointName = captureTerminalBlocker ? "verify_capture_blocked" : "verify_capture_retry";
2701
+ const summary = terminalCaptureQualitySummary || structuredInteractionFailureSummary2 || stringValue(verifyDecisionRequest2?.summary) || stringValue(failedVerifyState?.verify_summary) || stringValue(failedVerifyState?.proof_summary) || stringValue(verifyRes.error) || "Verify capture failed before the evidence could be judged.";
2702
+ const failedVerifyDetails = {
2703
+ executed,
2704
+ verifyStatus: failedVerifyStatus,
2705
+ verifySummary: failedVerifyState?.verify_summary || failedVerifyState?.proof_summary || null,
2706
+ afterCdn: failedVerifyState?.after_cdn || null,
2707
+ mergeRecommendation: failedVerifyState?.merge_recommendation || null,
2708
+ verifyDecisionRequest: verifyDecisionRequest2,
2709
+ conclusiveVerifyBlockers: conclusiveVerifyBlockers2,
2710
+ verifyError: verifyRes.error || null,
2711
+ verifyStdout: verifyRes.stdout || "",
2712
+ verifyStderr: verifyRes.stderr || ""
2713
+ };
2714
+ recordAttempt("verify", "checkpoint", summary, {
2715
+ autoApproved: verifyRes.autoApproved || false,
2716
+ checkpoint: checkpointName,
2717
+ error: verifyRes.error || null,
2718
+ details: failedVerifyDetails
2719
+ });
2720
+ return checkpoint(
2721
+ "verify",
2722
+ checkpointName,
2723
+ summary,
2724
+ {
2725
+ ok: true,
2726
+ nextActions: captureTerminalBlocker ? ["inspect_after_capture", "report_specific_browser_evidence_blocker", "start_a_new_run_after_the_product_or_script_is_fixed"] : ["inspect_after_capture", "continue_internal_loop_with_checkpoint", "return_to_recon_if_baseline_is_wrong"],
2727
+ advanceOptions: needsImplementation ? ["author", "implement", "ship", "verify", "recon"] : ["author", "verify", "recon"],
2728
+ recommendedAdvanceStage: captureTerminalBlocker ? null : verifyDecisionRequest2?.recommended_stage || verifyDecisionRequest2?.continue_with_stage || "author",
2729
+ continueWithStage: captureTerminalBlocker ? null : verifyDecisionRequest2?.continue_with_stage || verifyDecisionRequest2?.recommended_stage || "author",
2730
+ blocking: captureTerminalBlocker,
2731
+ details: failedVerifyDetails,
2732
+ verifyStatus: failedVerifyStatus,
2733
+ verifySummary: failedVerifyDetails.verifySummary,
2734
+ afterCdn: failedVerifyState?.after_cdn || null,
2735
+ mergeRecommendation: failedVerifyState?.merge_recommendation || null,
2736
+ verifyDecisionRequest: verifyDecisionRequest2,
2737
+ executed
2738
+ }
2739
+ );
2740
+ }
2687
2741
  return failedRun("verify", verifyRes.haltedForApproval ? "verify halted for approval" : "verify failed", verifyRes, {
2688
2742
  checkpoint: "verify_failed",
2689
2743
  details: { executed },
@@ -2737,8 +2791,9 @@ ${implementRes.stderr || ""}`;
2737
2791
  });
2738
2792
  state = readState(config.statePath);
2739
2793
  }
2794
+ const terminalCaptureQualitySummary = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true ? stringValue(captureQuality?.summary) : "";
2740
2795
  const checkpointName = captureTerminalBlocker ? "verify_capture_blocked" : "verify_capture_retry";
2741
- const summary = structuredInteractionFailureSummary || stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
2796
+ const summary = terminalCaptureQualitySummary || structuredInteractionFailureSummary || stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
2742
2797
  recordAttempt("verify", "checkpoint", summary, {
2743
2798
  autoApproved: verifyRes.autoApproved || false,
2744
2799
  checkpoint: checkpointName,
package/dist/cli.js CHANGED
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
- import "./chunk-FJPZZ4JO.js";
2
+ import "./chunk-XJA2GDVN.js";
3
3
  import "./chunk-PEWAIEER.js";
4
4
  import "./chunk-TWTEUS7R.js";
5
- import "./chunk-AM3K5FPW.js";
5
+ import "./chunk-UWO4YR7I.js";
6
6
  import "./chunk-ZQWVXQKJ.js";
7
7
  import "./chunk-RDPG554T.js";
8
8
  import "./chunk-K6HZUSHH.js";
@@ -2684,6 +2684,60 @@ ${implementRes.stderr || ""}`;
2684
2684
  verifyRes = runOne("verify");
2685
2685
  executed.push(executedStep(verifyRes));
2686
2686
  if (!verifyRes.ok || verifyRes.haltedForApproval) {
2687
+ const failedVerifyState = readState(config.statePath);
2688
+ const failedVerifyStatus = failedVerifyState?.verify_status || "";
2689
+ if (!verifyRes.haltedForApproval && (failedVerifyStatus === "capture_incomplete" || failedVerifyStatus === "capture_error")) {
2690
+ const verifyDecisionRequest2 = failedVerifyState?.verify_decision_request || null;
2691
+ const captureQuality = verifyDecisionRequest2?.capture_quality || {};
2692
+ const conclusiveVerifyBlockers2 = proofAssessmentHardBlockersForState({
2693
+ ...failedVerifyState,
2694
+ structured_interaction_capture_failure_summary: stringValue(verifyDecisionRequest2?.structured_interaction_capture_failure_summary) || stringValue(failedVerifyState?.structured_interaction_capture_failure_summary) || void 0,
2695
+ structured_interaction_failure_summary: stringValue(verifyDecisionRequest2?.structured_interaction_failure_summary) || stringValue(failedVerifyState?.structured_interaction_failure_summary) || void 0
2696
+ });
2697
+ const structuredInteractionFailureSummary2 = stringValue(verifyDecisionRequest2?.structured_interaction_capture_failure_summary) || stringValue(verifyDecisionRequest2?.structured_interaction_failure_summary) || stringValue(failedVerifyState?.structured_interaction_capture_failure_summary) || stringValue(failedVerifyState?.structured_interaction_failure_summary) || stringValue(conclusiveVerifyBlockers2[0]);
2698
+ const captureTerminalBlocker = failedVerifyStatus === "capture_error" || conclusiveVerifyBlockers2.length > 0 || Boolean(structuredInteractionFailureSummary2) || captureQuality?.terminal_blocker === true || captureQuality?.blocking === true;
2699
+ const terminalCaptureQualitySummary = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true ? stringValue(captureQuality?.summary) : "";
2700
+ const checkpointName = captureTerminalBlocker ? "verify_capture_blocked" : "verify_capture_retry";
2701
+ const summary = terminalCaptureQualitySummary || structuredInteractionFailureSummary2 || stringValue(verifyDecisionRequest2?.summary) || stringValue(failedVerifyState?.verify_summary) || stringValue(failedVerifyState?.proof_summary) || stringValue(verifyRes.error) || "Verify capture failed before the evidence could be judged.";
2702
+ const failedVerifyDetails = {
2703
+ executed,
2704
+ verifyStatus: failedVerifyStatus,
2705
+ verifySummary: failedVerifyState?.verify_summary || failedVerifyState?.proof_summary || null,
2706
+ afterCdn: failedVerifyState?.after_cdn || null,
2707
+ mergeRecommendation: failedVerifyState?.merge_recommendation || null,
2708
+ verifyDecisionRequest: verifyDecisionRequest2,
2709
+ conclusiveVerifyBlockers: conclusiveVerifyBlockers2,
2710
+ verifyError: verifyRes.error || null,
2711
+ verifyStdout: verifyRes.stdout || "",
2712
+ verifyStderr: verifyRes.stderr || ""
2713
+ };
2714
+ recordAttempt("verify", "checkpoint", summary, {
2715
+ autoApproved: verifyRes.autoApproved || false,
2716
+ checkpoint: checkpointName,
2717
+ error: verifyRes.error || null,
2718
+ details: failedVerifyDetails
2719
+ });
2720
+ return checkpoint(
2721
+ "verify",
2722
+ checkpointName,
2723
+ summary,
2724
+ {
2725
+ ok: true,
2726
+ nextActions: captureTerminalBlocker ? ["inspect_after_capture", "report_specific_browser_evidence_blocker", "start_a_new_run_after_the_product_or_script_is_fixed"] : ["inspect_after_capture", "continue_internal_loop_with_checkpoint", "return_to_recon_if_baseline_is_wrong"],
2727
+ advanceOptions: needsImplementation ? ["author", "implement", "ship", "verify", "recon"] : ["author", "verify", "recon"],
2728
+ recommendedAdvanceStage: captureTerminalBlocker ? null : verifyDecisionRequest2?.recommended_stage || verifyDecisionRequest2?.continue_with_stage || "author",
2729
+ continueWithStage: captureTerminalBlocker ? null : verifyDecisionRequest2?.continue_with_stage || verifyDecisionRequest2?.recommended_stage || "author",
2730
+ blocking: captureTerminalBlocker,
2731
+ details: failedVerifyDetails,
2732
+ verifyStatus: failedVerifyStatus,
2733
+ verifySummary: failedVerifyDetails.verifySummary,
2734
+ afterCdn: failedVerifyState?.after_cdn || null,
2735
+ mergeRecommendation: failedVerifyState?.merge_recommendation || null,
2736
+ verifyDecisionRequest: verifyDecisionRequest2,
2737
+ executed
2738
+ }
2739
+ );
2740
+ }
2687
2741
  return failedRun("verify", verifyRes.haltedForApproval ? "verify halted for approval" : "verify failed", verifyRes, {
2688
2742
  checkpoint: "verify_failed",
2689
2743
  details: { executed },
@@ -2737,8 +2791,9 @@ ${implementRes.stderr || ""}`;
2737
2791
  });
2738
2792
  state = readState(config.statePath);
2739
2793
  }
2794
+ const terminalCaptureQualitySummary = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true ? stringValue(captureQuality?.summary) : "";
2740
2795
  const checkpointName = captureTerminalBlocker ? "verify_capture_blocked" : "verify_capture_retry";
2741
- const summary = structuredInteractionFailureSummary || stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
2796
+ const summary = terminalCaptureQualitySummary || structuredInteractionFailureSummary || stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
2742
2797
  recordAttempt("verify", "checkpoint", summary, {
2743
2798
  autoApproved: verifyRes.autoApproved || false,
2744
2799
  checkpoint: checkpointName,
@@ -2,7 +2,7 @@ import {
2
2
  createDisabledRiddleProofAgentAdapter,
3
3
  readRiddleProofRunStatus,
4
4
  runRiddleProofEngineHarness
5
- } from "./chunk-AM3K5FPW.js";
5
+ } from "./chunk-UWO4YR7I.js";
6
6
  import "./chunk-ZQWVXQKJ.js";
7
7
  import "./chunk-RDPG554T.js";
8
8
  import "./chunk-K6HZUSHH.js";
package/dist/index.cjs CHANGED
@@ -2684,6 +2684,60 @@ ${implementRes.stderr || ""}`;
2684
2684
  verifyRes = runOne("verify");
2685
2685
  executed.push(executedStep(verifyRes));
2686
2686
  if (!verifyRes.ok || verifyRes.haltedForApproval) {
2687
+ const failedVerifyState = readState(config.statePath);
2688
+ const failedVerifyStatus = failedVerifyState?.verify_status || "";
2689
+ if (!verifyRes.haltedForApproval && (failedVerifyStatus === "capture_incomplete" || failedVerifyStatus === "capture_error")) {
2690
+ const verifyDecisionRequest2 = failedVerifyState?.verify_decision_request || null;
2691
+ const captureQuality = verifyDecisionRequest2?.capture_quality || {};
2692
+ const conclusiveVerifyBlockers2 = proofAssessmentHardBlockersForState({
2693
+ ...failedVerifyState,
2694
+ structured_interaction_capture_failure_summary: stringValue(verifyDecisionRequest2?.structured_interaction_capture_failure_summary) || stringValue(failedVerifyState?.structured_interaction_capture_failure_summary) || void 0,
2695
+ structured_interaction_failure_summary: stringValue(verifyDecisionRequest2?.structured_interaction_failure_summary) || stringValue(failedVerifyState?.structured_interaction_failure_summary) || void 0
2696
+ });
2697
+ const structuredInteractionFailureSummary2 = stringValue(verifyDecisionRequest2?.structured_interaction_capture_failure_summary) || stringValue(verifyDecisionRequest2?.structured_interaction_failure_summary) || stringValue(failedVerifyState?.structured_interaction_capture_failure_summary) || stringValue(failedVerifyState?.structured_interaction_failure_summary) || stringValue(conclusiveVerifyBlockers2[0]);
2698
+ const captureTerminalBlocker = failedVerifyStatus === "capture_error" || conclusiveVerifyBlockers2.length > 0 || Boolean(structuredInteractionFailureSummary2) || captureQuality?.terminal_blocker === true || captureQuality?.blocking === true;
2699
+ const terminalCaptureQualitySummary = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true ? stringValue(captureQuality?.summary) : "";
2700
+ const checkpointName = captureTerminalBlocker ? "verify_capture_blocked" : "verify_capture_retry";
2701
+ const summary = terminalCaptureQualitySummary || structuredInteractionFailureSummary2 || stringValue(verifyDecisionRequest2?.summary) || stringValue(failedVerifyState?.verify_summary) || stringValue(failedVerifyState?.proof_summary) || stringValue(verifyRes.error) || "Verify capture failed before the evidence could be judged.";
2702
+ const failedVerifyDetails = {
2703
+ executed,
2704
+ verifyStatus: failedVerifyStatus,
2705
+ verifySummary: failedVerifyState?.verify_summary || failedVerifyState?.proof_summary || null,
2706
+ afterCdn: failedVerifyState?.after_cdn || null,
2707
+ mergeRecommendation: failedVerifyState?.merge_recommendation || null,
2708
+ verifyDecisionRequest: verifyDecisionRequest2,
2709
+ conclusiveVerifyBlockers: conclusiveVerifyBlockers2,
2710
+ verifyError: verifyRes.error || null,
2711
+ verifyStdout: verifyRes.stdout || "",
2712
+ verifyStderr: verifyRes.stderr || ""
2713
+ };
2714
+ recordAttempt("verify", "checkpoint", summary, {
2715
+ autoApproved: verifyRes.autoApproved || false,
2716
+ checkpoint: checkpointName,
2717
+ error: verifyRes.error || null,
2718
+ details: failedVerifyDetails
2719
+ });
2720
+ return checkpoint(
2721
+ "verify",
2722
+ checkpointName,
2723
+ summary,
2724
+ {
2725
+ ok: true,
2726
+ nextActions: captureTerminalBlocker ? ["inspect_after_capture", "report_specific_browser_evidence_blocker", "start_a_new_run_after_the_product_or_script_is_fixed"] : ["inspect_after_capture", "continue_internal_loop_with_checkpoint", "return_to_recon_if_baseline_is_wrong"],
2727
+ advanceOptions: needsImplementation ? ["author", "implement", "ship", "verify", "recon"] : ["author", "verify", "recon"],
2728
+ recommendedAdvanceStage: captureTerminalBlocker ? null : verifyDecisionRequest2?.recommended_stage || verifyDecisionRequest2?.continue_with_stage || "author",
2729
+ continueWithStage: captureTerminalBlocker ? null : verifyDecisionRequest2?.continue_with_stage || verifyDecisionRequest2?.recommended_stage || "author",
2730
+ blocking: captureTerminalBlocker,
2731
+ details: failedVerifyDetails,
2732
+ verifyStatus: failedVerifyStatus,
2733
+ verifySummary: failedVerifyDetails.verifySummary,
2734
+ afterCdn: failedVerifyState?.after_cdn || null,
2735
+ mergeRecommendation: failedVerifyState?.merge_recommendation || null,
2736
+ verifyDecisionRequest: verifyDecisionRequest2,
2737
+ executed
2738
+ }
2739
+ );
2740
+ }
2687
2741
  return failedRun("verify", verifyRes.haltedForApproval ? "verify halted for approval" : "verify failed", verifyRes, {
2688
2742
  checkpoint: "verify_failed",
2689
2743
  details: { executed },
@@ -2737,8 +2791,9 @@ ${implementRes.stderr || ""}`;
2737
2791
  });
2738
2792
  state = readState(config.statePath);
2739
2793
  }
2794
+ const terminalCaptureQualitySummary = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true ? stringValue(captureQuality?.summary) : "";
2740
2795
  const checkpointName = captureTerminalBlocker ? "verify_capture_blocked" : "verify_capture_retry";
2741
- const summary = structuredInteractionFailureSummary || stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
2796
+ const summary = terminalCaptureQualitySummary || structuredInteractionFailureSummary || stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
2742
2797
  recordAttempt("verify", "checkpoint", summary, {
2743
2798
  autoApproved: verifyRes.autoApproved || false,
2744
2799
  checkpoint: checkpointName,
package/dist/index.js CHANGED
@@ -95,7 +95,7 @@ import {
95
95
  createDisabledRiddleProofAgentAdapter,
96
96
  readRiddleProofRunStatus,
97
97
  runRiddleProofEngineHarness
98
- } from "./chunk-AM3K5FPW.js";
98
+ } from "./chunk-UWO4YR7I.js";
99
99
  import {
100
100
  RIDDLE_PROOF_RUN_STATE_VERSION,
101
101
  appendRunEvent,
@@ -2682,6 +2682,60 @@ ${implementRes.stderr || ""}`;
2682
2682
  verifyRes = runOne("verify");
2683
2683
  executed.push(executedStep(verifyRes));
2684
2684
  if (!verifyRes.ok || verifyRes.haltedForApproval) {
2685
+ const failedVerifyState = readState(config.statePath);
2686
+ const failedVerifyStatus = failedVerifyState?.verify_status || "";
2687
+ if (!verifyRes.haltedForApproval && (failedVerifyStatus === "capture_incomplete" || failedVerifyStatus === "capture_error")) {
2688
+ const verifyDecisionRequest2 = failedVerifyState?.verify_decision_request || null;
2689
+ const captureQuality = verifyDecisionRequest2?.capture_quality || {};
2690
+ const conclusiveVerifyBlockers2 = proofAssessmentHardBlockersForState({
2691
+ ...failedVerifyState,
2692
+ structured_interaction_capture_failure_summary: stringValue(verifyDecisionRequest2?.structured_interaction_capture_failure_summary) || stringValue(failedVerifyState?.structured_interaction_capture_failure_summary) || void 0,
2693
+ structured_interaction_failure_summary: stringValue(verifyDecisionRequest2?.structured_interaction_failure_summary) || stringValue(failedVerifyState?.structured_interaction_failure_summary) || void 0
2694
+ });
2695
+ const structuredInteractionFailureSummary2 = stringValue(verifyDecisionRequest2?.structured_interaction_capture_failure_summary) || stringValue(verifyDecisionRequest2?.structured_interaction_failure_summary) || stringValue(failedVerifyState?.structured_interaction_capture_failure_summary) || stringValue(failedVerifyState?.structured_interaction_failure_summary) || stringValue(conclusiveVerifyBlockers2[0]);
2696
+ const captureTerminalBlocker = failedVerifyStatus === "capture_error" || conclusiveVerifyBlockers2.length > 0 || Boolean(structuredInteractionFailureSummary2) || captureQuality?.terminal_blocker === true || captureQuality?.blocking === true;
2697
+ const terminalCaptureQualitySummary = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true ? stringValue(captureQuality?.summary) : "";
2698
+ const checkpointName = captureTerminalBlocker ? "verify_capture_blocked" : "verify_capture_retry";
2699
+ const summary = terminalCaptureQualitySummary || structuredInteractionFailureSummary2 || stringValue(verifyDecisionRequest2?.summary) || stringValue(failedVerifyState?.verify_summary) || stringValue(failedVerifyState?.proof_summary) || stringValue(verifyRes.error) || "Verify capture failed before the evidence could be judged.";
2700
+ const failedVerifyDetails = {
2701
+ executed,
2702
+ verifyStatus: failedVerifyStatus,
2703
+ verifySummary: failedVerifyState?.verify_summary || failedVerifyState?.proof_summary || null,
2704
+ afterCdn: failedVerifyState?.after_cdn || null,
2705
+ mergeRecommendation: failedVerifyState?.merge_recommendation || null,
2706
+ verifyDecisionRequest: verifyDecisionRequest2,
2707
+ conclusiveVerifyBlockers: conclusiveVerifyBlockers2,
2708
+ verifyError: verifyRes.error || null,
2709
+ verifyStdout: verifyRes.stdout || "",
2710
+ verifyStderr: verifyRes.stderr || ""
2711
+ };
2712
+ recordAttempt("verify", "checkpoint", summary, {
2713
+ autoApproved: verifyRes.autoApproved || false,
2714
+ checkpoint: checkpointName,
2715
+ error: verifyRes.error || null,
2716
+ details: failedVerifyDetails
2717
+ });
2718
+ return checkpoint(
2719
+ "verify",
2720
+ checkpointName,
2721
+ summary,
2722
+ {
2723
+ ok: true,
2724
+ nextActions: captureTerminalBlocker ? ["inspect_after_capture", "report_specific_browser_evidence_blocker", "start_a_new_run_after_the_product_or_script_is_fixed"] : ["inspect_after_capture", "continue_internal_loop_with_checkpoint", "return_to_recon_if_baseline_is_wrong"],
2725
+ advanceOptions: needsImplementation ? ["author", "implement", "ship", "verify", "recon"] : ["author", "verify", "recon"],
2726
+ recommendedAdvanceStage: captureTerminalBlocker ? null : verifyDecisionRequest2?.recommended_stage || verifyDecisionRequest2?.continue_with_stage || "author",
2727
+ continueWithStage: captureTerminalBlocker ? null : verifyDecisionRequest2?.continue_with_stage || verifyDecisionRequest2?.recommended_stage || "author",
2728
+ blocking: captureTerminalBlocker,
2729
+ details: failedVerifyDetails,
2730
+ verifyStatus: failedVerifyStatus,
2731
+ verifySummary: failedVerifyDetails.verifySummary,
2732
+ afterCdn: failedVerifyState?.after_cdn || null,
2733
+ mergeRecommendation: failedVerifyState?.merge_recommendation || null,
2734
+ verifyDecisionRequest: verifyDecisionRequest2,
2735
+ executed
2736
+ }
2737
+ );
2738
+ }
2685
2739
  return failedRun("verify", verifyRes.haltedForApproval ? "verify halted for approval" : "verify failed", verifyRes, {
2686
2740
  checkpoint: "verify_failed",
2687
2741
  details: { executed },
@@ -2735,8 +2789,9 @@ ${implementRes.stderr || ""}`;
2735
2789
  });
2736
2790
  state = readState(config.statePath);
2737
2791
  }
2792
+ const terminalCaptureQualitySummary = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true ? stringValue(captureQuality?.summary) : "";
2738
2793
  const checkpointName = captureTerminalBlocker ? "verify_capture_blocked" : "verify_capture_retry";
2739
- const summary = structuredInteractionFailureSummary || stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
2794
+ const summary = terminalCaptureQualitySummary || structuredInteractionFailureSummary || stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
2740
2795
  recordAttempt("verify", "checkpoint", summary, {
2741
2796
  autoApproved: verifyRes.autoApproved || false,
2742
2797
  checkpoint: checkpointName,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createRiddleProofEngine,
3
3
  executeWorkflow
4
- } from "./chunk-YC77HZVF.js";
4
+ } from "./chunk-32RE64IO.js";
5
5
  import "./chunk-K6HZUSHH.js";
6
6
  import "./chunk-MLKGABMK.js";
7
7
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@riddledc/riddle-proof",
3
- "version": "0.8.29",
3
+ "version": "0.8.30",
4
4
  "description": "Reusable Riddle Proof contracts and helpers for evidence-backed agent changes.",
5
5
  "license": "MIT",
6
6
  "author": "RiddleDC",
@@ -3222,7 +3222,7 @@ def evaluate_capture_quality(payload, expected_path, verification_mode='proof'):
3222
3222
  }
3223
3223
 
3224
3224
 
3225
- def build_capture_retry_decision(after_observation, required_baseline_present, proof_evidence_blocker='', route_expectation=None):
3225
+ def build_capture_retry_decision(after_observation, required_baseline_present, proof_evidence_blocker='', route_expectation=None, verification_mode=''):
3226
3226
  reasons = []
3227
3227
  if not required_baseline_present:
3228
3228
  reasons.append('Recon baseline is missing, so verify should return to recon instead of guessing a new reference context.')
@@ -3361,6 +3361,17 @@ def build_capture_retry_decision(after_observation, required_baseline_present, p
3361
3361
  elif error_messages:
3362
3362
  reasons.append('Capture script error: ' + error_messages[0][:500])
3363
3363
  summary = 'Verify capture script failed: ' + error_messages[0][:300]
3364
+ reasons.append('The capture script produced a concrete browser/runtime failure, so this run should block with that exact evidence instead of re-authoring in a loop.')
3365
+ return {
3366
+ 'decision': 'failed_interaction_capture' if normalized_verification_mode(verification_mode) in INTERACTION_MODES else 'failed_capture',
3367
+ 'summary': summary,
3368
+ 'recommended_stage': None,
3369
+ 'continue_with_stage': None,
3370
+ 'blocking': True,
3371
+ 'terminal_blocker': True,
3372
+ 'reasons': reasons,
3373
+ 'mismatch': None,
3374
+ }
3364
3375
  else:
3365
3376
  summary = 'Verify needs another internal capture iteration before the evidence can be judged.'
3366
3377
  reasons.append('The capture plan itself needs revision, so author should tighten the proof script or framing inputs.')
@@ -4248,6 +4259,7 @@ else:
4248
4259
  required_baseline_present,
4249
4260
  proof_evidence_blocker or structured_interaction_capture_failure_summary,
4250
4261
  s.get('route_expectation') or {},
4262
+ s.get('verification_mode') or '',
4251
4263
  )
4252
4264
  if visual_delta_recovery:
4253
4265
  observation_reason = str(after_observation.get('reason') or '')
@@ -3709,11 +3709,15 @@ def run_verify_capture_retry_surfaces_script_timeout():
3709
3709
 
3710
3710
  assert after_verify['verify_status'] == 'capture_incomplete'
3711
3711
  capture_quality = after_verify['verify_decision_request']['capture_quality']
3712
- assert capture_quality['recommended_stage'] in ('author', 'verify')
3712
+ assert capture_quality['recommended_stage'] is None
3713
+ assert capture_quality['continue_with_stage'] is None
3714
+ assert capture_quality['blocking'] is True
3715
+ assert capture_quality['terminal_blocker'] is True
3713
3716
  capture_quality_text = json.dumps(capture_quality, sort_keys=True)
3714
3717
  assert 'locator.click: Timeout 30000ms exceeded' in capture_quality_text
3715
3718
  return {
3716
3719
  'ok': True,
3720
+ 'decision': capture_quality['decision'],
3717
3721
  'summary': capture_quality['summary'],
3718
3722
  }
3719
3723
  finally:
File without changes