Metadata-Version: 2.4
Name: ros2-gpt
Version: 0.1.0
Summary: AI-powered ROS 2 development assistant
Project-URL: Homepage, https://github.com/ros2-gpt/ros2-gpt
Project-URL: Documentation, https://ros2-gpt.readthedocs.io
Project-URL: Repository, https://github.com/ros2-gpt/ros2-gpt
Project-URL: Issues, https://github.com/ros2-gpt/ros2-gpt/issues
Author: ROS2-GPT Team
License-Expression: MIT
License-File: LICENSE
Keywords: ai,development,llm,robotics,ros2
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Compilers
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.11
Requires-Dist: aiofiles>=23.2.1
Requires-Dist: asyncio-throttle>=1.0.2
Requires-Dist: click>=8.1.7
Requires-Dist: httpx>=0.26.0
Requires-Dist: lxml>=5.1.0
Requires-Dist: networkx>=3.2.1
Requires-Dist: numpy>=1.26.2
Requires-Dist: pydantic-settings>=2.1.0
Requires-Dist: pydantic>=2.5.0
Requires-Dist: pyyaml>=6.0.1
Requires-Dist: rich>=13.7.0
Requires-Dist: tiktoken>=0.5.2
Requires-Dist: tomli>=2.0.1; python_version < '3.11'
Requires-Dist: watchdog>=3.0.0
Provides-Extra: ai
Requires-Dist: chromadb>=0.4.22; extra == 'ai'
Requires-Dist: ollama>=0.1.7; extra == 'ai'
Requires-Dist: openai>=1.12.0; extra == 'ai'
Requires-Dist: sentence-transformers>=2.2.2; extra == 'ai'
Provides-Extra: all
Requires-Dist: chromadb>=0.4.22; extra == 'all'
Requires-Dist: fastapi>=0.109.0; extra == 'all'
Requires-Dist: mypy>=1.8.0; extra == 'all'
Requires-Dist: ollama>=0.1.7; extra == 'all'
Requires-Dist: openai>=1.12.0; extra == 'all'
Requires-Dist: pre-commit>=3.6.0; extra == 'all'
Requires-Dist: pyside6>=6.6.1; extra == 'all'
Requires-Dist: pytest-asyncio>=0.23.3; extra == 'all'
Requires-Dist: pytest-cov>=4.1.0; extra == 'all'
Requires-Dist: pytest>=7.4.4; extra == 'all'
Requires-Dist: ruff>=0.2.0; extra == 'all'
Requires-Dist: sentence-transformers>=2.2.2; extra == 'all'
Requires-Dist: uvicorn[standard]>=0.27.0; extra == 'all'
Requires-Dist: websockets>=12.0; extra == 'all'
Provides-Extra: dev
Requires-Dist: mypy>=1.8.0; extra == 'dev'
Requires-Dist: pre-commit>=3.6.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23.3; extra == 'dev'
Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
Requires-Dist: pytest>=7.4.4; extra == 'dev'
Requires-Dist: ruff>=0.2.0; extra == 'dev'
Provides-Extra: gui
Requires-Dist: pyside6>=6.6.1; extra == 'gui'
Provides-Extra: server
Requires-Dist: fastapi>=0.109.0; extra == 'server'
Requires-Dist: uvicorn[standard]>=0.27.0; extra == 'server'
Requires-Dist: websockets>=12.0; extra == 'server'
Description-Content-Type: text/markdown

# ROS2-GPT

