@dorigjo/besa 0.1.0-beta.4 → 0.1.0-beta.5

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 (2) hide show
  1. package/README.md +38 -44
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -13,31 +13,16 @@
13
13
  <p align="center">
14
14
  <a href="https://github.com/dorigjo/besa/actions/workflows/ci.yml"><img src="https://github.com/dorigjo/besa/actions/workflows/ci.yml/badge.svg" alt="CI" /></a>
15
15
  <a href="https://www.npmjs.com/package/@dorigjo/besa"><img src="https://img.shields.io/npm/v/@dorigjo/besa" alt="npm" /></a>
16
- <img src="https://img.shields.io/badge/public_release-coming_soon-C1121F?labelColor=003049" alt="Public release coming soon" />
17
16
  </p>
18
17
 
19
18
  ---
20
19
 
21
- ## Early Access
22
-
23
- Besa 0.1.0-beta.4 is available as a GitHub Release tarball while npm publishing is pending.
24
-
25
- Install:
26
-
27
- ```bash
28
- npm install https://github.com/dorigjo/besa/releases/download/v0.1.0-beta.4/dorigjo-besa-0.1.0-beta.4.tgz
29
- ```
30
-
31
- See [EARLY_ACCESS.md](EARLY_ACCESS.md) for integrity hash, quickstart, and known limitations.
32
-
33
- ---
34
-
35
20
  Besa creates cryptographic execution evidence for AI-agent tool calls. Every
36
21
  admission decision is signed. Every signed receipt is tamper-evident and
37
22
  independently verifiable.
38
23
 
