# 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