@riddledc/riddle-proof 0.5.32 → 0.5.34
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/{chunk-R4BPJNAM.js → chunk-4YCWZVBN.js} +101 -8
- package/dist/{chunk-LIDYNU7Q.js → chunk-7R6ZQE3X.js} +39 -2
- package/dist/{chunk-TMMKRKY5.js → chunk-J2MERROF.js} +1 -0
- package/dist/{chunk-F6VFKS7K.js → chunk-MQ2BHHLX.js} +2 -2
- package/dist/{chunk-7ZJAUEUN.js → chunk-OASB3CYU.js} +6 -1
- package/dist/chunk-ODORKNSO.js +121 -0
- package/dist/engine-harness.cjs +143 -9
- package/dist/engine-harness.js +4 -3
- package/dist/index.cjs +271 -11
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +24 -7
- package/dist/openclaw.cjs +5 -0
- package/dist/openclaw.js +2 -2
- package/dist/proof-run-core.cjs +104 -8
- package/dist/proof-run-core.d.cts +24 -1
- package/dist/proof-run-core.d.ts +24 -1
- package/dist/proof-run-core.js +7 -1
- package/dist/proof-run-engine.cjs +101 -8
- package/dist/proof-run-engine.d.cts +24 -0
- package/dist/proof-run-engine.d.ts +24 -0
- package/dist/proof-run-engine.js +4 -1
- package/dist/proof-session.cjs +151 -0
- package/dist/proof-session.d.cts +37 -0
- package/dist/proof-session.d.ts +37 -0
- package/dist/proof-session.js +18 -0
- package/dist/result.cjs +1 -0
- package/dist/result.js +1 -1
- package/dist/runner.cjs +6 -0
- package/dist/runner.js +3 -3
- package/dist/state.cjs +5 -0
- package/dist/state.js +2 -2
- package/dist/types.d.cts +67 -1
- package/dist/types.d.ts +67 -1
- package/package.json +7 -2
- package/runtime/lib/preflight.py +42 -2
- package/runtime/lib/ship.py +55 -1
- package/runtime/lib/util.py +237 -0
- package/runtime/lib/verify.py +93 -6
- package/runtime/tests/recon_verify_smoke.py +181 -3
package/dist/index.cjs
CHANGED
|
@@ -81,6 +81,11 @@ function ensureAction(action) {
|
|
|
81
81
|
function workflowFile(riddleProofDir, action) {
|
|
82
82
|
return import_node_path.default.join(riddleProofDir, "pipelines", `riddle-proof-${action}.lobster`);
|
|
83
83
|
}
|
|
84
|
+
function asJsonString(value) {
|
|
85
|
+
if (value === void 0 || value === null || value === "") return "";
|
|
86
|
+
if (typeof value === "string") return value;
|
|
87
|
+
return JSON.stringify(value);
|
|
88
|
+
}
|
|
84
89
|
function buildSetupArgs(params, config) {
|
|
85
90
|
if (!params.repo) throw new Error("repo is required for setup/run");
|
|
86
91
|
if (!params.change_request) throw new Error("change_request is required for setup/run");
|
|
@@ -96,8 +101,13 @@ function buildSetupArgs(params, config) {
|
|
|
96
101
|
prod_url: params.prod_url || "",
|
|
97
102
|
capture_script: captureScript,
|
|
98
103
|
success_criteria: params.success_criteria || "",
|
|
99
|
-
assertions_json: params.assertions_json ||
|
|
104
|
+
assertions_json: params.assertions_json || asJsonString(params.assertions),
|
|
100
105
|
verification_mode: params.verification_mode || "proof",
|
|
106
|
+
resume_session: params.resume_session || "",
|
|
107
|
+
target_image_url: params.target_image_url || "",
|
|
108
|
+
target_image_hash: params.target_image_hash || "",
|
|
109
|
+
viewport_matrix_json: params.viewport_matrix_json || asJsonString(params.viewport_matrix),
|
|
110
|
+
deterministic_setup_json: params.deterministic_setup_json || asJsonString(params.deterministic_setup),
|
|
101
111
|
reference: requestedReference,
|
|
102
112
|
base_branch: params.base_branch || "main",
|
|
103
113
|
before_ref: params.before_ref || "",
|
|
@@ -340,6 +350,44 @@ function normalizedProofAssessment(state = {}) {
|
|
|
340
350
|
source: source || null
|
|
341
351
|
};
|
|
342
352
|
}
|
|
353
|
+
function objectValue(value) {
|
|
354
|
+
return value && typeof value === "object" && !Array.isArray(value) ? value : {};
|
|
355
|
+
}
|
|
356
|
+
function normalizedVerificationMode(state = {}) {
|
|
357
|
+
const bundle = objectValue(state?.evidence_bundle);
|
|
358
|
+
const bundleMode = String(bundle.verification_mode || "").trim().toLowerCase();
|
|
359
|
+
if (bundleMode) return bundleMode;
|
|
360
|
+
return String(state?.verification_mode || "proof").trim().toLowerCase() || "proof";
|
|
361
|
+
}
|
|
362
|
+
function visualDeltaRequiredForState(state = {}) {
|
|
363
|
+
const bundle = objectValue(state?.evidence_bundle);
|
|
364
|
+
const contract = objectValue(bundle.artifact_contract);
|
|
365
|
+
const required = objectValue(contract.required);
|
|
366
|
+
return required.visual_delta === true || VISUAL_FIRST_MODES.has(normalizedVerificationMode(state));
|
|
367
|
+
}
|
|
368
|
+
function visualDeltaForState(state = {}) {
|
|
369
|
+
const bundle = objectValue(state?.evidence_bundle);
|
|
370
|
+
const after = objectValue(bundle.after);
|
|
371
|
+
const afterDelta = objectValue(after.visual_delta);
|
|
372
|
+
if (Object.keys(afterDelta).length) return afterDelta;
|
|
373
|
+
const request = objectValue(state?.proof_assessment_request);
|
|
374
|
+
return objectValue(request.visual_delta);
|
|
375
|
+
}
|
|
376
|
+
function visualDeltaShipGateReason(state = {}) {
|
|
377
|
+
if (!visualDeltaRequiredForState(state)) return null;
|
|
378
|
+
const visualDelta = visualDeltaForState(state);
|
|
379
|
+
if (visualDelta.status === "measured" && visualDelta.passed === true) return null;
|
|
380
|
+
const status = String(visualDelta.status || "missing");
|
|
381
|
+
if (status === "unmeasured") {
|
|
382
|
+
return "visual_delta.status=unmeasured blocks ready_to_ship for visual/UI proof";
|
|
383
|
+
}
|
|
384
|
+
if (status === "measured" && visualDelta.passed === false) {
|
|
385
|
+
return "visual_delta.status=measured but visual_delta.passed=false blocks ready_to_ship for visual/UI proof";
|
|
386
|
+
}
|
|
387
|
+
const reason = String(visualDelta.reason || "").trim();
|
|
388
|
+
if (reason) return `visual_delta.status=${status} blocks ready_to_ship for visual/UI proof: ${reason}`;
|
|
389
|
+
return `visual_delta.status=${status} blocks ready_to_ship for visual/UI proof`;
|
|
390
|
+
}
|
|
343
391
|
function requiredBaselineLabelsForState(state = {}) {
|
|
344
392
|
const reference = normalizedReference(state);
|
|
345
393
|
const labels = [];
|
|
@@ -355,6 +403,10 @@ function validateShipGate(state = {}) {
|
|
|
355
403
|
const afterCdn = String(state?.after_cdn || "").trim();
|
|
356
404
|
const verifyStatus = String(state?.verify_status || "").trim();
|
|
357
405
|
const proofAssessment = normalizedProofAssessment(state);
|
|
406
|
+
const verificationMode = normalizedVerificationMode(state);
|
|
407
|
+
const visualDelta = visualDeltaForState(state);
|
|
408
|
+
const visualDeltaRequired = visualDeltaRequiredForState(state);
|
|
409
|
+
const visualDeltaBlocker = visualDeltaShipGateReason(state);
|
|
358
410
|
const reasons = [];
|
|
359
411
|
if (!["before", "prod", "both"].includes(reference)) {
|
|
360
412
|
reasons.push(`reference must be before, prod, or both; got ${reference}`);
|
|
@@ -383,19 +435,26 @@ function validateShipGate(state = {}) {
|
|
|
383
435
|
if (proofAssessment.decision !== "ready_to_ship") {
|
|
384
436
|
reasons.push("proof_assessment.decision must be ready_to_ship before ship");
|
|
385
437
|
}
|
|
438
|
+
if (visualDeltaBlocker) {
|
|
439
|
+
reasons.push(visualDeltaBlocker);
|
|
440
|
+
}
|
|
386
441
|
return {
|
|
387
442
|
ok: reasons.length === 0,
|
|
388
443
|
reasons,
|
|
389
444
|
required_baselines: requiredBaselines,
|
|
390
445
|
evidence: {
|
|
391
446
|
reference,
|
|
447
|
+
verification_mode: verificationMode || null,
|
|
392
448
|
prod_url: prodUrl || null,
|
|
393
449
|
before_cdn: beforeCdn || null,
|
|
394
450
|
prod_cdn: prodCdn || null,
|
|
395
451
|
after_cdn: afterCdn || null,
|
|
396
452
|
verify_status: verifyStatus || null,
|
|
397
453
|
proof_assessment_decision: proofAssessment.decision,
|
|
398
|
-
proof_assessment_source: proofAssessment.source
|
|
454
|
+
proof_assessment_source: proofAssessment.source,
|
|
455
|
+
visual_delta_required: visualDeltaRequired,
|
|
456
|
+
visual_delta_status: typeof visualDelta.status === "string" ? visualDelta.status : null,
|
|
457
|
+
visual_delta_passed: typeof visualDelta.passed === "boolean" ? visualDelta.passed : null
|
|
399
458
|
}
|
|
400
459
|
};
|
|
401
460
|
}
|
|
@@ -440,6 +499,11 @@ function mergeStateFromParams(statePath, params) {
|
|
|
440
499
|
"success_criteria",
|
|
441
500
|
"assertions_json",
|
|
442
501
|
"verification_mode",
|
|
502
|
+
"resume_session",
|
|
503
|
+
"target_image_url",
|
|
504
|
+
"target_image_hash",
|
|
505
|
+
"viewport_matrix_json",
|
|
506
|
+
"deterministic_setup_json",
|
|
443
507
|
"base_branch",
|
|
444
508
|
"before_ref",
|
|
445
509
|
"context",
|
|
@@ -541,23 +605,36 @@ function mergeStateFromParams(statePath, params) {
|
|
|
541
605
|
state.proof_assessment_source = null;
|
|
542
606
|
} else {
|
|
543
607
|
const parsed = JSON.parse(raw);
|
|
544
|
-
|
|
608
|
+
const assessment = {
|
|
545
609
|
...parsed,
|
|
546
610
|
source: (parsed?.source || "supervising_agent").toString()
|
|
547
611
|
};
|
|
612
|
+
const readyBlocker = assessment?.decision === "ready_to_ship" ? visualDeltaShipGateReason({ ...state, proof_assessment: assessment, proof_assessment_source: assessment.source }) : null;
|
|
613
|
+
if (readyBlocker) {
|
|
614
|
+
assessment.blocked_decision = assessment.decision;
|
|
615
|
+
assessment.decision = "needs_richer_proof";
|
|
616
|
+
if (assessment.recommended_stage === "ship") assessment.recommended_stage = "verify";
|
|
617
|
+
if (assessment.continue_with_stage === "ship") assessment.continue_with_stage = "verify";
|
|
618
|
+
const blockers = Array.isArray(assessment.blockers) ? assessment.blockers : [];
|
|
619
|
+
assessment.blockers = [...blockers, readyBlocker];
|
|
620
|
+
}
|
|
621
|
+
state.proof_assessment = assessment;
|
|
548
622
|
state.proof_assessment_source = state.proof_assessment.source;
|
|
549
|
-
if (typeof
|
|
550
|
-
state.proof_decision =
|
|
623
|
+
if (typeof state.proof_assessment?.decision === "string") {
|
|
624
|
+
state.proof_decision = state.proof_assessment.decision;
|
|
551
625
|
}
|
|
552
626
|
if (typeof parsed?.summary === "string") {
|
|
553
627
|
state.proof_assessment_summary = normalizeOptionalString(parsed.summary) || null;
|
|
554
628
|
}
|
|
555
|
-
if (
|
|
629
|
+
if (state.proof_assessment?.decision === "ready_to_ship") {
|
|
556
630
|
state.merge_recommendation = "ready-to-ship";
|
|
557
|
-
} else if (typeof
|
|
631
|
+
} else if (typeof state.proof_assessment?.decision === "string" && state.proof_assessment.decision.trim()) {
|
|
558
632
|
state.merge_recommendation = "do-not-merge";
|
|
559
633
|
}
|
|
560
634
|
appendProofSummaryLine(state, `Supervising proof assessment: ${state.proof_assessment.decision || "unknown"}`);
|
|
635
|
+
if (readyBlocker) {
|
|
636
|
+
appendProofSummaryLine(state, `Ready-to-ship assessment blocked: ${readyBlocker}`);
|
|
637
|
+
}
|
|
561
638
|
if (state.proof_assessment_summary) {
|
|
562
639
|
appendProofSummaryLine(state, `Assessment summary: ${state.proof_assessment_summary}`);
|
|
563
640
|
}
|
|
@@ -658,7 +735,10 @@ function summarizeState(state) {
|
|
|
658
735
|
explicit_stage_gate: Boolean(state.explicit_stage_gate),
|
|
659
736
|
last_requested_advance_stage: state.last_requested_advance_stage || null,
|
|
660
737
|
recon_results: state.recon_results || null,
|
|
661
|
-
verify_results: state.verify_results || null
|
|
738
|
+
verify_results: state.verify_results || null,
|
|
739
|
+
proof_session: state.proof_session || null,
|
|
740
|
+
parent_proof_session: state.parent_proof_session || null,
|
|
741
|
+
proof_session_artifact_url: state.proof_session_artifact_url || null
|
|
662
742
|
};
|
|
663
743
|
const parts = [
|
|
664
744
|
state.workspace_ready ? "workspace ready" : "workspace not ready",
|
|
@@ -679,7 +759,7 @@ function summarizeState(state) {
|
|
|
679
759
|
state: selected
|
|
680
760
|
};
|
|
681
761
|
}
|
|
682
|
-
var import_node_fs, import_node_crypto, import_node_path, import_node_url, import_meta, WORKFLOW_STAGE_ORDER, CHECKPOINT_CONTRACT_VERSION, BUNDLED_RIDDLE_PROOF_DIR, RIDDLE_PROOF_DIR_CANDIDATES, CHECKPOINT_CONTRACT_SPECS;
|
|
762
|
+
var import_node_fs, import_node_crypto, import_node_path, import_node_url, import_meta, WORKFLOW_STAGE_ORDER, CHECKPOINT_CONTRACT_VERSION, BUNDLED_RIDDLE_PROOF_DIR, RIDDLE_PROOF_DIR_CANDIDATES, VISUAL_FIRST_MODES, CHECKPOINT_CONTRACT_SPECS;
|
|
683
763
|
var init_proof_run_core = __esm({
|
|
684
764
|
"src/proof-run-core.ts"() {
|
|
685
765
|
"use strict";
|
|
@@ -698,6 +778,16 @@ var init_proof_run_core = __esm({
|
|
|
698
778
|
RIDDLE_PROOF_DIR_CANDIDATES = [
|
|
699
779
|
BUNDLED_RIDDLE_PROOF_DIR
|
|
700
780
|
];
|
|
781
|
+
VISUAL_FIRST_MODES = /* @__PURE__ */ new Set([
|
|
782
|
+
"visual",
|
|
783
|
+
"render",
|
|
784
|
+
"interaction",
|
|
785
|
+
"ui",
|
|
786
|
+
"layout",
|
|
787
|
+
"screenshot",
|
|
788
|
+
"canvas",
|
|
789
|
+
"animation"
|
|
790
|
+
]);
|
|
701
791
|
CHECKPOINT_CONTRACT_SPECS = {
|
|
702
792
|
setup_review: {
|
|
703
793
|
purpose: "Inspect prepared workspace state before moving into recon."
|
|
@@ -1624,6 +1714,9 @@ async function executeWorkflow(params, pluginConfig, resolvedConfig) {
|
|
|
1624
1714
|
if (reasons.some((reason) => reason.includes("proof_assessment"))) {
|
|
1625
1715
|
return "resume with riddle_proof_review using decision=ready_to_ship only after the screenshots and semantic evidence visibly prove the request; otherwise choose needs_implementation or needs_richer_proof";
|
|
1626
1716
|
}
|
|
1717
|
+
if (reasons.some((reason) => reason.includes("visual_delta"))) {
|
|
1718
|
+
return "rerun verify with a measured before/after visual delta, or choose needs_richer_proof instead of ready_to_ship for this visual proof";
|
|
1719
|
+
}
|
|
1627
1720
|
if (reasons.some((reason) => reason.includes("after_cdn") || reason.includes("verify_status"))) {
|
|
1628
1721
|
return "rerun verify with stronger proof framing so after evidence is captured before shipping";
|
|
1629
1722
|
}
|
|
@@ -2643,12 +2736,16 @@ __export(index_exports, {
|
|
|
2643
2736
|
DEFAULT_DIAGNOSTIC_STRING_LIMIT: () => DEFAULT_DIAGNOSTIC_STRING_LIMIT,
|
|
2644
2737
|
RIDDLE_PROOF_CAPTURE_DIAGNOSTIC_VERSION: () => RIDDLE_PROOF_CAPTURE_DIAGNOSTIC_VERSION,
|
|
2645
2738
|
RIDDLE_PROOF_RUN_STATE_VERSION: () => RIDDLE_PROOF_RUN_STATE_VERSION,
|
|
2739
|
+
RIDDLE_PROOF_VISUAL_SESSION_FINGERPRINT_VERSION: () => RIDDLE_PROOF_VISUAL_SESSION_FINGERPRINT_VERSION,
|
|
2740
|
+
RIDDLE_PROOF_VISUAL_SESSION_VERSION: () => RIDDLE_PROOF_VISUAL_SESSION_VERSION,
|
|
2646
2741
|
appendCaptureDiagnostic: () => appendCaptureDiagnostic,
|
|
2647
2742
|
appendRunEvent: () => appendRunEvent,
|
|
2648
2743
|
appendStageHeartbeat: () => appendStageHeartbeat,
|
|
2649
2744
|
applyPrLifecycleState: () => applyPrLifecycleState,
|
|
2650
2745
|
applyTerminalMetadata: () => applyTerminalMetadata,
|
|
2746
|
+
buildVisualProofSession: () => buildVisualProofSession,
|
|
2651
2747
|
compactRecord: () => compactRecord,
|
|
2748
|
+
compareVisualProofSessionFingerprint: () => compareVisualProofSessionFingerprint,
|
|
2652
2749
|
createCaptureDiagnostic: () => createCaptureDiagnostic,
|
|
2653
2750
|
createDisabledRiddleProofAgentAdapter: () => createDisabledRiddleProofAgentAdapter,
|
|
2654
2751
|
createRunResult: () => createRunResult,
|
|
@@ -2661,13 +2758,16 @@ __export(index_exports, {
|
|
|
2661
2758
|
normalizePrLifecycleState: () => normalizePrLifecycleState,
|
|
2662
2759
|
normalizeRunParams: () => normalizeRunParams,
|
|
2663
2760
|
normalizeTerminalMetadata: () => normalizeTerminalMetadata,
|
|
2761
|
+
parseVisualProofSession: () => parseVisualProofSession,
|
|
2664
2762
|
readRiddleProofRunStatus: () => readRiddleProofRunStatus,
|
|
2665
2763
|
recordValue: () => recordValue,
|
|
2666
2764
|
redactForProofDiagnostics: () => redactForProofDiagnostics,
|
|
2667
2765
|
runRiddleProof: () => runRiddleProof,
|
|
2668
2766
|
runRiddleProofEngineHarness: () => runRiddleProofEngineHarness,
|
|
2669
2767
|
setRunStatus: () => setRunStatus,
|
|
2670
|
-
summarizeCaptureArtifacts: () => summarizeCaptureArtifacts
|
|
2768
|
+
summarizeCaptureArtifacts: () => summarizeCaptureArtifacts,
|
|
2769
|
+
visualSessionFingerprint: () => visualSessionFingerprint,
|
|
2770
|
+
visualSessionFingerprintBasis: () => visualSessionFingerprintBasis
|
|
2671
2771
|
});
|
|
2672
2772
|
module.exports = __toCommonJS(index_exports);
|
|
2673
2773
|
|
|
@@ -2875,6 +2975,7 @@ function createRunResult(input) {
|
|
|
2875
2975
|
merge_recommendation: state.merge_recommendation,
|
|
2876
2976
|
finalized: state.finalized,
|
|
2877
2977
|
blocker: state.blocker,
|
|
2978
|
+
proof_session: state.proof_session,
|
|
2878
2979
|
evidence_bundle: input.evidence_bundle,
|
|
2879
2980
|
raw: input.raw
|
|
2880
2981
|
});
|
|
@@ -2952,6 +3053,11 @@ function normalizeRunParams(input) {
|
|
|
2952
3053
|
success_criteria: input.success_criteria,
|
|
2953
3054
|
assertions: input.assertions,
|
|
2954
3055
|
verification_mode: input.verification_mode,
|
|
3056
|
+
resume_session: input.resume_session,
|
|
3057
|
+
target_image_url: input.target_image_url,
|
|
3058
|
+
target_image_hash: input.target_image_hash,
|
|
3059
|
+
viewport_matrix: input.viewport_matrix,
|
|
3060
|
+
deterministic_setup: input.deterministic_setup,
|
|
2955
3061
|
reference: input.reference,
|
|
2956
3062
|
base_branch: input.base_branch,
|
|
2957
3063
|
before_ref: input.before_ref,
|
|
@@ -3584,6 +3690,7 @@ var import_node_child_process2 = require("child_process");
|
|
|
3584
3690
|
var import_node_fs3 = require("fs");
|
|
3585
3691
|
var import_node_path3 = __toESM(require("path"), 1);
|
|
3586
3692
|
var import_node_crypto2 = __toESM(require("crypto"), 1);
|
|
3693
|
+
init_proof_run_core();
|
|
3587
3694
|
var DEFAULT_MAX_ITERATIONS = 12;
|
|
3588
3695
|
var DEFAULT_STAGE_ITERATION_LIMITS = {
|
|
3589
3696
|
setup: 2,
|
|
@@ -3848,6 +3955,26 @@ function proofAssessmentContinuation(result, payload) {
|
|
|
3848
3955
|
const proof_assessment_json = jsonParam(payload);
|
|
3849
3956
|
return { ...baseContinuation(result), proof_assessment_json };
|
|
3850
3957
|
}
|
|
3958
|
+
function proofAssessmentVisualBlocker(state, payload) {
|
|
3959
|
+
if (!proofAssessmentRequestsShip(payload)) return null;
|
|
3960
|
+
const source = nonEmptyString(payload.source) || "supervising_agent";
|
|
3961
|
+
return visualDeltaShipGateReason({
|
|
3962
|
+
...state || {},
|
|
3963
|
+
proof_assessment: { ...payload, source },
|
|
3964
|
+
proof_assessment_source: source
|
|
3965
|
+
});
|
|
3966
|
+
}
|
|
3967
|
+
function blockedProofAssessmentPayload(payload, blocker) {
|
|
3968
|
+
const blockers = Array.isArray(payload.blockers) ? payload.blockers.filter((item) => typeof item === "string") : [];
|
|
3969
|
+
return {
|
|
3970
|
+
...payload,
|
|
3971
|
+
blocked_decision: payload.decision || "ready_to_ship",
|
|
3972
|
+
decision: "needs_richer_proof",
|
|
3973
|
+
recommended_stage: payload.recommended_stage === "ship" ? "verify" : payload.recommended_stage || "verify",
|
|
3974
|
+
continue_with_stage: payload.continue_with_stage === "ship" ? "verify" : payload.continue_with_stage || "verify",
|
|
3975
|
+
blockers: [...blockers, blocker]
|
|
3976
|
+
};
|
|
3977
|
+
}
|
|
3851
3978
|
function contextFor(request, state, result) {
|
|
3852
3979
|
return {
|
|
3853
3980
|
request,
|
|
@@ -4217,6 +4344,20 @@ async function routeCheckpoint(request, state, result, agent, input) {
|
|
|
4217
4344
|
summary: assessment.summary,
|
|
4218
4345
|
details: { payload }
|
|
4219
4346
|
});
|
|
4347
|
+
const visualBlocker = proofAssessmentVisualBlocker({
|
|
4348
|
+
...context.fullRiddleState || {},
|
|
4349
|
+
verification_mode: context.fullRiddleState?.verification_mode || request.verification_mode
|
|
4350
|
+
}, payload);
|
|
4351
|
+
if (visualBlocker) {
|
|
4352
|
+
recordEvent(state, {
|
|
4353
|
+
kind: "agent.proof_assessment.blocked",
|
|
4354
|
+
checkpoint,
|
|
4355
|
+
stage: "verify",
|
|
4356
|
+
summary: visualBlocker,
|
|
4357
|
+
details: { payload }
|
|
4358
|
+
});
|
|
4359
|
+
return { next: proofAssessmentContinuation(result, blockedProofAssessmentPayload(payload, visualBlocker)) };
|
|
4360
|
+
}
|
|
4220
4361
|
if (effectiveShipMode(request, input.config) !== "ship" && proofAssessmentRequestsShip(payload)) {
|
|
4221
4362
|
return {
|
|
4222
4363
|
terminal: terminalResult(
|
|
@@ -4573,6 +4714,118 @@ function appendCaptureDiagnostic(state, input, historyLimit = DEFAULT_DIAGNOSTIC
|
|
|
4573
4714
|
state.capture_diagnostics = [...existing, diagnostic].slice(-Math.max(1, historyLimit));
|
|
4574
4715
|
return diagnostic;
|
|
4575
4716
|
}
|
|
4717
|
+
|
|
4718
|
+
// src/proof-session.ts
|
|
4719
|
+
var import_node_crypto3 = require("crypto");
|
|
4720
|
+
var RIDDLE_PROOF_VISUAL_SESSION_VERSION = "riddle-proof.visual-session.v1";
|
|
4721
|
+
var RIDDLE_PROOF_VISUAL_SESSION_FINGERPRINT_VERSION = "riddle-proof.visual-session.fingerprint.v1";
|
|
4722
|
+
function trim(value) {
|
|
4723
|
+
const text = String(value ?? "").trim();
|
|
4724
|
+
return text || void 0;
|
|
4725
|
+
}
|
|
4726
|
+
function hashString(value) {
|
|
4727
|
+
const text = trim(value);
|
|
4728
|
+
if (!text) return void 0;
|
|
4729
|
+
return (0, import_node_crypto3.createHash)("sha256").update(text).digest("hex");
|
|
4730
|
+
}
|
|
4731
|
+
function stableJson(value) {
|
|
4732
|
+
if (value === void 0) return "null";
|
|
4733
|
+
if (value === null || typeof value !== "object") return JSON.stringify(value);
|
|
4734
|
+
if (Array.isArray(value)) return `[${value.map((item) => stableJson(item)).join(",")}]`;
|
|
4735
|
+
const record = value;
|
|
4736
|
+
return `{${Object.keys(record).sort().map((key) => `${JSON.stringify(key)}:${stableJson(record[key])}`).join(",")}}`;
|
|
4737
|
+
}
|
|
4738
|
+
function withoutUndefined(record) {
|
|
4739
|
+
for (const key of Object.keys(record)) {
|
|
4740
|
+
if (record[key] === void 0) delete record[key];
|
|
4741
|
+
}
|
|
4742
|
+
return record;
|
|
4743
|
+
}
|
|
4744
|
+
function visualSessionFingerprintBasis(input) {
|
|
4745
|
+
return withoutUndefined({
|
|
4746
|
+
version: RIDDLE_PROOF_VISUAL_SESSION_FINGERPRINT_VERSION,
|
|
4747
|
+
repo: trim(input.repo),
|
|
4748
|
+
route: trim(input.route),
|
|
4749
|
+
wait_for_selector: trim(input.wait_for_selector),
|
|
4750
|
+
reference: trim(input.reference),
|
|
4751
|
+
verification_mode: trim(input.verification_mode)?.toLowerCase(),
|
|
4752
|
+
target_image_url: trim(input.target_image_url),
|
|
4753
|
+
target_image_hash: trim(input.target_image_hash),
|
|
4754
|
+
viewport_matrix: input.viewport_matrix,
|
|
4755
|
+
deterministic_setup: input.deterministic_setup,
|
|
4756
|
+
assertions: input.assertions,
|
|
4757
|
+
capture_script_hash: hashString(input.capture_script)
|
|
4758
|
+
});
|
|
4759
|
+
}
|
|
4760
|
+
function visualSessionFingerprint(input) {
|
|
4761
|
+
const basis = input.version === RIDDLE_PROOF_VISUAL_SESSION_FINGERPRINT_VERSION ? input : visualSessionFingerprintBasis(input);
|
|
4762
|
+
return (0, import_node_crypto3.createHash)("sha256").update(stableJson(basis)).digest("hex");
|
|
4763
|
+
}
|
|
4764
|
+
function buildVisualProofSession(input) {
|
|
4765
|
+
const basis = visualSessionFingerprintBasis(input);
|
|
4766
|
+
const fingerprint = visualSessionFingerprint(basis);
|
|
4767
|
+
const session = {
|
|
4768
|
+
version: RIDDLE_PROOF_VISUAL_SESSION_VERSION,
|
|
4769
|
+
session_id: `rps_${(/* @__PURE__ */ new Date()).toISOString().replace(/[-:.TZ]/g, "").slice(0, 14)}_${(0, import_node_crypto3.randomUUID)().slice(0, 8)}`,
|
|
4770
|
+
run_id: trim(input.run_id),
|
|
4771
|
+
parent_session_id: input.parent?.session_id || null,
|
|
4772
|
+
parent_fingerprint: input.parent?.fingerprint || null,
|
|
4773
|
+
created_at: (/* @__PURE__ */ new Date()).toISOString(),
|
|
4774
|
+
fingerprint,
|
|
4775
|
+
fingerprint_basis: basis,
|
|
4776
|
+
repo: trim(input.repo),
|
|
4777
|
+
branch: trim(input.branch),
|
|
4778
|
+
route: withoutUndefined({
|
|
4779
|
+
path: trim(input.route),
|
|
4780
|
+
observed_after_path: trim(input.observed_after_path)
|
|
4781
|
+
}),
|
|
4782
|
+
reference: trim(input.reference),
|
|
4783
|
+
verification_mode: trim(input.verification_mode),
|
|
4784
|
+
target_image: withoutUndefined({
|
|
4785
|
+
url: trim(input.target_image_url),
|
|
4786
|
+
hash: trim(input.target_image_hash)
|
|
4787
|
+
}),
|
|
4788
|
+
viewport_matrix: input.viewport_matrix,
|
|
4789
|
+
deterministic_setup: input.deterministic_setup,
|
|
4790
|
+
capture: withoutUndefined({
|
|
4791
|
+
proof_plan: trim(input.proof_plan),
|
|
4792
|
+
capture_script: trim(input.capture_script),
|
|
4793
|
+
wait_for_selector: trim(input.wait_for_selector)
|
|
4794
|
+
}),
|
|
4795
|
+
assertions: input.assertions,
|
|
4796
|
+
artifacts: input.artifacts,
|
|
4797
|
+
evidence: input.evidence,
|
|
4798
|
+
status: trim(input.status)
|
|
4799
|
+
};
|
|
4800
|
+
return JSON.parse(JSON.stringify(session));
|
|
4801
|
+
}
|
|
4802
|
+
function parseVisualProofSession(value) {
|
|
4803
|
+
const parsed = typeof value === "string" ? JSON.parse(value) : value;
|
|
4804
|
+
if (!parsed || typeof parsed !== "object") throw new Error("proof session must be a JSON object");
|
|
4805
|
+
const session = parsed;
|
|
4806
|
+
if (session.version !== RIDDLE_PROOF_VISUAL_SESSION_VERSION) {
|
|
4807
|
+
throw new Error(`unsupported proof session version: ${String(session.version || "")}`);
|
|
4808
|
+
}
|
|
4809
|
+
if (!session.session_id) throw new Error("proof session missing session_id");
|
|
4810
|
+
if (!session.fingerprint) throw new Error("proof session missing fingerprint");
|
|
4811
|
+
return session;
|
|
4812
|
+
}
|
|
4813
|
+
function compareVisualProofSessionFingerprint(parent, input) {
|
|
4814
|
+
const actual = visualSessionFingerprintBasis(input);
|
|
4815
|
+
const expected = parent.fingerprint_basis || {};
|
|
4816
|
+
const keys = /* @__PURE__ */ new Set([...Object.keys(expected), ...Object.keys(actual)]);
|
|
4817
|
+
const expectedRecord = expected;
|
|
4818
|
+
const actualRecord = actual;
|
|
4819
|
+
const mismatches = [];
|
|
4820
|
+
for (const key of keys) {
|
|
4821
|
+
const expectedValue = expectedRecord[key];
|
|
4822
|
+
const actualValue = actualRecord[key];
|
|
4823
|
+
if (stableJson(expectedValue) !== stableJson(actualValue)) {
|
|
4824
|
+
mismatches.push({ key, expected: expectedValue, actual: actualValue });
|
|
4825
|
+
}
|
|
4826
|
+
}
|
|
4827
|
+
return mismatches;
|
|
4828
|
+
}
|
|
4576
4829
|
// Annotate the CommonJS export names for ESM import in node:
|
|
4577
4830
|
0 && (module.exports = {
|
|
4578
4831
|
DEFAULT_DIAGNOSTIC_ARRAY_LIMIT,
|
|
@@ -4580,12 +4833,16 @@ function appendCaptureDiagnostic(state, input, historyLimit = DEFAULT_DIAGNOSTIC
|
|
|
4580
4833
|
DEFAULT_DIAGNOSTIC_STRING_LIMIT,
|
|
4581
4834
|
RIDDLE_PROOF_CAPTURE_DIAGNOSTIC_VERSION,
|
|
4582
4835
|
RIDDLE_PROOF_RUN_STATE_VERSION,
|
|
4836
|
+
RIDDLE_PROOF_VISUAL_SESSION_FINGERPRINT_VERSION,
|
|
4837
|
+
RIDDLE_PROOF_VISUAL_SESSION_VERSION,
|
|
4583
4838
|
appendCaptureDiagnostic,
|
|
4584
4839
|
appendRunEvent,
|
|
4585
4840
|
appendStageHeartbeat,
|
|
4586
4841
|
applyPrLifecycleState,
|
|
4587
4842
|
applyTerminalMetadata,
|
|
4843
|
+
buildVisualProofSession,
|
|
4588
4844
|
compactRecord,
|
|
4845
|
+
compareVisualProofSessionFingerprint,
|
|
4589
4846
|
createCaptureDiagnostic,
|
|
4590
4847
|
createDisabledRiddleProofAgentAdapter,
|
|
4591
4848
|
createRunResult,
|
|
@@ -4598,11 +4855,14 @@ function appendCaptureDiagnostic(state, input, historyLimit = DEFAULT_DIAGNOSTIC
|
|
|
4598
4855
|
normalizePrLifecycleState,
|
|
4599
4856
|
normalizeRunParams,
|
|
4600
4857
|
normalizeTerminalMetadata,
|
|
4858
|
+
parseVisualProofSession,
|
|
4601
4859
|
readRiddleProofRunStatus,
|
|
4602
4860
|
recordValue,
|
|
4603
4861
|
redactForProofDiagnostics,
|
|
4604
4862
|
runRiddleProof,
|
|
4605
4863
|
runRiddleProofEngineHarness,
|
|
4606
4864
|
setRunStatus,
|
|
4607
|
-
summarizeCaptureArtifacts
|
|
4865
|
+
summarizeCaptureArtifacts,
|
|
4866
|
+
visualSessionFingerprint,
|
|
4867
|
+
visualSessionFingerprintBasis
|
|
4608
4868
|
});
|
package/dist/index.d.cts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
export { EvidenceArtifact, EvidenceReference, ImplementationAdapter, ImplementationAdapterInput, ImplementationAdapterResult, IntegrationContext, JsonObject, JsonPrimitive, JsonValue, JudgeAdapter, NotificationAdapter, PreflightAdapter, PreflightAdapterInput, PreflightAdapterResult, ProofAdapter, ProofAdapterInput, ProofAdapterResult, RiddleProofArtifactRole, RiddleProofAssessment, RiddleProofBlocker, RiddleProofDecision, RiddleProofEvent, RiddleProofEvidenceBundle, RiddleProofPrLifecycleState, RiddleProofPrLifecycleStatus, RiddleProofRunParams, RiddleProofRunResult, RiddleProofRunState, RiddleProofRunStatusSnapshot, RiddleProofStage, RiddleProofStatus, RiddleProofTerminalMetadata, RiddleProofVerificationMode, SetupAdapter, SetupAdapterInput, SetupAdapterResult, ShipAdapter } from './types.cjs';
|
|
1
|
+
export { EvidenceArtifact, EvidenceReference, ImplementationAdapter, ImplementationAdapterInput, ImplementationAdapterResult, IntegrationContext, JsonObject, JsonPrimitive, JsonValue, JudgeAdapter, NotificationAdapter, PreflightAdapter, PreflightAdapterInput, PreflightAdapterResult, ProofAdapter, ProofAdapterInput, ProofAdapterResult, RiddleProofArtifactRole, RiddleProofAssessment, RiddleProofBlocker, RiddleProofDecision, RiddleProofEvent, RiddleProofEvidenceBundle, RiddleProofPrLifecycleState, RiddleProofPrLifecycleStatus, RiddleProofRunParams, RiddleProofRunResult, RiddleProofRunState, RiddleProofRunStatusSnapshot, RiddleProofStage, RiddleProofStatus, RiddleProofTerminalMetadata, RiddleProofVerificationMode, RiddleProofVisualSession, RiddleProofVisualSessionFingerprintBasis, SetupAdapter, SetupAdapterInput, SetupAdapterResult, ShipAdapter } from './types.cjs';
|
|
2
2
|
export { TerminalMetadataInput, applyTerminalMetadata, compactRecord, createRunResult, isSuccessfulStatus, isTerminalStatus, nonEmptyString, normalizeTerminalMetadata, recordValue } from './result.cjs';
|
|
3
3
|
export { CreateRunStateInput, RIDDLE_PROOF_RUN_STATE_VERSION, RunEventInput, appendRunEvent, appendStageHeartbeat, applyPrLifecycleState, createRunState, createRunStatusSnapshot, normalizeIntegrationContext, normalizePrLifecycleState, normalizeRunParams, setRunStatus } from './state.cjs';
|
|
4
4
|
export { RiddleProofRunnerAdapters, RunRiddleProofInput, runRiddleProof } from './runner.cjs';
|
|
5
5
|
export { RiddleProofAgentAdapter, RiddleProofAgentPayload, RiddleProofEngine, RiddleProofEngineHarnessConfig, RiddleProofEngineHarnessContext, RiddleProofEngineResult, RiddleProofShipMode, RiddleProofWorkflowParams, RunRiddleProofEngineHarnessInput, createDisabledRiddleProofAgentAdapter, readRiddleProofRunStatus, runRiddleProofEngineHarness } from './engine-harness.cjs';
|
|
6
6
|
export { CreateCaptureDiagnosticInput, DEFAULT_DIAGNOSTIC_ARRAY_LIMIT, DEFAULT_DIAGNOSTIC_HISTORY_LIMIT, DEFAULT_DIAGNOSTIC_STRING_LIMIT, RIDDLE_PROOF_CAPTURE_DIAGNOSTIC_VERSION, RiddleProofArtifactSummary, RiddleProofCaptureArtifactSummary, RiddleProofCaptureDiagnostic, RiddleProofDiagnosticRedactionOptions, appendCaptureDiagnostic, createCaptureDiagnostic, redactForProofDiagnostics, summarizeCaptureArtifacts } from './diagnostics.cjs';
|
|
7
|
+
export { BuildVisualProofSessionInput, RIDDLE_PROOF_VISUAL_SESSION_FINGERPRINT_VERSION, RIDDLE_PROOF_VISUAL_SESSION_VERSION, VisualProofSessionMismatch, buildVisualProofSession, compareVisualProofSessionFingerprint, parseVisualProofSession, visualSessionFingerprint, visualSessionFingerprintBasis } from './proof-session.cjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
export { EvidenceArtifact, EvidenceReference, ImplementationAdapter, ImplementationAdapterInput, ImplementationAdapterResult, IntegrationContext, JsonObject, JsonPrimitive, JsonValue, JudgeAdapter, NotificationAdapter, PreflightAdapter, PreflightAdapterInput, PreflightAdapterResult, ProofAdapter, ProofAdapterInput, ProofAdapterResult, RiddleProofArtifactRole, RiddleProofAssessment, RiddleProofBlocker, RiddleProofDecision, RiddleProofEvent, RiddleProofEvidenceBundle, RiddleProofPrLifecycleState, RiddleProofPrLifecycleStatus, RiddleProofRunParams, RiddleProofRunResult, RiddleProofRunState, RiddleProofRunStatusSnapshot, RiddleProofStage, RiddleProofStatus, RiddleProofTerminalMetadata, RiddleProofVerificationMode, SetupAdapter, SetupAdapterInput, SetupAdapterResult, ShipAdapter } from './types.js';
|
|
1
|
+
export { EvidenceArtifact, EvidenceReference, ImplementationAdapter, ImplementationAdapterInput, ImplementationAdapterResult, IntegrationContext, JsonObject, JsonPrimitive, JsonValue, JudgeAdapter, NotificationAdapter, PreflightAdapter, PreflightAdapterInput, PreflightAdapterResult, ProofAdapter, ProofAdapterInput, ProofAdapterResult, RiddleProofArtifactRole, RiddleProofAssessment, RiddleProofBlocker, RiddleProofDecision, RiddleProofEvent, RiddleProofEvidenceBundle, RiddleProofPrLifecycleState, RiddleProofPrLifecycleStatus, RiddleProofRunParams, RiddleProofRunResult, RiddleProofRunState, RiddleProofRunStatusSnapshot, RiddleProofStage, RiddleProofStatus, RiddleProofTerminalMetadata, RiddleProofVerificationMode, RiddleProofVisualSession, RiddleProofVisualSessionFingerprintBasis, SetupAdapter, SetupAdapterInput, SetupAdapterResult, ShipAdapter } from './types.js';
|
|
2
2
|
export { TerminalMetadataInput, applyTerminalMetadata, compactRecord, createRunResult, isSuccessfulStatus, isTerminalStatus, nonEmptyString, normalizeTerminalMetadata, recordValue } from './result.js';
|
|
3
3
|
export { CreateRunStateInput, RIDDLE_PROOF_RUN_STATE_VERSION, RunEventInput, appendRunEvent, appendStageHeartbeat, applyPrLifecycleState, createRunState, createRunStatusSnapshot, normalizeIntegrationContext, normalizePrLifecycleState, normalizeRunParams, setRunStatus } from './state.js';
|
|
4
4
|
export { RiddleProofRunnerAdapters, RunRiddleProofInput, runRiddleProof } from './runner.js';
|
|
5
5
|
export { RiddleProofAgentAdapter, RiddleProofAgentPayload, RiddleProofEngine, RiddleProofEngineHarnessConfig, RiddleProofEngineHarnessContext, RiddleProofEngineResult, RiddleProofShipMode, RiddleProofWorkflowParams, RunRiddleProofEngineHarnessInput, createDisabledRiddleProofAgentAdapter, readRiddleProofRunStatus, runRiddleProofEngineHarness } from './engine-harness.js';
|
|
6
6
|
export { CreateCaptureDiagnosticInput, DEFAULT_DIAGNOSTIC_ARRAY_LIMIT, DEFAULT_DIAGNOSTIC_HISTORY_LIMIT, DEFAULT_DIAGNOSTIC_STRING_LIMIT, RIDDLE_PROOF_CAPTURE_DIAGNOSTIC_VERSION, RiddleProofArtifactSummary, RiddleProofCaptureArtifactSummary, RiddleProofCaptureDiagnostic, RiddleProofDiagnosticRedactionOptions, appendCaptureDiagnostic, createCaptureDiagnostic, redactForProofDiagnostics, summarizeCaptureArtifacts } from './diagnostics.js';
|
|
7
|
+
export { BuildVisualProofSessionInput, RIDDLE_PROOF_VISUAL_SESSION_FINGERPRINT_VERSION, RIDDLE_PROOF_VISUAL_SESSION_VERSION, VisualProofSessionMismatch, buildVisualProofSession, compareVisualProofSessionFingerprint, parseVisualProofSession, visualSessionFingerprint, visualSessionFingerprintBasis } from './proof-session.js';
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import {
|
|
2
|
+
runRiddleProof
|
|
3
|
+
} from "./chunk-MQ2BHHLX.js";
|
|
1
4
|
import "./chunk-6F4PWJZI.js";
|
|
2
5
|
import {
|
|
3
6
|
DEFAULT_DIAGNOSTIC_ARRAY_LIMIT,
|
|
@@ -13,10 +16,7 @@ import {
|
|
|
13
16
|
createDisabledRiddleProofAgentAdapter,
|
|
14
17
|
readRiddleProofRunStatus,
|
|
15
18
|
runRiddleProofEngineHarness
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import {
|
|
18
|
-
runRiddleProof
|
|
19
|
-
} from "./chunk-F6VFKS7K.js";
|
|
19
|
+
} from "./chunk-7R6ZQE3X.js";
|
|
20
20
|
import {
|
|
21
21
|
RIDDLE_PROOF_RUN_STATE_VERSION,
|
|
22
22
|
appendRunEvent,
|
|
@@ -28,7 +28,17 @@ import {
|
|
|
28
28
|
normalizePrLifecycleState,
|
|
29
29
|
normalizeRunParams,
|
|
30
30
|
setRunStatus
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-OASB3CYU.js";
|
|
32
|
+
import "./chunk-4YCWZVBN.js";
|
|
33
|
+
import {
|
|
34
|
+
RIDDLE_PROOF_VISUAL_SESSION_FINGERPRINT_VERSION,
|
|
35
|
+
RIDDLE_PROOF_VISUAL_SESSION_VERSION,
|
|
36
|
+
buildVisualProofSession,
|
|
37
|
+
compareVisualProofSessionFingerprint,
|
|
38
|
+
parseVisualProofSession,
|
|
39
|
+
visualSessionFingerprint,
|
|
40
|
+
visualSessionFingerprintBasis
|
|
41
|
+
} from "./chunk-ODORKNSO.js";
|
|
32
42
|
import {
|
|
33
43
|
applyTerminalMetadata,
|
|
34
44
|
compactRecord,
|
|
@@ -38,19 +48,23 @@ import {
|
|
|
38
48
|
nonEmptyString,
|
|
39
49
|
normalizeTerminalMetadata,
|
|
40
50
|
recordValue
|
|
41
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-J2MERROF.js";
|
|
42
52
|
export {
|
|
43
53
|
DEFAULT_DIAGNOSTIC_ARRAY_LIMIT,
|
|
44
54
|
DEFAULT_DIAGNOSTIC_HISTORY_LIMIT,
|
|
45
55
|
DEFAULT_DIAGNOSTIC_STRING_LIMIT,
|
|
46
56
|
RIDDLE_PROOF_CAPTURE_DIAGNOSTIC_VERSION,
|
|
47
57
|
RIDDLE_PROOF_RUN_STATE_VERSION,
|
|
58
|
+
RIDDLE_PROOF_VISUAL_SESSION_FINGERPRINT_VERSION,
|
|
59
|
+
RIDDLE_PROOF_VISUAL_SESSION_VERSION,
|
|
48
60
|
appendCaptureDiagnostic,
|
|
49
61
|
appendRunEvent,
|
|
50
62
|
appendStageHeartbeat,
|
|
51
63
|
applyPrLifecycleState,
|
|
52
64
|
applyTerminalMetadata,
|
|
65
|
+
buildVisualProofSession,
|
|
53
66
|
compactRecord,
|
|
67
|
+
compareVisualProofSessionFingerprint,
|
|
54
68
|
createCaptureDiagnostic,
|
|
55
69
|
createDisabledRiddleProofAgentAdapter,
|
|
56
70
|
createRunResult,
|
|
@@ -63,11 +77,14 @@ export {
|
|
|
63
77
|
normalizePrLifecycleState,
|
|
64
78
|
normalizeRunParams,
|
|
65
79
|
normalizeTerminalMetadata,
|
|
80
|
+
parseVisualProofSession,
|
|
66
81
|
readRiddleProofRunStatus,
|
|
67
82
|
recordValue,
|
|
68
83
|
redactForProofDiagnostics,
|
|
69
84
|
runRiddleProof,
|
|
70
85
|
runRiddleProofEngineHarness,
|
|
71
86
|
setRunStatus,
|
|
72
|
-
summarizeCaptureArtifacts
|
|
87
|
+
summarizeCaptureArtifacts,
|
|
88
|
+
visualSessionFingerprint,
|
|
89
|
+
visualSessionFingerprintBasis
|
|
73
90
|
};
|
package/dist/openclaw.cjs
CHANGED
|
@@ -64,6 +64,11 @@ function normalizeRunParams(input) {
|
|
|
64
64
|
success_criteria: input.success_criteria,
|
|
65
65
|
assertions: input.assertions,
|
|
66
66
|
verification_mode: input.verification_mode,
|
|
67
|
+
resume_session: input.resume_session,
|
|
68
|
+
target_image_url: input.target_image_url,
|
|
69
|
+
target_image_hash: input.target_image_hash,
|
|
70
|
+
viewport_matrix: input.viewport_matrix,
|
|
71
|
+
deterministic_setup: input.deterministic_setup,
|
|
67
72
|
reference: input.reference,
|
|
68
73
|
base_branch: input.base_branch,
|
|
69
74
|
before_ref: input.before_ref,
|
package/dist/openclaw.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
normalizeIntegrationContext,
|
|
3
3
|
normalizeRunParams
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-OASB3CYU.js";
|
|
5
5
|
import {
|
|
6
6
|
compactRecord
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-J2MERROF.js";
|
|
8
8
|
|
|
9
9
|
// src/openclaw.ts
|
|
10
10
|
function parseOpenClawAssertions(value) {
|