██████╗ ██████╗ ██████╗ ███████╗███████╗████████╗ ██████╗ ██████╗ ██╗ ██╗
██╔════╝██╔═══██╗██╔══██╗██╔════╝██╔════╝╚══██╔══╝██╔═══██╗██╔══██╗╚██╗ ██╔╝
██║ ██║ ██║██║ ██║█████╗ ███████╗ ██║ ██║ ██║██████╔╝ ╚████╔╝
██║ ██║ ██║██║ ██║██╔══╝ ╚════██║ ██║ ██║ ██║██╔══██╗ ╚██╔╝
╚██████╗╚██████╔╝██████╔╝███████╗███████║ ██║ ╚██████╔╝██║ ██║ ██║
╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝╚══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝
Sidecar is the AI brains of Aide the editor. To accomplish the work of creating the prompts, talking to LLM and everything else in between Sidecar is responsible for making sure it all works together.
Broadly speaking these are the following important bits in Sidecar:
tool_box.rs
- The collection of all and any tools AI might need is present here, all the language specific smartness is handled bytool_box.rs
symbol/
- The symbol folder contains the code which allows each individual symbol to be smart and independent. This can work on any granularity level, all the way from a file to a single function or function inside a class (its very versatile)llm_prompts/
- This is a relic of the past (and somewhat in use still) for creating prompts especially for the inline completion bits. The inline completions bits are not maintained any longer but if you want to take a stab at working on it, please reach out to us on Discord, we are happy to support you.repomap
- This creates a repository map using page rank on the code symbols. Most of the code here is a port of the python implementation done on Aider (do check it out if you are in the market for a CLI tool for code-generation)
- Ensure you are using Rust 1.73
- Build the binary:
cargo build --bin webserver
- Run the binary:
./target/debug/webserver
- Profit!
- Run the Aide production build or build from source using this
- Run the sidecar binary
- Since you have a sidecar binary already running, the editor will prefer to use this over starting its own process.
- Congratulations! You are now running sidecar for Aide locally with your own built binary.
There are many ways in which you can participate in this project, for example:
- Submit bugs and feature requests, and help us verify as they are checked in
- Review source code changes
If you are interested in fixing issues and contributing directly to the code base, please see the document How to Contribute, which covers the following:
- How to build and run from source
- The development workflow, including debugging and running tests
- Submitting pull requests
- File an issue
- Request a new feature
- Upvote popular feature requests
- Join our community: Discord
This project has adopted the Contributor Covenant Code of Conduct. Please read the Code of Conduct before contributing to this project.
Copyright (c) 2024 CodeStory AI. All rights reserved. Licensed under the GNU Affero General Public License v3.0.