browser4-cli 4.12.3 → 4.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/bin/browser4-cli-darwin-arm64 +0 -0
- package/bin/browser4-cli-darwin-x64 +0 -0
- package/bin/browser4-cli-linux-arm64 +0 -0
- package/bin/browser4-cli-linux-musl-arm64 +0 -0
- package/bin/browser4-cli-linux-musl-x64 +0 -0
- package/bin/browser4-cli-linux-x64 +0 -0
- package/bin/browser4-cli-win32-x64.exe +0 -0
- package/package.json +1 -1
- package/scripts/install-browser4-cli.ps1 +1 -1
- package/scripts/install-browser4-cli.sh +1 -1
- package/scripts/tests/install-browser4-cli.tests.ps1 +5 -7
- package/scripts/tests/install-browser4-cli.tests.sh +3 -3
package/README.md
CHANGED
|
@@ -38,15 +38,15 @@ English | [简体中文](README.zh.md) | [中国镜像](https://gitee.com/platon
|
|
|
38
38
|
|
|
39
39
|
## 🌟 Introduction
|
|
40
40
|
|
|
41
|
-
💖 **Browser4
|
|
41
|
+
💖 **Browser4 — an AI-native browser engine for autonomous agents, intelligent extraction, and large-scale web automation.** 💖
|
|
42
42
|
|
|
43
43
|
### ✨ Key Capabilities
|
|
44
44
|
|
|
45
|
-
* 🤖 **Agent Browser** —
|
|
46
|
-
*
|
|
47
|
-
* ⚡ **
|
|
48
|
-
* 🧬 **
|
|
49
|
-
* 📦 **
|
|
45
|
+
* 🤖 **Agent Browser** — Enable AI agents to browse, interact, and automate real-world websites.
|
|
46
|
+
* 🧠 **ML-Powered Extraction** — Learn page structures and extract structured data without LLM token costs.
|
|
47
|
+
* ⚡ **High-Performance Runtime** — Coroutine-safe architecture supporting 100k–200k complex page visits per machine per day.
|
|
48
|
+
* 🧬 **Hybrid Intelligence** — Combine LLM, ML, X-SQL, and selectors for robust extraction and experience reuse.
|
|
49
|
+
* 📦 **Enterprise-Scale Automation** — Swarm crawling, CDP-native control, batch jobs, stateful sessions, plugins, extensions, and more.
|
|
50
50
|
|
|
51
51
|
## Quick Start
|
|
52
52
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -318,7 +318,7 @@ function Get-DownloadUrls {
|
|
|
318
318
|
} else {
|
|
319
319
|
# Use 'latest' redirect for GitHub, 'latest' symlink for OSS
|
|
320
320
|
$ghUrl = "https://github.com/$GITHUB_REPO/releases/latest/download/$BinaryName"
|
|
321
|
-
$ossUrl = "$OSS_BASE/releases/download
|
|
321
|
+
$ossUrl = "$OSS_BASE/releases/latest/download/$BinaryName"
|
|
322
322
|
}
|
|
323
323
|
|
|
324
324
|
if ($Source -eq "github") {
|
|
@@ -330,7 +330,7 @@ get_download_urls() {
|
|
|
330
330
|
else
|
|
331
331
|
# Use 'latest' redirect for GitHub, 'latest' symlink for OSS
|
|
332
332
|
local gh_url="https://github.com/${GITHUB_REPO}/releases/latest/download/${binary_name}"
|
|
333
|
-
local oss_url="${OSS_BASE}/releases/download
|
|
333
|
+
local oss_url="${OSS_BASE}/releases/latest/download/${binary_name}"
|
|
334
334
|
fi
|
|
335
335
|
|
|
336
336
|
case "$SOURCE" in
|
|
@@ -163,7 +163,7 @@ Test "locate shows correct GitHub latest/download URL" {
|
|
|
163
163
|
}
|
|
164
164
|
|
|
165
165
|
Test "locate shows correct OSS download/latest URL" {
|
|
166
|
-
if ($r.Output -notmatch 'oss-cn-beijing.*?releases/download/
|
|
166
|
+
if ($r.Output -notmatch 'oss-cn-beijing.*?releases/latest/download/') {
|
|
167
167
|
$lines = ($r.Output -split '\n' | Where-Object { $_ -match 'ownload' }) -join '; '
|
|
168
168
|
throw "OSS latest URL not found. Download lines: $lines"
|
|
169
169
|
}
|
|
@@ -379,9 +379,6 @@ Write-Host "--- New-Symlinks ---" -ForegroundColor Cyan
|
|
|
379
379
|
else { $null }
|
|
380
380
|
|
|
381
381
|
if ($existingPath) {
|
|
382
|
-
$beforeTime = (Get-Item $existingPath).LastWriteTime
|
|
383
|
-
Start-Sleep -Milliseconds 200
|
|
384
|
-
|
|
385
382
|
Invoke-WithPath -Path $tempDir -Action {
|
|
386
383
|
New-Symlinks -BinaryName $testBinaryName -InstallDir $tempDir -PlatformKey $testPlatformKey
|
|
387
384
|
}
|
|
@@ -394,9 +391,10 @@ Write-Host "--- New-Symlinks ---" -ForegroundColor Cyan
|
|
|
394
391
|
if (-not $afterPath) {
|
|
395
392
|
throw "b4 link disappeared after update"
|
|
396
393
|
}
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
394
|
+
# Timestamp check is unreliable: hard links share the underlying
|
|
395
|
+
# inode's mtime and may not change when the link is recreated.
|
|
396
|
+
# Symbolic links get a fresh timestamp, but the primary assertion
|
|
397
|
+
# is that the link survived the update.
|
|
400
398
|
}
|
|
401
399
|
} else {
|
|
402
400
|
Write-Host " SKIP New-Symlinks updates b4 (precondition: initial link creation failed)" -ForegroundColor Yellow
|
|
@@ -174,7 +174,7 @@ test "latest mode uses GitHub latest/download pattern" bash -c "
|
|
|
174
174
|
"
|
|
175
175
|
|
|
176
176
|
test "latest mode uses OSS download/latest pattern" bash -c "
|
|
177
|
-
bash '$INSTALL_SCRIPT' --locate 2>&1 | grep -q 'oss-cn-beijing.*releases/download/
|
|
177
|
+
bash '$INSTALL_SCRIPT' --locate 2>&1 | grep -q 'oss-cn-beijing.*releases/latest/download/'
|
|
178
178
|
"
|
|
179
179
|
|
|
180
180
|
test "versioned mode uses tag-based URLs" bash -c "
|
|
@@ -185,8 +185,8 @@ test "GitHub URL NOT using broken OSS pattern" bash -c "
|
|
|
185
185
|
! bash '$INSTALL_SCRIPT' --locate 2>&1 | grep 'github.com' | grep -q 'releases/download/latest'
|
|
186
186
|
"
|
|
187
187
|
|
|
188
|
-
test "OSS URL NOT using broken
|
|
189
|
-
! bash '$INSTALL_SCRIPT' --locate 2>&1 | grep 'oss-cn-beijing' | grep -q 'releases/latest
|
|
188
|
+
test "OSS URL NOT using broken download/latest pattern" bash -c "
|
|
189
|
+
! bash '$INSTALL_SCRIPT' --locate 2>&1 | grep 'oss-cn-beijing' | grep -q 'releases/download/latest'
|
|
190
190
|
"
|
|
191
191
|
|
|
192
192
|
echo ""
|