feat(cua-computer): add experimental Windows/Linux computer-use fulfiller (#112267)

* feat(cua-computer): add experimental Windows/Linux computer-use fulfiller

Bundled plugin that fulfills the capability-based computer.act + screen.snapshot
node contract on Windows and Linux by supervising a pinned cua-driver 0.10.x
daemon over MCP stdio. macOS keeps the Peekaboo fulfiller; this plugin is
disabled by default and never available on darwin.

Grounded in cua-driver 0.10.0 source (tool schemas, refusal codes, coordinate
spaces, session/daemon lifecycle). Notable safety and correctness properties:
- Deny-by-default env allowlist so OpenClaw secrets (provider/channel tokens,
  CUA_API_KEY) never reach the separately installed daemon; telemetry and
  update checks forced off.
- Version-gated handshake (exact-minor pin + capability/schema version),
  time-bounded so a corrected driver recovers without a node restart.
- Robust daemon supervision: full readiness-budget polling, startup-race
  tolerance, signal-death and spawn-error recovery, shared-daemon lifecycle
  (never killed on dispose).
- Frame authorization preserved within upstream limits (generation + full live
  geometry; capture refused when screen and screenshot geometry diverge).
- Action mapping refuses inputs cua-driver cannot faithfully deliver:
  layout-shifted keys, modifier-held drag/scroll, Linux modifier clicks,
  hold_key/mouse down-up, non-positive scroll; drag duration clamped.

* fix(cua-computer): satisfy lint, test-types, dead-code, and docs-map gates
This commit is contained in:
Peter Steinberger
2026-07-21 05:58:04 -07:00
committed by GitHub
parent a370785bab
commit f695be341c
19 changed files with 2601 additions and 10 deletions
+4
View File
@@ -17,6 +17,10 @@
- "docs/nodes/camera.md"
- "docs/nodes/location-command.md"
- "docs/platforms/linux.md"
"plugin: cua-computer":
- changed-files:
- any-glob-to-any-file:
- "extensions/cua-computer/**"
"plugin: pixverse":
- changed-files:
- any-glob-to-any-file: