imcodes 2026.4.1822-dev.1803 → 2026.4.1829-dev.1810

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.
@@ -21,12 +21,70 @@ const MODEL_ALIASES = [
21
21
  'ANTHROPIC_DEFAULT_OPUS_MODEL',
22
22
  'ANTHROPIC_DEFAULT_HAIKU_MODEL',
23
23
  ];
24
+ function normalizePresetModel(raw) {
25
+ if (typeof raw === 'string') {
26
+ const id = raw.trim();
27
+ return id ? { id } : null;
28
+ }
29
+ if (!raw || typeof raw !== 'object')
30
+ return null;
31
+ const record = raw;
32
+ const id = typeof record.id === 'string' ? record.id.trim() : '';
33
+ if (!id)
34
+ return null;
35
+ const name = typeof record.name === 'string' ? record.name.trim() : '';
36
+ return name ? { id, name } : { id };
37
+ }
38
+ function normalizePreset(raw) {
39
+ if (!raw || typeof raw !== 'object')
40
+ return null;
41
+ const record = raw;
42
+ const name = typeof record.name === 'string' ? record.name.trim() : '';
43
+ if (!name)
44
+ return null;
45
+ const envRecord = record.env && typeof record.env === 'object'
46
+ ? Object.entries(record.env).reduce((acc, [key, value]) => {
47
+ if (typeof value === 'string')
48
+ acc[key] = value;
49
+ return acc;
50
+ }, {})
51
+ : {};
52
+ const availableModels = Array.isArray(record.availableModels)
53
+ ? record.availableModels
54
+ .map((item) => normalizePresetModel(item))
55
+ .filter((item) => item !== null)
56
+ : undefined;
57
+ const defaultModel = typeof record.defaultModel === 'string'
58
+ ? record.defaultModel.trim()
59
+ : '';
60
+ return {
61
+ name,
62
+ env: envRecord,
63
+ ...(typeof record.contextWindow === 'number' ? { contextWindow: record.contextWindow } : {}),
64
+ ...(typeof record.initMessage === 'string' ? { initMessage: record.initMessage } : {}),
65
+ ...(record.transportMode === 'qwen-compatible-api' || record.transportMode === 'claude-cli-preset'
66
+ ? { transportMode: record.transportMode }
67
+ : {}),
68
+ ...(record.authType === 'anthropic' ? { authType: record.authType } : {}),
69
+ ...(availableModels?.length ? { availableModels } : {}),
70
+ ...(defaultModel ? { defaultModel } : {}),
71
+ ...(typeof record.lastDiscoveredAt === 'number' ? { lastDiscoveredAt: record.lastDiscoveredAt } : {}),
72
+ ...(typeof record.modelDiscoveryError === 'string' ? { modelDiscoveryError: record.modelDiscoveryError } : {}),
73
+ };
74
+ }
75
+ function normalizePresets(raw) {
76
+ if (!Array.isArray(raw))
77
+ return [];
78
+ return raw
79
+ .map((item) => normalizePreset(item))
80
+ .filter((item) => item !== null);
81
+ }
24
82
  export async function loadPresets() {
25
83
  if (cachedPresets)
26
84
  return cachedPresets;
27
85
  try {
28
86
  const raw = await fs.readFile(PRESETS_PATH, 'utf8');
29
- cachedPresets = JSON.parse(raw);
87
+ cachedPresets = normalizePresets(JSON.parse(raw));
30
88
  return cachedPresets;
31
89
  }
32
90
  catch {
@@ -35,8 +93,8 @@ export async function loadPresets() {
35
93
  }
36
94
  }
37
95
  export async function savePresets(presets) {
38
- cachedPresets = presets;
39
- await fs.writeFile(PRESETS_PATH, JSON.stringify(presets, null, 2), 'utf8');
96
+ cachedPresets = normalizePresets(presets);
97
+ await fs.writeFile(PRESETS_PATH, JSON.stringify(cachedPresets, null, 2), 'utf8');
40
98
  }
41
99
  function normalizePresetName(name) {
42
100
  return name.trim().toLowerCase();
@@ -46,6 +104,19 @@ export async function getPreset(name) {
46
104
  const normalized = normalizePresetName(name);
47
105
  return presets.find((p) => normalizePresetName(p.name) === normalized);
48
106
  }
107
+ export function getPresetEffectiveModel(preset) {
108
+ const model = preset.defaultModel?.trim() || preset.env['ANTHROPIC_MODEL']?.trim() || '';
109
+ return model || undefined;
110
+ }
111
+ export function getPresetAvailableModelIds(preset) {
112
+ const discovered = preset.availableModels
113
+ ?.map((item) => item.id.trim())
114
+ .filter(Boolean) ?? [];
115
+ if (discovered.length > 0)
116
+ return [...new Set(discovered)];
117
+ const fallback = getPresetEffectiveModel(preset);
118
+ return fallback ? [fallback] : [];
119
+ }
49
120
  /**
50
121
  * Resolve a preset name to env vars ready for session launch.
51
122
  * Auto-fills MODEL_ALIASES from ANTHROPIC_MODEL if set.
@@ -60,6 +131,9 @@ export async function resolvePresetEnv(presetName, ccSessionId) {
60
131
  if (env['ANTHROPIC_AUTH_TOKEN'] && !env['ANTHROPIC_API_KEY']) {
61
132
  env['ANTHROPIC_API_KEY'] = env['ANTHROPIC_AUTH_TOKEN'];
62
133
  }
134
+ const effectiveModel = getPresetEffectiveModel(preset);
135
+ if (effectiveModel)
136
+ env['ANTHROPIC_MODEL'] = effectiveModel;
63
137
  // Auto-fill model aliases from ANTHROPIC_MODEL
64
138
  if (env['ANTHROPIC_MODEL']) {
65
139
  for (const alias of MODEL_ALIASES) {
@@ -82,7 +156,7 @@ export async function getPresetTransportOverrides(presetName) {
82
156
  if (!preset)
83
157
  return {};
84
158
  const env = await resolvePresetEnv(presetName);
85
- const configuredModel = env['ANTHROPIC_MODEL']?.trim() || undefined;
159
+ const configuredModel = getPresetEffectiveModel(preset);
86
160
  const configuredBaseUrl = env['ANTHROPIC_BASE_URL']?.trim() || undefined;
87
161
  const runtimeFacts = [
88
162
  `Authoritative runtime fact: this session is using the Claude Code preset "${preset.name}".`,
@@ -104,7 +178,8 @@ export async function getQwenPresetTransportConfig(presetName) {
104
178
  if (!preset)
105
179
  return { env: {} };
106
180
  const resolvedEnv = await resolvePresetEnv(presetName);
107
- const model = resolvedEnv['ANTHROPIC_MODEL']?.trim() || undefined;
181
+ const availableModels = getPresetAvailableModelIds(preset);
182
+ const model = getPresetEffectiveModel(preset) ?? availableModels[0];
108
183
  const baseUrl = resolvedEnv['ANTHROPIC_BASE_URL']?.trim() || undefined;
109
184
  const apiKey = resolvedEnv['ANTHROPIC_API_KEY']?.trim()
110
185
  || resolvedEnv['ANTHROPIC_AUTH_TOKEN']?.trim()
@@ -124,7 +199,8 @@ export async function getQwenPresetTransportConfig(presetName) {
124
199
  }
125
200
  if (model)
126
201
  env['ANTHROPIC_MODEL'] = model;
127
- const settings = (baseUrl && apiKey && model)
202
+ const providerModels = availableModels.length > 0 ? availableModels : (model ? [model] : []);
203
+ const settings = (baseUrl && apiKey && providerModels.length > 0)
128
204
  ? {
129
205
  security: {
130
206
  auth: {
@@ -132,24 +208,22 @@ export async function getQwenPresetTransportConfig(presetName) {
132
208
  },
133
209
  },
134
210
  model: {
135
- name: model,
211
+ name: model ?? providerModels[0],
136
212
  },
137
213
  modelProviders: {
138
- anthropic: [
139
- {
140
- id: model,
141
- name: preset.name,
142
- envKey: 'ANTHROPIC_API_KEY',
143
- baseUrl,
144
- ...(preset.contextWindow
145
- ? {
146
- generationConfig: {
147
- contextWindowSize: preset.contextWindow,
148
- },
149
- }
150
- : {}),
151
- },
152
- ],
214
+ anthropic: providerModels.map((providerModelId) => ({
215
+ id: providerModelId,
216
+ name: preset.availableModels?.find((item) => item.id === providerModelId)?.name?.trim() || providerModelId,
217
+ envKey: 'ANTHROPIC_API_KEY',
218
+ baseUrl,
219
+ ...(preset.contextWindow
220
+ ? {
221
+ generationConfig: {
222
+ contextWindowSize: preset.contextWindow,
223
+ },
224
+ }
225
+ : {}),
226
+ })),
153
227
  },
154
228
  }
155
229
  : undefined;
@@ -173,10 +247,90 @@ export async function getQwenPresetTransportConfig(presetName) {
173
247
  env,
174
248
  ...(settings ? { settings } : {}),
175
249
  ...(model ? { model } : {}),
250
+ ...(availableModels.length ? { availableModels } : {}),
176
251
  ...(runtimeFacts ? { systemPrompt: runtimeFacts } : {}),
177
252
  ...(preset.contextWindow ? { contextWindow: preset.contextWindow } : {}),
178
253
  };
179
254
  }
255
+ function getDiscoveryCandidates(baseUrl) {
256
+ const trimmed = baseUrl.trim().replace(/\/+$/, '');
257
+ if (!trimmed)
258
+ return [];
259
+ const candidates = new Set();
260
+ if (trimmed.endsWith('/models')) {
261
+ candidates.add(trimmed);
262
+ }
263
+ else {
264
+ candidates.add(`${trimmed}/models`);
265
+ if (!/\/v\d+(?:$|\/)/.test(trimmed))
266
+ candidates.add(`${trimmed}/v1/models`);
267
+ }
268
+ return [...candidates];
269
+ }
270
+ function parseDiscoveredModels(payload) {
271
+ const record = payload && typeof payload === 'object' ? payload : {};
272
+ const rawModels = Array.isArray(record.data)
273
+ ? record.data
274
+ : Array.isArray(record.models)
275
+ ? record.models
276
+ : [];
277
+ const seen = new Set();
278
+ const models = [];
279
+ for (const item of rawModels) {
280
+ if (!item || typeof item !== 'object')
281
+ continue;
282
+ const model = item;
283
+ const id = typeof model.id === 'string' ? model.id.trim() : '';
284
+ if (!id || seen.has(id))
285
+ continue;
286
+ const displayName = typeof model.display_name === 'string'
287
+ ? model.display_name.trim()
288
+ : typeof model.name === 'string'
289
+ ? model.name.trim()
290
+ : '';
291
+ seen.add(id);
292
+ models.push(displayName ? { id, name: displayName } : { id });
293
+ }
294
+ return models;
295
+ }
296
+ export async function discoverPresetModels(preset) {
297
+ const env = { ...preset.env };
298
+ const baseUrl = env['ANTHROPIC_BASE_URL']?.trim() || '';
299
+ const apiKey = env['ANTHROPIC_API_KEY']?.trim() || env['ANTHROPIC_AUTH_TOKEN']?.trim() || '';
300
+ if (!baseUrl)
301
+ throw new Error('Preset is missing ANTHROPIC_BASE_URL');
302
+ if (!apiKey)
303
+ throw new Error('Preset is missing ANTHROPIC_API_KEY / ANTHROPIC_AUTH_TOKEN');
304
+ let lastError = null;
305
+ for (const endpoint of getDiscoveryCandidates(baseUrl)) {
306
+ try {
307
+ const response = await fetch(endpoint, {
308
+ headers: {
309
+ 'x-api-key': apiKey,
310
+ 'anthropic-version': '2023-06-01',
311
+ accept: 'application/json',
312
+ },
313
+ });
314
+ if (!response.ok) {
315
+ throw new Error(`HTTP ${response.status} ${response.statusText}`.trim());
316
+ }
317
+ const payload = await response.json();
318
+ const availableModels = parseDiscoveredModels(payload);
319
+ if (availableModels.length === 0) {
320
+ throw new Error('No models returned by compatible API');
321
+ }
322
+ const existingModel = getPresetEffectiveModel(preset);
323
+ const defaultModel = availableModels.some((item) => item.id === existingModel)
324
+ ? existingModel
325
+ : (availableModels[0]?.id ?? undefined);
326
+ return { availableModels, defaultModel, endpoint };
327
+ }
328
+ catch (error) {
329
+ lastError = error instanceof Error ? error : new Error(String(error));
330
+ }
331
+ }
332
+ throw lastError ?? new Error('Failed to discover models');
333
+ }
180
334
  /** Default init message for non-Anthropic providers (no native web search). */
181
335
  const DEFAULT_INIT_MESSAGE = 'For web searches, use: curl -s "https://html.duckduckgo.com/html/?q=QUERY" | head -200. Replace QUERY with URL-encoded search terms.';
182
336
  /** Get the init message for a preset (uses default if not specified). */
@@ -1 +1 @@
1
- {"version":3,"file":"cc-presets.js","sourceRoot":"","sources":["../../../src/daemon/cc-presets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cc-presets.js","sourceRoot":"","sources":["../../../src/daemon/cc-presets.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"command-handler.d.ts","sourceRoot":"","sources":["../../../src/daemon/command-handler.ts"],"names":[],"mappings":"AAOA,OAAO,EAA0D,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACvH,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEpG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAyBnD,OAAO,EAAsE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAsgB3H,wBAAsB,yBAAyB,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBtF;AAoID,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAcD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAoCxD;AAgHD,wGAAwG;AACxG,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAEzD;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CA6R3E;AA+xCD,wBAAsB,sCAAsC,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7G;AAwUD,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAE7F;AAED,yFAAyF;AACzF,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,OAAO,CAStF;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,CAStF;AA6xBD,wBAAgB,qCAAqC,CAAC,IAAI,2CAAgB,4CAEzE;AAED,wBAAgB,+CAA+C,CAAC,QAAQ,kBAAiB,mBAOxF;AAiyBD,wBAAgB,0BAA0B,IAAI,IAAI,CAcjD;AA6VD,KAAK,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC;AAEzD,iFAAiF;AACjF,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAa3E;AAED,gEAAgE;AAChE,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAI5E;AAED,wCAAwC;AACxC,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAEtE;AAED,uDAAuD;AACvD,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAEhL"}
1
+ {"version":3,"file":"command-handler.d.ts","sourceRoot":"","sources":["../../../src/daemon/command-handler.ts"],"names":[],"mappings":"AAOA,OAAO,EAA0D,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACvH,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEpG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAyBnD,OAAO,EAAsE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAugB3H,wBAAsB,yBAAyB,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBtF;AAoID,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAcD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAoCxD;AAgHD,wGAAwG;AACxG,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAEzD;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAgS3E;AA+xCD,wBAAsB,sCAAsC,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7G;AAwUD,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAE7F;AAED,yFAAyF;AACzF,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,OAAO,CAStF;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,CAStF;AA6xBD,wBAAgB,qCAAqC,CAAC,IAAI,2CAAgB,4CAEzE;AAED,wBAAgB,+CAA+C,CAAC,QAAQ,kBAAiB,mBAOxF;AAiyBD,wBAAgB,0BAA0B,IAAI,IAAI,CAcjD;AA6VD,KAAK,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC;AAEzD,iFAAiF;AACjF,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAa3E;AAED,gEAAgE;AAChE,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAI5E;AAED,wCAAwC;AACxC,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAEtE;AAED,uDAAuD;AACvD,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAEhL"}
@@ -45,6 +45,7 @@ import { getClaudeSdkRuntimeConfig, normalizeClaudeSdkModelForProvider } from '.
45
45
  import { getCodexRuntimeConfig } from '../agent/codex-runtime-config.js';
46
46
  import { P2P_TERMINAL_RUN_STATUSES } from '../../shared/p2p-status.js';
47
47
  import { DAEMON_MSG } from '../../shared/daemon-events.js';
48
+ import { CC_PRESET_MSG } from '../../shared/cc-presets.js';
48
49
  import { MEMORY_WS } from '../../shared/memory-ws.js';
49
50
  import { P2P_CONFIG_ERROR, P2P_CONFIG_MSG } from '../../shared/p2p-config-events.js';
50
51
  import { DAEMON_COMMAND_TYPES } from '../../shared/daemon-command-types.js';
@@ -1013,12 +1014,15 @@ export function handleWebCommand(msg, serverLink) {
1013
1014
  case 'p2p.status':
1014
1015
  void handleP2pStatus(cmd, serverLink);
1015
1016
  break;
1016
- case 'cc.presets.list':
1017
+ case CC_PRESET_MSG.LIST:
1017
1018
  void handleCcPresetsList(serverLink);
1018
1019
  break;
1019
- case 'cc.presets.save':
1020
+ case CC_PRESET_MSG.SAVE:
1020
1021
  void handleCcPresetsSave(cmd, serverLink);
1021
1022
  break;
1023
+ case CC_PRESET_MSG.DISCOVER_MODELS:
1024
+ void handleCcPresetsDiscoverModels(cmd, serverLink);
1025
+ break;
1022
1026
  case SHARED_CONTEXT_RUNTIME_CONFIG_MSG.APPLY:
1023
1027
  void handleSharedContextRuntimeConfigApply(cmd);
1024
1028
  break;
@@ -4789,7 +4793,7 @@ export async function listProviderSessions(providerId) {
4789
4793
  async function handleCcPresetsList(serverLink) {
4790
4794
  const { loadPresets } = await import('./cc-presets.js');
4791
4795
  const presets = await loadPresets();
4792
- serverLink.send({ type: 'cc.presets.list_response', presets });
4796
+ serverLink.send({ type: CC_PRESET_MSG.LIST_RESPONSE, presets });
4793
4797
  }
4794
4798
  async function handleCcPresetsSave(cmd, serverLink) {
4795
4799
  const presets = cmd.presets;
@@ -4798,7 +4802,73 @@ async function handleCcPresetsSave(cmd, serverLink) {
4798
4802
  const { savePresets, invalidateCache } = await import('./cc-presets.js');
4799
4803
  invalidateCache();
4800
4804
  await savePresets(presets);
4801
- serverLink.send({ type: 'cc.presets.save_response', ok: true });
4805
+ serverLink.send({ type: CC_PRESET_MSG.SAVE_RESPONSE, ok: true });
4806
+ }
4807
+ async function handleCcPresetsDiscoverModels(cmd, serverLink) {
4808
+ const requestId = typeof cmd.requestId === 'string' ? cmd.requestId : undefined;
4809
+ const presetName = typeof cmd.presetName === 'string' ? cmd.presetName.trim() : '';
4810
+ if (!presetName) {
4811
+ serverLink.send({
4812
+ type: CC_PRESET_MSG.DISCOVER_MODELS_RESPONSE,
4813
+ ...(requestId ? { requestId } : {}),
4814
+ presetName,
4815
+ ok: false,
4816
+ error: 'presetName is required',
4817
+ });
4818
+ return;
4819
+ }
4820
+ const { discoverPresetModels, loadPresets, savePresets, getPreset } = await import('./cc-presets.js');
4821
+ const presets = await loadPresets();
4822
+ const preset = await getPreset(presetName);
4823
+ if (!preset) {
4824
+ serverLink.send({
4825
+ type: CC_PRESET_MSG.DISCOVER_MODELS_RESPONSE,
4826
+ ...(requestId ? { requestId } : {}),
4827
+ presetName,
4828
+ ok: false,
4829
+ error: `Preset "${presetName}" not found`,
4830
+ });
4831
+ return;
4832
+ }
4833
+ const normalizedName = preset.name.trim().toLowerCase();
4834
+ try {
4835
+ const discovered = await discoverPresetModels(preset);
4836
+ const updatedPreset = {
4837
+ ...preset,
4838
+ transportMode: preset.transportMode ?? 'qwen-compatible-api',
4839
+ authType: preset.authType ?? 'anthropic',
4840
+ availableModels: discovered.availableModels,
4841
+ ...(discovered.defaultModel ? { defaultModel: discovered.defaultModel } : {}),
4842
+ lastDiscoveredAt: Date.now(),
4843
+ modelDiscoveryError: undefined,
4844
+ };
4845
+ await savePresets(presets.map((item) => (item.name.trim().toLowerCase() === normalizedName ? updatedPreset : item)));
4846
+ serverLink.send({
4847
+ type: CC_PRESET_MSG.DISCOVER_MODELS_RESPONSE,
4848
+ ...(requestId ? { requestId } : {}),
4849
+ presetName: updatedPreset.name,
4850
+ ok: true,
4851
+ preset: updatedPreset,
4852
+ models: discovered.availableModels,
4853
+ endpoint: discovered.endpoint,
4854
+ });
4855
+ }
4856
+ catch (error) {
4857
+ const message = error instanceof Error ? error.message : String(error);
4858
+ const updatedPreset = {
4859
+ ...preset,
4860
+ modelDiscoveryError: message,
4861
+ };
4862
+ await savePresets(presets.map((item) => (item.name.trim().toLowerCase() === normalizedName ? updatedPreset : item)));
4863
+ serverLink.send({
4864
+ type: CC_PRESET_MSG.DISCOVER_MODELS_RESPONSE,
4865
+ ...(requestId ? { requestId } : {}),
4866
+ presetName: updatedPreset.name,
4867
+ ok: false,
4868
+ error: message,
4869
+ preset: updatedPreset,
4870
+ });
4871
+ }
4802
4872
  }
4803
4873
  async function handleSharedContextRuntimeConfigApply(cmd) {
4804
4874
  const config = cmd.config;