@adversity/coding-tool-x 3.0.2 → 3.0.3

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.
@@ -5,7 +5,7 @@
5
5
  <link rel="icon" href="/favicon.ico">
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
7
  <title>CC-TOOL - ClaudeCode增强工作助手</title>
8
- <script type="module" crossorigin src="/assets/index-DfPKAt9R.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-BDN4_LfP.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/vue-vendor-6JaYHOiI.js">
10
10
  <link rel="modulepreload" crossorigin href="/assets/vendors-D2HHw_aW.js">
11
11
  <link rel="modulepreload" crossorigin href="/assets/icons-BlzwYoRU.js">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adversity/coding-tool-x",
3
- "version": "3.0.2",
3
+ "version": "3.0.3",
4
4
  "description": "Vibe Coding 增强工作助手 - 智能会话管理、动态渠道切换、全局搜索、实时监控",
5
5
  "main": "src/index.js",
6
6
  "bin": {
@@ -530,14 +530,53 @@ async function fetchModelsFromProvider(channel, channelType) {
530
530
  });
531
531
  }
532
532
  } else if (res.statusCode === 401 || res.statusCode === 403) {
533
- console.error(`[ModelDetector] Authentication failed for ${channel.name}: ${res.statusCode}`);
534
- resolve({
535
- models: [],
536
- supported: true,
537
- cached: false,
538
- fallbackUsed: true,
539
- error: `Authentication failed: ${res.statusCode}`
540
- });
533
+ // Check if it's a Cloudflare protection issue
534
+ const bodyLower = data.toLowerCase();
535
+ const isCloudflare = bodyLower.includes('cloudflare') || bodyLower.includes('challenge') || bodyLower.includes('cf-ray');
536
+
537
+ let errorMessage;
538
+ let errorHint;
539
+
540
+ if (isCloudflare) {
541
+ errorMessage = 'Cloudflare 防护拦截,已使用默认模型';
542
+ errorHint = '该 API 端点受 Cloudflare 保护,已自动使用默认模型 claude-sonnet-4-5';
543
+ console.warn(`[ModelDetector] Cloudflare protection detected for ${channel.name}, using default model`);
544
+ resolve({
545
+ models: ['claude-sonnet-4-5'],
546
+ supported: true,
547
+ cached: false,
548
+ fallbackUsed: true,
549
+ error: errorMessage,
550
+ errorHint: errorHint,
551
+ statusCode: res.statusCode
552
+ });
553
+ } else if (res.statusCode === 401) {
554
+ errorMessage = 'API 密钥认证失败';
555
+ errorHint = '请检查 API 密钥是否正确配置';
556
+ console.error(`[ModelDetector] Authentication failed for ${channel.name}: ${res.statusCode} - ${errorMessage}`);
557
+ resolve({
558
+ models: [],
559
+ supported: true,
560
+ cached: false,
561
+ fallbackUsed: true,
562
+ error: errorMessage,
563
+ errorHint: errorHint,
564
+ statusCode: res.statusCode
565
+ });
566
+ } else {
567
+ errorMessage = '访问被拒绝';
568
+ errorHint = '请检查 API 密钥权限或联系服务提供商';
569
+ console.error(`[ModelDetector] Access denied for ${channel.name}: ${res.statusCode} - ${errorMessage}`);
570
+ resolve({
571
+ models: [],
572
+ supported: true,
573
+ cached: false,
574
+ fallbackUsed: true,
575
+ error: errorMessage,
576
+ errorHint: errorHint,
577
+ statusCode: res.statusCode
578
+ });
579
+ }
541
580
  } else if (res.statusCode === 404) {
542
581
  console.warn(`[ModelDetector] Model list endpoint not found for ${channel.name}`);
543
582
  resolve({
@@ -545,7 +584,9 @@ async function fetchModelsFromProvider(channel, channelType) {
545
584
  supported: false,
546
585
  cached: false,
547
586
  fallbackUsed: true,
548
- error: 'Endpoint not found (404)'
587
+ error: '模型列表端点不存在',
588
+ errorHint: '该 API 可能不支持 /v1/models 接口,请手动输入模型名称',
589
+ statusCode: 404
549
590
  });
550
591
  } else if (res.statusCode === 429) {
551
592
  console.warn(`[ModelDetector] Rate limited for ${channel.name}`);
@@ -554,7 +595,9 @@ async function fetchModelsFromProvider(channel, channelType) {
554
595
  supported: true,
555
596
  cached: false,
556
597
  fallbackUsed: true,
557
- error: 'Rate limited (429)'
598
+ error: '请求频率限制',
599
+ errorHint: '请稍后再试或联系服务提供商提高限额',
600
+ statusCode: 429
558
601
  });
559
602
  } else {
560
603
  console.error(`[ModelDetector] Unexpected status ${res.statusCode} for ${channel.name}`);
@@ -563,7 +606,9 @@ async function fetchModelsFromProvider(channel, channelType) {
563
606
  supported: true,
564
607
  cached: false,
565
608
  fallbackUsed: true,
566
- error: `HTTP ${res.statusCode}`
609
+ error: `HTTP 错误 ${res.statusCode}`,
610
+ errorHint: '请检查 API 端点配置或联系服务提供商',
611
+ statusCode: res.statusCode
567
612
  });
568
613
  }
569
614
  });