@riddledc/riddle-proof 0.8.20 → 0.8.22
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/advanced/engine-harness.cjs +13 -8
- package/dist/advanced/engine-harness.js +1 -1
- package/dist/advanced/index.cjs +13 -8
- package/dist/advanced/index.js +2 -2
- package/dist/advanced/proof-run-engine.cjs +13 -8
- package/dist/advanced/proof-run-engine.js +1 -1
- package/dist/{chunk-5NEO7WDZ.js → chunk-KS3N5APP.js} +14 -8
- package/dist/{chunk-K3TPF55N.js → chunk-UTQJHWCQ.js} +1 -1
- package/dist/cli/index.js +2 -2
- package/dist/cli.cjs +13 -8
- package/dist/cli.js +2 -2
- package/dist/engine-harness.cjs +13 -8
- package/dist/engine-harness.js +1 -1
- package/dist/index.cjs +13 -8
- package/dist/index.js +1 -1
- package/dist/proof-run-engine.cjs +13 -8
- package/dist/proof-run-engine.js +1 -1
- package/package.json +1 -1
- package/runtime/lib/verify.py +146 -2
- package/runtime/tests/recon_verify_smoke.py +6 -0
- /package/dist/{chunk-RWF763A4.js → chunk-2DW2LBUD.js} +0 -0
|
@@ -2623,10 +2623,15 @@ ${implementRes.stderr || ""}`;
|
|
|
2623
2623
|
verifyContinueWithStage,
|
|
2624
2624
|
convergenceSignals
|
|
2625
2625
|
};
|
|
2626
|
-
const
|
|
2626
|
+
const conclusiveVerifyBlockers = proofAssessmentHardBlockersForState({
|
|
2627
|
+
...state,
|
|
2628
|
+
structured_interaction_capture_failure_summary: stringValue(verifyDecisionRequest?.structured_interaction_capture_failure_summary) || stringValue(state?.structured_interaction_capture_failure_summary) || void 0,
|
|
2629
|
+
structured_interaction_failure_summary: stringValue(verifyDecisionRequest?.structured_interaction_failure_summary) || stringValue(state?.structured_interaction_failure_summary) || void 0
|
|
2630
|
+
});
|
|
2631
|
+
const structuredInteractionFailureSummary = stringValue(verifyDecisionRequest?.structured_interaction_capture_failure_summary) || stringValue(verifyDecisionRequest?.structured_interaction_failure_summary) || stringValue(state?.structured_interaction_capture_failure_summary) || stringValue(state?.structured_interaction_failure_summary) || stringValue(conclusiveVerifyBlockers[0]);
|
|
2627
2632
|
if (verifyStatus !== "evidence_captured") {
|
|
2628
2633
|
const captureQuality = verifyDecisionRequest?.capture_quality || {};
|
|
2629
|
-
const captureTerminalBlocker = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true;
|
|
2634
|
+
const captureTerminalBlocker = conclusiveVerifyBlockers.length > 0 || Boolean(structuredInteractionFailureSummary) || captureQuality?.terminal_blocker === true || captureQuality?.blocking === true;
|
|
2630
2635
|
if (!captureTerminalBlocker && (verifyContinueWithStage || verifyRecommendedStage || "author") === "author") {
|
|
2631
2636
|
updateState(config.statePath, (currentState) => {
|
|
2632
2637
|
currentState.author_status = "needs_authoring";
|
|
@@ -2636,11 +2641,11 @@ ${implementRes.stderr || ""}`;
|
|
|
2636
2641
|
state = readState(config.statePath);
|
|
2637
2642
|
}
|
|
2638
2643
|
const checkpointName = captureTerminalBlocker ? "verify_capture_blocked" : "verify_capture_retry";
|
|
2639
|
-
const summary = stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
|
|
2644
|
+
const summary = structuredInteractionFailureSummary || stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
|
|
2640
2645
|
recordAttempt("verify", "checkpoint", summary, {
|
|
2641
2646
|
autoApproved: verifyRes.autoApproved || false,
|
|
2642
2647
|
checkpoint: checkpointName,
|
|
2643
|
-
details: verifyDetails
|
|
2648
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers }
|
|
2644
2649
|
});
|
|
2645
2650
|
return checkpoint(
|
|
2646
2651
|
"verify",
|
|
@@ -2653,7 +2658,7 @@ ${implementRes.stderr || ""}`;
|
|
|
2653
2658
|
recommendedAdvanceStage: captureTerminalBlocker ? null : verifyRecommendedStage || "author",
|
|
2654
2659
|
continueWithStage: captureTerminalBlocker ? null : verifyContinueWithStage || "author",
|
|
2655
2660
|
blocking: captureTerminalBlocker,
|
|
2656
|
-
details: verifyDetails,
|
|
2661
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers },
|
|
2657
2662
|
verifyStatus,
|
|
2658
2663
|
verifySummary,
|
|
2659
2664
|
afterCdn: state?.after_cdn || null,
|
|
@@ -2664,12 +2669,12 @@ ${implementRes.stderr || ""}`;
|
|
|
2664
2669
|
}
|
|
2665
2670
|
);
|
|
2666
2671
|
}
|
|
2667
|
-
if (structuredInteractionFailureSummary) {
|
|
2672
|
+
if (conclusiveVerifyBlockers.length > 0 || structuredInteractionFailureSummary) {
|
|
2668
2673
|
const summary = structuredInteractionFailureSummary;
|
|
2669
2674
|
recordAttempt("verify", "checkpoint", summary, {
|
|
2670
2675
|
autoApproved: verifyRes.autoApproved || false,
|
|
2671
2676
|
checkpoint: "verify_capture_blocked",
|
|
2672
|
-
details: verifyDetails
|
|
2677
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers }
|
|
2673
2678
|
});
|
|
2674
2679
|
return checkpoint(
|
|
2675
2680
|
"verify",
|
|
@@ -2682,7 +2687,7 @@ ${implementRes.stderr || ""}`;
|
|
|
2682
2687
|
recommendedAdvanceStage: null,
|
|
2683
2688
|
continueWithStage: null,
|
|
2684
2689
|
blocking: true,
|
|
2685
|
-
details: verifyDetails,
|
|
2690
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers },
|
|
2686
2691
|
verifyStatus,
|
|
2687
2692
|
verifySummary,
|
|
2688
2693
|
afterCdn: state?.after_cdn || null,
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
createDisabledRiddleProofAgentAdapter,
|
|
3
3
|
readRiddleProofRunStatus,
|
|
4
4
|
runRiddleProofEngineHarness
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-2DW2LBUD.js";
|
|
6
6
|
import "../chunk-YZUVEJ5B.js";
|
|
7
7
|
import "../chunk-FMOYUYH2.js";
|
|
8
8
|
import "../chunk-FU73I4V3.js";
|
package/dist/advanced/index.cjs
CHANGED
|
@@ -2654,10 +2654,15 @@ ${implementRes.stderr || ""}`;
|
|
|
2654
2654
|
verifyContinueWithStage,
|
|
2655
2655
|
convergenceSignals
|
|
2656
2656
|
};
|
|
2657
|
-
const
|
|
2657
|
+
const conclusiveVerifyBlockers = proofAssessmentHardBlockersForState({
|
|
2658
|
+
...state,
|
|
2659
|
+
structured_interaction_capture_failure_summary: stringValue(verifyDecisionRequest?.structured_interaction_capture_failure_summary) || stringValue(state?.structured_interaction_capture_failure_summary) || void 0,
|
|
2660
|
+
structured_interaction_failure_summary: stringValue(verifyDecisionRequest?.structured_interaction_failure_summary) || stringValue(state?.structured_interaction_failure_summary) || void 0
|
|
2661
|
+
});
|
|
2662
|
+
const structuredInteractionFailureSummary = stringValue(verifyDecisionRequest?.structured_interaction_capture_failure_summary) || stringValue(verifyDecisionRequest?.structured_interaction_failure_summary) || stringValue(state?.structured_interaction_capture_failure_summary) || stringValue(state?.structured_interaction_failure_summary) || stringValue(conclusiveVerifyBlockers[0]);
|
|
2658
2663
|
if (verifyStatus !== "evidence_captured") {
|
|
2659
2664
|
const captureQuality = verifyDecisionRequest?.capture_quality || {};
|
|
2660
|
-
const captureTerminalBlocker = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true;
|
|
2665
|
+
const captureTerminalBlocker = conclusiveVerifyBlockers.length > 0 || Boolean(structuredInteractionFailureSummary) || captureQuality?.terminal_blocker === true || captureQuality?.blocking === true;
|
|
2661
2666
|
if (!captureTerminalBlocker && (verifyContinueWithStage || verifyRecommendedStage || "author") === "author") {
|
|
2662
2667
|
updateState(config.statePath, (currentState) => {
|
|
2663
2668
|
currentState.author_status = "needs_authoring";
|
|
@@ -2667,11 +2672,11 @@ ${implementRes.stderr || ""}`;
|
|
|
2667
2672
|
state = readState(config.statePath);
|
|
2668
2673
|
}
|
|
2669
2674
|
const checkpointName = captureTerminalBlocker ? "verify_capture_blocked" : "verify_capture_retry";
|
|
2670
|
-
const summary = stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
|
|
2675
|
+
const summary = structuredInteractionFailureSummary || stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
|
|
2671
2676
|
recordAttempt("verify", "checkpoint", summary, {
|
|
2672
2677
|
autoApproved: verifyRes.autoApproved || false,
|
|
2673
2678
|
checkpoint: checkpointName,
|
|
2674
|
-
details: verifyDetails
|
|
2679
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers }
|
|
2675
2680
|
});
|
|
2676
2681
|
return checkpoint(
|
|
2677
2682
|
"verify",
|
|
@@ -2684,7 +2689,7 @@ ${implementRes.stderr || ""}`;
|
|
|
2684
2689
|
recommendedAdvanceStage: captureTerminalBlocker ? null : verifyRecommendedStage || "author",
|
|
2685
2690
|
continueWithStage: captureTerminalBlocker ? null : verifyContinueWithStage || "author",
|
|
2686
2691
|
blocking: captureTerminalBlocker,
|
|
2687
|
-
details: verifyDetails,
|
|
2692
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers },
|
|
2688
2693
|
verifyStatus,
|
|
2689
2694
|
verifySummary,
|
|
2690
2695
|
afterCdn: state?.after_cdn || null,
|
|
@@ -2695,12 +2700,12 @@ ${implementRes.stderr || ""}`;
|
|
|
2695
2700
|
}
|
|
2696
2701
|
);
|
|
2697
2702
|
}
|
|
2698
|
-
if (structuredInteractionFailureSummary) {
|
|
2703
|
+
if (conclusiveVerifyBlockers.length > 0 || structuredInteractionFailureSummary) {
|
|
2699
2704
|
const summary = structuredInteractionFailureSummary;
|
|
2700
2705
|
recordAttempt("verify", "checkpoint", summary, {
|
|
2701
2706
|
autoApproved: verifyRes.autoApproved || false,
|
|
2702
2707
|
checkpoint: "verify_capture_blocked",
|
|
2703
|
-
details: verifyDetails
|
|
2708
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers }
|
|
2704
2709
|
});
|
|
2705
2710
|
return checkpoint(
|
|
2706
2711
|
"verify",
|
|
@@ -2713,7 +2718,7 @@ ${implementRes.stderr || ""}`;
|
|
|
2713
2718
|
recommendedAdvanceStage: null,
|
|
2714
2719
|
continueWithStage: null,
|
|
2715
2720
|
blocking: true,
|
|
2716
|
-
details: verifyDetails,
|
|
2721
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers },
|
|
2717
2722
|
verifyStatus,
|
|
2718
2723
|
verifySummary,
|
|
2719
2724
|
afterCdn: state?.after_cdn || null,
|
package/dist/advanced/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
proof_run_engine_exports
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-KS3N5APP.js";
|
|
4
4
|
import {
|
|
5
5
|
runner_exports
|
|
6
6
|
} from "../chunk-P2RN2NYR.js";
|
|
7
7
|
import {
|
|
8
8
|
engine_harness_exports
|
|
9
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-2DW2LBUD.js";
|
|
10
10
|
import "../chunk-YZUVEJ5B.js";
|
|
11
11
|
import "../chunk-FMOYUYH2.js";
|
|
12
12
|
import {
|
|
@@ -2623,10 +2623,15 @@ ${implementRes.stderr || ""}`;
|
|
|
2623
2623
|
verifyContinueWithStage,
|
|
2624
2624
|
convergenceSignals
|
|
2625
2625
|
};
|
|
2626
|
-
const
|
|
2626
|
+
const conclusiveVerifyBlockers = proofAssessmentHardBlockersForState({
|
|
2627
|
+
...state,
|
|
2628
|
+
structured_interaction_capture_failure_summary: stringValue(verifyDecisionRequest?.structured_interaction_capture_failure_summary) || stringValue(state?.structured_interaction_capture_failure_summary) || void 0,
|
|
2629
|
+
structured_interaction_failure_summary: stringValue(verifyDecisionRequest?.structured_interaction_failure_summary) || stringValue(state?.structured_interaction_failure_summary) || void 0
|
|
2630
|
+
});
|
|
2631
|
+
const structuredInteractionFailureSummary = stringValue(verifyDecisionRequest?.structured_interaction_capture_failure_summary) || stringValue(verifyDecisionRequest?.structured_interaction_failure_summary) || stringValue(state?.structured_interaction_capture_failure_summary) || stringValue(state?.structured_interaction_failure_summary) || stringValue(conclusiveVerifyBlockers[0]);
|
|
2627
2632
|
if (verifyStatus !== "evidence_captured") {
|
|
2628
2633
|
const captureQuality = verifyDecisionRequest?.capture_quality || {};
|
|
2629
|
-
const captureTerminalBlocker = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true;
|
|
2634
|
+
const captureTerminalBlocker = conclusiveVerifyBlockers.length > 0 || Boolean(structuredInteractionFailureSummary) || captureQuality?.terminal_blocker === true || captureQuality?.blocking === true;
|
|
2630
2635
|
if (!captureTerminalBlocker && (verifyContinueWithStage || verifyRecommendedStage || "author") === "author") {
|
|
2631
2636
|
updateState(config.statePath, (currentState) => {
|
|
2632
2637
|
currentState.author_status = "needs_authoring";
|
|
@@ -2636,11 +2641,11 @@ ${implementRes.stderr || ""}`;
|
|
|
2636
2641
|
state = readState(config.statePath);
|
|
2637
2642
|
}
|
|
2638
2643
|
const checkpointName = captureTerminalBlocker ? "verify_capture_blocked" : "verify_capture_retry";
|
|
2639
|
-
const summary = stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
|
|
2644
|
+
const summary = structuredInteractionFailureSummary || stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
|
|
2640
2645
|
recordAttempt("verify", "checkpoint", summary, {
|
|
2641
2646
|
autoApproved: verifyRes.autoApproved || false,
|
|
2642
2647
|
checkpoint: checkpointName,
|
|
2643
|
-
details: verifyDetails
|
|
2648
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers }
|
|
2644
2649
|
});
|
|
2645
2650
|
return checkpoint(
|
|
2646
2651
|
"verify",
|
|
@@ -2653,7 +2658,7 @@ ${implementRes.stderr || ""}`;
|
|
|
2653
2658
|
recommendedAdvanceStage: captureTerminalBlocker ? null : verifyRecommendedStage || "author",
|
|
2654
2659
|
continueWithStage: captureTerminalBlocker ? null : verifyContinueWithStage || "author",
|
|
2655
2660
|
blocking: captureTerminalBlocker,
|
|
2656
|
-
details: verifyDetails,
|
|
2661
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers },
|
|
2657
2662
|
verifyStatus,
|
|
2658
2663
|
verifySummary,
|
|
2659
2664
|
afterCdn: state?.after_cdn || null,
|
|
@@ -2664,12 +2669,12 @@ ${implementRes.stderr || ""}`;
|
|
|
2664
2669
|
}
|
|
2665
2670
|
);
|
|
2666
2671
|
}
|
|
2667
|
-
if (structuredInteractionFailureSummary) {
|
|
2672
|
+
if (conclusiveVerifyBlockers.length > 0 || structuredInteractionFailureSummary) {
|
|
2668
2673
|
const summary = structuredInteractionFailureSummary;
|
|
2669
2674
|
recordAttempt("verify", "checkpoint", summary, {
|
|
2670
2675
|
autoApproved: verifyRes.autoApproved || false,
|
|
2671
2676
|
checkpoint: "verify_capture_blocked",
|
|
2672
|
-
details: verifyDetails
|
|
2677
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers }
|
|
2673
2678
|
});
|
|
2674
2679
|
return checkpoint(
|
|
2675
2680
|
"verify",
|
|
@@ -2682,7 +2687,7 @@ ${implementRes.stderr || ""}`;
|
|
|
2682
2687
|
recommendedAdvanceStage: null,
|
|
2683
2688
|
continueWithStage: null,
|
|
2684
2689
|
blocking: true,
|
|
2685
|
-
details: verifyDetails,
|
|
2690
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers },
|
|
2686
2691
|
verifyStatus,
|
|
2687
2692
|
verifySummary,
|
|
2688
2693
|
afterCdn: state?.after_cdn || null,
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
invalidateVerifyEvidence,
|
|
8
8
|
mergeStateFromParams,
|
|
9
9
|
noImplementationModeFor,
|
|
10
|
+
proofAssessmentHardBlockersForState,
|
|
10
11
|
readState,
|
|
11
12
|
recordStageAttempt,
|
|
12
13
|
resolveConfig,
|
|
@@ -1511,10 +1512,15 @@ ${implementRes.stderr || ""}`;
|
|
|
1511
1512
|
verifyContinueWithStage,
|
|
1512
1513
|
convergenceSignals
|
|
1513
1514
|
};
|
|
1514
|
-
const
|
|
1515
|
+
const conclusiveVerifyBlockers = proofAssessmentHardBlockersForState({
|
|
1516
|
+
...state,
|
|
1517
|
+
structured_interaction_capture_failure_summary: stringValue(verifyDecisionRequest?.structured_interaction_capture_failure_summary) || stringValue(state?.structured_interaction_capture_failure_summary) || void 0,
|
|
1518
|
+
structured_interaction_failure_summary: stringValue(verifyDecisionRequest?.structured_interaction_failure_summary) || stringValue(state?.structured_interaction_failure_summary) || void 0
|
|
1519
|
+
});
|
|
1520
|
+
const structuredInteractionFailureSummary = stringValue(verifyDecisionRequest?.structured_interaction_capture_failure_summary) || stringValue(verifyDecisionRequest?.structured_interaction_failure_summary) || stringValue(state?.structured_interaction_capture_failure_summary) || stringValue(state?.structured_interaction_failure_summary) || stringValue(conclusiveVerifyBlockers[0]);
|
|
1515
1521
|
if (verifyStatus !== "evidence_captured") {
|
|
1516
1522
|
const captureQuality = verifyDecisionRequest?.capture_quality || {};
|
|
1517
|
-
const captureTerminalBlocker = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true;
|
|
1523
|
+
const captureTerminalBlocker = conclusiveVerifyBlockers.length > 0 || Boolean(structuredInteractionFailureSummary) || captureQuality?.terminal_blocker === true || captureQuality?.blocking === true;
|
|
1518
1524
|
if (!captureTerminalBlocker && (verifyContinueWithStage || verifyRecommendedStage || "author") === "author") {
|
|
1519
1525
|
updateState(config.statePath, (currentState) => {
|
|
1520
1526
|
currentState.author_status = "needs_authoring";
|
|
@@ -1524,11 +1530,11 @@ ${implementRes.stderr || ""}`;
|
|
|
1524
1530
|
state = readState(config.statePath);
|
|
1525
1531
|
}
|
|
1526
1532
|
const checkpointName = captureTerminalBlocker ? "verify_capture_blocked" : "verify_capture_retry";
|
|
1527
|
-
const summary = stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
|
|
1533
|
+
const summary = structuredInteractionFailureSummary || stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
|
|
1528
1534
|
recordAttempt("verify", "checkpoint", summary, {
|
|
1529
1535
|
autoApproved: verifyRes.autoApproved || false,
|
|
1530
1536
|
checkpoint: checkpointName,
|
|
1531
|
-
details: verifyDetails
|
|
1537
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers }
|
|
1532
1538
|
});
|
|
1533
1539
|
return checkpoint(
|
|
1534
1540
|
"verify",
|
|
@@ -1541,7 +1547,7 @@ ${implementRes.stderr || ""}`;
|
|
|
1541
1547
|
recommendedAdvanceStage: captureTerminalBlocker ? null : verifyRecommendedStage || "author",
|
|
1542
1548
|
continueWithStage: captureTerminalBlocker ? null : verifyContinueWithStage || "author",
|
|
1543
1549
|
blocking: captureTerminalBlocker,
|
|
1544
|
-
details: verifyDetails,
|
|
1550
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers },
|
|
1545
1551
|
verifyStatus,
|
|
1546
1552
|
verifySummary,
|
|
1547
1553
|
afterCdn: state?.after_cdn || null,
|
|
@@ -1552,12 +1558,12 @@ ${implementRes.stderr || ""}`;
|
|
|
1552
1558
|
}
|
|
1553
1559
|
);
|
|
1554
1560
|
}
|
|
1555
|
-
if (structuredInteractionFailureSummary) {
|
|
1561
|
+
if (conclusiveVerifyBlockers.length > 0 || structuredInteractionFailureSummary) {
|
|
1556
1562
|
const summary = structuredInteractionFailureSummary;
|
|
1557
1563
|
recordAttempt("verify", "checkpoint", summary, {
|
|
1558
1564
|
autoApproved: verifyRes.autoApproved || false,
|
|
1559
1565
|
checkpoint: "verify_capture_blocked",
|
|
1560
|
-
details: verifyDetails
|
|
1566
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers }
|
|
1561
1567
|
});
|
|
1562
1568
|
return checkpoint(
|
|
1563
1569
|
"verify",
|
|
@@ -1570,7 +1576,7 @@ ${implementRes.stderr || ""}`;
|
|
|
1570
1576
|
recommendedAdvanceStage: null,
|
|
1571
1577
|
continueWithStage: null,
|
|
1572
1578
|
blocking: true,
|
|
1573
|
-
details: verifyDetails,
|
|
1579
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers },
|
|
1574
1580
|
verifyStatus,
|
|
1575
1581
|
verifySummary,
|
|
1576
1582
|
afterCdn: state?.after_cdn || null,
|
package/dist/cli/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import "../chunk-
|
|
1
|
+
import "../chunk-UTQJHWCQ.js";
|
|
2
2
|
import "../chunk-PEWAIEER.js";
|
|
3
3
|
import "../chunk-TWTEUS7R.js";
|
|
4
|
-
import "../chunk-
|
|
4
|
+
import "../chunk-2DW2LBUD.js";
|
|
5
5
|
import "../chunk-YZUVEJ5B.js";
|
|
6
6
|
import "../chunk-FMOYUYH2.js";
|
|
7
7
|
import "../chunk-FU73I4V3.js";
|
package/dist/cli.cjs
CHANGED
|
@@ -2623,10 +2623,15 @@ ${implementRes.stderr || ""}`;
|
|
|
2623
2623
|
verifyContinueWithStage,
|
|
2624
2624
|
convergenceSignals
|
|
2625
2625
|
};
|
|
2626
|
-
const
|
|
2626
|
+
const conclusiveVerifyBlockers = proofAssessmentHardBlockersForState({
|
|
2627
|
+
...state,
|
|
2628
|
+
structured_interaction_capture_failure_summary: stringValue(verifyDecisionRequest?.structured_interaction_capture_failure_summary) || stringValue(state?.structured_interaction_capture_failure_summary) || void 0,
|
|
2629
|
+
structured_interaction_failure_summary: stringValue(verifyDecisionRequest?.structured_interaction_failure_summary) || stringValue(state?.structured_interaction_failure_summary) || void 0
|
|
2630
|
+
});
|
|
2631
|
+
const structuredInteractionFailureSummary = stringValue(verifyDecisionRequest?.structured_interaction_capture_failure_summary) || stringValue(verifyDecisionRequest?.structured_interaction_failure_summary) || stringValue(state?.structured_interaction_capture_failure_summary) || stringValue(state?.structured_interaction_failure_summary) || stringValue(conclusiveVerifyBlockers[0]);
|
|
2627
2632
|
if (verifyStatus !== "evidence_captured") {
|
|
2628
2633
|
const captureQuality = verifyDecisionRequest?.capture_quality || {};
|
|
2629
|
-
const captureTerminalBlocker = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true;
|
|
2634
|
+
const captureTerminalBlocker = conclusiveVerifyBlockers.length > 0 || Boolean(structuredInteractionFailureSummary) || captureQuality?.terminal_blocker === true || captureQuality?.blocking === true;
|
|
2630
2635
|
if (!captureTerminalBlocker && (verifyContinueWithStage || verifyRecommendedStage || "author") === "author") {
|
|
2631
2636
|
updateState(config.statePath, (currentState) => {
|
|
2632
2637
|
currentState.author_status = "needs_authoring";
|
|
@@ -2636,11 +2641,11 @@ ${implementRes.stderr || ""}`;
|
|
|
2636
2641
|
state = readState(config.statePath);
|
|
2637
2642
|
}
|
|
2638
2643
|
const checkpointName = captureTerminalBlocker ? "verify_capture_blocked" : "verify_capture_retry";
|
|
2639
|
-
const summary = stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
|
|
2644
|
+
const summary = structuredInteractionFailureSummary || stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
|
|
2640
2645
|
recordAttempt("verify", "checkpoint", summary, {
|
|
2641
2646
|
autoApproved: verifyRes.autoApproved || false,
|
|
2642
2647
|
checkpoint: checkpointName,
|
|
2643
|
-
details: verifyDetails
|
|
2648
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers }
|
|
2644
2649
|
});
|
|
2645
2650
|
return checkpoint(
|
|
2646
2651
|
"verify",
|
|
@@ -2653,7 +2658,7 @@ ${implementRes.stderr || ""}`;
|
|
|
2653
2658
|
recommendedAdvanceStage: captureTerminalBlocker ? null : verifyRecommendedStage || "author",
|
|
2654
2659
|
continueWithStage: captureTerminalBlocker ? null : verifyContinueWithStage || "author",
|
|
2655
2660
|
blocking: captureTerminalBlocker,
|
|
2656
|
-
details: verifyDetails,
|
|
2661
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers },
|
|
2657
2662
|
verifyStatus,
|
|
2658
2663
|
verifySummary,
|
|
2659
2664
|
afterCdn: state?.after_cdn || null,
|
|
@@ -2664,12 +2669,12 @@ ${implementRes.stderr || ""}`;
|
|
|
2664
2669
|
}
|
|
2665
2670
|
);
|
|
2666
2671
|
}
|
|
2667
|
-
if (structuredInteractionFailureSummary) {
|
|
2672
|
+
if (conclusiveVerifyBlockers.length > 0 || structuredInteractionFailureSummary) {
|
|
2668
2673
|
const summary = structuredInteractionFailureSummary;
|
|
2669
2674
|
recordAttempt("verify", "checkpoint", summary, {
|
|
2670
2675
|
autoApproved: verifyRes.autoApproved || false,
|
|
2671
2676
|
checkpoint: "verify_capture_blocked",
|
|
2672
|
-
details: verifyDetails
|
|
2677
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers }
|
|
2673
2678
|
});
|
|
2674
2679
|
return checkpoint(
|
|
2675
2680
|
"verify",
|
|
@@ -2682,7 +2687,7 @@ ${implementRes.stderr || ""}`;
|
|
|
2682
2687
|
recommendedAdvanceStage: null,
|
|
2683
2688
|
continueWithStage: null,
|
|
2684
2689
|
blocking: true,
|
|
2685
|
-
details: verifyDetails,
|
|
2690
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers },
|
|
2686
2691
|
verifyStatus,
|
|
2687
2692
|
verifySummary,
|
|
2688
2693
|
afterCdn: state?.after_cdn || null,
|
package/dist/cli.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import "./chunk-
|
|
2
|
+
import "./chunk-UTQJHWCQ.js";
|
|
3
3
|
import "./chunk-PEWAIEER.js";
|
|
4
4
|
import "./chunk-TWTEUS7R.js";
|
|
5
|
-
import "./chunk-
|
|
5
|
+
import "./chunk-2DW2LBUD.js";
|
|
6
6
|
import "./chunk-YZUVEJ5B.js";
|
|
7
7
|
import "./chunk-FMOYUYH2.js";
|
|
8
8
|
import "./chunk-FU73I4V3.js";
|
package/dist/engine-harness.cjs
CHANGED
|
@@ -2623,10 +2623,15 @@ ${implementRes.stderr || ""}`;
|
|
|
2623
2623
|
verifyContinueWithStage,
|
|
2624
2624
|
convergenceSignals
|
|
2625
2625
|
};
|
|
2626
|
-
const
|
|
2626
|
+
const conclusiveVerifyBlockers = proofAssessmentHardBlockersForState({
|
|
2627
|
+
...state,
|
|
2628
|
+
structured_interaction_capture_failure_summary: stringValue(verifyDecisionRequest?.structured_interaction_capture_failure_summary) || stringValue(state?.structured_interaction_capture_failure_summary) || void 0,
|
|
2629
|
+
structured_interaction_failure_summary: stringValue(verifyDecisionRequest?.structured_interaction_failure_summary) || stringValue(state?.structured_interaction_failure_summary) || void 0
|
|
2630
|
+
});
|
|
2631
|
+
const structuredInteractionFailureSummary = stringValue(verifyDecisionRequest?.structured_interaction_capture_failure_summary) || stringValue(verifyDecisionRequest?.structured_interaction_failure_summary) || stringValue(state?.structured_interaction_capture_failure_summary) || stringValue(state?.structured_interaction_failure_summary) || stringValue(conclusiveVerifyBlockers[0]);
|
|
2627
2632
|
if (verifyStatus !== "evidence_captured") {
|
|
2628
2633
|
const captureQuality = verifyDecisionRequest?.capture_quality || {};
|
|
2629
|
-
const captureTerminalBlocker = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true;
|
|
2634
|
+
const captureTerminalBlocker = conclusiveVerifyBlockers.length > 0 || Boolean(structuredInteractionFailureSummary) || captureQuality?.terminal_blocker === true || captureQuality?.blocking === true;
|
|
2630
2635
|
if (!captureTerminalBlocker && (verifyContinueWithStage || verifyRecommendedStage || "author") === "author") {
|
|
2631
2636
|
updateState(config.statePath, (currentState) => {
|
|
2632
2637
|
currentState.author_status = "needs_authoring";
|
|
@@ -2636,11 +2641,11 @@ ${implementRes.stderr || ""}`;
|
|
|
2636
2641
|
state = readState(config.statePath);
|
|
2637
2642
|
}
|
|
2638
2643
|
const checkpointName = captureTerminalBlocker ? "verify_capture_blocked" : "verify_capture_retry";
|
|
2639
|
-
const summary = stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
|
|
2644
|
+
const summary = structuredInteractionFailureSummary || stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
|
|
2640
2645
|
recordAttempt("verify", "checkpoint", summary, {
|
|
2641
2646
|
autoApproved: verifyRes.autoApproved || false,
|
|
2642
2647
|
checkpoint: checkpointName,
|
|
2643
|
-
details: verifyDetails
|
|
2648
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers }
|
|
2644
2649
|
});
|
|
2645
2650
|
return checkpoint(
|
|
2646
2651
|
"verify",
|
|
@@ -2653,7 +2658,7 @@ ${implementRes.stderr || ""}`;
|
|
|
2653
2658
|
recommendedAdvanceStage: captureTerminalBlocker ? null : verifyRecommendedStage || "author",
|
|
2654
2659
|
continueWithStage: captureTerminalBlocker ? null : verifyContinueWithStage || "author",
|
|
2655
2660
|
blocking: captureTerminalBlocker,
|
|
2656
|
-
details: verifyDetails,
|
|
2661
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers },
|
|
2657
2662
|
verifyStatus,
|
|
2658
2663
|
verifySummary,
|
|
2659
2664
|
afterCdn: state?.after_cdn || null,
|
|
@@ -2664,12 +2669,12 @@ ${implementRes.stderr || ""}`;
|
|
|
2664
2669
|
}
|
|
2665
2670
|
);
|
|
2666
2671
|
}
|
|
2667
|
-
if (structuredInteractionFailureSummary) {
|
|
2672
|
+
if (conclusiveVerifyBlockers.length > 0 || structuredInteractionFailureSummary) {
|
|
2668
2673
|
const summary = structuredInteractionFailureSummary;
|
|
2669
2674
|
recordAttempt("verify", "checkpoint", summary, {
|
|
2670
2675
|
autoApproved: verifyRes.autoApproved || false,
|
|
2671
2676
|
checkpoint: "verify_capture_blocked",
|
|
2672
|
-
details: verifyDetails
|
|
2677
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers }
|
|
2673
2678
|
});
|
|
2674
2679
|
return checkpoint(
|
|
2675
2680
|
"verify",
|
|
@@ -2682,7 +2687,7 @@ ${implementRes.stderr || ""}`;
|
|
|
2682
2687
|
recommendedAdvanceStage: null,
|
|
2683
2688
|
continueWithStage: null,
|
|
2684
2689
|
blocking: true,
|
|
2685
|
-
details: verifyDetails,
|
|
2690
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers },
|
|
2686
2691
|
verifyStatus,
|
|
2687
2692
|
verifySummary,
|
|
2688
2693
|
afterCdn: state?.after_cdn || null,
|
package/dist/engine-harness.js
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -2623,10 +2623,15 @@ ${implementRes.stderr || ""}`;
|
|
|
2623
2623
|
verifyContinueWithStage,
|
|
2624
2624
|
convergenceSignals
|
|
2625
2625
|
};
|
|
2626
|
-
const
|
|
2626
|
+
const conclusiveVerifyBlockers = proofAssessmentHardBlockersForState({
|
|
2627
|
+
...state,
|
|
2628
|
+
structured_interaction_capture_failure_summary: stringValue(verifyDecisionRequest?.structured_interaction_capture_failure_summary) || stringValue(state?.structured_interaction_capture_failure_summary) || void 0,
|
|
2629
|
+
structured_interaction_failure_summary: stringValue(verifyDecisionRequest?.structured_interaction_failure_summary) || stringValue(state?.structured_interaction_failure_summary) || void 0
|
|
2630
|
+
});
|
|
2631
|
+
const structuredInteractionFailureSummary = stringValue(verifyDecisionRequest?.structured_interaction_capture_failure_summary) || stringValue(verifyDecisionRequest?.structured_interaction_failure_summary) || stringValue(state?.structured_interaction_capture_failure_summary) || stringValue(state?.structured_interaction_failure_summary) || stringValue(conclusiveVerifyBlockers[0]);
|
|
2627
2632
|
if (verifyStatus !== "evidence_captured") {
|
|
2628
2633
|
const captureQuality = verifyDecisionRequest?.capture_quality || {};
|
|
2629
|
-
const captureTerminalBlocker = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true;
|
|
2634
|
+
const captureTerminalBlocker = conclusiveVerifyBlockers.length > 0 || Boolean(structuredInteractionFailureSummary) || captureQuality?.terminal_blocker === true || captureQuality?.blocking === true;
|
|
2630
2635
|
if (!captureTerminalBlocker && (verifyContinueWithStage || verifyRecommendedStage || "author") === "author") {
|
|
2631
2636
|
updateState(config.statePath, (currentState) => {
|
|
2632
2637
|
currentState.author_status = "needs_authoring";
|
|
@@ -2636,11 +2641,11 @@ ${implementRes.stderr || ""}`;
|
|
|
2636
2641
|
state = readState(config.statePath);
|
|
2637
2642
|
}
|
|
2638
2643
|
const checkpointName = captureTerminalBlocker ? "verify_capture_blocked" : "verify_capture_retry";
|
|
2639
|
-
const summary = stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
|
|
2644
|
+
const summary = structuredInteractionFailureSummary || stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
|
|
2640
2645
|
recordAttempt("verify", "checkpoint", summary, {
|
|
2641
2646
|
autoApproved: verifyRes.autoApproved || false,
|
|
2642
2647
|
checkpoint: checkpointName,
|
|
2643
|
-
details: verifyDetails
|
|
2648
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers }
|
|
2644
2649
|
});
|
|
2645
2650
|
return checkpoint(
|
|
2646
2651
|
"verify",
|
|
@@ -2653,7 +2658,7 @@ ${implementRes.stderr || ""}`;
|
|
|
2653
2658
|
recommendedAdvanceStage: captureTerminalBlocker ? null : verifyRecommendedStage || "author",
|
|
2654
2659
|
continueWithStage: captureTerminalBlocker ? null : verifyContinueWithStage || "author",
|
|
2655
2660
|
blocking: captureTerminalBlocker,
|
|
2656
|
-
details: verifyDetails,
|
|
2661
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers },
|
|
2657
2662
|
verifyStatus,
|
|
2658
2663
|
verifySummary,
|
|
2659
2664
|
afterCdn: state?.after_cdn || null,
|
|
@@ -2664,12 +2669,12 @@ ${implementRes.stderr || ""}`;
|
|
|
2664
2669
|
}
|
|
2665
2670
|
);
|
|
2666
2671
|
}
|
|
2667
|
-
if (structuredInteractionFailureSummary) {
|
|
2672
|
+
if (conclusiveVerifyBlockers.length > 0 || structuredInteractionFailureSummary) {
|
|
2668
2673
|
const summary = structuredInteractionFailureSummary;
|
|
2669
2674
|
recordAttempt("verify", "checkpoint", summary, {
|
|
2670
2675
|
autoApproved: verifyRes.autoApproved || false,
|
|
2671
2676
|
checkpoint: "verify_capture_blocked",
|
|
2672
|
-
details: verifyDetails
|
|
2677
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers }
|
|
2673
2678
|
});
|
|
2674
2679
|
return checkpoint(
|
|
2675
2680
|
"verify",
|
|
@@ -2682,7 +2687,7 @@ ${implementRes.stderr || ""}`;
|
|
|
2682
2687
|
recommendedAdvanceStage: null,
|
|
2683
2688
|
continueWithStage: null,
|
|
2684
2689
|
blocking: true,
|
|
2685
|
-
details: verifyDetails,
|
|
2690
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers },
|
|
2686
2691
|
verifyStatus,
|
|
2687
2692
|
verifySummary,
|
|
2688
2693
|
afterCdn: state?.after_cdn || null,
|
package/dist/index.js
CHANGED
|
@@ -2621,10 +2621,15 @@ ${implementRes.stderr || ""}`;
|
|
|
2621
2621
|
verifyContinueWithStage,
|
|
2622
2622
|
convergenceSignals
|
|
2623
2623
|
};
|
|
2624
|
-
const
|
|
2624
|
+
const conclusiveVerifyBlockers = proofAssessmentHardBlockersForState({
|
|
2625
|
+
...state,
|
|
2626
|
+
structured_interaction_capture_failure_summary: stringValue(verifyDecisionRequest?.structured_interaction_capture_failure_summary) || stringValue(state?.structured_interaction_capture_failure_summary) || void 0,
|
|
2627
|
+
structured_interaction_failure_summary: stringValue(verifyDecisionRequest?.structured_interaction_failure_summary) || stringValue(state?.structured_interaction_failure_summary) || void 0
|
|
2628
|
+
});
|
|
2629
|
+
const structuredInteractionFailureSummary = stringValue(verifyDecisionRequest?.structured_interaction_capture_failure_summary) || stringValue(verifyDecisionRequest?.structured_interaction_failure_summary) || stringValue(state?.structured_interaction_capture_failure_summary) || stringValue(state?.structured_interaction_failure_summary) || stringValue(conclusiveVerifyBlockers[0]);
|
|
2625
2630
|
if (verifyStatus !== "evidence_captured") {
|
|
2626
2631
|
const captureQuality = verifyDecisionRequest?.capture_quality || {};
|
|
2627
|
-
const captureTerminalBlocker = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true;
|
|
2632
|
+
const captureTerminalBlocker = conclusiveVerifyBlockers.length > 0 || Boolean(structuredInteractionFailureSummary) || captureQuality?.terminal_blocker === true || captureQuality?.blocking === true;
|
|
2628
2633
|
if (!captureTerminalBlocker && (verifyContinueWithStage || verifyRecommendedStage || "author") === "author") {
|
|
2629
2634
|
updateState(config.statePath, (currentState) => {
|
|
2630
2635
|
currentState.author_status = "needs_authoring";
|
|
@@ -2634,11 +2639,11 @@ ${implementRes.stderr || ""}`;
|
|
|
2634
2639
|
state = readState(config.statePath);
|
|
2635
2640
|
}
|
|
2636
2641
|
const checkpointName = captureTerminalBlocker ? "verify_capture_blocked" : "verify_capture_retry";
|
|
2637
|
-
const summary = stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
|
|
2642
|
+
const summary = structuredInteractionFailureSummary || stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
|
|
2638
2643
|
recordAttempt("verify", "checkpoint", summary, {
|
|
2639
2644
|
autoApproved: verifyRes.autoApproved || false,
|
|
2640
2645
|
checkpoint: checkpointName,
|
|
2641
|
-
details: verifyDetails
|
|
2646
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers }
|
|
2642
2647
|
});
|
|
2643
2648
|
return checkpoint(
|
|
2644
2649
|
"verify",
|
|
@@ -2651,7 +2656,7 @@ ${implementRes.stderr || ""}`;
|
|
|
2651
2656
|
recommendedAdvanceStage: captureTerminalBlocker ? null : verifyRecommendedStage || "author",
|
|
2652
2657
|
continueWithStage: captureTerminalBlocker ? null : verifyContinueWithStage || "author",
|
|
2653
2658
|
blocking: captureTerminalBlocker,
|
|
2654
|
-
details: verifyDetails,
|
|
2659
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers },
|
|
2655
2660
|
verifyStatus,
|
|
2656
2661
|
verifySummary,
|
|
2657
2662
|
afterCdn: state?.after_cdn || null,
|
|
@@ -2662,12 +2667,12 @@ ${implementRes.stderr || ""}`;
|
|
|
2662
2667
|
}
|
|
2663
2668
|
);
|
|
2664
2669
|
}
|
|
2665
|
-
if (structuredInteractionFailureSummary) {
|
|
2670
|
+
if (conclusiveVerifyBlockers.length > 0 || structuredInteractionFailureSummary) {
|
|
2666
2671
|
const summary = structuredInteractionFailureSummary;
|
|
2667
2672
|
recordAttempt("verify", "checkpoint", summary, {
|
|
2668
2673
|
autoApproved: verifyRes.autoApproved || false,
|
|
2669
2674
|
checkpoint: "verify_capture_blocked",
|
|
2670
|
-
details: verifyDetails
|
|
2675
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers }
|
|
2671
2676
|
});
|
|
2672
2677
|
return checkpoint(
|
|
2673
2678
|
"verify",
|
|
@@ -2680,7 +2685,7 @@ ${implementRes.stderr || ""}`;
|
|
|
2680
2685
|
recommendedAdvanceStage: null,
|
|
2681
2686
|
continueWithStage: null,
|
|
2682
2687
|
blocking: true,
|
|
2683
|
-
details: verifyDetails,
|
|
2688
|
+
details: { ...verifyDetails, conclusiveVerifyBlockers },
|
|
2684
2689
|
verifyStatus,
|
|
2685
2690
|
verifySummary,
|
|
2686
2691
|
afterCdn: state?.after_cdn || null,
|
package/dist/proof-run-engine.js
CHANGED
package/package.json
CHANGED
package/runtime/lib/verify.py
CHANGED
|
@@ -2112,15 +2112,40 @@ EXPECTED_TERMINAL_PATH_KEYS = (
|
|
|
2112
2112
|
'expected_final_route', 'expectedFinalRoute',
|
|
2113
2113
|
)
|
|
2114
2114
|
OBSERVED_TERMINAL_PATH_KEYS = (
|
|
2115
|
-
'terminal_path', 'terminalPath',
|
|
2116
2115
|
'terminal_url', 'terminalUrl',
|
|
2117
2116
|
'terminal_href', 'terminalHref',
|
|
2118
2117
|
'terminal_route', 'terminalRoute',
|
|
2119
|
-
'
|
|
2118
|
+
'terminal_path', 'terminalPath',
|
|
2120
2119
|
'after_url', 'afterUrl',
|
|
2121
2120
|
'after_href', 'afterHref',
|
|
2122
2121
|
'after_route', 'afterRoute',
|
|
2122
|
+
'after_path', 'afterPath',
|
|
2123
|
+
'final_url', 'finalUrl',
|
|
2124
|
+
'final_href', 'finalHref',
|
|
2125
|
+
'final_route', 'finalRoute',
|
|
2123
2126
|
'final_path', 'finalPath',
|
|
2127
|
+
)
|
|
2128
|
+
EXPECTED_TERMINAL_FULL_PATH_KEYS = (
|
|
2129
|
+
'expected_url', 'expectedUrl',
|
|
2130
|
+
'expected_href', 'expectedHref',
|
|
2131
|
+
'expected_route', 'expectedRoute',
|
|
2132
|
+
'expected_terminal_url', 'expectedTerminalUrl',
|
|
2133
|
+
'expected_terminal_href', 'expectedTerminalHref',
|
|
2134
|
+
'expected_terminal_route', 'expectedTerminalRoute',
|
|
2135
|
+
'expected_after_url', 'expectedAfterUrl',
|
|
2136
|
+
'expected_after_href', 'expectedAfterHref',
|
|
2137
|
+
'expected_after_route', 'expectedAfterRoute',
|
|
2138
|
+
'expected_final_url', 'expectedFinalUrl',
|
|
2139
|
+
'expected_final_href', 'expectedFinalHref',
|
|
2140
|
+
'expected_final_route', 'expectedFinalRoute',
|
|
2141
|
+
)
|
|
2142
|
+
OBSERVED_TERMINAL_FULL_PATH_KEYS = (
|
|
2143
|
+
'terminal_url', 'terminalUrl',
|
|
2144
|
+
'terminal_href', 'terminalHref',
|
|
2145
|
+
'terminal_route', 'terminalRoute',
|
|
2146
|
+
'after_url', 'afterUrl',
|
|
2147
|
+
'after_href', 'afterHref',
|
|
2148
|
+
'after_route', 'afterRoute',
|
|
2124
2149
|
'final_url', 'finalUrl',
|
|
2125
2150
|
'final_href', 'finalHref',
|
|
2126
2151
|
'final_route', 'finalRoute',
|
|
@@ -2211,6 +2236,103 @@ def record_path_candidate(record, allow_location_keys=False):
|
|
|
2211
2236
|
return record_path_candidate_for_keys(record, EXPLICIT_TERMINAL_PATH_KEYS, allow_location_keys)
|
|
2212
2237
|
|
|
2213
2238
|
|
|
2239
|
+
def first_string_for_keys(record, keys):
|
|
2240
|
+
if not isinstance(record, dict):
|
|
2241
|
+
return ''
|
|
2242
|
+
for key in keys:
|
|
2243
|
+
value = record.get(key)
|
|
2244
|
+
if isinstance(value, str) and value.strip():
|
|
2245
|
+
return value.strip()
|
|
2246
|
+
return ''
|
|
2247
|
+
|
|
2248
|
+
|
|
2249
|
+
def route_component_candidate(record, path_keys, query_keys, hash_keys):
|
|
2250
|
+
path_value = first_string_for_keys(record, path_keys)
|
|
2251
|
+
if not path_value:
|
|
2252
|
+
return ''
|
|
2253
|
+
base = path_candidate(path_value)
|
|
2254
|
+
if not base:
|
|
2255
|
+
return ''
|
|
2256
|
+
parsed = urlparse(base)
|
|
2257
|
+
query = parsed.query or ''
|
|
2258
|
+
fragment = parsed.fragment or ''
|
|
2259
|
+
query_value = first_string_for_keys(record, query_keys)
|
|
2260
|
+
hash_value = first_string_for_keys(record, hash_keys)
|
|
2261
|
+
if query_value:
|
|
2262
|
+
query = query_value[1:] if query_value.startswith('?') else query_value
|
|
2263
|
+
if hash_value:
|
|
2264
|
+
fragment = hash_value[1:] if hash_value.startswith('#') else hash_value
|
|
2265
|
+
pathname = parsed.path or '/'
|
|
2266
|
+
return normalize_observed_path(
|
|
2267
|
+
pathname
|
|
2268
|
+
+ (('?' + query) if query else '')
|
|
2269
|
+
+ (('#' + fragment) if fragment else '')
|
|
2270
|
+
)
|
|
2271
|
+
|
|
2272
|
+
|
|
2273
|
+
EXPECTED_COMPONENT_PATH_KEYS = (
|
|
2274
|
+
'expected_path', 'expectedPath',
|
|
2275
|
+
'expected_terminal_path', 'expectedTerminalPath',
|
|
2276
|
+
'expected_after_path', 'expectedAfterPath',
|
|
2277
|
+
'expected_final_path', 'expectedFinalPath',
|
|
2278
|
+
)
|
|
2279
|
+
EXPECTED_COMPONENT_QUERY_KEYS = (
|
|
2280
|
+
'expected_query', 'expectedQuery',
|
|
2281
|
+
'expected_search', 'expectedSearch',
|
|
2282
|
+
'expected_terminal_query', 'expectedTerminalQuery',
|
|
2283
|
+
'expected_terminal_search', 'expectedTerminalSearch',
|
|
2284
|
+
'expected_after_query', 'expectedAfterQuery',
|
|
2285
|
+
'expected_after_search', 'expectedAfterSearch',
|
|
2286
|
+
'expected_final_query', 'expectedFinalQuery',
|
|
2287
|
+
'expected_final_search', 'expectedFinalSearch',
|
|
2288
|
+
)
|
|
2289
|
+
EXPECTED_COMPONENT_HASH_KEYS = (
|
|
2290
|
+
'expected_hash', 'expectedHash',
|
|
2291
|
+
'expected_fragment', 'expectedFragment',
|
|
2292
|
+
'expected_terminal_hash', 'expectedTerminalHash',
|
|
2293
|
+
'expected_terminal_fragment', 'expectedTerminalFragment',
|
|
2294
|
+
'expected_after_hash', 'expectedAfterHash',
|
|
2295
|
+
'expected_after_fragment', 'expectedAfterFragment',
|
|
2296
|
+
'expected_final_hash', 'expectedFinalHash',
|
|
2297
|
+
'expected_final_fragment', 'expectedFinalFragment',
|
|
2298
|
+
)
|
|
2299
|
+
OBSERVED_COMPONENT_PATH_KEYS = (
|
|
2300
|
+
'terminal_path', 'terminalPath',
|
|
2301
|
+
'after_path', 'afterPath',
|
|
2302
|
+
'final_path', 'finalPath',
|
|
2303
|
+
'observed_path', 'observedPath',
|
|
2304
|
+
'actual_path', 'actualPath',
|
|
2305
|
+
'pathname',
|
|
2306
|
+
)
|
|
2307
|
+
OBSERVED_COMPONENT_QUERY_KEYS = (
|
|
2308
|
+
'terminal_query', 'terminalQuery',
|
|
2309
|
+
'terminal_search', 'terminalSearch',
|
|
2310
|
+
'after_query', 'afterQuery',
|
|
2311
|
+
'after_search', 'afterSearch',
|
|
2312
|
+
'final_query', 'finalQuery',
|
|
2313
|
+
'final_search', 'finalSearch',
|
|
2314
|
+
'observed_query', 'observedQuery',
|
|
2315
|
+
'observed_search', 'observedSearch',
|
|
2316
|
+
'actual_query', 'actualQuery',
|
|
2317
|
+
'actual_search', 'actualSearch',
|
|
2318
|
+
'search',
|
|
2319
|
+
)
|
|
2320
|
+
OBSERVED_COMPONENT_HASH_KEYS = (
|
|
2321
|
+
'terminal_hash', 'terminalHash',
|
|
2322
|
+
'terminal_fragment', 'terminalFragment',
|
|
2323
|
+
'after_hash', 'afterHash',
|
|
2324
|
+
'after_fragment', 'afterFragment',
|
|
2325
|
+
'final_hash', 'finalHash',
|
|
2326
|
+
'final_fragment', 'finalFragment',
|
|
2327
|
+
'observed_hash', 'observedHash',
|
|
2328
|
+
'observed_fragment', 'observedFragment',
|
|
2329
|
+
'actual_hash', 'actualHash',
|
|
2330
|
+
'actual_fragment', 'actualFragment',
|
|
2331
|
+
'hash',
|
|
2332
|
+
'fragment',
|
|
2333
|
+
)
|
|
2334
|
+
|
|
2335
|
+
|
|
2214
2336
|
def terminal_path_from_record(record, depth=0):
|
|
2215
2337
|
if not isinstance(record, dict) or depth > 4:
|
|
2216
2338
|
return ''
|
|
@@ -2256,6 +2378,17 @@ def terminal_path_from_record(record, depth=0):
|
|
|
2256
2378
|
def expected_terminal_path_from_record(record, depth=0):
|
|
2257
2379
|
if not isinstance(record, dict) or depth > 4:
|
|
2258
2380
|
return ''
|
|
2381
|
+
candidate = record_path_candidate_for_keys(record, EXPECTED_TERMINAL_FULL_PATH_KEYS)
|
|
2382
|
+
if candidate:
|
|
2383
|
+
return candidate
|
|
2384
|
+
candidate = route_component_candidate(
|
|
2385
|
+
record,
|
|
2386
|
+
EXPECTED_COMPONENT_PATH_KEYS,
|
|
2387
|
+
EXPECTED_COMPONENT_QUERY_KEYS,
|
|
2388
|
+
EXPECTED_COMPONENT_HASH_KEYS,
|
|
2389
|
+
)
|
|
2390
|
+
if candidate:
|
|
2391
|
+
return candidate
|
|
2259
2392
|
candidate = record_path_candidate_for_keys(record, EXPECTED_TERMINAL_PATH_KEYS)
|
|
2260
2393
|
if candidate:
|
|
2261
2394
|
return candidate
|
|
@@ -2304,6 +2437,17 @@ def expected_terminal_path_from_record(record, depth=0):
|
|
|
2304
2437
|
def observed_terminal_path_from_record(record, depth=0):
|
|
2305
2438
|
if not isinstance(record, dict) or depth > 4:
|
|
2306
2439
|
return ''
|
|
2440
|
+
candidate = record_path_candidate_for_keys(record, OBSERVED_TERMINAL_FULL_PATH_KEYS)
|
|
2441
|
+
if candidate:
|
|
2442
|
+
return candidate
|
|
2443
|
+
candidate = route_component_candidate(
|
|
2444
|
+
record,
|
|
2445
|
+
OBSERVED_COMPONENT_PATH_KEYS,
|
|
2446
|
+
OBSERVED_COMPONENT_QUERY_KEYS,
|
|
2447
|
+
OBSERVED_COMPONENT_HASH_KEYS,
|
|
2448
|
+
)
|
|
2449
|
+
if candidate:
|
|
2450
|
+
return candidate
|
|
2307
2451
|
candidate = record_path_candidate_for_keys(record, OBSERVED_TERMINAL_PATH_KEYS)
|
|
2308
2452
|
if candidate:
|
|
2309
2453
|
return candidate
|
|
@@ -412,6 +412,12 @@ class FakeRiddle:
|
|
|
412
412
|
}
|
|
413
413
|
proof_evidence = {
|
|
414
414
|
'version': 'riddle-proof.interaction.v1',
|
|
415
|
+
'routeExpectationSource': 'capture_script.expectedUrl',
|
|
416
|
+
'expectedUrl': 'https://riddledc.com/pricing/?rp_probe=1#pricing-probe',
|
|
417
|
+
'terminalPath': '/pricing/',
|
|
418
|
+
'terminalSearch': '?rp_probe=1',
|
|
419
|
+
'terminalHash': '#pricing-probe',
|
|
420
|
+
'terminalUrl': 'https://riddledc.com/pricing/?rp_probe=1#pricing-probe',
|
|
415
421
|
'start': {'href': 'https://riddledc.com/'},
|
|
416
422
|
'action': {'type': 'click', 'target': 'Pricing'},
|
|
417
423
|
'terminal': {
|
|
File without changes
|