[claude] Add desktop automation primitives to Hermes (#1125) #1131
Open
claude
wants to merge 1 commits from
claude/issue-1125 into main
pull from: claude/issue-1125
merge into: Timmy_Foundation:main
Timmy_Foundation:main
Timmy_Foundation:feat/mnemosyne-visuals
Timmy_Foundation:feat/mnemosyne-schema
Timmy_Foundation:bezalel/rca-deadman-fratricide
Timmy_Foundation:perplexity/soul-md-pointer
Timmy_Foundation:claude/issue-1126
Timmy_Foundation:feat/mempalace-api-add-1775582323040
Timmy_Foundation:claude/issue-1112
Timmy_Foundation:groq/issue-1126
Timmy_Foundation:groq/issue-1118
Timmy_Foundation:groq/issue-1119
Timmy_Foundation:groq/issue-1047
Timmy_Foundation:groq/issue-915
Timmy_Foundation:claude/issue-1075
Timmy_Foundation:groq/issue-917
Timmy_Foundation:groq/issue-918
Timmy_Foundation:groq/issue-1103
Timmy_Foundation:groq/issue-1105
Timmy_Foundation:groq/issue-1106
Timmy_Foundation:groq/issue-1108
Timmy_Foundation:groq/issue-1092
Timmy_Foundation:groq/issue-1095
Timmy_Foundation:groq/issue-1098
Timmy_Foundation:groq/issue-913
Timmy_Foundation:timmy/issue-fix-896-897-898-910
Timmy_Foundation:claude/issue-823
Timmy_Foundation:claude/issue-879
Timmy_Foundation:claude/issue-880
Timmy_Foundation:claude/issue-827
Timmy_Foundation:claude/issue-882
Timmy_Foundation:claude/issue-826
Timmy_Foundation:claude/issue-836
Timmy_Foundation:claude/issue-832
Timmy_Foundation:claude/issue-833
Timmy_Foundation:timmy/issue-855
Timmy_Foundation:allegro/self-improvement-infra
Timmy_Foundation:ezra/deep-dive-architecture-20260405
Timmy_Foundation:claude/modularization-phase-1
Timmy_Foundation:gemini/issue-431
1 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
a3a28aa4c2 |
feat: add desktop automation primitives to Hermes (#1125)
Implements Phase 1 & 2 of the [COMPUTER_USE] epic:
- nexus/computer_use.py — four Hermes tools with safety guards and
JSONL action logging:
computer_screenshot(), computer_click(), computer_type(), computer_scroll()
Poka-yoke: right/middle clicks require confirm=True; text containing
password/token/key keywords is refused without confirm=True.
pyautogui.FAILSAFE=True enabled globally (corner-abort).
- nexus/computer_use_demo.py — end-to-end Phase 1 demo: baseline
screenshot → open browser → navigate to Gitea → evidence screenshot.
- tests/test_computer_use.py — 29 unit tests, fully headless (pyautogui
mocked); all pass.
- docs/computer-use.md — full Phase 1–3 documentation including API
reference, safety table, action-log format, and pilot recipes.
- docker-compose.desktop.yml — sandboxed Xvfb + noVNC container for
safe headless desktop automation.
The existing mcp_servers/desktop_control_server.py is unchanged; it
remains available for external/MCP callers (Bannerlord harness etc).
Fixes #1125
|