__pycache__/
*.py[cod]
.venv/
venv/
*.egg-info/
dist/
build/
.pytest_cache/
.ruff_cache/
.mypy_cache/
.coverage
htmlcov/
.percepteye-artifacts/
# ...and the misspellings the harness has actually written. All three appeared
# in one working tree: the artifacts root comes from a runtime path that is
# spelled differently in different places, so ignoring only the correct one
# left two directories of rollout output untracked-but-visible, which is how
# they end up in a `git add -A`. Directories, not file globs — a whole tree of
# `rl_<id>/` solve scripts is unambiguously agent output, so the reasoning
# below about not swallowing a future requirements.txt does not apply to them.
.perceptye-artifacts/
.percept-eye-artifacts/
_percepteye-artifacts/
.DS_Store

# Files an agent wrote into the repo root.
#
# A CLI agent's cwd IS its collected-artifacts directory, so running an example
# or a test from the repo root leaves the agent's output files here. Twenty of
# them were committed once by a `git add -A` -- 426KB of `xxxx` padding at the
# root of the SDK we ship.
#
# Enumerated, not globbed: `/*.txt` would silently swallow a future
# requirements.txt and `/*.sh` a future bootstrap script, and a gitignore that
# quietly drops a file someone wanted is a worse bug than the one it prevents.
# The durable fix is to run examples from a scratch directory rather than to
# extend this list forever.
/a.txt
/b.bin
/big.txt
/blob.bin
/hi.txt
/kept.txt
/answer.txt
/triage.sh
/f[0-9][0-9].txt
/avg_response_time.sh
/extract_ips.sh
/last_trace.sh
/merge_logs.sh
.worktrees/

# Cross-language ABI check scratch output (CI writes this, never committed)
abi/

# The built documentation site. Generated from website/docs by mkdocs;
# the source is tracked, the output is not.
website/site/
