mirra-cc-bridge 0.1.8 → 0.2.0

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.
@@ -5,6 +5,39 @@
5
5
  * This server receives commands from the Mirra mobile app via the PC resource.
6
6
  * It manages Claude Code sessions and creates Flows for reply routing.
7
7
  */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
8
41
  var __importDefault = (this && this.__importDefault) || function (mod) {
9
42
  return (mod && mod.__esModule) ? mod : { "default": mod };
10
43
  };
@@ -12,11 +45,108 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
45
  exports.startServer = startServer;
13
46
  const chalk_1 = __importDefault(require("chalk"));
14
47
  const express_1 = __importDefault(require("express"));
48
+ const os = __importStar(require("os"));
15
49
  const sdk_1 = require("@mirra-messenger/sdk");
16
50
  const config_1 = require("../config");
17
51
  const session_manager_1 = require("../session-manager");
18
52
  const tunnel_1 = require("../tunnel");
19
53
  let sessionManager;
54
+ let localSessionFlowId;
55
+ // ============================================================================
56
+ // Local Session Flow Provisioning
57
+ // ============================================================================
58
+ /**
59
+ * Create a Flow for routing replies to local Claude Code sessions
60
+ * This enables Mirra users to respond to permission prompts from direct Claude Code usage
61
+ */
62
+ async function ensureLocalSessionFlow(sdk, groupId, pcResourceId) {
63
+ try {
64
+ // Get or create stable local session ID
65
+ const sessionId = (0, config_1.getOrCreateLocalSessionId)(groupId);
66
+ const existingSession = (0, config_1.getLocalSession)();
67
+ // Check if Flow already exists and is valid
68
+ if (existingSession?.flowId) {
69
+ try {
70
+ const existingFlow = await sdk.flows.get(existingSession.flowId);
71
+ if (existingFlow && existingFlow.status === 'active') {
72
+ console.log(chalk_1.default.gray(` Using existing local session Flow: ${existingSession.flowId}`));
73
+ localSessionFlowId = existingSession.flowId;
74
+ return existingSession.flowId;
75
+ }
76
+ }
77
+ catch {
78
+ // Flow doesn't exist or is invalid - create a new one
79
+ }
80
+ }
81
+ // Fetch the router script ID
82
+ const routerResult = await sdk.scripts.getSystemScript('claude-code-router');
83
+ const routerScriptId = routerResult.scriptId;
84
+ // Create new Flow for local session
85
+ const flow = await sdk.flows.createEventFlow({
86
+ title: `Claude Code Local Session`,
87
+ description: 'Routes mobile replies to local Claude Code sessions (direct usage)',
88
+ status: 'active',
89
+ trigger: {
90
+ type: 'event',
91
+ config: {
92
+ eventSource: 'mirra',
93
+ rootCondition: {
94
+ operator: 'and',
95
+ conditions: [
96
+ {
97
+ // Match replies to messages from this local session
98
+ field: 'mirra.replyTo.automation.sessionId',
99
+ operator: 'equals',
100
+ value: sessionId,
101
+ },
102
+ {
103
+ // Only in the configured group
104
+ field: 'mirra.groupId',
105
+ operator: 'equals',
106
+ value: groupId,
107
+ },
108
+ ],
109
+ },
110
+ },
111
+ },
112
+ scriptId: routerScriptId,
113
+ scriptInput: {
114
+ sessionId,
115
+ pcResourceId,
116
+ isLocalSession: true,
117
+ },
118
+ });
119
+ // Save Flow ID to config
120
+ (0, config_1.setLocalSessionFlowId)(flow.id);
121
+ localSessionFlowId = flow.id;
122
+ console.log(chalk_1.default.green(` [+] Local session routing enabled`));
123
+ console.log(chalk_1.default.gray(` Session ID: ${sessionId}`));
124
+ console.log(chalk_1.default.gray(` Flow ID: ${flow.id}`));
125
+ return flow.id;
126
+ }
127
+ catch (error) {
128
+ console.log(chalk_1.default.yellow(` [!] Could not create local session Flow: ${error.message}`));
129
+ console.log(chalk_1.default.gray(` Local Claude Code sessions will not receive Mirra responses`));
130
+ return undefined;
131
+ }
132
+ }
133
+ /**
134
+ * Delete the local session Flow
135
+ */
136
+ async function deleteLocalSessionFlow(sdk) {
137
+ const localSession = (0, config_1.getLocalSession)();
138
+ const flowId = localSessionFlowId || localSession?.flowId;
139
+ if (!flowId) {
140
+ return;
141
+ }
142
+ try {
143
+ await sdk.flows.delete(flowId);
144
+ console.log(chalk_1.default.gray(` Deleted local session Flow: ${flowId}`));
145
+ }
146
+ catch (error) {
147
+ console.log(chalk_1.default.yellow(` Could not delete local session Flow: ${error.message}`));
148
+ }
149
+ }
20
150
  /**
21
151
  * Create the Express app with routes
22
152
  */
