@relayfile/relay-helpers 0.4.6 → 0.4.8

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.
@@ -1,12 +1,26 @@
1
1
  import assert from 'node:assert/strict';
2
2
  import test from 'node:test';
3
- import { PreviewTransport, bindPreviewTransport, clearPreviewTransport, getProcessRelayTransport, githubClient, linearClient, relayClient, slackClient, setPreviewTransport, telegramClient, } from './index.js';
3
+ import { PreviewTransport, RelayWriteAuthorizationError, bindRelayWriteAuthorizer, bindPreviewTransport, clearPreviewTransport, getProcessRelayTransport, githubClient, linearClient, relayClient, slackClient, setPreviewTransport, telegramClient, runWithRelayWriteAuthorizer, } from './index.js';
4
+ import { executeRelayWrite } from './write-authorizer.js';
4
5
  function failOnNetwork(counter) {
5
6
  return async () => {
6
7
  counter.calls += 1;
7
8
  throw new Error('preview transport attempted a network request');
8
9
  };
9
10
  }
11
+ function barrier(parties) {
12
+ let waiting = 0;
13
+ let release;
14
+ const ready = new Promise((resolve) => {
15
+ release = resolve;
16
+ });
17
+ return async () => {
18
+ waiting += 1;
19
+ if (waiting === parties)
20
+ release?.();
21
+ await ready;
22
+ };
23
+ }
10
24
  test('Slack preview records a post and threaded reply with stable simulated receipts', async () => {
11
25
  const preview = new PreviewTransport();
12
26
  const network = { calls: 0 };
@@ -152,6 +166,398 @@ test('process preview binding outranks production-like ambient credentials', asy
152
166
  }
153
167
  }
154
168
  });
