@lapxo/bound 0.2.5 → 0.2.6

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.
Files changed (237) hide show
  1. package/CITATION.cff +1 -1
  2. package/README.md +20 -3
  3. package/TARGET.bound +75 -42
  4. package/dist/cli/accept.js +59 -70
  5. package/dist/cli/act-result.js +3 -3
  6. package/dist/cli/args.js +1 -1
  7. package/dist/cli/host.js +1 -1
  8. package/dist/cli/native.js +1 -1
  9. package/dist/cli/pass.js +22 -21
  10. package/dist/cli/place.js +6 -6
  11. package/dist/cli/release-result.js +3 -3
  12. package/dist/cli/retained-judgment.js +1 -1
  13. package/dist/cli/standing-result.js +3 -3
  14. package/dist/cli/takes.js +10 -10
  15. package/dist/cli/verb.js +79 -77
  16. package/dist/engine/computation.js +1 -1
  17. package/dist/engine/index.js +1 -1
  18. package/dist/engine/object.js +1 -1
  19. package/dist/engine/ports.js +1 -1
  20. package/dist/fold/admission-history.js +1 -1
  21. package/dist/fold/ceilings.js +1 -1
  22. package/dist/fold/claims.js +2 -2
  23. package/dist/fold/closed.js +1 -1
  24. package/dist/fold/configures.js +1 -1
  25. package/dist/fold/digests.js +10 -10
  26. package/dist/fold/evidence.js +1 -1
  27. package/dist/fold/keys.js +3 -3
  28. package/dist/fold/laid.js +1 -1
  29. package/dist/fold/observed.js +27 -26
  30. package/dist/fold/opened.js +1 -1
  31. package/dist/fold/own.js +3 -3
  32. package/dist/fold/paid.js +1 -1
  33. package/dist/fold/place-inputs.js +1 -1
  34. package/dist/fold/places.js +1 -1
  35. package/dist/fold/reach.js +1 -1
  36. package/dist/fold/readers.js +1 -1
  37. package/dist/fold/region.js +1 -1
  38. package/dist/fold/release-policy.js +1 -1
  39. package/dist/fold/resolved.js +1 -1
  40. package/dist/fold/roles.js +1 -1
  41. package/dist/fold/shards.js +8 -8
  42. package/dist/fold/signed.js +3 -3
  43. package/dist/fold/signers.js +1 -1
  44. package/dist/fold/stranger.js +6 -6
  45. package/dist/fold/wire.js +1 -1
  46. package/dist/fold/zoom.js +1 -1
  47. package/dist/host/act-cost.js +1 -1
  48. package/dist/host/adapters/keys/ed25519.js +1 -1
  49. package/dist/host/adapters/transport/http.js +1 -1
  50. package/dist/host/admitted-place.js +1 -1
  51. package/dist/host/call-context.js +1 -1
  52. package/dist/host/capsule-process.js +1 -1
  53. package/dist/host/capsule.js +1 -1
  54. package/dist/host/cell-receipts.js +1 -1
  55. package/dist/host/command-server.js +4 -0
  56. package/dist/host/content-store.js +1 -1
  57. package/dist/host/contextual-place.js +1 -1
  58. package/dist/host/digest.js +1 -1
  59. package/dist/host/host-controls.js +1 -1
  60. package/dist/host/in-process-act.js +1 -1
  61. package/dist/host/in-process-context.js +1 -1
  62. package/dist/host/in-process-root.js +1 -1
  63. package/dist/host/in-process.js +1 -1
  64. package/dist/host/index.d.ts +1 -1
  65. package/dist/host/index.js +1 -1
  66. package/dist/host/located.js +6 -6
  67. package/dist/host/native/authority-card-view.js +5 -0
  68. package/dist/host/native/authority-card.js +1 -0
  69. package/dist/host/native/command.js +1 -1
  70. package/dist/host/native/custody.js +1 -1
  71. package/dist/host/native/generated-custodian.js +1 -1
  72. package/dist/host/native/installed-package.d.ts +1 -0
  73. package/dist/host/native/installed-package.js +5 -0
  74. package/dist/host/native/module-delivery.d.ts +1 -1
  75. package/dist/host/native/module-delivery.js +1 -1
  76. package/dist/host/native/module-inventory.js +2 -0
  77. package/dist/host/native/module-syntax.js +1 -1
  78. package/dist/host/native/native-binary.js +1 -1
  79. package/dist/host/native/probes.js +1 -0
  80. package/dist/host/native/reading-witness-admission.js +5 -0
  81. package/dist/host/native/reading.js +1 -1
  82. package/dist/host/native/route.js +1 -1
  83. package/dist/host/native-place-state.js +1 -0
  84. package/dist/host/native-receiver.js +1 -1
  85. package/dist/host/objects.js +1 -1
  86. package/dist/host/persistent-host.js +1 -0
  87. package/dist/host/physical-lines.d.ts +1 -0
  88. package/dist/host/physical-lines.js +1 -0
  89. package/dist/host/place-act-transaction.js +1 -1
  90. package/dist/host/place-clock-selection.js +1 -1
  91. package/dist/host/ports/local-act.js +1 -1
  92. package/dist/host/ports/place-act.js +1 -1
  93. package/dist/host/ports/store.js +1 -1
  94. package/dist/host/ports/transport.js +1 -1
  95. package/dist/host/profile-composition.d.ts +1 -0
  96. package/dist/host/profile-composition.js +2 -0
  97. package/dist/host/reading-closures.js +6 -6
  98. package/dist/host/reading-context.js +1 -1
  99. package/dist/host/reading-identity.js +2 -2
  100. package/dist/host/reading-preparation.js +1 -1
  101. package/dist/host/reference-authenticated.d.ts +1 -1
  102. package/dist/host/reference-authenticated.js +1 -1
  103. package/dist/host/reference-export.js +1 -1
  104. package/dist/host/reference-native-api.d.ts +1 -1
  105. package/dist/host/reference-native-api.js +1 -1
  106. package/dist/host/reference-native.js +1 -1
  107. package/dist/host/reference-standing.js +1 -1
  108. package/dist/host/reference.js +1 -1
  109. package/dist/host/refusals.js +2 -2
  110. package/dist/host/release.js +1 -1
  111. package/dist/host/root-clock-source.js +1 -1
  112. package/dist/host/selected-capsules.js +1 -1
  113. package/dist/host/selected-topos.js +1 -1
  114. package/dist/host/signing.js +2 -2
  115. package/dist/host/source-content.js +1 -1
  116. package/dist/host/standing-carrier.js +1 -1
  117. package/dist/host/standing-projection.js +1 -1
  118. package/dist/host/timing.js +1 -1
  119. package/dist/host/walk.js +1 -1
  120. package/dist/host/work-trace.js +1 -0
  121. package/dist/judge/late.js +1 -1
  122. package/dist/judge/take.js +1 -1
  123. package/dist/judge/widening.js +1 -1
  124. package/dist/land/act.js +6 -6
  125. package/dist/land/alias.js +1 -1
  126. package/dist/land/held.js +1 -1
  127. package/dist/land/ledger.js +5 -6
  128. package/dist/land/sign.js +1 -1
  129. package/dist/land/standing-pin.js +1 -1
  130. package/dist/land/vouched.js +1 -1
  131. package/dist/land/withdraw.js +1 -1
  132. package/dist/observe/files.js +1 -1
  133. package/dist/observe/identity.js +1 -1
  134. package/dist/observe/match.js +1 -1
  135. package/dist/observe/regions.js +1 -1
  136. package/dist/observe/run.js +1 -2
  137. package/dist/observe/runner.js +1 -1
  138. package/dist/public-types.d.ts +945 -40
  139. package/dist/render/capsule.js +1 -1
  140. package/dist/render/field.js +1 -1
  141. package/dist/render/open.js +1 -1
  142. package/dist/render/page.js +1 -1
  143. package/dist/render/receipt-projection.js +1 -0
  144. package/dist/render/receipts.js +1 -1
  145. package/dist/render/shape.js +1 -1
  146. package/dist/render/target.js +4 -4
  147. package/dist/render/view.js +5 -5
  148. package/dist/vendor/bundle.json +1 -1
  149. package/dist/vendor/library14.js +1 -0
  150. package/dist/vendor/runtime.js +53 -30
  151. package/dist/wasm/adapter.d.ts +1 -1
  152. package/docs/contracts/authenticated-reference.publication.json +1 -1
  153. package/docs/contracts/authority-preflight.md +17 -0
  154. package/docs/contracts/authority-preflight.publication.json +25 -0
  155. package/docs/contracts/installed-package.md +21 -0
  156. package/docs/contracts/installed-package.publication.json +25 -0
  157. package/docs/contracts/materialized-leaf-sequence.md +15 -0
  158. package/docs/contracts/materialized-leaf-sequence.publication.json +25 -0
  159. package/docs/contracts/module-inventory.md +15 -0
  160. package/docs/contracts/module-inventory.publication.json +25 -0
  161. package/docs/contracts/native-host.md +29 -1
  162. package/docs/contracts/native-host.publication.json +4 -4
  163. package/docs/contracts/native-probes.md +13 -0
  164. package/docs/contracts/native-probes.publication.json +25 -0
  165. package/docs/contracts/native-publication.inventory.json +9 -1
  166. package/docs/contracts/native-view-batch.md +17 -0
  167. package/docs/contracts/native-view-batch.publication.json +25 -0
  168. package/docs/contracts/physical-lines.md +19 -0
  169. package/docs/contracts/physical-lines.publication.json +25 -0
  170. package/docs/contracts/profile-composition.md +17 -0
  171. package/docs/contracts/profile-composition.publication.json +25 -0
  172. package/docs/contracts/profile-preparation-native-meaning.md +9 -0
  173. package/docs/contracts/publication.md +12 -0
  174. package/docs/contracts/reading-identity.md +26 -2
  175. package/docs/contracts/reading-identity.publication.json +4 -4
  176. package/docs/contracts/reading-witness-admission.md +49 -0
  177. package/docs/contracts/readme.publication.json +1 -1
  178. package/docs/contracts/reference-port.md +11 -0
  179. package/docs/contracts/reference-port.publication.json +1 -1
  180. package/docs/contracts/refusals.bound +346 -145
  181. package/docs/contracts/refusals.md +119 -54
  182. package/docs/contracts/refusals.publication.json +2 -2
  183. package/docs/reference.md +8 -0
  184. package/licenses/wasm/{fast-text-encoding.txt → NOTICE.txt} +111 -0
  185. package/package.json +69 -8
  186. package/receipts.bound +12921 -11722
  187. package/samples/authority-preflight/no.json +6 -0
  188. package/samples/authority-preflight/yes.json +30 -0
  189. package/samples/engine-alphabet/reader.js +3 -1457
  190. package/samples/engine-alphabet/receipts.bound +7 -7
  191. package/samples/engine-interval/reader.js +3 -1457
  192. package/samples/engine-interval/receipts.bound +7 -7
  193. package/samples/installed-package/consumer.mjs +29 -0
  194. package/samples/installed-package/fixture.json +48 -0
  195. package/samples/installed-package/no.json +10 -0
  196. package/samples/installed-package/yes.json +52 -0
  197. package/samples/materialized-leaf-sequence/no.json +11 -0
  198. package/samples/materialized-leaf-sequence/yes.json +10 -0
  199. package/samples/module-inventory/yes.json +28 -0
  200. package/samples/native/physical-line-reader.mjs +1 -0
  201. package/samples/native/physical-line-reader.source.mjs +13 -0
  202. package/samples/native-host/no.json +6 -1
  203. package/samples/native-host/yes.json +18 -1
  204. package/samples/native-probes/inputs/inspection.json +28 -0
  205. package/samples/native-probes/no.json +7 -0
  206. package/samples/native-probes/yes.json +28 -0
  207. package/samples/native-view-batch/no.json +14 -0
  208. package/samples/native-view-batch/yes.json +10 -0
  209. package/samples/no/engine-order/reader.js +3 -1457
  210. package/samples/no/module-inventory/no.json +10 -0
  211. package/samples/physical-lines/no.json +5 -0
  212. package/samples/physical-lines/yes.json +9 -0
  213. package/samples/profile-composition/no.json +6 -0
  214. package/samples/profile-composition/yes.json +14 -0
  215. package/samples/reading-identity/no.json +7 -1
  216. package/samples/reading-identity/yes.json +24 -1
  217. package/vectors/native/authority-preflight.vector.json +55 -0
  218. package/vectors/native/installed-package.vector.json +31 -0
  219. package/vectors/native/materialized-leaf-sequence.vector.json +31 -0
  220. package/vectors/native/module-inventory.vector.json +56 -0
  221. package/vectors/native/native-host.vector.json +214 -0
  222. package/vectors/native/native-probes.vector.json +31 -0
  223. package/vectors/native/native-view-batch.vector.json +31 -0
  224. package/vectors/native/physical-lines.vector.json +105 -0
  225. package/vectors/native/profile-composition.vector.json +53 -0
  226. package/vectors/native/reading-identity.vector.json +38 -0
  227. package/vectors/native/refusals.vector.json +36 -2
  228. package/dist/vendor/library11.js +0 -1
  229. package/dist/vendor/sources.json +0 -1
  230. package/licenses/wasm/bound.txt +0 -21
  231. package/licenses/wasm/jitl-quickjs-ffi-types.txt +0 -21
  232. package/licenses/wasm/jitl-quickjs-wasmfile-release-sync.txt +0 -47
  233. package/licenses/wasm/obligations.txt +0 -21
  234. package/licenses/wasm/quickjs-emscripten-core.txt +0 -21
  235. package/licenses/wasm/topos.txt +0 -21
  236. /package/dist/vendor/{50086958553b9376d600583f7dff354196bfeb41170fc6d1482ca7bea7c493e2.LICENSE → 28cba430228db1c04f446c93f81b09a2705d6bf3e222d35adbe5a4cee4061884.LICENSE} +0 -0
  237. /package/dist/vendor/{b3e938d28f88a1851af303a40c749e12ebd5a686daac4f0b343b5cdd2e040419.LICENSE → 7aca161279d14bc0e054dcc281cd110aeb95be2e026b42fdf527a260e58b2aae.LICENSE} +0 -0
