@quantiya/codevibe-claude-plugin 1.0.10 → 1.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/README.md +75 -245
  3. package/dist/server.js +16 -1162
  4. package/node_modules/@quantiya/codevibe-core/README.md +15 -6
  5. package/node_modules/@quantiya/codevibe-core/bin/codevibe.js +1 -1
  6. package/node_modules/@quantiya/codevibe-core/dist/index.js +216 -67
  7. package/node_modules/@quantiya/codevibe-core/package.json +12 -9
  8. package/node_modules/node-abi/abi_registry.json +7 -0
  9. package/node_modules/node-abi/package.json +1 -1
  10. package/package.json +11 -21
  11. package/dist/appsync-client.d.ts +0 -67
  12. package/dist/appsync-client.d.ts.map +0 -1
  13. package/dist/appsync-client.js +0 -858
  14. package/dist/appsync-client.js.map +0 -1
  15. package/dist/auth-cli.d.ts +0 -18
  16. package/dist/auth-cli.d.ts.map +0 -1
  17. package/dist/auth-cli.js +0 -472
  18. package/dist/auth-cli.js.map +0 -1
  19. package/dist/command-executor.d.ts +0 -20
  20. package/dist/command-executor.d.ts.map +0 -1
  21. package/dist/command-executor.js +0 -127
  22. package/dist/command-executor.js.map +0 -1
  23. package/dist/config.d.ts +0 -25
  24. package/dist/config.d.ts.map +0 -1
  25. package/dist/config.js +0 -106
  26. package/dist/config.js.map +0 -1
  27. package/dist/crypto-service.d.ts +0 -115
  28. package/dist/crypto-service.d.ts.map +0 -1
  29. package/dist/crypto-service.js +0 -278
  30. package/dist/crypto-service.js.map +0 -1
  31. package/dist/http-api.d.ts +0 -35
  32. package/dist/http-api.d.ts.map +0 -1
  33. package/dist/http-api.js +0 -334
  34. package/dist/http-api.js.map +0 -1
  35. package/dist/key-manager.d.ts +0 -87
  36. package/dist/key-manager.d.ts.map +0 -1
  37. package/dist/key-manager.js +0 -287
  38. package/dist/key-manager.js.map +0 -1
  39. package/dist/logger.d.ts +0 -2
  40. package/dist/logger.d.ts.map +0 -1
  41. package/dist/logger.js +0 -18
  42. package/dist/logger.js.map +0 -1
  43. package/dist/prompt-responder.d.ts +0 -22
  44. package/dist/prompt-responder.d.ts.map +0 -1
  45. package/dist/prompt-responder.js +0 -132
  46. package/dist/prompt-responder.js.map +0 -1
  47. package/dist/server.d.ts +0 -9
  48. package/dist/server.d.ts.map +0 -1
  49. package/dist/server.js.map +0 -1
  50. package/dist/token-storage.d.ts +0 -39
  51. package/dist/token-storage.d.ts.map +0 -1
  52. package/dist/token-storage.js +0 -169
  53. package/dist/token-storage.js.map +0 -1
  54. package/dist/types.d.ts +0 -110
  55. package/dist/types.d.ts.map +0 -1
  56. package/dist/types.js +0 -17
  57. package/dist/types.js.map +0 -1
  58. package/node_modules/@quantiya/codevibe-core/dist/appsync/appsync-client.js +0 -576
  59. package/node_modules/@quantiya/codevibe-core/dist/appsync/index.js +0 -10
  60. package/node_modules/@quantiya/codevibe-core/dist/appsync/queries.js +0 -189
  61. package/node_modules/@quantiya/codevibe-core/dist/auth/auth-cli.js +0 -217
  62. package/node_modules/@quantiya/codevibe-core/dist/auth/auth-service.js +0 -464
  63. package/node_modules/@quantiya/codevibe-core/dist/auth/fetch-helpers.js +0 -165
  64. package/node_modules/@quantiya/codevibe-core/dist/auth/index.js +0 -9
  65. package/node_modules/@quantiya/codevibe-core/dist/config/config.js +0 -123
  66. package/node_modules/@quantiya/codevibe-core/dist/config/index.js +0 -8
  67. package/node_modules/@quantiya/codevibe-core/dist/crypto/crypto-service.js +0 -284
  68. package/node_modules/@quantiya/codevibe-core/dist/crypto/index.js +0 -9
  69. package/node_modules/@quantiya/codevibe-core/dist/keychain/index.js +0 -8
  70. package/node_modules/@quantiya/codevibe-core/dist/keychain/keychain-manager.js +0 -375
  71. package/node_modules/@quantiya/codevibe-core/dist/logger/index.js +0 -8
  72. package/node_modules/@quantiya/codevibe-core/dist/logger/logger.js +0 -142
  73. package/node_modules/@quantiya/codevibe-core/dist/prompt-parser.js +0 -236
  74. package/node_modules/@quantiya/codevibe-core/dist/session/index.js +0 -7
  75. package/node_modules/@quantiya/codevibe-core/dist/session/session-resume.js +0 -151
  76. package/node_modules/@quantiya/codevibe-core/dist/types/auth.js +0 -3
  77. package/node_modules/@quantiya/codevibe-core/dist/types/encryption.js +0 -3
  78. package/node_modules/@quantiya/codevibe-core/dist/types/events.js +0 -28
  79. package/node_modules/@quantiya/codevibe-core/dist/types/index.js +0 -22
  80. package/node_modules/@quantiya/codevibe-core/dist/types/session.js +0 -22
