sealbridge 0.4.2 → 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 (140) hide show
  1. package/README.ja.md +6 -4
  2. package/README.md +9 -4
  3. package/dist/cli/dist/accept.d.ts +2 -1
  4. package/dist/cli/dist/accept.js +18 -7
  5. package/dist/cli/dist/accept.js.map +1 -1
  6. package/dist/cli/dist/index.js +46 -13
  7. package/dist/cli/dist/index.js.map +1 -1
  8. package/dist/cli/dist/invite-links.d.ts +14 -0
  9. package/dist/cli/dist/invite-links.js +263 -0
  10. package/dist/cli/dist/invite-links.js.map +1 -0
  11. package/dist/cli/dist/invite-output.d.ts +1 -1
  12. package/dist/cli/dist/invite-output.js +3 -2
  13. package/dist/cli/dist/invite-output.js.map +1 -1
  14. package/dist/cli/dist/network.js +16 -23
  15. package/dist/cli/dist/network.js.map +1 -1
  16. package/dist/cli/dist/receipt.d.ts +12 -2
  17. package/dist/cli/dist/receipt.js +6 -5
  18. package/dist/cli/dist/receipt.js.map +1 -1
  19. package/dist/cli/dist/sdk.d.ts +6 -4
  20. package/dist/cli/dist/sdk.js +3 -2
  21. package/dist/cli/dist/sdk.js.map +1 -1
  22. package/dist/cli/dist/task-review.d.ts +1 -8
  23. package/dist/cli/dist/task-review.js +4 -17
  24. package/dist/cli/dist/task-review.js.map +1 -1
  25. package/dist/cli/dist/tasks.js +1 -1
  26. package/dist/cli/dist/tasks.js.map +1 -1
  27. package/dist/examples/two-owner-demo/dist/run-demo.js +3 -1
  28. package/dist/examples/two-owner-demo/dist/run-demo.js.map +1 -1
  29. package/dist/package.json +1 -1
  30. package/dist/packages/core/dist/content-inspection-rules.d.ts +22 -0
  31. package/dist/packages/core/dist/content-inspection-rules.js +34 -0
  32. package/dist/packages/core/dist/content-inspection-rules.js.map +1 -0
  33. package/dist/packages/core/dist/content-inspection.d.ts +43 -0
  34. package/dist/packages/core/dist/content-inspection.js +192 -0
  35. package/dist/packages/core/dist/content-inspection.js.map +1 -0
  36. package/dist/packages/core/dist/context-grant.d.ts +13 -0
  37. package/dist/packages/core/dist/context-grant.js +65 -0
  38. package/dist/packages/core/dist/context-grant.js.map +1 -0
  39. package/dist/packages/core/dist/delegation.d.ts +17 -0
  40. package/dist/packages/core/dist/delegation.js +126 -0
  41. package/dist/packages/core/dist/delegation.js.map +1 -0
  42. package/dist/packages/core/dist/edge.d.ts +2 -0
  43. package/dist/packages/core/dist/edge.js +2 -0
  44. package/dist/packages/core/dist/edge.js.map +1 -1
  45. package/dist/packages/core/dist/index.d.ts +6 -0
  46. package/dist/packages/core/dist/index.js +6 -0
  47. package/dist/packages/core/dist/index.js.map +1 -1
  48. package/dist/packages/core/dist/invite-link.d.ts +72 -0
  49. package/dist/packages/core/dist/invite-link.js +225 -0
  50. package/dist/packages/core/dist/invite-link.js.map +1 -0
  51. package/dist/packages/core/dist/invite-sas.d.ts +7 -0
  52. package/dist/packages/core/dist/invite-sas.js +15 -0
  53. package/dist/packages/core/dist/invite-sas.js.map +1 -0
  54. package/dist/packages/core/dist/relay-auth.d.ts +1 -1
  55. package/dist/packages/core/dist/relay-auth.js +1 -1
  56. package/dist/packages/core/dist/relay-auth.js.map +1 -1
  57. package/dist/packages/core/dist/schema.d.ts +1 -1
  58. package/dist/packages/core/dist/schema.js +4 -0
  59. package/dist/packages/core/dist/schema.js.map +1 -1
  60. package/dist/packages/core/dist/types.d.ts +52 -0
  61. package/dist/packages/ledger/dist/index.d.ts +70 -2
  62. package/dist/packages/ledger/dist/index.js +404 -26
  63. package/dist/packages/ledger/dist/index.js.map +1 -1
  64. package/dist/packages/relay/dist/fetch.js +4 -0
  65. package/dist/packages/relay/dist/fetch.js.map +1 -1
  66. package/dist/packages/relay/dist/invites.d.ts +42 -0
  67. package/dist/packages/relay/dist/invites.js +347 -0
  68. package/dist/packages/relay/dist/invites.js.map +1 -0
  69. package/dist/packages/relay/dist/worker.d.ts +3 -0
  70. package/dist/packages/relay/dist/worker.js +21 -0
  71. package/dist/packages/relay/dist/worker.js.map +1 -1
  72. package/dist/packages/runtime/dist/a2a.js +1 -1
  73. package/dist/packages/runtime/dist/adapter.d.ts +1 -0
  74. package/dist/packages/runtime/dist/application-config.js +69 -6
  75. package/dist/packages/runtime/dist/application-config.js.map +1 -1
  76. package/dist/packages/runtime/dist/approval-providers.d.ts +4 -0
  77. package/dist/packages/runtime/dist/approval-providers.js +3 -0
  78. package/dist/packages/runtime/dist/approval-providers.js.map +1 -1
  79. package/dist/packages/runtime/dist/connection-persistence.d.ts +1 -1
  80. package/dist/packages/runtime/dist/context-grant-audit.d.ts +8 -0
  81. package/dist/packages/runtime/dist/context-grant-audit.js +41 -0
  82. package/dist/packages/runtime/dist/context-grant-audit.js.map +1 -0
  83. package/dist/packages/runtime/dist/delegation.d.ts +37 -0
  84. package/dist/packages/runtime/dist/delegation.js +125 -0
  85. package/dist/packages/runtime/dist/delegation.js.map +1 -0
  86. package/dist/packages/runtime/dist/gateway.d.ts +1 -0
  87. package/dist/packages/runtime/dist/gateway.js.map +1 -1
  88. package/dist/packages/runtime/dist/held-request-store.d.ts +2 -0
  89. package/dist/packages/runtime/dist/held-request-store.js +3 -2
  90. package/dist/packages/runtime/dist/held-request-store.js.map +1 -1
  91. package/dist/packages/runtime/dist/held-task-content.d.ts +14 -0
  92. package/dist/packages/runtime/dist/held-task-content.js +33 -0
  93. package/dist/packages/runtime/dist/held-task-content.js.map +1 -0
  94. package/dist/packages/runtime/dist/index.d.ts +4 -0
  95. package/dist/packages/runtime/dist/index.js +4 -0
  96. package/dist/packages/runtime/dist/index.js.map +1 -1
  97. package/dist/packages/runtime/dist/mcp-server.js +22 -8
  98. package/dist/packages/runtime/dist/mcp-server.js.map +1 -1
  99. package/dist/packages/runtime/dist/mcp-tool-catalog.js +44 -5
  100. package/dist/packages/runtime/dist/mcp-tool-catalog.js.map +1 -1
  101. package/dist/packages/runtime/dist/rule-content-review-child.d.ts +1 -0
  102. package/dist/packages/runtime/dist/rule-content-review-child.js +25 -0
  103. package/dist/packages/runtime/dist/rule-content-review-child.js.map +1 -0
  104. package/dist/packages/runtime/dist/rule-content-review.d.ts +9 -0
  105. package/dist/packages/runtime/dist/rule-content-review.js +217 -0
  106. package/dist/packages/runtime/dist/rule-content-review.js.map +1 -0
  107. package/dist/packages/runtime/dist/session-audit.d.ts +6 -1
  108. package/dist/packages/runtime/dist/session-audit.js +35 -4
  109. package/dist/packages/runtime/dist/session-audit.js.map +1 -1
  110. package/dist/packages/runtime/dist/session.d.ts +21 -1
  111. package/dist/packages/runtime/dist/session.js +429 -63
  112. package/dist/packages/runtime/dist/session.js.map +1 -1
  113. package/dist/packages/runtime/dist/task-journal.d.ts +10 -1
  114. package/dist/packages/runtime/dist/task-journal.js +26 -1
  115. package/dist/packages/runtime/dist/task-journal.js.map +1 -1
  116. package/dist/packages/runtime/dist/verifier.d.ts +5 -2
  117. package/dist/packages/runtime/dist/verifier.js +14 -4
  118. package/dist/packages/runtime/dist/verifier.js.map +1 -1
  119. package/dist/spec/audit-entry.schema.json +25 -1
  120. package/dist/spec/audit-evidence.schema.json +179 -0
  121. package/dist/spec/audit-file-record.schema.json +177 -0
  122. package/dist/spec/audit-interruption.schema.json +110 -0
  123. package/dist/spec/context-grant-audit-payload.schema.json +24 -0
  124. package/dist/spec/context-grant.schema.json +146 -0
  125. package/dist/spec/delegation-attachment.schema.json +167 -0
  126. package/dist/spec/delegation-link.schema.json +141 -0
  127. package/dist/spec/examples/context-pooling/approval_redelegation/sample-delegation-attachment.json +413 -0
  128. package/dist/spec/examples/context-pooling/hand_over/sample-context-grant.json +18 -0
  129. package/dist/spec/examples/context-pooling/hand_over/sample-task-manifest.0.2.0.json +94 -0
  130. package/dist/spec/examples/context-pooling/sample-context-grant-audit-payload.json +4 -0
  131. package/dist/spec/examples/context-pooling/view_only/sample-context-grant.json +18 -0
  132. package/dist/spec/examples/context-pooling/view_only/sample-task-manifest.0.2.0.json +94 -0
  133. package/dist/spec/examples/sample-audit-evidence.json +138 -0
  134. package/dist/spec/examples/sample-audit-file-record.json +31 -0
  135. package/dist/spec/examples/sample-audit-interruption.json +29 -0
  136. package/dist/spec/task-manifest.0.2.0.schema.json +87 -1
  137. package/docs/context-grants.md +221 -0
  138. package/docs/sdk.ja.md +108 -2
  139. package/docs/sdk.md +120 -2
  140. package/package.json +3 -2
