Files
2025-04-09 09:34:15 +02:00

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