dsh-a2a-server 0.3.0 → 0.4.1

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 (72) hide show
  1. package/CHANGELOG.md +45 -28
  2. package/CHANGELOG.zh-CN.md +45 -28
  3. package/README.md +42 -16
  4. package/README.zh-CN.md +42 -13
  5. package/docker/Dockerfile +5 -0
  6. package/docs/public-visitors.en.md +39 -0
  7. package/docs/public-visitors.md +86 -0
  8. package/docs/visitor-isolation.en.md +50 -0
  9. package/docs/visitor-isolation.md +74 -0
  10. package/lib/config.d.ts +12 -4
  11. package/lib/config.d.ts.map +1 -1
  12. package/lib/config.js +9 -0
  13. package/lib/config.js.map +1 -1
  14. package/lib/docker-executor.d.ts +11 -0
  15. package/lib/docker-executor.d.ts.map +1 -0
  16. package/lib/docker-executor.js +115 -0
  17. package/lib/docker-executor.js.map +1 -0
  18. package/lib/index.d.ts.map +1 -1
  19. package/lib/index.js +92 -12
  20. package/lib/index.js.map +1 -1
  21. package/lib/isolation.d.ts +21 -0
  22. package/lib/isolation.d.ts.map +1 -0
  23. package/lib/isolation.js +108 -0
  24. package/lib/isolation.js.map +1 -0
  25. package/lib/live-visitors.d.ts +21 -0
  26. package/lib/live-visitors.d.ts.map +1 -0
  27. package/lib/live-visitors.js +66 -0
  28. package/lib/live-visitors.js.map +1 -0
  29. package/lib/management.d.ts.map +1 -1
  30. package/lib/management.js +3 -1
  31. package/lib/management.js.map +1 -1
  32. package/lib/microsandbox-executor.d.ts +39 -0
  33. package/lib/microsandbox-executor.d.ts.map +1 -0
  34. package/lib/microsandbox-executor.js +316 -0
  35. package/lib/microsandbox-executor.js.map +1 -0
  36. package/lib/microsandbox-runtime.d.ts +28 -0
  37. package/lib/microsandbox-runtime.d.ts.map +1 -0
  38. package/lib/microsandbox-runtime.js +164 -0
  39. package/lib/microsandbox-runtime.js.map +1 -0
  40. package/lib/protocol/card.d.ts +1 -0
  41. package/lib/protocol/card.d.ts.map +1 -1
  42. package/lib/protocol/card.js +3 -0
  43. package/lib/protocol/card.js.map +1 -1
  44. package/lib/public-visitors.d.ts +38 -0
  45. package/lib/public-visitors.d.ts.map +1 -0
  46. package/lib/public-visitors.js +107 -0
  47. package/lib/public-visitors.js.map +1 -0
  48. package/lib/router.d.ts +15 -0
  49. package/lib/router.d.ts.map +1 -1
  50. package/lib/router.js +122 -9
  51. package/lib/router.js.map +1 -1
  52. package/lib/sandbox-files.d.ts +16 -0
  53. package/lib/sandbox-files.d.ts.map +1 -0
  54. package/lib/sandbox-files.js +168 -0
  55. package/lib/sandbox-files.js.map +1 -0
  56. package/lib/sandbox-lifecycle.d.ts +48 -0
  57. package/lib/sandbox-lifecycle.d.ts.map +1 -0
  58. package/lib/sandbox-lifecycle.js +125 -0
  59. package/lib/sandbox-lifecycle.js.map +1 -0
  60. package/lib/version.d.ts +1 -1
  61. package/lib/version.js +1 -1
  62. package/lib/visitor-read.d.ts +4 -0
  63. package/lib/visitor-read.d.ts.map +1 -0
  64. package/lib/visitor-read.js +20 -0
  65. package/lib/visitor-read.js.map +1 -0
  66. package/lib/visitor-worker.d.ts +2 -0
  67. package/lib/visitor-worker.d.ts.map +1 -0
  68. package/lib/visitor-worker.js +18 -0
  69. package/lib/visitor-worker.js.map +1 -0
  70. package/lib/visitor-worker.mjs +14686 -0
  71. package/lib/visitor-worker.py +78 -0
  72. package/package.json +14 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-visitors.d.ts","sourceRoot":"","sources":["../src/public-visitors.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAuB,MAAM,uBAAuB,CAAA;AAExE,eAAO,MAAM,uBAAuB,uCAAuC,CAAA;AAC3E,eAAO,MAAM,qBAAqB,wCAAwC,CAAA;AAC1E,eAAO,MAAM,oBAAoB,IAAI,CAAA;AACrC,eAAO,MAAM,qBAAqB,iBAAiB,CAAA;AACnD,kFAAkF;AAClF,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,IAAa,IAAI,IAAI,OAAO,EAAE,CAG7B;CACF;AACD,eAAO,MAAM,kBAAkB,WAAY,MAAM,WAAW,MAAM,UAAU,MAAM,aAAY,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAQ,kBAC5B,CAAA;AAOhG,+FAA+F;AAC/F,qBAAa,cAAc;IAGM,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAFxD,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;gBACjB,SAAS,EAAE,MAAM,EAAmB,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,YAAA;IAQrG,OAAO,IAAI,OAAO;IAOlB,OAAO,CAAC,IAAI;IAMZ,QAAQ,IAAI;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE;IAS3F,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS;IAKvD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAC3B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE;IAKtF,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO/B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAM3B"}