39
- > **Beta.** `0.1.0-beta.4` is a local developer beta. Public release coming soon.
40
- > Enterprise inquiry: [open an issue](https://github.com/dorigjo/besa/issues).
24
+ > **Beta.** `0.1.0-beta.5` is a public developer beta. Not yet production-ready.
25
+ > Feedback and issues: [github.com/dorigjo/besa/issues](https://github.com/dorigjo/besa/issues).
41
26
 
42
27
  ---
43
28
 
@@ -81,16 +66,13 @@ all tamper-evident. Changing any field causes verification to fail.
81
66
  ## Install
82
67
 
83
68
  ```bash
84
- npm install @dorigjo/besa@beta
69
+ npm install @dorigjo/besa
85
70
  ```
86
71
 
87
- Or build from source:
72
+ Pin the beta channel explicitly:
88
73
 
89
74
  ```bash
90
- git clone https://github.com/dorigjo/besa
91
- cd besa
92
- npm ci
93
- npm run build
75
+ npm install @dorigjo/besa@beta
94
76
  ```
95
77
 
96
78
  Set the key passphrase before any signing operation:
@@ -99,33 +81,45 @@ Set the key passphrase before any signing operation:
99
81
  export BESA_KEY_PASSPHRASE="your-passphrase-at-least-16-bytes"
100
82
  ```
101
83
 
84
+ ### Build from source
85
+
86
+ ```bash
87
+ git clone https://github.com/dorigjo/besa
88
+ cd besa
89
+ npm ci
90
+ npm run build
91
+ ```
92
+
102
93
  ---
103
94
 
104
95
  ## Quickstart
105
96
 
106
97
  ```bash
98
+ # Show available commands
99
+ npx besa --help
100
+
107
101
  # Generate or load the local signing key
108
- node dist/index.js keys
102
+ npx besa keys
109
103
 
110
104
  # Validate the manifest (dry-run, no signing)
111
- node dist/index.js load examples/manifest.yaml
105
+ npx besa load examples/manifest.yaml
112
106
 
113
107
  # Sign the manifest
114
- node dist/index.js sign examples/manifest.yaml
108
+ npx besa sign examples/manifest.yaml
115
109
 
116
110
  # Verify the signature
117
- node dist/index.js verify examples/manifest.signed.json
111
+ npx besa verify examples/manifest.signed.json
118
112
 
119
113
  # Admission dry-run (does not consume budget)
120
- node dist/index.js admit examples/manifest.signed.json crm.lookup # → allow
121
- node dist/index.js admit examples/manifest.signed.json crm.delete # → deny RISK_BLOCKED
114
+ npx besa admit examples/manifest.signed.json crm.lookup # → allow
115
+ npx besa admit examples/manifest.signed.json crm.delete # → deny RISK_BLOCKED
122
116
 
123
117
  # Issue a signed receipt (consumes budget)
124
- node dist/index.js receipt crm.lookup examples/manifest.signed.json \
118
+ npx besa receipt crm.lookup examples/manifest.signed.json \
125
119
  --request examples/request.json
126
120
 
127
121
  # Verify the receipt chain
128
- node dist/index.js verify-receipt .besa/receipts/<id>.json \
122
+ npx besa verify-receipt .besa/receipts/<id>.json \
129
123
  examples/manifest.signed.json
130
124
  ```
131
125
 
@@ -133,39 +127,39 @@ node dist/index.js verify-receipt .besa/receipts/<id>.json \
133
127
 
134
128
  ```powershell
135
129
  $env:BESA_KEY_PASSPHRASE = "your-passphrase-at-least-16-bytes"
136
- node .\dist\index.js keys
137
- node .\dist\index.js sign .\examples\manifest.yaml
138
- node .\dist\index.js verify .\examples\manifest.signed.json
139
- node .\dist\index.js admit .\examples\manifest.signed.json crm.lookup
140
- node .\dist\index.js receipt crm.lookup .\examples\manifest.signed.json `
141
- --request .\examples\request.json
130
+ npx besa keys
131
+ npx besa sign examples/manifest.yaml
132
+ npx besa verify examples/manifest.signed.json
133
+ npx besa admit examples/manifest.signed.json crm.lookup
134
+ npx besa receipt crm.lookup examples/manifest.signed.json `
135
+ --request examples/request.json
142
136
 
143
137
  $receipt = Get-ChildItem .\.besa\receipts\*.json |
144
138
  Sort-Object LastWriteTime -Descending | Select-Object -First 1
145
- node .\dist\index.js verify-receipt $receipt.FullName .\examples\manifest.signed.json
139
+ npx besa verify-receipt $receipt.FullName examples/manifest.signed.json
146
140
  ```
147
141
 
148
142
  ### Consumer trust (separate system)
149
143
 
150
144
  ```bash
151
145
  # Pin the publisher's public key
152
- node dist/index.js trust add examples/manifest.signed.json \
146
+ npx besa trust add examples/manifest.signed.json \
153
147
  --trust consumer-trust.json
154
148
 
155
149
  # Verify against a pinned trust anchor (fails without it)
156
- node dist/index.js verify examples/manifest.signed.json \
150
+ npx besa verify examples/manifest.signed.json \
157
151
  --trust consumer-trust.json
158
152
  ```
159
153
 
160
154
  ### Key rotation
161
155
 
162
156
  ```bash
163
- node dist/index.js keys rotate
157
+ npx besa keys rotate
164
158
 
165
- node dist/index.js trust apply .besa/rotations/<rotation>.json \
159
+ npx besa trust apply .besa/rotations/<rotation>.json \
166
160
  --trust consumer-trust.json
167
161
 
168
- node dist/index.js sign examples/manifest.yaml # re-sign under the new key
162
+ npx besa sign examples/manifest.yaml # re-sign under the new key
169
163
  ```
170
164
 
171
165
  The previous key becomes `retired`: artifacts signed before rotation remain
@@ -272,7 +266,7 @@ time under a specific key.
272
266
 
273
267
  - Ed25519 signatures (256-bit security) on the complete artifact envelope
274
268
  - AES-256-GCM key encryption at rest with scrypt KDF (N=32768, r=8, p=1)
275
- - SHA-256 manifest hashing and full 64-bit SHA-256 public key fingerprints
269
+ - SHA-256 manifest hashing and full 256-bit (64-hex-character) SHA-256 public key fingerprints
276
270
  - Domain-separated signature messages (`besa:<domain>:v1\0<canonical-json>`)
277
271
  - Timing-safe public key comparison via `crypto.timingSafeEqual`
278
272
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dorigjo/besa",
3
- "version": "0.1.0-beta.4",
3
+ "version": "0.1.0-beta.5",
4
4
  "description": "Cryptographic execution evidence for AI-agent tool calls: signed manifests, admission decisions, and tamper-evident receipts.",
5
5
  "type": "module",
6
6
  "main": "./dist/sdk.js",