Release binaries / Build macOS ARM64 (push) Has been cancelled
Release binaries / Build macOS x64 (push) Has been cancelled
Release binaries / Build Linux ARM64 (push) Has been cancelled
Release binaries / Build Linux musl ARM64 (push) Has been cancelled
Release binaries / Build Linux musl x64 (push) Has been cancelled
Release binaries / Build Linux x64 (push) Has been cancelled
Release binaries / Build Windows x64 (push) Has been cancelled
Release binaries / Attach binaries to GitHub Release (push) Has been cancelled
Standalone product rename across the whole repo (issue: project identity): - Binary/package/repo/skill/docs: agent-browser[-stealth] → chrome-use (single binary name `chrome-use`; old aliases agent-browser/abs dropped). - Version: 0.27.0-fork.51 → 1.0.0 (drop the upstream-fork counter). - Native-messaging host: com.agent_browser.connect → com.leeguoo.chrome_use (CLI + ab-connect extension in lockstep — this is a breaking handshake change, extension bumped 0.4.2 → 0.5.0, needs a Web Store republish). - Config dir: ~/.agent-browser → ~/.chrome-use. - README/zh: reframed from "stealth fork of agent-browser" to a standalone product with a small `originally based on vercel-labs/agent-browser` credit. - Kept AGENT_BROWSER_* env vars working (63 vars across the codebase; renaming them would break every existing script/skill for no user-facing gain). Build green, 802 unit tests pass, fmt + clippy clean. Upstream attribution to vercel-labs/agent-browser preserved.
65 lines
1.9 KiB
JavaScript
65 lines
1.9 KiB
JavaScript
// Popup status page for chrome-use.
|
|
// Asks the service worker whether the native-messaging link to the local
|
|
// chrome-use CLI is live, and renders a paired / not-paired indicator.
|
|
|
|
const dot = document.getElementById('dot')
|
|
const label = document.getElementById('statusLabel')
|
|
const sub = document.getElementById('statusSub')
|
|
const hint = document.getElementById('hint')
|
|
|
|
let resolved = false
|
|
|
|
function render(state) {
|
|
resolved = true
|
|
const connected = !!(state && state.connected)
|
|
dot.classList.remove('on', 'off')
|
|
if (connected) {
|
|
dot.classList.add('on')
|
|
label.textContent = 'Connected'
|
|
const n = state.tabCount | 0
|
|
sub.textContent =
|
|
n > 0
|
|
? `bridged to the local CLI · ${n} tab${n === 1 ? '' : 's'} attached`
|
|
: 'bridged to the local CLI · ready'
|
|
hint.style.display = 'none'
|
|
} else {
|
|
dot.classList.add('off')
|
|
label.textContent = 'Not paired'
|
|
sub.textContent = 'no local chrome-use CLI linked'
|
|
hint.style.display = 'block'
|
|
}
|
|
}
|
|
|
|
function queryStatus() {
|
|
try {
|
|
chrome.runtime.sendMessage({ type: 'ab-status' }, (resp) => {
|
|
// lastError fires if the service worker can't be reached.
|
|
if (chrome.runtime.lastError) {
|
|
render({ connected: false })
|
|
return
|
|
}
|
|
render(resp)
|
|
})
|
|
} catch (e) {
|
|
render({ connected: false })
|
|
}
|
|
}
|
|
|
|
// Open the repo in a real tab (no inline handlers under MV3 CSP).
|
|
const repo = document.getElementById('repo')
|
|
if (repo) {
|
|
repo.addEventListener('click', () => {
|
|
chrome.tabs.create({ url: repo.dataset.href })
|
|
})
|
|
}
|
|
|
|
// Query now, then once more shortly after — opening the popup also nudges the
|
|
// service worker to (re)connect the host, which may complete a beat later.
|
|
queryStatus()
|
|
setTimeout(queryStatus, 700)
|
|
|
|
// Never leave the popup stuck on "Checking…" if the worker never answers.
|
|
setTimeout(() => {
|
|
if (!resolved) render({ connected: false })
|
|
}, 1500)
|