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
CLI still carries bridge-specific code paths (pup/fusion/kicad wrappers, timeouts, hints); replace with the generic dynamic route + manifest budgets
Follow-up to #211 (the hand-written bridge verb catalogs, removed in 2.1.144). The same rule, "ab stays generic; a bridge owns everything about its verbs", is still broken by CLI-side code in cli/src/commands.rs::run_inner:
- pup: ~60
pup_*/browser_*match arms with per-verb timeouts, plus CLI-side wrappers (browser_open_windowURL analysis and hints,browser_fetch_url,pup_lower_os_windowfallback,pup_forward_first).relay::browser_commandis a pup-specific route. - fusion360:
fusion_start/fusion_dismiss_blocking_dialogs"forward first, fall back to ab's local implementation" (fusion_forward_first, ~400 lines of local Fusion launch orchestration,fusion_close_window),fusion_apply_instapcb_rules/fusion_load_design_rules, and a per-verb timeout table forfusion_*that "must match ADDIN_COMMAND_TIMEOUTS in bridges/fusion360/server.py" (a file that no longer exists). - kicad: a 140 s budget and post-hoc
_hints forkicad_open_*/window_info/screenshot_allappended by the CLI. help_printerstill names pup/kicad/fusion inis_help_namespace(kept soadom-bridge pupprints the pointer rather than an unknown-verb error; fine, but the list should come from the box's bridge_list too).
None of this is wrong today, which is why it survived, but every line is a copy of a bridge's knowledge that will drift the way the catalog did. The generic replacement already exists: a bridge verb is relay::desktop_command("dynamic", verb, args, budget), where the budget comes from the bridge's manifest (timeouts.default / timeouts.verbs, which bridge.json already supports and ab already reads server-side), and any hint belongs in the bridge's OWN reply. Plan: (1) make the dynamic path read the manifest budget through bridge_info (cached per process) so the CLI needs no per-verb table; (2) delete the pup/fusion/kicad arms and the local Fusion fallback (fusion-bridge 1.10 answers every one of those verbs); (3) move the three CLI-appended kicad hints into kicad-bridge's replies (issue on adom/kicad-bridge). Needs a pup + fusion + kicad smoke run on a fleet box before shipping, so it is its own release rather than part of #211.