@riddledc/riddle-proof 0.7.95 → 0.7.97

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.
@@ -995,6 +995,10 @@ function summarizeLinkStatusEvidence(viewport, check) {
995
995
  }
996
996
  const results = Array.isArray(linkEvidence.results) ? linkEvidence.results.filter(isRecord) : [];
997
997
  const totalCount = numberValue(linkEvidence.total_count) ?? results.length;
998
+ const resultCount = numberValue(linkEvidence.result_count) ?? totalCount;
999
+ const storedResultCount = numberValue(linkEvidence.stored_result_count) ?? results.length;
1000
+ const omittedResultCount = numberValue(linkEvidence.omitted_result_count) ?? Math.max(0, resultCount - storedResultCount);
1001
+ const omittedSuccessCount = numberValue(linkEvidence.omitted_success_count) ?? 0;
998
1002
  const okCount = results.filter((result) => linkStatusResultOk(result, check)).length;
999
1003
  const failures = results.filter((result) => !linkStatusResultOk(result, check)).map((result) => ({
1000
1004
  code: "link_status_failed",
@@ -1042,6 +1046,11 @@ function summarizeLinkStatusEvidence(viewport, check) {
1042
1046
  failed_count: failures.length,
1043
1047
  truncated: linkEvidence.truncated === true,
1044
1048
  max_links: numberValue(linkEvidence.max_links) ?? check.max_links ?? 100,
1049
+ result_count: resultCount,
1050
+ stored_result_count: storedResultCount,
1051
+ omitted_result_count: omittedResultCount,
1052
+ omitted_success_count: omittedSuccessCount,
1053
+ results_compacted: linkEvidence.results_compacted === true || omittedResultCount > 0,
1045
1054
  min_bytes: check.min_bytes ?? null,
1046
1055
  allowed_content_types: check.allowed_content_types ?? null,
1047
1056
  status_counts: statusCounts,
@@ -2230,6 +2239,10 @@ function summarizeLinkStatusEvidence(viewport, check) {
2230
2239
  }
2231
2240
  const results = Array.isArray(linkEvidence.results) ? linkEvidence.results.filter((result) => result && typeof result === "object" && !Array.isArray(result)) : [];
2232
2241
  const totalCount = typeof linkEvidence.total_count === "number" && Number.isFinite(linkEvidence.total_count) ? linkEvidence.total_count : results.length;
2242
+ const resultCount = typeof linkEvidence.result_count === "number" && Number.isFinite(linkEvidence.result_count) ? linkEvidence.result_count : totalCount;
2243
+ const storedResultCount = typeof linkEvidence.stored_result_count === "number" && Number.isFinite(linkEvidence.stored_result_count) ? linkEvidence.stored_result_count : results.length;
2244
+ const omittedResultCount = typeof linkEvidence.omitted_result_count === "number" && Number.isFinite(linkEvidence.omitted_result_count) ? linkEvidence.omitted_result_count : Math.max(0, resultCount - storedResultCount);
2245
+ const omittedSuccessCount = typeof linkEvidence.omitted_success_count === "number" && Number.isFinite(linkEvidence.omitted_success_count) ? linkEvidence.omitted_success_count : 0;
2233
2246
  const okCount = results.filter((result) => linkStatusResultOk(result, check)).length;
2234
2247
  const failures = results
2235
2248
  .filter((result) => !linkStatusResultOk(result, check))
@@ -2277,6 +2290,11 @@ function summarizeLinkStatusEvidence(viewport, check) {
2277
2290
  failed_count: failures.length,
2278
2291
  truncated: linkEvidence.truncated === true,
2279
2292
  max_links: typeof linkEvidence.max_links === "number" ? linkEvidence.max_links : check.max_links || 100,
2293
+ result_count: resultCount,
2294
+ stored_result_count: storedResultCount,
2295
+ omitted_result_count: omittedResultCount,
2296
+ omitted_success_count: omittedSuccessCount,
2297
+ results_compacted: linkEvidence.results_compacted === true || omittedResultCount > 0,
2280
2298
  min_bytes: typeof check.min_bytes === "number" && Number.isFinite(check.min_bytes) ? check.min_bytes : null,
2281
2299
  allowed_content_types: Array.isArray(check.allowed_content_types) ? check.allowed_content_types : null,
2282
2300
  status_counts: linkEvidence.status_counts && typeof linkEvidence.status_counts === "object" && !Array.isArray(linkEvidence.status_counts) ? linkEvidence.status_counts : {},
@@ -4216,6 +4234,30 @@ async function probeLinkStatus(candidate, check) {
4216
4234
  return result;
4217
4235
  }
4218
4236
  }
4237
+ function compactLinkProbeResults(results) {
4238
+ const allResults = Array.isArray(results) ? results : [];
4239
+ if (allResults.length <= 20) {
4240
+ return {
4241
+ result_count: allResults.length,
4242
+ stored_result_count: allResults.length,
4243
+ omitted_result_count: 0,
4244
+ omitted_success_count: 0,
4245
+ results_compacted: false,
4246
+ results: allResults,
4247
+ };
4248
+ }
4249
+ const successResults = allResults.filter((result) => result && result.ok);
4250
+ const sampledSuccesses = new Set(successResults.slice(0, 5));
4251
+ const storedResults = allResults.filter((result) => result && (!result.ok || sampledSuccesses.has(result)));
4252
+ return {
4253
+ result_count: allResults.length,
4254
+ stored_result_count: storedResults.length,
4255
+ omitted_result_count: allResults.length - storedResults.length,
4256
+ omitted_success_count: Math.max(0, successResults.length - sampledSuccesses.size),
4257
+ results_compacted: storedResults.length < allResults.length,
4258
+ results: storedResults,
4259
+ };
4260
+ }
4219
4261
  async function collectLinkStatus(check) {
4220
4262
  const selector = linkStatusSelector(check);
4221
4263
  const candidateResult = await collectLinkCandidates(selector);
@@ -4272,6 +4314,7 @@ async function collectLinkStatus(check) {
4272
4314
  const key = result.status == null ? "error" : String(result.status);
4273
4315
  statusCounts[key] = (statusCounts[key] || 0) + 1;
4274
4316
  }
4317
+ const compactedResults = compactLinkProbeResults(results);
4275
4318
  return {
4276
4319
  version: "riddle-proof.link-status.v1",
4277
4320
  selector,
@@ -4293,7 +4336,7 @@ async function collectLinkStatus(check) {
4293
4336
  failed_count: failures.length,
4294
4337
  status_counts: statusCounts,
4295
4338
  failures: failures.slice(0, 20),
4296
- results,
4339
+ ...compactedResults,
4297
4340
  };
4298
4341
  }
4299
4342
  async function frameEvidence(selector) {
package/dist/cli.cjs CHANGED
@@ -7888,6 +7888,10 @@ function summarizeLinkStatusEvidence(viewport, check) {
7888
7888
  }
7889
7889
  const results = Array.isArray(linkEvidence.results) ? linkEvidence.results.filter(isRecord) : [];
7890
7890
  const totalCount = numberValue(linkEvidence.total_count) ?? results.length;
7891
+ const resultCount = numberValue(linkEvidence.result_count) ?? totalCount;
7892
+ const storedResultCount = numberValue(linkEvidence.stored_result_count) ?? results.length;
7893
+ const omittedResultCount = numberValue(linkEvidence.omitted_result_count) ?? Math.max(0, resultCount - storedResultCount);
7894
+ const omittedSuccessCount = numberValue(linkEvidence.omitted_success_count) ?? 0;
7891
7895
  const okCount = results.filter((result) => linkStatusResultOk(result, check)).length;
7892
7896
  const failures = results.filter((result) => !linkStatusResultOk(result, check)).map((result) => ({
7893
7897
  code: "link_status_failed",
@@ -7935,6 +7939,11 @@ function summarizeLinkStatusEvidence(viewport, check) {
7935
7939
  failed_count: failures.length,
7936
7940
  truncated: linkEvidence.truncated === true,
7937
7941
  max_links: numberValue(linkEvidence.max_links) ?? check.max_links ?? 100,
7942
+ result_count: resultCount,
7943
+ stored_result_count: storedResultCount,
7944
+ omitted_result_count: omittedResultCount,
7945
+ omitted_success_count: omittedSuccessCount,
7946
+ results_compacted: linkEvidence.results_compacted === true || omittedResultCount > 0,
7938
7947
  min_bytes: check.min_bytes ?? null,
7939
7948
  allowed_content_types: check.allowed_content_types ?? null,
7940
7949
  status_counts: statusCounts,
@@ -9107,6 +9116,10 @@ function summarizeLinkStatusEvidence(viewport, check) {
9107
9116
  }
9108
9117
  const results = Array.isArray(linkEvidence.results) ? linkEvidence.results.filter((result) => result && typeof result === "object" && !Array.isArray(result)) : [];
9109
9118
  const totalCount = typeof linkEvidence.total_count === "number" && Number.isFinite(linkEvidence.total_count) ? linkEvidence.total_count : results.length;
9119
+ const resultCount = typeof linkEvidence.result_count === "number" && Number.isFinite(linkEvidence.result_count) ? linkEvidence.result_count : totalCount;
9120
+ const storedResultCount = typeof linkEvidence.stored_result_count === "number" && Number.isFinite(linkEvidence.stored_result_count) ? linkEvidence.stored_result_count : results.length;
9121
+ const omittedResultCount = typeof linkEvidence.omitted_result_count === "number" && Number.isFinite(linkEvidence.omitted_result_count) ? linkEvidence.omitted_result_count : Math.max(0, resultCount - storedResultCount);
9122
+ const omittedSuccessCount = typeof linkEvidence.omitted_success_count === "number" && Number.isFinite(linkEvidence.omitted_success_count) ? linkEvidence.omitted_success_count : 0;
9110
9123
  const okCount = results.filter((result) => linkStatusResultOk(result, check)).length;
9111
9124
  const failures = results
9112
9125
  .filter((result) => !linkStatusResultOk(result, check))
@@ -9154,6 +9167,11 @@ function summarizeLinkStatusEvidence(viewport, check) {
9154
9167
  failed_count: failures.length,
9155
9168
  truncated: linkEvidence.truncated === true,
9156
9169
  max_links: typeof linkEvidence.max_links === "number" ? linkEvidence.max_links : check.max_links || 100,
9170
+ result_count: resultCount,
9171
+ stored_result_count: storedResultCount,
9172
+ omitted_result_count: omittedResultCount,
9173
+ omitted_success_count: omittedSuccessCount,
9174
+ results_compacted: linkEvidence.results_compacted === true || omittedResultCount > 0,
9157
9175
  min_bytes: typeof check.min_bytes === "number" && Number.isFinite(check.min_bytes) ? check.min_bytes : null,
9158
9176
  allowed_content_types: Array.isArray(check.allowed_content_types) ? check.allowed_content_types : null,
9159
9177
  status_counts: linkEvidence.status_counts && typeof linkEvidence.status_counts === "object" && !Array.isArray(linkEvidence.status_counts) ? linkEvidence.status_counts : {},
@@ -11093,6 +11111,30 @@ async function probeLinkStatus(candidate, check) {
11093
11111
  return result;
11094
11112
  }
11095
11113
  }
11114
+ function compactLinkProbeResults(results) {
11115
+ const allResults = Array.isArray(results) ? results : [];
11116
+ if (allResults.length <= 20) {
11117
+ return {
11118
+ result_count: allResults.length,
11119
+ stored_result_count: allResults.length,
11120
+ omitted_result_count: 0,
11121
+ omitted_success_count: 0,
11122
+ results_compacted: false,
11123
+ results: allResults,
11124
+ };
11125
+ }
11126
+ const successResults = allResults.filter((result) => result && result.ok);
11127
+ const sampledSuccesses = new Set(successResults.slice(0, 5));
11128
+ const storedResults = allResults.filter((result) => result && (!result.ok || sampledSuccesses.has(result)));
11129
+ return {
11130
+ result_count: allResults.length,
11131
+ stored_result_count: storedResults.length,
11132
+ omitted_result_count: allResults.length - storedResults.length,
11133
+ omitted_success_count: Math.max(0, successResults.length - sampledSuccesses.size),
11134
+ results_compacted: storedResults.length < allResults.length,
11135
+ results: storedResults,
11136
+ };
11137
+ }
11096
11138
  async function collectLinkStatus(check) {
11097
11139
  const selector = linkStatusSelector(check);
11098
11140
  const candidateResult = await collectLinkCandidates(selector);
@@ -11149,6 +11191,7 @@ async function collectLinkStatus(check) {
11149
11191
  const key = result.status == null ? "error" : String(result.status);
11150
11192
  statusCounts[key] = (statusCounts[key] || 0) + 1;
11151
11193
  }
11194
+ const compactedResults = compactLinkProbeResults(results);
11152
11195
  return {
11153
11196
  version: "riddle-proof.link-status.v1",
11154
11197
  selector,
@@ -11170,7 +11213,7 @@ async function collectLinkStatus(check) {
11170
11213
  failed_count: failures.length,
11171
11214
  status_counts: statusCounts,
11172
11215
  failures: failures.slice(0, 20),
11173
- results,
11216
+ ...compactedResults,
11174
11217
  };
11175
11218
  }
11176
11219
  async function frameEvidence(selector) {
@@ -12346,7 +12389,9 @@ function profileCheckMarkdownTarget(check) {
12346
12389
  }
12347
12390
  if (check.type === "selector_text_visible" || check.type === "selector_text_absent") {
12348
12391
  const textTarget = profileCheckTextTarget(evidence);
12349
- if (selector && textTarget) return `${markdownInlineCode(selector)} contains ${textTarget}`;
12392
+ const verb = check.type === "selector_text_absent" ? "does not contain" : "contains";
12393
+ if (selector && textTarget) return `${markdownInlineCode(selector)} ${verb} ${textTarget}`;
12394
+ if (textTarget && check.type === "selector_text_absent") return `${verb} ${textTarget}`;
12350
12395
  return selector ? markdownInlineCode(selector) : textTarget;
12351
12396
  }
12352
12397
  if (check.type === "selector_text_order") {
@@ -12592,11 +12637,12 @@ function profileLinkStatusSummaryMarkdown(result) {
12592
12637
  const okTotal = viewports.reduce((sum, viewport) => sum + (cliFiniteNumber(viewport.ok_count) || 0), 0);
12593
12638
  const failedTotal = viewports.reduce((sum, viewport) => sum + (cliFiniteNumber(viewport.failed_count) || 0), 0);
12594
12639
  const truncatedTotal = viewports.filter((viewport) => viewport.truncated === true).length;
12640
+ const omittedTotal = viewports.reduce((sum, viewport) => sum + (cliFiniteNumber(viewport.omitted_result_count) || 0), 0);
12595
12641
  const minBytes = cliFiniteNumber(evidence.min_bytes);
12596
12642
  const allowedContentTypes = Array.isArray(evidence.allowed_content_types) ? evidence.allowed_content_types.map(cliString).filter((value) => Boolean(value)) : [];
12597
12643
  const countText = totals.length ? totals.join("/") : "unknown";
12598
12644
  lines.push(
12599
- `- ${label}${selector ? ` ${markdownInlineCode(selector)}` : ""}: links ${countText}, ok ${okTotal}, failures ${failedTotal}${truncatedTotal ? `, truncated viewports ${truncatedTotal}` : ""}${minBytes !== void 0 ? `, min bytes ${minBytes}` : ""}${allowedContentTypes.length ? `, content types ${allowedContentTypes.map((value) => markdownInlineCode(value)).join(", ")}` : ""}`
12645
+ `- ${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(", ")}` : ""}`
12600
12646
  );
12601
12647
  }
12602
12648
  return lines;
package/dist/cli.js CHANGED
@@ -10,7 +10,7 @@ import {
10
10
  profileStatusExitCode,
11
11
  resolveRiddleProofProfileTargetUrl,
12
12
  resolveRiddleProofProfileTimeoutSec
13
- } from "./chunk-5OCJKEHE.js";
13
+ } from "./chunk-G3UY3SHZ.js";
14
14
  import {
15
15
  createRiddleApiClient,
16
16
  parseRiddleViewport
@@ -391,7 +391,9 @@ function profileCheckMarkdownTarget(check) {
391
391
  }
392
392
  if (check.type === "selector_text_visible" || check.type === "selector_text_absent") {
393
393
  const textTarget = profileCheckTextTarget(evidence);
394
- if (selector && textTarget) return `${markdownInlineCode(selector)} contains ${textTarget}`;
394
+ const verb = check.type === "selector_text_absent" ? "does not contain" : "contains";
395
+ if (selector && textTarget) return `${markdownInlineCode(selector)} ${verb} ${textTarget}`;
396
+ if (textTarget && check.type === "selector_text_absent") return `${verb} ${textTarget}`;
395
397
  return selector ? markdownInlineCode(selector) : textTarget;
396
398
  }
397
399
  if (check.type === "selector_text_order") {
@@ -637,11 +639,12 @@ function profileLinkStatusSummaryMarkdown(result) {
637
639
  const okTotal = viewports.reduce((sum, viewport) => sum + (cliFiniteNumber(viewport.ok_count) || 0), 0);
638
640
  const failedTotal = viewports.reduce((sum, viewport) => sum + (cliFiniteNumber(viewport.failed_count) || 0), 0);
639
641
  const truncatedTotal = viewports.filter((viewport) => viewport.truncated === true).length;
642
+ const omittedTotal = viewports.reduce((sum, viewport) => sum + (cliFiniteNumber(viewport.omitted_result_count) || 0), 0);
640
643
  const minBytes = cliFiniteNumber(evidence.min_bytes);
641
644
  const allowedContentTypes = Array.isArray(evidence.allowed_content_types) ? evidence.allowed_content_types.map(cliString).filter((value) => Boolean(value)) : [];
642
645
  const countText = totals.length ? totals.join("/") : "unknown";
643
646
  lines.push(
644
- `- ${label}${selector ? ` ${markdownInlineCode(selector)}` : ""}: links ${countText}, ok ${okTotal}, failures ${failedTotal}${truncatedTotal ? `, truncated viewports ${truncatedTotal}` : ""}${minBytes !== void 0 ? `, min bytes ${minBytes}` : ""}${allowedContentTypes.length ? `, content types ${allowedContentTypes.map((value) => markdownInlineCode(value)).join(", ")}` : ""}`
647
+ `- ${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(", ")}` : ""}`
645
648
  );
646
649
  }
647
650
  return lines;
package/dist/index.cjs CHANGED
@@ -9724,6 +9724,10 @@ function summarizeLinkStatusEvidence(viewport, check) {
9724
9724
  }
9725
9725
  const results = Array.isArray(linkEvidence.results) ? linkEvidence.results.filter(isRecord2) : [];
9726
9726
  const totalCount = numberValue3(linkEvidence.total_count) ?? results.length;
9727
+ const resultCount = numberValue3(linkEvidence.result_count) ?? totalCount;
9728
+ const storedResultCount = numberValue3(linkEvidence.stored_result_count) ?? results.length;
9729
+ const omittedResultCount = numberValue3(linkEvidence.omitted_result_count) ?? Math.max(0, resultCount - storedResultCount);
9730
+ const omittedSuccessCount = numberValue3(linkEvidence.omitted_success_count) ?? 0;
9727
9731
  const okCount = results.filter((result) => linkStatusResultOk(result, check)).length;
9728
9732
  const failures = results.filter((result) => !linkStatusResultOk(result, check)).map((result) => ({
9729
9733
  code: "link_status_failed",
@@ -9771,6 +9775,11 @@ function summarizeLinkStatusEvidence(viewport, check) {
9771
9775
  failed_count: failures.length,
9772
9776
  truncated: linkEvidence.truncated === true,
9773
9777
  max_links: numberValue3(linkEvidence.max_links) ?? check.max_links ?? 100,
9778
+ result_count: resultCount,
9779
+ stored_result_count: storedResultCount,
9780
+ omitted_result_count: omittedResultCount,
9781
+ omitted_success_count: omittedSuccessCount,
9782
+ results_compacted: linkEvidence.results_compacted === true || omittedResultCount > 0,
9774
9783
  min_bytes: check.min_bytes ?? null,
9775
9784
  allowed_content_types: check.allowed_content_types ?? null,
9776
9785
  status_counts: statusCounts,
@@ -10959,6 +10968,10 @@ function summarizeLinkStatusEvidence(viewport, check) {
10959
10968
  }
10960
10969
  const results = Array.isArray(linkEvidence.results) ? linkEvidence.results.filter((result) => result && typeof result === "object" && !Array.isArray(result)) : [];
10961
10970
  const totalCount = typeof linkEvidence.total_count === "number" && Number.isFinite(linkEvidence.total_count) ? linkEvidence.total_count : results.length;
10971
+ const resultCount = typeof linkEvidence.result_count === "number" && Number.isFinite(linkEvidence.result_count) ? linkEvidence.result_count : totalCount;
10972
+ const storedResultCount = typeof linkEvidence.stored_result_count === "number" && Number.isFinite(linkEvidence.stored_result_count) ? linkEvidence.stored_result_count : results.length;
10973
+ const omittedResultCount = typeof linkEvidence.omitted_result_count === "number" && Number.isFinite(linkEvidence.omitted_result_count) ? linkEvidence.omitted_result_count : Math.max(0, resultCount - storedResultCount);
10974
+ const omittedSuccessCount = typeof linkEvidence.omitted_success_count === "number" && Number.isFinite(linkEvidence.omitted_success_count) ? linkEvidence.omitted_success_count : 0;
10962
10975
  const okCount = results.filter((result) => linkStatusResultOk(result, check)).length;
10963
10976
  const failures = results
10964
10977
  .filter((result) => !linkStatusResultOk(result, check))
@@ -11006,6 +11019,11 @@ function summarizeLinkStatusEvidence(viewport, check) {
11006
11019
  failed_count: failures.length,
11007
11020
  truncated: linkEvidence.truncated === true,
11008
11021
  max_links: typeof linkEvidence.max_links === "number" ? linkEvidence.max_links : check.max_links || 100,
11022
+ result_count: resultCount,
11023
+ stored_result_count: storedResultCount,
11024
+ omitted_result_count: omittedResultCount,
11025
+ omitted_success_count: omittedSuccessCount,
11026
+ results_compacted: linkEvidence.results_compacted === true || omittedResultCount > 0,
11009
11027
  min_bytes: typeof check.min_bytes === "number" && Number.isFinite(check.min_bytes) ? check.min_bytes : null,
11010
11028
  allowed_content_types: Array.isArray(check.allowed_content_types) ? check.allowed_content_types : null,
11011
11029
  status_counts: linkEvidence.status_counts && typeof linkEvidence.status_counts === "object" && !Array.isArray(linkEvidence.status_counts) ? linkEvidence.status_counts : {},
@@ -12945,6 +12963,30 @@ async function probeLinkStatus(candidate, check) {
12945
12963
  return result;
12946
12964
  }
12947
12965
  }
12966
+ function compactLinkProbeResults(results) {
12967
+ const allResults = Array.isArray(results) ? results : [];
12968
+ if (allResults.length <= 20) {
12969
+ return {
12970
+ result_count: allResults.length,
12971
+ stored_result_count: allResults.length,
12972
+ omitted_result_count: 0,
12973
+ omitted_success_count: 0,
12974
+ results_compacted: false,
12975
+ results: allResults,
12976
+ };
12977
+ }
12978
+ const successResults = allResults.filter((result) => result && result.ok);
12979
+ const sampledSuccesses = new Set(successResults.slice(0, 5));
12980
+ const storedResults = allResults.filter((result) => result && (!result.ok || sampledSuccesses.has(result)));
12981
+ return {
12982
+ result_count: allResults.length,
12983
+ stored_result_count: storedResults.length,
12984
+ omitted_result_count: allResults.length - storedResults.length,
12985
+ omitted_success_count: Math.max(0, successResults.length - sampledSuccesses.size),
12986
+ results_compacted: storedResults.length < allResults.length,
12987
+ results: storedResults,
12988
+ };
12989
+ }
12948
12990
  async function collectLinkStatus(check) {
12949
12991
  const selector = linkStatusSelector(check);
12950
12992
  const candidateResult = await collectLinkCandidates(selector);
@@ -13001,6 +13043,7 @@ async function collectLinkStatus(check) {
13001
13043
  const key = result.status == null ? "error" : String(result.status);
13002
13044
  statusCounts[key] = (statusCounts[key] || 0) + 1;
13003
13045
  }
13046
+ const compactedResults = compactLinkProbeResults(results);
13004
13047
  return {
13005
13048
  version: "riddle-proof.link-status.v1",
13006
13049
  selector,
@@ -13022,7 +13065,7 @@ async function collectLinkStatus(check) {
13022
13065
  failed_count: failures.length,
13023
13066
  status_counts: statusCounts,
13024
13067
  failures: failures.slice(0, 20),
13025
- results,
13068
+ ...compactedResults,
13026
13069
  };
13027
13070
  }
13028
13071
  async function frameEvidence(selector) {
package/dist/index.js CHANGED
@@ -58,7 +58,7 @@ import {
58
58
  resolveRiddleProofProfileTimeoutSec,
59
59
  slugifyRiddleProofProfileName,
60
60
  summarizeRiddleProofProfileResult
61
- } from "./chunk-5OCJKEHE.js";
61
+ } from "./chunk-G3UY3SHZ.js";
62
62
  import {
63
63
  DEFAULT_RIDDLE_API_BASE_URL,
64
64
  DEFAULT_RIDDLE_API_KEY_FILE,
package/dist/profile.cjs CHANGED
@@ -1038,6 +1038,10 @@ function summarizeLinkStatusEvidence(viewport, check) {
1038
1038
  }
1039
1039
  const results = Array.isArray(linkEvidence.results) ? linkEvidence.results.filter(isRecord) : [];
1040
1040
  const totalCount = numberValue(linkEvidence.total_count) ?? results.length;
1041
+ const resultCount = numberValue(linkEvidence.result_count) ?? totalCount;
1042
+ const storedResultCount = numberValue(linkEvidence.stored_result_count) ?? results.length;
1043
+ const omittedResultCount = numberValue(linkEvidence.omitted_result_count) ?? Math.max(0, resultCount - storedResultCount);
1044
+ const omittedSuccessCount = numberValue(linkEvidence.omitted_success_count) ?? 0;
1041
1045
  const okCount = results.filter((result) => linkStatusResultOk(result, check)).length;
1042
1046
  const failures = results.filter((result) => !linkStatusResultOk(result, check)).map((result) => ({
1043
1047
  code: "link_status_failed",
@@ -1085,6 +1089,11 @@ function summarizeLinkStatusEvidence(viewport, check) {
1085
1089
  failed_count: failures.length,
1086
1090
  truncated: linkEvidence.truncated === true,
1087
1091
  max_links: numberValue(linkEvidence.max_links) ?? check.max_links ?? 100,
1092
+ result_count: resultCount,
1093
+ stored_result_count: storedResultCount,
1094
+ omitted_result_count: omittedResultCount,
1095
+ omitted_success_count: omittedSuccessCount,
1096
+ results_compacted: linkEvidence.results_compacted === true || omittedResultCount > 0,
1088
1097
  min_bytes: check.min_bytes ?? null,
1089
1098
  allowed_content_types: check.allowed_content_types ?? null,
1090
1099
  status_counts: statusCounts,
@@ -2273,6 +2282,10 @@ function summarizeLinkStatusEvidence(viewport, check) {
2273
2282
  }
2274
2283
  const results = Array.isArray(linkEvidence.results) ? linkEvidence.results.filter((result) => result && typeof result === "object" && !Array.isArray(result)) : [];
2275
2284
  const totalCount = typeof linkEvidence.total_count === "number" && Number.isFinite(linkEvidence.total_count) ? linkEvidence.total_count : results.length;
2285
+ const resultCount = typeof linkEvidence.result_count === "number" && Number.isFinite(linkEvidence.result_count) ? linkEvidence.result_count : totalCount;
2286
+ const storedResultCount = typeof linkEvidence.stored_result_count === "number" && Number.isFinite(linkEvidence.stored_result_count) ? linkEvidence.stored_result_count : results.length;
2287
+ const omittedResultCount = typeof linkEvidence.omitted_result_count === "number" && Number.isFinite(linkEvidence.omitted_result_count) ? linkEvidence.omitted_result_count : Math.max(0, resultCount - storedResultCount);
2288
+ const omittedSuccessCount = typeof linkEvidence.omitted_success_count === "number" && Number.isFinite(linkEvidence.omitted_success_count) ? linkEvidence.omitted_success_count : 0;
2276
2289
  const okCount = results.filter((result) => linkStatusResultOk(result, check)).length;
2277
2290
  const failures = results
2278
2291
  .filter((result) => !linkStatusResultOk(result, check))
@@ -2320,6 +2333,11 @@ function summarizeLinkStatusEvidence(viewport, check) {
2320
2333
  failed_count: failures.length,
2321
2334
  truncated: linkEvidence.truncated === true,
2322
2335
  max_links: typeof linkEvidence.max_links === "number" ? linkEvidence.max_links : check.max_links || 100,
2336
+ result_count: resultCount,
2337
+ stored_result_count: storedResultCount,
2338
+ omitted_result_count: omittedResultCount,
2339
+ omitted_success_count: omittedSuccessCount,
2340
+ results_compacted: linkEvidence.results_compacted === true || omittedResultCount > 0,
2323
2341
  min_bytes: typeof check.min_bytes === "number" && Number.isFinite(check.min_bytes) ? check.min_bytes : null,
2324
2342
  allowed_content_types: Array.isArray(check.allowed_content_types) ? check.allowed_content_types : null,
2325
2343
  status_counts: linkEvidence.status_counts && typeof linkEvidence.status_counts === "object" && !Array.isArray(linkEvidence.status_counts) ? linkEvidence.status_counts : {},
@@ -4259,6 +4277,30 @@ async function probeLinkStatus(candidate, check) {
4259
4277
  return result;
4260
4278
  }
4261
4279
  }
4280
+ function compactLinkProbeResults(results) {
4281
+ const allResults = Array.isArray(results) ? results : [];
4282
+ if (allResults.length <= 20) {
4283
+ return {
4284
+ result_count: allResults.length,
4285
+ stored_result_count: allResults.length,
4286
+ omitted_result_count: 0,
4287
+ omitted_success_count: 0,
4288
+ results_compacted: false,
4289
+ results: allResults,
4290
+ };
4291
+ }
4292
+ const successResults = allResults.filter((result) => result && result.ok);
4293
+ const sampledSuccesses = new Set(successResults.slice(0, 5));
4294
+ const storedResults = allResults.filter((result) => result && (!result.ok || sampledSuccesses.has(result)));
4295
+ return {
4296
+ result_count: allResults.length,
4297
+ stored_result_count: storedResults.length,
4298
+ omitted_result_count: allResults.length - storedResults.length,
4299
+ omitted_success_count: Math.max(0, successResults.length - sampledSuccesses.size),
4300
+ results_compacted: storedResults.length < allResults.length,
4301
+ results: storedResults,
4302
+ };
4303
+ }
4262
4304
  async function collectLinkStatus(check) {
4263
4305
  const selector = linkStatusSelector(check);
4264
4306
  const candidateResult = await collectLinkCandidates(selector);
@@ -4315,6 +4357,7 @@ async function collectLinkStatus(check) {
4315
4357
  const key = result.status == null ? "error" : String(result.status);
4316
4358
  statusCounts[key] = (statusCounts[key] || 0) + 1;
4317
4359
  }
4360
+ const compactedResults = compactLinkProbeResults(results);
4318
4361
  return {
4319
4362
  version: "riddle-proof.link-status.v1",
4320
4363
  selector,
@@ -4336,7 +4379,7 @@ async function collectLinkStatus(check) {
4336
4379
  failed_count: failures.length,
4337
4380
  status_counts: statusCounts,
4338
4381
  failures: failures.slice(0, 20),
4339
- results,
4382
+ ...compactedResults,
4340
4383
  };
4341
4384
  }
4342
4385
  async function frameEvidence(selector) {
package/dist/profile.js CHANGED
@@ -19,7 +19,7 @@ import {
19
19
  resolveRiddleProofProfileTimeoutSec,
20
20
  slugifyRiddleProofProfileName,
21
21
  summarizeRiddleProofProfileResult
22
- } from "./chunk-5OCJKEHE.js";
22
+ } from "./chunk-G3UY3SHZ.js";
23
23
  export {
24
24
  RIDDLE_PROOF_PROFILE_CHECK_TYPES,
25
25
  RIDDLE_PROOF_PROFILE_EVIDENCE_VERSION,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@riddledc/riddle-proof",
3
- "version": "0.7.95",
3
+ "version": "0.7.97",
4
4
  "description": "Reusable Riddle Proof contracts and helpers for evidence-backed agent changes.",
5
5
  "license": "MIT",
6
6
  "author": "RiddleDC",