@enbox/agent 0.5.16 → 0.6.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 (43) hide show
  1. package/dist/browser.mjs +11 -11
  2. package/dist/browser.mjs.map +4 -4
  3. package/dist/esm/dwn-api.js +433 -33
  4. package/dist/esm/dwn-api.js.map +1 -1
  5. package/dist/esm/dwn-encryption.js +131 -12
  6. package/dist/esm/dwn-encryption.js.map +1 -1
  7. package/dist/esm/dwn-key-delivery.js +64 -47
  8. package/dist/esm/dwn-key-delivery.js.map +1 -1
  9. package/dist/esm/enbox-connect-protocol.js +400 -3
  10. package/dist/esm/enbox-connect-protocol.js.map +1 -1
  11. package/dist/esm/permissions-api.js +11 -1
  12. package/dist/esm/permissions-api.js.map +1 -1
  13. package/dist/esm/sync-engine-level.js +407 -6
  14. package/dist/esm/sync-engine-level.js.map +1 -1
  15. package/dist/esm/sync-messages.js +10 -3
  16. package/dist/esm/sync-messages.js.map +1 -1
  17. package/dist/types/dwn-api.d.ts +159 -0
  18. package/dist/types/dwn-api.d.ts.map +1 -1
  19. package/dist/types/dwn-encryption.d.ts +39 -2
  20. package/dist/types/dwn-encryption.d.ts.map +1 -1
  21. package/dist/types/dwn-key-delivery.d.ts +1 -9
  22. package/dist/types/dwn-key-delivery.d.ts.map +1 -1
  23. package/dist/types/enbox-connect-protocol.d.ts +166 -1
  24. package/dist/types/enbox-connect-protocol.d.ts.map +1 -1
  25. package/dist/types/permissions-api.d.ts.map +1 -1
  26. package/dist/types/sync-engine-level.d.ts +45 -1
  27. package/dist/types/sync-engine-level.d.ts.map +1 -1
  28. package/dist/types/sync-messages.d.ts +2 -2
  29. package/dist/types/sync-messages.d.ts.map +1 -1
  30. package/dist/types/types/permissions.d.ts +9 -0
  31. package/dist/types/types/permissions.d.ts.map +1 -1
  32. package/dist/types/types/sync.d.ts +70 -2
  33. package/dist/types/types/sync.d.ts.map +1 -1
  34. package/package.json +5 -4
  35. package/src/dwn-api.ts +494 -38
  36. package/src/dwn-encryption.ts +160 -11
  37. package/src/dwn-key-delivery.ts +73 -61
  38. package/src/enbox-connect-protocol.ts +575 -6
  39. package/src/permissions-api.ts +13 -1
  40. package/src/sync-engine-level.ts +368 -4
  41. package/src/sync-messages.ts +14 -5
  42. package/src/types/permissions.ts +9 -0
  43. package/src/types/sync.ts +86 -2
