@suveren/gateway 0.18.1 → 0.19.0

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.
@@ -1368,6 +1368,9 @@ function sleep(ms) {
1368
1368
  * Delegates entirely to the compiled `dist/mcp-server/report-verify-cli.mjs`
1369
1369
  * (built from apps/mcp-server's OWN tsup entry, next to dist/mcp-server/
1370
1370
  * http.mjs) — this script never reimplements the signature-checking logic.
1371
+ * It checks the signatures AND every value the page shows (RR7: the page
1372
+ * must re-draw from the bundle byte for byte; each drawn field is checked
1373
+ * against its signed source, recomputed, or listed as not checkable offline).
1371
1374
  * Exit codes are documented there (`--help`): 0 valid+key confirmed,
1372
1375
  * 1 invalid, 2 valid but key unconfirmed.
1373
1376
  */
@@ -1410,7 +1413,8 @@ Usage:
1410
1413
  suveren-gateway simulation on|off|status Block (or unblock) every real system
1411
1414
  (see \`suveren-gateway simulation help\`)
1412
1415
  suveren-gateway verify-report <file> [--key <hex>] [--online]
1413
- Verify an "Export with proof" report file offline
1416
+ Verify an "Export with proof" report file offline —
1417
+ every signature and every value the page shows
1414
1418
  (see \`suveren-gateway verify-report --help\`)
1415
1419
  suveren-gateway help Print this help
1416
1420
 
@@ -3976,6 +3976,10 @@ async function planMandate(req, deps) {
3976
3976
  if (bt?.kind === "enum" && Array.isArray(bt.values) && !bt.values.includes(String(value))) {
3977
3977
  errors.push(`Field "${field}" must be one of ${bt.values.join(", ")}.`);
3978
3978
  }
3979
+ const maximum = profile.boundsSchema?.fields[field]?.maximum;
3980
+ if (typeof maximum === "number" && typeof value === "number" && value > maximum) {
3981
+ errors.push(`Field "${field}" may be at most ${maximum}.`);
3982
+ }
3979
3983
  }
3980
3984
  const context = scalarRecord("scope", req.scope);
3981
3985
  errors.push(...validateContextParams(context, profile).errors);