diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 597eba922be..f148989e85b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,28 +1,38 @@ # Contributing to Eliza -First off, thank you for considering contributing to Eliza! It's people like you that make Eliza such a great tool. We welcome contributions from everyone, regardless of their experience level. +First off, thank you for considering contributing to Eliza! We welcome contributions from everyone, regardless of experience level. -## Code of Conduct +## Contribution License Agreement -By participating in this project, you are expected to uphold our Code of Conduct. Please report unacceptable behavior. +By contributing to Eliza, you agree that your contributions will be licensed under the MIT License. This means: -## How Can I Contribute? +1. You grant us (and everyone else) a perpetual, worldwide, non-exclusive, royalty-free license to use your contributions. +2. Your contributions are and will be available as Free and Open Source Software (FOSS). +3. You have the right to submit the work under this license. +4. You understand that your contributions are public and that a record of the contribution is maintained indefinitely. -### Reporting Bugs +## The OODA Loop: A Framework for Contribution -1. Ensure the bug was not already reported by searching on GitHub under [Issues](https://github.com/ai16z/eliza/issues). -2. If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/ai16z/eliza/issues/new). Be sure to include +We believe in the power of the OODA Loop - a decision-making framework that emphasizes speed and adaptability. OODA stands for: -- a title and clear description, -- as much relevant information as possible, and -- a code sample or an executable test case demonstrating the expected behavior that is not occurring. +- **Observe**: Gather information and insights about the project, the community, and the broader AI ecosystem. +- **Orient**: Analyze your observations to identify opportunities for contribution and improvement. +- **Decide**: Choose a course of action based on your analysis. This could be proposing a new feature, fixing a bug, or creating content. +- **Act**: Execute your decision and share your work with the community. -### Suggesting Enhancements +## How to Contribute -1. Open a new issue with a clear title and detailed description of the suggested enhancement. -2. Include any relevant examples or mock-ups if applicable. +### For Developers -### Pull Requests +1. **Extend Eliza's Capabilities** + - Develop new actions, evaluators, and providers + - Improve existing components and modules + +2. **Enhance Infrastructure** + - Review open issues and submit PRs + - Test and update documentation + - Optimize performance + - Improve deployment solutions 1. Fork the repo and create your branch from `main`. 1. The name of the branch should start with the issue number and be descriptive of the changes you are making. @@ -64,12 +74,55 @@ This section lists the labels we use to help us track and manage issues and pull - `documentation` - Issues or pull requests related to documentation. - `good first issue` - Good for newcomers. -## Recognition -We value every contribution. Contributors will be recognized in our README.md file. Significant contributions may be acknowledged with special roles or responsibilities within the project. +## Getting Help + +- Join [Discord](https://discord.gg/ai16z) +- Check [FAQ](docs/community/faq.md) +- Create GitHub issues + +## Additional Resources + +- [Local Development Guide](docs/guides/local-development.md) +- [Configuration Guide](docs/guides/configuration.md) +- [API Documentation](docs/api) + +## Contributor Guide + +Welcome to the Eliza contributor guide! This document is designed to help you understand how you can be part of building the future of autonomous AI agents, regardless of your technical background. + +### Code of Conduct + +#### Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. + +#### Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members + +Examples of unacceptable behavior include: + +- The use of sexualized language or imagery and unwelcome sexual attention or advances +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information without explicit permission +- Other conduct which could reasonably be considered inappropriate in a professional setting + +#### Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. -## Questions? +#### Scope -If you have any questions, please feel free to contact the project maintainers with an issue or in discord. +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. -Thank you for your interest in contributing to Eliza! +Thank you for contributing to Eliza and helping build the future of autonomous AI agents! 🎉 diff --git a/docs/README.md b/docs/README.md index ffdf6295fea..da88209d70b 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,4 +1,7 @@ -# Eliza +# Eliza - Multi-agent simulation framework +# https://github.com/ai16z/eliza +# Visit https://eliza.builders for support +# dev branch Eliza Banner diff --git a/docs/docs/community/contributing.md b/docs/docs/community/contributing.md index 551107b5d9a..496c623e574 100644 --- a/docs/docs/community/contributing.md +++ b/docs/docs/community/contributing.md @@ -1,207 +1,135 @@ ---- -sidebar_position: 5 -title: Contributing ---- - -# Contributor Guide - -Welcome to the Eliza contributor guide! This document is designed to help you understand how you can be part of building the future of autonomous AI agents, regardless of your technical background. - -## The OODA Loop: A Framework for Contribution +# Contributing to Eliza -We believe in the power of the OODA Loop - a decision-making framework that emphasizes speed and adaptability. OODA stands for: +First off, thank you for considering contributing to Eliza! We welcome contributions from everyone, regardless of experience level. 🎉 -- **Observe**: Gather information and insights about the project, the community, and the broader AI ecosystem. -- **Orient**: Analyze your observations to identify opportunities for contribution and improvement. -- **Decide**: Choose a course of action based on your analysis. This could be proposing a new feature, fixing a bug, or creating content. -- **Act**: Execute your decision and share your work with the community. +## Table of Contents +- [Contribution License Agreement](#contribution-license-agreement) +- [Code of Conduct](#code-of-conduct) +- [OODA Loop Framework](#the-ooda-loop-a-framework-for-contribution) +- [How to Contribute](#how-to-contribute) +- [Pull Request Guidelines](#pull-request-guidelines) +- [Styleguides](#styleguides) +- [Recognition and Rewards](#recognition-and-rewards) +- [Getting Help](#getting-help) -By internalizing the OODA Loop, you can quickly identify areas where you can make a meaningful impact and drive the project forward. - ---- - -## How to Contribute - -### For Developers +## Contribution License Agreement -1. **Extend Eliza's Capabilities** +By contributing to Eliza, you agree that your contributions will be licensed under the MIT License. This means: - - Develop new actions, evaluators, and providers to expand what Eliza agents can do. - - Improve existing components and modules. +1. You grant us (and everyone else) a perpetual, worldwide, non-exclusive, royalty-free license to use your contributions +2. Your contributions are and will be available as Free and Open Source Software (FOSS) +3. You have the right to submit the work under this license +4. You understand that your contributions are public and maintained indefinitely -2. **Enhance Infrastructure** +## Code of Conduct - - Go through open issues, send back a PR if you can improve anything. - - Test currently documented steps to ensure they're still up to date. - - Optimize Eliza's database architecture and performance. - - Contribute to the autonomous trading system and trust engine. - - Improve deployment and scaling solutions. +### Our Pledge -3. **Implement Integrations** - - Build connectors for new platforms and services. - - Enhance existing integrations with additional features. +We pledge to make participation in our project a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. -### For AI Enthusiasts - -1. **Fine-tune Models** - - - Experiment with fine-tuning models for specific tasks and domains. - - Develop best practices for prompt engineering and model selection. - -2. **Develop Characters** - - Create compelling character files that showcase Eliza's potential. - - Curate knowledge bases and datasets for different use cases. - -### Non-Technical Contributions - -1. **Create Content** - - - Make memes, stickers, emojis, and clips of AI agents that are deployed. - - Write tutorials, guides, and blog posts to help others learn about Eliza. - - Produce videos showcasing Eliza's capabilities and real-world applications. - -2. **Engage the Community** - - - Participate in discussions on Discord, Twitter, and other platforms. - - Help answer questions and provide support to other community members. - - Organize events, workshops, and hackathons to bring people together. - -3. **Spread the Word** - - Share the Eliza project and help attract new contributors. - - Participate in one of our upcoming demo days, show and tell your project. - ---- +### Our Standards -### Tips for Efficient Contribution +Positive behavior includes: +- Using welcoming and inclusive language +- Being respectful of differing viewpoints +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards others -- Use tools like OBS and Whisper to record and transcribe your work sessions. This allows you to easily document your process and share insights with the community. -- Leverage AI assistants to help with tasks like code generation, document summarization, and content creation. -- Collaborate with other community members to divide and conquer larger initiatives. +Unacceptable behavior includes: +- Harassment of any kind +- Discriminatory jokes and language +- Publishing others' private information +- Other unprofessional conduct ---- +## The OODA Loop: A Framework for Contribution -## Contributing Guidelines +We follow the OODA Loop for decision-making: -We value structured and clear contributions to ensure the project evolves efficiently. Below are the guidelines for submitting your contributions: +- **Observe**: Gather information about the project and ecosystem +- **Orient**: Analyze opportunities for improvement +- **Decide**: Choose your contribution approach +- **Act**: Execute and share your work -### Pull Request (PR) Title Format +## How to Contribute -Use the following format for PR titles to maintain consistency and clarity: +### For Developers +1. **Development Process** + ```bash + # Fork and clone + git clone https://github.com/yourusername/eliza.git + cd eliza + + # Create branch (include issue number) + git checkout -b 123-add-new-feature + + # Make changes, test, and commit + npm test + git commit -m "feat: add new feature" + + # Push and create PR + git push origin 123-add-new-feature + ``` + +2. **Areas for Contribution** + - Extend Eliza's capabilities + - Enhance infrastructure + - Improve documentation + - Fix bugs + - Add tests + +## Pull Request Guidelines + +### PR Title Format ``` feat|fix|docs|style|refactor|test|chore: title ``` -### Pull Request Description Template - -When submitting a PR, use this template to ensure all relevant details are included: - +### PR Template ```markdown - - # Relates to: - - - - - -# Risks - - +[Link to issue] # Background - -## What does this PR do? - -## What kind of change is this? - - - - - - -# Documentation changes needed? - - - - +- What does this PR do? +- What kind of change is this? # Testing +- How to test the changes +- Screenshots (if UI changes) -## Where should a reviewer start? - -## Detailed testing steps - - - - - - - - - - - - - - - - - - - +# Documentation +- Required documentation changes ``` ---- +## Styleguides -## Recognition and Rewards +### Git Commit Messages +- Use present tense ("Add feature" not "Added feature") +- Use imperative mood ("Move cursor" not "Moves cursor") +- Limit first line to 72 characters +- Reference issues after first line -We believe in recognizing and rewarding contributors who go above and beyond to drive the project forward. Contributors are eligible for direct communication with a16z devs on Discord through a "Github - Contributors" role when their pull request (PR) with their Discord username attached is merged. +### Code Style +- JavaScript: Follow [JavaScript Standard Style](https://standardjs.com/) +- TypeScript: Follow [TypeScript Standard Style](https://github.com/standard/ts-standard) +- Documentation: Use [Markdown](https://daringfireball.net/projects/markdown/) -Stand-out contributions may be eligible for: +## Recognition and Rewards -- Grants from the ai16z Creator Fund -- Featuring your project across various channels -- Opportunities to shape the direction of the project +Contributors can earn: +- "Github - Contributors" role on Discord +- Direct communication with a16z devs +- Recognition for outstanding contributions -Note: we're still finalizing details on the creator/dev fund that seeks to retroactively reward valued contributions to the ecosystem. +## Getting Help -## Getting Started +- Join [Discord](https://discord.gg/ai16z) +- Check [FAQ](docs/community/faq.md) +- Create GitHub issues +- Review [Documentation](docs/) -1. Join the [Eliza Discord](https://discord.gg/ai16z) and make a short introduction. -2. Explore the [documentation](/docs/intro) to understand the project's architecture and capabilities. -3. Check out the [open issues](https://github.com/ai16z/eliza/issues) on GitHub to find ways to contribute. -4. Share your ideas and initiatives with the community - we're excited to see what you'll build! +--- -Lets push the boundaries of what's possible with autonomous AI agents. Welcome aboard! +Thank you for contributing to Eliza and helping build the future of autonomous AI agents! 🚀 \ No newline at end of file diff --git a/renovate.json b/renovate.json new file mode 100644 index 00000000000..5a0192be083 --- /dev/null +++ b/renovate.json @@ -0,0 +1,85 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:base" + ], + "packageRules": [ + { + "groupName": "Discord.js ecosystem", + "matchPackagePatterns": [ + "^@discordjs/", + "^discord.js" + ] + }, + { + "groupName": "TypeScript and related", + "matchPackagePatterns": [ + "^@typescript-eslint/", + "^typescript$", + "^ts-", + "^tslib$" + ] + }, + { + "groupName": "Testing frameworks", + "matchPackagePatterns": [ + "^jest$", + "^@types/jest$" + ] + }, + { + "groupName": "Rollup and plugins", + "matchPackagePatterns": [ + "^@rollup/", + "^rollup" + ] + }, + { + "groupName": "ESLint and formatting", + "matchPackagePatterns": [ + "^eslint", + "^prettier" + ] + }, + { + "groupName": "SQLite related", + "matchPackagePatterns": [ + "sqlite", + "^@types/better-sqlite3", + "^@types/sql.js" + ] + }, + { + "groupName": "AI/ML packages", + "matchPackagePatterns": [ + "^@anthropic-ai/", + "^@huggingface/", + "^openai$", + "^tiktoken$" + ] + }, + { + "groupName": "Audio processing", + "matchPackagePatterns": [ + "^wav", + "^@discordjs/opus", + "^fluent-ffmpeg", + "^ffmpeg", + "^@types/wav" + ] + }, + { + "groupName": "Solana packages", + "matchPackagePatterns": [ + "^@solana/" + ] + } + ], + "timezone": "UTC", + "schedule": ["every weekend"], + "prHourlyLimit": 2, + "prConcurrentLimit": 10, + "rangeStrategy": "pin", + "separateMajorMinor": true, + "dependencyDashboard": true + } \ No newline at end of file