@lapxo/bound 0.2.2 → 0.2.4

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 (79) hide show
  1. package/.github/workflows/release.yml +67 -0
  2. package/.github/workflows/test.yml +35 -0
  3. package/CITATION.cff +19 -0
  4. package/TARGET.bound +80 -21
  5. package/dist/cli/accept.js +103 -71
  6. package/dist/cli/place.js +3 -2
  7. package/dist/cli/standing-result.js +3 -5
  8. package/dist/cli/takes.js +4 -3
  9. package/dist/cli/verb.js +2 -1
  10. package/dist/engine/ports.d.ts +6 -1
  11. package/dist/engine/ports.js +23 -9
  12. package/dist/fold/claims.d.ts +29 -0
  13. package/dist/fold/claims.js +2 -1
  14. package/dist/fold/closed.js +2 -1
  15. package/dist/fold/digests.js +7 -7
  16. package/dist/host/admitted-place.js +3 -31
  17. package/dist/host/call-context.d.ts +20 -0
  18. package/dist/host/call-context.js +14 -0
  19. package/dist/host/capsule-process.js +2 -1
  20. package/dist/host/capsule.js +7 -4
  21. package/dist/host/commit-result.d.ts +6 -0
  22. package/dist/host/commit-result.js +5 -0
  23. package/dist/host/contextual-place.js +9 -14
  24. package/dist/host/host-controls.js +19 -0
  25. package/dist/host/in-process-act.d.ts +82 -0
  26. package/dist/host/in-process-act.js +84 -0
  27. package/dist/host/in-process-context.d.ts +46 -0
  28. package/dist/host/in-process-context.js +91 -0
  29. package/dist/host/in-process-root.d.ts +117 -0
  30. package/dist/host/in-process-root.js +84 -0
  31. package/dist/host/in-process.d.ts +41 -0
  32. package/dist/host/in-process.js +55 -0
  33. package/dist/host/index.d.ts +15 -0
  34. package/dist/host/index.js +7 -0
  35. package/dist/host/native/loader.js +1 -1
  36. package/dist/host/native/module-closure.d.ts +35 -0
  37. package/dist/host/native/module-closure.js +34 -3
  38. package/dist/host/native/module-delivery.d.ts +62 -0
  39. package/dist/host/native/module-delivery.js +151 -0
  40. package/dist/host/native/module-syntax.js +3 -1
  41. package/dist/host/native-receiver.d.ts +19 -0
  42. package/dist/host/native-receiver.js +25 -0
  43. package/dist/host/order.js +2 -0
  44. package/dist/host/place-act-transaction.d.ts +24 -0
  45. package/dist/host/place-act-transaction.js +78 -0
  46. package/dist/host/place-clock-selection.d.ts +55 -0
  47. package/dist/host/place-clock-selection.js +1 -1
  48. package/dist/host/ports/local-act.d.ts +44 -0
  49. package/dist/host/ports/local-act.js +13 -2
  50. package/dist/host/ports/place-act.d.ts +49 -0
  51. package/dist/host/ports/place-act.js +19 -54
  52. package/dist/host/ports/publication.d.ts +10 -0
  53. package/dist/host/root-clock-source.d.ts +86 -0
  54. package/dist/host/root-clock-source.js +7 -5
  55. package/dist/host/signature-era.js +12 -0
  56. package/dist/host/signing.js +1 -1
  57. package/dist/host/source-content.js +2 -1
  58. package/dist/host/standing-carrier.js +18 -0
  59. package/dist/host/standing-projection.js +50 -0
  60. package/dist/land/act.js +60 -26
  61. package/dist/observe/run.js +2 -1
  62. package/dist/observe/runner.js +16 -8
  63. package/docs/contracts/closure-delivery.md +23 -0
  64. package/docs/contracts/closure-delivery.publication.json +25 -0
  65. package/docs/contracts/native-host.md +21 -0
  66. package/docs/contracts/native-host.publication.json +25 -0
  67. package/docs/contracts/native-publication.inventory.json +2 -1
  68. package/docs/contracts/publication.inventory.json +29 -0
  69. package/docs/guide.md +10 -0
  70. package/docs/reference.md +39 -0
  71. package/docs/why.md +109 -0
  72. package/package.json +43 -2
  73. package/receipts.bound +10405 -9625
  74. package/samples/module-delivery/inputs/delivery.json +1 -0
  75. package/samples/native-host/no.json +10 -0
  76. package/samples/native-host/yes.json +20 -0
  77. package/samples/no/module-delivery/delivery.json +1 -0
  78. package/vectors/native/module-delivery.vector.json +32 -0
  79. package/vectors/native/native-host.vector.json +62 -0
