@hileeon/mcc 0.1.7 → 0.1.9

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 (86) hide show
  1. package/README.md +226 -127
  2. package/dist/accounts/store.d.ts +1 -0
  3. package/dist/accounts/store.d.ts.map +1 -1
  4. package/dist/accounts/store.js.map +1 -1
  5. package/dist/commands/launch.d.ts +9 -0
  6. package/dist/commands/launch.d.ts.map +1 -0
  7. package/dist/commands/launch.js +158 -0
  8. package/dist/commands/launch.js.map +1 -0
  9. package/dist/commands/mcp.d.ts +9 -0
  10. package/dist/commands/mcp.d.ts.map +1 -0
  11. package/dist/commands/mcp.js +112 -0
  12. package/dist/commands/mcp.js.map +1 -0
  13. package/dist/commands/profile.d.ts +8 -0
  14. package/dist/commands/profile.d.ts.map +1 -0
  15. package/dist/commands/profile.js +125 -0
  16. package/dist/commands/profile.js.map +1 -0
  17. package/dist/core/model-router.d.ts.map +1 -1
  18. package/dist/core/model-router.js +5 -2
  19. package/dist/core/model-router.js.map +1 -1
  20. package/dist/{dashboard-server.d.ts → dashboard/server.d.ts} +1 -1
  21. package/dist/dashboard/server.d.ts.map +1 -0
  22. package/dist/{dashboard-server.js → dashboard/server.js} +169 -51
  23. package/dist/dashboard/server.js.map +1 -0
  24. package/dist/mcc.d.ts +4 -2
  25. package/dist/mcc.d.ts.map +1 -1
  26. package/dist/mcc.js +121 -408
  27. package/dist/mcc.js.map +1 -1
  28. package/dist/mcp/mcp-config.d.ts +17 -1
  29. package/dist/mcp/mcp-config.d.ts.map +1 -1
  30. package/dist/mcp/mcp-config.js +50 -17
  31. package/dist/mcp/mcp-config.js.map +1 -1
  32. package/dist/proxy/proxy-daemon.d.ts.map +1 -1
  33. package/dist/proxy/proxy-daemon.js +17 -2
  34. package/dist/proxy/proxy-daemon.js.map +1 -1
  35. package/dist/proxy/proxy-entry.js +5 -3
  36. package/dist/proxy/proxy-entry.js.map +1 -1
  37. package/dist/proxy/proxy-server.d.ts.map +1 -1
  38. package/dist/proxy/proxy-server.js +32 -6
  39. package/dist/proxy/proxy-server.js.map +1 -1
  40. package/dist/shared/config.d.ts +15 -0
  41. package/dist/shared/config.d.ts.map +1 -0
  42. package/dist/shared/config.js +79 -0
  43. package/dist/shared/config.js.map +1 -0
  44. package/dist/shared/logger.d.ts +23 -18
  45. package/dist/shared/logger.d.ts.map +1 -1
  46. package/dist/shared/logger.js +17 -178
  47. package/dist/shared/logger.js.map +1 -1
  48. package/dist/shared/provider-preset-catalog.d.ts +6 -2
  49. package/dist/shared/provider-preset-catalog.d.ts.map +1 -1
  50. package/dist/shared/provider-preset-catalog.js +47 -26
  51. package/dist/shared/provider-preset-catalog.js.map +1 -1
  52. package/dist/ui/assets/index-ClqmrjNk.js +40 -0
  53. package/dist/ui/assets/index-CwMwQ-Z4.css +1 -0
  54. package/dist/ui/index.html +21 -13
  55. package/dist/update.d.ts +31 -0
  56. package/dist/update.d.ts.map +1 -0
  57. package/dist/update.js +196 -0
  58. package/dist/update.js.map +1 -0
  59. package/lib/mcp/mcc-image-analysis-server.cjs +454 -454
  60. package/lib/mcp/mcc-websearch-server.cjs +339 -339
  61. package/lib/mcp-hooks/image-analysis-runtime.cjs +510 -510
  62. package/lib/mcp-hooks/image-analyzer-transformer.cjs +526 -526
  63. package/lib/mcp-hooks/websearch-transformer.cjs +1597 -1421
  64. package/lib/proxy/config/config-loader-facade.js +24 -24
  65. package/lib/proxy/glmt/delta-accumulator.js +362 -362
  66. package/lib/proxy/glmt/glmt-transformer.js +203 -203
  67. package/lib/proxy/glmt/index.js +40 -40
  68. package/lib/proxy/glmt/locale-enforcer.js +68 -68
  69. package/lib/proxy/glmt/pipeline/content-transformer.js +161 -161
  70. package/lib/proxy/glmt/pipeline/index.js +19 -19
  71. package/lib/proxy/glmt/pipeline/request-transformer.js +115 -115
  72. package/lib/proxy/glmt/pipeline/response-builder.js +204 -204
  73. package/lib/proxy/glmt/pipeline/stream-parser.js +233 -233
  74. package/lib/proxy/glmt/pipeline/tool-call-handler.js +77 -77
  75. package/lib/proxy/glmt/pipeline/types.js +5 -5
  76. package/lib/proxy/glmt/reasoning-enforcer.js +150 -150
  77. package/lib/proxy/glmt/sse-parser.js +101 -101
  78. package/lib/proxy/services/logging.js +13 -13
  79. package/lib/proxy/transformers/request-transformer.js +471 -451
  80. package/lib/proxy/transformers/sse-stream-transformer.js +198 -198
  81. package/lib/shared/logger.cjs +156 -138
  82. package/package.json +58 -41
  83. package/dist/dashboard-server.d.ts.map +0 -1
  84. package/dist/dashboard-server.js.map +0 -1
  85. package/dist/ui/assets/index-B16lhKZ6.js +0 -40
  86. package/dist/ui/assets/index-jEfiB6-h.css +0 -1
