/** * El nodo de Todoist como AI toolkit: sus operaciones como herramientas que un * AI Node, un servidor MCP o un agente de voz pueden llamar. * * ## Qué pidió Ariel (2026-10-11) * * Action, Trigger, AI Toolkit y MCP: las mismas operaciones que single * operation (`TODOIST_OPERATION_SPECS`), con todos sus campos. * * ## Lo que nace bloqueado * * Los borrados (`TODOIST_OPERACIONES_SENSIBLES`): Todoist no tiene papelera, y * un agente que decide solo no borra nada hasta que el dueño lo desbloquea, * herramienta a herramienta. * * ## Los ids que el modelo no sabe * * Proyectos, secciones, etiquetas y tareas se nombran por su id. Sus listados * (`list_todoist_projects`, `list_todoist_sections`, `list_todoist_labels`, * `search_todoist_tasks`) están para eso, y las descripciones mandan allí. * * ## La prioridad, como en Todoist * * El modelo la dice como la ve una persona («p1» urgente … «p4» normal); el * servicio la pasa al número de la API (que va al revés: p1 = 4). */ import type { CampoDeToolkit } from './argumentos-de-toolkit.js'; import { type TodoistOperation } from './todoist-operations.js'; export type TodoistToolkitOperation = TodoistOperation; export interface TodoistToolkitParameter { name: string; type: 'string' | 'number' | 'boolean'; description: string; required: boolean; } export interface TodoistToolkitSpec { operation: TodoistToolkitOperation; label: string; toolName: string; description: string; parameters: TodoistToolkitParameter[]; destructive?: boolean; /** Nace bloqueada en el nodo; el dueño la desbloquea. Ver `toolkits.ts`. */ bloqueadaPorDefecto?: boolean; } /** Cuántos devuelve un listado si el modelo no dice otra cosa. */ export declare const TODOIST_TOOLKIT_LIMITE_POR_DEFECTO = 50; /** Lo más que puede pedir el modelo en un listado. */ export declare const TODOIST_TOOLKIT_TOPES: Readonly>; export declare const TODOIST_TOOLKIT_SPECS: TodoistToolkitSpec[]; export declare const TODOIST_TOOLKIT_SPECS_BY_TOOL_NAME: Readonly>; export declare const TODOIST_TOOLKIT_CAMPOS: Readonly>>>;