Windows Computer Use should expose or document advanced pointer/full-desktop primitives
Summary
The Windows Computer Use client exposed to Codex can be healthy for supported windowed actions while still lacking advanced pointer/full-desktop primitives that are documented or needed for some app UI-control tasks.
This is separate from the CUA native-pipe/bootstrap issue: the runtime can be up, action smokes can pass, and the missing primitives are still a real API-surface limitation.
Environment
Sanitized representative setup:
Product: Codex Desktop Windows Store app
Mode: Windows Desktop with app-server running in WSL
Computer Use plugin: openai-bundled computer-use
CUA transport: product native pipe \\.\pipe\codex-computer-use-<uuid>
Runtime: Windows node_repl sidecar with isolated runtime home
What passed
The following operations passed through computer-use-client.mjs:
- bootstrap with
setupComputerUseRuntime({ globals: globalThis }); sky.list_apps();sky.list_windows();sky.get_window(...);sky.get_window_state(...);sky.launch_app(...);sky.press_key(...);- fresh-screenshot coordinate
sky.click(...); sky.drag(...);sky.type_text(...);sky.close().
Action-level validation:
- Calculator click smoke changed display
0 -> 5; - 12-second hold-open smoke stayed responsive;
- Photoshop 2026 clean-document UI-only stress passed using supported CUA controls only: new document, brush drags, Type tool click, typed text layer, screenshot/text verification, clean close.
Missing live API surface
The live sky object exposed in this setup did not provide:
move
get_screenshot
The local candidate drag_with_button / dragWithButton was tested and rejected because it behaved like ordinary left-drag in Photoshop, not a real non-left or held-pointer primitive.
Observed status from the local API-surface smoke:
hasWindowMove=false
hasFullDesktopScreenshot=false
hasDragWithButton=true
dragWithButtonIsRejectedCandidate=true
completionRelevantGap=no-live-full-desktop-or-move-api
Why this matters
Some real app-control tasks need primitives beyond left-click, left-drag, keypress, and text:
- move pointer without clicking;
- hold pointer/button across a sequence;
- non-left-button drag;
- full-desktop screenshot/capture when task focus is not limited to one window;
- reliable gesture support for graphics/design apps and OS-level workflows.
Without these, CUA can be "working" but still unable to perform or verify certain UI tasks safely.
Expected behavior
Either:
- expose documented/supported primitives for pointer move, held-button state, non-left drag, and full-desktop capture; or
- clearly document that the Windows window2 CUA API currently supports only window-scoped actions and left-button coordinate gestures.
Suggested release-gate distinction:
CUA bootstrap: pipe +computer-use-client.mjssetup works;CUA basic actions:list_apps, window state, click/key/type/drag work;CUA advanced pointer: move/held-button/non-left/full-desktop primitives available;CUA clean close:sky.close()ends the session and later calls fail with a closed-client error.
Related issues
- #25301: CUA availability in Windows Desktop + WSL.
- #26887: separate action-tool/session issue where state calls can work but actions report inactive.