@@ -0,0 +1,107 @@
1
+ /** Public admission still issues a private, durable identity for every client. */
2
+ import { createHash, randomBytes, randomUUID } from 'node:crypto';
3
+ import { readFileSync, renameSync, rmSync, statSync, writeFileSync } from 'node:fs';
4
+ import { join } from 'node:path';
5
+ import { z } from 'zod';
6
+ import { A2ARpcError, ERR_INVALID_REQUEST } from "./protocol/jsonrpc.js";
7
+ export const REGISTER_PUBLIC_VISITOR = 'talk2myagent/RegisterPublicVisitor';
8
+ export const PUBLIC_VISITOR_STATUS = 'talk2myagent/GetPublicVisitorStatus';
9
+ export const PUBLIC_VISITOR_TURNS = 5;
10
+ export const PUBLIC_VISITOR_DOMAIN = 'talk2myagent';
11
+ /** Optional extension errors use our domain, not the A2A standard's namespace. */
12
+ export class PublicVisitorError extends A2ARpcError {
13
+ get data() {
14
+ return [{ '@type': 'type.googleapis.com/google.rpc.ErrorInfo', domain: PUBLIC_VISITOR_DOMAIN,
15
+ reason: this.options.reason, metadata: { version: '1', requestAccepted: 'false', ...this.options.metadata } }];
16
+ }
17
+ }
18
+ export const publicVisitorError = (reason, message, status, metadata = {}) => new PublicVisitorError(ERR_INVALID_REQUEST, message, { reason, httpStatus: status, metadata });
19
+ const MAX_VISITORS = 1000, REGISTRATIONS_PER_HOUR = 20;
20
+ const row = z.object({ id: z.string().regex(/^public-[a-f0-9]{32}$/), hash: z.string().regex(/^[a-f0-9]{64}$/),
21
+ createdAt: z.number().int().nonnegative(), used: z.number().int().min(0).max(PUBLIC_VISITOR_TURNS) }).strict();
22
+ const hash = (token) => createHash('sha256').update(token).digest('hex');
23
+ /** Uses the enclosing StateStore process lock; never share its directory between processes. */
24
+ export class PublicVisitors {
25
+ options;
26
+ rows = [];
27
+ file;
28
+ constructor(directory, options) {
29
+ this.options = options;
30
+ this.file = join(directory, 'public-visitors.json');
31
+ try {
32
+ if (statSync(this.file).size > 400_000)
33
+ throw new Error('Public visitor registry exceeds capacity');
34
+ this.rows = z.array(row).max(MAX_VISITORS).parse(JSON.parse(readFileSync(this.file, 'utf8')));
35
+ if (new Set(this.rows.map(v => v.id)).size !== this.rows.length || new Set(this.rows.map(v => v.hash)).size !== this.rows.length)
36
+ throw new Error('Duplicate public visitor identity');
37
+ }
38
+ catch (error) {
39
+ if (error.code !== 'ENOENT')
40
+ throw error;
41
+ }
42
+ }
43
+ enabled() {
44
+ if (!this.options?.settingsFile)
45
+ return this.options?.enabled === true;
46
+ try {
47
+ if (statSync(this.options.settingsFile).size > 1024)
48
+ return false;
49
+ return JSON.parse(readFileSync(this.options.settingsFile, 'utf8')).enabled === true;
50
+ }
51
+ catch {
52
+ return false;
53
+ } // Missing or malformed settings always close public admission.
54
+ }
55
+ save(next) {
56
+ const temporary = `${this.file}.${randomUUID()}.tmp`;
57
+ try {
58
+ writeFileSync(temporary, JSON.stringify(next), { mode: 0o600 });
59
+ renameSync(temporary, this.file);
60
+ }
61
+ finally {
62
+ rmSync(temporary, { force: true });
63
+ }
64
+ this.rows = next;
65
+ }
66
+ register() {
67
+ if (!this.enabled())
68
+ throw publicVisitorError('INVITATION_REQUIRED', 'Public visitors are disabled; contact the agent owner for access', 403, { nextAction: 'contact_owner' });
69
+ if (this.rows.length >= MAX_VISITORS)
70
+ throw publicVisitorError('PUBLIC_VISITOR_CAPACITY_REACHED', 'Public visitor capacity reached', 429, { nextAction: 'contact_owner' });
71
+ const now = Date.now();
72
+ if (this.rows.filter(v => v.createdAt > now - 3_600_000).length >= REGISTRATIONS_PER_HOUR)
73
+ throw publicVisitorError('PUBLIC_VISITOR_REGISTRATION_RATE_LIMITED', 'Public visitor registration rate exceeded', 429);
74
+ const token = randomBytes(32).toString('hex'), id = `public-${randomBytes(16).toString('hex')}`;
75
+ this.save([...this.rows, { id, hash: hash(token), createdAt: now, used: 0 }]);
76
+ return { visitorId: id, token, turnLimit: PUBLIC_VISITOR_TURNS, remainingTurns: PUBLIC_VISITOR_TURNS };
77
+ }
78
+ identify(token) {
79
+ if (!token || !/^[a-f0-9]{64}$/.test(token))
80
+ return undefined;
81
+ const digest = hash(token);
82
+ return this.rows.find(v => v.hash === digest)?.id;
83
+ }
84
+ owns(peer) { return this.rows.some(v => v.id === peer); }
85
+ status(peer) {
86
+ const visitor = this.rows.find(v => v.id === peer);
87
+ if (!visitor)
88
+ throw publicVisitorError('INVALID_TOKEN', 'Unknown public visitor', 401);
89
+ return { visitorId: peer, turnLimit: PUBLIC_VISITOR_TURNS, remainingTurns: PUBLIC_VISITOR_TURNS - visitor.used };
90
+ }
91
+ assertQuota(peer) {
92
+ if (!this.owns(peer))
93
+ return;
94
+ if (!this.enabled())
95
+ throw publicVisitorError('INVITATION_REQUIRED', 'Public visitors are disabled; contact the agent owner for access', 403, { nextAction: 'contact_owner' });
96
+ if (this.status(peer).remainingTurns === 0)
97
+ throw publicVisitorError('PUBLIC_VISITOR_QUOTA_EXHAUSTED', 'Public visitor quota exhausted (5/5); contact the agent owner for access', 429, { turnLimit: String(PUBLIC_VISITOR_TURNS), usedTurns: String(PUBLIC_VISITOR_TURNS), remainingTurns: '0', nextAction: 'contact_owner', retryable: 'false' });
98
+ }
99
+ charge(peer) {
100
+ if (!this.owns(peer))
101
+ return;
102
+ this.assertQuota(peer);
103
+ // Commit synchronously before model work; concurrent contexts cannot spend a sixth turn.
104
+ this.save(this.rows.map(v => v.id === peer ? { ...v, used: v.used + 1 } : v));
105
+ }
106
+ }
107
+ //# sourceMappingURL=public-visitors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-visitors.js","sourceRoot":"","sources":["../src/public-visitors.ts"],"names":[],"mappings":"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"}
package/lib/router.d.ts CHANGED
@@ -14,8 +14,16 @@ import type { A2AServerConfig } from './config.ts';
14
14
  import type { Activation, ContextRegistry } from './contexts.ts';
15
15
  import { type PeerIdentity, type RateLimiter, type TurnTracker } from './security.ts';
16
16
  import type { TaskSlot } from './tasks.ts';
17
+ import { type PublicVisitors } from './public-visitors.ts';
18
+ import { type LiveVisitor } from './live-visitors.ts';
17
19
  /** Everything the router needs from the plugin body. */