@@ -1,23 +1,28 @@
1
1
  /**
2
- * MCC Logger (TypeScript)
2
+ * MCC Logger (TypeScript thin shell)
3
3
  *
4
- * lib/shared/logger.cjs TS 版本,编译到 dist/shared/logger.js
5
- * 逻辑完全一致,只是加了类型。
4
+ * Single source of truth lives in lib/shared/logger.cjs it must stay CJS
5
+ * because MCP runtime hooks (also CJS) require it directly from
6
+ * ~/.mcc/shared/logger.cjs after installer copies it over.
7
+ *
8
+ * This file exists only to give src/ TypeScript code typed access to that impl.
9
+ * Runtime resolution: dist/shared/logger.js → ../../lib/shared/logger.cjs
10
+ * (the same relative path works both in dev and after npm publish, since
11
+ * package.json `files` ships both dist/ and lib/).
6
12
  */
7
- declare function getLogDir(): string;
8
- export declare function init(sessionId: string, logDir?: string): string;
9
- export declare function initFromEnv(): void;
10
- declare const log: {
11
- error: (c: string, m: string) => void;
12
- warn: (c: string, m: string) => void;
13
- info: (c: string, m: string) => void;
14
- debug: (c: string, m: string) => void;
15
- init: typeof init;
16
- initFromEnv: typeof initFromEnv;
13
+ export interface Logger {
14
+ error: (component: string, message: string) => void;
15
+ warn: (component: string, message: string) => void;
16
+ info: (component: string, message: string) => void;
17
+ debug: (component: string, message: string) => void;
18
+ init: (sessionId: string, logDir?: string) => string;
19
+ initFromEnv: () => void;
17
20
  getSessionId: () => string;
18
- getLogDir: typeof getLogDir;
19
- };
20
- export { log };
21
- export declare function isDebugEnabled(): boolean;
22
- export declare function makeSessionId(): string;
21
+ getLogDir: () => string;
22
+ }
23
+ export declare const log: Logger;
24
+ export declare const init: (sessionId: string, logDir?: string) => string;
25
+ export declare const initFromEnv: () => void;
26
+ export declare const isDebugEnabled: () => boolean;
27
+ export declare const makeSessionId: () => string;
23
28
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/shared/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAwBH,iBAAS,SAAS,IAAI,MAAM,CAO3B;AA+DD,wBAAgB,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAW/D;AAED,wBAAgB,WAAW,IAAI,IAAI,CAIlC;AAGD,QAAA,MAAM,GAAG;eACM,MAAM,KAAK,MAAM;cACjB,MAAM,KAAK,MAAM;cACjB,MAAM,KAAK,MAAM;eACjB,MAAM,KAAK,MAAM;;;;;CAK/B,CAAC;AACF,OAAO,EAAE,GAAG,EAAE,CAAC;AAEf,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAItC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/shared/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,IAAI,EAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,IAAI,EAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACrD,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,GAAG,EAAE,MAAa,CAAC;AAChC,eAAO,MAAM,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAkB,CAAC;AAC9E,eAAO,MAAM,WAAW,EAAE,MAAM,IAAuB,CAAC;AACxD,eAAO,MAAM,cAAc,EAAE,MAAM,OAA6B,CAAC;AACjE,eAAO,MAAM,aAAa,EAAE,MAAM,MAA2B,CAAC"}
@@ -1,184 +1,23 @@
1
1
  "use strict";
2
2
  /**
3
- * MCC Logger (TypeScript)
3
+ * MCC Logger (TypeScript thin shell)
4
4
  *
5
- * lib/shared/logger.cjs TS 版本,编译到 dist/shared/logger.js
6
- * 逻辑完全一致,只是加了类型。
5
+ * Single source of truth lives in lib/shared/logger.cjs it must stay CJS
6
+ * because MCP runtime hooks (also CJS) require it directly from
7
+ * ~/.mcc/shared/logger.cjs after installer copies it over.
8
+ *
9
+ * This file exists only to give src/ TypeScript code typed access to that impl.
10
+ * Runtime resolution: dist/shared/logger.js → ../../lib/shared/logger.cjs
11
+ * (the same relative path works both in dev and after npm publish, since
12
+ * package.json `files` ships both dist/ and lib/).
7
13
  */
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
- })();
41
14
  Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.log = void 0;
