Skip to content

Alexktzl/WEBBLES-FIX

Repository files navigation

Webbles Fix

License: MIT Python 3.10+

Ключевые возможности

  • Мультиязычность – единый интерфейс LanguageSupport для анализаторов, синтаксических лекарей, классификаторов ошибок. Добавление языка — один модуль.
  • Интеллектуальный конвейер – конечный автомат с фазами: анализ, классификация, приоритизация, поиск корневой причины, генерация патча (включая LLM и эвристики), применение, валидация, принятие решения.
  • LLM‑оркестрация – поддержка OpenAI, Anthropic, DeepSeek, Ollama. Опциональный цикл «Генератор → Критик → Рефайнер» с итеративным улучшением.
  • Изолированное выполнение – все изменения применяются во временной копии проекта. Только после успешного аудита патчи переносятся в оригинал.
  • Адаптивная стабильность – «губернатор стабильности» на основе скользящего окна здоровья системы подстраивает пороги принятия, бюджет итераций и максимальный размер патча.
  • Параллельная обработка – ошибки группируются по файлам и могут исправляться одновременно (настраивается через parallel_workers).
  • Безопасность – проверка инвариантов (сохранение бизнес‑логики), Circuit Breaker, AntiLoop, финальный аудит.
  • Telegram‑бот – мониторинг состояния, управление уведомлениями, перезапуск конвейера.

Быстрый старт

Требования

  • Python ≥ 3.10
  • Для Rust‑проектов: rustup, cargo, cargo-audit
  • Для Python‑проектов: flake8 (опционально bandit, mypy)
  • Для JS/TS: Node.js, eslint, typescript
  • Для C++: g++
  • Для C#: dotnet
  • Для LLM‑генерации: API‑ключ к одному из провайдеров или локальный Ollama

Установка и запуск

git clone https://github.com/yourname/webbles-fix.git
cd webbles-fix
python -m venv venv
source venv/bin/activate      # Windows: venv\Scripts\activate
pip install -r requirements.txt
python run.py

После запуска откроется интерактивное меню. Конфигурация (LLM, Telegram, параметры конвейера) сохраняется в webles_config.json.

Использование Telegram‑бота

Запустите CLI, выберите «1. Запустить (CLI + Telegram бот)». Бот стартует в фоновом потоке. Доступные команды:

  • /start – показать клавиатуру
  • Статус – текущее состояние конвейера
  • Уведомления вкл / Уведомления выкл
  • Перезапуск – инструкция по перезапуску
  • Стоп – запрос остановки

Технологический стек

  • Язык: Python 3.10+
  • Анализ кода: cargo check/clippy (Rust), flake8 (Python), eslint/tsc (JS/TS), g++ (C++), dotnet build (C#)
  • LLM‑провайдеры: OpenAI, Anthropic, DeepSeek, Ollama
  • Планирование: Incremental Sandbox (hardlink‑based), beam search, мемоизация состояний
  • Конфигурация: JSON (webles_config.json)
  • Логирование: Python logging с ротацией файлов

Архитектура (упрощённо)

graph TD
    CLI[CLI / run.py] --> Controller
    Bot[Telegram Bot] --> Controller
    Controller --> PipelineEngine

    subgraph PipelineEngine
        PE[run()] --> Analyze[AnalyzeStage]
        Analyze --> Classify --> Prioritize --> RootCause
        RootCause --> Generate[GeneratePatchStage]
        Generate --> Apply[ApplyPatchStage]
        Apply --> Validate[ValidateStage]
        Validate --> Decide[DecideStage]
        Decide -->|ACCEPT| NextError
        Decide -->|REJECT/RETRY| Rollback
        Rollback --> NextError
        NextError -->|есть ошибки| Prioritize
        NextError -->|нет ошибок| Completed
    end

    Generate --> LLMClient[LLMClient<br/>OpenAI/Anthropic/DeepSeek/Ollama]
    Validate --> CompilerChecks
    Validate --> LintChecks
    Validate --> SecurityChecks

    PipelineEngine --> AuditManager
    PipelineEngine --> StateManager[(.webbles_fix_state.json)]
    PipelineEngine --> StabilityGovernor
    StabilityGovernor --> SystemHealthEvaluator
Loading

Как помочь

Принимаются любые вклады: исправления багов, улучшение документации, добавление новых языковых провайдеров. Инструкции в CONTRIBUTING.md. Для новичков есть задачи с меткой good first issue.

Лицензия

MIT © 2026

About

Автономная мультиязычная система исправления ошибок в коде с LLM‑оркестрацией

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors