CWA-Project/ ├── src/ # Código-fonte principal │ ├── controllers/ # Controladores que orquestram agentes e workflows │ │ ├── index.js # Controlador principal que gerencia fluxos │ │ ├── userController.js # Exemplo de controlador para usuários │ │ └── ticketController.js # Exemplo de controlador para chamados de suporte │ │ │ ├── workflows/ # Workflows que definem lógicas e transições de estados │ │ ├── ticketWorkflow.js # Workflow para processamento de chamados │ │ ├── onboardingWorkflow.js # Workflow para onboarding de usuários │ │ └── index.js # Exportação e registro de workflows │ │ │ ├── agents/ # Agentes especializados em tarefas específicas │ │ ├── classifierAgent.js # Agente que classifica entradas de texto │ │ ├── billingAgent.js # Agente especializado em questões financeiras │ │ ├── supportAgent.js # Agente para suporte técnico │ │ └── index.js # Registro e inicialização dos agentes │ │ │ ├── tools/ # Ferramentas externas e utilitárias │ │ ├── apiClient.js # Cliente API genérico │ │ ├── emailSender.js # Integração com serviço de envio de e-mails │ │ └── index.js # Exportação centralizada das ferramentas │ │ │ ├── db/ # Conexões e operações com banco de dados │ │ ├── connection.js # Configuração e inicialização da conexão com o banco de dados │ │ ├── userModel.js # Modelo para a tabela/coleção de usuários │ │ ├── ticketModel.js # Modelo para a tabela/coleção de chamados │ │ └── index.js # Registro e exportação dos modelos │ │ │ ├── memory/ # Camada de memória para armazenamento contextual │ │ ├── shortTerm.js # Memória de curto prazo (sessão) │ │ ├── longTerm.js # Memória de longo prazo (persistente) │ │ └── index.js # Interface principal para memória │ │ │ ├── utils/ # Funções utilitárias reutilizáveis │ │ ├── logger.js # Configuração de logging │ │ ├── errorHandler.js # Tratamento de erros │ │ ├── config.js # Configurações do projeto │ │ └── index.js # Registro de utilitários │ │ │ └── app.js # Arquivo principal de inicialização do app │ ├── .env # Variáveis de ambiente ├── .gitignore # Arquivos ignorados pelo Git ├── package.json # Dependências e configurações do projeto Node.js ├── package-lock.json # Lockfile do npm/yarn └── README.md # Documentação inicial do projeto