bingocode 1.1.55 → 1.1.57
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/.env.example +53 -0
- package/package.json +2 -1
- package/src/manager/CliMenuManager.tsx +40 -1
package/.env.example
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# ============================================================
|
|
2
|
+
# MiniMax(直连 Anthropic 兼容接口)
|
|
3
|
+
# 海外用户: ANTHROPIC_BASE_URL=https://api.minimax.io/anthropic
|
|
4
|
+
# 国内用户: ANTHROPIC_BASE_URL=https://api.minimaxi.com/anthropic
|
|
5
|
+
# 可用模型: MiniMax-M2.7(默认)、MiniMax-M2.7-highspeed(更快)
|
|
6
|
+
# ============================================================
|
|
7
|
+
# ANTHROPIC_AUTH_TOKEN=your_minimax_api_key_here
|
|
8
|
+
# ANTHROPIC_BASE_URL=https://api.minimax.io/anthropic
|
|
9
|
+
# ANTHROPIC_MODEL=MiniMax-M2.7
|
|
10
|
+
# ANTHROPIC_DEFAULT_SONNET_MODEL=MiniMax-M2.7
|
|
11
|
+
# ANTHROPIC_DEFAULT_HAIKU_MODEL=MiniMax-M2.7-highspeed
|
|
12
|
+
# ANTHROPIC_DEFAULT_OPUS_MODEL=MiniMax-M2.7
|
|
13
|
+
# API_TIMEOUT_MS=3000000
|
|
14
|
+
|
|
15
|
+
# ============================================================
|
|
16
|
+
# OpenAI(通过 LiteLLM 代理)
|
|
17
|
+
# 先启动: litellm --config litellm_config.yaml --port 4000
|
|
18
|
+
# ============================================================
|
|
19
|
+
# ANTHROPIC_AUTH_TOKEN=sk-anything
|
|
20
|
+
# ANTHROPIC_BASE_URL=http://localhost:4000
|
|
21
|
+
# ANTHROPIC_MODEL=gpt-4o
|
|
22
|
+
# ANTHROPIC_DEFAULT_SONNET_MODEL=gpt-4o
|
|
23
|
+
# ANTHROPIC_DEFAULT_HAIKU_MODEL=gpt-4o
|
|
24
|
+
# ANTHROPIC_DEFAULT_OPUS_MODEL=gpt-4o
|
|
25
|
+
# API_TIMEOUT_MS=3000000
|
|
26
|
+
|
|
27
|
+
# ============================================================
|
|
28
|
+
# DeepSeek(通过 LiteLLM 代理)
|
|
29
|
+
# 先启动: litellm --config litellm_config.yaml --port 4000
|
|
30
|
+
# ============================================================
|
|
31
|
+
# ANTHROPIC_AUTH_TOKEN=sk-anything
|
|
32
|
+
# ANTHROPIC_BASE_URL=http://localhost:4000
|
|
33
|
+
# ANTHROPIC_MODEL=deepseek-chat
|
|
34
|
+
# ANTHROPIC_DEFAULT_SONNET_MODEL=deepseek-chat
|
|
35
|
+
# ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-chat
|
|
36
|
+
# ANTHROPIC_DEFAULT_OPUS_MODEL=deepseek-chat
|
|
37
|
+
# API_TIMEOUT_MS=3000000
|
|
38
|
+
|
|
39
|
+
# ============================================================
|
|
40
|
+
# OpenRouter(直连 Anthropic 兼容接口)
|
|
41
|
+
# ============================================================
|
|
42
|
+
# ANTHROPIC_AUTH_TOKEN=sk-or-v1-xxx
|
|
43
|
+
# ANTHROPIC_BASE_URL=https://openrouter.ai/api/v1
|
|
44
|
+
# ANTHROPIC_MODEL=openai/gpt-4o
|
|
45
|
+
# ANTHROPIC_DEFAULT_SONNET_MODEL=openai/gpt-4o
|
|
46
|
+
# ANTHROPIC_DEFAULT_HAIKU_MODEL=openai/gpt-4o-mini
|
|
47
|
+
# ANTHROPIC_DEFAULT_OPUS_MODEL=openai/gpt-4o
|
|
48
|
+
|
|
49
|
+
# ============================================================
|
|
50
|
+
# 通用设置(建议始终开启)
|
|
51
|
+
# ============================================================
|
|
52
|
+
DISABLE_TELEMETRY=1
|
|
53
|
+
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bingocode",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.57",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"claude": "bin/claude-win.cjs",
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"config/",
|
|
25
25
|
".claude/",
|
|
26
26
|
"preload.ts",
|
|
27
|
+
".env.example",
|
|
27
28
|
"package.json",
|
|
28
29
|
"tsconfig.json",
|
|
29
30
|
"README.md",
|
|
@@ -285,7 +285,46 @@ export const CliMenuManager: React.FC = () => {
|
|
|
285
285
|
let mounted = true;
|
|
286
286
|
(async () => {
|
|
287
287
|
if (apiUrl) return;
|
|
288
|
-
|
|
288
|
+
|
|
289
|
+
// 动态定位 server 入口,兼容开发环境 (.ts) 和打包环境 (.js)
|
|
290
|
+
let entry = "";
|
|
291
|
+
try {
|
|
292
|
+
// 方案 1: 基于 import.meta.url 动态计算 (最通用)
|
|
293
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
294
|
+
const __dirname = path.dirname(__filename);
|
|
295
|
+
|
|
296
|
+
// 方案 2: 尝试包内的几种标准结构
|
|
297
|
+
const pkgRoot = path.resolve(__dirname, '../../'); // 从 src/manager 向上两级到根目录
|
|
298
|
+
const possiblePaths = [
|
|
299
|
+
path.join(__dirname, '../server/index.ts'), // 结构 1: src/manager -> src/server
|
|
300
|
+
path.join(__dirname, '../server/index.js'),
|
|
301
|
+
path.join(pkgRoot, 'src/server/index.ts'), // 结构 2: root -> src/server
|
|
302
|
+
path.join(pkgRoot, 'dist/server.js'),
|
|
303
|
+
path.resolve(process.argv[1], '../../src/server/index.ts'), // 结构 3: 从 bin 文件位置反推
|
|
304
|
+
];
|
|
305
|
+
|
|
306
|
+
for (const p of possiblePaths) {
|
|
307
|
+
if (fs.existsSync(p)) {
|
|
308
|
+
entry = p;
|
|
309
|
+
break;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
} catch (e) {
|
|
313
|
+
// Fallback: 如果上面的动态探测挂了,尝试最后的大招:
|
|
314
|
+
// 既然 package.json 里的 name 是 bingocode,我们可以尝试寻找它
|
|
315
|
+
try {
|
|
316
|
+
// 这里不做具体的 require.resolve 以免在非 node 环境报错,但可以手动拼
|
|
317
|
+
entry = path.join(process.cwd(), 'node_modules/bingocode/src/server/index.ts');
|
|
318
|
+
} catch {}
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
if (!entry || !fs.existsSync(entry)) {
|
|
322
|
+
// 最后的诊断信息:显示一下我找过哪里,方便用户反馈
|
|
323
|
+
const lastTry = path.resolve(import.meta.dir || "", '../server/index.ts');
|
|
324
|
+
setBootErr(`无法定位服务器入口文件。请确保 src/server/index.ts 存在。\n尝试路径: ${entry || '未找到'}`);
|
|
325
|
+
return;
|
|
326
|
+
}
|
|
327
|
+
|
|
289
328
|
const MAX_RETRIES = 3;
|
|
290
329
|
const RETRY_DELAYS = [0, 2000, 5000]; // 首次无延迟,第2次2秒,第3次5秒
|
|
291
330
|
for (let attempt = 0; attempt < MAX_RETRIES; attempt++) {
|