OpenHands is an automated AI software engineer. It is a repo with a Python backend (in the `openhands` directory) and TypeScript frontend (in the `frontend` directory). General Setup: - To set up the entire repo, including frontend and backend, run `make build` - To run linting and type-checking before finishing the job, run `poetry run pre-commit run --all-files --config ./dev_config/python/.pre-commit-config.yaml` Backend: - Located in the `openhands` directory - Testing: - All tests are in `tests/unit/test_*.py` - To test new code, run `poetry run pytest tests/unit/test_xxx.py` where `xxx` is the appropriate file for the current functionality - Write all tests with pytest Frontend: - Located in the `frontend` directory - Prerequisites: A recent version of NodeJS / NPM - Setup: Run `npm install` in the frontend directory - Testing: - Run tests: `npm run test` - To run specific tests: `npm run test -- -t "TestName"` - Building: - Build for production: `npm run build` - Environment Variables: - Set in `frontend/.env` or as environment variables - Available variables: VITE_BACKEND_HOST, VITE_USE_TLS, VITE_INSECURE_SKIP_VERIFY, VITE_FRONTEND_PORT - Internationalization: - Generate i18n declaration file: `npm run make-i18n`