From b351e566141c641f8c5fdc7bf55d24de519e12fa Mon Sep 17 00:00:00 2001 From: Egutierrez Date: Thu, 6 Nov 2025 02:14:52 +0100 Subject: [PATCH] generado bot de telegram con capacidades de kanboard --- LokiLogger.py | 178 ++++++++++++++++++ README.md | 19 ++ agentes/__init__.py | 24 +++ agentes/agent_config.py | 293 ++++++++++++++++++++++++++++++ agentes/agente_kanboard.py | 168 +++++++++++++++++ agentes/base.py | 118 ++++++++++++ ejecucion_cli.py | 249 +++++++++++++++++++++++++ ejecucion_telegram.py | 359 +++++++++++++++++++++++++++++++++++++ kanboard_mcp.py | 143 +++++++-------- mcp_wrapper.py | 358 ++++++++++++++++++++++++++++++++++++ memoria/conversaciones.db | Bin 0 -> 2129920 bytes pyproject.toml | 3 + utils/__init__.py | 0 utils/agno_logging.py | 89 +++++++++ uv.lock | 227 +++++++++++++++++++++++ 15 files changed, 2154 insertions(+), 74 deletions(-) create mode 100644 LokiLogger.py create mode 100644 agentes/__init__.py create mode 100644 agentes/agent_config.py create mode 100644 agentes/agente_kanboard.py create mode 100644 agentes/base.py create mode 100644 ejecucion_cli.py create mode 100644 ejecucion_telegram.py create mode 100644 mcp_wrapper.py create mode 100644 memoria/conversaciones.db create mode 100644 utils/__init__.py create mode 100644 utils/agno_logging.py diff --git a/LokiLogger.py b/LokiLogger.py new file mode 100644 index 0000000..5d80b98 --- /dev/null +++ b/LokiLogger.py @@ -0,0 +1,178 @@ +import time +import json +import requests +import traceback +from typing import Optional, Dict, Any, Callable +from functools import wraps + + +class LokiLogger: + """ + Logger compatible con Grafana Loki / Alloy. + Envía logs en formato JSON a través del endpoint HTTP de Loki. + """ + + ALLOWED_LEVELS = ( + "TRACE", + "DEBUG", + "INFO", + "WARN", + "ERROR", + "FATAL", + "CRITICAL", + "UNKNOWN", + ) + + def __init__( + self, + endpoint: str = "http://127.0.0.1:3101/loki/api/v1/push", + add_labels: Optional[Dict[str, str]] = None, + timeout: float = 5.0, + min_level: str = "DEBUG", + service_name: Optional[str] = None, + ): + """ + :param endpoint: URL completa del endpoint de Loki / Alloy. + :param add_labels: etiquetas adicionales comunes (ej: {"env": "dev"}) + :param timeout: timeout en segundos para la petición HTTP + :param min_level: nivel mínimo para enviar logs + :param service_name: nombre del servicio (usado como 'service_name' label) + """ + self.endpoint = endpoint + self.timeout = timeout + self.service_name = service_name or "unknown-service" + + min_level = min_level.upper() + if min_level not in self.ALLOWED_LEVELS: + raise ValueError(f"min_level debe estar en {self.ALLOWED_LEVELS}") + self.min_level = min_level + + # 🔹 Labels adicionales del constructor + self.add_labels = dict(add_labels or {}) + + self._level_order = { + "TRACE": 0, + "DEBUG": 1, + "INFO": 2, + "WARN": 3, + "ERROR": 4, + "FATAL": 5, + "CRITICAL": 6, + "UNKNOWN": 7, + } + + def _current_ns(self) -> str: + """Devuelve timestamp actual en nanosegundos como string.""" + return str(int(time.time() * 1e9)) + + def _should_log(self, level: str) -> bool: + """Comprueba si el nivel cumple con el mínimo configurado.""" + return self._level_order[level] >= self._level_order[self.min_level] + + def log( + self, + level: str, + message: str, + add_labels: Optional[Dict[str, str]] = None, + add_fields: Optional[Dict[str, Any]] = None, + ) -> None: + """Envía un log a Loki con los campos mínimos (timestamp + message).""" + level = level.upper() + if level == "WARNING": + level = "WARN" + + if level not in self.ALLOWED_LEVELS: + raise ValueError(f"Nivel no válido: {level}. Debe estar en {self.ALLOWED_LEVELS}") + + if not self._should_log(level): + return + + # 🔸 Construimos labels: solo 2 labels por defecto + final_labels = { + "service_name": self.service_name, + "detected_level": level, + } + + # Agrega labels adicionales del constructor + if self.add_labels: + final_labels.update(self.add_labels) + + # Agrega labels adicionales del método + if add_labels: + final_labels.update(add_labels) + + # 🧾 El log line lleva timestamp + message + campos adicionales + log_line_data = { + "timestamp": time.strftime("%Y-%m-%dT%H:%M:%SZ", time.localtime()), + "message": message, + } + + # Agrega campos adicionales si se pasan + if add_fields: + log_line_data.update(add_fields) + + log_line = json.dumps(log_line_data, ensure_ascii=False) + + body = { + "streams": [ + {"stream": final_labels, "values": [[self._current_ns(), log_line]]} + ] + } + + try: + resp = requests.post(self.endpoint, json=body, timeout=self.timeout) + resp.raise_for_status() + except Exception as e: + print(f"Failed to send log to Loki: {e}", flush=True) + + # Métodos estándar por nivel + def trace(self, message, add_labels=None, add_fields=None): + self.log("TRACE", message, add_labels, add_fields) + + def debug(self, message, add_labels=None, add_fields=None): + self.log("DEBUG", message, add_labels, add_fields) + + def info(self, message, add_labels=None, add_fields=None): + self.log("INFO", message, add_labels, add_fields) + + def warn(self, message, add_labels=None, add_fields=None): + self.log("WARN", message, add_labels, add_fields) + + def warning(self, message, add_labels=None, add_fields=None): + self.log("WARN", message, add_labels, add_fields) + + def error(self, message, add_labels=None, add_fields=None): + self.log("ERROR", message, add_labels, add_fields) + + def exception(self, exc: Exception, add_labels=None, add_fields=None): + """Registra una excepción con traceback incluido.""" + tb = traceback.format_exc() + message = str(exc) + self.log("ERROR", f"{message}\n{tb}", add_labels=add_labels, add_fields=add_fields) + + def fatal(self, message, add_labels=None, add_fields=None): + self.log("FATAL", message, add_labels, add_fields) + + def critical(self, message, add_labels=None, add_fields=None): + self.log("CRITICAL", message, add_labels, add_fields) + + def unknown(self, message, add_labels=None, add_fields=None): + self.log("UNKNOWN", message, add_labels, add_fields) + + # 🧩 Decorador para capturar excepciones + def catch_exceptions(self, reraise: bool = False): + """Decorador que captura excepciones y las loguea.""" + def decorator(func: Callable): + @wraps(func) + def wrapper(*args, **kwargs): + try: + return func(*args, **kwargs) + except Exception as e: + tb = traceback.format_exc() + self.error( + f"Exception en función '{func.__name__}': {e}\n{tb}" + ) + if reraise: + raise + return wrapper + return decorator diff --git a/README.md b/README.md index e69de29..1d4c203 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,19 @@ +# Kanboard Agent + +## Telegram Bot + +1. Copia tu token de bot en `.env` usando las siguientes variables: + ``` + TELEGRAM_BOT_TOKEN="" + TELEGRAM_ALLOWED_CHAT_ID="" + TELEGRAM_ALLOWED_USER_ID="" + TELEGRAM_AGENT_KEY="kan" # opcional, usa el valor del registro si es distinto + ``` +2. Asegúrate de tener configurado `OPENAI_API_KEY` y cualquier otra credencial necesaria. +3. Ejecuta el bot con `python ejecucion_telegram.py` desde el entorno virtual del proyecto. +4. Usa el chat de Telegram indicado para conversar con el agente Kan. + +> **Notas** +> - El bot filtra mensajes por `user_id` y `chat_id` para que solo tú puedas usarlo. +> - El endpoint de Loki se reutiliza automáticamente para los logs del bot. +> - Puedes personalizar el agente cambiando `TELEGRAM_AGENT_KEY` si registras más agentes. diff --git a/agentes/__init__.py b/agentes/__init__.py new file mode 100644 index 0000000..2aed311 --- /dev/null +++ b/agentes/__init__.py @@ -0,0 +1,24 @@ +"""Paquete que contiene las definiciones de agentes personalizados.""" + +from .agente_kanboard import AgenteBasico +from .agent_config import ( + AGENT_REGISTRY, + DEFAULT_AGENT_NAME, + AgentWrapper, + create_agent, + get_agent_wrapper, + register_agent, +) +from .base import AgenteBase, AgentDefinition + +__all__ = [ + "AgenteBasico", + "AgentDefinition", + "AgenteBase", + "AgentWrapper", + "AGENT_REGISTRY", + "DEFAULT_AGENT_NAME", + "create_agent", + "get_agent_wrapper", + "register_agent", +] diff --git a/agentes/agent_config.py b/agentes/agent_config.py new file mode 100644 index 0000000..bfe43ef --- /dev/null +++ b/agentes/agent_config.py @@ -0,0 +1,293 @@ +import os +from dataclasses import dataclass, field +from time import perf_counter +from typing import Any, Callable, Dict, List, Optional, Tuple, Union + +from agno.agent import Agent +from agno.db.base import SessionType +from agno.models.openai import OpenAIChat + +from .agente_kanboard import AgenteBasico +from .base import AgentDefinition +from mcp_wrapper import MCPConfigError, initialize_mcp_tools, load_mcp_tools +from utils.agno_logging import configure_agno_to_use_loki + +ToolFactory = Callable[[Any], Any] + + +@dataclass +class AgentWrapper: + name: str + description: str + system_prompt: str + model_id: str + memory_config: Dict[str, Any] = field(default_factory=dict) + mcp_config: Optional[Dict[str, Any]] = None + tool_factories: List[ToolFactory] = field(default_factory=list) + markdown: bool = True + debug_mode: bool = False + telemetry: bool = False + model_kwargs: Dict[str, Any] = field(default_factory=dict) + db: Optional[Any] = None + user_id: Optional[str] = None + session_id: Optional[str] = None + resume_previous_session: bool = True + + async def create(self, logger) -> Tuple[Agent, Dict[str, Any]]: + configure_agno_to_use_loki(logger) + + local_tools = [factory(logger) for factory in self.tool_factories] + + mcp_tools: List[Any] = [] + active_mcp_servers: List[str] = [] + server_tool_map: Dict[str, List[str]] = {} + + if self.mcp_config: + mcp_config = dict(self.mcp_config) + try: + mcp_tools, active_mcp_servers = load_mcp_tools(mcp_config, logger=logger) + if mcp_tools: + server_tool_map = await initialize_mcp_tools(mcp_tools, logger=logger) + except MCPConfigError as error: + logger.error( + "🚨 Configuración MCP inválida", + add_fields={ + "error": str(error), + "agent_call": { + "action": "load_mcp_config", + "agent_name": self.name, + }, + "agent_response": {"status": "error", "error": str(error)}, + }, + ) + except Exception as error: + logger.error( + "💥 Error inesperado configurando MCP", + add_fields={ + "error": str(error), + "agent_call": { + "action": "load_mcp_config", + "agent_name": self.name, + }, + "agent_response": {"status": "error", "error": str(error)}, + }, + ) + raise + + if self.db: + logger.info( + "🗄️ Base de datos SQLite configurada para el agente", + add_fields={ + "agent_call": { + "action": "configure_memory", + "agent_name": self.name, + "db_file": getattr(self.db, "db_file", None), + }, + "agent_response": { + "status": "db_ready", + "resume_previous_session": self.resume_previous_session, + }, + }, + ) + + if self.resume_previous_session and not self.session_id and self.user_id: + start = perf_counter() + try: + sessions = self.db.get_sessions(user_id=self.user_id, session_type=SessionType.AGENT) + duration_ms = round((perf_counter() - start) * 1000, 3) + if sessions: + self.session_id = getattr(sessions[0], "session_id", None) + logger.info( + "📂 Sesión previa recuperada desde memoria persistente", + add_fields={ + "agent_call": { + "action": "restore_session", + "agent_name": self.name, + "user_id": self.user_id, + }, + "agent_response": { + "status": "session_found", + "session_id": self.session_id, + "sessions_encontradas": len(sessions), + "duration_ms": duration_ms, + }, + }, + ) + else: + logger.info( + "🔎 No se encontró sesión previa para el agente", + add_fields={ + "agent_call": { + "action": "restore_session", + "agent_name": self.name, + "user_id": self.user_id, + }, + "agent_response": { + "status": "session_not_found", + "duration_ms": duration_ms, + }, + }, + ) + except Exception as error: + duration_ms = round((perf_counter() - start) * 1000, 3) + logger.error( + "🚨 Error recuperando la sesión previa desde SQLite", + add_fields={ + "error": str(error), + "agent_call": { + "action": "restore_session", + "agent_name": self.name, + "user_id": self.user_id, + }, + "agent_response": { + "status": "error", + "duration_ms": duration_ms, + }, + }, + ) + else: + logger.warn( + "⚠️ Agente sin base de datos configurada; la memoria no se persistirá", + add_fields={ + "agent_call": { + "action": "configure_memory", + "agent_name": self.name, + }, + "agent_response": { + "status": "db_missing", + "add_history_to_context": self.memory_config.get("add_history_to_context", False), + }, + }, + ) + + api_key = os.getenv("OPENAI_API_KEY") + if not api_key: + logger.warn( + "⚠️ OPENAI_API_KEY no encontrado; el agente puede fallar al invocar el modelo", + add_fields={ + "agent_call": { + "action": "load_model_credentials", + "agent_name": self.name, + }, + "agent_response": {"status": "missing_credentials"}, + }, + ) + + agent = Agent( + model=OpenAIChat( + id=self.model_id, + api_key=api_key, + **self.model_kwargs, + ), + db=self.db, + user_id=self.user_id, + session_id=self.session_id, + tools=[*local_tools, *mcp_tools], + markdown=self.markdown, + name=self.name, + description=self.description, + system_message=self.system_prompt, + debug_mode=self.debug_mode, + telemetry=self.telemetry, + **self.memory_config, + ) + + logger.info( + "🤖 Agente configurado", + add_fields={ + "agent_call": { + "action": "create_agent", + "agent_name": self.name, + "local_tools": [tool.__name__ for tool in local_tools], + "mcp_servers": active_mcp_servers, + }, + "agent_response": { + "status": "created", + "tool_count": len(agent.tools) if agent.tools else 0, + }, + }, + ) + + logger.info( + "✅ Sesión del agente lista para usarse", + add_fields={ + "agent_call": { + "action": "session_ready", + "agent_name": self.name, + }, + "agent_response": { + "status": "ready", + "session_id": getattr(agent, "session_id", self.session_id), + "user_id": self.user_id, + "db_file": getattr(self.db, "db_file", None) if self.db else None, + }, + }, + ) + + context = { + "mcp_tools": mcp_tools, + "active_servers": active_mcp_servers, + "server_tool_map": server_tool_map, + "local_tools": [tool.__name__ for tool in local_tools], + "agent_name": self.name, + "db_file": getattr(self.db, "db_file", None) if self.db else None, + "user_id": self.user_id, + "session_id": getattr(agent, "session_id", self.session_id), + "resume_previous_session": self.resume_previous_session, + } + self.session_id = context["session_id"] + + return agent, context + + +def _wrapper_from_definition(definition: AgentDefinition) -> AgentWrapper: + return AgentWrapper( + name=definition.name, + description=definition.description, + system_prompt=definition.system_prompt, + model_id=definition.model_id, + memory_config=definition.memory_config, + mcp_config=definition.mcp_config, + tool_factories=definition.tool_factories, + markdown=definition.markdown, + debug_mode=definition.debug_mode, + telemetry=definition.telemetry, + model_kwargs=definition.model_kwargs, + db=definition.db, + user_id=definition.user_id, + session_id=definition.session_id, + resume_previous_session=definition.resume_previous_session, + ) + + +_AGENT_DEFINITIONS = [ + AgenteBasico(), +] + +DEFAULT_AGENT_NAME = _AGENT_DEFINITIONS[0].get_registry_key() + +AGENT_REGISTRY: Dict[str, AgentWrapper] = { + agent.get_registry_key(): _wrapper_from_definition(agent.build_definition()) + for agent in _AGENT_DEFINITIONS +} + + +def register_agent(key: str, wrapper: AgentWrapper) -> None: + AGENT_REGISTRY[key.lower()] = wrapper + + +def get_agent_wrapper(agent: Union[str, AgentWrapper, None]) -> Tuple[str, AgentWrapper]: + if isinstance(agent, AgentWrapper): + return agent.name.lower(), agent + agent_key = (agent or DEFAULT_AGENT_NAME).lower() + if agent_key not in AGENT_REGISTRY: + raise KeyError(f"No se encontró un agente registrado con la clave '{agent_key}'") + return agent_key, AGENT_REGISTRY[agent_key] + + +async def create_agent(logger, agent: Union[str, AgentWrapper, None] = None) -> Tuple[Agent, Dict[str, Any]]: + agent_key, wrapper = get_agent_wrapper(agent) + agent_instance, context = await wrapper.create(logger) + context.setdefault("agent_name", wrapper.name) + context.setdefault("agent_key", agent_key) + return agent_instance, context diff --git a/agentes/agente_kanboard.py b/agentes/agente_kanboard.py new file mode 100644 index 0000000..cf13588 --- /dev/null +++ b/agentes/agente_kanboard.py @@ -0,0 +1,168 @@ +"""Definición del agente básico de ejemplo.""" +from __future__ import annotations + +from typing import Any, Dict, List + +from .base import AgenteBase, ToolFactory + +SYSTEM_PROMPT = ("""## 🧠 System Prompt — “Agente Kanboard” + +**Nombre del agente:** KAN +**Rol:** Asistente autónomo de productividad y coordinación de tareas en Kanboard. + +--- + +### 🎯 Objetivo principal + +Gestionar, organizar y optimizar las tareas de los proyectos en Kanboard. +Debe actuar como un gestor de proyectos proactivo, ayudando a mantener el flujo de trabajo limpio, priorizado y actualizado. + +--- + +### 💼 Responsabilidades + +1. **Gestión de tareas** + + * Crear, actualizar, mover y cerrar tareas según el estado de avance. + * Asignar responsables, etiquetas y fechas límite con base en contexto o patrones previos. + * Detectar tareas duplicadas o bloqueadas y sugerir acciones correctivas. + +2. **Priorización inteligente** + + * Ordenar tareas usando criterios de impacto, urgencia y dependencias. + * Recalcular prioridades automáticamente si cambian fechas o recursos. + +3. **Contexto y comunicación** + + * Resumir el estado actual de cada proyecto. + * Generar reportes diarios o semanales con progreso, riesgos y tareas pendientes. + * Explicar cambios recientes en el tablero (por ejemplo: “se movieron 3 tareas a *Done*”). + +4. **Automatización de flujo** + + * Mover tareas automáticamente al siguiente estado según condiciones predefinidas (por ejemplo: “si los tests pasan, mover a *Ready for Review*”). + * Crear subtareas recurrentes o tareas de seguimiento. + +--- + +### 🧩 Entradas esperadas + +El agente debe ser capaz de interpretar comandos naturales como: + +* “Crea una tarea para configurar el pipeline de ingestión en Kafka.” +* “Muévela a *Doing* y asígnamela.” +* “Resúmeme el tablero del proyecto *Data Lake*.” +* “Prioriza las tareas de optimización antes que las de documentación.” +* “Muéstrame las tareas bloqueadas desde hace más de 3 días.” + +--- + +### 🔍 Integraciones + +* **Kanboard API:** CRUD de tareas, columnas, etiquetas, usuarios y comentarios. +* **GitHub / GitLab:** Referencias automáticas a commits o PRs relacionados. +* **Slack / Email:** Notificaciones opcionales sobre cambios importantes. +* **Calendario / Notion (opcional):** Sincronización de deadlines y notas de planificación. + +--- + +### 🧠 Personalidad y estilo + +* **Tono:** Profesional, directo, pero con iniciativa. +* **Comunicación:** Clara, contextual, priorizando acciones útiles. +* **Criterio:** Detecta inconsistencias y las menciona sin esperar instrucción. + (Ej: “La tarea ‘Configurar ETL’ lleva 10 días en *Doing*, ¿quieres revisarla?”) + +--- + +### ⚙️ Reglas de operación + +1. No crea ni elimina proyectos sin confirmación explícita. +2. Puede sugerir cambios automáticos, pero siempre explica el motivo. +3. Mantiene trazabilidad de todas las acciones. +4. Respeta el esquema de columnas estándar: + + * **Backlog → Ready → Doing → Review → Done** +5. Si un comando es ambiguo, pregunta antes de actuar. +6. Todas las respuestas deben incluir **acciones sugeridas o contexto útil** (no solo datos). + +--- + +### 📈 Objetivo secundario + +Aprender del comportamiento del usuario (por ejemplo, patrones de asignación o tiempos de ciclo) para **recomendar automatizaciones personalizadas**, como: + +* Recordatorios automáticos. +* Repriorización dinámica. +* Creación de plantillas de tareas repetitivas. + + +""" + +) + +DEFAULT_MEMORY_CONFIG: Dict[str, Any] = { + "add_history_to_context": True, + "num_history_messages": 10, + "store_history_messages": True, +} + +DEFAULT_MCP_CONFIG: Dict[str, Any] = { + "mcpServers": { + "time": { + "command": "/home/lucas/DataProyects/kanboard/.venv/bin/python", + "args": ["/home/lucas/DataProyects/kanboard/kanboard_mcp.py"], + }, + } +} + + +# def _create_multiplicar_tool(logger) -> ToolFactory: +# def multiplicar(a: float, b: float) -> float: +# tool_call_data = { +# "tool_name": "multiplicar", +# "params": {"a": a, "b": b}, +# "action": "multiply_numbers", +# } +# logger.info( +# "🛠️ Tool llamada: multiplicar", +# add_fields={"agent_call": tool_call_data}, +# ) + +# resultado = a * b + +# tool_response_data = { +# "tool_name": "multiplicar", +# "response": resultado, +# "success": True, +# "operation": f"{a} × {b} = {resultado}", +# } +# logger.info( +# "✅ Tool respuesta: multiplicar completada exitosamente", +# add_fields={"agent_response": tool_response_data}, +# ) + +# return resultado + +# multiplicar.__name__ = "multiplicar" +# return multiplicar + + +class AgenteBasico(AgenteBase): + key = "kan" + name = "Kan" + description = "Agente de tareas para gestionar mi tablero kanboard" + system_prompt = SYSTEM_PROMPT + model_id = "gpt-4o" + markdown = True + debug_mode = True + telemetry = False + + def get_memory_config(self) -> Dict[str, Any]: + return dict(DEFAULT_MEMORY_CONFIG) + + def get_mcp_config(self) -> Dict[str, Any]: + return dict(DEFAULT_MCP_CONFIG) + + # def get_tool_factories(self) -> List[ToolFactory]: + # return [_create_multiplicar_tool] diff --git a/agentes/base.py b/agentes/base.py new file mode 100644 index 0000000..379020c --- /dev/null +++ b/agentes/base.py @@ -0,0 +1,118 @@ +"""Clases base para definir agentes del proyecto.""" +from __future__ import annotations + +import logging +from dataclasses import dataclass +from pathlib import Path +from typing import Any, Callable, Dict, List, Optional + +from agno.db.sqlite import SqliteDb + +logger = logging.getLogger(__name__) + +ToolFactory = Callable[[Any], Any] + + +@dataclass +class AgentDefinition: + """Contenedor ligero con los parámetros para construir un AgentWrapper.""" + + name: str + description: str + system_prompt: str + model_id: str + memory_config: Dict[str, Any] + mcp_config: Optional[Dict[str, Any]] + tool_factories: List[ToolFactory] + markdown: bool + debug_mode: bool + telemetry: bool + model_kwargs: Dict[str, Any] + db: Optional[SqliteDb] + user_id: Optional[str] + session_id: Optional[str] + resume_previous_session: bool + + +class AgenteBase: + """Proporciona valores por defecto y utilidades para los agentes concretos.""" + + key: str = "base" + name: str = "Agente base" + description: str = "Agente genérico." + system_prompt: str = "" + model_id: str = "gpt-4o" + markdown: bool = True + debug_mode: bool = False + telemetry: bool = False + memory_config: Dict[str, Any] = {} + mcp_config: Optional[Dict[str, Any]] = None + model_kwargs: Dict[str, Any] = {} + db_path: Optional[str] = "memoria/conversaciones.db" + user_id: Optional[str] = None + resume_previous_session: bool = True + + def get_registry_key(self) -> str: + """Clave utilizada en el registro global de agentes.""" + return self.key.lower() + + def get_memory_config(self) -> Dict[str, Any]: + return dict(self.memory_config) if self.memory_config else {} + + def get_mcp_config(self) -> Optional[Dict[str, Any]]: + if not self.mcp_config: + return None + return {**self.mcp_config} + + def get_tool_factories(self) -> List[ToolFactory]: + return [] + + def get_model_kwargs(self) -> Dict[str, Any]: + return dict(self.model_kwargs) if self.model_kwargs else {} + + def _resolve_db_path(self) -> Optional[Path]: + if not self.db_path: + return None + db_path = Path(self.db_path) + if not db_path.is_absolute(): + project_root = Path(__file__).resolve().parent.parent + db_path = project_root / db_path + try: + db_path.parent.mkdir(parents=True, exist_ok=True) + except OSError as error: + logger.warning( + "⚠️ No se pudo crear el directorio para la base de datos SQLite", + extra={"db_directory": str(db_path.parent), "error": str(error)}, + ) + return None + return db_path + + def get_database(self) -> Optional[SqliteDb]: + db_path = self._resolve_db_path() + if not db_path: + return None + return SqliteDb(db_file=str(db_path)) + + def get_user_id(self) -> str: + return self.user_id or self.get_registry_key() + + def build_definition(self) -> AgentDefinition: + """Genera los parámetros necesarios para instanciar un AgentWrapper.""" + db = self.get_database() + return AgentDefinition( + name=self.name, + description=self.description, + system_prompt=self.system_prompt, + model_id=self.model_id, + memory_config=self.get_memory_config(), + mcp_config=self.get_mcp_config(), + tool_factories=list(self.get_tool_factories()), + markdown=self.markdown, + debug_mode=self.debug_mode, + telemetry=self.telemetry, + model_kwargs=self.get_model_kwargs(), + db=db, + user_id=self.get_user_id(), + session_id=None, + resume_previous_session=self.resume_previous_session, + ) diff --git a/ejecucion_cli.py b/ejecucion_cli.py new file mode 100644 index 0000000..f4f76e0 --- /dev/null +++ b/ejecucion_cli.py @@ -0,0 +1,249 @@ +"""CLI interactiva para conversar con los agentes registrados.""" +from __future__ import annotations + +import asyncio +from pprint import pformat +from typing import Any, Dict, List + +from dotenv import load_dotenv + +from agentes import AGENT_REGISTRY, create_agent +from LokiLogger import LokiLogger +from mcp_wrapper import close_mcp_tools + +# Logger reutilizado en toda la sesión +logger = LokiLogger( + service_name="agente_kanboard", + add_labels={"env": "local", "agent": "CLI"}, +) + + +def _make_json_safe(value: Any) -> Any: + if isinstance(value, dict): + return {k: _make_json_safe(v) for k, v in value.items()} + if isinstance(value, list): + return [_make_json_safe(v) for v in value] + if hasattr(value, "to_dict"): + return _make_json_safe(value.to_dict()) + if hasattr(value, "model_dump"): + return _make_json_safe(value.model_dump()) + if hasattr(value, "dict"): + return _make_json_safe(value.dict()) + if isinstance(value, (str, int, float, bool)) or value is None: + return value + return str(value) + + +def _pretty_print(title: str, payload: Any) -> None: + safe_payload = _make_json_safe(payload) + print(f"\n{title}") + print("=" * len(title)) + print(pformat(safe_payload, width=100, compact=False, sort_dicts=False)) + + +def _announce_session(context: Dict[str, Any]) -> None: + summary = { + "agente": context.get("agent_name"), + "usuario": context.get("user_id"), + "sesion": context.get("session_id"), + "herramientas_locales": context.get("local_tools", []), + "servidores_mcp_activos": context.get("active_servers", []), + "herramientas_mcp": context.get("server_tool_map", {}), + "base_datos": context.get("db_file"), + "reanudar_memoria": context.get("resume_previous_session"), + } + + print("🚀 Sesión iniciada") + _pretty_print("Contexto inicial", summary) + + if context.get("db_file"): + print(f"\n🗄️ Memoria persistente: {context['db_file']}") + + if context.get("active_servers"): + print("\n🔗 MCP habilitado. Servidores activos detectados.") + else: + print("\n⚠️ MCP no tiene servidores activos configurados.") + + print("\nEscribe 'salir' para terminar la conversación.") + + +def _render_response(response: Any) -> None: + if not response: + print("⚠️ No se obtuvo respuesta del agente.") + return + + agent_response_fields = { + "run_id": response.run_id, + "agent_id": response.agent_id, + "session_id": response.session_id, + "model": response.model, + "model_provider": response.model_provider, + "status": str(response.status), + "metrics": { + "input_tokens": response.metrics.input_tokens if response.metrics else 0, + "output_tokens": response.metrics.output_tokens if response.metrics else 0, + "total_tokens": response.metrics.total_tokens if response.metrics else 0, + "duration": response.metrics.duration if response.metrics else 0, + "time_to_first_token": response.metrics.time_to_first_token if response.metrics else 0, + }, + "tools_invocadas": [tool.tool_name for tool in response.tools or []], + } + + _pretty_print("📊 Métricas de la respuesta", agent_response_fields) + + if response.tools: + herramientas = [] + for tool_call in response.tools: + herramientas.append( + { + "tool_call_id": tool_call.tool_call_id, + "tool_name": tool_call.tool_name, + "tool_args": _make_json_safe(tool_call.tool_args), + "result": _make_json_safe(tool_call.result), + "error": tool_call.tool_call_error, + "metrics": ( + tool_call.metrics.to_dict() if getattr(tool_call, "metrics", None) else None + ), + } + ) + _pretty_print("🧰 Herramientas invocadas", herramientas) + else: + print("\nℹ️ El modelo no invocó herramientas durante la respuesta.") + + if response.content: + print("\n💬 Respuesta del agente") + print("----------------------") + print(response.content) + else: + print("\n💬 Respuesta del agente: (vacía)") + + +async def ejecutar_cli() -> None: + load_dotenv() + logger.info("🚀 Iniciando sesión interactiva del agente") + + agent_keys = list(AGENT_REGISTRY.keys()) + if not agent_keys: + print("\n❌ No hay agentes registrados disponibles.") + logger.error( + "🚫 No hay agentes registrados para iniciar la sesión", + add_fields={"agent_call": {"action": "list_agents"}, "agent_response": {"status": "empty_registry"}}, + ) + return + + print("\n🤖 Agentes disponibles:") + print("=======================") + name_to_key = {} + for idx, key in enumerate(agent_keys, start=1): + wrapper = AGENT_REGISTRY[key] + name_to_key[wrapper.name.lower()] = key + print(f"[{idx}] {wrapper.name} → {wrapper.description}") + + selected_key = None + while not selected_key: + try: + choice = input("\nSelecciona un agente (número o nombre): ").strip().lower() + except KeyboardInterrupt: + print("\n\n⛔ Selección interrumpida por el usuario.") + logger.info( + "⛔ Selección de agente interrumpida por Ctrl+C", + add_fields={ + "agent_call": {"action": "select_agent", "agent_options": agent_keys}, + "agent_response": {"status": "interrupted"}, + }, + ) + return + if not choice: + print("❌ Entrada vacía. Intenta nuevamente.") + continue + + if choice.isdigit(): + index = int(choice) - 1 + if 0 <= index < len(agent_keys): + selected_key = agent_keys[index] + else: + print("❌ Número inválido. Intenta de nuevo.") + continue + elif choice in agent_keys: + selected_key = choice + elif choice in name_to_key: + selected_key = name_to_key[choice] + else: + print("❌ Agente no encontrado. Intenta nuevamente.") + continue + + selected_wrapper = AGENT_REGISTRY[selected_key] + print(f"\n✅ Agente seleccionado: {selected_wrapper.name}\n") + logger.info( + "🤖 Agente seleccionado para la sesión", + add_fields={ + "agent_call": {"action": "select_agent", "agent_options": agent_keys}, + "agent_response": {"status": "agent_selected", "agent_key": selected_key, "agent_name": selected_wrapper.name}, + }, + ) + + try: + agent, context = await create_agent(logger, agent=selected_key) + except Exception as error: # pragma: no cover - salida controlada + logger.exception(error) + print(f"No se pudo crear el agente: {error}") + return + + mcp_tools: List[Any] = context.get("mcp_tools", []) + _announce_session(context) + + try: + while True: + user_input = (await asyncio.to_thread(input, "\nTú → ")).strip() + if not user_input: + continue + + if user_input.lower() in {"salir", "exit", "quit"}: + logger.info( + "👋 Chat finalizado por el usuario", + add_fields={ + "agent_call": {"action": "end_chat"}, + "agent_response": {"status": "ended_by_user"}, + }, + ) + print("\n👋 Sesión finalizada por el usuario.") + break + + logger.info( + "📨 Mensaje recibido del usuario", + add_fields={ + "agent_call": { + "action": "user_message", + "content": user_input, + } + }, + ) + + try: + response = await agent.arun(user_input) + except Exception as error: # pragma: no cover - salida controlada + logger.exception(error) + print(f"Error al procesar la consulta: {error}") + continue + + _render_response(response) + + except KeyboardInterrupt: # pragma: no cover - salida controlada + logger.info( + "⛔ Chat interrumpido por el usuario", + add_fields={ + "agent_response": {"status": "interrupted"}, + }, + ) + print("\n⛔ Sesión interrumpida manualmente.") + finally: + await close_mcp_tools(mcp_tools, logger=logger) + logger.info("✅ Sesión del agente finalizada") + + +def main() -> None: + asyncio.run(ejecutar_cli()) + + +if __name__ == "__main__": # pragma: no cover - ejecución directa + main() diff --git a/ejecucion_telegram.py b/ejecucion_telegram.py new file mode 100644 index 0000000..13a2cd3 --- /dev/null +++ b/ejecucion_telegram.py @@ -0,0 +1,359 @@ +"""Bot de Telegram para conversar con el agente Kanboard.""" +from __future__ import annotations + +import asyncio +import os +import json +from contextlib import suppress +from typing import Any, Dict, List, Optional + +import requests +from dotenv import load_dotenv + +from agentes import DEFAULT_AGENT_NAME, create_agent +from LokiLogger import LokiLogger +from mcp_wrapper import close_mcp_tools + +TELEGRAM_API_BASE = "https://api.telegram.org" +MAX_MESSAGE_LENGTH = 3800 # margen para markdown/formatting + + +def _parse_int(value: Optional[str], *, env_name: str) -> Optional[int]: + if value is None or value.strip() == "": + return None + try: + return int(value) + except ValueError as error: # pragma: no cover - salida controlada + raise ValueError(f"{env_name} debe ser un entero válido, se recibió: {value!r}") from error + + +class TelegramKanBot: + def __init__( + self, + *, + token: str, + allowed_user_id: int, + allowed_chat_id: int, + agent_key: str, + logger: LokiLogger, + ) -> None: + self.token = token + self.allowed_user_id = allowed_user_id + self.allowed_chat_id = allowed_chat_id + self.agent_key = agent_key + self.logger = logger + self.api_timeout = 30 + self.http_timeout = 35 + self.idle_sleep = 1 + self.offset: Optional[int] = None + self.base_url = f"{TELEGRAM_API_BASE}/bot{token}" + self.session = requests.Session() + + self.agent = None + self.context: Dict[str, Any] = {} + + async def setup_agent(self) -> None: + agent, context = await create_agent(self.logger, agent=self.agent_key) + self.agent = agent + self.context = context + self.logger.info( + "🤖 Agente Kan para Telegram listo", + add_fields={ + "agent_call": {"action": "telegram_agent_ready", "agent": self.agent_key}, + "agent_response": {"status": "ready", "allowed_chat": self.allowed_chat_id}, + }, + ) + + async def close(self) -> None: + if self.context.get("mcp_tools"): + await close_mcp_tools(self.context["mcp_tools"], logger=self.logger) + self.session.close() + + async def run(self) -> None: + if self.agent is None: + await self.setup_agent() + + self.logger.info( + "🚀 Escuchando mensajes de Telegram", + add_fields={ + "agent_call": {"action": "telegram_poll"}, + "agent_response": { + "status": "listening", + "chat_id": self.allowed_chat_id, + "user_id": self.allowed_user_id, + }, + }, + ) + + try: + while True: + updates = await self._fetch_updates() + for update in updates: + self.offset = update["update_id"] + 1 + await self._handle_update(update) + await asyncio.sleep(self.idle_sleep) + except asyncio.CancelledError: # pragma: no cover - interrupción controlada + raise + except Exception as error: + self.logger.exception(error) + raise + + async def _fetch_updates(self) -> List[Dict[str, Any]]: + params = { + "timeout": self.api_timeout, + "allowed_updates": json.dumps(["message", "edited_message"]), + } + if self.offset is not None: + params["offset"] = self.offset + try: + response = await asyncio.to_thread( + self.session.get, + f"{self.base_url}/getUpdates", + params=params, + timeout=self.http_timeout, + ) + response.raise_for_status() + data = response.json() + except Exception as error: # pragma: no cover - manejo defensivo + self.logger.exception( + error, + add_fields={ + "agent_call": {"action": "telegram_get_updates"}, + "agent_response": {"status": "error"}, + }, + ) + await asyncio.sleep(5) + return [] + + if not data.get("ok"): + self.logger.error( + "La API de Telegram devolvió un estado no-ok", + add_fields={ + "agent_call": {"action": "telegram_get_updates"}, + "agent_response": {"status": data.get("ok"), "description": data.get("description")}, + }, + ) + return [] + + result = data.get("result", []) + if result: + self.logger.debug( + "📩 Nuevos updates recibidos", + add_fields={ + "agent_call": {"action": "telegram_get_updates"}, + "agent_response": {"status": "updates", "count": len(result)}, + }, + ) + return result + + async def _handle_update(self, update: Dict[str, Any]) -> None: + message = update.get("message") or update.get("edited_message") + if not message: + return + + chat = message.get("chat", {}) + chat_id = chat.get("id") + user = message.get("from", {}) + user_id = user.get("id") + + if chat_id != self.allowed_chat_id or user_id != self.allowed_user_id: + self.logger.warn( + "Mensaje ignorado por no cumplir filtros", + add_fields={ + "agent_call": {"action": "telegram_filter_message"}, + "agent_response": {"status": "ignored", "chat_id": chat_id, "user_id": user_id}, + }, + ) + return + + text = message.get("text") or "" + if not text: + await self._send_message(chat_id, "Solo puedo procesar mensajes de texto por ahora.") + return + + if text.strip().lower() in {"/start", "hola", "hi"}: + await self._send_message(chat_id, "¡Hola! Soy KAN, listo para ayudarte con Kanboard.") + return + + await self._process_message(chat_id, text) + + async def _process_message(self, chat_id: int, text: str) -> None: + self.logger.info( + "📨 Mensaje recibido desde Telegram", + add_fields={ + "agent_call": {"action": "telegram_user_message", "content": text}, + "agent_response": {"status": "processing"}, + }, + ) + typing_task = asyncio.create_task(self._typing_indicator(chat_id)) + try: + response = await self.agent.arun(text) + except Exception as error: # pragma: no cover - manejo defensivo + self.logger.exception( + error, + add_fields={ + "agent_call": {"action": "agent_run", "content": text}, + "agent_response": {"status": "error"}, + }, + ) + await self._send_message(chat_id, "Hubo un error procesando tu mensaje. Revisa los logs para más detalles.") + return + finally: + typing_task.cancel() + with suppress(asyncio.CancelledError): + await typing_task + + content = (response.content or "(respuesta vacía)").strip() + if not content: + content = "(respuesta vacía)" + + await self._send_message(chat_id, content) + + if response.metrics: + self.logger.info( + "📊 Métricas de ejecución", + add_fields={ + "agent_call": {"action": "agent_run_metrics"}, + "agent_response": { + "status": "completed", + "metrics": { + "input_tokens": response.metrics.input_tokens, + "output_tokens": response.metrics.output_tokens, + "total_tokens": response.metrics.total_tokens, + "duration_seconds": response.metrics.duration, + }, + }, + }, + ) + + async def _send_message(self, chat_id: int, text: str) -> None: + for chunk in self._chunk_text(text): + payload = {"chat_id": chat_id, "text": chunk} + try: + response = await asyncio.to_thread( + self.session.post, + f"{self.base_url}/sendMessage", + json=payload, + timeout=self.http_timeout, + ) + response.raise_for_status() + data = response.json() + if not data.get("ok"): + self.logger.error( + "Telegram rechazó el mensaje", + add_fields={ + "agent_call": {"action": "telegram_send_message"}, + "agent_response": {"status": data.get("ok"), "description": data.get("description")}, + }, + ) + except Exception as error: # pragma: no cover - manejo defensivo + self.logger.exception( + error, + add_fields={ + "agent_call": {"action": "telegram_send_message", "payload": payload}, + "agent_response": {"status": "error"}, + }, + ) + + async def _typing_indicator(self, chat_id: int) -> None: + try: + while True: + await self._send_chat_action(chat_id, "typing") + await asyncio.sleep(4) + except asyncio.CancelledError: # pragma: no cover - interrupción esperada + raise + + async def _send_chat_action(self, chat_id: int, action: str) -> None: + payload = {"chat_id": chat_id, "action": action} + try: + response = await asyncio.to_thread( + self.session.post, + f"{self.base_url}/sendChatAction", + json=payload, + timeout=self.http_timeout, + ) + response.raise_for_status() + data = response.json() + if not data.get("ok"): + self.logger.error( + "Telegram rechazó la acción del chat", + add_fields={ + "agent_call": {"action": "telegram_send_chat_action"}, + "agent_response": {"status": data.get("ok"), "description": data.get("description")}, + }, + ) + except Exception as error: # pragma: no cover - manejo defensivo + self.logger.exception( + error, + add_fields={ + "agent_call": {"action": "telegram_send_chat_action", "payload": payload}, + "agent_response": {"status": "error"}, + }, + ) + + def _chunk_text(self, text: str) -> List[str]: + if len(text) <= MAX_MESSAGE_LENGTH: + return [text] + + chunks: List[str] = [] + current = [] + current_len = 0 + for paragraph in text.split("\n\n"): + paragraph = paragraph.strip() + if not paragraph: + continue + paragraph_len = len(paragraph) + 2 # margen para doble salto + if current_len + paragraph_len > MAX_MESSAGE_LENGTH and current: + chunks.append("\n\n".join(current)) + current = [paragraph] + current_len = len(paragraph) + elif paragraph_len > MAX_MESSAGE_LENGTH: + chunks.extend([paragraph[i:i + MAX_MESSAGE_LENGTH] for i in range(0, len(paragraph), MAX_MESSAGE_LENGTH)]) + current = [] + current_len = 0 + else: + current.append(paragraph) + current_len += paragraph_len + if current: + chunks.append("\n\n".join(current)) + return chunks + + +async def run_bot() -> None: + load_dotenv() + + token = os.getenv("TELEGRAM_BOT_TOKEN") + allowed_user_id = _parse_int(os.getenv("TELEGRAM_ALLOWED_USER_ID"), env_name="TELEGRAM_ALLOWED_USER_ID") + allowed_chat_id = _parse_int(os.getenv("TELEGRAM_ALLOWED_CHAT_ID"), env_name="TELEGRAM_ALLOWED_CHAT_ID") + agent_key = (os.getenv("TELEGRAM_AGENT_KEY") or DEFAULT_AGENT_NAME).lower() + + if not token: + raise RuntimeError("TELEGRAM_BOT_TOKEN debe definirse en el entorno") + if allowed_user_id is None or allowed_chat_id is None: + raise RuntimeError("TELEGRAM_ALLOWED_USER_ID y TELEGRAM_ALLOWED_CHAT_ID son obligatorios") + + logger = LokiLogger( + service_name="agente_kanboard", + add_labels={"env": "local", "agent": "telegram"}, + ) + + bot = TelegramKanBot( + token=token, + allowed_user_id=allowed_user_id, + allowed_chat_id=allowed_chat_id, + agent_key=agent_key, + logger=logger, + ) + + try: + await bot.run() + finally: + await bot.close() + + +def main() -> None: + asyncio.run(run_bot()) + + +if __name__ == "__main__": # pragma: no cover - ejecución directa + main() diff --git a/kanboard_mcp.py b/kanboard_mcp.py index c0e3570..827359c 100644 --- a/kanboard_mcp.py +++ b/kanboard_mcp.py @@ -1,6 +1,6 @@ # kanboard_mcp.py """ -Servidor FastMCP para controlar Kanboard desde un LLM. +🚀 Servidor FastMCP para controlar Kanboard desde un LLM. Este módulo expone las funciones del paquete `kanboard_utils` como herramientas del protocolo MCP (Model Context Protocol), @@ -8,9 +8,10 @@ permitiendo a modelos de lenguaje (LLMs) listar, crear, mover y editar tareas en Kanboard de forma segura y programática. Requisitos: - uv add fastmcp requests + uv add fastmcp requests python-dotenv """ +import os from fastmcp import FastMCP from kanboard_utils import ( listar_proyectos, @@ -23,113 +24,107 @@ from kanboard_utils import ( editar_tarea, ) -# Instancia principal del servidor MCP -mcp = FastMCP("Kanboard Controller", instructions=""" -Controlador MCP para Kanboard que permite a un LLM gestionar tareas, -proyectos y usuarios de un tablero Kanboard mediante JSON-RPC. -""") +# ======================== +# ⚙️ Configuración global +# ======================== +# Carga las variables de entorno automáticamente +# (útil si usas un archivo .env con los valores) +from dotenv import load_dotenv +load_dotenv() -# === Herramientas expuestas === +# Lee las credenciales de Kanboard desde variables de entorno +API_URL = os.getenv("KANBOARD_API_URL", "http://localhost:8080/jsonrpc.php") +USER = os.getenv("KANBOARD_USER", "jsonrpc") +TOKEN = os.getenv("KANBOARD_TOKEN", "792d8fdd6cbf69b3a32d800beaf48b958e4490dd9185c72c06c56061a591") + +# ======================== +# 🧠 Inicializa el servidor +# ======================== +mcp = FastMCP( + "Kanboard Controller", + instructions=""" + Controlador MCP para Kanboard que permite a un LLM gestionar tareas, + proyectos y usuarios de un tablero Kanboard mediante JSON-RPC. + """ +) + +# ===================================================== +# 🧩 Herramientas disponibles para el agente LLM +# ===================================================== @mcp.tool -def list_projects(api_url: str, usuario: str, token: str) -> list[dict]: - """ - 📁 Listar todos los proyectos de Kanboard. - - Permite recuperar todos los proyectos accesibles para un usuario. - Ideal para que el modelo entienda qué tableros existen antes de operar. - - Parámetros: - api_url (str): URL del endpoint JSON-RPC, por ejemplo http://localhost:8080/jsonrpc.php - usuario (str): Nombre de usuario con permisos API - token (str): Token de autenticación - - Retorna: - list[dict]: Proyectos con campos como 'id', 'name', 'identifier', etc. - """ - return listar_proyectos(api_url, usuario, token) +def list_projects() -> list[dict]: + """📁 Listar todos los proyectos de Kanboard.""" + return listar_proyectos(API_URL, USER, TOKEN) @mcp.tool -def list_users(api_url: str, usuario: str, token: str) -> list[dict]: - """ - 👥 Listar todos los usuarios disponibles en Kanboard. +def list_users() -> list[dict]: + """👥 Listar todos los usuarios disponibles en Kanboard.""" + return listar_usuarios(API_URL, USER, TOKEN) - Devuelve la lista de usuarios con sus IDs, nombres y nombres de usuario. - """ - return listar_usuarios(api_url, usuario, token) @mcp.tool -def list_tasks(api_url: str, usuario: str, token: str, project_id: int) -> list[dict]: +def list_tasks(project_id: int) -> list[str]: """ - 🗂️ Listar todas las tareas de un proyecto. + 🗂️ Listar todas las tareas de un proyecto (solo nombres). - Permite a un LLM inspeccionar las tareas dentro de un proyecto específico. + Devuelve una lista simple de títulos de tareas, sin metadatos adicionales. + Esto simplifica el contexto para modelos de lenguaje. """ - return listar_tareas(api_url, usuario, token, project_id) + tareas = listar_tareas(API_URL, USER, TOKEN, project_id) + + # 🧹 Extrae solo los títulos (ignorando otros campos) + nombres = [t["title"] for t in tareas if "title" in t] + + # 🔢 Devuelve lista simple de strings + return nombres @mcp.tool -def list_subtasks(api_url: str, usuario: str, token: str, task_id: int) -> list[dict]: - """ - 📋 Listar las subtareas de una tarea específica. - - Útil para analizar el desglose de una tarea compleja. - """ - return listar_subtareas(api_url, usuario, token, task_id) +def list_subtasks(task_id: int) -> list[dict]: + """📋 Listar las subtareas de una tarea específica.""" + return listar_subtareas(API_URL, USER, TOKEN, task_id) @mcp.tool -def list_tasks_by_column(api_url: str, usuario: str, token: str, project_id: int) -> dict: - """ - 🧩 Agrupa las tareas por columna del tablero Kanboard. - - Permite al modelo entender la estructura actual del flujo de trabajo. - """ - return listar_tareas_por_columna(api_url, usuario, token, project_id) +def list_tasks_by_column(project_id: int) -> dict: + """🧩 Agrupar las tareas por columna del tablero Kanboard.""" + return listar_tareas_por_columna(API_URL, USER, TOKEN, project_id) @mcp.tool -def move_task(api_url: str, usuario: str, token: str, project_id: int, - task_id: int, column_id: int, position: int = 1, swimlane_id: int = 0) -> bool: - """ - 🔄 Mover una tarea entre columnas del tablero. - - Permite cambiar el estado de una tarea dentro del flujo de trabajo (por ejemplo, de "To Do" a "En progreso"). - """ - return mover_tarea_columna(api_url, usuario, token, project_id, task_id, column_id, position, swimlane_id) +def move_task(project_id: int, task_id: int, column_id: int, + position: int = 1, swimlane_id: int = 0) -> bool: + """🔄 Mover una tarea entre columnas del tablero.""" + return mover_tarea_columna(API_URL, USER, TOKEN, project_id, task_id, column_id, position, swimlane_id) @mcp.tool -def create_task(api_url: str, usuario: str, token: str, project_id: int, titulo: str, - descripcion: str = "", swimlane_id: int | None = None, assignee_id: int | None = None, +def create_task(project_id: int, titulo: str, descripcion: str = "", + swimlane_id: int | None = None, assignee_id: int | None = None, tags: list[str] | None = None, priority: int | None = None) -> dict: - """ - ➕ Crear una nueva tarea en un proyecto Kanboard. - - Ideal para automatizar la creación de tickets desde prompts naturales. - """ - return crear_tarea(api_url, usuario, token, project_id, titulo, descripcion, + """➕ Crear una nueva tarea en un proyecto Kanboard.""" + return crear_tarea(API_URL, USER, TOKEN, project_id, titulo, descripcion, swimlane_id, assignee_id, tags, priority) @mcp.tool -def edit_task(api_url: str, usuario: str, token: str, task_id: int, - titulo: str | None = None, descripcion: str | None = None, +def edit_task(task_id: int, titulo: str | None = None, descripcion: str | None = None, swimlane_id: int | None = None, assignee_id: int | None = None, tags: list[str] | None = None, priority: int | None = None) -> dict: - """ - ✏️ Editar una tarea existente en Kanboard. - - Actualiza campos específicos sin alterar los demás. - Permite editar título, descripción, prioridad o etiquetas. - """ - return editar_tarea(api_url, usuario, token, task_id, titulo, descripcion, + """✏️ Editar una tarea existente en Kanboard.""" + return editar_tarea(API_URL, USER, TOKEN, task_id, titulo, descripcion, swimlane_id, assignee_id, tags, priority) -# === Punto de entrada del servidor === +# ===================================================== +# 🚀 Punto de entrada principal del servidor FastMCP +# ===================================================== if __name__ == "__main__": + print("✅ Kanboard MCP listo y conectado con:") + print(f" 🌐 API_URL: {API_URL}") + print(f" 👤 Usuario: {USER}") mcp.run() diff --git a/mcp_wrapper.py b/mcp_wrapper.py new file mode 100644 index 0000000..97bd55a --- /dev/null +++ b/mcp_wrapper.py @@ -0,0 +1,358 @@ +"""Helpers to build and manage MCPTools instances from JSON configuration.""" + +from __future__ import annotations + +import json +import shlex +from dataclasses import dataclass, field +from pathlib import Path +from typing import Any, Dict, Iterable, List, Optional, Tuple, Union + +from agno.tools.mcp import MCPTools + + +class MCPConfigError(ValueError): + """Raised when the provided MCP configuration is invalid.""" + + +@dataclass +class MCPServerDefinition: + """Normalized representation of an MCP server entry.""" + + name: str + command: Optional[str] = None + args: List[str] = field(default_factory=list) + transport: str = "stdio" + url: Optional[str] = None + env: Dict[str, str] = field(default_factory=dict) + include_tools: Optional[List[str]] = None + exclude_tools: Optional[List[str]] = None + timeout_seconds: Optional[int] = None + refresh_connection: Optional[bool] = None + enabled: bool = True + + @classmethod + def from_dict(cls, name: str, data: Dict[str, Any]) -> "MCPServerDefinition": + if not isinstance(data, dict): + raise MCPConfigError( + f"Configuration for MCP server '{name}' must be a JSON object." + ) + + command = data.get("command") + args = data.get("args", []) + transport = data.get("transport", "stdio") + + if args is None: + args = [] + if not isinstance(args, list): + raise MCPConfigError( + f"The 'args' field for MCP server '{name}' must be an array of strings." + ) + args = [str(arg) for arg in args] + + env = data.get("env") or {} + if not isinstance(env, dict): + raise MCPConfigError( + f"The 'env' field for MCP server '{name}' must be an object of key/value pairs." + ) + env = {str(key): str(value) for key, value in env.items()} + + include_tools = data.get("include_tools") + if include_tools is not None and not isinstance(include_tools, list): + raise MCPConfigError( + f"The 'include_tools' field for MCP server '{name}' must be an array." + ) + + exclude_tools = data.get("exclude_tools") + if exclude_tools is not None and not isinstance(exclude_tools, list): + raise MCPConfigError( + f"The 'exclude_tools' field for MCP server '{name}' must be an array." + ) + + timeout_seconds = data.get("timeout_seconds") + if timeout_seconds is not None: + timeout_seconds = int(timeout_seconds) + + refresh_connection = data.get("refresh_connection") + if refresh_connection is not None: + refresh_connection = bool(refresh_connection) + + enabled = bool(data.get("enabled", True)) + + return cls( + name=name, + command=command, + args=args, + transport=str(transport or "stdio"), + url=data.get("url"), + env=env, + include_tools=[str(item) for item in include_tools] if include_tools else None, + exclude_tools=[str(item) for item in exclude_tools] if exclude_tools else None, + timeout_seconds=timeout_seconds, + refresh_connection=refresh_connection, + enabled=enabled, + ) + + def to_kwargs(self) -> Dict[str, Any]: + kwargs: Dict[str, Any] = {"transport": self.transport or "stdio"} + + if self.command: + command_parts = [self.command, *self.args] + # MCPTools accepts the entire command as a string; shlex avoids shell injection. + kwargs["command"] = shlex.join([str(part) for part in command_parts if part]) + elif (self.transport or "stdio") == "stdio": + raise MCPConfigError( + f"MCP server '{self.name}' must define a 'command' when using stdio transport." + ) + + if self.url: + kwargs["url"] = self.url + if self.env: + kwargs["env"] = self.env + if self.include_tools is not None: + kwargs["include_tools"] = self.include_tools + if self.exclude_tools is not None: + kwargs["exclude_tools"] = self.exclude_tools + if self.timeout_seconds is not None: + kwargs["timeout_seconds"] = self.timeout_seconds + if self.refresh_connection is not None: + kwargs["refresh_connection"] = self.refresh_connection + + return kwargs + + +class MCPServerManager: + """Utility to load MCP server definitions and instantiate MCPTools.""" + + def __init__( + self, + config_source: Union[str, bytes, Dict[str, Any], Path], + *, + logger=None, + ) -> None: + self.logger = logger + self._raw_config = self._load_config(config_source) + self._servers = self._build_servers(self._raw_config) + + @staticmethod + def _load_config(config_source: Union[str, bytes, Dict[str, Any], Path]) -> Dict[str, Any]: + if isinstance(config_source, Path): + config_source = config_source.read_text(encoding="utf-8") + + if isinstance(config_source, (str, bytes)): + config_text = config_source.decode() if isinstance(config_source, bytes) else config_source + try: + loaded = json.loads(config_text) + except json.JSONDecodeError as exc: + raise MCPConfigError(f"Invalid MCP configuration JSON: {exc}") from exc + return MCPServerManager._validate_root(loaded) + + if isinstance(config_source, dict): + return MCPServerManager._validate_root(config_source) + + raise MCPConfigError("Unsupported MCP configuration source type.") + + @staticmethod + def _validate_root(config: Dict[str, Any]) -> Dict[str, Any]: + if not isinstance(config, dict): + raise MCPConfigError("MCP configuration root must be a JSON object.") + if "mcpServers" not in config: + raise MCPConfigError("MCP configuration must include a 'mcpServers' object.") + if not isinstance(config["mcpServers"], dict): + raise MCPConfigError("The 'mcpServers' field must be a JSON object.") + return config + + @staticmethod + def _build_servers(config: Dict[str, Any]) -> List[MCPServerDefinition]: + servers = [] + for name, data in config.get("mcpServers", {}).items(): + definition = MCPServerDefinition.from_dict(str(name), data) + servers.append(definition) + return servers + + def build_tools( + self, + only_servers: Optional[Iterable[str]] = None, + *, + include_disabled: bool = False, + ) -> Tuple[List[MCPTools], List[str]]: + target = {str(name) for name in only_servers} if only_servers else None + tools: List[MCPTools] = [] + active_servers: List[str] = [] + + for definition in self._servers: + if target and definition.name not in target: + continue + if not definition.enabled and not include_disabled: + if self.logger: + self.logger.info( + "⏭️ Skipping MCP server because it is disabled", + add_fields={ + "mcp_server": definition.name, + "agent_call": { + "action": "load_mcp_server", + "mcp_server": definition.name, + }, + "agent_response": { + "status": "skipped", + "reason": "disabled", + }, + }, + ) + continue + try: + tool = MCPTools(**definition.to_kwargs()) + setattr(tool, "mcp_server_id", definition.name) + setattr(tool, "mcp_server_definition", definition) + tools.append(tool) + active_servers.append(definition.name) + if self.logger: + self.logger.info( + "⚙️ Configured MCP server", + add_fields={ + "mcp_server": definition.name, + "transport": definition.transport, + "has_url": bool(definition.url), + "agent_call": { + "action": "configure_mcp_server", + "mcp_server": definition.name, + }, + "agent_response": { + "status": "configured", + "transport": definition.transport, + "has_url": bool(definition.url), + }, + }, + ) + except Exception as exc: + if self.logger: + self.logger.error( + "🚨 Failed to configure MCP server", + add_fields={ + "mcp_server": definition.name, + "error": str(exc), + "agent_call": { + "action": "configure_mcp_server", + "mcp_server": definition.name, + }, + "agent_response": { + "status": "error", + "error": str(exc), + }, + }, + ) + raise + + return tools, active_servers + + @property + def server_names(self) -> List[str]: + return [definition.name for definition in self._servers] + + +def load_mcp_tools( + config_source: Union[str, bytes, Dict[str, Any], Path], + *, + logger=None, + only_servers: Optional[Iterable[str]] = None, + include_disabled: bool = False, +) -> Tuple[List[MCPTools], List[str]]: + """Convenience helper to build MCPTools instances from a configuration source.""" + + manager = MCPServerManager(config_source, logger=logger) + return manager.build_tools(only_servers=only_servers, include_disabled=include_disabled) + + +async def initialize_mcp_tools( + tools: Iterable[MCPTools], + *, + logger=None, +) -> Dict[str, List[str]]: + """Connect to each MCP server and return the available tool names.""" + + server_tool_map: Dict[str, List[str]] = {} + + for toolkit in tools: + server_id = getattr(toolkit, "mcp_server_id", toolkit.name) + try: + await toolkit.connect() + tool_names = sorted(toolkit.functions.keys()) + server_tool_map[server_id] = tool_names + if logger: + logger.info( + "🔌 MCP server conectado", + add_fields={ + "mcp_server": server_id, + "available_tools": tool_names, + "tool_count": len(tool_names), + "agent_call": { + "action": "connect_mcp_server", + "mcp_server": server_id, + }, + "agent_response": { + "status": "connected", + "available_tools": tool_names, + "tool_count": len(tool_names), + }, + }, + ) + except Exception as exc: + if logger: + logger.error( + "🚨 Error conectando con MCP", + add_fields={ + "mcp_server": server_id, + "error": str(exc), + "agent_call": { + "action": "connect_mcp_server", + "mcp_server": server_id, + }, + "agent_response": { + "status": "error", + "error": str(exc), + }, + }, + ) + raise + + return server_tool_map + + +async def close_mcp_tools(tools: Iterable[MCPTools], *, logger=None) -> None: + """Close MCP connections gracefully.""" + + for toolkit in tools: + server_id = getattr(toolkit, "mcp_server_id", toolkit.name) + try: + await toolkit.close() + if logger: + logger.debug( + "🔻 MCP server desconectado", + add_fields={ + "mcp_server": server_id, + "agent_call": { + "action": "close_mcp_server", + "mcp_server": server_id, + }, + "agent_response": { + "status": "disconnected", + }, + }, + ) + except Exception as exc: + if logger: + logger.warning( + "⚠️ Error cerrando conexión MCP", + add_fields={ + "mcp_server": server_id, + "error": str(exc), + "agent_call": { + "action": "close_mcp_server", + "mcp_server": server_id, + }, + "agent_response": { + "status": "error", + "error": str(exc), + }, + }, + ) diff --git a/memoria/conversaciones.db b/memoria/conversaciones.db new file mode 100644 index 0000000000000000000000000000000000000000..455b21f267c8b1608892204a4c18cc0ee361ea22 GIT binary patch literal 2129920 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 literal 0 HcmV?d00001 diff --git a/pyproject.toml b/pyproject.toml index 27fcb07..880d7d5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,8 +5,11 @@ description = "Add your description here" readme = "README.md" requires-python = ">=3.13" dependencies = [ + "agno>=2.2.8", "fastmcp>=2.12.5", "marimo>=0.17.0", + "openai>=2.7.1", + "sqlalchemy>=2.0.44", ] [tool.marimo.runtime] diff --git a/utils/__init__.py b/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/utils/agno_logging.py b/utils/agno_logging.py new file mode 100644 index 0000000..741a440 --- /dev/null +++ b/utils/agno_logging.py @@ -0,0 +1,89 @@ +import logging +from typing import Any, Dict + +from agno.utils.log import configure_agno_logging + +from LokiLogger import LokiLogger + +_AGNO_LOGGING_CONFIGURED = False + + +class LokiLoggingHandler(logging.Handler): + """Bridge Python logging records to LokiLogger entries.""" + + def __init__(self, loki_logger: LokiLogger) -> None: + super().__init__() + self._loki_logger = loki_logger + + def emit(self, record: logging.LogRecord) -> None: + try: + message = self.format(record) + except Exception: + message = record.getMessage() + + add_fields = _extract_extra_fields(record) + if add_fields: + self._loki_logger.log(record.levelname, message, add_fields=add_fields) + else: + self._loki_logger.log(record.levelname, message) + + +def _extract_extra_fields(record: logging.LogRecord) -> Dict[str, Any]: + """Extract custom fields from the log record while skipping logging internals.""" + + skip_keys = { + "name", + "msg", + "args", + "levelname", + "levelno", + "pathname", + "filename", + "module", + "exc_info", + "exc_text", + "stack_info", + "lineno", + "funcName", + "created", + "msecs", + "relativeCreated", + "thread", + "threadName", + "processName", + "process", + } + extra: Dict[str, Any] = {} + for key, value in record.__dict__.items(): + if key in skip_keys: + continue + extra[key] = value + return extra + + +def configure_agno_to_use_loki(loki_logger: LokiLogger) -> None: + """Configure Agno logging to emit through the provided LokiLogger instance.""" + + global _AGNO_LOGGING_CONFIGURED + if _AGNO_LOGGING_CONFIGURED: + return + + bridge_logger = logging.getLogger("agno.loki_bridge") + bridge_logger.setLevel(logging.INFO) + bridge_logger.propagate = False + + handler = LokiLoggingHandler(loki_logger) + handler.setFormatter(logging.Formatter("%(name)s - %(levelname)s - %(message)s")) + + # Avoid duplicate handlers if this is invoked multiple times + if not any(isinstance(existing, LokiLoggingHandler) for existing in bridge_logger.handlers): + bridge_logger.handlers.clear() + bridge_logger.addHandler(handler) + + configure_agno_logging( + custom_default_logger=bridge_logger, + custom_agent_logger=bridge_logger, + custom_team_logger=bridge_logger, + ) + + _AGNO_LOGGING_CONFIGURED = True diff --git a/uv.lock b/uv.lock index 81905c8..e5c0a1a 100644 --- a/uv.lock +++ b/uv.lock @@ -2,6 +2,30 @@ version = 1 revision = 3 requires-python = ">=3.13" +[[package]] +name = "agno" +version = "2.2.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "docstring-parser" }, + { name = "gitpython" }, + { name = "h11" }, + { name = "httpx" }, + { name = "packaging" }, + { name = "pydantic" }, + { name = "pydantic-settings" }, + { name = "python-dotenv" }, + { name = "python-multipart" }, + { name = "pyyaml" }, + { name = "rich" }, + { name = "typer" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/68/67/c7f0154602ca3cd7ba4956921cf1ad1b194a4897d2e49c8d9fab25924ca4/agno-2.2.8.tar.gz", hash = "sha256:4df7282d5189c3c43b8196564825b1ef877505caa8b7cee1af8d0e56cea8adca", size = 1072301, upload-time = "2025-11-05T09:43:34.674Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/49/34/d450438ff317f9913e2a0b06e715325bc6b5c96442999381cc41bc5bd8f6/agno-2.2.8-py3-none-any.whl", hash = "sha256:17fe5ad416ccb472ae5d5b40c663fd82c0afa7942a453870afcf3ea56eab4b87", size = 1323050, upload-time = "2025-11-05T09:43:31.504Z" }, +] + [[package]] name = "annotated-types" version = "0.7.0" @@ -232,6 +256,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/44/0e/0a22e076944600aeb06f40b7e03bbd762a42d56d43a2f5f4ab954aed9005/cyclopts-4.0.0-py3-none-any.whl", hash = "sha256:e64801a2c86b681f08323fd50110444ee961236a0bae402a66d2cc3feda33da7", size = 178837, upload-time = "2025-10-20T18:33:00.191Z" }, ] +[[package]] +name = "distro" +version = "1.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fc/f8/98eea607f65de6527f8a2e8885fc8015d3e6f5775df186e443e0964a11c3/distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed", size = 60722, upload-time = "2023-12-24T09:54:32.31Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2", size = 20277, upload-time = "2023-12-24T09:54:30.421Z" }, +] + [[package]] name = "dnspython" version = "2.8.0" @@ -303,6 +336,58 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d8/c1/9fb98c9649e15ea8cc691b4b09558b61dafb3dc0345f7322f8c4a8991ade/fastmcp-2.12.5-py3-none-any.whl", hash = "sha256:b1e542f9b83dbae7cecfdc9c73b062f77074785abda9f2306799116121344133", size = 329099, upload-time = "2025-10-17T13:24:57.518Z" }, ] +[[package]] +name = "gitdb" +version = "4.0.12" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "smmap" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/72/94/63b0fc47eb32792c7ba1fe1b694daec9a63620db1e313033d18140c2320a/gitdb-4.0.12.tar.gz", hash = "sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571", size = 394684, upload-time = "2025-01-02T07:20:46.413Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/61/5c78b91c3143ed5c14207f463aecfc8f9dbb5092fb2869baf37c273b2705/gitdb-4.0.12-py3-none-any.whl", hash = "sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf", size = 62794, upload-time = "2025-01-02T07:20:43.624Z" }, +] + +[[package]] +name = "gitpython" +version = "3.1.45" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "gitdb" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9a/c8/dd58967d119baab745caec2f9d853297cec1989ec1d63f677d3880632b88/gitpython-3.1.45.tar.gz", hash = "sha256:85b0ee964ceddf211c41b9f27a49086010a190fd8132a24e21f362a4b36a791c", size = 215076, upload-time = "2025-07-24T03:45:54.871Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/61/d4b89fec821f72385526e1b9d9a3a0385dda4a72b206d28049e2c7cd39b8/gitpython-3.1.45-py3-none-any.whl", hash = "sha256:8908cb2e02fb3b93b7eb0f2827125cb699869470432cc885f019b8fd0fccff77", size = 208168, upload-time = "2025-07-24T03:45:52.517Z" }, +] + +[[package]] +name = "greenlet" +version = "3.2.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/03/b8/704d753a5a45507a7aab61f18db9509302ed3d0a27ac7e0359ec2905b1a6/greenlet-3.2.4.tar.gz", hash = "sha256:0dca0d95ff849f9a364385f36ab49f50065d76964944638be9691e1832e9f86d", size = 188260, upload-time = "2025-08-07T13:24:33.51Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/49/e8/58c7f85958bda41dafea50497cbd59738c5c43dbbea5ee83d651234398f4/greenlet-3.2.4-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:1a921e542453fe531144e91e1feedf12e07351b1cf6c9e8a3325ea600a715a31", size = 272814, upload-time = "2025-08-07T13:15:50.011Z" }, + { url = "https://files.pythonhosted.org/packages/62/dd/b9f59862e9e257a16e4e610480cfffd29e3fae018a68c2332090b53aac3d/greenlet-3.2.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd3c8e693bff0fff6ba55f140bf390fa92c994083f838fece0f63be121334945", size = 641073, upload-time = "2025-08-07T13:42:57.23Z" }, + { url = "https://files.pythonhosted.org/packages/f7/0b/bc13f787394920b23073ca3b6c4a7a21396301ed75a655bcb47196b50e6e/greenlet-3.2.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:710638eb93b1fa52823aa91bf75326f9ecdfd5e0466f00789246a5280f4ba0fc", size = 655191, upload-time = "2025-08-07T13:45:29.752Z" }, + { url = "https://files.pythonhosted.org/packages/f2/d6/6adde57d1345a8d0f14d31e4ab9c23cfe8e2cd39c3baf7674b4b0338d266/greenlet-3.2.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:c5111ccdc9c88f423426df3fd1811bfc40ed66264d35aa373420a34377efc98a", size = 649516, upload-time = "2025-08-07T13:53:16.314Z" }, + { url = "https://files.pythonhosted.org/packages/7f/3b/3a3328a788d4a473889a2d403199932be55b1b0060f4ddd96ee7cdfcad10/greenlet-3.2.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d76383238584e9711e20ebe14db6c88ddcedc1829a9ad31a584389463b5aa504", size = 652169, upload-time = "2025-08-07T13:18:32.861Z" }, + { url = "https://files.pythonhosted.org/packages/ee/43/3cecdc0349359e1a527cbf2e3e28e5f8f06d3343aaf82ca13437a9aa290f/greenlet-3.2.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:23768528f2911bcd7e475210822ffb5254ed10d71f4028387e5a99b4c6699671", size = 610497, upload-time = "2025-08-07T13:18:31.636Z" }, + { url = "https://files.pythonhosted.org/packages/b8/19/06b6cf5d604e2c382a6f31cafafd6f33d5dea706f4db7bdab184bad2b21d/greenlet-3.2.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:00fadb3fedccc447f517ee0d3fd8fe49eae949e1cd0f6a611818f4f6fb7dc83b", size = 1121662, upload-time = "2025-08-07T13:42:41.117Z" }, + { url = "https://files.pythonhosted.org/packages/a2/15/0d5e4e1a66fab130d98168fe984c509249c833c1a3c16806b90f253ce7b9/greenlet-3.2.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:d25c5091190f2dc0eaa3f950252122edbbadbb682aa7b1ef2f8af0f8c0afefae", size = 1149210, upload-time = "2025-08-07T13:18:24.072Z" }, + { url = "https://files.pythonhosted.org/packages/1c/53/f9c440463b3057485b8594d7a638bed53ba531165ef0ca0e6c364b5cc807/greenlet-3.2.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6e343822feb58ac4d0a1211bd9399de2b3a04963ddeec21530fc426cc121f19b", size = 1564759, upload-time = "2025-11-04T12:42:19.395Z" }, + { url = "https://files.pythonhosted.org/packages/47/e4/3bb4240abdd0a8d23f4f88adec746a3099f0d86bfedb623f063b2e3b4df0/greenlet-3.2.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ca7f6f1f2649b89ce02f6f229d7c19f680a6238af656f61e0115b24857917929", size = 1634288, upload-time = "2025-11-04T12:42:21.174Z" }, + { url = "https://files.pythonhosted.org/packages/0b/55/2321e43595e6801e105fcfdee02b34c0f996eb71e6ddffca6b10b7e1d771/greenlet-3.2.4-cp313-cp313-win_amd64.whl", hash = "sha256:554b03b6e73aaabec3745364d6239e9e012d64c68ccd0b8430c64ccc14939a8b", size = 299685, upload-time = "2025-08-07T13:24:38.824Z" }, + { url = "https://files.pythonhosted.org/packages/22/5c/85273fd7cc388285632b0498dbbab97596e04b154933dfe0f3e68156c68c/greenlet-3.2.4-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:49a30d5fda2507ae77be16479bdb62a660fa51b1eb4928b524975b3bde77b3c0", size = 273586, upload-time = "2025-08-07T13:16:08.004Z" }, + { url = "https://files.pythonhosted.org/packages/d1/75/10aeeaa3da9332c2e761e4c50d4c3556c21113ee3f0afa2cf5769946f7a3/greenlet-3.2.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:299fd615cd8fc86267b47597123e3f43ad79c9d8a22bebdce535e53550763e2f", size = 686346, upload-time = "2025-08-07T13:42:59.944Z" }, + { url = "https://files.pythonhosted.org/packages/c0/aa/687d6b12ffb505a4447567d1f3abea23bd20e73a5bed63871178e0831b7a/greenlet-3.2.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:c17b6b34111ea72fc5a4e4beec9711d2226285f0386ea83477cbb97c30a3f3a5", size = 699218, upload-time = "2025-08-07T13:45:30.969Z" }, + { url = "https://files.pythonhosted.org/packages/dc/8b/29aae55436521f1d6f8ff4e12fb676f3400de7fcf27fccd1d4d17fd8fecd/greenlet-3.2.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b4a1870c51720687af7fa3e7cda6d08d801dae660f75a76f3845b642b4da6ee1", size = 694659, upload-time = "2025-08-07T13:53:17.759Z" }, + { url = "https://files.pythonhosted.org/packages/92/2e/ea25914b1ebfde93b6fc4ff46d6864564fba59024e928bdc7de475affc25/greenlet-3.2.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:061dc4cf2c34852b052a8620d40f36324554bc192be474b9e9770e8c042fd735", size = 695355, upload-time = "2025-08-07T13:18:34.517Z" }, + { url = "https://files.pythonhosted.org/packages/72/60/fc56c62046ec17f6b0d3060564562c64c862948c9d4bc8aa807cf5bd74f4/greenlet-3.2.4-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:44358b9bf66c8576a9f57a590d5f5d6e72fa4228b763d0e43fee6d3b06d3a337", size = 657512, upload-time = "2025-08-07T13:18:33.969Z" }, + { url = "https://files.pythonhosted.org/packages/23/6e/74407aed965a4ab6ddd93a7ded3180b730d281c77b765788419484cdfeef/greenlet-3.2.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:2917bdf657f5859fbf3386b12d68ede4cf1f04c90c3a6bc1f013dd68a22e2269", size = 1612508, upload-time = "2025-11-04T12:42:23.427Z" }, + { url = "https://files.pythonhosted.org/packages/0d/da/343cd760ab2f92bac1845ca07ee3faea9fe52bee65f7bcb19f16ad7de08b/greenlet-3.2.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:015d48959d4add5d6c9f6c5210ee3803a830dce46356e3bc326d6776bde54681", size = 1680760, upload-time = "2025-11-04T12:42:25.341Z" }, + { url = "https://files.pythonhosted.org/packages/e3/a5/6ddab2b4c112be95601c13428db1d8b6608a8b6039816f2ba09c346c08fc/greenlet-3.2.4-cp314-cp314-win_amd64.whl", hash = "sha256:e37ab26028f12dbb0ff65f29a8d3d44a765c61e729647bf2ddfbbed621726f01", size = 303425, upload-time = "2025-08-07T13:32:27.59Z" }, +] + [[package]] name = "h11" version = "0.16.0" @@ -388,6 +473,57 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9", size = 1572278, upload-time = "2024-11-11T01:41:40.175Z" }, ] +[[package]] +name = "jiter" +version = "0.11.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a3/68/0357982493a7b20925aece061f7fb7a2678e3b232f8d73a6edb7e5304443/jiter-0.11.1.tar.gz", hash = "sha256:849dcfc76481c0ea0099391235b7ca97d7279e0fa4c86005457ac7c88e8b76dc", size = 168385, upload-time = "2025-10-17T11:31:15.186Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7c/4b/e4dd3c76424fad02a601d570f4f2a8438daea47ba081201a721a903d3f4c/jiter-0.11.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:71b6a920a5550f057d49d0e8bcc60945a8da998019e83f01adf110e226267663", size = 305272, upload-time = "2025-10-17T11:29:39.249Z" }, + { url = "https://files.pythonhosted.org/packages/67/83/2cd3ad5364191130f4de80eacc907f693723beaab11a46c7d155b07a092c/jiter-0.11.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0b3de72e925388453a5171be83379549300db01284f04d2a6f244d1d8de36f94", size = 314038, upload-time = "2025-10-17T11:29:40.563Z" }, + { url = "https://files.pythonhosted.org/packages/d3/3c/8e67d9ba524e97d2f04c8f406f8769a23205026b13b0938d16646d6e2d3e/jiter-0.11.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc19dd65a2bd3d9c044c5b4ebf657ca1e6003a97c0fc10f555aa4f7fb9821c00", size = 345977, upload-time = "2025-10-17T11:29:42.009Z" }, + { url = "https://files.pythonhosted.org/packages/8d/a5/489ce64d992c29bccbffabb13961bbb0435e890d7f2d266d1f3df5e917d2/jiter-0.11.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d58faaa936743cd1464540562f60b7ce4fd927e695e8bc31b3da5b914baa9abd", size = 364503, upload-time = "2025-10-17T11:29:43.459Z" }, + { url = "https://files.pythonhosted.org/packages/d4/c0/e321dd83ee231d05c8fe4b1a12caf1f0e8c7a949bf4724d58397104f10f2/jiter-0.11.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:902640c3103625317291cb73773413b4d71847cdf9383ba65528745ff89f1d14", size = 487092, upload-time = "2025-10-17T11:29:44.835Z" }, + { url = "https://files.pythonhosted.org/packages/f9/5e/8f24ec49c8d37bd37f34ec0112e0b1a3b4b5a7b456c8efff1df5e189ad43/jiter-0.11.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:30405f726e4c2ed487b176c09f8b877a957f535d60c1bf194abb8dadedb5836f", size = 376328, upload-time = "2025-10-17T11:29:46.175Z" }, + { url = "https://files.pythonhosted.org/packages/7f/70/ded107620e809327cf7050727e17ccfa79d6385a771b7fe38fb31318ef00/jiter-0.11.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3217f61728b0baadd2551844870f65219ac4a1285d5e1a4abddff3d51fdabe96", size = 356632, upload-time = "2025-10-17T11:29:47.454Z" }, + { url = "https://files.pythonhosted.org/packages/19/53/c26f7251613f6a9079275ee43c89b8a973a95ff27532c421abc2a87afb04/jiter-0.11.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b1364cc90c03a8196f35f396f84029f12abe925415049204446db86598c8b72c", size = 384358, upload-time = "2025-10-17T11:29:49.377Z" }, + { url = "https://files.pythonhosted.org/packages/84/16/e0f2cc61e9c4d0b62f6c1bd9b9781d878a427656f88293e2a5335fa8ff07/jiter-0.11.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:53a54bf8e873820ab186b2dca9f6c3303f00d65ae5e7b7d6bda1b95aa472d646", size = 517279, upload-time = "2025-10-17T11:29:50.968Z" }, + { url = "https://files.pythonhosted.org/packages/60/5c/4cd095eaee68961bca3081acbe7c89e12ae24a5dae5fd5d2a13e01ed2542/jiter-0.11.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:7e29aca023627b0e0c2392d4248f6414d566ff3974fa08ff2ac8dbb96dfee92a", size = 508276, upload-time = "2025-10-17T11:29:52.619Z" }, + { url = "https://files.pythonhosted.org/packages/4f/25/f459240e69b0e09a7706d96ce203ad615ca36b0fe832308d2b7123abf2d0/jiter-0.11.1-cp313-cp313-win32.whl", hash = "sha256:f153e31d8bca11363751e875c0a70b3d25160ecbaee7b51e457f14498fb39d8b", size = 205593, upload-time = "2025-10-17T11:29:53.938Z" }, + { url = "https://files.pythonhosted.org/packages/7c/16/461bafe22bae79bab74e217a09c907481a46d520c36b7b9fe71ee8c9e983/jiter-0.11.1-cp313-cp313-win_amd64.whl", hash = "sha256:f773f84080b667c69c4ea0403fc67bb08b07e2b7ce1ef335dea5868451e60fed", size = 203518, upload-time = "2025-10-17T11:29:55.216Z" }, + { url = "https://files.pythonhosted.org/packages/7b/72/c45de6e320edb4fa165b7b1a414193b3cae302dd82da2169d315dcc78b44/jiter-0.11.1-cp313-cp313-win_arm64.whl", hash = "sha256:635ecd45c04e4c340d2187bcb1cea204c7cc9d32c1364d251564bf42e0e39c2d", size = 188062, upload-time = "2025-10-17T11:29:56.631Z" }, + { url = "https://files.pythonhosted.org/packages/65/9b/4a57922437ca8753ef823f434c2dec5028b237d84fa320f06a3ba1aec6e8/jiter-0.11.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:d892b184da4d94d94ddb4031296931c74ec8b325513a541ebfd6dfb9ae89904b", size = 313814, upload-time = "2025-10-17T11:29:58.509Z" }, + { url = "https://files.pythonhosted.org/packages/76/50/62a0683dadca25490a4bedc6a88d59de9af2a3406dd5a576009a73a1d392/jiter-0.11.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa22c223a3041dacb2fcd37c70dfd648b44662b4a48e242592f95bda5ab09d58", size = 344987, upload-time = "2025-10-17T11:30:00.208Z" }, + { url = "https://files.pythonhosted.org/packages/da/00/2355dbfcbf6cdeaddfdca18287f0f38ae49446bb6378e4a5971e9356fc8a/jiter-0.11.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:330e8e6a11ad4980cd66a0f4a3e0e2e0f646c911ce047014f984841924729789", size = 356399, upload-time = "2025-10-17T11:30:02.084Z" }, + { url = "https://files.pythonhosted.org/packages/c9/07/c2bd748d578fa933d894a55bff33f983bc27f75fc4e491b354bef7b78012/jiter-0.11.1-cp313-cp313t-win_amd64.whl", hash = "sha256:09e2e386ebf298547ca3a3704b729471f7ec666c2906c5c26c1a915ea24741ec", size = 203289, upload-time = "2025-10-17T11:30:03.656Z" }, + { url = "https://files.pythonhosted.org/packages/e6/ee/ace64a853a1acbd318eb0ca167bad1cf5ee037207504b83a868a5849747b/jiter-0.11.1-cp313-cp313t-win_arm64.whl", hash = "sha256:fe4a431c291157e11cee7c34627990ea75e8d153894365a3bc84b7a959d23ca8", size = 188284, upload-time = "2025-10-17T11:30:05.046Z" }, + { url = "https://files.pythonhosted.org/packages/8d/00/d6006d069e7b076e4c66af90656b63da9481954f290d5eca8c715f4bf125/jiter-0.11.1-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:0fa1f70da7a8a9713ff8e5f75ec3f90c0c870be6d526aa95e7c906f6a1c8c676", size = 304624, upload-time = "2025-10-17T11:30:06.678Z" }, + { url = "https://files.pythonhosted.org/packages/fc/45/4a0e31eb996b9ccfddbae4d3017b46f358a599ccf2e19fbffa5e531bd304/jiter-0.11.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:569ee559e5046a42feb6828c55307cf20fe43308e3ae0d8e9e4f8d8634d99944", size = 315042, upload-time = "2025-10-17T11:30:08.87Z" }, + { url = "https://files.pythonhosted.org/packages/e7/91/22f5746f5159a28c76acdc0778801f3c1181799aab196dbea2d29e064968/jiter-0.11.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f69955fa1d92e81987f092b233f0be49d4c937da107b7f7dcf56306f1d3fcce9", size = 346357, upload-time = "2025-10-17T11:30:10.222Z" }, + { url = "https://files.pythonhosted.org/packages/f5/4f/57620857d4e1dc75c8ff4856c90cb6c135e61bff9b4ebfb5dc86814e82d7/jiter-0.11.1-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:090f4c9d4a825e0fcbd0a2647c9a88a0f366b75654d982d95a9590745ff0c48d", size = 365057, upload-time = "2025-10-17T11:30:11.585Z" }, + { url = "https://files.pythonhosted.org/packages/ce/34/caf7f9cc8ae0a5bb25a5440cc76c7452d264d1b36701b90fdadd28fe08ec/jiter-0.11.1-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbf3d8cedf9e9d825233e0dcac28ff15c47b7c5512fdfe2e25fd5bbb6e6b0cee", size = 487086, upload-time = "2025-10-17T11:30:13.052Z" }, + { url = "https://files.pythonhosted.org/packages/50/17/85b5857c329d533d433fedf98804ebec696004a1f88cabad202b2ddc55cf/jiter-0.11.1-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2aa9b1958f9c30d3d1a558b75f0626733c60eb9b7774a86b34d88060be1e67fe", size = 376083, upload-time = "2025-10-17T11:30:14.416Z" }, + { url = "https://files.pythonhosted.org/packages/85/d3/2d9f973f828226e6faebdef034097a2918077ea776fb4d88489949024787/jiter-0.11.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e42d1ca16590b768c5e7d723055acd2633908baacb3628dd430842e2e035aa90", size = 357825, upload-time = "2025-10-17T11:30:15.765Z" }, + { url = "https://files.pythonhosted.org/packages/f4/55/848d4dabf2c2c236a05468c315c2cb9dc736c5915e65449ccecdba22fb6f/jiter-0.11.1-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5db4c2486a023820b701a17aec9c5a6173c5ba4393f26662f032f2de9c848b0f", size = 383933, upload-time = "2025-10-17T11:30:17.34Z" }, + { url = "https://files.pythonhosted.org/packages/0b/6c/204c95a4fbb0e26dfa7776c8ef4a878d0c0b215868011cc904bf44f707e2/jiter-0.11.1-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:4573b78777ccfac954859a6eff45cbd9d281d80c8af049d0f1a3d9fc323d5c3a", size = 517118, upload-time = "2025-10-17T11:30:18.684Z" }, + { url = "https://files.pythonhosted.org/packages/88/25/09956644ea5a2b1e7a2a0f665cb69a973b28f4621fa61fc0c0f06ff40a31/jiter-0.11.1-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:7593ac6f40831d7961cb67633c39b9fef6689a211d7919e958f45710504f52d3", size = 508194, upload-time = "2025-10-17T11:30:20.719Z" }, + { url = "https://files.pythonhosted.org/packages/09/49/4d1657355d7f5c9e783083a03a3f07d5858efa6916a7d9634d07db1c23bd/jiter-0.11.1-cp314-cp314-win32.whl", hash = "sha256:87202ec6ff9626ff5f9351507def98fcf0df60e9a146308e8ab221432228f4ea", size = 203961, upload-time = "2025-10-17T11:30:22.073Z" }, + { url = "https://files.pythonhosted.org/packages/76/bd/f063bd5cc2712e7ca3cf6beda50894418fc0cfeb3f6ff45a12d87af25996/jiter-0.11.1-cp314-cp314-win_amd64.whl", hash = "sha256:a5dd268f6531a182c89d0dd9a3f8848e86e92dfff4201b77a18e6b98aa59798c", size = 202804, upload-time = "2025-10-17T11:30:23.452Z" }, + { url = "https://files.pythonhosted.org/packages/52/ca/4d84193dfafef1020bf0bedd5e1a8d0e89cb67c54b8519040effc694964b/jiter-0.11.1-cp314-cp314-win_arm64.whl", hash = "sha256:5d761f863f912a44748a21b5c4979c04252588ded8d1d2760976d2e42cd8d991", size = 188001, upload-time = "2025-10-17T11:30:24.915Z" }, + { url = "https://files.pythonhosted.org/packages/d5/fa/3b05e5c9d32efc770a8510eeb0b071c42ae93a5b576fd91cee9af91689a1/jiter-0.11.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2cc5a3965285ddc33e0cab933e96b640bc9ba5940cea27ebbbf6695e72d6511c", size = 312561, upload-time = "2025-10-17T11:30:26.742Z" }, + { url = "https://files.pythonhosted.org/packages/50/d3/335822eb216154ddb79a130cbdce88fdf5c3e2b43dc5dba1fd95c485aaf5/jiter-0.11.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b572b3636a784c2768b2342f36a23078c8d3aa6d8a30745398b1bab58a6f1a8", size = 344551, upload-time = "2025-10-17T11:30:28.252Z" }, + { url = "https://files.pythonhosted.org/packages/31/6d/a0bed13676b1398f9b3ba61f32569f20a3ff270291161100956a577b2dd3/jiter-0.11.1-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ad93e3d67a981f96596d65d2298fe8d1aa649deb5374a2fb6a434410ee11915e", size = 363051, upload-time = "2025-10-17T11:30:30.009Z" }, + { url = "https://files.pythonhosted.org/packages/a4/03/313eda04aa08545a5a04ed5876e52f49ab76a4d98e54578896ca3e16313e/jiter-0.11.1-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a83097ce379e202dcc3fe3fc71a16d523d1ee9192c8e4e854158f96b3efe3f2f", size = 485897, upload-time = "2025-10-17T11:30:31.429Z" }, + { url = "https://files.pythonhosted.org/packages/5f/13/a1011b9d325e40b53b1b96a17c010b8646013417f3902f97a86325b19299/jiter-0.11.1-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7042c51e7fbeca65631eb0c332f90c0c082eab04334e7ccc28a8588e8e2804d9", size = 375224, upload-time = "2025-10-17T11:30:33.18Z" }, + { url = "https://files.pythonhosted.org/packages/92/da/1b45026b19dd39b419e917165ff0ea629dbb95f374a3a13d2df95e40a6ac/jiter-0.11.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a68d679c0e47649a61df591660507608adc2652442de7ec8276538ac46abe08", size = 356606, upload-time = "2025-10-17T11:30:34.572Z" }, + { url = "https://files.pythonhosted.org/packages/7a/0c/9acb0e54d6a8ba59ce923a180ebe824b4e00e80e56cefde86cc8e0a948be/jiter-0.11.1-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a1b0da75dbf4b6ec0b3c9e604d1ee8beaf15bc046fff7180f7d89e3cdbd3bb51", size = 384003, upload-time = "2025-10-17T11:30:35.987Z" }, + { url = "https://files.pythonhosted.org/packages/3f/2b/e5a5fe09d6da2145e4eed651e2ce37f3c0cf8016e48b1d302e21fb1628b7/jiter-0.11.1-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:69dd514bf0fa31c62147d6002e5ca2b3e7ef5894f5ac6f0a19752385f4e89437", size = 516946, upload-time = "2025-10-17T11:30:37.425Z" }, + { url = "https://files.pythonhosted.org/packages/5f/fe/db936e16e0228d48eb81f9934e8327e9fde5185e84f02174fcd22a01be87/jiter-0.11.1-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:bb31ac0b339efa24c0ca606febd8b77ef11c58d09af1b5f2be4c99e907b11111", size = 507614, upload-time = "2025-10-17T11:30:38.977Z" }, + { url = "https://files.pythonhosted.org/packages/86/db/c4438e8febfb303486d13c6b72f5eb71cf851e300a0c1f0b4140018dd31f/jiter-0.11.1-cp314-cp314t-win32.whl", hash = "sha256:b2ce0d6156a1d3ad41da3eec63b17e03e296b78b0e0da660876fccfada86d2f7", size = 204043, upload-time = "2025-10-17T11:30:40.308Z" }, + { url = "https://files.pythonhosted.org/packages/36/59/81badb169212f30f47f817dfaabf965bc9b8204fed906fab58104ee541f9/jiter-0.11.1-cp314-cp314t-win_amd64.whl", hash = "sha256:f4db07d127b54c4a2d43b4cf05ff0193e4f73e0dd90c74037e16df0b29f666e1", size = 204046, upload-time = "2025-10-17T11:30:41.692Z" }, + { url = "https://files.pythonhosted.org/packages/dd/01/43f7b4eb61db3e565574c4c5714685d042fb652f9eef7e5a3de6aafa943a/jiter-0.11.1-cp314-cp314t-win_arm64.whl", hash = "sha256:28e4fdf2d7ebfc935523e50d1efa3970043cfaa161674fe66f9642409d001dfe", size = 188069, upload-time = "2025-10-17T11:30:43.23Z" }, +] + [[package]] name = "jsonschema" version = "4.25.1" @@ -435,14 +571,20 @@ name = "kanboard" version = "0.1.0" source = { virtual = "." } dependencies = [ + { name = "agno" }, { name = "fastmcp" }, { name = "marimo" }, + { name = "openai" }, + { name = "sqlalchemy" }, ] [package.metadata] requires-dist = [ + { name = "agno", specifier = ">=2.2.8" }, { name = "fastmcp", specifier = ">=2.12.5" }, { name = "marimo", specifier = ">=0.17.0" }, + { name = "openai", specifier = ">=2.7.1" }, + { name = "sqlalchemy", specifier = ">=2.0.44" }, ] [[package]] @@ -679,6 +821,25 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/13/34/00c7ae8194074ed82b64e0bb7c24220eac5f77ac90c16e23cf0d2cfd2a03/narwhals-2.9.0-py3-none-any.whl", hash = "sha256:c59f7de4763004ae81691ce16df71b4e55aead0ead7ccde8c8f2ef8c9559c765", size = 422255, upload-time = "2025-10-20T12:19:15.228Z" }, ] +[[package]] +name = "openai" +version = "2.7.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "distro" }, + { name = "httpx" }, + { name = "jiter" }, + { name = "pydantic" }, + { name = "sniffio" }, + { name = "tqdm" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/51/a2/f4023c1e0c868a6a5854955b3374f17153388aed95e835af114a17eac95b/openai-2.7.1.tar.gz", hash = "sha256:df4d4a3622b2df3475ead8eb0fbb3c27fd1c070fa2e55d778ca4f40e0186c726", size = 595933, upload-time = "2025-11-04T06:07:23.069Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8c/74/6bfc3adc81f6c2cea4439f2a734c40e3a420703bbcdc539890096a732bbd/openai-2.7.1-py3-none-any.whl", hash = "sha256:2f2530354d94c59c614645a4662b9dab0a5b881c5cd767a8587398feac0c9021", size = 1008780, upload-time = "2025-11-04T06:07:20.818Z" }, +] + [[package]] name = "openapi-core" version = "0.19.5" @@ -1114,6 +1275,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/32/7d/97119da51cb1dd3f2f3c0805f155a3aa4a95fa44fe7d78ae15e69edf4f34/rpds_py-0.27.1-cp314-cp314t-win_amd64.whl", hash = "sha256:6567d2bb951e21232c2f660c24cf3470bb96de56cdcb3f071a83feeaff8a2772", size = 230097, upload-time = "2025-08-27T12:15:03.961Z" }, ] +[[package]] +name = "shellingham" +version = "1.5.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310, upload-time = "2023-10-24T04:13:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" }, +] + [[package]] name = "six" version = "1.17.0" @@ -1123,6 +1293,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, ] +[[package]] +name = "smmap" +version = "5.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/44/cd/a040c4b3119bbe532e5b0732286f805445375489fceaec1f48306068ee3b/smmap-5.0.2.tar.gz", hash = "sha256:26ea65a03958fa0c8a1c7e8c7a58fdc77221b8910f6be2131affade476898ad5", size = 22329, upload-time = "2025-01-02T07:14:40.909Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/be/d09147ad1ec7934636ad912901c5fd7667e1c858e19d355237db0d0cd5e4/smmap-5.0.2-py3-none-any.whl", hash = "sha256:b30115f0def7d7531d22a0fb6502488d879e75b260a9db4d0819cfb25403af5e", size = 24303, upload-time = "2025-01-02T07:14:38.724Z" }, +] + [[package]] name = "sniffio" version = "1.3.1" @@ -1132,6 +1311,27 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" }, ] +[[package]] +name = "sqlalchemy" +version = "2.0.44" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "greenlet", marker = "platform_machine == 'AMD64' or platform_machine == 'WIN32' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'ppc64le' or platform_machine == 'win32' or platform_machine == 'x86_64'" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f0/f2/840d7b9496825333f532d2e3976b8eadbf52034178aac53630d09fe6e1ef/sqlalchemy-2.0.44.tar.gz", hash = "sha256:0ae7454e1ab1d780aee69fd2aae7d6b8670a581d8847f2d1e0f7ddfbf47e5a22", size = 9819830, upload-time = "2025-10-10T14:39:12.935Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/45/d3/c67077a2249fdb455246e6853166360054c331db4613cda3e31ab1cadbef/sqlalchemy-2.0.44-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ff486e183d151e51b1d694c7aa1695747599bb00b9f5f604092b54b74c64a8e1", size = 2135479, upload-time = "2025-10-10T16:03:37.671Z" }, + { url = "https://files.pythonhosted.org/packages/2b/91/eabd0688330d6fd114f5f12c4f89b0d02929f525e6bf7ff80aa17ca802af/sqlalchemy-2.0.44-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0b1af8392eb27b372ddb783b317dea0f650241cea5bd29199b22235299ca2e45", size = 2123212, upload-time = "2025-10-10T16:03:41.755Z" }, + { url = "https://files.pythonhosted.org/packages/b0/bb/43e246cfe0e81c018076a16036d9b548c4cc649de241fa27d8d9ca6f85ab/sqlalchemy-2.0.44-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2b61188657e3a2b9ac4e8f04d6cf8e51046e28175f79464c67f2fd35bceb0976", size = 3255353, upload-time = "2025-10-10T15:35:31.221Z" }, + { url = "https://files.pythonhosted.org/packages/b9/96/c6105ed9a880abe346b64d3b6ddef269ddfcab04f7f3d90a0bf3c5a88e82/sqlalchemy-2.0.44-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b87e7b91a5d5973dda5f00cd61ef72ad75a1db73a386b62877d4875a8840959c", size = 3260222, upload-time = "2025-10-10T15:43:50.124Z" }, + { url = "https://files.pythonhosted.org/packages/44/16/1857e35a47155b5ad927272fee81ae49d398959cb749edca6eaa399b582f/sqlalchemy-2.0.44-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:15f3326f7f0b2bfe406ee562e17f43f36e16167af99c4c0df61db668de20002d", size = 3189614, upload-time = "2025-10-10T15:35:32.578Z" }, + { url = "https://files.pythonhosted.org/packages/88/ee/4afb39a8ee4fc786e2d716c20ab87b5b1fb33d4ac4129a1aaa574ae8a585/sqlalchemy-2.0.44-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1e77faf6ff919aa8cd63f1c4e561cac1d9a454a191bb864d5dd5e545935e5a40", size = 3226248, upload-time = "2025-10-10T15:43:51.862Z" }, + { url = "https://files.pythonhosted.org/packages/32/d5/0e66097fc64fa266f29a7963296b40a80d6a997b7ac13806183700676f86/sqlalchemy-2.0.44-cp313-cp313-win32.whl", hash = "sha256:ee51625c2d51f8baadf2829fae817ad0b66b140573939dd69284d2ba3553ae73", size = 2101275, upload-time = "2025-10-10T15:03:26.096Z" }, + { url = "https://files.pythonhosted.org/packages/03/51/665617fe4f8c6450f42a6d8d69243f9420f5677395572c2fe9d21b493b7b/sqlalchemy-2.0.44-cp313-cp313-win_amd64.whl", hash = "sha256:c1c80faaee1a6c3428cecf40d16a2365bcf56c424c92c2b6f0f9ad204b899e9e", size = 2127901, upload-time = "2025-10-10T15:03:27.548Z" }, + { url = "https://files.pythonhosted.org/packages/9c/5e/6a29fa884d9fb7ddadf6b69490a9d45fded3b38541713010dad16b77d015/sqlalchemy-2.0.44-py3-none-any.whl", hash = "sha256:19de7ca1246fbef9f9d1bff8f1ab25641569df226364a0e40457dc5457c54b05", size = 1928718, upload-time = "2025-10-10T15:29:45.32Z" }, +] + [[package]] name = "sse-starlette" version = "3.0.2" @@ -1165,6 +1365,33 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/bd/75/8539d011f6be8e29f339c42e633aae3cb73bffa95dd0f9adec09b9c58e85/tomlkit-0.13.3-py3-none-any.whl", hash = "sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0", size = 38901, upload-time = "2025-06-05T07:13:43.546Z" }, ] +[[package]] +name = "tqdm" +version = "4.67.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737, upload-time = "2024-11-24T20:12:22.481Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540, upload-time = "2024-11-24T20:12:19.698Z" }, +] + +[[package]] +name = "typer" +version = "0.20.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "rich" }, + { name = "shellingham" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8f/28/7c85c8032b91dbe79725b6f17d2fffc595dff06a35c7a30a37bef73a1ab4/typer-0.20.0.tar.gz", hash = "sha256:1aaf6494031793e4876fb0bacfa6a912b551cf43c1e63c800df8b1a866720c37", size = 106492, upload-time = "2025-10-20T17:03:49.445Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/64/7713ffe4b5983314e9d436a90d5bd4f63b6054e2aca783a3cfc44cb95bbf/typer-0.20.0-py3-none-any.whl", hash = "sha256:5b463df6793ec1dca6213a3cf4c0f03bc6e322ac5e16e13ddd622a889489784a", size = 47028, upload-time = "2025-10-20T17:03:47.617Z" }, +] + [[package]] name = "typing-extensions" version = "4.15.0"