@riddledc/riddle-proof 0.7.108 → 0.7.109
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 +7 -2
- package/dist/cli.cjs +5 -3
- package/dist/cli.js +5 -3
- package/dist/proof-run-engine.d.cts +3 -3
- package/dist/proof-run-engine.d.ts +3 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -526,8 +526,13 @@ artifact links should fail the profile:
|
|
|
526
526
|
```
|
|
527
527
|
|
|
528
528
|
The check defaults to `a[href]`, deduplicates URLs, probes up to 100 selected
|
|
529
|
-
URLs, and treats HTTP `2xx` / `3xx` responses as healthy.
|
|
530
|
-
`
|
|
529
|
+
URLs, and treats HTTP `2xx` / `3xx` responses as healthy. `expected_count` and
|
|
530
|
+
`min_count` apply to the probed URL set after same-origin filtering, URL
|
|
531
|
+
deduplication, and the `max_links` limit. The run summary also reports
|
|
532
|
+
`discovered_count` when it differs, which helps explain cases where a page has
|
|
533
|
+
two DOM nodes pointing at the same artifact URL. Use `dedupe: false` when the
|
|
534
|
+
contract should count duplicate DOM candidates instead of unique artifact URLs.
|
|
535
|
+
Use `allowed_statuses` or `expected_status` when a narrower status contract is
|
|
531
536
|
intentional, `min_count` for lower-bound audits, `min_bytes` when a one-byte
|
|
532
537
|
range response is too weak, `allowed_content_types` for MIME checks, and
|
|
533
538
|
`max_links` when the selected set is intentionally larger than 100.
|
package/dist/cli.cjs
CHANGED
|
@@ -12911,8 +12911,8 @@ function profileCheckMarkdownTarget(check) {
|
|
|
12911
12911
|
const minCount = cliFiniteNumber(evidence.min_count);
|
|
12912
12912
|
const minBytes = cliFiniteNumber(evidence.min_bytes);
|
|
12913
12913
|
const parts = [];
|
|
12914
|
-
if (expectedCount !== void 0) parts.push(`links = ${expectedCount}`);
|
|
12915
|
-
else if (minCount !== void 0) parts.push(`links >= ${minCount}`);
|
|
12914
|
+
if (expectedCount !== void 0) parts.push(`probed links = ${expectedCount}`);
|
|
12915
|
+
else if (minCount !== void 0) parts.push(`probed links >= ${minCount}`);
|
|
12916
12916
|
if (minBytes !== void 0) parts.push(`bytes >= ${minBytes}`);
|
|
12917
12917
|
if (selector && parts.length) return `${markdownInlineCode(selector)} ${parts.join(", ")}`;
|
|
12918
12918
|
return selector ? markdownInlineCode(selector) : parts.join(", ") || void 0;
|
|
@@ -13124,6 +13124,7 @@ function profileLinkStatusSummaryMarkdown(result) {
|
|
|
13124
13124
|
const selector = cliString(evidence.selector);
|
|
13125
13125
|
const viewports = Array.isArray(evidence.viewports) ? evidence.viewports.map(cliRecord).filter((viewport) => Boolean(viewport)) : [];
|
|
13126
13126
|
const totals = viewports.map((viewport) => cliFiniteNumber(viewport.total_count)).filter((count) => count !== void 0);
|
|
13127
|
+
const discoveredTotals = viewports.map((viewport) => cliFiniteNumber(viewport.discovered_count)).filter((count) => count !== void 0);
|
|
13127
13128
|
const okTotal = viewports.reduce((sum, viewport) => sum + (cliFiniteNumber(viewport.ok_count) || 0), 0);
|
|
13128
13129
|
const failedTotal = viewports.reduce((sum, viewport) => sum + (cliFiniteNumber(viewport.failed_count) || 0), 0);
|
|
13129
13130
|
const truncatedTotal = viewports.filter((viewport) => viewport.truncated === true).length;
|
|
@@ -13131,8 +13132,9 @@ function profileLinkStatusSummaryMarkdown(result) {
|
|
|
13131
13132
|
const minBytes = cliFiniteNumber(evidence.min_bytes);
|
|
13132
13133
|
const allowedContentTypes = Array.isArray(evidence.allowed_content_types) ? evidence.allowed_content_types.map(cliString).filter((value) => Boolean(value)) : [];
|
|
13133
13134
|
const countText = totals.length ? totals.join("/") : "unknown";
|
|
13135
|
+
const discoveredText = discoveredTotals.length && discoveredTotals.some((count, index) => count !== totals[index]) ? `, discovered ${discoveredTotals.join("/")}` : "";
|
|
13134
13136
|
lines.push(
|
|
13135
|
-
`- ${label}${selector ? ` ${markdownInlineCode(selector)}` : ""}: links ${countText}, ok ${okTotal}, failures ${failedTotal}${omittedTotal ? `, compacted ${omittedTotal} result row(s)` : ""}${truncatedTotal ? `, truncated viewports ${truncatedTotal}` : ""}${minBytes !== void 0 ? `, min bytes ${minBytes}` : ""}${allowedContentTypes.length ? `, content types ${allowedContentTypes.map((value) => markdownInlineCode(value)).join(", ")}` : ""}`
|
|
13137
|
+
`- ${label}${selector ? ` ${markdownInlineCode(selector)}` : ""}: probed links ${countText}${discoveredText}, ok ${okTotal}, failures ${failedTotal}${omittedTotal ? `, compacted ${omittedTotal} result row(s)` : ""}${truncatedTotal ? `, truncated viewports ${truncatedTotal}` : ""}${minBytes !== void 0 ? `, min bytes ${minBytes}` : ""}${allowedContentTypes.length ? `, content types ${allowedContentTypes.map((value) => markdownInlineCode(value)).join(", ")}` : ""}`
|
|
13136
13138
|
);
|
|
13137
13139
|
}
|
|
13138
13140
|
return lines;
|
package/dist/cli.js
CHANGED
|
@@ -438,8 +438,8 @@ function profileCheckMarkdownTarget(check) {
|
|
|
438
438
|
const minCount = cliFiniteNumber(evidence.min_count);
|
|
439
439
|
const minBytes = cliFiniteNumber(evidence.min_bytes);
|
|
440
440
|
const parts = [];
|
|
441
|
-
if (expectedCount !== void 0) parts.push(`links = ${expectedCount}`);
|
|
442
|
-
else if (minCount !== void 0) parts.push(`links >= ${minCount}`);
|
|
441
|
+
if (expectedCount !== void 0) parts.push(`probed links = ${expectedCount}`);
|
|
442
|
+
else if (minCount !== void 0) parts.push(`probed links >= ${minCount}`);
|
|
443
443
|
if (minBytes !== void 0) parts.push(`bytes >= ${minBytes}`);
|
|
444
444
|
if (selector && parts.length) return `${markdownInlineCode(selector)} ${parts.join(", ")}`;
|
|
445
445
|
return selector ? markdownInlineCode(selector) : parts.join(", ") || void 0;
|
|
@@ -651,6 +651,7 @@ function profileLinkStatusSummaryMarkdown(result) {
|
|
|
651
651
|
const selector = cliString(evidence.selector);
|
|
652
652
|
const viewports = Array.isArray(evidence.viewports) ? evidence.viewports.map(cliRecord).filter((viewport) => Boolean(viewport)) : [];
|
|
653
653
|
const totals = viewports.map((viewport) => cliFiniteNumber(viewport.total_count)).filter((count) => count !== void 0);
|
|
654
|
+
const discoveredTotals = viewports.map((viewport) => cliFiniteNumber(viewport.discovered_count)).filter((count) => count !== void 0);
|
|
654
655
|
const okTotal = viewports.reduce((sum, viewport) => sum + (cliFiniteNumber(viewport.ok_count) || 0), 0);
|
|
655
656
|
const failedTotal = viewports.reduce((sum, viewport) => sum + (cliFiniteNumber(viewport.failed_count) || 0), 0);
|
|
656
657
|
const truncatedTotal = viewports.filter((viewport) => viewport.truncated === true).length;
|
|
@@ -658,8 +659,9 @@ function profileLinkStatusSummaryMarkdown(result) {
|
|
|
658
659
|
const minBytes = cliFiniteNumber(evidence.min_bytes);
|
|
659
660
|
const allowedContentTypes = Array.isArray(evidence.allowed_content_types) ? evidence.allowed_content_types.map(cliString).filter((value) => Boolean(value)) : [];
|
|
660
661
|
const countText = totals.length ? totals.join("/") : "unknown";
|
|
662
|
+
const discoveredText = discoveredTotals.length && discoveredTotals.some((count, index) => count !== totals[index]) ? `, discovered ${discoveredTotals.join("/")}` : "";
|
|
661
663
|
lines.push(
|
|
662
|
-
`- ${label}${selector ? ` ${markdownInlineCode(selector)}` : ""}: links ${countText}, ok ${okTotal}, failures ${failedTotal}${omittedTotal ? `, compacted ${omittedTotal} result row(s)` : ""}${truncatedTotal ? `, truncated viewports ${truncatedTotal}` : ""}${minBytes !== void 0 ? `, min bytes ${minBytes}` : ""}${allowedContentTypes.length ? `, content types ${allowedContentTypes.map((value) => markdownInlineCode(value)).join(", ")}` : ""}`
|
|
664
|
+
`- ${label}${selector ? ` ${markdownInlineCode(selector)}` : ""}: probed links ${countText}${discoveredText}, ok ${okTotal}, failures ${failedTotal}${omittedTotal ? `, compacted ${omittedTotal} result row(s)` : ""}${truncatedTotal ? `, truncated viewports ${truncatedTotal}` : ""}${minBytes !== void 0 ? `, min bytes ${minBytes}` : ""}${allowedContentTypes.length ? `, content types ${allowedContentTypes.map((value) => markdownInlineCode(value)).join(", ")}` : ""}`
|
|
663
665
|
);
|
|
664
666
|
}
|
|
665
667
|
return lines;
|
|
@@ -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: "author" | "recon" | "ship" | "implement" | "verify" | "setup" | "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: "author" | "recon" | "ship" | "implement" | "verify" | "setup" | "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: "author" | "recon" | "ship" | "implement" | "verify" | "setup" | "run";
|
|
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: "author" | "recon" | "ship" | "implement" | "verify" | "setup" | "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: "author" | "recon" | "ship" | "implement" | "verify" | "setup" | "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: "author" | "recon" | "ship" | "implement" | "verify" | "setup" | "run";
|
|
663
663
|
state_path: string;
|
|
664
664
|
stage: any;
|
|
665
665
|
summary: string;
|