@privos_ai/app-server 0.5.0 → 0.6.2

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 (64) hide show
  1. package/README.md +169 -2
  2. package/dist/app-descriptor.d.ts.map +1 -1
  3. package/dist/app-descriptor.js +2 -0
  4. package/dist/app-descriptor.js.map +1 -1
  5. package/dist/auth/user-token.d.ts.map +1 -1
  6. package/dist/auth/user-token.js +21 -3
  7. package/dist/auth/user-token.js.map +1 -1
  8. package/dist/context/tool-call-context.d.ts +15 -2
  9. package/dist/context/tool-call-context.d.ts.map +1 -1
  10. package/dist/direct/express-router.d.ts +3 -0
  11. package/dist/direct/express-router.d.ts.map +1 -1
  12. package/dist/direct/express-router.js +70 -10
  13. package/dist/direct/express-router.js.map +1 -1
  14. package/dist/direct/http-ingress.js +1 -1
  15. package/dist/direct/http-ingress.js.map +1 -1
  16. package/dist/index.d.ts +16 -6
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +7 -2
  19. package/dist/index.js.map +1 -1
  20. package/dist/relay/hub-user-token-actor.d.ts +62 -0
  21. package/dist/relay/hub-user-token-actor.d.ts.map +1 -0
  22. package/dist/relay/hub-user-token-actor.js +81 -0
  23. package/dist/relay/hub-user-token-actor.js.map +1 -0
  24. package/dist/relay/relay-client.d.ts +81 -11
  25. package/dist/relay/relay-client.d.ts.map +1 -1
  26. package/dist/relay/relay-client.js +139 -15
  27. package/dist/relay/relay-client.js.map +1 -1
  28. package/dist/relay/standalone-control.d.ts +45 -0
  29. package/dist/relay/standalone-control.d.ts.map +1 -0
  30. package/dist/relay/standalone-control.js +338 -0
  31. package/dist/relay/standalone-control.js.map +1 -0
  32. package/dist/relay/standalone-identity.d.ts +69 -0
  33. package/dist/relay/standalone-identity.d.ts.map +1 -0
  34. package/dist/relay/standalone-identity.js +204 -0
  35. package/dist/relay/standalone-identity.js.map +1 -0
  36. package/dist/relay/standalone-readiness.d.ts +33 -0
  37. package/dist/relay/standalone-readiness.d.ts.map +1 -0
  38. package/dist/relay/standalone-readiness.js +80 -0
  39. package/dist/relay/standalone-readiness.js.map +1 -0
  40. package/dist/runtime-mode.d.ts +25 -0
  41. package/dist/runtime-mode.d.ts.map +1 -0
  42. package/dist/runtime-mode.js +72 -0
  43. package/dist/runtime-mode.js.map +1 -0
  44. package/dist/runtime.d.ts +9 -5
  45. package/dist/runtime.d.ts.map +1 -1
  46. package/dist/runtime.js +9 -7
  47. package/dist/runtime.js.map +1 -1
  48. package/dist/workload/dispatch-assertion.d.ts +20 -8
  49. package/dist/workload/dispatch-assertion.d.ts.map +1 -1
  50. package/dist/workload/dispatch-assertion.js +30 -23
  51. package/dist/workload/dispatch-assertion.js.map +1 -1
  52. package/dist/workload/index.d.ts +3 -3
  53. package/dist/workload/index.d.ts.map +1 -1
  54. package/dist/workload/index.js +1 -1
  55. package/dist/workload/index.js.map +1 -1
  56. package/dist/workload/managed-ingress-authority.d.ts +26 -0
  57. package/dist/workload/managed-ingress-authority.d.ts.map +1 -0
  58. package/dist/workload/managed-ingress-authority.js +45 -0
  59. package/dist/workload/managed-ingress-authority.js.map +1 -0
  60. package/dist/workload/workload-identity.d.ts +26 -2
  61. package/dist/workload/workload-identity.d.ts.map +1 -1
  62. package/dist/workload/workload-identity.js +377 -19
  63. package/dist/workload/workload-identity.js.map +1 -1
  64. package/package.json +1 -1
@@ -1,19 +1,30 @@
1
1
  import WebSocket from 'ws';
2
2
  import { buildPairingMetadata, } from '../app-descriptor.js';
