app
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
← Commit history
Flowchart full brand cutover: AD->Bridge, HD/Hydrogen Desktop->Hydrogen, pup_* verbs, v2.0.7
1 file changed
+12−12
docs/arch-flow.svg+12−12@@ -18,7 +18,7 @@ <rect x="0" y="0" width="1120" height="1440" fill="#0b0f14"/> <text x="560" y="46" text-anchor="middle" class="h" font-size="26">Adom Bridge — how it works</text>- <text x="560" y="72" text-anchor="middle" class="t">One local bridge between Adom's cloud AI and your Windows machine · v1.9.79</text>+ <text x="560" y="72" text-anchor="middle" class="t">One local bridge between Adom's cloud AI and your Windows machine · v2.0.7</text> <!-- TIER 1: CLOUD --> <rect x="360" y="100" width="400" height="72" rx="14" fill="#0e1a2b" stroke="#1e3a5f"/>@@ -46,7 +46,7 @@ <text x="235" y="384" class="t">Tauri v2 · Rust · signed · runs in your tray</text> <!-- INBOUND column -->- <text x="70" y="420" class="tier">▸ WHAT CONNECTS TO AD</text>+ <text x="70" y="420" class="tier">▸ WHAT CONNECTS TO BRIDGE</text> <g> <rect x="70" y="432" width="470" height="70" rx="10" fill="#111c2e" stroke="#1e3a5f"/> <text x="86" y="458" class="h" font-size="14">Relay WS client</text>@@ -55,12 +55,12 @@ <rect x="70" y="510" width="470" height="70" rx="10" fill="#111c2e" stroke="#1e3a5f"/> <text x="86" y="536" class="h" font-size="14">Direct HTTP API</text>- <text x="86" y="558" class="t">sibling apps (Hydrogen Desktop) + the CLI's auto-route</text>- <text x="86" y="574" class="mono">127.0.0.1:47200 (host.docker.internal:47200 from HD's container)</text>+ <text x="86" y="558" class="t">sibling apps (Hydrogen) + the CLI's auto-route</text>+ <text x="86" y="574" class="mono">127.0.0.1:47200 (host.docker.internal:47200 from Hydrogen's container)</text> <rect x="70" y="588" width="470" height="70" rx="10" fill="#111c2e" stroke="#1e3a5f"/> <text x="86" y="614" class="h" font-size="14">Control API — sugar routes</text>- <text x="86" y="636" class="t">HD drives embedded mode + AD's auto-update</text>+ <text x="86" y="636" class="t">Hydrogen drives embedded mode + Bridge's auto-update</text> <text x="86" y="652" class="mono">POST /embedded/enter·release /update/status·check·apply</text> <rect x="70" y="666" width="470" height="70" rx="10" fill="#111c2e" stroke="#1e3a5f"/>@@ -70,7 +70,7 @@ </g> <!-- OUTBOUND column -->- <text x="586" y="420" class="tier">▸ WHAT AD DRIVES</text>+ <text x="586" y="420" class="tier">▸ WHAT BRIDGE DRIVES</text> <g> <rect x="586" y="432" width="470" height="150" rx="10" fill="#0f1d1a" stroke="#134e4a"/> <text x="602" y="458" class="h" font-size="14">Your Windows OS · core verbs</text>@@ -82,7 +82,7 @@ <rect x="586" y="590" width="470" height="68" rx="10" fill="#0f1d1a" stroke="#134e4a"/> <text x="602" y="616" class="h" font-size="14">Managed runtimes · no UAC, no firewall</text>- <text x="602" y="638" class="t">AD provisions Node + Python for bridges</text>+ <text x="602" y="638" class="t">Bridge provisions Node + Python for bridges</text> <text x="602" y="654" class="mono">system-first, else portable download → ~/.adom/adom-runtimes</text> <rect x="586" y="666" width="470" height="70" rx="10" fill="#0f1d1a" stroke="#134e4a"/>@@ -101,10 +101,10 @@ <!-- pup --> <rect x="40" y="928" width="200" height="118" rx="12" fill="#101826" stroke="#334155"/> <text x="58" y="954" class="h">Puppeteer</text>- <text x="58" y="974" class="t">Node · AD-owned</text>+ <text x="58" y="974" class="t">Node · Bridge-owned</text> <text x="58" y="996" class="t" font-size="12">drives a fresh</text> <text x="58" y="1012" class="t" font-size="12">automation browser</text>- <text x="58" y="1034" class="mono" font-size="11">browser_*</text>+ <text x="58" y="1034" class="mono" font-size="11">pup_*</text> <!-- kicad --> <rect x="256" y="928" width="200" height="118" rx="12" fill="#101826" stroke="#334155"/>@@ -134,7 +134,7 @@ <rect x="904" y="928" width="176" height="118" rx="12" fill="#101826" stroke="#334155"/> <text x="922" y="954" class="h">Hydrogen</text> <text x="922" y="974" class="t">external-http</text>- <text x="922" y="996" class="t" font-size="12">proxies HD's</text>+ <text x="922" y="996" class="t" font-size="12">proxies Hydrogen's</text> <text x="922" y="1012" class="t" font-size="12">control API</text> <text x="922" y="1034" class="mono" font-size="11">hd_*</text> </g>@@ -147,7 +147,7 @@ <text x="64" y="1182" class="mono" font-size="14">127.0.0.1:47200</text> <text x="330" y="1182" class="t">Direct HTTP API — <tspan class="mono" font-size="12">POST /command</tspan>, <tspan class="mono" font-size="12">GET /status</tspan>, <tspan class="mono" font-size="12">GET /ping</tspan>. Sibling apps + the CLI auto-route here.</text> <text x="64" y="1214" class="mono" font-size="14">127.0.0.1:47200</text>- <text x="330" y="1214" class="t">Control sugar — <tspan class="mono" font-size="12">/embedded/enter·release</tspan>, <tspan class="mono" font-size="12">/update/status·check·apply</tspan>. HD drives these.</text>+ <text x="330" y="1214" class="t">Control sugar — <tspan class="mono" font-size="12">/embedded/enter·release</tspan>, <tspan class="mono" font-size="12">/update/status·check·apply</tspan>. Hydrogen drives these.</text> <text x="64" y="1246" class="mono" font-size="14">127.0.0.1:47210</text> <text x="330" y="1246" class="t">ad-relauncher HTTP — swap-binary-and-restart state (dev/update path).</text> <text x="64" y="1278" class="mono" font-size="14">127.0.0.1:<stable></text>@@ -155,7 +155,7 @@ <text x="64" y="1310" class="mono" font-size="14">127.0.0.1:<dynamic></text> <text x="330" y="1310" class="t">Tunnel listeners — one per open tunnel; bytes pumped over the relay WS to a cloud-side upstream.</text> <text x="64" y="1342" class="mono" font-size="14">wss:// (outbound)</text>- <text x="330" y="1342" class="t">Relay client — AD dials OUT to the cloud relay; nothing inbound from the internet. Discovery file: <tspan class="mono" font-size="12">~/.adom/direct-api-port</tspan>.</text>+ <text x="330" y="1342" class="t">Relay client — Bridge dials OUT to the cloud relay; nothing inbound from the internet. Discovery file: <tspan class="mono" font-size="12">~/.adom/direct-api-port</tspan>.</text> <text x="64" y="1378" class="lbl" font-size="12.5">Ports are picked ephemerally and written to discovery files — never hardcoded (Hyper-V/Docker silently reserve fixed ranges). See skills/PORTS.md.</text> </g> </svg>