@@ -108,6 +238,66 @@ function createApp() {
108
238
  res.status(404).json({ error: error.message });
109
239
  }
110
240
  });
241
+ // Respond to a permission prompt
242
+ // Called by Flow when user selects Allow/Deny in mobile app
243
+ app.post('/respond', async (req, res) => {
244
+ try {
245
+ const body = req.body;
246
+ if (!body.sessionId) {
247
+ res.status(400).json({ error: 'sessionId is required' });
248
+ return;
249
+ }
250
+ if (!body.selection) {
251
+ res.status(400).json({ error: 'selection is required' });
252
+ return;
253
+ }
254
+ const { sessionId, selection } = body;
255
+ // Map the selection to a permission response
256
+ const action = selection.action || selection.id;
257
+ if (!['allow', 'allow_always', 'deny'].includes(action)) {
258
+ res.status(400).json({ error: `Invalid action: ${action}. Must be allow, allow_always, or deny` });
259
+ return;
260
+ }
261
+ // Check if this is a local session (by checking if we have a matching managed session)
262
+ const managedSession = sessionManager.getSession(sessionId);
263
+ if (managedSession) {
264
+ // Managed session - send response directly to pty
265
+ await sessionManager.sendUserResponse(sessionId, {
266
+ sessionId,
267
+ action: action,
268
+ tool: selection.metadata?.tool,
269
+ command: selection.metadata?.command,
270
+ filePath: selection.metadata?.filePath,
271
+ });
272
+ console.log(chalk_1.default.gray(`[Managed Session ${sessionId}] Permission response: ${action}`));
273
+ }
274
+ else {
275
+ // Local session - store response for hook polling
276
+ const requestId = selection.metadata?.requestId;
277
+ if (requestId) {
278
+ const stored = (0, config_1.storePermissionResponse)(requestId, action);
279
+ if (stored) {
280
+ console.log(chalk_1.default.gray(`[Local Session ${sessionId}] Permission response stored: ${action} (requestId: ${requestId})`));
281
+ }
282
+ else {
283
+ console.log(chalk_1.default.yellow(`[Local Session ${sessionId}] Could not store response - request not found or expired`));
284
+ res.status(404).json({ error: 'Permission request not found or expired' });
285
+ return;
286
+ }
287
+ }
288
+ else {
289
+ console.log(chalk_1.default.yellow(`[Local Session ${sessionId}] No requestId provided - cannot route response`));
290
+ res.status(400).json({ error: 'requestId is required for local session responses' });
291
+ return;
292
+ }
293
+ }
294
+ res.json({ success: true, action });
295
+ }
296
+ catch (error) {
297
+ console.error(chalk_1.default.red('Error responding to permission prompt:'), error.message);
298
+ res.status(500).json({ error: error.message });
299
+ }
300
+ });
111
301
  return app;
112
302
  }
