Об этом проекте

# PARTHA Разведывательные данные по репозиториям для приватных и эволюционирующих кодовых баз. ## Что это такое PARTHA берёт ревизию репозитория (импортированную как ZIP/TAR архив или публичный GitHub-репозиторий) и строит неизменяемый снимок его структуры. Из этого одного снимка она предоставляет: - **Архитектура** — интерактивный график модулей и разрешённых связей; доказательства с ссылками на источники для поддерживаемых паттернов Python/FastAPI - **График зависимостей** — декларации из `package.json`, `pyproject.toml` и `requirements.txt`, с разрешёнными pins из двух форматов lock-файлов, записанными отдельно - **Инженерный обзор** — выводы, каждый с хранимыми доказательственными спанами; неассessed категории остаются видимыми; нет агрегатного балла или процента здоровья - **Аналитика репозитория** — количества, соотношения, диагностика и покрытие исключительно из снимка - **Родословная репозитория** — повторяющиеся импорты одного и того же репозитория и ветви сгруппированы в долговременную историю - **Документация и экспорт** — структурная документация плюс обзор/документация/архитектура/зависимости экспортируются как JSON, Markdown, HTML или PDF - **Опциональный AI-контекст** — конфигурация провайдеров на пользователя с зашифрованными ключами и allowlist исходящего трафика от деплоя; провайдеры получают только структурные факты и наблюдаемые пути, никогда исходные байты или спаны строк Контракт формализован в [матрице возможностей](docs/CAPABILITIES.md), сгенерированной из кода и проверенной на дрейф в CI. Подтверждённые факты сохраняют доказательства и происхождение, привязанные к точному исходному расположению внутри проанализированной ревизии. ## Как это работает ``` Импорт → Анализ → Исследование → Экспорт ``` 1. **Импорт** — загрузите архив или импортируйте публичный GitHub-репозиторий через HTTPS. PARTHA сохраняет инвентарь файлов и идентичность ревизии. 2. **Анализ** — долговременная, отменяемая фоновая задача запускает ограниченный конвейер извлечения для поддерживаемых конструкций Python и TypeScript/JavaScript, манифестов, lock-файлов, взаимодействий сервисов и Docker Compose. 3. **Исследование** — изучайте архитектуру, зависимости, инженерный обзор, аналитику, доказательства и родословную. Отсутствие или устаревший снимок показывает недоступность, а не пытается угадать интерпретацию. 4. **Экспорт** — генерируйте структурную документацию или экспортируйте результаты через конвейер JSON/Markdown/HTML/PDF. Промежуточный артефакт — `ri.v1` — версионированный запечатанный снимок, содержащий факты, доказательства, диагностику и канонический хэш. Каждая поверхность продукта читает из этой общей модели; ни один потребитель не разбирает код независимо. AI — последующий потребитель разведывательных данных репозитория, а не независимый интерпретатор. ## Стек технологий - **Backend**: Python 3.12–3.13, FastAPI - **Frontend**: Node.js 22, React - **База данных**: SQLite (разработка) - **Worker**: in-process daemon thread (одна задача одновременно) - **AI-провайдеры**: опционально, настраиваются с Fernet-зашифрованными ключами и DNS-pinned allowlist исходящего трафика ## Быстрый старт ```bash git clone https://github.com/Second-Origin/PARTHA.git cd PARTHA # Backend — http://localhost:8000 (OpenAPI на /docs) cd apps/backend python3.13 -m venv .venv && source .venv/bin/activate pip install -e . cd ../.. && npm run dev:backend # Frontend — http://localhost:5173 cd apps/frontend npm ci npm run dev ``` Для локальной разработки не требуется контейнерный рантайм или внешняя база данных. Файл `.env` не нужен. ## Текущие ограничения - Только использование в доверенной среде — не защищён для широко разделяемого или multi-tenant хостинга. - Глубокая семантическая экстракция ограничена Python и TypeScript/JavaScript; другие языки дают только инвентарь файлов. - Покрытие зависимостей: три формата манифестов и два формата lock-файлов; нет транзитивного разрешения, сканирования уязвимостей или устаревших версий. - Анализ всего репозитория за один запуск — нет инкрементального переанализа. - Родословная сохраняет историю ревизий, но не сравнивает снимки, не обнаруживает переименования/перемещения и не вычисляет исторический blast radius. - Опциональный AI может вызывать внешнего провайдера; только локальные провайдеры сохраняют всё на хосте. См. [egress policy](docs/security/AI_PROVIDER_EGRESS.md). ## Документация - [Обзор системы](docs/architecture/SYSTEM_OVERVIEW.md) - [Разведка репозитория](docs/architecture/REPOSITORY_INTELLIGENCE.md) - [RFC-0001 — контракт ri.v1](docs/architecture/REPOSITORY_INTELLIGENCE_V1_RFC.md) - [RFC-0002 — Родословная репозитория](docs/architecture/REPOSITORY_LINEAGE_RFC.md) - [Матрица возможностей](docs/CAPABILITIES.md) - [Руководство по разработке](docs/DEVELOPMENT.md) - [Настройка AI-провайдера](docs/operations/AI_PROVIDER_SETUP.md) - [Политика безопасности](SECURITY.md) ## Лицензия Apache License 2.0 ## Сообщество - [Discord](https://discord.gg/qvk9DcxDA) - [Issues](https://github.com/Second-Origin/PARTHA/issues)