43
- exports.init = init;
44
- exports.initFromEnv = initFromEnv;
45
- exports.isDebugEnabled = isDebugEnabled;
46
- exports.makeSessionId = makeSessionId;
47
- const fs = __importStar(require("fs"));
48
- const path = __importStar(require("path"));
49
- const os = __importStar(require("os"));
50
- const LEVELS = { error: 0, warn: 1, info: 2, debug: 3 };
51
- function env(key, fallback) {
52
- return process.env[key] ?? fallback;
53
- }
54
- function levelValue(level) {
55
- return LEVELS[level?.toLowerCase()] ?? LEVELS.info;
56
- }
57
- let _sessionId = '';
58
- let _logDir = '';
59
- let _currentFile = '';
60
- let _currentSize = 0;
61
- let _maxSize = 5 * 1024 * 1024;
62
- let _maxFiles = 3;
63
- let _minLevel = LEVELS.info;
64
- function getLogDir() {
65
- if (_logDir)
66
- return _logDir;
67
- const logDirEnv = env('MCC_LOG_DIR', '');
68
- if (logDirEnv)
69
- return logDirEnv;
70
- const mccHome = env('MCC_HOME', path.join(os.homedir(), '.mcc'));
71
- const profile = env('MCC_CURRENT_PROFILE', 'default');
72
- return path.join(mccHome, 'logs', profile, _sessionId || 'nosession');
73
- }
74
- function getLogPath() {
75
- return path.join(getLogDir(), 'mcc.log');
76
- }
77
- function rotate() {
78
- const logPath = getLogPath();
79
- if (!fs.existsSync(logPath))
80
- return;
81
- try {
82
- fs.unlinkSync(`${logPath}.${_maxFiles}`);
83
- }
84
- catch { }
85
- for (let i = _maxFiles - 1; i >= 1; i--) {
86
- const from = `${logPath}.${i}`;
87
- const to = `${logPath}.${i + 1}`;
88
- try {
89
- if (fs.existsSync(from))
90
- fs.renameSync(from, to);
91
- }
92
- catch { }
93
- }
94
- try {
95
- fs.renameSync(logPath, `${logPath}.1`);
96
- }
97
- catch { }
98
- _currentSize = 0;
99
- _currentFile = '';
100
- }
101
- function ensureDir() {
102
- const dir = getLogDir();
103
- if (!fs.existsSync(dir))
104
- fs.mkdirSync(dir, { recursive: true, mode: 0o755 });
105
- return dir;
106
- }
107
- function writeFile(line) {
108
- if (!_sessionId)
109
- return;
110
- ensureDir();
111
- const logPath = getLogPath();
112
- const lineBytes = Buffer.byteLength(line, 'utf8') + 1;
113
- if (_currentFile !== logPath || _currentSize + lineBytes > _maxSize) {
114
- rotate();
115
- }
116
- try {
117
- fs.appendFileSync(logPath, line + '\n', { mode: 0o644 });
118
- _currentFile = logPath;
119
- _currentSize += lineBytes;
120
- }
121
- catch (err) {
122
- process.stderr.write(`[logger] write failed: ${err.message}\n`);
123
- }
124
- }
125
- function timestamp() {
126
- const now = new Date();
127
- const p = (n, l = 2) => String(n).padStart(l, '0');
128
- return `${now.getFullYear()}-${p(now.getMonth() + 1)}-${p(now.getDate())} ` +
129
- `${p(now.getHours())}:${p(now.getMinutes())}:${p(now.getSeconds())}.${p(now.getMilliseconds(), 3)}`;
130
- }
131
- function format(level, message, component) {
132
- const sid = _sessionId ? `[${_sessionId}]` : '';
133
- const comp = component ? `[${component}]` : '';
134
- return `${timestamp()} ${(level || 'info').toUpperCase().padEnd(5)} ${sid}${comp} ${message}`;
135
- }
136
- function write(level, component, message) {
137
- if (levelValue(level) > _minLevel)
138
- return;
139
- const line = format(level, message, component);
140
- process.stderr.write(line + '\n');
141
- writeFile(line);
142
- }
143
- function init(sessionId, logDir) {
144
- _sessionId = sessionId;
145
- _logDir = logDir || '';
146
- _currentFile = '';
147
- _currentSize = 0;
148
- _minLevel = levelValue(env('MCC_LOG_LEVEL', 'info'));
149
- _maxSize = parseInt(env('MCC_LOG_MAX_SIZE', ''), 10) || 5 * 1024 * 1024;
150
- _maxFiles = parseInt(env('MCC_LOG_MAX_FILES', ''), 10) || 3;
151
- const dir = ensureDir();
152
- try {
153
- fs.writeFileSync(path.join(dir, '.session'), `${sessionId}\n${Date.now()}\n`, { mode: 0o644 });
154
- }
155
- catch { }
156
- return dir;
157
- }
158
- function initFromEnv() {
159
- const sid = env('MCC_LOG_SESSION_ID', '');
160
- const dir = env('MCC_LOG_DIR', '');
161
- if (sid)
162
- init(sid, dir);
163
- }
164
- // --- 统一 API:log.info(component, message) ---
165
- const log = {
166
- error: (c, m) => write('error', m, c),
167
- warn: (c, m) => write('warn', m, c),
168
- info: (c, m) => write('info', m, c),
169
- debug: (c, m) => write('debug', m, c),
170
- init,
171
- initFromEnv,
172
- getSessionId: () => _sessionId,
173
- getLogDir,
174
- };
175
- exports.log = log;
176
- function isDebugEnabled() {
177
- return _minLevel >= LEVELS.debug;
178
- }
179
- function makeSessionId() {
180
- const now = new Date();
181
- const p = (n, l = 2) => String(n).padStart(l, '0');
182
- return `${now.getFullYear()}-${p(now.getMonth() + 1)}-${p(now.getDate())}_${p(now.getHours())}-${p(now.getMinutes())}-${p(now.getSeconds())}`;
183
- }
15
+ exports.makeSessionId = exports.isDebugEnabled = exports.initFromEnv = exports.init = exports.log = void 0;
16
+ // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
17
+ const impl = require('../../lib/shared/logger.cjs');
18
+ exports.log = impl;
19
+ exports.init = impl.init;
20
+ exports.initFromEnv = impl.initFromEnv;
21
+ exports.isDebugEnabled = impl.isDebugEnabled;
22
+ exports.makeSessionId = impl.makeSessionId;
184
23
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/shared/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/shared/logger.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEH,qGAAqG;AACrG,MAAM,IAAI,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;AAavC,QAAA,GAAG,GAAW,IAAI,CAAC;AACnB,QAAA,IAAI,GAAmD,IAAI,CAAC,IAAI,CAAC;AACjE,QAAA,WAAW,GAAe,IAAI,CAAC,WAAW,CAAC;AAC3C,QAAA,cAAc,GAAkB,IAAI,CAAC,cAAc,CAAC;AACpD,QAAA,aAAa,GAAiB,IAAI,CAAC,aAAa,CAAC"}
@@ -6,7 +6,7 @@
6
6
  */
