@riddledc/riddle-proof 0.8.72 → 0.8.74
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 +34 -0
- package/dist/advanced/index.d.cts +1 -1
- package/dist/advanced/index.d.ts +1 -1
- package/dist/advanced/proof-run-engine.d.cts +1 -1
- package/dist/advanced/proof-run-engine.d.ts +1 -1
- package/dist/change-proof.cjs +193 -0
- package/dist/change-proof.d.cts +74 -0
- package/dist/change-proof.d.ts +74 -0
- package/dist/change-proof.js +11 -0
- package/dist/chunk-6S7DZWVC.js +167 -0
- package/dist/{chunk-XIJI62DC.js → chunk-ANUWU3DO.js} +76 -8
- package/dist/cli/index.js +3 -3
- package/dist/cli.cjs +72 -4
- package/dist/cli.js +3 -3
- package/dist/index.cjs +168 -0
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +23 -15
- package/dist/{proof-run-engine-DpChFR5H.d.cts → proof-run-engine-Baiv6l3A.d.cts} +3 -3
- package/dist/{proof-run-engine-BqRoA3Do.d.ts → proof-run-engine-MiKZt9oY.d.ts} +3 -3
- package/dist/proof-run-engine.d.cts +1 -1
- package/dist/proof-run-engine.d.ts +1 -1
- package/examples/neutral-fixture-site/README.md +8 -0
- package/examples/neutral-fixture-site/auth.html +45 -0
- package/examples/neutral-fixture-site/index.html +1 -0
- package/examples/neutral-fixture-site/styles.css +32 -0
- package/examples/profiles/neutral-fixture-auth-session.json +44 -0
- package/examples/story-matrices/riddle-proof-bounded-loop.json +19 -0
- package/examples/story-matrices/riddle-proof-ux-coverage.csv +5 -4
- package/package.json +7 -2
|
@@ -30,6 +30,10 @@ import {
|
|
|
30
30
|
resolveRiddleProofProfileTargetUrl,
|
|
31
31
|
resolveRiddleProofProfileTimeoutSec
|
|
32
32
|
} from "./chunk-GG2D3MFZ.js";
|
|
33
|
+
import {
|
|
34
|
+
createCodexExecAgentAdapter,
|
|
35
|
+
runCodexExecAgentDoctor
|
|
36
|
+
} from "./chunk-KXLEN4SA.js";
|
|
33
37
|
import {
|
|
34
38
|
createDisabledRiddleProofAgentAdapter,
|
|
35
39
|
readRiddleProofRunStatus,
|
|
@@ -38,10 +42,6 @@ import {
|
|
|
38
42
|
import {
|
|
39
43
|
createCheckpointResponseTemplate
|
|
40
44
|
} from "./chunk-DYE3URAQ.js";
|
|
41
|
-
import {
|
|
42
|
-
createCodexExecAgentAdapter,
|
|
43
|
-
runCodexExecAgentDoctor
|
|
44
|
-
} from "./chunk-KXLEN4SA.js";
|
|
45
45
|
|
|
46
46
|
// src/cli.ts
|
|
47
47
|
import { spawnSync } from "child_process";
|
|
@@ -1259,15 +1259,83 @@ function profileHttpStatusPreflightSummary(result) {
|
|
|
1259
1259
|
return `${lines.join("\n")}
|
|
1260
1260
|
`;
|
|
1261
1261
|
}
|
|
1262
|
+
function profilePlainStatusLabel(status) {
|
|
1263
|
+
if (status === "passed") return "passed";
|
|
1264
|
+
if (status === "product_regression") return "product issue";
|
|
1265
|
+
if (status === "proof_insufficient") return "missing evidence";
|
|
1266
|
+
if (status === "environment_blocked") return "environment blocked";
|
|
1267
|
+
if (status === "configuration_error") return "configuration issue";
|
|
1268
|
+
return "needs review";
|
|
1269
|
+
}
|
|
1270
|
+
function profilePlainCheckSummary(result) {
|
|
1271
|
+
const total = result.checks.length;
|
|
1272
|
+
const passed = result.checks.filter((check) => check.status === "passed").length;
|
|
1273
|
+
const failed = result.checks.filter((check) => check.status === "failed").length;
|
|
1274
|
+
const review = result.checks.filter((check) => check.status === "needs_human_review").length;
|
|
1275
|
+
const skipped = result.checks.filter((check) => check.status === "skipped").length;
|
|
1276
|
+
const evidenceViewportNames = (result.evidence?.viewports || []).map((viewport) => cliString(viewport.name)).filter((name) => Boolean(name));
|
|
1277
|
+
const setupViewportNames = evidenceViewportNames.length ? [] : profileSetupSummaryViewports(result).map((viewport) => cliString(viewport.name)).filter((name) => Boolean(name));
|
|
1278
|
+
const viewportNames = evidenceViewportNames.length ? evidenceViewportNames : setupViewportNames;
|
|
1279
|
+
const route = result.route?.requested || result.route?.observed;
|
|
1280
|
+
const countText = total === 1 ? "1 check" : `${total} checks`;
|
|
1281
|
+
const viewportText = viewportNames.length ? ` across ${viewportNames.length} viewport${viewportNames.length === 1 ? "" : "s"} (${viewportNames.join(", ")})` : "";
|
|
1282
|
+
const routeText = route ? ` on ${markdownInlineCode(route, 120)}` : "";
|
|
1283
|
+
const outcomes = [
|
|
1284
|
+
passed ? `${passed} passed` : "",
|
|
1285
|
+
failed ? `${failed} failed` : "",
|
|
1286
|
+
review ? `${review} needs review` : "",
|
|
1287
|
+
skipped ? `${skipped} skipped` : ""
|
|
1288
|
+
].filter(Boolean).join(", ");
|
|
1289
|
+
if (!total) return route ? `No browser checks were recorded for ${markdownInlineCode(route, 120)}.` : "No browser checks were recorded.";
|
|
1290
|
+
return `${countText}${viewportText}${routeText}; ${outcomes || "no completed checks"}.`;
|
|
1291
|
+
}
|
|
1292
|
+
function profileArtifactRefIsScreenshot(artifact) {
|
|
1293
|
+
const kind = cliString(artifact.kind)?.toLowerCase() || "";
|
|
1294
|
+
const contentType = cliString(artifact.content_type)?.toLowerCase() || "";
|
|
1295
|
+
const text = [artifact.name, artifact.url, artifact.path].map((value) => cliString(value)).filter(Boolean).join(" ");
|
|
1296
|
+
return kind === "screenshot" || contentType.startsWith("image/") || /\.(png|jpe?g|webp)(?:$|[?#])/i.test(text);
|
|
1297
|
+
}
|
|
1298
|
+
function profileArtifactDisplay(artifact) {
|
|
1299
|
+
const name = artifact.name || artifact.kind || "artifact";
|
|
1300
|
+
const location = artifact.url || artifact.path;
|
|
1301
|
+
return location ? `${name}: ${location}` : name;
|
|
1302
|
+
}
|
|
1303
|
+
function profilePlainArtifactSummary(result) {
|
|
1304
|
+
const hostedArtifacts = result.artifacts.riddle_artifacts || [];
|
|
1305
|
+
const hostedScreenshot = hostedArtifacts.find(profileArtifactRefIsScreenshot);
|
|
1306
|
+
if (hostedScreenshot) return `Hosted screenshot ${profileArtifactDisplay(hostedScreenshot)}`;
|
|
1307
|
+
const hostedProof = hostedArtifacts.find((artifact) => {
|
|
1308
|
+
const name = (artifact.name || artifact.url || artifact.path || "").toLowerCase();
|
|
1309
|
+
return name.includes("proof.json");
|
|
1310
|
+
});
|
|
1311
|
+
if (hostedProof) return `Hosted proof JSON ${profileArtifactDisplay(hostedProof)}`;
|
|
1312
|
+
if (result.artifacts.screenshots?.length) return `Screenshot ${markdownInlineCode(result.artifacts.screenshots[0])}`;
|
|
1313
|
+
if (result.artifacts.proof_json) return `Proof JSON ${markdownInlineCode(result.artifacts.proof_json)}`;
|
|
1314
|
+
return "profile-result.json and summary.md";
|
|
1315
|
+
}
|
|
1316
|
+
function profilePlainNextStep(result) {
|
|
1317
|
+
if (result.status === "passed") return "Use this packet as scoped browser evidence, then review the linked artifacts before merge.";
|
|
1318
|
+
if (result.status === "product_regression") return "Fix the failed product check(s), then rerun this profile.";
|
|
1319
|
+
if (result.status === "proof_insufficient") return "Adjust the profile or runner so the required evidence artifacts are produced, then rerun.";
|
|
1320
|
+
if (result.status === "environment_blocked") return "Fix the runner or environment blocker, then rerun.";
|
|
1321
|
+
if (result.status === "configuration_error") return result.error ? `Fix the profile setup: ${result.error}` : "Fix the profile setup, then rerun.";
|
|
1322
|
+
return "Review the artifacts manually, then refine the profile if the verdict should be automated.";
|
|
1323
|
+
}
|
|
1262
1324
|
function profileResultMarkdown(result) {
|
|
1263
1325
|
const lines = [
|
|
1264
1326
|
`# Riddle Proof Profile: ${result.profile_name}`,
|
|
1265
1327
|
"",
|
|
1266
|
-
`
|
|
1267
|
-
`
|
|
1268
|
-
`
|
|
1328
|
+
`Result: ${profilePlainStatusLabel(result.status)}`,
|
|
1329
|
+
`What was checked: ${profilePlainCheckSummary(result)}`,
|
|
1330
|
+
`Artifact that proves it: ${profilePlainArtifactSummary(result)}`,
|
|
1331
|
+
`What to do next: ${profilePlainNextStep(result)}`,
|
|
1269
1332
|
"",
|
|
1270
|
-
|
|
1333
|
+
"## Details",
|
|
1334
|
+
"",
|
|
1335
|
+
`- Status: ${result.status}`,
|
|
1336
|
+
`- Runner: ${result.runner}`,
|
|
1337
|
+
`- Captured: ${result.captured_at}`,
|
|
1338
|
+
`- Summary: ${result.summary}`,
|
|
1271
1339
|
""
|
|
1272
1340
|
];
|
|
1273
1341
|
if (Array.isArray(result.warnings) && result.warnings.length) {
|
package/dist/cli/index.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import "../chunk-
|
|
1
|
+
import "../chunk-ANUWU3DO.js";
|
|
2
2
|
import "../chunk-B2DP2LET.js";
|
|
3
|
+
import "../chunk-JFQXAJH2.js";
|
|
3
4
|
import "../chunk-CWRIXP5H.js";
|
|
4
5
|
import "../chunk-UE4I7RTI.js";
|
|
5
6
|
import "../chunk-GG2D3MFZ.js";
|
|
7
|
+
import "../chunk-KXLEN4SA.js";
|
|
6
8
|
import "../chunk-WLUMLHII.js";
|
|
7
9
|
import "../chunk-CGJX7LJO.js";
|
|
8
10
|
import "../chunk-UTCL7FEZ.js";
|
|
9
11
|
import "../chunk-EKZXU6MU.js";
|
|
10
12
|
import "../chunk-DYE3URAQ.js";
|
|
11
|
-
import "../chunk-JFQXAJH2.js";
|
|
12
|
-
import "../chunk-KXLEN4SA.js";
|
|
13
13
|
import "../chunk-NKHZASNQ.js";
|
|
14
14
|
import "../chunk-ZAR7BWMN.js";
|
|
15
15
|
import "../chunk-MLKGABMK.js";
|
package/dist/cli.cjs
CHANGED
|
@@ -19821,15 +19821,83 @@ function profileHttpStatusPreflightSummary(result) {
|
|
|
19821
19821
|
return `${lines.join("\n")}
|
|
19822
19822
|
`;
|
|
19823
19823
|
}
|
|
19824
|
+
function profilePlainStatusLabel(status) {
|
|
19825
|
+
if (status === "passed") return "passed";
|
|
19826
|
+
if (status === "product_regression") return "product issue";
|
|
19827
|
+
if (status === "proof_insufficient") return "missing evidence";
|
|
19828
|
+
if (status === "environment_blocked") return "environment blocked";
|
|
19829
|
+
if (status === "configuration_error") return "configuration issue";
|
|
19830
|
+
return "needs review";
|
|
19831
|
+
}
|
|
19832
|
+
function profilePlainCheckSummary(result) {
|
|
19833
|
+
const total = result.checks.length;
|
|
19834
|
+
const passed = result.checks.filter((check) => check.status === "passed").length;
|
|
19835
|
+
const failed = result.checks.filter((check) => check.status === "failed").length;
|
|
19836
|
+
const review = result.checks.filter((check) => check.status === "needs_human_review").length;
|
|
19837
|
+
const skipped = result.checks.filter((check) => check.status === "skipped").length;
|
|
19838
|
+
const evidenceViewportNames = (result.evidence?.viewports || []).map((viewport) => cliString(viewport.name)).filter((name) => Boolean(name));
|
|
19839
|
+
const setupViewportNames = evidenceViewportNames.length ? [] : profileSetupSummaryViewports(result).map((viewport) => cliString(viewport.name)).filter((name) => Boolean(name));
|
|
19840
|
+
const viewportNames = evidenceViewportNames.length ? evidenceViewportNames : setupViewportNames;
|
|
19841
|
+
const route = result.route?.requested || result.route?.observed;
|
|
19842
|
+
const countText = total === 1 ? "1 check" : `${total} checks`;
|
|
19843
|
+
const viewportText = viewportNames.length ? ` across ${viewportNames.length} viewport${viewportNames.length === 1 ? "" : "s"} (${viewportNames.join(", ")})` : "";
|
|
19844
|
+
const routeText = route ? ` on ${markdownInlineCode(route, 120)}` : "";
|
|
19845
|
+
const outcomes = [
|
|
19846
|
+
passed ? `${passed} passed` : "",
|
|
19847
|
+
failed ? `${failed} failed` : "",
|
|
19848
|
+
review ? `${review} needs review` : "",
|
|
19849
|
+
skipped ? `${skipped} skipped` : ""
|
|
19850
|
+
].filter(Boolean).join(", ");
|
|
19851
|
+
if (!total) return route ? `No browser checks were recorded for ${markdownInlineCode(route, 120)}.` : "No browser checks were recorded.";
|
|
19852
|
+
return `${countText}${viewportText}${routeText}; ${outcomes || "no completed checks"}.`;
|
|
19853
|
+
}
|
|
19854
|
+
function profileArtifactRefIsScreenshot2(artifact) {
|
|
19855
|
+
const kind = cliString(artifact.kind)?.toLowerCase() || "";
|
|
19856
|
+
const contentType = cliString(artifact.content_type)?.toLowerCase() || "";
|
|
19857
|
+
const text = [artifact.name, artifact.url, artifact.path].map((value) => cliString(value)).filter(Boolean).join(" ");
|
|
19858
|
+
return kind === "screenshot" || contentType.startsWith("image/") || /\.(png|jpe?g|webp)(?:$|[?#])/i.test(text);
|
|
19859
|
+
}
|
|
19860
|
+
function profileArtifactDisplay(artifact) {
|
|
19861
|
+
const name = artifact.name || artifact.kind || "artifact";
|
|
19862
|
+
const location = artifact.url || artifact.path;
|
|
19863
|
+
return location ? `${name}: ${location}` : name;
|
|
19864
|
+
}
|
|
19865
|
+
function profilePlainArtifactSummary(result) {
|
|
19866
|
+
const hostedArtifacts = result.artifacts.riddle_artifacts || [];
|
|
19867
|
+
const hostedScreenshot = hostedArtifacts.find(profileArtifactRefIsScreenshot2);
|
|
19868
|
+
if (hostedScreenshot) return `Hosted screenshot ${profileArtifactDisplay(hostedScreenshot)}`;
|
|
19869
|
+
const hostedProof = hostedArtifacts.find((artifact) => {
|
|
19870
|
+
const name = (artifact.name || artifact.url || artifact.path || "").toLowerCase();
|
|
19871
|
+
return name.includes("proof.json");
|
|
19872
|
+
});
|
|
19873
|
+
if (hostedProof) return `Hosted proof JSON ${profileArtifactDisplay(hostedProof)}`;
|
|
19874
|
+
if (result.artifacts.screenshots?.length) return `Screenshot ${markdownInlineCode(result.artifacts.screenshots[0])}`;
|
|
19875
|
+
if (result.artifacts.proof_json) return `Proof JSON ${markdownInlineCode(result.artifacts.proof_json)}`;
|
|
19876
|
+
return "profile-result.json and summary.md";
|
|
19877
|
+
}
|
|
19878
|
+
function profilePlainNextStep(result) {
|
|
19879
|
+
if (result.status === "passed") return "Use this packet as scoped browser evidence, then review the linked artifacts before merge.";
|
|
19880
|
+
if (result.status === "product_regression") return "Fix the failed product check(s), then rerun this profile.";
|
|
19881
|
+
if (result.status === "proof_insufficient") return "Adjust the profile or runner so the required evidence artifacts are produced, then rerun.";
|
|
19882
|
+
if (result.status === "environment_blocked") return "Fix the runner or environment blocker, then rerun.";
|
|
19883
|
+
if (result.status === "configuration_error") return result.error ? `Fix the profile setup: ${result.error}` : "Fix the profile setup, then rerun.";
|
|
19884
|
+
return "Review the artifacts manually, then refine the profile if the verdict should be automated.";
|
|
19885
|
+
}
|
|
19824
19886
|
function profileResultMarkdown(result) {
|
|
19825
19887
|
const lines = [
|
|
19826
19888
|
`# Riddle Proof Profile: ${result.profile_name}`,
|
|
19827
19889
|
"",
|
|
19828
|
-
`
|
|
19829
|
-
`
|
|
19830
|
-
`
|
|
19890
|
+
`Result: ${profilePlainStatusLabel(result.status)}`,
|
|
19891
|
+
`What was checked: ${profilePlainCheckSummary(result)}`,
|
|
19892
|
+
`Artifact that proves it: ${profilePlainArtifactSummary(result)}`,
|
|
19893
|
+
`What to do next: ${profilePlainNextStep(result)}`,
|
|
19831
19894
|
"",
|
|
19832
|
-
|
|
19895
|
+
"## Details",
|
|
19896
|
+
"",
|
|
19897
|
+
`- Status: ${result.status}`,
|
|
19898
|
+
`- Runner: ${result.runner}`,
|
|
19899
|
+
`- Captured: ${result.captured_at}`,
|
|
19900
|
+
`- Summary: ${result.summary}`,
|
|
19833
19901
|
""
|
|
19834
19902
|
];
|
|
19835
19903
|
if (Array.isArray(result.warnings) && result.warnings.length) {
|
package/dist/cli.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import "./chunk-
|
|
2
|
+
import "./chunk-ANUWU3DO.js";
|
|
3
3
|
import "./chunk-B2DP2LET.js";
|
|
4
|
+
import "./chunk-JFQXAJH2.js";
|
|
4
5
|
import "./chunk-CWRIXP5H.js";
|
|
5
6
|
import "./chunk-UE4I7RTI.js";
|
|
6
7
|
import "./chunk-GG2D3MFZ.js";
|
|
8
|
+
import "./chunk-KXLEN4SA.js";
|
|
7
9
|
import "./chunk-WLUMLHII.js";
|
|
8
10
|
import "./chunk-CGJX7LJO.js";
|
|
9
11
|
import "./chunk-UTCL7FEZ.js";
|
|
10
12
|
import "./chunk-EKZXU6MU.js";
|
|
11
13
|
import "./chunk-DYE3URAQ.js";
|
|
12
|
-
import "./chunk-JFQXAJH2.js";
|
|
13
|
-
import "./chunk-KXLEN4SA.js";
|
|
14
14
|
import "./chunk-NKHZASNQ.js";
|
|
15
15
|
import "./chunk-ZAR7BWMN.js";
|
|
16
16
|
import "./chunk-MLKGABMK.js";
|
package/dist/index.cjs
CHANGED
|
@@ -3418,6 +3418,8 @@ __export(index_exports, {
|
|
|
3418
3418
|
RIDDLE_PROOF_BASIC_GAMEPLAY_CATCH_VERSION: () => RIDDLE_PROOF_BASIC_GAMEPLAY_CATCH_VERSION,
|
|
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
|
+
RIDDLE_PROOF_CHANGE_CONTRACT_VERSION: () => RIDDLE_PROOF_CHANGE_CONTRACT_VERSION,
|
|
3422
|
+
RIDDLE_PROOF_CHANGE_RESULT_VERSION: () => RIDDLE_PROOF_CHANGE_RESULT_VERSION,
|
|
3421
3423
|
RIDDLE_PROOF_CHECKPOINT_PACKET_VERSION: () => RIDDLE_PROOF_CHECKPOINT_PACKET_VERSION,
|
|
3422
3424
|
RIDDLE_PROOF_CHECKPOINT_RESPONSE_VERSION: () => RIDDLE_PROOF_CHECKPOINT_RESPONSE_VERSION,
|
|
3423
3425
|
RIDDLE_PROOF_HOSTED_PROFILE_ARTIFACTS: () => RIDDLE_PROOF_HOSTED_PROFILE_ARTIFACTS,
|
|
@@ -3450,6 +3452,7 @@ __export(index_exports, {
|
|
|
3450
3452
|
assessBasicGameplayProgressionChecks: () => assessBasicGameplayProgressionChecks,
|
|
3451
3453
|
assessBasicGameplayRoute: () => assessBasicGameplayRoute,
|
|
3452
3454
|
assessPlayabilityEvidence: () => assessPlayabilityEvidence,
|
|
3455
|
+
assessRiddleProofChange: () => assessRiddleProofChange,
|
|
3453
3456
|
assessRiddleProofProfileArtifactCompleteness: () => assessRiddleProofProfileArtifactCompleteness,
|
|
3454
3457
|
assessRiddleProofProfileEvidence: () => assessRiddleProofProfileEvidence,
|
|
3455
3458
|
attachBasicGameplayArtifactScreenshotHashes: () => attachBasicGameplayArtifactScreenshotHashes,
|
|
@@ -19929,6 +19932,168 @@ function suggestRiddleProofProfileChecks(input) {
|
|
|
19929
19932
|
};
|
|
19930
19933
|
}
|
|
19931
19934
|
|
|
19935
|
+
// src/change-proof.ts
|
|
19936
|
+
var RIDDLE_PROOF_CHANGE_CONTRACT_VERSION = "riddle-proof.change-contract.v1";
|
|
19937
|
+
var RIDDLE_PROOF_CHANGE_RESULT_VERSION = "riddle-proof.change-result.v1";
|
|
19938
|
+
var DEFAULT_BEFORE_STATUSES = ["passed", "product_regression"];
|
|
19939
|
+
var DEFAULT_AFTER_STATUSES = ["passed"];
|
|
19940
|
+
var DEFAULT_PROFILE_STATUS_TRANSITION_BEFORE = ["product_regression"];
|
|
19941
|
+
var DEFAULT_PROFILE_STATUS_TRANSITION_AFTER = ["passed"];
|
|
19942
|
+
var DEFAULT_CHECK_STATUS_TRANSITION_BEFORE = ["failed"];
|
|
19943
|
+
var DEFAULT_CHECK_STATUS_TRANSITION_AFTER = ["passed"];
|
|
19944
|
+
function listValue3(value, fallback) {
|
|
19945
|
+
if (Array.isArray(value)) return value;
|
|
19946
|
+
if (value === void 0) return fallback;
|
|
19947
|
+
return [value];
|
|
19948
|
+
}
|
|
19949
|
+
function includesValue(allowed, observed) {
|
|
19950
|
+
return observed !== void 0 && allowed.includes(observed);
|
|
19951
|
+
}
|
|
19952
|
+
function groupResult(side, contract, result) {
|
|
19953
|
+
const fallback = side === "before" ? DEFAULT_BEFORE_STATUSES : DEFAULT_AFTER_STATUSES;
|
|
19954
|
+
const requiredStatus = listValue3(contract?.required_status, fallback);
|
|
19955
|
+
const label = contract?.label || side;
|
|
19956
|
+
if (!result) {
|
|
19957
|
+
return {
|
|
19958
|
+
side,
|
|
19959
|
+
label,
|
|
19960
|
+
ok: false,
|
|
19961
|
+
status: "missing",
|
|
19962
|
+
required_status: requiredStatus,
|
|
19963
|
+
message: `${label} profile result is missing.`
|
|
19964
|
+
};
|
|
19965
|
+
}
|
|
19966
|
+
const ok = includesValue(requiredStatus, result.status);
|
|
19967
|
+
return {
|
|
19968
|
+
side,
|
|
19969
|
+
label,
|
|
19970
|
+
ok,
|
|
19971
|
+
profile_name: result.profile_name,
|
|
19972
|
+
status: result.status,
|
|
19973
|
+
required_status: requiredStatus,
|
|
19974
|
+
summary: result.summary,
|
|
19975
|
+
message: ok ? void 0 : `${label} profile status ${result.status} did not match required status ${requiredStatus.join(", ")}.`
|
|
19976
|
+
};
|
|
19977
|
+
}
|
|
19978
|
+
function findCheck(result, delta) {
|
|
19979
|
+
return result.checks.find((check) => {
|
|
19980
|
+
if (delta.check_label && check.label !== delta.check_label) return false;
|
|
19981
|
+
if (delta.check_type && check.type !== delta.check_type) return false;
|
|
19982
|
+
return Boolean(delta.check_label || delta.check_type);
|
|
19983
|
+
});
|
|
19984
|
+
}
|
|
19985
|
+
function profileStatusTransitionResult(delta, before, after) {
|
|
19986
|
+
const label = delta.label || "profile-status-transition";
|
|
19987
|
+
if (!before || !after) {
|
|
19988
|
+
return {
|
|
19989
|
+
type: delta.type,
|
|
19990
|
+
label,
|
|
19991
|
+
status: "proof_insufficient",
|
|
19992
|
+
before_observed: before?.status,
|
|
19993
|
+
after_observed: after?.status,
|
|
19994
|
+
message: `${label} needs both before and after profile results.`
|
|
19995
|
+
};
|
|
19996
|
+
}
|
|
19997
|
+
const beforeAllowed = listValue3(delta.before_status, DEFAULT_PROFILE_STATUS_TRANSITION_BEFORE);
|
|
19998
|
+
const afterAllowed = listValue3(delta.after_status, DEFAULT_PROFILE_STATUS_TRANSITION_AFTER);
|
|
19999
|
+
const passed = includesValue(beforeAllowed, before.status) && includesValue(afterAllowed, after.status);
|
|
20000
|
+
return {
|
|
20001
|
+
type: delta.type,
|
|
20002
|
+
label,
|
|
20003
|
+
status: passed ? "passed" : "failed",
|
|
20004
|
+
before_observed: before.status,
|
|
20005
|
+
after_observed: after.status,
|
|
20006
|
+
message: passed ? void 0 : `${label} expected before ${beforeAllowed.join(", ")} and after ${afterAllowed.join(", ")}, got ${before.status} -> ${after.status}.`
|
|
20007
|
+
};
|
|
20008
|
+
}
|
|
20009
|
+
function checkStatusTransitionResult(delta, before, after) {
|
|
20010
|
+
const label = delta.label || delta.check_label || delta.check_type || "check-status-transition";
|
|
20011
|
+
if (!delta.check_label && !delta.check_type) {
|
|
20012
|
+
return {
|
|
20013
|
+
type: delta.type,
|
|
20014
|
+
label,
|
|
20015
|
+
status: "configuration_error",
|
|
20016
|
+
message: `${label} needs check_label or check_type.`
|
|
20017
|
+
};
|
|
20018
|
+
}
|
|
20019
|
+
if (!before || !after) {
|
|
20020
|
+
return {
|
|
20021
|
+
type: delta.type,
|
|
20022
|
+
label,
|
|
20023
|
+
status: "proof_insufficient",
|
|
20024
|
+
before_observed: before?.status,
|
|
20025
|
+
after_observed: after?.status,
|
|
20026
|
+
message: `${label} needs both before and after profile results.`
|
|
20027
|
+
};
|
|
20028
|
+
}
|
|
20029
|
+
const beforeCheck = findCheck(before, delta);
|
|
20030
|
+
const afterCheck = findCheck(after, delta);
|
|
20031
|
+
if (!beforeCheck || !afterCheck) {
|
|
20032
|
+
return {
|
|
20033
|
+
type: delta.type,
|
|
20034
|
+
label,
|
|
20035
|
+
status: "proof_insufficient",
|
|
20036
|
+
before_observed: beforeCheck?.status,
|
|
20037
|
+
after_observed: afterCheck?.status,
|
|
20038
|
+
message: `${label} was not present in ${!beforeCheck && !afterCheck ? "before or after" : !beforeCheck ? "before" : "after"} profile checks.`
|
|
20039
|
+
};
|
|
20040
|
+
}
|
|
20041
|
+
const beforeAllowed = listValue3(delta.before_status, DEFAULT_CHECK_STATUS_TRANSITION_BEFORE);
|
|
20042
|
+
const afterAllowed = listValue3(delta.after_status, DEFAULT_CHECK_STATUS_TRANSITION_AFTER);
|
|
20043
|
+
const passed = includesValue(beforeAllowed, beforeCheck.status) && includesValue(afterAllowed, afterCheck.status);
|
|
20044
|
+
return {
|
|
20045
|
+
type: delta.type,
|
|
20046
|
+
label,
|
|
20047
|
+
status: passed ? "passed" : "failed",
|
|
20048
|
+
before_observed: beforeCheck.status,
|
|
20049
|
+
after_observed: afterCheck.status,
|
|
20050
|
+
message: passed ? void 0 : `${label} expected before ${beforeAllowed.join(", ")} and after ${afterAllowed.join(", ")}, got ${beforeCheck.status} -> ${afterCheck.status}.`
|
|
20051
|
+
};
|
|
20052
|
+
}
|
|
20053
|
+
function assessDelta(delta, before, after) {
|
|
20054
|
+
if (delta.type === "profile_status_transition") {
|
|
20055
|
+
return profileStatusTransitionResult(delta, before, after);
|
|
20056
|
+
}
|
|
20057
|
+
return checkStatusTransitionResult(delta, before, after);
|
|
20058
|
+
}
|
|
20059
|
+
function collapsedChangeStatus(groups, deltas) {
|
|
20060
|
+
const groupResults = [groups.before, groups.after];
|
|
20061
|
+
if (groupResults.some((group) => group.status === "environment_blocked")) return "environment_blocked";
|
|
20062
|
+
if (groupResults.some((group) => group.status === "configuration_error")) return "configuration_error";
|
|
20063
|
+
if (deltas.some((delta) => delta.status === "configuration_error")) return "configuration_error";
|
|
20064
|
+
if (groupResults.some((group) => group.status === "needs_human_review")) return "needs_human_review";
|
|
20065
|
+
if (groupResults.some((group) => group.status === "missing" || group.status === "proof_insufficient")) return "proof_insufficient";
|
|
20066
|
+
if (!deltas.length || deltas.some((delta) => delta.status === "proof_insufficient")) return "proof_insufficient";
|
|
20067
|
+
if (groupResults.some((group) => !group.ok)) return "product_regression";
|
|
20068
|
+
if (deltas.some((delta) => delta.status === "failed")) return "product_regression";
|
|
20069
|
+
return "passed";
|
|
20070
|
+
}
|
|
20071
|
+
function changeSummary(name, status, deltas) {
|
|
20072
|
+
if (status === "passed") return `${name} passed ${deltas.length} change delta(s).`;
|
|
20073
|
+
if (status === "environment_blocked") return `${name} could not compare reliable evidence because an environment was blocked.`;
|
|
20074
|
+
if (status === "configuration_error") return `${name} has an invalid change proof contract.`;
|
|
20075
|
+
if (status === "needs_human_review") return `${name} needs human review before the change proof can pass.`;
|
|
20076
|
+
if (status === "proof_insufficient") return `${name} did not produce enough before/after evidence for a change proof.`;
|
|
20077
|
+
return `${name} failed ${deltas.filter((delta) => delta.status === "failed").length} change delta(s).`;
|
|
20078
|
+
}
|
|
20079
|
+
function assessRiddleProofChange(contract, input) {
|
|
20080
|
+
const groups = {
|
|
20081
|
+
before: groupResult("before", contract.before, input.before_result),
|
|
20082
|
+
after: groupResult("after", contract.after, input.after_result)
|
|
20083
|
+
};
|
|
20084
|
+
const deltas = (contract.deltas || []).map((delta) => assessDelta(delta, input.before_result, input.after_result));
|
|
20085
|
+
const status = collapsedChangeStatus(groups, deltas);
|
|
20086
|
+
return {
|
|
20087
|
+
version: RIDDLE_PROOF_CHANGE_RESULT_VERSION,
|
|
20088
|
+
contract_name: contract.name,
|
|
20089
|
+
status,
|
|
20090
|
+
groups,
|
|
20091
|
+
deltas,
|
|
20092
|
+
summary: changeSummary(contract.name, status, deltas),
|
|
20093
|
+
metadata: contract.metadata
|
|
20094
|
+
};
|
|
20095
|
+
}
|
|
20096
|
+
|
|
19932
20097
|
// src/riddle-client.ts
|
|
19933
20098
|
var import_node_child_process4 = require("child_process");
|
|
19934
20099
|
var import_node_fs5 = require("fs");
|
|
@@ -20903,6 +21068,8 @@ function buildRiddleProofPrCommentMarkdown(input) {
|
|
|
20903
21068
|
RIDDLE_PROOF_BASIC_GAMEPLAY_CATCH_VERSION,
|
|
20904
21069
|
RIDDLE_PROOF_BASIC_GAMEPLAY_VERSION,
|
|
20905
21070
|
RIDDLE_PROOF_CAPTURE_DIAGNOSTIC_VERSION,
|
|
21071
|
+
RIDDLE_PROOF_CHANGE_CONTRACT_VERSION,
|
|
21072
|
+
RIDDLE_PROOF_CHANGE_RESULT_VERSION,
|
|
20906
21073
|
RIDDLE_PROOF_CHECKPOINT_PACKET_VERSION,
|
|
20907
21074
|
RIDDLE_PROOF_CHECKPOINT_RESPONSE_VERSION,
|
|
20908
21075
|
RIDDLE_PROOF_HOSTED_PROFILE_ARTIFACTS,
|
|
@@ -20935,6 +21102,7 @@ function buildRiddleProofPrCommentMarkdown(input) {
|
|
|
20935
21102
|
assessBasicGameplayProgressionChecks,
|
|
20936
21103
|
assessBasicGameplayRoute,
|
|
20937
21104
|
assessPlayabilityEvidence,
|
|
21105
|
+
assessRiddleProofChange,
|
|
20938
21106
|
assessRiddleProofProfileArtifactCompleteness,
|
|
20939
21107
|
assessRiddleProofProfileEvidence,
|
|
20940
21108
|
attachBasicGameplayArtifactScreenshotHashes,
|
package/dist/index.d.cts
CHANGED
|
@@ -13,5 +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
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';
|
|
17
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,5 +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
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';
|
|
17
18
|
export { RIDDLE_PROOF_PR_COMMENT_MARKER, RiddleProofPrCommentArtifact, RiddleProofPrCommentArtifactKind, RiddleProofPrCommentCheckpointSummary, RiddleProofPrCommentInput, RiddleProofPrCommentPageSummary, RiddleProofPrCommentSummary, buildRiddleProofPrCommentMarkdown, summarizeRiddleProofPrComment } from './pr-comment.js';
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
RIDDLE_PROOF_VISUAL_SESSION_FINGERPRINT_VERSION,
|
|
3
|
+
RIDDLE_PROOF_VISUAL_SESSION_VERSION,
|
|
4
|
+
buildVisualProofSession,
|
|
5
|
+
compareVisualProofSessionFingerprint,
|
|
6
|
+
parseVisualProofSession,
|
|
7
|
+
visualSessionFingerprint,
|
|
8
|
+
visualSessionFingerprintBasis
|
|
9
|
+
} from "./chunk-ODORKNSO.js";
|
|
1
10
|
import {
|
|
2
11
|
runRiddleProof
|
|
3
12
|
} from "./chunk-YH7ADFY4.js";
|
|
@@ -9,15 +18,6 @@ import {
|
|
|
9
18
|
extractPlayabilityEvidence,
|
|
10
19
|
isRiddleProofPlayabilityMode
|
|
11
20
|
} from "./chunk-NSWT3VSV.js";
|
|
12
|
-
import {
|
|
13
|
-
RIDDLE_PROOF_VISUAL_SESSION_FINGERPRINT_VERSION,
|
|
14
|
-
RIDDLE_PROOF_VISUAL_SESSION_VERSION,
|
|
15
|
-
buildVisualProofSession,
|
|
16
|
-
compareVisualProofSessionFingerprint,
|
|
17
|
-
parseVisualProofSession,
|
|
18
|
-
visualSessionFingerprint,
|
|
19
|
-
visualSessionFingerprintBasis
|
|
20
|
-
} from "./chunk-ODORKNSO.js";
|
|
21
21
|
import {
|
|
22
22
|
BASIC_GAMEPLAY_ACTION_TYPES,
|
|
23
23
|
BASIC_GAMEPLAY_PROGRESS_CHECK_TYPES,
|
|
@@ -37,6 +37,11 @@ import {
|
|
|
37
37
|
resolveBasicGameplayProgressionCheckWithArtifactScreenshots,
|
|
38
38
|
sanitizeBasicGameplayJsonString
|
|
39
39
|
} from "./chunk-ELZSPOWV.js";
|
|
40
|
+
import {
|
|
41
|
+
RIDDLE_PROOF_CHANGE_CONTRACT_VERSION,
|
|
42
|
+
RIDDLE_PROOF_CHANGE_RESULT_VERSION,
|
|
43
|
+
assessRiddleProofChange
|
|
44
|
+
} from "./chunk-6S7DZWVC.js";
|
|
40
45
|
import {
|
|
41
46
|
DEFAULT_RIDDLE_API_BASE_URL,
|
|
42
47
|
DEFAULT_RIDDLE_API_KEY_FILE,
|
|
@@ -56,6 +61,7 @@ import {
|
|
|
56
61
|
runRiddleScript,
|
|
57
62
|
runRiddleServerPreview
|
|
58
63
|
} from "./chunk-B2DP2LET.js";
|
|
64
|
+
import "./chunk-JFQXAJH2.js";
|
|
59
65
|
import {
|
|
60
66
|
RIDDLE_PROOF_PR_COMMENT_MARKER,
|
|
61
67
|
buildRiddleProofPrCommentMarkdown,
|
|
@@ -95,6 +101,11 @@ import {
|
|
|
95
101
|
slugifyRiddleProofProfileName,
|
|
96
102
|
summarizeRiddleProofProfileResult
|
|
97
103
|
} from "./chunk-GG2D3MFZ.js";
|
|
104
|
+
import {
|
|
105
|
+
createCodexExecAgentAdapter,
|
|
106
|
+
createCodexExecJsonRunner,
|
|
107
|
+
runCodexExecAgentDoctor
|
|
108
|
+
} from "./chunk-KXLEN4SA.js";
|
|
98
109
|
import {
|
|
99
110
|
DEFAULT_DIAGNOSTIC_ARRAY_LIMIT,
|
|
100
111
|
DEFAULT_DIAGNOSTIC_HISTORY_LIMIT,
|
|
@@ -144,12 +155,6 @@ import {
|
|
|
144
155
|
proofContractFromAuthorCheckpointResponse,
|
|
145
156
|
statePathsForRunState
|
|
146
157
|
} from "./chunk-DYE3URAQ.js";
|
|
147
|
-
import "./chunk-JFQXAJH2.js";
|
|
148
|
-
import {
|
|
149
|
-
createCodexExecAgentAdapter,
|
|
150
|
-
createCodexExecJsonRunner,
|
|
151
|
-
runCodexExecAgentDoctor
|
|
152
|
-
} from "./chunk-KXLEN4SA.js";
|
|
153
158
|
import {
|
|
154
159
|
applyShipControlState,
|
|
155
160
|
applyTerminalMetadata,
|
|
@@ -187,6 +192,8 @@ export {
|
|
|
187
192
|
RIDDLE_PROOF_BASIC_GAMEPLAY_CATCH_VERSION,
|
|
188
193
|
RIDDLE_PROOF_BASIC_GAMEPLAY_VERSION,
|
|
189
194
|
RIDDLE_PROOF_CAPTURE_DIAGNOSTIC_VERSION,
|
|
195
|
+
RIDDLE_PROOF_CHANGE_CONTRACT_VERSION,
|
|
196
|
+
RIDDLE_PROOF_CHANGE_RESULT_VERSION,
|
|
190
197
|
RIDDLE_PROOF_CHECKPOINT_PACKET_VERSION,
|
|
191
198
|
RIDDLE_PROOF_CHECKPOINT_RESPONSE_VERSION,
|
|
192
199
|
RIDDLE_PROOF_HOSTED_PROFILE_ARTIFACTS,
|
|
@@ -219,6 +226,7 @@ export {
|
|
|
219
226
|
assessBasicGameplayProgressionChecks,
|
|
220
227
|
assessBasicGameplayRoute,
|
|
221
228
|
assessPlayabilityEvidence,
|
|
229
|
+
assessRiddleProofChange,
|
|
222
230
|
assessRiddleProofProfileArtifactCompleteness,
|
|
223
231
|
assessRiddleProofProfileEvidence,
|
|
224
232
|
attachBasicGameplayArtifactScreenshotHashes,
|
|
@@ -292,7 +292,7 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
|
|
|
292
292
|
blocking?: boolean;
|
|
293
293
|
details?: Record<string, unknown>;
|
|
294
294
|
ok: boolean;
|
|
295
|
-
action: "
|
|
295
|
+
action: "setup" | "recon" | "author" | "implement" | "verify" | "ship" | "run";
|
|
296
296
|
state_path: string;
|
|
297
297
|
stage: any;
|
|
298
298
|
summary: string;
|
|
@@ -382,7 +382,7 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
|
|
|
382
382
|
continueWithStage?: WorkflowStage | null;
|
|
383
383
|
blocking?: boolean;
|
|
384
384
|
details?: Record<string, unknown>;
|
|
385
|
-
action: "
|
|
385
|
+
action: "setup" | "recon" | "author" | "implement" | "verify" | "ship" | "run";
|
|
386
386
|
state_path: string;
|
|
387
387
|
stage: any;
|
|
388
388
|
checkpoint: string;
|
|
@@ -659,7 +659,7 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
|
|
|
659
659
|
error?: undefined;
|
|
660
660
|
} | {
|
|
661
661
|
ok: boolean;
|
|
662
|
-
action: "
|
|
662
|
+
action: "setup" | "recon" | "author" | "implement" | "verify" | "ship";
|
|
663
663
|
state_path: string;
|
|
664
664
|
stage: any;
|
|
665
665
|
summary: string;
|
|
@@ -292,7 +292,7 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
|
|
|
292
292
|
blocking?: boolean;
|
|
293
293
|
details?: Record<string, unknown>;
|
|
294
294
|
ok: boolean;
|
|
295
|
-
action: "
|
|
295
|
+
action: "setup" | "recon" | "author" | "implement" | "verify" | "ship" | "run";
|
|
296
296
|
state_path: string;
|
|
297
297
|
stage: any;
|
|
298
298
|
summary: string;
|
|
@@ -382,7 +382,7 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
|
|
|
382
382
|
continueWithStage?: WorkflowStage | null;
|
|
383
383
|
blocking?: boolean;
|
|
384
384
|
details?: Record<string, unknown>;
|
|
385
|
-
action: "
|
|
385
|
+
action: "setup" | "recon" | "author" | "implement" | "verify" | "ship" | "run";
|
|
386
386
|
state_path: string;
|
|
387
387
|
stage: any;
|
|
388
388
|
checkpoint: string;
|
|
@@ -659,7 +659,7 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
|
|
|
659
659
|
error?: undefined;
|
|
660
660
|
} | {
|
|
661
661
|
ok: boolean;
|
|
662
|
-
action: "
|
|
662
|
+
action: "setup" | "recon" | "author" | "implement" | "verify" | "ship";
|
|
663
663
|
state_path: string;
|
|
664
664
|
stage: any;
|
|
665
665
|
summary: string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import './proof-run-core-7Dqm7RKM.cjs';
|
|
2
|
-
export { R as RiddleProofEngine, c as createRiddleProofEngine, e as executeWorkflow } from './proof-run-engine-
|
|
2
|
+
export { R as RiddleProofEngine, c as createRiddleProofEngine, e as executeWorkflow } from './proof-run-engine-Baiv6l3A.cjs';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import './proof-run-core-7Dqm7RKM.js';
|
|
2
|
-
export { R as RiddleProofEngine, c as createRiddleProofEngine, e as executeWorkflow } from './proof-run-engine-
|
|
2
|
+
export { R as RiddleProofEngine, c as createRiddleProofEngine, e as executeWorkflow } from './proof-run-engine-MiKZt9oY.js';
|
|
@@ -17,3 +17,11 @@ packages/riddle-proof-runner-playwright/bin/riddle-proof-playwright run-profile
|
|
|
17
17
|
The sibling `neutral-fixture-product-regression.json` profile intentionally
|
|
18
18
|
looks for a missing selector. A correct Riddle Proof run reports
|
|
19
19
|
`product_regression`, not `passed`.
|
|
20
|
+
|
|
21
|
+
`neutral-fixture-auth-session.json` exercises a stored browser-state handoff by
|
|
22
|
+
writing a deterministic localStorage token, reloading `auth.html`, and proving
|
|
23
|
+
that the authenticated fixture state is visible.
|
|
24
|
+
|
|
25
|
+
The auth profile keeps its readiness wait inside `setup_actions`, after the
|
|
26
|
+
localStorage write and reload. A target-level `wait_for_selector` would run
|
|
27
|
+
before setup and would block the token handoff.
|