refactor: Migrate bot core and modules from talia_bot to bot directory, update start_bot.sh and Dockerfile, and modify README.md.

This commit is contained in:
Marco Gallegos
2025-12-21 18:00:31 -06:00
parent 6e1a2f0102
commit 13141d6ed3
38 changed files with 112 additions and 86 deletions

View File

@@ -0,0 +1,25 @@
{
"id": "admin_block_agenda",
"role": "admin",
"trigger_button": "🛑 Bloquear Agenda",
"steps": [
{
"step_id": 0,
"variable": "BLOCK_DATE",
"question": "Necesito bloquear la agenda. ¿Para cuándo?",
"options": ["Hoy", "Mañana"]
},
{
"step_id": 1,
"variable": "BLOCK_TIME",
"question": "Dame el horario exacto que necesitas bloquear (ej. 'de 2pm a 4pm').",
"input_type": "text"
},
{
"step_id": 2,
"variable": "BLOCK_TITLE",
"question": "Finalmente, dame una breve descripción o motivo del bloqueo.",
"input_type": "text"
}
]
}

View File

@@ -0,0 +1,19 @@
{
"id": "admin_check_agenda",
"role": "admin",
"trigger_button": "📅 Revisar Agenda",
"steps": [
{
"step_id": 0,
"variable": "AGENDA_TIMEFRAME",
"question": "Consultando el oráculo del tiempo... ⏳",
"options": ["📅 Hoy", "🔮 Mañana"]
},
{
"step_id": 1,
"variable": "AGENDA_ACTION",
"question": "Aquí tienes tu realidad: {CALENDAR_DATA}",
"options": ["✅ Todo bien", "🛑 Bloquear Espacio"]
}
]
}

View File

@@ -0,0 +1,31 @@
{
"id": "admin_create_nfc_tag",
"role": "admin",
"trigger_button": "start_create_tag",
"steps": [
{
"step_id": 0,
"variable": "EMPLOYEE_NAME",
"question": "Vamos a crear un nuevo tag de empleado. Por favor, dime el nombre completo:",
"input_type": "text"
},
{
"step_id": 1,
"variable": "EMPLOYEE_ID",
"question": "Gracias. Ahora, por favor, dime el número de empleado:",
"input_type": "text"
},
{
"step_id": 2,
"variable": "BRANCH",
"question": "Entendido. Ahora, por favor, selecciona la sucursal:",
"options": ["🏢 Oficina", "📢 Aura Mkt", "💅 Vanity"]
},
{
"step_id": 3,
"variable": "TELEGRAM_ID",
"question": "Perfecto. Finalmente, por favor, dime el ID numérico de Telegram del empleado:",
"input_type": "text"
}
]
}

View File

@@ -0,0 +1,26 @@
{
"id": "admin_idea_capture",
"role": "admin",
"name": "💡 Capturar Idea",
"trigger_button": "capture_idea",
"steps": [
{
"step_id": 0,
"variable": "IDEA_CONTENT",
"question": "Te escucho. 💡 Las ideas vuelan...",
"input_type": "text_or_audio"
},
{
"step_id": 1,
"variable": "IDEA_CATEGORY",
"question": "¿En qué cajón mental guardamos esto?",
"options": ["💰 Negocio", "📹 Contenido", "👤 Personal"]
},
{
"step_id": 2,
"variable": "IDEA_ACTION",
"question": "¿Cuál es el plan de ataque?",
"options": ["✅ Crear Tarea", "📓 Guardar Nota"]
}
]
}

View File

@@ -0,0 +1,14 @@
{
"id": "admin_print_file",
"role": "admin",
"name": "🖨️ Imprimir Archivo",
"trigger_button": "print_file",
"steps": [
{
"step_id": 0,
"variable": "UPLOAD_FILE",
"question": "Por favor, envíame el archivo que quieres imprimir.",
"input_type": "document"
}
]
}

View File

@@ -0,0 +1,31 @@
{
"id": "admin_project_management",
"role": "admin",
"trigger_button": "manage_vikunja",
"steps": [
{
"step_id": 0,
"variable": "PROJECT_SELECT",
"question": "Aquí está el tablero de ajedrez...",
"input_type": "dynamic_keyboard_vikunja_projects"
},
{
"step_id": 1,
"variable": "TASK_SELECT",
"question": "Has seleccionado el proyecto {project_name}. ¿Qué quieres hacer?",
"input_type": "dynamic_keyboard_vikunja_tasks"
},
{
"step_id": 2,
"variable": "ACTION_TYPE",
"question": "¿Cuál es la jugada?",
"options": ["🔄 Actualizar Estatus", "💬 Agregar Comentario"]
},
{
"step_id": 3,
"variable": "UPDATE_CONTENT",
"question": "Adelante. Soy todo oídos.",
"input_type": "text_or_audio"
}
]
}

View File