113
303
  /**
@@ -162,6 +352,17 @@ async function updateResourceEndpoint(sdk, resourceId, tunnelUrl) {
162
352
  parameters: {},
163
353
  response: { type: 'array' },
164
354
  },
355
+ {
356
+ name: 'respond',
357
+ httpMethod: 'POST',
358
+ path: '/respond',
359
+ description: 'Respond to a permission prompt (allow/deny)',
360
+ parameters: {
361
+ sessionId: { type: 'string', required: true },
362
+ selection: { type: 'object', required: true },
363
+ },
364
+ response: { type: 'object' },
365
+ },
165
366
  ],
166
367
  },
167
368
  });
@@ -182,11 +383,114 @@ function validateSetup(config) {
182
383
  if (!(0, config_1.hooksConfigured)()) {
183
384
  missing.push('Claude Code hooks not configured');
184
385
  }
185
- if (!config?.pcResourceId) {
186
- missing.push('PC not registered as Mirra resource');
187
- }
386
+ // Note: pcResourceId is no longer required - we auto-register if missing
188
387
  return { valid: missing.length === 0, missing };
189
388
  }
389
+ /**
390
+ * Auto-register this PC as a Mirra resource if not already registered
391
+ * This enables users to call spawnSession from Mirra to start sessions on this PC
392
+ */
393
+ async function autoRegisterIfNeeded(sdk, tunnelUrl) {
394
+ const config = (0, config_1.loadConfig)();
395
+ // Already registered - just update the endpoint
396
+ if (config?.pcResourceId) {
397
+ return config.pcResourceId;
398
+ }
399
+ console.log(chalk_1.default.gray('Auto-registering PC as Mirra resource...'));
400
+ try {
401
+ const pcName = `${os.hostname()} - Claude Code`;
402
+ // Create new resource
403
+ const resource = await sdk.resources.create({
404
+ name: pcName,
405
+ description: `Claude Code on ${os.hostname()}`,
406
+ resourceType: 'integration',
407
+ category: 'development',
408
+ isPrivate: true,
409
+ endpoint: {
410
+ baseUrl: tunnelUrl,
411
+ authentication: 'none',
412
+ methods: [
413
+ {
414
+ name: 'spawnSession',
415
+ httpMethod: 'POST',
416
+ path: '/sessions',
417
+ description: 'Spawn a new Claude Code session',
418
+ parameters: {
419
+ workingDir: { type: 'string', required: false },
420
+ initialPrompt: { type: 'string', required: true },
421
+ groupId: { type: 'string', required: true },
422
+ },
423
+ response: { type: 'object' },
424
+ },
425
+ {
426
+ name: 'sendInput',
427
+ httpMethod: 'POST',
428
+ path: '/sessions/{sessionId}/input',
429
+ description: 'Send input to a session',
430
+ parameters: {
431
+ sessionId: { type: 'string', required: true },
432
+ input: { type: 'string', required: true },
433
+ },
434
+ response: { type: 'object' },
435
+ },
436
+ {
437
+ name: 'killSession',
438
+ httpMethod: 'DELETE',
439
+ path: '/sessions/{sessionId}',
440
+ description: 'Kill a session',
441
+ parameters: {
442
+ sessionId: { type: 'string', required: true },
443
+ },
444
+ response: { type: 'object' },
445
+ },
446
+ {
447
+ name: 'listSessions',
448
+ httpMethod: 'GET',
449
+ path: '/sessions',
450
+ description: 'List active sessions',
451
+ parameters: {},
452
+ response: { type: 'array' },
453
+ },
454
+ {
455
+ name: 'respond',
456
+ httpMethod: 'POST',
457
+ path: '/respond',
458
+ description: 'Respond to a permission prompt (allow/deny)',
459
+ parameters: {
460
+ sessionId: { type: 'string', required: true },
461
+ selection: { type: 'object', required: true },
462
+ },
463
+ response: { type: 'object' },
464
+ },
465
+ ],
466
+ },
467
+ pricing: { model: 'free' },
468
+ });
469
+ // Save resource ID
470
+ (0, config_1.setConfigValue)('pcResourceId', resource.id);
471
+ console.log(chalk_1.default.green(' [+] PC registered as Mirra resource'));
472
+ console.log(chalk_1.default.gray(` Resource ID: ${resource.id}`));
473
+ // Auto-install the resource for the user
474
+ try {
475
+ await sdk.resources.install(resource.id);
476
+ console.log(chalk_1.default.green(' [+] Resource auto-installed'));
477
+ }
478
+ catch (e) {
479
+ if (e.message?.includes('already installed')) {
480
+ // Already installed - fine
481
+ }
482
+ else {
483
+ console.log(chalk_1.default.yellow(` [!] Could not auto-install: ${e.message}`));
484
+ }
485
+ }
486
+ return resource.id;
487
+ }
488
+ catch (error) {
489
+ console.log(chalk_1.default.yellow(` [!] Auto-registration failed: ${error.message}`));
490
+ console.log(chalk_1.default.gray(' You can manually register with: mirra-cc-bridge register'));
491
+ return undefined;
492
+ }
493
+ }
190
494
  /**
191
495
  * Start the bridge server
192
496
  */
@@ -209,17 +513,15 @@ async function startServer(options) {
209
513
  console.log(chalk_1.default.gray(' mirra-cc-bridge register - Register PC as Mirra resource\n'));
210
514
  process.exit(1);
211
515
  }
