8935d8d4b3
feat(nvidia): 5 skills NVIDIA + helper CLI para build.nvidia.com
...
Instala 5 skills baseadas no pacote NVIDIA/skills (filtradas para M5):
- nvidia-nemotron-speech (169 linhas) ASR/TTS/NMT cloud Riva NIM
- nvidia-nemo-retriever (243 linhas) RAG multi-formato com NV-Embed-v2
- nvidia-data-designer (184 linhas) Dados sinteticos para popular motor
- nvidia-aiq-deploy (194 linhas) Agente autonomo multi-step
- nvidia-policy-generator (241 linhas) Moderacao de conteudo + LGPD
Total: 1031 linhas de documentacao pratica com:
- Endpoints curl prontos
- Codigo Python helper
- Casos de uso M5 especificos (OpenWA→CRM, Saleor, Twenty, Chatwoot)
- Schema PostgreSQL (pgvector) para RAG
- YAML de configuracao para AI-Q
- Limites e custos do free tier
skills/ nao commitada (sua em ~/.hermes/skills/) — ja' instaladas e ativas.
Adiciona scripts/nvidia-apis.py (CLI wrapper):
- chat PROMPT chat completion qualquer modelo
- models lista 121 modelos free
- status verifica se NVIDIA_API_KEY funciona
Acao para amanha:
1. Obter NVIDIA_API_KEY gratis em https://build.nvidia.com/
2. echo "NVIDIA_API_KEY=nvapi-..." >> /root/ecommerce/scripts/.env
3. python3 scripts/nvidia-apis.py status
4. Habilitar pgvector: docker exec m5_postgres psql ... -c 'CREATE EXTENSION vector;'
5. Testar skill nvidia-nemotron-speech (transcrever audio WhatsApp)
2026-07-07 00:05:57 -03:00
dcca4bf3db
feat(n8n): helper CLI para automacao via cookie de sessao
...
Item 4 da sugestão B — substituir uso manual de UI por CLI.
scripts/n8n-api.py: cliente Python via /rest/login (cookie n8n-auth JWT)
Subcomandos:
- login — força novo login (autoexecuta antes de cada chamada)
- workflows — lista workflows (id, name, active, archived)
- executions — ultimas execucoes (status, workflowId, startedAt)
- activate — ativa workflow (precisa versionId)
- deactivate — desativa workflow
- webhook URL — dispara webhook publico (sem auth)
- raw PATH — chamada REST arbitraria (debug)
Credenciais lidas de scripts/.env:
- N8N_USER_EMAIL=admin@m5online.com.br
- N8N_LOGIN_PASSWORD=M5Online@2026
Testado:
- login: OK (role global:owner)
- workflows: 2 ativos (OpenWA → Twenty, Twenty → OpenWA)
- executions: 2 erros recentes (esperado, workspace Twenty nao criado)
- webhook openwa-incoming: HTTP 200
Nota: API key antiga N8N_USER/N8N_PASSWORD no .env e' legado
(N8N_USER=admin, N8N_PASSWORD=lKs9...) — mantida pra retrocompat.
Nova auth usa /rest/login + cookie (mais confiavel).
2026-07-06 23:21:17 -03:00
ee8c3d1fb1
feat(saleor): app token persistente + helper GraphQL
...
Item 1 da sugestão — vincular API token Saleor para uso programático.
Mudancas:
- docker-compose.m5.yml: env RSA_PRIVATE_KEY agora recebe ${RSA_PRIVATE_KEY_CONTENT}
(conteudo da chave, nao path) — corrige bug MalformedFraming do jwt_manager
- scripts/.env: adicionado RSA_PRIVATE_KEY_CONTENT (PKCS#1) e SALEOR_APP_TOKEN
- scripts/saleor-media/RSA_PRIVATE_KEY.pem: convertida PKCS#8 → PKCS#1
(Saleor 3.23 jwt_manager so' aceita PKCS#1)
- scripts/saleor-api.py: helper CLI para queries GraphQL (count/products/me/query)
- App 'M5 API Service' criado via appCreate (id QXBwOjE=)
- permissoes: MANAGE_ORDERS, PRODUCTS, CHANNELS, SHIPPING, TAXES, CHECKOUTS,
USERS, STAFF, HANDLE_PAYMENTS, APPS
- token: NPXnQSAcwTH40BGlqV010baewTSUzR (persistente, sem expiracao)
Bug colateral corrigido: pem MalformedFraming impedia Django setup e login.
Validacao:
- python3 scripts/saleor-api.py count: 4 products, 0 orders, 2 channels
- Token persistente funciona via Authorization: Bearer
2026-07-06 23:12:48 -03:00
9c2f7ff7b4
chore: triagem de arquivos untracked (60+ → 0)
...
Adiciona ao repo os scripts e configs reais do motor que estavam fora do git,
e remove arquivos legados/abandonados.
Adicionados (30):
- scripts/docker-compose.m5.yml, openwa-compose.yml, minio-compose.yml
- scripts/openwa.env (sem secrets)
- scripts/{entrypoint,saleor-entrypoint,saleor-start}.sh
- scripts/{chatwoot-setup,compliance-check,health-check,resumo-diario}.sh
- scripts/{insert_workflow,telegram_user_login,telegram_user_monitor}.py
- scripts/requirements.txt
- scripts/traefik-conf/{traefik.yml,dynamic-config.yml}
- scripts/compliance/, scripts/calculators/, scripts/backups/
- scripts/{README.md,README-INSTALL.md,WHATSAPP-SETUP.md,.gitignore}
- .gitignore (atualizado)
Removidos (ja' em backup/untracked-lixo-2026-07-06/):
- agents/, crm/, hermes_skills_backup/, api-complive/, docs/ (legados)
- scripts/{wrapper.py,wrapper.sh}
- scripts/docker-compose.m5.yml.backup, traefik-conf/routes.yml.bak2
- scripts/saleor-media/RSA_*.{bak,old_*}
- scripts/n8n-workflows/webhook-saleor.json.bak2
- scripts/backups/20260622_0300/saleor_db.sql
- integracao_completa.sh, monitoramento_vps.sh
- ruvector.db (vazio)
Ignorados via .gitignore:
- vault/ (Obsidian KB)
- skills/ (duplicado de ~/.hermes/skills/)
- scripts/{saleor-media,traefik-acme,yt-pub-livesx,minio,n8n-workflows,skills}/
- scripts/backups/2026*_*/
2026-07-06 18:50:26 -03:00
Iris Florencio
0a0061a914
feat(workflows): fase 5 — integração WhatsApp (OpenWA) ↔ Twenty CRM
...
Work feito nesta sessão:
- Traefik routes.yml: crm.m5digital.net.br → twenty-crm (Twenty substitui Hermes CRM)
- Backup pre-fase3 salvo em /root/backups/2026-07-06_pre-crm-reorg/
- 3 IPs hardcoded substituídos por container names (video, chatwoot, twenty)
- API key OpenWA recuperada do .api-key (regenerada em 29/jun/2026)
- Workflows n8n JSON prontos para WhatsApp → CRM e CRM → WhatsApp
- Documentação completa em workflows/README-FASE5-OPENWA-TWENTY.md
Pendência: import manual dos workflows via n8n UI após login wizard.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-06 16:49:26 -03:00