/** * Drive AI Toolkit — las herramientas que un driveAction expone cuando * `aiEnabled` está encendido. * * **Se escribe una sola vez**, como el de Sheets y el de Telegram. Antes vivía * TRES veces, y las tres a mano: * * 1. `dashboard/components/drive-actions/drive-operations-schemas.ts` * 2. `api/src/mcp-servers/toolkit-specs.ts` * 3. la página de detalle, que pintaba las doce herramientas como doce * `
  • ` escritos a mano, con el número `12` también a mano en tres sitios * * La 1 y la 2 no habían derivado todavía (medido el 2026-08-10: cero * diferencias, al contrario que Slack con 13 y WhatsApp con 4). Esto es lo que * hace que sigan sin derivar. * * El ORDEN de este array importa: `AiToolkitPreview` pinta el encabezado de * grupo sólo cuando cambia respecto a la fila anterior, así que las * herramientas del mismo grupo tienen que ir seguidas. Los tres grupos son los * que ya inventaba el JSX que sustituye. */ import type { DriveOperation } from './drive-operations.js'; export interface DriveToolkitParameter { name: string; type: 'string' | 'number' | 'boolean'; description: string; required: boolean; } export interface DriveToolkitSpec { operation: DriveOperation; /** Etiqueta corta de la fila en la lista de herramientas. */ label: string; /** * Nombre con el que el LLM llama a la herramienta. Todas llevan `_drive_` o * `_to_drive` para no chocar con las de Gmail, Sheets o Calendar cuando un * mismo AI Node tiene varios toolkits encendidos. */ toolName: string; /** Descripción (más reglas de uso) que ve el LLM. */ description: string; parameters: DriveToolkitParameter[]; /** Encabezado de grupo de la página de detalle. El orden es el que agrupa. */ group?: string; /** * Pisa o borra. Lo pone `marcarDestructivas` leyendo el verbo del nombre * (ver `clase-de-herramienta.ts`), no se escribe a mano. * * ⚠️ Hasta el 2026-09-24 aquí se decía que `move` no lo llevaba —«deshacerlo * es otro move»—, mientras la tabla de anotaciones MCP de la api decía lo * contrario: sacar el fichero de su carpeta es quitarlo de donde estaba. Eran * dos criterios para lo mismo; se queda el de la tabla, que es el único que * estaba escrito como regla. `share_drive_file` sigue marcada, ahora como * excepción explícita: compartir expone, y eso no se deshace. */ destructive?: boolean; } export declare const DRIVE_TOOLKIT_SPECS: DriveToolkitSpec[]; /** Índice por nombre de herramienta, para enrutar un `tools/call` sin recorrer. */ export declare const DRIVE_TOOLKIT_BY_TOOL_NAME: Record;