@riddledc/riddle-proof 0.7.21 → 0.7.23

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/index.cjs CHANGED
@@ -7889,7 +7889,8 @@ function assessBasicGameplayEvidence(evidence, options = {}) {
7889
7889
  }
7890
7890
  const routeResults = (run.results || []).map((route) => augmentRouteAssessmentWithProgressionChecks(
7891
7891
  assessBasicGameplayRoute(route, options),
7892
- route
7892
+ route,
7893
+ options
7893
7894
  ));
7894
7895
  const failingRoutes = routeResults.filter((result) => !result.ok).map((result) => ({
7895
7896
  name: result.name,
@@ -7950,7 +7951,7 @@ function assessBasicGameplayRoute(route, options = {}) {
7950
7951
  const responseStatus = firstNumber(route.http_status, route.response_status, route.status);
7951
7952
  const pageErrorCount = numberValue2(route.page_error_count);
7952
7953
  const consoleErrorCount = numberValue2(route.console_error_count);
7953
- const mobileOverflowPx = numberValue2(mobile.overflow_px);
7954
+ const mobileOverflowPx = horizontalBoundsOverflowPx(mobile);
7954
7955
  if (responseStatus !== null && responseStatus >= 400) failures.push("route_http_error");
7955
7956
  if (pageErrorCount > 0) failures.push("fatal_page_error");
7956
7957
  if (numberValue2(initial.body_text_length) < minBodyTextLength && numberValue2(initial.visible_large_node_count) < minVisibleLargeNodes) {
@@ -8093,11 +8094,11 @@ function assessBasicGameplayProgressionCheck(check) {
8093
8094
  function assessBasicGameplayProgressionChecks(route) {
8094
8095
  return progressionChecksForRoute(route).map((check) => assessBasicGameplayProgressionCheck(check));
8095
8096
  }
8096
- function augmentBasicGameplayAssessmentWithProgressionChecks(assessment, evidence) {
8097
+ function augmentBasicGameplayAssessmentWithProgressionChecks(assessment, evidence, options = {}) {
8097
8098
  const run = extractBasicGameplayEvidence(evidence);
8098
8099
  if (!run?.results?.length) return assessment;
8099
8100
  const routeResults = assessment.route_results.map(
8100
- (result, index) => augmentRouteAssessmentWithProgressionChecks(result, run.results?.[index] || {})
8101
+ (result, index) => augmentRouteAssessmentWithProgressionChecks(result, run.results?.[index] || {}, options)
8101
8102
  );
8102
8103
  const failingRoutes = routeResults.filter((result) => !result.ok).map((result) => ({
8103
8104
  name: result.name,
@@ -8159,7 +8160,7 @@ function attachBasicGameplayArtifactScreenshotHashes(evidence, routesOrOptions =
8159
8160
  }
8160
8161
  return evidence;
8161
8162
  }
8162
- function createBasicGameplayCatchRecords(assessment, evidence) {
8163
+ function createBasicGameplayCatchRecords(assessment, evidence, options = {}) {
8163
8164
  const run = extractBasicGameplayEvidence(evidence);
8164
8165
  if (!run?.results?.length) return [];
8165
8166
  const catches = [];
@@ -8233,6 +8234,24 @@ function createBasicGameplayCatchRecords(assessment, evidence) {
8233
8234
  summary: `${route.name || route.path || "Route"}: responsive setup failed on ${failure.viewport?.label || "viewport"} (${failure.reason || "responsive_setup_failed"})`
8234
8235
  });
8235
8236
  }
8237
+ for (const failure of responsiveBoundsFailures(route, options.maxMobileOverflowPx ?? 4)) {
8238
+ catches.push({
8239
+ site: run.site || null,
8240
+ route: route.name,
8241
+ path: route.path,
8242
+ code: failure.code,
8243
+ label: failure.label,
8244
+ type: "responsive_bounds",
8245
+ selector: null,
8246
+ reason: failure.reason || "responsive_bounds_clipped",
8247
+ phase: failure.viewport?.phase || void 0,
8248
+ viewport: failure.viewport,
8249
+ overflow_px: failure.overflow_px,
8250
+ max_allowed_px: failure.max_allowed_px,
8251
+ offenders: failure.offenders,
8252
+ summary: `${route.name || route.path || "Route"}: responsive bounds exceeded ${failure.max_allowed_px}px on ${failure.viewport?.label || "viewport"} (${failure.overflow_px}px)`
8253
+ });
8254
+ }
8236
8255
  for (const check of assessBasicGameplayProgressionChecks(route).filter((item) => item.ok === false)) {
8237
8256
  catches.push({
8238
8257
  site: run.site || null,
@@ -8387,13 +8406,15 @@ function changed(before, after) {
8387
8406
  function canvasHashes(canvases) {
8388
8407
  return (canvases || []).map((canvas) => canvas.hash).filter(Boolean).join("|");
8389
8408
  }
8390
- function augmentRouteAssessmentWithProgressionChecks(result, route) {
8409
+ function augmentRouteAssessmentWithProgressionChecks(result, route, options = {}) {
8391
8410
  const progressionFailures = assessBasicGameplayProgressionChecks(route).filter((check) => check.ok === false);
8392
8411
  const responsiveFailures = responsiveSetupFailures(route);
8393
- if (!progressionFailures.length && !responsiveFailures.length) return result;
8412
+ const responsiveBounds = responsiveBoundsFailures(route, options.maxMobileOverflowPx ?? 4);
8413
+ if (!progressionFailures.length && !responsiveFailures.length && !responsiveBounds.length) return result;
8394
8414
  const failures = new Set(result.failures);
8395
8415
  if (progressionFailures.length) failures.add("progression_assertion_failed");
8396
8416
  for (const failure of responsiveFailures) failures.add(failure.code);
8417
+ for (const failure of responsiveBounds) failures.add(failure.code);
8397
8418
  return {
8398
8419
  ...result,
8399
8420
  ok: false,
@@ -8409,7 +8430,8 @@ function augmentRouteAssessmentWithProgressionChecks(result, route) {
8409
8430
  state_call: check.state_call || null,
8410
8431
  property_path: check.property_path || null
8411
8432
  })),
8412
- ...responsiveFailures
8433
+ ...responsiveFailures,
8434
+ ...responsiveBounds
8413
8435
  ]
8414
8436
  };
8415
8437
  }
@@ -8435,6 +8457,28 @@ function responsiveSetupFailures(route) {
8435
8457
  }
8436
8458
  return failures;
8437
8459
  }
8460
+ function responsiveBoundsFailures(route, maxOverflowPx) {
8461
+ const failures = [];
8462
+ for (const viewport of responsiveViewportsForRoute(route)) {
8463
+ const overflowPx = horizontalBoundsOverflowPx(viewport);
8464
+ if (overflowPx <= maxOverflowPx) continue;
8465
+ failures.push({
8466
+ code: "responsive_bounds_clipped",
8467
+ label: `${viewport.label || "responsive"} horizontal bounds`,
8468
+ reason: `horizontal bounds overflow ${overflowPx}px exceeded ${maxOverflowPx}px`,
8469
+ overflow_px: overflowPx,
8470
+ max_allowed_px: maxOverflowPx,
8471
+ offenders: boundsOffendersForEvidence(viewport).slice(0, 10),
8472
+ viewport: {
8473
+ label: viewport.label || null,
8474
+ width: numberValue2(viewport.width) || null,
8475
+ height: numberValue2(viewport.height) || null,
8476
+ phase: viewport.phase || null
8477
+ }
8478
+ });
8479
+ }
8480
+ return failures;
8481
+ }
8438
8482
  function responsiveViewportsForRoute(route) {
8439
8483
  return listValue2(route.responsive_viewports || route.responsiveViewports).filter((item) => Boolean(recordValue3(item)));
8440
8484
  }
@@ -8444,6 +8488,82 @@ function progressionChecksForRoute(route) {
8444
8488
  function metricValue(value) {
8445
8489
  return recordValue3(value);
8446
8490
  }
8491
+ function horizontalBoundsOverflowPx(value) {
8492
+ const record = recordValue3(value);
8493
+ if (!record) return 0;
8494
+ let max = maxPositiveNumber(
8495
+ record.overflow_px,
8496
+ record.overflow,
8497
+ record.bounds_overflow_px,
8498
+ record.horizontal_overflow_px,
8499
+ record.left_overflow_px,
8500
+ record.right_overflow_px
8501
+ );
8502
+ for (const offender of boundsOffendersForEvidence(record)) {
8503
+ max = Math.max(max, horizontalOffenderOverflowPx(offender));
8504
+ }
8505
+ return roundPixels(max);
8506
+ }
8507
+ function horizontalOffenderOverflowPx(value) {
8508
+ const record = recordValue3(value);
8509
+ if (!record) return 0;
8510
+ let max = maxPositiveNumber(
8511
+ record.overflow,
8512
+ record.overflow_px,
8513
+ record.bounds_overflow_px,
8514
+ record.horizontal_overflow_px,
8515
+ record.left_overflow_px,
8516
+ record.right_overflow_px,
8517
+ record.leftOverflowPx,
8518
+ record.rightOverflowPx
8519
+ );
8520
+ const clipped = recordValue3(record.clipped || record.clip || record.clipping);
8521
+ if (clipped) {
8522
+ max = Math.max(max, maxPositiveNumber(
8523
+ clipped.left,
8524
+ clipped.right,
8525
+ clipped.left_px,
8526
+ clipped.right_px,
8527
+ clipped.leftPx,
8528
+ clipped.rightPx
8529
+ ));
8530
+ }
8531
+ const rect = recordValue3(record.rect || record.bounds || record.bounding_rect || record.boundingRect);
8532
+ const viewportWidth = numericValue3(record.viewport_width ?? record.viewportWidth);
8533
+ if (rect && viewportWidth !== null) {
8534
+ const left = numericValue3(rect.left);
8535
+ const right = numericValue3(rect.right);
8536
+ if (left !== null && left < 0) max = Math.max(max, Math.abs(left));
8537
+ if (right !== null && right > viewportWidth) max = Math.max(max, right - viewportWidth);
8538
+ }
8539
+ return roundPixels(max);
8540
+ }
8541
+ function boundsOffendersForEvidence(value) {
8542
+ const record = recordValue3(value);
8543
+ if (!record) return [];
8544
+ const offenders = [
8545
+ ...listValue2(record.overflow_offenders),
8546
+ ...listValue2(record.overflowOffenders),
8547
+ ...listValue2(record.bounds_offenders),
8548
+ ...listValue2(record.boundsOffenders),
8549
+ ...listValue2(record.clipped_elements),
8550
+ ...listValue2(record.clippedElements),
8551
+ ...listValue2(record.clipping_offenders),
8552
+ ...listValue2(record.clippingOffenders)
8553
+ ];
8554
+ return offenders.filter((item) => Boolean(recordValue3(item))).sort((a, b) => horizontalOffenderOverflowPx(b) - horizontalOffenderOverflowPx(a));
8555
+ }
8556
+ function maxPositiveNumber(...values) {
8557
+ let max = 0;
8558
+ for (const value of values) {
8559
+ const number = numericValue3(value);
8560
+ if (number !== null && number > max) max = number;
8561
+ }
8562
+ return max;
8563
+ }
8564
+ function roundPixels(value) {
8565
+ return Math.round(value * 100) / 100;
8566
+ }
8447
8567
  function textMatches(text, pattern, flags) {
8448
8568
  if (!pattern) return Boolean(text);
8449
8569
  try {
@@ -8632,6 +8752,79 @@ function stringValue5(value) {
8632
8752
  function numberValue3(value) {
8633
8753
  return typeof value === "number" && Number.isFinite(value) ? value : void 0;
8634
8754
  }
8755
+ function horizontalBoundsOverflowPx2(value) {
8756
+ if (!isRecord2(value)) return 0;
8757
+ let max = maxPositiveNumber2(
8758
+ value.overflow_px,
8759
+ value.overflow,
8760
+ value.bounds_overflow_px,
8761
+ value.horizontal_overflow_px,
8762
+ value.left_overflow_px,
8763
+ value.right_overflow_px
8764
+ );
8765
+ for (const offender of boundsOffendersForEvidence2(value)) {
8766
+ max = Math.max(max, horizontalOffenderOverflowPx2(offender));
8767
+ }
8768
+ return roundPixels2(max);
8769
+ }
8770
+ function horizontalOffenderOverflowPx2(value) {
8771
+ if (!isRecord2(value)) return 0;
8772
+ let max = maxPositiveNumber2(
8773
+ value.overflow,
8774
+ value.overflow_px,
8775
+ value.bounds_overflow_px,
8776
+ value.horizontal_overflow_px,
8777
+ value.left_overflow_px,
8778
+ value.right_overflow_px,
8779
+ value.leftOverflowPx,
8780
+ value.rightOverflowPx
8781
+ );
8782
+ const clipped = isRecord2(value.clipped || value.clip || value.clipping) ? value.clipped || value.clip || value.clipping : void 0;
8783
+ if (isRecord2(clipped)) {
8784
+ max = Math.max(max, maxPositiveNumber2(
8785
+ clipped.left,
8786
+ clipped.right,
8787
+ clipped.left_px,
8788
+ clipped.right_px,
8789
+ clipped.leftPx,
8790
+ clipped.rightPx
8791
+ ));
8792
+ }
8793
+ const rect = isRecord2(value.rect || value.bounds || value.bounding_rect || value.boundingRect) ? value.rect || value.bounds || value.bounding_rect || value.boundingRect : void 0;
8794
+ const viewportWidth = numberValue3(value.viewport_width ?? value.viewportWidth);
8795
+ if (isRecord2(rect) && viewportWidth !== void 0) {
8796
+ const left = numberValue3(rect.left);
8797
+ const right = numberValue3(rect.right);
8798
+ if (left !== void 0 && left < 0) max = Math.max(max, Math.abs(left));
8799
+ if (right !== void 0 && right > viewportWidth) max = Math.max(max, right - viewportWidth);
8800
+ }
8801
+ return roundPixels2(max);
8802
+ }
8803
+ function boundsOffendersForEvidence2(value) {
8804
+ if (!isRecord2(value)) return [];
8805
+ const offenders = [
8806
+ ...Array.isArray(value.overflow_offenders) ? value.overflow_offenders : [],
8807
+ ...Array.isArray(value.overflowOffenders) ? value.overflowOffenders : [],
8808
+ ...Array.isArray(value.bounds_offenders) ? value.bounds_offenders : [],
8809
+ ...Array.isArray(value.boundsOffenders) ? value.boundsOffenders : [],
8810
+ ...Array.isArray(value.clipped_elements) ? value.clipped_elements : [],
8811
+ ...Array.isArray(value.clippedElements) ? value.clippedElements : [],
8812
+ ...Array.isArray(value.clipping_offenders) ? value.clipping_offenders : [],
8813
+ ...Array.isArray(value.clippingOffenders) ? value.clippingOffenders : []
8814
+ ];
8815
+ return offenders.filter((item) => isRecord2(item)).sort((a, b) => horizontalOffenderOverflowPx2(b) - horizontalOffenderOverflowPx2(a));
8816
+ }
8817
+ function maxPositiveNumber2(...values) {
8818
+ let max = 0;
8819
+ for (const value of values) {
8820
+ const number = numberValue3(value);
8821
+ if (number !== void 0 && number > max) max = number;
8822
+ }
8823
+ return max;
8824
+ }
8825
+ function roundPixels2(value) {
8826
+ return Math.round(value * 100) / 100;
8827
+ }
8635
8828
  function timeoutSecValue(value) {
8636
8829
  const number = numberValue3(value);
8637
8830
  return number && number > 0 ? Math.ceil(number) : void 0;
@@ -8974,7 +9167,7 @@ function assessCheckFromEvidence(check, evidence) {
8974
9167
  message: "No applicable viewport evidence was captured for overflow check."
8975
9168
  };
8976
9169
  }
8977
- const failed = applicable.filter((viewport) => (viewport.overflow_px ?? 0) > maxOverflow);
9170
+ const failed = applicable.filter((viewport) => horizontalBoundsOverflowPx2(viewport) > maxOverflow);
8978
9171
  return {
8979
9172
  type: check.type,
8980
9173
  label: checkLabel(check),
@@ -8982,9 +9175,11 @@ function assessCheckFromEvidence(check, evidence) {
8982
9175
  evidence: {
8983
9176
  max_overflow_px: maxOverflow,
8984
9177
  overflow_px: applicable.map((viewport) => viewport.overflow_px ?? null),
9178
+ bounds_overflow_px: applicable.map((viewport) => horizontalBoundsOverflowPx2(viewport)),
9179
+ overflow_offender_counts: applicable.map((viewport) => boundsOffendersForEvidence2(viewport).length),
8985
9180
  viewports: applicable.map((viewport) => viewport.name)
8986
9181
  },
8987
- message: failed.length ? `Horizontal overflow exceeded ${maxOverflow}px in ${failed.length} viewport(s).` : void 0
9182
+ message: failed.length ? `Horizontal bounds overflow exceeded ${maxOverflow}px in ${failed.length} viewport(s).` : void 0
8988
9183
  };
8989
9184
  }
8990
9185
  if (check.type === "no_fatal_console_errors") {
@@ -9206,6 +9401,77 @@ function textMatches(sample, check) {
9206
9401
  }
9207
9402
  return String(sample || "").includes(check.text || "");
9208
9403
  }
9404
+ function numberValue(value) {
9405
+ return typeof value === "number" && Number.isFinite(value) ? value : undefined;
9406
+ }
9407
+ function maxPositiveNumber() {
9408
+ let max = 0;
9409
+ for (const value of arguments) {
9410
+ const number = numberValue(value);
9411
+ if (number !== undefined && number > max) max = number;
9412
+ }
9413
+ return max;
9414
+ }
9415
+ function roundPixels(value) {
9416
+ return Math.round(value * 100) / 100;
9417
+ }
9418
+ function isRecord(value) {
9419
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
9420
+ }
9421
+ function boundsOffendersForEvidence(value) {
9422
+ if (!isRecord(value)) return [];
9423
+ const offenders = []
9424
+ .concat(Array.isArray(value.overflow_offenders) ? value.overflow_offenders : [])
9425
+ .concat(Array.isArray(value.overflowOffenders) ? value.overflowOffenders : [])
9426
+ .concat(Array.isArray(value.bounds_offenders) ? value.bounds_offenders : [])
9427
+ .concat(Array.isArray(value.boundsOffenders) ? value.boundsOffenders : [])
9428
+ .concat(Array.isArray(value.clipped_elements) ? value.clipped_elements : [])
9429
+ .concat(Array.isArray(value.clippedElements) ? value.clippedElements : [])
9430
+ .concat(Array.isArray(value.clipping_offenders) ? value.clipping_offenders : [])
9431
+ .concat(Array.isArray(value.clippingOffenders) ? value.clippingOffenders : []);
9432
+ return offenders.filter(isRecord).sort((a, b) => horizontalOffenderOverflowPx(b) - horizontalOffenderOverflowPx(a));
9433
+ }
9434
+ function horizontalOffenderOverflowPx(value) {
9435
+ if (!isRecord(value)) return 0;
9436
+ let max = maxPositiveNumber(
9437
+ value.overflow,
9438
+ value.overflow_px,
9439
+ value.bounds_overflow_px,
9440
+ value.horizontal_overflow_px,
9441
+ value.left_overflow_px,
9442
+ value.right_overflow_px,
9443
+ value.leftOverflowPx,
9444
+ value.rightOverflowPx
9445
+ );
9446
+ const clipped = value.clipped || value.clip || value.clipping;
9447
+ if (isRecord(clipped)) {
9448
+ max = Math.max(max, maxPositiveNumber(clipped.left, clipped.right, clipped.left_px, clipped.right_px, clipped.leftPx, clipped.rightPx));
9449
+ }
9450
+ const rect = value.rect || value.bounds || value.bounding_rect || value.boundingRect;
9451
+ const viewportWidth = numberValue(value.viewport_width != null ? value.viewport_width : value.viewportWidth);
9452
+ if (isRecord(rect) && viewportWidth !== undefined) {
9453
+ const left = numberValue(rect.left);
9454
+ const right = numberValue(rect.right);
9455
+ if (left !== undefined && left < 0) max = Math.max(max, Math.abs(left));
9456
+ if (right !== undefined && right > viewportWidth) max = Math.max(max, right - viewportWidth);
9457
+ }
9458
+ return roundPixels(max);
9459
+ }
9460
+ function horizontalBoundsOverflowPx(value) {
9461
+ if (!isRecord(value)) return 0;
9462
+ let max = maxPositiveNumber(
9463
+ value.overflow_px,
9464
+ value.overflow,
9465
+ value.bounds_overflow_px,
9466
+ value.horizontal_overflow_px,
9467
+ value.left_overflow_px,
9468
+ value.right_overflow_px
9469
+ );
9470
+ for (const offender of boundsOffendersForEvidence(value)) {
9471
+ max = Math.max(max, horizontalOffenderOverflowPx(offender));
9472
+ }
9473
+ return roundPixels(max);
9474
+ }
9209
9475
  function assessProfile(profile, evidence) {
9210
9476
  const checks = [];
9211
9477
  const viewports = evidence.viewports || [];
@@ -9323,13 +9589,19 @@ function assessProfile(profile, evidence) {
9323
9589
  });
9324
9590
  continue;
9325
9591
  }
9326
- const failed = applicable.filter((viewport) => (viewport.overflow_px || 0) > maxOverflow);
9592
+ const failed = applicable.filter((viewport) => horizontalBoundsOverflowPx(viewport) > maxOverflow);
9327
9593
  checks.push({
9328
9594
  type: check.type,
9329
9595
  label: check.label || check.type,
9330
9596
  status: failed.length ? "failed" : "passed",
9331
- evidence: { max_overflow_px: maxOverflow, overflow_px: applicable.map((viewport) => viewport.overflow_px ?? null), viewports: applicable.map((viewport) => viewport.name) },
9332
- message: failed.length ? "Horizontal overflow exceeded " + maxOverflow + "px in " + failed.length + " viewport(s)." : undefined,
9597
+ evidence: {
9598
+ max_overflow_px: maxOverflow,
9599
+ overflow_px: applicable.map((viewport) => viewport.overflow_px ?? null),
9600
+ bounds_overflow_px: applicable.map((viewport) => horizontalBoundsOverflowPx(viewport)),
9601
+ overflow_offender_counts: applicable.map((viewport) => boundsOffendersForEvidence(viewport).length),
9602
+ viewports: applicable.map((viewport) => viewport.name)
9603
+ },
9604
+ message: failed.length ? "Horizontal bounds overflow exceeded " + maxOverflow + "px in " + failed.length + " viewport(s)." : undefined,
9333
9605
  });
9334
9606
  continue;
9335
9607
  }
@@ -9559,14 +9831,55 @@ async function captureViewport(viewport) {
9559
9831
  const body = document.body;
9560
9832
  const documentElement = document.documentElement;
9561
9833
  const text = (body ? body.innerText : "").replace(/\s+/g, " ").trim();
9834
+ const clientWidth = documentElement ? documentElement.clientWidth : window.innerWidth;
9835
+ const scrollWidth = documentElement ? documentElement.scrollWidth : 0;
9836
+ const viewportWidth = clientWidth || window.innerWidth;
9837
+ const overflowOffenders = [];
9838
+ for (const element of Array.from(body ? body.querySelectorAll("*") : [])) {
9839
+ const rect = element.getBoundingClientRect();
9840
+ if (!rect || rect.width < 1 || rect.height < 1) continue;
9841
+ const style = window.getComputedStyle(element);
9842
+ if (style.display === "none" || style.visibility === "hidden" || style.opacity === "0") continue;
9843
+ const leftOverflow = Math.max(0, -rect.left);
9844
+ const rightOverflow = Math.max(0, rect.right - viewportWidth);
9845
+ const overflow = Math.max(leftOverflow, rightOverflow);
9846
+ if (overflow <= 0.5) continue;
9847
+ const tag = element.tagName ? element.tagName.toLowerCase() : "element";
9848
+ const id = element.id ? "#" + element.id : "";
9849
+ const className = typeof element.className === "string"
9850
+ ? element.className.trim().split(/\s+/).filter(Boolean).slice(0, 2).join(".")
9851
+ : "";
9852
+ overflowOffenders.push({
9853
+ selector: tag + id + (className ? "." + className : ""),
9854
+ tag,
9855
+ text: (element.textContent || "").replace(/\s+/g, " ").trim().slice(0, 120),
9856
+ overflow,
9857
+ left_overflow_px: leftOverflow,
9858
+ right_overflow_px: rightOverflow,
9859
+ viewport_width: viewportWidth,
9860
+ rect: {
9861
+ left: rect.left,
9862
+ right: rect.right,
9863
+ width: rect.width,
9864
+ },
9865
+ });
9866
+ }
9867
+ overflowOffenders.sort((a, b) => b.overflow - a.overflow);
9868
+ const boundsOverflowPx = Math.max(
9869
+ 0,
9870
+ scrollWidth - (clientWidth || viewportWidth),
9871
+ ...overflowOffenders.map((offender) => offender.overflow),
9872
+ );
9562
9873
  return {
9563
9874
  url: location.href,
9564
9875
  pathname: location.pathname,
9565
9876
  title: document.title,
9566
9877
  body_text_length: text.length,
9567
9878
  body_text_sample: text.slice(0, 8000),
9568
- scroll_width: documentElement ? documentElement.scrollWidth : 0,
9569
- client_width: documentElement ? documentElement.clientWidth : window.innerWidth,
9879
+ scroll_width: scrollWidth,
9880
+ client_width: clientWidth,
9881
+ bounds_overflow_px: Math.round(boundsOverflowPx * 100) / 100,
9882
+ overflow_offenders: overflowOffenders.slice(0, 10),
9570
9883
  };
9571
9884
  }).catch((error) => ({
9572
9885
  url: page.url(),
@@ -9576,6 +9889,8 @@ async function captureViewport(viewport) {
9576
9889
  body_text_sample: "",
9577
9890
  scroll_width: 0,
9578
9891
  client_width: viewport.width,
9892
+ bounds_overflow_px: 0,
9893
+ overflow_offenders: [],
9579
9894
  evaluation_error: String(error && error.message ? error.message : error).slice(0, 1000),
9580
9895
  }));
9581
9896
  const selectors = {};
@@ -9614,6 +9929,8 @@ async function captureViewport(viewport) {
9614
9929
  scroll_width: dom.scroll_width,
9615
9930
  client_width: dom.client_width,
9616
9931
  overflow_px: Math.max(0, (dom.scroll_width || 0) - (dom.client_width || viewport.width)),
9932
+ bounds_overflow_px: dom.bounds_overflow_px,
9933
+ overflow_offenders: dom.overflow_offenders || [],
9617
9934
  selectors,
9618
9935
  text_matches,
9619
9936
  setup_action_results: setupActionResults,
@@ -9645,6 +9962,8 @@ function buildProfileEvidence(currentViewports) {
9645
9962
  routes: currentViewports.map((viewport) => viewport.route),
9646
9963
  titles: currentViewports.map((viewport) => viewport.title),
9647
9964
  overflow_px: currentViewports.map((viewport) => viewport.overflow_px),
9965
+ bounds_overflow_px: currentViewports.map((viewport) => viewport.bounds_overflow_px),
9966
+ overflow_offender_counts: currentViewports.map((viewport) => (viewport.overflow_offenders || []).length),
9648
9967
  },
9649
9968
  };
9650
9969
  }
@@ -9668,24 +9987,36 @@ return result;
9668
9987
  }
9669
9988
  function collectRiddleProfileArtifactRefs(input) {
9670
9989
  const refs = [];
9671
- const seen = /* @__PURE__ */ new Set();
9990
+ const indexes = /* @__PURE__ */ new Map();
9991
+ const priorities = /* @__PURE__ */ new Map();
9672
9992
  function add(item, source) {
9673
9993
  if (!isRecord2(item)) return;
9674
- const name = stringValue5(item.name) || stringValue5(item.filename) || "";
9675
9994
  const url = stringValue5(item.url);
9676
9995
  const path6 = stringValue5(item.path);
9996
+ const rawName = stringValue5(item.name) || stringValue5(item.filename) || artifactNameFromPath(url || path6) || "";
9997
+ const name = normalizeRiddleProfileArtifactName(rawName);
9677
9998
  if (!name && !url && !path6) return;
9678
- const key = `${name}:${url || path6 || ""}`;
9679
- if (seen.has(key)) return;
9680
- seen.add(key);
9681
- refs.push({
9999
+ const key = profileArtifactDedupeKey(name, url || path6 || "");
10000
+ const priority = profileArtifactPriority(rawName, name);
10001
+ const ref = {
9682
10002
  name,
9683
10003
  url,
9684
10004
  path: path6,
9685
10005
  kind: stringValue5(item.kind) || stringValue5(item.type),
9686
10006
  content_type: stringValue5(item.content_type) || stringValue5(item.contentType),
9687
10007
  source
9688
- });
10008
+ };
10009
+ const existingIndex = indexes.get(key);
10010
+ if (existingIndex !== void 0) {
10011
+ if (priority > (priorities.get(key) || 0)) {
10012
+ refs[existingIndex] = ref;
10013
+ priorities.set(key, priority);
10014
+ }
10015
+ return;
10016
+ }
10017
+ indexes.set(key, refs.length);
10018
+ priorities.set(key, priority);
10019
+ refs.push(ref);
9689
10020
  }
9690
10021
  function visit(value, source) {
9691
10022
  if (Array.isArray(value)) {
@@ -9700,6 +10031,31 @@ function collectRiddleProfileArtifactRefs(input) {
9700
10031
  visit(input, "artifacts");
9701
10032
  return refs;
9702
10033
  }
10034
+ function normalizeRiddleProfileArtifactName(name) {
10035
+ return name.replace(/\.json\.json$/i, ".json");
10036
+ }
10037
+ function profileArtifactDedupeKey(name, location) {
10038
+ if (PROFILE_SINGLETON_ARTIFACT_NAMES.has(name.toLowerCase())) return name.toLowerCase();
10039
+ return `${name}:${location}`;
10040
+ }
10041
+ function profileArtifactPriority(rawName, normalizedName) {
10042
+ const lower = normalizedName.toLowerCase();
10043
+ if (!PROFILE_SINGLETON_ARTIFACT_NAMES.has(lower)) return 1;
10044
+ return /\.json\.json$/i.test(rawName) ? 2 : 1;
10045
+ }
10046
+ function artifactNameFromPath(value) {
10047
+ if (!value) return "";
10048
+ try {
10049
+ return new URL(value).pathname.split("/").filter(Boolean).pop() || "";
10050
+ } catch {
10051
+ return value.split(/[\\/]/).filter(Boolean).pop() || "";
10052
+ }
10053
+ }
10054
+ var PROFILE_SINGLETON_ARTIFACT_NAMES = /* @__PURE__ */ new Set([
10055
+ "proof.json",
10056
+ "console.json",
10057
+ "dom-summary.json"
10058
+ ]);
9703
10059
  function extractRiddleProofProfileResult(input) {
9704
10060
  if (!isRecord2(input)) return void 0;
9705
10061
  if (input.version === RIDDLE_PROOF_PROFILE_RESULT_VERSION) return input;
package/dist/index.d.cts CHANGED
@@ -9,6 +9,6 @@ export { CodexExecAgentConfig, CodexJsonRequest, CodexJsonResult, CodexJsonRunne
9
9
  export { CreateCaptureDiagnosticInput, DEFAULT_DIAGNOSTIC_ARRAY_LIMIT, DEFAULT_DIAGNOSTIC_HISTORY_LIMIT, DEFAULT_DIAGNOSTIC_STRING_LIMIT, RIDDLE_PROOF_CAPTURE_DIAGNOSTIC_VERSION, RiddleProofArtifactSummary, RiddleProofCaptureArtifactSummary, RiddleProofCaptureDiagnostic, RiddleProofDiagnosticRedactionOptions, appendCaptureDiagnostic, createCaptureDiagnostic, redactForProofDiagnostics, summarizeCaptureArtifacts } from './diagnostics.cjs';
10
10
  export { BuildVisualProofSessionInput, RIDDLE_PROOF_VISUAL_SESSION_FINGERPRINT_VERSION, RIDDLE_PROOF_VISUAL_SESSION_VERSION, VisualProofSessionMismatch, buildVisualProofSession, compareVisualProofSessionFingerprint, parseVisualProofSession, visualSessionFingerprint, visualSessionFingerprintBasis } from './proof-session.cjs';
11
11
  export { AssessPlayabilityOptions, RIDDLE_PROOF_PLAYABILITY_ASSESSMENT_VERSION, RIDDLE_PROOF_PLAYABILITY_VERSION, RiddleProofPlayabilityAssessment, RiddleProofPlayabilityEvidence, assessPlayabilityEvidence, extractPlayabilityEvidence, isRiddleProofPlayabilityMode } from './playability.cjs';
12
- export { AssessBasicGameplayOptions, AttachBasicGameplayArtifactOptions, BASIC_GAMEPLAY_ACTION_TYPES, BASIC_GAMEPLAY_PROGRESS_CHECK_TYPES, BasicGameplayActionResult, BasicGameplayActionType, BasicGameplayArtifactResolution, BasicGameplayAssessmentSummary, 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';
13
- export { NormalizeRiddleProofProfileOptions, RIDDLE_PROOF_PROFILE_CHECK_TYPES, RIDDLE_PROOF_PROFILE_EVIDENCE_VERSION, RIDDLE_PROOF_PROFILE_RESULT_VERSION, RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES, RIDDLE_PROOF_PROFILE_STATUSES, RIDDLE_PROOF_PROFILE_VERSION, RiddleProofProfile, RiddleProofProfileArtifactRef, RiddleProofProfileBaselinePolicy, RiddleProofProfileCheck, RiddleProofProfileCheckResult, RiddleProofProfileCheckType, RiddleProofProfileEvidence, RiddleProofProfileFailureAction, RiddleProofProfileResult, RiddleProofProfileRouteEvidence, RiddleProofProfileRunner, RiddleProofProfileSetupAction, RiddleProofProfileSetupActionType, RiddleProofProfileStatus, RiddleProofProfileTarget, RiddleProofProfileViewport, RiddleProofProfileViewportEvidence, assessRiddleProofProfileEvidence, buildRiddleProofProfileScript, collectRiddleProfileArtifactRefs, createRiddleProofProfileConfigurationError, createRiddleProofProfileEnvironmentBlockedResult, createRiddleProofProfileInsufficientResult, extractRiddleProofProfileResult, normalizeRiddleProofProfile, profileStatusExitCode, resolveRiddleProofProfileRouteUrl, resolveRiddleProofProfileTargetUrl, resolveRiddleProofProfileTimeoutSec, slugifyRiddleProofProfileName, summarizeRiddleProofProfileResult } from './profile.cjs';
12
+ 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';
13
+ export { NormalizeRiddleProofProfileOptions, RIDDLE_PROOF_PROFILE_CHECK_TYPES, RIDDLE_PROOF_PROFILE_EVIDENCE_VERSION, RIDDLE_PROOF_PROFILE_RESULT_VERSION, RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES, RIDDLE_PROOF_PROFILE_STATUSES, RIDDLE_PROOF_PROFILE_VERSION, RiddleProofProfile, RiddleProofProfileArtifactRef, RiddleProofProfileBaselinePolicy, RiddleProofProfileBoundsOffender, RiddleProofProfileCheck, RiddleProofProfileCheckResult, RiddleProofProfileCheckType, RiddleProofProfileEvidence, RiddleProofProfileFailureAction, RiddleProofProfileResult, RiddleProofProfileRouteEvidence, RiddleProofProfileRunner, RiddleProofProfileSetupAction, RiddleProofProfileSetupActionType, RiddleProofProfileStatus, RiddleProofProfileTarget, RiddleProofProfileViewport, RiddleProofProfileViewportEvidence, assessRiddleProofProfileEvidence, buildRiddleProofProfileScript, collectRiddleProfileArtifactRefs, createRiddleProofProfileConfigurationError, createRiddleProofProfileEnvironmentBlockedResult, createRiddleProofProfileInsufficientResult, extractRiddleProofProfileResult, normalizeRiddleProofProfile, profileStatusExitCode, resolveRiddleProofProfileRouteUrl, resolveRiddleProofProfileTargetUrl, resolveRiddleProofProfileTimeoutSec, slugifyRiddleProofProfileName, summarizeRiddleProofProfileResult } from './profile.cjs';
14
14
  export { DEFAULT_RIDDLE_API_BASE_URL, DEFAULT_RIDDLE_API_KEY_FILE, RiddleApiError, RiddleClientConfig, RiddleFetch, RiddlePollJobResult, RiddlePreviewDeployResult, RiddleRunScriptInput, RiddleServerPreviewInput, RiddleServerPreviewResult, createRiddleApiClient, deployRiddleStaticPreview, isTerminalRiddleJobStatus, parseRiddleViewport, pollRiddleJob, resolveRiddleApiKey, riddleRequestJson, runRiddleScript, runRiddleServerPreview } from './riddle-client.cjs';
package/dist/index.d.ts CHANGED
@@ -9,6 +9,6 @@ export { CodexExecAgentConfig, CodexJsonRequest, CodexJsonResult, CodexJsonRunne
9
9
  export { CreateCaptureDiagnosticInput, DEFAULT_DIAGNOSTIC_ARRAY_LIMIT, DEFAULT_DIAGNOSTIC_HISTORY_LIMIT, DEFAULT_DIAGNOSTIC_STRING_LIMIT, RIDDLE_PROOF_CAPTURE_DIAGNOSTIC_VERSION, RiddleProofArtifactSummary, RiddleProofCaptureArtifactSummary, RiddleProofCaptureDiagnostic, RiddleProofDiagnosticRedactionOptions, appendCaptureDiagnostic, createCaptureDiagnostic, redactForProofDiagnostics, summarizeCaptureArtifacts } from './diagnostics.js';
10
10
  export { BuildVisualProofSessionInput, RIDDLE_PROOF_VISUAL_SESSION_FINGERPRINT_VERSION, RIDDLE_PROOF_VISUAL_SESSION_VERSION, VisualProofSessionMismatch, buildVisualProofSession, compareVisualProofSessionFingerprint, parseVisualProofSession, visualSessionFingerprint, visualSessionFingerprintBasis } from './proof-session.js';
11
11
  export { AssessPlayabilityOptions, RIDDLE_PROOF_PLAYABILITY_ASSESSMENT_VERSION, RIDDLE_PROOF_PLAYABILITY_VERSION, RiddleProofPlayabilityAssessment, RiddleProofPlayabilityEvidence, assessPlayabilityEvidence, extractPlayabilityEvidence, isRiddleProofPlayabilityMode } from './playability.js';
12
- export { AssessBasicGameplayOptions, AttachBasicGameplayArtifactOptions, BASIC_GAMEPLAY_ACTION_TYPES, BASIC_GAMEPLAY_PROGRESS_CHECK_TYPES, BasicGameplayActionResult, BasicGameplayActionType, BasicGameplayArtifactResolution, BasicGameplayAssessmentSummary, 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';
13
- export { NormalizeRiddleProofProfileOptions, RIDDLE_PROOF_PROFILE_CHECK_TYPES, RIDDLE_PROOF_PROFILE_EVIDENCE_VERSION, RIDDLE_PROOF_PROFILE_RESULT_VERSION, RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES, RIDDLE_PROOF_PROFILE_STATUSES, RIDDLE_PROOF_PROFILE_VERSION, RiddleProofProfile, RiddleProofProfileArtifactRef, RiddleProofProfileBaselinePolicy, RiddleProofProfileCheck, RiddleProofProfileCheckResult, RiddleProofProfileCheckType, RiddleProofProfileEvidence, RiddleProofProfileFailureAction, RiddleProofProfileResult, RiddleProofProfileRouteEvidence, RiddleProofProfileRunner, RiddleProofProfileSetupAction, RiddleProofProfileSetupActionType, RiddleProofProfileStatus, RiddleProofProfileTarget, RiddleProofProfileViewport, RiddleProofProfileViewportEvidence, assessRiddleProofProfileEvidence, buildRiddleProofProfileScript, collectRiddleProfileArtifactRefs, createRiddleProofProfileConfigurationError, createRiddleProofProfileEnvironmentBlockedResult, createRiddleProofProfileInsufficientResult, extractRiddleProofProfileResult, normalizeRiddleProofProfile, profileStatusExitCode, resolveRiddleProofProfileRouteUrl, resolveRiddleProofProfileTargetUrl, resolveRiddleProofProfileTimeoutSec, slugifyRiddleProofProfileName, summarizeRiddleProofProfileResult } from './profile.js';
12
+ 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';
13
+ export { NormalizeRiddleProofProfileOptions, RIDDLE_PROOF_PROFILE_CHECK_TYPES, RIDDLE_PROOF_PROFILE_EVIDENCE_VERSION, RIDDLE_PROOF_PROFILE_RESULT_VERSION, RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES, RIDDLE_PROOF_PROFILE_STATUSES, RIDDLE_PROOF_PROFILE_VERSION, RiddleProofProfile, RiddleProofProfileArtifactRef, RiddleProofProfileBaselinePolicy, RiddleProofProfileBoundsOffender, RiddleProofProfileCheck, RiddleProofProfileCheckResult, RiddleProofProfileCheckType, RiddleProofProfileEvidence, RiddleProofProfileFailureAction, RiddleProofProfileResult, RiddleProofProfileRouteEvidence, RiddleProofProfileRunner, RiddleProofProfileSetupAction, RiddleProofProfileSetupActionType, RiddleProofProfileStatus, RiddleProofProfileTarget, RiddleProofProfileViewport, RiddleProofProfileViewportEvidence, assessRiddleProofProfileEvidence, buildRiddleProofProfileScript, collectRiddleProfileArtifactRefs, createRiddleProofProfileConfigurationError, createRiddleProofProfileEnvironmentBlockedResult, createRiddleProofProfileInsufficientResult, extractRiddleProofProfileResult, normalizeRiddleProofProfile, profileStatusExitCode, resolveRiddleProofProfileRouteUrl, resolveRiddleProofProfileTargetUrl, resolveRiddleProofProfileTimeoutSec, slugifyRiddleProofProfileName, summarizeRiddleProofProfileResult } from './profile.js';
14
14
  export { DEFAULT_RIDDLE_API_BASE_URL, DEFAULT_RIDDLE_API_KEY_FILE, RiddleApiError, RiddleClientConfig, RiddleFetch, RiddlePollJobResult, RiddlePreviewDeployResult, RiddleRunScriptInput, RiddleServerPreviewInput, RiddleServerPreviewResult, createRiddleApiClient, deployRiddleStaticPreview, isTerminalRiddleJobStatus, parseRiddleViewport, pollRiddleJob, resolveRiddleApiKey, riddleRequestJson, runRiddleScript, runRiddleServerPreview } from './riddle-client.js';
package/dist/index.js CHANGED
@@ -36,7 +36,7 @@ import {
36
36
  extractBasicGameplayEvidence,
37
37
  resolveBasicGameplayProgressionCheckWithArtifactScreenshots,
38
38
  sanitizeBasicGameplayJsonString
39
- } from "./chunk-E6O3EOEI.js";
39
+ } from "./chunk-ELZSPOWV.js";
40
40
  import {
41
41
  RIDDLE_PROOF_PROFILE_CHECK_TYPES,
42
42
  RIDDLE_PROOF_PROFILE_EVIDENCE_VERSION,
@@ -58,7 +58,7 @@ import {
58
58
  resolveRiddleProofProfileTimeoutSec,
59
59
  slugifyRiddleProofProfileName,
60
60
  summarizeRiddleProofProfileResult
61
- } from "./chunk-TPUR67H5.js";
61
+ } from "./chunk-XOM2OYAB.js";
62
62
  import {
63
63
  DEFAULT_RIDDLE_API_BASE_URL,
64
64
  DEFAULT_RIDDLE_API_KEY_FILE,