/
GreyCat
/
better-clawd
Обзор
Документация
Войти
/
GreyCat
/
better-clawd
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/utils/computerUse/inputLoader.ts
30 строк
1 KB
x1xhlol
initial commit
01 апр 2026, 15:19
01 апр 2026, 15:19
420d415
Код
Авторство
О чём код?
import type { ComputerUseInput, ComputerUseInputAPI, } from '@ant/computer-use-input' let cached: ComputerUseInputAPI | undefined /** * Package's js/index.js reads COMPUTER_USE_INPUT_NODE_PATH (baked by * build-with-plugins.ts on darwin targets, unset otherwise — falls through to * the node_modules prebuilds/ path). * * The package exports a discriminated union on `isSupported` — narrowed here * once so callers get the bare `ComputerUseInputAPI` without re-checking. * * key()/keys() dispatch enigo work onto DispatchQueue.main via * dispatch2::run_on_main, then block a tokio worker on a channel. Under * Electron (CFRunLoop drains the main queue) this works; under libuv * (Node/bun) the main queue never drains and the promise hangs. The executor * calls these inside drainRunLoop(). */ export function requireComputerUseInput(): ComputerUseInputAPI { if (cached) return cached // eslint-disable-next-line @typescript-eslint/no-require-imports const input = require('@ant/computer-use-input') as ComputerUseInput if (!input.isSupported) { throw new Error('@ant/computer-use-input is not supported on this platform') } return (cached = input) }