@lapxo/bound 0.1.9 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -121
- package/TARGET.bound +85 -14
- package/assets/wasm/guest.js +4 -0
- package/assets/wasm/manifest.json +27 -0
- package/assets/wasm/runtime.js +6 -0
- package/assets/wasm/runtime.wasm +0 -0
- package/dist/cli/pass.js +3 -3
- package/dist/cli/place.js +7 -4
- package/dist/cli/standing-result.js +4 -3
- package/dist/cli/verb.js +79 -9
- package/dist/engine/encoding.js +2 -0
- package/dist/engine/index.d.ts +13 -0
- package/dist/engine/index.js +11 -0
- package/dist/engine/object.js +38 -0
- package/dist/engine/ports.d.ts +32 -0
- package/dist/engine/ports.js +103 -0
- package/dist/fold/closed.js +22 -5
- package/dist/fold/digests.js +3 -2
- package/dist/fold/object.js +2 -38
- package/dist/fold/resolved.js +1 -1
- package/dist/host/admitted-place.js +10 -1
- package/dist/host/cell-receipts.js +1 -1
- package/dist/host/contextual-place.js +2 -2
- package/dist/host/io.js +2 -2
- package/dist/host/objects.js +24 -4
- package/dist/host/reading-closures.js +11 -13
- package/dist/host/reference-authenticated.d.ts +40 -0
- package/dist/host/reference-authenticated.js +100 -0
- package/dist/host/reference-contracts.js +6 -0
- package/dist/host/reference-export.d.ts +33 -0
- package/dist/host/reference-export.js +81 -0
- package/dist/host/reference-native-api.d.ts +3 -0
- package/dist/host/reference-native-api.js +3 -0
- package/dist/host/reference-native.d.ts +30 -0
- package/dist/host/reference-native.js +74 -0
- package/dist/host/reference-profile.d.ts +23 -0
- package/dist/host/reference-profile.js +63 -0
- package/dist/host/reference-standing.js +18 -0
- package/dist/host/reference.js +24 -0
- package/dist/host/refusals.d.ts +14 -0
- package/dist/host/refusals.js +43 -0
- package/dist/host/selected-topos.js +9 -1
- package/dist/host/signing.js +7 -1
- package/dist/observe/files.js +11 -1
- package/dist/observe/regions.js +109 -1
- package/dist/wasm/adapter.d.ts +51 -0
- package/dist/wasm/adapter.js +180 -0
- package/dist/wasm/node-worker.js +13 -0
- package/dist/wasm/object.js +76 -0
- package/dist/wasm/worker.js +7 -0
- package/docs/contracts/authenticated-reference.publication.json +25 -0
- package/docs/contracts/engine-object-projection.publication.json +25 -0
- package/docs/contracts/engine.md +39 -0
- package/docs/contracts/host-ports.md +23 -0
- package/docs/contracts/host-ports.publication.json +25 -0
- package/docs/contracts/native-publication.inventory.json +14 -0
- package/docs/contracts/optional-wasm-adapter.publication.json +25 -0
- package/docs/contracts/publication-additions.inventory.json +8 -0
- package/docs/contracts/readme.publication.json +25 -0
- package/docs/contracts/reference-backend.md +24 -0
- package/docs/contracts/reference-backend.publication.json +25 -0
- package/docs/contracts/reference-export.md +31 -0
- package/docs/contracts/reference-export.publication.json +25 -0
- package/docs/contracts/reference-port.md +40 -0
- package/docs/contracts/reference-port.publication.json +25 -0
- package/docs/contracts/refusals.bound +94 -0
- package/docs/contracts/refusals.md +47 -0
- package/docs/contracts/refusals.publication.json +25 -0
- package/docs/contracts/standing.bound +9 -0
- package/docs/contracts/standing.md +24 -0
- package/docs/contracts/standing.publication.json +25 -0
- package/licenses/wasm/bound.txt +21 -0
- package/licenses/wasm/fast-text-encoding.txt +201 -0
- package/licenses/wasm/jitl-quickjs-ffi-types.txt +21 -0
- package/licenses/wasm/jitl-quickjs-wasmfile-release-sync.txt +47 -0
- package/licenses/wasm/obligations.txt +21 -0
- package/licenses/wasm/quickjs-emscripten-core.txt +21 -0
- package/licenses/wasm/topos.txt +21 -0
- package/package.json +141 -6
- package/receipts.bound +9554 -613
- package/samples/authenticated-reference/compatibility.json +306 -0
- package/samples/authenticated-reference/no.json +31 -0
- package/samples/authenticated-reference/yes/editorial-state/TARGET.bound +57 -0
- package/samples/authenticated-reference/yes/editorial-state/inputs/arrival.json +1 -0
- package/samples/authenticated-reference/yes/editorial-state/inputs/coverage.json +1 -0
- package/samples/authenticated-reference/yes/editorial-state/inputs/era.json +1 -0
- package/samples/authenticated-reference/yes/editorial-state/inputs/order.json +1 -0
- package/samples/authenticated-reference/yes/editorial-state/inputs/signature.json +1 -0
- package/samples/authenticated-reference/yes/editorial-state/inputs/transport.arrival.json +1 -0
- package/samples/authenticated-reference/yes/editorial-state/inputs/transport.coverage.json +1 -0
- package/samples/authenticated-reference/yes/editorial-state/inputs/transport.era.json +1 -0
- package/samples/authenticated-reference/yes/editorial-state/inputs/transport.order.json +1 -0
- package/samples/authenticated-reference/yes/editorial-state/inputs/transport.signature.json +1 -0
- package/samples/authenticated-reference/yes/editorial-state/inputs/transport.yes.json +1 -0
- package/samples/authenticated-reference/yes/editorial-state/inputs/yes.json +1 -0
- package/samples/authenticated-reference/yes/weather-reading/TARGET.bound +57 -0
- package/samples/authenticated-reference/yes/weather-reading/inputs/arrival.json +1 -0
- package/samples/authenticated-reference/yes/weather-reading/inputs/coverage.json +1 -0
- package/samples/authenticated-reference/yes/weather-reading/inputs/era.json +1 -0
- package/samples/authenticated-reference/yes/weather-reading/inputs/order.json +1 -0
- package/samples/authenticated-reference/yes/weather-reading/inputs/signature.json +1 -0
- package/samples/authenticated-reference/yes/weather-reading/inputs/transport.arrival.json +1 -0
- package/samples/authenticated-reference/yes/weather-reading/inputs/transport.coverage.json +1 -0
- package/samples/authenticated-reference/yes/weather-reading/inputs/transport.era.json +1 -0
- package/samples/authenticated-reference/yes/weather-reading/inputs/transport.order.json +1 -0
- package/samples/authenticated-reference/yes/weather-reading/inputs/transport.signature.json +1 -0
- package/samples/authenticated-reference/yes/weather-reading/inputs/transport.yes.json +1 -0
- package/samples/authenticated-reference/yes/weather-reading/inputs/yes.json +1 -0
- package/samples/authenticated-reference/yes.json +19 -0
- package/samples/engine-alphabet/TARGET.bound +29 -0
- package/samples/engine-alphabet/inputs/sample.json +323 -0
- package/samples/engine-alphabet/package.json +1 -0
- package/samples/engine-alphabet/reader.js +1457 -0
- package/samples/engine-alphabet/receipts.bound +12 -0
- package/samples/engine-interval/TARGET.bound +29 -0
- package/samples/engine-interval/inputs/sample.json +277 -0
- package/samples/engine-interval/package.json +1 -0
- package/samples/engine-interval/reader.js +1457 -0
- package/samples/engine-interval/receipts.bound +12 -0
- package/samples/host-ports/no.json +16 -0
- package/samples/host-ports/yes.json +9 -0
- package/samples/no/engine-order/TARGET.bound +29 -0
- package/samples/no/engine-order/inputs/sample.json +277 -0
- package/samples/no/engine-order/package.json +1 -0
- package/samples/no/engine-order/reader.js +1457 -0
- package/samples/readme/no.json +1 -0
- package/samples/readme/yes.json +1 -0
- package/samples/reference-backend/no.json +1 -0
- package/samples/reference-backend/world-fixture.json +8 -0
- package/samples/reference-backend/yes.json +1 -0
- package/samples/reference-export/no.json +5 -0
- package/samples/reference-export/yes.json +15 -0
- package/samples/reference-port/no/catalog/TARGET.bound +33 -0
- package/samples/reference-port/no/catalog/standing.json +1 -0
- package/samples/reference-port/no/catalog/transport.json +1 -0
- package/samples/reference-port/no/route-notes/TARGET.bound +33 -0
- package/samples/reference-port/no/route-notes/standing.json +1 -0
- package/samples/reference-port/no/route-notes/transport.json +1 -0
- package/samples/reference-port/yes/catalog/TARGET.bound +33 -0
- package/samples/reference-port/yes/catalog/standing.json +1 -0
- package/samples/reference-port/yes/catalog/transport.json +1 -0
- package/samples/reference-port/yes/route-notes/TARGET.bound +33 -0
- package/samples/reference-port/yes/route-notes/standing.json +1 -0
- package/samples/reference-port/yes/route-notes/transport.json +1 -0
- package/samples/refusals/no.json +4 -0
- package/samples/refusals/yes.json +9 -0
- package/samples/standing/no.json +4 -0
- package/samples/standing/yes.json +21 -0
- package/samples/wasm/editorial-notes/TARGET.bound +65 -0
- package/samples/wasm/editorial-notes/esm.bound +59 -0
- package/samples/wasm/editorial-notes/no-deadline.bound +65 -0
- package/samples/wasm/editorial-notes/no-memory.bound +65 -0
- package/samples/wasm/editorial-notes/no-missing-limit.bound +64 -0
- package/samples/wasm/editorial-notes/receipts.bound +1 -0
- package/samples/wasm/water-level/TARGET.bound +65 -0
- package/samples/wasm/water-level/esm.bound +59 -0
- package/samples/wasm/water-level/no-deadline.bound +65 -0
- package/samples/wasm/water-level/no-memory.bound +65 -0
- package/samples/wasm/water-level/no-missing-limit.bound +64 -0
- package/samples/wasm/water-level/receipts.bound +1 -0
- package/vectors/engine-object.cli.json +548 -0
- package/vectors/native/authenticated-reference-formation.vector.json +107 -0
- package/vectors/native/authenticated-reference.cli.json +157 -0
- package/vectors/native/authenticated-reference.vector.json +76 -0
- package/vectors/native/host-ports.vector.json +107 -0
- package/vectors/native/readme.vector.json +76 -0
- package/vectors/native/reference-backend.vector.json +84 -0
- package/vectors/native/reference-export.vector.json +78 -0
- package/vectors/native/refusals.vector.json +95 -0
- package/vectors/native/standing.vector.json +116 -0
- package/vectors/reference-port.cli.json +688 -0
- package/vectors/wasm-object.cli.json +407 -0
- package/dist/cli/accept.d.ts +0 -28
- package/dist/cli/act-result.d.ts +0 -12
- package/dist/cli/args.d.ts +0 -11
- package/dist/cli/custodian.d.ts +0 -1
- package/dist/cli/host.d.ts +0 -1
- package/dist/cli/names.d.ts +0 -25
- package/dist/cli/native-descendant.d.ts +0 -1
- package/dist/cli/native.d.ts +0 -1
- package/dist/cli/observe.d.ts +0 -1
- package/dist/cli/owner.d.ts +0 -37
- package/dist/cli/pass.d.ts +0 -6
- package/dist/cli/place.d.ts +0 -74
- package/dist/cli/release-result.d.ts +0 -5
- package/dist/cli/standing-result.d.ts +0 -5
- package/dist/cli/takes.d.ts +0 -30
- package/dist/fold/admission-history.d.ts +0 -6
- package/dist/fold/ceilings.d.ts +0 -24
- package/dist/fold/claims.d.ts +0 -29
- package/dist/fold/closed.d.ts +0 -15
- package/dist/fold/configures.d.ts +0 -4
- package/dist/fold/digests.d.ts +0 -29
- package/dist/fold/evidence.d.ts +0 -32
- package/dist/fold/fold-worker.d.ts +0 -1
- package/dist/fold/kept.d.ts +0 -29
- package/dist/fold/keys.d.ts +0 -17
- package/dist/fold/laid.d.ts +0 -17
- package/dist/fold/nos.d.ts +0 -8
- package/dist/fold/observed.d.ts +0 -35
- package/dist/fold/opened.d.ts +0 -5
- package/dist/fold/own.d.ts +0 -24
- package/dist/fold/paid.d.ts +0 -11
- package/dist/fold/place-inputs.d.ts +0 -17
- package/dist/fold/places.d.ts +0 -24
- package/dist/fold/rank.d.ts +0 -3
- package/dist/fold/reach.d.ts +0 -18
- package/dist/fold/readers.d.ts +0 -47
- package/dist/fold/receipts.d.ts +0 -8
- package/dist/fold/region-declarations.d.ts +0 -2
- package/dist/fold/region.d.ts +0 -72
- package/dist/fold/release-policy.d.ts +0 -67
- package/dist/fold/resolved.d.ts +0 -18
- package/dist/fold/roles.d.ts +0 -17
- package/dist/fold/second.d.ts +0 -18
- package/dist/fold/shards.d.ts +0 -29
- package/dist/fold/signed.d.ts +0 -23
- package/dist/fold/signers.d.ts +0 -24
- package/dist/fold/stranger.d.ts +0 -3
- package/dist/fold/views.d.ts +0 -27
- package/dist/fold/wire.d.ts +0 -19
- package/dist/fold/zoom.d.ts +0 -16
- package/dist/host/act-cost.d.ts +0 -13
- package/dist/host/adapters/keys/ed25519.d.ts +0 -7
- package/dist/host/adapters/modules/javascript.d.ts +0 -3
- package/dist/host/adapters/transport/http.d.ts +0 -5
- package/dist/host/admitted-place.d.ts +0 -5
- package/dist/host/archive.d.ts +0 -11
- package/dist/host/capsule-process.d.ts +0 -21
- package/dist/host/capsule.d.ts +0 -19
- package/dist/host/cell-receipts.d.ts +0 -2
- package/dist/host/content-needed.d.ts +0 -5
- package/dist/host/content-store.d.ts +0 -8
- package/dist/host/contextual-place.d.ts +0 -59
- package/dist/host/digest.d.ts +0 -3
- package/dist/host/hash.d.ts +0 -9
- package/dist/host/io.d.ts +0 -11
- package/dist/host/lifetime.d.ts +0 -1
- package/dist/host/located.d.ts +0 -4
- package/dist/host/native/bounded-file.d.ts +0 -8
- package/dist/host/native/command.d.ts +0 -36
- package/dist/host/native/control-bridge-worker.d.ts +0 -1
- package/dist/host/native/control-bridge.d.ts +0 -30
- package/dist/host/native/control-selection.d.ts +0 -29
- package/dist/host/native/custody.d.ts +0 -5
- package/dist/host/native/deadline.d.ts +0 -12
- package/dist/host/native/descendants.d.ts +0 -1
- package/dist/host/native/generated-custodian.d.ts +0 -122
- package/dist/host/native/generated.d.ts +0 -217
- package/dist/host/native/image.d.ts +0 -36
- package/dist/host/native/jobs.d.ts +0 -75
- package/dist/host/native/loader.d.ts +0 -80
- package/dist/host/native/materialize.d.ts +0 -22
- package/dist/host/native/module-closure.d.ts +0 -27
- package/dist/host/native/module-syntax.d.ts +0 -8
- package/dist/host/native/native-binary.d.ts +0 -54
- package/dist/host/native/native-program.d.ts +0 -56
- package/dist/host/native/node-jobs.d.ts +0 -84
- package/dist/host/native/node-launch.d.ts +0 -72
- package/dist/host/native/preload.d.ts +0 -1
- package/dist/host/native/reading.d.ts +0 -91
- package/dist/host/native/receipt-environment.d.ts +0 -3
- package/dist/host/native/references.d.ts +0 -5
- package/dist/host/native/root.d.ts +0 -17
- package/dist/host/native/route.d.ts +0 -66
- package/dist/host/native/runtime.d.ts +0 -4
- package/dist/host/native-reader-context.d.ts +0 -3
- package/dist/host/objects.d.ts +0 -5
- package/dist/host/place-clock-selection.d.ts +0 -55
- package/dist/host/ports/ingress.d.ts +0 -24
- package/dist/host/ports/local-act.d.ts +0 -44
- package/dist/host/ports/place-act.d.ts +0 -46
- package/dist/host/ports/publication.d.ts +0 -10
- package/dist/host/ports/signing.d.ts +0 -31
- package/dist/host/ports/store.d.ts +0 -2
- package/dist/host/ports/transport.d.ts +0 -1
- package/dist/host/process-lifetime.d.ts +0 -11
- package/dist/host/provide.d.ts +0 -48
- package/dist/host/read-only.d.ts +0 -3
- package/dist/host/reading-closures.d.ts +0 -45
- package/dist/host/reading-context.d.ts +0 -29
- package/dist/host/release.d.ts +0 -14
- package/dist/host/root-clock-source.d.ts +0 -85
- package/dist/host/selected-capsules.d.ts +0 -8
- package/dist/host/selected-topos.d.ts +0 -24
- package/dist/host/signing.d.ts +0 -3
- package/dist/host/source-content.d.ts +0 -12
- package/dist/host/timing.d.ts +0 -2
- package/dist/host/walk.d.ts +0 -6
- package/dist/judge/late.d.ts +0 -7
- package/dist/judge/take.d.ts +0 -59
- package/dist/judge/widening.d.ts +0 -1
- package/dist/land/act.d.ts +0 -30
- package/dist/land/alias.d.ts +0 -10
- package/dist/land/held.d.ts +0 -7
- package/dist/land/inert.d.ts +0 -26
- package/dist/land/leaving.d.ts +0 -14
- package/dist/land/ledger.d.ts +0 -33
- package/dist/land/owned.d.ts +0 -23
- package/dist/land/sign.d.ts +0 -15
- package/dist/land/standing-pin.d.ts +0 -3
- package/dist/land/vouched.d.ts +0 -21
- package/dist/land/withdraw.d.ts +0 -14
- package/dist/observe/files.d.ts +0 -14
- package/dist/observe/identity.d.ts +0 -21
- package/dist/observe/match.d.ts +0 -1
- package/dist/observe/regions.d.ts +0 -29
- package/dist/observe/run.d.ts +0 -31
- package/dist/observe/runner.d.ts +0 -20
- package/dist/render/capsule.d.ts +0 -24
- package/dist/render/field.d.ts +0 -3
- package/dist/render/names.d.ts +0 -3
- package/dist/render/open.d.ts +0 -27
- package/dist/render/page.d.ts +0 -3
- package/dist/render/receipts.d.ts +0 -3
- package/dist/render/shape.d.ts +0 -16
- package/dist/render/target.d.ts +0 -18
- package/dist/render/view.d.ts +0 -22
- /package/dist/{fold → engine}/object.d.ts +0 -0
package/README.md
CHANGED
|
@@ -1,156 +1,75 @@
|
|
|
1
1
|
# @lapxo/bound
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Bound turns signed statements, observations and requirements into a place you can inspect. It keeps who said what, preserves incompatible declarations, and projects the views selected by that place. Missing evidence stays missing; a rendered page is not proof that every requirement has been met.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
The same pure engine is available to applications and to the CLI. Topos supplies the wire and interpretation contracts; Obligations supplies the constraint algebra. Bound adds admission, authenticated reading, retained receipts and declared host operations around that core.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
npx @lapxo/bound@0.1.9 fold --as lines
|
|
9
|
-
npx @lapxo/bound@0.1.9 fold --as receipts@1
|
|
10
|
-
npx @lapxo/bound@0.1.9 fold --check
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
Use this flow to review a project change or check a dependency's declared contract. `--check` verifies existing evidence; it does not execute a missing reading. A file fold names readings and explicitly says that it computed no encounters.
|
|
14
|
-
|
|
15
|
-
Independent observations are judged through the declared typed cells view. The selected topos supplies the form, origin evidence and bounds. Bound keeps attribution and exact-ID withdrawals through the fold.
|
|
16
|
-
|
|
17
|
-
A selected form can instead describe a set of artifacts, a delivery interval or another domain's values. The project declares the form, origin evidence and views; Bound does not infer them from filenames or units.
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
Declare what must hold. Read what does. Keep the evidence.
|
|
21
|
-
|
|
22
|
-
Bound reads a project's admitted statements, checks observations against its requirements, and produces the views its selected topos declares. It keeps conflicting evidence and its origins instead of choosing a convenient answer.
|
|
23
|
-
|
|
24
|
-
`fold` reads. `sign` signs a proposed lot. `land` admits that lot under the place's authority. These acts work across domains: a selected topos supplies forms, units, readers and views.
|
|
25
|
-
|
|
26
|
-
## Start in an admitted project
|
|
27
|
-
|
|
28
|
-
```sh
|
|
29
|
-
npx @lapxo/bound@0.1.9 fold --as help
|
|
30
|
-
npx @lapxo/bound@0.1.9 fold
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
The help view prints:
|
|
34
|
-
|
|
35
|
-
```text
|
|
36
|
-
verbs fold land sign
|
|
37
|
-
flags --as --check --key --key-file --signer --place
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
The default fold runs the project's declared views. Its authority and selected topos determine what can be admitted, read and shown.
|
|
41
|
-
|
|
42
|
-
Start with the team's accepted TARGET, admitted authority and selected readers. [Full usage guide](https://github.com/Lapxo/bound/blob/2053bb6d6188f04538114eae6a0add5166944ed3/docs/usage.md).
|
|
43
|
-
|
|
44
|
-
## A meeting everyone can understand
|
|
45
|
-
|
|
46
|
-
Ana is available from 10 to 14, Luis from 12 to 16, and the room from 10 to 13. Their common availability is 12 to 13. A boss available from 18 to 20 makes the encounter incompatible. Withdrawing that exact reading restores the overlap; Ana, Luis and the room remain.
|
|
47
|
-
|
|
48
|
-
With an interval form, those are object operations: observe independent claims, meet them, withdraw by id, and read the state. A narrower compatible meet is not a fork. Folding a file of declarations alone does not calculate meeting availability.
|
|
7
|
+
## A place, its readings and its receipts
|
|
49
8
|
|
|
50
|
-
|
|
9
|
+
A place declares its rules and selected worlds in `TARGET.bound`. Worlds supply readers and renderers for their own domains. A fold reads the declared inputs, applies the admitted constraints, and renders the selected views. `receipts.bound` carries the public evidence needed to check the resulting files; private admission history stays in the local `.bound/` store.
|
|
51
10
|
|
|
52
|
-
|
|
11
|
+
Unchanged regions can retain valid receipts. A changed input reopens the regions it affects, while incompatible admitted statements remain visible. A digest identifies content; it grants neither authority nor permission to reuse an old answer as current. A receipt records a reading under its declared context, rather than establishing the truth or independence of its sources.
|
|
53
12
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
A travelling ceiling on B reaches C and G through their declared rest. A local join widens B alone. D is independent. The figure shows those relations; point size and camera distance do not measure information.
|
|
57
|
-
|
|
58
|
-
| State | Meaning |
|
|
59
|
-
| --- | --- |
|
|
60
|
-
| REQUIRED | Compatible bounds, fewer than two independent origins. |
|
|
61
|
-
| FREE | Independent origins meet and their encounter fits the bounds. |
|
|
62
|
-
| CONFLICT | Bounds conflict, or eligible claims have no common encounter. |
|
|
63
|
-
| FORBIDDEN | An inhabited encounter does not fit the bounds. |
|
|
64
|
-
|
|
65
|
-
Bounds are checked before origins and claims. A receipt is evidence of a reading, not another origin. Duplicating one does not add freedom.
|
|
66
|
-
|
|
67
|
-
## Change a project without erasing evidence
|
|
68
|
-
|
|
69
|
-
Work in the project's directory. Use an existing admitted key identifier and its matching private key stored outside every repository. The admitted key also names its signer with `keys/<who> measure=signer value=file`; `signer/timeout` and `signer/response-bytes` declare its limits. Your public key and coverage belong to the authority contract; possession of a private key alone does not authorize a scope.
|
|
13
|
+
## Install and use
|
|
70
14
|
|
|
71
15
|
```sh
|
|
72
|
-
|
|
73
|
-
export BOUND_KEY_FILE="$HOME/Private/keys/your-device.pem"
|
|
74
|
-
lot_dir="$(mktemp -d)"
|
|
16
|
+
npm install @lapxo/bound@0.2.1
|
|
75
17
|
```
|
|
76
18
|
|
|
77
|
-
|
|
19
|
+
In a place with admitted declarations and closed public receipts, check the existing evidence without running its readers again:
|
|
78
20
|
|
|
79
21
|
```sh
|
|
80
|
-
npx @lapxo/bound@0.1
|
|
81
|
-
--key "$BOUND_KEY_ID" --key-file "$BOUND_KEY_FILE" \
|
|
82
|
-
> "$lot_dir/signed.bound" &&
|
|
83
|
-
npx @lapxo/bound@0.1.9 land "$lot_dir/signed.bound" &&
|
|
84
|
-
npx @lapxo/bound@0.1.9 fold
|
|
22
|
+
npx @lapxo/bound@0.2.1 fold --check
|
|
85
23
|
```
|
|
86
24
|
|
|
87
|
-
|
|
25
|
+
For a change, prepare a proposal, sign with a key already covered by the place, admit the signed lot, then fold and inspect the result. Signing and admission do not by themselves pay a requirement. The [usage guide](docs/usage.md) covers keys, coverage, proposals, withdrawals and release policy.
|
|
88
26
|
|
|
89
|
-
|
|
27
|
+
## Embed the engine
|
|
90
28
|
|
|
91
|
-
|
|
29
|
+
`objectFold` projects already admitted records in effective order. It does not acquire content, verify signatures, choose authority, commit an act or write storage. Those preparation steps belong to the host.
|
|
92
30
|
|
|
93
|
-
|
|
31
|
+
For an authenticated reference, your host supplies the independently accepted trust context: signer grants and epoch, selected form, policy, byte and record bounds, content and cryptographic ports. The carrier cannot choose those inputs. This example verifies the carrier through `/reference`, then uses the same `/engine` projection as the CLI:
|
|
94
32
|
|
|
95
|
-
|
|
33
|
+
```js
|
|
34
|
+
import { objectFold } from '@lapxo/bound/engine';
|
|
35
|
+
import { inspectAuthenticatedReference } from '@lapxo/bound/reference';
|
|
96
36
|
|
|
97
|
-
|
|
98
|
-
|
|
37
|
+
export async function openAndProject(reference, trust) {
|
|
38
|
+
const opened = await inspectAuthenticatedReference(reference, trust);
|
|
39
|
+
return objectFold(opened.records, trust.objects);
|
|
40
|
+
}
|
|
99
41
|
```
|
|
100
42
|
|
|
101
|
-
|
|
43
|
+
Captured on a clean installed consumer, with two independently admitted fixture places and an altered carrier in each:
|
|
102
44
|
|
|
103
45
|
```text
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
Native receipts identify the live semantic inputs, declared rest, selected topos, codecs and selected rendering implementation. They exclude delivery count, display paths and Bound's error wrapper. A local join changes its own cell's receipt. A travelling sign changes dependent cells. Missing or corrupt carried bytes cannot prove reuse.
|
|
108
|
-
|
|
109
|
-
For judgement:
|
|
110
|
-
|
|
111
|
-
```sh
|
|
112
|
-
npx @lapxo/bound@0.1.9 fold --check
|
|
46
|
+
README sensor · REQUIRED · altered carrier refused
|
|
47
|
+
README editorial · REQUIRED · altered carrier refused
|
|
113
48
|
```
|
|
114
49
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
## Select a topos by what it declares
|
|
118
|
-
|
|
119
|
-
`sources/<name>` says where a world can be obtained. An admitted `uses/<name>` names the digest of that topos's folded standing: canonical live claims in wire byte order, excluding signature envelopes and host shape. Re-signing the same standing preserves the pin. A changed live form, class, view or offer changes it.
|
|
50
|
+
Opening and projecting a reference never commit an act. The authenticated context binds the standing contract and refusal catalog by digest, so consumers can identify the contracts used to interpret the result.
|
|
120
51
|
|
|
121
|
-
|
|
52
|
+
## Public boundaries
|
|
122
53
|
|
|
123
|
-
|
|
|
54
|
+
| Entry | Responsibility |
|
|
124
55
|
| --- | --- |
|
|
125
|
-
|
|
|
126
|
-
|
|
|
127
|
-
|
|
|
128
|
-
|
|
|
129
|
-
|
|
|
130
|
-
|
|
131
|
-
Cell `restsOn` is the object's relation. Directory prefixes and file summaries are host coordinates, not object rest. Wire tokens are protocol constants, not organization, host, path or key literals.
|
|
132
|
-
|
|
133
|
-
## Repository rules
|
|
134
|
-
|
|
135
|
-
Commit `TARGET.bound`, `receipts.bound` and the outputs the forge reads. Ignore `.bound/` from the first line of `.gitignore`. Keep proposals, signed lots, keys, ledgers, caches and dependency blobs outside the published tree. CI logs and test results are workflow artifacts; do not commit or package them. Cross-machine portability proof (L6) remains pending for 0.1.10.
|
|
136
|
-
|
|
137
|
-
The lock is the project's own contract and pins. Read a dependency's declarations from its selected standing; do not copy its lines into your lock. README, package metadata and workflows must be renders of admitted declarations. A scan is an observation, not permission to lower a ceiling.
|
|
138
|
-
|
|
139
|
-
A PR proposes lines and the leaf changes they render. The judge uses the team's accepted contract independently of the proposed revision. Preserve refusals, conflicting origins and unpaid demands. [Repository and contribution rules](https://github.com/Lapxo/bound/blob/2053bb6d6188f04538114eae6a0add5166944ed3/docs/usage.md#repository-and-pr-review).
|
|
140
|
-
|
|
141
|
-
## An atlas you can question
|
|
142
|
-
|
|
143
|
-
Information can share a history without sharing a single presentation. The same admitted cells can support a compact status view, a spatial view of their relations, or a focused reading of one disagreement. Each view asks for a region and resolution; its selected topos determines the representation.
|
|
144
|
-
|
|
145
|
-
This makes changes inspectable. A local act can remain local, travelling bounds can reach dependent cells, and a receipt can name the inputs of the reading you saw. You can ask what changed and what depends on it without turning a drawing into the algebra.
|
|
56
|
+
| `/engine` | Pure projection of admitted object records; optional, explicitly injected host ports. |
|
|
57
|
+
| `/reference` | Inspect a carrier against the host's accepted context and verify its content and authority. |
|
|
58
|
+
| `/reference/native` | Export a signed carrier from a real admitted place and open it with an explicitly selected backend. |
|
|
59
|
+
| `/wasm` | Load the optional WASM adapter for the published object projection. |
|
|
60
|
+
| `/refusals` and `/standing-contract` | Read the machine-readable contracts bound into authenticated exports. |
|
|
146
61
|
|
|
147
|
-
|
|
62
|
+
Native opening selects **ESM or WASM explicitly**; an unsupported selection refuses rather than falling back. The WASM adapter covers the published object projection. Admission, effects and the whole CLI do not run inside WASM. Cross-machine evidence (L6) remains pending.
|
|
148
63
|
|
|
149
|
-
|
|
64
|
+
The host supplies bounded [signer, content and persistence ports](docs/contracts/host-ports.md). Their identities and limits are explicit. Retaining bytes is an explicit operation: it grants no admission or permission to reuse a response. The existing authority path verifies signatures before returning an authenticated carrier.
|
|
150
65
|
|
|
151
|
-
[
|
|
66
|
+
[Complete standing](docs/contracts/standing.md) covers declared key classes and committed local acts, preserving attribution, exact withdrawals and conflicts. [Refusals](docs/contracts/refusals.md) have machine-readable codes, meanings and suggested next steps; human diagnostics are not parsed as authority.
|
|
152
67
|
|
|
68
|
+
## Contracts and foundations
|
|
153
69
|
|
|
154
|
-
|
|
70
|
+
- [Native authenticated export](docs/contracts/reference-export.md) and [reference backends](docs/contracts/reference-backend.md).
|
|
71
|
+
- [Pure engine](docs/contracts/engine.md), [host ports](docs/contracts/host-ports.md) and [CLI usage](docs/usage.md).
|
|
72
|
+
- [Topos](https://github.com/Lapxo/topos): wire, interpretation and identity contracts.
|
|
73
|
+
- [Obligations](https://github.com/Lapxo/obligations): the unchanged constraint algebra.
|
|
155
74
|
|
|
156
|
-
The
|
|
75
|
+
The underlying object is described in [Two-Sided Constraints on a Valued Lattice](https://doi.org/10.5281/zenodo.21858428), DOI `10.5281/zenodo.21858428`.
|