envforge-agent 1.0.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.
- envforge_agent-1.0.0/.gitignore +61 -0
- envforge_agent-1.0.0/PKG-INFO +111 -0
- envforge_agent-1.0.0/README.md +74 -0
- envforge_agent-1.0.0/envforge_agent/__init__.py +8 -0
- envforge_agent-1.0.0/envforge_agent/__main__.py +5 -0
- envforge_agent-1.0.0/envforge_agent/cli.py +496 -0
- envforge_agent-1.0.0/envforge_agent/detectors/__init__.py +17 -0
- envforge_agent-1.0.0/envforge_agent/detectors/cuda_detector.py +277 -0
- envforge_agent-1.0.0/envforge_agent/detectors/gpu_detector.py +141 -0
- envforge_agent-1.0.0/envforge_agent/detectors/os_detector.py +118 -0
- envforge_agent-1.0.0/envforge_agent/detectors/python_detector.py +142 -0
- envforge_agent-1.0.0/envforge_agent/detectors/rocm_detector.py +79 -0
- envforge_agent-1.0.0/envforge_agent/detectors/system_detector.py +72 -0
- envforge_agent-1.0.0/envforge_agent/report.py +55 -0
- envforge_agent-1.0.0/envforge_agent/schemas.py +142 -0
- envforge_agent-1.0.0/pyproject.toml +68 -0
- envforge_agent-1.0.0/tests/__init__.py +1 -0
- envforge_agent-1.0.0/tests/fixtures/linux_gpu.json +55 -0
- envforge_agent-1.0.0/tests/fixtures/linux_no_cuda.json +41 -0
- envforge_agent-1.0.0/tests/fixtures/windows_gpu.json +48 -0
- envforge_agent-1.0.0/tests/fixtures/wsl_cuda.json +48 -0
- envforge_agent-1.0.0/tests/test_agent.py +409 -0
- envforge_agent-1.0.0/tests/test_diagnose_output.py +99 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# EnvForge .gitignore
|
|
2
|
+
|
|
3
|
+
# Python
|
|
4
|
+
__pycache__/
|
|
5
|
+
*.py[cod]
|
|
6
|
+
*.pyo
|
|
7
|
+
*.pyd
|
|
8
|
+
.Python
|
|
9
|
+
*.egg-info/
|
|
10
|
+
dist/
|
|
11
|
+
build/
|
|
12
|
+
.eggs/
|
|
13
|
+
*.egg
|
|
14
|
+
|
|
15
|
+
# Virtual environments
|
|
16
|
+
.venv/
|
|
17
|
+
venv/
|
|
18
|
+
env/
|
|
19
|
+
ENV/
|
|
20
|
+
|
|
21
|
+
# Environment files (NEVER commit these)
|
|
22
|
+
.env
|
|
23
|
+
.env.local
|
|
24
|
+
.env.production
|
|
25
|
+
.env.prod
|
|
26
|
+
|
|
27
|
+
# Database
|
|
28
|
+
*.db
|
|
29
|
+
*.sqlite3
|
|
30
|
+
|
|
31
|
+
# IDE
|
|
32
|
+
.idea/
|
|
33
|
+
.vscode/settings.json
|
|
34
|
+
*.swp
|
|
35
|
+
*.swo
|
|
36
|
+
.DS_Store
|
|
37
|
+
|
|
38
|
+
# Next.js
|
|
39
|
+
frontend/.next/
|
|
40
|
+
frontend/out/
|
|
41
|
+
frontend/node_modules/
|
|
42
|
+
frontend/.env.local
|
|
43
|
+
|
|
44
|
+
# Docker volumes
|
|
45
|
+
postgres_data/
|
|
46
|
+
|
|
47
|
+
# Test artifacts
|
|
48
|
+
.coverage
|
|
49
|
+
htmlcov/
|
|
50
|
+
.pytest_cache/
|
|
51
|
+
coverage.xml
|
|
52
|
+
|
|
53
|
+
# Logs
|
|
54
|
+
*.log
|
|
55
|
+
logs/
|
|
56
|
+
|
|
57
|
+
# Generated scripts (don't commit user-generated scripts)
|
|
58
|
+
generated/
|
|
59
|
+
|
|
60
|
+
# Alembic (keep migrations, not compiled)
|
|
61
|
+
__pycache__/
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: envforge-agent
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: EnvForge CLI Diagnostic Agent — inspect your ML environment
|
|
5
|
+
Project-URL: Homepage, https://github.com/rishabh0510rishabh/EnvForage
|
|
6
|
+
Project-URL: Documentation, https://github.com/rishabh0510rishabh/EnvForage/docs
|
|
7
|
+
Project-URL: Repository, https://github.com/rishabh0510rishabh/EnvForage
|
|
8
|
+
Project-URL: Bug Tracker, https://github.com/rishabh0510rishabh/EnvForage/issues
|
|
9
|
+
License: MIT
|
|
10
|
+
Keywords: cuda,diagnostics,environment,ml,pytorch,tensorflow
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
16
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
23
|
+
Classifier: Topic :: System :: Systems Administration
|
|
24
|
+
Requires-Python: >=3.9
|
|
25
|
+
Requires-Dist: click>=8.1.0
|
|
26
|
+
Requires-Dist: httpx>=0.27.0
|
|
27
|
+
Requires-Dist: psutil>=5.9.0
|
|
28
|
+
Requires-Dist: pydantic>=2.0.0
|
|
29
|
+
Requires-Dist: rich>=13.0.0
|
|
30
|
+
Provides-Extra: dev
|
|
31
|
+
Requires-Dist: mypy>=1.9.0; extra == 'dev'
|
|
32
|
+
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
|
|
33
|
+
Requires-Dist: pytest-cov>=5.0.0; extra == 'dev'
|
|
34
|
+
Requires-Dist: pytest>=8.0.0; extra == 'dev'
|
|
35
|
+
Requires-Dist: ruff>=0.4.0; extra == 'dev'
|
|
36
|
+
Description-Content-Type: text/markdown
|
|
37
|
+
|
|
38
|
+
# envforge-agent
|
|
39
|
+
|
|
40
|
+
> Standalone CLI diagnostic agent for the [EnvForge](https://github.com/rishabh0510rishabh/EnvForage) platform.
|
|
41
|
+
|
|
42
|
+
Inspects your local ML environment and reports what's installed, what's compatible,
|
|
43
|
+
and what's broken — without requiring a network connection.
|
|
44
|
+
|
|
45
|
+
## Install
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
pip install envforge-agent
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Commands
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# Inspect your environment (output to terminal)
|
|
55
|
+
envforge diagnose
|
|
56
|
+
|
|
57
|
+
# Save report to JSON file
|
|
58
|
+
envforge diagnose --output report.json
|
|
59
|
+
|
|
60
|
+
# Send report to EnvForge API for compatibility analysis
|
|
61
|
+
envforge diagnose --send --api-url https://api.envforge.dev
|
|
62
|
+
|
|
63
|
+
# Check if a specific profile is compatible with your system
|
|
64
|
+
envforge verify --profile pytorch-cuda
|
|
65
|
+
|
|
66
|
+
# Generate a repair script from a saved diagnostic report
|
|
67
|
+
envforge fix --report report.json
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## What it detects
|
|
71
|
+
|
|
72
|
+
| Category | Details |
|
|
73
|
+
|---|---|
|
|
74
|
+
| OS | Name, version, architecture, WSL version |
|
|
75
|
+
| CPU | Brand, physical cores, logical threads |
|
|
76
|
+
| RAM | Total GB, available GB |
|
|
77
|
+
| GPU | Name, VRAM, driver version (via nvidia-smi) |
|
|
78
|
+
| CUDA | Installed version, toolkit path, cuDNN version |
|
|
79
|
+
| Python | All installed versions, active venv, pip version |
|
|
80
|
+
|
|
81
|
+
## Output format
|
|
82
|
+
|
|
83
|
+
All commands output `DiagnosticReport` JSON compatible with `POST /api/v1/diagnose`.
|
|
84
|
+
|
|
85
|
+
```json
|
|
86
|
+
{
|
|
87
|
+
"agent_version": "1.0.0",
|
|
88
|
+
"os": { "name": "Ubuntu 22.04", "version": "22.04", "architecture": "x86_64" },
|
|
89
|
+
"cpu": { "brand": "Intel Core i9-13900K", "cores": 24, "threads": 32 },
|
|
90
|
+
"ram": { "total_gb": 64.0, "available_gb": 48.2 },
|
|
91
|
+
"gpus": [{ "name": "NVIDIA RTX 4090", "vram_gb": 24.0, "driver_version": "535.54", "index": 0 }],
|
|
92
|
+
"cuda": { "version": "12.1", "toolkit_path": "/usr/local/cuda-12.1", "cudnn_version": "8.9.0" },
|
|
93
|
+
"python_installations": [{ "version": "3.11.9", "path": "/usr/bin/python3.11", "is_venv": false }],
|
|
94
|
+
"active_python": { "version": "3.11.9", "path": "/usr/bin/python3.11", "is_venv": false }
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Platform support
|
|
99
|
+
|
|
100
|
+
| Platform | Status |
|
|
101
|
+
|---|---|
|
|
102
|
+
| Linux (Ubuntu, Debian, Fedora, Arch) | ✅ Full support |
|
|
103
|
+
| Windows 10/11 | ✅ Full support |
|
|
104
|
+
| WSL2 | ✅ Full support |
|
|
105
|
+
| macOS | ❌ Out of scope (no CUDA) |
|
|
106
|
+
|
|
107
|
+
## Troubleshooting
|
|
108
|
+
|
|
109
|
+
For common CLI, API, and environment issues, see:
|
|
110
|
+
|
|
111
|
+
`../TROUBLESHOOTING.md`
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# envforge-agent
|
|
2
|
+
|
|
3
|
+
> Standalone CLI diagnostic agent for the [EnvForge](https://github.com/rishabh0510rishabh/EnvForage) platform.
|
|
4
|
+
|
|
5
|
+
Inspects your local ML environment and reports what's installed, what's compatible,
|
|
6
|
+
and what's broken — without requiring a network connection.
|
|
7
|
+
|
|
8
|
+
## Install
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
pip install envforge-agent
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Commands
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# Inspect your environment (output to terminal)
|
|
18
|
+
envforge diagnose
|
|
19
|
+
|
|
20
|
+
# Save report to JSON file
|
|
21
|
+
envforge diagnose --output report.json
|
|
22
|
+
|
|
23
|
+
# Send report to EnvForge API for compatibility analysis
|
|
24
|
+
envforge diagnose --send --api-url https://api.envforge.dev
|
|
25
|
+
|
|
26
|
+
# Check if a specific profile is compatible with your system
|
|
27
|
+
envforge verify --profile pytorch-cuda
|
|
28
|
+
|
|
29
|
+
# Generate a repair script from a saved diagnostic report
|
|
30
|
+
envforge fix --report report.json
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## What it detects
|
|
34
|
+
|
|
35
|
+
| Category | Details |
|
|
36
|
+
|---|---|
|
|
37
|
+
| OS | Name, version, architecture, WSL version |
|
|
38
|
+
| CPU | Brand, physical cores, logical threads |
|
|
39
|
+
| RAM | Total GB, available GB |
|
|
40
|
+
| GPU | Name, VRAM, driver version (via nvidia-smi) |
|
|
41
|
+
| CUDA | Installed version, toolkit path, cuDNN version |
|
|
42
|
+
| Python | All installed versions, active venv, pip version |
|
|
43
|
+
|
|
44
|
+
## Output format
|
|
45
|
+
|
|
46
|
+
All commands output `DiagnosticReport` JSON compatible with `POST /api/v1/diagnose`.
|
|
47
|
+
|
|
48
|
+
```json
|
|
49
|
+
{
|
|
50
|
+
"agent_version": "1.0.0",
|
|
51
|
+
"os": { "name": "Ubuntu 22.04", "version": "22.04", "architecture": "x86_64" },
|
|
52
|
+
"cpu": { "brand": "Intel Core i9-13900K", "cores": 24, "threads": 32 },
|
|
53
|
+
"ram": { "total_gb": 64.0, "available_gb": 48.2 },
|
|
54
|
+
"gpus": [{ "name": "NVIDIA RTX 4090", "vram_gb": 24.0, "driver_version": "535.54", "index": 0 }],
|
|
55
|
+
"cuda": { "version": "12.1", "toolkit_path": "/usr/local/cuda-12.1", "cudnn_version": "8.9.0" },
|
|
56
|
+
"python_installations": [{ "version": "3.11.9", "path": "/usr/bin/python3.11", "is_venv": false }],
|
|
57
|
+
"active_python": { "version": "3.11.9", "path": "/usr/bin/python3.11", "is_venv": false }
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Platform support
|
|
62
|
+
|
|
63
|
+
| Platform | Status |
|
|
64
|
+
|---|---|
|
|
65
|
+
| Linux (Ubuntu, Debian, Fedora, Arch) | ✅ Full support |
|
|
66
|
+
| Windows 10/11 | ✅ Full support |
|
|
67
|
+
| WSL2 | ✅ Full support |
|
|
68
|
+
| macOS | ❌ Out of scope (no CUDA) |
|
|
69
|
+
|
|
70
|
+
## Troubleshooting
|
|
71
|
+
|
|
72
|
+
For common CLI, API, and environment issues, see:
|
|
73
|
+
|
|
74
|
+
`../TROUBLESHOOTING.md`
|