Adom Bridge
Public Made by Adomby adom
Adom Bridge unleashes your AI onto your full PC: full power, full safety. The AI breaks out of the container it runs in and onto your real machine, managing and running your entire laptop as you: launch apps, move files, drive any window, control KiCad, Fusion 360 or your real signed-in browser. Works with any AI, cloud or local (Claude Desktop, Claude Code, Codex), no Hydrogen required. Bridge and its bridges are an operating system for AI, with managed Node and Python runtimes, and a human-onl
request_shell_approval should be awaitable (wait:true) and grants should appear in notify_events
Context (2026-09-11, adom-vscode 1.1.49 rollout across four boxes): wsl_exec on arav-rog and winvm returned needs_approval, the dialog and toast showed, and the human clicked Approve 1 hr a few minutes later. The AI thread learned that only when it happened to re-read status.permissions.shell twenty minutes on. A relay caller is turn-based: nothing on ab's side tells it the grant landed, so the retry the refusal asks for happens whenever the caller next looks.
Two additions would close the loop, both modelled on what notify_user already does for its buttons:
- request_shell_approval {wait:true, timeoutSec:N} blocks up to N seconds and returns {granted:true, source:"timed"|"auto", expiresInSec} when the human clicks, or {granted:false, pending:true} on timeout. Same shape as notify_user wait:true.
- A shell_granted event (with expiresInSec and who granted, dialog or toast or settings) in notify_events, so a caller with several machines pending gets every grant in one poll instead of a status call per box.
Today's workaround on the caller side is a background poll of status.permissions.shell.autoApproved every 30 s; the two above make that unnecessary.