@@ -1,12 +1,12 @@
1
- bound-lock/1 at=place:sha256:ef476bda8c15b4967a88dc27a188ab25cfac42bdf381fb82f4e57a482d2fd27d by=reader:facdea234873 form=alphabet measure=observed role=writes scope=inputs/sample.json value=ef476bda8c15b496
2
- bound-lock/1 at=place:sha256:ef476bda8c15b4967a88dc27a188ab25cfac42bdf381fb82f4e57a482d2fd27d by=reader:facdea234873 form=interval measure=count role=writes scope=conformance/engine-object/interval value=0..0
3
- bound-lock/1 at=place:sha256:ec8b038a495f5fbf0bdc27bbb87187a9493860eb2cd6f0eff4f28fe40558246b by=bound form=alphabet measure=digest role=writes scope=instrument/implementation value=sha256:ec8b038a495f5fbf0bdc27bbb87187a9493860eb2cd6f0eff4f28fe40558246b
1
+ bound-lock/1 at=place:sha256:ef476bda8c15b4967a88dc27a188ab25cfac42bdf381fb82f4e57a482d2fd27d by=reader:1b7891c8e7ba form=alphabet measure=observed role=writes scope=inputs/sample.json value=ef476bda8c15b496
2
+ bound-lock/1 at=place:sha256:ef476bda8c15b4967a88dc27a188ab25cfac42bdf381fb82f4e57a482d2fd27d by=reader:1b7891c8e7ba form=interval measure=count role=writes scope=conformance/engine-object/interval value=0..0
3
+ bound-lock/1 at=place:sha256:bcfa69682734d98ae1aeb8fe60f57006f7080cd6e020c0180e20d3b0f755d901 by=bound form=alphabet measure=digest role=writes scope=instrument/implementation value=sha256:bcfa69682734d98ae1aeb8fe60f57006f7080cd6e020c0180e20d3b0f755d901
4
4
 