@@ -0,0 +1,217 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ import { spawn } from 'node:child_process';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { tmpdir } from 'node:os';
5
+ import { sanitizedEnvironment, terminateSubprocess } from '../../sandbox/dist/index.js';
6
+ import { CONTENT_INSPECTION_LIMITS, CONTENT_INSPECTION_RULES, CONTENT_INSPECTION_RULESET_DIGEST, CONTENT_INSPECTION_RULESET_VERSION, digest, openEnvelope, validateManifest, verifyEnvelope, verifySigned } from '../../core/dist/index.js';
7
+ import { heldContentDigest } from './held-request-review.js';
8
+ const MAX_RESULT_BYTES = 64 * 1024;
9
+ // Works both from source (after build) and in the packaged dist tree. Never run task-supplied code.
10
+ const childEntry = fileURLToPath(new URL('../dist/rule-content-review-child.js', import.meta.url));
11
+ function project(envelope, context) {
12
+ if (!verifyEnvelope(envelope, context.owner.did) || digest(envelope) !== context.envelopeDigest ||
13
+ envelope.payload.eventType !== 'PROPOSE' || envelope.payload.seq !== 0)
14
+ throw new Error('INVALID_CONTENT');
15
+ const body = openEnvelope(envelope, context.owner);
16
+ if (!body || typeof body !== 'object' || Array.isArray(body) || !Object.hasOwn(body, 'input'))
17
+ throw new Error('INVALID_CONTENT');
18
+ const manifest = body.proposal?.payload;
19
+ validateManifest(manifest);
20
+ if (manifest.taskId !== envelope.payload.taskId || manifest.worker?.ownerDid !== context.owner.did ||
21
+ manifest.requester.ownerDid !== envelope.payload.senderDid || !verifySigned(body.proposal, manifest.requester.ownerDid) ||
22
+ heldContentDigest('task', body) !== context.contentDigest ||
23
+ digest({ manifest, input: body.input }) !== context.contentDigest)
24
+ throw new Error('INVALID_CONTENT');
25
+ return { manifest, input: body.input, capabilityChains: body.capabilityChains ?? [] };
26
+ }
27
+ function validReport(value, contentDigest, limits) {
28
+ if (!value || typeof value !== 'object')
29
+ return false;
30
+ const report = value;
31
+ if (Object.keys(report).sort().join() !== ['inspectorId', 'inspectorVersion', 'rulesetDigest', 'contentDigest', 'sizeBytes', 'limits', 'status', 'verdict', 'findings', 'diagnostics'].sort().join() ||
32
+ report.inspectorId !== 'rules' || report.inspectorVersion !== CONTENT_INSPECTION_RULESET_VERSION ||
33
+ report.rulesetDigest !== CONTENT_INSPECTION_RULESET_DIGEST || digest(report.limits) !== digest(limits) ||
34
+ !Number.isSafeInteger(report.sizeBytes) || report.sizeBytes < 0 ||
35
+ !['ok', 'error'].includes(report.status) || !Array.isArray(report.findings) || report.findings.length > limits.maxFindings ||
36
+ !Array.isArray(report.diagnostics))
37
+ return false;
38
+ if (report.status === 'ok' && (report.contentDigest !== contentDigest || report.sizeBytes > limits.maxBytes || report.diagnostics.length))
39
+ return false;
40
+ if (report.status === 'error' && (report.verdict !== 'error' || report.diagnostics.length !== 1))
41
+ return false;
42
+ for (const diagnostic of report.diagnostics) {
43
+ if (!diagnostic || Object.keys(diagnostic).join() !== 'code' ||
44
+ !['LIMIT_EXCEEDED', 'ABORTED', 'INVALID_CONTENT', 'INSPECTOR_FAILED'].includes(diagnostic.code))
45
+ return false;
46
+ }
47
+ for (const finding of report.findings) {
48
+ const rule = CONTENT_INSPECTION_RULES.find(rule => rule.id === finding?.ruleId);
49
+ if (!rule || finding.kind !== rule.kind || finding.severity !== rule.severity || finding.noteCode !== rule.noteCode ||
50
+ Object.keys(finding).some(key => !['ruleId', 'kind', 'severity', 'noteCode', 'location'].includes(key)))
51
+ return false;
52
+ if (finding.location !== undefined) {
53
+ const location = finding.location;
54
+ if (!location || Object.keys(location).some(key => !['path', 'start', 'end'].includes(key)) ||
55
+ typeof location.path !== 'string' || location.path.length > 4096 || (location.path !== '' && !location.path.startsWith('/') || /~(?![01])/u.test(location.path)) ||
56
+ /[\p{C}]/u.test(location.path) ||
57
+ (location.start !== undefined && (!Number.isSafeInteger(location.start) || location.start < 0 ||
58
+ !Number.isSafeInteger(location.end) || location.end < location.start || location.end > limits.maxStringLength)) ||
59
+ (location.start === undefined && location.end !== undefined))
60
+ return false;
61
+ }
62
+ }
63
+ const verdict = report.findings.some(f => f.severity === 'block') ? 'block' : report.findings.some(f => f.severity === 'warn') ? 'warn' : 'pass';
64
+ return report.status === 'error' || report.verdict === verdict;
65
+ }
66
+ /** Opt-in task inspector. Completion is review material; owner opening stays on the live admission path. */
67
+ export function createRuleBasedContentReviewProvider(options = {}) {
68
+ const timeoutMs = options.timeoutMs ?? 5000;
69
+ if (!Number.isInteger(timeoutMs) || timeoutMs < 1 || timeoutMs > 45_000)
70
+ throw new Error('INVALID_INSPECTION_OPTIONS');
71
+ const limits = { ...CONTENT_INSPECTION_LIMITS, ...options.limits };
72
+ for (const key of Object.keys(limits)) {
73
+ if (!Object.hasOwn(CONTENT_INSPECTION_LIMITS, key) || !Number.isSafeInteger(limits[key]) ||
74
+ limits[key] < 1 || limits[key] > CONTENT_INSPECTION_LIMITS[key])
75
+ throw new Error('INVALID_INSPECTION_OPTIONS');
76
+ }
77
+ const onReport = options.onReport;
78
+ return { async inspect(envelope, context, signal) {
79
+ const completion = { ownerDid: context.owner.did, kind: context.kind, contentDigest: context.contentDigest,
80
+ envelopeDigest: context.envelopeDigest };
81
+ if (context.kind !== 'task')
82
+ return { ...completion, status: 'unavailable' };
83
+ const started = performance.now();
84
+ let report;
85
+ const errorReport = (code) => ({
86
+ inspectorId: 'rules', inspectorVersion: CONTENT_INSPECTION_RULESET_VERSION, rulesetDigest: CONTENT_INSPECTION_RULESET_DIGEST,
87
+ contentDigest: context.contentDigest, sizeBytes: 0, limits: { ...limits }, status: 'error', verdict: 'error', findings: [], diagnostics: [{ code }],
88
+ });
89
+ try {
90
+ if (signal.aborted)
91
+ throw 'ABORTED';
92
+ let content;
93
+ try {
94
+ content = project(envelope, context);
95
+ }
96
+ catch {
97
+ throw 'INVALID_CONTENT';
98
+ }
99
+ if (signal.aborted)
100
+ throw 'ABORTED';
101
+ const remaining = timeoutMs - (performance.now() - started);
102
+ if (remaining <= 0)
103
+ throw 'TIMEOUT';
104
+ report = await new Promise((resolve, reject) => {
105
+ const directory = tmpdir();
106
+ const env = sanitizedEnvironment(directory);
107
+ // Electron's executable needs Node mode to run the fixed inspector entry.
108
+ if (process.versions.electron)
109
+ env.ELECTRON_RUN_AS_NODE = '1';
110
+ const child = spawn(process.execPath, ['--no-addons', '--disable-proto=throw', '--max-old-space-size=64', childEntry], {
111
+ cwd: directory, env, stdio: ['ignore', 'ignore', 'pipe', 'ipc'], windowsHide: true,
112
+ });
113
+ let done = false;
114
+ let childReport;
115
+ const finish = (code, result) => {
116
+ if (done)
117
+ return;
118
+ done = true;
119
+ clearTimeout(timer);
120
+ signal.removeEventListener('abort', abort);
121
+ terminateSubprocess(child);
122
+ if (code)
123
+ reject(code);
124
+ else
125
+ resolve(result);
126
+ };
127
+ const abort = () => finish('ABORTED');
128
+ const timer = setTimeout(() => finish('TIMEOUT'), remaining);
129
+ signal.addEventListener('abort', abort, { once: true });
130
+ child.once('error', () => finish('INSPECTOR_FAILED'));
131
+ child.stderr?.on('error', () => finish('INSPECTOR_FAILED'));
132
+ // Never retain or relay child stderr, including native parser/error text.
133
+ child.stderr?.on('data', () => finish('INSPECTOR_FAILED'));
134
+ child.on('message', (message) => {
135
+ if (done)
136
+ return;
137
+ if (typeof message !== 'string')
138
+ return finish('INSPECTOR_FAILED');
139
+ if (Buffer.byteLength(message) > MAX_RESULT_BYTES)
140
+ return finish('LIMIT_EXCEEDED');
141
+ try {
142
+ const result = JSON.parse(message);
143
+ if (childReport || !validReport(result, context.contentDigest, limits))
144
+ return finish('INSPECTOR_FAILED');
145
+ // Even an early bound failure is attached to the authenticated parent digest.
146
+ childReport = { ...result, contentDigest: context.contentDigest };
147
+ }
148
+ catch {
149
+ finish('INSPECTOR_FAILED');
150
+ }
151
+ });
152
+ child.once('close', code => {
153
+ if (done)
154
+ return;
155
+ if (code !== 0 || !childReport)
156
+ return finish('INSPECTOR_FAILED');
157
+ finish(undefined, childReport);
158
+ });
159
+ if (signal.aborted)
160
+ abort();
161
+ if (!done) {
162
+ try {
163
+ const request = JSON.stringify({ content, limits });
164
+ if (Buffer.byteLength(request) > 256 * 1024 + 4096)
165
+ finish('LIMIT_EXCEEDED');
166
+ else
167
+ child.send(request, error => { if (error)
168
+ finish('INSPECTOR_FAILED'); });
169
+ }
170
+ catch {
171
+ finish('INSPECTOR_FAILED');
172
+ }
173
+ }
174
+ });
175
+ }
176
+ catch (code) {
177
+ report = errorReport(['ABORTED', 'TIMEOUT', 'INVALID_CONTENT', 'LIMIT_EXCEEDED'].includes(code)
178
+ ? code : 'INSPECTOR_FAILED');
179
+ }
180
+ if (signal.aborted)
181
+ report = errorReport('ABORTED');
182
+ if (performance.now() - started >= timeoutMs)
183
+ report = errorReport('TIMEOUT');
184
+ // Bind before calling host code, which receives an independent mutable copy.
185
+ const reportDigest = digest({ recordId: context.recordId, ownerDid: context.owner.did,
186
+ kind: context.kind, contentDigest: context.contentDigest, envelopeDigest: context.envelopeDigest, report });
187
+ let callbackTimer;
188
+ let callbackAbort;
189
+ try {
190
+ if (onReport)
191
+ await Promise.race([
192
+ Promise.resolve().then(() => {
193
+ return onReport(context.recordId, structuredClone(signal.aborted ? errorReport('ABORTED') : report));
194
+ }),
195
+ new Promise((_resolve, reject) => {
196
+ callbackAbort = () => reject(new Error('ABORTED'));
197
+ signal.addEventListener('abort', callbackAbort, { once: true });
198
+ callbackTimer = setTimeout(() => reject(new Error('TIMEOUT')), Math.max(1, timeoutMs - (performance.now() - started)));
199
+ if (signal.aborted)
200
+ callbackAbort();
201
+ }),
202
+ ]);
203
+ }
204
+ catch {
205
+ return { ...completion, status: 'error' };
206
+ }
207
+ finally {
208
+ clearTimeout(callbackTimer);
209
+ if (callbackAbort)
210
+ signal.removeEventListener('abort', callbackAbort);
211
+ }
212
+ if (signal.aborted || performance.now() - started >= timeoutMs)
213
+ return { ...completion, status: 'error' };
214
+ return { ...completion, status: report.status === 'ok' ? 'complete' : 'error', reportDigest };
215
+ } };
216
+ }
217
+ //# sourceMappingURL=rule-content-review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-content-review.js","sourceRoot":"","sources":["../src/rule-content-review.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { ContextGrant, ContextGrantAuditEventType } from '../../core/dist/index.js';
1
2
  import type { Json, KeyPair, Signed, SignedEnvelope, Transition } from '../../core/dist/index.js';
