Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
6aa33c9
fix(security): valida firma de webhook + idempotencia + timeout API (…
claude May 9, 2026
f97a50a
fix(security): validación env + rate limit + sanitización + anti-inje…
claude May 9, 2026
b3ce9e9
fix(security): timeouts HTTP + Docker non-root + pin de deps (LOW)
claude May 9, 2026
63ce417
refactor(security): extraer funciones puras a agent/security.py + tes…
claude May 9, 2026
3ef46d7
fix(security): no filtrar detalle de excepciones en producción
claude May 10, 2026
8aa1756
Merge pull request #1 from Jon-human-in-the-loop/claude/fix-security-…
Jon-human-in-the-loop May 10, 2026
07b8562
docs: agregar créditos del fork y mejoras de seguridad de Jonathan Fl…
claude May 10, 2026
b2619ee
Merge pull request #2 from Jon-human-in-the-loop/docs/readme-creditos…
Jon-human-in-the-loop May 10, 2026
dcdd55c
Add Python version to runtime.txt
Jon-human-in-the-loop May 19, 2026
86b8830
Remove setup instructions and start server directly
Jon-human-in-the-loop May 19, 2026
19d5508
feat: add HELIX · AI WhatsApp agent (Sofía) with Twilio integration
claude May 19, 2026
e72a3df
Merge pull request #3 from Jon-human-in-the-loop/claude/push-agent-co…
Jon-human-in-the-loop May 19, 2026
6bb51ef
feat: humanizar agente Sofía para WhatsApp
claude May 20, 2026
19a3a78
Merge branch 'claude/push-agent-code-Otcaa'
claude May 20, 2026
19df5c6
docs: guía completa de lo construido y pasos para producción
claude May 21, 2026
968238e
docs: actualizar guía completa con arquitectura, diagnóstico y checkl…
claude May 21, 2026
bfc9381
docs: merge ambas sesiones en guía única completa
claude May 22, 2026
24212e8
docs: eliminar referencias de marca del documento, convertir en guía …
claude May 22, 2026
3c302df
feat: reemplazar Anthropic SDK por LiteLLM para soporte multi-LLM
claude May 23, 2026
75a40fd
feat: agregar fallback automático de LLM con LiteLLM
claude Jun 2, 2026
835f30b
docs: actualizar README y GUIA_COMPLETA con fallback multi-LLM
claude Jun 2, 2026
87917cb
feat: notificación por email cuando Sofía confirma una cita o lead
claude Jun 2, 2026
063f6c1
fix: soporte SMTP configurable para dominios propios
claude Jun 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 34 additions & 11 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,36 +1,59 @@
# AgentKit — Variables de entorno
# Copia este archivo como .env y llena tus datos:
# cp .env.example .env
#
# Claude Code te ayuda a llenar estos valores durante el setup.
# NUNCA subas el archivo .env a GitHub.

# ── Anthropic API ──────────────────────────────────────────
# Obtener en: https://platform.anthropic.com/settings/api-keys
ANTHROPIC_API_KEY=
# ── LLM — Modelo de lenguaje ──────────────────────────────
# Formato: proveedor/modelo
LLM_MODEL=anthropic/claude-sonnet-4-6

# Keys por proveedor (LiteLLM las detecta por nombre estándar)
# Agrega las que tengas — el fallback usa las disponibles en orden:
# Anthropic → Groq → Gemini → OpenAI → Perplexity
ANTHROPIC_API_KEY= # platform.anthropic.com/settings/api-keys
# GROQ_API_KEY= # console.groq.com/keys (gratis)
# GEMINI_API_KEY= # aistudio.google.com (gratis)
# OPENAI_API_KEY= # platform.openai.com/api-keys
# PERPLEXITYAI_API_KEY= # perplexity.ai

# LLM_API_KEY= (variable legacy — se mapea a ANTHROPIC_API_KEY si no hay otra)

# ── Proveedor de WhatsApp ──────────────────────────────────
# Opciones: meta | twilio
WHATSAPP_PROVIDER=

# ── Meta Cloud API (si WHATSAPP_PROVIDER=meta) ────────────
# Configurar en: https://developers.facebook.com
# META_ACCESS_TOKEN=
# META_PHONE_NUMBER_ID=
# META_VERIFY_TOKEN=agentkit-verify
# META_VERIFY_TOKEN=
# META_APP_SECRET=

# ── Twilio (si WHATSAPP_PROVIDER=twilio) ──────────────────
# Configurar en: https://twilio.com
# TWILIO_ACCOUNT_SID=
# TWILIO_AUTH_TOKEN=
# TWILIO_PHONE_NUMBER=
# TWILIO_VALIDATE_SIGNATURE=true

# ── Notificaciones por email ──────────────────────────────
# Se envía un email cuando Sofía confirma una cita o captura un lead.
# SMTP_EMAIL=notificaciones@tudominio.com # cuenta que envía
# SMTP_PASSWORD=tu-contraseña-smtp # contraseña SMTP (ver abajo según proveedor)
# NOTIFICATION_EMAIL=jon@tudominio.com # dónde recibís las alertas
#
# SMTP_HOST y SMTP_PORT según tu proveedor de email:
# Gmail personal: smtp.gmail.com / 465 (necesita App Password)
# Google Workspace: smtp.gmail.com / 465 (necesita App Password)
# Outlook / Microsoft: smtp.office365.com / 587
# Zoho Mail: smtp.zoho.com / 465
# Brevo (Sendinblue): smtp-relay.brevo.com / 587
# Tu hosting (cPanel): mail.tudominio.com / 465
# SMTP_HOST=smtp.gmail.com
# SMTP_PORT=465

# ── Servidor ──────────────────────────────────────────────
PORT=8000
ENVIRONMENT=development

# ── Base de datos ─────────────────────────────────────────
# Local (SQLite):
DATABASE_URL=sqlite+aiosqlite:///./agentkit.db
# Produccion (PostgreSQL en Railway):
# DATABASE_URL=postgresql+asyncpg://user:pass@host:5432/dbname
# Producción: DATABASE_URL=postgresql+asyncpg://user:pass@host:5432/dbname
24 changes: 1 addition & 23 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Secretos — NUNCA subir a GitHub
# Secretos — NUNCA subir
.env

# Base de datos local
Expand All @@ -9,26 +9,13 @@
# Python
__pycache__/
*.py[cod]
*.pyo
.venv/
venv/
env/
*.egg-info/
dist/
build/

# Knowledge (archivos privados del negocio)
knowledge/*
!knowledge/.gitkeep

# Archivos generados por Claude Code durante onboarding
agent/
config/
tests/
requirements.txt
Dockerfile
docker-compose.yml

# Session state
config/session.yaml

Expand All @@ -39,12 +26,3 @@ Thumbs.db
# IDE
.vscode/
.idea/
*.swp
*.swo
*~

# Docker
.dockerignore

# Node (si se usa para Claude Code)
node_modules/
Loading