@amodalai/runtime 0.3.23 → 0.3.24

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.
@@ -40,7 +40,6 @@ import { loadRepo } from '@amodalai/core';
40
40
  import { StandaloneSessionManager } from '../session/manager.js';
41
41
  import { selectSessionStore } from '../session/session-store-selector.js';
42
42
  import { resolveEnvRef } from '../env-ref.js';
43
- import { EnvCredentialResolver, ScopeSecretsResolver, ChainResolver } from '../credentials.js';
44
43
  import { buildSessionComponents } from '../session/session-builder.js';
45
44
  import { LocalToolExecutor } from './tool-executor-local.js';
46
45
  import { buildMcpConfigs } from './mcp-config.js';
@@ -145,47 +144,6 @@ export async function createLocalServer(config) {
145
144
  // Derive appId from the agent name (matches AGENT_ID env var set by CLI,
146
145
  // which Studio uses for its queries). Falls back to 'local' for unnamed agents.
147
146
  const appId = bundle.config.name || DEFAULT_APP_ID;
148
- // -------------------------------------------------------------------------
149
- // Scopes credential map (from .amodal/scopes.json, if present)
150
- //
151
- // Format: { "scope-id": { "KEY": "value" }, ... }
152
- // When a session is created with a scopeId, we look up that scope's secrets
153
- // and build a per-session ScopeSecretsResolver from them.
154
- // -------------------------------------------------------------------------
155
- let scopesMap = {};
156
- const scopesJsonPath = path.join(config.repoPath, '.amodal', 'scopes.json');
157
- if (existsSync(scopesJsonPath)) {
158
- try {
159
- const parsed = JSON.parse(readFileSync(scopesJsonPath, 'utf-8'));
160
- if (parsed !== null && typeof parsed === 'object' && !Array.isArray(parsed)) {
161
- // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- validated: non-null object
162
- scopesMap = parsed;
163
- log.info('scopes_loaded', { scopeCount: Object.keys(scopesMap).length, path: scopesJsonPath });
164
- }
165
- else {
166
- log.warn('scopes_json_invalid', { path: scopesJsonPath, hint: 'Expected a JSON object at the top level' });
167
- }
168
- }
169
- catch (err) {
170
- log.error('scopes_json_load_failed', { path: scopesJsonPath, error: err instanceof Error ? err.message : String(err) });
171
- }
172
- }
173
- /**
174
- * Build a CredentialResolver for a given scopeId.
175
- * Always includes EnvCredentialResolver for env:KEY references.
176
- * If the scopeId maps to a secrets entry in scopes.json, also includes
177
- * a ScopeSecretsResolver for scope:KEY references.
178
- */
179
- function buildCredentialResolver(scopeId) {
180
- const resolvers = [new EnvCredentialResolver()];
181
- if (scopeId !== undefined) {
182
- const secrets = scopesMap[scopeId];
183
- if (secrets !== undefined) {
184
- resolvers.push(new ScopeSecretsResolver(secrets));
185
- }
186
- }
187
- return new ChainResolver(resolvers);
188
- }
189
147
  // Check provider API keys in the background at startup
190
148
  let providerStatuses = PROVIDER_CHECKS.map((c) => ({
191
149
  provider: c.provider, envVar: c.envVar, keySet: !!process.env[c.envVar], verified: false,
@@ -310,7 +268,6 @@ export async function createLocalServer(config) {
310
268
  // Provide the DB handle for the memory tool when memory is enabled.
311
269
  // The db singleton is already initialized above (getDb + ensureSchema).
312
270
  ...(bundle.config.memory?.enabled ? { memoryDb: db } : {}),
313
- buildCredentialResolver,
314
271
  };
315
272
  // Helper: get current bundle (updated by config watcher)
316
273
  const getBundle = () => bundle;
@@ -482,117 +439,8 @@ export async function createLocalServer(config) {
482
439
  app.get('/config', (_req, res) => {
483
440
  res.json({ resumeSessionId: resumeSessionId ?? null });
484
441
  });
485
- // Sessions endpoints served directly from the DrizzleSessionStore.
486
- //
487
- // Dev-UI consumers (sidebar Recent list, Sessions page, Automation detail
488
- // page) don't paginate — they render what they get and slice the top N.
489
- // A 500-session ceiling keeps the response bounded without forcing a
490
- // cursor API on the client today. If dev sessions regularly exceed this,
491
- // the store already supports cursor pagination via SessionListOptions.
492
- const SESSION_LIST_LIMIT = 500;
493
- // --- Widget-compatible session history routes ---
494
- // The ChatWidget uses /sessions/history endpoints (matching the cloud sessions-router).
495
- // These return the SessionHistoryItem shape expected by @amodalai/react/client/chat-api.
496
- app.get('/sessions/history', asyncHandler(async (req, res) => {
497
- const scopeIdParam = typeof req.query['scope_id'] === 'string' ? req.query['scope_id'] : undefined;
498
- const filter = { appId };
499
- // Scope filtering uses the dedicated findByScopeId path on DrizzleSessionStore;
500
- // for the list endpoint we filter via the scope_id column directly if provided.
501
- const { DrizzleSessionStore } = await import('../session/drizzle-session-store.js');
502
- let sessionIds;
503
- if (scopeIdParam !== undefined && sessionStore instanceof DrizzleSessionStore) {
504
- const found = await sessionStore.findByScopeId(scopeIdParam);
505
- sessionIds = found ? [found] : [];
506
- }
507
- const { sessions: rows } = sessionIds !== undefined
508
- ? { sessions: (await Promise.all(sessionIds.map((id) => sessionStore.load(id)))).filter((s) => s !== null) }
509
- : await sessionStore.list({ limit: SESSION_LIST_LIMIT, filter });
510
- const items = rows.map((s) => {
511
- const title = typeof s.metadata['title'] === 'string' ? s.metadata['title'] : undefined;
512
- return {
513
- id: s.id,
514
- app_id: typeof s.metadata['appId'] === 'string' ? s.metadata['appId'] : appId,
515
- title: title ?? extractFirstUserText(s.messages) ?? 'Untitled',
516
- tags: extractStringArray(s.metadata['tags']),
517
- status: 'active',
518
- message_count: s.messages.length,
519
- created_at: s.createdAt.toISOString(),
520
- updated_at: s.updatedAt.toISOString(),
521
- };
522
- });
523
- res.json(items);
524
- }));
525
- app.get('/sessions/history/:id', asyncHandler(async (req, res) => {
526
- const persisted = await sessionStore.load(req.params['id'] ?? '');
527
- if (!persisted) {
528
- res.status(404).json({ error: 'Session not found' });
529
- return;
530
- }
531
- const title = typeof persisted.metadata['title'] === 'string' ? persisted.metadata['title'] : undefined;
532
- const rawMessages = persisted.messages.map(flattenModelMessage).filter((m) => m !== null);
533
- const messages = rawMessages.map((m) => ({
534
- type: m.role === 'user' ? 'user' : 'assistant_text',
535
- id: `hist-${Math.random().toString(36).slice(2)}`,
536
- text: m.text,
537
- timestamp: persisted.updatedAt.toISOString(),
538
- ...(m.toolCalls ? { toolCalls: m.toolCalls } : {}),
539
- }));
540
- res.json({
541
- id: persisted.id,
542
- app_id: typeof persisted.metadata['appId'] === 'string' ? persisted.metadata['appId'] : appId,
543
- title: title ?? extractFirstUserText(persisted.messages) ?? 'Untitled',
544
- tags: extractStringArray(persisted.metadata['tags']),
545
- status: 'active',
546
- message_count: persisted.messages.length,
547
- created_at: persisted.createdAt.toISOString(),
548
- updated_at: persisted.updatedAt.toISOString(),
549
- messages,
550
- });
551
- }));
552
- app.patch('/sessions/history/:id', express.json(), asyncHandler(async (req, res) => {
553
- const sessionId = req.params['id'] ?? '';
554
- const body = req.body;
555
- if (!body || typeof body !== 'object') {
556
- res.status(400).json({ error: 'Request body required' });
557
- return;
558
- }
559
- // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- validated above: body is a non-null object
560
- const updates = body;
561
- const live = sessionManager.get(sessionId);
562
- if (live) {
563
- if (typeof updates['title'] === 'string')
564
- live.metadata.title = updates['title'];
565
- if (Array.isArray(updates['tags']))
566
- live.metadata['tags'] = updates['tags'];
567
- await sessionManager.persist(live);
568
- }
569
- else {
570
- const persisted = await sessionStore.load(sessionId);
571
- if (!persisted) {
572
- res.status(404).json({ error: 'Session not found' });
573
- return;
574
- }
575
- if (typeof updates['title'] === 'string')
576
- persisted.metadata.title = updates['title'];
577
- if (Array.isArray(updates['tags']))
578
- persisted.metadata['tags'] = updates['tags'];
579
- persisted.updatedAt = new Date();
580
- await sessionStore.save(persisted);
581
- }
582
- eventBus.emit({ type: 'session_updated', sessionId, appId, title: typeof updates['title'] === 'string' ? updates['title'] : undefined });
583
- res.json({ ok: true });
584
- }));
585
- app.delete('/sessions/history/:id', asyncHandler(async (req, res) => {
586
- const sessionId = req.params['id'] ?? '';
587
- await sessionManager.destroy(sessionId);
588
- const deleted = await sessionStore.delete(sessionId);
589
- if (!deleted) {
590
- res.status(404).json({ error: 'Session not found' });
591
- return;
592
- }
593
- eventBus.emit({ type: 'session_deleted', sessionId });
594
- res.json({ ok: true });
595
- }));
442
+ // Sessions history routes are now mounted in server.ts via createSessionsHistoryRouter
443
+ // when sessionStore is provided. No need to duplicate them here.
596
444
  // File browser/editor — role-gated. Defaults to "everyone is ops" in
597
445
  // amodal dev; hosted-runtime injects a cloud RoleProvider.
598
446
  app.use(createFilesRouter({
@@ -734,84 +582,6 @@ export async function createLocalServer(config) {
734
582
  // ---------------------------------------------------------------------------
735
583
  // /sessions + /session/:id response helpers
736
584
  // ---------------------------------------------------------------------------
737
- /** Max length of the first-user-message excerpt shown in session lists. */
738
- const SUMMARY_EXCERPT_MAX = 80;
739
- function isRecord(x) {
740
- return typeof x === 'object' && x !== null;
741
- }
742
- function isTextPart(part) {
743
- return isRecord(part) && part['type'] === 'text' && typeof part['text'] === 'string';
744
- }
745
- function isToolCallPart(part) {
746
- return (isRecord(part) &&
747
- part['type'] === 'tool-call' &&
748
- typeof part['toolCallId'] === 'string' &&
749
- typeof part['toolName'] === 'string');
750
- }
751
- function getMessageRole(raw) {
752
- if (!isRecord(raw))
753
- return null;
754
- const role = raw['role'];
755
- return typeof role === 'string' ? role : null;
756
- }
757
- function getMessageContent(raw) {
758
- if (!isRecord(raw))
759
- return undefined;
760
- return raw['content'];
761
- }
762
- /** Truncate with an ellipsis when the source exceeds the excerpt budget. */
763
- function excerpt(s) {
764
- return s.length > SUMMARY_EXCERPT_MAX ? `${s.slice(0, SUMMARY_EXCERPT_MAX)}…` : s;
765
- }
766
- /** Extract the first user-message text from a persisted message array for list summaries. */
767
- function extractStringArray(value) {
768
- if (!Array.isArray(value))
769
- return [];
770
- return value.filter((v) => typeof v === 'string');
771
- }
772
- function extractFirstUserText(messages) {
773
- for (const raw of messages) {
774
- if (getMessageRole(raw) !== 'user')
775
- continue;
776
- const content = getMessageContent(raw);
777
- if (typeof content === 'string')
778
- return excerpt(content);
779
- if (Array.isArray(content)) {
780
- const firstText = content.find(isTextPart);
781
- if (firstText)
782
- return excerpt(firstText.text);
783
- }
784
- }
785
- return undefined;
786
- }
787
- /**
788
- * Flatten a persisted `ModelMessage` (ai SDK v6) into the shape the web UI's
789
- * /session/:id consumer expects: {role, text, toolCalls?}. Returns null for
790
- * tool-result messages and for assistant turns with no renderable content
791
- * (the history panel shows conversation + tool-call chips, not raw tool
792
- * plumbing).
793
- */
794
- function flattenModelMessage(raw) {
795
- const role = getMessageRole(raw);
796
- if (role !== 'user' && role !== 'assistant')
797
- return null;
798
- const content = getMessageContent(raw);
799
- if (typeof content === 'string') {
800
- return { role, text: content };
801
- }
802
- if (Array.isArray(content)) {
803
- const text = content.filter(isTextPart).map((p) => p.text).join('');
804
- const toolCalls = role === 'assistant'
805
- ? content.filter(isToolCallPart).map((p) => ({
806
- toolId: p.toolCallId,
807
- toolName: p.toolName,
808
- parameters: isRecord(p.input) ? p.input : {},
809
- }))
810
- : [];
811
- if (text.length === 0 && toolCalls.length === 0)
812
- return null;
813
- return toolCalls.length > 0 ? { role, text, toolCalls } : { role, text };
814
- }
815
- return null;
816
- }
585
+ // Session history helpers (flattenModelMessage, extractFirstUserText, etc.)
586
+ // moved to routes/sessions-history.ts — shared between local-server and hosted runtime.
817
587
  //# sourceMappingURL=local-server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"local-server.js","sourceRoot":"","sources":["../../../src/agent/local-server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;;;;;GASG;AAEH,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAC,UAAU,EAAE,YAAY,EAAC,MAAM,SAAS,CAAC;AACjD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AAEvC,oEAAoE;AACpE,uDAAuD;AACvD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAClE,MAAM,eAAe,GAAW,CAAC,GAAG,EAAE;IACpC,IAAI,CAAC;QACH,qEAAqE;QACrE,KAAK,IAAI,GAAG,GAAG,YAAY,EAAE,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAChF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YACjD,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,4GAA4G;gBAC5G,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAsC,CAAC;gBAC9F,IAAI,GAAG,CAAC,IAAI,KAAK,mBAAmB;oBAAE,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;YACtE,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAC9B,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC,EAAE,CAAC;AACL,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAC,wBAAwB,EAAC,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAC,kBAAkB,EAAC,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAC,aAAa,EAAC,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAC,qBAAqB,EAAE,oBAAoB,EAAE,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAE7F,OAAO,EAAC,sBAAsB,EAAC,MAAM,+BAA+B,CAAC;AAErE,OAAO,EAAC,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAC,kBAAkB,EAAC,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAC,0BAA0B,EAAC,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAC,mBAAmB,EAAC,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAC,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAC,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAC,mBAAmB,EAAC,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAC,YAAY,EAAC,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AAGxD,OAAO,EAAC,0BAA0B,EAAC,MAAM,qCAAqC,CAAC;AAE/E,OAAO,EAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAC,MAAM,cAAc,CAAC;AAEvF,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAC,YAAY,IAAI,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAC,GAAG,EAAE,YAAY,EAAC,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAC,mBAAmB,EAAC,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAC,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAC,2BAA2B,EAAC,MAAM,uCAAuC,CAAC;AAelF,sEAAsE;AACtE,sEAAsE;AACtE,oEAAoE;AACpE,sEAAsE;AACtE,uEAAuE;AACvE,oEAAoE;AACpE,MAAM,eAAe,GAAG;IACtB,EAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,mBAAmB,EAAE,GAAG,EAAE,qCAAqC,EAAE,UAAU,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,EAAC,WAAW,EAAE,GAAG,EAAE,mBAAmB,EAAE,YAAY,EAAC,CAAC,EAAC;IACtL,EAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,kCAAkC,EAAE,UAAU,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,EAAC,aAAa,EAAE,UAAU,GAAG,EAAE,EAAC,CAAC,EAAC;IACxJ,EAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,yDAAyD,EAAE,UAAU,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,EAAC,gBAAgB,EAAE,GAAG,EAAC,CAAC,EAAC;IACtK,EAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,uCAAuC,EAAE,UAAU,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,EAAC,aAAa,EAAE,UAAU,GAAG,EAAE,EAAC,CAAC,EAAC;IACzJ,EAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,oCAAoC,EAAE,UAAU,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,EAAC,aAAa,EAAE,UAAU,GAAG,EAAE,EAAC,CAAC,EAAC;IAC9J,EAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,4BAA4B,EAAE,UAAU,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,EAAC,aAAa,EAAE,UAAU,GAAG,EAAE,EAAC,CAAC,EAAC;CAC7I,CAAC;AAEF,KAAK,UAAU,cAAc;IAC3B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,EAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC;QAC1F,CAAC;QACD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE;gBAC5C,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;gBAC9B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;aAClC,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACX,OAAO,EAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;YACxF,CAAC;YACD,OAAO,EAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAC,CAAC;QAC9H,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAC,CAAC;QAClJ,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;AACpI,CAAC;AAED,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E;;;;;;GAMG;AACH;;;;;;;;;;GAUG;AACH,IAAI,mCAAmC,GAAG,KAAK,CAAC;AAChD,SAAS,+BAA+B;IACtC,IAAI,mCAAmC;QAAE,OAAO;IAChD,mCAAmC,GAAG,IAAI,CAAC;IAC3C,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAe,EAAE,EAAE;QACnD,MAAM,GAAG,GAAG,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACzE,GAAG,CAAC,KAAK,CAAC,qBAAqB,EAAE;YAC/B,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,KAAK,EAAE,GAAG,CAAC,KAAK;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAyB;IAC/D,+BAA+B,EAAE,CAAC;IAClC,IAAI,MAAM,GAAG,MAAM,QAAQ,CAAC,EAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAC,CAAC,CAAC;IAE1D,yEAAyE;IACzE,gFAAgF;IAChF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,cAAc,CAAC;IAEnD,4EAA4E;IAC5E,+DAA+D;IAC/D,EAAE;IACF,kDAAkD;IAClD,4EAA4E;IAC5E,0DAA0D;IAC1D,4EAA4E;IAE5E,IAAI,SAAS,GAA2C,EAAE,CAAC;IAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAC5E,IAAI,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAC/B,IAAI,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAY,CAAC;YAC5E,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5E,qGAAqG;gBACrG,SAAS,GAAG,MAAgD,CAAC;gBAC7D,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,EAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,EAAC,CAAC,CAAC;YAC/F,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,yCAAyC,EAAC,CAAC,CAAC;YAC3G,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,yBAAyB,EAAE,EAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAC,CAAC,CAAC;QACxH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,SAAS,uBAAuB,CAAC,OAA2B;QAC1D,MAAM,SAAS,GAAyB,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;QACtE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,SAAS,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QACD,OAAO,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,uDAAuD;IACvD,IAAI,gBAAgB,GAAqB,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK;KACzF,CAAC,CAAC,CAAC;IACJ,KAAK,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;QACrC,gBAAgB,GAAG,OAAO,CAAC;QAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC1E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAC,SAAS,EAAE,QAAQ,EAAC,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC9D,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAC,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QACxB,GAAG,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAC,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAC,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;IAEH,8BAA8B;IAC9B,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAEnF,4EAA4E;IAC5E,6DAA6D;IAC7D,4EAA4E;IAE5E,wHAAwH;IACxH,MAAM,EAAE,GAAG,KAAK,EAAwD,CAAC;IACzE,MAAM,YAAY,CAAC,EAAE,CAAC,CAAC;IACvB,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;IAEtC,wEAAwE;IACxE,wEAAwE;IACxE,wEAAwE;IACxE,kEAAkE;IAClE,2EAA2E;IAC3E,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;QAC7B,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA,uCAAuC,KAAK,gGAAgG,KAAK,2EAA2E,CAAC,CAAC;QAClP,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA,oDAAoD,CAAC,CAAC;QAC1E,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA,+CAA+C,KAAK,yBAAyB,CAAC,CAAC;QACnG,MAAM,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,EAAC,KAAK,EAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9F,MAAM,EAAE,CAAC,OAAO,CACd,GAAG,CAAA,gFAAgF,KAAK,6CAA6C,CACtI,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAC,CAAC,CAAC;IAChE,CAAC;IAED,4EAA4E;IAC5E,gBAAgB;IAChB,4EAA4E;IAE5E,IAAI,YAAsC,CAAC;IAC3C,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;IACxE,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,YAAY,GAAG,MAAM,0BAA0B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/D,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAC,CAAC,CAAC;QACxF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChE,GAAG,CAAC,KAAK,CAAC,2BAA2B,EAAE,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,iEAAiE;IACjE,4EAA4E;IAE5E,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC;QACnC,eAAe,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC9B,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE;gBACnC,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;IAEH,oEAAoE;IACpE,sEAAsE;IACtE,iEAAiE;IACjE,IAAI,YAAY,EAAE,CAAC;QACjB,YAAY,GAAG,0BAA0B,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACpE,CAAC;IAED,4EAA4E;IAC5E,yCAAyC;IACzC,4EAA4E;IAE5E,MAAM,aAAa,GAAG,YAAY,CAAC,EAAC,SAAS,EAAE,iBAAiB,EAAC,CAAC,CAAC;IACnE,MAAM,cAAc,GAAG,GAAG,MAAM,CAAC,QAAQ,uBAAuB,CAAC;IACjE,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC;QAC5C,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;QACtC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC;QAC7D,MAAM,EAAE,aAAa;QACrB,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,IAAI,wBAAwB,CAAC;QAClD,MAAM,EAAE,aAAa;QACrB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,MAAM,CAAC,YAAY;QAC1B,QAAQ;KACT,CAAC,CAAC;IACH,cAAc,CAAC,KAAK,EAAE,CAAC;IAEvB,4EAA4E;IAC5E,2CAA2C;IAC3C,4EAA4E;IAE5E,IAAI,UAAU,GAA+C,IAAI,CAAC;IAClE,CAAC;QACC,MAAM,EAAC,UAAU,EAAC,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,UAAU,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;gBACvC,IAAI,OAAO,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;oBAC/B,UAAU,GAAG,OAAO,CAAC;oBACrB,MAAM,KAAK,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;oBAC3C,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAC,OAAO,EAAE,OAAO,CAAC,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAC,CAAC,CAAC;gBACtF,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAC,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAC,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,sCAAsC;IACtC,4EAA4E;IAE5E,MAAM,MAAM,GAAoB;QAC9B,YAAY,EAAE,YAAY,IAAI,IAAI;QAClC,UAAU;QACV,MAAM,EAAE,GAAG;QACX,YAAY;QACZ,KAAK;QACL,oEAAoE;QACpE,wEAAwE;QACxE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAC,QAAQ,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,uBAAuB;KACxB,CAAC;IAEF,yDAAyD;IACzD,MAAM,SAAS,GAAG,GAAgB,EAAE,CAAC,MAAM,CAAC;IAE5C,yCAAyC;IACzC,MAAM,2BAA2B,GAAG,GAAG,EAAE;QACvC,MAAM,UAAU,GAAG,sBAAsB,CAAC;YACxC,MAAM;YACN,YAAY,EAAE,YAAY,IAAI,IAAI;YAClC,UAAU;YACV,MAAM,EAAE,GAAG;YACX,YAAY;YACZ,WAAW,EAAE,YAAY;SAC1B,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC;YACpC,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,iBAAiB,EAAE,UAAU,CAAC,iBAAiB;YAC/C,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;YACjD,KAAK;SACN,CAAC,CAAC;QACH,OAAO,EAAC,OAAO,EAAE,kBAAkB,EAAE,UAAU,CAAC,kBAAkB,EAAC,CAAC;IACtE,CAAC,CAAC;IAEF,4EAA4E;IAC5E,2CAA2C;IAC3C,4EAA4E;IAE5E,IAAI,cAAc,GAAqF,IAAI,CAAC;IAE5G,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,yDAAyD;QACzD,qEAAqE;QACrE,MAAM,EAAC,mBAAmB,EAAC,GAAG,MAAM,MAAM,CAAC,qCAAqC,CAAC,CAAC;QAClF,IAAI,CAAC,CAAC,YAAY,YAAY,mBAAmB,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;QACD,MAAM,OAAO,GAAG,YAAY,CAAC,EAAE,CAAC;QAChC,MAAM,oBAAoB,GAAG,IAAI,2BAA2B,CAAC;YAC3D,EAAE,EAAE,OAAO;YACX,MAAM,EAAE,GAAG;YACX,QAAQ;SACT,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,cAAc,GAAG,MAAM,iBAAiB,CAAC;gBACvC,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ;gBAChC,aAAa,EAAE,oBAAoB;gBACnC,cAAc;gBACd,sBAAsB,EAAE,GAAG,EAAE,CAAC,sBAAsB,CAAC;oBACnD,MAAM;oBACN,YAAY,EAAE,YAAY,IAAI,IAAI;oBAClC,UAAU;oBACV,MAAM,EAAE,GAAG;oBACX,YAAY;oBACZ,WAAW,EAAE,MAAM;iBACpB,CAAC;gBACF,KAAK;gBACL,QAAQ;gBACR,MAAM,EAAE,GAAG;aACZ,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE;gBAC/B,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;gBACvD,IAAI,EAAE,8CAA8C;aACrD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,8BAA8B;IAC9B,4EAA4E;IAE5E,IAAI,OAAO,GAAyB,IAAI,CAAC;IAEzC,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IAEtB,OAAO;IACP,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC;IAC5C,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC1B,GAAG,CAAC,MAAM,CAAC,6BAA6B,EAAE,UAAU,CAAC,CAAC;QACtD,GAAG,CAAC,MAAM,CACR,8BAA8B,EAC9B,+DAA+D,CAChE,CAAC;QACF,GAAG,CAAC,MAAM,CACR,8BAA8B,EAC9B,wCAAwC,CACzC,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QACD,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAExB,SAAS;IACT,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAC/B,GAAG,CAAC,IAAI,CAAC;YACP,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,MAAM,CAAC,QAAQ;YAC1B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YACjC,eAAe,EAAE,cAAc,CAAC,IAAI;SACrC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,iEAAiE;IACjE,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QACpC,GAAG,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,+DAA+D;IAC/D,0EAA0E;IAC1E,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,mBAAmB,CAAC;IAEhE,sEAAsE;IACtE,yEAAyE;IACzE,eAAe;IACf,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACjD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAC,CAAC,CAAC;YACrD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,KAAK,EAAE,EAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,yBAAyB,EAAC;aACrE,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC,CAAC;IAEJ,qEAAqE;IACrE,0EAA0E;IAC1E,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC;QAC1B,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI;QAChE,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,IAAI;KAC9E,CAAC,CAAC,CAAC;IAEJ,0BAA0B;IAC1B,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QACnC,MAAM,UAAU,GAAG,SAAS,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC;QAE9B,qDAAqD;QACrD,MAAM,OAAO,GAA4D,EAAE,CAAC;QAC5E,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;YACpC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnE,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC/B,OAAO,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAC,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;QAED,GAAG,CAAC,IAAI,CAAC;YACP,KAAK;YACL,OAAO,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE;YACxB,IAAI,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE;YACrB,OAAO,EAAE,GAAG,EAAE,OAAO,IAAI,EAAE;YAC3B,WAAW,EAAE,GAAG,EAAE,WAAW,IAAI,EAAE;YACnC,MAAM,EAAE,GAAG,EAAE,MAAM,IAAI,EAAE;YACzB,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAC,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAC,CAAC,CAAC,CAAC,IAAI;YAC7E,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO;YACP,gBAAgB;YAChB,WAAW,EAAE,OAAO,CAAC,OAAO;YAC5B,cAAc,EAAE,eAAe;YAC/B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;SACrC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4BAA4B;IAC5B,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;IAC7C,IAAI,eAAe,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,EAAC,QAAQ,EAAE,MAAM,EAAC,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC;YACjD,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,EAAC,KAAK,EAAC;SAChB,CAAC,CAAC;QACH,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAClC,CAAC;IACD,IAAI,eAAe,EAAE,CAAC;QACpB,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAC,SAAS,EAAE,eAAe,EAAC,CAAC,CAAC;IAC5D,CAAC;IAED,2DAA2D;IAC3D,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAC/B,GAAG,CAAC,IAAI,CAAC,EAAC,eAAe,EAAE,eAAe,IAAI,IAAI,EAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,qEAAqE;IACrE,EAAE;IACF,0EAA0E;IAC1E,wEAAwE;IACxE,qEAAqE;IACrE,yEAAyE;IACzE,uEAAuE;IACvE,MAAM,kBAAkB,GAAG,GAAG,CAAC;IAE/B,mDAAmD;IACnD,wFAAwF;IACxF,yFAAyF;IACzF,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3D,MAAM,YAAY,GAAG,OAAO,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACnG,MAAM,MAAM,GAA4B,EAAC,KAAK,EAAC,CAAC;QAChD,gFAAgF;QAChF,gFAAgF;QAChF,MAAM,EAAC,mBAAmB,EAAC,GAAG,MAAM,MAAM,CAAC,qCAAqC,CAAC,CAAC;QAClF,IAAI,UAAgC,CAAC;QACrC,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,YAAY,mBAAmB,EAAE,CAAC;YAC9E,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;YAC7D,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpC,CAAC;QACD,MAAM,EAAC,QAAQ,EAAE,IAAI,EAAC,GAAG,UAAU,KAAK,SAAS;YAC/C,CAAC,CAAC,EAAC,QAAQ,EAAE,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAC;YACtI,CAAC,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAC,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACxF,OAAO;gBACL,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK;gBAC7E,KAAK,EAAE,KAAK,IAAI,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,UAAU;gBAC9D,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC5C,MAAM,EAAE,QAAQ;gBAChB,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM;gBAChC,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE;gBACrC,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE;aACtC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC,CAAC;IAEJ,GAAG,CAAC,GAAG,CAAC,uBAAuB,EAAE,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC/D,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,mBAAmB,EAAC,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxG,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QAC1F,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvC,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB;YACnD,EAAE,EAAE,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACjD,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE;YAC5C,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,SAAS,EAAE,CAAC,CAAC,SAAS,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACjD,CAAC,CAAC,CAAC;QACJ,GAAG,CAAC,IAAI,CAAC;YACP,EAAE,EAAE,SAAS,CAAC,EAAE;YAChB,MAAM,EAAE,OAAO,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK;YAC7F,KAAK,EAAE,KAAK,IAAI,oBAAoB,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,UAAU;YACtE,IAAI,EAAE,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACpD,MAAM,EAAE,QAAQ;YAChB,aAAa,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM;YACxC,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE;YAC7C,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE;YAC7C,QAAQ;SACT,CAAC,CAAC;IACL,CAAC,CAAC,CAAC,CAAC;IAEJ,GAAG,CAAC,KAAK,CAAC,uBAAuB,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACjF,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,IAAI,GAAY,GAAG,CAAC,IAAI,CAAC;QAC/B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,uBAAuB,EAAC,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QACD,qHAAqH;QACrH,MAAM,OAAO,GAA4B,IAA+B,CAAC;QACzE,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,QAAQ;gBAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;YACjF,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAC5E,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,mBAAmB,EAAC,CAAC,CAAC;gBACnD,OAAO;YACT,CAAC;YACD,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,QAAQ;gBAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;YACtF,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YACjF,SAAS,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;YACjC,MAAM,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAC,CAAC,CAAC;QACvI,GAAG,CAAC,IAAI,CAAC,EAAC,EAAE,EAAE,IAAI,EAAC,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC,CAAC;IAEJ,GAAG,CAAC,MAAM,CAAC,uBAAuB,EAAE,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAClE,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,mBAAmB,EAAC,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAC,CAAC,CAAC;QACpD,GAAG,CAAC,IAAI,CAAC,EAAC,EAAE,EAAE,IAAI,EAAC,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC,CAAC;IAEJ,qEAAqE;IACrE,2DAA2D;IAC3D,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,YAAY,EAAE,MAAM,CAAC,YAAY;KAClC,CAAC,CAAC,CAAC;IAEJ,yCAAyC;IACzC,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAC,CAAC,CAAC,CAAC;IAE1D,WAAW;IACX,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,CAAC,CAAC;IAC1D,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAC,aAAa,EAAC,CAAC,CAAC,CAAC;IAE/C,uEAAuE;IACvE,uDAAuD;IACvD,GAAG,CAAC,GAAG,CAAC,sBAAsB,CAAC;QAC7B,cAAc;QACd,cAAc,EAAE,EAAC,YAAY,EAAE,MAAM,EAAC;QACtC,MAAM;QACN,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;KAChD,CAAC,CAAC,CAAC;IACJ,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC;QACvB,cAAc;QACd,cAAc,EAAE,EAAC,YAAY,EAAE,MAAM,EAAC;QACtC,MAAM;QACN,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;KAChD,CAAC,CAAC,CAAC;IAEJ,cAAc;IACd,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAC,cAAc,EAAE,iBAAiB,EAAE,2BAA2B,EAAC,CAAC,CAAC,CAAC;IAE5F,UAAU;IACV,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAC,CAAC,CAAC,CAAC;IAErE,qBAAqB;IACrB,IAAI,cAAc,EAAE,CAAC;QACnB,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5C,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAC,QAAQ,EAAE,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAC,CAAC,CAAC;IACvF,CAAC;IAED,yCAAyC;IACzC,IAAI,YAAY,EAAE,CAAC;QACjB,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,gDAAgD;IAChD,IAAI,UAAU,GAAgB,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjD,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAC,CAAC,CAAC;YACpD,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAC,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAC,CAAC,CAAC;IAC7F,CAAC;IAED,sBAAsB;IACtB,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAClC,GAAG,CAAC,IAAI,CAAC;YACP,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAC,CAAC,CAAC;SAC9D,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,yDAAyD;IACzD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,aAAuC,CAAC,CAAC;IAC1D,CAAC;SAAM,IAAI,MAAM,CAAC,YAAY,IAAI,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;QAClE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;QAC7C,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YAC1B,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBACnK,IAAI,EAAE,CAAC;gBACP,OAAO;YACT,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAa,EAAE,YAAY,CAAC,CAAC;YAChE,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,IAAI,EAAE,CAAC;YACT,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,+BAA+B;IAC/B,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAEtB,IAAI,MAAM,GAAuB,IAAI,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAEzB,OAAO;QACL,GAAG;QAEH,KAAK,CAAC,KAAK;YACT,2BAA2B;YAC3B,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrB,OAAO,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,EAAE;oBACzD,MAAM,GAAG,SAAS,CAAC;oBACnB,+DAA+D;oBAC/D,mDAAmD;oBACnD,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,EAAC,CAAC,CAAC;oBAC3D,QAAQ,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,kBAAkB,EAAC,CAAC,CAAC;oBAC1C,QAAQ,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,eAAe,EAAC,CAAC,CAAC;gBACzC,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,CAAC;YAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;oBAC7C,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,EAAC,CAAC,CAAC;oBACnG,OAAO,CAAC,UAAU,CAAC,CAAC;gBACtB,CAAC,CAAC,CAAC;gBACH,MAAM,GAAG,UAAU,CAAC;YACtB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,IAAI;YACR,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,GAAG,MAAM,CAAC;gBACjB,iCAAiC;gBACjC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBAC1C,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;wBACd,IAAI,GAAG;4BAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;4BAChB,OAAO,EAAE,CAAC;oBACjB,CAAC,CAAC,CAAC;oBACH,0DAA0D;oBAC1D,kDAAkD;oBAClD,CAAC,CAAC,mBAAmB,EAAE,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC;YAChB,CAAC;YAED,MAAM,cAAc,CAAC,QAAQ,EAAE,CAAC;YAEhC,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC9B,CAAC;YAED,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;YAC7B,CAAC;YAED,MAAM,OAAO,EAAE,CAAC;YAEhB,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QACjC,CAAC;KACF,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,4CAA4C;AAC5C,8EAA8E;AAE9E,2EAA2E;AAC3E,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAa/B,SAAS,QAAQ,CAAC,CAAU;IAC1B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC;AAC7C,CAAC;AAED,SAAS,UAAU,CAAC,IAAa;IAC/B,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC;AACvF,CAAC;AAED,SAAS,cAAc,CAAC,IAAa;IAMnC,OAAO,CACL,QAAQ,CAAC,IAAI,CAAC;QACd,IAAI,CAAC,MAAM,CAAC,KAAK,WAAW;QAC5B,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,QAAQ,CACrC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,GAAY;IAClC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAChD,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAY;IACrC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACrC,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;AACxB,CAAC;AAED,4EAA4E;AAC5E,SAAS,OAAO,CAAC,CAAS;IACxB,OAAO,CAAC,CAAC,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,6FAA6F;AAC7F,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,oBAAoB,CAAC,QAA4B;IACxD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,MAAM;YAAE,SAAS;QAC7C,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3C,IAAI,SAAS;gBAAE,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,GAAY;IACvC,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAEzD,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC,CAAC;IAC/B,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,IAAI,KAAK,WAAW;YACpC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3C,MAAM,EAAE,CAAC,CAAC,UAAU;gBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;aAC7C,CAAC,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7D,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC;IACvE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"local-server.js","sourceRoot":"","sources":["../../../src/agent/local-server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;;;;;GASG;AAEH,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAC,UAAU,EAAE,YAAY,EAAC,MAAM,SAAS,CAAC;AACjD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AAEvC,oEAAoE;AACpE,uDAAuD;AACvD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAClE,MAAM,eAAe,GAAW,CAAC,GAAG,EAAE;IACpC,IAAI,CAAC;QACH,qEAAqE;QACrE,KAAK,IAAI,GAAG,GAAG,YAAY,EAAE,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAChF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YACjD,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,4GAA4G;gBAC5G,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAsC,CAAC;gBAC9F,IAAI,GAAG,CAAC,IAAI,KAAK,mBAAmB;oBAAE,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;YACtE,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAC9B,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC,EAAE,CAAC;AACL,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAExC,OAAO,EAAC,wBAAwB,EAAC,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAC,kBAAkB,EAAC,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAC,aAAa,EAAC,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAC,sBAAsB,EAAC,MAAM,+BAA+B,CAAC;AAErE,OAAO,EAAC,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAC,kBAAkB,EAAC,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAC,0BAA0B,EAAC,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAC,mBAAmB,EAAC,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAC,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAC,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAC,mBAAmB,EAAC,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAC,YAAY,EAAC,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AAGxD,OAAO,EAAC,0BAA0B,EAAC,MAAM,qCAAqC,CAAC;AAE/E,OAAO,EAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAC,MAAM,cAAc,CAAC;AAEvF,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAC,YAAY,IAAI,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAC,GAAG,EAAE,YAAY,EAAC,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAC,mBAAmB,EAAC,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAC,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAC,2BAA2B,EAAC,MAAM,uCAAuC,CAAC;AAelF,sEAAsE;AACtE,sEAAsE;AACtE,oEAAoE;AACpE,sEAAsE;AACtE,uEAAuE;AACvE,oEAAoE;AACpE,MAAM,eAAe,GAAG;IACtB,EAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,mBAAmB,EAAE,GAAG,EAAE,qCAAqC,EAAE,UAAU,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,EAAC,WAAW,EAAE,GAAG,EAAE,mBAAmB,EAAE,YAAY,EAAC,CAAC,EAAC;IACtL,EAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,kCAAkC,EAAE,UAAU,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,EAAC,aAAa,EAAE,UAAU,GAAG,EAAE,EAAC,CAAC,EAAC;IACxJ,EAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,yDAAyD,EAAE,UAAU,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,EAAC,gBAAgB,EAAE,GAAG,EAAC,CAAC,EAAC;IACtK,EAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,uCAAuC,EAAE,UAAU,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,EAAC,aAAa,EAAE,UAAU,GAAG,EAAE,EAAC,CAAC,EAAC;IACzJ,EAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,oCAAoC,EAAE,UAAU,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,EAAC,aAAa,EAAE,UAAU,GAAG,EAAE,EAAC,CAAC,EAAC;IAC9J,EAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,4BAA4B,EAAE,UAAU,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,EAAC,aAAa,EAAE,UAAU,GAAG,EAAE,EAAC,CAAC,EAAC;CAC7I,CAAC;AAEF,KAAK,UAAU,cAAc;IAC3B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,EAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC;QAC1F,CAAC;QACD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE;gBAC5C,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;gBAC9B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;aAClC,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACX,OAAO,EAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;YACxF,CAAC;YACD,OAAO,EAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAC,CAAC;QAC9H,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAC,CAAC;QAClJ,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;AACpI,CAAC;AAED,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E;;;;;;GAMG;AACH;;;;;;;;;;GAUG;AACH,IAAI,mCAAmC,GAAG,KAAK,CAAC;AAChD,SAAS,+BAA+B;IACtC,IAAI,mCAAmC;QAAE,OAAO;IAChD,mCAAmC,GAAG,IAAI,CAAC;IAC3C,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAe,EAAE,EAAE;QACnD,MAAM,GAAG,GAAG,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACzE,GAAG,CAAC,KAAK,CAAC,qBAAqB,EAAE;YAC/B,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,KAAK,EAAE,GAAG,CAAC,KAAK;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAyB;IAC/D,+BAA+B,EAAE,CAAC;IAClC,IAAI,MAAM,GAAG,MAAM,QAAQ,CAAC,EAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAC,CAAC,CAAC;IAE1D,yEAAyE;IACzE,gFAAgF;IAChF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,cAAc,CAAC;IAEnD,uDAAuD;IACvD,IAAI,gBAAgB,GAAqB,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK;KACzF,CAAC,CAAC,CAAC;IACJ,KAAK,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;QACrC,gBAAgB,GAAG,OAAO,CAAC;QAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC1E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAC,SAAS,EAAE,QAAQ,EAAC,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC9D,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAC,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QACxB,GAAG,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAC,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAC,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;IAEH,8BAA8B;IAC9B,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAEnF,4EAA4E;IAC5E,6DAA6D;IAC7D,4EAA4E;IAE5E,wHAAwH;IACxH,MAAM,EAAE,GAAG,KAAK,EAAwD,CAAC;IACzE,MAAM,YAAY,CAAC,EAAE,CAAC,CAAC;IACvB,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;IAEtC,wEAAwE;IACxE,wEAAwE;IACxE,wEAAwE;IACxE,kEAAkE;IAClE,2EAA2E;IAC3E,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;QAC7B,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA,uCAAuC,KAAK,gGAAgG,KAAK,2EAA2E,CAAC,CAAC;QAClP,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA,oDAAoD,CAAC,CAAC;QAC1E,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA,+CAA+C,KAAK,yBAAyB,CAAC,CAAC;QACnG,MAAM,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,EAAC,KAAK,EAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9F,MAAM,EAAE,CAAC,OAAO,CACd,GAAG,CAAA,gFAAgF,KAAK,6CAA6C,CACtI,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAC,CAAC,CAAC;IAChE,CAAC;IAED,4EAA4E;IAC5E,gBAAgB;IAChB,4EAA4E;IAE5E,IAAI,YAAsC,CAAC;IAC3C,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;IACxE,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,YAAY,GAAG,MAAM,0BAA0B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/D,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAC,CAAC,CAAC;QACxF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChE,GAAG,CAAC,KAAK,CAAC,2BAA2B,EAAE,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,iEAAiE;IACjE,4EAA4E;IAE5E,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC;QACnC,eAAe,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC9B,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE;gBACnC,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;IAEH,oEAAoE;IACpE,sEAAsE;IACtE,iEAAiE;IACjE,IAAI,YAAY,EAAE,CAAC;QACjB,YAAY,GAAG,0BAA0B,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACpE,CAAC;IAED,4EAA4E;IAC5E,yCAAyC;IACzC,4EAA4E;IAE5E,MAAM,aAAa,GAAG,YAAY,CAAC,EAAC,SAAS,EAAE,iBAAiB,EAAC,CAAC,CAAC;IACnE,MAAM,cAAc,GAAG,GAAG,MAAM,CAAC,QAAQ,uBAAuB,CAAC;IACjE,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC;QAC5C,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;QACtC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC;QAC7D,MAAM,EAAE,aAAa;QACrB,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,IAAI,wBAAwB,CAAC;QAClD,MAAM,EAAE,aAAa;QACrB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,MAAM,CAAC,YAAY;QAC1B,QAAQ;KACT,CAAC,CAAC;IACH,cAAc,CAAC,KAAK,EAAE,CAAC;IAEvB,4EAA4E;IAC5E,2CAA2C;IAC3C,4EAA4E;IAE5E,IAAI,UAAU,GAA+C,IAAI,CAAC;IAClE,CAAC;QACC,MAAM,EAAC,UAAU,EAAC,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,UAAU,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;gBACvC,IAAI,OAAO,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;oBAC/B,UAAU,GAAG,OAAO,CAAC;oBACrB,MAAM,KAAK,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;oBAC3C,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAC,OAAO,EAAE,OAAO,CAAC,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAC,CAAC,CAAC;gBACtF,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAC,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAC,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,sCAAsC;IACtC,4EAA4E;IAE5E,MAAM,MAAM,GAAoB;QAC9B,YAAY,EAAE,YAAY,IAAI,IAAI;QAClC,UAAU;QACV,MAAM,EAAE,GAAG;QACX,YAAY;QACZ,KAAK;QACL,oEAAoE;QACpE,wEAAwE;QACxE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAC,QAAQ,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACzD,CAAC;IAEF,yDAAyD;IACzD,MAAM,SAAS,GAAG,GAAgB,EAAE,CAAC,MAAM,CAAC;IAE5C,yCAAyC;IACzC,MAAM,2BAA2B,GAAG,GAAG,EAAE;QACvC,MAAM,UAAU,GAAG,sBAAsB,CAAC;YACxC,MAAM;YACN,YAAY,EAAE,YAAY,IAAI,IAAI;YAClC,UAAU;YACV,MAAM,EAAE,GAAG;YACX,YAAY;YACZ,WAAW,EAAE,YAAY;SAC1B,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC;YACpC,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,iBAAiB,EAAE,UAAU,CAAC,iBAAiB;YAC/C,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;YACjD,KAAK;SACN,CAAC,CAAC;QACH,OAAO,EAAC,OAAO,EAAE,kBAAkB,EAAE,UAAU,CAAC,kBAAkB,EAAC,CAAC;IACtE,CAAC,CAAC;IAEF,4EAA4E;IAC5E,2CAA2C;IAC3C,4EAA4E;IAE5E,IAAI,cAAc,GAAqF,IAAI,CAAC;IAE5G,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,yDAAyD;QACzD,qEAAqE;QACrE,MAAM,EAAC,mBAAmB,EAAC,GAAG,MAAM,MAAM,CAAC,qCAAqC,CAAC,CAAC;QAClF,IAAI,CAAC,CAAC,YAAY,YAAY,mBAAmB,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;QACD,MAAM,OAAO,GAAG,YAAY,CAAC,EAAE,CAAC;QAChC,MAAM,oBAAoB,GAAG,IAAI,2BAA2B,CAAC;YAC3D,EAAE,EAAE,OAAO;YACX,MAAM,EAAE,GAAG;YACX,QAAQ;SACT,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,cAAc,GAAG,MAAM,iBAAiB,CAAC;gBACvC,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ;gBAChC,aAAa,EAAE,oBAAoB;gBACnC,cAAc;gBACd,sBAAsB,EAAE,GAAG,EAAE,CAAC,sBAAsB,CAAC;oBACnD,MAAM;oBACN,YAAY,EAAE,YAAY,IAAI,IAAI;oBAClC,UAAU;oBACV,MAAM,EAAE,GAAG;oBACX,YAAY;oBACZ,WAAW,EAAE,MAAM;iBACpB,CAAC;gBACF,KAAK;gBACL,QAAQ;gBACR,MAAM,EAAE,GAAG;aACZ,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE;gBAC/B,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;gBACvD,IAAI,EAAE,8CAA8C;aACrD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,8BAA8B;IAC9B,4EAA4E;IAE5E,IAAI,OAAO,GAAyB,IAAI,CAAC;IAEzC,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IAEtB,OAAO;IACP,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC;IAC5C,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC1B,GAAG,CAAC,MAAM,CAAC,6BAA6B,EAAE,UAAU,CAAC,CAAC;QACtD,GAAG,CAAC,MAAM,CACR,8BAA8B,EAC9B,+DAA+D,CAChE,CAAC;QACF,GAAG,CAAC,MAAM,CACR,8BAA8B,EAC9B,wCAAwC,CACzC,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QACD,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAExB,SAAS;IACT,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAC/B,GAAG,CAAC,IAAI,CAAC;YACP,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,MAAM,CAAC,QAAQ;YAC1B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YACjC,eAAe,EAAE,cAAc,CAAC,IAAI;SACrC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,iEAAiE;IACjE,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QACpC,GAAG,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,+DAA+D;IAC/D,0EAA0E;IAC1E,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,mBAAmB,CAAC;IAEhE,sEAAsE;IACtE,yEAAyE;IACzE,eAAe;IACf,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACjD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAC,CAAC,CAAC;YACrD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,KAAK,EAAE,EAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,yBAAyB,EAAC;aACrE,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC,CAAC;IAEJ,qEAAqE;IACrE,0EAA0E;IAC1E,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC;QAC1B,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI;QAChE,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,IAAI;KAC9E,CAAC,CAAC,CAAC;IAEJ,0BAA0B;IAC1B,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QACnC,MAAM,UAAU,GAAG,SAAS,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC;QAE9B,qDAAqD;QACrD,MAAM,OAAO,GAA4D,EAAE,CAAC;QAC5E,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;YACpC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnE,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC/B,OAAO,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAC,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;QAED,GAAG,CAAC,IAAI,CAAC;YACP,KAAK;YACL,OAAO,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE;YACxB,IAAI,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE;YACrB,OAAO,EAAE,GAAG,EAAE,OAAO,IAAI,EAAE;YAC3B,WAAW,EAAE,GAAG,EAAE,WAAW,IAAI,EAAE;YACnC,MAAM,EAAE,GAAG,EAAE,MAAM,IAAI,EAAE;YACzB,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAC,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAC,CAAC,CAAC,CAAC,IAAI;YAC7E,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO;YACP,gBAAgB;YAChB,WAAW,EAAE,OAAO,CAAC,OAAO;YAC5B,cAAc,EAAE,eAAe;YAC/B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;SACrC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4BAA4B;IAC5B,IAAI,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;IAC7C,IAAI,eAAe,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,EAAC,QAAQ,EAAE,MAAM,EAAC,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC;YACjD,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,EAAC,KAAK,EAAC;SAChB,CAAC,CAAC;QACH,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAClC,CAAC;IACD,IAAI,eAAe,EAAE,CAAC;QACpB,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAC,SAAS,EAAE,eAAe,EAAC,CAAC,CAAC;IAC5D,CAAC;IAED,2DAA2D;IAC3D,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAC/B,GAAG,CAAC,IAAI,CAAC,EAAC,eAAe,EAAE,eAAe,IAAI,IAAI,EAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,uFAAuF;IACvF,iEAAiE;IAEjE,qEAAqE;IACrE,2DAA2D;IAC3D,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,YAAY,EAAE,MAAM,CAAC,YAAY;KAClC,CAAC,CAAC,CAAC;IAEJ,yCAAyC;IACzC,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAC,CAAC,CAAC,CAAC;IAE1D,WAAW;IACX,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,EAAC,OAAO,EAAE,KAAK,EAAC,CAAC,CAAC;IAC1D,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAC,aAAa,EAAC,CAAC,CAAC,CAAC;IAE/C,uEAAuE;IACvE,uDAAuD;IACvD,GAAG,CAAC,GAAG,CAAC,sBAAsB,CAAC;QAC7B,cAAc;QACd,cAAc,EAAE,EAAC,YAAY,EAAE,MAAM,EAAC;QACtC,MAAM;QACN,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;KAChD,CAAC,CAAC,CAAC;IACJ,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC;QACvB,cAAc;QACd,cAAc,EAAE,EAAC,YAAY,EAAE,MAAM,EAAC;QACtC,MAAM;QACN,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;KAChD,CAAC,CAAC,CAAC;IAEJ,cAAc;IACd,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAC,cAAc,EAAE,iBAAiB,EAAE,2BAA2B,EAAC,CAAC,CAAC,CAAC;IAE5F,UAAU;IACV,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAC,CAAC,CAAC,CAAC;IAErE,qBAAqB;IACrB,IAAI,cAAc,EAAE,CAAC;QACnB,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5C,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAC,QAAQ,EAAE,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAC,CAAC,CAAC;IACvF,CAAC;IAED,yCAAyC;IACzC,IAAI,YAAY,EAAE,CAAC;QACjB,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,gDAAgD;IAChD,IAAI,UAAU,GAAgB,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjD,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,EAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAC,CAAC,CAAC;YACpD,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAC,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAC,CAAC,CAAC;IAC7F,CAAC;IAED,sBAAsB;IACtB,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAClC,GAAG,CAAC,IAAI,CAAC;YACP,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAC,CAAC,CAAC;SAC9D,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,yDAAyD;IACzD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,aAAuC,CAAC,CAAC;IAC1D,CAAC;SAAM,IAAI,MAAM,CAAC,YAAY,IAAI,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;QAClE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;QAC7C,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YAC1B,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBACnK,IAAI,EAAE,CAAC;gBACP,OAAO;YACT,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAa,EAAE,YAAY,CAAC,CAAC;YAChE,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,IAAI,EAAE,CAAC;YACT,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,+BAA+B;IAC/B,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAEtB,IAAI,MAAM,GAAuB,IAAI,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAEzB,OAAO;QACL,GAAG;QAEH,KAAK,CAAC,KAAK;YACT,2BAA2B;YAC3B,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrB,OAAO,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,EAAE;oBACzD,MAAM,GAAG,SAAS,CAAC;oBACnB,+DAA+D;oBAC/D,mDAAmD;oBACnD,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,EAAC,CAAC,CAAC;oBAC3D,QAAQ,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,kBAAkB,EAAC,CAAC,CAAC;oBAC1C,QAAQ,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,eAAe,EAAC,CAAC,CAAC;gBACzC,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,CAAC;YAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;oBAC7C,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,EAAC,CAAC,CAAC;oBACnG,OAAO,CAAC,UAAU,CAAC,CAAC;gBACtB,CAAC,CAAC,CAAC;gBACH,MAAM,GAAG,UAAU,CAAC;YACtB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,IAAI;YACR,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,GAAG,MAAM,CAAC;gBACjB,iCAAiC;gBACjC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBAC1C,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;wBACd,IAAI,GAAG;4BAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;4BAChB,OAAO,EAAE,CAAC;oBACjB,CAAC,CAAC,CAAC;oBACH,0DAA0D;oBAC1D,kDAAkD;oBAClD,CAAC,CAAC,mBAAmB,EAAE,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC;YAChB,CAAC;YAED,MAAM,cAAc,CAAC,QAAQ,EAAE,CAAC;YAEhC,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC9B,CAAC;YAED,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;YAC7B,CAAC;YAED,MAAM,OAAO,EAAE,CAAC;YAEhB,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QACjC,CAAC;KACF,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,4CAA4C;AAC5C,8EAA8E;AAE9E,4EAA4E;AAC5E,wFAAwF"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ /**
7
+ * Session history REST routes.
8
+ *
9
+ * Provides GET/PATCH/DELETE for /sessions/history endpoints.
10
+ * Used by both local-server and hosted runtime via createServer.
11
+ */
12
+ import { Router } from 'express';
13
+ import type { SessionStore } from '../session/store.js';
14
+ import type { StandaloneSessionManager } from '../session/manager.js';
15
+ import type { RuntimeEventBus } from '../events/event-bus.js';
16
+ export interface SessionsHistoryRouterOptions {
17
+ sessionStore: SessionStore;
18
+ sessionManager: StandaloneSessionManager;
19
+ eventBus: RuntimeEventBus;
20
+ appId: string;
21
+ }
22
+ export declare function createSessionsHistoryRouter(options: SessionsHistoryRouterOptions): Router;
@@ -0,0 +1,186 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Amodal Labs, Inc.
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+ /**
7
+ * Session history REST routes.
8
+ *
9
+ * Provides GET/PATCH/DELETE for /sessions/history endpoints.
10
+ * Used by both local-server and hosted runtime via createServer.
11
+ */
12
+ import { Router } from 'express';
13
+ import { asyncHandler } from './route-helpers.js';
14
+ // ---------------------------------------------------------------------------
15
+ // Helpers
16
+ // ---------------------------------------------------------------------------
17
+ const SUMMARY_EXCERPT_MAX = 80;
18
+ function isRecord(x) {
19
+ return typeof x === 'object' && x !== null && !Array.isArray(x);
20
+ }
21
+ function isTextPart(part) {
22
+ return isRecord(part) && part['type'] === 'text' && typeof part['text'] === 'string';
23
+ }
24
+ function isToolCallPart(part) {
25
+ return (isRecord(part) &&
26
+ part['type'] === 'tool-call' &&
27
+ typeof part['toolCallId'] === 'string' &&
28
+ typeof part['toolName'] === 'string');
29
+ }
30
+ function getMessageRole(raw) {
31
+ if (!isRecord(raw))
32
+ return null;
33
+ const role = raw['role'];
34
+ return typeof role === 'string' ? role : null;
35
+ }
36
+ function getMessageContent(raw) {
37
+ if (!isRecord(raw))
38
+ return undefined;
39
+ return raw['content'];
40
+ }
41
+ function excerpt(s) {
42
+ return s.length > SUMMARY_EXCERPT_MAX ? `${s.slice(0, SUMMARY_EXCERPT_MAX)}…` : s;
43
+ }
44
+ function extractStringArray(value) {
45
+ if (!Array.isArray(value))
46
+ return [];
47
+ return value.filter((v) => typeof v === 'string');
48
+ }
49
+ function extractFirstUserText(messages) {
50
+ for (const raw of messages) {
51
+ if (getMessageRole(raw) !== 'user')
52
+ continue;
53
+ const content = getMessageContent(raw);
54
+ if (typeof content === 'string')
55
+ return excerpt(content);
56
+ if (Array.isArray(content)) {
57
+ const firstText = content.find(isTextPart);
58
+ if (firstText)
59
+ return excerpt(firstText.text);
60
+ }
61
+ }
62
+ return undefined;
63
+ }
64
+ function flattenModelMessage(raw) {
65
+ const role = getMessageRole(raw);
66
+ if (role !== 'user' && role !== 'assistant')
67
+ return null;
68
+ const content = getMessageContent(raw);
69
+ if (typeof content === 'string') {
70
+ return { role, text: content };
71
+ }
72
+ if (Array.isArray(content)) {
73
+ const text = content.filter(isTextPart).map((p) => p.text).join('');
74
+ const toolCalls = role === 'assistant'
75
+ ? content.filter(isToolCallPart).map((p) => ({
76
+ toolId: p.toolCallId,
77
+ toolName: p.toolName,
78
+ parameters: isRecord(p.input) ? p.input : {},
79
+ }))
80
+ : [];
81
+ if (text.length === 0 && toolCalls.length === 0)
82
+ return null;
83
+ return toolCalls.length > 0 ? { role, text, toolCalls } : { role, text };
84
+ }
85
+ return null;
86
+ }
87
+ const SESSION_LIST_LIMIT = 500;
88
+ export function createSessionsHistoryRouter(options) {
89
+ const { sessionStore, sessionManager, eventBus, appId } = options;
90
+ const router = Router();
91
+ // List sessions
92
+ router.get('/sessions/history', asyncHandler(async (_req, res) => {
93
+ const filter = { appId };
94
+ const { sessions: rows } = await sessionStore.list({ limit: SESSION_LIST_LIMIT, filter });
95
+ const items = rows.map((s) => {
96
+ const title = typeof s.metadata['title'] === 'string' ? s.metadata['title'] : undefined;
97
+ return {
98
+ id: s.id,
99
+ app_id: typeof s.metadata['appId'] === 'string' ? s.metadata['appId'] : appId,
100
+ title: title ?? extractFirstUserText(s.messages) ?? 'Untitled',
101
+ tags: extractStringArray(s.metadata['tags']),
102
+ status: 'active',
103
+ message_count: s.messages.length,
104
+ created_at: s.createdAt.toISOString(),
105
+ updated_at: s.updatedAt.toISOString(),
106
+ };
107
+ });
108
+ res.json(items);
109
+ }));
110
+ // Get single session with messages
111
+ router.get('/sessions/history/:id', asyncHandler(async (req, res) => {
112
+ const persisted = await sessionStore.load(req.params['id'] ?? '');
113
+ if (!persisted) {
114
+ res.status(404).json({ error: 'Session not found' });
115
+ return;
116
+ }
117
+ const title = typeof persisted.metadata['title'] === 'string' ? persisted.metadata['title'] : undefined;
118
+ const rawMessages = persisted.messages.map(flattenModelMessage).filter((m) => m !== null);
119
+ const messages = rawMessages.map((m) => ({
120
+ type: m.role === 'user' ? 'user' : 'assistant_text',
121
+ id: `hist-${Math.random().toString(36).slice(2)}`,
122
+ text: m.text,
123
+ timestamp: persisted.updatedAt.toISOString(),
124
+ ...(m.toolCalls ? { toolCalls: m.toolCalls } : {}),
125
+ }));
126
+ res.json({
127
+ id: persisted.id,
128
+ app_id: typeof persisted.metadata['appId'] === 'string' ? persisted.metadata['appId'] : appId,
129
+ title: title ?? extractFirstUserText(persisted.messages) ?? 'Untitled',
130
+ tags: extractStringArray(persisted.metadata['tags']),
131
+ status: 'active',
132
+ message_count: persisted.messages.length,
133
+ created_at: persisted.createdAt.toISOString(),
134
+ updated_at: persisted.updatedAt.toISOString(),
135
+ messages,
136
+ });
137
+ }));
138
+ // Rename session
139
+ router.patch('/sessions/history/:id', asyncHandler(async (req, res) => {
140
+ const sessionId = req.params['id'] ?? '';
141
+ const body = req.body;
142
+ if (!body || typeof body !== 'object') {
143
+ res.status(400).json({ error: 'Request body required' });
144
+ return;
145
+ }
146
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- validated above: body is a non-null object
147
+ const updates = body;
148
+ const live = sessionManager.get(sessionId);
149
+ if (live) {
150
+ if (typeof updates['title'] === 'string')
151
+ live.metadata.title = updates['title'];
152
+ if (Array.isArray(updates['tags']))
153
+ live.metadata['tags'] = updates['tags'];
154
+ await sessionManager.persist(live);
155
+ }
156
+ else {
157
+ const persisted = await sessionStore.load(sessionId);
158
+ if (!persisted) {
159
+ res.status(404).json({ error: 'Session not found' });
160
+ return;
161
+ }
162
+ if (typeof updates['title'] === 'string')
163
+ persisted.metadata.title = updates['title'];
164
+ if (Array.isArray(updates['tags']))
165
+ persisted.metadata['tags'] = updates['tags'];
166
+ persisted.updatedAt = new Date();
167
+ await sessionStore.save(persisted);
168
+ }
169
+ eventBus.emit({ type: 'session_updated', sessionId, appId, title: typeof updates['title'] === 'string' ? updates['title'] : undefined });
170
+ res.json({ ok: true });
171
+ }));
172
+ // Delete session
173
+ router.delete('/sessions/history/:id', asyncHandler(async (req, res) => {
174
+ const sessionId = req.params['id'] ?? '';
175
+ await sessionManager.destroy(sessionId);
176
+ const deleted = await sessionStore.delete(sessionId);
177
+ if (!deleted) {
178
+ res.status(404).json({ error: 'Session not found' });
179
+ return;
180
+ }
181
+ eventBus.emit({ type: 'session_deleted', sessionId });
182
+ res.json({ ok: true });
183
+ }));
184
+ return router;
185
+ }
186
+ //# sourceMappingURL=sessions-history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessions-history.js","sourceRoot":"","sources":["../../../src/routes/sessions-history.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AAEH,OAAO,EAAC,MAAM,EAAC,MAAM,SAAS,CAAC;AAK/B,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAYhD,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B,SAAS,QAAQ,CAAC,CAAU;IAC1B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,UAAU,CAAC,IAAa;IAC/B,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC;AACvF,CAAC;AAED,SAAS,cAAc,CAAC,IAAa;IAMnC,OAAO,CACL,QAAQ,CAAC,IAAI,CAAC;QACd,IAAI,CAAC,MAAM,CAAC,KAAK,WAAW;QAC5B,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,QAAQ,CACrC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,GAAY;IAClC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAChD,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAY;IACrC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACrC,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,OAAO,CAAC,CAAS;IACxB,OAAO,CAAC,CAAC,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,oBAAoB,CAAC,QAA4B;IACxD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,MAAM;YAAE,SAAS;QAC7C,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3C,IAAI,SAAS;gBAAE,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAY;IACvC,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAEzD,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC,CAAC;IAC/B,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,IAAI,KAAK,WAAW;YACpC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3C,MAAM,EAAE,CAAC,CAAC,UAAU;gBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;aAC7C,CAAC,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7D,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC;IACvE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAaD,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B,MAAM,UAAU,2BAA2B,CAAC,OAAqC;IAC/E,MAAM,EAAC,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAC,GAAG,OAAO,CAAC;IAChE,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,gBAAgB;IAChB,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,YAAY,CAAC,KAAK,EAAE,IAAa,EAAE,GAAa,EAAE,EAAE;QAClF,MAAM,MAAM,GAAG,EAAC,KAAK,EAAC,CAAC;QACvB,MAAM,EAAC,QAAQ,EAAE,IAAI,EAAC,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAC,CAAC,CAAC;QACtF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACxF,OAAO;gBACL,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK;gBAC7E,KAAK,EAAE,KAAK,IAAI,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,UAAU;gBAC9D,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC5C,MAAM,EAAE,QAAQ;gBAChB,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM;gBAChC,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE;gBACrC,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE;aACtC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC,CAAC;IAEJ,mCAAmC;IACnC,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,YAAY,CAAC,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QACrF,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,mBAAmB,EAAC,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxG,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QAC1F,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvC,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB;YACnD,EAAE,EAAE,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACjD,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE;YAC5C,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,SAAS,EAAE,CAAC,CAAC,SAAS,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACjD,CAAC,CAAC,CAAC;QACJ,GAAG,CAAC,IAAI,CAAC;YACP,EAAE,EAAE,SAAS,CAAC,EAAE;YAChB,MAAM,EAAE,OAAO,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK;YAC7F,KAAK,EAAE,KAAK,IAAI,oBAAoB,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,UAAU;YACtE,IAAI,EAAE,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACpD,MAAM,EAAE,QAAQ;YAChB,aAAa,EAAE,SAAS,CAAC,QAAQ,CAAC,MAAM;YACxC,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE;YAC7C,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE;YAC7C,QAAQ;SACT,CAAC,CAAC;IACL,CAAC,CAAC,CAAC,CAAC;IAEJ,iBAAiB;IACjB,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,YAAY,CAAC,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QACvF,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,IAAI,GAAY,GAAG,CAAC,IAAI,CAAC;QAC/B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,uBAAuB,EAAC,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QACD,qHAAqH;QACrH,MAAM,OAAO,GAAG,IAA+B,CAAC;QAChD,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,QAAQ;gBAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;YACjF,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAC5E,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,mBAAmB,EAAC,CAAC,CAAC;gBACnD,OAAO;YACT,CAAC;YACD,IAAI,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,QAAQ;gBAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;YACtF,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAAE,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YACjF,SAAS,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;YACjC,MAAM,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAC,CAAC,CAAC;QACvI,GAAG,CAAC,IAAI,CAAC,EAAC,EAAE,EAAE,IAAI,EAAC,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC,CAAC;IAEJ,iBAAiB;IACjB,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,YAAY,CAAC,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QACxF,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,mBAAmB,EAAC,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAC,CAAC,CAAC;QACpD,GAAG,CAAC,IAAI,CAAC,EAAC,EAAE,EAAE,IAAI,EAAC,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC,CAAC;IAEJ,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -21,6 +21,7 @@ import { MessageDedupCache } from './channels/dedup-cache.js';
21
21
  import { log, createLogger } from './logger.js';
22
22
  import { defaultRoleProvider } from './role-provider.js';
23
23
  import { asyncHandler } from './routes/route-helpers.js';
24
+ import { createSessionsHistoryRouter } from './routes/sessions-history.js';
24
25
  /**
25
26
  * Create the Express server with all routes, session management, and graceful shutdown.
26
27
  */
@@ -40,6 +41,8 @@ export function createServer(options) {
40
41
  mcpManager: null,
41
42
  logger: log,
42
43
  };
44
+ // Event bus for session lifecycle events
45
+ const eventBus = new RuntimeEventBus();
43
46
  // --- Express app ---
44
47
  const app = express();
45
48
  // CORS middleware
@@ -145,6 +148,15 @@ export function createServer(options) {
145
148
  }));
146
149
  log.info('channels_router_mounted', { channels: [...options.channelAdapters.keys()] });
147
150
  }
151
+ // Session history routes (when session store is available)
152
+ if (options.sessionStore) {
153
+ app.use(createSessionsHistoryRouter({
154
+ sessionStore: options.sessionStore,
155
+ sessionManager,
156
+ eventBus,
157
+ appId: config.appId ?? 'local',
158
+ }));
159
+ }
148
160
  // Additional routers (e.g., session history proxy from hosting layer)
149
161
  if (options.additionalRouters) {
150
162
  for (const router of options.additionalRouters) {