5
- bound-lock/1 at=place:sha256:349ccabca01171a7c5d5ba2479290e1c3b58835e3e1509b3a4474158c7c0eda7 by=bound form=alphabet measure=digest role=writes scope=receipts value=sha256:d06eecd9af3029f29b8ddd2b7a3609ff01472aa66169f2fc4e491dc89837b193
5
+ bound-lock/1 at=place:sha256:df943b9602382b70f85595ac8e10a8093b786f8843bdb6dba51d6aee3d09c883 by=bound form=alphabet measure=digest role=writes scope=receipts value=sha256:376e9e55c2236e303178e0c4666508320263f8a1d8e02184089f1c1841fcff49
6
6
 
7
- bound-lock/1 at=place:sha256:5f806bb6af3d433c2e91894c5de9e55afc833ac4038570ea39644e71fc4dee14 by=bound form=interval measure=count role=writes scope=receipts/conformance value=1..1
7
+ bound-lock/1 at=place:sha256:6ecce77379245a0216e376b945c7bbc4a7383b67b91cb7699f6c196ba75e154a by=bound form=interval measure=count role=writes scope=receipts/conformance value=1..1
8
8
  bound-lock/1 at=place:sha256:9d15c34a3540e0baa6bc6f6486a255668e82675a17f7f2a66179d8be1911782d by=bound form=alphabet measure=bytes role=writes scope=receipts/conformance value=sha256:9d15c34a3540e0baa6bc6f6486a255668e82675a17f7f2a66179d8be1911782d
9
- bound-lock/1 at=place:sha256:00e0bf01baa49755473dc3d8df2af1e4eaaec8eae96d6475e7222329788f9556 by=bound form=interval measure=count role=writes scope=receipts/inputs value=1..1
9
+ bound-lock/1 at=place:sha256:125a4dd819dc5bd8079b9cd97e7161b9df98cb3d6325d3fd54198bd58bd34697 by=bound form=interval measure=count role=writes scope=receipts/inputs value=1..1
10
10
  bound-lock/1 at=place:sha256:1df9c3a47226191b49c489df107a4dec2a23584e5ae7c23ef72b7ff8d71318d1 by=bound form=alphabet measure=bytes role=writes scope=receipts/inputs value=sha256:1df9c3a47226191b49c489df107a4dec2a23584e5ae7c23ef72b7ff8d71318d1
11
- bound-lock/1 at=place:sha256:496fc1a40cdb9b48b96f534e5477b4fda6c803a7feb43409561384469bdf256b by=bound form=interval measure=count role=writes scope=receipts/instrument value=1..1
11
+ bound-lock/1 at=place:sha256:cc3b4bab82e8730dab531193571c9ae617432aa053e535b10107ac96958beb48 by=bound form=interval measure=count role=writes scope=receipts/instrument value=1..1
12
12
  bound-lock/1 at=place:sha256:9d15c34a3540e0baa6bc6f6486a255668e82675a17f7f2a66179d8be1911782d by=bound form=alphabet measure=bytes role=writes scope=receipts/instrument value=sha256:9d15c34a3540e0baa6bc6f6486a255668e82675a17f7f2a66179d8be1911782d
