@intella/sdk 0.0.1 → 0.0.2

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 (120) hide show
  1. package/dist/agent-manager.d.ts +47 -0
  2. package/dist/agent-manager.d.ts.map +1 -0
  3. package/dist/agent-manager.js +90 -0
  4. package/dist/agent-manager.js.map +1 -0
  5. package/dist/agents/base-agent.d.ts +41 -0
  6. package/dist/agents/base-agent.d.ts.map +1 -0
  7. package/dist/agents/base-agent.js +139 -0
  8. package/dist/agents/base-agent.js.map +1 -0
  9. package/dist/agents/claude-agent.d.ts +24 -0
  10. package/dist/agents/claude-agent.d.ts.map +1 -0
  11. package/dist/agents/claude-agent.js +65 -0
  12. package/dist/agents/claude-agent.js.map +1 -0
  13. package/dist/agents/codex-agent.d.ts +25 -0
  14. package/dist/agents/codex-agent.d.ts.map +1 -0
  15. package/dist/agents/codex-agent.js +62 -0
  16. package/dist/agents/codex-agent.js.map +1 -0
  17. package/dist/agents/intella-lite-agent.d.ts +21 -0
  18. package/dist/agents/intella-lite-agent.d.ts.map +1 -0
  19. package/dist/agents/intella-lite-agent.js +43 -0
  20. package/dist/agents/intella-lite-agent.js.map +1 -0
  21. package/dist/agents/opencode-agent.d.ts +20 -0
  22. package/dist/agents/opencode-agent.d.ts.map +1 -0
  23. package/dist/agents/opencode-agent.js +36 -0
  24. package/dist/agents/opencode-agent.js.map +1 -0
  25. package/dist/filesystem/agentfs-provider.d.ts +42 -0
  26. package/dist/filesystem/agentfs-provider.d.ts.map +1 -0
  27. package/dist/filesystem/agentfs-provider.js +308 -0
  28. package/dist/filesystem/agentfs-provider.js.map +1 -0
  29. package/dist/filesystem/base-provider.d.ts +55 -0
  30. package/dist/filesystem/base-provider.d.ts.map +1 -0
  31. package/dist/filesystem/base-provider.js +44 -0
  32. package/dist/filesystem/base-provider.js.map +1 -0
  33. package/dist/filesystem/index.d.ts +4 -0
  34. package/dist/filesystem/index.d.ts.map +1 -0
  35. package/{src/filesystem/index.ts → dist/filesystem/index.js} +1 -1
  36. package/dist/filesystem/index.js.map +1 -0
  37. package/dist/filesystem/memory-provider.d.ts +44 -0
  38. package/dist/filesystem/memory-provider.d.ts.map +1 -0
  39. package/dist/filesystem/memory-provider.js +227 -0
  40. package/dist/filesystem/memory-provider.js.map +1 -0
  41. package/dist/filesystem-manager.d.ts +75 -0
  42. package/dist/filesystem-manager.d.ts.map +1 -0
  43. package/dist/filesystem-manager.js +164 -0
  44. package/dist/filesystem-manager.js.map +1 -0
  45. package/dist/index.d.ts +18 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/{src/index.ts → dist/index.js} +3 -46
  48. package/dist/index.js.map +1 -0
  49. package/dist/orchestrator.d.ts +32 -0
  50. package/dist/orchestrator.d.ts.map +1 -0
  51. package/dist/orchestrator.js +136 -0
  52. package/dist/orchestrator.js.map +1 -0
  53. package/dist/sandbox/base-provider.d.ts +106 -0
  54. package/dist/sandbox/base-provider.d.ts.map +1 -0
  55. package/dist/sandbox/base-provider.js +73 -0
  56. package/dist/sandbox/base-provider.js.map +1 -0
  57. package/dist/sandbox/daytona-provider.d.ts +93 -0
  58. package/dist/sandbox/daytona-provider.d.ts.map +1 -0
  59. package/dist/sandbox/daytona-provider.js +378 -0
  60. package/dist/sandbox/daytona-provider.js.map +1 -0
  61. package/dist/sandbox/e2b-provider.d.ts +85 -0
  62. package/dist/sandbox/e2b-provider.d.ts.map +1 -0
  63. package/dist/sandbox/e2b-provider.js +342 -0
  64. package/dist/sandbox/e2b-provider.js.map +1 -0
  65. package/dist/sandbox/modal-provider.d.ts +92 -0
  66. package/dist/sandbox/modal-provider.d.ts.map +1 -0
  67. package/dist/sandbox/modal-provider.js +516 -0
  68. package/dist/sandbox/modal-provider.js.map +1 -0
  69. package/dist/sandbox-manager.d.ts +59 -0
  70. package/dist/sandbox-manager.d.ts.map +1 -0
  71. package/dist/sandbox-manager.js +141 -0
  72. package/dist/sandbox-manager.js.map +1 -0
  73. package/dist/sdk.d.ts +173 -0
  74. package/dist/sdk.d.ts.map +1 -0
  75. package/dist/sdk.js +273 -0
  76. package/dist/sdk.js.map +1 -0
  77. package/dist/types.d.ts +419 -0
  78. package/dist/types.d.ts.map +1 -0
  79. package/dist/types.js +2 -0
  80. package/dist/types.js.map +1 -0
  81. package/dist/utils/code-extractor.d.ts +103 -0
  82. package/dist/utils/code-extractor.d.ts.map +1 -0
  83. package/dist/utils/code-extractor.js +133 -0
  84. package/dist/utils/code-extractor.js.map +1 -0
  85. package/package.json +6 -1
  86. package/examples/claude-code/README.md +0 -178
  87. package/examples/claude-code/advanced-config.ts +0 -55
  88. package/examples/claude-code/basic-usage.ts +0 -56
  89. package/examples/claude-code/model-comparison.ts +0 -50
  90. package/examples/claude-code/orchestration.ts +0 -70
  91. package/examples/claude-code/streaming.ts +0 -69
  92. package/examples/claude-code/tsconfig.json +0 -19
  93. package/examples/code-extractor/README.md +0 -77
  94. package/examples/code-extractor/example.ts +0 -145
  95. package/examples/filesystem/basic-usage.ts +0 -84
  96. package/examples/integrated-task/README.md +0 -68
  97. package/examples/integrated-task/integrated-usage.ts +0 -193
  98. package/examples/integrated-task/simple-example.ts +0 -51
  99. package/examples/integrated-task/tsconfig.json +0 -19
  100. package/examples/sandbox/basic-usage.ts +0 -173
  101. package/src/agent-manager.ts +0 -104
  102. package/src/agents/base-agent.ts +0 -166
  103. package/src/agents/claude-agent.ts +0 -77
  104. package/src/agents/codex-agent.ts +0 -72
  105. package/src/agents/intella-lite-agent.ts +0 -55
  106. package/src/agents/opencode-agent.ts +0 -45
  107. package/src/filesystem/agentfs-provider.ts +0 -328
  108. package/src/filesystem/base-provider.ts +0 -98
  109. package/src/filesystem/memory-provider.ts +0 -267
  110. package/src/filesystem-manager.ts +0 -213
  111. package/src/orchestrator.ts +0 -177
  112. package/src/sandbox/base-provider.ts +0 -184
  113. package/src/sandbox/daytona-provider.ts +0 -462
  114. package/src/sandbox/e2b-provider.ts +0 -419
  115. package/src/sandbox/modal-provider.ts +0 -597
  116. package/src/sandbox-manager.ts +0 -175
  117. package/src/sdk.ts +0 -401
  118. package/src/types.ts +0 -451
  119. package/src/utils/code-extractor.ts +0 -194
  120. package/tsconfig.json +0 -25
