Commit Graph

5 Commits

Author SHA1 Message Date
Maciej Lisiewski
d76cce4f11 ci: apply all automatic linter fixes available 2026-10-08 17:22:54 +02:00
Teknium
63f5e0ea45 feat(computer-use): pluggable single-select computer-use providers
Third-party drivers (e.g. a Codex-style computer-use reimplementation) could
only replace cua-driver by patching core. computer_use now follows the
single-select provider model Hermes uses for memory providers, context
engines and cron schedulers:

- plugins/computer_use/__init__.py discovers bundled
  plugins/computer_use/<name>/ then user $HERMES_HOME/plugins/<name>/
  (marker: register_computer_use_provider / ComputerUseProvider) and loads
  ONLY the provider computer_use.backend names (default "cua"), read per
  call so each profile gets its own. Unselected providers are never
  imported; listing reads plugin.yaml only. An unknown/unloadable name
  returns an error naming it and the installed providers; no fallback.
- The built-in cua-driver is an ordinary bundled provider at
  plugins/computer_use/cua/ (driver implementation stays in
  tools/computer_use). tools/computer_use/backend.py gains
  ComputerUseProvider (create_backend(permission_mode=...), is_available(),
  optional doctor()).
- The tool's check_fn and backend construction go through the selected
  provider; the model-facing schema is unchanged for every provider
  (prompt-cache invariant). The test-only HERMES_COMPUTER_USE_BACKEND env
  switch is gone (tests patch _new_backend).
- General plugin discovery treats computer-use providers as exclusive
  (not eagerly imported, not listed as toggleable) and skips the bundled
  computer_use/ category, same as memory/, context_engine/, cron_providers/.
- hermes tools and the Desktop toolset panel list installed providers next
  to cua; computer-use doctor/status/permissions and the Desktop status
  payload skip cua-driver/TCC probes when another provider is selected.
2026-10-05 17:20:30 -07:00
ethernet
02f1364383 fix: reconcile Termux TUI and platform tests 2026-09-23 08:20:01 -04:00
teknium1
3fbd9cb093 fix(bot-screen): register the display.* events in the shared gateway contract; native dispatch test stubs the approver
Main gained a single typed GatewayEventMap sourced from the tui_gateway emitters
(test_gateway_event_contract), so the six display.* notifications this PR emits must be listed
there or the contract test and the desktop typecheck both fail. The native Windows/macOS
dispatch test (#109505) ran on a runner with no approver, where the approval gate blocks click/type
before dispatch; it now stubs `_request_approval` exactly like the capture-fence tests.
2026-09-13 06:45:36 -07:00
SmokeDev
37e3b7881d test(computer-use): cover native Windows and macOS registry dispatch
Signed-off-by: SmokeDev <degensmoke@gmail.com>
(cherry picked from commit d13f3425bb75acc9f99a1e8c2e40e8a42b98ee3a)
2026-09-12 19:00:08 -07:00