← Commit history

Publish 0.3.13

John Lauer ·42fbf0ba47 ·4mo ago ·parent 73bdb3a
3 files changed +118−9
README.md+52−1
@@ -108,6 +108,13 @@ point it at, via the debugger/scripting APIs - never by loading external scripts  ## What's new +- **The AI installs it for you, on a fresh machine, with nothing pre-installed** - proven end-to-end:+  a brand-new adom-desktop with no bridge and **no system Node** goes from zero to a drivable, real+  signed-in browser (the bridge reuses adom-desktop's managed Node so the native host always starts).+  See **[The AI installs it for you](#the-ai-installs-it-for-you-auto-install)**.+- **Cold-start aware** - `nbrowser_readiness` is a read-only probe (`ready` / `needs-extension`) so the+  AI knows to offer the install exactly when you need a login, and the AD-level `bridge_readiness`+  answers "what tools do I have" without spawning anything. - **Drive ALL your browser profiles** (your work + personal Chrome/Edge profiles, …), not just one - `nbrowser_profiles`   / `nbrowser_use_profile` switch instantly, with a persistent **security blocklist** to exclude any. - **Know which of your tools you're signed into** - `nbrowser_credentials` is a *read-only* query over the@@ -185,6 +192,44 @@ Removing it (or reinstalling to apply an updated build) is documented too: - background-first, the search-filter guard so you never remove the wrong extension, and the one brief narrated foreground beat the confirm bubble forces. +## The AI installs it for you (auto-install)++You never touch `chrome://extensions` yourself. This is a **proactively-offered** tool: the moment a+task needs your real, signed-in browser (log into a vendor, fill a form on an authenticated page, pull+a file behind a login), your Adom AI offers to install it and then **does the whole thing for you** -+about a minute, you click one **Start** button, that's it.++How the AI drives it (the flow, proven end-to-end on a fresh machine):++1. **Detect** - a plain request like *"log into DigiKey for me"* surfaces this tool via wiki discovery;+   the AI checks `adom-desktop nbrowser_readiness`.+2. **Install the bridge if missing** - `bridge_install {manifestUrl}`. adom-desktop provisions Node+   itself (system, or a portable no-UAC copy) and spawns the bridge - **you are never asked to install+   Node or anything else.**+3. **Offer + load the extension** - if readiness says `needs-extension`, the AI asks once (a+   `notify_user` Start button), then drives your browser's dev-mode **Load unpacked** over adom-desktop's+   generic OS verbs (push the `extension/` folder, register the native-messaging host in HKCU, toggle+   Developer mode, pick the folder), and **verifies by screenshot** that the Adom card loaded enabled+   with no errors.+4. **Confirm + drive** - `nbrowser_readiness` flips to `ready`; the AI proceeds with your task.++The recipe, hardening, and every picker/OS-dialog trap live in the **[`installing-the-extension`](https://wiki.adom.inc/adom/adom-browser-extension/files/skills/installing-the-extension/SKILL.md)**+skill; the step-by-step first-time walk-through is the **[First-time install flow](https://wiki.adom.inc/adom/adom-browser-extension/files/docs/INSTALL-FLOW.md)**.+Cardinal rule throughout: **the AI does everything it can itself - it never makes you do a step it could do.**++## Dependencies++| Dependency | Required? | Why |+|---|---|---|+| **[adom-desktop](https://wiki.adom.inc/adom/adom-desktop)** (`>= 1.9.47`) | **Yes** | This is an adom-desktop **bridge**. The container drives it entirely through the `adom-desktop` CLI (`nbrowser_*` verbs relayed to the bridge). adom-desktop also spawns the bridge, provisions its Node runtime, and auto-updates it. The one hard dependency. |+| **Node** (in adom-desktop) | Yes, **auto-provided** | The bridge + native host are Node. **You never install it** - adom-desktop provisions Node 22 (system if present, else a portable no-UAC copy) and the bridge publishes that path so the Chrome-launched host reuses it. (SDK runtime contract, v1.9.63+.) |+| **Chrome and/or Edge** | Yes | The extension loads into your real browser. Either works (one codebase); the extension ID is pinned so the native-host registration is deterministic. |+| The **MV3 extension + native-messaging host** | Yes, **installed by us** | Shipped in this repo (`extension/`, `host/`); the AI deploys + registers them during auto-install. |+| npm packages (for the bridge) | **None** | The bridge uses only Node core (`http`/`net`); its Release zip is source-only, no `node_modules`. |++The **skills package** declares `adom/adom-desktop` as its one dependency; everything else is either+provided by adom-desktop or bundled in this repo.+ ## Architecture (why it's shaped this way)  An MV3 extension can't host a listening port, and per@@ -241,9 +286,15 @@ Driving the user's real browser, verified end-to-end: - **Recording** - `record_start {method:"wgc"}` (Windows, via adom-desktop - no picker, background) or   `getdisplaymedia` (cross-platform). +**The full verb catalog is self-describing.** The list above is the 80% surface; the bridge exposes+**45 `nbrowser_*` verbs**, and **`nbrowser_describe`** returns the complete machine-readable catalog -+each verb's input/output, timeout, and a rich `hint` / `related` / `pitfalls`. Every verb response also+carries a top-level `_hint` (what happened, the next verb, the trap), so the driving AI is guided on+each call. Human-readable breakdown: [`skills/driving-the-extension/SKILL.md`](skills/driving-the-extension/SKILL.md).+ **The `chrome.debugger` "started debugging this browser" bar** appears only while a CDP verb (input / screenshot / eval) is active - the bridge lazy-attaches and idle-detaches after ~8s. Native verbs never-show it. Full breakdown + the verb-by-verb table: [`skills/driving-the-extension/SKILL.md`](skills/driving-the-extension/SKILL.md).+show it.  ### Try the handshake locally (dev) 
package.json+4−2
@@ -1,6 +1,6 @@ {   "slug": "adom-browser-extension",-  "version": "0.3.12",+  "version": "0.3.13",   "type": "app",   "title": "Adom Native Browser Extension (Chrome + Edge)",   "description": "Drive your real, logged-in Chrome/Edge from the Adom ecosystem: the nbrowser_* native-browser bridge (counterpart to pup). Multi-profile driving, a read-only credential-library query over the browser's own saved logins (Chrome + Edge), and hands-free vendor login automation, so chip CAD / datasheets download past every login wall in your real signed-in session.",@@ -49,7 +49,9 @@     "install": "./install.sh",     "uninstall": "./uninstall.sh"   },-  "dependencies": {},+  "dependencies": {+    "adom/adom-desktop": "^1.9.47"+  },   "tags": [     "browser",     "extension",
page.json+62−6
@@ -9,11 +9,11 @@     "chrome",     "edge",     "nbrowser",-    "ai-agent",-    "developer-tools",-    "vibe-coding",+    "pup",     "native-messaging",-    "adom-desktop"+    "adom-desktop",+    "credentials",+    "chip-fetcher"   ],   "status": "live",   "discovery_triggers": [@@ -57,5 +57,61 @@   },   "visibility": "public",   "brief": "Your AI's hands in your real, signed-in Chrome & Edge: build, drive, and test web apps, and log past vendor walls, in the browser you already use. The nbrowser_* native-browser bridge (pup's counterpart) - runs in your actual logged-in profile, so cookies/SSO/saved-logins/captcha all work.",-  "discovery_pitch": "The native-browser extension drives the user's REAL signed-in Chrome/Edge via nbrowser_* verbs: use it for LOGGING IN, filling forms, and downloading behind auth with their OWN saved passwords - pup cannot (it is a fresh Chrome-for-Testing with no logins). Next moves: run 'adom-desktop bridge_list' to check it is installed; if not, OFFER to install it (see the installing-the-extension skill) - never make the user do it. If this container lacks the skills, 'adom-wiki pkg install adom/adom-browser-extension'. Check readiness with 'adom-desktop nbrowser_readiness' (state:needs-extension means offer the install)."-}+  "discovery_pitch": "The native-browser extension drives the user's REAL signed-in Chrome/Edge via nbrowser_* verbs: use it for LOGGING IN, filling forms, and downloading behind auth with their OWN saved passwords - pup cannot (it is a fresh Chrome-for-Testing with no logins). Next moves: run 'adom-desktop bridge_list' to check it is installed; if not, OFFER to install it (see the installing-the-extension skill) - never make the user do it. If this container lacks the skills, 'adom-wiki pkg install adom/adom-browser-extension'. Check readiness with 'adom-desktop nbrowser_readiness' (state:needs-extension means offer the install).",+  "version": "0.3.13",+  "type": "app",+  "description": "Drive your real, logged-in Chrome/Edge from the Adom ecosystem: the nbrowser_* native-browser bridge (counterpart to pup). Multi-profile driving, a read-only credential-library query over the browser's own saved logins (Chrome + Edge), and hands-free vendor login automation, so chip CAD / datasheets download past every login wall in your real signed-in session.",+  "install": {+    "binary_name": "adom-browser-extension"+  },+  "files": [+    "install.sh",+    "uninstall.sh",+    "package.json",+    "page.json",+    "README.md",+    "docs/INSTALL-FLOW.md",+    "skills/adom-browser-extension/SKILL.md",+    "skills/cross-platform-dev/SKILL.md",+    "skills/driving-the-extension/SKILL.md",+    "skills/native-browser-safety/SKILL.md",+    "skills/installing-the-extension/SKILL.md",+    "skills/uninstalling-the-extension/SKILL.md",+    "skills/native-browser-recording/SKILL.md",+    "skills/driving-the-extension-demo/SKILL.md",+    "skills/driving-the-desktop/SKILL.md",+    "demo/adom-native-browser-demo.mp4",+    "host/native-host.js",+    "bridge/server.js",+    "skills/driving-sites/SKILL.md",+    "skills/driving-gusto/SKILL.md",+    "skills/reading-google-messages/SKILL.md",+    "screenshots/hero-v5.png",+    "PRIVACY.md",+    "privacy.html",+    "screenshots/usecase-oscilloscope.png",+    "screenshots/usecase-chipfetcher.png",+    "screenshots/usecase-symbol.png",+    "screenshots/usecase-eda.png",+    "screenshots/usecase-board.png",+    "screenshots/usecase-chipsmith.png",+    "screenshots/hero.png",+    "docs/UNINSTALL-FLOW.md",+    "screenshots/extensions-adom-card.png",+    "screenshots/install-folder-picker.png",+    "screenshots/uninstall-confirm-bubble.png",+    "screenshots/hero-v7.png"+  ],+  "scripts": {+    "install": "./install.sh",+    "uninstall": "./uninstall.sh"+  },+  "dependencies": {+    "adom/adom-desktop": "^1.9.47"+  },+  "org": "adom",+  "author": {+    "name": "John Lauer",+    "email": "[email protected]"+  }+}\ No newline at end of file