@intella/sdk 0.0.1 → 0.0.3

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 (117) hide show
  1. package/README.md +6 -483
  2. package/dist/agent-manager.d.ts +47 -0
  3. package/dist/agent-manager.d.ts.map +1 -0
  4. package/dist/agent-manager.js +90 -0
  5. package/dist/agent-manager.js.map +1 -0
  6. package/dist/agents/base-agent.d.ts +41 -0
  7. package/dist/agents/base-agent.d.ts.map +1 -0
  8. package/dist/agents/base-agent.js +148 -0
  9. package/dist/agents/base-agent.js.map +1 -0
  10. package/dist/agents/claude-agent.d.ts +24 -0
  11. package/dist/agents/claude-agent.d.ts.map +1 -0
  12. package/dist/agents/claude-agent.js +65 -0
  13. package/dist/agents/claude-agent.js.map +1 -0
  14. package/dist/agents/codex-agent.d.ts +25 -0
  15. package/dist/agents/codex-agent.d.ts.map +1 -0
  16. package/dist/agents/codex-agent.js +62 -0
  17. package/dist/agents/codex-agent.js.map +1 -0
  18. package/dist/agents/intella-lite-agent.d.ts +21 -0
  19. package/dist/agents/intella-lite-agent.d.ts.map +1 -0
  20. package/dist/agents/intella-lite-agent.js +43 -0
  21. package/dist/agents/intella-lite-agent.js.map +1 -0
  22. package/dist/agents/opencode-agent.d.ts +20 -0
  23. package/dist/agents/opencode-agent.d.ts.map +1 -0
  24. package/dist/agents/opencode-agent.js +36 -0
  25. package/dist/agents/opencode-agent.js.map +1 -0
  26. package/dist/filesystem/base-provider.d.ts +55 -0
  27. package/dist/filesystem/base-provider.d.ts.map +1 -0
  28. package/dist/filesystem/base-provider.js +45 -0
  29. package/dist/filesystem/base-provider.js.map +1 -0
  30. package/dist/filesystem/index.d.ts +3 -0
  31. package/dist/filesystem/index.d.ts.map +1 -0
  32. package/{src/filesystem/index.ts → dist/filesystem/index.js} +1 -2
  33. package/dist/filesystem/index.js.map +1 -0
  34. package/dist/filesystem/memory-provider.d.ts +44 -0
  35. package/dist/filesystem/memory-provider.d.ts.map +1 -0
  36. package/dist/filesystem/memory-provider.js +227 -0
  37. package/dist/filesystem/memory-provider.js.map +1 -0
  38. package/dist/filesystem-manager.d.ts +75 -0
  39. package/dist/filesystem-manager.d.ts.map +1 -0
  40. package/dist/filesystem-manager.js +162 -0
  41. package/dist/filesystem-manager.js.map +1 -0
  42. package/dist/index.d.ts +18 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/{src/index.ts → dist/index.js} +4 -47
  45. package/dist/index.js.map +1 -0
  46. package/dist/orchestrator.d.ts +32 -0
  47. package/dist/orchestrator.d.ts.map +1 -0
  48. package/dist/orchestrator.js +137 -0
  49. package/dist/orchestrator.js.map +1 -0
  50. package/dist/sandbox/base-provider.d.ts +106 -0
  51. package/dist/sandbox/base-provider.d.ts.map +1 -0
  52. package/dist/sandbox/base-provider.js +74 -0
  53. package/dist/sandbox/base-provider.js.map +1 -0
  54. package/dist/sandbox/daytona-provider.d.ts +93 -0
  55. package/dist/sandbox/daytona-provider.d.ts.map +1 -0
  56. package/dist/sandbox/daytona-provider.js +378 -0
  57. package/dist/sandbox/daytona-provider.js.map +1 -0
  58. package/dist/sandbox/e2b-provider.d.ts +85 -0
  59. package/dist/sandbox/e2b-provider.d.ts.map +1 -0
  60. package/dist/sandbox/e2b-provider.js +363 -0
  61. package/dist/sandbox/e2b-provider.js.map +1 -0
  62. package/dist/sandbox/modal-provider.d.ts +92 -0
  63. package/dist/sandbox/modal-provider.d.ts.map +1 -0
  64. package/dist/sandbox/modal-provider.js +516 -0
  65. package/dist/sandbox/modal-provider.js.map +1 -0
  66. package/dist/sandbox-manager.d.ts +59 -0
  67. package/dist/sandbox-manager.d.ts.map +1 -0
  68. package/dist/sandbox-manager.js +141 -0
  69. package/dist/sandbox-manager.js.map +1 -0
  70. package/dist/sdk.d.ts +173 -0
  71. package/dist/sdk.d.ts.map +1 -0
  72. package/dist/sdk.js +277 -0
  73. package/dist/sdk.js.map +1 -0
  74. package/dist/types.d.ts +423 -0
  75. package/dist/types.d.ts.map +1 -0
  76. package/dist/types.js +2 -0
  77. package/dist/types.js.map +1 -0
  78. package/dist/utils/code-extractor.d.ts +103 -0
  79. package/dist/utils/code-extractor.d.ts.map +1 -0
  80. package/dist/utils/code-extractor.js +133 -0
  81. package/dist/utils/code-extractor.js.map +1 -0
  82. package/package.json +23 -11
  83. package/examples/claude-code/README.md +0 -178
  84. package/examples/claude-code/advanced-config.ts +0 -55
  85. package/examples/claude-code/basic-usage.ts +0 -56
  86. package/examples/claude-code/model-comparison.ts +0 -50
  87. package/examples/claude-code/orchestration.ts +0 -70
  88. package/examples/claude-code/streaming.ts +0 -69
  89. package/examples/claude-code/tsconfig.json +0 -19
  90. package/examples/code-extractor/README.md +0 -77
  91. package/examples/code-extractor/example.ts +0 -145
  92. package/examples/filesystem/basic-usage.ts +0 -84
  93. package/examples/integrated-task/README.md +0 -68
  94. package/examples/integrated-task/integrated-usage.ts +0 -193
  95. package/examples/integrated-task/simple-example.ts +0 -51
  96. package/examples/integrated-task/tsconfig.json +0 -19
  97. package/examples/sandbox/basic-usage.ts +0 -173
  98. package/src/agent-manager.ts +0 -104
  99. package/src/agents/base-agent.ts +0 -166
  100. package/src/agents/claude-agent.ts +0 -77
  101. package/src/agents/codex-agent.ts +0 -72
  102. package/src/agents/intella-lite-agent.ts +0 -55
  103. package/src/agents/opencode-agent.ts +0 -45
  104. package/src/filesystem/agentfs-provider.ts +0 -328
  105. package/src/filesystem/base-provider.ts +0 -98
  106. package/src/filesystem/memory-provider.ts +0 -267
  107. package/src/filesystem-manager.ts +0 -213
  108. package/src/orchestrator.ts +0 -177
  109. package/src/sandbox/base-provider.ts +0 -184
  110. package/src/sandbox/daytona-provider.ts +0 -462
  111. package/src/sandbox/e2b-provider.ts +0 -419
  112. package/src/sandbox/modal-provider.ts +0 -597
  113. package/src/sandbox-manager.ts +0 -175
  114. package/src/sdk.ts +0 -401
  115. package/src/types.ts +0 -451
  116. package/src/utils/code-extractor.ts +0 -194
  117. package/tsconfig.json +0 -25
