@cc-x/cc-x 0.4.9 → 0.4.10

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.
@@ -28,7 +28,6 @@ export const BUILTIN_PRESETS = [
28
28
  models: { opus: 'GLM-4.7', sonnet: 'GLM-4.7', haiku: 'glm-4.5-air' },
29
29
  env: {
30
30
  CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: '1',
31
- CLAUDE_CODE_AUTO_COMPACT_WINDOW: '1000000',
32
31
  },
33
32
  },
34
33
  {
@@ -63,7 +62,7 @@ function normalizeModels(raw) {
63
62
  models.haiku = m.haiku;
64
63
  return models;
65
64
  }
66
- const PRESET_ENV_KEYS = ['CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC', 'CLAUDE_CODE_AUTO_COMPACT_WINDOW'];
65
+ const PRESET_ENV_KEYS = ['CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC'];
67
66
  function normalizeEnv(raw) {
68
67
  const m = (raw && typeof raw === 'object' ? raw : {});
69
68
  const env = {};
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * 数据格式必须与现版 PowerShell 完全兼容(老用户的 ~/.cc-mini/providers.json 能直接读)。
5
5
  */
6
- /** 受管的 9 个环境变量(工具只动这些,其它一律不碰)。详见 plan §2。 */
6
+ /** 受管的 8 个环境变量(工具只动这些,其它一律不碰)。详见 plan §2。 */
7
7
  export const KNOWN_KEYS = [
8
8
  'ANTHROPIC_BASE_URL',
9
9
  'ANTHROPIC_AUTH_TOKEN',
@@ -13,5 +13,4 @@ export const KNOWN_KEYS = [
13
13
  'ANTHROPIC_DEFAULT_HAIKU_MODEL',
14
14
  'CLAUDE_CODE_EFFORT_LEVEL',
15
15
  'CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC',
16
- 'CLAUDE_CODE_AUTO_COMPACT_WINDOW',
17
16
  ];
@@ -91,7 +91,6 @@ export const messages = {
91
91
  'edit.field.haiku': { zh: 'haiku → 模型 ', en: 'haiku → model ' },
92
92
  'edit.field.effort': { zh: 'effort 思考档 ', en: 'effort level ' },
93
93
  'edit.field.disableTraffic': { zh: '禁用非核心流量 ', en: 'Disable traffic ' },
94
- 'edit.field.autoCompact': { zh: '上下文窗口大小 ', en: 'Context window ' },
95
94
  'edit.toggleSecretShow': { zh: '显示密钥明文(当前隐藏)', en: 'Show key in plaintext (now hidden)' },
96
95
  'edit.toggleSecretHide': { zh: '隐藏密钥(当前明文)', en: 'Hide key (now shown)' },
97
96
  'edit.save': { zh: '保存并返回', en: 'Save & back' },
@@ -116,6 +115,9 @@ export const messages = {
116
115
  'pick.effort.title': { zh: 'effort 思考档(当前:{0})', en: 'effort level (current: {0})' },
117
116
  'pick.effort.empty': { zh: '留空(不设)', en: 'Leave empty' },
118
117
  'pick.effort.hint': { zh: '越往后越深入;auto=模型默认 · q 不改', en: 'deeper to the right; auto=model default · q keep' },
118
+ 'pick.disableTraffic.title': { zh: '禁用非核心流量(当前:{0})', en: 'Disable nonessential traffic (current: {0})' },
119
+ 'pick.disableTraffic.yes': { zh: '是(值=1,GLM 等要求禁用)', en: 'Yes (value=1, required by GLM etc.)' },
120
+ 'pick.disableTraffic.no': { zh: '否(留空,不设置)', en: 'No (leave empty)' },
119
121
  // —— 错误 ——
120
122
  'error.notFound': { zh: '找不到配置:{0}', en: 'Profile not found: {0}' },
121
123
  'error.existing': { zh: '现有:{0}', en: 'Existing: {0}' },
package/dist/ui/edit.js CHANGED
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import { buildProviderEnv, getProviderEnvMap, reconcileBuiltin, resolveUniqueName, } from '../config/store.js';
8
8
  import { T } from '../i18n/index.js';
9
- import { pickAuth, pickBaseUrl, pickEffort, pickProvider, pickProviderUrl } from './pickers.js';
9
+ import { pickAuth, pickBaseUrl, pickDisableTraffic, pickEffort, pickProvider, pickProviderUrl } from './pickers.js';
10
10
  import { selectMenu } from './select.js';
11
11
  import { readText, readValue } from './text.js';
12
12
  function fromProvider(p) {
@@ -23,7 +23,6 @@ function fromProvider(p) {
23
23
  haiku: m.ANTHROPIC_DEFAULT_HAIKU_MODEL ?? '',
24
24
  effort: m.CLAUDE_CODE_EFFORT_LEVEL ?? '',
25
25
  disableTraffic: m.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC ?? '',
26
- autoCompact: m.CLAUDE_CODE_AUTO_COMPACT_WINDOW ?? '',
27
26
  };
28
27
  }
29
28
  /**
@@ -49,7 +48,6 @@ export async function editForm(prov, store, catalog, focusKey = false) {
49
48
  { action: 'haiku', label: `${T('edit.field.haiku')}: ${v(W.haiku)}` },
50
49
  { action: 'effort', label: `${T('edit.field.effort')}: ${v(W.effort)}` },
51
50
  { action: 'disableTraffic', label: `${T('edit.field.disableTraffic')}: ${v(W.disableTraffic)}` },
52
- { action: 'autoCompact', label: `${T('edit.field.autoCompact')}: ${v(W.autoCompact)}` },
53
51
  { action: 'sep', label: '' },
54
52
  { action: 'toggle', label: showSecret ? T('edit.toggleSecretHide') : T('edit.toggleSecretShow') },
55
53
  { action: 'sep', label: '' },
@@ -83,9 +81,6 @@ export async function editForm(prov, store, catalog, focusKey = false) {
83
81
  if (pp.env && Object.prototype.hasOwnProperty.call(pp.env, 'CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC')) {
84
82
  W.disableTraffic = pp.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC ?? '';
85
83
  }
86
- if (pp.env && Object.prototype.hasOwnProperty.call(pp.env, 'CLAUDE_CODE_AUTO_COMPACT_WINDOW')) {
87
- W.autoCompact = pp.env.CLAUDE_CODE_AUTO_COMPACT_WINDOW ?? '';
88
- }
89
84
  }
90
85
  break;
91
86
  }
@@ -130,18 +125,9 @@ export async function editForm(prov, store, catalog, focusKey = false) {
130
125
  case 'effort':
131
126
  W.effort = await pickEffort(W.effort);
132
127
  break;
133
- case 'disableTraffic': {
134
- const r = await readValue(T('edit.field.disableTraffic').trim(), W.disableTraffic);
135
- if (r.changed)
136
- W.disableTraffic = r.value;
137
- break;
138
- }
139
- case 'autoCompact': {
140
- const r = await readValue(T('edit.field.autoCompact').trim(), W.autoCompact);
141
- if (r.changed)
142
- W.autoCompact = r.value;
128
+ case 'disableTraffic':
129
+ W.disableTraffic = await pickDisableTraffic(W.disableTraffic);
143
130
  break;
144
- }
145
131
  case 'toggle':
146
132
  showSecret = !showSecret; // 仅切换显示,不改数据、不持久化
147
133
  break;
@@ -157,7 +143,6 @@ export async function editForm(prov, store, catalog, focusKey = false) {
157
143
  ANTHROPIC_DEFAULT_HAIKU_MODEL: W.haiku,
158
144
  CLAUDE_CODE_EFFORT_LEVEL: W.effort,
159
145
  CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: W.disableTraffic,
160
- CLAUDE_CODE_AUTO_COMPACT_WINDOW: W.autoCompact,
161
146
  };
162
147
  if (W.auth === 'API_KEY')
163
148
  fields.ANTHROPIC_API_KEY = W.token;
@@ -78,6 +78,19 @@ export async function pickAuth(current) {
78
78
  return current;
79
79
  }
80
80
  const EFFORT_OPTS = ['low', 'medium', 'high', 'xhigh', 'max', 'auto'];
81
+ /** 选是否禁用非核心流量:是("1")/ 否("")/ 不改。 */
82
+ export async function pickDisableTraffic(current) {
83
+ const items = [T('pick.disableTraffic.yes'), T('pick.disableTraffic.no'), T('pick.noChange')];
84
+ const sel = await selectMenu({
85
+ title: T('pick.disableTraffic.title', current || T('empty.paren')),
86
+ items,
87
+ hint: T('pick.hint'),
88
+ noNumber: true,
89
+ });
90
+ if (sel < 0 || sel === 2)
91
+ return current;
92
+ return sel === 0 ? '1' : '';
93
+ }
81
94
  /** 选 effort 思考档:low…auto / 留空 / 不改。 */
82
95
  export async function pickEffort(current) {
83
96
  const items = [...EFFORT_OPTS, T('pick.effort.empty'), T('pick.noChange')];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cc-x/cc-x",
3
- "version": "0.4.9",
3
+ "version": "0.4.10",
4
4
  "description": "Claude Code API 切换器(命令 xx):在官方账号与第三方 Anthropic 兼容 API 间切换,纯环境变量、不碰 Claude Code 配置文件。",
5
5
  "keywords": [
6
6
  "claude",
package/presets.json CHANGED
@@ -16,8 +16,7 @@
16
16
  ],
17
17
  "models": { "opus": "GLM-4.7", "sonnet": "GLM-4.7", "haiku": "glm-4.5-air" },
18
18
  "env": {
19
- "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
20
- "CLAUDE_CODE_AUTO_COMPACT_WINDOW": "1000000"
19
+ "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
21
20
  }
22
21
  },
23
22
  {