Thank you for your interest in contributing to agent-mesh! This document provides guidelines and instructions for contributing.
- Fork the repository
- Clone your fork:
git clone https://github.com/reaatech/agent-mesh.git - Install dependencies:
npm install - Create a branch:
git checkout -b feature/your-feature
- Node.js 22 LTS (see
.nvmrc) - npm or pnpm
- Docker (for local testing with emulators)
# Install dependencies
npm install
# Start development server
npm run dev
# Run tests
npm run test
# Build
npm run build# Build and run with emulators
docker compose up --build
# Access services:
# - Orchestrator: http://localhost:8080
# - Jaeger UI: http://localhost:16686
# - Firestore Emulator: http://localhost:8040- Strict mode enabled
- No
anytypes without justification - All exports must have type definitions
# Check linting
npm run lint
# Auto-fix
npm run lint:fix# Check formatting
npm run format:check
# Auto-format
npm run format# All tests
npm run test
# With coverage
npm run test:coverage
# Watch mode
npm run test:watch- Unit tests: Test individual modules in isolation
- Contract tests: Validate API contracts and schemas
- Integration tests: Test component interactions
- Use descriptive test names
- Test both success and failure paths
- Mock external dependencies
- Aim for 80%+ coverage
- Create PR: Open a PR against
mainbranch - Fill template: Complete the PR template
- Pass CI: All checks must pass
- Review: Address review feedback
- Merge: Maintainers will merge when ready
- Code follows project style guidelines
- Tests added/updated and passing
- Documentation updated
- No proprietary references
- No hardcoded values
- Commit messages are descriptive
Follow Conventional Commits:
feat: add circuit breaker persistence
fix: resolve session TTL refresh issue
docs: update README with deployment guide
refactor: simplify confidence gate logic
test: add routing contract tests
- Use the issue templates
- Include environment details
- Provide reproduction steps
- Add logs when relevant
By contributing, you agree that your contributions will be licensed under the MIT License.