Thank you for your interest in contributing to TSAgent! This document provides guidelines and information for contributors.
This project adheres to a code of conduct. By participating, you are expected to uphold this code.
- Node.js 18+
- npm or yarn
- Git
-
Fork the repository
-
Clone your fork:
git clone https://github.com/your-username/tsagent.git cd tsagent -
Install dependencies:
npm install
-
Build the project:
npm run build
# Desktop app
npm run dev:desktop
# CLI tool
npm run dev:cli
# Build all packages
npm run build# Run tests for all packages
npm test
# Run tests for specific package
cd packages/agent-api && npm testUse descriptive branch names:
feature/agent-orchestrationfix/mcp-server-bugdocs/update-readme
Follow conventional commits:
feat: add new LLM provider supportfix: resolve agent loading issuedocs: update installation guidetest: add unit tests for agent-api
- Create a feature branch from
main - Make your changes
- Add tests if applicable
- Update documentation if needed
- Ensure all tests pass
- Submit a pull request
packages/agent-api/- Core TypeScript librarypackages/a2a-server/- A2A protocol serverpackages/a2a-mcp/- MCP server for orchestrationapps/desktop/- Electron desktop applicationapps/cli/- Command-line interface
- Use strict TypeScript configuration
- Prefer interfaces over types when possible
- Use meaningful variable and function names
- Add JSDoc comments for public APIs
- Follow existing code patterns
- Use consistent indentation (2 spaces)
- Prefer const/let over var
- Use async/await over Promises
- Update README.md for user-facing changes
- Add JSDoc comments for new APIs
- Update package.json descriptions when needed
- Include examples for new features
When reporting issues, please include:
- TSAgent version
- Operating system
- Steps to reproduce
- Expected vs actual behavior
- Relevant error messages
For feature requests:
- Check existing issues first
- Provide clear use case
- Consider implementation complexity
- Discuss in GitHub Discussions if needed
By contributing to TSAgent, you agree that your contributions will be licensed under the MIT License.
- Join our GitHub Discussions
- Open an issue