[![CI](https://github.com/ros2-gpt/ros2-gpt/actions/workflows/ci.yml/badge.svg)](https://github.com/ros2-gpt/ros2-gpt/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)

AI-powered ROS 2 development assistant — workspace scanning, package parsing, dependency analysis, build error diagnosis, code generation, and more.

## Features

| Feature | Description |
|---|---|
| **Workspace Scanner** | Discover packages, categorize 15+ file types, incremental re-indexing (<30s for 100 packages) |
| **Package Parser** | Parse package.xml, CMakeLists.txt, setup.py, launch files, URDF/Xacro |
| **Dependency Graph** | NetworkX DAG with cycle detection, topological build order, DOT/Mermaid/JSON export |
| **LLM Integration** | Multiple providers (Ollama, OpenAI-compatible), code explanation, package generation |
| **RAG Pipeline** | ChromaDB vector search, documentation indexing (ROS2 core, Nav2, MoveIt2, etc.), workspace memory |
| **Code Generation** | C++/Python nodes (pub/sub, services, actions, lifecycle, composable), launch files, interfaces |
| **Build Analysis** | Log parsing, CMake/package.xml validation, QoS mismatch, TF errors, URDF/Xacro validation, DDS issues |
| **REST API** | 13 endpoints + WebSocket — integrate with any frontend |
| **Desktop UI** | PySide6 tabbed interface with dashboard, scanner, graph, build analyzer, generator, settings |
| **VS Code Extension** | Tree view, commands, diagnostics integration |

## Quick Start

```bash
pip install -e ".[dev]"
ros2-gpt scan /path/to/ros2_workspace
```

## Installation

### Basic
```bash
pip install -e .
```

### With all extras
```bash
pip install -e ".[all]"
```

### Optional dependency groups
| Group | Includes |
|---|---|
| `[ai]` | sentence-transformers, chromadb, openai, ollama |
| `[gui]` | PySide6 (desktop UI) |
| `[server]` | fastapi, uvicorn, websockets (REST API) |
| `[dev]` | pytest, mypy, ruff, pre-commit |

## CLI Commands

### Workspace & Package
```bash
ros2-gpt scan <workspace>          # Scan workspace
ros2-gpt parse <package>           # Parse a package
ros2-gpt graph <workspace>         # Generate dependency graph
ros2-gpt deps <workspace> <pkg>    # Show deps for a package
ros2-gpt stats <workspace>         # Workspace statistics
ros2-gpt launch <file>             # Parse launch file
ros2-gpt urdf <file>               # Parse URDF/Xacro file
```

### Build Analysis
```bash
ros2-gpt analyze-build-log <file>           # Analyze colcon build log
ros2-gpt check-cmake <file>                 # Check CMakeLists.txt
ros2-gpt check-package-xml <file>           # Check package.xml
ros2-gpt check-qos <file>                   # Check QoS mismatches
ros2-gpt check-tf-log <file>                # Check TF issues in logs
ros2-gpt check-tf-code <file>               # Check TF issues in code
ros2-gpt check-urdf <file>                  # Check URDF validity
ros2-gpt check-xacro <file>                 # Check Xacro validity
ros2-gpt check-dds-log <file>               # Check DDS issues in logs
ros2-gpt check-dds-config <file>            # Check DDS configuration
```

## REST API

```bash
# Start the server
python -m ros2_gpt.api.server

# Health check
curl http://127.0.0.1:8420/health
```

Full swagger docs at `http://127.0.0.1:8420/docs`

## Desktop UI

```bash
python -m ros2_gpt.ui
```

## VS Code Extension

See [vscode-extension/](vscode-extension/README.md) for setup instructions.

## Development

```bash
make install-dev     # pip install -e ".[all]"
make lint            # ruff check
make typecheck       # mypy
make test            # pytest
make test-cov        # pytest with coverage
```

## Architecture

```
ros2_gpt/
├── config/           # Pydantic settings
├── logging/          # Structured logging
├── plugins/          # Plugin system
├── scanner/          # Workspace discovery
├── parser/           # ROS2 file parsers
├── graph/            # Dependency graph
├── llm/              # LLM provider abstraction
├── ai/               # AI engine, prompts
├── vector_db/        # ChromaDB wrapper
├── search/           # Semantic search
├── docs/             # Documentation indexer
├── memory/           # Workspace memory
├── rag/              # RAG pipeline
├── generator/        # Code generation
├── build_analysis/   # Build error diagnosis
├── api/              # REST API + WebSocket
├── ui/               # Desktop UI (PySide6)
└── cli/              # CLI commands
```

## License

MIT
