# Python-generated files
__pycache__/
*.py[oc]
build/
dist/
wheels/
*.egg-info

# Virtual environments
.venv

# Trace output
.traces/
.test_output/
test-results/
.cloudtap-manifest.json

# Test artifacts
test-traces/
*.cast
timing.txt
typescript.txt

# IDE / Editor
.idea/
.vscode/
*.swp
*.swo
*~
.DS_Store

# Demo / recording files
*.mp4
*.webm
*.gif
# But keep docs/ demo assets
!docs/demo.gif
!docs/demo_zh.gif
!docs/demo.mp4
!docs/demo_zh.mp4
!docs/recordings/codex-demo.gif
!docs/recordings/codex-demo.cast
!docs/recordings/viewer-demo.mp4
*.tape
demo-*.png
demo_commands.sh
real_demo.sh
real-demo-*
terminal-*.png
record_*.py
!docs/recordings/record_viewer.py
record_*.sh
script-*

# Frame directories (demo generation artifacts)
*_frames/
*_frames_*/
frames/

# Demo generation scripts
cast_to_gif*.py
svg_to_gif*.py
make_demo_gifs.py
make_final_demo*.py
render_excalidraw.*
render_node.mjs
concat*.txt
tui_cmd.sh
split-preview.png

# Node.js (excalidraw rendering)
package.json
package-lock.json
node_modules/

# Architecture diagram variants (keep only final)
docs/architecture_v*.svg
docs/architecture_v*.png
docs/architecture_excalidraw*
docs/architecture_kroki*
docs/architecture.excalidraw
docs/gen_architecture*.py
docs/architecture_v2.png
docs/architecture_v3.*

# SVG demo files
demo-cli.svg
demo-tui*.svg

# Dev-only scripts (kept locally, not in repo)
test_and_view.sh
test_e2e_tap.sh

# Runtime logs
log/

# Ruff / lint cache
.ruff_cache/
