Skip to content

Commit fa5329d

Browse files
author
HitMargin
committed
Merge remote main: keep OpenAI fix
2 parents c9f95fc + a67b4a4 commit fa5329d

65 files changed

Lines changed: 15355 additions & 1195 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.vscode/launch.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"version": "0.2.0",
3+
"configurations": [
4+
{
5+
"type": "bun",
6+
"request": "attach",
7+
"name": "Attach to Bun (TUI debug)",
8+
"url": "ws://localhost:8888/2dc3gzl5xot",
9+
"stopOnEntry": false,
10+
"internalConsoleOptions": "neverOpen"
11+
}
12+
]
13+
}

DEV-LOG.md

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,133 @@
11
# DEV-LOG
22

3+
## Computer Use Windows 增强:窗口绑定截图 + UI Automation + OCR (2026-04-03)
4+
5+
在三平台基础实现之上,利用 Windows 原生 API 增强 Computer Use 的 Windows 专属能力。
6+
7+
**新增文件:**
8+
9+
| 文件 | 行数 | 说明 |
10+
|------|------|------|
11+
| `src/utils/computerUse/win32/windowCapture.ts` || `PrintWindow` 窗口绑定截图,支持被遮挡/后台窗口 |
12+
| `src/utils/computerUse/win32/windowEnum.ts` || `EnumWindows` 精确窗口枚举(HWND + PID + 标题) |
13+
| `src/utils/computerUse/win32/uiAutomation.ts` || `IUIAutomation` UI 元素树读取、按钮点击、文本写入、坐标识别 |
14+
| `src/utils/computerUse/win32/ocr.ts` || `Windows.Media.Ocr` 截图+文字识别(英语+中文) |
15+
16+
**修改文件:**
17+
18+
| 文件 | 变更 |
19+
|------|------|
20+
| `packages/@ant/computer-use-swift/src/backends/win32.ts` | `listRunning` 改用 EnumWindows;新增 `captureWindowTarget` 窗口级截图 |
21+
22+
**验证结果(Windows x64):**
23+
- 窗口枚举:38 个可见窗口 ✅
24+
- 窗口截图:VS Code 2575x1415, 444KB ✅(PrintWindow, 即使被遮挡)
25+
- UI Automation:坐标元素识别 ✅
26+
- OCR:识别 VS Code 界面文字,34 行 ✅
27+
28+
---
29+
30+
## Enable Computer Use — macOS + Windows + Linux (2026-04-03)
31+
32+
恢复 Computer Use 屏幕操控功能。参考项目仅 macOS,本次扩展为三平台支持。
33+
34+
**Phase 1 — MCP server stub 替换:**
35+
从参考项目复制 `@ant/computer-use-mcp` 完整实现(12 文件,6517 行)。
36+
37+
**Phase 2 — 移除 src/ 中 8 处 macOS 硬编码:**
38+
39+
| 文件 | 改动 |
40+
|------|------|
41+
| `src/main.tsx:1605` | 去掉 `getPlatform() === 'macos'` |
42+
| `src/utils/computerUse/swiftLoader.ts` | 移除 darwin-only throw |
43+
| `src/utils/computerUse/executor.ts` | 平台守卫扩展为 darwin+win32+linux;剪贴板按平台分发(pbcopy→PowerShell→xclip);paste 快捷键 command→ctrl |
44+
| `src/utils/computerUse/drainRunLoop.ts` | 非 darwin 直接执行 fn() |
45+
| `src/utils/computerUse/escHotkey.ts` | 非 darwin 返回 false(Ctrl+C fallback) |
46+
| `src/utils/computerUse/hostAdapter.ts` | 非 darwin 权限检查返回 granted |
47+
| `src/utils/computerUse/common.ts` | platform + screenshotFiltering 动态化 |
48+
| `src/utils/computerUse/gates.ts` | enabled:true + hasRequiredSubscription→true |
49+
50+
**Phase 3 — input/swift 包 dispatcher + backends 三平台架构:**
51+
52+
```
53+
packages/@ant/computer-use-{input,swift}/src/
54+
├── index.ts ← dispatcher
55+
├── types.ts ← 共享接口
56+
└── backends/
57+
├── darwin.ts ← macOS AppleScript(原样拆出,不改逻辑)
58+
├── win32.ts ← Windows PowerShell
59+
└── linux.ts ← Linux xdotool/scrot/xrandr/wmctrl
60+
```
61+
62+
**编译开关:** `CHICAGO_MCP` 加入 DEFAULT_FEATURES + DEFAULT_BUILD_FEATURES
63+
64+
**验证结果(Windows x64):**
65+
- `isSupported: true`
66+
- 鼠标定位 + 前台窗口信息 ✅
67+
- 双显示器检测 2560x1440 × 2 ✅
68+
- 全屏截图 3MB base64 ✅
69+
- `bun run build` 463 files ✅
70+
71+
---
72+
73+
## Enable Voice Mode / VOICE_MODE (2026-04-03)
74+
75+
恢复 `/voice` 语音输入功能。`src/` 下所有 voice 相关源码已与官方一致(0 行差异),问题出在:① `VOICE_MODE` 编译开关未开,命令不显示;② `audio-capture-napi` 是 SoX 子进程 stub(Windows 不支持),缺少官方原生 `.node` 二进制。
76+
77+
**新增文件:**
78+
79+
| 文件 | 说明 |
80+
|------|------|
81+
| `vendor/audio-capture/{platform}/audio-capture.node` | 6 个平台的原生音频二进制(cpal,来自参考项目) |
82+
| `vendor/audio-capture-src/index.ts` | 原生模块加载器(按 `${arch}-${platform}` 动态 require `.node`|
83+
84+
**修改文件:**
85+
86+
| 文件 | 变更 |
87+
|------|------|
88+
| `packages/audio-capture-napi/src/index.ts` | SoX 子进程 stub → 原生 `.node` 加载器(含 `process.cwd()` workspace 路径 fallback) |
89+
| `scripts/dev.ts` | `DEFAULT_FEATURES``"VOICE_MODE"` |
90+
| `build.ts` | `DEFAULT_BUILD_FEATURES``"VOICE_MODE"` |
91+
| `docs/features/voice-mode.md` | 追加恢复计划章节(第八节) |
92+
93+
**验证结果:**
94+
95+
- `isNativeAudioAvailable()``true`(Windows x64 原生 `.node` 加载成功)
96+
- `feature('VOICE_MODE')``ENABLED`
97+
- `bun run build` → voice 代码编入产物
98+
99+
**运行时前置条件:** claude.ai OAuth 登录 + 麦克风权限
100+
101+
---
102+
103+
## Enable Claude in Chrome MCP (2026-04-03)
104+
105+
恢复 Chrome 浏览器控制功能。`src/` 下所有 claudeInChrome 相关源码已与官方一致(0 行差异),问题出在 `@ant/claude-for-chrome-mcp` 包是 6 行 stub(返回空工具列表和 null server)。
106+
107+
**替换文件:**
108+
109+
| 文件 | 变更 |
110+
|------|------|
111+
| `packages/@ant/claude-for-chrome-mcp/src/index.ts` | 6 行 stub → 15 行完整导出 |
112+
113+
**新增文件:**
114+
115+
| 文件 | 行数 | 说明 |
116+
|------|------|------|
117+
| `packages/@ant/claude-for-chrome-mcp/src/types.ts` | 134 | 类型定义 |
118+
| `packages/@ant/claude-for-chrome-mcp/src/browserTools.ts` | 546 | 17 个浏览器工具定义 |
119+
| `packages/@ant/claude-for-chrome-mcp/src/mcpServer.ts` | 96 | MCP Server |
120+
| `packages/@ant/claude-for-chrome-mcp/src/mcpSocketClient.ts` | 493 | Unix Socket 客户端 |
121+
| `packages/@ant/claude-for-chrome-mcp/src/mcpSocketPool.ts` | 327 | 多 Profile 连接池 |
122+
| `packages/@ant/claude-for-chrome-mcp/src/bridgeClient.ts` | 1126 | Bridge WebSocket 客户端 |
123+
| `packages/@ant/claude-for-chrome-mcp/src/toolCalls.ts` | 301 | 工具调用路由 |
124+
125+
**不需要 feature flag,不需要改 dev.ts/build.ts,不改 src/ 下任何文件。**
126+
127+
**运行时依赖:** Chrome 浏览器 + Claude in Chrome 扩展(https://claude.ai/chrome)
128+
129+
---
130+
3131
## OpenAI 接口兼容 (2026-04-03)
4132

5133
**分支**: `feature/openai`

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,10 @@
3636
- [x] 添加自定义 GrowthBook 支持 (GB 也是开源的, 现在你可以配置一个自定义的遥控平台) [文档](https://ccb.agent-aura.top/docs/internals/growthbook-adapter)
3737
- [x] 自定义 login 模式, 大家可以用这个配置 Claude 的模型!
3838
- [x] 修复搜索工具的 rg 缺失问题(需要重新 bun i)
39-
- [ ] OpenAI 接口兼容! /login 然后配置 OpenAI 平台即可!
39+
- [x] OpenAI 接口兼容! /login 然后配置 OpenAI 平台即可!
40+
- [x] Chrome use 支持(暂时浏览器插件要订阅权限,万恶的牢 A) 感谢 @amDosion
41+
- [x] Computer use 支持 感谢 @amDosion
42+
- [x] /voice 支持 @amDosion
4043
- [ ] V6 大规模重构石山代码, 全面模块分包
4144
- [ ] V6 将会为全新分支, 届时 main 分支将会封存为历史版本
4245

build.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ rmSync(outdir, { recursive: true, force: true });
1010

1111
// Default features that match the official CLI build.
1212
// Additional features can be enabled via FEATURE_<NAME>=1 env vars.
13-
const DEFAULT_BUILD_FEATURES = ["AGENT_TRIGGERS_REMOTE"];
13+
const DEFAULT_BUILD_FEATURES = ["AGENT_TRIGGERS_REMOTE", "CHICAGO_MCP", "VOICE_MODE"];
1414

1515
// Collect FEATURE_* env vars → Bun.build features
1616
const envFeatures = Object.keys(process.env)

0 commit comments

Comments
 (0)