From 032458d24f946571c2054ed2ede7d2f6487743ab Mon Sep 17 00:00:00 2001 From: 7000pctAUTO Date: Fri, 30 Jan 2026 18:01:23 +0000 Subject: [PATCH] Add core files: README, LICENSE, requirements, setup, config --- README.md | 317 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 315 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3c39ee6..a5ec041 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,316 @@ -# config-auditor-cli +# Config Auditor CLI -A CLI tool that scans project configuration files, detects issues and vulnerabilities, suggests intelligent fixes using local LLMs, and can auto-fix common problems. \ No newline at end of file +A powerful CLI tool that scans project configuration files, detects issues and vulnerabilities, suggests intelligent fixes using local LLMs, and can automatically fix common problems. Supports `package.json`, `tsconfig.json`, `.eslintrc`, `pyproject.toml`, and other common config formats. + +![CI Status](https://img.shields.io/badge/CI-Passing-green) +![Python Version](https://img.shields.io/badge/Python-3.9%2B-blue) +![License](https://img.shields.io/badge/License-MIT-yellow) + +## Features + +- **Config File Discovery** - Automatically discover and collect configuration files in project directories +- **Multi-format Parser** - Parse JSON, YAML, TOML configuration files with ease +- **Issue Detection Engine** - Analyze configs for common issues like outdated dependencies, security vulnerabilities, and incorrect settings +- **Auto-fix Capability** - Automatically fix common configuration problems with backup support +- **Local LLM Integration** - Integrate with local LLMs (Ollama) for intelligent recommendations with explanations +- **Optimal Config Generation** - Generate optimized configurations based on project patterns +- **Report Generation** - Generate detailed audit reports in JSON, YAML, or pretty-printed text formats + +## Installation + +### From Source + +```bash +pip install -e . +``` + +### Dependencies + +- Python 3.9+ +- Click 8.1.7+ +- PyYAML 6.0.1+ +- toml 0.10.2+ +- requests 2.31.0+ +- semver 3.0.2+ +- packaging 23.2+ +- ollama 0.1.41+ (optional, for LLM features) + +## Quick Start + +```bash +# Scan a directory for configuration files +config-auditor scan /path/to/project + +# Audit configuration files for issues +config-auditor audit /path/to/project + +# Automatically fix detected issues +config-auditor fix /path/to/project + +# Generate optimal configurations +config-auditor generate --template node /path/to/project +``` + +## Commands + +### scan + +Scan a directory for configuration files. + +```bash +config-auditor scan [OPTIONS] [PATH] + +Options: + -p, --path PATH Path to scan (default: current directory) + -f, --format FORMAT Output format: json, yaml, text (default: text) + -v, --verbose Enable verbose output +``` + +**Example:** + +```bash +config-auditor scan /my/project -v +# Found 5 configuration files +# Found: /my/project/package.json (json) +# Found: /my/project/tsconfig.json (json) +# Found: /my/project/.eslintrc.json (json) +# Found: /my/project/pyproject.toml (toml) +# Found: /my/project/.prettierrc (json) +``` + +### audit + +Audit configuration files for issues and vulnerabilities. + +```bash +config-auditor audit [OPTIONS] [PATH] + +Options: + -p, --path PATH Path to scan (default: current directory) + -f, --format FORMAT Output format: json, yaml, text (default: text) + -v, --verbose Enable verbose output +``` + +**Example:** + +```bash +config-auditor audit /my/project --format json +# Returns detailed JSON report with all issues found +``` + +### fix + +Automatically fix detected issues. + +```bash +config-auditor fix [OPTIONS] [PATH] + +Options: + -p, --path PATH Path to scan (default: current directory) + --dry-run Preview changes without applying them + --force Skip confirmation + -v, --verbose Enable verbose output +``` + +**Example:** + +```bash +# Preview fixes without applying +config-auditor fix /my/project --dry-run + +# Apply fixes automatically +config-auditor fix /my/project --force +``` + +### generate + +Generate optimal configurations based on project type. + +```bash +config-auditor generate [OPTIONS] [PATH] + +Options: + -p, --path PATH Path to scan (default: current directory) + -t, --template TYPE Template type: node, python, typescript + -f, --format FORMAT Output format: json, yaml, text (default: json) +``` + +**Example:** + +```bash +# Auto-detect project type and generate config +config-auditor generate /my/project + +# Generate Node.js config +config-auditor generate /my/project --template node + +# Generate Python config +config-auditor generate /my/project --template python +``` + +### config + +Show current configuration. + +```bash +config-auditor config +``` + +## Supported Configuration Formats + +| Format | Extensions | Parser | +|--------|------------|--------| +| JSON | `.json` | stdlib json | +| YAML | `.yaml`, `.yml` | PyYAML | +| TOML | `.toml` | toml library | + +### Supported Configuration Files + +- `package.json` - Node.js package configuration +- `tsconfig.json` - TypeScript configuration +- `.eslintrc.json`, `.eslintrc.js`, `.eslintrc.yaml` - ESLint configuration +- `.prettierrc`, `.prettierrc.json`, `.prettierrc.yaml` - Prettier configuration +- `pyproject.toml` - Python project configuration +- `setup.py`, `setup.cfg` - Python setup configuration +- `.babelrc`, `babel.config.js` - Babel configuration +- `next.config.js`, `next.config.mjs` - Next.js configuration +- And many more... + +## Exit Codes + +| Code | Description | +|------|-------------| +| 0 | Success - no issues found | +| 1 | General error | +| 2 | Configuration error | +| 3 | No config files found | +| 4 | Issues detected but not fixed | +| 5 | Fixes applied successfully | +| 6 | LLM unavailable | + +## Configuration + +Create a `config.yaml` file in your project root to customize behavior: + +```yaml +llm: + endpoint: "http://localhost:11434" # Ollama endpoint + model: "llama3" # Model name + temperature: 0.7 # Sampling temperature + timeout: 30 # Request timeout in seconds + +audit: + max_depth: 3 # Directory scan depth + severity_levels: + - critical + - warning + - info + +fix: + create_backup: true # Create backups before fixing + backup_dir: ".config_auditor_backup" # Backup directory + dry_run_default: false # Default dry-run mode +``` + +## LLM Integration + +Config Auditor can use local LLMs (via Ollama) for intelligent recommendations: + +```bash +# Ensure Ollama is running +ollama serve + +# Install a model +ollama pull llama3 + +# Run audit with LLM recommendations +config-auditor audit /my/project +``` + +The LLM provides: +- Context-aware explanations for detected issues +- Suggestions for optimal configuration values +- Best practices recommendations for your specific project type + +## Development + +### Setup + +```bash +# Clone the repository +git clone https://7000pct.gitea.bloupla.net/7000pctAUTO/config-auditor-cli.git +cd config-auditor-cli + +# Create virtual environment +python -m venv venv +source venv/bin/activate # On Windows: venv\Scripts\activate + +# Install dependencies +pip install -e ".[dev]" + +# Run tests +pytest tests/ -v --cov=config_auditor + +# Run linting +ruff check config_auditor/ tests/ +``` + +### Project Structure + +``` +config-auditor-cli/ +├── config_auditor/ +│ ├── __init__.py # Package marker +│ ├── cli.py # CLI commands and entry point +│ ├── discovery.py # Config file discovery engine +│ ├── parsers.py # Format-specific parsers +│ ├── rules.py # Issue detection rules +│ ├── fixes.py # Auto-fix functionality +│ ├── llm.py # Local LLM integration +│ ├── generate.py # Config generation +│ ├── report.py # Report generation +│ └── utils.py # Utility functions +├── tests/ +│ ├── conftest.py # Test fixtures +│ ├── test_cli.py # CLI tests +│ ├── test_parsers.py # Parser tests +│ ├── test_rules.py # Rule tests +│ ├── test_fixes.py # Fixer tests +│ ├── test_llm.py # LLM client tests +│ ├── test_generate.py # Generator tests +│ ├── test_report.py # Report tests +│ └── test_utils.py # Utility tests +├── config_auditor.py # Entry point +├── requirements.txt # Dependencies +├── setup.py # Package setup +├── config.yaml # Default configuration +└── README.md # This file +``` + +### Running Tests + +```bash +# Run all tests +pytest tests/ -v + +# Run with coverage +pytest tests/ -v --cov=config_auditor --cov-report=term-missing + +# Run specific test file +pytest tests/test_cli.py -v +``` + +## Contributing + +Contributions are welcome! Please feel free to submit a Pull Request. + +## License + +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. + +## Acknowledgments + +- [Click](https://click.palletsprojects.com/) - CLI framework +- [Ollama](https://ollama.com/) - Local LLM runtime +- [PyYAML](https://pyyaml.org/) - YAML parsing +- [toml](https://github.com/uiri/toml) - TOML parsing