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 CHANGED
@@ -38,15 +38,15 @@ English | [简体中文](README.zh.md) | [中国镜像](https://gitee.com/platon
38
38
 
39
39
  ## 🌟 Introduction
40
40
 
41
- 💖 **Browser4: a fast, intelligent, scalable, multi-scenario agentic browser** 💖
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** — Browser automation CLI for AI agents.
46
- * ⚙️ **Machine Learning Agent** — Turns complex pages into Excel/structured data without consuming tokens.
47
- * ⚡ **Extreme Performance** — Fully coroutine-safe; supports 100k ~ 200k complex page visits per machine per day.
48
- * 🧬 **Data Extraction** — Hybrid of LLM, ML, X-SQL and selectors for clean data across chaotic pages.
49
- * 📦 **And More** - Swarm scraping, crawl, batch, loop, stateful sessions, page storage, extension, plugins, and more.
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 100k200k 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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "browser4-cli",
3
- "version": "4.12.3",
3
+ "version": "4.13.0",
4
4
  "description": "Browser automation CLI for AI agents",
5
5
  "type": "module",
6
6
  "files": [
@@ -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/latest/$BinaryName"
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/latest/${binary_name}"
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/latest/') {
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
- if ((Get-Item $afterPath).LastWriteTime -le $beforeTime) {
398
- throw "b4 link was not updated (timestamp unchanged)"
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/latest/'
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 GitHub pattern" bash -c "
189
- ! bash '$INSTALL_SCRIPT' --locate 2>&1 | grep 'oss-cn-beijing' | grep -q 'releases/latest/download'
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 ""