ros2-gpt 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. ros2_gpt-0.1.0/.github/workflows/ci.yml +71 -0
  2. ros2_gpt-0.1.0/.gitignore +42 -0
  3. ros2_gpt-0.1.0/.pre-commit-config.yaml +19 -0
  4. ros2_gpt-0.1.0/CHANGELOG.md +14 -0
  5. ros2_gpt-0.1.0/CONTRIBUTING.md +36 -0
  6. ros2_gpt-0.1.0/Dockerfile +12 -0
  7. ros2_gpt-0.1.0/LICENSE +21 -0
  8. ros2_gpt-0.1.0/Makefile +35 -0
  9. ros2_gpt-0.1.0/PKG-INFO +205 -0
  10. ros2_gpt-0.1.0/README.md +135 -0
  11. ros2_gpt-0.1.0/pyproject.toml +108 -0
  12. ros2_gpt-0.1.0/ros2_gpt/__init__.py +4 -0
  13. ros2_gpt-0.1.0/ros2_gpt/__main__.py +4 -0
  14. ros2_gpt-0.1.0/ros2_gpt/ai/__init__.py +15 -0
  15. ros2_gpt-0.1.0/ros2_gpt/ai/context.py +169 -0
  16. ros2_gpt-0.1.0/ros2_gpt/ai/engine.py +163 -0
  17. ros2_gpt-0.1.0/ros2_gpt/ai/prompts.py +236 -0
  18. ros2_gpt-0.1.0/ros2_gpt/ai/response.py +123 -0
  19. ros2_gpt-0.1.0/ros2_gpt/api/__init__.py +5 -0
  20. ros2_gpt-0.1.0/ros2_gpt/api/server.py +391 -0
  21. ros2_gpt-0.1.0/ros2_gpt/build_analysis/__init__.py +25 -0
  22. ros2_gpt-0.1.0/ros2_gpt/build_analysis/cmake_errors.py +212 -0
  23. ros2_gpt-0.1.0/ros2_gpt/build_analysis/dds_detector.py +194 -0
  24. ros2_gpt-0.1.0/ros2_gpt/build_analysis/log_parser.py +230 -0
  25. ros2_gpt-0.1.0/ros2_gpt/build_analysis/qos_detector.py +177 -0
  26. ros2_gpt-0.1.0/ros2_gpt/build_analysis/tf_detector.py +287 -0
  27. ros2_gpt-0.1.0/ros2_gpt/cli/__init__.py +1 -0
  28. ros2_gpt-0.1.0/ros2_gpt/cli/main.py +851 -0
  29. ros2_gpt-0.1.0/ros2_gpt/config/__init__.py +23 -0
  30. ros2_gpt-0.1.0/ros2_gpt/config/settings.py +321 -0
  31. ros2_gpt-0.1.0/ros2_gpt/core/__init__.py +1 -0
  32. ros2_gpt-0.1.0/ros2_gpt/core/exceptions.py +58 -0
  33. ros2_gpt-0.1.0/ros2_gpt/docs/__init__.py +15 -0
  34. ros2_gpt-0.1.0/ros2_gpt/docs/fetcher.py +225 -0
  35. ros2_gpt-0.1.0/ros2_gpt/docs/indexer.py +206 -0
  36. ros2_gpt-0.1.0/ros2_gpt/docs/parser.py +210 -0
  37. ros2_gpt-0.1.0/ros2_gpt/docs/sources.py +220 -0
  38. ros2_gpt-0.1.0/ros2_gpt/generator/__init__.py +32 -0
  39. ros2_gpt-0.1.0/ros2_gpt/generator/base.py +194 -0
  40. ros2_gpt-0.1.0/ros2_gpt/generator/cmake.py +299 -0
  41. ros2_gpt-0.1.0/ros2_gpt/generator/config.py +197 -0
  42. ros2_gpt-0.1.0/ros2_gpt/generator/interface.py +112 -0
  43. ros2_gpt-0.1.0/ros2_gpt/generator/launch.py +155 -0
  44. ros2_gpt-0.1.0/ros2_gpt/generator/node_cpp.py +449 -0
  45. ros2_gpt-0.1.0/ros2_gpt/generator/node_py.py +390 -0
  46. ros2_gpt-0.1.0/ros2_gpt/generator/orchestrator.py +423 -0
  47. ros2_gpt-0.1.0/ros2_gpt/generator/package_xml.py +114 -0
  48. ros2_gpt-0.1.0/ros2_gpt/graph/__init__.py +10 -0
  49. ros2_gpt-0.1.0/ros2_gpt/graph/dependency_graph.py +503 -0
  50. ros2_gpt-0.1.0/ros2_gpt/llm/__init__.py +21 -0
  51. ros2_gpt-0.1.0/ros2_gpt/llm/base.py +141 -0
  52. ros2_gpt-0.1.0/ros2_gpt/llm/manager.py +202 -0
  53. ros2_gpt-0.1.0/ros2_gpt/llm/providers/__init__.py +6 -0
  54. ros2_gpt-0.1.0/ros2_gpt/llm/providers/ollama.py +170 -0
  55. ros2_gpt-0.1.0/ros2_gpt/llm/providers/openai_provider.py +150 -0
  56. ros2_gpt-0.1.0/ros2_gpt/logging/__init__.py +9 -0
  57. ros2_gpt-0.1.0/ros2_gpt/logging/logger.py +161 -0
  58. ros2_gpt-0.1.0/ros2_gpt/memory/__init__.py +5 -0
  59. ros2_gpt-0.1.0/ros2_gpt/memory/workspace_memory.py +237 -0
  60. ros2_gpt-0.1.0/ros2_gpt/parser/__init__.py +21 -0
  61. ros2_gpt-0.1.0/ros2_gpt/parser/models.py +158 -0
  62. ros2_gpt-0.1.0/ros2_gpt/parser/package_parser.py +835 -0
  63. ros2_gpt-0.1.0/ros2_gpt/plugins/__init__.py +17 -0
  64. ros2_gpt-0.1.0/ros2_gpt/plugins/base.py +215 -0
  65. ros2_gpt-0.1.0/ros2_gpt/plugins/loader.py +177 -0
  66. ros2_gpt-0.1.0/ros2_gpt/py.typed +0 -0
  67. ros2_gpt-0.1.0/ros2_gpt/rag/__init__.py +5 -0
  68. ros2_gpt-0.1.0/ros2_gpt/rag/pipeline.py +254 -0
  69. ros2_gpt-0.1.0/ros2_gpt/scanner/__init__.py +9 -0
  70. ros2_gpt-0.1.0/ros2_gpt/scanner/workspace_scanner.py +443 -0
  71. ros2_gpt-0.1.0/ros2_gpt/search/__init__.py +7 -0
  72. ros2_gpt-0.1.0/ros2_gpt/search/code_indexer.py +241 -0
  73. ros2_gpt-0.1.0/ros2_gpt/search/embedding.py +105 -0
  74. ros2_gpt-0.1.0/ros2_gpt/search/workspace_search.py +240 -0
  75. ros2_gpt-0.1.0/ros2_gpt/ui/__init__.py +21 -0
  76. ros2_gpt-0.1.0/ros2_gpt/ui/app.py +85 -0
  77. ros2_gpt-0.1.0/ros2_gpt/ui/build_tab.py +193 -0
  78. ros2_gpt-0.1.0/ros2_gpt/ui/dashboard_tab.py +139 -0
  79. ros2_gpt-0.1.0/ros2_gpt/ui/generator_tab.py +167 -0
  80. ros2_gpt-0.1.0/ros2_gpt/ui/graph_tab.py +205 -0
  81. ros2_gpt-0.1.0/ros2_gpt/ui/main_window.py +131 -0
  82. ros2_gpt-0.1.0/ros2_gpt/ui/scanner_tab.py +180 -0
  83. ros2_gpt-0.1.0/ros2_gpt/ui/settings_tab.py +209 -0
  84. ros2_gpt-0.1.0/ros2_gpt/vector_db/__init__.py +5 -0
  85. ros2_gpt-0.1.0/ros2_gpt/vector_db/chroma.py +255 -0
  86. ros2_gpt-0.1.0/test_log.txt +0 -0
  87. ros2_gpt-0.1.0/test_ws/src/my_robot/CMakeLists.txt +6 -0
  88. ros2_gpt-0.1.0/test_ws/src/my_robot/package.xml +10 -0
  89. ros2_gpt-0.1.0/tests/__init__.py +1 -0
  90. ros2_gpt-0.1.0/tests/conftest.py +158 -0
  91. ros2_gpt-0.1.0/tests/test_ai.py +198 -0
  92. ros2_gpt-0.1.0/tests/test_api.py +204 -0
  93. ros2_gpt-0.1.0/tests/test_build_analysis.py +468 -0
  94. ros2_gpt-0.1.0/tests/test_cli.py +207 -0
  95. ros2_gpt-0.1.0/tests/test_config.py +180 -0
  96. ros2_gpt-0.1.0/tests/test_docs.py +150 -0
  97. ros2_gpt-0.1.0/tests/test_exceptions.py +93 -0
  98. ros2_gpt-0.1.0/tests/test_generator.py +410 -0
  99. ros2_gpt-0.1.0/tests/test_graph.py +233 -0
  100. ros2_gpt-0.1.0/tests/test_llm.py +76 -0
  101. ros2_gpt-0.1.0/tests/test_logging.py +223 -0
  102. ros2_gpt-0.1.0/tests/test_memory.py +194 -0
  103. ros2_gpt-0.1.0/tests/test_parser.py +276 -0
  104. ros2_gpt-0.1.0/tests/test_plugins.py +259 -0
  105. ros2_gpt-0.1.0/tests/test_rag.py +33 -0
  106. ros2_gpt-0.1.0/tests/test_scanner.py +222 -0
  107. ros2_gpt-0.1.0/tests/test_search.py +102 -0
  108. ros2_gpt-0.1.0/tests/test_ui.py +194 -0
  109. ros2_gpt-0.1.0/vscode-extension/.vscodeignore +6 -0
  110. ros2_gpt-0.1.0/vscode-extension/README.md +46 -0
  111. ros2_gpt-0.1.0/vscode-extension/package-lock.json +59 -0
  112. ros2_gpt-0.1.0/vscode-extension/package.json +86 -0
  113. ros2_gpt-0.1.0/vscode-extension/src/apiClient.ts +141 -0
  114. ros2_gpt-0.1.0/vscode-extension/src/commands.ts +213 -0
  115. ros2_gpt-0.1.0/vscode-extension/src/config.ts +22 -0
  116. ros2_gpt-0.1.0/vscode-extension/src/diagnostics.ts +68 -0
  117. ros2_gpt-0.1.0/vscode-extension/src/extension.ts +49 -0
  118. ros2_gpt-0.1.0/vscode-extension/src/statusBar.ts +47 -0
  119. ros2_gpt-0.1.0/vscode-extension/src/treeProvider.ts +147 -0
  120. ros2_gpt-0.1.0/vscode-extension/tsconfig.json +18 -0