7
7
  export type PresetCategory = 'recommended' | 'alternative';
8
8
  export type ProviderPresetTarget = 'claude' | 'droid';
9
- export declare const PROVIDER_PRESET_IDS: readonly ["openrouter", "alibaba-coding-plan", "huggingface", "ollama", "llamacpp", "anthropic", "glm", "km", "foundry", "mm", "deepseek", "qwen", "ollama-cloud", "novita", "bigmodel"];
9
+ export declare const PROVIDER_PRESET_IDS: readonly ["openrouter", "alibaba-coding-plan", "huggingface", "ollama", "llamacpp", "anthropic", "glm", "km", "foundry", "mm", "deepseek", "qwen", "xiaomi-mimo", "ollama-cloud", "novita", "bigmodel"];
10
10
  export type ProviderPresetId = (typeof PROVIDER_PRESET_IDS)[number];
11
11
  export interface ProviderPresetDefinition {
12
12
  id: ProviderPresetId;
@@ -26,10 +26,14 @@ export interface ProviderPresetDefinition {
26
26
  alwaysThinkingEnabled?: boolean;
27
27
  /** Override default /v1/chat/completions proxy path (e.g. '/chat/completions' for BigModel) */
28
28
  proxyChatCompletionsPath?: string;
29
+ /** Tiered model defaults — let Claude Code's /model picker route Opus/Sonnet/Haiku
30
+ * to provider-specific models. Empty fields fall back to `defaultModel`. */
31
+ opusModel?: string;
32
+ sonnetModel?: string;
33
+ haikuModel?: string;
29
34
  /** UI metadata */
30
35
  badge?: string;
31
36
  featured?: boolean;
32
- icon?: string;
33
37
  }
34
38
  export declare const OPENROUTER_BASE_URL = "https://openrouter.ai/api/v1";
35
39
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"provider-preset-catalog.d.ts","sourceRoot":"","sources":["../../src/shared/provider-preset-catalog.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,aAAa,CAAC;AAC3D,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtD,eAAO,MAAM,mBAAmB,0LAgBtB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,gBAAgB,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,cAAc,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,mCAAmC;IACnC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,+FAA+F;IAC/F,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,mBAAmB,iCAAiC,CAAC;AAElE;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAM7E,CAAC;AAwRH,eAAO,MAAM,2BAA2B,EAAE,SAAS,wBAAwB,EAE1E,CAAC;AAEF,wBAAgB,+BAA+B,IAAI,wBAAwB,EAAE,CAE5E;AAED,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAG5D"}
1
+ {"version":3,"file":"provider-preset-catalog.d.ts","sourceRoot":"","sources":["../../src/shared/provider-preset-catalog.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,aAAa,CAAC;AAC3D,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtD,eAAO,MAAM,mBAAmB,yMAiBtB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,gBAAgB,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,cAAc,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,mCAAmC;IACnC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,+FAA+F;IAC/F,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;iFAC6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,mBAAmB,iCAAiC,CAAC;AAElE;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAQ7E,CAAC;AA0SH,eAAO,MAAM,2BAA2B,EAAE,SAAS,wBAAwB,EAE1E,CAAC;AAEF,wBAAgB,+BAA+B,IAAI,wBAAwB,EAAE,CAE5E;AAED,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAG5D"}
@@ -22,6 +22,7 @@ exports.PROVIDER_PRESET_IDS = [
22
22
  'mm',
23
23
  'deepseek',
24
24
  'qwen',
25
+ 'xiaomi-mimo',
25
26
  'ollama-cloud',
26
27
  'novita',
27
28
  'bigmodel',
@@ -37,6 +38,8 @@ exports.PROVIDER_PRESET_ALIASES = Object.freeze({
37
38
  alibaba: 'alibaba-coding-plan',
38
39
  acp: 'alibaba-coding-plan',
39
40
  hf: 'huggingface',
41
+ xiaomi: 'xiaomi-mimo',
42
+ mimo: 'xiaomi-mimo',
40
43
  });
41
44
  const RAW_PROVIDER_PRESET_DEFINITIONS = [
42
45
  {
@@ -52,7 +55,6 @@ const RAW_PROVIDER_PRESET_DEFINITIONS = [
52
55
  requiresApiKey: true,
53
56
  badge: '349+ models',
54
57
  featured: true,
55
- icon: '/icons/openrouter.svg',
56
58
  },
57
59
  {
58
60
  id: 'alibaba-coding-plan',
@@ -67,7 +69,6 @@ const RAW_PROVIDER_PRESET_DEFINITIONS = [
67
69
  requiresApiKey: true,
68
70
  badge: 'Coding Plan',
69
71
  featured: true,
70
- icon: '/assets/providers/alibabacloud-color.svg',
71
72
  },
72
73
  {
73
74
  id: 'ollama',
@@ -82,7 +83,6 @@ const RAW_PROVIDER_PRESET_DEFINITIONS = [
82
83
  requiresApiKey: false,
83
84
  badge: 'Local',
84
85
  featured: true,
85
- icon: '/icons/ollama.svg',
86
86
  },
87
87
  {
88
88
  id: 'llamacpp',
@@ -97,7 +97,6 @@ const RAW_PROVIDER_PRESET_DEFINITIONS = [
97
97
  requiresApiKey: false,
98
98
  badge: 'Local',
99
99
  featured: true,
100
- icon: '/assets/providers/llama-cpp.svg',
101
100
  },
102
101
  {
103
102
  id: 'anthropic',
@@ -112,7 +111,6 @@ const RAW_PROVIDER_PRESET_DEFINITIONS = [
112
111
  requiresApiKey: true,
113
112
  badge: 'Direct',
114
113
  featured: true,
115
- icon: '/assets/providers/claude.svg',
116
114
  },
117
115
  {
118
116
  id: 'huggingface',
@@ -135,12 +133,14 @@ const RAW_PROVIDER_PRESET_DEFINITIONS = [
135
133
  baseUrl: 'https://api.z.ai/api/anthropic',
136
134
  defaultProfileName: 'glm',
137
135
  defaultModel: 'glm-5',
136
+ opusModel: 'glm-5',
137
+ sonnetModel: 'glm-5',
138
+ haikuModel: 'glm-5-air',
138
139
  apiKeyPlaceholder: 'ghp_...',
139
140
  apiKeyHint: 'Get your API key from Z.AI',
140
141
  category: 'alternative',
141
142
  requiresApiKey: true,
142
143
  badge: 'Z.AI',
143
- icon: '/icons/zai.svg',
144
144
  },
145
145
  {
146
146
  id: 'km',
@@ -155,7 +155,6 @@ const RAW_PROVIDER_PRESET_DEFINITIONS = [
155
155
  requiresApiKey: true,
156
156
  alwaysThinkingEnabled: true,
157
157
  badge: 'Reasoning',
158
- icon: '/icons/kimi.svg',
159
158
  },
160
159
  {
161
160
  id: 'foundry',
@@ -169,49 +168,71 @@ const RAW_PROVIDER_PRESET_DEFINITIONS = [
169
168
  category: 'alternative',
170
169
  requiresApiKey: true,
171
170
  badge: 'Azure',
172
- icon: '/icons/azure.svg',
173
171
  },
174
172
  {
175
173
  id: 'mm',
176
- name: 'Minimax',
177
- description: 'M2.1/M2.1-lightning/M2 - multilang coding (1M context)',
178
- baseUrl: 'https://api.minimax.io/anthropic',
174
+ name: 'MiniMax',
175
+ description: 'M2.1/M2.1-lightning/M2 multilingual coding (1M context)',
176
+ baseUrl: 'https://api.minimaxi.com/anthropic',
179
177
  defaultProfileName: 'mm',
180
178
  defaultModel: 'MiniMax-M2.1',
179
+ opusModel: 'MiniMax-M2.1',
180
+ sonnetModel: 'MiniMax-M2.1',
181
+ haikuModel: 'MiniMax-M2.1-lightning',
181
182
  apiKeyPlaceholder: 'YOUR_MINIMAX_API_KEY_HERE',
182
- apiKeyHint: 'Get your API key at platform.minimax.io',
183
+ apiKeyHint: 'Get your API key at platform.minimaxi.com (国内域名)',
183
184
  category: 'alternative',
184
185
  requiresApiKey: true,
185
186
  badge: '1M context',
186
- icon: '/icons/minimax.svg',
187
187
  },
188
188
  {
189
189
  id: 'deepseek',
190
190
  name: 'DeepSeek',
191
- description: 'V3.2 and R1 reasoning model (128K context)',
191
+ description: 'V4-Pro / V4-Flash multimodal (text + vision), 1M context',
192
192
  baseUrl: 'https://api.deepseek.com/anthropic',
193
193
  defaultProfileName: 'deepseek',
194
- defaultModel: 'deepseek-chat',
194
+ defaultModel: 'deepseek-v4-pro',
195
+ opusModel: 'deepseek-v4-pro',
196
+ sonnetModel: 'deepseek-v4-pro',
197
+ haikuModel: 'deepseek-v4-flash',
195
198
  apiKeyPlaceholder: 'sk-...',
196
199
  apiKeyHint: 'Get your API key at platform.deepseek.com',
197
200
  category: 'alternative',
198
201
  requiresApiKey: true,
199
- badge: 'Reasoning',
200
- icon: '/icons/deepseek.svg',
202
+ badge: 'Vision',
201
203
  },
202
204
  {
203
205
  id: 'qwen',
204
- name: 'Qwen',
205
- description: 'Alibaba Cloud - Qwen3 models (256K-1M context, thinking support)',
206
- baseUrl: 'https://dashscope-intl.aliyuncs.com/apps/anthropic',
207
- defaultProfileName: 'qwen-api',
206
+ name: 'Qwen (DashScope 通义)',
207
+ description: '阿里云 DashScope OpenAI 兼容,国内域名,支持 qwen3 全系',
208
+ baseUrl: 'https://dashscope.aliyuncs.com/compatible-mode/v1',
209
+ defaultProfileName: 'qwen',
208
210
  defaultModel: 'qwen3-coder-plus',
211
+ opusModel: 'qwen3-max',
212
+ sonnetModel: 'qwen3-coder-plus',
213
+ haikuModel: 'qwen3-turbo',
209
214
  apiKeyPlaceholder: 'sk-...',
210
- apiKeyHint: 'Get your API key from Alibaba Cloud Model Studio',
215
+ apiKeyHint: '阿里云 Model Studio 控制台获取 DashScope API Key',
211
216
  category: 'alternative',
212
217
  requiresApiKey: true,
218
+ proxyChatCompletionsPath: '/chat/completions',
213
219
  badge: 'Alibaba',
214
- icon: '/assets/providers/qwen-color.svg',
220
+ },
221
+ {
222
+ id: 'xiaomi-mimo',
223
+ name: '小米 MiMo',
224
+ description: 'MiMo V2 系列(pro / flash / omni 多模态),Anthropic 兼容',
225
+ baseUrl: 'https://api.xiaomimimo.com/anthropic',
226
+ defaultProfileName: 'xiaomi',
227
+ defaultModel: 'mimo-v2-pro',
228
+ opusModel: 'mimo-v2-pro',
229
+ sonnetModel: 'mimo-v2-pro',
230
+ haikuModel: 'mimo-v2-flash',
231
+ apiKeyPlaceholder: 'YOUR_XIAOMI_MIMO_API_KEY',
232
+ apiKeyHint: 'platform.xiaomimimo.com 控制台获取',
233
+ category: 'alternative',
234
+ requiresApiKey: true,
235
+ badge: 'MiMo V2',
215
236
  },
216
237
  {
217
238
  id: 'ollama-cloud',
@@ -225,7 +246,6 @@ const RAW_PROVIDER_PRESET_DEFINITIONS = [
225
246
  category: 'alternative',
226
247
  requiresApiKey: true,
227
248
  badge: 'Cloud',
228
- icon: '/icons/ollama.svg',
229
249
  },
230
250
  {
231
251
  id: 'novita',
@@ -239,7 +259,6 @@ const RAW_PROVIDER_PRESET_DEFINITIONS = [
239
259
  category: 'alternative',
240
260
  requiresApiKey: true,
241
261
  badge: 'Anthropic-compatible',
242
- icon: '/icons/novita.svg',
243
262
  },
244
263
  {
245
264
  id: 'bigmodel',
@@ -248,13 +267,15 @@ const RAW_PROVIDER_PRESET_DEFINITIONS = [
248
267
  baseUrl: 'https://open.bigmodel.cn/api/paas/v4',
249
268
  defaultProfileName: 'bigmodel',
250
269
  defaultModel: 'glm-5',
270
+ opusModel: 'glm-5',
271
+ sonnetModel: 'glm-5',
272
+ haikuModel: 'glm-5-air',
251
273
  apiKeyPlaceholder: 'YOUR_BIGMODEL_API_KEY',
252
274
  apiKeyHint: 'Get your API key at bigmodel.cn',
253
275
  category: 'alternative',
254
276
  requiresApiKey: true,
255
277
  proxyChatCompletionsPath: '/chat/completions',
256
278
  badge: '智谱AI',
257
- icon: '/icons/bigmodel.svg',
258
279
  },
259
280
  ];
260
281
  function clonePresetDefinition(preset) {
@@ -1 +1 @@
1
- {"version":3,"file":"provider-preset-catalog.js","sourceRoot":"","sources":["../../src/shared/provider-preset-catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-preset-catalog.js","sourceRoot":"","sources":["../../src/shared/provider-preset-catalog.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAkXH,0EAEC;AAED,8DAGC;AApXY,QAAA,mBAAmB,GAAG;IACjC,YAAY;IACZ,qBAAqB;IACrB,aAAa;IACb,QAAQ;IACR,UAAU;IACV,WAAW;IACX,KAAK;IACL,IAAI;IACJ,SAAS;IACT,IAAI;IACJ,UAAU;IACV,MAAM;IACN,aAAa;IACb,cAAc;IACd,QAAQ;IACR,UAAU;CACF,CAAC;AAgCE,QAAA,mBAAmB,GAAG,8BAA8B,CAAC;AAElE;;;GAGG;AACU,QAAA,uBAAuB,GAA+C,MAAM,CAAC,MAAM,CAAC;IAC/F,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,qBAAqB;IAC9B,GAAG,EAAE,qBAAqB;IAC1B,EAAE,EAAE,aAAa;IACjB,MAAM,EAAE,aAAa;IACrB,IAAI,EAAE,aAAa;CACpB,CAAC,CAAC;AAEH,MAAM,+BAA+B,GAAwC;IAC3E;QACE,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,kDAAkD;QAC/D,OAAO,EAAE,2BAAmB;QAC5B,kBAAkB,EAAE,YAAY;QAChC,YAAY,EAAE,2BAA2B;QACzC,iBAAiB,EAAE,WAAW;QAC9B,UAAU,EAAE,wCAAwC;QACpD,QAAQ,EAAE,aAAa;QACvB,cAAc,EAAE,IAAI;QACpB,KAAK,EAAE,aAAa;QACpB,QAAQ,EAAE,IAAI;KACf;IACD;QACE,EAAE,EAAE,qBAAqB;QACzB,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,6DAA6D;QAC1E,OAAO,EAAE,2DAA2D;QACpE,kBAAkB,EAAE,MAAM;QAC1B,YAAY,EAAE,kBAAkB;QAChC,iBAAiB,EAAE,WAAW;QAC9B,UAAU,EAAE,0DAA0D;QACtE,QAAQ,EAAE,aAAa;QACvB,cAAc,EAAE,IAAI;QACpB,KAAK,EAAE,aAAa;QACpB,QAAQ,EAAE,IAAI;KACf;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,oDAAoD;QACjE,OAAO,EAAE,wBAAwB;QACjC,kBAAkB,EAAE,QAAQ;QAC5B,YAAY,EAAE,aAAa;QAC3B,iBAAiB,EAAE,QAAQ;QAC3B,UAAU,EAAE,8DAA8D;QAC1E,QAAQ,EAAE,aAAa;QACvB,cAAc,EAAE,KAAK;QACrB,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,IAAI;KACf;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,8CAA8C;QAC3D,OAAO,EAAE,uBAAuB;QAChC,kBAAkB,EAAE,UAAU;QAC9B,YAAY,EAAE,WAAW;QACzB,iBAAiB,EAAE,UAAU;QAC7B,UAAU,EAAE,yEAAyE;QACrF,QAAQ,EAAE,aAAa;QACvB,cAAc,EAAE,KAAK;QACrB,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,IAAI;KACf;IACD;QACE,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,6CAA6C;QAC1D,OAAO,EAAE,EAAE;QACX,kBAAkB,EAAE,WAAW;QAC/B,YAAY,EAAE,4BAA4B;QAC1C,iBAAiB,EAAE,kBAAkB;QACrC,UAAU,EAAE,gDAAgD;QAC5D,QAAQ,EAAE,aAAa;QACvB,cAAc,EAAE,IAAI;QACpB,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,IAAI;KACf;IACD;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,mEAAmE;QAChF,OAAO,EAAE,kCAAkC;QAC3C,kBAAkB,EAAE,IAAI;QACxB,YAAY,EAAE,6BAA6B;QAC3C,iBAAiB,EAAE,QAAQ;QAC3B,UAAU,EAAE,qDAAqD;QACjE,QAAQ,EAAE,aAAa;QACvB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,OAAO;QACtB,KAAK,EAAE,QAAQ;KAChB;IACD;QACE,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,8CAA8C;QAC3D,OAAO,EAAE,gCAAgC;QACzC,kBAAkB,EAAE,KAAK;QACzB,YAAY,EAAE,OAAO;QACrB,SAAS,EAAE,OAAO;QAClB,WAAW,EAAE,OAAO;QACpB,UAAU,EAAE,WAAW;QACvB,iBAAiB,EAAE,SAAS;QAC5B,UAAU,EAAE,4BAA4B;QACxC,QAAQ,EAAE,aAAa;QACvB,cAAc,EAAE,IAAI;QACpB,KAAK,EAAE,MAAM;KACd;IACD;QACE,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,oCAAoC;QACjD,OAAO,EAAE,8BAA8B;QACvC,kBAAkB,EAAE,IAAI;QACxB,YAAY,EAAE,wBAAwB;QACtC,iBAAiB,EAAE,QAAQ;QAC3B,UAAU,EAAE,mCAAmC;QAC/C,QAAQ,EAAE,aAAa;QACvB,cAAc,EAAE,IAAI;QACpB,qBAAqB,EAAE,IAAI;QAC3B,KAAK,EAAE,WAAW;KACnB;IACD;QACE,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,uCAAuC;QACpD,OAAO,EAAE,6DAA6D;QACtE,kBAAkB,EAAE,SAAS;QAC7B,YAAY,EAAE,mBAAmB;QACjC,iBAAiB,EAAE,oBAAoB;QACvC,UAAU,EAAE,4DAA4D;QACxE,QAAQ,EAAE,aAAa;QACvB,cAAc,EAAE,IAAI;QACpB,KAAK,EAAE,OAAO;KACf;IACD;QACE,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,2DAA2D;QACxE,OAAO,EAAE,oCAAoC;QAC7C,kBAAkB,EAAE,IAAI;QACxB,YAAY,EAAE,cAAc;QAC5B,SAAS,EAAE,cAAc;QACzB,WAAW,EAAE,cAAc;QAC3B,UAAU,EAAE,wBAAwB;QACpC,iBAAiB,EAAE,2BAA2B;QAC9C,UAAU,EAAE,kDAAkD;QAC9D,QAAQ,EAAE,aAAa;QACvB,cAAc,EAAE,IAAI;QACpB,KAAK,EAAE,YAAY;KACpB;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,4DAA4D;QACzE,OAAO,EAAE,oCAAoC;QAC7C,kBAAkB,EAAE,UAAU;QAC9B,YAAY,EAAE,iBAAiB;QAC/B,SAAS,EAAE,iBAAiB;QAC5B,WAAW,EAAE,iBAAiB;QAC9B,UAAU,EAAE,mBAAmB;QAC/B,iBAAiB,EAAE,QAAQ;QAC3B,UAAU,EAAE,2CAA2C;QACvD,QAAQ,EAAE,aAAa;QACvB,cAAc,EAAE,IAAI;QACpB,KAAK,EAAE,QAAQ;KAChB;IACD;QACE,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,0CAA0C;QACvD,OAAO,EAAE,mDAAmD;QAC5D,kBAAkB,EAAE,MAAM;QAC1B,YAAY,EAAE,kBAAkB;QAChC,SAAS,EAAE,WAAW;QACtB,WAAW,EAAE,kBAAkB;QAC/B,UAAU,EAAE,aAAa;QACzB,iBAAiB,EAAE,QAAQ;QAC3B,UAAU,EAAE,0CAA0C;QACtD,QAAQ,EAAE,aAAa;QACvB,cAAc,EAAE,IAAI;QACpB,wBAAwB,EAAE,mBAAmB;QAC7C,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,iDAAiD;QAC9D,OAAO,EAAE,sCAAsC;QAC/C,kBAAkB,EAAE,QAAQ;QAC5B,YAAY,EAAE,aAAa;QAC3B,SAAS,EAAE,aAAa;QACxB,WAAW,EAAE,aAAa;QAC1B,UAAU,EAAE,eAAe;QAC3B,iBAAiB,EAAE,0BAA0B;QAC7C,UAAU,EAAE,+BAA+B;QAC3C,QAAQ,EAAE,aAAa;QACvB,cAAc,EAAE,IAAI;QACpB,KAAK,EAAE,SAAS;KACjB;IACD;QACE,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,sEAAsE;QACnF,OAAO,EAAE,oBAAoB;QAC7B,kBAAkB,EAAE,cAAc;QAClC,YAAY,EAAE,aAAa;QAC3B,iBAAiB,EAAE,2BAA2B;QAC9C,UAAU,EAAE,gCAAgC;QAC5C,QAAQ,EAAE,aAAa;QACvB,cAAc,EAAE,IAAI;QACpB,KAAK,EAAE,OAAO;KACf;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,2DAA2D;QACxE,OAAO,EAAE,iCAAiC;QAC1C,kBAAkB,EAAE,QAAQ;QAC5B,YAAY,EAAE,wBAAwB;QACtC,iBAAiB,EAAE,qBAAqB;QACxC,UAAU,EAAE,+BAA+B;QAC3C,QAAQ,EAAE,aAAa;QACvB,cAAc,EAAE,IAAI;QACpB,KAAK,EAAE,sBAAsB;KAC9B;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,kCAAkC;QAC/C,OAAO,EAAE,sCAAsC;QAC/C,kBAAkB,EAAE,UAAU;QAC9B,YAAY,EAAE,OAAO;QACrB,SAAS,EAAE,OAAO;QAClB,WAAW,EAAE,OAAO;QACpB,UAAU,EAAE,WAAW;QACvB,iBAAiB,EAAE,uBAAuB;QAC1C,UAAU,EAAE,iCAAiC;QAC7C,QAAQ,EAAE,aAAa;QACvB,cAAc,EAAE,IAAI;QACpB,wBAAwB,EAAE,mBAAmB;QAC7C,KAAK,EAAE,MAAM;KACd;CACF,CAAC;AAEF,SAAS,qBAAqB,CAAC,MAAgC;IAC7D,OAAO;QACL,GAAG,MAAM;QACT,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;KAC/D,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAgC;IAC9D,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,oCAAoC,CAC3C,WAAgD,EAChD,OAAmD;IAEnD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,YAAY,GAAG,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACxD,IAAI,UAAU,CAAC,EAAE,KAAK,YAAY,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,kCAAkC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,kCAAkC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC;QACtE,CAAC;QACD,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC7C,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACtD,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACnD,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,KAAK,KAAK,eAAe,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,GAAG,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,kBAAkB,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,gDAAgD,KAAK,GAAG,CAAC,CAAC;QAC5E,CAAC;QACD,kBAAkB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAExC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,iBAAiB,KAAK,+BAA+B,MAAM,GAAG,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CACb,iBAAiB,KAAK,wCAAwC,eAAe,GAAG,CACjF,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,oCAAoC,CAAC,+BAA+B,EAAE,+BAAuB,CAAC,CAAC;AAElF,QAAA,2BAA2B,GAAwC,MAAM,CAAC,MAAM,CAC3F,+BAA+B,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAC5D,CAAC;AAEF,SAAgB,+BAA+B;IAC7C,OAAO,mCAA2B,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAChE,CAAC;AAED,SAAgB,yBAAyB,CAAC,EAAU;IAClD,MAAM,UAAU,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,OAAO,+BAAuB,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC;AAC3D,CAAC"}