212
- // Initialize session manager with API key and pcResourceId
213
- sessionManager = new session_manager_1.SessionManager(config.apiKey, config.pcResourceId);
516
+ // Initialize session manager with API key
517
+ // pcResourceId will be set after auto-registration if needed
518
+ sessionManager = new session_manager_1.SessionManager(config.apiKey);
214
519
  let tunnelUrl = null;
215
520
  const sdk = new sdk_1.MirraSDK({ apiKey: config.apiKey });
216
521
  // Start tunnel (required for bidirectional communication)
217
522
  console.log(chalk_1.default.gray('Starting tunnel...'));
218
523
  try {
219
524
  tunnelUrl = await (0, tunnel_1.startTunnel)(port);
220
- // Update resource endpoint with new tunnel URL
221
- console.log(chalk_1.default.gray('Updating resource endpoint...'));
222
- await updateResourceEndpoint(sdk, config.pcResourceId, tunnelUrl);
223
525
  }
224
526
  catch (error) {
225
527
  console.error(chalk_1.default.red(`\nFailed to start tunnel: ${error.message}`));
@@ -227,6 +529,33 @@ async function startServer(options) {
227
529
  console.log(chalk_1.default.gray('Please check your network connection and try again.\n'));
228
530
  process.exit(1);
229
531
  }
532
+ // Auto-register PC as resource if not registered
533
+ // This enables Mirra users to call spawnSession on this PC
534
+ let pcResourceId = config.pcResourceId;
535
+ if (!pcResourceId) {
536
+ pcResourceId = await autoRegisterIfNeeded(sdk, tunnelUrl);
537
+ }
538
+ // Update resource endpoint with new tunnel URL (if we have a resource)
539
+ if (pcResourceId) {
540
+ console.log(chalk_1.default.gray('Updating resource endpoint...'));
541
+ await updateResourceEndpoint(sdk, pcResourceId, tunnelUrl);
542
+ }
543
+ else {
544
+ console.log(chalk_1.default.yellow(' [!] No PC resource - remote spawn disabled'));
545
+ console.log(chalk_1.default.gray(' Run `mirra-cc-bridge register` to enable remote control'));
546
+ }
547
+ // Set up local session Flow for direct Claude Code usage
548
+ console.log(chalk_1.default.gray('Setting up local session routing...'));
549
+ if (config.groupId && pcResourceId) {
550
+ await ensureLocalSessionFlow(sdk, config.groupId, pcResourceId);
551
+ }
552
+ else if (!config.groupId) {
553
+ console.log(chalk_1.default.yellow(' [!] No groupId configured - local session routing disabled'));
554
+ console.log(chalk_1.default.gray(' Run `mirra-cc-bridge configure` to set a default group'));
555
+ }
556
+ else {
557
+ console.log(chalk_1.default.yellow(' [!] No PC resource - local session routing disabled'));
558
+ }
230
559
  // Create and start Express app
231
560
  const app = createApp();
232
561
  const server = app.listen(port, () => {
@@ -246,13 +575,27 @@ async function startServer(options) {
246
575
  console.log(chalk_1.default.gray(' GET /sessions/:id get session'));
247
576
  console.log(chalk_1.default.gray(' POST /sessions/:id/input send input'));
248
577
  console.log(chalk_1.default.gray(' DELETE /sessions/:id kill session'));
249
- // Show connection status (we know everything is configured if we reach here)
578
+ console.log(chalk_1.default.gray(' POST /respond respond to permission prompt'));
579
+ // Show connection status
250
580
  console.log(chalk_1.default.bold('\nConnection Status:'));
251
581
  console.log(chalk_1.default.green(' [+] Hooks configured') + chalk_1.default.gray(' - Claude Code output syncs to Mirra'));
252
582
  console.log(chalk_1.default.green(' [+] Tunnel connected') + chalk_1.default.gray(` - ${tunnelUrl}`));
253
- console.log(chalk_1.default.green(' [+] PC registered') + chalk_1.default.gray(' - Can receive commands from Mirra'));
583
+ if (pcResourceId) {
584
+ console.log(chalk_1.default.green(' [+] PC registered') + chalk_1.default.gray(' - Can receive commands from Mirra'));
585
+ }
586
+ else {
587
+ console.log(chalk_1.default.yellow(' [-] PC not registered') + chalk_1.default.gray(' - Remote spawn disabled'));
588
+ }
589
+ if (localSessionFlowId) {
590
+ console.log(chalk_1.default.green(' [+] Local session routing') + chalk_1.default.gray(' - Direct Claude Code syncs to Mirra'));
591
+ }
254
592
  console.log(chalk_1.default.green.bold('\n> Ready'));
255
- console.log(chalk_1.default.gray(' Two-way communication with Mirra enabled'));
593
+ if (pcResourceId) {
594
+ console.log(chalk_1.default.gray(' Two-way communication with Mirra enabled'));
595
+ }
596
+ else {
597
+ console.log(chalk_1.default.gray(' One-way sync enabled (Claude Code → Mirra)'));
598
+ }
256
599
  console.log(chalk_1.default.gray(' Ctrl+C to stop\n'));
257
600
  // Handle shutdown
258
601
  const shutdown = async () => {
@@ -261,8 +604,12 @@ async function startServer(options) {
261
604
  if ((0, tunnel_1.getTunnelUrl)()) {
262
605
  await (0, tunnel_1.stopTunnel)();
263
606
  }
264
- // Kill all sessions
607
+ // Kill all managed sessions
265
608
  await sessionManager.killAllSessions();
609
+ // Clean up local session Flow and state
610
+ console.log(chalk_1.default.gray('Cleaning up local session...'));
611
+ await deleteLocalSessionFlow(sdk);
612
+ (0, config_1.clearLocalSession)();
266
613
  server.close(() => {
267
614
  console.log(chalk_1.default.green('[+] Server stopped'));
268
615
  process.exit(0);
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Configuration management for Mirra CC Bridge
3
3
  */
4
- import { BridgeConfig } from './types';
4
+ import { BridgeConfig, LocalSession, PendingPermissionRequest } from './types';
5
5
  /**
6
6
  * Load configuration from file
7
7
  */
@@ -34,4 +34,38 @@ export declare function getConfigPath(): string;
34
34
  * Get the config directory path
35
35
  */
36
36
  export declare function getConfigDir(): string;
37
+ /**
38
+ * Get or create a stable local session ID
39
+ * This ensures the same session ID is used across hook invocations
40
+ */
41
+ export declare function getOrCreateLocalSessionId(groupId: string): string;
42
+ /**
43
+ * Get current local session info
44
+ */
45
+ export declare function getLocalSession(): LocalSession | undefined;
46
+ /**
47
+ * Set the Flow ID for the local session
48
+ */
49
+ export declare function setLocalSessionFlowId(flowId: string): void;
50
+ /**
51
+ * Clear local session state (for cleanup on shutdown)
52
+ */
53
+ export declare function clearLocalSession(): void;
54
+ /**
55
+ * Store a pending permission request
56
+ * Returns the request ID for polling
57
+ */
58
+ export declare function storePendingPermissionRequest(sessionId: string): string;
59
+ /**
60
+ * Get a pending permission request by ID
61
+ */
62
+ export declare function getPendingPermissionRequest(requestId: string): PendingPermissionRequest | undefined;
63
+ /**
64
+ * Store response for a pending permission request
65
+ */
66
+ export declare function storePermissionResponse(requestId: string, action: 'allow' | 'allow_always' | 'deny'): boolean;
67
+ /**
68
+ * Remove a pending permission request (after it's been handled)
69
+ */
70
+ export declare function removePendingPermissionRequest(requestId: string): void;
37
71
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAUvC;;GAEG;AACH,wBAAgB,UAAU,IAAI,YAAY,GAAG,IAAI,CAYhD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAIrD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,YAAY,EACzD,GAAG,EAAE,CAAC,GACL,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAG7B;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,YAAY,EACzD,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GACrB,IAAI,CAIN;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAGtC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAGzC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAU/E;;GAEG;AACH,wBAAgB,UAAU,IAAI,YAAY,GAAG,IAAI,CAYhD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAIrD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,YAAY,EACzD,GAAG,EAAE,CAAC,GACL,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAG7B;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,YAAY,EACzD,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GACrB,IAAI,CAIN;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAGtC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAGzC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAMD;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAsBjE;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,GAAG,SAAS,CAG1D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAM1D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAQxC;AAQD;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CA0BvE;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,wBAAwB,GAAG,SAAS,CAGnG;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,GAAG,cAAc,GAAG,MAAM,GACxC,OAAO,CAkBT;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAQtE"}