@@ -97,11 +97,35 @@ export declare function getKeyDecrypter(agent: EnboxPlatformAgent, didUri: strin
97
97
  * @param contextKey - The derived private key for the context
98
98
  */
99
99
  export declare function buildContextKeyDecrypter(contextKey: DerivedPrivateJwk): KeyDecrypter;
100
+ /** Cache entry shape for scope-aware delegate decryption keys. */
101
+ export type DelegateDecryptionKeyEntry = {
102
+ protocol: string;
103
+ scope: {
104
+ kind: 'protocol';
105
+ } | {
106
+ kind: 'protocolPath';
107
+ protocolPath: string;
108
+ match: 'exact';
109
+ };
110
+ derivedPrivateKey: DerivedPrivateJwk;
111
+ };
112
+ /**
113
+ * Builds a KeyDecrypter for an exact-path delegate key that enforces the
114
+ * record's full derivation path matches the key's path exactly — siblings
115
+ * and descendants are NOT accessible.
116
+ */
117
+ export declare function buildExactProtocolPathDecrypter(key: DerivedPrivateJwk): KeyDecrypter;
100
118
  /**
101
119
  * Resolves the appropriate KeyDecrypter for a record's encryption scheme.
102
120
  * Handles both single-party (ProtocolPath) and multi-party (ProtocolContext).
103
121
  *
122
+ * For ProtocolPath records:
123
+ * - Owner: derives key directly from KMS
124
+ * - Delegate with protocol-wide key: uses ancestor-prefix derivation
125
+ * - Delegate with exact-path key: enforces exact path match
126
+ *
104
127
  * For ProtocolContext records:
128
+ * - Delegate: uses delivered context key from the connect flow
105
129
  * - Context creator: derives key directly from KMS
106
130
  * - Participant: fetches contextKey via key-delivery protocol, caches it
107
131
  *
@@ -111,6 +135,8 @@ export declare function buildContextKeyDecrypter(contextKey: DerivedPrivateJwk):
111
135
  * @param targetDid - The target DID (DWN owner), if known
112
136
  * @param contextDerivedKeyCache - Cache for context-derived private keys
113
137
  * @param fetchContextKeyRecordFn - Function to fetch context key records from key-delivery protocol
138
+ * @param delegateDecryptionKeyCache - Cache for scope-aware delegate decryption keys
139
+ * @param granteeDid - The delegate DID (if this is a delegated request)
114
140
  */
115
141
  export declare function resolveKeyDecrypter(agent: EnboxPlatformAgent, authorDid: string, recordsWrite: RecordsWriteMessage, targetDid: string | undefined, contextDerivedKeyCache: {
116
142
  get(key: string): DerivedPrivateJwk | undefined;
@@ -120,7 +146,12 @@ export declare function resolveKeyDecrypter(agent: EnboxPlatformAgent, authorDid
120
146
  requesterDid: string;
121
147
  sourceProtocol: string;
122
148
  sourceContextId: string;
123
- }) => Promise<DerivedPrivateJwk | undefined>): Promise<KeyDecrypter>;
149
+ }) => Promise<DerivedPrivateJwk | undefined>, delegateDecryptionKeyCache?: {
150
+ get(key: string): DelegateDecryptionKeyEntry[] | undefined;
151
+ }, granteeDid?: string, delegateContextKeyCache?: {
152
+ get(key: string): DerivedPrivateJwk | undefined;
153
+ set(key: string, value: DerivedPrivateJwk): void;
154
+ }): Promise<KeyDecrypter>;
124
155
  /**
125
156
  * Post-processes a DWN reply, auto-decrypting data if encryption is enabled.
126
157
  * Delegates to the SDK's Records.decrypt() with the appropriate KeyDecrypter —
@@ -131,6 +162,7 @@ export declare function resolveKeyDecrypter(agent: EnboxPlatformAgent, authorDid
131
162
  * @param agent - The platform agent
132
163
  * @param contextDerivedKeyCache - Cache for context-derived private keys
133
164
  * @param fetchContextKeyRecordFn - Function to fetch context key records
165
+ * @param delegateDecryptionKeyCache - Cache for scope-aware delegate decryption keys
134
166
  */
135
167
  export declare function maybeDecryptReply<T extends DwnInterface>(request: ProcessDwnRequest<T> | SendDwnRequest<T>, reply: DwnMessageReply[T], agent: EnboxPlatformAgent, contextDerivedKeyCache: {
136
168
  get(key: string): DerivedPrivateJwk | undefined;
@@ -140,5 +172,10 @@ export declare function maybeDecryptReply<T extends DwnInterface>(request: Proce
140
172
  requesterDid: string;
141
173
  sourceProtocol: string;
142
174
  sourceContextId: string;
143
- }) => Promise<DerivedPrivateJwk | undefined>): Promise<void>;
175
+ }) => Promise<DerivedPrivateJwk | undefined>, delegateDecryptionKeyCache?: {
176
+ get(key: string): DelegateDecryptionKeyEntry[] | undefined;
177
+ }, delegateContextKeyCache?: {
178
+ get(key: string): DerivedPrivateJwk | undefined;
179
+ set(key: string, value: DerivedPrivateJwk): void;
180
+ }): Promise<void>;
144
181
  //# sourceMappingURL=dwn-encryption.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dwn-encryption.d.ts","sourceRoot":"","sources":["../../src/dwn-encryption.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dwn-encryption.d.ts","sourceRoot":"","sources":["../../src/dwn-encryption.ts"],"names":[],"mappings":"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"}
