@simonyea/holysheep-cli 1.7.26 → 1.7.28

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simonyea/holysheep-cli",
3
- "version": "1.7.26",
3
+ "version": "1.7.28",
4
4
  "description": "Claude Code/Cursor/Cline API relay for China — ¥1=$1, WeChat/Alipay payment, no credit card, no VPN. One command setup for all AI coding tools.",
5
5
  "keywords": [
6
6
  "openai-china",
@@ -44,6 +44,7 @@ async function runClaude(args = []) {
44
44
 
45
45
  const env = {
46
46
  ...process.env,
47
+ ANTHROPIC_API_KEY: undefined, // 防止与 ANTHROPIC_AUTH_TOKEN 冲突
47
48
  ANTHROPIC_AUTH_TOKEN: apiKey,
48
49
  ANTHROPIC_BASE_URL: BASE_URL_ANTHROPIC,
49
50
  CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: '1',
@@ -9,6 +9,7 @@ const pkg = require('../../package.json')
9
9
  const { saveConfig, getApiKey, BASE_URL_ANTHROPIC, BASE_URL_OPENAI, SHOP_URL } = require('../utils/config')
10
10
  const {
11
11
  writeEnvToShell,
12
+ removeEnvFromShell,
12
13
  ensureWindowsUserPathHasNpmBin,
13
14
  installWindowsCliShims,
14
15
  removeWindowsUserEnvVars,
@@ -328,43 +329,18 @@ async function setup(options) {
328
329
  }
329
330
  }
330
331
 
331
- // Step 5: 写入通用环境变量
332
- const needsAnthropicEnv = toConfigureTools.some(t => t.id === 'claude-code')
333
- const needsOpenAIEnv = toConfigureTools.some(t => t.id === 'codex' || t.id === 'aider')
334
- if (needsAnthropicEnv || needsOpenAIEnv || Object.keys(envVarsToWrite).length > 0) {
335
- if (needsAnthropicEnv) {
336
- Object.assign(envVarsToWrite, {
337
- ANTHROPIC_API_KEY: apiKey,
338
- ANTHROPIC_BASE_URL: BASE_URL_ANTHROPIC,
339
- })
340
- }
341
- if (needsOpenAIEnv) {
342
- Object.assign(envVarsToWrite, {
343
- OPENAI_API_KEY: apiKey,
344
- })
345
- if (toConfigureTools.some(t => t.id === 'aider')) {
346
- Object.assign(envVarsToWrite, {
347
- OPENAI_BASE_URL: BASE_URL_OPENAI,
348
- })
349
- }
350
- }
351
- }
352
-
353
- if (Object.keys(envVarsToWrite).length > 0) {
354
- const spinner = ora('写入环境变量到 shell 配置文件...').start()
355
- try {
356
- const written = writeEnvToShell(envVarsToWrite)
357
- spinner.succeed(`环境变量已写入: ${written.map(f => chalk.cyan(f)).join(', ')}`)
358
- } catch (e) {
359
- spinner.fail(`写入环境变量失败: ${e.message}`)
332
+ // Step 5: 清理 shell 环境变量(所有工具改用 JSON/config 文件配置,不再写 shell)
333
+ const staleKeys = ['ANTHROPIC_API_KEY', 'ANTHROPIC_BASE_URL', 'OPENAI_API_KEY', 'OPENAI_BASE_URL']
334
+ try {
335
+ const cleaned = removeEnvFromShell(staleKeys)
336
+ if (cleaned.length > 0) {
337
+ console.log(chalk.gray(`已清理 shell 中的过时变量: ${cleaned.map(f => chalk.cyan(f)).join(', ')}`))
360
338
  }
361
- }
362
-
363
- if (process.platform === 'win32' && toConfigureTools.some(t => t.id === 'codex') && !toConfigureTools.some(t => t.id === 'aider')) {
364
- const removed = removeWindowsUserEnvVars(['OPENAI_BASE_URL'])
339
+ } catch {}
340
+ if (process.platform === 'win32') {
341
+ const removed = removeWindowsUserEnvVars(staleKeys)
365
342
  if (removed.length > 0) {
366
343
  console.log(chalk.gray(`已移除过时环境变量: ${removed.map(item => chalk.cyan(item)).join(', ')}`))
367
- console.log()
368
344
  }
369
345
  }
370
346
 
@@ -70,7 +70,6 @@ model: openai/${model}
70
70
  launchCmd: 'aider',
71
71
  installCmd: 'pip install aider-chat',
72
72
  docsUrl: 'https://aider.chat',
73
- // Aider 优先用环境变量
74
73
  envVars: (apiKey, baseUrlOpenAI) => ({
75
74
  OPENAI_API_KEY: apiKey,
76
75
  OPENAI_BASE_URL: baseUrlOpenAI,
@@ -171,9 +171,7 @@ module.exports = {
171
171
  return {
172
172
  file: CONFIG_FILE,
173
173
  hot: false,
174
- envVars: {
175
- OPENAI_API_KEY: apiKey,
176
- },
174
+ envVars: { OPENAI_API_KEY: apiKey },
177
175
  }
178
176
  },
179
177
  reset() {