Como contribuir
1. Fork e clone
2. Setup do ambiente
3. Crie uma branch
4. Faça suas alterações
- Siga os padrões de código existentes
- Adicione testes para novas funcionalidades
- Mantenha commits pequenos e focados
5. Envie o Pull Request
Estrutura do projeto
O código segue uma arquitetura modular com decomposição SOLID. Os principais arquivos monolíticos foram divididos em módulos focados:cli/cli.go(~923 linhas) + 7 arquivos extraídos (cli_helpers.go,cli_history.go,cli_mode.go,cli_output.go,cli_prompt.go,cli_session.go,cli_tools.go)cli/agent_mode.go(~1498 linhas) + 4 arquivos extraídoscli/command_handler.go(~185 linhas) + 4 arquivos extraídosserver/handler.go(~420 linhas) + 3 arquivos extraídoscli/context_handler.go(~385 linhas) + 3 arquivos extraídos
cli/mcp, cli/ctxmgr e llm/fallback.
Compilação com informações de versão
Para builds que injetam versão, commit e data:Adicionando um novo provedor LLM
- Crie um pacote em
llm/meuprovedor/ - Implemente a interface
LLMClient(eToolAwareClientse suportar tool use) - Adicione auto-registro via
init()nollm/registry - Defina as variáveis de ambiente no
config/ - Adicione traduções i18n em
i18n/
switch/case.
Criando um plugin
Veja o guia completo em Sistema de Plugins.Reportando bugs
Abra uma issue no GitHub com:- Versão do ChatCLI (
chatcli --version) - Sistema operacional e versão do Go
- Passos para reproduzir
- Comportamento esperado vs observado
- Logs relevantes (use
LOG_LEVEL=debug)