# ============================================================================
# Arche API - .gitignore
# Disciplined, minimal, and security-safe.
# ============================================================================

# --- Claude Code ---
# Local settings and worktrees stay private; shared project skills, settings
# and hooks are tracked. settings.local.json stays ignored.
.claude/*
!.claude/skills/
!.claude/settings.json
!.claude/hooks/

# --- Python bytecode / caches ---
__pycache__/
*.py[cod]
*.pyd

# --- Virtual environments ---
.venv/
venv/
ENV/

# --- Test / type / lint caches ---
.pytest_cache/
.mypy_cache/
.ruff_cache/
htmlcov/
.coverage
coverage.xml
coverage.json

# --- Environment / secrets files ---
.env
.env.*
!.env.example
!.env.development.sample
!.env.production.sample
!.env.ci.sample
.envrc

# --- Logs & archives ---
*.log
*.zip
# The webhook probe receiver deploys from its committed package.
!infra/production/webhook_probe_receiver/handler.zip

# --- OS / editor junk ---
.DS_Store
.idea/
.vscode/
inspectionProfile.xml

# --- Node / frontend ---
node_modules/
dist/

# --- Build artifacts ---
build/
*.so

# --- Packaging metadata (setuptools) ---
*.egg-info
*.egg-info/


# --- Native build artifacts (project-specific) ---
native/build/
native/__pycache__/
native/*.so
native/*.pyd
native/*.dll
native/*.dylib
native/*.egg-info/
native/compile_commands.json

# --- Project-specific generated artifacts ---
artifacts/
.tmp/
tmp_*
*.local.csv
*.local.json
*.local.jsonl
audit_report.json
docs/project_structure.txt

# --- Repo-private / tooling docs (do not publish) ---
AGENTS.md

# ---------------------------------------------------------------------------
# AI / Codex / LLM tooling artifacts (NEVER COMMIT)
# ---------------------------------------------------------------------------
.codex/
.codex-cache/
.codex-output/
.codex-tmp/
.ai/
.ai-cache/
.ai-output/
.llm/
.llm-cache/
.copilot/
.cursor/
.cursor-cache/
.cursor-tmp/

scratch/
scratchpad/
tmp-ai/
tmp-llm/

*.prompt.md
*.prompt.txt
*.agent.md
*.agent.log
*.llm.log
*.llm.json

# ---------------------------------------------------------------------------
# Terraform (NEVER COMMIT: state, plans, secrets, provider dirs)
# ---------------------------------------------------------------------------
**/.terraform/
*.tfstate
*.tfstate.*
*.tfplan
tfplan
crash.log
crash.*.log
**/*.tfvars
**/*.tfvars.json
.terraform.lock.hcl.bak
**/.terraform.lock.hcl.bak

# ---------------------------------------------------------------------------
# VPN / key material (NEVER COMMIT)
# ---------------------------------------------------------------------------
**/*.ovpn
**/*.pem
**/*.key
**/*.p12
**/*.pfx

# The OpenAPI snapshot test writes its normalized comparison here on a
# mismatch. Refreshing the snapshot leaves them behind, where `git add -A`
# sweeps them into the next commit.
tests/openapi/debug/
.aider*
