/** * Google Sheets AI Toolkit — las herramientas que un sheetsAction expone * cuando `aiEnabled` está encendido. * * **Se escribe una sola vez.** * * Cuando esto se escribió, las especificaciones de los demás nodos vivían dos * veces —una copia en el dashboard y otra en * `api/src/mcp-servers/toolkit-specs.ts`, las dos a mano y sin nada que las * ate— y de ahí salió que Contacts anunciara 15 herramientas y expusiera una. * * Ya no es así, y este comentario decía lo contrario hasta 2026-08-12: hoy en * el paquete viven **siete** toolkits —Gmail, native email, Calendar, Drive, * Telegram, Sheets y Docs— y los que siguen duplicados a mano son WhatsApp, * Discord, Slack y Contacts. El paquete es el sitio por defecto para uno * nuevo; los cuatro rezagados están pendientes de migrar. * * La forma es la que ya consume `toolkitSpecToMcpTool` en la api, para que * pueda usarse sin adaptador. Los textos van en inglés porque los lee el modelo * y quien mire la lista de herramientas del servidor MCP. */ import type { SheetsOperation } from './sheets-operations.js'; export interface SheetsToolkitParameter { name: string; /** El esquema MCP sólo admite estos tres; lo estructurado viaja como JSON * en un `string`, igual que el `contacts` del toolkit de Contacts. */ type: 'string' | 'number' | 'boolean'; description: string; required: boolean; } export interface SheetsToolkitSpec { operation: SheetsOperation; label: string; toolName: string; description: string; parameters: SheetsToolkitParameter[]; /** Pisa o borra. Lo pone `marcarDestructivas` leyendo el verbo del * nombre (ver `clase-de-herramienta.ts`), no se escribe a mano. */ destructive?: boolean; } export declare const SHEETS_TOOLKIT_SPECS: SheetsToolkitSpec[]; /** Las herramientas por nombre, para despachar una llamada del modelo. */ export declare const SHEETS_TOOLKIT_BY_TOOL_NAME: Record; /** * Los dos parámetros que el nodo puede rellenar por defecto. Se exporta para * que la api y el dashboard no vuelvan a escribir la lista a mano — * `create_spreadsheet` no declara ninguno de los dos y por eso se queda fuera * de la inyección sin necesidad de excepciones. */ export declare const SHEETS_TOOLKIT_DEFAULTABLE: readonly ["spreadsheetId", "sheetName"];