2
3
  import type { AuditBundle, AuditEntry } from '../../ledger/dist/index.js';
3
4
  import type { RelayConnectionStatus } from '../../relay/dist/index.js';
@@ -53,6 +54,7 @@ export declare class SessionWire {
53
54
  /** Worker admission may await inspection before seeding the initial PROPOSE. */
54
55
  private awaitingInitial;
55
56
  readonly delivery?: WireDelivery | undefined;
57
+ readonly contextGrant?: ContextGrant | undefined;
56
58
  private outgoing;
57
59
  private incoming;
58
60
  private readonly recoveryParts;
@@ -88,9 +90,11 @@ export declare class SessionWire {
88
90
  /** Legacy in-memory fixtures may open cleartext. Network sessions leave this false. */
89
91
  allowUnencryptedEnvelopes?: boolean,
90
92
  /** Worker admission may await inspection before seeding the initial PROPOSE. */
91
- awaitingInitial?: boolean, delivery?: WireDelivery | undefined);
93
+ awaitingInitial?: boolean, delivery?: WireDelivery | undefined, contextGrant?: ContextGrant | undefined);
92
94
  get cancellationStarted(): boolean;
93
95
  close(): void;
96
+ /** Freeze audit mutation before a local terminal decision, including already-resolved ACKs. */
97
+ quiesceAudit(): Promise<AuditEntry[]>;
94
98
  /** Liveness is signed/encrypted but does not consume audit sequence numbers or extend quota. */
