@riddledc/riddle-proof 0.5.33 → 0.5.35
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-A5AWVY5A.js → chunk-4YCWZVBN.js} +20 -2
- package/dist/{chunk-CHKYSZLU.js → chunk-7R6ZQE3X.js} +5 -5
- 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 +26 -2
- package/dist/engine-harness.js +4 -4
- package/dist/index.cjs +154 -4
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +24 -8
- package/dist/openclaw.cjs +29 -0
- package/dist/openclaw.d.cts +7 -1
- package/dist/openclaw.d.ts +7 -1
- package/dist/openclaw.js +25 -2
- package/dist/proof-run-core.cjs +20 -2
- package/dist/proof-run-core.d.cts +16 -0
- package/dist/proof-run-core.d.ts +16 -0
- package/dist/proof-run-core.js +1 -1
- package/dist/proof-run-engine.cjs +20 -2
- package/dist/proof-run-engine.d.cts +24 -0
- package/dist/proof-run-engine.d.ts +24 -0
- package/dist/proof-run-engine.js +1 -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/util.py +237 -0
- package/runtime/lib/verify.py +55 -2
- package/runtime/tests/recon_verify_smoke.py +120 -1
|
@@ -63,6 +63,11 @@ function ensureAction(action) {
|
|
|
63
63
|
function workflowFile(riddleProofDir, action) {
|
|
64
64
|
return path.join(riddleProofDir, "pipelines", `riddle-proof-${action}.lobster`);
|
|
65
65
|
}
|
|
66
|
+
function asJsonString(value) {
|
|
67
|
+
if (value === void 0 || value === null || value === "") return "";
|
|
68
|
+
if (typeof value === "string") return value;
|
|
69
|
+
return JSON.stringify(value);
|
|
70
|
+
}
|
|
66
71
|
function buildSetupArgs(params, config) {
|
|
67
72
|
if (!params.repo) throw new Error("repo is required for setup/run");
|
|
68
73
|
if (!params.change_request) throw new Error("change_request is required for setup/run");
|
|
@@ -78,8 +83,13 @@ function buildSetupArgs(params, config) {
|
|
|
78
83
|
prod_url: params.prod_url || "",
|
|
79
84
|
capture_script: captureScript,
|
|
80
85
|
success_criteria: params.success_criteria || "",
|
|
81
|
-
assertions_json: params.assertions_json ||
|
|
86
|
+
assertions_json: params.assertions_json || asJsonString(params.assertions),
|
|
82
87
|
verification_mode: params.verification_mode || "proof",
|
|
88
|
+
resume_session: params.resume_session || "",
|
|
89
|
+
target_image_url: params.target_image_url || "",
|
|
90
|
+
target_image_hash: params.target_image_hash || "",
|
|
91
|
+
viewport_matrix_json: params.viewport_matrix_json || asJsonString(params.viewport_matrix),
|
|
92
|
+
deterministic_setup_json: params.deterministic_setup_json || asJsonString(params.deterministic_setup),
|
|
83
93
|
reference: requestedReference,
|
|
84
94
|
base_branch: params.base_branch || "main",
|
|
85
95
|
before_ref: params.before_ref || "",
|
|
@@ -649,6 +659,11 @@ function mergeStateFromParams(statePath, params) {
|
|
|
649
659
|
"success_criteria",
|
|
650
660
|
"assertions_json",
|
|
651
661
|
"verification_mode",
|
|
662
|
+
"resume_session",
|
|
663
|
+
"target_image_url",
|
|
664
|
+
"target_image_hash",
|
|
665
|
+
"viewport_matrix_json",
|
|
666
|
+
"deterministic_setup_json",
|
|
652
667
|
"base_branch",
|
|
653
668
|
"before_ref",
|
|
654
669
|
"context",
|
|
@@ -880,7 +895,10 @@ function summarizeState(state) {
|
|
|
880
895
|
explicit_stage_gate: Boolean(state.explicit_stage_gate),
|
|
881
896
|
last_requested_advance_stage: state.last_requested_advance_stage || null,
|
|
882
897
|
recon_results: state.recon_results || null,
|
|
883
|
-
verify_results: state.verify_results || null
|
|
898
|
+
verify_results: state.verify_results || null,
|
|
899
|
+
proof_session: state.proof_session || null,
|
|
900
|
+
parent_proof_session: state.parent_proof_session || null,
|
|
901
|
+
proof_session_artifact_url: state.proof_session_artifact_url || null
|
|
884
902
|
};
|
|
885
903
|
const parts = [
|
|
886
904
|
state.workspace_ready ? "workspace ready" : "workspace not ready",
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
visualDeltaShipGateReason
|
|
3
|
-
} from "./chunk-A5AWVY5A.js";
|
|
4
1
|
import {
|
|
5
2
|
appendRunEvent,
|
|
6
3
|
appendStageHeartbeat,
|
|
@@ -8,7 +5,10 @@ import {
|
|
|
8
5
|
createRunStatusSnapshot,
|
|
9
6
|
normalizeRunParams,
|
|
10
7
|
setRunStatus
|
|
11
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-OASB3CYU.js";
|
|
9
|
+
import {
|
|
10
|
+
visualDeltaShipGateReason
|
|
11
|
+
} from "./chunk-4YCWZVBN.js";
|
|
12
12
|
import {
|
|
13
13
|
applyTerminalMetadata,
|
|
14
14
|
compactRecord,
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
nonEmptyString,
|
|
17
17
|
normalizeTerminalMetadata,
|
|
18
18
|
recordValue
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-J2MERROF.js";
|
|
20
20
|
|
|
21
21
|
// src/engine-harness.ts
|
|
22
22
|
import { execFileSync } from "child_process";
|
|
@@ -202,6 +202,7 @@ function createRunResult(input) {
|
|
|
202
202
|
merge_recommendation: state.merge_recommendation,
|
|
203
203
|
finalized: state.finalized,
|
|
204
204
|
blocker: state.blocker,
|
|
205
|
+
proof_session: state.proof_session,
|
|
205
206
|
evidence_bundle: input.evidence_bundle,
|
|
206
207
|
raw: input.raw
|
|
207
208
|
});
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
appendStageHeartbeat,
|
|
4
4
|
createRunState,
|
|
5
5
|
setRunStatus
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-OASB3CYU.js";
|
|
7
7
|
import {
|
|
8
8
|
createRunResult
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-J2MERROF.js";
|
|
10
10
|
|
|
11
11
|
// src/runner.ts
|
|
12
12
|
function errorDetails(error) {
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
isTerminalStatus,
|
|
4
4
|
nonEmptyString,
|
|
5
5
|
recordValue
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-J2MERROF.js";
|
|
7
7
|
|
|
8
8
|
// src/state.ts
|
|
9
9
|
var RIDDLE_PROOF_RUN_STATE_VERSION = "riddle-proof.run-state.v1";
|
|
@@ -77,6 +77,11 @@ function normalizeRunParams(input) {
|
|
|
77
77
|
success_criteria: input.success_criteria,
|
|
78
78
|
assertions: input.assertions,
|
|
79
79
|
verification_mode: input.verification_mode,
|
|
80
|
+
resume_session: input.resume_session,
|
|
81
|
+
target_image_url: input.target_image_url,
|
|
82
|
+
target_image_hash: input.target_image_hash,
|
|
83
|
+
viewport_matrix: input.viewport_matrix,
|
|
84
|
+
deterministic_setup: input.deterministic_setup,
|
|
80
85
|
reference: input.reference,
|
|
81
86
|
base_branch: input.base_branch,
|
|
82
87
|
before_ref: input.before_ref,
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
// src/proof-session.ts
|
|
2
|
+
import { createHash, randomUUID } from "crypto";
|
|
3
|
+
var RIDDLE_PROOF_VISUAL_SESSION_VERSION = "riddle-proof.visual-session.v1";
|
|
4
|
+
var RIDDLE_PROOF_VISUAL_SESSION_FINGERPRINT_VERSION = "riddle-proof.visual-session.fingerprint.v1";
|
|
5
|
+
function trim(value) {
|
|
6
|
+
const text = String(value ?? "").trim();
|
|
7
|
+
return text || void 0;
|
|
8
|
+
}
|
|
9
|
+
function hashString(value) {
|
|
10
|
+
const text = trim(value);
|
|
11
|
+
if (!text) return void 0;
|
|
12
|
+
return createHash("sha256").update(text).digest("hex");
|
|
13
|
+
}
|
|
14
|
+
function stableJson(value) {
|
|
15
|
+
if (value === void 0) return "null";
|
|
16
|
+
if (value === null || typeof value !== "object") return JSON.stringify(value);
|
|
17
|
+
if (Array.isArray(value)) return `[${value.map((item) => stableJson(item)).join(",")}]`;
|
|
18
|
+
const record = value;
|
|
19
|
+
return `{${Object.keys(record).sort().map((key) => `${JSON.stringify(key)}:${stableJson(record[key])}`).join(",")}}`;
|
|
20
|
+
}
|
|
21
|
+
function withoutUndefined(record) {
|
|
22
|
+
for (const key of Object.keys(record)) {
|
|
23
|
+
if (record[key] === void 0) delete record[key];
|
|
24
|
+
}
|
|
25
|
+
return record;
|
|
26
|
+
}
|
|
27
|
+
function visualSessionFingerprintBasis(input) {
|
|
28
|
+
return withoutUndefined({
|
|
29
|
+
version: RIDDLE_PROOF_VISUAL_SESSION_FINGERPRINT_VERSION,
|
|
30
|
+
repo: trim(input.repo),
|
|
31
|
+
route: trim(input.route),
|
|
32
|
+
wait_for_selector: trim(input.wait_for_selector),
|
|
33
|
+
reference: trim(input.reference),
|
|
34
|
+
verification_mode: trim(input.verification_mode)?.toLowerCase(),
|
|
35
|
+
target_image_url: trim(input.target_image_url),
|
|
36
|
+
target_image_hash: trim(input.target_image_hash),
|
|
37
|
+
viewport_matrix: input.viewport_matrix,
|
|
38
|
+
deterministic_setup: input.deterministic_setup,
|
|
39
|
+
assertions: input.assertions,
|
|
40
|
+
capture_script_hash: hashString(input.capture_script)
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
function visualSessionFingerprint(input) {
|
|
44
|
+
const basis = input.version === RIDDLE_PROOF_VISUAL_SESSION_FINGERPRINT_VERSION ? input : visualSessionFingerprintBasis(input);
|
|
45
|
+
return createHash("sha256").update(stableJson(basis)).digest("hex");
|
|
46
|
+
}
|
|
47
|
+
function buildVisualProofSession(input) {
|
|
48
|
+
const basis = visualSessionFingerprintBasis(input);
|
|
49
|
+
const fingerprint = visualSessionFingerprint(basis);
|
|
50
|
+
const session = {
|
|
51
|
+
version: RIDDLE_PROOF_VISUAL_SESSION_VERSION,
|
|
52
|
+
session_id: `rps_${(/* @__PURE__ */ new Date()).toISOString().replace(/[-:.TZ]/g, "").slice(0, 14)}_${randomUUID().slice(0, 8)}`,
|
|
53
|
+
run_id: trim(input.run_id),
|
|
54
|
+
parent_session_id: input.parent?.session_id || null,
|
|
55
|
+
parent_fingerprint: input.parent?.fingerprint || null,
|
|
56
|
+
created_at: (/* @__PURE__ */ new Date()).toISOString(),
|
|
57
|
+
fingerprint,
|
|
58
|
+
fingerprint_basis: basis,
|
|
59
|
+
repo: trim(input.repo),
|
|
60
|
+
branch: trim(input.branch),
|
|
61
|
+
route: withoutUndefined({
|
|
62
|
+
path: trim(input.route),
|
|
63
|
+
observed_after_path: trim(input.observed_after_path)
|
|
64
|
+
}),
|
|
65
|
+
reference: trim(input.reference),
|
|
66
|
+
verification_mode: trim(input.verification_mode),
|
|
67
|
+
target_image: withoutUndefined({
|
|
68
|
+
url: trim(input.target_image_url),
|
|
69
|
+
hash: trim(input.target_image_hash)
|
|
70
|
+
}),
|
|
71
|
+
viewport_matrix: input.viewport_matrix,
|
|
72
|
+
deterministic_setup: input.deterministic_setup,
|
|
73
|
+
capture: withoutUndefined({
|
|
74
|
+
proof_plan: trim(input.proof_plan),
|
|
75
|
+
capture_script: trim(input.capture_script),
|
|
76
|
+
wait_for_selector: trim(input.wait_for_selector)
|
|
77
|
+
}),
|
|
78
|
+
assertions: input.assertions,
|
|
79
|
+
artifacts: input.artifacts,
|
|
80
|
+
evidence: input.evidence,
|
|
81
|
+
status: trim(input.status)
|
|
82
|
+
};
|
|
83
|
+
return JSON.parse(JSON.stringify(session));
|
|
84
|
+
}
|
|
85
|
+
function parseVisualProofSession(value) {
|
|
86
|
+
const parsed = typeof value === "string" ? JSON.parse(value) : value;
|
|
87
|
+
if (!parsed || typeof parsed !== "object") throw new Error("proof session must be a JSON object");
|
|
88
|
+
const session = parsed;
|
|
89
|
+
if (session.version !== RIDDLE_PROOF_VISUAL_SESSION_VERSION) {
|
|
90
|
+
throw new Error(`unsupported proof session version: ${String(session.version || "")}`);
|
|
91
|
+
}
|
|
92
|
+
if (!session.session_id) throw new Error("proof session missing session_id");
|
|
93
|
+
if (!session.fingerprint) throw new Error("proof session missing fingerprint");
|
|
94
|
+
return session;
|
|
95
|
+
}
|
|
96
|
+
function compareVisualProofSessionFingerprint(parent, input) {
|
|
97
|
+
const actual = visualSessionFingerprintBasis(input);
|
|
98
|
+
const expected = parent.fingerprint_basis || {};
|
|
99
|
+
const keys = /* @__PURE__ */ new Set([...Object.keys(expected), ...Object.keys(actual)]);
|
|
100
|
+
const expectedRecord = expected;
|
|
101
|
+
const actualRecord = actual;
|
|
102
|
+
const mismatches = [];
|
|
103
|
+
for (const key of keys) {
|
|
104
|
+
const expectedValue = expectedRecord[key];
|
|
105
|
+
const actualValue = actualRecord[key];
|
|
106
|
+
if (stableJson(expectedValue) !== stableJson(actualValue)) {
|
|
107
|
+
mismatches.push({ key, expected: expectedValue, actual: actualValue });
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return mismatches;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export {
|
|
114
|
+
RIDDLE_PROOF_VISUAL_SESSION_VERSION,
|
|
115
|
+
RIDDLE_PROOF_VISUAL_SESSION_FINGERPRINT_VERSION,
|
|
116
|
+
visualSessionFingerprintBasis,
|
|
117
|
+
visualSessionFingerprint,
|
|
118
|
+
buildVisualProofSession,
|
|
119
|
+
parseVisualProofSession,
|
|
120
|
+
compareVisualProofSessionFingerprint
|
|
121
|
+
};
|
package/dist/engine-harness.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 || "",
|
|
@@ -489,6 +499,11 @@ function mergeStateFromParams(statePath, params) {
|
|
|
489
499
|
"success_criteria",
|
|
490
500
|
"assertions_json",
|
|
491
501
|
"verification_mode",
|
|
502
|
+
"resume_session",
|
|
503
|
+
"target_image_url",
|
|
504
|
+
"target_image_hash",
|
|
505
|
+
"viewport_matrix_json",
|
|
506
|
+
"deterministic_setup_json",
|
|
492
507
|
"base_branch",
|
|
493
508
|
"before_ref",
|
|
494
509
|
"context",
|
|
@@ -720,7 +735,10 @@ function summarizeState(state) {
|
|
|
720
735
|
explicit_stage_gate: Boolean(state.explicit_stage_gate),
|
|
721
736
|
last_requested_advance_stage: state.last_requested_advance_stage || null,
|
|
722
737
|
recon_results: state.recon_results || null,
|
|
723
|
-
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
|
|
724
742
|
};
|
|
725
743
|
const parts = [
|
|
726
744
|
state.workspace_ready ? "workspace ready" : "workspace not ready",
|
|
@@ -2927,6 +2945,7 @@ function createRunResult(input) {
|
|
|
2927
2945
|
merge_recommendation: state.merge_recommendation,
|
|
2928
2946
|
finalized: state.finalized,
|
|
2929
2947
|
blocker: state.blocker,
|
|
2948
|
+
proof_session: state.proof_session,
|
|
2930
2949
|
evidence_bundle: input.evidence_bundle,
|
|
2931
2950
|
raw: input.raw
|
|
2932
2951
|
});
|
|
@@ -2974,6 +2993,11 @@ function normalizeRunParams(input) {
|
|
|
2974
2993
|
success_criteria: input.success_criteria,
|
|
2975
2994
|
assertions: input.assertions,
|
|
2976
2995
|
verification_mode: input.verification_mode,
|
|
2996
|
+
resume_session: input.resume_session,
|
|
2997
|
+
target_image_url: input.target_image_url,
|
|
2998
|
+
target_image_hash: input.target_image_hash,
|
|
2999
|
+
viewport_matrix: input.viewport_matrix,
|
|
3000
|
+
deterministic_setup: input.deterministic_setup,
|
|
2977
3001
|
reference: input.reference,
|
|
2978
3002
|
base_branch: input.base_branch,
|
|
2979
3003
|
before_ref: input.before_ref,
|
package/dist/engine-harness.js
CHANGED
|
@@ -2,10 +2,10 @@ import {
|
|
|
2
2
|
createDisabledRiddleProofAgentAdapter,
|
|
3
3
|
readRiddleProofRunStatus,
|
|
4
4
|
runRiddleProofEngineHarness
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-7R6ZQE3X.js";
|
|
6
|
+
import "./chunk-OASB3CYU.js";
|
|
7
|
+
import "./chunk-4YCWZVBN.js";
|
|
8
|
+
import "./chunk-J2MERROF.js";
|
|
9
9
|
export {
|
|
10
10
|
createDisabledRiddleProofAgentAdapter,
|
|
11
11
|
readRiddleProofRunStatus,
|
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 || "",
|
|
@@ -489,6 +499,11 @@ function mergeStateFromParams(statePath, params) {
|
|
|
489
499
|
"success_criteria",
|
|
490
500
|
"assertions_json",
|
|
491
501
|
"verification_mode",
|
|
502
|
+
"resume_session",
|
|
503
|
+
"target_image_url",
|
|
504
|
+
"target_image_hash",
|
|
505
|
+
"viewport_matrix_json",
|
|
506
|
+
"deterministic_setup_json",
|
|
492
507
|
"base_branch",
|
|
493
508
|
"before_ref",
|
|
494
509
|
"context",
|
|
@@ -720,7 +735,10 @@ function summarizeState(state) {
|
|
|
720
735
|
explicit_stage_gate: Boolean(state.explicit_stage_gate),
|
|
721
736
|
last_requested_advance_stage: state.last_requested_advance_stage || null,
|
|
722
737
|
recon_results: state.recon_results || null,
|
|
723
|
-
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
|
|
724
742
|
};
|
|
725
743
|
const parts = [
|
|
726
744
|
state.workspace_ready ? "workspace ready" : "workspace not ready",
|
|
@@ -2718,12 +2736,16 @@ __export(index_exports, {
|
|
|
2718
2736
|
DEFAULT_DIAGNOSTIC_STRING_LIMIT: () => DEFAULT_DIAGNOSTIC_STRING_LIMIT,
|
|
2719
2737
|
RIDDLE_PROOF_CAPTURE_DIAGNOSTIC_VERSION: () => RIDDLE_PROOF_CAPTURE_DIAGNOSTIC_VERSION,
|
|
2720
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,
|
|
2721
2741
|
appendCaptureDiagnostic: () => appendCaptureDiagnostic,
|
|
2722
2742
|
appendRunEvent: () => appendRunEvent,
|
|
2723
2743
|
appendStageHeartbeat: () => appendStageHeartbeat,
|
|
2724
2744
|
applyPrLifecycleState: () => applyPrLifecycleState,
|
|
2725
2745
|
applyTerminalMetadata: () => applyTerminalMetadata,
|
|
2746
|
+
buildVisualProofSession: () => buildVisualProofSession,
|
|
2726
2747
|
compactRecord: () => compactRecord,
|
|
2748
|
+
compareVisualProofSessionFingerprint: () => compareVisualProofSessionFingerprint,
|
|
2727
2749
|
createCaptureDiagnostic: () => createCaptureDiagnostic,
|
|
2728
2750
|
createDisabledRiddleProofAgentAdapter: () => createDisabledRiddleProofAgentAdapter,
|
|
2729
2751
|
createRunResult: () => createRunResult,
|
|
@@ -2736,13 +2758,16 @@ __export(index_exports, {
|
|
|
2736
2758
|
normalizePrLifecycleState: () => normalizePrLifecycleState,
|
|
2737
2759
|
normalizeRunParams: () => normalizeRunParams,
|
|
2738
2760
|
normalizeTerminalMetadata: () => normalizeTerminalMetadata,
|
|
2761
|
+
parseVisualProofSession: () => parseVisualProofSession,
|
|
2739
2762
|
readRiddleProofRunStatus: () => readRiddleProofRunStatus,
|
|
2740
2763
|
recordValue: () => recordValue,
|
|
2741
2764
|
redactForProofDiagnostics: () => redactForProofDiagnostics,
|
|
2742
2765
|
runRiddleProof: () => runRiddleProof,
|
|
2743
2766
|
runRiddleProofEngineHarness: () => runRiddleProofEngineHarness,
|
|
2744
2767
|
setRunStatus: () => setRunStatus,
|
|
2745
|
-
summarizeCaptureArtifacts: () => summarizeCaptureArtifacts
|
|
2768
|
+
summarizeCaptureArtifacts: () => summarizeCaptureArtifacts,
|
|
2769
|
+
visualSessionFingerprint: () => visualSessionFingerprint,
|
|
2770
|
+
visualSessionFingerprintBasis: () => visualSessionFingerprintBasis
|
|
2746
2771
|
});
|
|
2747
2772
|
module.exports = __toCommonJS(index_exports);
|
|
2748
2773
|
|
|
@@ -2950,6 +2975,7 @@ function createRunResult(input) {
|
|
|
2950
2975
|
merge_recommendation: state.merge_recommendation,
|
|
2951
2976
|
finalized: state.finalized,
|
|
2952
2977
|
blocker: state.blocker,
|
|
2978
|
+
proof_session: state.proof_session,
|
|
2953
2979
|
evidence_bundle: input.evidence_bundle,
|
|
2954
2980
|
raw: input.raw
|
|
2955
2981
|
});
|
|
@@ -3027,6 +3053,11 @@ function normalizeRunParams(input) {
|
|
|
3027
3053
|
success_criteria: input.success_criteria,
|
|
3028
3054
|
assertions: input.assertions,
|
|
3029
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,
|
|
3030
3061
|
reference: input.reference,
|
|
3031
3062
|
base_branch: input.base_branch,
|
|
3032
3063
|
before_ref: input.before_ref,
|
|
@@ -4683,6 +4714,118 @@ function appendCaptureDiagnostic(state, input, historyLimit = DEFAULT_DIAGNOSTIC
|
|
|
4683
4714
|
state.capture_diagnostics = [...existing, diagnostic].slice(-Math.max(1, historyLimit));
|
|
4684
4715
|
return diagnostic;
|
|
4685
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
|
+
}
|
|
4686
4829
|
// Annotate the CommonJS export names for ESM import in node:
|
|
4687
4830
|
0 && (module.exports = {
|
|
4688
4831
|
DEFAULT_DIAGNOSTIC_ARRAY_LIMIT,
|
|
@@ -4690,12 +4833,16 @@ function appendCaptureDiagnostic(state, input, historyLimit = DEFAULT_DIAGNOSTIC
|
|
|
4690
4833
|
DEFAULT_DIAGNOSTIC_STRING_LIMIT,
|
|
4691
4834
|
RIDDLE_PROOF_CAPTURE_DIAGNOSTIC_VERSION,
|
|
4692
4835
|
RIDDLE_PROOF_RUN_STATE_VERSION,
|
|
4836
|
+
RIDDLE_PROOF_VISUAL_SESSION_FINGERPRINT_VERSION,
|
|
4837
|
+
RIDDLE_PROOF_VISUAL_SESSION_VERSION,
|
|
4693
4838
|
appendCaptureDiagnostic,
|
|
4694
4839
|
appendRunEvent,
|
|
4695
4840
|
appendStageHeartbeat,
|
|
4696
4841
|
applyPrLifecycleState,
|
|
4697
4842
|
applyTerminalMetadata,
|
|
4843
|
+
buildVisualProofSession,
|
|
4698
4844
|
compactRecord,
|
|
4845
|
+
compareVisualProofSessionFingerprint,
|
|
4699
4846
|
createCaptureDiagnostic,
|
|
4700
4847
|
createDisabledRiddleProofAgentAdapter,
|
|
4701
4848
|
createRunResult,
|
|
@@ -4708,11 +4855,14 @@ function appendCaptureDiagnostic(state, input, historyLimit = DEFAULT_DIAGNOSTIC
|
|
|
4708
4855
|
normalizePrLifecycleState,
|
|
4709
4856
|
normalizeRunParams,
|
|
4710
4857
|
normalizeTerminalMetadata,
|
|
4858
|
+
parseVisualProofSession,
|
|
4711
4859
|
readRiddleProofRunStatus,
|
|
4712
4860
|
recordValue,
|
|
4713
4861
|
redactForProofDiagnostics,
|
|
4714
4862
|
runRiddleProof,
|
|
4715
4863
|
runRiddleProofEngineHarness,
|
|
4716
4864
|
setRunStatus,
|
|
4717
|
-
summarizeCaptureArtifacts
|
|
4865
|
+
summarizeCaptureArtifacts,
|
|
4866
|
+
visualSessionFingerprint,
|
|
4867
|
+
visualSessionFingerprintBasis
|
|
4718
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';
|