superbrowser-sdk 2.0.0__tar.gz → 2.0.1__tar.gz
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.
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/CHANGELOG.md +16 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/PKG-INFO +31 -10
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/README.md +18 -8
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/api-stability.md +1 -1
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/cloak-integration.md +1 -1
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/error-catalog.md +1 -1
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/migration/v1.8-to-v1.9.md +5 -5
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/platform-abstraction.md +1 -1
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/quickstart.md +2 -2
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/pyproject.toml +3 -3
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/__init__.py +1 -1
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/agent/llm/anthropic_client.py +1 -1
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/agent/llm/openai_client.py +1 -1
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/browser/cloak_backend.py +1 -1
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/browser/cloud.py +3 -3
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/browser/engine.py +3 -3
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/browser/session.py +1 -1
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/cli/__init__.py +2 -2
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/cli.py +5 -5
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/security/credential_vault.py +1 -1
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/integration/test_v1100_features.py +1 -1
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/integration/test_v195_features.py +2 -2
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_cli/test_stealth_validate.py +4 -4
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/.env.example +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/.github/workflows/dco.yml +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/.github/workflows/publish.yml +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/.github/workflows/test.yml +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/.gitignore +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/.pre-commit-config.yaml +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/CONTRIBUTING.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/Dockerfile +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/LICENSE +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/Super-Browser.png +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/00-SOURCE-INVENTORY.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/01-TRIAGE-QUEUE.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/AGENT-BROWSER-ANALYSIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/AGENT-S-ANALYSIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/BROWSER-HARNESS-ANALYSIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/BROWSER-USE-ANALYSIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/CROSS-PROJECT-SYNTHESIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/FIRECRAWL-ANALYSIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/GAP-INVENTORY.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/HERMES-AGENT-ANALYSIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/HERMES-SELF-EVOLUTION-ANALYSIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/HTTPMORPH-ANALYSIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/IMPLEMENTATION-ROADMAP.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/LAVAGUE-ANALYSIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/OPENCLAW-ANALYSIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/PATCHRIGHT-ANALYSIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/PROJECT-CONFIG.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/SESSION-STATE.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/SKYVERN-ANALYSIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/STAGEHAND-ANALYSIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/UI-TARS-ANALYSIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/UI-TARS-DESKTOP-ANALYSIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/output/CHROMECLAW-ANALYSIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/output/CLAW-VARIANTS-ASSESSMENT.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/output/E2B-ANALYSIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/output/EVOSKILL-ANALYSIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/output/GO-INFRA-ASSESSMENT.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/output/GUARDRAILS-ANALYSIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/output/KHOJ-ANALYSIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/output/LETTA-ANALYSIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/output/MCP-AGENT-ANALYSIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/output/MCP-ZERO-ANALYSIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/output/MEM0-ANALYSIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/output/OPENFGA-ANALYSIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/output/SKYLL-ANALYSIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/output/TEMPORAL-ANALYSIS.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/output/TOOL-BENCHMARK-ASSESSMENT.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/benchmarks/fixtures/behavioral.html +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/benchmarks/fixtures/dom-heavy.html +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/benchmarks/fixtures/form.html +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/benchmarks/fixtures/simple.html +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/benchmarks/v1.11.0-baseline-patchright.json +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/benchmarks/v1.11.0-baseline-patchright.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/conftest.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docker-compose.yml +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/agent-reliability.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/aiv/AIV_FRAMEWORK_v5.3.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/anti-detection-ejecta.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/api-reference.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/architecture.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/behavioral-synthesis.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/browser-networking.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/consistency-engine.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/discovery/DISCOVERY-REPORT.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/fingerprint-scoring.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/fingerprint-validation.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/gap-analysis.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/human-behavior.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/memory.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/migration/v1-to-v2.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/operating-doctrine.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/plugins.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/recording.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/rfcs/README.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/rfcs/v2-decomposition.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/rfcs/v2-track-a-api-simplification.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/rfcs/v2-track-b-network-stealth.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/rfcs/v2-track-c-behavioral-realism.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/rfcs/v2-track-d-challenge-infrastructure.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/rfcs/v2-track-e-e2e-harness.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/docs/stealth-coverage.md +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/examples/backend_selection.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/examples/basic_usage.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/examples/budget_tracking.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/examples/cloak_stealth.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/examples/error_handling.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/examples/fingerprint_scan.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/examples/human_behavior.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/examples/multi_tab_workflow.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/examples/session_persistence.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/examples/stealth_mode.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/labels/config.json +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/scripts/agent_efficiency_benchmark.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/scripts/browser_benchmark.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/scripts/run_stealth_gauntlet.sh +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/agent/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/agent/config.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/agent/debug.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/agent/delegator.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/agent/facade.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/agent/llm/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/agent/llm/browser_transport.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/agent/llm/budget_aware.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/agent/llm/factory.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/agent/llm/protocol.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/agent/loop.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/agent/loop_detector.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/agent/plugins.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/agent/registry.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/agent/router.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/agent/structured_logging.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/agent/types.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/behavioral/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/behavioral/bezier.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/behavioral/dwell.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/behavioral/fitts.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/behavioral/gauss.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/behavioral/keyboard.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/behavioral/mouse.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/behavioral/navigation.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/behavioral/orchestrator.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/behavioral/prng.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/behavioral/qwerty.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/behavioral/scroll.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/behavioral/session_seed.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/behavioral/types.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/browser/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/browser/backends/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/browser/backends/cdp_backend.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/browser/backends/patchright_backend.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/browser/backends/playwright_backend.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/browser/backends/selenium_backend.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/browser/cdp.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/browser/config.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/browser/discovery.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/browser/fetch.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/browser/injectors/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/browser/injectors/bidi_injector.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/browser/injectors/cdp_injector.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/browser/injectors/page_injector.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/browser/page.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/browser/shutdown.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/browser/tabs.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/budget/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/budget/cascade.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/budget/client.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/budget/compressor.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/budget/cost_estimator.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/budget/credential_pool.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/budget/governor.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/budget/types.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/cli/commands.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/cli/interactive.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/cli/script.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/config.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/events/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/events/bus.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/events/types.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/interaction/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/interaction/cache.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/interaction/controller.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/interaction/decorator.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/interaction/presets.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/interaction/recovery.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/interaction/snapshot.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/interaction/types.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/interaction/vision.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/memory/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/memory/integration.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/memory/store.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/memory/types.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/plugins/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/plugins/decorators.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/plugins/hooks.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/py.typed +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/recording/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/recording/persistence.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/recording/recorder.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/recording/replayer.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/recording/report.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/recording/types.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/recovery/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/recovery/checkpoint.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/recovery/classifier.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/recovery/coordinator.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/recovery/event_bus.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/recovery/format_validator.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/recovery/reflection.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/recovery/retry_tracker.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/recovery/session_recovery.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/recovery/types.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/recovery/watchdogs.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/results/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/results/output.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/results/typed.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/results/types.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/results/validation.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/security/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/security/action_redaction.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/security/approval.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/security/domain_filter.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/security/gate.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/security/injection.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/security/manager.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/security/policy.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/security/redactor.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/security/types.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/session/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/session/proxy.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/skills/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/skills/activation.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/skills/markdown.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/skills/registry.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/skills/types.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/action_policy.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/captcha.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/challenges/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/challenges/cache.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/challenges/pow.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/challenges/turnstile.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/consistency/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/consistency/dag.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/consistency/derive.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/consistency/errors.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/consistency/inject.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/consistency/inject_delivery.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/consistency/matrix.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/consistency/prng.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/consistency/rule.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/consistency/rules/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/consistency/rules/audio.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/consistency/rules/behavior.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/consistency/rules/fonts.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/consistency/rules/gpu.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/consistency/rules/locale.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/consistency/rules/navigator.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/consistency/rules/screen.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/consistency/rules/user_agent.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/diagnostics.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/ejecta/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/ejecta/audio.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/ejecta/browser_apis.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/ejecta/canvas.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/ejecta/config.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/ejecta/registry.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/ejecta/timing.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/ejecta/types.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/ejecta/webrtc.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/fingerprint_scanner.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/fingerprint_score.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/headers.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/human.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/human_config.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/ip_reputation.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/manager.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/profiles/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/profiles/data/linux-chrome-stable.json +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/profiles/data/macos-chrome-stable.json +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/profiles/data/macos-m4-chrome-stable.json +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/profiles/data/windows-chrome-stable.json +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/profiles/host_detect.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/profiles/schema.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/proxy.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/proxy_pool.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/report.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/scoring.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/tls_baselines.json +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/tls_fingerprint.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/types.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/user_agent_pool.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/validation/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/validation/checks.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/validation/harness.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/validation/report.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/stealth/validation/suite.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/testing.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/tracing/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/tracing/cost_analytics.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/tracing/flow_logger.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/tracing/middleware.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/tracing/session_db.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/tracing/sinks.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/tracing/types.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/verification/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/verification/ax_diff.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/verification/hasher.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/verification/types.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/verification/verifier.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/vision/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/vision/cache.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/vision/controller.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/vision/coords.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/vision/factory.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/vision/ocr.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/vision/providers.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/vision/types.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/conftest.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/discovery/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/discovery/conftest.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/discovery/test_task_01_example_nav.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/discovery/test_task_02_google_search.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/discovery/test_task_03_github_login.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/discovery/test_task_04_amazon_search.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/discovery/test_task_05_google_forms.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/discovery/test_task_06_google_flights.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/discovery/test_task_07_wikipedia_extract.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/discovery/test_task_08_reddit_spa.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/discovery/test_task_09_form_complex.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/discovery/test_task_10_signup_flow.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/e2e/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/e2e/conftest.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/e2e/test_behavioral_realism.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/e2e/test_challenge_detection.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/e2e/test_interaction.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/e2e/test_live_navigation.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/e2e/test_multi_tab.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/e2e/test_navigation.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/e2e/test_session_persistence.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/e2e/test_stealth_overhead.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/e2e_v1_3_journey.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/integration/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/integration/conftest.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/integration/test_config_composition.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/integration/test_engine_backends.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/integration/test_error_paths.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/integration/test_facade_smoke.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/integration/test_full_lifecycle.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/integration/test_multi_backend.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/integration/test_performance_smoke.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/integration/test_playwright_integration.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/integration/test_public_api.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/integration/test_session_persistence.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/integration/test_stealth_abstraction.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/integration/test_v150_features.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/integration/test_v160_features.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/integration/test_v170_features.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/integration/test_v180_features.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/integration/test_v190_features.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/integration/test_v191_features.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/integration/test_v192_features.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/integration/test_v193_features.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/integration/test_v194_features.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/integration/test_v1_3_features.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/integration/test_v1_4_features.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/pattern_validation.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/stealth_detection/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/stealth_detection/conftest.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/stealth_detection/test_chrome_runtime.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/stealth_detection/test_cli_switches.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/stealth_detection/test_headless_indicators.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/stealth_detection/test_live_sites.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/stealth_detection/test_runtime_enable.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/stealth_detection/test_tls_fingerprint.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/stealth_detection/test_webdriver.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_action_timeout.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_browser_transport.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_controller_rebinding.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_debug_mode.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_default_tooling.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_delegator.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_error_screenshots.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_facade.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_facade_security.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_facade_security_control.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_facade_security_file_tab.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_facade_security_network.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_facade_security_session.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_fail_fast.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_llm.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_llm_budget.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_llm_production.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_llm_streaming.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_loop.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_loop_detector.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_prompt_isolation.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_registry.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_retry_budget.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_streaming.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_structured_logging.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_tab_cap.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_task_02.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_agent/test_types.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_behavioral/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_behavioral/test_behavioral.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_behavioral/test_dwell.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_behavioral/test_human_config_dwell.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_behavioral/test_navigation.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_behavioral/test_orchestrator.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_behavioral/test_session_seed.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_benchmark/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_benchmark/test_efficiency.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_browser/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_browser/test_cdp.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_browser/test_cdp_backend.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_browser/test_cloak_backend.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_browser/test_cloak_docs.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_browser/test_cloak_integration.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_browser/test_config.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_browser/test_discovery.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_browser/test_engine_protocol.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_browser/test_fetch.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_browser/test_injectors.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_browser/test_page.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_browser/test_patchright_backend.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_browser/test_playwright_backend.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_browser/test_selenium_backend.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_browser/test_session.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_browser/test_shutdown.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_budget/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_budget/test_cascade.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_budget/test_cascade_governor.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_budget/test_circuit_breaker.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_budget/test_client.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_budget/test_compressor.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_budget/test_cost_estimator.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_budget/test_credential_pool.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_budget/test_governor.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_budget/test_types.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_cli/test_interactive.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_cli/test_script.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_cli/test_stealth_check.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_config.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_ejecta/test_audio.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_ejecta/test_batch37_integration.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_ejecta/test_batch38_integration.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_ejecta/test_browser_apis.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_ejecta/test_canvas.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_ejecta/test_integration.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_ejecta/test_timing.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_ejecta/test_webrtc.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_events/test_event_bus.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_events/test_lifecycle_hooks.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_governance_docs.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_interaction/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_interaction/test_cache.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_interaction/test_controller.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_interaction/test_decorator.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_interaction/test_injection.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_interaction/test_page_change.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_interaction/test_presets.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_interaction/test_recovery.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_interaction/test_snapshot.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_interaction/test_types.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_interaction/test_vision.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_memory/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_memory/test_cli_config.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_memory/test_integration.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_memory/test_store.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_recording/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_recording/test_persistence.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_recording/test_recorder.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_recording/test_replayer.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_recovery/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_recovery/test_checkpoint.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_recovery/test_classifier.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_recovery/test_coordinator.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_recovery/test_event_bus.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_recovery/test_format_validator.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_recovery/test_reflection.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_recovery/test_retry_tracker.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_recovery/test_session_recovery.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_recovery/test_types.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_recovery/test_watchdogs.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_results/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_results/test_batch40_integration.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_results/test_categories.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_results/test_output.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_results/test_typed.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_results/test_types.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_results/test_validation.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_security/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_security/test_approval.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_security/test_credential_vault.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_security/test_domain_filter.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_security/test_injection.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_security/test_manager.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_security/test_policy.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_security/test_redaction_pipeline.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_security/test_redactor.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_security/test_types.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_session/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_session/test_proxy.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_skills/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_skills/test_activation.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_skills/test_integration.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_skills/test_markdown.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_skills/test_registry.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_skills/test_types.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_action_policy.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_captcha.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_captcha_resolution.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_challenge_cache.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_challenge_config.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_consistency/test_consistency.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_consistency_inject.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_diagnostics.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_e2e_lifecycle.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_e2e_reporting.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_fingerprint_scanner.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_fingerprint_score.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_headers.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_human.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_human_behavior_v2.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_ip_reputation.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_kasada_detection.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_manager.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_network_stealth_config.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_profiles.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_proxy.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_proxy_pool.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_stealth_bridge.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_tls_fingerprint.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_turnstile_detection.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_types.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_user_agent_pool.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_stealth/test_validation.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_tracing/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_tracing/test_cost_analytics.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_tracing/test_flow_logger.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_tracing/test_middleware.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_tracing/test_session_db.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_tracing/test_sinks.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_tracing/test_types.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_verification/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_verification/test_ax_diff.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_verification/test_hasher.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_verification/test_types.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_verification/test_verifier.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_vision/__init__.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_vision/test_cache.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_vision/test_controller.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_vision/test_coords.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_vision/test_factory.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_vision/test_ocr.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_vision/test_providers.py +0 -0
- {superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/tests/test_vision/test_types.py +0 -0
|
@@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [2.0.1] — 2026-06-15
|
|
11
|
+
|
|
12
|
+
### Fixed — Hotfix: PyPI distribution naming
|
|
13
|
+
|
|
14
|
+
- **`[all]` extra broken on published v2.0.0**: The self-reference in
|
|
15
|
+
`pyproject.toml` `[all]` extra still pointed to `super-browser` instead of
|
|
16
|
+
`superbrowser-sdk`. Fixed in PR #146 but never republished.
|
|
17
|
+
- **CLI entry point name**: Published v2.0.0 had `super-browser` as the
|
|
18
|
+
console script name instead of `superbrowser`.
|
|
19
|
+
- **Doc version headers**: Updated to v2.0.1.
|
|
20
|
+
|
|
21
|
+
No code changes — packaging fix only. All 2,758 tests unchanged.
|
|
22
|
+
|
|
10
23
|
## [2.0.0] — 2026-06-15
|
|
11
24
|
|
|
12
25
|
### Overview
|
|
@@ -15,6 +28,9 @@ The v2.0 release delivers five tracks of improvement to the Super Browser
|
|
|
15
28
|
anti-detection agent browser SDK. All tracks are implementation-complete with
|
|
16
29
|
2,758 passing tests across 3 operating systems and 2 Python versions.
|
|
17
30
|
|
|
31
|
+
**Distribution name:** `superbrowser-sdk` (`pip install superbrowser-sdk`)
|
|
32
|
+
**Import name:** `super_browser` (`import super_browser`)
|
|
33
|
+
|
|
18
34
|
### Breaking Changes — Track A: API Simplification (Waves 14-16)
|
|
19
35
|
|
|
20
36
|
- **`SuperBrowserConfig` removed.** All fields flattened onto `AgentConfig`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: superbrowser-sdk
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.1
|
|
4
4
|
Summary: Anti-detection agent browser SDK — stealth, budget governance, security guardrails, and structured error recovery behind one async facade
|
|
5
5
|
Project-URL: Homepage, https://github.com/Octo-Lex/Super-Browser
|
|
6
6
|
Project-URL: Documentation, https://github.com/Octo-Lex/Super-Browser#readme
|
|
@@ -27,7 +27,18 @@ Classifier: Topic :: Software Development :: Testing
|
|
|
27
27
|
Classifier: Typing :: Typed
|
|
28
28
|
Requires-Python: >=3.11
|
|
29
29
|
Provides-Extra: all
|
|
30
|
-
Requires-Dist:
|
|
30
|
+
Requires-Dist: aiohttp>=3.9; extra == 'all'
|
|
31
|
+
Requires-Dist: anthropic>=0.40; extra == 'all'
|
|
32
|
+
Requires-Dist: cryptography>=42.0; extra == 'all'
|
|
33
|
+
Requires-Dist: httpx>=0.27; extra == 'all'
|
|
34
|
+
Requires-Dist: openai>=1.0; extra == 'all'
|
|
35
|
+
Requires-Dist: patchright>=1.0; extra == 'all'
|
|
36
|
+
Requires-Dist: pillow>=10.0; extra == 'all'
|
|
37
|
+
Requires-Dist: playwright>=1.40; extra == 'all'
|
|
38
|
+
Requires-Dist: psutil>=5.9; extra == 'all'
|
|
39
|
+
Requires-Dist: selenium>=4.0; extra == 'all'
|
|
40
|
+
Requires-Dist: webdriver-manager>=4.0; extra == 'all'
|
|
41
|
+
Requires-Dist: websockets>=12.0; extra == 'all'
|
|
31
42
|
Provides-Extra: anthropic
|
|
32
43
|
Requires-Dist: anthropic>=0.40; extra == 'anthropic'
|
|
33
44
|
Provides-Extra: cdp
|
|
@@ -64,31 +75,41 @@ Description-Content-Type: text/markdown
|
|
|
64
75
|

|
|
65
76
|
|
|
66
77
|
[](https://github.com/Octo-Lex/Super-Browser/actions)
|
|
67
|
-
[](https://pypi.org/project/superbrowser-sdk/)
|
|
68
79
|
[](https://github.com/Octo-Lex/Super-Browser/blob/main/LICENSE)
|
|
69
80
|
|
|
70
81
|
**Super Browser** is an anti-detection agent browser SDK. It wraps browser automation (Patchright, Playwright, Selenium, or raw CDP) in an agent-first API with stealth, budget governance, security guardrails, and structured error recovery. MCP is a transport, the agent SDK is the user-facing layer, and stealth is the foundation.
|
|
71
82
|
|
|
72
83
|
## Installation
|
|
73
84
|
|
|
85
|
+
> **Package naming:** The distribution name is `superbrowser-sdk`. The
|
|
86
|
+
> Python import name is `super_browser`.
|
|
87
|
+
>
|
|
88
|
+
> ```bash
|
|
89
|
+
> pip install superbrowser-sdk
|
|
90
|
+
> ```
|
|
91
|
+
> ```python
|
|
92
|
+
> import super_browser
|
|
93
|
+
> ```
|
|
94
|
+
|
|
74
95
|
```bash
|
|
75
96
|
# Default — Patchright (full stealth)
|
|
76
|
-
pip install
|
|
97
|
+
pip install superbrowser-sdk[patchright]
|
|
77
98
|
python -m patchright install chromium
|
|
78
99
|
|
|
79
100
|
# Alternative backends
|
|
80
|
-
pip install
|
|
81
|
-
pip install
|
|
101
|
+
pip install superbrowser-sdk[playwright] # Standard Playwright
|
|
102
|
+
pip install superbrowser-sdk[selenium] # Enterprise CI
|
|
82
103
|
|
|
83
104
|
# Or everything
|
|
84
|
-
pip install
|
|
105
|
+
pip install superbrowser-sdk[all]
|
|
85
106
|
```
|
|
86
107
|
|
|
87
108
|
For specific LLM providers:
|
|
88
109
|
|
|
89
110
|
```bash
|
|
90
|
-
pip install
|
|
91
|
-
pip install
|
|
111
|
+
pip install superbrowser-sdk[patchright,anthropic] # Anthropic Claude
|
|
112
|
+
pip install superbrowser-sdk[patchright,openai] # OpenAI GPT
|
|
92
113
|
```
|
|
93
114
|
|
|
94
115
|
## Quickstart
|
|
@@ -518,7 +539,7 @@ See [docs/memory.md](docs/memory.md).
|
|
|
518
539
|
Super Browser supports **CloakBrowser** as an optional stealth backend — a hardened Chromium with 57 C++ anti-detection patches:
|
|
519
540
|
|
|
520
541
|
```bash
|
|
521
|
-
pip install
|
|
542
|
+
pip install superbrowser-sdk[patchright,cloak]
|
|
522
543
|
```
|
|
523
544
|
|
|
524
545
|
When installed, CloakBrowser is automatically detected and used. No code changes required:
|
|
@@ -1,31 +1,41 @@
|
|
|
1
1
|

|
|
2
2
|
|
|
3
3
|
[](https://github.com/Octo-Lex/Super-Browser/actions)
|
|
4
|
-
[](https://pypi.org/project/superbrowser-sdk/)
|
|
5
5
|
[](https://github.com/Octo-Lex/Super-Browser/blob/main/LICENSE)
|
|
6
6
|
|
|
7
7
|
**Super Browser** is an anti-detection agent browser SDK. It wraps browser automation (Patchright, Playwright, Selenium, or raw CDP) in an agent-first API with stealth, budget governance, security guardrails, and structured error recovery. MCP is a transport, the agent SDK is the user-facing layer, and stealth is the foundation.
|
|
8
8
|
|
|
9
9
|
## Installation
|
|
10
10
|
|
|
11
|
+
> **Package naming:** The distribution name is `superbrowser-sdk`. The
|
|
12
|
+
> Python import name is `super_browser`.
|
|
13
|
+
>
|
|
14
|
+
> ```bash
|
|
15
|
+
> pip install superbrowser-sdk
|
|
16
|
+
> ```
|
|
17
|
+
> ```python
|
|
18
|
+
> import super_browser
|
|
19
|
+
> ```
|
|
20
|
+
|
|
11
21
|
```bash
|
|
12
22
|
# Default — Patchright (full stealth)
|
|
13
|
-
pip install
|
|
23
|
+
pip install superbrowser-sdk[patchright]
|
|
14
24
|
python -m patchright install chromium
|
|
15
25
|
|
|
16
26
|
# Alternative backends
|
|
17
|
-
pip install
|
|
18
|
-
pip install
|
|
27
|
+
pip install superbrowser-sdk[playwright] # Standard Playwright
|
|
28
|
+
pip install superbrowser-sdk[selenium] # Enterprise CI
|
|
19
29
|
|
|
20
30
|
# Or everything
|
|
21
|
-
pip install
|
|
31
|
+
pip install superbrowser-sdk[all]
|
|
22
32
|
```
|
|
23
33
|
|
|
24
34
|
For specific LLM providers:
|
|
25
35
|
|
|
26
36
|
```bash
|
|
27
|
-
pip install
|
|
28
|
-
pip install
|
|
37
|
+
pip install superbrowser-sdk[patchright,anthropic] # Anthropic Claude
|
|
38
|
+
pip install superbrowser-sdk[patchright,openai] # OpenAI GPT
|
|
29
39
|
```
|
|
30
40
|
|
|
31
41
|
## Quickstart
|
|
@@ -455,7 +465,7 @@ See [docs/memory.md](docs/memory.md).
|
|
|
455
465
|
Super Browser supports **CloakBrowser** as an optional stealth backend — a hardened Chromium with 57 C++ anti-detection patches:
|
|
456
466
|
|
|
457
467
|
```bash
|
|
458
|
-
pip install
|
|
468
|
+
pip install superbrowser-sdk[patchright,cloak]
|
|
459
469
|
```
|
|
460
470
|
|
|
461
471
|
When installed, CloakBrowser is automatically detected and used. No code changes required:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# API Stability Contract
|
|
2
2
|
|
|
3
|
-
> **Super Browser** v2.0.
|
|
3
|
+
> **Super Browser** v2.0.1 — Public API stability guarantees.
|
|
4
4
|
|
|
5
5
|
This document defines which APIs are stable, which are protocols (stable interface, evolving implementations), and which are internal.
|
|
6
6
|
|
|
@@ -6,7 +6,7 @@ Super Browser supports **CloakBrowser** as an optional stealth backend. When ins
|
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
# Install Super Browser with CloakBrowser support
|
|
9
|
-
pip install
|
|
9
|
+
pip install superbrowser-sdk[browser,cloak]
|
|
10
10
|
|
|
11
11
|
# Or add to an existing installation
|
|
12
12
|
pip install cloakbrowser>=0.3
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Error Catalog
|
|
2
2
|
|
|
3
|
-
> **Super Browser** v2.0.
|
|
3
|
+
> **Super Browser** v2.0.1 — Complete failure taxonomy, causes, and recovery guidance.
|
|
4
4
|
|
|
5
5
|
Every `ActionResult` carries structured error information. This catalog maps each error category to its typical causes and recommended recovery strategy.
|
|
6
6
|
|
|
@@ -103,15 +103,15 @@ You don't need to select injectors manually unless you're building a custom back
|
|
|
103
103
|
|
|
104
104
|
## New pip Install Targets
|
|
105
105
|
|
|
106
|
-
**v1.8:** `pip install
|
|
106
|
+
**v1.8:** `pip install superbrowser-sdk[browser]` (now removed — use `[patchright]`)
|
|
107
107
|
|
|
108
108
|
**v1.9:** Backend-specific install targets:
|
|
109
109
|
|
|
110
110
|
```bash
|
|
111
|
-
pip install
|
|
112
|
-
pip install
|
|
113
|
-
pip install
|
|
114
|
-
pip install
|
|
111
|
+
pip install superbrowser-sdk[patchright] # Default, full stealth
|
|
112
|
+
pip install superbrowser-sdk[playwright] # Standard Playwright
|
|
113
|
+
pip install superbrowser-sdk[selenium] # Enterprise CI
|
|
114
|
+
pip install superbrowser-sdk[all] # Everything
|
|
115
115
|
```
|
|
116
116
|
|
|
117
117
|
## Structured Error Categories
|
|
@@ -178,4 +178,4 @@ The Selenium backend does not support network interception:
|
|
|
178
178
|
| `route()` | Raises `NotImplementedError` — Selenium has no equivalent to Playwright's route interception |
|
|
179
179
|
| `unroute()` | Raises `NotImplementedError` — see above |
|
|
180
180
|
|
|
181
|
-
For full feature coverage, use the Patchright backend (`pip install
|
|
181
|
+
For full feature coverage, use the Patchright backend (`pip install superbrowser-sdk[patchright]`).
|
|
@@ -20,7 +20,7 @@ This tutorial walks you through:
|
|
|
20
20
|
## 1. Install
|
|
21
21
|
|
|
22
22
|
```bash
|
|
23
|
-
pip install
|
|
23
|
+
pip install superbrowser-sdk[patchright]
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
Verify the installation:
|
|
@@ -397,6 +397,6 @@ The `create_llm()` factory couldn't find a provider. Set `SB_LLM_PROVIDER` or pa
|
|
|
397
397
|
Ensure you have a Chromium-based browser installed:
|
|
398
398
|
|
|
399
399
|
```bash
|
|
400
|
-
pip install
|
|
400
|
+
pip install superbrowser-sdk[patchright]
|
|
401
401
|
python -m patchright install chromium
|
|
402
402
|
```
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "superbrowser-sdk"
|
|
7
|
-
version = "2.0.
|
|
7
|
+
version = "2.0.1"
|
|
8
8
|
description = "Anti-detection agent browser SDK — stealth, budget governance, security guardrails, and structured error recovery behind one async facade"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { text = "Apache-2.0" }
|
|
@@ -42,7 +42,7 @@ classifiers = [
|
|
|
42
42
|
]
|
|
43
43
|
|
|
44
44
|
[project.scripts]
|
|
45
|
-
|
|
45
|
+
superbrowser = "super_browser.cli:main"
|
|
46
46
|
|
|
47
47
|
[project.urls]
|
|
48
48
|
Homepage = "https://github.com/Octo-Lex/Super-Browser"
|
|
@@ -69,7 +69,7 @@ cdp = [
|
|
|
69
69
|
"aiohttp>=3.9",
|
|
70
70
|
]
|
|
71
71
|
all = [
|
|
72
|
-
"
|
|
72
|
+
"superbrowser-sdk[patchright,playwright,selenium,cdp,security,anthropic,openai,cloud]",
|
|
73
73
|
]
|
|
74
74
|
dev = [
|
|
75
75
|
"pytest>=9.0",
|
|
@@ -6,7 +6,7 @@ from super_browser.agent.types import StreamEvent as StreamEvent # noqa: F401
|
|
|
6
6
|
from super_browser.config import Config as Config # noqa: F401
|
|
7
7
|
from super_browser.results.types import ActionResult as ActionResult # noqa: F401
|
|
8
8
|
|
|
9
|
-
__version__ = "2.0.
|
|
9
|
+
__version__ = "2.0.1"
|
|
10
10
|
|
|
11
11
|
__all__ = [
|
|
12
12
|
"SuperBrowser",
|
{superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/agent/llm/anthropic_client.py
RENAMED
|
@@ -49,7 +49,7 @@ class AnthropicLLMClient:
|
|
|
49
49
|
except ImportError as exc:
|
|
50
50
|
raise ImportError(
|
|
51
51
|
"The 'anthropic' package is required for AnthropicLLMClient. "
|
|
52
|
-
"Install it with: pip install
|
|
52
|
+
"Install it with: pip install superbrowser-sdk[anthropic]"
|
|
53
53
|
) from exc
|
|
54
54
|
|
|
55
55
|
self._client = anthropic.AsyncAnthropic(api_key=api_key)
|
{superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/agent/llm/openai_client.py
RENAMED
|
@@ -49,7 +49,7 @@ class OpenAILLMClient:
|
|
|
49
49
|
except ImportError as exc:
|
|
50
50
|
raise ImportError(
|
|
51
51
|
"The 'openai' package is required for OpenAILLMClient. "
|
|
52
|
-
"Install it with: pip install
|
|
52
|
+
"Install it with: pip install superbrowser-sdk[openai]"
|
|
53
53
|
) from exc
|
|
54
54
|
|
|
55
55
|
self._client = openai.AsyncOpenAI(api_key=api_key)
|
{superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/browser/cloak_backend.py
RENAMED
|
@@ -122,7 +122,7 @@ class CloakBrowserAdapter:
|
|
|
122
122
|
except ImportError as exc:
|
|
123
123
|
raise ImportError(
|
|
124
124
|
"cloakbrowser is required for CLOAK_LAUNCH mode. "
|
|
125
|
-
"Install with: pip install
|
|
125
|
+
"Install with: pip install superbrowser-sdk[cloak]"
|
|
126
126
|
) from exc
|
|
127
127
|
|
|
128
128
|
kwargs: dict[str, Any] = {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Provides a unified interface for connecting to remote cloud browser
|
|
4
4
|
sessions instead of running Chromium locally.
|
|
5
5
|
|
|
6
|
-
Requires: pip install
|
|
6
|
+
Requires: pip install superbrowser-sdk[cloud]
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
9
|
from __future__ import annotations
|
|
@@ -82,7 +82,7 @@ class BrowserbaseConnector(CloudBrowserConnector):
|
|
|
82
82
|
except ImportError:
|
|
83
83
|
raise ImportError(
|
|
84
84
|
"httpx is required for cloud browser support. "
|
|
85
|
-
"Install with: pip install
|
|
85
|
+
"Install with: pip install superbrowser-sdk[cloud]"
|
|
86
86
|
)
|
|
87
87
|
|
|
88
88
|
if not self._api_key or not self._project_id:
|
|
@@ -182,7 +182,7 @@ class SteelConnector(CloudBrowserConnector):
|
|
|
182
182
|
except ImportError:
|
|
183
183
|
raise ImportError(
|
|
184
184
|
"httpx is required for cloud browser support. "
|
|
185
|
-
"Install with: pip install
|
|
185
|
+
"Install with: pip install superbrowser-sdk[cloud]"
|
|
186
186
|
)
|
|
187
187
|
|
|
188
188
|
if not self._api_key:
|
|
@@ -320,7 +320,7 @@ def _detect_backend(config: Any = None) -> str:
|
|
|
320
320
|
# 5. Nothing found
|
|
321
321
|
raise RuntimeError(
|
|
322
322
|
"No browser backend found. Install one of:\n"
|
|
323
|
-
" pip install
|
|
324
|
-
" pip install
|
|
325
|
-
" pip install
|
|
323
|
+
" pip install superbrowser-sdk[patchright]\n"
|
|
324
|
+
" pip install superbrowser-sdk[playwright]\n"
|
|
325
|
+
" pip install superbrowser-sdk[selenium]"
|
|
326
326
|
)
|
|
@@ -65,7 +65,7 @@ class BrowserSession:
|
|
|
65
65
|
if async_playwright is None:
|
|
66
66
|
raise ImportError(
|
|
67
67
|
"patchright is required for browser sessions. "
|
|
68
|
-
"Install with: pip install
|
|
68
|
+
"Install with: pip install superbrowser-sdk[browser]"
|
|
69
69
|
)
|
|
70
70
|
|
|
71
71
|
# -- CloakBrowser path ----------------------------------------
|
|
@@ -70,7 +70,7 @@ def memory_handler(args: argparse.Namespace) -> None:
|
|
|
70
70
|
print(f"Pruned {removed} expired entries.")
|
|
71
71
|
return
|
|
72
72
|
|
|
73
|
-
print("Usage:
|
|
73
|
+
print("Usage: superbrowser memory {list|show|clear|prune}")
|
|
74
74
|
|
|
75
75
|
|
|
76
76
|
def stealth_validate_handler(args: argparse.Namespace) -> None:
|
|
@@ -179,7 +179,7 @@ def _result_demo_handler(args: argparse.Namespace) -> None:
|
|
|
179
179
|
def main() -> None:
|
|
180
180
|
"""Entry point for ``super-browser`` CLI."""
|
|
181
181
|
parser = argparse.ArgumentParser(
|
|
182
|
-
prog="
|
|
182
|
+
prog="superbrowser",
|
|
183
183
|
description="Super Browser CLI",
|
|
184
184
|
)
|
|
185
185
|
sub = parser.add_subparsers(dest="command")
|
|
@@ -11,7 +11,7 @@ import sys
|
|
|
11
11
|
def main() -> None:
|
|
12
12
|
"""Entry point for the ``super-browser`` CLI."""
|
|
13
13
|
parser = argparse.ArgumentParser(
|
|
14
|
-
prog="
|
|
14
|
+
prog="superbrowser",
|
|
15
15
|
description="Super Browser — AI browser automation CLI",
|
|
16
16
|
)
|
|
17
17
|
sub = parser.add_subparsers(dest="command")
|
|
@@ -76,7 +76,7 @@ def main() -> None:
|
|
|
76
76
|
|
|
77
77
|
if args.command == "version" or args.command is None:
|
|
78
78
|
from super_browser import __version__
|
|
79
|
-
print(f"
|
|
79
|
+
print(f"superbrowser {__version__}")
|
|
80
80
|
return
|
|
81
81
|
|
|
82
82
|
if args.command == "info":
|
|
@@ -118,7 +118,7 @@ def _print_info() -> None:
|
|
|
118
118
|
"""Print system and dependency info."""
|
|
119
119
|
from super_browser import __version__
|
|
120
120
|
|
|
121
|
-
print(f"
|
|
121
|
+
print(f"superbrowser: {__version__}")
|
|
122
122
|
print(f"python: {sys.version}")
|
|
123
123
|
|
|
124
124
|
# Check optional deps
|
|
@@ -136,7 +136,7 @@ def _print_info() -> None:
|
|
|
136
136
|
__import__(mod)
|
|
137
137
|
print(f" {mod}: installed [{extra}]")
|
|
138
138
|
except ImportError:
|
|
139
|
-
print(f" {mod}: not installed (pip install
|
|
139
|
+
print(f" {mod}: not installed (pip install superbrowser-sdk[{extra}])")
|
|
140
140
|
|
|
141
141
|
|
|
142
142
|
async def _run(args: argparse.Namespace) -> None:
|
|
@@ -252,7 +252,7 @@ def _memory(args: argparse.Namespace) -> None:
|
|
|
252
252
|
return
|
|
253
253
|
|
|
254
254
|
# No subcommand given
|
|
255
|
-
print("Usage:
|
|
255
|
+
print("Usage: superbrowser memory {list|show|clear|prune}")
|
|
256
256
|
|
|
257
257
|
|
|
258
258
|
async def _stealth_check(args: argparse.Namespace) -> int:
|
{superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/src/super_browser/security/credential_vault.py
RENAMED
|
@@ -115,7 +115,7 @@ class CredentialVault:
|
|
|
115
115
|
if Fernet is None:
|
|
116
116
|
raise ImportError(
|
|
117
117
|
"cryptography is required for CredentialVault. "
|
|
118
|
-
"Install it with: pip install
|
|
118
|
+
"Install it with: pip install superbrowser-sdk[security]"
|
|
119
119
|
)
|
|
120
120
|
if self._fernet is None:
|
|
121
121
|
key = _load_or_create_key(self._key_file)
|
|
@@ -93,7 +93,7 @@ class TestReadmeBadges:
|
|
|
93
93
|
|
|
94
94
|
def test_pypi_badge_exists(self, readme):
|
|
95
95
|
"""PyPI badge exists."""
|
|
96
|
-
assert "pypi.org/project/
|
|
96
|
+
assert "pypi.org/project/superbrowser-sdk" in readme or "pypi/v/superbrowser-sdk" in readme
|
|
97
97
|
|
|
98
98
|
|
|
99
99
|
class TestPyprojectUrls:
|
|
@@ -28,11 +28,11 @@ class TestV195DocNormalization:
|
|
|
28
28
|
|
|
29
29
|
def test_api_stability_version_header(self) -> None:
|
|
30
30
|
header = (DOCS_DIR / "api-stability.md").read_text(encoding="utf-8").split("\n")[:5]
|
|
31
|
-
assert "v2.0.
|
|
31
|
+
assert "v2.0.1" in "\n".join(header)
|
|
32
32
|
|
|
33
33
|
def test_error_catalog_version_header(self) -> None:
|
|
34
34
|
header = (DOCS_DIR / "error-catalog.md").read_text(encoding="utf-8").split("\n")[:5]
|
|
35
|
-
assert "v2.0.
|
|
35
|
+
assert "v2.0.1" in "\n".join(header)
|
|
36
36
|
|
|
37
37
|
def test_no_config_browser_alias_in_examples(self) -> None:
|
|
38
38
|
for f in EXAMPLES_DIR.glob("*.py"):
|
|
@@ -312,7 +312,7 @@ class TestCLICaptureBaseline:
|
|
|
312
312
|
sys,
|
|
313
313
|
"argv",
|
|
314
314
|
[
|
|
315
|
-
"
|
|
315
|
+
"superbrowser",
|
|
316
316
|
"stealth-validate",
|
|
317
317
|
"--profile",
|
|
318
318
|
"test-profile",
|
|
@@ -368,7 +368,7 @@ class TestCLICIMode:
|
|
|
368
368
|
sys,
|
|
369
369
|
"argv",
|
|
370
370
|
[
|
|
371
|
-
"
|
|
371
|
+
"superbrowser",
|
|
372
372
|
"stealth-validate",
|
|
373
373
|
"--profile",
|
|
374
374
|
"test-profile",
|
|
@@ -416,7 +416,7 @@ class TestCLICIMode:
|
|
|
416
416
|
sys,
|
|
417
417
|
"argv",
|
|
418
418
|
[
|
|
419
|
-
"
|
|
419
|
+
"superbrowser",
|
|
420
420
|
"stealth-validate",
|
|
421
421
|
"--profile",
|
|
422
422
|
"test-profile",
|
|
@@ -447,7 +447,7 @@ class TestCLICIMode:
|
|
|
447
447
|
sys,
|
|
448
448
|
"argv",
|
|
449
449
|
[
|
|
450
|
-
"
|
|
450
|
+
"superbrowser",
|
|
451
451
|
"stealth-validate",
|
|
452
452
|
"--profile",
|
|
453
453
|
"test-profile",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/HERMES-SELF-EVOLUTION-ANALYSIS.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/output/CLAW-VARIANTS-ASSESSMENT.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{superbrowser_sdk-2.0.0 → superbrowser_sdk-2.0.1}/analysis/output/TOOL-BENCHMARK-ASSESSMENT.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|