@hileeon/mcc 0.1.9 → 0.2.0

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 (52) hide show
  1. package/README.md +3 -0
  2. package/dist/accounts/store.d.ts +11 -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.map +1 -1
  6. package/dist/commands/launch.js +8 -4
  7. package/dist/commands/launch.js.map +1 -1
  8. package/dist/commands/profile-test.d.ts +17 -0
  9. package/dist/commands/profile-test.d.ts.map +1 -0
  10. package/dist/commands/profile-test.js +188 -0
  11. package/dist/commands/profile-test.js.map +1 -0
  12. package/dist/core/model-router.d.ts.map +1 -1
  13. package/dist/core/model-router.js +31 -1
  14. package/dist/core/model-router.js.map +1 -1
  15. package/dist/dashboard/server.js +118 -30
  16. package/dist/dashboard/server.js.map +1 -1
  17. package/dist/mcc.js +6 -0
  18. package/dist/mcc.js.map +1 -1
  19. package/dist/mcp/installer.d.ts.map +1 -1
  20. package/dist/mcp/installer.js +5 -2
  21. package/dist/mcp/installer.js.map +1 -1
  22. package/dist/mcp/mcp-config.d.ts +17 -3
  23. package/dist/mcp/mcp-config.d.ts.map +1 -1
  24. package/dist/mcp/mcp-config.js +38 -19
  25. package/dist/mcp/mcp-config.js.map +1 -1
  26. package/dist/proxy/proxy-daemon.d.ts +1 -1
  27. package/dist/proxy/proxy-daemon.d.ts.map +1 -1
  28. package/dist/proxy/proxy-daemon.js +10 -5
  29. package/dist/proxy/proxy-daemon.js.map +1 -1
  30. package/dist/proxy/proxy-entry.js +6 -1
  31. package/dist/proxy/proxy-entry.js.map +1 -1
  32. package/dist/proxy/proxy-paths.d.ts +1 -0
  33. package/dist/proxy/proxy-paths.d.ts.map +1 -1
  34. package/dist/proxy/proxy-paths.js.map +1 -1
  35. package/dist/proxy/proxy-server.d.ts +1 -0
  36. package/dist/proxy/proxy-server.d.ts.map +1 -1
  37. package/dist/proxy/proxy-server.js +84 -2
  38. package/dist/proxy/proxy-server.js.map +1 -1
  39. package/dist/shared/provider-preset-catalog.d.ts +2 -0
  40. package/dist/shared/provider-preset-catalog.d.ts.map +1 -1
  41. package/dist/shared/provider-preset-catalog.js +31 -22
  42. package/dist/shared/provider-preset-catalog.js.map +1 -1
  43. package/dist/shared/test-image.d.ts +15 -0
  44. package/dist/shared/test-image.d.ts.map +1 -0
  45. package/dist/shared/test-image.js +89 -0
  46. package/dist/shared/test-image.js.map +1 -0
  47. package/dist/ui/assets/{index-ClqmrjNk.js → index-7kowlJw9.js} +7 -7
  48. package/dist/ui/assets/{index-CwMwQ-Z4.css → index-DnC-lskL.css} +1 -1
  49. package/dist/ui/index.html +2 -2
  50. package/lib/mcp-hooks/image-analysis-runtime.cjs +58 -5
  51. package/lib/shared/logger.cjs +5 -1
  52. package/package.json +1 -1
package/README.md CHANGED
@@ -19,6 +19,8 @@ mcc profile add <name> # 添加 profile
19
19
  mcc profile list # 查看所有 profile
20
20
  mcc profile remove <name> # 删除 profile
21
21
  mcc profile default [name] # 设默认 profile
22
+ mcc profile test [name...] # 体检 profile(验 key + 余额)
23
+ mcc profile test x --vision # 额外探测主模型能否识图
22
24
  mcc mcp list # 查看可用 MCP 工具
23
25
  mcc mcp add --name <id> --command <cmd> # 添加外部 MCP 工具
24
26
  mcc mcp remove <name> # 删除外部 MCP 工具
@@ -32,6 +34,7 @@ mcc config # 打开 Web 配置控制台
32
34
  - **多 profile 管理**:API key 存 `~/.mcc/profiles/<name>/.key`,元数据存 `~/.mcc/profiles.json`
33
35
  - **实例隔离**:每个 profile 独立 `CLAUDE_CONFIG_DIR`,位于 `~/.mcc/instances/<name>/`