3
3
  import { INVALID_REQUEST, PARSE_ERROR, errorResponse, jsonRpcError, } from '../protocol/errors.js';
4
+ import { buildHubUserTokenAuthOptions, extractRelayUserTokenCredential, } from './hub-user-token-actor.js';
4
5
  import { AppServerRuntime, DEFAULT_MAX_MESSAGE_BYTES, relayCallerAuthSurface, resolveCallerCredential, } from '../runtime.js';
5
6
  import { MessageTooLargeError, rawDataToText } from './message-adapter.js';
6
- import { extractRuntimeDispatchRelayEnvelopeV3, verifyRuntimeDispatchAssertionV3, } from '../workload/dispatch-assertion.js';
7
+ import { isStandaloneControlMethod, } from './standalone-control.js';
8
+ import { saveStandaloneIdentity, standaloneHubFingerprint, } from './standalone-identity.js';
9
+ import { assertRuntimeDispatchTrustConfigurationV3, extractRuntimeDispatchRelayEnvelopeV3, verifyRuntimeDispatchAssertionV3, } from '../workload/dispatch-assertion.js';
7
10
  const BACKOFF_MS = [1_000, 2_000, 5_000, 10_000, 30_000];
8
11
  const DEFAULT_PAIRING_TIMEOUT_MS = 30_000;
9
12
  const DEFAULT_OAUTH_TIMEOUT_MS = 15_000;
10
13
  const DEFAULT_OPEN_HANDSHAKE_TIMEOUT_MS = 15_000;
11
14
  /**
12
15
  * Pair with Privos using a one-time pairing URL.
13
- * Does not persist credentials — caller is responsible for saving them.
16
+ *
17
+ * A v1 Hub response (no `pairingVersion`) behaves exactly as before: credentials
18
+ * are returned only, and the caller is responsible for saving them. A v2 Hub
19
+ * response additionally carries Hub dispatch trust; by default this function
20
+ * validates it and persists ONE standalone identity file (mode `0600`, `wx` on
21
+ * create — same discipline as the Hub's own identity file), then prints the
22
+ * Hub fingerprint for out-of-band operator verification. Set
23
+ * `persistIdentityFile: false` to opt out and handle persistence yourself.
14
24
  */
15
25
  export function pairOverWebSocket(pairUrl, appMeta, WebSocketImpl = WebSocket, options) {
16
26
  const timeoutMs = options?.timeoutMs ?? DEFAULT_PAIRING_TIMEOUT_MS;
27
+ const persistIdentityFile = options?.persistIdentityFile ?? true;
17
28
  return new Promise((resolve, reject) => {
18
29
  const ws = new WebSocketImpl(pairUrl);
19
30
  let settled = false;
@@ -35,6 +46,51 @@ export function pairOverWebSocket(pairUrl, appMeta, WebSocketImpl = WebSocket, o
35
46
  reject(new Error(`Pairing timed out after ${timeoutMs}ms`));
36
47
  });
37
48
  }, timeoutMs);
