@privos_ai/app-server 0.4.0 → 0.6.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 (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 +66 -11
  25. package/dist/relay/relay-client.d.ts.map +1 -1
  26. package/dist/relay/relay-client.js +134 -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 +21 -0
  49. package/dist/workload/dispatch-assertion.d.ts.map +1 -1
  50. package/dist/workload/dispatch-assertion.js +48 -15
  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,48 @@ 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
+ // v1 Hub — additive-only, unchanged behavior: no trust, no persistence.
52
+ return {
53
+ privosUrl: input.privosUrl,
54
+ clientId: input.clientId,
55
+ clientSecret: input.clientSecret,
56
+ mcpAppId: input.mcpAppId,
57
+ };
58
+ }
59
+ assertRuntimeDispatchTrustConfigurationV3(input.trust);
60
+ const trust = input.trust;
61
+ const fingerprint = standaloneHubFingerprint(trust.hubKid);
62
+ if (input.fingerprint !== undefined && input.fingerprint !== fingerprint) {
63
+ throw new Error('Pairing response fingerprint does not match the pinned Hub key.');
64
+ }
65
+ (options?.onFingerprint ?? ((line) => console.log(line)))(`PrivOS Hub fingerprint: ${fingerprint} — verify this out-of-band before trusting dispatch from this Hub.`);
66
+ let identityFilePath;
67
+ if (persistIdentityFile) {
68
+ const identity = {
69
+ pairingVersion: 2,
70
+ relayUrl: input.privosUrl,
71
+ clientId: input.clientId,
72
+ clientSecret: input.clientSecret,
73
+ trust,
74
+ fingerprint,
75
+ ...(input.mcpAppId ? { mcpAppId: input.mcpAppId } : {}),
76
+ pairedAt: Date.now(),
77
+ };
78
+ identityFilePath = await saveStandaloneIdentity(identity, { filePath: options?.identityFilePath });
79
+ }
80
+ return {
81
+ privosUrl: input.privosUrl,
82
+ clientId: input.clientId,
83
+ clientSecret: input.clientSecret,
84
+ mcpAppId: input.mcpAppId,
85
+ pairingVersion: 2,
86
+ trust,
87
+ fingerprint,
88
+ ...(identityFilePath ? { identityFilePath } : {}),
89
+ };
90
+ }
38
91
  ws.on('open', () => {
39
92
  try {
40
93
  ws.send(JSON.stringify({
@@ -58,7 +111,7 @@ export function pairOverWebSocket(pairUrl, appMeta, WebSocketImpl = WebSocket, o
58
111
  return;
59
112
  }
60
113
  if (msg.result?.paired) {
61
- const { clientId, clientSecret, relayUrl, app, mcpAppId, appId } = msg.result;
114
+ const { clientId, clientSecret, relayUrl, app, mcpAppId, appId, pairingVersion, trust, fingerprint } = msg.result;
62
115
  if (!clientId || !clientSecret || !relayUrl) {
63
116
  settle(() => reject(new Error('Pairing response missing credentials')));
64
117
  return;
@@ -70,12 +123,19 @@ export function pairOverWebSocket(pairUrl, appMeta, WebSocketImpl = WebSocket, o
70
123
  (typeof appId === 'string' && appId) ||
71
124
  (typeof app?._id === 'string' && app._id) ||
72
125
  undefined;
73
- settle(() => resolve({
74
- privosUrl,
75
- clientId,
76
- clientSecret,
77
- mcpAppId: resolvedAppId,
78
- }));
126
+ settle(() => {
127
+ void finishPairing({
128
+ privosUrl,
129
+ clientId,
130
+ clientSecret,
131
+ mcpAppId: resolvedAppId,
132
+ pairingVersion,
133
+ trust,
134
+ fingerprint,
135
+ })
136
+ .then(resolve)
137
+ .catch(reject);
138
+ });
79
139
  try {
80
140
  ws.close();
81
141
  }
@@ -112,14 +172,46 @@ export async function pairFromDescriptor(pairUrl, descriptor, WebSocketImpl, opt
112
172
  * single reconnect timer, and explicit stop().
113
173
  */
114
174
  export function connectRelay(opts) {
175
+ if (!opts.standaloneIdentity && (!opts.clientId || !opts.clientSecret)) {
176
+ throw new Error('connectRelay requires clientId and clientSecret, or a standaloneIdentity controller.');
177
+ }
115
178
  const fetchImpl = opts.fetchImpl ?? fetch;
116
179
  const WebSocketImpl = opts.WebSocketImpl ?? WebSocket;
180
+ const effectiveRuntimeDispatchV3 = opts.standaloneIdentity
181
+ ? {
182
+ mode: 'required',
183
+ trust: () => opts.standaloneIdentity.getTrust(),
184
+ }
185
+ : opts.runtimeDispatchV3;
186
+ // `mcpAppId` is only known synchronously (without racing an async
187
+ // descriptor resolution) when it comes from already-loaded dispatch trust:
188
+ // standalone identity (rotation-safe via `getTrust()`) or a static
189
+ // (non-resolver) `runtimeDispatchV3.trust`. A dynamic trust resolver has no
190
+ // single app-wide `mcpAppId` to pin ahead of the first verified dispatch,
191
+ // so auto-wiring is skipped for that case — the app can still call
192
+ // `buildHubUserTokenAuthOptions` / `extractRelayUserTokenCredential` itself.
193
+ const staticTrustAffinity = opts.runtimeDispatchV3 && typeof opts.runtimeDispatchV3.trust !== 'function'
194
+ ? opts.runtimeDispatchV3.trust.affinity
195
+ : undefined;
196
+ const hubUserTokenAudience = opts.standaloneIdentity
197
+ ? () => opts.standaloneIdentity.getTrust().affinity.mcpAppId
198
+ : staticTrustAffinity?.mcpAppId;
199
+ const autoHubUserTokenAuth = (opts.hubUserTokenAuth ?? 'auto') === 'auto' &&
200
+ !opts.auth &&
201
+ !opts.extractCallerCredential &&
202
+ hubUserTokenAudience !== undefined;
203
+ const effectiveAuth = autoHubUserTokenAuth
204
+ ? buildHubUserTokenAuthOptions({ hubOrigin: opts.privosUrl, audience: hubUserTokenAudience })
205
+ : opts.auth;
206
+ const effectiveExtractCallerCredential = autoHubUserTokenAuth
207
+ ? extractRelayUserTokenCredential
208
+ : opts.extractCallerCredential;
117
209
  const runtime = opts.runtime ??
118
210
  new AppServerRuntime({
119
211
  descriptor: opts.descriptor,
120
212
  handler: opts.handler,
121
213
  ui: opts.ui,
122
- auth: opts.auth,
214
+ auth: effectiveAuth,
123
215
  mapAppError: opts.mapAppError,
124
216
  limits: opts.limits,
125
217
  logger: opts.logger,
@@ -132,6 +224,7 @@ export function connectRelay(opts) {
132
224
  const maxBufferedBytes = runtime.getLimits().maxBufferedBytes;
133
225
  let stopped = false;
134
226
  let activeWs = null;
227
+ let wsAuthenticated = false;
135
228
  let reconnectTimer = null;
136
229
  let openHandshakeTimer = null;
137
230
  let backoffIndex = 0;
@@ -180,10 +273,13 @@ export function connectRelay(opts) {
180
273
  }, delay);
181
274
  };
182
275
  async function getAccessToken(signal) {
276
+ const credentials = opts.standaloneIdentity
277
+ ? opts.standaloneIdentity.getCredentials()
278
+ : { clientId: opts.clientId, clientSecret: opts.clientSecret };
183
279
  const res = await fetchImpl(`${opts.privosUrl}/oauth/token`, {
184
280
  method: 'POST',
185
281
  headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
186
- body: `grant_type=client_credentials&client_id=${encodeURIComponent(opts.clientId)}&client_secret=${encodeURIComponent(opts.clientSecret)}`,
282
+ body: `grant_type=client_credentials&client_id=${encodeURIComponent(credentials.clientId)}&client_secret=${encodeURIComponent(credentials.clientSecret)}`,
187
283
  signal,
188
284
  });
189
285
  if (!res.ok)
@@ -249,6 +345,7 @@ export function connectRelay(opts) {
249
345
  return;
250
346
  }
251
347
  backoffIndex = 0;
348
+ wsAuthenticated = true;
252
349
  log('relay.connected', { generation });
253
350
  if (!connectedOnce) {
254
351
  connectedOnce = true;
@@ -275,8 +372,10 @@ export function connectRelay(opts) {
275
372
  ws.on('close', (code) => {
276
373
  clearOpenHandshakeTimer();
277
374
  log('relay.disconnected', { code, generation });
278
- if (activeWs === ws)
375
+ if (activeWs === ws) {
279
376
  activeWs = null;
377
+ wsAuthenticated = false;
378
+ }
280
379
  if (!stopped && generation === connectGeneration) {
281
380
  scheduleReconnect();
282
381
  }
@@ -381,13 +480,31 @@ export function connectRelay(opts) {
381
480
  const transportMsgObj = parsedJson && typeof parsedJson === 'object' && !Array.isArray(parsedJson)
382
481
  ? parsedJson
383
482
  : {};
483
+ // Standalone-production control channel: secret rotation, trust rotation,
484
+ // and capabilities push arrive as reserved notifications on this same
485
+ // authenticated connection. They are never MCP dispatch and are handled
486
+ // (verified against the currently pinned Hub key) before anything else.
487
+ if (opts.standaloneIdentity && isStandaloneControlMethod(transportMsgObj.method)) {
488
+ try {
489
+ await opts.standaloneIdentity.handleControlNotification(transportMsgObj.method, transportMsgObj.params);
490
+ log('relay.standalone_control.applied', { generation, method: transportMsgObj.method });
491
+ }
492
+ catch (err) {
493
+ log('relay.standalone_control.rejected', {
494
+ generation,
495
+ method: transportMsgObj.method,
496
+ message: err instanceof Error ? err.message : String(err),
497
+ });
498
+ }
499
+ return;
500
+ }
384
501
  let dispatchObject = parsedJson;
385
502
  let runtimeAuthorization;
386
503
  const isRequest = typeof transportMsgObj.method === 'string';
387
504
  const transportParams = isRecord(transportMsgObj.params) ? transportMsgObj.params : undefined;
388
505
  const transportMeta = isRecord(transportParams?._meta) ? transportParams._meta : undefined;
389
506
  const hasRuntimeAuthorization = Boolean(transportMeta && Object.prototype.hasOwnProperty.call(transportMeta, 'privosAuthorization'));
390
- if (isRequest && opts.runtimeDispatchV3) {
507
+ if (isRequest && effectiveRuntimeDispatchV3) {
391
508
  try {
392
509
  if (hasTopLevelRuntimeMetadata(transportMsgObj)) {
393
510
  throw new Error('dispatch_assertion_ambiguous');
@@ -400,7 +517,7 @@ export function connectRelay(opts) {
400
517
  runtimeAuthorization = await verifyRuntimeDispatchAssertionV3({
401
518
  compact: envelope.authorization.assertion,
402
519
  body: envelope.logicalRpc,
403
- security: opts.runtimeDispatchV3,
520
+ security: effectiveRuntimeDispatchV3,
404
521
  relayAuthorization: envelope.authorization,
405
522
  });
406
523
  dispatchObject = envelope.logicalRpc;
@@ -419,7 +536,7 @@ export function connectRelay(opts) {
419
536
  ? dispatchObject
420
537
  : {};
421
538
  const authSurface = relayCallerAuthSurface(transportMsgObj);
422
- const credentialResolution = await resolveCallerCredential(opts.extractCallerCredential, authSurface);
539
+ const credentialResolution = await resolveCallerCredential(effectiveExtractCallerCredential, authSurface);
423
540
  const requestId = Object.prototype.hasOwnProperty.call(msgObj, 'id') &&
424
541
  (typeof msgObj.id === 'string' || typeof msgObj.id === 'number' || msgObj.id === null)
425
542
  ? msgObj.id
@@ -466,8 +583,10 @@ export function connectRelay(opts) {
466
583
  });
467
584
  return {
468
585
  whenConnected: () => connectedPromise,
586
+ isConnected: () => wsAuthenticated && activeWs !== null && activeWs.readyState === WebSocketImpl.OPEN,
469
587
  async stop() {
470
588
  stopped = true;
589
+ wsAuthenticated = false;
471
590
  clearReconnectTimer();
472
591
  clearOpenHandshakeTimer();
473
592
  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"}