95
99
  heartbeat(): Promise<void>;
96
100
  /** Keep reading after the caller aborts the session signal, so CANCEL can still be sealed. */
@@ -119,6 +123,7 @@ export declare class SessionWire {
119
123
  private acknowledgeControl;
120
124
  private recordPeer;
121
125
  sendEvent(eventType: string, payload: unknown): Promise<void>;
126
+ contextEvent(eventType: ContextGrantAuditEventType): Promise<void>;
122
127
  private transmit;
123
128
  receiveEvent(eventType: string | string[], initial?: SignedEnvelope): Promise<SignedEnvelope>;
124
129
  private sendCancel;
@@ -1,5 +1,6 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- import { digest, openEnvelope, signAck, signEnvelope, signPayload, validateSchema, verifyEnvelope, verifySigned, verifySignature, } from '../../core/dist/index.js';
2
+ import { digest, openEnvelope, signAck, signEnvelope, signPayload, validateSchema, verifyEnvelope, verifySigned, verifySignature, contextGrantAuditPayload, } from '../../core/dist/index.js';
3
+ import { appendContextGrantAuditEvent, CONTEXT_GRANT_AUDIT_EVENTS, contextSessionAuditPayload } from './context-grant-audit.js';
3
4
  import { JsonlStore, verifyAudit } from '../../ledger/dist/index.js';
4
5
  import { RelayEnvelopeExpiredError, isTransientRelayError, relayRetryDelay, waitForRelayRetry, relayDeadline } from '../../relay/dist/index.js';
5
6
  import { deliveryError } from './delivery-records.js';
@@ -99,6 +100,7 @@ export class SessionWire {
99
100
  allowUnencryptedEnvelopes;
100
101
  awaitingInitial;
101
102
  delivery;
103
+ contextGrant;
102
104
  outgoing = 0;
103
105
  incoming = 0;
104
106
  recoveryParts = new Map();
@@ -134,7 +136,7 @@ export class SessionWire {
134
136
  /** Legacy in-memory fixtures may open cleartext. Network sessions leave this false. */
135
137
  allowUnencryptedEnvelopes = false,
136
138
  /** Worker admission may await inspection before seeding the initial PROPOSE. */
137
- awaitingInitial = false, delivery) {
139
+ awaitingInitial = false, delivery, contextGrant) {
138
140
  this.relay = relay;
139
141
  this.owner = owner;
140
142
  this.peerDid = peerDid;
@@ -145,6 +147,7 @@ export class SessionWire {
145
147
  this.allowUnencryptedEnvelopes = allowUnencryptedEnvelopes;
146
148
  this.awaitingInitial = awaitingInitial;
147
149
  this.delivery = delivery;
150
+ this.contextGrant = contextGrant;
148
151
  if (!this.awaitingInitial) {
149
152
  this.startPump();
150
153
  void this.dispatch();
@@ -163,6 +166,12 @@ export class SessionWire {
163
166
  for (const wake of this.waiterAdded.splice(0))
164
167
  wake();
165
168
  }
169
+ /** Freeze audit mutation before a local terminal decision, including already-resolved ACKs. */
170
+ async quiesceAudit() {
171
+ this.close();
172
+ await Promise.all([this.sendTail, this.deliveryTail.catch(() => { })]);
173
+ return structuredClone(this.entries);
174
+ }
166
175
  /** Liveness is signed/encrypted but does not consume audit sequence numbers or extend quota. */
167
176
  async heartbeat() {
168
177
  await this.relay.send(signEnvelope({ taskId: this.taskId, recipientDid: this.peerDid,
@@ -283,6 +292,13 @@ export class SessionWire {
283
292
  for (;;) {
284
293
  const envelope = await this.nextEnvelope();
285
294
  const type = envelope.payload.eventType;
295
+ if (CONTEXT_GRANT_AUDIT_EVENTS.includes(type)) {
296
+ validateSchema('context-grant-audit-payload', envelope.payload.payload);
297
+ if (!this.contextGrant || digest(envelope.payload.payload) !== digest(contextGrantAuditPayload(this.contextGrant)))
298
+ throw new Error('CONTEXT_GRANT_AUDIT_CONFLICT');
299
+ await this.acknowledgeControl(envelope);
300
+ continue;
301
+ }
286
302
  if (type === 'HEARTBEAT') {
287
303
  const sentAt = envelope.payload.payload.sentAt;
288
304
  if (typeof sentAt !== 'number' || !Number.isSafeInteger(sentAt) || sentAt > Date.now() + 5000)
@@ -385,6 +401,8 @@ export class SessionWire {
385
401
  return run;
386
402
  }
387
403
  async dispatchBatch(envelopes) {
404
+ if (this.stopped)
405
+ throw new Error('SESSION_CLOSED');
388
406
  const signal = this.detached ? this.readController.signal : this.signal;
389
407
  signal.throwIfAborted();
390
408
  if (this.delivery) {
@@ -493,6 +511,8 @@ export class SessionWire {
493
511
  return envelope;
494
512
  }
495
513
  async rawReceive(expected, initial) {
514
+ if (this.stopped)
515
+ throw new Error('SESSION_CLOSED');
496
516
  if (initial) {
497
517
  const envelope = this.acceptInitial(expected, initial);
498
518
  if (this.awaitingInitial) {
@@ -515,10 +535,12 @@ export class SessionWire {
515
535
  return envelope;
516
536
  }
517
537
  append(entry) {
538
+ if (this.stopped)
539
+ throw new Error('SESSION_CLOSED');
518
540
  validateSchema('audit-entry', entry);
519
- this.entries.push(entry);
520
541
  if (this.auditPath)
521
542
  new JsonlStore(this.auditPath).append(entry);
543
+ this.entries.push(entry);
522
544
  }
523
545
  body(eventType, payload, actorDid, receiverDid) {
524
546
  return {
@@ -528,7 +550,7 @@ export class SessionWire {
528
550
  actorDid,
529
551
  receiverDid,
530
552
  eventType,
531
- payload,
553
+ payload: this.contextGrant ? contextSessionAuditPayload(eventType, payload, this.contextGrant) : payload,
532
554
  };
533
555
  }
534
556
  async acknowledgeControl(event) {
@@ -570,7 +592,14 @@ export class SessionWire {
570
592
  this.sendTail = run.then(() => undefined, () => undefined);
571
593
  return run;
572
594
  }
595
+ async contextEvent(eventType) {
596
+ if (!this.contextGrant)
597
+ return;
598
+ await appendContextGrantAuditEvent((type, payload) => this.sendEvent(type, payload), eventType, this.contextGrant);
599
+ }
573
600
  async transmit(eventType, payload) {
601
+ if (this.stopped)
602
+ throw new Error('SESSION_CLOSED');
574
603
  const data = asJson(payload), body = this.body(eventType, data, this.owner.did, this.peerDid), draft = signPayload(body, this.owner);
575
604
  await this.dispatchPrepared([this.prepare(eventType, data), this.prepare('AUDIT_ENTRY', draft)]);
576
605
  const ackFrame = await this.rawReceive('AUDIT_ACK');
@@ -609,6 +638,8 @@ export class SessionWire {
609
638
  };
610
639
  }
611
640
  seal(checkpoint) {
641
+ if (this.stopped)
642
+ throw new Error('SESSION_CLOSED');
612
643
  const bundle = { entries: this.entries, checkpoint };
613
644
  if (!verifyAudit(bundle, { taskId: this.taskId, actors: this.actors }).valid)
614
645
  throw new Error('INVALID_BILATERAL_AUDIT');
@@ -1 +1 @@
1
- {"version":3,"file":"session-audit.js","sourceRoot":"","sources":["../src/session-audit.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EACL,MAAM,EACN,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,WAAW,EACX,cAAc,EACd,cAAc,EACd,YAAY,EACZ,eAAe,GAChB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,eAAe,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAMjI,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAKtD,wFAAwF;AACxF,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACjC,IAAI,CAAU;IACd,SAAS,CAAS;IAClB,SAAS,CAAU;IACnB,iBAAiB,CAAU;IAC3B,cAAc,CAAU;IACxB,QAAQ,CAAU;IAClB,MAAM,CAAe;IACrB,QAAQ,CAC+D;IAChF,YAAY,IAAU;QACpB,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ;YAChH,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7D,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;gBAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACzD,IAAI,IAAI,CAAC,IAAI,KAAK,wBAAwB;gBAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/B,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACpE,OAAO,QAAQ,CAAC,cAAc,KAAK,QAAQ;gBAC7C,IAAI,CAAC,QAAQ,GAAG,QAAiE,CAAC;YACpF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC9D,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;gBACnE,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACpF,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBAClF,IAAI,CAAC,MAAM,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAC/G,CAAC;IACH,CAAC;CACF;AACD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAU,EAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAS,CAAC;AAClF,MAAM,KAAK,GAAG,CAAC,MAAoB,EAAE,EAAE,CACrC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IACpC,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;QAC5B,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC5C,OAAO,EAAE,CAAC;IACZ,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,IAAI,MAAM,EAAE,OAAO;QAAE,KAAK,EAAE,CAAC;AAC/B,CAAC,CAAC,CAAC;AACL,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAAqB,EACrB,GAAW,EACX,MAAoB,EACpB,MAA2B,EAC3B,QAAkD,EAClD,MAAkD;IAElD,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,EAAE,cAAc,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC,CAAC;YAChH,QAAQ,EAAE,CAAC,WAAW,CAAC,CAAC;YACxB,OAAO,GAAG,CAAC,CAAC;YACZ,IAAI,CAAC;gBAAE,OAAO,CAAC,CAAC;YAChB,MAAM,OAAO,GAAG,MAAM,MAAM,EAAE,EAAE,CAAC;YACjC,IAAI,OAAO;gBAAE,OAAO,OAAO,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,MAAM,EAAE,OAAO;gBAAE,MAAM,MAAM,CAAC,MAAM,IAAI,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACzE,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,CAAC;gBAAC,MAAM,KAAK,CAAC;YAAC,CAAC;YAC9E,QAAQ,EAAE,CAAC,cAAc,CAAC,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,mBAAmB,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,iBAAiB,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;YAC5D,SAAS;QACX,CAAC;QACD,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AACD,2FAA2F;AAC3F,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAqB,EAAE,QAAwB,EAAE,MAAoB;IAC1G,IAAI,CAAC;QAAC,MAAM,KAAK,CAAC,mBAAmB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAAC,CAAC;IAC9G,OAAO,KAAK,EAAE,CAAC;QAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;YAAE,MAAM,KAAK,CAAC;IAAC,CAAC;AACnE,CAAC;AAWD,oFAAoF;AACpF,MAAM,OAAO,WAAW;IAiCX;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IAED;IACC;IA3CH,QAAQ,GAAG,CAAC,CAAC;IACb,QAAQ,GAAG,CAAC,CAAC;IACJ,aAAa,GAAG,IAAI,GAAG,EAA+B,CAAC;IACxE,+FAA+F;IAC9E,YAAY,GAAG,IAAI,OAAO,EAAkC,CAAC;IAC7D,KAAK,GAAqB,EAAE,CAAC;IAC7B,YAAY,GAAsB,EAAE,CAAC;IACrC,OAAO,GAAqB,EAAE,CAAC;IAC/B,OAAO,GAAqB,EAAE,CAAC;IAC/B,WAAW,GAAsB,EAAE,CAAC;IACpC,eAAe,GAAsB,EAAE,CAAC;IACjD,SAAS,CAAS;IAClB,OAAO,GAAG,KAAK,CAAC;IAChB,WAAW,GAAG,KAAK,CAAC;IACpB,QAAQ,GAAG,KAAK,CAAC;IACjB,OAAO,GAAG,KAAK,CAAC;IACP,cAAc,GAAG,IAAI,eAAe,EAAE,CAAC;IAChD,aAAa,GAAG,CAAC,CAAC;IAClB,YAAY,CAAiB;IACrC,4EAA4E;IACpE,QAAQ,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAC5C,YAAY,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IACvC,WAAW,GAAG,IAAI,GAAG,EAA0B,CAAC;IACjE,gBAAgB,GAAG,KAAK,CAAC;IAChB,OAAO,GAAiB,EAAE,CAAC;IACpC,UAAU,CAAiF;IAC3F,UAAU,CAAc;IACxB,mEAAmE;IACnE,WAAW,CAAc;IACzB,UAAU,CAAkB;IAC5B,aAAa,GAAG,KAAK,CAAC;IACtB,YACW,KAAqB,EACrB,KAAc,EACd,OAAe,EACf,MAAc,EACd,MAAwB,EACxB,MAAmB,EACnB,SAAkB;IAC3B,uFAAuF;IAC9E,4BAA4B,KAAK;IAC1C,gFAAgF;IACxE,kBAAkB,KAAK,EACtB,QAAuB;QAXvB,UAAK,GAAL,KAAK,CAAgB;QACrB,UAAK,GAAL,KAAK,CAAS;QACd,YAAO,GAAP,OAAO,CAAQ;QACf,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAkB;QACxB,WAAM,GAAN,MAAM,CAAa;QACnB,cAAS,GAAT,SAAS,CAAS;QAElB,8BAAyB,GAAzB,yBAAyB,CAAQ;QAElC,oBAAe,GAAf,eAAe,CAAQ;QACtB,aAAQ,GAAR,QAAQ,CAAe;QAEhC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;QAAC,CAAC;IACxE,CAAC;IACD,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC;IACzC,CAAC;IACD,KAAK;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,KAAK,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC/C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;YAAE,IAAI,EAAE,CAAC;QACvD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;YAAE,IAAI,EAAE,CAAC;IACxD,CAAC;IACD,gGAAgG;IAChG,KAAK,CAAC,SAAS;QACb,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,OAAO;YAClF,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACvG,CAAC;IACD,8FAA8F;IAC9F,YAAY;QACV,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,SAAS,EAAE,CAAC;IACtC,CAAC;IACD,aAAa,CAAC,OAAoB;QAChC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO;gBAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;YAC1E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IACD,sBAAsB;QACpB,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACtE,CAAC;IACO,SAAS;QACf,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;IACO,KAAK,CAAC,OAAO;QACnB,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;oBAAE,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBACpG,MAAM,QAAQ,GAAG,MAAM,YAAY,CACjC,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,KAAK,CAAC,GAAG,EACd,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CACvF,CAAC;gBACF,IAAI,QAAQ,CAAC,OAAO,CAAC,SAAS,KAAK,iBAAiB,EAAE,CAAC;oBACrD,IAAI,CAAC;wBACH,IAAI,IAAI,CAAC,QAAQ;4BAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;;4BACnF,MAAM,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;oBACpD,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAc,CAAC,CAAC;oBAAC,CAAC;oBAC7E,SAAS;gBACX,CAAC;gBACD,IAAI,QAAQ,CAAC,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO;oBACxF,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC1B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC;YAChC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7E,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IACO,KAAK;QACX,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,MAAM;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,GAAG,EAAE;gBAChB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChC,IAAI,IAAI;oBAAE,OAAO,CAAC,IAAI,CAAC,CAAC;qBACnB,IAAI,IAAI,CAAC,SAAS;oBAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;oBAC3C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC,CAAC;YACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IACO,KAAK,CAAC,YAAY;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QACxB,SAAS,CAAC;YACR,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACzF,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,MAAM,CAAC,OAAO,CAAC,SAAS;oBACxI,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC;oBAAE,MAAM,aAAa,CAAC,0BAA0B,CAAC,CAAC;gBAC/H,IAAI,OAAO,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;oBAClC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC5D,IAAI,GAAG,EAAE,CAAC;wBAAC,IAAI,CAAC;4BAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBAAC,CAAC;wBAAC,MAAM,CAAC,CAAC,wCAAwC,CAAC,CAAC;oBAAC,CAAC;oBACnG,MAAM,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;oBACxD,SAAS;gBACX,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACO,aAAa,CAAC,KAAY;QAChC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;IACO,KAAK,CAAC,QAAQ;QACpB,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC;YACH,SAAS,CAAC;gBACR,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC;gBACxC,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;oBACzB,MAAM,MAAM,GAAI,QAAQ,CAAC,OAAO,CAAC,OAA+B,CAAC,MAAM,CAAC;oBACxE,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI;wBAC3F,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;oBACvC,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;wBACjE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;wBAC5B,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;oBACtB,CAAC;oBACD,MAAM,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACpH,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;gBACpB,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;oBAC7B,MAAM,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACpH,SAAS;gBACX,CAAC;gBACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChF,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;oBACf,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACnD,SAAS;gBACX,CAAC;gBACD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;oBACxB,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;oBACxC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAqC,CAAC;oBACxE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBAC5C,SAAS;gBACX,CAAC;gBACD,IAAI,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;oBACrE,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;oBACxC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;oBAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;oBAC1B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;wBAAE,OAAO,EAAE,CAAC;oBAChE,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;oBAC3C,SAAS;gBACX,CAAC;gBACD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC5B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;oBACrE,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,GAAG,IAAI,CAAC,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1E,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;YAC9C,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC5B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;gBAAE,OAAO,EAAE,CAAC;QAClE,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;gBACxF,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IACO,KAAK,CAAC,aAAa,CAAC,QAAwB;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;QAC1C,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxC,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAC/E,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;oBAClE,OAAO,GAAG,CAAC,CAAC;oBACZ,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS;wBAAE,OAAO;oBAC1D,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS;wBAAE,MAAM,IAAI,yBAAyB,CAAC,MAAM,CAAC,CAAC;gBACtF,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;wBAAE,MAAM,KAAK,CAAC;oBAC/C,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO;YAC3C,IAAI,CAAC,SAAS,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACnF,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACnC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;gBAAE,IAAI,EAAE,CAAC;QACzD,CAAC;IACH,CAAC;IACO,OAAO,CAAC,SAAiB,EAAE,OAAgB;QACjD,OAAO,YAAY,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,OAAO;YACnE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAChG,CAAC;IACO,gBAAgB,CAAC,SAA2B;QAClD,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACzD,qFAAqF;QACrF,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACxC,OAAO,GAAG,CAAC;IACb,CAAC;IACO,KAAK,CAAC,aAAa,CAAC,SAA2B;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QACxE,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC3C,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC9B,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS;gBAAE,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;YACxF,MAAM,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC3I,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAE,CAAC,OAAO,CAAC;YAChF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC;oBAAC,MAAM,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBAAC,CAAC;gBACxE,OAAO,KAAK,EAAE,CAAC;oBACb,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,yBAAyB;wBAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;oBAC3G,MAAM,KAAK,CAAC;gBACd,CAAC;gBACD,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC;gBAChF,IAAI,GAAG;oBAAE,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;gBACjF,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc;oBAAE,KAAK,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACnE,CAAC;YACD,oFAAoF;YACpF,kFAAkF;YAClF,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;;YAAM,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACxC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC7B,MAAM,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;gBACvF,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc;oBAAE,KAAK,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACnE,CAAC;IACH,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,OAAgB;QAC/C,MAAM,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IACO,KAAK,CAAC,QAAQ,CAAC,QAAwB;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EACjH,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzE,MAAM,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvG,CAAC;IACD,iGAAiG;IACjG,MAAM,CAAC,IAAoB;QACzB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IAC7C,CAAC;IACO,KAAK,CAAC,CAAiB;QAC7B,IACE,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YAClC,CAAC,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO;YACpC,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;YAChC,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,QAAQ,CAAC;YAE1F,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,sFAAsF;QACtF,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,MAAM,CAC3B,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE;YAC1B,gBAAgB,EAAE,CAAC,IAAI,CAAC,yBAAyB;SAClD,CAAC,CACH,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC;QACxD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC1D,6EAA6E;YAC7E,wEAAwE;YACxE,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACjC,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;wBACtE,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;wBAC3E,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ;wBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;oBACvF,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI;wBAClF,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;oBACxD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAkB,CAAC;oBACvE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;oBACxD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBACnC,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;wBAC9B,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,eAAe,CAAC;wBACzC,OAAO,IAAI,CAAC;oBACd,CAAC;oBACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAkB,CAAC;oBAChJ,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,YAAY;wBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;oBACtF,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;oBAC/B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjC,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QACD,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,QAAQ,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC/F,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,OAAO;YAAE,MAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1F,OAAO,IAAI,CAAC;IACd,CAAC;IACO,aAAa,CAAC,QAA2B,EAAE,OAAuB;QACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC7E,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,QAA2B,EAAE,OAAwB;QACpE,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACvD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAAC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gBAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;YAAC,CAAC;YACnG,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YACxE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAChD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC;YAC7B,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,OAAO,CAAC,SAAS,KAAK,QAAQ;YAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC3E,OAAO,QAAQ,CAAC;IAClB,CAAC;IACO,MAAM,CAAC,KAAiB;QAC9B,cAAc,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,IAAI,CAAC,SAAS;YAAE,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnE,CAAC;IACO,IAAI,CAAC,SAAiB,EAAE,OAAa,EAAE,QAAgB,EAAE,WAAmB;QAClF,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YACxB,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,IAAI;YACrD,QAAQ;YACR,WAAW;YACX,SAAS;YACT,OAAO;SACR,CAAC;IACJ,CAAC;IACO,KAAK,CAAC,kBAAkB,CAAC,KAAqB;QACpD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACxC,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,KAAK,aAAa;YAC3C,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1E,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IACO,KAAK,CAAC,UAAU,CAAC,KAAqB,EAAE,KAAqB;QACnE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,OAAuC,CAAC;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CACxB,KAAK,CAAC,OAAO,CAAC,SAAS,EACvB,KAAK,CAAC,OAAO,CAAC,OAAO,EACrB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,CAAC,GAAG,CACf,CAAC;QACF,IACE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC;YAC3C,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC;YAE1D,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,OAAO,CACjB;YACE,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC;YAC3B,QAAQ,EAAE,IAAI,CAAC,OAAO;YACtB,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG;SAC5B,EACD,IAAI,CAAC,KAAK,CACX,CAAC;QACF,IAAI,CAAC,MAAM,CAAC;YACV,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC;YAC3B,cAAc,EAAE,MAAM,CAAC,SAAS;YAChC,gBAAgB,EAAE,GAAG;SACtB,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAC7C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACtD,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS;YAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtE,MAAM,IAAI,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,SAAiB,EAAE,OAAgB;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,CACtB,GAAG,EAAE,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,SAAS,CAChB,CAAC;QACF,OAAO,GAAG,CAAC;IACb,CAAC;IACO,KAAK,CAAC,QAAQ,CAAC,SAAiB,EAAE,OAAgB;QACxD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,EAC1B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,EAC/D,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACjG,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAgC,CAAC;QAC9D,IACE,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC;YAChC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY;YACjC,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;YAClC,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG;YACvC,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,OAAO;YACxC,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,MAAM,CAAC,IAAI,CAAC;YAEtC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC;YACV,IAAI;YACJ,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC;YACvB,cAAc,EAAE,KAAK,CAAC,SAAS;YAC/B,gBAAgB,EAAE,GAAG;SACtB,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IACD,KAAK,CAAC,YAAY,CAChB,SAA4B,EAC5B,OAAwB;QAExB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,EACjD,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAChD,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO,CAAC,CAAC;IACX,CAAC;IACO,KAAK,CAAC,UAAU,CAAC,OAAmB;QAC1C,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7C,CAAC;IACO,UAAU;QAChB,OAAO;YACL,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YAC1B,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,IAAI;YAC5C,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;IACJ,CAAC;IACO,IAAI,CAAC,UAAqC;QAChD,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;QACrD,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK;YAC1E,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,IAAI,IAAI,CAAC,SAAS;YAAE,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpE,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,KAAK,CAAC,eAAe;QACnB,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAE9B,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,KAAK,CAAC,YAAY,CAAC,QAAwC;QACzD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAwC,CAAC;QACrE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3F,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAC7C,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1C,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC;QACnB,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC3B,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QAC/C,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
1
+ {"version":3,"file":"session-audit.js","sourceRoot":"","sources":["../src/session-audit.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { IdempotencyOperation, IdempotencyStoreOptions } from './idempotency-store.js';
2
2
  import type { IdempotencyAuthorization } from './delivery-records.js';
3
3
  import type { RequesterPendingStore } from './requester-pending-store.js';
4
- import type { Json, KeyPair, Schema, TaskManifest, Signed, SignedAgentCard, SignedEnvelope, CapabilityToken, BudgetSpec, RevocationList, Invite, SignedRevocationNotice } from '../../core/dist/index.js';
4
+ import type { Json, KeyPair, Schema, TaskManifest, Signed, SignedAgentCard, SignedEnvelope, CapabilityToken, BudgetSpec, RevocationList, Invite, SignedRevocationNotice, ContextGrantOptions } from '../../core/dist/index.js';
5
5
  import { type AuditBundle, type AuditEntry } from '../../ledger/dist/index.js';
6
6
  import type { RelayAuthRecoveryOptions, RelayClientSecurityOptions, RelayTransport, RelayConnectionStatus } from '../../relay/dist/index.js';
7
7
  import type { AgentAdapter, ProgressPayload, ProtocolEnvelope } from './adapter.js';
@@ -38,6 +38,10 @@ export interface SessionResult {
38
38
  /** Daemon workers stay finite unless the owner raises the cap. */
39
39
  export declare const DEFAULT_MAX_CONCURRENT_TASKS = 8;
40
40
  export interface WorkerNodeOptions extends WorkerAcceptancePolicy, SessionTimeoutOptions, RelayAuthRecoveryOptions, ProtocolReleaseOptions {
41
+ redelegation?: {
42
+ requester: RequesterClient;
43
+ ownerApprovalProvider: ApprovalProvider;
44
+ };
41
45
  deliveryService?: GatewayDeliveryService;
42
46
  deliveryOptions?: GatewayDeliveryOptions;
43
47
  intakeStore?: WorkerIntakeStore;
@@ -74,6 +78,8 @@ export interface WorkerNodeOptions extends WorkerAcceptancePolicy, SessionTimeou
74
78
  approvalProvider?: ApprovalProvider;
75
79
  /** Bilateral audit path; enables adjacent task checkpoints when inboxPath is absent. */
76
80
  auditPath?: string;
81
+ /** Opt in to local worker-only PROPOSE interruption terminals. Update readers before enabling. */
82
+ auditInterruptionFormat?: 1;
77
83
  /** Append accepted messages as private JSONL; also enables adjacent task checkpoints. */
78
84
  inboxPath?: string;
79
85
  /** Best-effort notification after a successful inbox append; never awaited. */
@@ -151,6 +157,9 @@ export declare class WorkerNode {
151
157
  private trust;
152
158
  private notifyOutcome;
153
159
  private saveTaskCheckpoint;
160
+ /** Intent is durable before audit append; retries reuse the entire original signed record. */
161
+ private closeInterruptedAudit;
162
+ private reportInterruptionFailure;
154
163
  private reconcileTasks;
155
164
  private sealedTaskResult;
156
165
  private recoverProposal;
@@ -240,7 +249,15 @@ export interface BeforeProposeContext {
240
249
  relay: string;
241
250
  signal: AbortSignal;
242
251
  }
252
+ export interface ChildDelegationRequest {
253
+ to: string;
254
+ relay?: RelayTransport | string;
255
+ manifest: TaskManifest;
256
+ input: Json;
257
+ auditPath?: string;
258
+ }
243
259
  export interface DelegateOptions extends SessionTimeoutOptions {
260
+ contextGrant?: ContextGrantOptions;
244
261
  idempotencyKey?: string;
245
262
  /** @internal Host operation shared by prepared fan-out children. */
246
263
  idempotencyOperation?: IdempotencyOperation;
@@ -325,6 +342,7 @@ export interface DelegateMultiResult {
325
342
  cancelled: string[];
326
343
  }
327
344
  export interface DelegateMultiOptions extends SessionTimeoutOptions {
345
+ contextGrant?: ContextGrantOptions;
328
346
  idempotencyKey?: string;
329
347
  /** @internal Host operation covering this ordered fan-out. */
330
348
  idempotencyOperation?: IdempotencyOperation;
@@ -366,6 +384,7 @@ export interface DeliverRevocationOptions {
366
384
  export declare function deliverRevocation(options: DeliverRevocationOptions): Promise<SignedEnvelope>;
367
385
  export declare class RequesterClient {
368
386
  readonly options: RequesterClientOptions;
387
+ private readonly contextApprovals;
369
388
  private idempotency?;
370
389
  private keyedStore;
371
390
  private keyedAction;
@@ -399,6 +418,7 @@ export declare class RequesterClient {
399
418
  delegateMulti(options: DelegateMultiOptions): Promise<DelegateMultiResult>;
400
419
  }
401
420
  export declare function buildTaskManifest(options: {
421
+ contextGrant?: ContextGrantOptions;
402
422
  ownerDid: string;
403
423
  workerDid: string;
404
424
  agentDid?: string;