@@ -0,0 +1,342 @@
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
+ constructor(config) {
10
+ super('e2b');
11
+ this.sandboxInstance = null;
12
+ this.client = null;
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
+ // Create sandbox instance using @e2b/code-interpreter
45
+ // The code-interpreter SDK uses 'envs' instead of 'env'
46
+ const sandboxOpts = {
47
+ apiKey: client.apiKey,
48
+ };
49
+ if (Object.keys(envs).length > 0) {
50
+ sandboxOpts.envs = envs;
51
+ }
52
+ this.sandboxInstance = await Sandbox.create(sandboxOpts);
53
+ this.sandboxId = this.sandboxInstance.sandboxId;
54
+ this.initialized = true;
55
+ }
56
+ catch (error) {
57
+ throw new Error(`Failed to initialize E2B sandbox: ${error instanceof Error ? error.message : String(error)}`);
58
+ }
59
+ }
60
+ /**
61
+ * Connect to an existing E2B sandbox by ID
62
+ */
63
+ async fromSandbox(sandboxId, config) {
64
+ if (config) {
65
+ this.config = { ...this.config, ...config };
66
+ }
67
+ try {
68
+ const client = this.getClient();
69
+ const sandbox = await Sandbox.connect(sandboxId, {
70
+ apiKey: client.apiKey,
71
+ });
72
+ this.sandboxInstance = sandbox;
73
+ this.sandboxId = sandbox.sandboxId;
74
+ this.initialized = true;
75
+ return this.sandboxInstance;
76
+ }
77
+ catch (error) {
78
+ throw new Error(`Failed to connect to E2B sandbox: ${error instanceof Error ? error.message : String(error)}`);
79
+ }
80
+ }
81
+ /**
82
+ * Close/cleanup the E2B sandbox
83
+ */
84
+ async close() {
85
+ if (this.sandboxInstance) {
86
+ try {
87
+ await this.sandboxInstance.kill();
88
+ }
89
+ catch (error) {
90
+ // Ignore errors during cleanup
91
+ console.warn('Error closing E2B sandbox:', error);
92
+ }
93
+ this.sandboxInstance = null;
94
+ this.sandboxId = null;
95
+ this.initialized = false;
96
+ }
97
+ }
98
+ /**
99
+ * Execute a command in the E2B sandbox
100
+ */
101
+ async executeCommand(command, options) {
102
+ this.ensureInitialized();
103
+ const startTime = Date.now();
104
+ try {
105
+ // Use commands.run() which takes the command string directly
106
+ // and options as the second parameter
107
+ const commandOpts = {};
108
+ if (options?.cwd) {
109
+ commandOpts.cwd = options.cwd;
110
+ }
111
+ if (options?.env) {
112
+ commandOpts.envs = options.env; // E2B uses 'envs' not 'env'
113
+ }
114
+ const timeout = options?.timeout || this.config.timeout || 60000;
115
+ const result = await Promise.race([
116
+ this.sandboxInstance.commands.run(command, commandOpts),
117
+ new Promise((_, reject) => setTimeout(() => reject(new Error('Command timeout')), timeout)),
118
+ ]);
119
+ const executionTime = Date.now() - startTime;
120
+ return {
121
+ exitCode: result.exitCode || 0,
122
+ stdout: result.stdout || '',
123
+ stderr: result.stderr || '',
124
+ executionTime,
125
+ };
126
+ }
127
+ catch (error) {
128
+ const executionTime = Date.now() - startTime;
129
+ return {
130
+ exitCode: 1,
131
+ stdout: '',
132
+ stderr: error instanceof Error ? error.message : String(error),
133
+ executionTime,
134
+ };
135
+ }
136
+ }
137
+ /**
138
+ * Run code (e.g., Python, JavaScript) in the E2B sandbox
139
+ */
140
+ async runCode(code, options) {
141
+ this.ensureInitialized();
142
+ const startTime = Date.now();
143
+ try {
144
+ const runCodeOpts = {};
145
+ if (options?.language) {
146
+ runCodeOpts.language = options.language;
147
+ }
148
+ if (options?.env) {
149
+ runCodeOpts.envs = options.env; // E2B uses 'envs' not 'env'
150
+ }
151
+ if (options?.timeout) {
152
+ runCodeOpts.timeoutMs = options.timeout;
153
+ }
154
+ // Handle streaming callbacks for stdout/stderr
155
+ if (options?.onStdout) {
156
+ runCodeOpts.onStdout = (output) => {
157
+ options.onStdout(output.line);
158
+ };
159
+ }
160
+ if (options?.onStderr) {
161
+ runCodeOpts.onStderr = (output) => {
162
+ options.onStderr(output.line);
163
+ };
164
+ }
165
+ const execution = await this.sandboxInstance.runCode(code, runCodeOpts);
166
+ const executionTime = Date.now() - startTime;
167
+ return {
168
+ text: execution.text,
169
+ results: execution.results.map((result) => result.toJSON()),
170
+ stdout: execution.logs.stdout,
171
+ stderr: execution.logs.stderr,
172
+ error: execution.error
173
+ ? {
174
+ name: execution.error.name,
175
+ value: execution.error.value,
176
+ traceback: execution.error.traceback,
177
+ }
178
+ : undefined,
179
+ executionTime,
180
+ };
181
+ }
182
+ catch (error) {
183
+ const executionTime = Date.now() - startTime;
184
+ return {
185
+ text: undefined,
186
+ results: [],
187
+ stdout: [],
188
+ stderr: [],
189
+ error: {
190
+ name: 'ExecutionError',
191
+ value: error instanceof Error ? error.message : String(error),
192
+ traceback: error instanceof Error ? error.stack || '' : '',
193
+ },
194
+ executionTime,
195
+ };
196
+ }
197
+ }
198
+ /**
199
+ * Upload a file to the E2B sandbox
200
+ */
201
+ async uploadFile(localPath, remotePath) {
202
+ this.ensureInitialized();
203
+ try {
204
+ const fs = await import('fs/promises');
205
+ const content = await fs.readFile(localPath);
206
+ // Convert Buffer to Uint8Array for E2B filesystem
207
+ const uint8Array = new Uint8Array(content);
208
+ await this.sandboxInstance.files.write(remotePath, uint8Array.buffer);
209
+ }
210
+ catch (error) {
211
+ throw new Error(`Failed to upload file to E2B sandbox: ${error instanceof Error ? error.message : String(error)}`);
212
+ }
213
+ }
214
+ /**
215
+ * Download a file from the E2B sandbox
216
+ */
217
+ async downloadFile(remotePath, localPath) {
218
+ this.ensureInitialized();
219
+ try {
220
+ const content = await this.sandboxInstance.files.read(remotePath, { format: 'bytes' });
221
+ const fs = await import('fs/promises');
222
+ await fs.writeFile(localPath, Buffer.from(content));
223
+ }
224
+ catch (error) {
225
+ throw new Error(`Failed to download file from E2B sandbox: ${error instanceof Error ? error.message : String(error)}`);
226
+ }
227
+ }
228
+ /**
229
+ * Read a file from the E2B sandbox
230
+ */
231
+ async readFile(path) {
232
+ this.ensureInitialized();
233
+ try {
234
+ const content = await this.sandboxInstance.files.read(path);
235
+ return content;
236
+ }
237
+ catch (error) {
238
+ throw new Error(`Failed to read file from E2B sandbox: ${error instanceof Error ? error.message : String(error)}`);
239
+ }
240
+ }
241
+ /**
242
+ * Write a file to the E2B sandbox
243
+ */
244
+ async writeFile(path, content) {
245
+ this.ensureInitialized();
246
+ try {
247
+ await this.sandboxInstance.files.write(path, content);
248
+ }
249
+ catch (error) {
250
+ throw new Error(`Failed to write file to E2B sandbox: ${error instanceof Error ? error.message : String(error)}`);
251
+ }
252
+ }
253
+ /**
254
+ * List files in a directory
255
+ */
256
+ async listFiles(path) {
257
+ this.ensureInitialized();
258
+ try {
259
+ const entries = await this.sandboxInstance.files.list(path);
260
+ return entries.map((entry) => entry.name || entry.path);
261
+ }
262
+ catch (error) {
263
+ throw new Error(`Failed to list files in E2B sandbox: ${error instanceof Error ? error.message : String(error)}`);
264
+ }
265
+ }
266
+ /**
267
+ * Check if a file exists
268
+ */
269
+ async fileExists(path) {
270
+ this.ensureInitialized();
271
+ try {
272
+ return await this.sandboxInstance.files.exists(path);
273
+ }
274
+ catch {
275
+ return false;
276
+ }
277
+ }
278
+ /**
279
+ * Delete a file
280
+ */
281
+ async deleteFile(path) {
282
+ this.ensureInitialized();
283
+ try {
284
+ await this.sandboxInstance.files.remove(path);
285
+ }
286
+ catch (error) {
287
+ throw new Error(`Failed to delete file in E2B sandbox: ${error instanceof Error ? error.message : String(error)}`);
288
+ }
289
+ }
290
+ /**
291
+ * Get sandbox status
292
+ */
293
+ async getStatus() {
294
+ this.ensureInitialized();
295
+ try {
296
+ // E2B doesn't expose a direct status endpoint, but we can check if sandbox is accessible
297
+ return {
298
+ isRunning: this.initialized && this.sandboxInstance !== null,
299
+ sandboxId: this.sandboxId,
300
+ };
301
+ }
302
+ catch {
303
+ return {
304
+ isRunning: false,
305
+ };
306
+ }
307
+ }
308
+ /**
309
+ * Get detailed sandbox information
310
+ */
311
+ async getInfo(sandboxId) {
312
+ if (!sandboxId && this.sandboxInstance) {
313
+ const info = await this.sandboxInstance.getInfo();
314
+ return {
315
+ sandboxId: info.sandboxId,
316
+ provider: this.type,
317
+ isRunning: info.state === 'running',
318
+ isInitialized: this.initialized,
319
+ createdAt: info.startedAt,
320
+ metadata: info.metadata,
321
+ info: info,
322
+ };
323
+ }
324
+ else if (sandboxId) {
325
+ const sandbox = await this.fromSandbox(sandboxId);
326
+ const info = await sandbox.getInfo();
327
+ return {
328
+ sandboxId: sandbox.sandboxId,
329
+ provider: this.type,
330
+ isRunning: info.state === 'running',
331
+ isInitialized: this.initialized,
332
+ createdAt: info.startedAt,
333
+ metadata: info.metadata,
334
+ info: info,
335
+ };
336
+ }
337
+ else {
338
+ throw new Error('Sandbox ID or active instance is required to get sandbox info');
339
+ }
340
+ }
341
+ }
342
+ //# 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"}