@@ -0,0 +1,67 @@
1
+ name: release
2
+ on:
3
+ workflow_run:
4
+ workflows: [tag]
5
+ types: [completed]
6
+ workflow_dispatch:
7
+ jobs:
8
+ stage:
9
+ if: github.event_name == 'workflow_dispatch' || (github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.head_branch == 'main')
10
+ concurrency: release-delivery
11
+ environment: release
12
+ runs-on: ubuntu-latest
13
+ permissions:
14
+ contents: write
15
+ id-token: write
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+ with:
19
+ ref: ${{ github.event.workflow_run.head_sha || github.sha }}
20
+ - uses: actions/setup-node@v4
21
+ with:
22
+ node-version: 24
23
+ - run: npm ci --ignore-scripts
24
+ - run: npm run build
25
+ - run: npm install --global npm@'12.1.0' --ignore-scripts
26
+ - name: Prepare release
27
+ env:
28
+ GH_TOKEN: ${{ github.token }}
29
+ run: |
30
+ set -euo pipefail
31
+ TAG="v$(node -p "require('./package.json').version")"
32
+ printf 'TAG=%s\n' "$TAG" >> "$GITHUB_ENV"
33
+ git fetch origin "refs/tags/$TAG:refs/tags/$TAG"
34
+ gh api --paginate "repos/$GITHUB_REPOSITORY/releases" --jq '.[].tag_name' > "$RUNNER_TEMP/release-tags"
35
+ if grep -Fxq "$TAG" "$RUNNER_TEMP/release-tags"; then
36
+ printf 'RELEASE %s · exists\n' "$TAG"
37
+ else
38
+ gh release create "$TAG" --verify-tag --draft --title "$TAG" --generate-notes
39
+ printf 'RELEASE %s · draft created · awaiting signed assets\n' "$TAG"
40
+ fi
41
+ - name: Read owner approval
42
+ env:
43
+ GH_TOKEN: ${{ github.token }}
44
+ run: |
45
+ set -euo pipefail
46
+ mkdir .release
47
+ gh release download "$TAG" --pattern approval-signed --dir .release
48
+ node dist/cli/verb.js fold --as release .release/approval-signed > .release/verdict
49
+ cat .release/verdict
50
+ - name: Stage the approved release archive
51
+ env:
52
+ GH_TOKEN: ${{ github.token }}
53
+ run: |
54
+ set -euo pipefail
55
+ read -r status digest archive source extra < .release/verdict
56
+ test "$status" = READY
57
+ test -z "$extra"
58
+ gh release download "$TAG" --pattern "$archive" --dir .release
59
+ printf '%s %s\n' "${digest#sha256:}" ".release/$archive" | sha256sum -c -
60
+ expected="$(node -p "require('./package.json').name+'@'+require('./package.json').version")"
61
+ actual="$(tar -xOf ".release/$archive" package/package.json | node -p "const p=JSON.parse(require('fs').readFileSync(0,'utf8'));p.name+'@'+p.version")"
62
+ test "$actual" = "$expected"
63
+ printf 'SOURCE release/%s/%s · %s · declared %s\n' "$TAG" "$archive" "$digest" "$source"
64
+ gh release edit "$TAG" --draft=false
65
+ printf 'RELEASE %s · published · %s\n' "$TAG" "$digest"
66
+ npm stage publish ".release/$archive" --access public --ignore-scripts
67
+ printf 'STAGED %s · %s · owner approval pending\n' "$actual" "$digest"
@@ -0,0 +1,35 @@
1
+ name: test
2
+ on:
3
+ push:
4
+ branches: [main]
5
+ pull_request:
6
+ permissions:
7
+ contents: read
8
+ jobs:
9
+ test:
10
+ strategy:
11
+ fail-fast: false
12
+ matrix:
13
+ node: [22, 24]
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ with:
18
+ persist-credentials: false
19
+ - uses: actions/setup-node@v4
20
+ with:
21
+ node-version: ${{ matrix.node }}
22
+ - run: npm ci
23
+ - run: npm run build
24
+ - name: Run tests
25
+ run: |
26
+ set -euo pipefail
27
+ npm test 2>&1 | tee "$RUNNER_TEMP/bound-tests.log"
28
+ - run: npm pack --pack-destination "$RUNNER_TEMP" --silent
29
+ - name: Preserve test logs
30
+ if: always()
31
+ uses: actions/upload-artifact@v4
32
+ with:
33
+ name: bound-node-${{ matrix.node }}
34
+ path: ${{ runner.temp }}/bound-tests.log
35
+ if-no-files-found: ignore
package/CITATION.cff ADDED
@@ -0,0 +1,19 @@
1
+ cff-version: 1.2.0
2
+ message: "Cite it by the paper it rests on, Two-Sided Constraints on a Valued Lattice."
3
+ type: software
4
+ title: "@lapxo/bound"
5
+ version: "0.2.4"
6
+ authors:
7
+ - name: "Lapxo"
8
+ license: "MIT"
9
+ preferred-citation:
10
+ type: article
11
+ title: "Two-Sided Constraints on a Valued Lattice"
12
+ authors:
13
+ - family-names: "Ochoa"
14
+ given-names: "N."
15
+ year: 2026
16
+ version: "1.0.0"
17
+ publisher:
18
+ name: "Zenodo"
19
+ doi: "10.5281/zenodo.21858428"