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)
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.