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
Route bridge consent prompts (notify_user wait+buttons: pup_credential_reveal / pup_fill_card / pup_vault_sync) into ah like ab's own permission prompts, for boxes that block toasts (Ray)
Ask: forward bridge consent prompts (notify_user with wait + buttons) into ah, the way ab's own permission prompts already are
John, 2026-09-05: Ray's box blocks all ab (Windows) toasts, so ab was changed to send its own permission prompts over to ah (Hydrogen) where Ray sees them. Bridges use the same toast rail for their consent gates and will hit the same wall. pup's gated verbs all block on a notify_user {wait:true, buttons:[...], timeoutSec} decision:
pup_credential_reveal(buttons Reveal / Deny)pup_fill_card(buttons Pay / Deny)pup_vault_sync(buttons Allow / Deny) - new, 2.0.415+pup_assisted_clickand the foreground raise also toast before acting
On a box where the toast is blocked the user never sees the prompt, the verb answers blocked_on_user until the 120 s window expires, and the AI is stuck. Nothing tells the user a decision was waiting.
What we think the fix is (extending what exists)
Treat a bridge-originated notify_user that carries wait:true + buttons as a permission prompt and push it through the SAME ab->ah channel the core permission prompts use. Everything ah needs is already on the call: title, body, the buttons[].label list, the caller's ai-thread (X-Adom-Caller-Thread / args.caller.aiThread), the delegate bridge (X-Adom-Caller-Delegate: puppeteer), and a structured reason (pup is adding an explicit reason field to every consent toast in 2.0.419 so ah can show it verbatim; the body already carries "Reason: ..."). The button the user presses in ah should resolve the pending notify_user exactly as a toast click does ({action:"<label>"}), so the bridge side needs no change.
Nice-to-have: when ah is not connected, fall back to the toast; when both are live, show both and resolve on the first press.