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
Offload asks from the fusion bridge Rust port: close_window, owner/pid/hung on list_windows, wait_for_window, inline shotId, job-breakaway launch, profile-pinned open_url, rect-fraction click
Context: the fusion bridge is being ported to a Rust core (Windows crate ours, a Mac crate Kyle can adopt) and the rule for the port is that every desktop touch goes through ab. An audit of the bridge found no local UIA (all of it is desktop_ui_tree / desktop_ui_click / desktop_ui_set / desktop_find_control - 23 distinct ab verbs across 82 call sites) but about 35 raw Win32 calls via ctypes. Most map to verbs that already exist (list_windows, find_window, get_foreground, bring_to_front, set_window_state, screenshot_window, press_key, type, user_idle_ms) and will be replaced. The rest need these, filed together so the offload can finish:
desktop_close_window {hwnd, forceAfterMs?}- graceful WM_CLOSE with optional force. The bridge posts WM_CLOSE itself today (10 sites).desktop_list_windowsrows: addowner(GW_OWNER hwnd),pid,image,minimized,maximized,enabled,hung.owneris what makes Fusion's seat / sign-in modal detector deterministic (an owned, landscape, short popup);hungdistinguishes a wedged Fusion from a busy one. We currently re-enumerate with EnumWindows + GetWindow just to get owner.desktop_wait_for_window {titleContains | className | pid, state: "present" | "absent", timeoutMs}- event-driven (WinEvent hook) and returns the matching row. Replaces four polling loops in the bridge: dialog appeared, dialog closed (the window list lags a beat, which produced a false 'still open' today), popup menu open, Fusion main window up.- Screenshot verbs: return
coordMap.shotIdinline on the direct-API response. It lives only in the screenshot's sidecar file today, which a bridge cannot read, so the zero-mathdesktop_click {space:"image", shotId}path was unreachable from inside the bridge (measured: the CEF-dialog click silently clicked nothing until we fell back to rect fractions). launch_process {breakawayFromJob: true}(and explicitdetached) so the Fusion launch itself can go through ab instead of a local CreateProcess with CREATE_BREAKAWAY_FROM_JOB.desktop_open_url {profileDirectory}or accept an nbrowser profile key, so a sign-in URL can be pinned to the browser profile that owns the Autodesk session. Today that forces a local Popen of chrome with --profile-directory.- Small:
desktop_click {hwnd, fx, fy}addressing a point as a fraction of the window's own rect, for CEF dialogs that expose nothing to UIA (Fusion's Update / Create New Version / Up to Date boxes are answered by rect fraction today).
Each of these removes a class of hand-rolled Win32 from a bridge; 2, 3 and 4 also matter to any other bridge that drives a CEF- or Qt-heavy app.