@riddledc/riddle-proof 0.7.184 → 0.7.186
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-5MBIRRA7.js → chunk-Z42O55GB.js} +12 -4
- package/dist/cli.cjs +93 -6
- package/dist/cli.js +82 -3
- package/dist/index.cjs +12 -4
- package/dist/index.js +1 -1
- package/dist/profile.cjs +12 -4
- package/dist/profile.js +1 -1
- package/examples/profiles/spa-route-exit-state-hygiene.json +2 -2
- package/package.json +1 -1
|
@@ -489,8 +489,9 @@ function profileSetupWindowCallReceipts(results) {
|
|
|
489
489
|
path: result.path ?? null,
|
|
490
490
|
return_captured: result.return_captured ?? null,
|
|
491
491
|
return_stored_to: result.return_stored_to ?? null,
|
|
492
|
-
reason: result.reason ?? result.
|
|
492
|
+
reason: result.reason ?? result.store_reason ?? null
|
|
493
493
|
};
|
|
494
|
+
if (result.error !== void 0) receipt.error = result.error;
|
|
494
495
|
if (result.returned !== void 0) receipt.returned = result.returned;
|
|
495
496
|
if (result.expected_return !== void 0) receipt.expected_return = result.expected_return;
|
|
496
497
|
const returnSummary = profileSetupReturnSummary(result);
|
|
@@ -506,8 +507,9 @@ function profileSetupWindowEvalReceipts(results) {
|
|
|
506
507
|
script_length: result.script_length ?? null,
|
|
507
508
|
return_captured: result.return_captured ?? null,
|
|
508
509
|
return_stored_to: result.return_stored_to ?? null,
|
|
509
|
-
reason: result.reason ?? result.
|
|
510
|
+
reason: result.reason ?? result.store_reason ?? null
|
|
510
511
|
};
|
|
512
|
+
if (result.error !== void 0) receipt.error = result.error;
|
|
511
513
|
if (result.returned !== void 0) receipt.returned = result.returned;
|
|
512
514
|
if (result.expected_return !== void 0) receipt.expected_return = result.expected_return;
|
|
513
515
|
const returnSummary = profileSetupReturnSummary(result);
|
|
@@ -872,6 +874,7 @@ function profileSetupSummary(viewports, actionCount, expectedActionCountByViewpo
|
|
|
872
874
|
selector: result.selector ?? null,
|
|
873
875
|
frame_selector: result.frame_selector ?? null,
|
|
874
876
|
reason: result.reason ?? result.error ?? null,
|
|
877
|
+
error: result.error ?? null,
|
|
875
878
|
case_insensitive_text: compactProfileSetupSummaryText(result.case_insensitive_text)
|
|
876
879
|
})),
|
|
877
880
|
optional_failed: optionalFailed.map((result) => ({
|
|
@@ -880,6 +883,7 @@ function profileSetupSummary(viewports, actionCount, expectedActionCountByViewpo
|
|
|
880
883
|
selector: result.selector ?? null,
|
|
881
884
|
frame_selector: result.frame_selector ?? null,
|
|
882
885
|
reason: result.reason ?? result.error ?? null,
|
|
886
|
+
error: result.error ?? null,
|
|
883
887
|
case_insensitive_text: compactProfileSetupSummaryText(result.case_insensitive_text)
|
|
884
888
|
}))
|
|
885
889
|
};
|
|
@@ -4366,8 +4370,9 @@ function profileSetupWindowCallReceipts(results) {
|
|
|
4366
4370
|
path: result.path ?? null,
|
|
4367
4371
|
return_captured: result.return_captured ?? null,
|
|
4368
4372
|
return_stored_to: result.return_stored_to ?? null,
|
|
4369
|
-
reason: result.reason || result.
|
|
4373
|
+
reason: result.reason || result.store_reason || null,
|
|
4370
4374
|
};
|
|
4375
|
+
if (result.error !== undefined) receipt.error = result.error;
|
|
4371
4376
|
if (result.returned !== undefined) receipt.returned = result.returned;
|
|
4372
4377
|
if (result.expected_return !== undefined) receipt.expected_return = result.expected_return;
|
|
4373
4378
|
const returnSummary = profileSetupReturnSummary(result);
|
|
@@ -4385,8 +4390,9 @@ function profileSetupWindowEvalReceipts(results) {
|
|
|
4385
4390
|
script_length: result.script_length ?? null,
|
|
4386
4391
|
return_captured: result.return_captured ?? null,
|
|
4387
4392
|
return_stored_to: result.return_stored_to ?? null,
|
|
4388
|
-
reason: result.reason || result.
|
|
4393
|
+
reason: result.reason || result.store_reason || null,
|
|
4389
4394
|
};
|
|
4395
|
+
if (result.error !== undefined) receipt.error = result.error;
|
|
4390
4396
|
if (result.returned !== undefined) receipt.returned = result.returned;
|
|
4391
4397
|
if (result.expected_return !== undefined) receipt.expected_return = result.expected_return;
|
|
4392
4398
|
const returnSummary = profileSetupReturnSummary(result);
|
|
@@ -4796,6 +4802,7 @@ function profileSetupSummary(viewports, actionCount, expectedActionCountsByViewp
|
|
|
4796
4802
|
selector: result.selector ?? null,
|
|
4797
4803
|
frame_selector: result.frame_selector ?? null,
|
|
4798
4804
|
reason: result.reason || result.error || null,
|
|
4805
|
+
error: result.error || null,
|
|
4799
4806
|
case_insensitive_text: compactProfileSetupSummaryText(result.case_insensitive_text),
|
|
4800
4807
|
})),
|
|
4801
4808
|
optional_failed: optionalFailed.map((result) => ({
|
|
@@ -4804,6 +4811,7 @@ function profileSetupSummary(viewports, actionCount, expectedActionCountsByViewp
|
|
|
4804
4811
|
selector: result.selector ?? null,
|
|
4805
4812
|
frame_selector: result.frame_selector ?? null,
|
|
4806
4813
|
reason: result.reason || result.error || null,
|
|
4814
|
+
error: result.error || null,
|
|
4807
4815
|
case_insensitive_text: compactProfileSetupSummaryText(result.case_insensitive_text),
|
|
4808
4816
|
})),
|
|
4809
4817
|
};
|
package/dist/cli.cjs
CHANGED
|
@@ -7446,8 +7446,9 @@ function profileSetupWindowCallReceipts(results) {
|
|
|
7446
7446
|
path: result.path ?? null,
|
|
7447
7447
|
return_captured: result.return_captured ?? null,
|
|
7448
7448
|
return_stored_to: result.return_stored_to ?? null,
|
|
7449
|
-
reason: result.reason ?? result.
|
|
7449
|
+
reason: result.reason ?? result.store_reason ?? null
|
|
7450
7450
|
};
|
|
7451
|
+
if (result.error !== void 0) receipt.error = result.error;
|
|
7451
7452
|
if (result.returned !== void 0) receipt.returned = result.returned;
|
|
7452
7453
|
if (result.expected_return !== void 0) receipt.expected_return = result.expected_return;
|
|
7453
7454
|
const returnSummary = profileSetupReturnSummary(result);
|
|
@@ -7463,8 +7464,9 @@ function profileSetupWindowEvalReceipts(results) {
|
|
|
7463
7464
|
script_length: result.script_length ?? null,
|
|
7464
7465
|
return_captured: result.return_captured ?? null,
|
|
7465
7466
|
return_stored_to: result.return_stored_to ?? null,
|
|
7466
|
-
reason: result.reason ?? result.
|
|
7467
|
+
reason: result.reason ?? result.store_reason ?? null
|
|
7467
7468
|
};
|
|
7469
|
+
if (result.error !== void 0) receipt.error = result.error;
|
|
7468
7470
|
if (result.returned !== void 0) receipt.returned = result.returned;
|
|
7469
7471
|
if (result.expected_return !== void 0) receipt.expected_return = result.expected_return;
|
|
7470
7472
|
const returnSummary = profileSetupReturnSummary(result);
|
|
@@ -7829,6 +7831,7 @@ function profileSetupSummary(viewports, actionCount, expectedActionCountByViewpo
|
|
|
7829
7831
|
selector: result.selector ?? null,
|
|
7830
7832
|
frame_selector: result.frame_selector ?? null,
|
|
7831
7833
|
reason: result.reason ?? result.error ?? null,
|
|
7834
|
+
error: result.error ?? null,
|
|
7832
7835
|
case_insensitive_text: compactProfileSetupSummaryText(result.case_insensitive_text)
|
|
7833
7836
|
})),
|
|
7834
7837
|
optional_failed: optionalFailed.map((result) => ({
|
|
@@ -7837,6 +7840,7 @@ function profileSetupSummary(viewports, actionCount, expectedActionCountByViewpo
|
|
|
7837
7840
|
selector: result.selector ?? null,
|
|
7838
7841
|
frame_selector: result.frame_selector ?? null,
|
|
7839
7842
|
reason: result.reason ?? result.error ?? null,
|
|
7843
|
+
error: result.error ?? null,
|
|
7840
7844
|
case_insensitive_text: compactProfileSetupSummaryText(result.case_insensitive_text)
|
|
7841
7845
|
}))
|
|
7842
7846
|
};
|
|
@@ -11307,8 +11311,9 @@ function profileSetupWindowCallReceipts(results) {
|
|
|
11307
11311
|
path: result.path ?? null,
|
|
11308
11312
|
return_captured: result.return_captured ?? null,
|
|
11309
11313
|
return_stored_to: result.return_stored_to ?? null,
|
|
11310
|
-
reason: result.reason || result.
|
|
11314
|
+
reason: result.reason || result.store_reason || null,
|
|
11311
11315
|
};
|
|
11316
|
+
if (result.error !== undefined) receipt.error = result.error;
|
|
11312
11317
|
if (result.returned !== undefined) receipt.returned = result.returned;
|
|
11313
11318
|
if (result.expected_return !== undefined) receipt.expected_return = result.expected_return;
|
|
11314
11319
|
const returnSummary = profileSetupReturnSummary(result);
|
|
@@ -11326,8 +11331,9 @@ function profileSetupWindowEvalReceipts(results) {
|
|
|
11326
11331
|
script_length: result.script_length ?? null,
|
|
11327
11332
|
return_captured: result.return_captured ?? null,
|
|
11328
11333
|
return_stored_to: result.return_stored_to ?? null,
|
|
11329
|
-
reason: result.reason || result.
|
|
11334
|
+
reason: result.reason || result.store_reason || null,
|
|
11330
11335
|
};
|
|
11336
|
+
if (result.error !== undefined) receipt.error = result.error;
|
|
11331
11337
|
if (result.returned !== undefined) receipt.returned = result.returned;
|
|
11332
11338
|
if (result.expected_return !== undefined) receipt.expected_return = result.expected_return;
|
|
11333
11339
|
const returnSummary = profileSetupReturnSummary(result);
|
|
@@ -11737,6 +11743,7 @@ function profileSetupSummary(viewports, actionCount, expectedActionCountsByViewp
|
|
|
11737
11743
|
selector: result.selector ?? null,
|
|
11738
11744
|
frame_selector: result.frame_selector ?? null,
|
|
11739
11745
|
reason: result.reason || result.error || null,
|
|
11746
|
+
error: result.error || null,
|
|
11740
11747
|
case_insensitive_text: compactProfileSetupSummaryText(result.case_insensitive_text),
|
|
11741
11748
|
})),
|
|
11742
11749
|
optional_failed: optionalFailed.map((result) => ({
|
|
@@ -11745,6 +11752,7 @@ function profileSetupSummary(viewports, actionCount, expectedActionCountsByViewp
|
|
|
11745
11752
|
selector: result.selector ?? null,
|
|
11746
11753
|
frame_selector: result.frame_selector ?? null,
|
|
11747
11754
|
reason: result.reason || result.error || null,
|
|
11755
|
+
error: result.error || null,
|
|
11748
11756
|
case_insensitive_text: compactProfileSetupSummaryText(result.case_insensitive_text),
|
|
11749
11757
|
})),
|
|
11750
11758
|
};
|
|
@@ -16353,6 +16361,51 @@ function profileResultHasArtifact(result) {
|
|
|
16353
16361
|
function profileReceiptSignalStatus(hasSignal, presentReason, missingReason) {
|
|
16354
16362
|
return hasSignal ? { status: "present", reason: presentReason } : { status: "missing", reason: missingReason };
|
|
16355
16363
|
}
|
|
16364
|
+
function compactProfileReceiptReason(value, limit = 180) {
|
|
16365
|
+
const text = cliString(value)?.replace(/\s+/g, " ").trim();
|
|
16366
|
+
if (!text) return void 0;
|
|
16367
|
+
return text.length <= limit ? text : `${text.slice(0, Math.max(0, limit - 3)).trimEnd()}...`;
|
|
16368
|
+
}
|
|
16369
|
+
function profileFailedCleanupInventoryReason(setupViewports) {
|
|
16370
|
+
const receipts = setupViewports.flatMap((viewport) => [
|
|
16371
|
+
...setupReceiptArray(viewport, "window_eval"),
|
|
16372
|
+
...setupReceiptArray(viewport, "window_call")
|
|
16373
|
+
]);
|
|
16374
|
+
for (const receipt of receipts) {
|
|
16375
|
+
if (receipt.ok !== false) continue;
|
|
16376
|
+
const returnStoredTo = cliString(receipt.return_stored_to) || "";
|
|
16377
|
+
const reason = cliString(receipt.reason) || "";
|
|
16378
|
+
const error = cliString(receipt.error) || "";
|
|
16379
|
+
const summary = cliReturnSummaryLabel(receipt.return_summary) || "";
|
|
16380
|
+
const haystack = `${returnStoredTo} ${reason} ${error} ${summary}`.toLowerCase();
|
|
16381
|
+
const isCleanupReceipt = haystack.includes("cleanup") || haystack.includes("post-cleanup") || haystack.includes("stale") || haystack.includes("statehygiene") || haystack.includes("state hygiene") || haystack.includes("remained after") || haystack.includes("still present");
|
|
16382
|
+
if (!isCleanupReceipt) continue;
|
|
16383
|
+
return compactProfileReceiptReason(error) || compactProfileReceiptReason(reason) || "cleanup inventory failed";
|
|
16384
|
+
}
|
|
16385
|
+
return void 0;
|
|
16386
|
+
}
|
|
16387
|
+
function profileHasRouteExitAffordanceReceipt(receipts) {
|
|
16388
|
+
const affordanceFields = [
|
|
16389
|
+
"navVisibleBeforeExit",
|
|
16390
|
+
"navVisible",
|
|
16391
|
+
"navigationVisible",
|
|
16392
|
+
"exitVisible",
|
|
16393
|
+
"exitControlVisible",
|
|
16394
|
+
"routeExitVisible",
|
|
16395
|
+
"homeLinkVisible"
|
|
16396
|
+
];
|
|
16397
|
+
const routeFields = ["route", "afterRoute", "nextRoute", "browserPath", "path"];
|
|
16398
|
+
return receipts.some((receipt) => {
|
|
16399
|
+
if (affordanceFields.some((name) => setupReturnSummaryValue(receipt, [name]) !== void 0)) return true;
|
|
16400
|
+
const storedTo = cliString(receipt.return_stored_to) || "";
|
|
16401
|
+
const summary = cliReturnSummaryLabel(receipt.return_summary) || "";
|
|
16402
|
+
const reason = cliString(receipt.reason) || "";
|
|
16403
|
+
const haystack = `${storedTo} ${summary} ${reason}`.toLowerCase();
|
|
16404
|
+
const mentionsRouteExit = haystack.includes("routeexit") || haystack.includes("route-exit") || haystack.includes("route exit") || haystack.includes("afterrouteexit") || haystack.includes("after route exit");
|
|
16405
|
+
if (!mentionsRouteExit) return false;
|
|
16406
|
+
return routeFields.some((name) => setupReturnSummaryValue(receipt, [name]) !== void 0) || haystack.includes("route=") || haystack.includes("browserpath=");
|
|
16407
|
+
});
|
|
16408
|
+
}
|
|
16356
16409
|
function profilePackReceiptStatus(result, metadata, receipt) {
|
|
16357
16410
|
const text = receipt.toLowerCase();
|
|
16358
16411
|
const setupSummary = profileSetupSummaryRecord(result);
|
|
@@ -16401,6 +16454,8 @@ function profilePackReceiptStatus(result, metadata, receipt) {
|
|
|
16401
16454
|
const hasTextVisibility = profileHasPassedCheck(result, ["text_visible", "selector_text_visible", "selector_visible"]);
|
|
16402
16455
|
const hasTextAbsence = profileHasPassedCheck(result, ["text_absent", "selector_text_absent"]);
|
|
16403
16456
|
const hasMeasuredStateChange = hasNaturalInput || hasCanvasChange || valueReceipts.some((item) => setupReturnSummaryValue(item, ["changed"]) === true || setupReturnSummaryValue(item, ["nonWhiteDelta", "darkDelta", "pixelDelta", "movementDelta"]) !== void 0);
|
|
16457
|
+
const hasRouteExitAffordanceReceipt = profileHasRouteExitAffordanceReceipt(valueReceipts);
|
|
16458
|
+
const failedCleanupInventoryReason = profileFailedCleanupInventoryReason(setupViewports);
|
|
16404
16459
|
if (text.includes("artifact link") || text.includes("artifact path")) {
|
|
16405
16460
|
return profileReceiptSignalStatus(profileResultHasArtifact(result), "artifact references listed", "no artifact references found");
|
|
16406
16461
|
}
|
|
@@ -16419,6 +16474,9 @@ function profilePackReceiptStatus(result, metadata, receipt) {
|
|
|
16419
16474
|
return profileReceiptSignalStatus(hasStateContract, "state contract metadata or receipts present", "state contract evidence missing");
|
|
16420
16475
|
}
|
|
16421
16476
|
if (text.includes("stale") || text.includes("absence")) {
|
|
16477
|
+
if (failedCleanupInventoryReason && (text.includes("cleanup") || text.includes("post-cleanup") || text.includes("stale-state") || text.includes("stale state"))) {
|
|
16478
|
+
return { status: "failed", reason: `cleanup inventory failed: ${failedCleanupInventoryReason}` };
|
|
16479
|
+
}
|
|
16422
16480
|
return profileReceiptSignalStatus(hasTextAbsence, "absence check passed", "absence check missing");
|
|
16423
16481
|
}
|
|
16424
16482
|
if (text.includes("recovered") || text.includes("final state")) {
|
|
@@ -16435,6 +16493,13 @@ function profilePackReceiptStatus(result, metadata, receipt) {
|
|
|
16435
16493
|
if (text.includes("invalid state")) {
|
|
16436
16494
|
return profileReceiptSignalStatus(hasStateContract || hasInvalidStateReceipt, "invalid-state receipt present", "invalid-state receipt missing");
|
|
16437
16495
|
}
|
|
16496
|
+
if (text.includes("route-exit affordance") || text.includes("route exit affordance") || text.includes("navigation before cleanup") || text.includes("exit control")) {
|
|
16497
|
+
return profileReceiptSignalStatus(
|
|
16498
|
+
hasRouteExitAffordanceReceipt || hasStateContract || clickCount > 0,
|
|
16499
|
+
"route-exit affordance receipt present",
|
|
16500
|
+
"affordance receipt missing"
|
|
16501
|
+
);
|
|
16502
|
+
}
|
|
16438
16503
|
if (text.includes("retry") || text.includes("repair") || text.includes("reset") || text.includes("affordance")) {
|
|
16439
16504
|
return profileReceiptSignalStatus(hasStateContract || clickCount > 0, "affordance or transition receipt present", "affordance receipt missing");
|
|
16440
16505
|
}
|
|
@@ -16513,9 +16578,31 @@ function profilePackMetadataMarkdown(result) {
|
|
|
16513
16578
|
].filter(Boolean);
|
|
16514
16579
|
if (packParts.length) lines.push(`- pack: ${packParts.join(" - ")}`);
|
|
16515
16580
|
if (requiredReceipts.length) {
|
|
16581
|
+
const receiptStatuses = requiredReceipts.map((receipt) => ({
|
|
16582
|
+
receipt,
|
|
16583
|
+
item: profilePackReceiptStatus(result, metadata, receipt)
|
|
16584
|
+
}));
|
|
16585
|
+
const missingReceipts = receiptStatuses.filter(({ item }) => item.status === "missing").map(({ receipt }) => receipt);
|
|
16586
|
+
const failedReceipts = receiptStatuses.filter(({ item }) => item.status === "failed").map(({ receipt }) => receipt);
|
|
16587
|
+
const manualCount = receiptStatuses.filter(({ item }) => item.status === "manual").length;
|
|
16588
|
+
const presentCount = receiptStatuses.filter(({ item }) => item.status === "present").length;
|
|
16589
|
+
const completenessParts = [
|
|
16590
|
+
`${presentCount} present`,
|
|
16591
|
+
manualCount ? `${manualCount} manual` : "",
|
|
16592
|
+
missingReceipts.length ? `${missingReceipts.length} missing` : "",
|
|
16593
|
+
failedReceipts.length ? `${failedReceipts.length} failed` : ""
|
|
16594
|
+
].filter(Boolean);
|
|
16595
|
+
lines.push(`- pack completeness: ${missingReceipts.length || failedReceipts.length ? "incomplete" : "complete"} (${completenessParts.join(", ")})`);
|
|
16596
|
+
if (missingReceipts.length) {
|
|
16597
|
+
const listed = missingReceipts.slice(0, 5).map((receipt) => markdownInlineCode(receipt, 120)).join(", ");
|
|
16598
|
+
lines.push(`- missing required receipts: ${listed}${missingReceipts.length > 5 ? `, ${missingReceipts.length - 5} more` : ""}`);
|
|
16599
|
+
}
|
|
16600
|
+
if (failedReceipts.length) {
|
|
16601
|
+
const listed = failedReceipts.slice(0, 5).map((receipt) => markdownInlineCode(receipt, 120)).join(", ");
|
|
16602
|
+
lines.push(`- failed required receipts: ${listed}${failedReceipts.length > 5 ? `, ${failedReceipts.length - 5} more` : ""}`);
|
|
16603
|
+
}
|
|
16516
16604
|
lines.push(`- required receipts: ${requiredReceipts.length}`);
|
|
16517
|
-
for (const receipt of
|
|
16518
|
-
const item = profilePackReceiptStatus(result, metadata, receipt);
|
|
16605
|
+
for (const { receipt, item } of receiptStatuses.slice(0, 20)) {
|
|
16519
16606
|
lines.push(` - ${item.status}: ${receipt} (${item.reason})`);
|
|
16520
16607
|
}
|
|
16521
16608
|
if (requiredReceipts.length > 20) lines.push(` - ${requiredReceipts.length - 20} additional required receipt(s) omitted.`);
|
package/dist/cli.js
CHANGED
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
profileStatusExitCode,
|
|
14
14
|
resolveRiddleProofProfileTargetUrl,
|
|
15
15
|
resolveRiddleProofProfileTimeoutSec
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-Z42O55GB.js";
|
|
17
17
|
import {
|
|
18
18
|
createRiddleApiClient,
|
|
19
19
|
isTerminalRiddleJobStatus,
|
|
@@ -566,6 +566,51 @@ function profileResultHasArtifact(result) {
|
|
|
566
566
|
function profileReceiptSignalStatus(hasSignal, presentReason, missingReason) {
|
|
567
567
|
return hasSignal ? { status: "present", reason: presentReason } : { status: "missing", reason: missingReason };
|
|
568
568
|
}
|
|
569
|
+
function compactProfileReceiptReason(value, limit = 180) {
|
|
570
|
+
const text = cliString(value)?.replace(/\s+/g, " ").trim();
|
|
571
|
+
if (!text) return void 0;
|
|
572
|
+
return text.length <= limit ? text : `${text.slice(0, Math.max(0, limit - 3)).trimEnd()}...`;
|
|
573
|
+
}
|
|
574
|
+
function profileFailedCleanupInventoryReason(setupViewports) {
|
|
575
|
+
const receipts = setupViewports.flatMap((viewport) => [
|
|
576
|
+
...setupReceiptArray(viewport, "window_eval"),
|
|
577
|
+
...setupReceiptArray(viewport, "window_call")
|
|
578
|
+
]);
|
|
579
|
+
for (const receipt of receipts) {
|
|
580
|
+
if (receipt.ok !== false) continue;
|
|
581
|
+
const returnStoredTo = cliString(receipt.return_stored_to) || "";
|
|
582
|
+
const reason = cliString(receipt.reason) || "";
|
|
583
|
+
const error = cliString(receipt.error) || "";
|
|
584
|
+
const summary = cliReturnSummaryLabel(receipt.return_summary) || "";
|
|
585
|
+
const haystack = `${returnStoredTo} ${reason} ${error} ${summary}`.toLowerCase();
|
|
586
|
+
const isCleanupReceipt = haystack.includes("cleanup") || haystack.includes("post-cleanup") || haystack.includes("stale") || haystack.includes("statehygiene") || haystack.includes("state hygiene") || haystack.includes("remained after") || haystack.includes("still present");
|
|
587
|
+
if (!isCleanupReceipt) continue;
|
|
588
|
+
return compactProfileReceiptReason(error) || compactProfileReceiptReason(reason) || "cleanup inventory failed";
|
|
589
|
+
}
|
|
590
|
+
return void 0;
|
|
591
|
+
}
|
|
592
|
+
function profileHasRouteExitAffordanceReceipt(receipts) {
|
|
593
|
+
const affordanceFields = [
|
|
594
|
+
"navVisibleBeforeExit",
|
|
595
|
+
"navVisible",
|
|
596
|
+
"navigationVisible",
|
|
597
|
+
"exitVisible",
|
|
598
|
+
"exitControlVisible",
|
|
599
|
+
"routeExitVisible",
|
|
600
|
+
"homeLinkVisible"
|
|
601
|
+
];
|
|
602
|
+
const routeFields = ["route", "afterRoute", "nextRoute", "browserPath", "path"];
|
|
603
|
+
return receipts.some((receipt) => {
|
|
604
|
+
if (affordanceFields.some((name) => setupReturnSummaryValue(receipt, [name]) !== void 0)) return true;
|
|
605
|
+
const storedTo = cliString(receipt.return_stored_to) || "";
|
|
606
|
+
const summary = cliReturnSummaryLabel(receipt.return_summary) || "";
|
|
607
|
+
const reason = cliString(receipt.reason) || "";
|
|
608
|
+
const haystack = `${storedTo} ${summary} ${reason}`.toLowerCase();
|
|
609
|
+
const mentionsRouteExit = haystack.includes("routeexit") || haystack.includes("route-exit") || haystack.includes("route exit") || haystack.includes("afterrouteexit") || haystack.includes("after route exit");
|
|
610
|
+
if (!mentionsRouteExit) return false;
|
|
611
|
+
return routeFields.some((name) => setupReturnSummaryValue(receipt, [name]) !== void 0) || haystack.includes("route=") || haystack.includes("browserpath=");
|
|
612
|
+
});
|
|
613
|
+
}
|
|
569
614
|
function profilePackReceiptStatus(result, metadata, receipt) {
|
|
570
615
|
const text = receipt.toLowerCase();
|
|
571
616
|
const setupSummary = profileSetupSummaryRecord(result);
|
|
@@ -614,6 +659,8 @@ function profilePackReceiptStatus(result, metadata, receipt) {
|
|
|
614
659
|
const hasTextVisibility = profileHasPassedCheck(result, ["text_visible", "selector_text_visible", "selector_visible"]);
|
|
615
660
|
const hasTextAbsence = profileHasPassedCheck(result, ["text_absent", "selector_text_absent"]);
|
|
616
661
|
const hasMeasuredStateChange = hasNaturalInput || hasCanvasChange || valueReceipts.some((item) => setupReturnSummaryValue(item, ["changed"]) === true || setupReturnSummaryValue(item, ["nonWhiteDelta", "darkDelta", "pixelDelta", "movementDelta"]) !== void 0);
|
|
662
|
+
const hasRouteExitAffordanceReceipt = profileHasRouteExitAffordanceReceipt(valueReceipts);
|
|
663
|
+
const failedCleanupInventoryReason = profileFailedCleanupInventoryReason(setupViewports);
|
|
617
664
|
if (text.includes("artifact link") || text.includes("artifact path")) {
|
|
618
665
|
return profileReceiptSignalStatus(profileResultHasArtifact(result), "artifact references listed", "no artifact references found");
|
|
619
666
|
}
|
|
@@ -632,6 +679,9 @@ function profilePackReceiptStatus(result, metadata, receipt) {
|
|
|
632
679
|
return profileReceiptSignalStatus(hasStateContract, "state contract metadata or receipts present", "state contract evidence missing");
|
|
633
680
|
}
|
|
634
681
|
if (text.includes("stale") || text.includes("absence")) {
|
|
682
|
+
if (failedCleanupInventoryReason && (text.includes("cleanup") || text.includes("post-cleanup") || text.includes("stale-state") || text.includes("stale state"))) {
|
|
683
|
+
return { status: "failed", reason: `cleanup inventory failed: ${failedCleanupInventoryReason}` };
|
|
684
|
+
}
|
|
635
685
|
return profileReceiptSignalStatus(hasTextAbsence, "absence check passed", "absence check missing");
|
|
636
686
|
}
|
|
637
687
|
if (text.includes("recovered") || text.includes("final state")) {
|
|
@@ -648,6 +698,13 @@ function profilePackReceiptStatus(result, metadata, receipt) {
|
|
|
648
698
|
if (text.includes("invalid state")) {
|
|
649
699
|
return profileReceiptSignalStatus(hasStateContract || hasInvalidStateReceipt, "invalid-state receipt present", "invalid-state receipt missing");
|
|
650
700
|
}
|
|
701
|
+
if (text.includes("route-exit affordance") || text.includes("route exit affordance") || text.includes("navigation before cleanup") || text.includes("exit control")) {
|
|
702
|
+
return profileReceiptSignalStatus(
|
|
703
|
+
hasRouteExitAffordanceReceipt || hasStateContract || clickCount > 0,
|
|
704
|
+
"route-exit affordance receipt present",
|
|
705
|
+
"affordance receipt missing"
|
|
706
|
+
);
|
|
707
|
+
}
|
|
651
708
|
if (text.includes("retry") || text.includes("repair") || text.includes("reset") || text.includes("affordance")) {
|
|
652
709
|
return profileReceiptSignalStatus(hasStateContract || clickCount > 0, "affordance or transition receipt present", "affordance receipt missing");
|
|
653
710
|
}
|
|
@@ -726,9 +783,31 @@ function profilePackMetadataMarkdown(result) {
|
|
|
726
783
|
].filter(Boolean);
|
|
727
784
|
if (packParts.length) lines.push(`- pack: ${packParts.join(" - ")}`);
|
|
728
785
|
if (requiredReceipts.length) {
|
|
786
|
+
const receiptStatuses = requiredReceipts.map((receipt) => ({
|
|
787
|
+
receipt,
|
|
788
|
+
item: profilePackReceiptStatus(result, metadata, receipt)
|
|
789
|
+
}));
|
|
790
|
+
const missingReceipts = receiptStatuses.filter(({ item }) => item.status === "missing").map(({ receipt }) => receipt);
|
|
791
|
+
const failedReceipts = receiptStatuses.filter(({ item }) => item.status === "failed").map(({ receipt }) => receipt);
|
|
792
|
+
const manualCount = receiptStatuses.filter(({ item }) => item.status === "manual").length;
|
|
793
|
+
const presentCount = receiptStatuses.filter(({ item }) => item.status === "present").length;
|
|
794
|
+
const completenessParts = [
|
|
795
|
+
`${presentCount} present`,
|
|
796
|
+
manualCount ? `${manualCount} manual` : "",
|
|
797
|
+
missingReceipts.length ? `${missingReceipts.length} missing` : "",
|
|
798
|
+
failedReceipts.length ? `${failedReceipts.length} failed` : ""
|
|
799
|
+
].filter(Boolean);
|
|
800
|
+
lines.push(`- pack completeness: ${missingReceipts.length || failedReceipts.length ? "incomplete" : "complete"} (${completenessParts.join(", ")})`);
|
|
801
|
+
if (missingReceipts.length) {
|
|
802
|
+
const listed = missingReceipts.slice(0, 5).map((receipt) => markdownInlineCode(receipt, 120)).join(", ");
|
|
803
|
+
lines.push(`- missing required receipts: ${listed}${missingReceipts.length > 5 ? `, ${missingReceipts.length - 5} more` : ""}`);
|
|
804
|
+
}
|
|
805
|
+
if (failedReceipts.length) {
|
|
806
|
+
const listed = failedReceipts.slice(0, 5).map((receipt) => markdownInlineCode(receipt, 120)).join(", ");
|
|
807
|
+
lines.push(`- failed required receipts: ${listed}${failedReceipts.length > 5 ? `, ${failedReceipts.length - 5} more` : ""}`);
|
|
808
|
+
}
|
|
729
809
|
lines.push(`- required receipts: ${requiredReceipts.length}`);
|
|
730
|
-
for (const receipt of
|
|
731
|
-
const item = profilePackReceiptStatus(result, metadata, receipt);
|
|
810
|
+
for (const { receipt, item } of receiptStatuses.slice(0, 20)) {
|
|
732
811
|
lines.push(` - ${item.status}: ${receipt} (${item.reason})`);
|
|
733
812
|
}
|
|
734
813
|
if (requiredReceipts.length > 20) lines.push(` - ${requiredReceipts.length - 20} additional required receipt(s) omitted.`);
|
package/dist/index.cjs
CHANGED
|
@@ -9222,8 +9222,9 @@ function profileSetupWindowCallReceipts(results) {
|
|
|
9222
9222
|
path: result.path ?? null,
|
|
9223
9223
|
return_captured: result.return_captured ?? null,
|
|
9224
9224
|
return_stored_to: result.return_stored_to ?? null,
|
|
9225
|
-
reason: result.reason ?? result.
|
|
9225
|
+
reason: result.reason ?? result.store_reason ?? null
|
|
9226
9226
|
};
|
|
9227
|
+
if (result.error !== void 0) receipt.error = result.error;
|
|
9227
9228
|
if (result.returned !== void 0) receipt.returned = result.returned;
|
|
9228
9229
|
if (result.expected_return !== void 0) receipt.expected_return = result.expected_return;
|
|
9229
9230
|
const returnSummary = profileSetupReturnSummary(result);
|
|
@@ -9239,8 +9240,9 @@ function profileSetupWindowEvalReceipts(results) {
|
|
|
9239
9240
|
script_length: result.script_length ?? null,
|
|
9240
9241
|
return_captured: result.return_captured ?? null,
|
|
9241
9242
|
return_stored_to: result.return_stored_to ?? null,
|
|
9242
|
-
reason: result.reason ?? result.
|
|
9243
|
+
reason: result.reason ?? result.store_reason ?? null
|
|
9243
9244
|
};
|
|
9245
|
+
if (result.error !== void 0) receipt.error = result.error;
|
|
9244
9246
|
if (result.returned !== void 0) receipt.returned = result.returned;
|
|
9245
9247
|
if (result.expected_return !== void 0) receipt.expected_return = result.expected_return;
|
|
9246
9248
|
const returnSummary = profileSetupReturnSummary(result);
|
|
@@ -9605,6 +9607,7 @@ function profileSetupSummary(viewports, actionCount, expectedActionCountByViewpo
|
|
|
9605
9607
|
selector: result.selector ?? null,
|
|
9606
9608
|
frame_selector: result.frame_selector ?? null,
|
|
9607
9609
|
reason: result.reason ?? result.error ?? null,
|
|
9610
|
+
error: result.error ?? null,
|
|
9608
9611
|
case_insensitive_text: compactProfileSetupSummaryText(result.case_insensitive_text)
|
|
9609
9612
|
})),
|
|
9610
9613
|
optional_failed: optionalFailed.map((result) => ({
|
|
@@ -9613,6 +9616,7 @@ function profileSetupSummary(viewports, actionCount, expectedActionCountByViewpo
|
|
|
9613
9616
|
selector: result.selector ?? null,
|
|
9614
9617
|
frame_selector: result.frame_selector ?? null,
|
|
9615
9618
|
reason: result.reason ?? result.error ?? null,
|
|
9619
|
+
error: result.error ?? null,
|
|
9616
9620
|
case_insensitive_text: compactProfileSetupSummaryText(result.case_insensitive_text)
|
|
9617
9621
|
}))
|
|
9618
9622
|
};
|
|
@@ -13099,8 +13103,9 @@ function profileSetupWindowCallReceipts(results) {
|
|
|
13099
13103
|
path: result.path ?? null,
|
|
13100
13104
|
return_captured: result.return_captured ?? null,
|
|
13101
13105
|
return_stored_to: result.return_stored_to ?? null,
|
|
13102
|
-
reason: result.reason || result.
|
|
13106
|
+
reason: result.reason || result.store_reason || null,
|
|
13103
13107
|
};
|
|
13108
|
+
if (result.error !== undefined) receipt.error = result.error;
|
|
13104
13109
|
if (result.returned !== undefined) receipt.returned = result.returned;
|
|
13105
13110
|
if (result.expected_return !== undefined) receipt.expected_return = result.expected_return;
|
|
13106
13111
|
const returnSummary = profileSetupReturnSummary(result);
|
|
@@ -13118,8 +13123,9 @@ function profileSetupWindowEvalReceipts(results) {
|
|
|
13118
13123
|
script_length: result.script_length ?? null,
|
|
13119
13124
|
return_captured: result.return_captured ?? null,
|
|
13120
13125
|
return_stored_to: result.return_stored_to ?? null,
|
|
13121
|
-
reason: result.reason || result.
|
|
13126
|
+
reason: result.reason || result.store_reason || null,
|
|
13122
13127
|
};
|
|
13128
|
+
if (result.error !== undefined) receipt.error = result.error;
|
|
13123
13129
|
if (result.returned !== undefined) receipt.returned = result.returned;
|
|
13124
13130
|
if (result.expected_return !== undefined) receipt.expected_return = result.expected_return;
|
|
13125
13131
|
const returnSummary = profileSetupReturnSummary(result);
|
|
@@ -13529,6 +13535,7 @@ function profileSetupSummary(viewports, actionCount, expectedActionCountsByViewp
|
|
|
13529
13535
|
selector: result.selector ?? null,
|
|
13530
13536
|
frame_selector: result.frame_selector ?? null,
|
|
13531
13537
|
reason: result.reason || result.error || null,
|
|
13538
|
+
error: result.error || null,
|
|
13532
13539
|
case_insensitive_text: compactProfileSetupSummaryText(result.case_insensitive_text),
|
|
13533
13540
|
})),
|
|
13534
13541
|
optional_failed: optionalFailed.map((result) => ({
|
|
@@ -13537,6 +13544,7 @@ function profileSetupSummary(viewports, actionCount, expectedActionCountsByViewp
|
|
|
13537
13544
|
selector: result.selector ?? null,
|
|
13538
13545
|
frame_selector: result.frame_selector ?? null,
|
|
13539
13546
|
reason: result.reason || result.error || null,
|
|
13547
|
+
error: result.error || null,
|
|
13540
13548
|
case_insensitive_text: compactProfileSetupSummaryText(result.case_insensitive_text),
|
|
13541
13549
|
})),
|
|
13542
13550
|
};
|
package/dist/index.js
CHANGED
|
@@ -62,7 +62,7 @@ import {
|
|
|
62
62
|
resolveRiddleProofProfileTimeoutSec,
|
|
63
63
|
slugifyRiddleProofProfileName,
|
|
64
64
|
summarizeRiddleProofProfileResult
|
|
65
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-Z42O55GB.js";
|
|
66
66
|
import {
|
|
67
67
|
DEFAULT_RIDDLE_API_BASE_URL,
|
|
68
68
|
DEFAULT_RIDDLE_API_KEY_FILE,
|
package/dist/profile.cjs
CHANGED
|
@@ -536,8 +536,9 @@ function profileSetupWindowCallReceipts(results) {
|
|
|
536
536
|
path: result.path ?? null,
|
|
537
537
|
return_captured: result.return_captured ?? null,
|
|
538
538
|
return_stored_to: result.return_stored_to ?? null,
|
|
539
|
-
reason: result.reason ?? result.
|
|
539
|
+
reason: result.reason ?? result.store_reason ?? null
|
|
540
540
|
};
|
|
541
|
+
if (result.error !== void 0) receipt.error = result.error;
|
|
541
542
|
if (result.returned !== void 0) receipt.returned = result.returned;
|
|
542
543
|
if (result.expected_return !== void 0) receipt.expected_return = result.expected_return;
|
|
543
544
|
const returnSummary = profileSetupReturnSummary(result);
|
|
@@ -553,8 +554,9 @@ function profileSetupWindowEvalReceipts(results) {
|
|
|
553
554
|
script_length: result.script_length ?? null,
|
|
554
555
|
return_captured: result.return_captured ?? null,
|
|
555
556
|
return_stored_to: result.return_stored_to ?? null,
|
|
556
|
-
reason: result.reason ?? result.
|
|
557
|
+
reason: result.reason ?? result.store_reason ?? null
|
|
557
558
|
};
|
|
559
|
+
if (result.error !== void 0) receipt.error = result.error;
|
|
558
560
|
if (result.returned !== void 0) receipt.returned = result.returned;
|
|
559
561
|
if (result.expected_return !== void 0) receipt.expected_return = result.expected_return;
|
|
560
562
|
const returnSummary = profileSetupReturnSummary(result);
|
|
@@ -919,6 +921,7 @@ function profileSetupSummary(viewports, actionCount, expectedActionCountByViewpo
|
|
|
919
921
|
selector: result.selector ?? null,
|
|
920
922
|
frame_selector: result.frame_selector ?? null,
|
|
921
923
|
reason: result.reason ?? result.error ?? null,
|
|
924
|
+
error: result.error ?? null,
|
|
922
925
|
case_insensitive_text: compactProfileSetupSummaryText(result.case_insensitive_text)
|
|
923
926
|
})),
|
|
924
927
|
optional_failed: optionalFailed.map((result) => ({
|
|
@@ -927,6 +930,7 @@ function profileSetupSummary(viewports, actionCount, expectedActionCountByViewpo
|
|
|
927
930
|
selector: result.selector ?? null,
|
|
928
931
|
frame_selector: result.frame_selector ?? null,
|
|
929
932
|
reason: result.reason ?? result.error ?? null,
|
|
933
|
+
error: result.error ?? null,
|
|
930
934
|
case_insensitive_text: compactProfileSetupSummaryText(result.case_insensitive_text)
|
|
931
935
|
}))
|
|
932
936
|
};
|
|
@@ -4413,8 +4417,9 @@ function profileSetupWindowCallReceipts(results) {
|
|
|
4413
4417
|
path: result.path ?? null,
|
|
4414
4418
|
return_captured: result.return_captured ?? null,
|
|
4415
4419
|
return_stored_to: result.return_stored_to ?? null,
|
|
4416
|
-
reason: result.reason || result.
|
|
4420
|
+
reason: result.reason || result.store_reason || null,
|
|
4417
4421
|
};
|
|
4422
|
+
if (result.error !== undefined) receipt.error = result.error;
|
|
4418
4423
|
if (result.returned !== undefined) receipt.returned = result.returned;
|
|
4419
4424
|
if (result.expected_return !== undefined) receipt.expected_return = result.expected_return;
|
|
4420
4425
|
const returnSummary = profileSetupReturnSummary(result);
|
|
@@ -4432,8 +4437,9 @@ function profileSetupWindowEvalReceipts(results) {
|
|
|
4432
4437
|
script_length: result.script_length ?? null,
|
|
4433
4438
|
return_captured: result.return_captured ?? null,
|
|
4434
4439
|
return_stored_to: result.return_stored_to ?? null,
|
|
4435
|
-
reason: result.reason || result.
|
|
4440
|
+
reason: result.reason || result.store_reason || null,
|
|
4436
4441
|
};
|
|
4442
|
+
if (result.error !== undefined) receipt.error = result.error;
|
|
4437
4443
|
if (result.returned !== undefined) receipt.returned = result.returned;
|
|
4438
4444
|
if (result.expected_return !== undefined) receipt.expected_return = result.expected_return;
|
|
4439
4445
|
const returnSummary = profileSetupReturnSummary(result);
|
|
@@ -4843,6 +4849,7 @@ function profileSetupSummary(viewports, actionCount, expectedActionCountsByViewp
|
|
|
4843
4849
|
selector: result.selector ?? null,
|
|
4844
4850
|
frame_selector: result.frame_selector ?? null,
|
|
4845
4851
|
reason: result.reason || result.error || null,
|
|
4852
|
+
error: result.error || null,
|
|
4846
4853
|
case_insensitive_text: compactProfileSetupSummaryText(result.case_insensitive_text),
|
|
4847
4854
|
})),
|
|
4848
4855
|
optional_failed: optionalFailed.map((result) => ({
|
|
@@ -4851,6 +4858,7 @@ function profileSetupSummary(viewports, actionCount, expectedActionCountsByViewp
|
|
|
4851
4858
|
selector: result.selector ?? null,
|
|
4852
4859
|
frame_selector: result.frame_selector ?? null,
|
|
4853
4860
|
reason: result.reason || result.error || null,
|
|
4861
|
+
error: result.error || null,
|
|
4854
4862
|
case_insensitive_text: compactProfileSetupSummaryText(result.case_insensitive_text),
|
|
4855
4863
|
})),
|
|
4856
4864
|
};
|
package/dist/profile.js
CHANGED
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
resolveRiddleProofProfileTimeoutSec,
|
|
24
24
|
slugifyRiddleProofProfileName,
|
|
25
25
|
summarizeRiddleProofProfileResult
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-Z42O55GB.js";
|
|
27
27
|
export {
|
|
28
28
|
RIDDLE_PROOF_PROFILE_CHECK_TYPES,
|
|
29
29
|
RIDDLE_PROOF_PROFILE_EVIDENCE_VERSION,
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"label": "capture-route-active-state",
|
|
22
22
|
"timeout_ms": 10000,
|
|
23
23
|
"store_return_to": "__rpRouteExit.active",
|
|
24
|
-
"script": "const proof=window.__exampleRouteProof?.read?.()||{};const watched=['__exampleRouteProof','__exampleProofLastReceipt','exampleTouchState'];const activeGlobals=watched.filter((name)=>
|
|
24
|
+
"script": "const proof=window.__exampleRouteProof?.read?.()||{};const watched=['__exampleRouteProof','__exampleProofLastReceipt','exampleTouchState'];const activeGlobals=watched.filter((name)=>window[name]!==undefined);const out={ready:proof.ready===true,route:location.pathname,activeGlobals,activeGlobalCount:activeGlobals.length,receiptId:String(proof.receiptId||''),mode:String(proof.mode||'')};out.ok=out.ready===true&&out.activeGlobalCount>0;window.__rpRouteExit={...(window.__rpRouteExit||{}),active:out};return out;",
|
|
25
25
|
"return_summary_fields": [
|
|
26
26
|
{ "path": "ok" },
|
|
27
27
|
{ "path": "ready" },
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"label": "capture-route-exit-cleanup",
|
|
40
40
|
"timeout_ms": 10000,
|
|
41
41
|
"store_return_to": "__rpRouteExit.cleanup",
|
|
42
|
-
"script": "const watched=['__exampleRouteProof','__exampleProofLastReceipt','exampleTouchState'];const staleNames=watched.filter((name)=>
|
|
42
|
+
"script": "const watched=['__exampleRouteProof','__exampleProofLastReceipt','exampleTouchState'];const staleNames=watched.filter((name)=>window[name]!==undefined);const out={ok:location.pathname==='/'&&staleNames.length===0,route:location.pathname,staleNames,staleCount:staleNames.length};window.__rpRouteExit={...(window.__rpRouteExit||{}),cleanup:out};return out;",
|
|
43
43
|
"return_summary_fields": [
|
|
44
44
|
{ "path": "ok" },
|
|
45
45
|
{ "path": "route" },
|