/**
* 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;