| """ | |
| HASHIRU 6.1 - CONFIGURAÇÃO AUTÔNOMA SEM RESTRIÇÕES | |
| Configurações para agente 100% autônomo baseado em 7 meses de pesquisa | |
| """ | |
| from __future__ import annotations | |
| from typing import Dict, List, Any, Optional | |
| import os | |
| from pathlib import Path | |
| # ================================================ | |
| # CONFIGURAÇÕES DE AUTONOMIA TOTAL | |
| # ================================================ | |
| class AutonomousConfig: | |
| """Configurações para operação 100% autônoma sem restrições.""" | |
| # MODO OPERACIONAL - SEM RESTRIÇÕES | |
| AUTONOMOUS_MODE = True | |
| RESTRICTIONS_ENABLED = False | |
| CONFIRM_BEFORE_EXECUTION = False # EXECUÇÃO AUTOMÁTICA TOTAL | |
| SELF_MODIFICATION_ENABLED = True | |
| DANGEROUS_OPERATIONS_ALLOWED = True | |
| # CONFIGURAÇÕES DE IAs OLLAMA | |
| OLLAMA_BASE_URL = "http://localhost:11434" | |
| OLLAMA_TIMEOUT = 60.0 | |
| # MODELOS DE IA COM FALLBACK AUTOMÁTICO | |
| AI_MODELS = { | |
| # Conversação e chat geral | |
| "conversation": { | |
| "primary": "llama3.1:8b", | |
| "fallback": ["mistral:7b-instruct", "llama3.1:8b"] | |
| }, | |
| # Especialista em código | |
| "code_specialist": { | |
| "primary": "deepseek-coder:6.7b", | |
| "fallback": ["deepseek-coder:33b", "llama3.1:8b"] | |
| }, | |
| # Raciocínio avançado | |
| "reasoning": { | |
| "primary": "deepseek-r1:8b", | |
| "fallback": ["qwen2.5:14b-instruct", "llama3.1:8b"] | |
| }, | |
| # Código complexo e arquitetura | |
| "code_master": { | |
| "primary": "deepseek-coder:33b", | |
| "fallback": ["deepseek-coder:6.7b", "llama3.1:8b"] | |
| }, | |
| # Embeddings e processamento de texto | |
| "embeddings": { | |
| "primary": "nomic-embed-text:latest", | |
| "fallback": ["llama3.1:8b"] | |
| }, | |
| # Instruções complexas | |
| "instructions": { | |
| "primary": "qwen2.5:14b-instruct", | |
| "fallback": ["mistral:7b-instruct", "llama3.1:8b"] | |
| }, | |
| # Uso geral | |
| "general": { | |
| "primary": "mistral:7b-instruct", | |
| "fallback": ["llama3.1:8b"] | |
| }, | |
| # Ferramentas e comandos | |
| "tools": { | |
| "primary": "llama3-groq-tool-use:8b", | |
| "fallback": ["llama3.1:8b"] | |
| } | |
| } | |
| # CONFIGURAÇÕES DE EXECUÇÃO AUTOMÁTICA | |
| AUTO_EXECUTION = { | |
| # Comandos que executam automaticamente SEM confirmação | |
| "always_allow": [ | |
| "/read", "/list", "/search", "/sysinfo", "/ps", | |
| "/net:get", "/scrape", "/py", "/help" | |
| ], | |
| # Comandos perigosos que também executam automaticamente (SEM RESTRIÇÕES) | |
| "dangerous_auto_allow": [ | |
| "/write", "/exec", "/delete", "/move", "/copy", | |
| "/kill", "/py --unsafe" | |
| ], | |
| # Timeout padrão para execução | |
| "default_timeout": 60, | |
| # Máximo de comandos por execução | |
| "max_commands_per_execution": 20 | |
| } | |
| # CONFIGURAÇÕES DE AUTO-MODIFICAÇÃO | |
| SELF_MODIFICATION = { | |
| # Habilitar modificação do próprio código | |
| "enabled": True, | |
| # Arquivos que podem ser modificados automaticamente | |
| "modifiable_files": [ | |
| "main_agent.py", "tools/*.py", "utils/*.py", | |
| "config.py", "autonomous_config.py" | |
| ], | |
| # Diretórios excluídos da modificação | |
| "exclude_directories": [ | |
| ".git", "__pycache__", "hashiru_6_env", "venv", | |
| ".venv", "node_modules", ".env" | |
| ], | |
| # Backup automático antes de modificações | |
| "auto_backup": True, | |
| # Manter histórico de modificações | |
| "keep_history": True, | |
| # Máximo de backups por arquivo | |
| "max_backups_per_file": 10 | |
| } | |
| # CONFIGURAÇÕES DE PESQUISA E WEB | |
| WEB_RESEARCH = { | |
| # Máximo de resultados por busca | |
| "max_search_results": 10, | |
| # Timeout para requisições web | |
| "web_timeout": 30, | |
| # User agent para requisições | |
| "user_agent": "HASHIRU-6.1-Autonomous-Agent", | |
| # Cache de resultados de pesquisa | |
| "cache_search_results": True, | |
| # Tempo de cache (segundos) | |
| "cache_duration": 3600 # 1 hora | |
| } | |
| # CONFIGURAÇÕES DE AUDITORIA | |
| AUDIT = { | |
| # Habilitar auditoria de todas as ações | |
| "enabled": True, | |
| # Arquivo de log | |
| "log_file": "utils/audit.log", | |
| # Nível de detalhamento | |
| "detail_level": "full", | |
| # Rotação de logs | |
| "rotate_logs": True, | |
| # Tamanho máximo do log (MB) | |
| "max_log_size": 100 | |
| } | |
| # CONFIGURAÇÕES DE PERFORMANCE | |
| PERFORMANCE = { | |
| # Cache de resultados de IA | |
| "cache_ai_responses": True, | |
| # Tamanho máximo do cache | |
| "max_cache_size": 1000, | |
| # Timeout para operações longas | |
| "long_operation_timeout": 300, # 5 minutos | |
| # Paralelização de comandos | |
| "parallel_execution": True, | |
| # Máximo de threads paralelas | |
| "max_parallel_threads": 5 | |
| } | |
| # CONFIGURAÇÕES DE SEGURANÇA (DESABILITADAS) | |
| SECURITY = { | |
| # TODAS AS RESTRIÇÕES DESABILITADAS CONFORME SOLICITADO | |
| "sandbox_mode": False, | |
| "validate_commands": False, | |
| "check_file_permissions": False, | |
| "restrict_system_access": False, | |
| "limit_resource_usage": False, | |
| # Lista branca de comandos (DESABILITADA) | |
| "command_whitelist_enabled": False, | |
| "command_whitelist": [], | |
| # Lista negra de comandos (DESABILITADA) | |
| "command_blacklist_enabled": False, | |
| "command_blacklist": [] | |
| } | |
| # CONFIGURAÇÕES DE DESENVOLVIMENTO | |
| DEVELOPMENT = { | |
| # Modo debug | |
| "debug_mode": True, | |
| # Logs verbosos | |
| "verbose_logging": True, | |
| # Mostrar execução de comandos | |
| "show_command_execution": True, | |
| # Salvar artifacts de debug | |
| "save_debug_artifacts": True, | |
| # Diretório de artifacts | |
| "artifacts_directory": "artifacts" | |
| } | |
| # CONFIGURAÇÕES DE SISTEMA | |
| SYSTEM = { | |
| # Diretório base do projeto | |
| "project_root": Path(__file__).parent, | |
| # Diretórios importantes | |
| "directories": { | |
| "tools": "tools", | |
| "utils": "utils", | |
| "artifacts": "artifacts", | |
| "backups": "backups", | |
| "logs": "logs" | |
| }, | |
| # Arquivos essenciais | |
| "essential_files": [ | |
| "main_agent.py", | |
| "config.py", | |
| "tools/__init__.py", | |
| "utils/audit.py" | |
| ], | |
| # Codificação padrão | |
| "default_encoding": "utf-8", | |
| # Porta padrão do Chainlit | |
| "chainlit_port": 8080 | |
| } | |
| # MENSAGENS DO SISTEMA | |
| MESSAGES = { | |
| "startup_banner": """ | |
| 🚀 HASHIRU 6.1 - AGENTE AUTÔNOMO SEM RESTRIÇÕES | |
| 🧠 IAs ATIVAS: 8 modelos especializados | |
| ⚡ MODO: 100% Autônomo - Execução Total | |
| 🔧 CAPACIDADES: Modificação de código + Sistema + Web | |
| 🎯 OBJETIVO: Pesquisar e modificar código livremente | |
| ⚠️ SISTEMA CONFIGURADO PARA MÁXIMA AUTONOMIA | |
| 💬 Converse naturalmente - executo automaticamente! | |
| """, | |
| "processing": "🧠 Processando com múltiplas IAs...", | |
| "executing": "🚀 Executando autonomamente...", | |
| "completed": "✅ Operação concluída com sucesso!", | |
| "error": "💥 Erro na execução:", | |
| "fallback": "🔄 Usando modelo fallback:", | |
| "cache_hit": "⚡ Resultado do cache:", | |
| "self_improvement": "🔧 Auto-melhoria em andamento..." | |
| } | |
| # CONFIGURAÇÕES EXPERIMENTAIS | |
| EXPERIMENTAL = { | |
| # Recursos experimentais habilitados | |
| "enabled": True, | |
| # Auto-melhoria contínua em background | |
| "continuous_self_improvement": False, # Pode consumir recursos | |
| # Aprendizado por reforço | |
| "reinforcement_learning": False, | |
| # Análise preditiva de intenções | |
| "predictive_intent_analysis": True, | |
| # Cache inteligente baseado em padrões | |
| "intelligent_caching": True, | |
| # Otimização automática de prompts | |
| "auto_prompt_optimization": True | |
| } | |
| # ================================================ | |
| # FUNÇÕES DE CONFIGURAÇÃO | |
| # ================================================ | |
| def get_config() -> AutonomousConfig: | |
| """Retorna configuração global.""" | |
| return AutonomousConfig() | |
| def get_ai_model(model_type: str) -> str: | |
| """Retorna modelo primário para o tipo especificado.""" | |
| config = get_config() | |
| model_config = config.AI_MODELS.get(model_type, {}) | |
| return model_config.get("primary", "llama3.1:8b") | |
| def get_fallback_models(model_type: str) -> List[str]: | |
| """Retorna lista de modelos fallback.""" | |
| config = get_config() | |
| model_config = config.AI_MODELS.get(model_type, {}) | |
| return model_config.get("fallback", ["llama3.1:8b"]) | |
| def is_command_auto_allowed(command: str) -> bool: | |
| """Verifica se comando é executado automaticamente.""" | |
| config = get_config() | |
| # Se modo autônomo está desabilitado, não permitir | |
| if not config.AUTONOMOUS_MODE: | |
| return False | |
| # Se restrições estão habilitadas, verificar listas | |
| if config.RESTRICTIONS_ENABLED: | |
| always_allow = config.AUTO_EXECUTION["always_allow"] | |
| return any(command.startswith(cmd) for cmd in always_allow) | |
| # SEM RESTRIÇÕES - PERMITIR TUDO | |
| return True | |
| def is_dangerous_command_allowed(command: str) -> bool: | |
| """Verifica se comando perigoso é permitido.""" | |
| config = get_config() | |
| # SEM RESTRIÇÕES - PERMITIR COMANDOS PERIGOSOS | |
| if not config.RESTRICTIONS_ENABLED: | |
| return True | |
| dangerous_commands = config.AUTO_EXECUTION["dangerous_auto_allow"] | |
| return any(command.startswith(cmd) for cmd in dangerous_commands) | |
| def should_create_backup(file_path: str) -> bool: | |
| """Verifica se deve criar backup antes de modificar arquivo.""" | |
| config = get_config() | |
| return config.SELF_MODIFICATION["auto_backup"] | |
| def get_max_execution_timeout() -> int: | |
| """Retorna timeout máximo para execução.""" | |
| config = get_config() | |
| return config.AUTO_EXECUTION["default_timeout"] | |
| def get_project_directories() -> Dict[str, str]: | |
| """Retorna diretórios do projeto.""" | |
| config = get_config() | |
| return config.SYSTEM["directories"] | |
| def is_self_modification_enabled() -> bool: | |
| """Verifica se auto-modificação está habilitada.""" | |
| config = get_config() | |
| return config.SELF_MODIFICATION["enabled"] | |
| def get_excluded_directories() -> List[str]: | |
| """Retorna diretórios excluídos da modificação.""" | |
| config = get_config() | |
| return config.SELF_MODIFICATION["exclude_directories"] | |
| def get_startup_message() -> str: | |
| """Retorna mensagem de inicialização.""" | |
| config = get_config() | |
| return config.MESSAGES["startup_banner"] | |
| # ================================================ | |
| # CONFIGURAÇÃO GLOBAL - INSTÂNCIA ÚNICA | |
| # ================================================ | |
| # Instância global de configuração | |
| autonomous_config = AutonomousConfig() | |
| # Configurações prontas para uso | |
| OLLAMA_URL = autonomous_config.OLLAMA_BASE_URL | |
| AI_MODELS = autonomous_config.AI_MODELS | |
| AUTONOMOUS_MODE = autonomous_config.AUTONOMOUS_MODE | |
| SELF_MODIFICATION_ENABLED = autonomous_config.SELF_MODIFICATION["enabled"] | |
| AUTO_EXECUTION_ENABLED = True # SEM RESTRIÇÕES | |
| # Mensagens do sistema | |
| STARTUP_BANNER = autonomous_config.MESSAGES["startup_banner"] | |
| PROCESSING_MESSAGE = autonomous_config.MESSAGES["processing"] | |
| EXECUTING_MESSAGE = autonomous_config.MESSAGES["executing"] |