@riddledc/riddle-proof 0.7.216 → 0.7.218

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.
@@ -1,6 +1,6 @@
1
1
  // src/riddle-client.ts
2
2
  import { execFileSync } from "child_process";
3
- import { existsSync, mkdtempSync, readFileSync, rmSync } from "fs";
3
+ import { existsSync, mkdtempSync, readdirSync, readFileSync, rmSync, statSync } from "fs";
4
4
  import { tmpdir } from "os";
5
5
  import path from "path";
6
6
  var DEFAULT_RIDDLE_API_BASE_URL = "https://api.riddledc.com";
@@ -74,6 +74,7 @@ function previewDeployResultFromRecord(input) {
74
74
  expires_at: expiresAt,
75
75
  publish_recovered: publishRecovered || void 0,
76
76
  publish_error: publishError,
77
+ warnings: input.warnings?.length ? input.warnings : void 0,
77
78
  raw: record
78
79
  };
79
80
  }
@@ -91,7 +92,8 @@ async function waitForPublishedPreview(config, input) {
91
92
  framework: input.framework,
92
93
  expiresAt: input.expiresAt,
93
94
  publishRecovered: true,
94
- publishError: input.publishError.message
95
+ publishError: input.publishError.message,
96
+ warnings: input.warnings
95
97
  });
96
98
  }
