Skip to content

Latest commit

 

History

History
137 lines (102 loc) · 3 KB

File metadata and controls

137 lines (102 loc) · 3 KB

Contributing to Moonverse.ts

Thank you for your interest in contributing to Moonverse.ts!

Development Setup

  1. Fork and clone the repository
git clone https://github.com/Termina/moonverse.ts.git
cd moonverse.ts
  1. Install dependencies
yarn install
  1. Set up your API key
export GEMINI_API_KEY='your-api-key-here'
  1. Build the project
yarn build

Development Workflow

Running in Development Mode

yarn dev

This uses tsx to run TypeScript directly without compilation.

Building for Production

yarn build

This compiles TypeScript to JavaScript in the dist/ directory.

Code Style

  • Use TypeScript with strict mode
  • Follow existing code conventions
  • Add types for all function parameters and return values
  • Use descriptive variable and function names
  • Add comments for complex logic

Testing Your Changes

  1. Build the project
  2. Configure it in Claude Desktop (see USAGE.md)
  3. Test the query_moonbit_docs tool with various queries
  4. Verify error handling with invalid inputs

Adding Documentation

When adding new documentation files to the store/ directory:

  • Use .txt or .md format
  • Ensure files are text-based and readable
  • Keep files focused and well-structured
  • Test that the server can upload and use them

Submitting Changes

  1. Create a new branch for your feature
git checkout -b feature/your-feature-name
  1. Make your changes and commit
git add .
git commit -m "Description of your changes"
  1. Push to your fork
git push origin feature/your-feature-name
  1. Create a Pull Request on GitHub

Pull Request Guidelines

  • Describe your changes: Explain what you changed and why
  • Keep it focused: One feature or fix per PR
  • Update documentation: If you change behavior, update the docs
  • Test your changes: Ensure the code builds and runs
  • Follow code style: Match the existing code conventions

Areas for Contribution

Here are some areas where contributions would be welcome:

Features

  • Support for additional file types (PDF, HTML, etc.)
  • File search stores API integration when available
  • Persistent file caching between sessions
  • Batch file uploads
  • Support for file updates without restart
  • Additional MCP tools (list documents, search by keyword, etc.)

Documentation

  • More usage examples
  • Troubleshooting guide
  • Video tutorials
  • Integration guides for other MCP clients

Testing

  • Unit tests for file processing
  • Integration tests with mock Gemini API
  • End-to-end tests

Performance

  • Optimize file upload process
  • Add caching for common queries
  • Reduce memory usage

Code of Conduct

  • Be respectful and inclusive
  • Welcome newcomers
  • Focus on constructive feedback
  • Help others learn and grow

Questions?

If you have questions about contributing, please:

  • Open an issue on GitHub
  • Check existing issues and documentation
  • Be patient and respectful

Thank you for contributing to Moonverse.ts! 🚀