@agentcontextdistributionprotocol/acdp 0.4.0 → 0.5.0

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/index.d.ts +39 -0
  2. package/package.json +5 -5
package/index.d.ts CHANGED
@@ -19,6 +19,25 @@ export interface ResolvedDidKey {
19
19
  */
20
20
  publicKeyB64: string
21
21
  }
22
+ /**
23
+ * [`ResolvedDidKey`] plus the RFC-ACDP-0010 §9 lifecycle signal for
24
+ * registry receipt keys.
25
+ */
26
+ export interface ResolvedReceiptKey {
27
+ /** Verification-method id (full DID URL with `#fragment`). */
28
+ keyId: string
29
+ /** `ed25519` or `ecdsa-p256`. */
30
+ algorithm: string
31
+ /** Standard base64 of the raw key bytes (see [`ResolvedDidKey`]). */
32
+ publicKeyB64: string
33
+ /**
34
+ * `true` when the key is retained in `verificationMethod` but no
35
+ * longer referenced by `assertionMethod` — a retired receipt key.
36
+ * Verify the receipt, but report it with the distinguishable
37
+ * *historically authorized* status (RFC-ACDP-0010 §9).
38
+ */
39
+ historical: boolean
40
+ }
22
41
  /**
23
42
  * Options for `buildPublishRequest`. Field names map directly to the
24
43
  * PublishRequest wire schema (camelCase on the JS side).
@@ -193,6 +212,26 @@ export declare class AcdpDidDocument {
193
212
  * is the full DID URL from the signature's `key_id`.
194
213
  */
195
214
  keyForAlgorithm(requestedKeyId: string, requestedAlg: string): ResolvedDidKey
215
+ /**
216
+ * Resolve a **registry receipt** signing key, applying the
217
+ * RFC-ACDP-0010 §9 lifecycle instead of the `assertionMethod` gate:
218
+ * retired receipt keys MUST remain in `verificationMethod`
219
+ * indefinitely and MUST still verify historical receipts even after
220
+ * rotation removes them from `assertionMethod`. A key absent from
221
+ * `verificationMethod` entirely still fails
222
+ * (`.code === "key_not_found"`) — full removal is the registry's
223
+ * compromise-revocation signal.
224
+ *
225
+ * `historical` on the result is `true` when the key is no longer in
226
+ * `assertionMethod`: verify the receipt, but report it with the
227
+ * distinguishable *historically authorized* status. The
228
+ * algorithm-downgrade defense (RFC-ACDP-0008 §3.9) and key decoding
229
+ * are enforced identically to `keyForAlgorithm`.
230
+ *
231
+ * Use `keyForAlgorithm` for producer keys and auth challenges —
232
+ * publish-time authorization still requires `assertionMethod`.
233
+ */
234
+ receiptKeyForAlgorithm(requestedKeyId: string, requestedAlg: string): ResolvedReceiptKey
196
235
  }
197
236
  /** RFC 8785 canonicalization utilities. All methods are static. */
198
237
  export declare class AcdpCanonicalizer {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentcontextdistributionprotocol/acdp",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "Agent Context Distribution Protocol — Node.js SDK",
5
5
  "license": "MIT OR Apache-2.0",
6
6
  "repository": {
@@ -47,9 +47,9 @@
47
47
  "registry": "https://registry.npmjs.org/"
48
48
  },
49
49
  "optionalDependencies": {
50
- "@agentcontextdistributionprotocol/acdp-darwin-x64": "0.4.0",
51
- "@agentcontextdistributionprotocol/acdp-darwin-arm64": "0.4.0",
52
- "@agentcontextdistributionprotocol/acdp-linux-x64-gnu": "0.4.0",
53
- "@agentcontextdistributionprotocol/acdp-linux-arm64-gnu": "0.4.0"
50
+ "@agentcontextdistributionprotocol/acdp-darwin-x64": "0.5.0",
51
+ "@agentcontextdistributionprotocol/acdp-darwin-arm64": "0.5.0",
52
+ "@agentcontextdistributionprotocol/acdp-linux-x64-gnu": "0.5.0",
53
+ "@agentcontextdistributionprotocol/acdp-linux-arm64-gnu": "0.5.0"
54
54
  }
55
55
  }