@@ -1 +0,0 @@
1
- {"version":3,"file":"crypto-service.js","sourceRoot":"","sources":["../src/crypto-service.ts"],"names":[],"mappings":"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"}
@@ -1,35 +0,0 @@
1
- import { EventPayload } from './types';
2
- export declare class HttpApi {
3
- private app;
4
- private server;
5
- private eventHandler?;
6
- private assignedPort;
7
- private sessionId?;
8
- constructor();
9
- /**
10
- * Set the session ID for this server instance (used for port file naming)
11
- */
12
- setSessionId(sessionId: string): void;
13
- /**
14
- * Get the assigned port after server starts
15
- */
16
- getPort(): number;
17
- private setupMiddleware;
18
- private setupRoutes;
19
- private handleHealth;
20
- private handleEvent;
21
- private handleTestExecute;
22
- private transformHookToEvent;
23
- onEvent(handler: (payload: EventPayload) => Promise<void>): void;
24
- start(sessionId?: string): Promise<number>;
25
- /**
26
- * Write port to a session-specific file for hooks to discover
27
- */
28
- private writePortFile;
29
- /**
30
- * Remove the port file on shutdown
31
- */
32
- private removePortFile;
33
- stop(): Promise<void>;
34
- }
35
- //# sourceMappingURL=http-api.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http-api.d.ts","sourceRoot":"","sources":["../src/http-api.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAqE,MAAM,SAAS,CAAC;AAE1G,qBAAa,OAAO;IAClB,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,YAAY,CAAC,CAA2C;IAChE,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,SAAS,CAAC,CAAS;;IAQ3B;;OAEG;IACI,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI5C;;OAEG;IACI,OAAO,IAAI,MAAM;IAIxB,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,YAAY;YAaN,WAAW;YAuDX,iBAAiB;IA+B/B,OAAO,CAAC,oBAAoB;IAkErB,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAM1D,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqCvD;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;OAEG;IACH,OAAO,CAAC,cAAc;IAeT,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAoBnC"}
package/dist/http-api.js DELETED
@@ -1,334 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.HttpApi = void 0;
40
- const express_1 = __importDefault(require("express"));
41
- const fs = __importStar(require("fs"));
42
- const path = __importStar(require("path"));
43
- const os = __importStar(require("os"));
44
- const codevibe_core_1 = require("@quantiya/codevibe-core");
45
- const logger_1 = require("./logger");
46
- const types_1 = require("./types");
47
- class HttpApi {
48
- constructor() {
49
- this.assignedPort = 0;
50
- this.app = (0, express_1.default)();
51
- this.setupMiddleware();
52
- this.setupRoutes();
53
- }
54
- /**
55
- * Set the session ID for this server instance (used for port file naming)
56
- */
57
- setSessionId(sessionId) {
58
- this.sessionId = sessionId;
59
- }
60
- /**
61
- * Get the assigned port after server starts
62
- */
63
- getPort() {
64
- return this.assignedPort;
65
- }
66
- setupMiddleware() {
67
- // Parse JSON bodies
68
- this.app.use(express_1.default.json({ limit: '1mb' }));
69
- // Request logging
70
- this.app.use((req, res, next) => {
71
- logger_1.logger.debug(`${req.method} ${req.path}`, {
72
- body: req.body,
73
- query: req.query,
74
- });
75
- next();
76
- });
77
- // Error handling middleware
78
- this.app.use((err, req, res, next) => {
79
- logger_1.logger.error('Express error:', err);
80
- const response = {
81
- success: false,
82
- error: err.message || 'Internal server error',
83
- };
84
- res.status(500).json(response);
85
- });
86
- }
87
- setupRoutes() {
88
- // Health check endpoint
89
- this.app.get('/health', this.handleHealth.bind(this));
90
- // Event endpoint for hooks
91
- this.app.post('/event', this.handleEvent.bind(this));
92
- // Development testing endpoint
93
- if (process.env.NODE_ENV !== 'production') {
94
- this.app.post('/test/execute', this.handleTestExecute.bind(this));
95
- }
96
- }
97
- handleHealth(req, res) {
98
- const response = {
99
- success: true,
100
- data: {
101
- status: 'healthy',
102
- uptime: process.uptime(),
103
- version: '0.1.0',
104
- timestamp: new Date().toISOString(),
105
- },
106
- };
107
- res.json(response);
108
- }
109
- async handleEvent(req, res) {
110
- try {
111
- const hookInput = req.body;
112
- // Validate required fields
113
- if (!hookInput.session_id) {
114
- const response = {
115
- success: false,
116
- error: 'Missing required field: session_id',
117
- };
118
- res.status(400).json(response);
119
- return;
120
- }
121
- if (!hookInput.hook_event_name) {
122
- const response = {
123
- success: false,
124
- error: 'Missing required field: hook_event_name',
125
- };
126
- res.status(400).json(response);
127
- return;
128
- }
129
- // Transform hook input to event payload
130
- const eventPayload = this.transformHookToEvent(hookInput);
131
- logger_1.logger.info('Received event from hook', {
132
- sessionId: hookInput.session_id,
133
- hookEvent: hookInput.hook_event_name,
134
- type: eventPayload.type,
135
- });
136
- // Call event handler if registered
137
- if (this.eventHandler) {
138
- await this.eventHandler(eventPayload);
139
- }
140
- else {
141
- logger_1.logger.warn('No event handler registered');
142
- }
143
- const response = {
144
- success: true,
145
- message: 'Event processed successfully',
146
- };
147
- res.json(response);
148
- }
149
- catch (error) {
150
- logger_1.logger.error('Error handling event:', error);
151
- const response = {
152
- success: false,
153
- error: error instanceof Error ? error.message : 'Unknown error',
154
- };
155
- res.status(500).json(response);
156
- }
157
- }
158
- async handleTestExecute(req, res) {
159
- try {
160
- const { sessionId, prompt } = req.body;
161
- if (!sessionId || !prompt) {
162
- const response = {
163
- success: false,
164
- error: 'Missing required fields: sessionId, prompt',
165
- };
166
- res.status(400).json(response);
167
- return;
168
- }
169
- logger_1.logger.info('Test execute request', { sessionId, prompt });
170
- const response = {
171
- success: true,
172
- message: 'Test execution endpoint - not implemented yet',
173
- data: { sessionId, prompt },
174
- };
175
- res.json(response);
176
- }
177
- catch (error) {
178
- logger_1.logger.error('Error in test execute:', error);
179
- const response = {
180
- success: false,
181
- error: error instanceof Error ? error.message : 'Unknown error',
182
- };
183
- res.status(500).json(response);
184
- }
185
- }
186
- transformHookToEvent(hookInput) {
187
- let type;
188
- let content;
189
- const metadata = {
190
- cwd: hookInput.cwd,
191
- hook_event_name: hookInput.hook_event_name,
192
- ...(hookInput.metadata || {}), // Merge any metadata from hook
193
- };
194
- // Check if hook explicitly provides type and content (from Stop hook transcript parsing)
195
- if (hookInput.type && hookInput.content !== undefined) {
196
- type = hookInput.type;
197
- content = hookInput.content;
198
- }
199
- else {
200
- // Determine event type and content based on hook event name
201
- switch (hookInput.hook_event_name) {
202
- case 'SessionStart':
203
- type = types_1.EventType.NOTIFICATION;
204
- content = 'Session started';
205
- metadata.source = hookInput.source;
206
- break;
207
- case 'SessionEnd':
208
- type = types_1.EventType.NOTIFICATION;
209
- content = `Session ended: ${hookInput.reason || 'unknown'}`;
210
- metadata.reason = hookInput.reason;
211
- break;
212
- case 'UserPromptSubmit':
213
- type = types_1.EventType.USER_PROMPT;
214
- content = hookInput.prompt || '';
215
- break;
216
- case 'PostToolUse':
217
- type = types_1.EventType.TOOL_USE;
218
- content = JSON.stringify({
219
- tool_name: hookInput.tool_name,
220
- tool_input: hookInput.tool_input,
221
- tool_response: hookInput.tool_response,
222
- });
223
- metadata.tool_name = hookInput.tool_name;
224
- break;
225
- case 'Notification':
226
- type = types_1.EventType.NOTIFICATION;
227
- content = hookInput.message || '';
228
- metadata.notification_type = hookInput.notification_type;
229
- break;
230
- default:
231
- type = types_1.EventType.NOTIFICATION;
232
- content = `Hook event: ${hookInput.hook_event_name}`;
233
- }
234
- }
235
- return {
236
- session_id: hookInput.session_id,
237
- hook_event_name: hookInput.hook_event_name,
238
- type,
239
- source: types_1.EventSource.DESKTOP, // Events from hooks are always from desktop
240
- content,
241
- metadata,
242
- };
243
- }
244
- // Register event handler
245
- onEvent(handler) {
246
- this.eventHandler = handler;
247
- }
248
- // Start the HTTP server with dynamic port allocation
249
- async start(sessionId) {
250
- // Use provided sessionId or the one set earlier
251
- const sid = sessionId || this.sessionId;
252
- if (sid) {
253
- this.sessionId = sid;
254
- }
255
- return new Promise((resolve, reject) => {
256
- try {
257
- const config = (0, codevibe_core_1.getConfig)();
258
- // Use port 0 for dynamic allocation, or configured port as fallback
259
- const requestedPort = config.server.dynamicPort ? 0 : config.server.port;
260
- this.server = this.app.listen(requestedPort, config.server.host, () => {
261
- const address = this.server.address();
262
- this.assignedPort = address.port;
263
- logger_1.logger.info(`HTTP API listening on http://${config.server.host}:${this.assignedPort}`);
264
- // Write port to session-specific file for hooks to discover
265
- if (this.sessionId) {
266
- this.writePortFile(this.sessionId, this.assignedPort);
267
- }
268
- resolve(this.assignedPort);
269
- });
270
- this.server.on('error', (error) => {
271
- logger_1.logger.error('HTTP server error:', error);
272
- reject(error);
273
- });
274
- }
275
- catch (error) {
276
- reject(error);
277
- }
278
- });
279
- }
280
- /**
281
- * Write port to a session-specific file for hooks to discover
282
- */
283
- writePortFile(sessionId, port) {
284
- const portFilePath = path.join(os.tmpdir(), `codevibe-claude-${sessionId}.port`);
285
- try {
286
- fs.writeFileSync(portFilePath, port.toString());
287
- logger_1.logger.info(`Port file written: ${portFilePath} -> ${port}`);
288
- }
289
- catch (error) {
290
- logger_1.logger.error(`Failed to write port file: ${portFilePath}`, error);
291
- }
292
- }
293
- /**
294
- * Remove the port file on shutdown
295
- */
296
- removePortFile() {
297
- if (this.sessionId) {
298
- const portFilePath = path.join(os.tmpdir(), `codevibe-claude-${this.sessionId}.port`);
299
- try {
300
- if (fs.existsSync(portFilePath)) {
301
- fs.unlinkSync(portFilePath);
302
- logger_1.logger.info(`Port file removed: ${portFilePath}`);
303
- }
304
- }
305
- catch (error) {
306
- logger_1.logger.warn(`Failed to remove port file: ${portFilePath}`, error);
307
- }
308
- }
309
- }
310
- // Stop the HTTP server
311
- async stop() {
312
- return new Promise((resolve, reject) => {
313
- // Remove port file first
314
- this.removePortFile();
315
- if (this.server) {
316
- this.server.close((err) => {
317
- if (err) {
318
- logger_1.logger.error('Error stopping HTTP server:', err);
319
- reject(err);
320
- }
321
- else {
322
- logger_1.logger.info('HTTP API stopped');
323
- resolve();
324
- }
325
- });
326
- }
327
- else {
328
- resolve();
329
- }
330
- });
331
- }
332
- }
333
- exports.HttpApi = HttpApi;
334
- //# sourceMappingURL=http-api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http-api.js","sourceRoot":"","sources":["../src/http-api.ts"],"names":[],"mappings":"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"}
@@ -1,87 +0,0 @@
1
- import { EncryptedSessionKey } from './types';
2
- export declare class KeyManagerError extends Error {
3
- constructor(message: string);
4
- }
5
- /**
6
- * Manages device and session encryption keys
7
- */
8
- export declare class KeyManager {
9
- private static instance;
10
- private deviceKey;
11
- private sessionKeyCache;
12
- private isRegistered;
13
- private constructor();
14
- static getInstance(): KeyManager;
15
- /**
16
- * Get or generate the device ID
17
- */
18
- getDeviceId(): string;
19
- /**
20
- * Get the current device's key pair, generating if needed
21
- */
22
- getOrCreateDeviceKeyPair(): {
23
- privateKey: string;
24
- publicKey: string;
25
- };
26
- /**
27
- * Get the device's public key (base64)
28
- */
29
- getDevicePublicKey(): string;
30
- /**
31
- * Check if we have a device key
32
- */
33
- hasDeviceKey(): boolean;
34
- /**
35
- * Check if device key is registered with backend
36
- */
37
- getIsRegistered(): boolean;
38
- /**
39
- * Set registration status
40
- */
41
- setIsRegistered(registered: boolean): void;
42
- /**
43
- * Get session key for a session, decrypting from encryptedKeys if needed
44
- */
45
- getSessionKey(sessionId: string, encryptedKeys?: EncryptedSessionKey[]): string | null;
46
- /**
47
- * Generate and encrypt a new session key for all devices
48
- */
49
- createSessionKey(devicePublicKeys: Array<{
50
- deviceId: string;
51
- publicKey: string;
52
- }>): {
53
- sessionKey: string;
54
- encryptedKeys: EncryptedSessionKey[];
55
- };
56
- /**
57
- * Cache a session key (after successfully decrypting or creating)
58
- */
59
- cacheSessionKey(sessionId: string, sessionKey: string): void;
60
- /**
61
- * Clear cached session key (on session end)
62
- */
63
- clearSessionKey(sessionId: string): void;
64
- /**
65
- * Clear all cached session keys (on sign out)
66
- */
67
- clearAllSessionKeys(): void;
68
- private ensureConfigDir;
69
- private getKeyFilePath;
70
- private loadDeviceKey;
71
- private saveDeviceKey;
72
- private generateAndStoreDeviceKey;
73
- /**
74
- * Get device name for registration
75
- */
76
- getDeviceName(): string;
77
- /**
78
- * Get platform for registration
79
- */
80
- getDevicePlatform(): string;
81
- /**
82
- * Clear all encryption data (on sign out)
83
- */
84
- clearAllData(): void;
85
- }
86
- export declare const keyManager: KeyManager;
87
- //# sourceMappingURL=key-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"key-manager.d.ts","sourceRoot":"","sources":["../src/key-manager.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,mBAAmB,EAAa,MAAM,SAAS,CAAC;AAIzD,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAiBD;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAa;IACpC,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,YAAY,CAAkB;IAEtC,OAAO;IAKP,MAAM,CAAC,WAAW,IAAI,UAAU;IAShC;;OAEG;IACH,WAAW,IAAI,MAAM;IAUrB;;OAEG;IACH,wBAAwB,IAAI;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAWrE;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAK5B;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACH,eAAe,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAM1C;;OAEG;IACH,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,mBAAmB,EAAE,GACpC,MAAM,GAAG,IAAI;IAmChB;;OAEG;IACH,gBAAgB,CACd,gBAAgB,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,GAC/D;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,mBAAmB,EAAE,CAAA;KAAE;IAqB/D;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAI5D;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIxC;;OAEG;IACH,mBAAmB,IAAI,IAAI;IAM3B,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,yBAAyB;IAiBjC;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAY3B;;OAEG;IACH,YAAY,IAAI,IAAI;CAUrB;AAGD,eAAO,MAAM,UAAU,YAA2B,CAAC"}