@@ -0,0 +1,29 @@
1
+ import assert from 'node:assert/strict';
2
+ import {readFileSync,mkdtempSync,mkdirSync,writeFileSync,rmSync,cpSync,symlinkSync} from 'node:fs';
3
+ import {join} from 'node:path';
4
+ import {tmpdir} from 'node:os';
5
+ const {installedPackageIdentity}=await import(process.env.BOUND_PACKAGE_API??'@lapxo/bound/package/native');
6
+ const fixture=JSON.parse(readFileSync(new URL('./fixture.json',import.meta.url),'utf8'));
7
+ const temporary=mkdtempSync(join(tmpdir(),'bound-installed-consumer-'));
8
+ const limits={members:40,bytes:200000,responseBytes:400000};
9
+ const library=fixture.library;
10
+ const pin={parent:'self',specifier:'fixture-math',snapshot:library.identity,source:library.sourceName,version:library.version,module:{identity:library.identity,entry:library.entry,members:new Map([[library.entry,{source:library.source,digest:library.digest}]])}};
11
+ const request={shape:'package',members:fixture.files.map(({coordinate,digest})=>({coordinate,digest})),exports:fixture.exports,pins:[pin],limits};
12
+ const refuses=code=>error=>error.code===code;
13
+ try{
14
+ const first=join(temporary,'garden'),second=join(temporary,'harbor');mkdirSync(first);for(const file of fixture.files)writeFileSync(join(first,file.coordinate),file.source);cpSync(first,second,{recursive:true});
15
+ const left=installedPackageIdentity({...request,directory:first}),right=installedPackageIdentity({...request,directory:second});
16
+ assert.equal(left.digest,right.digest);assert.equal(left.lines,right.lines);assert.equal(left.modules.modules.length,3);assert.equal(left.consumedPins.length,1);
17
+ assert.ok(left.lines.includes('file/unreachable.js'));assert.ok(!left.modules.modules.some(row=>row.module==='unreachable.js'));
18
+ assert.ok(left.delivery.files.some(row=>row.source.includes('unusedSymbol')));assert.ok(left.delivery.files.some(row=>row.source.includes('unusedLibrarySymbol')));assert.ok(!('archiveDigest' in left));
19
+ for(const directory of [first,second]){
20
+ const reset=()=>{rmSync(directory,{recursive:true,force:true});mkdirSync(directory);for(const file of fixture.files)writeFileSync(join(directory,file.coordinate),file.source)};
21
+ const mutation=fixture.mutation;writeFileSync(join(directory,mutation.coordinate),mutation.source);assert.throws(()=>installedPackageIdentity({...request,directory}),refuses('installed/member-integrity'));
22
+ const changed=installedPackageIdentity({...request,directory,members:request.members.map(row=>row.coordinate===mutation.coordinate?{...row,digest:mutation.digest}:row)});assert.notEqual(changed.digest,left.digest);assert.equal(changed.modules.modules.length,3);reset();
23
+ rmSync(join(directory,'leaf.js'));assert.throws(()=>installedPackageIdentity({...request,directory}),refuses('installed/missing-member'));reset();
24
+ writeFileSync(join(directory,'extra.js'),'export const extra=1;');assert.throws(()=>installedPackageIdentity({...request,directory}),refuses('installed/uninventoried-member'));reset();
25
+ const outside=join(temporary,'outside.js');writeFileSync(outside,'export const leaf=2;');rmSync(join(directory,'leaf.js'));symlinkSync(outside,join(directory,'leaf.js'));assert.throws(()=>installedPackageIdentity({...request,directory}),refuses('installed/external-member'));reset();
26
+ assert.throws(()=>installedPackageIdentity({...request,directory,pins:[]}),/unpinned library fixture-math/);
27
+ }
28
+ console.log('INSTALLED PACKAGE · two copies agree · exact members manifest and consumed pins · changed missing extra external and unpinned refused · modules retain unused symbols');
29
+ }finally{rmSync(temporary,{recursive:true,force:true})}
@@ -0,0 +1,48 @@
1
+ {
2
+ "files": [
3
+ {
4
+ "coordinate": "package.json",
5
+ "source": "{\"name\":\"fixture-installed\",\"version\":\"1.0.0\",\"type\":\"module\",\"exports\":{\".\":\"./index.js\"}}",
6
+ "digest": "sha256:6fbb4840c2bd58a173a96aeac13083d2ce62ce735fbfd88545bb35d9ec1a6bcc"
7
+ },
8
+ {
9
+ "coordinate": "index.js",
10
+ "source": "import {n} from 'fixture-math';import {leaf} from './leaf.js';export const visible=n+leaf;export const unusedSymbol='kept';\n",
11
+ "digest": "sha256:3b73434097f0e207f0c0a82ef17f4eebec9e5d0218b1c4f41205f62e9b7beec7"
12
+ },
13
+ {
14
+ "coordinate": "leaf.js",
15
+ "source": "export const leaf=2;\n",
16
+ "digest": "sha256:5a23b35ac6e9b1a5145160808971135a2490a1cdea3093f3dfa35f071e44c771"
17
+ },
18
+ {
19
+ "coordinate": "unreachable.js",
20
+ "source": "export const unreachable=41;\n",
21
+ "digest": "sha256:f4ead11fa0d9683e45b3993b2b961792a9b180bf2d31fb953e358a0041d58073"
22
+ },
23
+ {
24
+ "coordinate": "NOTICE",
25
+ "source": "A complete package also carries non-module bytes.\n",
26
+ "digest": "sha256:48278ab65f9a9040938b07e0b1b5a6054ed5ab22779778506bfe916eea01f709"
27
+ }
28
+ ],
29
+ "exports": [
30
+ [
31
+ "exports",
32
+ "."
33
+ ]
34
+ ],
35
+ "library": {
36
+ "identity": "sha256:fcdf73da58275a7ac691352309dea09ed8b31c63d7724a1f94e73084de029410",
37
+ "entry": "lib.js",
38
+ "sourceName": "fixture-math",
39
+ "version": "2.0.0",
40
+ "source": "export const n=5;export const unusedLibrarySymbol=99;\n",
41
+ "digest": "sha256:c6e5fc9a46fee273cca1b079767064eda69b790f9164e62c77c28ea90181c0cd"
42
+ },
43
+ "mutation": {
44
+ "coordinate": "unreachable.js",
45
+ "source": "export const unreachable=42;\n",
46
+ "digest": "sha256:8d7dfda12330e2cf0a7d1b9ff8919f7c0b89fd1a086c637a3c3c874a598c6d79"
47
+ }
48
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "alteredLeaf": "export const leaf=9;",
3
+ "extraSource": "export const extra=1;",
4
+ "changedLibrary": "export const n=99;",
5
+ "badExport": "private",
6
+ "wrongShape": "other",
7
+ "invalidUtf8Bytes": [
8
+ 255
9
+ ]
10
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "files": [
3
+ {
4
+ "coordinate": "package.json",
5
+ "source": "{\"name\":\"fixture-installed\",\"version\":\"1.0.0\",\"type\":\"module\",\"exports\":{\".\":\"./index.js\"}}",
6
+ "digest": "sha256:6fbb4840c2bd58a173a96aeac13083d2ce62ce735fbfd88545bb35d9ec1a6bcc"
7
+ },
8
+ {
9
+ "coordinate": "index.js",
10
+ "source": "import {n} from 'fixture-math';import {leaf} from './leaf.js';export const visible=n+leaf;export const unusedSymbol='kept';\n",
11
+ "digest": "sha256:3b73434097f0e207f0c0a82ef17f4eebec9e5d0218b1c4f41205f62e9b7beec7"
12
+ },
13
+ {
14
+ "coordinate": "leaf.js",
15
+ "source": "export const leaf=2;\n",
16
+ "digest": "sha256:5a23b35ac6e9b1a5145160808971135a2490a1cdea3093f3dfa35f071e44c771"
17
+ },
18
+ {
19
+ "coordinate": "unreachable.js",
20
+ "source": "export const unreachable=41;\n",
21
+ "digest": "sha256:f4ead11fa0d9683e45b3993b2b961792a9b180bf2d31fb953e358a0041d58073"
22
+ },
23
+ {
24
+ "coordinate": "NOTICE",
25
+ "source": "A complete package also carries non-module bytes.\n",
26
+ "digest": "sha256:48278ab65f9a9040938b07e0b1b5a6054ed5ab22779778506bfe916eea01f709"
27
+ }
28
+ ],
29
+ "exports": [
30
+ [
31
+ "exports",
32
+ "."
33
+ ]
34
+ ],
35
+ "library": {
36
+ "identity": "sha256:fcdf73da58275a7ac691352309dea09ed8b31c63d7724a1f94e73084de029410",
37
+ "entry": "lib.js",
38
+ "sourceName": "fixture-math",
39
+ "version": "2.0.0",
40
+ "source": "export const n=5;export const unusedLibrarySymbol=99;\n",
41
+ "digest": "sha256:c6e5fc9a46fee273cca1b079767064eda69b790f9164e62c77c28ea90181c0cd"
42
+ },
43
+ "mutation": {
44
+ "coordinate": "unreachable.js",
45
+ "source": "export const unreachable=42;\n",
46
+ "digest": "sha256:8d7dfda12330e2cf0a7d1b9ff8919f7c0b89fd1a086c637a3c3c874a598c6d79"
47
+ },
48
+ "places": [
49
+ "garden",
50
+ "harbor"
51
+ ]
52
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "outputNames": [
3
+ "README.md",
4
+ "manifest.json"
5
+ ],
6
+ "states": [
7
+ "altered",
8
+ "absent"
9
+ ],
10
+ "alteredOutput": "altered output\n"
11
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "places": [
3
+ "field-notes",
4
+ "stock-register"
5
+ ],
6
+ "originalVersion": "1.0.0",
7
+ "revisedVersion": "1.0.1",
8
+ "originalProsePrefix": "Original prose for ",
9
+ "revisedProsePrefix": "Revised prose for "
10
+ }
@@ -0,0 +1,28 @@
1
+ [
2
+ {
3
+ "name": "field-notes",
4
+ "pin": "sha256:c7a9596995cf3bc965a36f3a43987c5688567a08d838f3d92a3f182c9317d500",
5
+ "sources": [
6
+ {
7
+ "snapshot": "sha256:73d7146ce6e337d89811c94fd4848e24d3a9431b01eaf56e422833e31e0a78ae",
8
+ "source": "example/field-notes",
9
+ "version": "1.0.0"
10
+ }
11
+ ],
12
+ "carrier": "{\"manifest\":{\"format\":\"esm-file-closure/1\",\"needs\":[{\"name\":\"field-notes\",\"snapshot\":\"sha256:73d7146ce6e337d89811c94fd4848e24d3a9431b01eaf56e422833e31e0a78ae\",\"entry\":\"entry.js\"}],\"modules\":[{\"snapshot\":\"sha256:73d7146ce6e337d89811c94fd4848e24d3a9431b01eaf56e422833e31e0a78ae\",\"coordinate\":\"entry.js\",\"digest\":\"sha256:d84c44d507454c3ade89f362e3acc06281b5a283a4ed0f0a15d032f39a7abd74\",\"path\":\"modules/73d7146ce6e337d89811c94fd4848e24d3a9431b01eaf56e422833e31e0a78ae/entry.js\"},{\"snapshot\":\"sha256:73d7146ce6e337d89811c94fd4848e24d3a9431b01eaf56e422833e31e0a78ae\",\"coordinate\":\"value.js\",\"digest\":\"sha256:f1670f52eabccbb1f1c1c047ccee88965a894854b9717d470835475b7f7920b1\",\"path\":\"modules/73d7146ce6e337d89811c94fd4848e24d3a9431b01eaf56e422833e31e0a78ae/value.js\"}],\"libraries\":[],\"notices\":[]},\"files\":[{\"path\":\"modules/73d7146ce6e337d89811c94fd4848e24d3a9431b01eaf56e422833e31e0a78ae/entry.js\",\"source\":\"import './value.js'; export const result=7;\"},{\"path\":\"modules/73d7146ce6e337d89811c94fd4848e24d3a9431b01eaf56e422833e31e0a78ae/value.js\",\"source\":\"export const value=7;\"}]}",
13
+ "expected": "bound-lock/1 about=\"{\\\"format\\\":\\\"module-inventory-record/1\\\",\\\"unit\\\":\\\"module\\\",\\\"source\\\":\\\"example/field-notes\\\",\\\"version\\\":\\\"1.0.0\\\",\\\"snapshot\\\":\\\"sha256:73d7146ce6e337d89811c94fd4848e24d3a9431b01eaf56e422833e31e0a78ae\\\",\\\"module\\\":\\\"entry.js\\\",\\\"digest\\\":\\\"sha256:d84c44d507454c3ade89f362e3acc06281b5a283a4ed0f0a15d032f39a7abd74\\\",\\\"reachedFrom\\\":\\\"sha256:b3e341847a3c885b096be462305af81f09198f426f02d9e3f086f489ca3cbc9f\\\"}\" at=policy:module-inventory by=consumer form=alphabet measure=digest role=writes scope=consumer/modules/73d7146ce6e337d89811c94fd4848e24d3a9431b01eaf56e422833e31e0a78ae/entry.js value=sha256:d84c44d507454c3ade89f362e3acc06281b5a283a4ed0f0a15d032f39a7abd74\nbound-lock/1 about=\"{\\\"format\\\":\\\"module-inventory-record/1\\\",\\\"unit\\\":\\\"module\\\",\\\"source\\\":\\\"example/field-notes\\\",\\\"version\\\":\\\"1.0.0\\\",\\\"snapshot\\\":\\\"sha256:73d7146ce6e337d89811c94fd4848e24d3a9431b01eaf56e422833e31e0a78ae\\\",\\\"module\\\":\\\"value.js\\\",\\\"digest\\\":\\\"sha256:f1670f52eabccbb1f1c1c047ccee88965a894854b9717d470835475b7f7920b1\\\",\\\"reachedFrom\\\":\\\"sha256:b3e341847a3c885b096be462305af81f09198f426f02d9e3f086f489ca3cbc9f\\\"}\" at=policy:module-inventory by=consumer form=alphabet measure=digest role=writes scope=consumer/modules/73d7146ce6e337d89811c94fd4848e24d3a9431b01eaf56e422833e31e0a78ae/value.js value=sha256:f1670f52eabccbb1f1c1c047ccee88965a894854b9717d470835475b7f7920b1\n"
14
+ },
15
+ {
16
+ "name": "water-level",
17
+ "pin": "sha256:bed572b9b006223ca3dd2db63842ce1a146b16bd0373e89c5ab13ee927bf99b3",
18
+ "sources": [
19
+ {
20
+ "snapshot": "sha256:d99ba0cf723d36c49ca5da30d9e1d1fb1afb52159372dd14ea6c1bb3c8dfd60b",
21
+ "source": "example/water-level",
22
+ "version": "1.0.0"
23
+ }
24
+ ],
25
+ "carrier": "{\"manifest\":{\"format\":\"esm-file-closure/1\",\"needs\":[{\"name\":\"water-level\",\"snapshot\":\"sha256:d99ba0cf723d36c49ca5da30d9e1d1fb1afb52159372dd14ea6c1bb3c8dfd60b\",\"entry\":\"entry.js\"}],\"modules\":[{\"snapshot\":\"sha256:d99ba0cf723d36c49ca5da30d9e1d1fb1afb52159372dd14ea6c1bb3c8dfd60b\",\"coordinate\":\"entry.js\",\"digest\":\"sha256:c1a18cc4b86617ffd1af205d37745d9250f218e026ebb47da08f15c476281b5a\",\"path\":\"modules/d99ba0cf723d36c49ca5da30d9e1d1fb1afb52159372dd14ea6c1bb3c8dfd60b/entry.js\"},{\"snapshot\":\"sha256:d99ba0cf723d36c49ca5da30d9e1d1fb1afb52159372dd14ea6c1bb3c8dfd60b\",\"coordinate\":\"value.js\",\"digest\":\"sha256:ca83bd49a1d3b94db4076def1fdd98150b73b240ed6293a68ffaa2b4ff306825\",\"path\":\"modules/d99ba0cf723d36c49ca5da30d9e1d1fb1afb52159372dd14ea6c1bb3c8dfd60b/value.js\"}],\"libraries\":[],\"notices\":[]},\"files\":[{\"path\":\"modules/d99ba0cf723d36c49ca5da30d9e1d1fb1afb52159372dd14ea6c1bb3c8dfd60b/entry.js\",\"source\":\"import './value.js'; export const result=13;\"},{\"path\":\"modules/d99ba0cf723d36c49ca5da30d9e1d1fb1afb52159372dd14ea6c1bb3c8dfd60b/value.js\",\"source\":\"export const value=13;\"}]}",
26
+ "expected": "bound-lock/1 about=\"{\\\"format\\\":\\\"module-inventory-record/1\\\",\\\"unit\\\":\\\"module\\\",\\\"source\\\":\\\"example/water-level\\\",\\\"version\\\":\\\"1.0.0\\\",\\\"snapshot\\\":\\\"sha256:d99ba0cf723d36c49ca5da30d9e1d1fb1afb52159372dd14ea6c1bb3c8dfd60b\\\",\\\"module\\\":\\\"entry.js\\\",\\\"digest\\\":\\\"sha256:c1a18cc4b86617ffd1af205d37745d9250f218e026ebb47da08f15c476281b5a\\\",\\\"reachedFrom\\\":\\\"sha256:3947c3b370018282e54f674ef35fdea7300679bd7ed2a8fb51df831b28198203\\\"}\" at=policy:module-inventory by=consumer form=alphabet measure=digest role=writes scope=consumer/modules/d99ba0cf723d36c49ca5da30d9e1d1fb1afb52159372dd14ea6c1bb3c8dfd60b/entry.js value=sha256:c1a18cc4b86617ffd1af205d37745d9250f218e026ebb47da08f15c476281b5a\nbound-lock/1 about=\"{\\\"format\\\":\\\"module-inventory-record/1\\\",\\\"unit\\\":\\\"module\\\",\\\"source\\\":\\\"example/water-level\\\",\\\"version\\\":\\\"1.0.0\\\",\\\"snapshot\\\":\\\"sha256:d99ba0cf723d36c49ca5da30d9e1d1fb1afb52159372dd14ea6c1bb3c8dfd60b\\\",\\\"module\\\":\\\"value.js\\\",\\\"digest\\\":\\\"sha256:ca83bd49a1d3b94db4076def1fdd98150b73b240ed6293a68ffaa2b4ff306825\\\",\\\"reachedFrom\\\":\\\"sha256:3947c3b370018282e54f674ef35fdea7300679bd7ed2a8fb51df831b28198203\\\"}\" at=policy:module-inventory by=consumer form=alphabet measure=digest role=writes scope=consumer/modules/d99ba0cf723d36c49ca5da30d9e1d1fb1afb52159372dd14ea6c1bb3c8dfd60b/value.js value=sha256:ca83bd49a1d3b94db4076def1fdd98150b73b240ed6293a68ffaa2b4ff306825\n"
27
+ }
28
+ ]
@@ -0,0 +1 @@
1
+ var B=new TextEncoder;function y(e,t){let o=B.encode(e),s=B.encode(t);for(let a=0;a<o.length&&a<s.length;a++)if(o[a]!==s[a])return o[a]-s[a];return o.length-s.length}function k(e,t){if(!e.includes("*"))return e===t;let o=e.split("*");if(!t.startsWith(o[0]))return!1;let s=o[0].length;for(let a=1;a<o.length;a++){let c=o[a];if(c==="")return a===o.length-1||k(o.slice(a).join("*"),t.slice(s));let l=t.indexOf(c,s);if(l<0)return!1;s=l+c.length}return s===t.length||e.endsWith("*")}function O(e,t,o,s){if(t===e.length)return s===o.length;if(e[t]==="**"){if(t+1===e.length)return!0;for(let a=s;a<=o.length;a++)if(O(e,t+1,o,a))return!0;return!1}return s===o.length||!k(e[t],o[s])?!1:O(e,t+1,o,s+1)}function F(e,t){return O(e.split("/"),0,t.split("/"),0)}var S=[0n,1n];var w=e=>{throw new Error("REFUSE\xB7model/M3 "+e)},W=(e,t)=>{for(e=e<0n?-e:e;t;){let o=e%t;e=t,t=o}return e};function h(e,t=1n){t===0n&&w("zero rational denominator"),t<0n&&(e=-e,t=-t);let o=W(e,t);return[e/o,t/o]}function C(e){if(typeof e=="string"){if(/^-?\d+\/\d+$/.test(e)){let[c,l]=e.split("/");return h(BigInt(c),BigInt(l))}/^-?\d+(\.\d+)?$/.test(e)||w("invalid exact probability");let t=e.startsWith("-")?-1n:1n,o=e.replace(/^-/,""),[s,a=""]=o.split(".");return h(t*BigInt(s+a),10n**BigInt(a.length))}return(!e||typeof e.numerator!="string"||typeof e.denominator!="string"||!/^[-]?\d+$/.test(e.numerator)||!/^\d+$/.test(e.denominator))&&w("invalid rational"),h(BigInt(e.numerator),BigInt(e.denominator))}var _=(e,t)=>h(e[0]*t[1]+t[0]*e[1],e[1]*t[1]),T=(e,t)=>h(e[0]*t[1]-t[0]*e[1],e[1]*t[1]);var N=(e,t)=>e[0]===t[0]&&e[1]===t[1],R=e=>({numerator:String(e[0]),denominator:String(e[1])});var f=e=>{throw Error("REFUSE\xB7region-measure/"+e)},x=e=>typeof e=="string"&&e.length>0&&!/[\u0000-\u001f\u007f]/.test(e);function P(e,t){if(!e||e.model!=="finite-nonnegative-atomic-valuation@1"||!x(e.unit))return f("model-and-unit");if(Object.keys(e).some(n=>!["model","unit","atoms","regions"].includes(n))||!Array.isArray(e.atoms)||!Array.isArray(e.regions))return f("domain");if(!t||typeof t.budget!="string"||!/^(0|[1-9][0-9]*)$/.test(t.budget))return f("budget");let o=BigInt(e.atoms.length)+BigInt(e.regions.length);for(let n of e.regions){if(!n||!x(n.id)||!Array.isArray(n.members)||!n.members.every(x)||Object.keys(n).some(i=>!["id","members"].includes(i)))return f("region");o+=BigInt(n.members.length)}if(o>BigInt(t.budget))return{status:"unmeasured",cause:"region-measure/budget",required:String(o),workUnit:"declared-input-rows"};let s=new Map;for(let n of e.atoms){if(!n||!x(n.id)||Object.keys(n).some(m=>!["id","value"].includes(m)))return f("atom");let i;try{i=C(n.value)}catch{return f("weight")}if(i[0]<0n)return f("negative-weight");let d=s.get(n.id);if(d!==void 0&&!N(d,i))return f("conflicting-atom");s.set(n.id,i)}let a=new Set,c=new Map,l=n=>n.reduce((i,d)=>_(i,s.get(d)),S),b=e.regions.map(n=>{if(a.has(n.id))return f("duplicate-region");a.add(n.id);let i=[...new Set(n.members)].sort();for(let d of i){if(!x(d)||!s.has(d))return f("unknown-atom");let m=c.get(d)??[];m.push(n.id),c.set(d,m)}return{region:n.id,members:i,value:R(l(i))}}).sort((n,i)=>n.region<i.region?-1:n.region>i.region?1:0),g=[...c.keys()].sort(),p=l(g),r=b.reduce((n,i)=>_(n,C(i.value)),S);return{status:"measured",model:e.model,unit:e.unit,arithmetic:"exact-rational",readings:b,union:{members:g,value:R(p)},sumOfRegions:R(r),overlapExcess:R(T(r,p)),disjointBySupport:[...c.values()].every(n=>n.length===1),overlaps:[...c].filter(([,n])=>n.length>1).map(([n,i])=>({atom:n,regions:[...i].sort()})).sort((n,i)=>n.atom<i.atom?-1:n.atom>i.atom?1:0),unassigned:[...s.keys()].filter(n=>!c.has(n)).sort(),work:{unit:"declared-input-rows",required:String(o)}}}var E="topos-physical-lines/1",D={name:"finite-nonnegative-atomic-valuation@1",contract:"sha256:636ace16eeaa46eafb7b07c28d1d57916bc9108b188e96b5a8bf7bed6dc15707",implementation:"sha256:ef7e39d0ac44b0dd3d4b68220d3c381f737eb2729d0017ed3271ce119d408b13"},u=e=>{throw Error("REFUSE\xB7physical-lines/"+e)},M=e=>typeof e=="string"&&/^sha256:[0-9a-f]{64}$/.test(e),j=e=>typeof e=="string"&&e.length>0&&!/[\u0000-\u001f\u007f]/.test(e),$=e=>j(e)&&!e.includes("\\")&&e.split("/").every(t=>t!==""&&t!=="."&&t!==".."),U=e=>typeof e=="string"&&/^(0|[1-9][0-9]*)$/.test(e),I=(e,t)=>Object.keys(e).every(o=>t.includes(o));function L(e,t){if(typeof t!="function")return u("digest-port");if(!e||e.profile!==E||!I(e,["profile","snapshot","files","regions","policy"])||!M(e.snapshot))return u("profile");if(!Array.isArray(e.files)||!Array.isArray(e.regions)||!e.policy||!I(e.policy,["byteBudget","rowBudget"])||!U(e.policy.byteBudget)||!U(e.policy.rowBudget))return u("policy");let o=0n,s=new Set,a=new Set;for(let r of e.files){if(!r||!I(r,["name","digest","bytes"])||!$(r.name)||r.name.includes("*")||!M(r.digest)||!(r.bytes instanceof Uint8Array))return u("file");if(s.has(r.name))return u("duplicate-file");s.add(r.name),o+=BigInt(r.bytes.length)}for(let r of e.regions){if(!r||!I(r,["scope","selectors"])||!j(r.scope)||!Array.isArray(r.selectors)||!r.selectors.length||!r.selectors.every(n=>$(n)&&n.split("/").every(i=>!i.includes("**")||i==="**")))return u("selector");if(a.has(r.scope))return u("duplicate-region");a.add(r.scope)}if(o>BigInt(e.policy.byteBudget))return{status:"unmeasured",cause:"physical-lines/byte-budget",required:String(o),workUnit:"input-bytes"};let c=e.regions.reduce((r,n)=>r+n.selectors.reduce((i,d)=>i+BigInt(d.length),0n)*BigInt(e.files.length+1),0n);if(c>BigInt(e.policy.rowBudget))return{status:"unmeasured",cause:"physical-lines/selection-budget",required:String(c),workUnit:"selector-code-units-times-candidates"};let l=[...e.files].sort((r,n)=>y(r.name,n.name)),b=l.map(r=>{if(t(r.bytes)!==r.digest)return u("integrity");try{new TextDecoder("utf-8",{fatal:!0}).decode(r.bytes)}catch{return u("utf8")}let n=0n;for(let i=0;i<r.bytes.length;i++){if(r.bytes[i]===13&&r.bytes[i+1]!==10)return u("isolated-cr");r.bytes[i]===10&&n++}return r.bytes.length&&r.bytes[r.bytes.length-1]!==10&&n++,{id:r.name,value:String(n)}}),g=[...e.regions].sort((r,n)=>y(r.scope,n.scope)).map(r=>{let n=[...new Set(r.selectors)].sort(y),i=n.map(d=>{let m=l.filter(v=>F(d,v.name)).map(v=>v.name);return m.length?{selector:d,members:m,status:"selected"}:{selector:d,members:m,status:"unmeasured",cause:"selector-no-match"}});return{scope:r.scope,selectors:n,selections:i,members:[...new Set(i.flatMap(d=>d.members))].sort(y)}}),p=P({model:"finite-nonnegative-atomic-valuation@1",unit:"physical-lines/utf8-lf@1",atoms:b,regions:g.filter(r=>r.members.length).map(r=>({id:r.scope,members:r.members}))},{budget:e.policy.rowBudget});return p.status==="unmeasured"?p:{status:"read",profile:E,snapshot:e.snapshot,model:D,policy:{...e.policy},textDomain:"utf8-lf-crlf-reject-isolated-cr@1",inputFiles:l.map(r=>({name:r.name,digest:r.digest})),regions:g.map(r=>r.members.length?{...r,status:"measured",value:p.readings.find(n=>n.region===r.scope).value}:{...r,status:"unmeasured",cause:"selector-no-match"}),valuation:p,work:{inputBytes:String(o),selectionUnits:String(c)},verification:"supplied inventory and snapshot; authority and completeness are consumer obligations"}}var A="sha256:"+"1".repeat(64),re=()=>["bound-lock/1 at=receipt:1 by=world form=alphabet measure=reads role=reads scope=physical value=src/input.txt"],oe=e=>{let t=e.lines.find(c=>c.scope==="src/input.txt");if(!t)throw Error("actual handed input absent");let o=new TextEncoder().encode(t.about),s=L({profile:E,snapshot:A,files:[{name:"src/input.txt",digest:A,bytes:o}],regions:[{scope:"core/lines",selectors:["src/*.txt"]}],policy:{byteBudget:"65536",rowBudget:"65536"}},()=>A);if(s.status!=="read"||s.regions[0].status!=="measured")throw Error("actual physical input unmeasured");let a=Number(s.regions[0].value.numerator);return[{scope:"core/lines",measure:"lines",role:"reads",bound:{kind:"interval",lo:a,hi:a}}]};export{oe as receipt,re as render};
@@ -0,0 +1,13 @@
1
+ import {readPhysicalLines,PHYSICAL_LINES_PROFILE} from '@lapxo/topos/contract';
2
+ const fixtureDigest='sha256:'+'1'.repeat(64);
3
+ // The native host owns real input digests. This pure count projection delegates text/count semantics to Topos.
4
+ export const render=()=>['bound-lock/1 at=receipt:1 by=world form=alphabet measure=reads role=reads scope=physical value=src/input.txt'];
5
+ export const receipt=asked=>{
6
+ const file=asked.lines.find(line=>line.scope==='src/input.txt');
7
+ if(!file)throw Error('actual handed input absent');
8
+ const bytes=new TextEncoder().encode(file.about);
9
+ const read=readPhysicalLines({profile:PHYSICAL_LINES_PROFILE,snapshot:fixtureDigest,files:[{name:'src/input.txt',digest:fixtureDigest,bytes}],regions:[{scope:'core/lines',selectors:['src/*.txt']}],policy:{byteBudget:'65536',rowBudget:'65536'}},()=>fixtureDigest);
10
+ if(read.status!=='read'||read.regions[0].status!=='measured')throw Error('actual physical input unmeasured');
11
+ const n=Number(read.regions[0].value.numerator);
12
+ return [{scope:'core/lines',measure:'lines',role:'reads',bound:{kind:'interval',lo:n,hi:n}}];
13
+ };
@@ -6,5 +6,10 @@
6
6
  "cancelled before commit",