@@ -99,16 +99,8 @@ export declare function eagerSendContextKeyRecord(agent: EnboxPlatformAgent, ten
99
99
  * @param agent - The platform agent
100
100
  * @param params - The fetch parameters
101
101
  * @param processRequest - The agent's processRequest method (bound)
102
- * @param getSigner - Function to get a signer for a DID
103
- * @param sendDwnRpcRequest - Function to send a DWN RPC request
104
- * @param getDwnEndpointUrlsForTarget - Function to resolve DWN endpoint URLs (with local discovery)
105
102
  * @returns The decrypted `DerivedPrivateJwk`, or `undefined` if no matching record found
106
103
  */
107
- export declare function fetchContextKeyRecord(agent: EnboxPlatformAgent, params: FetchContextKeyParams, processRequest: ProcessRequestFn, getSigner: (author: string) => Promise<any>, sendDwnRpcRequest: (params: {
108
- targetDid: string;
109
- dwnEndpointUrls: string[];
110
- message: any;
111
- data?: Blob;
112
- }) => Promise<any>, getDwnEndpointUrlsForTarget: (targetDid: string) => Promise<string[]>): Promise<DerivedPrivateJwk | undefined>;
104
+ export declare function fetchContextKeyRecord(_agent: EnboxPlatformAgent, params: FetchContextKeyParams, processRequest: ProcessRequestFn): Promise<DerivedPrivateJwk | undefined>;
113
105
  export {};
114
106
  //# sourceMappingURL=dwn-key-delivery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dwn-key-delivery.d.ts","sourceRoot":"","sources":["../../src/dwn-key-delivery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dwn-key-delivery.d.ts","sourceRoot":"","sources":["../../src/dwn-key-delivery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EACV,iBAAiB,EAGlB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AAUxB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAK9C;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,iBAAiB,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,6BAA6B,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,YAAY,CAAA;KAAE,CAAC;CACnF,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,wEAAwE;AACxE,KAAK,gBAAgB,GAAG,CAAC,CAAC,SAAS,YAAY,EAC7C,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAC1B,OAAO,CAAC;IAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEzF;;;;;;;;;;GAUG;AACH,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,kBAAkB,EACzB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,gBAAgB,EAChC,qBAAqB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,EAC/E,cAAc,EAAE;IAAE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAAC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAC5H,uBAAuB,EAAE;IAAE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACrD,OAAO,CAAC,IAAI,CAAC,CAgCf;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,kBAAkB,EACzB,MAAM,EAAE,qBAAqB,EAC7B,cAAc,EAAE,gBAAgB,EAChC,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,EACpD,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAC9F,OAAO,CAAC,MAAM,CAAC,CAkFjB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,kBAAkB,EACzB,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,UAAU,CAAC,YAAY,CAAC,YAAY,CAAC,EACxD,aAAa,EAAE,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC;IAAE,OAAO,EAAE,GAAG,CAAC;IAAC,IAAI,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC,EACpI,iBAAiB,EAAE,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,GAAG,CAAC;IAAC,IAAI,CAAC,EAAE,IAAI,CAAA;CAAE,KAAK,OAAO,CAAC,GAAG,CAAC,EACxH,2BAA2B,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,GACpE,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAuDD;;;;;;;;;;;GAWG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,qBAAqB,EAC7B,cAAc,EAAE,gBAAgB,GAC/B,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CA2DxC"}
@@ -12,6 +12,7 @@
12
12
  * The protocol uses JWTs for signing, JWE (XChaCha20-Poly1305) for encryption,
13
13
  * and ECDH (Ed25519 → X25519 + HKDF) for key agreement.
14
14
  */
15
+ import type { DerivedPrivateJwk } from '@enbox/dwn-sdk-js';
15
16
  import type { EnboxPlatformAgent } from './types/agent.js';
16
17
  import type { RequireOnly } from '@enbox/common';
17
18
  import type { DidDocument, PortableDid } from '@enbox/dids';
@@ -28,6 +29,72 @@ export type ConnectPermissionRequest = {
28
29
  /** The scope of the permissions being requested for the given protocol */
29
30
  permissionScopes: DwnPermissionScope[];
30
31
  };
32
+ /**
33
+ * A scope-aware decryption key delivered to delegates during the connect flow.
34
+ *
35
+ * Two scope kinds:
36
+ *
37
+ * - **`protocol`** — protocol-wide key at depth `[ProtocolPath, protocolUri]`.
38
+ * Can derive leaf keys for any type path within the protocol.
39
+ * Issued when the grant covers the entire protocol (no `protocolPath`).
40
+ *
41
+ * - **`protocolPath`** — exact-path key at depth
42
+ * `[ProtocolPath, protocolUri, ...pathSegments]`.
43
+ * Can only decrypt records at that exact path — not siblings or descendants.
44
+ * Issued when the grant is narrowed to a specific `protocolPath`.
45
+ *
46
+ * Common conditions (both kinds):
47
+ * 1. The protocol has `encryptionRequired: true` types (single-party only)
48
+ * 2. The delegate has at least one read-like scope (Read/Query/Subscribe)
49
+ * 3. The protocol does NOT use multi-party / role-based access patterns
50
+ *
51
+ * Out of scope (fail closed):
52
+ * - `contextId`-scoped encrypted delegate reads
53
+ * - multi-party / ProtocolContext encrypted delegate reads
54
+ */
55
+ export type DelegateDecryptionKey = {
56
+ /** The protocol URI this key is scoped to. */
57
+ protocol: string;
58
+ /** Protocol-wide decryption scope. */
59
+ scope: {
60
+ kind: 'protocol';
61
+ };
62
+ /** The derived private key material for ProtocolPath decryption. */
63
+ derivedPrivateKey: DerivedPrivateJwk;
64
+ } | {
65
+ /** The protocol URI this key is scoped to. */
66
+ protocol: string;
67
+ /** Exact-path decryption scope — siblings and descendants are NOT accessible. */
68
+ scope: {
69
+ kind: 'protocolPath';
70
+ protocolPath: string;
71
+ match: 'exact';
72
+ };
73
+ /** The derived private key material for ProtocolPath decryption. */
74
+ derivedPrivateKey: DerivedPrivateJwk;
75
+ };
76
+ /**
77
+ * A context-scoped decryption key for a multi-party encrypted protocol.
78
+ *
79
+ * Delivered to delegates during the connect flow so they can decrypt
80
+ * ProtocolContext-encrypted records without the owner's root X25519 key.
81
+ *
82
+ * Each key is scoped to one rootContextId — it unlocks all records within
83
+ * that context domain but cannot access other contexts in the protocol.
84
+ *
85
+ * Delivered only when:
86
+ * 1. The protocol has multi-party access patterns (detected by `isMultiPartyContext`)
87
+ * 2. The delegate has a protocol-wide read-like scope (no protocolPath/contextId)
88
+ * 3. The protocol has `encryptionRequired: true` types
89
+ */
90
+ export type DelegateContextKey = {
91
+ /** The protocol URI this key belongs to. */
92
+ protocol: string;
93
+ /** The root context ID this key unlocks. */
94
+ contextId: string;
95
+ /** The derived private key at `[ProtocolContext, rootContextId]`. */
96
+ derivedPrivateKey: DerivedPrivateJwk;
97
+ };
31
98
  import { type BearerDid } from '@enbox/dids';
32
99
  /**
33
100
  * Pushed to the connect server so the wallet can retrieve it later.
@@ -99,6 +166,40 @@ export type EnboxConnectResponse = {
99
166
  delegateGrants: DwnDataEncodedRecordsWriteMessage[];
100
167
  /** The delegate DID's full portable form, including private keys. */
101
168
  delegatePortableDid: PortableDid;
169
+ /**
170
+ * Scope-aware decryption keys for encrypted protocols.
171
+ *
172
+ * Derived only for read-like permission scopes (Read/Query/Subscribe) on
173
+ * protocols with `encryptionRequired: true` types. Write-only delegates
174
+ * receive no decryption keys.
175
+ */
176
+ delegateDecryptionKeys?: DelegateDecryptionKey[];
177
+ /**
178
+ * Context-scoped decryption keys for multi-party encrypted protocols.
179
+ *
180
+ * Derived at connect time for each existing rootContextId in multi-party
181
+ * protocols where the delegate has a protocol-wide read-like scope.
182
+ * Each key is scoped to `[ProtocolContext, rootContextId]` and can decrypt
183
+ * all records within that context domain.
184
+ *
185
+ * Contexts created after connect are delivered automatically by
186
+ * `postWriteKeyDelivery()` when the owner creates a new multi-party root
187
+ * record on the same agent instance (same-process delivery).
188
+ * Cross-device delivery is a documented follow-up.
189
+ */
190
+ delegateContextKeys?: DelegateContextKey[];
191
+ /**
192
+ * Protocol URIs that have multi-party encrypted access patterns.
193
+ *
194
+ * Delivered even when no contexts exist yet (cold-start), so the
195
+ * delegate's agent can register for future context key delivery.
196
+ */
197
+ delegateMultiPartyProtocols?: string[];
198
+ /** Per-grant revocation mappings for session-bound self-revocation on disconnect. */
199
+ sessionRevocations?: {
200
+ grantId: string;
201
+ revocationGrantId: string;
202
+ }[];
102
203
  };