@@ -0,0 +1,363 @@
1
+ import { BaseSandboxProvider } from './base-provider.js';
2
+ import { Sandbox } from '@e2b/code-interpreter';
3
+ import 'dotenv/config';
4
+ /**
5
+ * E2B Sandbox Provider
6
+ * Provides sandbox execution capabilities using E2B Code Interpreter SDK
7
+ */
8
+ export class E2BSandboxProvider extends BaseSandboxProvider {
9
+ sandboxInstance = null;
10
+ client = null;
11
+ constructor(config) {
12
+ super('e2b');
13
+ if (config) {
14
+ this.config = config;
15
+ }
16
+ }
17
+ getClient() {
18
+ if (!this.client) {
19
+ const apiKey = this.config.apiKey || process.env.E2B_API_KEY;
20
+ if (!apiKey) {
21
+ throw new Error('E2B API key is required. Set E2B_API_KEY environment variable or provide apiKey in config.');
22
+ }
23
+ this.client = {
24
+ apiKey: apiKey,
25
+ ...this.config,
26
+ };
27
+ if (this.config.apiKey) {
28
+ process.env['E2B_API_KEY'] = this.config.apiKey;
29
+ }
30
+ }
31
+ return this.client;
32
+ }
33
+ /**
34
+ * Initialize/create an E2B sandbox
35
+ */
36
+ async initializeSandbox(config) {
37
+ if (config) {
38
+ this.config = { ...this.config, ...config };
39
+ }
40
+ try {
41
+ // Dynamic import to handle optional dependency
42
+ const client = this.getClient();
43
+ const envs = this.config.env || {};
44
+ const templateId = this.config.templateId;
45
+ // Create sandbox instance using @e2b/code-interpreter
46
+ // The code-interpreter SDK uses 'envs' instead of 'env'
47
+ const sandboxOpts = {
48
+ apiKey: client.apiKey,
49
+ };
50
+ if (Object.keys(envs).length > 0) {
51
+ sandboxOpts.envs = envs;
52
+ }
53
+ // If templateId is provided, use it to create sandbox from template
54
+ // Sandbox.create() can accept either:
55
+ // 1. A template ID/alias string: Sandbox.create('template-alias')
56
+ // 2. An options object: Sandbox.create({ apiKey, envs, ... })
57
+ // 3. A template ID with options: Sandbox.create('template-alias', { apiKey, envs, ... })
58
+ if (templateId) {
59
+ // If templateId is provided and it's not 'base' (default), use it
60
+ // 'base' is the default template, so we don't need to specify it
61
+ if (templateId !== 'base') {
62
+ // Pass templateId as first argument, options as second
63
+ this.sandboxInstance = await Sandbox.create(templateId, sandboxOpts);
64
+ }
65
+ else {
66
+ // Use default 'base' template with options
67
+ this.sandboxInstance = await Sandbox.create(sandboxOpts);
68
+ }
69
+ }
70
+ else {
71
+ // No template specified, use default
72
+ this.sandboxInstance = await Sandbox.create(sandboxOpts);
73
+ }
74
+ this.sandboxId = this.sandboxInstance.sandboxId;
75
+ this.initialized = true;
76
+ }
77
+ catch (error) {
78
+ throw new Error(`Failed to initialize E2B sandbox: ${error instanceof Error ? error.message : String(error)}`);
79
+ }
80
+ }
81
+ /**
82
+ * Connect to an existing E2B sandbox by ID
83
+ */
84
+ async fromSandbox(sandboxId, config) {
85
+ if (config) {
86
+ this.config = { ...this.config, ...config };
87
+ }
88
+ try {
89
+ const client = this.getClient();
90
+ const sandbox = await Sandbox.connect(sandboxId, {
91
+ apiKey: client.apiKey,
92
+ });
93
+ this.sandboxInstance = sandbox;
94
+ this.sandboxId = sandbox.sandboxId;
95
+ this.initialized = true;
96
+ return this.sandboxInstance;
97
+ }
98
+ catch (error) {
99
+ throw new Error(`Failed to connect to E2B sandbox: ${error instanceof Error ? error.message : String(error)}`);
100
+ }
101
+ }
102
+ /**
103
+ * Close/cleanup the E2B sandbox
104
+ */
105
+ async close() {
106
+ if (this.sandboxInstance) {
107
+ try {
108
+ await this.sandboxInstance.kill();
109
+ }
110
+ catch (error) {
111
+ // Ignore errors during cleanup
112
+ console.warn('Error closing E2B sandbox:', error);
113
+ }
114
+ this.sandboxInstance = null;
115
+ this.sandboxId = null;
116
+ this.initialized = false;
117
+ }
118
+ }
119
+ /**
120
+ * Execute a command in the E2B sandbox
121
+ */
122
+ async executeCommand(command, options) {
123
+ this.ensureInitialized();
124
+ const startTime = Date.now();
125
+ try {
126
+ // Use commands.run() which takes the command string directly
127
+ // and options as the second parameter
128
+ const commandOpts = {};
129
+ if (options?.cwd) {
130
+ commandOpts.cwd = options.cwd;
131
+ }
132
+ if (options?.env) {
133
+ commandOpts.envs = options.env; // E2B uses 'envs' not 'env'
134
+ }
135
+ const timeout = options?.timeout || this.config.timeout || 60000;
136
+ const result = await Promise.race([
137
+ this.sandboxInstance.commands.run(command, commandOpts),
138
+ new Promise((_, reject) => setTimeout(() => reject(new Error('Command timeout')), timeout)),
139
+ ]);
140
+ const executionTime = Date.now() - startTime;
141
+ return {
142
+ exitCode: result.exitCode || 0,
143
+ stdout: result.stdout || '',
144
+ stderr: result.stderr || '',
145
+ executionTime,
146
+ };
147
+ }
148
+ catch (error) {
149
+ const executionTime = Date.now() - startTime;
150
+ return {
151
+ exitCode: 1,
152
+ stdout: '',
153
+ stderr: error instanceof Error ? error.message : String(error),
154
+ executionTime,
155
+ };
156
+ }
157
+ }
158
+ /**
159
+ * Run code (e.g., Python, JavaScript) in the E2B sandbox
160
+ */
161
+ async runCode(code, options) {
162
+ this.ensureInitialized();
163
+ const startTime = Date.now();
164
+ try {
165
+ const runCodeOpts = {};
166
+ if (options?.language) {
167
+ runCodeOpts.language = options.language;
168
+ }
169
+ if (options?.env) {
170
+ runCodeOpts.envs = options.env; // E2B uses 'envs' not 'env'
171
+ }
172
+ if (options?.timeout) {
173
+ runCodeOpts.timeoutMs = options.timeout;
174
+ }
175
+ // Handle streaming callbacks for stdout/stderr
176
+ if (options?.onStdout) {
177
+ runCodeOpts.onStdout = (output) => {
178
+ options.onStdout(output.line);
179
+ };
180
+ }
181
+ if (options?.onStderr) {
182
+ runCodeOpts.onStderr = (output) => {
183
+ options.onStderr(output.line);
184
+ };
185
+ }
186
+ const execution = await this.sandboxInstance.runCode(code, runCodeOpts);
187
+ const executionTime = Date.now() - startTime;
188
+ return {
189
+ text: execution.text,
190
+ results: execution.results.map((result) => result.toJSON()),
191
+ stdout: execution.logs.stdout,
192
+ stderr: execution.logs.stderr,
193
+ error: execution.error
194
+ ? {
195
+ name: execution.error.name,
196
+ value: execution.error.value,
197
+ traceback: execution.error.traceback,
198
+ }
199
+ : undefined,
200
+ executionTime,
201
+ };
202
+ }
203
+ catch (error) {
204
+ const executionTime = Date.now() - startTime;
205
+ return {
206
+ text: undefined,
207
+ results: [],
208
+ stdout: [],
209
+ stderr: [],
210
+ error: {
211
+ name: 'ExecutionError',
212
+ value: error instanceof Error ? error.message : String(error),
213
+ traceback: error instanceof Error ? error.stack || '' : '',
214
+ },
215
+ executionTime,
216
+ };
217
+ }
218
+ }
219
+ /**
220
+ * Upload a file to the E2B sandbox
221
+ */
222
+ async uploadFile(localPath, remotePath) {
223
+ this.ensureInitialized();
224
+ try {
225
+ const fs = await import('fs/promises');
226
+ const content = await fs.readFile(localPath);
227
+ // Convert Buffer to Uint8Array for E2B filesystem
228
+ const uint8Array = new Uint8Array(content);
229
+ await this.sandboxInstance.files.write(remotePath, uint8Array.buffer);
230
+ }
231
+ catch (error) {
232
+ throw new Error(`Failed to upload file to E2B sandbox: ${error instanceof Error ? error.message : String(error)}`);
233
+ }
234
+ }
235
+ /**
236
+ * Download a file from the E2B sandbox
237
+ */
238
+ async downloadFile(remotePath, localPath) {
239
+ this.ensureInitialized();
240
+ try {
241
+ const content = await this.sandboxInstance.files.read(remotePath, { format: 'bytes' });
242
+ const fs = await import('fs/promises');
243
+ await fs.writeFile(localPath, Buffer.from(content));
244
+ }
245
+ catch (error) {
246
+ throw new Error(`Failed to download file from E2B sandbox: ${error instanceof Error ? error.message : String(error)}`);
247
+ }
248
+ }
249
+ /**
250
+ * Read a file from the E2B sandbox
251
+ */
252
+ async readFile(path) {
253
+ this.ensureInitialized();
254
+ try {
255
+ const content = await this.sandboxInstance.files.read(path);
256
+ return content;
257
+ }
258
+ catch (error) {
259
+ throw new Error(`Failed to read file from E2B sandbox: ${error instanceof Error ? error.message : String(error)}`);
260
+ }
261
+ }
262
+ /**
263
+ * Write a file to the E2B sandbox
264
+ */
265
+ async writeFile(path, content) {
266
+ this.ensureInitialized();
267
+ try {
268
+ await this.sandboxInstance.files.write(path, content);
269
+ }
270
+ catch (error) {
271
+ throw new Error(`Failed to write file to E2B sandbox: ${error instanceof Error ? error.message : String(error)}`);
272
+ }
273
+ }
274
+ /**
275
+ * List files in a directory
276
+ */
277
+ async listFiles(path) {
278
+ this.ensureInitialized();
279
+ try {
280
+ const entries = await this.sandboxInstance.files.list(path);
281
+ return entries.map((entry) => entry.name || entry.path);
282
+ }
283
+ catch (error) {
284
+ throw new Error(`Failed to list files in E2B sandbox: ${error instanceof Error ? error.message : String(error)}`);
285
+ }
286
+ }
287
+ /**
288
+ * Check if a file exists
289
+ */
290
+ async fileExists(path) {
291
+ this.ensureInitialized();
292
+ try {
293
+ return await this.sandboxInstance.files.exists(path);
294
+ }
295
+ catch {
296
+ return false;
297
+ }
298
+ }
299
+ /**
300
+ * Delete a file
301
+ */
302
+ async deleteFile(path) {
303
+ this.ensureInitialized();
304
+ try {
305
+ await this.sandboxInstance.files.remove(path);
306
+ }
307
+ catch (error) {
308
+ throw new Error(`Failed to delete file in E2B sandbox: ${error instanceof Error ? error.message : String(error)}`);
309
+ }
310
+ }
311
+ /**
312
+ * Get sandbox status
313
+ */
314
+ async getStatus() {
315
+ this.ensureInitialized();
316
+ try {
317
+ // E2B doesn't expose a direct status endpoint, but we can check if sandbox is accessible
318
+ return {
319
+ isRunning: this.initialized && this.sandboxInstance !== null,
320
+ sandboxId: this.sandboxId,
321
+ };
322
+ }
323
+ catch {
324
+ return {
325
+ isRunning: false,
326
+ };
327
+ }
328
+ }
329
+ /**
330
+ * Get detailed sandbox information
331
+ */
332
+ async getInfo(sandboxId) {
333
+ if (!sandboxId && this.sandboxInstance) {
334
+ const info = await this.sandboxInstance.getInfo();
335
+ return {
336
+ sandboxId: info.sandboxId,
337
+ provider: this.type,
338
+ isRunning: info.state === 'running',
339
+ isInitialized: this.initialized,
340
+ createdAt: info.startedAt,
341
+ metadata: info.metadata,
342
+ info: info,
343
+ };
344
+ }
345
+ else if (sandboxId) {
346
+ const sandbox = await this.fromSandbox(sandboxId);
347
+ const info = await sandbox.getInfo();
348
+ return {
349
+ sandboxId: sandbox.sandboxId,
350
+ provider: this.type,
351
+ isRunning: info.state === 'running',
352
+ isInitialized: this.initialized,
353
+ createdAt: info.startedAt,
354
+ metadata: info.metadata,
355
+ info: info,
356
+ };
357
+ }
358
+ else {
359
+ throw new Error('Sandbox ID or active instance is required to get sandbox info');
360
+ }
361
+ }
362
+ }
363
+ //# sourceMappingURL=e2b-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e2b-provider.js","sourceRoot":"","sources":["../../src/sandbox/e2b-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ import { BaseSandboxProvider } from './base-provider.js';
2
+ import type { SandboxConfig, CommandResult, CodeExecutionResult, SandboxInfo } from '../types.js';
3
+ import { ModalClient, Sandbox } from 'modal';
4
+ /**
5
+ * Modal Sandbox Provider
6
+ * Provides sandbox execution capabilities using Modal
7
+ */
8
+ export declare class ModalSandboxProvider extends BaseSandboxProvider {
9
+ protected client: ModalClient | null;
10
+ private sandboxInstance;
11
+ private app;
12
+ private image;
13
+ constructor(config?: SandboxConfig);
14
+ getClient(): ModalClient;
15
+ /**
16
+ * Initialize/create a Modal sandbox
17
+ */
18
+ protected initializeSandbox(config?: SandboxConfig): Promise<void>;
19
+ /**
20
+ * Connect to an existing Modal sandbox by ID
21
+ */
22
+ fromSandbox(sandboxId: string, config?: SandboxConfig): Promise<Sandbox>;
23
+ /**
24
+ * Close/cleanup the Modal sandbox
25
+ */
26
+ close(): Promise<void>;
27
+ /**
28
+ * Execute a command in the Modal sandbox
29
+ */
30
+ executeCommand(command: string, options?: {
31
+ cwd?: string;
32
+ env?: Record<string, string>;
33
+ timeout?: number;
34
+ }): Promise<CommandResult>;
35
+ /**
36
+ * Run code (e.g., Python, JavaScript) in the Modal sandbox
37
+ */
38
+ runCode(code: string, options?: {
39
+ language?: string;
40
+ env?: Record<string, string>;
41
+ timeout?: number;
42
+ onStdout?: (data: string) => void;
43
+ onStderr?: (data: string) => void;
44
+ }): Promise<CodeExecutionResult>;
45
+ /**
46
+ * Upload a file to the Modal sandbox
47
+ * Uses the filesystem API
48
+ */
49
+ uploadFile(localPath: string, remotePath: string): Promise<void>;
50
+ /**
51
+ * Download a file from the Modal sandbox
52
+ * Uses the filesystem API
53
+ */
54
+ downloadFile(remotePath: string, localPath: string): Promise<void>;
55
+ /**
56
+ * Read a file from the Modal sandbox
57
+ * Uses the filesystem API
58
+ */
59
+ readFile(path: string): Promise<string>;
60
+ /**
61
+ * Write a file to the Modal sandbox
62
+ * Uses the filesystem API
63
+ */
64
+ writeFile(path: string, content: string): Promise<void>;
65
+ /**
66
+ * List files in a directory
67
+ * Uses exec to run ls command
68
+ */
69
+ listFiles(path: string): Promise<string[]>;
70
+ /**
71
+ * Check if a file exists
72
+ */
73
+ fileExists(path: string): Promise<boolean>;
74
+ /**
75
+ * Delete a file
76
+ * Uses exec to run rm command
77
+ */
78
+ deleteFile(path: string): Promise<void>;
79
+ /**
80
+ * Get sandbox status
81
+ */
82
+ getStatus(): Promise<{
83
+ isRunning: boolean;
84
+ createdAt?: number;
85
+ [key: string]: unknown;
86
+ }>;
87
+ /**
88
+ * Get detailed sandbox information
89
+ */
90
+ getInfo(sandboxId?: string): Promise<SandboxInfo>;
91
+ }
92
+ //# sourceMappingURL=modal-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal-provider.d.ts","sourceRoot":"","sources":["../../src/sandbox/modal-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE7C;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,mBAAmB;IAC3D,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAQ;IAC5C,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,GAAG,CAAoB;IAC/B,OAAO,CAAC,KAAK,CAAoB;gBAErB,MAAM,CAAC,EAAE,aAAa;IAOlC,SAAS,IAAI,WAAW;IAqBxB;;OAEG;cACa,iBAAiB,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA8DxE;;OAEG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IA4B9E;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB5B;;OAEG;IACG,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QACR,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GACA,OAAO,CAAC,aAAa,CAAC;IAmEzB;;OAEG;IACG,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;QAClC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;KACnC,GACA,OAAO,CAAC,mBAAmB,CAAC;IAwH/B;;;OAGG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBtE;;;OAGG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBxE;;;OAGG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB7C;;;OAGG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe7D;;;OAGG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAkChD;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAchD;;;OAGG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB7C;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC;QACzB,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IAiBF;;OAEG;IACG,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAiCxD"}