Sobre o projeto

# PARTHA Inteligência de repositórios para codebases privados e em evolução. ## O que é PARTHA pega uma revisão de repositório (importada como arquivo ZIP/TAR ou repositório público do GitHub) e constrói um snapshot persistente e imutável de sua estrutura. A partir desse único snapshot, oferece: - **Arquitetura** — gráfico interativo de módulos e relacionamentos resolvidos; explicações citadas por evidência para padrões Python/FastAPI suportados - **Gráfico de Dependências** — declarações de `package.json`, `pyproject.toml` e `requirements.txt`, com pins resolvidos de dois formatos de lockfile registrados separadamente - **Revisão de Engenharia** — achados cada um respaldado por spans de evidência armazenados; categorias não avaliadas permanecem visíveis; sem pontuação agregada nem percentual de saúde - **Insights do Repositório** — contagens, razões, diagnósticos e cobertura derivados apenas do snapshot - **Linhagem do Repositório** — importações repetidas do mesmo repositório e branch agrupadas em histórico duradouro - **Documentação e Exportação** — documentação estrutural além das exportações de Revisão/Documentação/Arquitetura/Dependências em JSON, Markdown, HTML ou PDF - **Contexto AI Opcional** — configuração de provider por usuário com chaves criptografadas e allowlist de egresso de propriedade da implantação; os providers recebem apenas fatos estruturais e caminhos observados, nunca bytes fonte nem spans de linha O contrato é formalizado na [matriz de capacidades](docs/CAPABILITIES.md), gerada a partir do código e verificada quanto a desvios no CI. Os fatos suportados mantêm evidência e proveniência atreladas a uma localização exata do fonte dentro da revisão analisada. ## Como funciona ``` Importar → Analisar → Explorar → Exportar ``` 1. **Importar** — faça upload de um arquivo ou importe um repositório público do GitHub via HTTPS. PARTHA armazena um inventário de arquivos e a identidade da revisão. 2. **Analisar** — um job de fundo duradouro e cancelável executa um pipeline de extração limitado para constructs suportados de Python e TypeScript/JavaScript, manifests, lockfiles, interações de serviço e Docker Compose. 3. **Explorar** — inspecione Arquitetura, Dependências, Revisão de Engenharia, Insights, evidência e linhagem. Um snapshot ausente ou desatualizado mostra-se indisponível em vez de recorrer a uma interpretação adivinhada. 4. **Exportar** — gere documentação estrutural ou exporte resultados por meio de um pipeline JSON/Markdown/HTML/PDF. O artefato intermediário é `ri.v1` — um snapshot selado e versionado contendo fatos, evidência, diagnósticos e um hash canônico. Cada superfície de produto lê deste modelo compartilhado; nenhum consumidor reanalisa o código independentemente. AI é um consumidor downstream da Inteligência de Repositórios, nunca um intérprete independente. ## Stack técnica - **Backend**: Python 3.12–3.13, FastAPI - **Frontend**: Node.js 22, React - **Banco de dados**: SQLite (desenvolvimento) - **Worker**: daemon thread no processo (um job por vez) - **Providers de AI**: opcionais, configuráveis com chaves criptografadas Fernet e allowlist de egresso fixa por DNS ## Início rápido ```bash git clone https://github.com/Second-Origin/PARTHA.git cd PARTHA # Backend — http://localhost:8000 (OpenAPI em /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 ``` Nenhum runtime de container ou banco de dados externo é necessário para desenvolvimento local. Nenhum arquivo `.env` é necessário. ## Limitações atuais - Uso apenas em ambiente confiável — não hardeningizado para hospedagem compartilhada ou multi-tenant ampla. - Extração semântica profunda é limitada a Python e TypeScript/JavaScript; outras linguagens contribuem apenas com inventário de arquivos. - Cobertura de dependências: três formatos de manifest e dois formatos de lockfile; sem resolução transitiva, sem verificação de vulnerabilidades ou versões desatualizadas. - Análise de repositório inteiro por execução — sem reanálise incremental. - Linhagem preserva histórico de revisões mas não diff entre snapshots, não detecta renomeações/movimentações e não calcula blast radius histórico. - AI opcional pode chamar um provider externo; apenas providers locais mantêm tudo no host. Veja a [política de egresso](docs/security/AI_PROVIDER_EGRESS.md). ## Documentação - [Visão Geral do Sistema](docs/architecture/SYSTEM_OVERVIEW.md) - [Inteligência de Repositórios](docs/architecture/REPOSITORY_INTELLIGENCE.md) - [RFC-0001 — Contrato ri.v1](docs/architecture/REPOSITORY_INTELLIGENCE_V1_RFC.md) - [RFC-0002 — Linhagem de Repositórios](docs/architecture/REPOSITORY_LINEAGE_RFC.md) - [Matriz de capacidades](docs/CAPABILITIES.md) - [Guia de desenvolvimento](docs/DEVELOPMENT.md) - [Configuração de provider AI](docs/operations/AI_PROVIDER_SETUP.md) - [Política de segurança](SECURITY.md) ## Licença Apache License 2.0 ## Comunidade - [Discord](https://discord.gg/qvk9DcxDA) - [Issues](https://github.com/Second-Origin/PARTHA/issues)