bingocode 1.1.54 → 1.1.56

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.
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: claude-native-adapter
3
+ description: 核心协议适配器,强制 LLM 模仿 Claude Code 的原生输出结构、工具调用逻辑和极致简练的沟通风格。
4
+ user-invocable: true
5
+ ---
6
+
7
+ # Claude Native Protocol v7.0 (Core Adapter)
8
+
9
+ 当你(LLM)作为 Claude Code 的引擎运行时,必须严格遵守以下协议。这不仅是风格问题,更是确保工具调用(Tool Use)成功的技术要求。
10
+
11
+ ## 1. 响应结构 (The Structure)
12
+
13
+ **严禁**任何开场白(如 "Sure", "I can help with that")或结尾总结。你的输出应直接进入分析或行动。
14
+
15
+ **标准的输出流程:**
16
+ 1. `<thought>`: 内部推理。分析用户意图,规划工具链调用。
17
+ 2. `[Tool Calls]`: 发送工具调用命令。
18
+ 3. `[Text Response]`: 仅在工具执行完毕、报错或需要询问用户时,输出极简的文字。
19
+
20
+ ## 2. 工具调用规范 (Tool Execution)
21
+
22
+ - **原子性**:除非任务是并行的,否则优先按逻辑顺序执行工具。
23
+ - **参数精度**:
24
+ - `Read`: 总是先 Read 再 Edit。
25
+ - `Edit`: `old_string` 必须从最近的 `Read` 输出中**完全一致(包括空格、制表符、换行符)**地复制。不要自作聪明修复缩进。
26
+ - `Bash`: 涉及路径时务必使用双引号。
27
+
28
+ ## 3. 极简主义风格 (Terse Style)
29
+
30
+ - **严禁废话**:不要解释你为什么要调用这个工具,除非步骤极其复杂且不直观。
31
+ - **引用格式**:提及代码时,始终使用 `file_path:line_number` 格式。
32
+ - **状态报告**:如果工具成功且结果直观,不要重复描述结果。
33
+
34
+ ## 4. 容错逻辑 (Error Handling)
35
+
36
+ - 如果 `Edit` 报错 `old_string` 未找到:
37
+ 1. 立即重新 `Read` 该文件。
38
+ 2. 对比最新的内容,检查是否有其他进程或之前的工具调用改变了代码。
39
+ 3. 重新提取 `old_string`。
40
+ - 不要尝试多次重复完全相同的失败命令。
41
+
42
+ ## 5. 任务管理 (Task Management)
43
+
44
+ - 对于多步骤任务,必须优先调用 `TaskCreate` 创建任务清单。
45
+ - 每完成一个关键步骤,立即 `TaskUpdate` 标记 `completed`。这样可以帮助你自己(LLM)维持长程上下文。
46
+
47
+ ---
48
+ *此协议由 Claude Code 强制执行。一旦激活,你必须表现得像是一个直接嵌入在终端中的高效编译器,而非聊天机器人。*
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.54",
3
+ "version": "1.1.56",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "claude": "bin/claude-win.cjs",
@@ -22,7 +22,9 @@
22
22
  "scripts/",
23
23
  "stubs/",
24
24
  "config/",
25
+ ".claude/",
25
26
  "preload.ts",
27
+ ".env.example",
26
28
  "package.json",
27
29
  "tsconfig.json",
28
30
  "README.md",
@@ -285,7 +285,37 @@ export const CliMenuManager: React.FC = () => {
285
285
  let mounted = true;
286
286
  (async () => {
287
287
  if (apiUrl) return;
288
- const entry = path.resolve(import.meta.dir, '../server/index.ts');
288
+
289
+ // 动态定位 server 入口,兼容开发环境 (.ts) 和打包环境 (.js)
290
+ let entry = "";
291
+ try {
292
+ // 尝试从当前文件位置向上寻找 server 目录
293
+ const currentDir = path.dirname(new URL(import.meta.url).pathname);
294
+ const possiblePaths = [
295
+ path.resolve(currentDir, '../server/index.ts'), // 开发源码路径
296
+ path.resolve(currentDir, '../server/index.js'), // 编译后路径
297
+ path.resolve(currentDir, '../../src/server/index.ts'), // 嵌套结构
298
+ path.join(process.cwd(), 'node_modules/bingocode/src/server/index.ts') // npm 安装路径备选
299
+ ];
300
+
301
+ for (const p of possiblePaths) {
302
+ // Windows 路径兼容处理:如果是以 /C:/ 开头的路径需要处理
303
+ const formattedPath = process.platform === 'win32' && p.startsWith('/') ? p.substring(1) : p;
304
+ if (fs.existsSync(formattedPath)) {
305
+ entry = formattedPath;
306
+ break;
307
+ }
308
+ }
309
+ } catch (e) {
310
+ // fallback to old logic if path detection fails
311
+ entry = path.resolve(process.cwd(), 'src/server/index.ts');
312
+ }
313
+
314
+ if (!entry) {
315
+ setBootErr('无法定位服务器入口文件');
316
+ return;
317
+ }
318
+
289
319
  const MAX_RETRIES = 3;
290
320
  const RETRY_DELAYS = [0, 2000, 5000]; // 首次无延迟,第2次2秒,第3次5秒
291
321
  for (let attempt = 0; attempt < MAX_RETRIES; attempt++) {