7
7
  "noncanonical unsigned Root lot"
8
8
  ],
9
- "expected": "refuse without a visible act or an additional signature"
9
+ "expected": "refuse without a visible act or an additional signature",
10
+ "persistent": {
11
+ "unsupportedView": "unknown",
12
+ "unboundKey": "lane",
13
+ "startupTimeoutMs": 1
14
+ }
10
15
  }
@@ -16,5 +16,22 @@
16
16
  "landed",
17
17
  "historical recovery",
18
18
  "already-held without signing"
19
- ]
19
+ ],
20
+ "persistent": {
21
+ "places": [
22
+ "catalog",
23
+ "weather"
24
+ ],
25
+ "views": [
26
+ "lines",
27
+ "evidence"
28
+ ],
29
+ "limits": {
30
+ "requestBytes": 16777216,
31
+ "responseBytes": 33554432,
32
+ "timeoutMs": 15000,
33
+ "heapMiB": 256,
34
+ "queuedRequests": 8
35
+ }
36
+ }
20
37
  }
@@ -0,0 +1,28 @@
1
+ {
2
+ "forms": [
3
+ "lines",
4
+ "evidence"
5
+ ],
6
+ "repetitions": 6,
7
+ "port": {
8
+ "coordinate": "port/public-inspection",
9
+ "probes": 6,
10
+ "responseBytes": 16777216
11
+ },
12
+ "declaredIdentityLimits": {
13
+ "bytes": 16777216,
14
+ "files": 2048,
15
+ "readings": 16,
16
+ "probes": 8
17
+ },
18
+ "places": [
19
+ "harbor-log",
20
+ "library-index"
21
+ ],
22
+ "expected": {
23
+ "newPersistentBytes": 0,
24
+ "newPersistentLines": 0,
25
+ "identitiesUnchanged": true,
26
+ "textMatchesNativeView": true
27
+ }
28
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "unsupportedView": "rank",
3
+ "responseBytes": 1,
4
+ "expectedIdentity": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
5
+ "askedProbes": 9,
6
+ "invalidPort": ""
7
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "forms": [
3
+ "lines",
4
+ "evidence"
5
+ ],
6
+ "repetitions": 6,
7
+ "port": {
8
+ "coordinate": "port/public-inspection",
9
+ "probes": 6,
10
+ "responseBytes": 16777216
11
+ },
12
+ "declaredIdentityLimits": {
13
+ "bytes": 16777216,
14
+ "files": 2048,
15
+ "readings": 16,
16
+ "probes": 8
17
+ },
18
+ "places": [
19
+ "harbor-log",
20
+ "library-index"
21
+ ],
22
+ "expected": {
23
+ "newPersistentBytes": 0,
24
+ "newPersistentLines": 0,
25
+ "identitiesUnchanged": true,
26
+ "textMatchesNativeView": true
27
+ }
28
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "staleDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
3
+ "selections": [
4
+ [],
5
+ [
6
+ "lines",
7
+ "lines"
8
+ ],
9
+ [
10
+ "lines",
11
+ "unknown"
12
+ ]
13
+ ]
14
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "places": [
3
+ "field-catalogue",
4
+ "reservoir-log"
5
+ ],
6
+ "views": [
7
+ "lines",
8
+ "evidence"
9
+ ]
10
+ }