@amodalai/runtime 0.1.16 → 0.1.18
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.
- package/dist/src/agent/agent-types.d.ts +0 -6
- package/dist/src/agent/agent-types.js +0 -2
- package/dist/src/agent/agent-types.js.map +1 -1
- package/dist/src/agent/agent-types.test.js +0 -11
- package/dist/src/agent/agent-types.test.js.map +1 -1
- package/dist/src/agent/feedback-store.d.ts +39 -0
- package/dist/src/agent/feedback-store.js +98 -0
- package/dist/src/agent/feedback-store.js.map +1 -0
- package/dist/src/agent/local-server.js +21 -5
- package/dist/src/agent/local-server.js.map +1 -1
- package/dist/src/agent/routes/admin-chat.d.ts +1 -0
- package/dist/src/agent/routes/admin-chat.js +1 -1
- package/dist/src/agent/routes/admin-chat.js.map +1 -1
- package/dist/src/agent/routes/chat.d.ts +2 -2
- package/dist/src/agent/routes/chat.js +4 -4
- package/dist/src/agent/routes/chat.js.map +1 -1
- package/dist/src/agent/routes/chat.test.js +14 -20
- package/dist/src/agent/routes/chat.test.js.map +1 -1
- package/dist/src/agent/routes/evals.js +34 -47
- package/dist/src/agent/routes/evals.js.map +1 -1
- package/dist/src/agent/routes/feedback.d.ts +11 -0
- package/dist/src/agent/routes/feedback.js +72 -0
- package/dist/src/agent/routes/feedback.js.map +1 -0
- package/dist/src/agent/routes/files.js +118 -12
- package/dist/src/agent/routes/files.js.map +1 -1
- package/dist/src/agent/routes/inspect.js +33 -0
- package/dist/src/agent/routes/inspect.js.map +1 -1
- package/dist/src/agent/routes/task.js +2 -4
- package/dist/src/agent/routes/task.js.map +1 -1
- package/dist/src/cron/heartbeat-runner.d.ts +3 -6
- package/dist/src/cron/heartbeat-runner.js +1 -10
- package/dist/src/cron/heartbeat-runner.js.map +1 -1
- package/dist/src/index.d.ts +4 -5
- package/dist/src/index.js +3 -10
- package/dist/src/index.js.map +1 -1
- package/dist/src/middleware/auth.d.ts +3 -19
- package/dist/src/middleware/auth.js +0 -118
- package/dist/src/middleware/auth.js.map +1 -1
- package/dist/src/routes/ai-stream.d.ts +8 -7
- package/dist/src/routes/ai-stream.js +3 -16
- package/dist/src/routes/ai-stream.js.map +1 -1
- package/dist/src/routes/chat-stream.d.ts +4 -3
- package/dist/src/routes/chat-stream.js +3 -16
- package/dist/src/routes/chat-stream.js.map +1 -1
- package/dist/src/routes/chat.d.ts +4 -2
- package/dist/src/routes/chat.js +2 -14
- package/dist/src/routes/chat.js.map +1 -1
- package/dist/src/routes/chat.test.js +2 -2
- package/dist/src/routes/chat.test.js.map +1 -1
- package/dist/src/server.d.ts +16 -3
- package/dist/src/server.js +24 -25
- package/dist/src/server.js.map +1 -1
- package/dist/src/session/admin-file-tools.d.ts +136 -0
- package/dist/src/session/admin-file-tools.js +240 -0
- package/dist/src/session/admin-file-tools.js.map +1 -0
- package/dist/src/session/session-manager.d.ts +37 -3
- package/dist/src/session/session-manager.js +174 -44
- package/dist/src/session/session-manager.js.map +1 -1
- package/dist/src/session/session-manager.test.js +30 -52
- package/dist/src/session/session-manager.test.js.map +1 -1
- package/dist/src/session/session-runner.d.ts +29 -13
- package/dist/src/session/session-runner.js +28 -91
- package/dist/src/session/session-runner.js.map +1 -1
- package/dist/src/session/session-runner.test.js +70 -80
- package/dist/src/session/session-runner.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/dist/src/audit/audit-client.d.ts +0 -46
- package/dist/src/audit/audit-client.js +0 -83
- package/dist/src/audit/audit-client.js.map +0 -1
- package/dist/src/middleware/auth.test.d.ts +0 -6
- package/dist/src/middleware/auth.test.js +0 -260
- package/dist/src/middleware/auth.test.js.map +0 -1
- package/dist/src/routes/sessions.d.ts +0 -14
- package/dist/src/routes/sessions.js +0 -82
- package/dist/src/routes/sessions.js.map +0 -1
- package/dist/src/utils/jwt-verify.d.ts +0 -19
- package/dist/src/utils/jwt-verify.js +0 -32
- package/dist/src/utils/jwt-verify.js.map +0 -1
- package/dist/src/utils/jwt-verify.test.d.ts +0 -6
- package/dist/src/utils/jwt-verify.test.js +0 -150
- package/dist/src/utils/jwt-verify.test.js.map +0 -1
|
@@ -433,9 +433,11 @@ describe('SessionManager', () => {
|
|
|
433
433
|
{ type: 'user', id: 'msg-1', text: 'Hello', timestamp: '2024-01-01T00:00:00Z' },
|
|
434
434
|
{ type: 'assistant_text', id: 'msg-2', text: 'Hi there!', timestamp: '2024-01-01T00:00:01Z' },
|
|
435
435
|
];
|
|
436
|
+
const mockGetSession = vi.fn();
|
|
436
437
|
function makeHydrateManager() {
|
|
437
438
|
const mockSetHistory = vi.fn();
|
|
438
439
|
mockGetGeminiClient.mockReturnValue({ setHistory: mockSetHistory });
|
|
440
|
+
mockGetSession.mockReset();
|
|
439
441
|
const mgr = new SessionManager({
|
|
440
442
|
baseParams: {
|
|
441
443
|
sessionId: 'base',
|
|
@@ -446,6 +448,7 @@ describe('SessionManager', () => {
|
|
|
446
448
|
},
|
|
447
449
|
cleanupIntervalMs: 60_000,
|
|
448
450
|
platformApiUrl: 'http://localhost:4000',
|
|
451
|
+
sessionStore: { getSession: mockGetSession },
|
|
449
452
|
});
|
|
450
453
|
return { mgr, mockSetHistory };
|
|
451
454
|
}
|
|
@@ -481,65 +484,49 @@ describe('SessionManager', () => {
|
|
|
481
484
|
expect(result).toBeNull();
|
|
482
485
|
await mgr.shutdown();
|
|
483
486
|
});
|
|
484
|
-
it('returns null on
|
|
487
|
+
it('returns null on session store error', async () => {
|
|
485
488
|
const { mgr } = makeHydrateManager();
|
|
486
|
-
|
|
489
|
+
mockGetSession.mockRejectedValueOnce(new Error('Network error'));
|
|
487
490
|
const result = await mgr.hydrate('conv-1', undefined, platformAuth);
|
|
488
491
|
expect(result).toBeNull();
|
|
489
|
-
fetchSpy.mockRestore();
|
|
490
492
|
await mgr.shutdown();
|
|
491
493
|
});
|
|
492
|
-
it('returns null
|
|
494
|
+
it('returns null when session store returns null', async () => {
|
|
493
495
|
const { mgr } = makeHydrateManager();
|
|
494
|
-
|
|
495
|
-
ok: false,
|
|
496
|
-
status: 404,
|
|
497
|
-
});
|
|
496
|
+
mockGetSession.mockResolvedValueOnce(null);
|
|
498
497
|
const result = await mgr.hydrate('conv-1', undefined, platformAuth);
|
|
499
498
|
expect(result).toBeNull();
|
|
500
|
-
fetchSpy.mockRestore();
|
|
501
499
|
await mgr.shutdown();
|
|
502
500
|
});
|
|
503
501
|
it('returns null when stored conversation has no messages', async () => {
|
|
504
502
|
const { mgr } = makeHydrateManager();
|
|
505
|
-
|
|
506
|
-
ok: true,
|
|
507
|
-
json: async () => ({ id: 'conv-1', app_id: 'app-1', messages: [], status: 'active' }),
|
|
508
|
-
});
|
|
503
|
+
mockGetSession.mockResolvedValueOnce({ id: 'conv-1', app_id: 'app-1', messages: [], status: 'active' });
|
|
509
504
|
const result = await mgr.hydrate('conv-1', undefined, platformAuth);
|
|
510
505
|
expect(result).toBeNull();
|
|
511
|
-
fetchSpy.mockRestore();
|
|
512
506
|
await mgr.shutdown();
|
|
513
507
|
});
|
|
514
508
|
it('creates session under original conversation ID', async () => {
|
|
515
509
|
const { mgr, mockSetHistory } = makeHydrateManager();
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
messages: storedMessages,
|
|
522
|
-
status: 'active',
|
|
523
|
-
}),
|
|
510
|
+
mockGetSession.mockResolvedValueOnce({
|
|
511
|
+
id: 'conv-original',
|
|
512
|
+
app_id: 'app-1',
|
|
513
|
+
messages: storedMessages,
|
|
514
|
+
status: 'active',
|
|
524
515
|
});
|
|
525
516
|
const session = await mgr.hydrate('conv-original', undefined, platformAuth);
|
|
526
517
|
expect(session).not.toBeNull();
|
|
527
518
|
expect(session.id).toBe('conv-original');
|
|
528
519
|
expect(mgr.get('conv-original')).toBeDefined();
|
|
529
520
|
expect(mockSetHistory).toHaveBeenCalledOnce();
|
|
530
|
-
fetchSpy.mockRestore();
|
|
531
521
|
await mgr.shutdown();
|
|
532
522
|
});
|
|
533
523
|
it('seeds LLM history via setHistory', async () => {
|
|
534
524
|
const { mgr, mockSetHistory } = makeHydrateManager();
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
messages: storedMessages,
|
|
541
|
-
status: 'active',
|
|
542
|
-
}),
|
|
525
|
+
mockGetSession.mockResolvedValueOnce({
|
|
526
|
+
id: 'conv-history',
|
|
527
|
+
app_id: 'app-1',
|
|
528
|
+
messages: storedMessages,
|
|
529
|
+
status: 'active',
|
|
543
530
|
});
|
|
544
531
|
await mgr.hydrate('conv-history', undefined, platformAuth);
|
|
545
532
|
expect(mockSetHistory).toHaveBeenCalledOnce();
|
|
@@ -547,40 +534,32 @@ describe('SessionManager', () => {
|
|
|
547
534
|
expect(historyArg).toHaveLength(2);
|
|
548
535
|
expect(historyArg[0]?.['role']).toBe('user');
|
|
549
536
|
expect(historyArg[1]?.['role']).toBe('model');
|
|
550
|
-
fetchSpy.mockRestore();
|
|
551
537
|
await mgr.shutdown();
|
|
552
538
|
});
|
|
553
539
|
it('pre-populates accumulatedMessages', async () => {
|
|
554
540
|
const { mgr } = makeHydrateManager();
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
messages: storedMessages,
|
|
561
|
-
status: 'active',
|
|
562
|
-
}),
|
|
541
|
+
mockGetSession.mockResolvedValueOnce({
|
|
542
|
+
id: 'conv-acc',
|
|
543
|
+
app_id: 'app-1',
|
|
544
|
+
messages: storedMessages,
|
|
545
|
+
status: 'active',
|
|
563
546
|
});
|
|
564
547
|
const session = await mgr.hydrate('conv-acc', undefined, platformAuth);
|
|
565
548
|
expect(session.accumulatedMessages).toHaveLength(2);
|
|
566
549
|
expect(session.accumulatedMessages[0]?.text).toBe('Hello');
|
|
567
550
|
expect(session.accumulatedMessages[1]?.text).toBe('Hi there!');
|
|
568
|
-
fetchSpy.mockRestore();
|
|
569
551
|
await mgr.shutdown();
|
|
570
552
|
});
|
|
571
553
|
it('deduplicates concurrent hydration requests', async () => {
|
|
572
554
|
const { mgr } = makeHydrateManager();
|
|
573
|
-
let
|
|
574
|
-
const
|
|
575
|
-
|
|
576
|
-
ok: true,
|
|
577
|
-
json: () => jsonPromise,
|
|
578
|
-
});
|
|
555
|
+
let resolveSession;
|
|
556
|
+
const sessionPromise = new Promise((r) => { resolveSession = r; });
|
|
557
|
+
mockGetSession.mockReturnValue(sessionPromise);
|
|
579
558
|
// Start two concurrent hydrations for the same conversation
|
|
580
559
|
const p1 = mgr.hydrate('conv-dedup', undefined, platformAuth);
|
|
581
560
|
const p2 = mgr.hydrate('conv-dedup', undefined, platformAuth);
|
|
582
|
-
// Resolve the
|
|
583
|
-
|
|
561
|
+
// Resolve the session store
|
|
562
|
+
resolveSession({
|
|
584
563
|
id: 'conv-dedup',
|
|
585
564
|
app_id: 'app-1',
|
|
586
565
|
messages: storedMessages,
|
|
@@ -589,9 +568,8 @@ describe('SessionManager', () => {
|
|
|
589
568
|
const [s1, s2] = await Promise.all([p1, p2]);
|
|
590
569
|
// Both should return the same session
|
|
591
570
|
expect(s1).toBe(s2);
|
|
592
|
-
// Only one
|
|
593
|
-
expect(
|
|
594
|
-
fetchSpy.mockRestore();
|
|
571
|
+
// Only one store call was made
|
|
572
|
+
expect(mockGetSession).toHaveBeenCalledTimes(1);
|
|
595
573
|
await mgr.shutdown();
|
|
596
574
|
});
|
|
597
575
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.test.js","sourceRoot":"","sources":["../../../src/session/session-manager.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEzE,wEAAwE;AACxE,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAC5D,MAAM,iBAAiB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAC/D,MAAM,mBAAmB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IAClD,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;IAC5C,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;IAChD,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;QAC/B,oBAAoB,EAAE,EAAE,CAAC,EAAE,EAAE;QAC7B,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;KACxC,CAAC;IACF,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;IACnB,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;IAC9C,uBAAuB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC;CAC5D,CAAC,CAAC;AACH,MAAM,iBAAiB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IAChD,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;IACX,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;CACxB,CAAC,CAAC;AAEH,gFAAgF;AAChF,6CAA6C;AAC7C,MAAM,kBAAkB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;AACvD,MAAM,gBAAgB,GAAG;IACvB,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE;IACrB,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;IACvB,uBAAuB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;CACrD,CAAC;AACF,MAAM,qBAAqB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;IACpD,kBAAkB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;IAC/D,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,gBAAgB,CAAC;IAC1D,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,iBAAiB,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAC1E,qBAAqB,EAAE,EAAE,CAAC,EAAE,EAAE;CAC/B,CAAC,CAAC;AACH,MAAM,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC;IACvB,IAAI,CAAC,YAAY,CAAC,GAAG,cAAc,CAAC;IACpC,IAAI,CAAC,eAAe,CAAC,GAAG,iBAAiB,CAAC;IAC1C,IAAI,CAAC,iBAAiB,CAAC,GAAG,mBAAmB,CAAC;IAC9C,IAAI,CAAC,eAAe,CAAC,GAAG,iBAAiB,CAAC;IAC1C,IAAI,CAAC,gBAAgB,CAAC,GAAG,kBAAkB,CAAC;IAC5C,IAAI,CAAC,mBAAmB,CAAC,GAAG,qBAAqB,CAAC;IAClD,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC9D,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAC5D,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IACjC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAC3D,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IAC7D,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACjE,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAC7D,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IACzD,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAC7D,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAClC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC7D,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IACzD,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AACzD,CAAC,CAAC,CAAC;AAEH,gBAAgB;AAChB,MAAM,iBAAiB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAC/D,MAAM,gBAAgB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AACjC,MAAM,YAAY,GAAG,EAAE,CAAC,EAAE,CAAC;IACzB,IAAI,CAAC,YAAY,CAAC,GAAG,iBAAiB,CAAC;IACvC,IAAI,CAAC,WAAW,CAAC,GAAG,gBAAgB,CAAC;AACvC,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/B,YAAY,EAAE,UAAU;IACxB,QAAQ,EAAE,YAAY;IACtB,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC;QACf,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAC7B,CAAC,CAAC;IACF,iBAAiB,EAAE,MAAM;IACzB,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;IAC9B,cAAc,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;IACtE,kBAAkB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,uBAAuB,CAAC;IACpE,eAAe,EAAE,EAAE,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IACzB,CAAC,CAAC;IACF,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC;QAChB,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC;IACF,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,kBAAkB,CAAC;IAC/D,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;CACtG,CAAC,CAAC,CAAC;AAEJ,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAEhE,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,IAAI,OAA4C,CAAC;IAEjD,gEAAgE;IAChE,SAAS,cAAc;QACrB,OAAO;YACL,UAAU,EAAE,cAAc;YAC1B,aAAa,EAAE,iBAAiB;YAChC,eAAe,EAAE,mBAAmB;YACpC,aAAa,EAAE,iBAAiB;YAChC,cAAc,EAAE,kBAAkB;YAClC,iBAAiB,EAAE,qBAAqB;YACxC,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;YACjD,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;YACpD,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC;YAClD,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;YACvB,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC;YACjD,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC;YACnD,mBAAmB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC;YACvD,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC;YACnD,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC;YAC/C,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;YACtC,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC;YACnD,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE;YACxB,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;YACnD,kBAAkB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;YAC/C,oBAAoB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;YACjD,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC;SAC9C,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,wDAAwD;QACxD,cAAc,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC5C,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC/C,mBAAmB,CAAC,eAAe,CAAC;YAClC,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;YAC5C,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;YAChD,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,oBAAoB,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5G,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;YACnB,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;YAC9C,uBAAuB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC;SAC5D,CAAC,CAAC;QACH,iBAAiB,CAAC,eAAe,CAAC;YAChC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;YACX,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;SACxB,CAAC,CAAC;QACH,kBAAkB,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACvC,qBAAqB,CAAC,eAAe,CAAC;YACpC,kBAAkB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;YAC/D,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,gBAAgB,CAAC;YAC1D,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,iBAAiB,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1E,qBAAqB,EAAE,EAAE,CAAC,EAAE,EAAE;SAC/B,CAAC,CAAC;QACH,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC/C,gBAAgB,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC,CAAC;QAEnD,OAAO,GAAG,IAAI,cAAc,CAAC;YAC3B,UAAU,EAAE;gBACV,SAAS,EAAE,MAAM;gBACjB,KAAK,EAAE,YAAY;gBACnB,GAAG,EAAE,MAAM;gBACX,SAAS,EAAE,MAAM;gBACjB,SAAS,EAAE,KAAK;aACjB;YACD,iBAAiB,EAAE,MAAM;SAC1B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;YACvC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YACjC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YACxC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACnE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAoB,CAAC;YACnD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAA4B,CAAC;YAC5D,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3C,MAAM,YAAY,GAAG,UAAU,CAAC,oBAAoB,CAA4B,CAAC;YACjF,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClD,MAAM,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAmC,CAAC;YACtE,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;YAC5C,MAAM,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAoB,CAAC;YACnD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAA4B,CAAC;YAC5D,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACvE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;YACvC,sEAAsE;YACtE,sEAAsE;YACtE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;YAClF,MAAM,WAAW,GAAG,IAAI,cAAc,CAAC;gBACrC,UAAU,EAAE;oBACV,SAAS,EAAE,MAAM;oBACjB,KAAK,EAAE,YAAY;oBACnB,GAAG,EAAE,MAAM;oBACX,SAAS,EAAE,MAAM;oBACjB,SAAS,EAAE,KAAK;iBACjB;gBACD,iBAAiB,EAAE,MAAM;gBACzB,cAAc,EAAE,uBAAuB;aACxC,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG;gBACX,MAAM,EAAE,aAAa;gBACrB,KAAK,EAAE,SAAS;gBAChB,aAAa,EAAE,SAAS;gBAGxB,UAAU,EAAE,SAAkB;aAC/B,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC1D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAEtC,qDAAqD;YACrD,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAE5C,+CAA+C;YAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAoB,CAAC;YACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAA4B,CAAC;YACzE,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACjE,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACvD,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAIlD,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,WAAW,GAAG,IAAI,cAAc,CAAC;gBACrC,UAAU,EAAE;oBACV,SAAS,EAAE,MAAM;oBACjB,KAAK,EAAE,YAAY;oBACnB,GAAG,EAAE,MAAM;oBACX,SAAS,EAAE,MAAM;oBACjB,SAAS,EAAE,KAAK;oBAChB,YAAY,EAAE,oBAAoB;iBACnC;gBACD,iBAAiB,EAAE,MAAM;gBACzB,cAAc,EAAE,uBAAuB;aACxC,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG;gBACX,KAAK,EAAE,gBAAgB;gBACvB,KAAK,EAAE,SAAS;gBAChB,aAAa,EAAE,SAAS;gBACxB,UAAU,EAAE,cAAuB;aACpC,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC1D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAEtC,2BAA2B;YAC3B,MAAM,CAAC,YAAY,CAAC,CAAC,oBAAoB,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,KAAoB,CAAC;YACxD,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAA4B,CAAC;YAC9D,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAA4B,CAAC;YAClE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACzD,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAClD,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACnD,+EAA+E;YAE/E,yEAAyE;YACzE,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAC1C,MAAM,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,EAAE,CAAC;YACjD,MAAM,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,EAAE,CAAC;YAEhD,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACnE,MAAM,WAAW,GAAG,IAAI,cAAc,CAAC;gBACrC,UAAU,EAAE;oBACV,SAAS,EAAE,MAAM;oBACjB,KAAK,EAAE,YAAY;oBACnB,GAAG,EAAE,MAAM;oBACX,SAAS,EAAE,MAAM;oBACjB,SAAS,EAAE,KAAK;iBACjB;gBACD,iBAAiB,EAAE,MAAM;gBACzB,cAAc,EAAE,uBAAuB;aACxC,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG;gBACX,KAAK,EAAE,aAAa;gBACpB,MAAM,EAAE,aAAa;gBACrB,KAAK,EAAE,SAAS;gBAChB,aAAa,EAAE,SAAS;gBAGxB,UAAU,EAAE,SAAkB;aAC/B,CAAC;YAEF,MAAM,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAE1C,4CAA4C;YAC5C,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,KAAoB,CAAC;YACxD,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAA4B,CAAC;YAC9D,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAEhD,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,WAAW,GAAG,IAAI,cAAc,CAAC;gBACrC,UAAU,EAAE;oBACV,SAAS,EAAE,MAAM;oBACjB,KAAK,EAAE,YAAY;oBACnB,GAAG,EAAE,MAAM;oBACX,SAAS,EAAE,MAAM;oBACjB,SAAS,EAAE,KAAK;iBACjB;gBACD,iBAAiB,EAAE,MAAM;gBACzB,cAAc,EAAE,uBAAuB;aACxC,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG;gBACX,KAAK,EAAE,SAAS;gBAChB,aAAa,EAAE,SAAS;gBACxB,UAAU,EAAE,cAAuB;aACpC,CAAC;YAEF,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC1D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAEtC,uCAAuC;YACvC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAE5C,iDAAiD;YACjD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAoB,CAAC;YACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAA4B,CAAC;YACzE,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACjE,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;YACnD,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAElD,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YACpE,MAAM,WAAW,GAAG,IAAI,cAAc,CAAC;gBACrC,UAAU,EAAE;oBACV,SAAS,EAAE,MAAM;oBACjB,KAAK,EAAE,YAAY;oBACnB,GAAG,EAAE,MAAM;oBACX,SAAS,EAAE,MAAM;oBACjB,SAAS,EAAE,KAAK;iBACjB;gBACD,iBAAiB,EAAE,MAAM;gBACzB,cAAc,EAAE,uBAAuB;aACxC,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG;gBACX,KAAK,EAAE,gBAAgB;gBACvB,KAAK,EAAE,OAAO;gBACd,aAAa,EAAE,OAAO;gBACtB,UAAU,EAAE,cAAuB;aACpC,CAAC;YAEF,MAAM,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAE1C,8DAA8D;YAC9D,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,KAAoB,CAAC;YACxD,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAA4B,CAAC;YAC9D,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE9C,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;QACnB,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;YACxC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;YACvC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1C,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAChC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC7C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;YACvC,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;YAE9C,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAE5C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACxB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;YACvC,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAClC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,EAAE,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;YACzC,MAAM,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACrC,MAAM,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;YACxC,MAAM,eAAe,GAAG,IAAI,cAAc,CAAC;gBACzC,UAAU,EAAE;oBACV,SAAS,EAAE,MAAM;oBACjB,KAAK,EAAE,YAAY;oBACnB,GAAG,EAAE,MAAM;oBACX,SAAS,EAAE,MAAM;oBACjB,SAAS,EAAE,KAAK;iBACjB;gBACD,KAAK,EAAE,CAAC;gBACR,iBAAiB,EAAE,MAAM;aAC1B,CAAC,CAAC;YAEH,MAAM,eAAe,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,eAAe,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAErC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAE5C,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAErC,MAAM,eAAe,CAAC,QAAQ,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;YAC1C,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACxC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;YACrC,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;YACzB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,MAAM,YAAY,GAAG;YACnB,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,aAAa;YACrB,KAAK,EAAE,OAAO;YACd,aAAa,EAAE,OAAO;YACtB,UAAU,EAAE,SAAkB;SAC/B,CAAC;QAEF,MAAM,cAAc,GAAG;YACrB,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE;YAC/E,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,sBAAsB,EAAE;SAC9F,CAAC;QAEF,SAAS,kBAAkB;YACzB,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,mBAAmB,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC;YAEpE,MAAM,GAAG,GAAG,IAAI,cAAc,CAAC;gBAC7B,UAAU,EAAE;oBACV,SAAS,EAAE,MAAM;oBACjB,KAAK,EAAE,YAAY;oBACnB,GAAG,EAAE,MAAM;oBACX,SAAS,EAAE,MAAM;oBACjB,SAAS,EAAE,KAAK;iBACjB;gBACD,iBAAiB,EAAE,MAAM;gBACzB,cAAc,EAAE,uBAAuB;aACxC,CAAC,CAAC;YAEH,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC;QACjC,CAAC;QAED,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,gCAAgC;YAChC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;YACxE,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,MAAM,EAAE,GAAG,EAAE,GAAG,kBAAkB,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC1B,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,EAAE,GAAG,EAAE,GAAG,kBAAkB,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE;gBACpD,KAAK,EAAE,OAAO;gBACd,aAAa,EAAE,OAAO;gBACtB,UAAU,EAAE,SAAS;aACtB,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC1B,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,EAAE,GAAG,EAAE,GAAG,kBAAkB,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE;gBACpD,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,OAAO;gBACd,aAAa,EAAE,EAAE;gBACjB,UAAU,EAAE,SAAS;aACtB,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC1B,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;YAC7C,MAAM,EAAE,GAAG,EAAE,GAAG,kBAAkB,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;YAE7F,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC1B,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvB,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,EAAE,GAAG,EAAE,GAAG,kBAAkB,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,qBAAqB,CAAC;gBAC/D,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,GAAG;aACA,CAAC,CAAC;YAEf,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC1B,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvB,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,EAAE,GAAG,EAAE,GAAG,kBAAkB,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,qBAAqB,CAAC;gBAC/D,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;aAC1E,CAAC,CAAC;YAEf,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;YACpE,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC1B,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvB,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,kBAAkB,EAAE,CAAC;YACrD,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,qBAAqB,CAAC;gBAC/D,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACjB,EAAE,EAAE,eAAe;oBACnB,MAAM,EAAE,OAAO;oBACf,QAAQ,EAAE,cAAc;oBACxB,MAAM,EAAE,QAAQ;iBACjB,CAAC;aACS,CAAC,CAAC;YAEf,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;YAC5E,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC/B,MAAM,CAAC,OAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAC/C,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,EAAE,CAAC;YAE9C,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvB,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,kBAAkB,EAAE,CAAC;YACrD,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,qBAAqB,CAAC;gBAC/D,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACjB,EAAE,EAAE,cAAc;oBAClB,MAAM,EAAE,OAAO;oBACf,QAAQ,EAAE,cAAc;oBACxB,MAAM,EAAE,QAAQ;iBACjB,CAAC;aACS,CAAC,CAAC;YAEf,MAAM,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;YAE3D,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,EAAE,CAAC;YAC9C,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAmC,CAAC;YACvF,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAE9C,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvB,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACjD,MAAM,EAAE,GAAG,EAAE,GAAG,kBAAkB,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,qBAAqB,CAAC;gBAC/D,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;oBACjB,EAAE,EAAE,UAAU;oBACd,MAAM,EAAE,OAAO;oBACf,QAAQ,EAAE,cAAc;oBACxB,MAAM,EAAE,QAAQ;iBACjB,CAAC;aACS,CAAC,CAAC;YAEf,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;YACvE,MAAM,CAAC,OAAQ,CAAC,mBAAmB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACrD,MAAM,CAAC,OAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5D,MAAM,CAAC,OAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAEhE,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvB,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,EAAE,GAAG,EAAE,GAAG,kBAAkB,EAAE,CAAC;YAErC,IAAI,WAAkC,CAAC;YACvC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7D,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,iBAAiB,CAAC;gBAC3D,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,GAAG,EAAE,CAAC,WAAW;aACD,CAAC,CAAC;YAE1B,4DAA4D;YAC5D,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;YAC9D,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;YAE9D,oBAAoB;YACpB,WAAW,CAAC;gBACV,EAAE,EAAE,YAAY;gBAChB,MAAM,EAAE,OAAO;gBACf,QAAQ,EAAE,cAAc;gBACxB,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YAE7C,sCAAsC;YACtC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpB,0BAA0B;YAC1B,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAE1C,QAAQ,CAAC,WAAW,EAAE,CAAC;YACvB,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,SAAS,eAAe;YACtB,OAAO;gBACL,EAAE,EAAE,WAAW;gBACf,cAAc,EAAE,IAAI,GAAG,EAAE;aACkC,CAAC;QAChE,CAAC;QAED,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YAEzC,MAAM,OAAO,GAAG,OAAO,CAAC,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;YAEpF,aAAa;YACb,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YAC1E,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE5B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC;YAC9B,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YAExC,uBAAuB;YACvB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;YACnE,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;YAC9C,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YAEzC,MAAM,OAAO,GAAG,OAAO,CAAC,sBAAsB,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;YACxF,UAAU,CAAC,KAAK,EAAE,CAAC;YAEnB,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YAC1D,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"session-manager.test.js","sourceRoot":"","sources":["../../../src/session/session-manager.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,27 +3,43 @@
|
|
|
3
3
|
* Copyright 2025 Amodal Labs, Inc.
|
|
4
4
|
* SPDX-License-Identifier: MIT
|
|
5
5
|
*/
|
|
6
|
-
import type { ManagedSession, SessionManager } from './session-manager.js';
|
|
6
|
+
import type { ManagedSession, SessionManager, SessionMessage } from './session-manager.js';
|
|
7
7
|
import { type ChatResponse, type SSEEvent } from '../types.js';
|
|
8
|
-
import type { AuditClient } from '../audit/audit-client.js';
|
|
9
8
|
/**
|
|
10
|
-
*
|
|
9
|
+
* Lifecycle hooks for session streaming events.
|
|
10
|
+
* Implementations are provided by the hosting layer (e.g., hosted-runtime).
|
|
11
11
|
*/
|
|
12
|
-
export interface
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
12
|
+
export interface StreamHooks {
|
|
13
|
+
/** Log an audit event */
|
|
14
|
+
onAuditLog?: (entry: {
|
|
15
|
+
event: string;
|
|
16
|
+
resource_name: string;
|
|
17
|
+
details?: Record<string, unknown>;
|
|
18
|
+
}) => void;
|
|
19
|
+
/** Report token usage after each turn (fire-and-forget) */
|
|
20
|
+
onUsageReport?: (usage: {
|
|
21
|
+
model: string;
|
|
22
|
+
taskAgentRuns: number;
|
|
23
|
+
tokens: TokenCounts;
|
|
24
|
+
}) => void;
|
|
25
|
+
/** Persist session history after each turn (fire-and-forget) */
|
|
26
|
+
onSessionPersist?: (sessionId: string, messages: SessionMessage[], status: 'active' | 'completed' | 'error', meta?: {
|
|
27
|
+
model?: string;
|
|
28
|
+
provider?: string;
|
|
29
|
+
}) => void;
|
|
30
|
+
}
|
|
31
|
+
interface TokenCounts {
|
|
32
|
+
inputTokens: number;
|
|
33
|
+
outputTokens: number;
|
|
34
|
+
cachedTokens: number;
|
|
20
35
|
}
|
|
21
36
|
/**
|
|
22
37
|
* Run a synchronous (non-streaming) message through the agentic loop.
|
|
23
38
|
* Collects all text and tool calls, returns a ChatResponse.
|
|
24
39
|
*/
|
|
25
|
-
export declare function runMessage(session: ManagedSession, message: string, signal: AbortSignal,
|
|
40
|
+
export declare function runMessage(session: ManagedSession, message: string, signal: AbortSignal, hooks?: StreamHooks): Promise<ChatResponse>;
|
|
26
41
|
/**
|
|
27
42
|
* Stream a message through the agentic loop, yielding SSE events.
|
|
28
43
|
*/
|
|
29
|
-
export declare function streamMessage(session: ManagedSession, message: string, signal: AbortSignal,
|
|
44
|
+
export declare function streamMessage(session: ManagedSession, message: string, signal: AbortSignal, hooks?: StreamHooks, sessionManager?: SessionManager): AsyncGenerator<SSEEvent>;
|
|
45
|
+
export {};
|
|
@@ -13,7 +13,6 @@ import { GeminiEventType, ToolErrorType, PRESENT_TOOL_NAME, ACTIVATE_SKILL_TOOL_
|
|
|
13
13
|
const SUBAGENT_ACTIVITY_EVENT = 'subagent-activity';
|
|
14
14
|
import { SSEEventType, } from '../types.js';
|
|
15
15
|
const MAX_TURNS = 50;
|
|
16
|
-
const MAX_RESULT_LENGTH = 2000;
|
|
17
16
|
/**
|
|
18
17
|
* Extract text from tool response parts, truncated for audit logging.
|
|
19
18
|
* Handles both plain text parts and functionResponse parts (from task agents).
|
|
@@ -38,9 +37,7 @@ function extractResultText(parts) {
|
|
|
38
37
|
const text = segments.join('');
|
|
39
38
|
if (!text)
|
|
40
39
|
return undefined;
|
|
41
|
-
return text
|
|
42
|
-
? text.slice(0, MAX_RESULT_LENGTH) + '...[truncated]'
|
|
43
|
-
: text;
|
|
40
|
+
return text;
|
|
44
41
|
}
|
|
45
42
|
const MAX_SUBAGENT_RESULT_LENGTH = 300;
|
|
46
43
|
/**
|
|
@@ -86,70 +83,11 @@ function subagentMessageToSSE(msg, parentToolId) {
|
|
|
86
83
|
timestamp: new Date().toISOString(),
|
|
87
84
|
};
|
|
88
85
|
}
|
|
89
|
-
/**
|
|
90
|
-
* Fire-and-forget POST to platform-api to report usage.
|
|
91
|
-
* Never blocks the chat stream — errors are logged to stderr.
|
|
92
|
-
*/
|
|
93
|
-
function reportUsage(audit, model, taskAgentRuns, tokens) {
|
|
94
|
-
if (!audit.platformApiUrl || !audit.orgId)
|
|
95
|
-
return;
|
|
96
|
-
const url = `${audit.platformApiUrl}/api/orgs/${audit.orgId}/usage`;
|
|
97
|
-
const body = JSON.stringify({
|
|
98
|
-
model,
|
|
99
|
-
api_calls: 1,
|
|
100
|
-
chat_sessions: 1,
|
|
101
|
-
task_agent_runs: taskAgentRuns,
|
|
102
|
-
input_tokens: tokens.inputTokens,
|
|
103
|
-
output_tokens: tokens.outputTokens,
|
|
104
|
-
cached_tokens: tokens.cachedTokens,
|
|
105
|
-
});
|
|
106
|
-
fetch(url, {
|
|
107
|
-
method: 'POST',
|
|
108
|
-
headers: {
|
|
109
|
-
'Content-Type': 'application/json',
|
|
110
|
-
...(process.env['INTERNAL_API_KEY']
|
|
111
|
-
? { 'X-Internal-Key': process.env['INTERNAL_API_KEY'] }
|
|
112
|
-
: {}),
|
|
113
|
-
},
|
|
114
|
-
body,
|
|
115
|
-
}).catch((err) => {
|
|
116
|
-
process.stderr.write(`[USAGE] Failed to report usage for org ${audit.orgId}: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Fire-and-forget POST to platform-api to persist session history.
|
|
121
|
-
* Never blocks the chat stream — errors are logged to stderr.
|
|
122
|
-
*/
|
|
123
|
-
function saveSessionHistory(audit, sessionId, messages, status, sessionMeta) {
|
|
124
|
-
if (!audit.platformApiUrl || !audit.appId)
|
|
125
|
-
return;
|
|
126
|
-
const url = `${audit.platformApiUrl}/api/applications/${audit.appId}/sessions`;
|
|
127
|
-
const body = JSON.stringify({
|
|
128
|
-
id: sessionId,
|
|
129
|
-
app_id: audit.appId,
|
|
130
|
-
actor: audit.actor,
|
|
131
|
-
messages,
|
|
132
|
-
status,
|
|
133
|
-
// Persist model/provider so hydrated sessions use the same model
|
|
134
|
-
...(sessionMeta?.model ? { model: sessionMeta.model } : {}),
|
|
135
|
-
...(sessionMeta?.provider ? { provider: sessionMeta.provider } : {}),
|
|
136
|
-
});
|
|
137
|
-
fetch(url, {
|
|
138
|
-
method: 'POST',
|
|
139
|
-
headers: {
|
|
140
|
-
'Content-Type': 'application/json',
|
|
141
|
-
Authorization: `Bearer ${audit.token}`,
|
|
142
|
-
},
|
|
143
|
-
body,
|
|
144
|
-
}).catch((err) => {
|
|
145
|
-
process.stderr.write(`[SESSION-HISTORY] Failed to save session ${sessionId}: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
86
|
/**
|
|
149
87
|
* Run a synchronous (non-streaming) message through the agentic loop.
|
|
150
88
|
* Collects all text and tool calls, returns a ChatResponse.
|
|
151
89
|
*/
|
|
152
|
-
export async function runMessage(session, message, signal,
|
|
90
|
+
export async function runMessage(session, message, signal, hooks) {
|
|
153
91
|
const { geminiClient, scheduler, config } = session;
|
|
154
92
|
const promptId = `msg-${Date.now()}`;
|
|
155
93
|
const sessionStartMs = Date.now();
|
|
@@ -261,16 +199,16 @@ export async function runMessage(session, message, signal, audit) {
|
|
|
261
199
|
throw err;
|
|
262
200
|
}
|
|
263
201
|
finally {
|
|
264
|
-
if (
|
|
202
|
+
if (hooks) {
|
|
265
203
|
const model = geminiClient.getCurrentSequenceModel() ?? config.getModel();
|
|
266
|
-
logSessionCompleted(
|
|
204
|
+
logSessionCompleted(hooks, session.id, message, responseText, turnCount, toolCalls, skillsActivated, status, errorMessage, sessionStartMs, model, tokens);
|
|
267
205
|
}
|
|
268
206
|
}
|
|
269
207
|
}
|
|
270
208
|
/**
|
|
271
209
|
* Stream a message through the agentic loop, yielding SSE events.
|
|
272
210
|
*/
|
|
273
|
-
export async function* streamMessage(session, message, signal,
|
|
211
|
+
export async function* streamMessage(session, message, signal, hooks, sessionManager) {
|
|
274
212
|
const { geminiClient, scheduler, config } = session;
|
|
275
213
|
const promptId = `msg-${Date.now()}`;
|
|
276
214
|
const sessionStartMs = Date.now();
|
|
@@ -379,8 +317,8 @@ export async function* streamMessage(session, message, signal, audit, sessionMan
|
|
|
379
317
|
message: errMsg,
|
|
380
318
|
timestamp: new Date().toISOString(),
|
|
381
319
|
};
|
|
382
|
-
logSessionCompleted(
|
|
383
|
-
accumulateAssistantAndSave(session,
|
|
320
|
+
logSessionCompleted(hooks, session.id, message, responseText, turnCount, auditToolCalls, skillsActivated, auditStatus, auditError, sessionStartMs, geminiClient.getCurrentSequenceModel() ?? config.getModel(), tokens);
|
|
321
|
+
accumulateAssistantAndSave(session, hooks, responseText, auditToolCalls, skillsActivated, widgetEvents, contentBlockOrder, 'error');
|
|
384
322
|
yield {
|
|
385
323
|
type: SSEEventType.Done,
|
|
386
324
|
timestamp: new Date().toISOString(),
|
|
@@ -394,8 +332,8 @@ export async function* streamMessage(session, message, signal, audit, sessionMan
|
|
|
394
332
|
return;
|
|
395
333
|
}
|
|
396
334
|
else if (event.type === GeminiEventType.AgentExecutionStopped) {
|
|
397
|
-
logSessionCompleted(
|
|
398
|
-
accumulateAssistantAndSave(session,
|
|
335
|
+
logSessionCompleted(hooks, session.id, message, responseText, turnCount, auditToolCalls, skillsActivated, auditStatus, auditError, sessionStartMs, geminiClient.getCurrentSequenceModel() ?? config.getModel(), tokens);
|
|
336
|
+
accumulateAssistantAndSave(session, hooks, responseText, auditToolCalls, skillsActivated, widgetEvents, contentBlockOrder, 'completed');
|
|
399
337
|
yield {
|
|
400
338
|
type: SSEEventType.Done,
|
|
401
339
|
timestamp: new Date().toISOString(),
|
|
@@ -455,7 +393,7 @@ export async function* streamMessage(session, message, signal, audit, sessionMan
|
|
|
455
393
|
type: SSEEventType.ToolCallResult,
|
|
456
394
|
tool_id: askId,
|
|
457
395
|
status: 'success',
|
|
458
|
-
result: resultOutput
|
|
396
|
+
result: resultOutput,
|
|
459
397
|
duration_ms: askDuration,
|
|
460
398
|
timestamp: new Date().toISOString(),
|
|
461
399
|
};
|
|
@@ -650,7 +588,7 @@ export async function* streamMessage(session, message, signal, audit, sessionMan
|
|
|
650
588
|
type: SSEEventType.ToolCallResult,
|
|
651
589
|
tool_id: completed.request.callId,
|
|
652
590
|
status: completed.response.error ? 'error' : 'success',
|
|
653
|
-
result: extractResultText(completed.response.responseParts)
|
|
591
|
+
result: extractResultText(completed.response.responseParts),
|
|
654
592
|
duration_ms: duration,
|
|
655
593
|
error: completed.response.error?.message,
|
|
656
594
|
timestamp: new Date().toISOString(),
|
|
@@ -685,8 +623,8 @@ export async function* streamMessage(session, message, signal, audit, sessionMan
|
|
|
685
623
|
}
|
|
686
624
|
const stopTool = completedToolCalls.find((tc) => tc.response.errorType === ToolErrorType.STOP_EXECUTION);
|
|
687
625
|
if (stopTool) {
|
|
688
|
-
logSessionCompleted(
|
|
689
|
-
accumulateAssistantAndSave(session,
|
|
626
|
+
logSessionCompleted(hooks, session.id, message, responseText, turnCount, auditToolCalls, skillsActivated, auditStatus, auditError, sessionStartMs, geminiClient.getCurrentSequenceModel() ?? config.getModel(), tokens);
|
|
627
|
+
accumulateAssistantAndSave(session, hooks, responseText, auditToolCalls, skillsActivated, widgetEvents, contentBlockOrder, 'completed');
|
|
690
628
|
yield {
|
|
691
629
|
type: SSEEventType.Done,
|
|
692
630
|
timestamp: new Date().toISOString(),
|
|
@@ -706,8 +644,8 @@ export async function* streamMessage(session, message, signal, audit, sessionMan
|
|
|
706
644
|
break;
|
|
707
645
|
}
|
|
708
646
|
}
|
|
709
|
-
logSessionCompleted(
|
|
710
|
-
accumulateAssistantAndSave(session,
|
|
647
|
+
logSessionCompleted(hooks, session.id, message, responseText, turnCount, auditToolCalls, skillsActivated, auditStatus, auditError, sessionStartMs, geminiClient.getCurrentSequenceModel() ?? config.getModel(), tokens);
|
|
648
|
+
accumulateAssistantAndSave(session, hooks, responseText, auditToolCalls, skillsActivated, widgetEvents, contentBlockOrder, auditStatus === 'completed' ? 'completed' : 'error');
|
|
711
649
|
yield {
|
|
712
650
|
type: SSEEventType.Done,
|
|
713
651
|
timestamp: new Date().toISOString(),
|
|
@@ -722,7 +660,7 @@ export async function* streamMessage(session, message, signal, audit, sessionMan
|
|
|
722
660
|
/**
|
|
723
661
|
* Accumulate the assistant response message and fire-and-forget save to platform-api.
|
|
724
662
|
*/
|
|
725
|
-
function accumulateAssistantAndSave(session,
|
|
663
|
+
function accumulateAssistantAndSave(session, hooks, responseText, toolCalls, skillsActivated, widgetEvents, contentBlocks, status) {
|
|
726
664
|
const assistantMsg = {
|
|
727
665
|
type: 'assistant_text',
|
|
728
666
|
id: `msg-${Date.now()}`,
|
|
@@ -746,21 +684,17 @@ function accumulateAssistantAndSave(session, audit, responseText, toolCalls, ski
|
|
|
746
684
|
contentBlocks,
|
|
747
685
|
};
|
|
748
686
|
session.accumulatedMessages.push(assistantMsg);
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
});
|
|
754
|
-
}
|
|
687
|
+
hooks?.onSessionPersist?.(session.id, session.accumulatedMessages, status, {
|
|
688
|
+
model: session.model,
|
|
689
|
+
provider: session.provider,
|
|
690
|
+
});
|
|
755
691
|
}
|
|
756
|
-
function logSessionCompleted(
|
|
757
|
-
if (!
|
|
692
|
+
function logSessionCompleted(hooks, sessionId, message, response, turns, toolCalls, skillsActivated, status, error, startMs, model, tokens) {
|
|
693
|
+
if (!hooks)
|
|
758
694
|
return;
|
|
759
695
|
const details = {
|
|
760
696
|
message,
|
|
761
697
|
response,
|
|
762
|
-
app_id: audit.appId,
|
|
763
|
-
org_id: audit.orgId,
|
|
764
698
|
turns,
|
|
765
699
|
duration_ms: Date.now() - startMs,
|
|
766
700
|
status,
|
|
@@ -770,13 +704,16 @@ function logSessionCompleted(audit, sessionId, message, response, turns, toolCal
|
|
|
770
704
|
if (error) {
|
|
771
705
|
details['error'] = error;
|
|
772
706
|
}
|
|
773
|
-
|
|
707
|
+
hooks.onAuditLog?.({
|
|
774
708
|
event: 'session_completed',
|
|
775
709
|
resource_name: sessionId,
|
|
776
710
|
details,
|
|
777
711
|
});
|
|
778
|
-
// Report usage to platform API
|
|
779
712
|
const taskAgentRuns = toolCalls.filter((tc) => tc.tool_name === 'dispatch').length;
|
|
780
|
-
|
|
713
|
+
hooks.onUsageReport?.({
|
|
714
|
+
model: model ?? 'unknown',
|
|
715
|
+
taskAgentRuns,
|
|
716
|
+
tokens: tokens ?? { inputTokens: 0, outputTokens: 0, cachedTokens: 0 },
|
|
717
|
+
});
|
|
781
718
|
}
|
|
782
719
|
//# sourceMappingURL=session-runner.js.map
|