feat: 升级 @ant/computer-use-mcp — 类型安全 stub + sentinel apps
- types.ts: 替换所有 any 为真实类型 (CoordinateMode, CuSubGates,
Logger, GrantFlags, CuPermissionRequest/Response, ComputerUseHostAdapter)
- index.ts: 所有导出类型化 (DisplayGeometry, FrontmostApp, InstalledApp,
RunningApp, ScreenshotResult, CuCallToolResult 等);
targetImageSize() 实现真实缩放逻辑;
bindSessionContext() 返回类型正确的空调度器
- sentinelApps.ts: 添加 10 个 macOS 敏感应用 (Terminal, iTerm2,
Finder, System Preferences 等) 及其分类
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 08:36:12 +08:00
|
|
|
/**
|
|
|
|
|
* Sentinel apps — 需要特殊权限警告的应用列表
|
|
|
|
|
*
|
|
|
|
|
* 包含终端、文件管理器、系统设置等敏感应用。
|
|
|
|
|
* Computer Use 操作这些应用时会显示额外警告。
|
|
|
|
|
*/
|
2026-03-31 21:21:46 +08:00
|
|
|
|
feat: 升级 @ant/computer-use-mcp — 类型安全 stub + sentinel apps
- types.ts: 替换所有 any 为真实类型 (CoordinateMode, CuSubGates,
Logger, GrantFlags, CuPermissionRequest/Response, ComputerUseHostAdapter)
- index.ts: 所有导出类型化 (DisplayGeometry, FrontmostApp, InstalledApp,
RunningApp, ScreenshotResult, CuCallToolResult 等);
targetImageSize() 实现真实缩放逻辑;
bindSessionContext() 返回类型正确的空调度器
- sentinelApps.ts: 添加 10 个 macOS 敏感应用 (Terminal, iTerm2,
Finder, System Preferences 等) 及其分类
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 08:36:12 +08:00
|
|
|
type SentinelCategory = 'shell' | 'filesystem' | 'system_settings'
|
|
|
|
|
|
|
|
|
|
const SENTINEL_MAP: Record<string, SentinelCategory> = {
|
|
|
|
|
// Shell / Terminal
|
|
|
|
|
'com.apple.Terminal': 'shell',
|
|
|
|
|
'com.googlecode.iterm2': 'shell',
|
|
|
|
|
'dev.warp.Warp-Stable': 'shell',
|
|
|
|
|
'io.alacritty': 'shell',
|
|
|
|
|
'com.github.wez.wezterm': 'shell',
|
|
|
|
|
'net.kovidgoyal.kitty': 'shell',
|
|
|
|
|
'co.zeit.hyper': 'shell',
|
|
|
|
|
|
|
|
|
|
// Filesystem
|
|
|
|
|
'com.apple.finder': 'filesystem',
|
|
|
|
|
|
|
|
|
|
// System Settings
|
|
|
|
|
'com.apple.systempreferences': 'system_settings',
|
|
|
|
|
'com.apple.SystemPreferences': 'system_settings',
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const sentinelApps: string[] = Object.keys(SENTINEL_MAP)
|
|
|
|
|
|
|
|
|
|
export function getSentinelCategory(bundleId: string): SentinelCategory | null {
|
|
|
|
|
return SENTINEL_MAP[bundleId] ?? null
|
2026-03-31 21:21:46 +08:00
|
|
|
}
|