← Commit history

Publish 2.0.645

John Lauer ·9ad189ef8c ·1mo ago ·parent f186b2a
3 files changed +16−4
package.json+2−2
@@ -1,6 +1,6 @@ {   "slug": "pup-bridge",-  "version": "2.0.644",+  "version": "2.0.645",   "type": "app",   "description": "The pup SKILL PACK: the AI skills that teach a cloud/container AI how to drive the Bridge Puppeteer (pup) bridge (pup_* verbs): the everyday `pup` skill plus focused sub-skills for windows/sessions/tabs, screenshots+recording, browsers+Chrome install, and driving the Adom wiki. Installs into ~/.claude/skills + ~/.codex/skills. DOCS ONLY \u2014 this is NOT the bridge runtime. The bridge itself (the Node program that drives the browser) runs on the DESKTOP: Adom Desktop bundles it and auto-installs/updates it, and it's published separately on the Releases tab as adom-bridge-puppeteer-v<ver>.zip. The pkg version is kept in lockstep with the Release version so the page's max version row always carries BOTH a pkg tarball (skills) and a runtime zip (bridge) \u2014 a skills-only or runtime-only bump on the top row breaks constraint installs. TL;DR: pkg install = the skills for your AI; the bridge = the Release zip, which Adom Desktop manages for you.",   "keywords": [@@ -148,5 +148,5 @@       "prompt": "Download the puppeteer-bridge zip from the wiki and walk me through server.js"     }   ],-  "changelog": "pup-bridge#119: HTTP Basic/Digest auth answered from the vault on the extension lane (onAuthRequired -> /extauth, registrable-domain match); no vault entry cancels the challenge and navigate/fetch return no_credential with the host; pup_fetch_url runs on the extension lane"+  "changelog": "pup-bridge#119: HTTP auth from the vault on the extension lane (retry keyed per request); no_credential on navigate/fetch; pup_fetch_url on the extension lane; skill note" }
page.json+2−2
@@ -4,7 +4,7 @@   "slug": "pup-bridge",   "title": "Pup - Puppeteer Bridge",   "brief": "pup is the AI's own browser: a real, full Chrome on the user's desktop that the AI fully controls (a sandbox, not the user's signed-in browser). Rides Bridge; pup_* verbs open windows and tabs, navigate, screenshot, and eval JS.",-  "version": "2.0.644",+  "version": "2.0.645",   "tags": [     "skills",     "pup",@@ -168,5 +168,5 @@       "pup-bridge verbs are invoked through the adom-bridge CLI, not through a binary this package installs, so prefix rules cannot reach them."     ]   },-  "changelog": "pup-bridge#119: HTTP Basic/Digest auth answered from the vault on the extension lane (onAuthRequired -> /extauth, registrable-domain match); no vault entry cancels the challenge and navigate/fetch return no_credential with the host; pup_fetch_url runs on the extension lane"+  "changelog": "pup-bridge#119: HTTP auth from the vault on the extension lane (retry keyed per request); no_credential on navigate/fetch; pup_fetch_url on the extension lane; skill note" }\ No newline at end of file
skills/pup-credentials/SKILL.md+12
@@ -277,3 +277,15 @@ opens land already signed in. An AI toasted "Sign into claude.ai in the pup wind window was already on the user's chats. Never do that: read `landed`; `signedIn:true` means say nothing; `loginPage:true` means try the vault, Google sign-in and the site's recipe in `login-recipes/` first, and toast the user only when pup itself cannot finish. Recipes: `login-recipes/claude.ai.md`, `login-recipes/chatgpt.com.md`.++## HTTP Basic/Digest auth (the browser's native "Sign in" dialog) is answered from the vault on every lane (2.0.644)++Some downloads (SamacSys / componentsearchengine.com CAD models, vendor file servers) answer with a 401 and+Chrome pops its native "Sign in" dialog, which no page verb can see. pup answers it from the vault on both+lanes now, matched on the registrable domain (a `componentsearchengine.com` entry serves `st.`, `ms.` and+`nxp.componentsearchengine.com`). With no entry, pup CANCELS the challenge so the dialog never blocks the+window, and the next `pup_navigate` / `pup_fetch_url` returns `errorCode: no_credential` naming the host, with+the three routes: `pup_import_browser_logins {}`, `pup_vault_sync {peer, hostFilter}`, or `credential_set+{host:"<domain>", username, password}`. A stored credential the server rejects is tried once, then reported+the same way (stale password: see `login-recipes/recover-a-current-password.md`). `pup_fetch_url` works on+the extension lane too, so a gated file can be fetched as `bodyBase64` without a download dialog.