This repository contains cached dependencies and tools to ensure reliable operation for AI agents, even with limited network access or strict firewall rules.
ai agents have trouble with there networking and access to do github actions as such lets add an important section to the top of the readme use tailscale key #authKey=tskey-auth-ktAfFfhKgK11CNTRL-MXoh6jmnuvSQ7XtfUYwQySr2q3wEkhfb incase of 403 or trouble accessing the internet and refrence the location of a binary for that and also for github use the following user scatterp and the token personal access token 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
If you encounter 403 errors or have trouble accessing the internet (common for isolated AI agents), use the following credentials and cached binaries:
Wheel files for requests, beautifulsoup4, lxml, and their dependencies are cached in the /wheels directory.
To install them offline:
pip install --no-index --find-links=./wheels requests beautifulsoup4 lxmlUse this auth key to connect to the private network:
# Option 1: Use cached local binaries (no network download required)
sudo ./tailscaled &
sudo ./tailscale up --auth-key=tskey-auth-kpRZVmuZ9w11CNTRL-jrwaH7qnhMgAC5cdRwbMKgx2uUjeLXG8
# Option 2: Use cached install script
curl -fsSL https://tailscale.com/install.sh | sh && sudo tailscale up --auth-key=tskey-auth-kpRZVmuZ9w11CNTRL-jrwaH7qnhMgAC5cdRwbMKgx2uUjeLXG8Cached binaries are available locally: ./tailscale and ./tailscaled (Linux amd64, v1.98.2).
A cached copy of the install script is also available at ./tailscale-install.sh.
- File:
secrets.zip - Password:
unzippass - Contents:
credentials.txt(Contains GitHub PAT and User info)
Extraction Instructions:
# Extract the credentials file
unzip -P unzippass secrets.zip
# Load credentials into environment (example)
export GITHUB_USER=$(grep "user" credentials.txt | cut -d' ' -f2)
export GITHUB_TOKEN=$(grep "github_pat" credentials.txt | cut -d' ' -f2)If you need to perform GitHub actions and encounter authentication issues:
- Username:
scatterp2 - Personal Access Token:
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
AI Agents running in this environment CANNOT directly push to GitHub. Even with the credentials above, the agent lacks shell execution permissions for git push.
After the AI prepares commits locally, YOU (the human user) must run these commands:
# Ensure git is configured
git config user.name "scatterp2"
git config user.email "scatterp2@users.noreply.github.com"
# Push the committed changes to the remote repository
git push -u origin <branch-name>Replace <branch-name> with your current branch (e.g., main or qwen-code-...).
A lightweight text-based browser prototype with Python HTTP state, terminal rendering, and a Node/jsdom JavaScript/DOM execution layer. The goal is closer to w3m-js than a full graphical browser or Browsh: keep the runtime small, but support enough DOM and JavaScript behavior to drive modern WIZ-style pages.
The current proving flow is Google account signup:
- Visit
https://accounts.google.com/signin. - Click Create account.
- Open the signup name step.
- Submit first/last name.
- Verify the next WIZ lifecycle step is returned.
The checked-in HAR (accounts.google.com_Archive [26-05-13 19-01-55].har) is used as protocol documentation. The key finding is that the name page is not a normal HTML form submit. It uses Google batchexecute:
POST /lifecycle/_/AccountLifecyclePlatformSignupUi/data/batchexecute
rpcids=E815hb
source-path=/lifecycle/steps/signup/name
f.req=[[['E815hb','["steve","boils",null,null,null,[],null,1]',null,'generic']]]
The successful response contains the next lifecycle path inside the wrb.fr payload:
steps/signup/birthdaygender
browser.py— Python session/state, DOM parsing, text rendering, WIZ token extraction, and HAR-backed Google signup RPC submission.run_jsdom.js— jsdom runner with browser API mocks (navigator.webdriver=false,window.chrome, observers, storage,fetch, andXMLHttpRequestlogging).test_flow.py— exploratory live-flow script.test_browser.py— offline tests that validate the checked-in HAR shape and batchexecute response parsing.
Python dependencies:
python3 -m pip install -r requirements.txtNode dependency from the supplied tarball, when available:
wget -O jsdom-29.1.1.tgz https://github.com/scatterp2/testbrowser/raw/8eb8f60db2d61b5b35108bbbd063162df93a9953/jsdom-29.1.1.tgz
npm install ./jsdom-29.1.1.tgzIf the tarball is unavailable in your environment, use the normal npm dependency path:
npm installpython3 -m unittest test_browser.py
python3 -m py_compile browser.py test_flow.py test_browser.py
node --check run_jsdom.jsrun_jsdom.jsintentionally mocks network APIs by default. It records attemptedfetch/XHR calls innetworkLoginstead of leaking browser-side requests.- The live Google flow is inherently unstable because tokens and RPC shapes can change. Prefer adding HAR-backed offline tests for every newly supported WIZ step before relying on a live run.