@@ -0,0 +1,34 @@
{
"id": "client_sales_funnel",
"role": "client",
"trigger_button": "get_service_info",
"trigger_automatic": true,
"steps": [
{
"step_id": 0,
"variable": "CLIENT_NAME",
"question": "Hola, soy Talía. ✨ Estoy aquí para ayudarte a explorar cómo podemos potenciar tu negocio. Para empezar, ¿cuál es tu nombre?",
"input_type": "text"
},
{
"step_id": 1,
"variable": "CLIENT_INDUSTRY",
"question": "Mucho gusto. Para poder ofrecerte la solución más adecuada, por favor, selecciona el área que mejor describa tu negocio:",
"options": [
"🎨 Diseño Gráfico",
"🎬 Contenido Audiovisual",
"📈 Estrategias de Marketing",
"🌐 Desarrollo Web",
"🤖 Bots y Automatización",
"⚙️ Mejora de Procesos",
"💡 Otro"
]
},
{
"step_id": 2,
"variable": "IDEA_PITCH",
"question": "Excelente. Ahora, cuéntame sobre tu proyecto o la idea que tienes en mente. ¿Qué desafío buscas resolver o qué oportunidad quieres aprovechar? Puedes escribirlo o enviarme una nota de voz.",
"input_type": "text_or_audio"
}
]
}

View File

@@ -0,0 +1,13 @@
{
"id": "crew_print_file",
"role": "crew",
"trigger_button": "🖨️ Imprimir",
"steps": [
{
"step_id": 0,
"variable": "UPLOAD_FILE",
"question": "Claro, envíame el archivo que necesitas imprimir y yo me encargo.",
"input_type": "document"
}
]
}

View File

@@ -0,0 +1,29 @@
{
"id": "crew_propose_activity",
"description": "Permite a un miembro del equipo proponer una actividad para aprobación.",
"trigger_button": "propose_activity",
"user_roles": ["crew"],
"steps": [
{
"step_id": "get_description",
"question": "Por favor, describe la actividad que quieres proponer.",
"input_type": "text",
"next_step": "get_duration"
},
{
"step_id": "get_duration",
"question": "Entendido. Ahora, por favor, indica la duración estimada en horas (ej. 2, 4.5).",
"input_type": "text",
"next_step": "confirm_proposal"
},
{
"step_id": "confirm_proposal",
"question": "Gracias. Se ha enviado la siguiente propuesta para aprobación:\n\n📝 *Actividad:* {get_description}\n⏳ *Duración:* {get_duration} horas\n\nRecibirás una notificación cuando sea revisada.",
"input_type": "static"
}
],
"completion_action": {
"action_type": "notify_admin",
"message_template": "Nueva propuesta de actividad:\n\nDescripción: {get_description}\nDuración: {get_duration} horas"
}
}

View File

@@ -0,0 +1,31 @@
{
"id": "crew_request_time",
"role": "crew",
"trigger_button": "📅 Solicitar Agenda",
"steps": [
{
"step_id": 0,
"variable": "REQUEST_TYPE",
"question": "Para usar la agenda del estudio, necesito que seas preciso.",
"options": ["🎥 Grabación", "🎙️ Locución", "🎬 Edición", "🛠️ Mantenimiento"]
},
{
"step_id": 1,
"variable": "REQUEST_DATE",
"question": "¿Para cuándo necesitas el espacio?",
"options": ["Hoy", "Mañana", "Esta Semana"]
},
{
"step_id": 2,
"variable": "REQUEST_TIME",
"question": "Dame el horario exacto que necesitas (ej. 'de 10am a 2pm').",
"input_type": "text"
},
{
"step_id": 3,
"variable": "REQUEST_JUSTIFICATION",
"question": "Entendido. Antes de confirmar, necesito que me expliques brevemente el plan o el motivo para justificar el bloqueo del espacio. Puedes escribirlo o enviarme un audio.",
"input_type": "text_or_audio"
}
]
}

View File

@@ -0,0 +1,37 @@
{
"id": "crew_secret_onboarding",
"role": "crew",
"trigger_command": "/abracadabra",
"steps": [
{
"step_id": 0,
"variable": "ONBOARD_START",
"question": "Vaya, vaya... Parece que conoces el comando secreto. 🎩. Antes de continuar, necesito saber tu nombre completo.",
"input_type": "text"
},
{
"step_id": 1,
"variable": "ONBOARD_ORIGIN",
"question": "Un placer, {user_name}. ¿Cuál es tu base de operaciones principal?",
"options": ["🏢 Office", "✨ Aura"]
},
{
"step_id": 2,
"variable": "ONBOARD_EMAIL",
"question": "Perfecto. Ahora necesito tu correo electrónico de la empresa.",
"input_type": "text"
},
{
"step_id": 3,
"variable": "ONBOARD_PHONE",
"question": "Y por último, tu número de teléfono.",
"input_type": "text"
},
{
"step_id": 4,
"variable": "ONBOARD_CONFIRM",
"question": "Gracias. He enviado una notificación al Administrador para que apruebe tu acceso. En cuanto lo haga, tendrás acceso completo. ¡Bienvenido a bordo!",
"options": ["✅ Entendido"]
}
]
}