103
204
  /** The connect server endpoint types. */
104
205
  export type ConnectEndpoint = 'pushedAuthorizationRequest' | 'authorize' | 'callback' | 'token';
@@ -172,7 +273,68 @@ declare function createConnectResponse(options: RequireOnly<EnboxConnectResponse
172
273
  /**
173
274
  * Creates permission grants that assign the requested scopes to a delegate DID.
174
275
  */
175
- declare function createPermissionGrants(selectedDid: string, delegateBearerDid: BearerDid, agent: EnboxPlatformAgent, scopes: DwnPermissionScope[]): Promise<DwnDataEncodedRecordsWriteMessage[]>;
276
+ declare function createPermissionGrants(selectedDid: string, delegateBearerDid: BearerDid, agent: EnboxPlatformAgent, scopes: DwnPermissionScope[], delegateKeyDeliveryData?: {
277
+ rootKeyId: string;
278
+ publicKeyJwk: Record<string, any>;
279
+ }): Promise<DwnDataEncodedRecordsWriteMessage[]>;
280
+ /**
281
+ * Derives the minimal set of decryption keys implied by read-like permission
282
+ * scopes for a single-party encrypted protocol.
283
+ *
284
+ * Rules:
285
+ * - Only Records.Read / Records.Query / Records.Subscribe scopes contribute.
286
+ * - Write / Delete / Count scopes produce no decryption keys.
287
+ * - If any unrestricted (no `protocolPath`) read scope exists, one
288
+ * protocol-wide key is emitted and narrower keys are dropped.
289
+ * - Otherwise one exact-path key is emitted per unique `protocolPath`.
290
+ * - Scopes with `contextId` cause a fail-closed error.
291
+ * - Multi-party protocols cause a fail-closed error.
292
+ *
293
+ * @param agent - The platform agent (must hold the owner's KMS keys)
294
+ * @param ownerDid - The DID of the protocol owner
295
+ * @param protocolUri - The protocol URI
296
+ * @param scopes - The permission scopes for this protocol
297
+ * @param protocolDefinition - The protocol definition (for multi-party detection)
298
+ * @returns An array of `DelegateDecryptionKey` (may be empty)
299
+ */
300
+ declare function deriveScopedDecryptionKeys(agent: EnboxPlatformAgent, ownerDid: string, protocolUri: string, scopes: DwnPermissionScope[], protocolDefinition: DwnProtocolDefinition): Promise<DelegateDecryptionKey[]>;
301
+ /**
302
+ * Detects whether a protocol definition has any root-level type whose subtree
303
+ * triggers multi-party semantics. Delegates to the canonical
304
+ * `isMultiPartyContext()` from `protocol-utils.ts` which checks:
305
+ *
306
+ * - `$role: true` descendants in the subtree
307
+ * - Relational `who`/`of` `$actions` rules that grant `read` access
308
+ *
309
+ * These patterns cause the DWN agent to use ProtocolContext encryption at
310
+ * write time, which is not supported in delegate sessions yet.
311
+ */
312
+ /**
313
+ * Classifies root-level types in a protocol definition into multi-party
314
+ * and single-party buckets. Used to detect mixed protocols that cannot
315
+ * be safely modeled with a single key type.
316
+ */
317
+ declare function classifyProtocolRoots(definition: DwnProtocolDefinition): {
318
+ multiParty: string[];
319
+ singleParty: string[];
320
+ };
321
+ /**
322
+ * Derives per-context decryption keys for a delegate's access to a multi-party
323
+ * encrypted protocol. Queries the owner's DWN for all root-level records
324
+ * (thread roots, etc.) and derives a `[ProtocolContext, rootContextId]` key
325
+ * for each.
326
+ *
327
+ * Validates scopes first — only protocol-wide read-like scopes are accepted.
328
+ * `protocolPath`-scoped and `contextId`-scoped reads throw (not yet supported).
329
+ * Write-only scopes return empty (no decryption keys needed).
330
+ *
331
+ * @param agent - The platform agent (must hold the owner's KMS keys)
332
+ * @param ownerDid - The DID of the protocol owner
333
+ * @param protocolDefinition - The protocol definition
334
+ * @param scopes - The permission scopes for this protocol
335
+ * @returns An array of `DelegateContextKey` (may be empty)
336
+ */
337
+ declare function deriveContextKeysForDelegate(agent: EnboxPlatformAgent, ownerDid: string, protocolDefinition: DwnProtocolDefinition, scopes: DwnPermissionScope[]): Promise<DelegateContextKey[]>;
176
338
  /**
177
339
  * Executes the full wallet-side (provider) flow:
178
340
  * 1. Creates a delegate DID
@@ -201,6 +363,9 @@ export declare const EnboxConnectProtocol: {
201
363
  createConnectResponse: typeof createConnectResponse;
202
364
  createPermissionGrants: typeof createPermissionGrants;
203
365
  submitConnectResponse: typeof submitConnectResponse;
366
+ deriveScopedDecryptionKeys: typeof deriveScopedDecryptionKeys;
367
+ deriveContextKeysForDelegate: typeof deriveContextKeysForDelegate;
368
+ classifyProtocolRoots: typeof classifyProtocolRoots;
204
369
  };
205
370
  export {};
206
371
  //# sourceMappingURL=enbox-connect-protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enbox-connect-protocol.d.ts","sourceRoot":"","sources":["../../src/enbox-connect-protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enbox-connect-protocol.d.ts","sourceRoot":"","sources":["../../src/enbox-connect-protocol.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"permissions-api.d.ts","sourceRoot":"","sources":["../../src/permissions-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAOvS,OAAO,EAAE,YAAY,EAA4C,MAAM,gBAAgB,CAAC;AAExF,qBAAa,mBAAoB,YAAW,cAAc;IAExD,4GAA4G;IAC5G,OAAO,CAAC,kBAAkB,CAA4E;IAEtG,OAAO,CAAC,MAAM,CAAC,CAAa;IAE5B,IAAI,KAAK,IAAI,UAAU,CAKtB;IAED,IAAI,KAAK,CAAC,KAAK,EAAC,UAAU,EAEzB;gBAEW,EAAE,KAAK,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,UAAU,CAAA;KAAO;IAI5C,uBAAuB,CAAC,EAC5B,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,MAAc,EACf,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAiChD,WAAW,CAAC,EAChB,MAAM,EACN,MAAM,EACN,OAAO,EACP,OAAO,EACP,QAAQ,EACR,MAAc,EACd,YAAmB,GACpB,EAAE,sBAAsB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IA2C3D;;;OAGG;YACW,oBAAoB;IAuC5B,aAAa,CAAC,EAClB,MAAM,EACN,MAAM,EACN,QAAQ,EACR,MAAc,EACf,EAAC,4BAA4B,GAAE,OAAO,CAAC,sBAAsB,EAAE,CAAC;IA+B3D,cAAc,CAAC,EACnB,MAAM,EACN,MAAM,EACN,aAAa,EACb,MAAc,EACf,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BpC,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAiDrE,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA8C3E,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAyCpF,KAAK,IAAG,OAAO,CAAC,IAAI,CAAC;IAI3B;;;;OAIG;WACU,mBAAmB,CAAC,CAAC,SAAS,YAAY,EACrD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,aAAa,EAAE;QACb,WAAW,EAAE,CAAC,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,EACD,MAAM,EAAE,oBAAoB,EAAE,EAC9B,SAAS,GAAE,OAAe,GACzB,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;IA6B5C,OAAO,CAAC,MAAM,CAAC,mBAAmB;IA+DlC,OAAO,CAAC,MAAM,CAAC,2BAA2B;CAG3C"}
1
+ {"version":3,"file":"permissions-api.d.ts","sourceRoot":"","sources":["../../src/permissions-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAOvS,OAAO,EAAE,YAAY,EAA4C,MAAM,gBAAgB,CAAC;AAExF,qBAAa,mBAAoB,YAAW,cAAc;IAExD,4GAA4G;IAC5G,OAAO,CAAC,kBAAkB,CAA4E;IAEtG,OAAO,CAAC,MAAM,CAAC,CAAa;IAE5B,IAAI,KAAK,IAAI,UAAU,CAKtB;IAED,IAAI,KAAK,CAAC,KAAK,EAAC,UAAU,EAEzB;gBAEW,EAAE,KAAK,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,UAAU,CAAA;KAAO;IAI5C,uBAAuB,CAAC,EAC5B,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,MAAc,EACf,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAiChD,WAAW,CAAC,EAChB,MAAM,EACN,MAAM,EACN,OAAO,EACP,OAAO,EACP,QAAQ,EACR,MAAc,EACd,YAAmB,GACpB,EAAE,sBAAsB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IA2C3D;;;OAGG;YACW,oBAAoB;IAuC5B,aAAa,CAAC,EAClB,MAAM,EACN,MAAM,EACN,QAAQ,EACR,MAAc,EACf,EAAC,4BAA4B,GAAE,OAAO,CAAC,sBAAsB,EAAE,CAAC;IA+B3D,cAAc,CAAC,EACnB,MAAM,EACN,MAAM,EACN,aAAa,EACb,MAAc,EACf,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BpC,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAwDrE,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA8C3E,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IA8CpF,KAAK,IAAG,OAAO,CAAC,IAAI,CAAC;IAI3B;;;;OAIG;WACU,mBAAmB,CAAC,CAAC,SAAS,YAAY,EACrD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,aAAa,EAAE;QACb,WAAW,EAAE,CAAC,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,EACD,MAAM,EAAE,oBAAoB,EAAE,EAC9B,SAAS,GAAE,OAAe,GACzB,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;IA6B5C,OAAO,CAAC,MAAM,CAAC,mBAAmB;IA+DlC,OAAO,CAAC,MAAM,CAAC,2BAA2B;CAG3C"}
@@ -1,7 +1,7 @@
1
1
  import type { AbstractLevel } from 'abstract-level';
2
2
  import type { GenericMessage } from '@enbox/dwn-sdk-js';
3
+ import type { DeadLetterCategory, DeadLetterEntry, StartSyncParams, SyncConnectivityState, SyncEngine, SyncEventListener, SyncHealthSummary, SyncIdentityOptions } from './types/sync.js';
3
4
  import type { EnboxPlatformAgent } from './types/agent.js';
4
- import type { StartSyncParams, SyncConnectivityState, SyncEngine, SyncEventListener, SyncIdentityOptions } from './types/sync.js';
5
5
  export type SyncEngineLevelParams = {
6
6
  agent?: EnboxPlatformAgent;
7
7
  dataPath?: string;
@@ -89,9 +89,18 @@ export declare class SyncEngineLevel implements SyncEngine {
89
89
  private static readonly MAX_CONSECUTIVE_FAILURES;
90
90
  /** Backoff multiplier for consecutive failures (caps at 4x the configured interval). */
91
91
  private static readonly MAX_BACKOFF_MULTIPLIER;
92
+ /**
93
+ * Bound browser event handlers so they can be added and removed.
94
+ * Set in `startBrowserConnectivityListeners`, cleared in `stopBrowserConnectivityListeners`.
95
+ */
96
+ private _onOnline?;
97
+ private _onOffline?;
98
+ private _onVisibilityChange?;
92
99
  constructor({ agent, dataPath, db }: SyncEngineLevelParams);
93
100
  /** Lazy accessor for the replication ledger. */
94
101
  private get ledger();
102
+ /** LevelDB sublevel for permanently failed messages (dead letters). */
103
+ private get _deadLetters();
95
104
  /**
96
105
  * Retrieves the `EnboxPlatformAgent` execution context.
97
106
  *
@@ -202,6 +211,15 @@ export declare class SyncEngineLevel implements SyncEngine {
202
211
  /**
203
212
  * Tears down all live subscriptions and push listeners.
204
213
  */
214
+ /**
215
+ * Registers browser `online`, `offline`, and `visibilitychange` event
216
+ * listeners to detect connectivity changes that WebSocket `close` events
217
+ * miss (NAT timeout, network switch, sleep/wake). Safe to call in Node —
218
+ * the guards skip registration when browser APIs are unavailable.
219
+ */
220
+ private startBrowserConnectivityListeners;
221
+ /** Removes browser connectivity listeners if they were registered. */
222
+ private stopBrowserConnectivityListeners;
205
223
  private teardownLiveSync;
206
224
  /**
207
225
  * Opens a MessagesSubscribe WebSocket subscription to a remote DWN.
@@ -383,6 +401,32 @@ export declare class SyncEngineLevel implements SyncEngine {
383
401
  static topologicalSort<T extends {
384
402
  message: GenericMessage;
385
403
  }>(messages: T[]): T[];
404
+ /**
405
+ * Clear dead letter entries scoped to a specific sync link. Matches on
406
+ * (tenantDid, remoteEndpoint, protocol) so that repairing protocol A
407
+ * does not erase still-valid failures for protocol B on the same remote.
408
+ * When `protocol` is undefined (full-tenant link), clears entries that
409
+ * also have no protocol.
410
+ */
411
+ private clearDeadLettersForLink;
412
+ /**
413
+ * Build a compound dead letter key. Different remotes can fail the same CID
414
+ * for different reasons, so the key includes the remote endpoint.
415
+ */
416
+ private static deadLetterKey;
417
+ recordDeadLetter(params: {
418
+ messageCid: string;
419
+ tenantDid: string;
420
+ remoteEndpoint?: string;
421
+ protocol?: string;
422
+ category: DeadLetterCategory;
423
+ errorCode?: string;
424
+ errorDetail: string;
425
+ }): Promise<void>;
426
+ getFailedMessages(tenantDid?: string): Promise<DeadLetterEntry[]>;
427
+ clearFailedMessage(messageCid: string, remoteEndpoint?: string): Promise<boolean>;
428
+ clearAllFailedMessages(tenantDid?: string): Promise<void>;
429
+ getSyncHealth(): Promise<SyncHealthSummary>;
386
430
  /**
387
431
  * Returns the list of sync targets: (did, dwnUrl, delegateDid?, protocol?) tuples.
388
432
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sync-engine-level.d.ts","sourceRoot":"","sources":["../../src/sync-engine-level.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-engine-level.d.ts","sourceRoot":"","sources":["../../src/sync-engine-level.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
+ import type { GenericMessage, MessagesSyncDiffEntry, UnionMessageReply } from '@enbox/dwn-sdk-js';
1
2
  import type { EnboxPlatformAgent } from './types/agent.js';
2
3
  import type { PermissionsApi } from './types/permissions.js';
3
4
  import type { PushResult } from './types/sync.js';
4
- import type { GenericMessage, MessagesSyncDiffEntry, UnionMessageReply } from '@enbox/dwn-sdk-js';
5
5
  /** Entry type for fetched messages with optional data stream and retry buffer. */
6
6
  export type SyncMessageEntry = {
7
7
  message: GenericMessage;
@@ -48,7 +48,7 @@ export declare function pullMessages({ did, dwnUrl, delegateDid, protocol, messa
48
48
  prefetched?: MessagesSyncDiffEntry[];
49
49
  agent: EnboxPlatformAgent;
50
50
  permissionsApi: PermissionsApi;
51
- }): Promise<void>;
51
+ }): Promise<string[]>;
52
52
  /**
53
53
  * Fetches messages from a remote DWN by their CIDs using MessagesRead.
54
54
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sync-messages.d.ts","sourceRoot":"","sources":["../../src/sync-messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-messages.d.ts","sourceRoot":"","sources":["../../src/sync-messages.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,11 @@ export type CreateGrantParams = {
41
41
  grantedTo: string;
42
42
  scope: DwnPermissionScope;
43
43
  delegated?: boolean;
44
+ /** Delegate key-delivery metadata for cross-device context key delivery. */
45
+ delegateKeyDelivery?: {
46
+ rootKeyId: string;
47
+ publicKeyJwk: Record<string, any>;
48
+ };
44
49
  };
