@riddledc/riddle-proof 0.8.75 → 0.8.77
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -4
- package/dist/change-proof.cjs +327 -2
- package/dist/change-proof.d.cts +65 -1
- package/dist/change-proof.d.ts +65 -1
- package/dist/change-proof.js +11 -3
- package/dist/chunk-BILL3UC2.js +488 -0
- package/dist/{chunk-AK2EPEVO.js → chunk-H25IDX76.js} +26 -39
- package/dist/{chunk-CWRIXP5H.js → chunk-IY4W6STC.js} +73 -8
- package/dist/cli/index.js +3 -3
- package/dist/cli.cjs +410 -44
- package/dist/cli.js +3 -3
- package/dist/index.cjs +407 -17
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +11 -3
- package/dist/pr-comment.cjs +73 -8
- package/dist/pr-comment.js +1 -1
- package/examples/change-contracts/hosted-change-proof-preview.json +16 -0
- package/examples/neutral-fixture-site/pass.html +4 -0
- package/examples/neutral-fixture-site/styles.css +1 -1
- package/examples/profiles/hosted-change-proof-preview.json +36 -0
- package/package.json +1 -1
- package/dist/chunk-6S7DZWVC.js +0 -167
package/dist/index.cjs
CHANGED
|
@@ -3419,6 +3419,7 @@ __export(index_exports, {
|
|
|
3419
3419
|
RIDDLE_PROOF_BASIC_GAMEPLAY_VERSION: () => RIDDLE_PROOF_BASIC_GAMEPLAY_VERSION,
|
|
3420
3420
|
RIDDLE_PROOF_CAPTURE_DIAGNOSTIC_VERSION: () => RIDDLE_PROOF_CAPTURE_DIAGNOSTIC_VERSION,
|
|
3421
3421
|
RIDDLE_PROOF_CHANGE_CONTRACT_VERSION: () => RIDDLE_PROOF_CHANGE_CONTRACT_VERSION,
|
|
3422
|
+
RIDDLE_PROOF_CHANGE_RECEIPT_VERSION: () => RIDDLE_PROOF_CHANGE_RECEIPT_VERSION,
|
|
3422
3423
|
RIDDLE_PROOF_CHANGE_RESULT_VERSION: () => RIDDLE_PROOF_CHANGE_RESULT_VERSION,
|
|
3423
3424
|
RIDDLE_PROOF_CHECKPOINT_PACKET_VERSION: () => RIDDLE_PROOF_CHECKPOINT_PACKET_VERSION,
|
|
3424
3425
|
RIDDLE_PROOF_CHECKPOINT_RESPONSE_VERSION: () => RIDDLE_PROOF_CHECKPOINT_RESPONSE_VERSION,
|
|
@@ -3484,6 +3485,7 @@ __export(index_exports, {
|
|
|
3484
3485
|
createLocalAgentAdapter: () => createCodexExecAgentAdapter,
|
|
3485
3486
|
createLocalAgentJsonRunner: () => createCodexExecJsonRunner,
|
|
3486
3487
|
createRiddleApiClient: () => createRiddleApiClient,
|
|
3488
|
+
createRiddleProofChangeReceipt: () => createRiddleProofChangeReceipt,
|
|
3487
3489
|
createRiddleProofProfileConfigurationError: () => createRiddleProofProfileConfigurationError,
|
|
3488
3490
|
createRiddleProofProfileEnvironmentBlockedResult: () => createRiddleProofProfileEnvironmentBlockedResult,
|
|
3489
3491
|
createRiddleProofProfileInsufficientResult: () => createRiddleProofProfileInsufficientResult,
|
|
@@ -3529,6 +3531,8 @@ __export(index_exports, {
|
|
|
3529
3531
|
resolveRiddleProofProfileRouteUrl: () => resolveRiddleProofProfileRouteUrl,
|
|
3530
3532
|
resolveRiddleProofProfileTargetUrl: () => resolveRiddleProofProfileTargetUrl,
|
|
3531
3533
|
resolveRiddleProofProfileTimeoutSec: () => resolveRiddleProofProfileTimeoutSec,
|
|
3534
|
+
riddleProofChangeReceiptHtml: () => riddleProofChangeReceiptHtml,
|
|
3535
|
+
riddleProofChangeReceiptMarkdown: () => riddleProofChangeReceiptMarkdown,
|
|
3532
3536
|
riddleProofPublicStateAllowsClaim: () => riddleProofPublicStateAllowsClaim,
|
|
3533
3537
|
riddleProofPublicStateAllowsMergeRecommendation: () => riddleProofPublicStateAllowsMergeRecommendation,
|
|
3534
3538
|
riddleProofPublicStateMergeRecommendation: () => riddleProofPublicStateMergeRecommendation,
|
|
@@ -19935,6 +19939,7 @@ function suggestRiddleProofProfileChecks(input) {
|
|
|
19935
19939
|
// src/change-proof.ts
|
|
19936
19940
|
var RIDDLE_PROOF_CHANGE_CONTRACT_VERSION = "riddle-proof.change-contract.v1";
|
|
19937
19941
|
var RIDDLE_PROOF_CHANGE_RESULT_VERSION = "riddle-proof.change-result.v1";
|
|
19942
|
+
var RIDDLE_PROOF_CHANGE_RECEIPT_VERSION = "riddle-proof.change-receipt.v1";
|
|
19938
19943
|
var DEFAULT_BEFORE_STATUSES = ["passed", "product_regression"];
|
|
19939
19944
|
var DEFAULT_AFTER_STATUSES = ["passed"];
|
|
19940
19945
|
var DEFAULT_PROFILE_STATUS_TRANSITION_BEFORE = ["product_regression"];
|
|
@@ -20093,6 +20098,322 @@ function assessRiddleProofChange(contract, input) {
|
|
|
20093
20098
|
metadata: contract.metadata
|
|
20094
20099
|
};
|
|
20095
20100
|
}
|
|
20101
|
+
function changeReceiptVerdict(status) {
|
|
20102
|
+
if (status === "passed") return "mergeable";
|
|
20103
|
+
if (status === "environment_blocked") return "environment_blocked";
|
|
20104
|
+
if (status === "configuration_error") return "configuration_error";
|
|
20105
|
+
if (status === "needs_human_review") return "needs_human_review";
|
|
20106
|
+
if (status === "proof_insufficient") return "proof_insufficient";
|
|
20107
|
+
return "not_mergeable";
|
|
20108
|
+
}
|
|
20109
|
+
function profileCheckCounts(result) {
|
|
20110
|
+
const counts = {
|
|
20111
|
+
total: result.checks.length,
|
|
20112
|
+
passed: 0,
|
|
20113
|
+
failed: 0,
|
|
20114
|
+
skipped: 0,
|
|
20115
|
+
needs_human_review: 0
|
|
20116
|
+
};
|
|
20117
|
+
for (const check of result.checks) {
|
|
20118
|
+
if (check.status === "passed") counts.passed += 1;
|
|
20119
|
+
if (check.status === "failed") counts.failed += 1;
|
|
20120
|
+
if (check.status === "skipped") counts.skipped += 1;
|
|
20121
|
+
if (check.status === "needs_human_review") counts.needs_human_review += 1;
|
|
20122
|
+
}
|
|
20123
|
+
return counts;
|
|
20124
|
+
}
|
|
20125
|
+
function artifactKind(ref) {
|
|
20126
|
+
const text = [ref.name, ref.url, ref.path, ref.kind, ref.content_type].filter(Boolean).join(" ").toLowerCase();
|
|
20127
|
+
if (/\bimage\b/.test(text) || /\.(png|jpe?g|gif|webp|avif|svg)(\?|#|$)/.test(text)) return "image";
|
|
20128
|
+
if (/\bjson\b|\btext\b|\bmarkdown\b|\bhtml\b|\blog\b/.test(text) || /\.(json|md|txt|html|log|har)(\?|#|$)/.test(text)) return "data";
|
|
20129
|
+
return "artifact";
|
|
20130
|
+
}
|
|
20131
|
+
function receiptArtifactFromRef(side, ref) {
|
|
20132
|
+
return {
|
|
20133
|
+
side,
|
|
20134
|
+
name: ref.name,
|
|
20135
|
+
kind: artifactKind(ref),
|
|
20136
|
+
url: ref.url,
|
|
20137
|
+
path: ref.path,
|
|
20138
|
+
source: ref.source
|
|
20139
|
+
};
|
|
20140
|
+
}
|
|
20141
|
+
function comparableArtifactName(value) {
|
|
20142
|
+
return (value || "").split(/[/?#]/).pop()?.toLowerCase().replace(/\.(png|jpe?g|gif|webp|avif|svg)$/u, "").replace(/[^a-z0-9_-]+/gu, "-").replace(/^-+|-+$/g, "") || "";
|
|
20143
|
+
}
|
|
20144
|
+
function artifactMatchesScreenshotLabel(artifact, screenshot) {
|
|
20145
|
+
const screenshotName = comparableArtifactName(screenshot);
|
|
20146
|
+
if (!screenshotName) return false;
|
|
20147
|
+
return [artifact.name, artifact.url, artifact.path].map(comparableArtifactName).some((name) => name === screenshotName || name.endsWith(`-${screenshotName}`));
|
|
20148
|
+
}
|
|
20149
|
+
function collectReceiptArtifacts(side, result) {
|
|
20150
|
+
const artifacts = [];
|
|
20151
|
+
const seen = /* @__PURE__ */ new Set();
|
|
20152
|
+
const add = (artifact) => {
|
|
20153
|
+
const key = artifact.url || artifact.path || `${artifact.kind}:${artifact.name}`;
|
|
20154
|
+
if (!artifact.name || seen.has(key)) return;
|
|
20155
|
+
seen.add(key);
|
|
20156
|
+
artifacts.push(artifact);
|
|
20157
|
+
};
|
|
20158
|
+
for (const ref of result.artifacts.riddle_artifacts || []) {
|
|
20159
|
+
add(receiptArtifactFromRef(side, ref));
|
|
20160
|
+
}
|
|
20161
|
+
for (const screenshot of result.artifacts.screenshots || []) {
|
|
20162
|
+
if (artifacts.some((artifact) => artifactMatchesScreenshotLabel(artifact, screenshot))) continue;
|
|
20163
|
+
add({
|
|
20164
|
+
side,
|
|
20165
|
+
name: screenshot,
|
|
20166
|
+
kind: "image"
|
|
20167
|
+
});
|
|
20168
|
+
}
|
|
20169
|
+
return artifacts;
|
|
20170
|
+
}
|
|
20171
|
+
function artifactIsScreenshot(artifact) {
|
|
20172
|
+
if (artifact.kind !== "image") return false;
|
|
20173
|
+
return /screenshot|\.png|\.jpe?g|\.webp|\.gif|\.avif|\.svg/i.test([artifact.name, artifact.url, artifact.path].filter(Boolean).join(" "));
|
|
20174
|
+
}
|
|
20175
|
+
function receiptSide(side, source, result) {
|
|
20176
|
+
const artifacts = collectReceiptArtifacts(side, result);
|
|
20177
|
+
return {
|
|
20178
|
+
side,
|
|
20179
|
+
source,
|
|
20180
|
+
profile_name: result.profile_name,
|
|
20181
|
+
status: result.status,
|
|
20182
|
+
summary: result.summary,
|
|
20183
|
+
route: result.route,
|
|
20184
|
+
captured_at: result.captured_at,
|
|
20185
|
+
checks: profileCheckCounts(result),
|
|
20186
|
+
screenshots: artifacts.filter(artifactIsScreenshot),
|
|
20187
|
+
artifacts
|
|
20188
|
+
};
|
|
20189
|
+
}
|
|
20190
|
+
function metadataStringList(metadata, key) {
|
|
20191
|
+
const value = metadata?.[key];
|
|
20192
|
+
if (!Array.isArray(value)) return [];
|
|
20193
|
+
return value.filter((item) => typeof item === "string" && item.trim().length > 0).map((item) => item.trim());
|
|
20194
|
+
}
|
|
20195
|
+
function createRiddleProofChangeReceipt(input) {
|
|
20196
|
+
return {
|
|
20197
|
+
version: RIDDLE_PROOF_CHANGE_RECEIPT_VERSION,
|
|
20198
|
+
contract_name: input.result.contract_name,
|
|
20199
|
+
profile_name: input.profile_name,
|
|
20200
|
+
status: input.result.status,
|
|
20201
|
+
verdict: changeReceiptVerdict(input.result.status),
|
|
20202
|
+
summary: input.result.summary,
|
|
20203
|
+
before: receiptSide("before", input.before_source, input.before_result),
|
|
20204
|
+
after: receiptSide("after", input.after_source, input.after_result),
|
|
20205
|
+
deltas: input.result.deltas.map((delta) => ({
|
|
20206
|
+
type: delta.type,
|
|
20207
|
+
label: delta.label,
|
|
20208
|
+
status: delta.status,
|
|
20209
|
+
before_observed: delta.before_observed,
|
|
20210
|
+
after_observed: delta.after_observed,
|
|
20211
|
+
message: delta.message
|
|
20212
|
+
})),
|
|
20213
|
+
proves: metadataStringList(input.contract.metadata, "required_receipts"),
|
|
20214
|
+
does_not_prove: metadataStringList(input.contract.metadata, "does_not_prove"),
|
|
20215
|
+
metadata: input.result.metadata
|
|
20216
|
+
};
|
|
20217
|
+
}
|
|
20218
|
+
function markdownTableCell(value) {
|
|
20219
|
+
return String(value ?? "").replace(/\|/g, "\\|").replace(/\r?\n/g, " ");
|
|
20220
|
+
}
|
|
20221
|
+
function artifactTarget(artifact) {
|
|
20222
|
+
return artifact.url || artifact.path;
|
|
20223
|
+
}
|
|
20224
|
+
function markdownLink(label, target) {
|
|
20225
|
+
return `[${label.replace(/\]/g, "\\]")}](${target})`;
|
|
20226
|
+
}
|
|
20227
|
+
function appendMarkdownArtifacts(lines, title, artifacts) {
|
|
20228
|
+
lines.push(`### ${title}`, "");
|
|
20229
|
+
if (!artifacts.length) {
|
|
20230
|
+
lines.push("- No screenshot artifacts recorded.", "");
|
|
20231
|
+
return;
|
|
20232
|
+
}
|
|
20233
|
+
for (const artifact of artifacts.slice(0, 6)) {
|
|
20234
|
+
const target = artifactTarget(artifact);
|
|
20235
|
+
if (target && artifact.kind === "image") {
|
|
20236
|
+
lines.push(`![${artifact.name.replace(/\]/g, "\\]")}](${target})`);
|
|
20237
|
+
} else if (target) {
|
|
20238
|
+
lines.push(`- ${markdownLink(artifact.name, target)}`);
|
|
20239
|
+
} else {
|
|
20240
|
+
lines.push(`- ${artifact.name}`);
|
|
20241
|
+
}
|
|
20242
|
+
}
|
|
20243
|
+
if (artifacts.length > 6) lines.push(`- ${artifacts.length - 6} more artifact(s) omitted`);
|
|
20244
|
+
lines.push("");
|
|
20245
|
+
}
|
|
20246
|
+
function riddleProofChangeReceiptMarkdown(receipt) {
|
|
20247
|
+
const lines = [
|
|
20248
|
+
"# Riddle Proof Change Receipt",
|
|
20249
|
+
"",
|
|
20250
|
+
`**Verdict:** ${receipt.verdict}`,
|
|
20251
|
+
`**Status:** ${receipt.status}`,
|
|
20252
|
+
`**Contract:** ${receipt.contract_name}`,
|
|
20253
|
+
receipt.profile_name ? `**Profile:** ${receipt.profile_name}` : "",
|
|
20254
|
+
"",
|
|
20255
|
+
receipt.summary,
|
|
20256
|
+
"",
|
|
20257
|
+
"## Evidence Pair",
|
|
20258
|
+
"",
|
|
20259
|
+
"| Side | Source | Status | Checks |",
|
|
20260
|
+
"| --- | --- | --- | --- |",
|
|
20261
|
+
`| Before | ${markdownTableCell(receipt.before.source)} | ${receipt.before.status} | ${receipt.before.checks.passed} passed / ${receipt.before.checks.failed} failed |`,
|
|
20262
|
+
`| After | ${markdownTableCell(receipt.after.source)} | ${receipt.after.status} | ${receipt.after.checks.passed} passed / ${receipt.after.checks.failed} failed |`,
|
|
20263
|
+
"",
|
|
20264
|
+
"## Delta Checks",
|
|
20265
|
+
"",
|
|
20266
|
+
"| Delta | Status | Before | After |",
|
|
20267
|
+
"| --- | --- | --- | --- |"
|
|
20268
|
+
].filter(Boolean);
|
|
20269
|
+
for (const delta of receipt.deltas) {
|
|
20270
|
+
lines.push(`| ${markdownTableCell(delta.label)} | ${delta.status} | ${markdownTableCell(delta.before_observed)} | ${markdownTableCell(delta.after_observed)} |`);
|
|
20271
|
+
if (delta.message) lines.push(`| ${markdownTableCell(`${delta.label} message`)} | ${markdownTableCell(delta.message)} | | |`);
|
|
20272
|
+
}
|
|
20273
|
+
lines.push("");
|
|
20274
|
+
appendMarkdownArtifacts(lines, "Before Screenshot", receipt.before.screenshots);
|
|
20275
|
+
appendMarkdownArtifacts(lines, "After Screenshot", receipt.after.screenshots);
|
|
20276
|
+
if (receipt.proves.length) {
|
|
20277
|
+
lines.push("## What This Proves", "");
|
|
20278
|
+
for (const claim of receipt.proves) lines.push(`- ${claim}`);
|
|
20279
|
+
lines.push("");
|
|
20280
|
+
}
|
|
20281
|
+
if (receipt.does_not_prove.length) {
|
|
20282
|
+
lines.push("## What This Does Not Prove", "");
|
|
20283
|
+
for (const claim of receipt.does_not_prove) lines.push(`- ${claim}`);
|
|
20284
|
+
lines.push("");
|
|
20285
|
+
}
|
|
20286
|
+
const linkedArtifacts = [...receipt.before.artifacts, ...receipt.after.artifacts].filter((artifact) => artifactTarget(artifact)).slice(0, 24);
|
|
20287
|
+
if (linkedArtifacts.length) {
|
|
20288
|
+
lines.push("## Artifacts", "");
|
|
20289
|
+
for (const artifact of linkedArtifacts) {
|
|
20290
|
+
lines.push(`- ${artifact.side}: ${markdownLink(artifact.name, artifactTarget(artifact) || "")}`);
|
|
20291
|
+
}
|
|
20292
|
+
lines.push("");
|
|
20293
|
+
}
|
|
20294
|
+
return `${lines.join("\n").trim()}
|
|
20295
|
+
`;
|
|
20296
|
+
}
|
|
20297
|
+
function escapeHtml(value) {
|
|
20298
|
+
return String(value ?? "").replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
20299
|
+
}
|
|
20300
|
+
function htmlArtifactCard(artifact) {
|
|
20301
|
+
const target = artifactTarget(artifact);
|
|
20302
|
+
if (!target) return `<p>${escapeHtml(artifact.name)}</p>`;
|
|
20303
|
+
if (artifact.kind === "image") {
|
|
20304
|
+
return `<figure><img src="${escapeHtml(target)}" alt="${escapeHtml(artifact.name)}"><figcaption>${escapeHtml(artifact.name)}</figcaption></figure>`;
|
|
20305
|
+
}
|
|
20306
|
+
return `<p><a href="${escapeHtml(target)}">${escapeHtml(artifact.name)}</a></p>`;
|
|
20307
|
+
}
|
|
20308
|
+
function htmlArtifactLink(artifact) {
|
|
20309
|
+
const target = artifactTarget(artifact);
|
|
20310
|
+
if (!target) return escapeHtml(artifact.name);
|
|
20311
|
+
return `<a href="${escapeHtml(target)}">${escapeHtml(artifact.name)}</a>`;
|
|
20312
|
+
}
|
|
20313
|
+
function htmlList(items, emptyText) {
|
|
20314
|
+
if (!items.length) return `<p class="muted">${escapeHtml(emptyText)}</p>`;
|
|
20315
|
+
return `<ul>${items.map((item) => `<li>${escapeHtml(item)}</li>`).join("")}</ul>`;
|
|
20316
|
+
}
|
|
20317
|
+
function riddleProofChangeReceiptHtml(receipt) {
|
|
20318
|
+
const artifactLinks = [...receipt.before.artifacts, ...receipt.after.artifacts].filter((artifact) => artifactTarget(artifact)).slice(0, 32);
|
|
20319
|
+
const deltaRows = receipt.deltas.map((delta) => `
|
|
20320
|
+
<tr>
|
|
20321
|
+
<td>${escapeHtml(delta.label)}</td>
|
|
20322
|
+
<td><span class="status ${escapeHtml(delta.status)}">${escapeHtml(delta.status)}</span></td>
|
|
20323
|
+
<td>${escapeHtml(delta.before_observed)}</td>
|
|
20324
|
+
<td>${escapeHtml(delta.after_observed)}</td>
|
|
20325
|
+
</tr>
|
|
20326
|
+
${delta.message ? `<tr><td class="muted">${escapeHtml(delta.label)} message</td><td colspan="3">${escapeHtml(delta.message)}</td></tr>` : ""}`).join("");
|
|
20327
|
+
return `<!doctype html>
|
|
20328
|
+
<html lang="en">
|
|
20329
|
+
<head>
|
|
20330
|
+
<meta charset="utf-8">
|
|
20331
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
20332
|
+
<title>${escapeHtml(receipt.contract_name)} - Riddle Proof Change Receipt</title>
|
|
20333
|
+
<style>
|
|
20334
|
+
:root { color-scheme: light dark; --bg: #0f141b; --panel: #171f29; --text: #eef4f8; --muted: #aebbc8; --border: #314152; --ok: #69d089; --bad: #ff7a7a; --warn: #ffd166; }
|
|
20335
|
+
body { margin: 0; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: var(--bg); color: var(--text); }
|
|
20336
|
+
main { max-width: 1120px; margin: 0 auto; padding: 32px 20px 48px; }
|
|
20337
|
+
header, section { border: 1px solid var(--border); background: var(--panel); border-radius: 8px; padding: 20px; margin: 0 0 18px; }
|
|
20338
|
+
h1, h2, h3, p { margin-top: 0; }
|
|
20339
|
+
h1 { font-size: clamp(1.6rem, 3vw, 2.4rem); }
|
|
20340
|
+
h2 { font-size: 1.1rem; margin-bottom: 14px; }
|
|
20341
|
+
.muted { color: var(--muted); }
|
|
20342
|
+
.verdict { display: inline-flex; align-items: center; gap: 8px; padding: 6px 10px; border-radius: 999px; border: 1px solid var(--border); font-weight: 700; }
|
|
20343
|
+
.mergeable, .passed { color: var(--ok); }
|
|
20344
|
+
.not_mergeable, .failed, .product_regression { color: var(--bad); }
|
|
20345
|
+
.proof_insufficient, .environment_blocked, .needs_human_review, .configuration_error { color: var(--warn); }
|
|
20346
|
+
.grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
|
|
20347
|
+
.side { border: 1px solid var(--border); border-radius: 8px; padding: 14px; min-width: 0; }
|
|
20348
|
+
code { overflow-wrap: anywhere; color: var(--muted); }
|
|
20349
|
+
table { width: 100%; border-collapse: collapse; }
|
|
20350
|
+
th, td { border-bottom: 1px solid var(--border); padding: 10px 8px; text-align: left; vertical-align: top; }
|
|
20351
|
+
figure { margin: 0; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; background: #0b1017; }
|
|
20352
|
+
img { display: block; width: 100%; height: auto; }
|
|
20353
|
+
figcaption { padding: 8px 10px; color: var(--muted); font-size: 0.9rem; }
|
|
20354
|
+
ul { margin-bottom: 0; }
|
|
20355
|
+
a { color: #8bc7ff; }
|
|
20356
|
+
@media (max-width: 760px) { .grid { grid-template-columns: 1fr; } main { padding: 18px 12px 32px; } }
|
|
20357
|
+
</style>
|
|
20358
|
+
</head>
|
|
20359
|
+
<body>
|
|
20360
|
+
<main>
|
|
20361
|
+
<header>
|
|
20362
|
+
<p class="verdict ${escapeHtml(receipt.verdict)}">${escapeHtml(receipt.verdict)}</p>
|
|
20363
|
+
<h1>${escapeHtml(receipt.contract_name)}</h1>
|
|
20364
|
+
<p>${escapeHtml(receipt.summary)}</p>
|
|
20365
|
+
<p class="muted">Status: ${escapeHtml(receipt.status)}${receipt.profile_name ? ` | Profile: ${escapeHtml(receipt.profile_name)}` : ""}</p>
|
|
20366
|
+
</header>
|
|
20367
|
+
<section>
|
|
20368
|
+
<h2>Evidence Pair</h2>
|
|
20369
|
+
<div class="grid">
|
|
20370
|
+
<div class="side">
|
|
20371
|
+
<h3>Before</h3>
|
|
20372
|
+
<p><code>${escapeHtml(receipt.before.source)}</code></p>
|
|
20373
|
+
<p>Status: <strong class="${escapeHtml(receipt.before.status)}">${escapeHtml(receipt.before.status)}</strong></p>
|
|
20374
|
+
<p>${escapeHtml(receipt.before.summary)}</p>
|
|
20375
|
+
<p class="muted">${receipt.before.checks.passed} passed / ${receipt.before.checks.failed} failed checks</p>
|
|
20376
|
+
</div>
|
|
20377
|
+
<div class="side">
|
|
20378
|
+
<h3>After</h3>
|
|
20379
|
+
<p><code>${escapeHtml(receipt.after.source)}</code></p>
|
|
20380
|
+
<p>Status: <strong class="${escapeHtml(receipt.after.status)}">${escapeHtml(receipt.after.status)}</strong></p>
|
|
20381
|
+
<p>${escapeHtml(receipt.after.summary)}</p>
|
|
20382
|
+
<p class="muted">${receipt.after.checks.passed} passed / ${receipt.after.checks.failed} failed checks</p>
|
|
20383
|
+
</div>
|
|
20384
|
+
</div>
|
|
20385
|
+
</section>
|
|
20386
|
+
<section>
|
|
20387
|
+
<h2>Delta Checks</h2>
|
|
20388
|
+
<table>
|
|
20389
|
+
<thead><tr><th>Delta</th><th>Status</th><th>Before</th><th>After</th></tr></thead>
|
|
20390
|
+
<tbody>${deltaRows}</tbody>
|
|
20391
|
+
</table>
|
|
20392
|
+
</section>
|
|
20393
|
+
<section>
|
|
20394
|
+
<h2>Screenshots</h2>
|
|
20395
|
+
<div class="grid">
|
|
20396
|
+
<div>${receipt.before.screenshots.slice(0, 4).map(htmlArtifactCard).join("") || `<p class="muted">No before screenshots recorded.</p>`}</div>
|
|
20397
|
+
<div>${receipt.after.screenshots.slice(0, 4).map(htmlArtifactCard).join("") || `<p class="muted">No after screenshots recorded.</p>`}</div>
|
|
20398
|
+
</div>
|
|
20399
|
+
</section>
|
|
20400
|
+
<section>
|
|
20401
|
+
<h2>What This Proves</h2>
|
|
20402
|
+
${htmlList(receipt.proves, "No explicit proof claims were recorded in contract metadata.")}
|
|
20403
|
+
</section>
|
|
20404
|
+
<section>
|
|
20405
|
+
<h2>What This Does Not Prove</h2>
|
|
20406
|
+
${htmlList(receipt.does_not_prove, "No explicit limits were recorded in contract metadata.")}
|
|
20407
|
+
</section>
|
|
20408
|
+
<section>
|
|
20409
|
+
<h2>Artifacts</h2>
|
|
20410
|
+
${artifactLinks.length ? `<ul>${artifactLinks.map((artifact) => `<li>${escapeHtml(artifact.side)}: ${htmlArtifactLink(artifact)}</li>`).join("")}</ul>` : `<p class="muted">No linked artifacts recorded.</p>`}
|
|
20411
|
+
</section>
|
|
20412
|
+
</main>
|
|
20413
|
+
</body>
|
|
20414
|
+
</html>
|
|
20415
|
+
`;
|
|
20416
|
+
}
|
|
20096
20417
|
|
|
20097
20418
|
// src/riddle-client.ts
|
|
20098
20419
|
var import_node_child_process4 = require("child_process");
|
|
@@ -20704,7 +21025,7 @@ function firstStringValue2(...values) {
|
|
|
20704
21025
|
}
|
|
20705
21026
|
return void 0;
|
|
20706
21027
|
}
|
|
20707
|
-
function
|
|
21028
|
+
function artifactKind2(name, url) {
|
|
20708
21029
|
const target = `${name} ${url}`.toLowerCase();
|
|
20709
21030
|
if (/\.(png|jpe?g|gif|webp|avif|svg)(\?|#|$)/.test(target)) return "image";
|
|
20710
21031
|
if (/\.(json|har|txt|md|html|log)(\?|#|$)/.test(target)) return "data";
|
|
@@ -20729,7 +21050,7 @@ function collectArtifacts(runResponse) {
|
|
|
20729
21050
|
artifacts.push({
|
|
20730
21051
|
name,
|
|
20731
21052
|
url,
|
|
20732
|
-
kind:
|
|
21053
|
+
kind: artifactKind2(name, url),
|
|
20733
21054
|
size_bytes: numberValue5(artifact.size)
|
|
20734
21055
|
});
|
|
20735
21056
|
}
|
|
@@ -20749,12 +21070,39 @@ function collectProfileArtifacts(result) {
|
|
|
20749
21070
|
artifacts.push({
|
|
20750
21071
|
name,
|
|
20751
21072
|
url,
|
|
20752
|
-
kind:
|
|
21073
|
+
kind: artifactKind2(name, url),
|
|
20753
21074
|
size_bytes: numberValue5(artifact.size_bytes) ?? numberValue5(artifact.size)
|
|
20754
21075
|
});
|
|
20755
21076
|
}
|
|
20756
21077
|
return artifacts;
|
|
20757
21078
|
}
|
|
21079
|
+
function collectChangeReceiptArtifacts(result) {
|
|
21080
|
+
const artifacts = [];
|
|
21081
|
+
const seen = /* @__PURE__ */ new Set();
|
|
21082
|
+
const collectSide = (sideName, side) => {
|
|
21083
|
+
const candidates = [
|
|
21084
|
+
...asArray(side.screenshots),
|
|
21085
|
+
...asArray(side.artifacts)
|
|
21086
|
+
];
|
|
21087
|
+
for (const [index, item] of candidates.entries()) {
|
|
21088
|
+
const artifact = asRecord2(item);
|
|
21089
|
+
const url = stringValue7(artifact.url) || stringValue7(artifact.path);
|
|
21090
|
+
if (!url || seen.has(url)) continue;
|
|
21091
|
+
seen.add(url);
|
|
21092
|
+
const fallbackName = `${sideName}-artifact-${index + 1}`;
|
|
21093
|
+
const name = `${sideName}/${artifactDisplayName(artifact.name, fallbackName)}`;
|
|
21094
|
+
artifacts.push({
|
|
21095
|
+
name,
|
|
21096
|
+
url,
|
|
21097
|
+
kind: artifactKind2(name, url),
|
|
21098
|
+
size_bytes: numberValue5(artifact.size_bytes) ?? numberValue5(artifact.size)
|
|
21099
|
+
});
|
|
21100
|
+
}
|
|
21101
|
+
};
|
|
21102
|
+
collectSide("before", asRecord2(result.before));
|
|
21103
|
+
collectSide("after", asRecord2(result.after));
|
|
21104
|
+
return artifacts;
|
|
21105
|
+
}
|
|
20758
21106
|
function mergeArtifacts(...artifactLists) {
|
|
20759
21107
|
const artifacts = [];
|
|
20760
21108
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -20781,7 +21129,7 @@ function pageSummaries(result) {
|
|
|
20781
21129
|
}
|
|
20782
21130
|
return pages;
|
|
20783
21131
|
}
|
|
20784
|
-
function
|
|
21132
|
+
function profileCheckCounts2(result) {
|
|
20785
21133
|
const checks = asArray(result.checks);
|
|
20786
21134
|
if (checks.length) {
|
|
20787
21135
|
let passed2 = 0;
|
|
@@ -20810,6 +21158,32 @@ function profilePageSummaries(result, counts) {
|
|
|
20810
21158
|
failed: counts.failed
|
|
20811
21159
|
}];
|
|
20812
21160
|
}
|
|
21161
|
+
function changeReceiptCheckCounts(result) {
|
|
21162
|
+
const deltas = asArray(result.deltas);
|
|
21163
|
+
if (!deltas.length) return void 0;
|
|
21164
|
+
let passed = 0;
|
|
21165
|
+
let failed = 0;
|
|
21166
|
+
for (const item of deltas) {
|
|
21167
|
+
const status = stringValue7(asRecord2(item).status);
|
|
21168
|
+
if (status === "passed") passed += 1;
|
|
21169
|
+
if (status === "failed" || status === "proof_insufficient" || status === "configuration_error") failed += 1;
|
|
21170
|
+
}
|
|
21171
|
+
return { passed, failed };
|
|
21172
|
+
}
|
|
21173
|
+
function changeReceiptPageSummaries(result) {
|
|
21174
|
+
const pages = [];
|
|
21175
|
+
for (const sideName of ["before", "after"]) {
|
|
21176
|
+
const side = asRecord2(result[sideName]);
|
|
21177
|
+
if (!Object.keys(side).length) continue;
|
|
21178
|
+
const checks = asRecord2(side.checks);
|
|
21179
|
+
pages.push({
|
|
21180
|
+
route: firstStringValue2(side.source, side.profile_name) || sideName,
|
|
21181
|
+
passed: numberValue5(checks.passed) ?? 0,
|
|
21182
|
+
failed: numberValue5(checks.failed) ?? 0
|
|
21183
|
+
});
|
|
21184
|
+
}
|
|
21185
|
+
return pages;
|
|
21186
|
+
}
|
|
20813
21187
|
function summarizeExplicitChecks(value) {
|
|
20814
21188
|
let passed = 0;
|
|
20815
21189
|
let failed = 0;
|
|
@@ -20865,11 +21239,20 @@ function isProfileResult(result) {
|
|
|
20865
21239
|
const version = stringValue7(result.version);
|
|
20866
21240
|
return version === "riddle-proof.profile-result.v1" || version === "riddle-proof.profile-compact-result.v1";
|
|
20867
21241
|
}
|
|
21242
|
+
function isChangeReceiptResult(result) {
|
|
21243
|
+
return stringValue7(result.version) === "riddle-proof.change-receipt.v1";
|
|
21244
|
+
}
|
|
21245
|
+
function isChangeResult(result) {
|
|
21246
|
+
const version = stringValue7(result.version);
|
|
21247
|
+
return version === "riddle-proof.change-result.v1" || version === "riddle-proof.change-compact-result.v1";
|
|
21248
|
+
}
|
|
20868
21249
|
function summarizeRiddleProofPrComment(input) {
|
|
20869
21250
|
const runResponse = asRecord2(input.runResponse);
|
|
20870
21251
|
const result = asRecord2(input.result);
|
|
20871
21252
|
const proofResult = asRecord2(runResponse.proofResult);
|
|
20872
21253
|
const profileResult = isProfileResult(result);
|
|
21254
|
+
const changeReceiptResult = isChangeReceiptResult(result);
|
|
21255
|
+
const changeResult = changeReceiptResult || isChangeResult(result);
|
|
20873
21256
|
const profileRiddle = asRecord2(result.riddle);
|
|
20874
21257
|
const preview = asRecord2(runResponse.preview);
|
|
20875
21258
|
const resultRunCard = asRecord2(result.run_card);
|
|
@@ -20877,16 +21260,19 @@ function summarizeRiddleProofPrComment(input) {
|
|
|
20877
21260
|
const resultDetails = asRecord2(result.details);
|
|
20878
21261
|
const resultRaw = asRecord2(result.raw);
|
|
20879
21262
|
const rawDetails = asRecord2(resultRaw.details);
|
|
20880
|
-
const profileChecks = profileResult ?
|
|
21263
|
+
const profileChecks = profileResult ? profileCheckCounts2(result) : void 0;
|
|
21264
|
+
const changeChecks = changeResult ? changeReceiptCheckCounts(result) : void 0;
|
|
20881
21265
|
const artifacts = mergeArtifacts(
|
|
20882
21266
|
collectArtifacts(runResponse),
|
|
20883
|
-
profileResult ? collectProfileArtifacts(result) : []
|
|
21267
|
+
profileResult ? collectProfileArtifacts(result) : [],
|
|
21268
|
+
changeReceiptResult ? collectChangeReceiptArtifacts(result) : []
|
|
20884
21269
|
);
|
|
20885
|
-
const pages = profileResult ? profilePageSummaries(result, profileChecks) : pageSummaries(result);
|
|
21270
|
+
const pages = changeReceiptResult ? changeReceiptPageSummaries(result) : profileResult ? profilePageSummaries(result, profileChecks) : pageSummaries(result);
|
|
20886
21271
|
const checkSource = { ...result };
|
|
20887
21272
|
delete checkSource.ok;
|
|
20888
21273
|
const nestedChecks = summarizeExplicitChecks(checkSource);
|
|
20889
|
-
const
|
|
21274
|
+
const resultStatus = firstStringValue2(result.status, stopCondition.status);
|
|
21275
|
+
const ok = changeResult ? resultStatus === "passed" : booleanValue3(result.ok) ?? booleanValue3(runResponse.ok) ?? null;
|
|
20890
21276
|
const checkpointSummary = checkpointSummaryFrom2(
|
|
20891
21277
|
result.checkpoint_summary,
|
|
20892
21278
|
stopCondition.checkpoint_summary,
|
|
@@ -20896,7 +21282,7 @@ function summarizeRiddleProofPrComment(input) {
|
|
|
20896
21282
|
);
|
|
20897
21283
|
const publicState = summarizeRiddleProofPublicState({
|
|
20898
21284
|
...result,
|
|
20899
|
-
status:
|
|
21285
|
+
status: resultStatus,
|
|
20900
21286
|
checkpoint_summary: checkpointSummary || result.checkpoint_summary
|
|
20901
21287
|
});
|
|
20902
21288
|
const mergeRecommendation = riddleProofPublicStateMergeRecommendation(
|
|
@@ -20906,7 +21292,7 @@ function summarizeRiddleProofPrComment(input) {
|
|
|
20906
21292
|
return {
|
|
20907
21293
|
ok,
|
|
20908
21294
|
status: firstStringValue2(proofResult.status, profileRiddle.status),
|
|
20909
|
-
result_status: publicState.status,
|
|
21295
|
+
result_status: changeResult ? resultStatus : publicState.status,
|
|
20910
21296
|
job_id: firstStringValue2(proofResult.job_id, profileRiddle.job_id),
|
|
20911
21297
|
duration_ms: numberValue5(proofResult.duration_ms) ?? numberValue5(profileRiddle.elapsed_ms),
|
|
20912
21298
|
proof_url: stringValue7(runResponse.proofUrl),
|
|
@@ -20920,11 +21306,11 @@ function summarizeRiddleProofPrComment(input) {
|
|
|
20920
21306
|
merge_ready: publicState.merge_ready,
|
|
20921
21307
|
sync_allowed: publicState.sync_allowed,
|
|
20922
21308
|
proof_decision: firstStringValue2(result.proof_decision, stopCondition.proof_decision, resultRaw.proof_decision),
|
|
20923
|
-
merge_recommendation: mergeRecommendation,
|
|
21309
|
+
merge_recommendation: changeReceiptResult && resultStatus ? stringValue7(result.verdict) : mergeRecommendation,
|
|
20924
21310
|
checkpoint_summary: checkpointSummary,
|
|
20925
21311
|
public_state: publicState,
|
|
20926
|
-
passed_checks: profileChecks?.passed ?? nestedChecks.passed,
|
|
20927
|
-
failed_checks: profileChecks?.failed ?? nestedChecks.failed,
|
|
21312
|
+
passed_checks: changeChecks?.passed ?? profileChecks?.passed ?? nestedChecks.passed,
|
|
21313
|
+
failed_checks: changeChecks?.failed ?? profileChecks?.failed ?? nestedChecks.failed,
|
|
20928
21314
|
pages,
|
|
20929
21315
|
artifacts,
|
|
20930
21316
|
primary_image: selectPrimaryImage(artifacts)
|
|
@@ -20937,7 +21323,7 @@ function formatDuration(ms) {
|
|
|
20937
21323
|
const remainder = seconds % 60;
|
|
20938
21324
|
return minutes > 0 ? `${minutes}m${String(remainder).padStart(2, "0")}s` : `${seconds}s`;
|
|
20939
21325
|
}
|
|
20940
|
-
function
|
|
21326
|
+
function markdownLink2(label, url) {
|
|
20941
21327
|
return `[${label.replace(/\]/g, "\\]")}](${url})`;
|
|
20942
21328
|
}
|
|
20943
21329
|
function resultLabel(summary) {
|
|
@@ -21012,10 +21398,10 @@ function buildRiddleProofPrCommentMarkdown(input) {
|
|
|
21012
21398
|
if (summary.proof_decision) lines.push(`**Proof decision:** \`${summary.proof_decision}\``);
|
|
21013
21399
|
if (shouldRenderMergeRecommendation(summary)) lines.push(`**Merge recommendation:** ${summary.merge_recommendation}`);
|
|
21014
21400
|
if (summary.checkpoint_summary) lines.push(`**Checkpoints:** ${checkpointSummaryLine(summary.checkpoint_summary)}`);
|
|
21015
|
-
if (summary.proof_url) lines.push(`**Proof URL:** ${
|
|
21401
|
+
if (summary.proof_url) lines.push(`**Proof URL:** ${markdownLink2(summary.proof_url, summary.proof_url)}`);
|
|
21016
21402
|
if (summary.preview_id || summary.preview_url) {
|
|
21017
21403
|
const previewLabel = summary.preview_id ? `\`${summary.preview_id}\`` : "preview";
|
|
21018
|
-
lines.push(`**Preview:** ${summary.preview_url ?
|
|
21404
|
+
lines.push(`**Preview:** ${summary.preview_url ? markdownLink2(previewLabel, summary.preview_url) : previewLabel}`);
|
|
21019
21405
|
}
|
|
21020
21406
|
if (summary.preview_publish_recovered) {
|
|
21021
21407
|
const detail = summary.preview_publish_error ? `: ${summary.preview_publish_error}` : "";
|
|
@@ -21040,7 +21426,7 @@ function buildRiddleProofPrCommentMarkdown(input) {
|
|
|
21040
21426
|
if (linkedArtifacts.length) {
|
|
21041
21427
|
lines.push("### Artifacts");
|
|
21042
21428
|
for (const artifact of linkedArtifacts) {
|
|
21043
|
-
lines.push(`- ${
|
|
21429
|
+
lines.push(`- ${markdownLink2(artifact.name, artifact.url)}`);
|
|
21044
21430
|
}
|
|
21045
21431
|
if (summary.artifacts.length - (summary.primary_image ? 1 : 0) > linkedArtifacts.length) {
|
|
21046
21432
|
lines.push(`- ${summary.artifacts.length - (summary.primary_image ? 1 : 0) - linkedArtifacts.length} more artifact(s) omitted`);
|
|
@@ -21069,6 +21455,7 @@ function buildRiddleProofPrCommentMarkdown(input) {
|
|
|
21069
21455
|
RIDDLE_PROOF_BASIC_GAMEPLAY_VERSION,
|
|
21070
21456
|
RIDDLE_PROOF_CAPTURE_DIAGNOSTIC_VERSION,
|
|
21071
21457
|
RIDDLE_PROOF_CHANGE_CONTRACT_VERSION,
|
|
21458
|
+
RIDDLE_PROOF_CHANGE_RECEIPT_VERSION,
|
|
21072
21459
|
RIDDLE_PROOF_CHANGE_RESULT_VERSION,
|
|
21073
21460
|
RIDDLE_PROOF_CHECKPOINT_PACKET_VERSION,
|
|
21074
21461
|
RIDDLE_PROOF_CHECKPOINT_RESPONSE_VERSION,
|
|
@@ -21134,6 +21521,7 @@ function buildRiddleProofPrCommentMarkdown(input) {
|
|
|
21134
21521
|
createLocalAgentAdapter,
|
|
21135
21522
|
createLocalAgentJsonRunner,
|
|
21136
21523
|
createRiddleApiClient,
|
|
21524
|
+
createRiddleProofChangeReceipt,
|
|
21137
21525
|
createRiddleProofProfileConfigurationError,
|
|
21138
21526
|
createRiddleProofProfileEnvironmentBlockedResult,
|
|
21139
21527
|
createRiddleProofProfileInsufficientResult,
|
|
@@ -21179,6 +21567,8 @@ function buildRiddleProofPrCommentMarkdown(input) {
|
|
|
21179
21567
|
resolveRiddleProofProfileRouteUrl,
|
|
21180
21568
|
resolveRiddleProofProfileTargetUrl,
|
|
21181
21569
|
resolveRiddleProofProfileTimeoutSec,
|
|
21570
|
+
riddleProofChangeReceiptHtml,
|
|
21571
|
+
riddleProofChangeReceiptMarkdown,
|
|
21182
21572
|
riddleProofPublicStateAllowsClaim,
|
|
21183
21573
|
riddleProofPublicStateAllowsMergeRecommendation,
|
|
21184
21574
|
riddleProofPublicStateMergeRecommendation,
|
package/dist/index.d.cts
CHANGED
|
@@ -13,6 +13,6 @@ export { AssessPlayabilityOptions, RIDDLE_PROOF_PLAYABILITY_ASSESSMENT_VERSION,
|
|
|
13
13
|
export { AssessBasicGameplayOptions, AttachBasicGameplayArtifactOptions, BASIC_GAMEPLAY_ACTION_TYPES, BASIC_GAMEPLAY_PROGRESS_CHECK_TYPES, BasicGameplayActionResult, BasicGameplayActionType, BasicGameplayArtifactResolution, BasicGameplayAssessmentSummary, BasicGameplayBoundsOffender, BasicGameplayCanvasState, BasicGameplayCatchRecord, BasicGameplayChangeSummary, BasicGameplayFailureCode, BasicGameplayFixReference, BasicGameplayMetric, BasicGameplayMobileEvidence, BasicGameplayProgressCheckType, BasicGameplayProgressionCheck, BasicGameplayProofArtifact, BasicGameplayResponsiveViewportEvidence, BasicGameplayRouteReference, BasicGameplaySnapshot, BasicGameplaySuiteFailure, BasicGameplayWarningCode, CreateBasicGameplayCatchSummaryInput, RIDDLE_PROOF_BASIC_GAMEPLAY_ASSESSMENT_VERSION, RIDDLE_PROOF_BASIC_GAMEPLAY_CATCH_VERSION, RIDDLE_PROOF_BASIC_GAMEPLAY_VERSION, RiddleProofBasicGameplayAssessment, RiddleProofBasicGameplayCatchSummary, RiddleProofBasicGameplayEvidence, RiddleProofBasicGameplayRouteAssessment, RiddleProofBasicGameplayRouteEvidence, assessBasicGameplayEvidence, assessBasicGameplayProgressionCheck, assessBasicGameplayProgressionChecks, assessBasicGameplayRoute, attachBasicGameplayArtifactScreenshotHashes, augmentBasicGameplayAssessmentWithProgressionChecks, compactBasicGameplayText, createBasicGameplayCatchRecords, createBasicGameplayCatchSummary, extractBasicGameplayEvidence, resolveBasicGameplayProgressionCheckWithArtifactScreenshots, sanitizeBasicGameplayJsonString } from './basic-gameplay.cjs';
|
|
14
14
|
export { NormalizeRiddleProofProfileOptions, RIDDLE_PROOF_HOSTED_PROFILE_ARTIFACTS, RIDDLE_PROOF_PROFILE_CHECK_TYPES, RIDDLE_PROOF_PROFILE_EVIDENCE_VERSION, RIDDLE_PROOF_PROFILE_NETWORK_ABORT_ERROR_CODES, RIDDLE_PROOF_PROFILE_RESULT_VERSION, RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES, RIDDLE_PROOF_PROFILE_STATUSES, RIDDLE_PROOF_PROFILE_VERSION, RiddleProofArtifactBodyAssertionInput, RiddleProofArtifactBodyAssertionResult, RiddleProofProfile, RiddleProofProfileArtifactCompleteness, RiddleProofProfileArtifactRef, RiddleProofProfileBaselinePolicy, RiddleProofProfileBoundsOffender, RiddleProofProfileCheck, RiddleProofProfileCheckResult, RiddleProofProfileCheckType, RiddleProofProfileEvidence, RiddleProofProfileFailureAction, RiddleProofProfileHttpStatusBodyJsonAssertion, RiddleProofProfileHttpStatusBodyJsonAssertionResult, RiddleProofProfileHttpStatusPreflightCheckResult, RiddleProofProfileHttpStatusPreflightFetch, RiddleProofProfileHttpStatusPreflightFetchResponse, RiddleProofProfileHttpStatusPreflightOptions, RiddleProofProfileHttpStatusPreflightResult, RiddleProofProfileJsonValueType, RiddleProofProfileNetworkAbortErrorCode, RiddleProofProfileNetworkMock, RiddleProofProfileNetworkMockResponse, RiddleProofProfileResult, RiddleProofProfileReturnSummaryField, RiddleProofProfileRouteEvidence, RiddleProofProfileRouteInventoryRoute, RiddleProofProfileRunner, RiddleProofProfileRunnerArtifactPreflight, RiddleProofProfileSetupAction, RiddleProofProfileSetupActionType, RiddleProofProfileStatus, RiddleProofProfileTarget, RiddleProofProfileViewport, RiddleProofProfileViewportEvidence, applyRiddleProofProfileArtifactCompleteness, assessRiddleProofProfileArtifactCompleteness, assessRiddleProofProfileEvidence, buildRiddleProofProfileScript, collectRiddleProfileArtifactRefs, collectRiddleProofProfileWarnings, createRiddleProofProfileConfigurationError, createRiddleProofProfileEnvironmentBlockedResult, createRiddleProofProfileInsufficientResult, deriveRiddleProofArtifactBodyAssertions, extractRiddleProofProfileResult, normalizeRiddleProofProfile, preflightRiddleProofProfileHttpStatusChecks, preflightRiddleProofProfileRunnerArtifacts, profileStatusExitCode, resolveRiddleProofProfileRouteUrl, resolveRiddleProofProfileTargetUrl, resolveRiddleProofProfileTimeoutSec, slugifyRiddleProofProfileName, summarizeRiddleProofProfileResult } from './profile.cjs';
|
|
15
15
|
export { RIDDLE_PROOF_PROFILE_SUGGESTIONS_VERSION, RiddleProofProfileChangedTextInput, RiddleProofProfileSuggestion, RiddleProofProfileSuggestionInput, RiddleProofProfileSuggestionsResult, suggestRiddleProofProfileChecks } from './profile-suggestions.cjs';
|
|
16
|
-
export { AssessRiddleProofChangeInput, RIDDLE_PROOF_CHANGE_CONTRACT_VERSION, RIDDLE_PROOF_CHANGE_RESULT_VERSION, RiddleProofChangeContract, RiddleProofChangeDelta, RiddleProofChangeDeltaResult, RiddleProofChangeDeltaStatus, RiddleProofChangeGroupContract, RiddleProofChangeGroupResult, RiddleProofChangeProfileCheckStatus, RiddleProofChangeResult, RiddleProofChangeSide, RiddleProofChangeStatus, RiddleProofCheckStatusTransitionDelta, RiddleProofProfileStatusTransitionDelta, assessRiddleProofChange } from './change-proof.cjs';
|
|
16
|
+
export { AssessRiddleProofChangeInput, CreateRiddleProofChangeReceiptInput, RIDDLE_PROOF_CHANGE_CONTRACT_VERSION, RIDDLE_PROOF_CHANGE_RECEIPT_VERSION, RIDDLE_PROOF_CHANGE_RESULT_VERSION, RiddleProofChangeContract, RiddleProofChangeDelta, RiddleProofChangeDeltaResult, RiddleProofChangeDeltaStatus, RiddleProofChangeGroupContract, RiddleProofChangeGroupResult, RiddleProofChangeProfileCheckStatus, RiddleProofChangeReceipt, RiddleProofChangeReceiptArtifact, RiddleProofChangeReceiptArtifactKind, RiddleProofChangeReceiptCheckCounts, RiddleProofChangeReceiptDelta, RiddleProofChangeReceiptSide, RiddleProofChangeReceiptVerdict, RiddleProofChangeResult, RiddleProofChangeSide, RiddleProofChangeStatus, RiddleProofCheckStatusTransitionDelta, RiddleProofProfileStatusTransitionDelta, assessRiddleProofChange, createRiddleProofChangeReceipt, riddleProofChangeReceiptHtml, riddleProofChangeReceiptMarkdown } from './change-proof.cjs';
|
|
17
17
|
export { DEFAULT_RIDDLE_API_BASE_URL, DEFAULT_RIDDLE_API_KEY_FILE, RIDDLE_UNSUBMITTED_WAKE_HINT, RiddleApiError, RiddleApiKeySource, RiddleBalanceResult, RiddleClientConfig, RiddleFetch, RiddlePollJobOptions, RiddlePollJobResult, RiddlePollProgressSnapshot, RiddlePollSummary, RiddlePreviewDeployProgressSnapshot, RiddlePreviewDeployResult, RiddlePreviewDeployStage, RiddlePreviewFramework, RiddleRunScriptInput, RiddleServerPreviewInput, RiddleServerPreviewResult, collectRiddlePreviewDeployWarnings, createRiddleApiClient, deployRiddlePreview, deployRiddleStaticPreview, getRiddleBalance, isTerminalRiddleJobStatus, parseRiddleViewport, pollRiddleJob, resolveRiddleApiKey, resolveRiddleApiKeySource, riddleRequestJson, runRiddleScript, runRiddleServerPreview } from './riddle-client.cjs';
|
|
18
18
|
export { RIDDLE_PROOF_PR_COMMENT_MARKER, RiddleProofPrCommentArtifact, RiddleProofPrCommentArtifactKind, RiddleProofPrCommentCheckpointSummary, RiddleProofPrCommentInput, RiddleProofPrCommentPageSummary, RiddleProofPrCommentSummary, buildRiddleProofPrCommentMarkdown, summarizeRiddleProofPrComment } from './pr-comment.cjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -13,6 +13,6 @@ export { AssessPlayabilityOptions, RIDDLE_PROOF_PLAYABILITY_ASSESSMENT_VERSION,
|
|
|
13
13
|
export { AssessBasicGameplayOptions, AttachBasicGameplayArtifactOptions, BASIC_GAMEPLAY_ACTION_TYPES, BASIC_GAMEPLAY_PROGRESS_CHECK_TYPES, BasicGameplayActionResult, BasicGameplayActionType, BasicGameplayArtifactResolution, BasicGameplayAssessmentSummary, BasicGameplayBoundsOffender, BasicGameplayCanvasState, BasicGameplayCatchRecord, BasicGameplayChangeSummary, BasicGameplayFailureCode, BasicGameplayFixReference, BasicGameplayMetric, BasicGameplayMobileEvidence, BasicGameplayProgressCheckType, BasicGameplayProgressionCheck, BasicGameplayProofArtifact, BasicGameplayResponsiveViewportEvidence, BasicGameplayRouteReference, BasicGameplaySnapshot, BasicGameplaySuiteFailure, BasicGameplayWarningCode, CreateBasicGameplayCatchSummaryInput, RIDDLE_PROOF_BASIC_GAMEPLAY_ASSESSMENT_VERSION, RIDDLE_PROOF_BASIC_GAMEPLAY_CATCH_VERSION, RIDDLE_PROOF_BASIC_GAMEPLAY_VERSION, RiddleProofBasicGameplayAssessment, RiddleProofBasicGameplayCatchSummary, RiddleProofBasicGameplayEvidence, RiddleProofBasicGameplayRouteAssessment, RiddleProofBasicGameplayRouteEvidence, assessBasicGameplayEvidence, assessBasicGameplayProgressionCheck, assessBasicGameplayProgressionChecks, assessBasicGameplayRoute, attachBasicGameplayArtifactScreenshotHashes, augmentBasicGameplayAssessmentWithProgressionChecks, compactBasicGameplayText, createBasicGameplayCatchRecords, createBasicGameplayCatchSummary, extractBasicGameplayEvidence, resolveBasicGameplayProgressionCheckWithArtifactScreenshots, sanitizeBasicGameplayJsonString } from './basic-gameplay.js';
|
|
14
14
|
export { NormalizeRiddleProofProfileOptions, RIDDLE_PROOF_HOSTED_PROFILE_ARTIFACTS, RIDDLE_PROOF_PROFILE_CHECK_TYPES, RIDDLE_PROOF_PROFILE_EVIDENCE_VERSION, RIDDLE_PROOF_PROFILE_NETWORK_ABORT_ERROR_CODES, RIDDLE_PROOF_PROFILE_RESULT_VERSION, RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES, RIDDLE_PROOF_PROFILE_STATUSES, RIDDLE_PROOF_PROFILE_VERSION, RiddleProofArtifactBodyAssertionInput, RiddleProofArtifactBodyAssertionResult, RiddleProofProfile, RiddleProofProfileArtifactCompleteness, RiddleProofProfileArtifactRef, RiddleProofProfileBaselinePolicy, RiddleProofProfileBoundsOffender, RiddleProofProfileCheck, RiddleProofProfileCheckResult, RiddleProofProfileCheckType, RiddleProofProfileEvidence, RiddleProofProfileFailureAction, RiddleProofProfileHttpStatusBodyJsonAssertion, RiddleProofProfileHttpStatusBodyJsonAssertionResult, RiddleProofProfileHttpStatusPreflightCheckResult, RiddleProofProfileHttpStatusPreflightFetch, RiddleProofProfileHttpStatusPreflightFetchResponse, RiddleProofProfileHttpStatusPreflightOptions, RiddleProofProfileHttpStatusPreflightResult, RiddleProofProfileJsonValueType, RiddleProofProfileNetworkAbortErrorCode, RiddleProofProfileNetworkMock, RiddleProofProfileNetworkMockResponse, RiddleProofProfileResult, RiddleProofProfileReturnSummaryField, RiddleProofProfileRouteEvidence, RiddleProofProfileRouteInventoryRoute, RiddleProofProfileRunner, RiddleProofProfileRunnerArtifactPreflight, RiddleProofProfileSetupAction, RiddleProofProfileSetupActionType, RiddleProofProfileStatus, RiddleProofProfileTarget, RiddleProofProfileViewport, RiddleProofProfileViewportEvidence, applyRiddleProofProfileArtifactCompleteness, assessRiddleProofProfileArtifactCompleteness, assessRiddleProofProfileEvidence, buildRiddleProofProfileScript, collectRiddleProfileArtifactRefs, collectRiddleProofProfileWarnings, createRiddleProofProfileConfigurationError, createRiddleProofProfileEnvironmentBlockedResult, createRiddleProofProfileInsufficientResult, deriveRiddleProofArtifactBodyAssertions, extractRiddleProofProfileResult, normalizeRiddleProofProfile, preflightRiddleProofProfileHttpStatusChecks, preflightRiddleProofProfileRunnerArtifacts, profileStatusExitCode, resolveRiddleProofProfileRouteUrl, resolveRiddleProofProfileTargetUrl, resolveRiddleProofProfileTimeoutSec, slugifyRiddleProofProfileName, summarizeRiddleProofProfileResult } from './profile.js';
|
|
15
15
|
export { RIDDLE_PROOF_PROFILE_SUGGESTIONS_VERSION, RiddleProofProfileChangedTextInput, RiddleProofProfileSuggestion, RiddleProofProfileSuggestionInput, RiddleProofProfileSuggestionsResult, suggestRiddleProofProfileChecks } from './profile-suggestions.js';
|
|
16
|
-
export { AssessRiddleProofChangeInput, RIDDLE_PROOF_CHANGE_CONTRACT_VERSION, RIDDLE_PROOF_CHANGE_RESULT_VERSION, RiddleProofChangeContract, RiddleProofChangeDelta, RiddleProofChangeDeltaResult, RiddleProofChangeDeltaStatus, RiddleProofChangeGroupContract, RiddleProofChangeGroupResult, RiddleProofChangeProfileCheckStatus, RiddleProofChangeResult, RiddleProofChangeSide, RiddleProofChangeStatus, RiddleProofCheckStatusTransitionDelta, RiddleProofProfileStatusTransitionDelta, assessRiddleProofChange } from './change-proof.js';
|
|
16
|
+
export { AssessRiddleProofChangeInput, CreateRiddleProofChangeReceiptInput, RIDDLE_PROOF_CHANGE_CONTRACT_VERSION, RIDDLE_PROOF_CHANGE_RECEIPT_VERSION, RIDDLE_PROOF_CHANGE_RESULT_VERSION, RiddleProofChangeContract, RiddleProofChangeDelta, RiddleProofChangeDeltaResult, RiddleProofChangeDeltaStatus, RiddleProofChangeGroupContract, RiddleProofChangeGroupResult, RiddleProofChangeProfileCheckStatus, RiddleProofChangeReceipt, RiddleProofChangeReceiptArtifact, RiddleProofChangeReceiptArtifactKind, RiddleProofChangeReceiptCheckCounts, RiddleProofChangeReceiptDelta, RiddleProofChangeReceiptSide, RiddleProofChangeReceiptVerdict, RiddleProofChangeResult, RiddleProofChangeSide, RiddleProofChangeStatus, RiddleProofCheckStatusTransitionDelta, RiddleProofProfileStatusTransitionDelta, assessRiddleProofChange, createRiddleProofChangeReceipt, riddleProofChangeReceiptHtml, riddleProofChangeReceiptMarkdown } from './change-proof.js';
|
|
17
17
|
export { DEFAULT_RIDDLE_API_BASE_URL, DEFAULT_RIDDLE_API_KEY_FILE, RIDDLE_UNSUBMITTED_WAKE_HINT, RiddleApiError, RiddleApiKeySource, RiddleBalanceResult, RiddleClientConfig, RiddleFetch, RiddlePollJobOptions, RiddlePollJobResult, RiddlePollProgressSnapshot, RiddlePollSummary, RiddlePreviewDeployProgressSnapshot, RiddlePreviewDeployResult, RiddlePreviewDeployStage, RiddlePreviewFramework, RiddleRunScriptInput, RiddleServerPreviewInput, RiddleServerPreviewResult, collectRiddlePreviewDeployWarnings, createRiddleApiClient, deployRiddlePreview, deployRiddleStaticPreview, getRiddleBalance, isTerminalRiddleJobStatus, parseRiddleViewport, pollRiddleJob, resolveRiddleApiKey, resolveRiddleApiKeySource, riddleRequestJson, runRiddleScript, runRiddleServerPreview } from './riddle-client.js';
|
|
18
18
|
export { RIDDLE_PROOF_PR_COMMENT_MARKER, RiddleProofPrCommentArtifact, RiddleProofPrCommentArtifactKind, RiddleProofPrCommentCheckpointSummary, RiddleProofPrCommentInput, RiddleProofPrCommentPageSummary, RiddleProofPrCommentSummary, buildRiddleProofPrCommentMarkdown, summarizeRiddleProofPrComment } from './pr-comment.js';
|