# Node.js (Frontend)

backend/uploads/
backend/*.db
backend/db/
backend/*.db
backend/venv/
backend/backend_venv/
backend/.venv/
backend/tests/integrations/integrations.json
test_data_sources/
excel-add-in/hi/node_modules/
backend/tests/evals/spider_results.jsonl

frontend/.nuxt/cache/
# Nuxt dev/build outputs
frontend/.output
frontend/.data
frontend/.nuxt
frontend/.nitro
frontend/.cache
frontend/dist
frontend/node_modules/
frontend/.output/
frontend/test-results/
frontend/tests/config/*.json
# Logs
backend/logs
*.log

# Misc
.DS_Store

# Local env files
.env
.env.*
!.env.example


*.pyc
backend/alembic.ini
backend/app.db

# Sandbox session state (credentials, tokens, IDs)
backend/sandbox_state.json

# Claude Code local settings overrides
.claude/settings.local.json
.claude/worktrees/*

backend/sandbox_main.py
configs/bow-config.dev.entra.yaml


# load-test sandbox secrets / generated output
backend/.sandbox_env
backend/loadtest/*.json
backend/loadtest/*.csv
backend/loadtest/smoke.json
backend/loadtest/smoke*.json

# repo-root symlink to frontend/node_modules so tools/agent/*.mjs resolve @playwright/test
/node_modules

# Sandbox feedback loop — local secrets & runtime artifacts (never commit)
.agents/sandbox-feedback-loop/secrets.env
.agents/sandbox-feedback-loop/runtime/
.agents/sandbox-feedback-loop/netdir/
.agents/sandbox-feedback-loop/*.log
.agents/sandbox-feedback-loop/

# Playwright throwaway auth state / capture helpers (never commit)
frontend/state.json
frontend/shot*.mjs
frontend/shots*.mjs
frontend/login*.mjs
frontend/evidence*.mjs
frontend/diag*.mjs
frontend/.agent-tmp/

# ui-audit run artifacts. state.json holds a live session JWT — never commit it.
# The written-up expectations/findings markdown is kept.
audit/**/state.json
audit/**/screenshots/
audit/**/routes/
audit/**/*.json
tools/agent/node_modules
