@delta1035/ccs-cli 1.0.1 → 1.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.
@@ -0,0 +1,566 @@
1
+ "use strict";
2
+ /**
3
+ * AI 提供商预设配置
4
+ *
5
+ * 包含常见的 AI 服务提供商配置,支持一键导入
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.providerPresets = void 0;
9
+ exports.createProviderFromPreset = createProviderFromPreset;
10
+ exports.getPresetDisplayName = getPresetDisplayName;
11
+ exports.findPresetByType = findPresetByType;
12
+ exports.searchPresets = searchPresets;
13
+ /**
14
+ * 预设列表
15
+ */
16
+ exports.providerPresets = [
17
+ // === Claude Providers ===
18
+ {
19
+ name: "Claude Official",
20
+ providerType: "claude",
21
+ defaultBaseUrl: "https://api.anthropic.com/v1",
22
+ defaultModels: {
23
+ claude: "claude-3-5-sonnet-20241022",
24
+ },
25
+ websiteUrl: "https://www.anthropic.com",
26
+ icon: "claude",
27
+ iconColor: "#E99265",
28
+ description: "Anthropic Claude 官方 API",
29
+ requiresApiKey: true,
30
+ apiKeyName: "Anthropic API Key",
31
+ },
32
+ {
33
+ name: "Xiaomi MIMO",
34
+ providerType: "claude",
35
+ defaultBaseUrl: "https://api.xiaomimimo.com/anthropic",
36
+ defaultModels: {
37
+ claude: "mimo-v2-flash",
38
+ },
39
+ websiteUrl: "https://xiaomimimo.com",
40
+ icon: "xiaomi",
41
+ iconColor: "#FF6900",
42
+ description: "小米 MIMO AI 服务",
43
+ requiresApiKey: true,
44
+ apiKeyName: "Xiaomi API Key",
45
+ },
46
+ {
47
+ name: "OpenRouter Claude",
48
+ providerType: "claude",
49
+ defaultBaseUrl: "https://openrouter.ai/api/v1",
50
+ defaultModels: {
51
+ claude: "anthropic/claude-3-5-sonnet-20241022",
52
+ },
53
+ websiteUrl: "https://openrouter.ai",
54
+ icon: "openrouter",
55
+ iconColor: "#6366F1",
56
+ description: "OpenRouter Claude 模型",
57
+ requiresApiKey: true,
58
+ apiKeyName: "OpenRouter API Key",
59
+ },
60
+ {
61
+ name: "AWS Bedrock Claude",
62
+ providerType: "claude",
63
+ defaultBaseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
64
+ defaultModels: {
65
+ claude: "anthropic.claude-3-5-sonnet-20241022-v2:0",
66
+ },
67
+ websiteUrl: "https://aws.amazon.com/bedrock/",
68
+ icon: "aws",
69
+ iconColor: "#FF9900",
70
+ description: "AWS Bedrock Claude 模型",
71
+ requiresApiKey: true,
72
+ apiKeyName: "AWS Credentials",
73
+ },
74
+ {
75
+ name: "NVIDIA NIM",
76
+ providerType: "claude",
77
+ defaultBaseUrl: "https://integrate.api.nvidia.com/v1",
78
+ defaultModels: {
79
+ claude: "nvidia/llama-3.1-nemotron-70b-instruct",
80
+ },
81
+ websiteUrl: "https://build.nvidia.com/nim",
82
+ icon: "nvidia",
83
+ iconColor: "#76B900",
84
+ description: "NVIDIA NIM 推理服务",
85
+ requiresApiKey: true,
86
+ apiKeyName: "NVIDIA API Key",
87
+ },
88
+ // === Codex Providers ===
89
+ {
90
+ name: "OpenAI Official",
91
+ providerType: "codex",
92
+ defaultBaseUrl: "https://api.openai.com/v1",
93
+ defaultModels: {
94
+ codex: "gpt-4o",
95
+ },
96
+ websiteUrl: "https://openai.com",
97
+ icon: "openai",
98
+ iconColor: "#10A37F",
99
+ description: "OpenAI 官方 API",
100
+ requiresApiKey: true,
101
+ apiKeyName: "OpenAI API Key",
102
+ },
103
+ {
104
+ name: "Azure OpenAI",
105
+ providerType: "codex",
106
+ defaultBaseUrl: "https://your-resource.openai.azure.com/openai/deployments/your-deployment",
107
+ defaultModels: {
108
+ codex: "gpt-4o",
109
+ },
110
+ websiteUrl: "https://azure.microsoft.com/products/ai-services",
111
+ icon: "azure",
112
+ iconColor: "#0078D4",
113
+ description: "Azure OpenAI 服务",
114
+ requiresApiKey: true,
115
+ apiKeyName: "Azure API Key",
116
+ },
117
+ {
118
+ name: "OpenRouter GPT-4",
119
+ providerType: "codex",
120
+ defaultBaseUrl: "https://openrouter.ai/api/v1",
121
+ defaultModels: {
122
+ codex: "openai/gpt-4o",
123
+ },
124
+ websiteUrl: "https://openrouter.ai",
125
+ icon: "openrouter",
126
+ iconColor: "#6366F1",
127
+ description: "OpenRouter GPT-4 模型",
128
+ requiresApiKey: true,
129
+ apiKeyName: "OpenRouter API Key",
130
+ },
131
+ // === Gemini Providers ===
132
+ {
133
+ name: "Google AI Studio",
134
+ providerType: "gemini",
135
+ defaultBaseUrl: "https://generativelanguage.googleapis.com/v1beta",
136
+ defaultModels: {
137
+ gemini: "gemini-2.0-flash-exp",
138
+ },
139
+ websiteUrl: "https://makersuite.google.com",
140
+ icon: "google",
141
+ iconColor: "#4285F4",
142
+ description: "Google AI Studio Gemini API",
143
+ requiresApiKey: true,
144
+ apiKeyName: "Google AI API Key",
145
+ },
146
+ {
147
+ name: "Vertex AI",
148
+ providerType: "gemini",
149
+ defaultBaseUrl: "https://us-central1-aiplatform.googleapis.com/v1",
150
+ defaultModels: {
151
+ gemini: "gemini-2.0-flash-exp",
152
+ },
153
+ websiteUrl: "https://cloud.google.com/vertex-ai",
154
+ icon: "google",
155
+ iconColor: "#4285F4",
156
+ description: "Google Cloud Vertex AI",
157
+ requiresApiKey: true,
158
+ apiKeyName: "Google Cloud Credentials",
159
+ },
160
+ // === OpenCode Providers ===
161
+ {
162
+ name: "GitHub Copilot",
163
+ providerType: "opencode",
164
+ defaultBaseUrl: "https://api.githubcopilot.com",
165
+ defaultModels: {
166
+ codex: "gpt-4",
167
+ },
168
+ websiteUrl: "https://github.com/features/copilot",
169
+ icon: "github",
170
+ iconColor: "#24292e",
171
+ description: "GitHub Copilot API",
172
+ requiresApiKey: true,
173
+ apiKeyName: "GitHub Copilot Token",
174
+ },
175
+ // === OpenClaw Providers ===
176
+ {
177
+ name: "Claude Desktop",
178
+ providerType: "openclaw",
179
+ defaultBaseUrl: "http://localhost:8080",
180
+ defaultModels: {
181
+ claude: "claude-3-5-sonnet-20241022",
182
+ },
183
+ icon: "claude",
184
+ iconColor: "#E99265",
185
+ description: "本地 Claude Desktop 服务",
186
+ requiresApiKey: false,
187
+ },
188
+ // === Community Providers ===
189
+ {
190
+ name: "Together AI",
191
+ providerType: "claude",
192
+ defaultBaseUrl: "https://api.together.xyz/v1",
193
+ defaultModels: {
194
+ claude: "togetherai/claude-3-5-sonnet",
195
+ },
196
+ websiteUrl: "https://together.ai",
197
+ icon: "together",
198
+ iconColor: "#FF6B6B",
199
+ description: "Together AI 多模型服务",
200
+ requiresApiKey: true,
201
+ apiKeyName: "Together AI API Key",
202
+ },
203
+ {
204
+ name: "Perplexity",
205
+ providerType: "claude",
206
+ defaultBaseUrl: "https://api.perplexity.ai",
207
+ defaultModels: {
208
+ claude: "llama-3.1-sonar-large-128k-online",
209
+ },
210
+ websiteUrl: "https://perplexity.ai",
211
+ icon: "perplexity",
212
+ iconColor: "#6B7280",
213
+ description: "Perplexity AI 搜索增强模型",
214
+ requiresApiKey: true,
215
+ apiKeyName: "Perplexity API Key",
216
+ },
217
+ {
218
+ name: "Groq",
219
+ providerType: "claude",
220
+ defaultBaseUrl: "https://api.groq.com/openai/v1",
221
+ defaultModels: {
222
+ claude: "llama-3.1-70b-versatile",
223
+ },
224
+ websiteUrl: "https://groq.com",
225
+ icon: "groq",
226
+ iconColor: "#F472B6",
227
+ description: "Groq 超快推理服务",
228
+ requiresApiKey: true,
229
+ apiKeyName: "Groq API Key",
230
+ },
231
+ {
232
+ name: "Mistral AI",
233
+ providerType: "claude",
234
+ defaultBaseUrl: "https://api.mistral.ai/v1",
235
+ defaultModels: {
236
+ claude: "mistral-large-latest",
237
+ },
238
+ websiteUrl: "https://mistral.ai",
239
+ icon: "mistral",
240
+ iconColor: "#FF6B6B",
241
+ description: "Mistral AI 大模型",
242
+ requiresApiKey: true,
243
+ apiKeyName: "Mistral API Key",
244
+ },
245
+ {
246
+ name: "DeepSeek",
247
+ providerType: "claude",
248
+ defaultBaseUrl: "https://api.deepseek.com/v1",
249
+ defaultModels: {
250
+ claude: "deepseek-chat",
251
+ },
252
+ websiteUrl: "https://deepseek.com",
253
+ icon: "deepseek",
254
+ iconColor: "#6366F1",
255
+ description: "DeepSeek AI 大模型",
256
+ requiresApiKey: true,
257
+ apiKeyName: "DeepSeek API Key",
258
+ },
259
+ {
260
+ name: "Qwen",
261
+ providerType: "claude",
262
+ defaultBaseUrl: "https://dashscope.aliyuncs.com/compatible-mode/v1",
263
+ defaultModels: {
264
+ claude: "qwen-max",
265
+ },
266
+ websiteUrl: "https://qwen.ai",
267
+ icon: "qwen",
268
+ iconColor: "#FF6B35",
269
+ description: "阿里云通义千问",
270
+ requiresApiKey: true,
271
+ apiKeyName: "Qwen API Key",
272
+ },
273
+ {
274
+ name: "ZhiPu AI",
275
+ providerType: "claude",
276
+ defaultBaseUrl: "https://open.bigmodel.cn/api/paas/v4",
277
+ defaultModels: {
278
+ claude: "glm-4",
279
+ },
280
+ websiteUrl: "https://zhipuai.cn",
281
+ icon: "zhipu",
282
+ iconColor: "#E91E63",
283
+ description: "智谱 AI GLM 模型",
284
+ requiresApiKey: true,
285
+ apiKeyName: "ZhiPu API Key",
286
+ },
287
+ {
288
+ name: "Moonshot",
289
+ providerType: "claude",
290
+ defaultBaseUrl: "https://api.moonshot.cn/v1",
291
+ defaultModels: {
292
+ claude: "moonshot-v1-128k",
293
+ },
294
+ websiteUrl: "https://moonshot.ai",
295
+ icon: "moonshot",
296
+ iconColor: "#1A1A2E",
297
+ description: "月之暗面 Kimi",
298
+ requiresApiKey: true,
299
+ apiKeyName: "Moonshot API Key",
300
+ },
301
+ {
302
+ name: "MiniMax",
303
+ providerType: "claude",
304
+ defaultBaseUrl: "https://api.minimax.chat/v1",
305
+ defaultModels: {
306
+ claude: "abab6.5s-chat",
307
+ },
308
+ websiteUrl: "https://minimaxi.com",
309
+ icon: "minimax",
310
+ iconColor: "#00D4AA",
311
+ description: "MiniMax 大模型",
312
+ requiresApiKey: true,
313
+ apiKeyName: "MiniMax API Key",
314
+ },
315
+ {
316
+ name: "Baichuan",
317
+ providerType: "claude",
318
+ defaultBaseUrl: "https://api.baichuan.ai/v1",
319
+ defaultModels: {
320
+ claude: "Baichuan4",
321
+ },
322
+ websiteUrl: "https://baichuan-ai.com",
323
+ icon: "baichuan",
324
+ iconColor: "#FF6B35",
325
+ description: "百川智能大模型",
326
+ requiresApiKey: true,
327
+ apiKeyName: "Baichuan API Key",
328
+ },
329
+ {
330
+ name: "SiliconFlow",
331
+ providerType: "claude",
332
+ defaultBaseUrl: "https://api.siliconflow.cn/v1",
333
+ defaultModels: {
334
+ claude: "deepseek-ai/DeepSeek-V2.5",
335
+ },
336
+ websiteUrl: "https://siliconflow.cn",
337
+ icon: "siliconflow",
338
+ iconColor: "#0066FF",
339
+ description: "SiliconFlow 大模型服务",
340
+ requiresApiKey: true,
341
+ apiKeyName: "SiliconFlow API Key",
342
+ },
343
+ {
344
+ name: "PackyCode",
345
+ providerType: "claude",
346
+ defaultBaseUrl: "https://api.packycode.com/v1",
347
+ defaultModels: {
348
+ claude: "claude-3-5-sonnet-20241022",
349
+ },
350
+ websiteUrl: "https://packycode.com",
351
+ icon: "packycode",
352
+ iconColor: "#6366F1",
353
+ description: "PackyCode AI 服务",
354
+ requiresApiKey: true,
355
+ apiKeyName: "PackyCode API Key",
356
+ },
357
+ {
358
+ name: "AIGoCode",
359
+ providerType: "claude",
360
+ defaultBaseUrl: "https://api.aigocode.com/v1",
361
+ defaultModels: {
362
+ claude: "claude-3-5-sonnet-20241022",
363
+ },
364
+ websiteUrl: "https://aigocode.com",
365
+ icon: "aigocode",
366
+ iconColor: "#10B981",
367
+ description: "AIGoCode AI 服务",
368
+ requiresApiKey: true,
369
+ apiKeyName: "AIGoCode API Key",
370
+ },
371
+ {
372
+ name: "AICodeMirror",
373
+ providerType: "claude",
374
+ defaultBaseUrl: "https://api.aicodemirror.com/v1",
375
+ defaultModels: {
376
+ claude: "claude-3-5-sonnet-20241022",
377
+ },
378
+ websiteUrl: "https://aicodemirror.com",
379
+ icon: "aicodemirror",
380
+ iconColor: "#8B5CF6",
381
+ description: "AICodeMirror AI 服务",
382
+ requiresApiKey: true,
383
+ apiKeyName: "AICodeMirror API Key",
384
+ },
385
+ {
386
+ name: "Cubence",
387
+ providerType: "claude",
388
+ defaultBaseUrl: "https://api.cubence.com/v1",
389
+ defaultModels: {
390
+ claude: "claude-3-5-sonnet-20241022",
391
+ },
392
+ websiteUrl: "https://cubence.com",
393
+ icon: "cubence",
394
+ iconColor: "#EC4899",
395
+ description: "Cubence AI 服务",
396
+ requiresApiKey: true,
397
+ apiKeyName: "Cubence API Key",
398
+ },
399
+ {
400
+ name: "DMXAPI",
401
+ providerType: "claude",
402
+ defaultBaseUrl: "https://api.dmxapi.com/v1",
403
+ defaultModels: {
404
+ claude: "claude-3-5-sonnet-20241022",
405
+ },
406
+ websiteUrl: "https://dmxapi.com",
407
+ icon: "dmxapi",
408
+ iconColor: "#F59E0B",
409
+ description: "DMXAPI AI 服务",
410
+ requiresApiKey: true,
411
+ apiKeyName: "DMXAPI Key",
412
+ },
413
+ {
414
+ name: "Compshare",
415
+ providerType: "claude",
416
+ defaultBaseUrl: "https://api.compshare.com/v1",
417
+ defaultModels: {
418
+ claude: "claude-3-5-sonnet-20241022",
419
+ },
420
+ websiteUrl: "https://compshare.com",
421
+ icon: "compshare",
422
+ iconColor: "#14B8A6",
423
+ description: "Compshare AI 服务",
424
+ requiresApiKey: true,
425
+ apiKeyName: "Compshare API Key",
426
+ },
427
+ {
428
+ name: "RightCode",
429
+ providerType: "claude",
430
+ defaultBaseUrl: "https://api.rightcode.com/v1",
431
+ defaultModels: {
432
+ claude: "claude-3-5-sonnet-20241022",
433
+ },
434
+ websiteUrl: "https://rightcode.com",
435
+ icon: "rightcode",
436
+ iconColor: "#3B82F6",
437
+ description: "RightCode AI 服务",
438
+ requiresApiKey: true,
439
+ apiKeyName: "RightCode API Key",
440
+ },
441
+ {
442
+ name: "AICoding.sh",
443
+ providerType: "claude",
444
+ defaultBaseUrl: "https://api.aicoding.sh/v1",
445
+ defaultModels: {
446
+ claude: "claude-3-5-sonnet-20241022",
447
+ },
448
+ websiteUrl: "https://aicoding.sh",
449
+ icon: "aicoding",
450
+ iconColor: "#6366F1",
451
+ description: "AICoding.sh AI 服务",
452
+ requiresApiKey: true,
453
+ apiKeyName: "AICoding.sh API Key",
454
+ },
455
+ {
456
+ name: "Crazyrouter",
457
+ providerType: "claude",
458
+ defaultBaseUrl: "https://api.crazyrouter.com/v1",
459
+ defaultModels: {
460
+ claude: "claude-3-5-sonnet-20241022",
461
+ },
462
+ websiteUrl: "https://crazyrouter.com",
463
+ icon: "crazyrouter",
464
+ iconColor: "#EF4444",
465
+ description: "Crazyrouter AI 服务",
466
+ requiresApiKey: true,
467
+ apiKeyName: "Crazyrouter API Key",
468
+ },
469
+ {
470
+ name: "SSSAiCode",
471
+ providerType: "claude",
472
+ defaultBaseUrl: "https://api.sssaicode.com/v1",
473
+ defaultModels: {
474
+ claude: "claude-3-5-sonnet-20241022",
475
+ },
476
+ websiteUrl: "https://sssaicode.com",
477
+ icon: "sssaicode",
478
+ iconColor: "#8B5CF6",
479
+ description: "SSSAiCode AI 服务",
480
+ requiresApiKey: true,
481
+ apiKeyName: "SSSAiCode API Key",
482
+ },
483
+ {
484
+ name: "Micu API",
485
+ providerType: "claude",
486
+ defaultBaseUrl: "https://api.micu.ai/v1",
487
+ defaultModels: {
488
+ claude: "claude-3-5-sonnet-20241022",
489
+ },
490
+ websiteUrl: "https://micu.ai",
491
+ icon: "micu",
492
+ iconColor: "#06B6D4",
493
+ description: "Micu API AI 服务",
494
+ requiresApiKey: true,
495
+ apiKeyName: "Micu API Key",
496
+ },
497
+ {
498
+ name: "XCodeAPI",
499
+ providerType: "claude",
500
+ defaultBaseUrl: "https://api.xcodeapi.com/v1",
501
+ defaultModels: {
502
+ claude: "claude-3-5-sonnet-20241022",
503
+ },
504
+ websiteUrl: "https://xcodeapi.com",
505
+ icon: "xcodeapi",
506
+ iconColor: "#6366F1",
507
+ description: "XCodeAPI AI 服务",
508
+ requiresApiKey: true,
509
+ apiKeyName: "XCodeAPI Key",
510
+ },
511
+ {
512
+ name: "CTok.ai",
513
+ providerType: "claude",
514
+ defaultBaseUrl: "https://api.ctok.ai/v1",
515
+ defaultModels: {
516
+ claude: "claude-3-5-sonnet-20241022",
517
+ },
518
+ websiteUrl: "https://ctok.ai",
519
+ icon: "ctok",
520
+ iconColor: "#10B981",
521
+ description: "CTok.ai AI 服务",
522
+ requiresApiKey: true,
523
+ apiKeyName: "CTok.ai API Key",
524
+ },
525
+ ];
526
+ /**
527
+ * 根据预设创建提供商
528
+ */
529
+ function createProviderFromPreset(preset, id, apiKey, customName, customBaseUrl) {
530
+ const now = new Date();
531
+ return {
532
+ id,
533
+ name: customName || preset.name,
534
+ type: preset.providerType,
535
+ baseUrl: customBaseUrl || preset.defaultBaseUrl,
536
+ apiKey: apiKey,
537
+ models: { ...preset.defaultModels },
538
+ websiteUrl: preset.websiteUrl,
539
+ icon: preset.icon,
540
+ iconColor: preset.iconColor,
541
+ createdAt: now,
542
+ updatedAt: now,
543
+ };
544
+ }
545
+ /**
546
+ * 获取预设的显示名称
547
+ */
548
+ function getPresetDisplayName(preset) {
549
+ return preset.name;
550
+ }
551
+ /**
552
+ * 根据类型查找预设
553
+ */
554
+ function findPresetByType(providerType) {
555
+ return exports.providerPresets.find((p) => p.providerType === providerType);
556
+ }
557
+ /**
558
+ * 搜索预设
559
+ */
560
+ function searchPresets(query) {
561
+ const lowerQuery = query.toLowerCase();
562
+ return exports.providerPresets.filter((p) => p.name.toLowerCase().includes(lowerQuery) ||
563
+ p.description?.toLowerCase().includes(lowerQuery) ||
564
+ p.providerType.toLowerCase().includes(lowerQuery));
565
+ }
566
+ //# sourceMappingURL=providerPresets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providerPresets.js","sourceRoot":"","sources":["../../src/config/providerPresets.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  import { Provider, ProviderConfig } from '../types';
2
+ export declare function saveProvider(provider: Provider): void;
2
3
  export declare class ProviderService {
3
4
  static getAllProviders(): Provider[];
4
5
  static getEnabledProvider(): Provider | null;
5
6
  static addProvider(name: string, type: Provider['type'], config: ProviderConfig): Provider;
7
+ static addProviderFromPreset(provider: Provider): void;
6
8
  static updateProvider(id: string, updates: Partial<Provider>): Provider;
7
9
  static deleteProvider(id: string): void;
8
10
  static switchProvider(id: string): Provider;
@@ -1 +1 @@
1
- {"version":3,"file":"providerService.d.ts","sourceRoot":"","sources":["../../src/core/providerService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAGpD,qBAAa,eAAe;IAE1B,MAAM,CAAC,eAAe,IAAI,QAAQ,EAAE;IAepC,MAAM,CAAC,kBAAkB,IAAI,QAAQ,GAAG,IAAI;IAiB5C,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,cAAc,GAAG,QAAQ;IA8B1F,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ;IAiBvE,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKvC,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ;IAuB3C,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAgBnD,OAAO,CAAC,MAAM,CAAC,YAAY;IAO3B,OAAO,CAAC,MAAM,CAAC,mBAAmB;CA4DnC"}
1
+ {"version":3,"file":"providerService.d.ts","sourceRoot":"","sources":["../../src/core/providerService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAgB,MAAM,UAAU,CAAC;AAIlE,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAiBrD;AAED,qBAAa,eAAe;IAE1B,MAAM,CAAC,eAAe,IAAI,QAAQ,EAAE;IAoBpC,MAAM,CAAC,kBAAkB,IAAI,QAAQ,GAAG,IAAI;IAsB5C,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,cAAc,GAAG,QAAQ;IAiC1F,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAoBtD,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ;IAiBvE,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKvC,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ;IAuB3C,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAqBnD,OAAO,CAAC,MAAM,CAAC,YAAY;IAO3B,OAAO,CAAC,MAAM,CAAC,mBAAmB;CAgEnC"}