49
+ async function finishPairing(input) {
50
+ if (input.pairingVersion !== 2) {
51
+ // Either a v1 Hub, or a manifest-announced registration still awaiting
52
+ // approval: both hand back credentials and nothing to persist, because
53
+ // trust is minted with the generation an approved ceiling creates.
54
+ return {
55
+ privosUrl: input.privosUrl,
56
+ clientId: input.clientId,
57
+ clientSecret: input.clientSecret,
58
+ mcpAppId: input.mcpAppId,
59
+ ...(input.awaitingApproval ? { awaitingApproval: true } : {}),
60
+ };
61
+ }
62
+ assertRuntimeDispatchTrustConfigurationV3(input.trust);
63
+ const trust = input.trust;
64
+ const fingerprint = standaloneHubFingerprint(trust.hubKid);
65
+ if (input.fingerprint !== undefined && input.fingerprint !== fingerprint) {
66
+ throw new Error('Pairing response fingerprint does not match the pinned Hub key.');
67
+ }
68
+ (options?.onFingerprint ?? ((line) => console.log(line)))(`PrivOS Hub fingerprint: ${fingerprint} — verify this out-of-band before trusting dispatch from this Hub.`);
69
+ let identityFilePath;
70
+ if (persistIdentityFile) {
71
+ const identity = {
72
+ pairingVersion: 2,
73
+ relayUrl: input.privosUrl,
74
+ clientId: input.clientId,
75
+ clientSecret: input.clientSecret,
76
+ trust,
77
+ fingerprint,
78
+ ...(input.mcpAppId ? { mcpAppId: input.mcpAppId } : {}),
79
+ pairedAt: Date.now(),
80
+ };
81
+ identityFilePath = await saveStandaloneIdentity(identity, { filePath: options?.identityFilePath });
82
+ }
83
+ return {
84
+ privosUrl: input.privosUrl,
85
+ clientId: input.clientId,
86
+ clientSecret: input.clientSecret,
87
+ mcpAppId: input.mcpAppId,
88
+ pairingVersion: 2,
89
+ trust,
90
+ fingerprint,
91
+ ...(identityFilePath ? { identityFilePath } : {}),
92
+ };
93
+ }
38
94
  ws.on('open', () => {
39
95
  try {
40
96
  ws.send(JSON.stringify({
@@ -44,6 +100,7 @@ export function pairOverWebSocket(pairUrl, appMeta, WebSocketImpl = WebSocket, o
44
100
  ...(appMeta.icon && { icon: appMeta.icon }),
45
101
  ...(appMeta.scopes?.length && { scopes: appMeta.scopes }),
46
102
  ...(appMeta.permissions?.length && { permissions: appMeta.permissions }),
103
+ ...(appMeta.manifest !== undefined && { manifest: appMeta.manifest }),
47
104
  }));
48
105
  }
49
106
  catch (err) {
@@ -58,7 +115,7 @@ export function pairOverWebSocket(pairUrl, appMeta, WebSocketImpl = WebSocket, o
58
115
  return;
59
116
  }
60
117
  if (msg.result?.paired) {
61
- const { clientId, clientSecret, relayUrl, app, mcpAppId, appId } = msg.result;
118
+ const { clientId, clientSecret, relayUrl, app, mcpAppId, appId, pairingVersion, trust, fingerprint, awaitingApproval } = msg.result;
62
119
  if (!clientId || !clientSecret || !relayUrl) {
63
120
  settle(() => reject(new Error('Pairing response missing credentials')));
64
121
  return;
@@ -70,12 +127,20 @@ export function pairOverWebSocket(pairUrl, appMeta, WebSocketImpl = WebSocket, o
70
127
  (typeof appId === 'string' && appId) ||
71
128
  (typeof app?._id === 'string' && app._id) ||
72
129
  undefined;
73
- settle(() => resolve({
74
- privosUrl,
75
- clientId,
76
- clientSecret,
77
- mcpAppId: resolvedAppId,
78
- }));
130
+ settle(() => {
131
+ void finishPairing({
132
+ privosUrl,
133
+ clientId,
134
+ clientSecret,
135
+ mcpAppId: resolvedAppId,
136
+ pairingVersion,
137
+ trust,
138
+ fingerprint,
139
+ awaitingApproval: awaitingApproval === true,
140
+ })
141
+ .then(resolve)
142
+ .catch(reject);
143
+ });
79
144
  try {
80
145
  ws.close();
81
146
  }
@@ -112,14 +177,46 @@ export async function pairFromDescriptor(pairUrl, descriptor, WebSocketImpl, opt
112
177
  * single reconnect timer, and explicit stop().
113
178
  */
114
179
  export function connectRelay(opts) {
180
+ if (!opts.standaloneIdentity && (!opts.clientId || !opts.clientSecret)) {
181
+ throw new Error('connectRelay requires clientId and clientSecret, or a standaloneIdentity controller.');
182
+ }
115
183
  const fetchImpl = opts.fetchImpl ?? fetch;
116
184
  const WebSocketImpl = opts.WebSocketImpl ?? WebSocket;
185
+ const effectiveRuntimeDispatchV3 = opts.standaloneIdentity
186
+ ? {
187
+ mode: 'required',
188
+ trust: () => opts.standaloneIdentity.getTrust(),
189
+ }
190
+ : opts.runtimeDispatchV3;
191
+ // `mcpAppId` is only known synchronously (without racing an async
192
+ // descriptor resolution) when it comes from already-loaded dispatch trust:
193
+ // standalone identity (rotation-safe via `getTrust()`) or a static
194
+ // (non-resolver) `runtimeDispatchV3.trust`. A dynamic trust resolver has no
195
+ // single app-wide `mcpAppId` to pin ahead of the first verified dispatch,
196
+ // so auto-wiring is skipped for that case — the app can still call
197
+ // `buildHubUserTokenAuthOptions` / `extractRelayUserTokenCredential` itself.
198
+ const staticTrustAffinity = opts.runtimeDispatchV3 && typeof opts.runtimeDispatchV3.trust !== 'function'
199
+ ? opts.runtimeDispatchV3.trust.affinity
200
+ : undefined;
201
+ const hubUserTokenAudience = opts.standaloneIdentity
202
+ ? () => opts.standaloneIdentity.getTrust().affinity.mcpAppId
203
+ : staticTrustAffinity?.mcpAppId;
204
+ const autoHubUserTokenAuth = (opts.hubUserTokenAuth ?? 'auto') === 'auto' &&
205
+ !opts.auth &&
206
+ !opts.extractCallerCredential &&
207
+ hubUserTokenAudience !== undefined;
208
+ const effectiveAuth = autoHubUserTokenAuth
209
+ ? buildHubUserTokenAuthOptions({ hubOrigin: opts.privosUrl, audience: hubUserTokenAudience })
210
+ : opts.auth;
211
+ const effectiveExtractCallerCredential = autoHubUserTokenAuth
212
+ ? extractRelayUserTokenCredential
213
+ : opts.extractCallerCredential;
117
214
  const runtime = opts.runtime ??
118
215
  new AppServerRuntime({
119
216
  descriptor: opts.descriptor,
120
217
  handler: opts.handler,
121
218
  ui: opts.ui,
122
- auth: opts.auth,
219
+ auth: effectiveAuth,
123
220
  mapAppError: opts.mapAppError,
124
221
  limits: opts.limits,
125
222
  logger: opts.logger,
@@ -132,6 +229,7 @@ export function connectRelay(opts) {
132
229
  const maxBufferedBytes = runtime.getLimits().maxBufferedBytes;
133
230
  let stopped = false;
134
231
  let activeWs = null;
232
+ let wsAuthenticated = false;
135
233
  let reconnectTimer = null;
136
234
  let openHandshakeTimer = null;
137
235
  let backoffIndex = 0;
@@ -180,10 +278,13 @@ export function connectRelay(opts) {
180
278
  }, delay);
181
279
  };
182
280
  async function getAccessToken(signal) {
281
+ const credentials = opts.standaloneIdentity
282
+ ? opts.standaloneIdentity.getCredentials()
283
+ : { clientId: opts.clientId, clientSecret: opts.clientSecret };
183
284
  const res = await fetchImpl(`${opts.privosUrl}/oauth/token`, {
184
285
  method: 'POST',
185
286
  headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
186
- body: `grant_type=client_credentials&client_id=${encodeURIComponent(opts.clientId)}&client_secret=${encodeURIComponent(opts.clientSecret)}`,
287
+ body: `grant_type=client_credentials&client_id=${encodeURIComponent(credentials.clientId)}&client_secret=${encodeURIComponent(credentials.clientSecret)}`,
187
288
  signal,
188
289
  });
189
290
  if (!res.ok)
@@ -249,6 +350,7 @@ export function connectRelay(opts) {
249
350
  return;
250
351
  }
251
352
  backoffIndex = 0;
353
+ wsAuthenticated = true;
252
354
  log('relay.connected', { generation });
253
355
  if (!connectedOnce) {
254
356
  connectedOnce = true;
@@ -275,8 +377,10 @@ export function connectRelay(opts) {
275
377
  ws.on('close', (code) => {
276
378
  clearOpenHandshakeTimer();
277
379
  log('relay.disconnected', { code, generation });
278
- if (activeWs === ws)
380
+ if (activeWs === ws) {
279
381
  activeWs = null;
382
+ wsAuthenticated = false;
383
+ }
280
384
  if (!stopped && generation === connectGeneration) {
281
385
  scheduleReconnect();
282
386
  }
@@ -381,13 +485,31 @@ export function connectRelay(opts) {
381
485
  const transportMsgObj = parsedJson && typeof parsedJson === 'object' && !Array.isArray(parsedJson)
382
486
  ? parsedJson
383
487
  : {};
488
+ // Standalone-production control channel: secret rotation, trust rotation,
489
+ // and capabilities push arrive as reserved notifications on this same
490
+ // authenticated connection. They are never MCP dispatch and are handled
491
+ // (verified against the currently pinned Hub key) before anything else.
492
+ if (opts.standaloneIdentity && isStandaloneControlMethod(transportMsgObj.method)) {
493
+ try {
494
+ await opts.standaloneIdentity.handleControlNotification(transportMsgObj.method, transportMsgObj.params);
495
+ log('relay.standalone_control.applied', { generation, method: transportMsgObj.method });
496
+ }
497
+ catch (err) {
498
+ log('relay.standalone_control.rejected', {
499
+ generation,
500
+ method: transportMsgObj.method,
501
+ message: err instanceof Error ? err.message : String(err),
502
+ });
503
+ }
504
+ return;
505
+ }
384
506
  let dispatchObject = parsedJson;
385
507
  let runtimeAuthorization;
386
508
  const isRequest = typeof transportMsgObj.method === 'string';
387
509
  const transportParams = isRecord(transportMsgObj.params) ? transportMsgObj.params : undefined;
388
510
  const transportMeta = isRecord(transportParams?._meta) ? transportParams._meta : undefined;
389
511
  const hasRuntimeAuthorization = Boolean(transportMeta && Object.prototype.hasOwnProperty.call(transportMeta, 'privosAuthorization'));
390
- if (isRequest && opts.runtimeDispatchV3) {
512
+ if (isRequest && effectiveRuntimeDispatchV3) {
391
513
  try {
392
514
  if (hasTopLevelRuntimeMetadata(transportMsgObj)) {
393
515
  throw new Error('dispatch_assertion_ambiguous');
@@ -400,7 +522,7 @@ export function connectRelay(opts) {
400
522
  runtimeAuthorization = await verifyRuntimeDispatchAssertionV3({
401
523
  compact: envelope.authorization.assertion,
402
524
  body: envelope.logicalRpc,
403
- security: opts.runtimeDispatchV3,
525
+ security: effectiveRuntimeDispatchV3,
404
526
  relayAuthorization: envelope.authorization,
405
527
  });
406
528
  dispatchObject = envelope.logicalRpc;
@@ -419,7 +541,7 @@ export function connectRelay(opts) {
419
541
  ? dispatchObject
420
542
  : {};
421
543
  const authSurface = relayCallerAuthSurface(transportMsgObj);
422
- const credentialResolution = await resolveCallerCredential(opts.extractCallerCredential, authSurface);
544
+ const credentialResolution = await resolveCallerCredential(effectiveExtractCallerCredential, authSurface);
423
545
  const requestId = Object.prototype.hasOwnProperty.call(msgObj, 'id') &&
424
546
  (typeof msgObj.id === 'string' || typeof msgObj.id === 'number' || msgObj.id === null)
425
547
  ? msgObj.id
@@ -466,8 +588,10 @@ export function connectRelay(opts) {
466
588
  });
467
589
  return {
468
590
  whenConnected: () => connectedPromise,
591
+ isConnected: () => wsAuthenticated && activeWs !== null && activeWs.readyState === WebSocketImpl.OPEN,
469
592
  async stop() {
470
593
  stopped = true;
594
+ wsAuthenticated = false;
471
595
  clearReconnectTimer();
472
596
  clearOpenHandshakeTimer();
473
597
  connectGeneration += 1;
@@ -1 +1 @@
1
- {"version":3,"file":"relay-client.js","sourceRoot":"","sources":["../../src/relay/relay-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relay-client.js","sourceRoot":"","sources":["../../src/relay/relay-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { type RuntimeDispatchTrustV3 } from '../workload/dispatch-assertion.js';
2
+ import { type LoadedStandaloneIdentity } from './standalone-identity.js';
3
+ export declare const STANDALONE_SECRET_ROTATE_METHOD = "notifications/privos.standaloneSecretRotate";
4
+ export declare const STANDALONE_TRUST_ROTATE_METHOD = "notifications/privos.standaloneTrustRotate";
5
+ export declare const STANDALONE_CAPABILITIES_CHANGED_METHOD = "notifications/privos.standaloneCapabilitiesChanged";
6
+ export declare function isStandaloneControlMethod(method: unknown): method is typeof STANDALONE_SECRET_ROTATE_METHOD | typeof STANDALONE_TRUST_ROTATE_METHOD | typeof STANDALONE_CAPABILITIES_CHANGED_METHOD;
7
+ export type StandaloneEffectiveCapabilities = Readonly<{
8
+ scopes: readonly string[];
9
+ grantEpoch: number;
10
+ updatedAt: number;
11
+ }>;
12
+ export declare class StandaloneControlError extends Error {
13
+ constructor(message: string);
14
+ }
15
+ export interface StandaloneRelayIdentityController {
16
+ getCredentials(): Readonly<{
17
+ clientId: string;
18
+ clientSecret: string;
19
+ }>;
20
+ getTrust(): RuntimeDispatchTrustV3;
21
+ peekEffectiveCapabilities(): StandaloneEffectiveCapabilities;
22
+ onCapabilitiesChanged(listener: (capabilities: StandaloneEffectiveCapabilities) => void): () => void;
23
+ /**
24
+ * Internal seam used by `connectRelay` when a `notifications/privos.standalone*`
25
+ * message arrives on an open, authenticated Relay connection. Not for app use.
26
+ */
27
+ handleControlNotification(method: string, params: unknown): Promise<'handled' | 'ignored'>;
28
+ }
29
+ export type StandaloneRelayIdentityControllerOptions = Readonly<{
30
+ filePath?: string;
31
+ now?: () => number;
32
+ clockSkewSeconds?: number;
33
+ onRotated?: (identity: LoadedStandaloneIdentity) => void;
34
+ logger?: (event: string, fields: Record<string, unknown>) => void;
35
+ }>;
36
+ /**
37
+ * Builds the mutable, in-process bridge between the persisted identity file
38
+ * and a live Relay connection: current credentials/trust for outbound OAuth
39
+ * and dispatch verification, plus the capabilities event surface, all kept in
40
+ * sync as verified rotation/capabilities control messages arrive.
41
+ */
42
+ export declare function createStandaloneRelayIdentityController(loaded: LoadedStandaloneIdentity, options?: StandaloneRelayIdentityControllerOptions): StandaloneRelayIdentityController;
43
+ /** Convenience: load the identity file and build its controller in one call. */
44
+ export declare function loadStandaloneRelayIdentityController(options?: StandaloneRelayIdentityControllerOptions): StandaloneRelayIdentityController;
45
+ //# sourceMappingURL=standalone-control.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standalone-control.d.ts","sourceRoot":"","sources":["../../src/relay/standalone-control.ts"],"names":[],"mappings":"AAuBA,OAAO,EAEN,KAAK,sBAAsB,EAC3B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAIN,KAAK,wBAAwB,EAE7B,MAAM,0BAA0B,CAAC;AAElC,eAAO,MAAM,+BAA+B,gDAAgD,CAAC;AAC7F,eAAO,MAAM,8BAA8B,+CAA+C,CAAC;AAC3F,eAAO,MAAM,sCAAsC,uDAAuD,CAAC;AAQ3G,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAC/D,OAAO,+BAA+B,GACtC,OAAO,8BAA8B,GACrC,OAAO,sCAAsC,CAE/C;AAED,MAAM,MAAM,+BAA+B,GAAG,QAAQ,CAAC;IACtD,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CAClB,CAAC,CAAC;AAYH,qBAAa,sBAAuB,SAAQ,KAAK;gBACpC,OAAO,EAAE,MAAM;CAI3B;AA+ID,MAAM,WAAW,iCAAiC;IACjD,cAAc,IAAI,QAAQ,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvE,QAAQ,IAAI,sBAAsB,CAAC;IACnC,yBAAyB,IAAI,+BAA+B,CAAC;IAC7D,qBAAqB,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,+BAA+B,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IACrG;;;OAGG;IACH,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;CAC3F;AAED,MAAM,MAAM,wCAAwC,GAAG,QAAQ,CAAC;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACzD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAClE,CAAC,CAAC;AAkDH;;;;;GAKG;AACH,wBAAgB,uCAAuC,CACtD,MAAM,EAAE,wBAAwB,EAChC,OAAO,GAAE,wCAA6C,GACpD,iCAAiC,CA6GnC;AAED,gFAAgF;AAChF,wBAAgB,qCAAqC,CACpD,OAAO,GAAE,wCAA6C,GACpD,iCAAiC,CAGnC"}