45
50
  export type CreateRequestParams = {
46
51
  store?: boolean;
@@ -54,6 +59,10 @@ export type CreateRevocationParams = {
54
59
  author: string;
55
60
  grant: DwnPermissionGrant;
56
61
  description?: string;
62
+ /** For delegated revocation: the delegate DID that signs the revocation. */
63
+ granteeDid?: string;
64
+ /** For delegated revocation: the grant ID that authorizes the revocation write. */
65
+ permissionGrantId?: string;
57
66
  };
58
67
  export type GetPermissionParams = {
59
68
  connectedDid: string;
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../src/types/permissions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../src/types/permissions.ts"],"names":[],"mappings":"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"}
@@ -138,13 +138,19 @@ export type ReplicationLinkState = {
138
138
  * Result of a batch push operation. Replaces the previous throw-on-first-failure
139
139
  * pattern so callers can advance the push replication checkpoint incrementally.
140
140
  */
141
+ /** A permanently failed push entry with diagnostic info. */
142
+ export type PermanentPushFailure = {
143
+ cid: string;
144
+ statusCode: number;
145
+ detail: string;
146
+ };
141
147
  export type PushResult = {
142
148
  /** messageCids that were accepted (202/204/409 — idempotent success). */
143
149
  succeeded: string[];
144
150
  /** messageCids that failed with a transient error (5xx, network) — worth retrying. */
145
151
  failed: string[];
146
- /** messageCids that failed permanently (400/401/403) — will never succeed, do NOT retry. */
147
- permanentlyFailed: string[];
152
+ /** Messages that failed permanently (400/401/403) — will never succeed, do NOT retry. */
153
+ permanentlyFailed: PermanentPushFailure[];
148
154
  };
149
155
  /**
150
156
  * Parameters for {@link SyncEngine.startSync}.
@@ -241,6 +247,45 @@ export type SyncEvent = {
241
247
  reason: string;
242
248
  };
243
249
  export type SyncEventListener = (event: SyncEvent) => void;
250
+ /** Category of sync failure for dead letter entries. */
251
+ export type DeadLetterCategory = 'push-permanent' | 'push-exhausted' | 'pull-processing' | 'closure';
252
+ /** A message that permanently failed to sync. */
253
+ export type DeadLetterEntry = {
254
+ /** The message CID that failed. */
255
+ messageCid: string;
256
+ /** The tenant DID the message belongs to. */
257
+ tenantDid: string;
258
+ /** The remote DWN endpoint involved (for push failures). */
259
+ remoteEndpoint?: string;
260
+ /** The protocol URI, if applicable. */
261
+ protocol?: string;
262
+ /** What kind of failure occurred. */
263
+ category: DeadLetterCategory;
264
+ /** Machine-readable error code (e.g., HTTP status or ClosureFailureCode). */
265
+ errorCode?: string;
266
+ /** Human-readable error detail. */
267
+ errorDetail: string;
268
+ /** ISO-8601 timestamp of when the failure was recorded. */
269
+ failedAt: string;
270
+ };
271
+ /**
272
+ * Sync health summary returned by `getSyncHealth()`.
273
+ *
274
+ * `failedMessageCount` reflects messages that are currently failing — entries
275
+ * are auto-cleared when the same CID later succeeds via push or pull, so the
276
+ * count decreases as the engine self-heals through reconciliation and repair.
277
+ */
278
+ export type SyncHealthSummary = {
279
+ /** Current connectivity state. */
280
+ connectivity: SyncConnectivityState;
281
+ /**
282
+ * Number of messages currently in the dead letter store. Decreases as
283
+ * the engine self-heals — entries are auto-cleared on later success.
284
+ */
285
+ failedMessageCount: number;
286
+ /** Number of links currently in 'repairing' or 'degraded_poll' status. */
287
+ degradedLinkCount: number;
288
+ };
244
289
  export interface SyncEngine {
245
290
  /**
246
291
  * The agent that the SyncEngine is attached to.
@@ -309,5 +354,28 @@ export interface SyncEngine {
309
354
  * be reused.
310
355
  */
311
356
  close(): Promise<void>;
357
+ /**
358
+ * Returns messages that are currently failing to sync, optionally filtered
359
+ * by tenant. Entries are auto-cleared when the same CID later succeeds
360
+ * (via push or pull), so the list reflects current health — not historical
361
+ * incidents. Sorted newest-first by `failedAt`.
362
+ */
363
+ getFailedMessages(tenantDid?: string): Promise<DeadLetterEntry[]>;
364
+ /**
365
+ * Remove dead letter entries for a CID. When `remoteEndpoint` is provided,
366
+ * only the entry for that specific CID + remote pair is removed. Without
367
+ * it, all entries for the CID (across all remotes) are removed. Returns
368
+ * `true` if at least one entry was found and removed.
369
+ */
370
+ clearFailedMessage(messageCid: string, remoteEndpoint?: string): Promise<boolean>;
371
+ /**
372
+ * Clear all dead letter entries, optionally scoped to a tenant.
373
+ */
374
+ clearAllFailedMessages(tenantDid?: string): Promise<void>;
375
+ /**
376
+ * Returns a summary of sync health: connectivity, failed message count,
377
+ * and degraded link count.
378
+ */
379
+ getSyncHealth(): Promise<SyncHealthSummary>;
312
380
  }
313
381
  //# sourceMappingURL=sync.d.ts.map