34
36
  - **OpenAI 兼容模式**:`--protocol openai` 时自动启动本地翻译 proxy(端口 43456-43555),转发 OpenAI 格式请求到 upstream Anthropic 兼容端点
37
+ - **思考模式**:profile 支持 `reasoningEffort`,默认开启思考;强度以 Claude Code 自身的 `/effort`/Tab 为准并自动映射到各 provider,`reasoningEffort` 仅作兜底默认
35
38
  - **Tiered model**:profile 支持 `opusModel`/`sonnetModel`/`haikuModel` 三级模型切换
36
39
  - **内置 MCP**:`mcc-websearch`(多源搜索)和 `mcc-image-analysis`(图片/PDF 分析)
37
40
  - **外部 MCP**:通过 `mcc mcp add` 注册第三方 MCP server,支持 `${MCC_PROVIDER_KEY:<providerId>}` 引用 provider API key
@@ -8,6 +8,16 @@
8
8
  * └── <profile-name>/
9
9
  * └── .key # API key (plain text)
10
10
  */
11
+ /**
12
+ * Thinking / reasoning intensity. Normalized across providers; how it maps:
13
+ * - openai-protocol → injected by the proxy as provider-specific params
14
+ * (Qwen: enable_thinking + thinking_budget; GLM: thinking{enabled} + reasoning_effort;
15
+ * generic: reasoning_effort, max clamped to high).
16
+ * - anthropic-protocol → exported as CLAUDE_CODE_EFFORT_LEVEL (honored by DeepSeek;
17
+ * a harmless no-op for providers like Kimi/MiMo whose thinking is binary always-on).
18
+ * Undefined is treated as 'high' (thinking on). 'off' disables.
19
+ */
20
+ export type ReasoningEffort = 'off' | 'low' | 'medium' | 'high' | 'max';
11
21
  export interface Profile {
12
22
  name: string;
13
23
  displayName?: string;
@@ -18,6 +28,7 @@ export interface Profile {
18
28
  haikuModel?: string;
19
29
  protocol?: 'anthropic' | 'openai';
20
30
  proxyChatCompletionsPath?: string;
31
+ reasoningEffort?: ReasoningEffort;
21
32
  createdAt: string;
22
33
  lastUsedAt?: string;
23
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/accounts/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAiBH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC;IAClC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA0BD,wBAAgB,YAAY,IAAI,OAAO,EAAE,CAExC;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAE5D;AAED,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAEtD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAOlE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAIjE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAUhD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAKpD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhD"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/accounts/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAiBH;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;AAExE,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC;IAClC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA0BD,wBAAgB,YAAY,IAAI,OAAO,EAAE,CAExC;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAE5D;AAED,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAEtD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAOlE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAIjE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAUhD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAKpD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhD"}
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/accounts/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/accounts/store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../../src/commands/launch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAoBH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6G7D"}
1
+ {"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../../src/commands/launch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAoBH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgH7D"}
@@ -83,14 +83,13 @@ async function cmdLaunch(args) {
83
83
  const wsProviders = (0, mcp_config_1.getEnabledWebSearchProviders)(mcpConfig);
84
84
  const iaProvider = (0, mcp_config_1.getActiveImageAnalysisProvider)(mcpConfig);
85
85
  const instancePath = await instanceMgr.ensureInstance(profileName);
86
- console.log(` ${picocolors_1.default.dim('instance')} ${picocolors_1.default.dim(instancePath)}`);
87
86
  (0, installer_1.syncInstanceMcpServers)(instancePath, registry_1.BUILTIN_MCP_SERVERS.map((s) => s.name), profileName);
88
87
  // Initialize logging session
89
88
  const sessionId = (0, logger_1.makeSessionId)();
90
89
  const mccHome = process.env.MCC_HOME ?? path.join(process.env.HOME ?? process.env.USERPROFILE ?? '~', '.mcc');
91
90
  const logDir = path.join(mccHome, 'logs', profileName, 'sessions', sessionId);
92
91
  (0, logger_1.init)(sessionId, logDir);
93
- logger_1.log.info('MCC', `Session starting: ${profileName} | log: ${logDir}`);
92
+ logger_1.log.debug('MCC', `Session starting: ${profileName} | log: ${logDir}`);
94
93
  console.log(` ${picocolors_1.default.dim('session')} ${picocolors_1.default.dim(sessionId)}`);
95
94
  // MCP provider summary
96
95
  if (wsProviders.length > 0) {
@@ -111,8 +110,13 @@ async function cmdLaunch(args) {
111
110
  env.MCC_CURRENT_PROFILE = profileName;
112
111
  env.MCC_LOG_SESSION_ID = sessionId;
113
112
  env.MCC_LOG_DIR = logDir;
114
- // Debug: key env vars (no secrets)
113
+ // Preserve full color depth without this Claude Code's TUI looks dim when
114
+ // spawned as a child process (TTY color detection can downgrade).
115
+ env.FORCE_COLOR = '3';
116
+ env.COLORTERM = 'truecolor';
117
+ // Debug: instance path + key env vars (no secrets)
115
118
  if ((0, logger_1.isDebugEnabled)()) {
119
+ console.log(` ${picocolors_1.default.dim('instance')} ${picocolors_1.default.dim(instancePath)}`);
116
120
  const debugEnvs = [
117
121
  ['ANTHROPIC_BASE_URL', env.ANTHROPIC_BASE_URL],
118
122
  ['ANTHROPIC_MODEL', env.ANTHROPIC_MODEL],
@@ -134,7 +138,7 @@ async function cmdLaunch(args) {
134
138
  // Start translation proxy for OpenAI-compatible profiles
135
139
  if (profile.protocol === 'openai') {
136
140
  try {
137
- const proxyInfo = await (0, proxy_daemon_1.startProxy)(profileName, profile.baseUrl, apiKey, profile.model, profile.proxyChatCompletionsPath);
141
+ const proxyInfo = await (0, proxy_daemon_1.startProxy)(profileName, profile.baseUrl, apiKey, profile.model, profile.proxyChatCompletionsPath, profile.reasoningEffort);
138
142
  env.ANTHROPIC_BASE_URL = `http://127.0.0.1:${proxyInfo.port}`;
139
143
  env.ANTHROPIC_AUTH_TOKEN = proxyInfo.authToken;
140
144
  // MCP image analysis also needs to go through the proxy
@@ -1 +1 @@
1
- {"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/commands/launch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/commands/launch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * `mcc profile test [name] [--vision]` — live health-check a profile's key.
3
+ *
4
+ * Three independent probes, each reported separately:
5
+ * 1. models — GET the provider's model list. Proves the key *authenticates*.
6
+ * 2. usable — a 1-token chat/messages call. Proves the account is actually
7
+ * callable (catches "key valid but balance = 0", e.g. DeepSeek 402,
8
+ * which the models endpoint alone reports as OK).
9
+ * 3. vision — (only with --vision) sends a 4-quadrant probe image to the
10
+ * profile's own model and checks it names all four colors, i.e.
11
+ * whether the main model can natively see images.
12
+ *
13
+ * Calls the upstream provider directly (not through the local proxy) so the
14
+ * result reflects the real provider, not the translation layer.
15
+ */
16
+ export declare function cmdProfileTest(args: string[]): Promise<void>;
17
+ //# sourceMappingURL=profile-test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-test.d.ts","sourceRoot":"","sources":["../../src/commands/profile-test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAwJH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoClE"}
@@ -0,0 +1,188 @@
1
+ "use strict";
2
+ /**
3
+ * `mcc profile test [name] [--vision]` — live health-check a profile's key.
4
+ *
5
+ * Three independent probes, each reported separately:
6
+ * 1. models — GET the provider's model list. Proves the key *authenticates*.
7
+ * 2. usable — a 1-token chat/messages call. Proves the account is actually
8
+ * callable (catches "key valid but balance = 0", e.g. DeepSeek 402,
9
+ * which the models endpoint alone reports as OK).
10
+ * 3. vision — (only with --vision) sends a 4-quadrant probe image to the
11
+ * profile's own model and checks it names all four colors, i.e.
12
+ * whether the main model can natively see images.
13
+ *
14
+ * Calls the upstream provider directly (not through the local proxy) so the
15
+ * result reflects the real provider, not the translation layer.
16
+ */
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.cmdProfileTest = cmdProfileTest;
22
+ const picocolors_1 = __importDefault(require("picocolors"));
23
+ const store_1 = require("../accounts/store");
24
+ const test_image_1 = require("../shared/test-image");
25
+ const TIMEOUT_MS = 30000;
26
+ function trimBase(baseUrl) {
27
+ return baseUrl.trim().replace(/\/+$/, '');
28
+ }
29
+ function authHeaders(key, protocol) {
30
+ return protocol === 'anthropic'
31
+ ? { 'x-api-key': key, 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json' }
32
+ : { Authorization: `Bearer ${key}`, 'Content-Type': 'application/json' };
33
+ }
34
+ async function http(url, init) {
35
+ const controller = new AbortController();
36
+ const timer = setTimeout(() => controller.abort(), TIMEOUT_MS);
37
+ try {
38
+ const resp = await fetch(url, { ...init, signal: controller.signal });
39
+ const text = await resp.text();
40
+ let json = undefined;
41
+ try {
42
+ json = JSON.parse(text);
43
+ }
44
+ catch {
45
+ /* non-JSON body */
46
+ }
47
+ return { status: resp.status, json, text };
48
+ }
49
+ finally {
50
+ clearTimeout(timer);
51
+ }
52
+ }
53
+ function errSnippet(status, json, text) {
54
+ const j = json;
55
+ const raw = j?.error?.message ?? j?.message ?? text;
56
+ // Collapse whitespace and strip HTML so a 404 error page stays one tidy line.
57
+ const msg = raw.replace(/<[^>]*>/g, ' ').replace(/\s+/g, ' ').trim().slice(0, 100);
58
+ return `HTTP ${status}${msg ? ` — ${msg}` : ''}`;
59
+ }
60
+ async function probeModels(base, key, protocol) {
61
+ const url = protocol === 'anthropic' ? `${base}/v1/models` : `${base}/models`;
62
+ try {
63
+ const { status, json, text } = await http(url, { method: 'GET', headers: authHeaders(key, protocol) });
64
+ // Many Anthropic-compatible providers don't expose /v1/models — a 404 here
65
+ // says nothing about the key (the `usable` probe is the real auth check).
66
+ if (status === 404)
67
+ return { ok: true, neutral: true, detail: 'no /v1/models endpoint' };
68
+ if (status !== 200)
69
+ return { ok: false, detail: errSnippet(status, json, text) };
70
+ const body = json;
71
+ const list = Array.isArray(body?.data) ? body.data : Array.isArray(body?.models) ? body.models : [];
72
+ return { ok: true, detail: `${list.length} models` };
73
+ }
74
+ catch (e) {
75
+ return { ok: false, detail: e.message };
76
+ }
77
+ }
78
+ async function probeUsable(base, key, protocol, model) {
79
+ const url = protocol === 'anthropic' ? `${base}/v1/messages` : `${base}/chat/completions`;
80
+ const body = JSON.stringify({ model, max_tokens: 8, messages: [{ role: 'user', content: 'hi' }] });
81
+ try {
82
+ const { status, json, text } = await http(url, { method: 'POST', headers: authHeaders(key, protocol), body });
83
+ if (status !== 200)
84
+ return { ok: false, detail: errSnippet(status, json, text) };
85
+ return { ok: true, detail: `model=${model}` };
86
+ }
87
+ catch (e) {
88
+ return { ok: false, detail: e.message };
89
+ }
90
+ }
91
+ function extractReply(protocol, json) {
92
+ if (protocol === 'anthropic') {
93
+ const d = json;
94
+ return (d?.content ?? [])
95
+ .filter((b) => b?.type === 'text' && typeof b.text === 'string')
96
+ .map((b) => b.text)
97
+ .join(' ');
98
+ }
99
+ const d = json;
100
+ const m = d?.choices?.[0]?.message;
101
+ return m?.content || m?.reasoning_content || '';
102
+ }
103
+ async function probeVision(base, key, protocol, model) {
104
+ const url = protocol === 'anthropic' ? `${base}/v1/messages` : `${base}/chat/completions`;
105
+ const b64 = (0, test_image_1.makeVisionProbeBase64)();
106
+ const content = protocol === 'anthropic'
107
+ ? [
108
+ { type: 'text', text: test_image_1.VISION_PROBE_PROMPT },
109
+ { type: 'image', source: { type: 'base64', media_type: 'image/png', data: b64 } },
110
+ ]
111
+ : [
112
+ { type: 'text', text: test_image_1.VISION_PROBE_PROMPT },
113
+ { type: 'image_url', image_url: { url: `data:image/png;base64,${b64}` } },
114
+ ];
115
+ const body = JSON.stringify({ model, max_tokens: 300, messages: [{ role: 'user', content }] });
116
+ try {
117
+ const { status, json, text } = await http(url, { method: 'POST', headers: authHeaders(key, protocol), body });
118
+ if (status !== 200)
119
+ return { ok: false, detail: errSnippet(status, json, text) };
120
+ const reply = extractReply(protocol, json).replace(/\s+/g, ' ').trim();
121
+ if ((0, test_image_1.passesVisionProbe)(reply))
122
+ return { ok: true, detail: `read image: "${reply.slice(0, 60)}"` };
123
+ return { ok: false, detail: `wrong/blind: "${reply.slice(0, 60) || '(empty)'}"` };
124
+ }
125
+ catch (e) {
126
+ return { ok: false, detail: e.message };
127
+ }
128
+ }
129
+ function line(label, probe) {
130
+ if (!probe)
131
+ return ` ${picocolors_1.default.dim('vision'.padEnd(7))} ${picocolors_1.default.dim('–')} ${picocolors_1.default.dim('skipped (pass --vision)')}`;
132
+ const mark = probe.neutral ? picocolors_1.default.dim('•') : probe.ok ? picocolors_1.default.green('✓') : picocolors_1.default.red('✗');
133
+ const text = probe.neutral || probe.ok ? picocolors_1.default.dim(probe.detail) : picocolors_1.default.red(probe.detail);
134
+ return ` ${picocolors_1.default.dim(label.padEnd(7))} ${mark} ${text}`;
135
+ }
136
+ async function testOne(profile, wantVision) {
137
+ const protocol = profile.protocol || 'anthropic';
138
+ const key = (0, store_1.getProfileApiKey)(profile.name);
139
+ const head = ` ${picocolors_1.default.bold(profile.name)} ${picocolors_1.default.dim('·')} ${picocolors_1.default.dim(protocol)} ${picocolors_1.default.dim('·')} ${picocolors_1.default.cyan(profile.model)}`;
140
+ if (!key) {
141
+ console.log(head);
142
+ console.log(` ${picocolors_1.default.red('✗')} ${picocolors_1.default.red('no API key stored')}`);
143
+ return false;
144
+ }
145
+ const base = trimBase(profile.baseUrl);
146
+ const models = await probeModels(base, key, protocol);
147
+ const usable = await probeUsable(base, key, protocol, profile.model);
148
+ const vision = wantVision ? await probeVision(base, key, protocol, profile.model) : null;
149
+ console.log(head);
150
+ console.log(line('models', models));
151
+ console.log(line('usable', usable));
152
+ console.log(line('vision', vision));
153
+ // "Healthy" = can actually be used. Models-only success with an unusable
154
+ // account (balance 0) is still a failure worth surfacing in the exit code.
155
+ return usable.ok;
156
+ }
157
+ async function cmdProfileTest(args) {
158
+ const wantVision = args.includes('--vision');
159
+ const names = args.filter((a) => !a.startsWith('--'));
160
+ const targets = names.length
161
+ ? names.map((n) => (0, store_1.getProfile)(n)).filter((p) => Boolean(p))
162
+ : (0, store_1.listProfiles)();
163
+ if (names.length) {
164
+ const missing = names.filter((n) => !(0, store_1.getProfile)(n));
165
+ if (missing.length) {
166
+ console.error(`[!] Profile not found: ${missing.join(', ')}`);
167
+ process.exit(1);
168
+ }
169
+ }
170
+ if (targets.length === 0) {
171
+ console.log('[i] No profiles to test.');
172
+ return;
173
+ }
174
+ console.log(`Testing ${targets.length} profile(s)${wantVision ? ' + vision' : ''} ${picocolors_1.default.dim('(models = auth · usable = balance · vision = main model sees images)')}\n`);
175
+ let failures = 0;
176
+ for (const p of targets) {
177
+ const ok = await testOne(p, wantVision);
178
+ if (!ok)
179
+ failures++;
180
+ console.log();
181
+ }
182
+ if (failures > 0) {
183
+ console.log(picocolors_1.default.dim(`${failures}/${targets.length} profile(s) not usable.`));
184
+ process.exit(1);
185
+ }
186
+ console.log(picocolors_1.default.green(`All ${targets.length} profile(s) usable.`));
187
+ }
188
+ //# sourceMappingURL=profile-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-test.js","sourceRoot":"","sources":["../../src/commands/profile-test.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;AAwJH,wCAoCC;AA1LD,4DAA4B;AAC5B,6CAA6F;AAC7F,qDAAqG;AAUrG,MAAM,UAAU,GAAG,KAAM,CAAC;AAE1B,SAAS,QAAQ,CAAC,OAAe;IAC/B,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,WAAW,CAAC,GAAW,EAAE,QAAkB;IAClD,OAAO,QAAQ,KAAK,WAAW;QAC7B,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,mBAAmB,EAAE,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC7F,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;AAC7E,CAAC;AAED,KAAK,UAAU,IAAI,CACjB,GAAW,EACX,IAAwE;IAExE,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,CAAC;IAC/D,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QACtE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,IAAI,GAAY,SAAS,CAAC;QAC9B,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,mBAAmB;QACrB,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC7C,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,MAAc,EAAE,IAAa,EAAE,IAAY;IAC7D,MAAM,CAAC,GAAG,IAAsE,CAAC;IACjF,MAAM,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC;IACpD,8EAA8E;IAC9E,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACnF,OAAO,QAAQ,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACnD,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,IAAY,EAAE,GAAW,EAAE,QAAkB;IACtE,MAAM,GAAG,GAAG,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC;IAC9E,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvG,2EAA2E;QAC3E,0EAA0E;QAC1E,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC;QACzF,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QACjF,MAAM,IAAI,GAAG,IAAgD,CAAC;QAC9D,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACpG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,SAAS,EAAE,CAAC;IACvD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC;IACrD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,IAAY,EAAE,GAAW,EAAE,QAAkB,EAAE,KAAa;IACrF,MAAM,GAAG,GAAG,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,mBAAmB,CAAC;IAC1F,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IACnG,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9G,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QACjF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,KAAK,EAAE,EAAE,CAAC;IAChD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC;IACrD,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,QAAkB,EAAE,IAAa;IACrD,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,IAA6D,CAAC;QACxE,OAAO,CAAC,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC;aACtB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;aAC/D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IACD,MAAM,CAAC,GAAG,IAA2F,CAAC;IACtG,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,iBAAiB,IAAI,EAAE,CAAC;AAClD,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,IAAY,EAAE,GAAW,EAAE,QAAkB,EAAE,KAAa;IACrF,MAAM,GAAG,GAAG,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,mBAAmB,CAAC;IAC1F,MAAM,GAAG,GAAG,IAAA,kCAAqB,GAAE,CAAC;IACpC,MAAM,OAAO,GACX,QAAQ,KAAK,WAAW;QACtB,CAAC,CAAC;YACE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gCAAmB,EAAE;YAC3C,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;SAClF;QACH,CAAC,CAAC;YACE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gCAAmB,EAAE;YAC3C,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,yBAAyB,GAAG,EAAE,EAAE,EAAE;SAC1E,CAAC;IACR,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/F,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9G,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QACjF,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACvE,IAAI,IAAA,8BAAiB,EAAC,KAAK,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QACjG,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,GAAG,EAAE,CAAC;IACpF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAG,CAAW,CAAC,OAAO,EAAE,CAAC;IACrD,CAAC;AACH,CAAC;AAED,SAAS,IAAI,CAAC,KAAa,EAAE,KAAmB;IAC9C,IAAI,CAAC,KAAK;QAAE,OAAO,OAAO,oBAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,oBAAE,CAAC,GAAG,CAAC,yBAAyB,CAAC,EAAE,CAAC;IAC3G,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClF,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,oBAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrF,OAAO,OAAO,oBAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;AAC1D,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,OAAgB,EAAE,UAAmB;IAC1D,MAAM,QAAQ,GAAa,OAAO,CAAC,QAAQ,IAAI,WAAW,CAAC;IAC3D,MAAM,GAAG,GAAG,IAAA,wBAAgB,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,KAAK,oBAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,oBAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,oBAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;IACtH,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,OAAO,oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,oBAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;QACjE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEzF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAEpC,yEAAyE;IACzE,2EAA2E;IAC3E,OAAO,MAAM,CAAC,EAAE,CAAC;AACnB,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,IAAc;IACjD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAEtD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM;QAC1B,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,kBAAU,EAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzE,CAAC,CAAC,IAAA,oBAAY,GAAE,CAAC;IAEnB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAA,kBAAU,EAAC,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,CAAC,0BAA0B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CACT,WAAW,OAAO,CAAC,MAAM,cAAc,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,oBAAE,CAAC,GAAG,CAAC,sEAAsE,CAAC,IAAI,CAC5J,CAAC;IAEF,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,EAAE;YAAE,QAAQ,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,oBAAE,CAAC,GAAG,CAAC,GAAG,QAAQ,IAAI,OAAO,CAAC,MAAM,yBAAyB,CAAC,CAAC,CAAC;QAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,oBAAE,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,MAAM,qBAAqB,CAAC,CAAC,CAAC;AACpE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"model-router.d.ts","sourceRoot":"","sources":["../../src/core/model-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGjD,MAAM,WAAW,UAAU;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,4BAA4B,EAAE,MAAM,CAAC;IACrC,8BAA8B,EAAE,MAAM,CAAC;IACvC,6BAA6B,EAAE,MAAM,CAAC;IACtC,0BAA0B,EAAE,MAAM,CAAC;IACnC,iBAAiB,EAAE,GAAG,CAAC;IACvB,qBAAqB,EAAE,GAAG,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,UAAU,CAoDrG"}
1
+ {"version":3,"file":"model-router.d.ts","sourceRoot":"","sources":["../../src/core/model-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAOjD,MAAM,WAAW,UAAU;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,4BAA4B,EAAE,MAAM,CAAC;IACrC,8BAA8B,EAAE,MAAM,CAAC;IACvC,6BAA6B,EAAE,MAAM,CAAC;IACtC,0BAA0B,EAAE,MAAM,CAAC;IACnC,iBAAiB,EAAE,GAAG,CAAC;IACvB,qBAAqB,EAAE,GAAG,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,UAAU,CAqFrG"}
@@ -21,7 +21,8 @@ function buildProfileEnv(profile, apiKey, claudeConfigDir) {
21
21
  // Read MCP config for provider settings
22
22
  const mcpConfig = (0, mcp_config_1.readMcpConfig)();
23
23
  const wsProviders = (0, mcp_config_1.getEnabledWebSearchProviders)(mcpConfig);
24
- const iaProvider = (0, mcp_config_1.getActiveImageAnalysisProvider)(mcpConfig);
24
+ const iaProviders = (0, mcp_config_1.getEnabledImageAnalysisProviders)(mcpConfig);
25
+ const iaProvider = iaProviders[0] ?? null;
25
26
  const env = {
26
27
  ANTHROPIC_BASE_URL: profile.baseUrl,
27
28
  ANTHROPIC_AUTH_TOKEN: apiKey,
@@ -34,6 +35,25 @@ function buildProfileEnv(profile, apiKey, claudeConfigDir) {
34
35
  DISABLE_COST_WARNINGS: '1',
35
36
  CLAUDE_CONFIG_DIR: claudeConfigDir,
36
37
  };
38
+ // Thinking, driven by Claude Code itself so the user's /effort + Tab toggle
39
+ // are the source of truth. We seed two env vars so thinking is ON by default
40
+ // regardless of how Claude Code treats a third-party model id:
41
+ // - CLAUDE_CODE_EFFORT_LEVEL → adaptive-thinking path (modern models):
42
+ // sends thinking{type:adaptive} + output_config.effort.
43
+ // - MAX_THINKING_TOKENS → legacy path: sends thinking{type:enabled,budget}.
44
+ // Both matter because some upstreams MANDATE thinking (e.g. kimi-k2.7-code
45
+ // 400s on a request with no thinking) — seeding both guarantees Claude Code
46
+ // emits a thinking field those models accept. For openai-protocol the proxy
47
+ // re-reads whatever Claude Code sent and translates it per provider.
48
+ // Undefined ⇒ 'high'. 'off' leaves thinking to the model/user default.
49
+ const effort = profile.reasoningEffort ?? 'high';
50
+ if (effort !== 'off') {
51
+ env.CLAUDE_CODE_EFFORT_LEVEL = effort;
52
+ const budgetByEffort = {
53
+ low: 4096, medium: 8192, high: 16384, max: 32768,
54
+ };
55
+ env.MAX_THINKING_TOKENS = String(budgetByEffort[effort] ?? 16384);
56
+ }
37
57
  // MCP: WebSearch
38
58
  env.MCC_WEBSEARCH_ENABLED = mcpConfig.websearch.enabled ? '1' : '0';
39
59
  for (const p of wsProviders) {
@@ -57,10 +77,20 @@ function buildProfileEnv(profile, apiKey, claudeConfigDir) {
57
77
  // MCP: Image Analysis
58
78
  if (mcpConfig.imageAnalysis.enabled && iaProvider) {
59
79
  env.MCC_IMAGE_ANALYSIS_ENABLED = '1';
80
+ // Legacy single-provider vars — kept for back-compat / launch display.
60
81
  env.MCC_IMAGE_ANALYSIS_RUNTIME_BASE_URL = iaProvider.baseUrl;
61
82
  env.MCC_IMAGE_ANALYSIS_RUNTIME_API_KEY = iaProvider.apiKey;
62
83
  env.MCC_IMAGE_ANALYSIS_MODEL = iaProvider.model;
63
84
  env.MCC_IMAGE_ANALYSIS_FORMAT = iaProvider.format;
85
+ // Full fallback chain — the runtime tries these in order; the first that
86
+ // succeeds wins, the rest are tried on 402 / auth / network errors.
87
+ env.MCC_IMAGE_ANALYSIS_PROVIDERS = JSON.stringify(iaProviders.map((p) => ({
88
+ id: p.id,
89
+ baseUrl: p.baseUrl,
90
+ apiKey: p.apiKey,
91
+ model: p.model,
92
+ format: p.format,
93
+ })));
64
94
  }
65
95
  return env;
66
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"model-router.js","sourceRoot":"","sources":["../../src/core/model-router.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AAuBH,0CAoDC;AAxED,kDAAgH;AAgBhH;;;GAGG;AACH,SAAgB,eAAe,CAAC,OAAgB,EAAE,MAAc,EAAE,eAAuB;IACvF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAE5B,wCAAwC;IACxC,MAAM,SAAS,GAAG,IAAA,0BAAa,GAAE,CAAC;IAClC,MAAM,WAAW,GAAG,IAAA,yCAA4B,EAAC,SAAS,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,IAAA,2CAA8B,EAAC,SAAS,CAAC,CAAC;IAE7D,MAAM,GAAG,GAA2B;QAClC,kBAAkB,EAAE,OAAO,CAAC,OAAO;QACnC,oBAAoB,EAAE,MAAM;QAC5B,eAAe,EAAE,KAAK;QACtB,4BAA4B,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK;QACxD,8BAA8B,EAAE,OAAO,CAAC,WAAW,IAAI,KAAK;QAC5D,6BAA6B,EAAE,OAAO,CAAC,UAAU,IAAI,KAAK;QAC1D,0BAA0B,EAAE,OAAO,CAAC,UAAU,IAAI,KAAK;QACvD,iBAAiB,EAAE,GAAG;QACtB,qBAAqB,EAAE,GAAG;QAC1B,iBAAiB,EAAE,eAAe;KACnC,CAAC;IAEF,iBAAiB;IACjB,GAAG,CAAC,qBAAqB,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACpE,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,+DAA+D;QAC/D,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAClD,GAAG,CAAC,iBAAiB,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC;QACrC,MAAM,cAAc,GAAG,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACxD,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC;YAC3B,MAAM,SAAS,GAA2B;gBACxC,GAAG,EAAE,2BAA2B;gBAChC,MAAM,EAAE,8BAA8B;gBACtC,KAAK,EAAE,6BAA6B;gBACpC,KAAK,EAAE,6BAA6B;gBACpC,OAAO,EAAE,+BAA+B;aACzC,CAAC;YACF,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,IAAI,SAAS,CAAC,aAAa,CAAC,OAAO,IAAI,UAAU,EAAE,CAAC;QAClD,GAAG,CAAC,0BAA0B,GAAG,GAAG,CAAC;QACrC,GAAG,CAAC,mCAAmC,GAAG,UAAU,CAAC,OAAO,CAAC;QAC7D,GAAG,CAAC,kCAAkC,GAAG,UAAU,CAAC,MAAM,CAAC;QAC3D,GAAG,CAAC,wBAAwB,GAAG,UAAU,CAAC,KAAK,CAAC;QAChD,GAAG,CAAC,yBAAyB,GAAG,UAAU,CAAC,MAAM,CAAC;IACpD,CAAC;IAED,OAAO,GAA4B,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"model-router.js","sourceRoot":"","sources":["../../src/core/model-router.ts"],"names":[],"mappings":"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"}