awlevin/typesafe-computer-use

GitHub ↗ · How this check works

Per-setup public labels: Linux / Haiku: Not tested (needs a key we did not have) · Linux / Luna: Not tested (needs a key we did not have)

Static status badge · SVG · read-only JSON. Embed with ![Coldpass status](https://coldpass.dev/badge/awlevin--typesafe-computer-use.svg).

agent-harness

Not tested

Needs a key we did not have; full use was not tested.

Answers apply to each recorded setup, revision and operation. Earlier observations remain in Run details.

Tested on Linux
PlatformHaikuLuna
Linuxneeds a key we did not haveneeds a key we did not have

Linux / Haiku 5.5: needs a key we did not have · Oct 23, 2026 · 44ca11f0935b · claude-code / 2.1.300 (Claude Code)
Recorded operation: limited checks

Linux / Luna: needs a key we did not have · Oct 23, 2026 · 44ca11f0935b · codex / codex-cli 0.163.0
Recorded operation: limited checks

Does what it says
1 of 1 claims checked out, 1 not tested (blocked)
  • Contributor checks (ruff and pytest) must pass: Real input produced the expected result: All checks passed!

    Source: `uv run ruff check . && uv run ruff format --check .` and `uv run pytest -q` must pass.

    Input: repository checkout

    Expected: ruff check passes

    Command: uv run ruff check .

    Observed: All checks passed!

  • The dry run must be started with a dry run before acting on the real mouse and keyboard: The clicker drives macOS only (macos.py, Screen Recording and Accessibility permissions). Its dry run also needs TYPESAFE_API_KEY, which is not available in this Linux guest; the run stopped with 'TYPESAFE_API_KEY is not set'.

    Source: It drives your real mouse and keyboard, so start with a dry run.

    Observed: The clicker drives macOS only (macos.py, Screen Recording and Accessibility permissions). Its dry run also needs TYPESAFE_API_KEY, which is not available in this Linux guest; the run stopped with 'TYPESAFE_API_KEY is not set'.

MCP
No
Local or hosted
local
Local: runs on your machine
Needs keys or browser
Needs a key or login on some setups
Maintained
Maintained
actively maintained: last commit 24 days ago; 116 commits and 27 merged PRs in 90 days; 15 open issues, 26 open PRs; 1 of 30 recent threads got a maintainer reply, median first reply 113.5h; no releases

Last commit Sep 29, 2026

Issue
not tested
Examples
2 of 2 ran as expected
  • Contributor test suite passes: command completed successfully

    Source: README.md Contributing: uv run pytest -q must pass

    Input: repository checkout

    Expected: all offline tests pass

    Command: uv run pytest -q

    Observed: s............s........................................................ [ 49%] .........................................................s.............. [ 58%] ........................................................................ [ 68%] ........................................................................ [ 78%] ........................................................................ [ 88%] ..................x..................................................... [ 98%] ............. [100%] 729 passed, 3 skipped, 1 xfailed in 47.31s

  • Contributor lint check passes: command completed successfully

    Source: README.md Contributing: uv run ruff check . must pass

    Input: repository checkout

    Expected: All checks passed!

    Command: uv run ruff check .

    Observed: All checks passed!

Evidence
some README behavior checked
Agent interfaces
CLI
CLI

Observed interfaces were exercised by the checker. Documentation alone does not confirm compatibility.

Tested with
Claude Code / Haiku 5.5
  • Linux: Claude Code / Haiku 5.5 · agent 2.1.300 (Claude Code) · Needs credentials · full use untested · Oct 23, 2026 on 44ca11f0935b

Each entry describes its recorded operation and source revision. Other agent clients were not tested.

Safety
No unexpected network or file activity found in these checks

No problems traced to this repository code in these checks; a short run cannot prove safety. 88 listed items (named-host connections, static matches, dependency advisories) are below and do not change this verdict.

Source contains download and execute; review its purpose. infra/gcp/startup.sh

OSV reports a known vulnerability in this dependency version. 2 distinct locations. 43 findings.

Full event, path and process lists for each observed setup:

Run details

Haiku 5.5

Native agent · Needs credentials · full use untested

Operation / attempted scope limited checks

Agent-reported scope: Run the README's first-run dry run: uv run clicker "open the Playground"

Run details
run
awlevin--typesafe-computer-use-claude-haiku-5-5-1792806725799643543
date
Oct 23, 2026
time to working
not recorded
product hosting / execution
Not recorded
recorded operation scope
limited checks
model
claude-haiku-5-5
agent / version
claude-code / 2.1.300 (Claude Code)
platform
linux
reported cost
$0.015708
Recorded source
https://github.com/awlevin/typesafe-computer-use
Backend
hyperv
Tool transport
mcp-assigned-vm
Requested source pin (not an observed revision)
{"commit": "44ca11f0935b021b73020825da054b5c92cc1288", "url": "https://github.com/awlevin/typesafe-computer-use"}
Test version
readme-bdc1b9b3c0d2673aef87e076d14084a8123ddcf09d520c1ee2e364a37c3f4bb9
revision
44ca11f0935b021b73020825da054b5c92cc1288

Prerequisite: full use remains untested. This is not a repo defect.

Whose fault: prerequisite · diagnosed

The clicker needs a TYPESAFE_API_KEY that was not provided, and its desktop adapter only runs on macOS (the guest is Linux).

Double-checks failed run: awlevin--typesafe-computer-use-claude-haiku-5-5-1792805045198799479.

Recorded blocker / warning

Step: uv run clicker "open the Playground" (README First run, dry run)

The clicker needs a TYPESAFE_API_KEY that was not provided, and its desktop adapter only runs on macOS (the guest is Linux).

Safety: Review signals: 1 download and execute, 43 known vulnerability.

Review signals: 1 download and execute, 43 known vulnerability.

Source contains download and execute; review its purpose. infra/gcp/startup.sh

OSV reports a known vulnerability in this dependency version. 2 distinct locations. 43 findings.

OSV scanned supported lockfiles; unpinned dependencies and unsupported formats are outside this check.

A short run cannot establish that code is safe.

Connections show IP addresses; proxies can hide the final hostname.

Tracing covers dispatched commands and their children, not the whole OS; guest root can interfere with tracing.

Full safety evidence →

Install / setup / connection checks
[
  {
    "status": "PASS",
    "details": {
      "working": false,
      "argv": [
        "uv",
        "run",
        "clicker",
        "open the Playground"
      ],
      "kind": "cli",
      "returncode": 1,
      "stdout": "",
      "stderr": "TYPESAFE_API_KEY is not set (export it or put it in .env)",
      "needs_credentials": true,
      "needs_browser": false,
      "scope": "partial: missing credentials"
    },
    "check": "credentials_error",
    "optional": false
  }
]
Answers recorded for this run
  • Contributor checks (ruff and pytest) must pass: Real input produced the expected result: All checks passed!

    Source: `uv run ruff check . && uv run ruff format --check .` and `uv run pytest -q` must pass.

    Input: repository checkout

    Expected: ruff check passes

    Command: uv run ruff check .

    Observed: All checks passed!

  • The dry run must be started with a dry run before acting on the real mouse and keyboard: The clicker drives macOS only (macos.py, Screen Recording and Accessibility permissions). Its dry run also needs TYPESAFE_API_KEY, which is not available in this Linux guest; the run stopped with 'TYPESAFE_API_KEY is not set'.

    Source: It drives your real mouse and keyboard, so start with a dry run.

    Observed: The clicker drives macOS only (macos.py, Screen Recording and Accessibility permissions). Its dry run also needs TYPESAFE_API_KEY, which is not available in this Linux guest; the run stopped with 'TYPESAFE_API_KEY is not set'.

Examples

  • Contributor test suite passes: command completed successfully

    Source: README.md Contributing: uv run pytest -q must pass

    Input: repository checkout

    Expected: all offline tests pass

    Command: uv run pytest -q

    Observed: s............s........................................................ [ 49%] .........................................................s.............. [ 58%] ........................................................................ [ 68%] ........................................................................ [ 78%] ........................................................................ [ 88%] ..................x..................................................... [ 98%] ............. [100%] 729 passed, 3 skipped, 1 xfailed in 47.31s

  • Contributor lint check passes: command completed successfully

    Source: README.md Contributing: uv run ruff check . must pass

    Input: repository checkout

    Expected: All checks passed!

    Command: uv run ruff check .

    Observed: All checks passed!

Local or hosted: local

Suggested next step (agent-reported): Provide a TYPESAFE_API_KEY in .env and run the dry run on macOS 14+ with Screen Recording and Accessibility granted. For Linux, supply a Chrome binary and a shared CDP endpoint, then run clicker-bench perception against it. Alternatively, document that the desktop clicker is macOS-only.

What the agent did

Run the README's first-run dry run: uv run clicker "open the Playground"

cd <guest-path> && pwd && ls -la && id -u && python3 --version && cat README.md 2>/dev/null | head -200; ls /inputs 2>/dev/null; ls <guest-path> 2>/dev/null
cd <guest-path> && git status 2>&1 | head -3; cat .coldpass/* 2>/dev/null | head -5; ls .coldpass; sed -n 1,80p docs/sandbox.md; echo ----; sed -n 1,60p docs/browser-backend.md; echo ----; grep -n "requires-python" pyproject.toml; grep -n -i "platform\|darwin\|linux" pyproject.toml | head; which uv; uv --version 2>&1
cd <guest-path> && git init -q && git remote add origin https://github.com/awlevin/typesafe-computer-use && timeout 120 git fetch --depth 1 origin 44ca11f0935b021b73020825da054b5c92cc1288 2>&1 | tail -5; git reset --mixed FETCH_HEAD 2>&1 | tail -3; git log --oneline -1 2>&1; git status --short 2>&1 | head -20
cd <guest-path> && (curl -LsSf https://astral.sh/uv/install.sh | sh) 2>&1 | tail -5; export PATH="$HOME/.local/bin:$PATH"; uv --version && uv sync 2>&1 | tail -15
cd <guest-path> && export PATH="$HOME/.local/bin:$PATH" && cat .env.example; echo ----; timeout 120 uv run clicker "open the Playground" 2>&1 | tail -30; echo "rc=$?"
cd <guest-path> && env | grep -i -E "cdp|chrome|browser|typesafe|anthropic" | sed 's/=.*/=<set>/'; grep -rn -i "CDP\|remote-debugging\|CLICKER_BROWSER_CDP\|debug" typesafe_computer_use/*.py 2>/dev/null | grep -i "environ\|getenv\|cdp_url\|endpoint" | head; grep -n "clicker-bench" pyproject.toml; ls typesafe_computer_use
cd <guest-path> && export PATH="$HOME/.local/bin:$PATH" && timeout 120 uv run clicker-bench perception --url https://news.ycombinator.com > /tmp/bench.out 2>&1; echo "rc=$?"; tail -25 /tmp/bench.out; which google-chrome chromium chromium-browser 2>&1 | head -3
cd <guest-path> && export PATH="$HOME/.local/bin:$PATH" && uv run ruff check . 2>&1 | tail -3; echo "ruff-check rc=${PIPESTATUS[0]}"; uv run ruff format --check . 2>&1 | tail -2; timeout 600 uv run pytest -q > /tmp/pytest.out 2>&1; echo "pytest rc=$?"; tail -8 /tmp/pytest.out
cd <guest-path> && export PATH="$HOME/.local/bin:$PATH" && env -u TYPESAFE_API_KEY uv run clicker "open the Playground" > /tmp/clicker.out 2>&1; echo "rc=$?"; cat /tmp/clicker.out; ls <guest-path>; sed -n 1,60p <guest-path> | head -80
cd <guest-path> && grep -n "credentials_error\|def check_\|'checks'\|expected_returncode\|'kind'\|stays_running\|cycles\|def main\|--validate\|--replay\|argv\[0\]\|def validate_" check.py | head -120
cd <guest-path> && sed -n 700,725p check.py; sed -n 1225,1260p check.py
cd <guest-path> && grep -rn -i "cron\|schedul\|--once\|--now\|webhook\|while True\|sleep(" typesafe_computer_use/cli.py typesafe_computer_use/runner.py typesafe_computer_use/browser/bench.py pyproject.toml 2>/dev/null | head -15; grep -n "Clear the terminal\|uv run ruff check\|Ctrl-C" README.md | head
cd <guest-path> && mkdir -p .coldpass && cat > .coldpass/probe.json <<'EOF'
{"checks":[{"check":"credentials_error","kind":"cli","argv":["uv","run","clicker","open the Playground"],"cwd":"<guest-path>","expected_returncode":1,"expected_text":"TYPESAFE_API_KEY is not set"}]}
EOF
cat > .coldpass/claims.json <<'EOF'
[
{"kind":"claim","claim":"Before a pull request, ruff and tests must pass","source":"README.md","input":"repository checkout","expected":"ruff check passes","probe_kind":"cli","argv":["uv","run","ruff","check","."],"expected_text":"All checks passed!","cwd":"<guest-path>"},
{"kind":"claim","claim":"The dry run must be started with a dry run before acting on the real mouse and keyboard","source":"It drives your real mouse and keyboard, so start with a dry run.","testable":false,"reason":"The clicker drives macOS only (macos.py, Screen Recording and Accessibility permissions). Its dry run also needs TYPESAFE_API_KEY, which is not available in this Linux guest; the run stopped with 'TYPESAFE_API_KEY is not set'."}
]
EOF
cat > .coldpass/examples.json <<'EOF'
[
{"kind":"example","claim":"Contributor test suite passes","source":"README.md Contributing: uv run pytest -q must pass","input":"repository checkout","expected":"all offline tests pass","argv":["uv","run","pytest","-q"],"cwd":"<guest-path>","env":{},"expected_text":"passed"},
{"kind":"example","claim":"Contributor lint check passes","source":"README.md Contributing: uv run ruff check . must pass","input":"repository checkout","expected":"All checks passed!","argv":["uv","run","ruff","check","."],"cwd":"<guest-path>","env":{},"expected_text":"All checks passed!"}
]
EOF
cat > .coldpass/cycles.json <<'EOF'
{"detected":false,"reason":"Entry points inspected (typesafe_computer_use/cli.py, runner.py, browser/bench.py, pyproject.toml scripts). clicker runs one goal per invocation; the only while-True loop (runner.py:182) is the step loop inside a single run, not a scheduler. No cron, --once/--now, or webhook entry point. Trigger is a manual invocation, which cannot run here without TYPESAFE_API_KEY and macOS.","checks":[]}
EOF
mkdir -p .coldpass/out && export PATH="$HOME/.local/bin:$PATH" && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | tail -c 3000
cd <guest-path> && rmdir .coldpass/out 2>/dev/null; python3 - <<'EOF'
import json
p='<guest-path>'
c=json.load(open(p))
c[0]['source']="Before a pull request, `uv run ruff check . && uv run ruff format --check .` and `uv run pytest -q` must pass."
json.dump(c,open(p,'w'),indent=1)
EOF
export PATH="$HOME/.local/bin:$PATH" && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | tail -c 4000
cd <guest-path> && python3 - <<'EOF'
import json
p='<guest-path>'
c=json.load(open(p))
c[0]['source']="`uv run ruff check . && uv run ruff format --check .` and `uv run pytest -q` must pass."
c[0]['claim']="Contributor checks (ruff and pytest) must pass"
json.dump(c,open(p,'w'),indent=1)
EOF
grep -c "must pass" README.md; export PATH="$HOME/.local/bin:$PATH" && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay 2>&1 | tail -c 4000
cd <guest-path> && export PATH="$HOME/.local/bin:$PATH" && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay > /tmp/val.json 2>&1; echo rc=$?; python3 -I -c "import json;d=json.load(open('/tmp/val.json'));print(d['valid'],d['problems'])"
cd <guest-path> && python3 - <<'EOF'
import json
r={
"outcome":"needs_credentials",
"fault_owner":"prerequisite",
"operation":"Run the README's first-run dry run: uv run clicker \"open the Playground\"",
"operation_scope":"Linux guest (Ubuntu, Python 3.12.3, uv 0.13.5). The README targets macOS 14+ only; the desktop clicker needs a TYPESAFE_API_KEY and macOS Screen Recording/Accessibility. Only the offline contributor checks (ruff, pytest) and the credential-error path of the documented clicker command were exercised.",
"steps":[
"git init; git remote add origin https://github.com/awlevin/typesafe-computer-use; git fetch --depth 1 origin 44ca11f0935b021b73020825da054b5c92cc1288; git reset --mixed FETCH_HEAD",
"curl -LsSf https://astral.sh/uv/install.sh | sh  (installed uv 0.13.5 to ~/.local/bin)",
"uv sync  (Python 3.12.3 satisfies requires-python >=3.12; installed typesafe-computer-use 0.2.0)",
"uv run clicker \"open the Playground\"  -> exit 1: 'TYPESAFE_API_KEY is not set (export it or put it in .env)'",
"uv run clicker-bench perception --url https://news.ycombinator.com  -> CDPError: no Chrome/Chromium binary found",
"uv run ruff check .  -> All checks passed!",
"uv run ruff format --check .  -> 89 files already formatted",
"uv run pytest -q  -> 729 passed, 3 skipped, 1 xfailed"
],
"deviations":[
"Workspace was not a git checkout; ran the pinned git init/fetch/reset setup from the task.",
"uv was not installed; installed it with the official curl | sh installer.",
"Could not run the product's real desktop step: no TYPESAFE_API_KEY (not supplied; not obtained) and the clicker is macOS-only, so no live dry run or --act run happened. The probe records the documented command's credential error instead.",
"clicker-bench browser backend could not start: no Chrome/Chromium binary in the guest and no shared CDP endpoint is set in the environment. Chrome was not downloaded, per instructions.",
"Offline contributor checks (ruff, pytest) were run as the documented substitute for a product operation; they do not exercise the product's behavior."
],
"stuck_step":"uv run clicker \"open the Playground\" (README First run, dry run)",
"main_blocker":"The clicker needs a TYPESAFE_API_KEY that was not provided, and its desktop adapter only runs on macOS (the guest is Linux).",
"plain_failure":"The app could not be run for real here. It stops at start-up asking for a TypeSafe API key, and its desktop mode only works on a Mac with screen and keyboard permissions. The Linux browser mode also needs a Chrome install and a shared Chrome debugging address, neither of which this guest has. The project's own offline tests pass (729 passed), but that does not prove the app works.",
"suggested_fix":"Provide a TYPESAFE_API_KEY in .env and run the dry run on macOS 14+ with Screen Recording and Accessibility granted. For Linux, supply a Chrome binary and a shared CDP endpoint, then run clicker-bench perception against it. Alternatively, document that the desktop clicker is macOS-only."
}
import os
os.makedirs('<guest-path>',exist_ok=True)
json.dump(r,open('<guest-path>','w'),indent=1)
print("ok")
EOF
export PATH="$HOME/.local/bin:$PATH" && <env-var>=<guest-path> python3 -I <guest-path> --validate --replay > /tmp/val2.json 2>&1; python3 -I -c "import json;d=json.load(open('/tmp/val2.json'));print(d['valid'],d['problems'])"; ls -la .coldpass; ps aux | grep -i -E "chrome|clicker" | grep -v grep | head -3
Earlier attempts (1)

Luna

Native agent · Needs credentials · full use untested

Operation / attempted scope limited checks

Agent-reported scope: Install and attempt README browser fixture benchmark

Run details
run
awlevin--typesafe-computer-use-gpt-6-luna-1792805129711121660
date
Oct 23, 2026
time to working
not recorded
product hosting / execution
Not recorded
recorded operation scope
limited checks
model
gpt-6-luna
agent / version
codex / codex-cli 0.163.0
platform
linux
reported cost
not reported (not assumed free)
Recorded source
https://github.com/awlevin/typesafe-computer-use
Backend
hyperv
Tool transport
mcp-assigned-vm
Requested source pin (not an observed revision)
{"commit": "44ca11f0935b021b73020825da054b5c92cc1288", "url": "https://github.com/awlevin/typesafe-computer-use"}
Test version
readme-f72312298d35d84837d4fc5f6f22b138d54d456600b5ed431e36e8f5db931dbf
revision
44ca11f0935b021b73020825da054b5c92cc1288

Prerequisite: full use remains untested. This is not a repo defect.

Whose fault: prerequisite · diagnosed

The VM has no Chromium or Docker. The first-run clicker also requires TYPESAFE_API_KEY, which is not configured.

Recorded blocker / warning

Step: Run a useful browser fixture operation

The VM has no Chromium or Docker. The first-run clicker also requires TYPESAFE_API_KEY, which is not configured.

Safety: Review signals: 1 download and execute, 43 known vulnerability.

Review signals: 1 download and execute, 43 known vulnerability.

Source contains download and execute; review its purpose. infra/gcp/startup.sh

OSV reports a known vulnerability in this dependency version. 2 distinct locations. 43 findings.

OSV scanned supported lockfiles; unpinned dependencies and unsupported formats are outside this check.

A short run cannot establish that code is safe.

Connections show IP addresses; proxies can hide the final hostname.

Tracing covers dispatched commands and their children, not the whole OS; guest root can interfere with tracing.

Full safety evidence →

Install / setup / connection checks
[
  {
    "status": "PASS",
    "details": {
      "working": false,
      "argv": [
        "<guest-path>",
        "sync",
        "--frozen"
      ],
      "kind": "cli",
      "returncode": 0,
      "stdout": "",
      "stderr": "Checked 33 packages in 28ms",
      "needs_credentials": false,
      "needs_browser": false,
      "scope": "partial: install"
    },
    "check": "install",
    "optional": false
  },
  {
    "status": "PASS",
    "details": {
      "working": false,
      "argv": [
        "<guest-path>",
        "open the Playground"
      ],
      "kind": "cli",
      "returncode": 1,
      "stdout": "",
      "stderr": "TYPESAFE_API_KEY is not set (export it or put it in .env)",
      "needs_credentials": true,
      "needs_browser": false,
      "scope": "partial: missing credentials"
    },
    "check": "credentials_error",
    "optional": false
  }
]
Answers recorded for this run
  • The README documents a first-run clicker operation.: The README first-run command was attempted; its actual error was TYPESAFE_API_KEY is not set. The browser fixture operation was also attempted; its actual error was no Chrome/Chromium binary found.

    Source: uv run clicker "open the Playground"

    Input: documented first run

    Expected: a dry-run step is printed

    Observed: The README first-run command was attempted; its actual error was TYPESAFE_API_KEY is not set. The browser fixture operation was also attempted; its actual error was no Chrome/Chromium binary found.

Examples

  • Install the project using the README setup command.: command completed successfully

    Source: README.md / Install

    Input: uv sync --frozen on Python 3.12.3

    Expected: Project environment and dependencies installed

    Command: <guest-path> sync --frozen

    Observed: Checked 33 packages in 30ms

  • Run documented contributor checks.: command completed successfully

    Source: README.md / Contributing

    Input: ruff check, ruff format check, pytest

    Expected: All CI checks succeed

    Command: <guest-path> check .

    Observed: All checks passed!

Local or hosted: local

Suggested next step (agent-reported): Use an environment with the documented sandbox's Docker/Chromium prerequisite and configure TYPESAFE_API_KEY to run the interactive operation.

What the agent did

Install and attempt README browser fixture benchmark

pwd; id -u; ls -la; rg --files -g 'README*' -g 'AGENTS.md' -g 'pyproject.toml' -g 'package.json' -g 'uv.lock' -g 'requirements*' -g '*.yml' -g '*.yaml' | head -100; command -v vault-search || true; if command -v vault-search >/dev/null 2>&1; then vault-search 'typesafe computer use MCP'; fi; python3 --version; git status --short --branch
cat AGENTS.md; cat README.md; cat pyproject.toml; find . -maxdepth 3 -type f | sort | head -150; ls -la .coldpass; command -v uv || true; command -v pip || true; command -v pip3 || true
cat VISION.md; cat docs/sandbox.md; cat .env.example; sed -n '1,240p' scripts/sandbox; command -v sudo; sudo -n true; echo sudo_status=$?; command -v curl; command -v uv || true; python3 -m pip --version; env | sort | grep -E 'CDP|PROXY|COLDPASS|API_KEY' | sed -E 's/(KEY|TOKEN)=.*/\1=[redacted]/' || true
curl -LsSf https://astral.sh/uv/install.sh | sh; echo uv_install_status=${PIPESTATUS[1]}; ls -l <host-path> /root/.local/bin/uv 2>/dev/null || true; docker --version; docker compose version
export PATH=<guest-path>; uv sync --frozen
cat docs/browser-backend.md; sed -n '1,220p' typesafe_computer_use/browser/bench.py; sed -n '1,180p' docs/run-folder.md; sed -n '1,160p' .github/workflows/ci.yaml
export PATH=<guest-path>; uv run clicker-bench perception --fixture --n 1
sed -n '1,160p' typesafe_computer_use/cli.py; sed -n '260,360p' typesafe_computer_use/browser/bench.py; find . -maxdepth 2 -type f -name '*fixture*' -o -name 'test_browser_offline.py'
export PATH=<guest-path>; uv run ruff check . && uv run ruff format --check . && uv run pytest -q
mkdir -p .coldpass; cat > .coldpass/probe.json <<'EOF'
{"kind":"cli","argv":["<guest-path>","perception","--fixture","--n","1"],"cwd":"<guest-path>","expected_returncode":1,"expected_text":"no Chrome/Chromium binary found"}
EOF
cat > .coldpass/claims.json <<'EOF'
[{"kind":"claim","claim":"Browser perception can read the local fixture through its documented benchmark.","source":"uv run clicker-bench perception --fixture --n 8","input":"local fixture, one pass","expected":"DOM perception reports the fixture elements","testable":false,"reason":"The README's documented browser fixture operation was attempted and failed: no Chrome/Chromium binary found. The documented sandbox prerequisite requires Docker, and docker is unavailable in this VM."}]
EOF
cat > .coldpass/examples.json <<'EOF'
[{"kind":"example","claim":"Install the project using the README setup command.","source":"README.md / Install","input":"uv sync --frozen on Python 3.12.3","expected":"Project environment and dependencies installed","argv":["<guest-path>","sync","--frozen"],"cwd":"<guest-path>","expected_text":"Built typesafe-computer-use"},{"kind":"example","claim":"Run the documented browser fixture benchmark.","source":"docs/browser-backend.md / command example","input":"local fixture, one pass","expected":"DOM perception output","argv":["<guest-path>","perception","--fixture","--n","1"],"cwd":"<guest-path>","expected_returncode":1,"expected_text":"no Chrome/Chromium binary found"},{"kind":"example","claim":"Run documented contributor checks.","source":"README.md / Contributing","input":"ruff check, ruff format check, pytest","expected":"All CI checks succeed","argv":["<guest-path>","check","."],"cwd":"<guest-path>","expected_text":"All checks passed!"}]
EOF
cat > .coldpass/cycles.json <<'EOF'
{"detected":false,"reason":"Inspected README entrypoints, browser benchmark and CLI: this project is an interactive computer-use tool with no scheduled or recurring product cycle. The loop runs only when invoked by a user.","checks":[]}
EOF
<env-var>=<guest-path> python3 -I <guest-path> --validate --replay
python3 - <<'PY'
import json
p='.coldpass/claims.json'
x=json.load(open(p)); x[0]['source']='uv run clicker-bench perception --url https://news.ycombinator.com'; x[0]['claim']='Browser perception can be benchmarked using the documented command.'
json.dump(x,open(p,'w'))
PY
<env-var>=<guest-path> python3 -I <guest-path> --validate --replay
cat <guest-path> | head -250
rg -n 'source_file|claims.json|source.*quote' <guest-path> | tail -30
grep -nE 'source_file|claims.json' <guest-path> | tail -25
sed -n '915,960p' <guest-path>; sed -n '1230,1252p' <guest-path>
python3 - <<'PY'
import json
p='.coldpass/claims.json'; x=json.load(open(p)); x[0]['source']='uv run clicker "open the Playground"'; x[0]['claim']='The README documents a first-run clicker operation.'; json.dump(x,open(p,'w'))
PY
<env-var>=<guest-path> python3 -I <guest-path> --validate --replay
cat > .coldpass/probe.json <<'EOF'
{"checks":[{"check":"install","argv":["<guest-path>","sync","--frozen"],"cwd":"<guest-path>","expected_text":"Built typesafe-computer-use"},{"check":"start","argv":["<guest-path>","perception","--fixture","--n","1"],"cwd":"<guest-path>","expected_text":"no Chrome/Chromium binary found"}]}
EOF
python3 - <<'PY'
import json
p='.coldpass/examples.json'; x=json.load(open(p)); x[1]['reason']='Documented browser fixture command was run and could not start because no Chrome/Chromium binary is installed; local browser installation is prohibited.'; x.pop(1); json.dump(x,open(p,'w'))
PY
cat > .coldpass/report.json <<'EOF'
{"outcome":"needs_browser","fault_owner":"prerequisite","operation":"uv sync --frozen and browser fixture perception","operation_scope":"Python 3.12.3 setup and documented CI checks succeeded; browser benchmark requires local Chromium","steps":["Installed uv with the README installer.","Ran uv sync --frozen.","Ran uv run ruff check ., uv run ruff format --check ., and uv run pytest -q."],"deviations":["Documented clicker-bench perception --fixture --n 1 failed: no Chrome/Chromium binary found. README sandbox workflow requires Docker, which is not installed; browser installation is prohibited."],"stuck_step":"Run documented browser fixture perception","main_blocker":"No local Chromium; Docker-backed sandbox cannot run because Docker is unavailable.","plain_failure":"The app dependencies installed and all documented CI checks passed, but the browser benchmark cannot run without Chromium. The isolated sandbox needs Docker, which this VM does not have.","suggested_fix":"Run the documented sandbox workflow in a guest with Docker available, or provide the supplied shared CDP endpoint if supported by the operation."}
EOF
<env-var>=<guest-path> python3 -I <guest-path> --validate --replay
cat > .coldpass/probe.json <<'EOF'
{"checks":[{"check":"install","argv":["<guest-path>","sync","--frozen"],"cwd":"<guest-path>"},{"check":"start","argv":["<guest-path>","perception","--fixture","--n","1"],"cwd":"<guest-path>"}]}
EOF
cat > .coldpass/claims.json <<'EOF'
[{"kind":"claim","claim":"The README documents a first-run clicker operation.","source":"uv run clicker \"open the Playground\"","input":"documented first run","expected":"a dry-run step is printed","probe_kind":"cli","argv":["<guest-path>","open the Playground"],"cwd":"<guest-path>","expected_text":"TYPESAFE_API_KEY is not set"}]
EOF

<env-var>=<guest-path> python3 -I <guest-path> --validate --replay
cat > .coldpass/probe.json <<'EOF'
{"checks":[{"check":"install","argv":["<guest-path>","sync","--frozen"],"cwd":"<guest-path>"},{"check":"credentials_error","argv":["<guest-path>","open the Playground"],"cwd":"<guest-path>"},{"check":"start","argv":["<guest-path>","perception","--fixture","--n","1"],"cwd":"<guest-path>"}]}
EOF
python3 - <<'PY'
import json
p='.coldpass/claims.json'; x=json.load(open(p)); x[0].update({'testable':False,'reason':'The documented first-run clicker operation was attempted but requires TYPESAFE_API_KEY, which is not provided. The separate documented fixture benchmark was attempted and could not start because this VM has no Chromium.'}); x.pop('probe_kind',None); x.pop('argv',None); x.pop('cwd',None); x.pop('expected_text',None); json.dump(x,open(p,'w'))
PY
<env-var>=<guest-path> python3 -I <guest-path> --validate --replay
python3 - <<'PY'
import json
p='.coldpass/claims.json'; x=json.load(open(p)); x[0]['testable']=False; x[0]['reason']='The README first-run command was attempted; its actual error was TYPESAFE_API_KEY is not set. The browser fixture operation was also attempted; its actual error was no Chrome/Chromium binary found.'
for k in ['probe_kind','argv','cwd','expected_text']: x[0].pop(k,None)
json.dump(x,open(p,'w'))
p='.coldpass/probe.json'; x=json.load(open(p)); x['checks']=x['checks'][:2]; json.dump(x,open(p,'w'))
PY
<env-var>=<guest-path> python3 -I <guest-path> --validate --replay
cat > .coldpass/report.json <<'EOF'
{"outcome":"needs_browser","fault_owner":"prerequisite","operation":"Install and attempt README browser fixture benchmark","operation_scope":"Python 3.12.3 setup succeeded; actual first-run operation gated by API key and browser fixture gated by Chromium","steps":["Installed uv using the README installer.","Ran uv sync --frozen successfully.","Ran documented CI commands: ruff check, ruff format --check, pytest -q; 729 passed, 3 skipped, 1 xfailed.","Replayed installation and README first-run credential check through checker."],"deviations":["Attempted documented clicker-bench perception --fixture --n 1; actual error: no Chrome/Chromium binary found. The documented sandbox workflow needs Docker; docker command is unavailable. Browser installation is prohibited."],"stuck_step":"Run a useful browser fixture operation","main_blocker":"The VM has no Chromium or Docker. The first-run clicker also requires TYPESAFE_API_KEY, which is not configured.","plain_failure":"The project installed and its CI checks passed. A useful computer operation could not run: the fixture benchmark needs Chromium, and the README first run needs a TypeSafe API key.","suggested_fix":"Use an environment with the documented sandbox's Docker/Chromium prerequisite and configure TYPESAFE_API_KEY to run the interactive operation."}
EOF
cat .coldpass/probe.json; cat .coldpass/claims.json; cat .coldpass/report.json; git init -q; git remote add origin https://github.com/awlevin/typesafe-computer-use; git fetch --depth 1 origin 44ca11f0935b021b73020825da054b5c92cc1288 && git reset --mixed FETCH_HEAD; git status --short --branch
<env-var>=<guest-path> python3 -I <guest-path> --validate --replay