84 lines
2.7 KiB
Markdown
84 lines
2.7 KiB
Markdown
# Edison Developer Documentation
|
|
|
|
Welcome to the Edison developer documentation! This guide will help you understand Edison's architecture, code organization, and how to extend its functionality.
|
|
|
|
## Table of Contents
|
|
|
|
1. [Architecture Overview](architecture.md)
|
|
2. [Code Structure](code-structure.md)
|
|
3. [API Integration](api-integration.md)
|
|
4. [Contributing Guidelines](contributing.md)
|
|
5. [Development Environment Setup](development-setup.md)
|
|
|
|
## Getting Started with Development
|
|
|
|
Edison is a Python application that translates natural language into shell commands using OpenAI's APIs. It's designed to be modular and extensible, making it easy to add new features.
|
|
|
|
```mermaid
|
|
flowchart TD
|
|
User([User]) -->|Query| CLI[CLI Module]
|
|
CLI -->|Process| Core[Core Module]
|
|
Core -->|API Request| OpenAI[OpenAI API]
|
|
OpenAI -->|Response| Core
|
|
Core -->|Command| Shell[Shell]
|
|
Core -->|Feedback| CLI
|
|
CLI -->|Display| User
|
|
|
|
subgraph Edison Application
|
|
CLI
|
|
Core
|
|
end
|
|
|
|
style User fill:#f9d5e5,stroke:#333,stroke-width:2px
|
|
style Edison Application fill:#d3f6db,stroke:#333,stroke-width:4px
|
|
style OpenAI fill:#d3f6f5,stroke:#333,stroke-width:2px
|
|
style Shell fill:#eeeeee,stroke:#333,stroke-width:2px
|
|
```
|
|
|
|
## Quick Start for Developers
|
|
|
|
1. **Clone the repository**:
|
|
```bash
|
|
git clone https://github.com/user/command-assistant
|
|
cd command-assistant
|
|
```
|
|
|
|
2. **Create a development environment**:
|
|
```bash
|
|
python -m venv venv
|
|
source venv/bin/activate # On Windows: venv\Scripts\activate
|
|
pip install -e .
|
|
```
|
|
|
|
3. **Run Edison in development mode**:
|
|
```bash
|
|
python -m edison your query here
|
|
```
|
|
|
|
## Key Developer Resources
|
|
|
|
| Resource | Description |
|
|
|----------|-------------|
|
|
| [Architecture Overview](architecture.md) | High-level design and component interaction |
|
|
| [Code Structure](code-structure.md) | Detailed breakdown of the codebase |
|
|
| [API Integration](api-integration.md) | How Edison interacts with the OpenAI API |
|
|
| [Contributing Guidelines](contributing.md) | How to contribute to the project |
|
|
|
|
## Development Philosophy
|
|
|
|
Edison follows these design principles:
|
|
|
|
1. **Modularity**: Components should be loosely coupled and focused on a single responsibility
|
|
2. **Simplicity**: Keep the codebase simple and maintainable
|
|
3. **User-centric**: Features should address real user needs
|
|
4. **Safety**: Prioritize user safety when generating and executing commands
|
|
|
|
## Component Overview
|
|
|
|
Edison is organized into several main components:
|
|
|
|
- **CLI**: Command-line interface and user interaction
|
|
- **Core**: Business logic, API integration, and command processing
|
|
- **Config**: Configuration management
|
|
- **UI**: User interface components
|
|
- **Utils**: Utility functions and helpers |