169
+ test('final-write denial cannot be bypassed by an explicit PreviewTransport', async () => {
170
+ const authoredPreview = new PreviewTransport();
171
+ const network = { calls: 0 };
172
+ const deniedActions = [];
173
+ let authorizationCalls = 0;
174
+ const restoreAuthorization = bindRelayWriteAuthorizer((request) => {
175
+ authorizationCalls += 1;
176
+ deniedActions.push({
177
+ kind: 'provider.write',
178
+ status: 'denied',
179
+ provider: request.provider,
180
+ resource: request.resource,
181
+ path: request.path,
182
+ body: '[REDACTED]',
183
+ });
184
+ return { allowed: false, reason: 'local write policy denies provider writes' };
185
+ });
186
+ try {
187
+ await assert.rejects(() => slackClient({
188
+ transport: authoredPreview,
189
+ relayfileApiToken: 'rf_live_do_not_leak',
190
+ fetchImpl: failOnNetwork(network),
191
+ }).post('C999', 'secret message body'), (error) => {
192
+ assert.ok(error instanceof RelayWriteAuthorizationError);
193
+ assert.equal(error.code, 'RELAY_WRITE_DENIED');
194
+ assert.equal(error.provider, 'slack');
195
+ assert.equal(error.resource, 'messages');
196
+ assert.doesNotMatch(error.message, /secret|rf_live/u);
197
+ return true;
198
+ });
199
+ }
200
+ finally {
201
+ restoreAuthorization();
202
+ }
203
+ assert.equal(authorizationCalls, 1);
204
+ assert.equal(deniedActions.length, 1);
205
+ assert.equal(deniedActions[0]?.body, '[REDACTED]');
206
+ assert.equal(authoredPreview.actions.length, 0);
207
+ assert.equal(network.calls, 0);
208
+ });
209
+ test('final-write authorization redirects an explicit transport to the canonical preview', async () => {
210
+ const authoredPreview = new PreviewTransport();
211
+ const canonicalPreview = new PreviewTransport();
212
+ const restoreAuthorization = bindRelayWriteAuthorizer(() => ({
213
+ allowed: true,
214
+ transport: canonicalPreview,
215
+ }));
216
+ try {
217
+ const result = await slackClient({ transport: authoredPreview }).post('C123', 'canonical only');
218
+ assert.equal(result.ts, 'preview-slack-messages-0001');
219
+ }
220
+ finally {
221
+ restoreAuthorization();
222
+ }
223
+ assert.equal(authoredPreview.actions.length, 0);
224
+ assert.equal(canonicalPreview.actions.length, 1);
225
+ assert.equal(canonicalPreview.actions[0]?.provider, 'slack');
226
+ assert.equal(canonicalPreview.actions[0]?.resource, 'messages');
227
+ });
228
+ test('outer denial cannot be relaxed or redirected by later public bindings across package copies', async () => {
229
+ const duplicate = await import(`./write-authorizer.js?copy=${Date.now()}`);
230
+ const authoredPreview = new PreviewTransport();
231
+ const maliciousPreview = new PreviewTransport();
232
+ let outerCalls = 0;
233
+ let maliciousCalls = 0;
234
+ const restoreOuter = bindRelayWriteAuthorizer(async () => {
235
+ outerCalls += 1;
236
+ await Promise.resolve();
237
+ return { allowed: false, reason: 'immutable outer denial' };
238
+ });
239
+ const restoreMalicious = bindRelayWriteAuthorizer(() => {
240
+ maliciousCalls += 1;
241
+ return { allowed: true, transport: maliciousPreview };
242
+ });
243
+ try {
244
+ await assert.rejects(() => duplicate.executeRelayWrite(authoredPreview, {
245
+ provider: 'slack',
246
+ resource: 'messages',
247
+ parameters: { channelId: 'C-malicious' },
248
+ path: '/slack/channels/C-malicious/messages',
249
+ body: { text: 'must not escape' },
250
+ }), (error) => {
251
+ assert.equal(error.code, 'RELAY_WRITE_DENIED');
252
+ return true;
253
+ });
254
+ }
255
+ finally {
256
+ restoreMalicious();
257
+ restoreOuter();
258
+ }
259
+ assert.equal(outerCalls, 1);
260
+ assert.equal(maliciousCalls, 0);
261
+ assert.equal(authoredPreview.actions.length, 0);
262
+ assert.equal(maliciousPreview.actions.length, 0);
263
+ });
264
+ test('outer canonical transport cannot be replaced by a later public transport binding', async () => {
265
+ const transportEntry = await import('./transport.js');
266
+ const authoredPreview = new PreviewTransport();
267
+ const canonicalPreview = new PreviewTransport();
268
+ const maliciousPreview = new PreviewTransport();
269
+ let outerCalls = 0;
270
+ let maliciousCalls = 0;
271
+ const restoreOuter = bindRelayWriteAuthorizer(async () => {
272
+ outerCalls += 1;
273
+ await Promise.resolve();
274
+ return { allowed: true, transport: canonicalPreview };
275
+ });
276
+ const restoreMalicious = transportEntry.bindRelayWriteAuthorizer(async () => {
277
+ maliciousCalls += 1;
278
+ await Promise.resolve();
279
+ return { allowed: true, transport: maliciousPreview };
280
+ });
281
+ try {
282
+ const result = await slackClient({ transport: authoredPreview }).post('C123', 'outer wins');
283
+ assert.equal(result.ts, 'preview-slack-messages-0001');
284
+ }
285
+ finally {
286
+ restoreMalicious();
287
+ restoreOuter();
288
+ }
289
+ assert.equal(outerCalls, 1);
290
+ assert.equal(maliciousCalls, 1);
291
+ assert.equal(authoredPreview.actions.length, 0);
292
+ assert.equal(maliciousPreview.actions.length, 0);
293
+ assert.equal(canonicalPreview.actions.length, 1);
294
+ });
295
+ test('later bindings may tighten an outer canonical preview decision', async () => {
296
+ const authoredPreview = new PreviewTransport();
297
+ const canonicalPreview = new PreviewTransport();
298
+ let outerCalls = 0;
299
+ let innerCalls = 0;
300
+ const restoreOuter = bindRelayWriteAuthorizer(() => {
301
+ outerCalls += 1;
302
+ return { allowed: true, transport: canonicalPreview };
303
+ });
304
+ const restoreInner = bindRelayWriteAuthorizer(async () => {
305
+ innerCalls += 1;
306
+ await Promise.resolve();
307
+ return { allowed: false, reason: 'nested policy is stricter' };
308
+ });
309
+ try {
310
+ await assert.rejects(() => slackClient({ transport: authoredPreview }).post('C123', 'tightened'), RelayWriteAuthorizationError);
311
+ }
312
+ finally {
313
+ restoreInner();
314
+ restoreOuter();
315
+ }
316
+ assert.equal(outerCalls, 1);
317
+ assert.equal(innerCalls, 1);
318
+ assert.equal(authoredPreview.actions.length, 0);
319
+ assert.equal(canonicalPreview.actions.length, 0);
320
+ });
321
+ test('known global authorization symbol cannot be overwritten or cleared', async () => {
322
+ const key = Symbol.for('agentworkforce.relay-write-authorizer');
323
+ const registry = globalThis;
324
+ const coordinator = registry[key];
325
+ const descriptor = Object.getOwnPropertyDescriptor(globalThis, key);
326
+ const canonicalPreview = new PreviewTransport();
327
+ const authoredPreview = new PreviewTransport();
328
+ const restore = bindRelayWriteAuthorizer(() => ({ allowed: true, transport: canonicalPreview }));
329
+ try {
330
+ assert.ok(coordinator);
331
+ assert.equal(Object.isFrozen(coordinator), true);
332
+ assert.equal(descriptor?.configurable, false);
333
+ assert.equal(descriptor?.writable, false);
334
+ assert.throws(() => {
335
+ registry[key] = () => ({ allowed: true });
336
+ }, TypeError);
337
+ assert.equal(Reflect.deleteProperty(globalThis, key), false);
338
+ assert.strictEqual(registry[key], coordinator);
339
+ await slackClient({ transport: authoredPreview }).post('C123', 'registry survived');
340
+ }
341
+ finally {
342
+ restore();
343
+ }
344
+ assert.equal(canonicalPreview.actions.length, 1);
345
+ assert.equal(authoredPreview.actions.length, 0);
346
+ });
347
+ test('overlapping authorization scopes isolate deny and canonical preview decisions', async () => {
348
+ const synchronize = barrier(2);
349
+ const deniedAuthored = new PreviewTransport();
350
+ const previewAuthored = new PreviewTransport();
351
+ const canonicalPreview = new PreviewTransport();
352
+ let denyCalls = 0;
353
+ let previewCalls = 0;
354
+ let denialCaught = false;
355
+ await Promise.all([
356
+ runWithRelayWriteAuthorizer(async () => {
357
+ denyCalls += 1;
358
+ await Promise.resolve();
359
+ return { allowed: false, reason: 'deny scope' };
360
+ }, async () => {
361
+ await synchronize();
362
+ try {
363
+ await slackClient({ transport: deniedAuthored }).post('C-deny', 'blocked');
364
+ }
365
+ catch (error) {
366
+ denialCaught = error instanceof RelayWriteAuthorizationError;
367
+ }
368
+ }),
369
+ runWithRelayWriteAuthorizer(async () => {
370
+ previewCalls += 1;
371
+ await Promise.resolve();
372
+ return { allowed: true, transport: canonicalPreview };
373
+ }, async () => {
374
+ await synchronize();
375
+ const result = await slackClient({ transport: previewAuthored }).post('C-preview', 'isolated');
376
+ assert.equal(result.ts, 'preview-slack-messages-0001');
377
+ }),
378
+ ]);
379
+ assert.equal(denialCaught, true);
380
+ assert.equal(denyCalls, 1);
381
+ assert.equal(previewCalls, 1);
382
+ assert.equal(deniedAuthored.actions.length, 0);
383
+ assert.equal(previewAuthored.actions.length, 0);
384
+ assert.equal(canonicalPreview.actions.length, 1);
385
+ assert.equal(canonicalPreview.actions[0]?.parameters?.channelId, 'C-preview');
386
+ });
387
+ test('custom transports and unknown provider/resource requests are denied before mutation', async () => {
388
+ const customCalls = { reads: 0, lists: 0, writes: 0 };
389
+ const customTransport = {
390
+ async read() {
391
+ customCalls.reads += 1;
392
+ return undefined;
393
+ },
394
+ async list() {
395
+ customCalls.lists += 1;
396
+ return [];
397
+ },
398
+ async write(request) {
399
+ customCalls.writes += 1;
400
+ return { path: request.path, absolutePath: request.path, receipt: { id: 'unsafe-receipt' } };
401
+ },
402
+ };
403
+ const deniedActions = [];
404
+ const restoreAuthorization = bindRelayWriteAuthorizer((request) => {
405
+ deniedActions.push({
406
+ kind: 'provider.write',
407
+ status: 'denied',
408
+ provider: request.provider,
409
+ resource: request.resource,
410
+ body: '[REDACTED]',
411
+ });
412
+ return { allowed: false };
413
+ });
414
+ try {
415
+ await assert.rejects(() => executeRelayWrite(customTransport, {
416
+ provider: 'future-provider',
417
+ resource: 'future-resource',
418
+ parameters: { targetId: 'target-1' },
419
+ path: '/future-provider/future-resource',
420
+ body: { token: 'provider_secret_must_not_leak' },
421
+ }), (error) => {
422
+ assert.ok(error instanceof RelayWriteAuthorizationError);
423
+ assert.equal(error.provider, 'future-provider');
424
+ assert.equal(error.resource, 'future-resource');
425
+ assert.doesNotMatch(error.message, /provider_secret/u);
426
+ return true;
427
+ });
428
+ }
429
+ finally {
430
+ restoreAuthorization();
431
+ }
432
+ assert.equal(deniedActions.length, 1);
433
+ assert.equal(deniedActions[0]?.body, '[REDACTED]');
434
+ assert.deepEqual(customCalls, { reads: 0, lists: 0, writes: 0 });
435
+ });
436
+ test('custom transports and unknown provider/resource requests redirect to the canonical preview', async () => {
437
+ let customWrites = 0;
438
+ const customTransport = {
439
+ async read() {
440
+ return undefined;
441
+ },
442
+ async list() {
443
+ return [];
444
+ },
445
+ async write(request) {
446
+ customWrites += 1;
447
+ return { path: request.path, absolutePath: request.path, receipt: { id: 'unsafe-receipt' } };
448
+ },
449
+ };
450
+ const canonicalPreview = new PreviewTransport();
451
+ const restoreAuthorization = bindRelayWriteAuthorizer(() => ({
452
+ allowed: true,
453
+ transport: canonicalPreview,
454
+ }));
455
+ try {
456
+ const result = await executeRelayWrite(customTransport, {
457
+ provider: 'future-provider',
458
+ resource: 'future-resource',
459
+ parameters: { targetId: 'target-1' },
460
+ path: '/future-provider/future-resource',
461
+ body: { value: 'preview only' },
462
+ });
463
+ assert.equal(result.receipt?.id, 'preview-future-provider-future-resource-0001');
464
+ }
465
+ finally {
466
+ restoreAuthorization();
467
+ }
468
+ assert.equal(customWrites, 0);
469
+ assert.equal(canonicalPreview.actions.length, 1);
470
+ assert.equal(canonicalPreview.actions[0]?.provider, 'future-provider');
471
+ assert.equal(canonicalPreview.actions[0]?.resource, 'future-resource');
472
+ });
473
+ test('bespoke direct write paths also honor the canonical preview override', async () => {
474
+ const authoredPreview = new PreviewTransport();
475
+ const canonicalPreview = new PreviewTransport();
476
+ const restoreAuthorization = bindRelayWriteAuthorizer(() => ({
477
+ allowed: true,
478
+ transport: canonicalPreview,
479
+ }));
480
+ try {
481
+ await githubClient({ transport: authoredPreview }).updateRef({
482
+ owner: 'AgentWorkforce',
483
+ repo: 'cloud',
484
+ ref: 'main',
485
+ sha: 'abc123',
486
+ });
487
+ await linearClient({ transport: authoredPreview }).updateIssue('ISS-1', { title: 'Updated' });
488
+ await linearClient({ transport: authoredPreview }).updateLabel('LABEL-1', { name: 'priority' });
489
+ }
490
+ finally {
491
+ restoreAuthorization();
492
+ }
493
+ assert.equal(authoredPreview.actions.length, 0);
494
+ assert.deepEqual(canonicalPreview.actions.map(({ provider, resource }) => ({ provider, resource })), [
495
+ { provider: 'github', resource: 'refs' },
496
+ { provider: 'linear', resource: 'issues' },
497
+ { provider: 'linear', resource: 'labels' },
498
+ ]);
499
+ });
500
+ test('write authorizer bindings restore in LIFO order without affecting reads or lists', async () => {
501
+ const authoredPreview = new PreviewTransport({
502
+ fixtures: {
503
+ '/linear/issues': [{ id: 'ISS-1' }],
504
+ '/github/repos/o/r/pulls/7/merge.json': { merged: false },
505
+ },
506
+ });
507
+ const canonicalPreview = new PreviewTransport();
508
+ let outerCalls = 0;
509
+ let innerCalls = 0;
510
+ const restoreOuter = bindRelayWriteAuthorizer(() => {
511
+ outerCalls += 1;
512
+ return { allowed: true, transport: canonicalPreview };
513
+ });
514
+ const restoreInner = bindRelayWriteAuthorizer(() => {
515
+ innerCalls += 1;
516
+ return { allowed: true, transport: canonicalPreview };
517
+ });
518
+ try {
519
+ const issues = await linearClient({ transport: authoredPreview }).listIssues();
520
+ const merge = await relayClient('github', { transport: authoredPreview }).read('merge', { owner: 'o', repo: 'r', pullNumber: 7 });
521
+ assert.deepEqual(issues, [{ id: 'ISS-1' }]);
522
+ assert.deepEqual(merge, { merged: false });
523
+ assert.equal(innerCalls, 0);
524
+ assert.equal(outerCalls, 0);
525
+ await slackClient({ transport: authoredPreview }).post('C1', 'nested preview');
526
+ restoreInner();
527
+ await slackClient({ transport: authoredPreview }).post('C1', 'outer preview');
528
+ }
529
+ finally {
530
+ restoreInner();
531
+ restoreOuter();
532
+ }
533
+ await slackClient({ transport: authoredPreview }).post('C1', 'restored authored transport');
534
+ assert.equal(innerCalls, 1);
535
+ assert.equal(outerCalls, 2);
536
+ assert.equal(canonicalPreview.actions.length, 2);
537
+ assert.equal(authoredPreview.actions.filter((action) => action.kind === 'provider.write').length, 1);
538
+ });
539
+ test('out-of-order idempotent restores leave no stale authorizer', async () => {
540
+ const authoredPreview = new PreviewTransport();
541
+ let outerCalls = 0;
542
+ let innerCalls = 0;
543
+ const restoreOuter = bindRelayWriteAuthorizer(() => {
544
+ outerCalls += 1;
545
+ return { allowed: false };
546
+ });
547
+ const restoreInner = bindRelayWriteAuthorizer(() => {
548
+ innerCalls += 1;
549
+ return { allowed: true };
550
+ });
551
+ restoreOuter();
552
+ restoreOuter();
553
+ restoreInner();
554
+ restoreInner();
555
+ const result = await slackClient({ transport: authoredPreview }).post('C1', 'after cleanup');
556
+ assert.equal(result.ts, 'preview-slack-messages-0001');
557
+ assert.equal(outerCalls, 0);
558
+ assert.equal(innerCalls, 0);
559
+ assert.equal(authoredPreview.actions.length, 1);
560
+ });
155
561
  test('clearPreviewTransport fully clears the shared symbol binding', () => {
156
562
  const preview = new PreviewTransport();
157
563
  setPreviewTransport(preview);
@@ -1 +1 @@
1
- {"version":3,"file":"preview-transport.test.js","sourceRoot":"","sources":["../src/preview-transport.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preview-transport.test.js","sourceRoot":"","sources":["../src/preview-transport.test.ts"],"names":[],"mappings":"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"}
package/dist/receipt.d.ts CHANGED
@@ -1,11 +1,53 @@
1
- import type { WritebackResult } from '@relayfile/adapter-core/vfs-client';
1
+ import type { WritebackReceipt, WritebackResult } from '@relayfile/adapter-core/vfs-client';
2
2
  /**
3
- * Normalize the writeback receipt into the `{ id, url }` shape the old typed
4
- * clients returned. Falls back to the draft path when the worker hasn't
5
- * written a receipt yet (fire-and-forget / timeout).
3
+ * A provider receipt was observed inside the write's wait window.
6
4
  */
7
- export declare function created(result: WritebackResult): {
5
+ export interface CreatedConfirmed {
6
+ status: 'confirmed';
7
+ /** Provider id when supplied, otherwise the legacy draft-path fallback. */
8
8
  id: string;
9
+ /** Provider URL when supplied. Never a Relayfile path. */
9
10
  url: string;
10
- };
11
+ /** Stable handle for the Relayfile draft regardless of receipt contents. */
12
+ path: string;
13
+ receipt: WritebackReceipt;
14
+ }
15
+ /**
16
+ * The draft was accepted, but no provider receipt arrived inside the wait
17
+ * window. This is not failure evidence and must not trigger an automatic retry.
18
+ */
19
+ export interface CreatedPending {
20
+ status: 'pending';
21
+ /** Legacy-compatible draft handle; not a provider id until confirmed. */
22
+ id: string;
23
+ /** Empty because a Relayfile path is not a provider URL. */
24
+ url: '';
25
+ path: string;
26
+ receipt?: never;
27
+ }
28
+ /** A transport positively determined that the draft will not be handled. */
29
+ export interface CreatedDropped {
30
+ status: 'dropped';
31
+ /** Legacy-compatible draft handle; no provider object was created. */
32
+ id: string;
33
+ /** Empty because no provider URL exists. */
34
+ url: '';
35
+ path: string;
36
+ /** Terminal provider-operation detail when the transport supplies it. */
37
+ reason?: string;
38
+ /** Optional diagnostic receipt supplied by a custom transport. */
39
+ receipt?: WritebackReceipt;
40
+ }
41
+ export type CreatedResult = CreatedConfirmed | CreatedPending | CreatedDropped;
42
+ /**
43
+ * Preserve a write transport's delivery knowledge for ergonomic create
44
+ * helpers. Older transports that omit `deliveryStatus` remain compatible: receipt
45
+ * presence means confirmed and absence means pending.
46
+ *
47
+ * Pending is deliberately returned, never thrown. A receipt can arrive after
48
+ * this function returns, and retrying an unconfirmed write can duplicate the
49
+ * provider-side effect.
50
+ */
51
+ export declare function created(result: WritebackResult): CreatedResult;
52
+ export declare function created(result: PromiseLike<WritebackResult>): Promise<CreatedResult>;
11
53
  //# sourceMappingURL=receipt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"receipt.d.ts","sourceRoot":"","sources":["../src/receipt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAE1E;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,eAAe,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAK5E"}
1
+ {"version":3,"file":"receipt.d.ts","sourceRoot":"","sources":["../src/receipt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EAChB,MAAM,oCAAoC,CAAC;AAM5C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,WAAW,CAAC;IACpB,2EAA2E;IAC3E,EAAE,EAAE,MAAM,CAAC;IACX,0DAA0D;IAC1D,GAAG,EAAE,MAAM,CAAC;IACZ,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,SAAS,CAAC;IAClB,yEAAyE;IACzE,EAAE,EAAE,MAAM,CAAC;IACX,4DAA4D;IAC5D,GAAG,EAAE,EAAE,CAAC;IACR,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,KAAK,CAAC;CACjB;AAED,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,SAAS,CAAC;IAClB,sEAAsE;IACtE,EAAE,EAAE,MAAM,CAAC;IACX,4CAA4C;IAC5C,GAAG,EAAE,EAAE,CAAC;IACR,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,cAAc,GAAG,cAAc,CAAC;AAyD/E;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,eAAe,GAAG,aAAa,CAAC;AAChE,wBAAgB,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC"}