@@ -0,0 +1,71 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ concurrency:
10
+ group: ${{ github.workflow }}-${{ github.ref }}
11
+ cancel-in-progress: true
12
+
13
+ jobs:
14
+ lint:
15
+ runs-on: ubuntu-latest
16
+ strategy:
17
+ matrix:
18
+ python-version: ["3.11", "3.12", "3.13"]
19
+ steps:
20
+ - uses: actions/checkout@v4
21
+ - uses: actions/setup-python@v5
22
+ with:
23
+ python-version: ${{ matrix.python-version }}
24
+ cache: pip
25
+ - run: pip install -e ".[dev]"
26
+ - run: ruff check ros2_gpt tests
27
+ - run: mypy ros2_gpt --ignore-missing-imports
28
+
29
+ test:
30
+ runs-on: ${{ matrix.os }}
31
+ strategy:
32
+ matrix:
33
+ os: [ubuntu-latest, windows-latest]
34
+ python-version: ["3.11", "3.12", "3.13"]
35
+ steps:
36
+ - uses: actions/checkout@v4
37
+ - uses: actions/setup-python@v5
38
+ with:
39
+ python-version: ${{ matrix.python-version }}
40
+ cache: pip
41
+ - run: pip install -e ".[dev]"
42
+ - run: pytest --cov=ros2_gpt --cov-report=xml --cov-report=term -v
43
+ - uses: codecov/codecov-action@v3
44
+ with:
45
+ file: ./coverage.xml
46
+
47
+ build:
48
+ runs-on: ubuntu-latest
49
+ steps:
50
+ - uses: actions/checkout@v4
51
+ - uses: actions/setup-python@v5
52
+ with:
53
+ python-version: "3.11"
54
+ - run: pip install build
55
+ - run: python -m build
56
+
57
+ vscode-extension:
58
+ runs-on: ubuntu-latest
59
+ defaults:
60
+ run:
61
+ working-directory: vscode-extension
62
+ steps:
63
+ - uses: actions/checkout@v4
64
+ - uses: actions/setup-node@v4
65
+ with:
66
+ node-version: "20"
67
+ cache: npm
68
+ cache-dependency-path: vscode-extension/package-lock.json
69
+ - run: npm ci
70
+ - run: npm run compile
71
+ - run: npm run lint
@@ -0,0 +1,42 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.pyc
4
+ *.pyo
5
+ *.pyd
6
+
7
+ # Distribution / packaging
8
+ dist/
9
+ build/
10
+ *.egg-info/
11
+ *.egg
12
+
13
+ # Test / coverage
14
+ .pytest_cache/
15
+ coverage/
16
+ htmlcov/
17
+ .coverage
18
+ .coverage.*
19
+
20
+ # Environment
21
+ .env
22
+ .venv/
23
+ venv/
24
+
25
+ # IDE
26
+ .vscode/
27
+ .idea/
28
+ *.swp
29
+ *.swo
30
+ *~
31
+
32
+ # OS
33
+ .DS_Store
34
+ Thumbs.db
35
+
36
+ # VS Code extension
37
+ vscode-extension/node_modules/
38
+ vscode-extension/out/
39
+ vscode-extension/*.vsix
40
+
41
+ # Documentation
42
+ site/
@@ -0,0 +1,19 @@
1
+ repos:
2
+ - repo: https://github.com/astral-sh/ruff-pre-commit
3
+ rev: v0.2.0
4
+ hooks:
5
+ - id: ruff
6
+ args: [--fix]
7
+ - repo: https://github.com/pre-commit/mirrors-mypy
8
+ rev: v1.8.0
9
+ hooks:
10
+ - id: mypy
11
+ args: [--ignore-missing-imports]
12
+ additional_dependencies: [pydantic]
13
+ - repo: https://github.com/pre-commit/pre-commit-hooks
14
+ rev: v4.5.0
15
+ hooks:
16
+ - id: trailing-whitespace
17
+ - id: end-of-file-fixer
18
+ - id: check-yaml
19
+ - id: check-added-large-files
@@ -0,0 +1,14 @@
1
+ # Changelog
2
+
3
+ ## [0.1.0] - 2026-06-30
4
+
5
+ ### Added
6
+ - Phase 1: Core structure, scanning, parsing, dependency graph, CLI (7 commands)
7
+ - Phase 2: LLM provider abstraction (Ollama, OpenAI), AI engine with 7 prompt templates
8
+ - Phase 3: Documentation indexing (15 sources), workspace memory, RAG pipeline
9
+ - Phase 4: Code generation (C++/Python nodes, launch files, interfaces, package scaffolding)
10
+ - Phase 5: Build analysis (build log parser, CMake/package.xml/QoS/TF/URDF/Xacro/DDS detectors)
11
+ - Phase 6: REST API (13 endpoints), WebSocket support, CLI enhancements (8 new commands)
12
+ - Phase 7: Desktop UI (PySide6, 6 tabs, dark theme)
13
+ - Phase 8: VS Code extension (TypeScript, tree view, commands, diagnostics, status bar)
14
+ - Phase 9: Packaging (pip-installable), CI/CD (GitHub Actions), Docker, documentation
@@ -0,0 +1,36 @@
1
+ # Contributing to ROS2-GPT
2
+
3
+ ## Development Setup
4
+
5
+ ```bash
6
+ git clone https://github.com/ros2-gpt/ros2-gpt.git
7
+ cd ros2-gpt
8
+ pip install -e ".[all]"
9
+ ```
10
+
11
+ ## Code Style
12
+
13
+ - Python 3.11+ with type hints on all public APIs
14
+ - Run `ruff check .` before committing
15
+ - Run `mypy ros2_gpt` for static type checking
16
+
17
+ ## Testing
18
+
19
+ - All tests in `tests/` directory
20
+ - Run `pytest -v` to run all tests
21
+ - Run `pytest --cov=ros2_gpt` for coverage report
22
+ - Tests must not require external services (mock where needed)
23
+ - New features require corresponding tests
24
+
25
+ ## Project Structure
26
+
27
+ - `ros2_gpt/` — core Python package, submodules by concern
28
+ - `tests/` — test suite mirroring `ros2_gpt/` structure
29
+ - `vscode-extension/` — separate TypeScript VS Code extension
30
+
31
+ ## Pull Request Process
32
+
33
+ 1. Run lint and tests locally: `make lint typecheck test`
34
+ 2. Update documentation if adding/changing public APIs
35
+ 3. PRs require passing CI (lint + test matrix)
36
+ 4. Keep PRs focused on a single concern
@@ -0,0 +1,12 @@
1
+ FROM python:3.11-slim
2
+
3
+ WORKDIR /app
4
+
5
+ COPY pyproject.toml README.md ./
6
+ COPY ros2_gpt/ ros2_gpt/
7
+
8
+ RUN pip install --no-cache-dir -e ".[server]"
9
+
10
+ EXPOSE 8420
11
+
12
+ CMD ["python", "-m", "ros2_gpt.api.server"]
ros2_gpt-0.1.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 ROS2-GPT Team
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,35 @@
1
+ .PHONY: install install-dev lint typecheck test test-cov clean build
2
+
3
+ install:
4
+ pip install -e .
5
+
6
+ install-dev:
7
+ pip install -e ".[all]"
8
+
9
+ lint:
10
+ ruff check ros2_gpt tests
11
+
12
+ typecheck:
13
+ mypy ros2_gpt --ignore-missing-imports
14
+
15
+ test:
16
+ pytest -v
17
+
18
+ test-cov:
19
+ pytest --cov=ros2_gpt --cov-report=term --cov-report=html
20
+
21
+ build:
22
+ pip install build
23
+ python -m build
24
+
25
+ clean:
26
+ rm -rf dist/ build/ *.egg-info .pytest_cache __pycache__
27
+ find . -name '*.pyc' -delete
28
+ find . -name '__pycache__' -type d -exec rm -rf {} + 2>/dev/null || true
29
+
30
+ .PHONY: vscode-install vscode-compile
31
+ vscode-install:
32
+ cd vscode-extension && npm install
33
+
34
+ vscode-compile:
35
+ cd vscode-extension && npm run compile
@@ -0,0 +1,205 @@
1
+ Metadata-Version: 2.4
2
+ Name: ros2-gpt
3
+ Version: 0.1.0
4
+ Summary: AI-powered ROS 2 development assistant
5
+ Project-URL: Homepage, https://github.com/ros2-gpt/ros2-gpt
6
+ Project-URL: Documentation, https://ros2-gpt.readthedocs.io
7
+ Project-URL: Repository, https://github.com/ros2-gpt/ros2-gpt
8
+ Project-URL: Issues, https://github.com/ros2-gpt/ros2-gpt/issues
9
+ Author: ROS2-GPT Team
10
+ License-Expression: MIT
11
+ License-File: LICENSE
12
+ Keywords: ai,development,llm,robotics,ros2
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Topic :: Software Development :: Compilers
20
+ Classifier: Topic :: Software Development :: Libraries
21
+ Requires-Python: >=3.11
22
+ Requires-Dist: aiofiles>=23.2.1
23
+ Requires-Dist: asyncio-throttle>=1.0.2
24
+ Requires-Dist: click>=8.1.7
25
+ Requires-Dist: httpx>=0.26.0
26
+ Requires-Dist: lxml>=5.1.0
27
+ Requires-Dist: networkx>=3.2.1
28
+ Requires-Dist: numpy>=1.26.2
29
+ Requires-Dist: pydantic-settings>=2.1.0
30
+ Requires-Dist: pydantic>=2.5.0
31
+ Requires-Dist: pyyaml>=6.0.1
32
+ Requires-Dist: rich>=13.7.0
33
+ Requires-Dist: tiktoken>=0.5.2
34
+ Requires-Dist: tomli>=2.0.1; python_version < '3.11'
35
+ Requires-Dist: watchdog>=3.0.0
36
+ Provides-Extra: ai
37
+ Requires-Dist: chromadb>=0.4.22; extra == 'ai'
38
+ Requires-Dist: ollama>=0.1.7; extra == 'ai'
39
+ Requires-Dist: openai>=1.12.0; extra == 'ai'
40
+ Requires-Dist: sentence-transformers>=2.2.2; extra == 'ai'
41
+ Provides-Extra: all
42
+ Requires-Dist: chromadb>=0.4.22; extra == 'all'
43
+ Requires-Dist: fastapi>=0.109.0; extra == 'all'
44
+ Requires-Dist: mypy>=1.8.0; extra == 'all'
45
+ Requires-Dist: ollama>=0.1.7; extra == 'all'
46
+ Requires-Dist: openai>=1.12.0; extra == 'all'
47
+ Requires-Dist: pre-commit>=3.6.0; extra == 'all'
48
+ Requires-Dist: pyside6>=6.6.1; extra == 'all'
49
+ Requires-Dist: pytest-asyncio>=0.23.3; extra == 'all'
50
+ Requires-Dist: pytest-cov>=4.1.0; extra == 'all'
51
+ Requires-Dist: pytest>=7.4.4; extra == 'all'
52
+ Requires-Dist: ruff>=0.2.0; extra == 'all'
53
+ Requires-Dist: sentence-transformers>=2.2.2; extra == 'all'
54
+ Requires-Dist: uvicorn[standard]>=0.27.0; extra == 'all'
55
+ Requires-Dist: websockets>=12.0; extra == 'all'
56
+ Provides-Extra: dev
57
+ Requires-Dist: mypy>=1.8.0; extra == 'dev'
58
+ Requires-Dist: pre-commit>=3.6.0; extra == 'dev'
59
+ Requires-Dist: pytest-asyncio>=0.23.3; extra == 'dev'
60
+ Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
61
+ Requires-Dist: pytest>=7.4.4; extra == 'dev'
62
+ Requires-Dist: ruff>=0.2.0; extra == 'dev'
63
+ Provides-Extra: gui
64
+ Requires-Dist: pyside6>=6.6.1; extra == 'gui'
65
+ Provides-Extra: server
66
+ Requires-Dist: fastapi>=0.109.0; extra == 'server'
67
+ Requires-Dist: uvicorn[standard]>=0.27.0; extra == 'server'
68
+ Requires-Dist: websockets>=12.0; extra == 'server'
69
+ Description-Content-Type: text/markdown
70
+
71
+ # ROS2-GPT
72
+
73
+ [![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)
74
+ [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
75
+
76
+ AI-powered ROS 2 development assistant — workspace scanning, package parsing, dependency analysis, build error diagnosis, code generation, and more.
77
+
78
+ ## Features
79
+
80
+ | Feature | Description |
81
+ |---|---|
82
+ | **Workspace Scanner** | Discover packages, categorize 15+ file types, incremental re-indexing (<30s for 100 packages) |
83
+ | **Package Parser** | Parse package.xml, CMakeLists.txt, setup.py, launch files, URDF/Xacro |
84
+ | **Dependency Graph** | NetworkX DAG with cycle detection, topological build order, DOT/Mermaid/JSON export |
85
+ | **LLM Integration** | Multiple providers (Ollama, OpenAI-compatible), code explanation, package generation |
86
+ | **RAG Pipeline** | ChromaDB vector search, documentation indexing (ROS2 core, Nav2, MoveIt2, etc.), workspace memory |
87
+ | **Code Generation** | C++/Python nodes (pub/sub, services, actions, lifecycle, composable), launch files, interfaces |
88
+ | **Build Analysis** | Log parsing, CMake/package.xml validation, QoS mismatch, TF errors, URDF/Xacro validation, DDS issues |
89
+ | **REST API** | 13 endpoints + WebSocket — integrate with any frontend |
90
+ | **Desktop UI** | PySide6 tabbed interface with dashboard, scanner, graph, build analyzer, generator, settings |
91
+ | **VS Code Extension** | Tree view, commands, diagnostics integration |
92
+
93
+ ## Quick Start
94
+
95
+ ```bash
96
+ pip install -e ".[dev]"
97
+ ros2-gpt scan /path/to/ros2_workspace
98
+ ```
99
+
100
+ ## Installation
101
+
102
+ ### Basic
103
+ ```bash
104
+ pip install -e .
105
+ ```
106
+
107
+ ### With all extras
108
+ ```bash
109
+ pip install -e ".[all]"
110
+ ```
111
+
112
+ ### Optional dependency groups
113
+ | Group | Includes |
114
+ |---|---|
115
+ | `[ai]` | sentence-transformers, chromadb, openai, ollama |
116
+ | `[gui]` | PySide6 (desktop UI) |
117
+ | `[server]` | fastapi, uvicorn, websockets (REST API) |
118
+ | `[dev]` | pytest, mypy, ruff, pre-commit |
119
+
120
+ ## CLI Commands
121
+
122
+ ### Workspace & Package
123
+ ```bash
124
+ ros2-gpt scan <workspace> # Scan workspace
125
+ ros2-gpt parse <package> # Parse a package
126
+ ros2-gpt graph <workspace> # Generate dependency graph
127
+ ros2-gpt deps <workspace> <pkg> # Show deps for a package
128
+ ros2-gpt stats <workspace> # Workspace statistics
129
+ ros2-gpt launch <file> # Parse launch file
130
+ ros2-gpt urdf <file> # Parse URDF/Xacro file
131
+ ```
132
+
133
+ ### Build Analysis
134
+ ```bash
135
+ ros2-gpt analyze-build-log <file> # Analyze colcon build log
136
+ ros2-gpt check-cmake <file> # Check CMakeLists.txt
137
+ ros2-gpt check-package-xml <file> # Check package.xml
138
+ ros2-gpt check-qos <file> # Check QoS mismatches
139
+ ros2-gpt check-tf-log <file> # Check TF issues in logs
140
+ ros2-gpt check-tf-code <file> # Check TF issues in code
141
+ ros2-gpt check-urdf <file> # Check URDF validity
142
+ ros2-gpt check-xacro <file> # Check Xacro validity
143
+ ros2-gpt check-dds-log <file> # Check DDS issues in logs
144
+ ros2-gpt check-dds-config <file> # Check DDS configuration
145
+ ```
146
+
147
+ ## REST API
148
+
149
+ ```bash
150
+ # Start the server
151
+ python -m ros2_gpt.api.server
152
+
153
+ # Health check
154
+ curl http://127.0.0.1:8420/health
155
+ ```
156
+
157
+ Full swagger docs at `http://127.0.0.1:8420/docs`
158
+
159
+ ## Desktop UI
160
+
161
+ ```bash
162
+ python -m ros2_gpt.ui
163
+ ```
164
+
165
+ ## VS Code Extension
166
+
167
+ See [vscode-extension/](vscode-extension/README.md) for setup instructions.
168
+
169
+ ## Development
170
+
171
+ ```bash
172
+ make install-dev # pip install -e ".[all]"
173
+ make lint # ruff check
174
+ make typecheck # mypy
175
+ make test # pytest
176
+ make test-cov # pytest with coverage
177
+ ```
178
+
179
+ ## Architecture
180
+
181
+ ```
182
+ ros2_gpt/
183
+ ├── config/ # Pydantic settings
184
+ ├── logging/ # Structured logging
185
+ ├── plugins/ # Plugin system
186
+ ├── scanner/ # Workspace discovery
187
+ ├── parser/ # ROS2 file parsers
188
+ ├── graph/ # Dependency graph
189
+ ├── llm/ # LLM provider abstraction
190
+ ├── ai/ # AI engine, prompts
191
+ ├── vector_db/ # ChromaDB wrapper
192
+ ├── search/ # Semantic search
193
+ ├── docs/ # Documentation indexer
194
+ ├── memory/ # Workspace memory
195
+ ├── rag/ # RAG pipeline
196
+ ├── generator/ # Code generation
197
+ ├── build_analysis/ # Build error diagnosis
198
+ ├── api/ # REST API + WebSocket
199
+ ├── ui/ # Desktop UI (PySide6)
200
+ └── cli/ # CLI commands
201
+ ```
202
+
203
+ ## License
204
+
205
+ MIT
@@ -0,0 +1,135 @@
1
+ # ROS2-GPT
2
+
3
+ [![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)
4
+ [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
5
+
6
+ AI-powered ROS 2 development assistant — workspace scanning, package parsing, dependency analysis, build error diagnosis, code generation, and more.
7
+
8
+ ## Features
9
+
10
+ | Feature | Description |
11
+ |---|---|
12
+ | **Workspace Scanner** | Discover packages, categorize 15+ file types, incremental re-indexing (<30s for 100 packages) |
13
+ | **Package Parser** | Parse package.xml, CMakeLists.txt, setup.py, launch files, URDF/Xacro |
14
+ | **Dependency Graph** | NetworkX DAG with cycle detection, topological build order, DOT/Mermaid/JSON export |
15
+ | **LLM Integration** | Multiple providers (Ollama, OpenAI-compatible), code explanation, package generation |
16
+ | **RAG Pipeline** | ChromaDB vector search, documentation indexing (ROS2 core, Nav2, MoveIt2, etc.), workspace memory |
17
+ | **Code Generation** | C++/Python nodes (pub/sub, services, actions, lifecycle, composable), launch files, interfaces |
18
+ | **Build Analysis** | Log parsing, CMake/package.xml validation, QoS mismatch, TF errors, URDF/Xacro validation, DDS issues |
19
+ | **REST API** | 13 endpoints + WebSocket — integrate with any frontend |
20
+ | **Desktop UI** | PySide6 tabbed interface with dashboard, scanner, graph, build analyzer, generator, settings |
21
+ | **VS Code Extension** | Tree view, commands, diagnostics integration |
22
+
23
+ ## Quick Start
24
+
25
+ ```bash
26
+ pip install -e ".[dev]"
27
+ ros2-gpt scan /path/to/ros2_workspace
28
+ ```
29
+
30
+ ## Installation
31
+
32
+ ### Basic
33
+ ```bash
34
+ pip install -e .
35
+ ```
36
+
37
+ ### With all extras
38
+ ```bash
39
+ pip install -e ".[all]"
40
+ ```
41
+
42
+ ### Optional dependency groups
43
+ | Group | Includes |
44
+ |---|---|
45
+ | `[ai]` | sentence-transformers, chromadb, openai, ollama |
46
+ | `[gui]` | PySide6 (desktop UI) |
47
+ | `[server]` | fastapi, uvicorn, websockets (REST API) |
48
+ | `[dev]` | pytest, mypy, ruff, pre-commit |
49
+
50
+ ## CLI Commands
51
+
52
+ ### Workspace & Package
53
+ ```bash
54
+ ros2-gpt scan <workspace> # Scan workspace
55
+ ros2-gpt parse <package> # Parse a package
56
+ ros2-gpt graph <workspace> # Generate dependency graph
57
+ ros2-gpt deps <workspace> <pkg> # Show deps for a package
58
+ ros2-gpt stats <workspace> # Workspace statistics
59
+ ros2-gpt launch <file> # Parse launch file
60
+ ros2-gpt urdf <file> # Parse URDF/Xacro file
61
+ ```
62
+
63
+ ### Build Analysis
64
+ ```bash
65
+ ros2-gpt analyze-build-log <file> # Analyze colcon build log
66
+ ros2-gpt check-cmake <file> # Check CMakeLists.txt
67
+ ros2-gpt check-package-xml <file> # Check package.xml
68
+ ros2-gpt check-qos <file> # Check QoS mismatches
69
+ ros2-gpt check-tf-log <file> # Check TF issues in logs
70
+ ros2-gpt check-tf-code <file> # Check TF issues in code
71
+ ros2-gpt check-urdf <file> # Check URDF validity
72
+ ros2-gpt check-xacro <file> # Check Xacro validity
73
+ ros2-gpt check-dds-log <file> # Check DDS issues in logs
74
+ ros2-gpt check-dds-config <file> # Check DDS configuration
75
+ ```
76
+
77
+ ## REST API
78
+
79
+ ```bash
80
+ # Start the server
81
+ python -m ros2_gpt.api.server
82
+
83
+ # Health check
84
+ curl http://127.0.0.1:8420/health
85
+ ```
86
+
87
+ Full swagger docs at `http://127.0.0.1:8420/docs`
88
+
89
+ ## Desktop UI
90
+
91
+ ```bash
92
+ python -m ros2_gpt.ui
93
+ ```
94
+
95
+ ## VS Code Extension
96
+
97
+ See [vscode-extension/](vscode-extension/README.md) for setup instructions.
98
+
99
+ ## Development
100
+
101
+ ```bash
102
+ make install-dev # pip install -e ".[all]"
103
+ make lint # ruff check
104
+ make typecheck # mypy
105
+ make test # pytest
106
+ make test-cov # pytest with coverage
107
+ ```
108
+
109
+ ## Architecture
110
+
111
+ ```
112
+ ros2_gpt/
113
+ ├── config/ # Pydantic settings
114
+ ├── logging/ # Structured logging
115
+ ├── plugins/ # Plugin system
116
+ ├── scanner/ # Workspace discovery
117
+ ├── parser/ # ROS2 file parsers
118
+ ├── graph/ # Dependency graph
119
+ ├── llm/ # LLM provider abstraction
120
+ ├── ai/ # AI engine, prompts
121
+ ├── vector_db/ # ChromaDB wrapper
122
+ ├── search/ # Semantic search
123
+ ├── docs/ # Documentation indexer
124
+ ├── memory/ # Workspace memory
125
+ ├── rag/ # RAG pipeline
126
+ ├── generator/ # Code generation
127
+ ├── build_analysis/ # Build error diagnosis
128
+ ├── api/ # REST API + WebSocket
129
+ ├── ui/ # Desktop UI (PySide6)
130
+ └── cli/ # CLI commands
131
+ ```
132
+
133
+ ## License
134
+
135
+ MIT