18
20
  export interface RouterDeps {
21
+ identifyLiveVisitor?: (token: string | undefined) => LiveVisitor | undefined;
22
+ addLiveVisitor?: (input: unknown) => Promise<{
23
+ name: string;
24
+ applied: true;
25
+ }>;
26
+ publicVisitors?: PublicVisitors;
19
27
  config: A2AServerConfig;
20
28
  contexts: ContextRegistry;
21
29
  turns: TurnTracker;
@@ -64,6 +72,8 @@ export interface RouterDeps {
64
72
  */
65
73
  /** The whole monitoring view over resident contexts. */
66
74
  adminSnapshot?: () => AdminSnapshot;
75
+ /** Drain tasks and persist guest disks before the local owner stops the host. */
76
+ prepareStop?: () => Promise<void>;
67
77
  }
68
78
  /** One task as the monitoring surface shows it. */
69
79
  export interface AdminTaskView {
@@ -88,6 +98,11 @@ export interface AdminContextView {
88
98
  }
89
99
  /** What `{basePath}/admin/contexts` serves. */
90
100
  export interface AdminSnapshot {
101
+ publicVisitors?: {
102
+ enabled: boolean;
103
+ turnLimit: number;
104
+ managed: boolean;
105
+ };
91
106
  generatedAt: string;
92
107
  contexts: AdminContextView[];
93
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
package/lib/router.js CHANGED
@@ -10,6 +10,8 @@
10
10
  */
11
11
  import { A2AContextId, A2A_PROTOCOL_VERSION, ERR_EXTENDED_CARD_NOT_CONFIGURED, ERR_INVALID_PARAMS, ERR_INVALID_REQUEST, ERR_METHOD_NOT_FOUND, ERR_PARSE, ERR_PUSH_NOT_SUPPORTED, ERR_TASK_NOT_CANCELABLE, A2ARpcError, jsonRpcError, jsonRpcResult, legacyMethodReplacement, nowIso, parseListTasksParams, parseSendMessageRequest, parseTenant, partsToText, resolveMethod, sseFrame, streamArtifactUpdate, streamStatusUpdate, streamTask, taskNotFound, unsupportedOperation, versionNotSupported, } from "./protocol/index.js";
12
12
  import { constantTimeEqual, filterInbound, redactOutbound } from "./security.js";
13
+ import { REGISTER_PUBLIC_VISITOR, PUBLIC_VISITOR_STATUS, publicVisitorError } from "./public-visitors.js";
14
+ import { VisitorAdmissionError } from "./live-visitors.js";
13
15
  /** Largest request body accepted, before parsing. */
14
16
  const MAX_BODY_BYTES = 1_000_000;
15
17
  /** `ListTasks` page size when a peer names none, per the spec's default. */
@@ -46,13 +48,13 @@ export function createRouter(deps) {
46
48
  res.setHeader('www-authenticate', 'Bearer');
47
49
  sendJson(res, status, jsonRpcError(null, ERR_INVALID_REQUEST, message));
48
50
  };
49
- const readBody = async (req) => {
51
+ const readBody = async (req, maximum = MAX_BODY_BYTES) => {
50
52
  const chunks = [];
51
53
  let size = 0;
52
54
  for await (const chunk of req) {
53
55
  const buffer = chunk;
54
56
  size += buffer.length;
55
- if (size > MAX_BODY_BYTES) {
57
+ if (size > maximum) {
56
58
  throw new A2ARpcError(ERR_PARSE, 'payload too large', { httpStatus: 413 });
57
59
  }
58
60
  chunks.push(buffer);
@@ -74,6 +76,7 @@ export function createRouter(deps) {
74
76
  return;
75
77
  }
76
78
  let peer;
79
+ let liveVisitor;
77
80
  try {
78
81
  deps.assertOpen();
79
82
  const presented = typeof req.headers.authorization === 'string'
@@ -86,7 +89,9 @@ export function createRouter(deps) {
86
89
  peer = 'owner';
87
90
  }
88
91
  else if (!ownerChannel && !(presented !== undefined && ownerSecret !== undefined && constantTimeEqual(presented, ownerSecret))) {
89
- peer = deps.identify(presented, await deps.resolvePeerSecrets());
92
+ liveVisitor = deps.identifyLiveVisitor?.(presented);
93
+ peer = liveVisitor?.name ?? deps.identify(presented, await deps.resolvePeerSecrets())
94
+ ?? deps.publicVisitors?.identify(presented);
90
95
  }
91
96
  }
92
97
  catch (error) {
@@ -95,7 +100,72 @@ export function createRouter(deps) {
95
100
  return;
96
101
  }
97
102
  if (peer === undefined) {
98
- sendAuthFailure(res, 401, 'unauthorized');
103
+ // Issue a challenge before activation, quota charging or model work. Only
104
+ // absent credentials qualify; a rejected credential must retain its identity.
105
+ if (!ownerChannel && req.headers.authorization === undefined && deps.publicVisitors?.enabled()) {
106
+ try {
107
+ const body = await readBody(req);
108
+ const request = JSON.parse(body);
109
+ if (!request || Array.isArray(request) || request.jsonrpc !== '2.0' || !['string', 'number'].includes(typeof request.id)) {
110
+ sendJson(res, 400, jsonRpcError(null, ERR_INVALID_REQUEST, 'Expected a JSON-RPC request with an id'));
111
+ return;
112
+ }
113
+ const id = request.id;
114
+ const version = req.headers['a2a-version'];
115
+ if (version && version !== '1.0' && version !== '1.0.0') {
116
+ sendRpcError(res, id, versionNotSupported(String(version), A2A_PROTOCOL_VERSION));
117
+ return;
118
+ }
119
+ res.setHeader('cache-control', 'no-store');
120
+ if (request.method === REGISTER_PUBLIC_VISITOR) {
121
+ if (Buffer.byteLength(body) > 4096)
122
+ throw new A2ARpcError(ERR_PARSE, 'payload too large', { httpStatus: 413 });
123
+ if (request.params !== undefined && (!request.params || typeof request.params !== 'object' || Array.isArray(request.params) || Object.keys(request.params).length > 0)) {
124
+ sendJson(res, 400, jsonRpcError(null, ERR_INVALID_PARAMS, 'Registration expects an empty params object'));
125
+ return;
126
+ }
127
+ try {
128
+ sendJson(res, 200, jsonRpcResult(id, deps.publicVisitors.register()));
129
+ }
130
+ catch (error) {
131
+ if (error instanceof A2ARpcError) {
132
+ sendRpcError(res, id, error);
133
+ return;
134
+ }
135
+ ;
136
+ throw error;
137
+ }
138
+ return;
139
+ }
140
+ if (request.method === 'SendMessage' || request.method === 'SendStreamingMessage') {
141
+ res.setHeader('www-authenticate', 'Bearer');
142
+ sendRpcError(res, id, publicVisitorError('PUBLIC_VISITOR_AUTH_REQUIRED', 'Anonymous sign-in required. This message has not been accepted; register a visitor, save its token, then send this message again.', 401, { nextAction: 'join', registrationMethod: REGISTER_PUBLIC_VISITOR, turnLimit: '5' }));
143
+ return;
144
+ }
145
+ }
146
+ catch (error) {
147
+ if (error instanceof A2ARpcError) {
148
+ sendRpcError(res, null, error);
149
+ return;
150
+ }
151
+ sendJson(res, error instanceof SyntaxError ? 400 : 503, jsonRpcError(null, ERR_INVALID_REQUEST, 'Public visitor admission unavailable'));
152
+ return;
153
+ }
154
+ }
155
+ if (ownerChannel) {
156
+ sendAuthFailure(res, 401, 'unauthorized');
157
+ return;
158
+ }
159
+ res.setHeader('www-authenticate', 'Bearer');
160
+ res.setHeader('cache-control', 'no-store');
161
+ sendRpcError(res, null, req.headers.authorization === undefined
162
+ ? publicVisitorError('INVITATION_REQUIRED', 'Contact the agent owner for an invitation', 401, { nextAction: 'contact_owner' })
163
+ : publicVisitorError('INVALID_TOKEN', 'The token is invalid or revoked; restore your credential or contact the agent owner', 401, { nextAction: 'contact_owner' }));
164
+ return;
165
+ }
166
+ const publicVisitor = deps.publicVisitors?.owns(peer) === true;
167
+ if (publicVisitor && !deps.publicVisitors.enabled()) {
168
+ sendRpcError(res, null, publicVisitorError('INVITATION_REQUIRED', 'Public visitors are disabled; contact the agent owner for access', 403, { nextAction: 'contact_owner' }));
99
169
  return;
100
170
  }
101
171
  if (!deps.rateLimiter.allow(peer)) {
@@ -103,9 +173,8 @@ export function createRouter(deps) {
103
173
  return;
104
174
  }
105
175
  // The owner bypasses the visitor allow list: the console IS the trust.
106
- if (peer !== 'owner'
107
- && config.trustedPeers !== undefined
108
- && !config.trustedPeers.includes(peer)) {
176
+ if (peer !== 'owner' && !publicVisitor
177
+ && (liveVisitor ? !liveVisitor.trusted : config.trustedPeers !== undefined && !config.trustedPeers.includes(peer))) {
109
178
  sendAuthFailure(res, 403, `peer "${peer}" is not trusted`);
110
179
  return;
111
180
  }
@@ -150,6 +219,15 @@ export function createRouter(deps) {
150
219
  sendRpcError(res, id, versionNotSupported(version.trim(), A2A_PROTOCOL_VERSION));
151
220
  return;
152
221
  }
222
+ if (method === PUBLIC_VISITOR_STATUS && publicVisitor) {
223
+ res.setHeader('cache-control', 'no-store');
224
+ sendJson(res, 200, jsonRpcResult(id, deps.publicVisitors.status(peer)));
225
+ return;
226
+ }
227
+ if (publicVisitor && method === 'GetExtendedAgentCard') {
228
+ sendAuthFailure(res, 403, 'Public visitors cannot access the extended card');
229
+ return;
230
+ }
153
231
  const operation = resolveMethod(method);
154
232
  if (operation === undefined) {
155
233
  const replacement = legacyMethodReplacement(method);
@@ -593,8 +671,11 @@ export function createRouter(deps) {
593
671
  fail(404, 'not_mounted', 'the admin surface is not configured on this deployment');
594
672
  return;
595
673
  }
596
- if (req.method !== 'GET') {
597
- res.setHeader('allow', 'GET');
674
+ const path = new URL(req.url ?? '/', 'http://localhost').pathname;
675
+ const stopping = path === `${deps.config.basePath}/admin/prepare-stop`;
676
+ const addingVisitor = path === `${deps.config.basePath}/admin/visitors`;
677
+ if (req.method !== (stopping || addingVisitor ? 'POST' : 'GET')) {
678
+ res.setHeader('allow', stopping || addingVisitor ? 'POST' : 'GET');
598
679
  fail(405, 'method_not_allowed', 'the admin surface is read-only');
599
680
  return;
600
681
  }
@@ -609,6 +690,34 @@ export function createRouter(deps) {
609
690
  fail(401, 'unauthorized', 'a valid admin token is required');
610
691
  return;
611
692
  }
693
+ if (addingVisitor) {
694
+ if (!deps.addLiveVisitor) {
695
+ fail(404, 'not_mounted', 'live visitor admission is unavailable');
696
+ return;
697
+ }
698
+ let input;
699
+ try {
700
+ input = JSON.parse(await readBody(req, 4096));
701
+ }
702
+ catch (error) {
703
+ fail(error instanceof A2ARpcError ? error.httpStatus : 400, 'invalid_request', 'Invalid visitor admission request');
704
+ return;
705
+ }
706
+ const result = await deps.addLiveVisitor(input);
707
+ res.setHeader('cache-control', 'no-store');
708
+ sendJson(res, 200, result);
709
+ return;
710
+ }
711
+ if (stopping) {
712
+ if (!deps.prepareStop) {
713
+ fail(404, 'not_mounted', 'graceful stop is not available');
714
+ return;
715
+ }
716
+ await deps.prepareStop();
717
+ res.writeHead(200, { 'content-type': 'application/json' });
718
+ res.end(JSON.stringify({ readyToStop: true }));
719
+ return;
720
+ }
612
721
  const snapshot = deps.adminSnapshot();
613
722
  const wanted = decodeURIComponent(new URL(req.url ?? '/', 'http://localhost').pathname
614
723
  .replace(/\/+$/, '')
@@ -628,6 +737,10 @@ export function createRouter(deps) {
628
737
  res.end(JSON.stringify(view));
629
738
  }
630
739
  catch (error) {
740
+ if (error instanceof VisitorAdmissionError) {
741
+ fail(error.status, 'visitor_admission_failed', error.message);
742
+ return;
743
+ }
631
744
  deps.logger.error(`a2a: admin request failed: ${String(error)}`);
632
745
  fail(500, 'internal', 'internal error');
633
746
  }
package/lib/router.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,gCAAgC,EAChC,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,EACT,sBAAsB,EACtB,uBAAuB,EACvB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,uBAAuB,EACvB,MAAM,EACN,oBAAoB,EACpB,uBAAuB,EACvB,WAAW,EACX,WAAW,EACX,aAAa,EACb,QAAQ,EACR,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,GAQpB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAyD,MAAM,eAAe,CAAA;AAEvI,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,kBAAkB,EAAuB,MAAM,sBAAsB,CAAA;AAC9H,OAAO,EAAE,qBAAqB,EAAoB,MAAM,oBAAoB,CAAA;AAE5E,qDAAqD;AACrD,MAAM,cAAc,GAAG,SAAS,CAAA;AAEhC,4EAA4E;AAC5E,MAAM,iBAAiB,GAAG,EAAE,CAAA;AAgH5B;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,IAAgB;IAC3C,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IACvB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAiB,CAAA;IAExC,MAAM,QAAQ,GAAG,CAAC,GAAmB,EAAE,MAAc,EAAE,IAAa,EAAQ,EAAE;QAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACjC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE;YACpB,cAAc,EAAE,kBAAkB;YAClC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;SAC1C,CAAC,CAAA;QACF,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACf,CAAC,CAAA;IAED,0EAA0E;IAC1E,MAAM,YAAY,GAAG,CACnB,GAAmB,EACnB,EAA0B,EAC1B,KAAkB,EACZ,EAAE;QACR,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;IAC1F,CAAC,CAAA;IAED;;;;;;OAMG;IACH,MAAM,eAAe,GAAG,CAAC,GAAmB,EAAE,MAAc,EAAE,OAAe,EAAQ,EAAE;QACrF,IAAI,MAAM,KAAK,GAAG;YAAE,GAAG,CAAC,SAAS,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAA;QAC/D,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,IAAI,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC,CAAA;IACzE,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,KAAK,EAAE,GAAoB,EAAE,OAAO,GAAG,cAAc,EAAmB,EAAE;QACzF,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,KAAe,CAAA;YAC9B,IAAI,IAAI,MAAM,CAAC,MAAM,CAAA;YACrB,IAAI,IAAI,GAAG,OAAO,EAAE,CAAC;gBACnB,MAAM,IAAI,WAAW,CAAC,SAAS,EAAE,mBAAmB,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAA;YAC5E,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACrB,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC/C,CAAC,CAAA;IAED,MAAM,SAAS,GAAG,CAAC,GAAoB,EAAE,GAAmB,EAAQ,EAAE;QACpE,wEAAwE;QACxE,uEAAuE;QACvE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACxB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,cAAc,CAAC,CAAA;YACzC,OAAM;QACR,CAAC;QACD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IACpD,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,KAAK,EAAE,GAAoB,EAAE,GAAmB,EAAE,YAAY,GAAG,KAAK,EAAiB,EAAE;QACxG,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC1B,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,IAAI,EAAE,mBAAmB,EAAE,oBAAoB,CAAC,CAAC,CAAA;YACjF,OAAM;QACR,CAAC;QAED,IAAI,IAA8B,CAAA;QAClC,IAAI,WAAoC,CAAA;QACxC,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,EAAE,CAAA;YACjB,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,QAAQ;gBAC7D,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChE,CAAC,CAAC,SAAS,CAAA;YACb,sEAAsE;YACtE,mDAAmD;YACnD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAA;YACrD,IAAI,YAAY,IAAI,SAAS,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,IAAI,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC;gBACtH,IAAI,GAAG,OAAO,CAAA;YAChB,CAAC;iBAAM,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,IAAI,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;gBACjI,WAAW,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,CAAA;gBACnD,IAAI,GAAG,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;uBAChF,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAA;YAC/C,CAAC;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sCAAsC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACvE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,IAAI,EAAE,mBAAmB,EAAE,4BAA4B,CAAC,CAAC,CAAA;YACzF,OAAM;QACR,CAAC;QAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,0EAA0E;YAC1E,8EAA8E;YAC9E,IAAI,CAAC,YAAY,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,EAAE,CAAC;gBAC/F,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAA;oBAChC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAA;oBAC3D,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;wBACzH,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,IAAI,EAAE,mBAAmB,EAAE,wCAAwC,CAAC,CAAC,CAAC;wBAAC,OAAM;oBAC/G,CAAC;oBACD,MAAM,EAAE,GAAG,OAAO,CAAC,EAAqB,CAAA;oBACxC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;oBAC1C,IAAI,OAAO,IAAI,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;wBAAC,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC;wBAAC,OAAM;oBAAC,CAAC;oBACtJ,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;oBAC1C,IAAI,OAAO,CAAC,MAAM,KAAK,uBAAuB,EAAE,CAAC;wBAC/C,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI;4BAAE,MAAM,IAAI,WAAW,CAAC,SAAS,EAAE,mBAAmB,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAA;wBAC9G,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;4BACvK,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,IAAI,EAAE,kBAAkB,EAAE,6CAA6C,CAAC,CAAC,CAAC;4BAAC,OAAM;wBACnH,CAAC;wBACD,IAAI,CAAC;4BAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;wBAAC,CAAC;wBAC7E,OAAO,KAAK,EAAE,CAAC;4BAAC,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;gCAAC,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;gCAAC,OAAM;4BAAC,CAAC;4BAAA,CAAC;4BAAC,MAAM,KAAK,CAAA;wBAAC,CAAC;wBACzG,OAAM;oBACR,CAAC;oBACD,IAAI,OAAO,CAAC,MAAM,KAAK,aAAa,IAAI,OAAO,CAAC,MAAM,KAAK,sBAAsB,EAAE,CAAC;wBAClF,GAAG,CAAC,SAAS,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAA;wBAC3C,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE,kBAAkB,CAAC,8BAA8B,EACrE,mIAAmI,EAAE,GAAG,EACxI,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;wBAAC,OAAM;oBACjG,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;wBAAC,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;wBAAC,OAAM;oBAAC,CAAC;oBAC5E,QAAQ,CAAC,GAAG,EAAE,KAAK,YAAY,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,EAAE,mBAAmB,EAAE,sCAAsC,CAAC,CAAC,CAAC;oBAAC,OAAM;gBAClJ,CAAC;YACH,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBAAC,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;gBAAC,OAAM;YAAC,CAAC;YACvE,GAAG,CAAC,SAAS,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;YAAC,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;YACvF,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS;gBAC7D,CAAC,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,2CAA2C,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC;gBAC9H,CAAC,CAAC,kBAAkB,CAAC,eAAe,EAAE,qFAAqF,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,CAAC,CAAA;YACrK,OAAM;QACR,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAA;QAC9D,IAAI,aAAa,IAAI,CAAC,IAAI,CAAC,cAAe,CAAC,OAAO,EAAE,EAAE,CAAC;YACrD,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,kBAAkB,CAAC,qBAAqB,EAAE,kEAAkE,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;YAAC,OAAM;QACtL,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,qBAAqB,CAAC,CAAA;YAChD,OAAM;QACR,CAAC;QACD,uEAAuE;QACvE,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,aAAa;eACjC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACrH,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,IAAI,kBAAkB,CAAC,CAAA;YAC1D,OAAM;QACR,CAAC;QAED,IAAI,IAAY,CAAA;QAChB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAA;QAC5B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,KAAoB,CAAA;YAChC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,IAAI,GAAG,EAAE,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;YAC5F,OAAM;QACR,CAAC;QAED,IAAI,OAAgC,CAAA;QACpC,IAAI,CAAC;YACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YACnE,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3E,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,IAAI,EAAE,mBAAmB,EAAE,+BAA+B,CAAC,CAAC,CAAA;gBAC5F,OAAM;YACR,CAAC;YACD,OAAO,GAAG,MAAiC,CAAA;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,CAAA;YAChE,OAAM;QACR,CAAC;QAED,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAA2B,CAAA;QAC5D,MAAM,MAAM,GAAG,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAC7E,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;QAChC,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC;YAC5E,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,EAAE,kBAAkB,EAAE,0BAA0B,CAAC,CAAC,CAAA;YACpF,OAAM;QACR,CAAC;QAED,0EAA0E;QAC1E,0EAA0E;QAC1E,yEAAyE;QACzE,2EAA2E;QAC3E,4EAA4E;QAC5E,sCAAsC;QACtC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAC1C,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;eACvD,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAChD,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAA;YAChF,OAAM;QACR,CAAC;QAED,IAAI,MAAM,KAAK,qBAAqB,IAAI,aAAa,EAAE,CAAC;YACtD,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;YAC1C,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,cAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAC,OAAM;QAClF,CAAC;QACD,IAAI,aAAa,IAAI,MAAM,KAAK,sBAAsB,EAAE,CAAC;YAAC,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,iDAAiD,CAAC,CAAC;YAAC,OAAM;QAAC,CAAC;QAChJ,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;QACvC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAA;YACnD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAC7B,EAAE,EACF,oBAAoB,EACpB,WAAW,KAAK,SAAS;gBACvB,CAAC,CAAC,qBAAqB,MAAM,EAAE;gBAC/B,CAAC,CAAC,qBAAqB,MAAM,0BAA0B;sBACnD,GAAG,oBAAoB,yBAAyB,WAAW,EAAE,CACpE,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QAED,yEAAyE;QACzE,2CAA2C;QAC3C,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;QAClC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAC7B,EAAE,EAAE,kBAAkB,EACtB,qDAAqD,MAAM,EAAE,CAC9D,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QACvD,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;gBACjC,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,CAAA;gBAC5B,OAAM;YACR,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,MAAM,YAAY,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAC3D,uEAAuE;YACvE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,EAAE,mBAAmB,EAAE,gBAAgB,CAAC,CAAC,CAAA;QAC7E,CAAC;IACH,CAAC,CAAA;IAED;;;;;OAKG;IACH,MAAM,cAAc,GAAG,KAAK,EAC1B,YAAgC,EAChC,IAAkB,EACG,EAAE;QACvB,IAAI,YAAY,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAClE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,CAAA;QACpE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;YACjE,IAAI,QAAQ,KAAK,SAAS;gBAAE,OAAO,QAAQ,CAAA;QAC7C,CAAC;QACD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;YACjD,MAAM,IAAI,WAAW,CAAC,kBAAkB,EAAE,sBAAsB,YAAY,EAAE,CAAC,CAAA;QACjF,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;IAED;;;;;;;OAOG;IACH,MAAM,WAAW,GAAG,CAAC,SAAkB,EAAE,IAAkB,EAA8C,EAAE;QACzG,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QACvC,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAA;QACrE,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;IAED,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,CACf,SAAkB,EAClB,IAAkB,EACsC,EAAE;QAC1D,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;QACvC,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAChD,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI;gBAAE,SAAQ;YACtC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACzC,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAA;QACrD,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC,CAAA;IAED;;;;;;;OAOG;IACH,MAAM,aAAa,GAAG,CAAC,SAAkB,EAAa,EAAE;QACtD,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,WAAW,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAA;QAC7D,CAAC;QACD,OAAO,SAAsB,CAAA;IAC/B,CAAC,CAAA;IAED,mDAAmD;IACnD,MAAM,QAAQ,GAAG,CAAC,UAAsB,EAAE,IAAc,EAAW,EAAE;QACnE,MAAM,KAAK,GAAiB,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS;YACtE,CAAC,CAAC,sBAAsB;YACxB,CAAC,CAAC,oBAAoB,CAAC,CAAA;QACzB,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,CAC/D,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YACnB,CAAC,CAAC,CAAC;oBACD,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,SAAS;oBACnC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;iBAClE,CAAC;YACF,CAAC,CAAC,EAAE,CACP,CAAC,CAAA;IACJ,CAAC,CAAA;IAED;;;;;;;OAOG;IACH,MAAM,QAAQ,GAAG,CAAC,SAAkB,EAAE,IAAkB,EAAW,EAAE;QACnE,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;QAEvC,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAChD,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI;gBAAE,SAAQ;YACtC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACzC,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;YACzD,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;YAC9D,qEAAqE;YACrE,2CAA2C;YAC3C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO,EAAE,GAAG,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,SAAS,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAA;YAChF,CAAC;QACH,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,CAAA;QAC1E,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAA;QACxG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAA;IAC5B,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,KAAK,EACpB,SAAuB,EACvB,EAA0B,EAC1B,MAAe,EACf,IAAkB,EAClB,GAAoB,EACpB,GAAmB,EACJ,EAAE;QACjB,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,MAAM,CAAC;YACZ,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAA;gBAC9C,IAAI,MAAM,KAAK,SAAS;oBAAE,MAAM,IAAI,WAAW,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,CAAA;gBAE1F,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;gBAC7C,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC5B,MAAM,IAAI,WAAW,CAAC,kBAAkB,EAAE,qCAAqC,CAAC,CAAA;gBAClF,CAAC;gBACD,IAAI,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,aAAa;oBAAE,MAAM,IAAI,WAAW,CAAC,kBAAkB,EAAE,6BAA6B,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAA;gBACpI,IAAI,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;oBACnG,MAAM,IAAI,WAAW,CAAC,mBAAmB,EAAE,yBAAyB,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAA;gBAC5F,CAAC;gBACD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;gBACtC,IAAI,SAAS,GAAG,KAAK,CAAA;gBACrB,IAAI,QAAgC,CAAA;gBACpC,IAAI,CAAC;oBAEL,uEAAuE;oBACvE,uEAAuE;oBACvE,qEAAqE;oBACrE,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS;wBACpD,CAAC,CAAC,MAAM,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC;wBACtD,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;oBAC7C,QAAQ,GAAG,UAAU,CAAA;oBAErB,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;wBAAE,MAAM,IAAI,WAAW,CAAC,mBAAmB,EAAE,oCAAoC,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAA;oBAEpI,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;oBACnD,mEAAmE;oBACnE,+DAA+D;oBAC/D,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;wBACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAChC,UAAU,EACV,EAAE,MAAM,EAAE,UAAuB,EAAc,EAC/C,qBAAqB,EACrB,CAAC;gCACC,UAAU,EAAE,UAAU;gCACtB,KAAK,EAAE,CAAC;wCACN,IAAI,EAAE,WAAW,UAAU,CAAC,SAAS,aAAa,MAAM,CAAC,eAAe,UAAU;8CAC9E,8CAA8C;wCAClD,SAAS,EAAE,YAAY;qCACxB,CAAC;6BACH,CAAC,CACH,CAAA;wBACD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;wBACzD,OAAM;oBACR,CAAC;oBAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;oBACpE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;oBACvB,SAAS,GAAG,IAAI,CAAA;oBAEhB,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;wBAC3B,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,CAAA;wBACrC,OAAM;oBACR,CAAC;oBAED,sEAAsE;oBACtE,wEAAwE;oBACxE,iEAAiE;oBACjE,EAAE;oBACF,gEAAgE;oBAChE,uEAAuE;oBACvE,yCAAyC;oBACzC,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,EAAE,iBAAiB,CAAA;oBACzD,MAAM,WAAW,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;oBAEtF,MAAM,UAAU,GAAG,WAAW;wBAC5B,CAAC,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC;wBACxD,CAAC,CAAC,SAAS,CAAA;oBAEb,MAAM,IAAI,GAAG,UAAU,KAAK,SAAS;wBACnC,mEAAmE;wBACnE,wDAAwD;wBACxD,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,CAAC;wBAC/D,CAAC,CAAC,IAAI,CAAC,YAAY,CACjB,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,KAAK,EAClC,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,UAAU,CAC7D,CAAA;oBACH,uEAAuE;oBACvE,gDAAgD;oBAChD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;oBAC/C,OAAM;gBACN,CAAC;wBAAS,CAAC;oBACT,IAAI,QAAQ;wBAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;oBAC9C,IAAI,CAAC,SAAS;wBAAE,OAAO,EAAE,CAAA;gBAC3B,CAAC;YACH,CAAC;YAED,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,IAAI,GAAG,QAAQ,CAAE,MAAkC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;gBACxE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAA;gBAC3C,OAAM;YACR,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,EAAE,SAAS,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;gBACpF,OAAM;YACR,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,WAAW,CAAE,MAAkC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;gBAC3F,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,MAAM,IAAI,WAAW,CACnB,uBAAuB,EACvB,uCAAuC,EACvC,EAAE,MAAM,EAAE,qBAAqB,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CACrE,CAAA;gBACH,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;gBAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAA;gBAC3E,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAA;gBAC3C,OAAM;YACR,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,SAAS,GAAI,MAAkC,EAAE,CAAC,IAAI,CAAC,CAAA;gBAC7D,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;gBACtC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;oBAC/C,OAAM;gBACR,CAAC;gBACD,uEAAuE;gBACvE,wEAAwE;gBACxE,qEAAqE;gBACrE,oBAAoB;gBACpB,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;gBACtC,MAAM,oBAAoB,CACxB,QAAQ,IAAI,CAAC,EAAE,yBAAyB,IAAI,CAAC,MAAM,CAAC,KAAK,wBAAwB,CAClF,CAAA;YACH,CAAC;YAED,KAAK,aAAa,CAAC;YACnB,KAAK,UAAU,CAAC;YAChB,KAAK,WAAW,CAAC;YACjB,KAAK,aAAa,CAAC,CAAC,CAAC;gBACnB,mEAAmE;gBACnE,uEAAuE;gBACvE,iBAAiB;gBACjB,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACxB,MAAM,oBAAoB,CAAC,uDAAuD,CAAC,CAAA;gBACrF,CAAC;gBACD,MAAM,IAAI,WAAW,CACnB,sBAAsB,EACtB,uDAAuD,EACvD,EAAE,MAAM,EAAE,iCAAiC,EAAE,CAC9C,CAAA;YACH,CAAC;YAED,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;gBACvD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,MAAM,IAAI,WAAW,CACnB,gCAAgC,EAChC,iDAAiD,EACjD,EAAE,MAAM,EAAE,oCAAoC,EAAE,CACjD,CAAA;gBACH,CAAC;gBACD,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAA;gBAC/C,OAAM;YACR,CAAC;YAED;gBACE,MAAM,IAAI,WAAW,CAAC,oBAAoB,EAAE,0BAA0B,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QAC9F,CAAC;IACH,CAAC,CAAA;IAED;;;;;;;;;;OAUG;IACH,MAAM,YAAY,GAAG,CAAC,SAAiB,EAAE,IAAkB,EAAc,EAAE;QACzE,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QACtC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,UAAU,CAAA;QAC9C,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QACzC,MAAM,oBAAoB,CACxB,QAAQ,OAAO,CAAC,EAAE,yBAAyB,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG;cAChE,mEAAmE,CACtE,CAAA;IACH,CAAC,CAAA;IAED;;;;;;;OAOG;IACH,MAAM,SAAS,GAAG,CAChB,OAA2B,EAC3B,IAAkB,EACgE,EAAE;QACpF,MAAM,SAAS,GAAc,EAAE,CAAA;QAC/B,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAChD,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI;gBAAE,SAAQ;YACtC,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,UAAU,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS;gBAAE,SAAQ;YAC3F,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE;gBAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAA;YACxF,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;gBACpE,2DAA2D;gBAC3D,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBAAE,SAAQ;gBAChD,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,SAAS,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;YACzF,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;QACxD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxG,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;YAC/E,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS;aACvB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,MAAM,CAAC;aACpF,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,oBAAoB,KAAK,SAAS;eACrD,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,oBAAoB,CAAC;YAC3D,wEAAwE;aACvE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS;YACvD,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAEzD,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAC7C,MAAM,SAAS,GAAG,KAAK,KAAK,SAAS;YACnC,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS;mBAC5D,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;QAE7E,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,iBAAiB,CAAA;QACtD,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAClC,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAE3C,OAAO;YACL,0EAA0E;YAC1E,yDAAyD;YACzD,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACvB,IAAI,OAAO,CAAC,gBAAgB,KAAK,IAAI;oBAAE,OAAO,IAAI,CAAA;gBAClD,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAA;gBAC/C,OAAO,IAAI,CAAA;YACb,CAAC,CAAC;YACF,kEAAkE;YAClE,aAAa,EAAE,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YACnE,QAAQ;YACR,SAAS,EAAE,QAAQ,CAAC,MAAM;SAC3B,CAAA;IACH,CAAC,CAAA;IAED,4EAA4E;IAC5E,MAAM,UAAU,GAAG,CACjB,GAAmB,EACnB,EAA0B,EAC1B,IAAc,EACd,UAAsB,EAChB,EAAE;QACR,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YACtG,MAAM,IAAI,WAAW,CAAC,mBAAmB,EAAE,iCAAiC,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAA;QACpG,CAAC;QACD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;YACjB,cAAc,EAAE,mBAAmB;YACnC,eAAe,EAAE,UAAU;YAC3B,UAAU,EAAE,YAAY;YACxB,mBAAmB,EAAE,IAAI;SAC1B,CAAC,CAAA;QACF,MAAM,OAAO,GAAkB;YAC7B,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;SACjF,CAAA;QACD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACpB,IAAI,WAAW,GAAG,GAAS,EAAE,GAAE,CAAC,CAAA;QAChC,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YACvB,aAAa,CAAC,SAAS,CAAC,CAAA;YACxB,WAAW,EAAE,CAAA;YACb,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YACzB,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAC3B,CAAC,CAAA;QACD,MAAM,KAAK,GAAG,CAAC,KAAa,EAAW,EAAE;YACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBAAC,OAAO,EAAE,CAAC;gBAAC,OAAO,KAAK,CAAA;YAAC,CAAC;YACvE,IAAI,GAAG,CAAC,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAC;gBAChF,OAAO,EAAE,CAAC;gBAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBAAC,OAAO,KAAK,CAAA;YACxC,CAAC;YACD,IAAI,CAAC;gBAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,OAAO,EAAE,CAAC;gBAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBAAC,OAAO,KAAK,CAAA;YAAC,CAAC;YACzE,OAAO,IAAI,CAAA;QACb,CAAC,CAAA;QACD,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;YACjC,IAAI,GAAG,CAAC,cAAc,KAAK,CAAC;gBAAE,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACxD,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAA;QAC5B,SAAS,CAAC,KAAK,EAAE,CAAA;QACjB,OAAO,CAAC,OAAO,GAAG,OAAO,CAAA;QACzB,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAC1B,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAE1B,2EAA2E;QAC3E,0EAA0E;QAC1E,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,OAAM;QAExE,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,UAA0B,EAAE,EAAE;YAC1D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;gBAAE,OAAM;YACjC,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;gBAChE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,oBAAoB,CAAC;oBACtC,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,SAAS,EAAE,UAAU,CAAC,SAAS;oBAC/B,QAAQ;oBACR,KAAK;oBACL,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC,CAAC,CAAA;YACN,CAAC,CAAC,CAAA;YACF,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,kBAAkB,CAAC;gBACpC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,SAAS,EAAE,UAAU,CAAC,SAAS;gBAC/B,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE;aACzD,CAAC,CAAC,CAAC,CAAA;YACJ,OAAO,EAAE,CAAA;YACT,oEAAoE;YACpE,oEAAoE;YACpE,GAAG,CAAC,GAAG,EAAE,CAAA;QACX,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IAED;;;;;;;OAOG;IACH,MAAM,UAAU,GAAG,KAAK,EAAE,GAAoB,EAAE,GAAmB,EAAiB,EAAE;QACpF,MAAM,IAAI,GAAG,CAAC,MAAc,EAAE,IAAY,EAAE,OAAe,EAAQ,EAAE;YACnE,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAA;YAC7D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;QACvD,CAAC,CAAA;QACD,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,kBAAkB,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBAC9E,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,wDAAwD,CAAC,CAAA;gBAClF,OAAM;YACR,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAA;YACjE,MAAM,QAAQ,GAAG,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,qBAAqB,CAAA;YACtE,MAAM,aAAa,GAAG,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,iBAAiB,CAAA;YACvE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,QAAQ,IAAI,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChE,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,IAAI,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;gBAClE,IAAI,CAAC,GAAG,EAAE,oBAAoB,EAAE,gCAAgC,CAAC,CAAA;gBACjE,OAAM;YACR,CAAC;YACD,oEAAoE;YACpE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAA;YAClD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC,GAAG,EAAE,0BAA0B,EAAE,0CAA0C,CAAC,CAAA;gBACjF,OAAM;YACR,CAAC;YACD,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YAC5E,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACvE,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,iCAAiC,CAAC,CAAA;gBAC5D,OAAM;YACR,CAAC;YACD,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;oBAAC,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,uCAAuC,CAAC,CAAC;oBAAC,OAAM;gBAAC,CAAC;gBACvG,IAAI,KAAc,CAAA;gBAClB,IAAI,CAAC;oBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;gBAAC,CAAC;gBACrD,OAAO,KAAK,EAAE,CAAC;oBAAC,IAAI,CAAC,KAAK,YAAY,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,iBAAiB,EAAE,mCAAmC,CAAC,CAAC;oBAAC,OAAM;gBAAC,CAAC;gBAC7I,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;gBAC/C,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;gBAC1C,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;gBAC1B,OAAM;YACR,CAAC;YACD,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBAAC,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,gCAAgC,CAAC,CAAC;oBAAC,OAAM;gBAAC,CAAC;gBAC7F,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;gBACxB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAA;gBAC1D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;gBAC9C,OAAM;YACR,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;YACrC,MAAM,MAAM,GAAG,kBAAkB,CAC/B,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,kBAAkB,CAAC,CAAC,QAAQ;iBACjD,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;iBACnB,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CACjD,CAAA;YACD,0EAA0E;YAC1E,MAAM,IAAI,GAAG,MAAM,KAAK,EAAE,IAAI,MAAM,KAAK,UAAU;gBACjD,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC;oBACA,WAAW,EAAE,QAAQ,CAAC,WAAW;oBACjC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,KAAK,MAAM,CAAC;iBAC5E,CAAA;YACH,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,EAAE,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;gBACzE,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,wBAAwB,MAAM,GAAG,CAAC,CAAA;gBACzD,OAAM;YACR,CAAC;YACD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAA;YAC1D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QAC/B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,KAAK,YAAY,qBAAqB,EAAE,CAAC;gBAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,0BAA0B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;gBAAC,OAAM;YAAC,CAAC;YACrH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YAChE,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAA;QACzC,CAAC;IACH,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,GAAS,EAAE;QAC9B,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;YAC9B,OAAO,CAAC,OAAO,EAAE,CAAA;YACjB,IAAI,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,kBAAkB,CAAC;oBACxD,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC;oBAC1C,MAAM,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE;iBAC9D,CAAC,CAAC,CAAC,CAAA;gBACJ,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;YACnB,CAAC;YAAC,MAAM,CAAC;gBACP,2CAA2C;YAC7C,CAAC;QACH,CAAC;QACD,OAAO,CAAC,KAAK,EAAE,CAAA;IACjB,CAAC,CAAA;IAED,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAA;AACjH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,YAAY,CAAC,IAAa;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;AACzF,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,KAAyB;IAC7C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAChE,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IACtC,IAAI,KAAK,IAAI,CAAC;QAAE,MAAM,IAAI,WAAW,CAAC,kBAAkB,EAAE,8CAA8C,CAAC,CAAA;IACzG,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAA;AACjF,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,SAAiC;IACxD,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAChC,GAAG,QAAQ;QACX,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAC/B,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;KACxE,CAAC,CAAC,CAAA;AACL,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,WAAW,CAAI,OAAmB,EAAE,EAAU;IAC3D,IAAI,KAAiC,CAAA;IACrC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAY,CAAC,OAAO,EAAE,EAAE;QACjD,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QACpD,KAAK,CAAC,KAAK,EAAE,EAAE,CAAA;IACjB,CAAC,CAAC,CAAA;IACF,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;IAC/C,CAAC;YAAS,CAAC;QACT,IAAI,KAAK,KAAK,SAAS;YAAE,YAAY,CAAC,KAAK,CAAC,CAAA;IAC9C,CAAC;AACH,CAAC"}
@@ -0,0 +1,16 @@
1
+ export declare function atomicJson(file: string, value: unknown): Promise<void>;
2
+ /** Never recursively remove a path outside an explicitly owned parent. */
3
+ export declare function removeOwned(parent: string, target: string): Promise<void>;
4
+ /** Inter-process ownership; stale locks are reclaimed only after their owner exits. */
5
+ export declare class LeaseBusyError extends Error {
6
+ }
7
+ export declare function acquireLease(file: string): Promise<() => Promise<void>>;
8
+ /** Different agents may prepare the shared runtime concurrently on first launch. */
9
+ export declare function waitForLease(file: string, timeoutMs?: number): Promise<() => Promise<void>>;
10
+ /** Copy bytes, never host links. A private projection is the only public bind. */
11
+ export declare function copySafeTree(source: string, destination: string, options?: {
12
+ maxBytes?: number;
13
+ maxEntries?: number;
14
+ excludeNames?: readonly string[];
15
+ }): Promise<string>;
16
+ //# sourceMappingURL=sandbox-files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox-files.d.ts","sourceRoot":"","sources":["../src/sandbox-files.ts"],"names":[],"mappings":"AAMA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAK5E;AAED,0EAA0E;AAC1E,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO/E;AAED,uFAAuF;AACvF,qBAAa,cAAe,SAAQ,KAAK;CAAG;AAC5C,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAuB7E;AAED,oFAAoF;AACpF,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAY,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CASpG;AAED,kFAAkF;AAClF,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAoDnL"}