97
99
  if (attempt < PREVIEW_PUBLISH_RECOVERY_ATTEMPTS) {
@@ -104,6 +106,7 @@ async function deployRiddlePreview(config, directory, label, framework = "static
104
106
  if (!directory?.trim()) throw new Error("directory is required");
105
107
  if (!label?.trim()) throw new Error("label is required");
106
108
  if (framework !== "spa" && framework !== "static") throw new Error("framework must be spa or static");
109
+ const warnings = collectRiddlePreviewDeployWarnings(directory, framework);
107
110
  const created = await riddleRequestJson(config, "/v1/preview", {
108
111
  method: "POST",
109
112
  body: JSON.stringify({ framework, label })
@@ -131,7 +134,7 @@ async function deployRiddlePreview(config, directory, label, framework = "static
131
134
  const published = await riddleRequestJson(config, `/v1/preview/${id}/publish`, {
132
135
  method: "POST"
133
136
  });
134
- return previewDeployResultFromRecord({ record: published, id, label, framework, expiresAt });
137
+ return previewDeployResultFromRecord({ record: published, id, label, framework, expiresAt, warnings });
135
138
  } catch (error) {
136
139
  if (!canRecoverPreviewPublish(error)) throw error;
137
140
  return waitForPublishedPreview(config, {
@@ -139,10 +142,58 @@ async function deployRiddlePreview(config, directory, label, framework = "static
139
142
  label,
140
143
  framework,
141
144
  expiresAt,
142
- publishError: error
145
+ publishError: error,
146
+ warnings
143
147
  });
144
148
  }
145
149
  }
150
+ function latestMatchingMtimeMs(directory, predicate) {
151
+ let latest = 0;
152
+ const stack = [directory];
153
+ let visited = 0;
154
+ while (stack.length) {
155
+ const current = stack.pop();
156
+ for (const entry of readdirSync(current, { withFileTypes: true })) {
157
+ const fullPath = path.join(current, entry.name);
158
+ if (entry.isDirectory()) {
159
+ stack.push(fullPath);
160
+ continue;
161
+ }
162
+ if (!entry.isFile() || !predicate(fullPath)) continue;
163
+ const stat = statSync(fullPath);
164
+ latest = Math.max(latest, stat.mtimeMs);
165
+ visited += 1;
166
+ if (visited >= 1e4) return latest;
167
+ }
168
+ }
169
+ return latest;
170
+ }
171
+ function collectRiddlePreviewDeployWarnings(directory, framework = "static") {
172
+ try {
173
+ if (framework !== "static") return [];
174
+ const resolvedDirectory = path.resolve(directory);
175
+ if (path.basename(resolvedDirectory) !== "out") return [];
176
+ const repoRoot = path.dirname(resolvedDirectory);
177
+ const nextAppDir = path.join(repoRoot, ".next", "server", "app");
178
+ if (!existsSync(nextAppDir)) return [];
179
+ const nextRenderedMtimeMs = latestMatchingMtimeMs(nextAppDir, (filePath) => /\.(?:html|rsc)$/i.test(filePath));
180
+ if (!nextRenderedMtimeMs) return [];
181
+ const outRenderedMtimeMs = existsSync(resolvedDirectory) ? latestMatchingMtimeMs(resolvedDirectory, (filePath) => /\.(?:html|txt|rsc)$/i.test(filePath)) : 0;
182
+ if (!outRenderedMtimeMs) {
183
+ return [
184
+ "Riddle Preview static deploy target is an out/ directory with newer Next render output in .next/server/app, but no rendered HTML/RSC files were found in out/. Run the project static bundle/export step before deploying."
185
+ ];
186
+ }
187
+ if (nextRenderedMtimeMs > outRenderedMtimeMs + 1e3) {
188
+ return [
189
+ "Riddle Preview static deploy target out/ appears older than the Next render output in .next/server/app. Run the project static bundle/export step, such as npm run build:static-deploy or next export, before deploying to avoid a stale Preview."
190
+ ];
191
+ }
192
+ return [];
193
+ } catch {
194
+ return [];
195
+ }
196
+ }
146
197
  async function deployRiddleStaticPreview(config, directory, label) {
147
198
  return deployRiddlePreview(config, directory, label, "static");
148
199
  }
@@ -415,6 +466,7 @@ export {
415
466
  riddleRequestJson,
416
467
  getRiddleBalance,
417
468
  deployRiddlePreview,
469
+ collectRiddlePreviewDeployWarnings,
418
470
  deployRiddleStaticPreview,
419
471
  parseRiddleViewport,
420
472
  runRiddleServerPreview,
package/dist/cli.cjs CHANGED
@@ -6635,6 +6635,7 @@ function previewDeployResultFromRecord(input) {
6635
6635
  expires_at: expiresAt,
6636
6636
  publish_recovered: publishRecovered || void 0,
6637
6637
  publish_error: publishError,
6638
+ warnings: input.warnings?.length ? input.warnings : void 0,
6638
6639
  raw: record
6639
6640
  };
6640
6641
  }
@@ -6652,7 +6653,8 @@ async function waitForPublishedPreview(config, input) {
6652
6653
  framework: input.framework,
6653
6654
  expiresAt: input.expiresAt,
6654
6655
  publishRecovered: true,
6655
- publishError: input.publishError.message
6656
+ publishError: input.publishError.message,
6657
+ warnings: input.warnings
6656
6658
  });
6657
6659
  }
6658
6660
  if (attempt < PREVIEW_PUBLISH_RECOVERY_ATTEMPTS) {
@@ -6665,6 +6667,7 @@ async function deployRiddlePreview(config, directory, label, framework = "static
6665
6667
  if (!directory?.trim()) throw new Error("directory is required");
6666
6668
  if (!label?.trim()) throw new Error("label is required");
6667
6669
  if (framework !== "spa" && framework !== "static") throw new Error("framework must be spa or static");
6670
+ const warnings = collectRiddlePreviewDeployWarnings(directory, framework);
6668
6671
  const created = await riddleRequestJson(config, "/v1/preview", {
6669
6672
  method: "POST",
6670
6673
  body: JSON.stringify({ framework, label })
@@ -6692,7 +6695,7 @@ async function deployRiddlePreview(config, directory, label, framework = "static
6692
6695
  const published = await riddleRequestJson(config, `/v1/preview/${id}/publish`, {
6693
6696
  method: "POST"
6694
6697
  });
6695
- return previewDeployResultFromRecord({ record: published, id, label, framework, expiresAt });
6698
+ return previewDeployResultFromRecord({ record: published, id, label, framework, expiresAt, warnings });
6696
6699
  } catch (error) {
6697
6700
  if (!canRecoverPreviewPublish(error)) throw error;
6698
6701
  return waitForPublishedPreview(config, {
@@ -6700,10 +6703,58 @@ async function deployRiddlePreview(config, directory, label, framework = "static
6700
6703
  label,
6701
6704
  framework,
6702
6705
  expiresAt,
6703
- publishError: error
6706
+ publishError: error,
6707
+ warnings
6704
6708
  });
6705
6709
  }
6706
6710
  }
6711
+ function latestMatchingMtimeMs(directory, predicate) {
6712
+ let latest = 0;
6713
+ const stack = [directory];
6714
+ let visited = 0;
6715
+ while (stack.length) {
6716
+ const current = stack.pop();
6717
+ for (const entry of (0, import_node_fs5.readdirSync)(current, { withFileTypes: true })) {
6718
+ const fullPath = import_node_path5.default.join(current, entry.name);
6719
+ if (entry.isDirectory()) {
6720
+ stack.push(fullPath);
6721
+ continue;
6722
+ }
6723
+ if (!entry.isFile() || !predicate(fullPath)) continue;
6724
+ const stat = (0, import_node_fs5.statSync)(fullPath);
6725
+ latest = Math.max(latest, stat.mtimeMs);
6726
+ visited += 1;
6727
+ if (visited >= 1e4) return latest;
6728
+ }
6729
+ }
6730
+ return latest;
6731
+ }
6732
+ function collectRiddlePreviewDeployWarnings(directory, framework = "static") {
6733
+ try {
6734
+ if (framework !== "static") return [];
6735
+ const resolvedDirectory = import_node_path5.default.resolve(directory);
6736
+ if (import_node_path5.default.basename(resolvedDirectory) !== "out") return [];
6737
+ const repoRoot = import_node_path5.default.dirname(resolvedDirectory);
6738
+ const nextAppDir = import_node_path5.default.join(repoRoot, ".next", "server", "app");
6739
+ if (!(0, import_node_fs5.existsSync)(nextAppDir)) return [];
6740
+ const nextRenderedMtimeMs = latestMatchingMtimeMs(nextAppDir, (filePath) => /\.(?:html|rsc)$/i.test(filePath));
6741
+ if (!nextRenderedMtimeMs) return [];
6742
+ const outRenderedMtimeMs = (0, import_node_fs5.existsSync)(resolvedDirectory) ? latestMatchingMtimeMs(resolvedDirectory, (filePath) => /\.(?:html|txt|rsc)$/i.test(filePath)) : 0;
6743
+ if (!outRenderedMtimeMs) {
6744
+ return [
6745
+ "Riddle Preview static deploy target is an out/ directory with newer Next render output in .next/server/app, but no rendered HTML/RSC files were found in out/. Run the project static bundle/export step before deploying."
6746
+ ];
6747
+ }
6748
+ if (nextRenderedMtimeMs > outRenderedMtimeMs + 1e3) {
6749
+ return [
6750
+ "Riddle Preview static deploy target out/ appears older than the Next render output in .next/server/app. Run the project static bundle/export step, such as npm run build:static-deploy or next export, before deploying to avoid a stale Preview."
6751
+ ];
6752
+ }
6753
+ return [];
6754
+ } catch {
6755
+ return [];
6756
+ }
6757
+ }
6707
6758
  async function deployRiddleStaticPreview(config, directory, label) {
6708
6759
  return deployRiddlePreview(config, directory, label, "static");
6709
6760
  }
@@ -17686,6 +17737,14 @@ function profilePackReceiptStatus(result, metadata, receipt) {
17686
17737
  "visible cleanup affordance receipt missing"
17687
17738
  );
17688
17739
  }
17740
+ if (text.includes("screenshot")) {
17741
+ const needsBoundaryScreenshots = text.includes("each") || text.includes("before and after") || text.includes("state boundary");
17742
+ return profileReceiptSignalStatus(
17743
+ needsBoundaryScreenshots ? screenshotCount >= 2 : screenshotCount > 0,
17744
+ needsBoundaryScreenshots ? "multiple screenshots present" : "screenshot evidence present",
17745
+ needsBoundaryScreenshots ? "multiple screenshots missing" : "screenshot evidence missing"
17746
+ );
17747
+ }
17689
17748
  if (text.includes("input") && (text.includes("sequence") || text.includes("short-long") || text.includes("short long") || text.includes("long-short") || text.includes("long long") || text.includes("long short"))) {
17690
17749
  return profileReceiptSignalStatus(
17691
17750
  hasSequenceInputReceipt,
@@ -17748,14 +17807,6 @@ function profilePackReceiptStatus(result, metadata, receipt) {
17748
17807
  "before/after state evidence missing"
17749
17808
  );
17750
17809
  }
17751
- if (text.includes("screenshot")) {
17752
- const needsBoundaryScreenshots = text.includes("each") || text.includes("before and after") || text.includes("state boundary");
17753
- return profileReceiptSignalStatus(
17754
- needsBoundaryScreenshots ? screenshotCount >= 2 : screenshotCount > 0,
17755
- needsBoundaryScreenshots ? "multiple screenshots present" : "screenshot evidence present",
17756
- needsBoundaryScreenshots ? "multiple screenshots missing" : "screenshot evidence missing"
17757
- );
17758
- }
17759
17810
  if (text.includes("input") && (text.includes("playability") || text.includes("moving") || text.includes("steering") || text.includes("real") || text.includes("natural"))) {
17760
17811
  const needsAcceptedInput = text.includes("steering") || text.includes("accepted");
17761
17812
  const hasInputDispatch = inputDispatchCount > 0 || hasNaturalInput;
@@ -19979,6 +20030,10 @@ async function main() {
19979
20030
  const buildDir = positional[1];
19980
20031
  const label = positional[2];
19981
20032
  const result = await createRiddleApiClient(riddleClientConfig(options)).deployPreview(buildDir, label, previewFrameworkOption(options));
20033
+ for (const warning of result.warnings ?? []) {
20034
+ process.stderr.write(`Warning: ${warning}
20035
+ `);
20036
+ }
19982
20037
  process.stdout.write(`${JSON.stringify(result, null, 2)}
19983
20038
  `);
19984
20039
  return;
package/dist/cli.js CHANGED
@@ -18,7 +18,7 @@ import {
18
18
  createRiddleApiClient,
19
19
  isTerminalRiddleJobStatus,
20
20
  parseRiddleViewport
21
- } from "./chunk-33XO7WFI.js";
21
+ } from "./chunk-TWTEUS7R.js";
22
22
  import {
23
23
  createDisabledRiddleProofAgentAdapter,
24
24
  readRiddleProofRunStatus,
@@ -1446,6 +1446,14 @@ function profilePackReceiptStatus(result, metadata, receipt) {
1446
1446
  "visible cleanup affordance receipt missing"
1447
1447
  );
1448
1448
  }
1449
+ if (text.includes("screenshot")) {
1450
+ const needsBoundaryScreenshots = text.includes("each") || text.includes("before and after") || text.includes("state boundary");
1451
+ return profileReceiptSignalStatus(
1452
+ needsBoundaryScreenshots ? screenshotCount >= 2 : screenshotCount > 0,
1453
+ needsBoundaryScreenshots ? "multiple screenshots present" : "screenshot evidence present",
1454
+ needsBoundaryScreenshots ? "multiple screenshots missing" : "screenshot evidence missing"
1455
+ );
1456
+ }
1449
1457
  if (text.includes("input") && (text.includes("sequence") || text.includes("short-long") || text.includes("short long") || text.includes("long-short") || text.includes("long long") || text.includes("long short"))) {
1450
1458
  return profileReceiptSignalStatus(
1451
1459
  hasSequenceInputReceipt,
@@ -1508,14 +1516,6 @@ function profilePackReceiptStatus(result, metadata, receipt) {
1508
1516
  "before/after state evidence missing"
1509
1517
  );
1510
1518
  }
1511
- if (text.includes("screenshot")) {
1512
- const needsBoundaryScreenshots = text.includes("each") || text.includes("before and after") || text.includes("state boundary");
1513
- return profileReceiptSignalStatus(
1514
- needsBoundaryScreenshots ? screenshotCount >= 2 : screenshotCount > 0,
1515
- needsBoundaryScreenshots ? "multiple screenshots present" : "screenshot evidence present",
1516
- needsBoundaryScreenshots ? "multiple screenshots missing" : "screenshot evidence missing"
1517
- );
1518
- }
1519
1519
  if (text.includes("input") && (text.includes("playability") || text.includes("moving") || text.includes("steering") || text.includes("real") || text.includes("natural"))) {
1520
1520
  const needsAcceptedInput = text.includes("steering") || text.includes("accepted");
1521
1521
  const hasInputDispatch = inputDispatchCount > 0 || hasNaturalInput;
@@ -3739,6 +3739,10 @@ async function main() {
3739
3739
  const buildDir = positional[1];
3740
3740
  const label = positional[2];
3741
3741
  const result = await createRiddleApiClient(riddleClientConfig(options)).deployPreview(buildDir, label, previewFrameworkOption(options));
3742
+ for (const warning of result.warnings ?? []) {
3743
+ process.stderr.write(`Warning: ${warning}
3744
+ `);
3745
+ }
3742
3746
  process.stdout.write(`${JSON.stringify(result, null, 2)}
3743
3747
  `);
3744
3748
  return;
package/dist/index.cjs CHANGED
@@ -2948,6 +2948,7 @@ __export(index_exports, {
2948
2948
  buildVisualProofSession: () => buildVisualProofSession,
2949
2949
  checkpointResponseIdentity: () => checkpointResponseIdentity,
2950
2950
  checkpointSummaryFromState: () => checkpointSummaryFromState,
2951
+ collectRiddlePreviewDeployWarnings: () => collectRiddlePreviewDeployWarnings,
2951
2952
  collectRiddleProfileArtifactRefs: () => collectRiddleProfileArtifactRefs,
2952
2953
  collectRiddleProofProfileWarnings: () => collectRiddleProofProfileWarnings,
2953
2954
  compactBasicGameplayText: () => compactBasicGameplayText,
@@ -18137,6 +18138,7 @@ function previewDeployResultFromRecord(input) {
18137
18138
  expires_at: expiresAt,
18138
18139
  publish_recovered: publishRecovered || void 0,
18139
18140
  publish_error: publishError,
18141
+ warnings: input.warnings?.length ? input.warnings : void 0,
18140
18142
  raw: record
18141
18143
  };
18142
18144
  }
@@ -18154,7 +18156,8 @@ async function waitForPublishedPreview(config, input) {
18154
18156
  framework: input.framework,
18155
18157
  expiresAt: input.expiresAt,
18156
18158
  publishRecovered: true,
18157
- publishError: input.publishError.message
18159
+ publishError: input.publishError.message,
18160
+ warnings: input.warnings
18158
18161
  });
18159
18162
  }
18160
18163
  if (attempt < PREVIEW_PUBLISH_RECOVERY_ATTEMPTS) {
@@ -18167,6 +18170,7 @@ async function deployRiddlePreview(config, directory, label, framework = "static
18167
18170
  if (!directory?.trim()) throw new Error("directory is required");
18168
18171
  if (!label?.trim()) throw new Error("label is required");
18169
18172
  if (framework !== "spa" && framework !== "static") throw new Error("framework must be spa or static");
18173
+ const warnings = collectRiddlePreviewDeployWarnings(directory, framework);
18170
18174
  const created = await riddleRequestJson(config, "/v1/preview", {
18171
18175
  method: "POST",
18172
18176
  body: JSON.stringify({ framework, label })
@@ -18194,7 +18198,7 @@ async function deployRiddlePreview(config, directory, label, framework = "static
18194
18198
  const published = await riddleRequestJson(config, `/v1/preview/${id}/publish`, {
18195
18199
  method: "POST"
18196
18200
  });
18197
- return previewDeployResultFromRecord({ record: published, id, label, framework, expiresAt });
18201
+ return previewDeployResultFromRecord({ record: published, id, label, framework, expiresAt, warnings });
18198
18202
  } catch (error) {
18199
18203
  if (!canRecoverPreviewPublish(error)) throw error;
18200
18204
  return waitForPublishedPreview(config, {
@@ -18202,10 +18206,58 @@ async function deployRiddlePreview(config, directory, label, framework = "static
18202
18206
  label,
18203
18207
  framework,
18204
18208
  expiresAt,
18205
- publishError: error
18209
+ publishError: error,
18210
+ warnings
18206
18211
  });
18207
18212
  }
18208
18213
  }
18214
+ function latestMatchingMtimeMs(directory, predicate) {
18215
+ let latest = 0;
18216
+ const stack = [directory];
18217
+ let visited = 0;
18218
+ while (stack.length) {
18219
+ const current = stack.pop();
18220
+ for (const entry of (0, import_node_fs5.readdirSync)(current, { withFileTypes: true })) {
18221
+ const fullPath = import_node_path5.default.join(current, entry.name);
18222
+ if (entry.isDirectory()) {
18223
+ stack.push(fullPath);
18224
+ continue;
18225
+ }
18226
+ if (!entry.isFile() || !predicate(fullPath)) continue;
18227
+ const stat = (0, import_node_fs5.statSync)(fullPath);
18228
+ latest = Math.max(latest, stat.mtimeMs);
18229
+ visited += 1;
18230
+ if (visited >= 1e4) return latest;
18231
+ }
18232
+ }
18233
+ return latest;
18234
+ }
18235
+ function collectRiddlePreviewDeployWarnings(directory, framework = "static") {
18236
+ try {
18237
+ if (framework !== "static") return [];
18238
+ const resolvedDirectory = import_node_path5.default.resolve(directory);
18239
+ if (import_node_path5.default.basename(resolvedDirectory) !== "out") return [];
18240
+ const repoRoot = import_node_path5.default.dirname(resolvedDirectory);
18241
+ const nextAppDir = import_node_path5.default.join(repoRoot, ".next", "server", "app");
18242
+ if (!(0, import_node_fs5.existsSync)(nextAppDir)) return [];
18243
+ const nextRenderedMtimeMs = latestMatchingMtimeMs(nextAppDir, (filePath) => /\.(?:html|rsc)$/i.test(filePath));
18244
+ if (!nextRenderedMtimeMs) return [];
18245
+ const outRenderedMtimeMs = (0, import_node_fs5.existsSync)(resolvedDirectory) ? latestMatchingMtimeMs(resolvedDirectory, (filePath) => /\.(?:html|txt|rsc)$/i.test(filePath)) : 0;
18246
+ if (!outRenderedMtimeMs) {
18247
+ return [
18248
+ "Riddle Preview static deploy target is an out/ directory with newer Next render output in .next/server/app, but no rendered HTML/RSC files were found in out/. Run the project static bundle/export step before deploying."
18249
+ ];
18250
+ }
18251
+ if (nextRenderedMtimeMs > outRenderedMtimeMs + 1e3) {
18252
+ return [
18253
+ "Riddle Preview static deploy target out/ appears older than the Next render output in .next/server/app. Run the project static bundle/export step, such as npm run build:static-deploy or next export, before deploying to avoid a stale Preview."
18254
+ ];
18255
+ }
18256
+ return [];
18257
+ } catch {
18258
+ return [];
18259
+ }
18260
+ }
18209
18261
  async function deployRiddleStaticPreview(config, directory, label) {
18210
18262
  return deployRiddlePreview(config, directory, label, "static");
18211
18263
  }
@@ -18519,6 +18571,7 @@ function createRiddleApiClient(config = {}) {
18519
18571
  buildVisualProofSession,
18520
18572
  checkpointResponseIdentity,
18521
18573
  checkpointSummaryFromState,
18574
+ collectRiddlePreviewDeployWarnings,
18522
18575
  collectRiddleProfileArtifactRefs,
18523
18576
  collectRiddleProofProfileWarnings,
18524
18577
  compactBasicGameplayText,
package/dist/index.d.cts CHANGED
@@ -11,4 +11,4 @@ export { BuildVisualProofSessionInput, RIDDLE_PROOF_VISUAL_SESSION_FINGERPRINT_V
11
11
  export { AssessPlayabilityOptions, RIDDLE_PROOF_PLAYABILITY_ASSESSMENT_VERSION, RIDDLE_PROOF_PLAYABILITY_VERSION, RiddleProofPlayabilityAssessment, RiddleProofPlayabilityEvidence, assessPlayabilityEvidence, extractPlayabilityEvidence, isRiddleProofPlayabilityMode } from './playability.cjs';
12
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
13
  export { NormalizeRiddleProofProfileOptions, RIDDLE_PROOF_PROFILE_CHECK_TYPES, RIDDLE_PROOF_PROFILE_EVIDENCE_VERSION, RIDDLE_PROOF_PROFILE_NETWORK_ABORT_ERROR_CODES, RIDDLE_PROOF_PROFILE_RESULT_VERSION, RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES, RIDDLE_PROOF_PROFILE_STATUSES, RIDDLE_PROOF_PROFILE_VERSION, RiddleProofArtifactBodyAssertionInput, RiddleProofArtifactBodyAssertionResult, RiddleProofProfile, RiddleProofProfileArtifactRef, RiddleProofProfileBaselinePolicy, RiddleProofProfileBoundsOffender, RiddleProofProfileCheck, RiddleProofProfileCheckResult, RiddleProofProfileCheckType, RiddleProofProfileEvidence, RiddleProofProfileFailureAction, RiddleProofProfileHttpStatusBodyJsonAssertion, RiddleProofProfileHttpStatusBodyJsonAssertionResult, RiddleProofProfileHttpStatusPreflightCheckResult, RiddleProofProfileHttpStatusPreflightFetch, RiddleProofProfileHttpStatusPreflightFetchResponse, RiddleProofProfileHttpStatusPreflightOptions, RiddleProofProfileHttpStatusPreflightResult, RiddleProofProfileJsonValueType, RiddleProofProfileNetworkAbortErrorCode, RiddleProofProfileNetworkMock, RiddleProofProfileNetworkMockResponse, RiddleProofProfileResult, RiddleProofProfileReturnSummaryField, RiddleProofProfileRouteEvidence, RiddleProofProfileRouteInventoryRoute, RiddleProofProfileRunner, RiddleProofProfileSetupAction, RiddleProofProfileSetupActionType, RiddleProofProfileStatus, RiddleProofProfileTarget, RiddleProofProfileViewport, RiddleProofProfileViewportEvidence, assessRiddleProofProfileEvidence, buildRiddleProofProfileScript, collectRiddleProfileArtifactRefs, collectRiddleProofProfileWarnings, createRiddleProofProfileConfigurationError, createRiddleProofProfileEnvironmentBlockedResult, createRiddleProofProfileInsufficientResult, deriveRiddleProofArtifactBodyAssertions, extractRiddleProofProfileResult, normalizeRiddleProofProfile, preflightRiddleProofProfileHttpStatusChecks, profileStatusExitCode, resolveRiddleProofProfileRouteUrl, resolveRiddleProofProfileTargetUrl, resolveRiddleProofProfileTimeoutSec, slugifyRiddleProofProfileName, summarizeRiddleProofProfileResult } from './profile.cjs';
14
- export { DEFAULT_RIDDLE_API_BASE_URL, DEFAULT_RIDDLE_API_KEY_FILE, RiddleApiError, RiddleApiKeySource, RiddleBalanceResult, RiddleClientConfig, RiddleFetch, RiddlePollJobOptions, RiddlePollJobResult, RiddlePollProgressSnapshot, RiddlePollSummary, RiddlePreviewDeployResult, RiddlePreviewFramework, RiddleRunScriptInput, RiddleServerPreviewInput, RiddleServerPreviewResult, createRiddleApiClient, deployRiddlePreview, deployRiddleStaticPreview, getRiddleBalance, isTerminalRiddleJobStatus, parseRiddleViewport, pollRiddleJob, resolveRiddleApiKey, resolveRiddleApiKeySource, riddleRequestJson, runRiddleScript, runRiddleServerPreview } from './riddle-client.cjs';
14
+ export { DEFAULT_RIDDLE_API_BASE_URL, DEFAULT_RIDDLE_API_KEY_FILE, RiddleApiError, RiddleApiKeySource, RiddleBalanceResult, RiddleClientConfig, RiddleFetch, RiddlePollJobOptions, RiddlePollJobResult, RiddlePollProgressSnapshot, RiddlePollSummary, RiddlePreviewDeployResult, RiddlePreviewFramework, RiddleRunScriptInput, RiddleServerPreviewInput, RiddleServerPreviewResult, collectRiddlePreviewDeployWarnings, createRiddleApiClient, deployRiddlePreview, deployRiddleStaticPreview, getRiddleBalance, isTerminalRiddleJobStatus, parseRiddleViewport, pollRiddleJob, resolveRiddleApiKey, resolveRiddleApiKeySource, riddleRequestJson, runRiddleScript, runRiddleServerPreview } from './riddle-client.cjs';
package/dist/index.d.ts CHANGED
@@ -11,4 +11,4 @@ export { BuildVisualProofSessionInput, RIDDLE_PROOF_VISUAL_SESSION_FINGERPRINT_V
11
11
  export { AssessPlayabilityOptions, RIDDLE_PROOF_PLAYABILITY_ASSESSMENT_VERSION, RIDDLE_PROOF_PLAYABILITY_VERSION, RiddleProofPlayabilityAssessment, RiddleProofPlayabilityEvidence, assessPlayabilityEvidence, extractPlayabilityEvidence, isRiddleProofPlayabilityMode } from './playability.js';
12
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
13
  export { NormalizeRiddleProofProfileOptions, RIDDLE_PROOF_PROFILE_CHECK_TYPES, RIDDLE_PROOF_PROFILE_EVIDENCE_VERSION, RIDDLE_PROOF_PROFILE_NETWORK_ABORT_ERROR_CODES, RIDDLE_PROOF_PROFILE_RESULT_VERSION, RIDDLE_PROOF_PROFILE_SETUP_ACTION_TYPES, RIDDLE_PROOF_PROFILE_STATUSES, RIDDLE_PROOF_PROFILE_VERSION, RiddleProofArtifactBodyAssertionInput, RiddleProofArtifactBodyAssertionResult, RiddleProofProfile, RiddleProofProfileArtifactRef, RiddleProofProfileBaselinePolicy, RiddleProofProfileBoundsOffender, RiddleProofProfileCheck, RiddleProofProfileCheckResult, RiddleProofProfileCheckType, RiddleProofProfileEvidence, RiddleProofProfileFailureAction, RiddleProofProfileHttpStatusBodyJsonAssertion, RiddleProofProfileHttpStatusBodyJsonAssertionResult, RiddleProofProfileHttpStatusPreflightCheckResult, RiddleProofProfileHttpStatusPreflightFetch, RiddleProofProfileHttpStatusPreflightFetchResponse, RiddleProofProfileHttpStatusPreflightOptions, RiddleProofProfileHttpStatusPreflightResult, RiddleProofProfileJsonValueType, RiddleProofProfileNetworkAbortErrorCode, RiddleProofProfileNetworkMock, RiddleProofProfileNetworkMockResponse, RiddleProofProfileResult, RiddleProofProfileReturnSummaryField, RiddleProofProfileRouteEvidence, RiddleProofProfileRouteInventoryRoute, RiddleProofProfileRunner, RiddleProofProfileSetupAction, RiddleProofProfileSetupActionType, RiddleProofProfileStatus, RiddleProofProfileTarget, RiddleProofProfileViewport, RiddleProofProfileViewportEvidence, assessRiddleProofProfileEvidence, buildRiddleProofProfileScript, collectRiddleProfileArtifactRefs, collectRiddleProofProfileWarnings, createRiddleProofProfileConfigurationError, createRiddleProofProfileEnvironmentBlockedResult, createRiddleProofProfileInsufficientResult, deriveRiddleProofArtifactBodyAssertions, extractRiddleProofProfileResult, normalizeRiddleProofProfile, preflightRiddleProofProfileHttpStatusChecks, profileStatusExitCode, resolveRiddleProofProfileRouteUrl, resolveRiddleProofProfileTargetUrl, resolveRiddleProofProfileTimeoutSec, slugifyRiddleProofProfileName, summarizeRiddleProofProfileResult } from './profile.js';
14
- export { DEFAULT_RIDDLE_API_BASE_URL, DEFAULT_RIDDLE_API_KEY_FILE, RiddleApiError, RiddleApiKeySource, RiddleBalanceResult, RiddleClientConfig, RiddleFetch, RiddlePollJobOptions, RiddlePollJobResult, RiddlePollProgressSnapshot, RiddlePollSummary, RiddlePreviewDeployResult, RiddlePreviewFramework, RiddleRunScriptInput, RiddleServerPreviewInput, RiddleServerPreviewResult, createRiddleApiClient, deployRiddlePreview, deployRiddleStaticPreview, getRiddleBalance, isTerminalRiddleJobStatus, parseRiddleViewport, pollRiddleJob, resolveRiddleApiKey, resolveRiddleApiKeySource, riddleRequestJson, runRiddleScript, runRiddleServerPreview } from './riddle-client.js';
14
+ export { DEFAULT_RIDDLE_API_BASE_URL, DEFAULT_RIDDLE_API_KEY_FILE, RiddleApiError, RiddleApiKeySource, RiddleBalanceResult, RiddleClientConfig, RiddleFetch, RiddlePollJobOptions, RiddlePollJobResult, RiddlePollProgressSnapshot, RiddlePollSummary, RiddlePreviewDeployResult, RiddlePreviewFramework, RiddleRunScriptInput, RiddleServerPreviewInput, RiddleServerPreviewResult, collectRiddlePreviewDeployWarnings, createRiddleApiClient, deployRiddlePreview, deployRiddleStaticPreview, getRiddleBalance, isTerminalRiddleJobStatus, parseRiddleViewport, pollRiddleJob, resolveRiddleApiKey, resolveRiddleApiKeySource, riddleRequestJson, runRiddleScript, runRiddleServerPreview } from './riddle-client.js';
package/dist/index.js CHANGED
@@ -67,6 +67,7 @@ import {
67
67
  DEFAULT_RIDDLE_API_BASE_URL,
68
68
  DEFAULT_RIDDLE_API_KEY_FILE,
69
69
  RiddleApiError,
70
+ collectRiddlePreviewDeployWarnings,
70
71
  createRiddleApiClient,
71
72
  deployRiddlePreview,
72
73
  deployRiddleStaticPreview,
@@ -79,7 +80,7 @@ import {
79
80
  riddleRequestJson,
80
81
  runRiddleScript,
81
82
  runRiddleServerPreview
82
- } from "./chunk-33XO7WFI.js";
83
+ } from "./chunk-TWTEUS7R.js";
83
84
  import {
84
85
  DEFAULT_DIAGNOSTIC_ARRAY_LIMIT,
85
86
  DEFAULT_DIAGNOSTIC_HISTORY_LIMIT,
@@ -194,6 +195,7 @@ export {
194
195
  buildVisualProofSession,
195
196
  checkpointResponseIdentity,
196
197
  checkpointSummaryFromState,
198
+ collectRiddlePreviewDeployWarnings,
197
199
  collectRiddleProfileArtifactRefs,
198
200
  collectRiddleProofProfileWarnings,
199
201
  compactBasicGameplayText,
@@ -33,6 +33,7 @@ __export(riddle_client_exports, {
33
33
  DEFAULT_RIDDLE_API_BASE_URL: () => DEFAULT_RIDDLE_API_BASE_URL,
34
34
  DEFAULT_RIDDLE_API_KEY_FILE: () => DEFAULT_RIDDLE_API_KEY_FILE,
35
35
  RiddleApiError: () => RiddleApiError,
36
+ collectRiddlePreviewDeployWarnings: () => collectRiddlePreviewDeployWarnings,
36
37
  createRiddleApiClient: () => createRiddleApiClient,
37
38
  deployRiddlePreview: () => deployRiddlePreview,
38
39
  deployRiddleStaticPreview: () => deployRiddleStaticPreview,
@@ -122,6 +123,7 @@ function previewDeployResultFromRecord(input) {
122
123
  expires_at: expiresAt,
123
124
  publish_recovered: publishRecovered || void 0,
124
125
  publish_error: publishError,
126
+ warnings: input.warnings?.length ? input.warnings : void 0,
125
127
  raw: record
126
128
  };
127
129
  }
@@ -139,7 +141,8 @@ async function waitForPublishedPreview(config, input) {
139
141
  framework: input.framework,
140
142
  expiresAt: input.expiresAt,
141
143
  publishRecovered: true,
142
- publishError: input.publishError.message
144
+ publishError: input.publishError.message,
145
+ warnings: input.warnings
143
146
  });
144
147
  }
145
148
  if (attempt < PREVIEW_PUBLISH_RECOVERY_ATTEMPTS) {
@@ -152,6 +155,7 @@ async function deployRiddlePreview(config, directory, label, framework = "static
152
155
  if (!directory?.trim()) throw new Error("directory is required");
153
156
  if (!label?.trim()) throw new Error("label is required");
154
157
  if (framework !== "spa" && framework !== "static") throw new Error("framework must be spa or static");
158
+ const warnings = collectRiddlePreviewDeployWarnings(directory, framework);
155
159
  const created = await riddleRequestJson(config, "/v1/preview", {
156
160
  method: "POST",
157
161
  body: JSON.stringify({ framework, label })
@@ -179,7 +183,7 @@ async function deployRiddlePreview(config, directory, label, framework = "static
179
183
  const published = await riddleRequestJson(config, `/v1/preview/${id}/publish`, {
180
184
  method: "POST"
181
185
  });
182
- return previewDeployResultFromRecord({ record: published, id, label, framework, expiresAt });
186
+ return previewDeployResultFromRecord({ record: published, id, label, framework, expiresAt, warnings });
183
187
  } catch (error) {
184
188
  if (!canRecoverPreviewPublish(error)) throw error;
185
189
  return waitForPublishedPreview(config, {
@@ -187,10 +191,58 @@ async function deployRiddlePreview(config, directory, label, framework = "static
187
191
  label,
188
192
  framework,
189
193
  expiresAt,
190
- publishError: error
194
+ publishError: error,
195
+ warnings
191
196
  });
192
197
  }
193
198
  }
199
+ function latestMatchingMtimeMs(directory, predicate) {
200
+ let latest = 0;
201
+ const stack = [directory];
202
+ let visited = 0;
203
+ while (stack.length) {
204
+ const current = stack.pop();
205
+ for (const entry of (0, import_node_fs.readdirSync)(current, { withFileTypes: true })) {
206
+ const fullPath = import_node_path.default.join(current, entry.name);
207
+ if (entry.isDirectory()) {
208
+ stack.push(fullPath);
209
+ continue;
210
+ }
211
+ if (!entry.isFile() || !predicate(fullPath)) continue;
212
+ const stat = (0, import_node_fs.statSync)(fullPath);
213
+ latest = Math.max(latest, stat.mtimeMs);
214
+ visited += 1;
215
+ if (visited >= 1e4) return latest;
216
+ }
217
+ }
218
+ return latest;
219
+ }
220
+ function collectRiddlePreviewDeployWarnings(directory, framework = "static") {
221
+ try {
222
+ if (framework !== "static") return [];
223
+ const resolvedDirectory = import_node_path.default.resolve(directory);
224
+ if (import_node_path.default.basename(resolvedDirectory) !== "out") return [];
225
+ const repoRoot = import_node_path.default.dirname(resolvedDirectory);
226
+ const nextAppDir = import_node_path.default.join(repoRoot, ".next", "server", "app");
227
+ if (!(0, import_node_fs.existsSync)(nextAppDir)) return [];
228
+ const nextRenderedMtimeMs = latestMatchingMtimeMs(nextAppDir, (filePath) => /\.(?:html|rsc)$/i.test(filePath));
229
+ if (!nextRenderedMtimeMs) return [];
230
+ const outRenderedMtimeMs = (0, import_node_fs.existsSync)(resolvedDirectory) ? latestMatchingMtimeMs(resolvedDirectory, (filePath) => /\.(?:html|txt|rsc)$/i.test(filePath)) : 0;
231
+ if (!outRenderedMtimeMs) {
232
+ return [
233
+ "Riddle Preview static deploy target is an out/ directory with newer Next render output in .next/server/app, but no rendered HTML/RSC files were found in out/. Run the project static bundle/export step before deploying."
234
+ ];
235
+ }
236
+ if (nextRenderedMtimeMs > outRenderedMtimeMs + 1e3) {
237
+ return [
238
+ "Riddle Preview static deploy target out/ appears older than the Next render output in .next/server/app. Run the project static bundle/export step, such as npm run build:static-deploy or next export, before deploying to avoid a stale Preview."
239
+ ];
240
+ }
241
+ return [];
242
+ } catch {
243
+ return [];
244
+ }
245
+ }
194
246
  async function deployRiddleStaticPreview(config, directory, label) {
195
247
  return deployRiddlePreview(config, directory, label, "static");
196
248
  }
@@ -458,6 +510,7 @@ function createRiddleApiClient(config = {}) {
458
510
  DEFAULT_RIDDLE_API_BASE_URL,
459
511
  DEFAULT_RIDDLE_API_KEY_FILE,
460
512
  RiddleApiError,
513
+ collectRiddlePreviewDeployWarnings,
461
514
  createRiddleApiClient,
462
515
  deployRiddlePreview,
463
516
  deployRiddleStaticPreview,
@@ -65,6 +65,7 @@ interface RiddlePreviewDeployResult {
65
65
  expires_at?: string;
66
66
  publish_recovered?: boolean;
67
67
  publish_error?: string;
68
+ warnings?: string[];
68
69
  raw?: Record<string, unknown>;
69
70
  }
70
71
  interface RiddleRunScriptInput {
@@ -129,6 +130,7 @@ declare function resolveRiddleApiKey(config?: RiddleClientConfig): string;
129
130
  declare function riddleRequestJson<T = unknown>(config: RiddleClientConfig, pathname: string, init?: RequestInit): Promise<T>;
130
131
  declare function getRiddleBalance(config?: RiddleClientConfig): Promise<RiddleBalanceResult>;
131
132
  declare function deployRiddlePreview(config: RiddleClientConfig, directory: string, label: string, framework?: RiddlePreviewFramework): Promise<RiddlePreviewDeployResult>;
133
+ declare function collectRiddlePreviewDeployWarnings(directory: string, framework?: RiddlePreviewFramework): string[];
132
134
  declare function deployRiddleStaticPreview(config: RiddleClientConfig, directory: string, label: string): Promise<RiddlePreviewDeployResult>;
133
135
  declare function parseRiddleViewport(value?: string): {
134
136
  width: number;
@@ -149,4 +151,4 @@ declare function createRiddleApiClient(config?: RiddleClientConfig): {
149
151
  pollJob: (jobId: string, options?: RiddlePollJobOptions) => Promise<RiddlePollJobResult>;
150
152
  };
151
153
 
152
- export { DEFAULT_RIDDLE_API_BASE_URL, DEFAULT_RIDDLE_API_KEY_FILE, RiddleApiError, type RiddleApiKeySource, type RiddleBalanceResult, type RiddleClientConfig, type RiddleFetch, type RiddlePollJobOptions, type RiddlePollJobResult, type RiddlePollProgressSnapshot, type RiddlePollSummary, type RiddlePreviewDeployResult, type RiddlePreviewFramework, type RiddleRunScriptInput, type RiddleServerPreviewInput, type RiddleServerPreviewResult, createRiddleApiClient, deployRiddlePreview, deployRiddleStaticPreview, getRiddleBalance, isTerminalRiddleJobStatus, parseRiddleViewport, pollRiddleJob, resolveRiddleApiKey, resolveRiddleApiKeySource, riddleRequestJson, runRiddleScript, runRiddleServerPreview };
154
+ export { DEFAULT_RIDDLE_API_BASE_URL, DEFAULT_RIDDLE_API_KEY_FILE, RiddleApiError, type RiddleApiKeySource, type RiddleBalanceResult, type RiddleClientConfig, type RiddleFetch, type RiddlePollJobOptions, type RiddlePollJobResult, type RiddlePollProgressSnapshot, type RiddlePollSummary, type RiddlePreviewDeployResult, type RiddlePreviewFramework, type RiddleRunScriptInput, type RiddleServerPreviewInput, type RiddleServerPreviewResult, collectRiddlePreviewDeployWarnings, createRiddleApiClient, deployRiddlePreview, deployRiddleStaticPreview, getRiddleBalance, isTerminalRiddleJobStatus, parseRiddleViewport, pollRiddleJob, resolveRiddleApiKey, resolveRiddleApiKeySource, riddleRequestJson, runRiddleScript, runRiddleServerPreview };
@@ -65,6 +65,7 @@ interface RiddlePreviewDeployResult {
65
65
  expires_at?: string;
66
66
  publish_recovered?: boolean;
67
67
  publish_error?: string;
68
+ warnings?: string[];
68
69
  raw?: Record<string, unknown>;
69
70
  }
70
71
  interface RiddleRunScriptInput {
@@ -129,6 +130,7 @@ declare function resolveRiddleApiKey(config?: RiddleClientConfig): string;
129
130
  declare function riddleRequestJson<T = unknown>(config: RiddleClientConfig, pathname: string, init?: RequestInit): Promise<T>;
130
131
  declare function getRiddleBalance(config?: RiddleClientConfig): Promise<RiddleBalanceResult>;
131
132
  declare function deployRiddlePreview(config: RiddleClientConfig, directory: string, label: string, framework?: RiddlePreviewFramework): Promise<RiddlePreviewDeployResult>;
133
+ declare function collectRiddlePreviewDeployWarnings(directory: string, framework?: RiddlePreviewFramework): string[];
132
134
  declare function deployRiddleStaticPreview(config: RiddleClientConfig, directory: string, label: string): Promise<RiddlePreviewDeployResult>;
133
135
  declare function parseRiddleViewport(value?: string): {
134
136
  width: number;
@@ -149,4 +151,4 @@ declare function createRiddleApiClient(config?: RiddleClientConfig): {
149
151
  pollJob: (jobId: string, options?: RiddlePollJobOptions) => Promise<RiddlePollJobResult>;
150
152
  };
151
153
 
152
- export { DEFAULT_RIDDLE_API_BASE_URL, DEFAULT_RIDDLE_API_KEY_FILE, RiddleApiError, type RiddleApiKeySource, type RiddleBalanceResult, type RiddleClientConfig, type RiddleFetch, type RiddlePollJobOptions, type RiddlePollJobResult, type RiddlePollProgressSnapshot, type RiddlePollSummary, type RiddlePreviewDeployResult, type RiddlePreviewFramework, type RiddleRunScriptInput, type RiddleServerPreviewInput, type RiddleServerPreviewResult, createRiddleApiClient, deployRiddlePreview, deployRiddleStaticPreview, getRiddleBalance, isTerminalRiddleJobStatus, parseRiddleViewport, pollRiddleJob, resolveRiddleApiKey, resolveRiddleApiKeySource, riddleRequestJson, runRiddleScript, runRiddleServerPreview };
154
+ export { DEFAULT_RIDDLE_API_BASE_URL, DEFAULT_RIDDLE_API_KEY_FILE, RiddleApiError, type RiddleApiKeySource, type RiddleBalanceResult, type RiddleClientConfig, type RiddleFetch, type RiddlePollJobOptions, type RiddlePollJobResult, type RiddlePollProgressSnapshot, type RiddlePollSummary, type RiddlePreviewDeployResult, type RiddlePreviewFramework, type RiddleRunScriptInput, type RiddleServerPreviewInput, type RiddleServerPreviewResult, collectRiddlePreviewDeployWarnings, createRiddleApiClient, deployRiddlePreview, deployRiddleStaticPreview, getRiddleBalance, isTerminalRiddleJobStatus, parseRiddleViewport, pollRiddleJob, resolveRiddleApiKey, resolveRiddleApiKeySource, riddleRequestJson, runRiddleScript, runRiddleServerPreview };
@@ -2,6 +2,7 @@ import {
2
2
  DEFAULT_RIDDLE_API_BASE_URL,
3
3
  DEFAULT_RIDDLE_API_KEY_FILE,
4
4
  RiddleApiError,
5
+ collectRiddlePreviewDeployWarnings,
5
6
  createRiddleApiClient,
6
7
  deployRiddlePreview,
7
8
  deployRiddleStaticPreview,
@@ -14,11 +15,12 @@ import {
14
15
  riddleRequestJson,
15
16
  runRiddleScript,
16
17
  runRiddleServerPreview
17
- } from "./chunk-33XO7WFI.js";
18
+ } from "./chunk-TWTEUS7R.js";
18
19
  export {
19
20
  DEFAULT_RIDDLE_API_BASE_URL,
20
21
  DEFAULT_RIDDLE_API_KEY_FILE,
21
22
  RiddleApiError,
23
+ collectRiddlePreviewDeployWarnings,
22
24
  createRiddleApiClient,
23
25
  deployRiddlePreview,
24
26
  deployRiddleStaticPreview,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@riddledc/riddle-proof",
3
- "version": "0.7.216",
3
+ "version": "0.7.218",
4
4
  "description": "Reusable Riddle Proof contracts and helpers for evidence-backed agent changes.",
5
5
  "license": "MIT",
6
6
  "author": "RiddleDC",