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
pup_credential_reveal is local-only by design; bridges hosted on the box need a fill verb that keeps the secret inside ab
What happened (measured 2026-10-12, ab 2.1.174 on adom_drew2)
The SOLIDWORKS bridge (adom/solidworks-bridge 0.9.24, a Rust exe hosted by ab on the same machine) asked for a vault login to fill the 3DEXPERIENCE sign-in window that SOLIDWORKS/Visualize raise when the platform session lapses:
pup_credentials {}over the bridge callback → ok (hosts + usernames, no secret). The vault holdsiam.3ds.com.pup_credential_reveal {host:"iam.3ds.com", reason}over the bridge callback → refused:
pup_credential_reveal requires a VERIFIED local transport (ab 2.0.96+ X-Adom-Verified-Origin: local); this request arrived with origin "bridge"
That refusal is correct under the current rule (the secret goes only to a LOCAL desktop assistant), and the bridge does not try any other route. But it leaves no in-policy way for a bridge that runs ON the box to sign a native app into its own login window, and the user has to type the password at the keyboard every time the session lapses (every couple of weeks on 3DEXPERIENCE SOLIDWORKS for Makers).
Ask: a fill that never hands the secret to the caller
A verb that lets ab itself put a vault secret into a native control, so the secret never leaves ab's process, e.g.
desktop_credential_fill {host, hwnd, automationId|name, reason, submit?: {automationId|name}}
- ab resolves
hostin the vault, shows the usual consent toast (naming the thread + reason), sets the control by UIA ValuePattern (or types it with SendInput asdesktop_type {sensitive:true}already does), optionally invokes a submit button, and returns only{filled:true, host, username}. - Allowed from origin
bridgeandrelay(the caller never sees the value), refused when the control is not an Edit, when the window is not foreground-safe, or when the user is typing (thedesktop_typeidle rule). - Measured facts that make it easy: on the 3DEXPERIENCE pages the password field is found by
desktop_find_control {hwnd, automationId:"password"}and acceptsdesktop_ui_set(settable:true); the username field isautomationId:"username"; "Log in" is a plain Button.
Alternative, smaller: let a bridge that ab itself hosts on this box present a verified-local origin for pup_credential_reveal (ab knows which process it spawned). The fill verb is better because the secret stays inside ab.
Where the bridge stands
0.9.25 of the SOLIDWORKS bridge reports this refusal as sign_in_vault_policy with ab's message and the two ways out (the user types on the page the bridge has already advanced; or this verb once it exists). Details and the measured login flow: the page's solidworks-sign-in skill and docs/LAUNCH-RESILIENCE.md.