/**
* Telegram AI Toolkit — las herramientas que un telegramAction expone cuando
* `aiEnabled` está encendido.
*
* **Se escribe una sola vez**, como el de Sheets. Antes vivía dos veces: una
* copia en `dashboard/components/telegram-actions/telegram-operations-schemas.ts`
* y otra en `api/src/mcp-servers/toolkit-specs.ts`, las dos a mano, las dos con
* el mismo TODO escrito pidiendo justo esto. Y ya habían derivado: el
* `messageId` de `reply_telegram_message` era `number` en el dashboard y
* `string` en la api, mientras en las otras tres ops que lo llevan era `number`
* en las dos. Aquí es `number` y punto.
*
* Hay una TERCERA copia que también desaparece: la página de detalle pintaba la
* lista de las diez herramientas como diez `
` escritos a mano. Ahora sale de
* aquí, contada con `.length`, que es lo que evita que un día anuncie diez y
* exponga otra cosa.
*
* 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 { TelegramOperation } from './telegram-operations.js';
export interface TelegramToolkitParameter {
name: string;
type: 'string' | 'number' | 'boolean';
description: string;
required: boolean;
}
export interface TelegramToolkitSpec {
operation: TelegramOperation;
/** Etiqueta corta de la fila en la lista de herramientas. */
label: string;
/**
* Nombre con el que el LLM llama a la herramienta. Lleva `_telegram_` para
* no chocar con el `send_email` de Gmail ni el `create_event` de 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: TelegramToolkitParameter[];
/** Pisa o borra. Lo pone `marcarDestructivas` leyendo el verbo del
* nombre (ver `clase-de-herramienta.ts`), no se escribe a mano. */
destructive?: boolean;
/**
* Encabezado de grupo para la lista de la página de detalle. Las filas
* consecutivas que comparten grupo se pintan bajo un único título, así que el
* ORDEN de este array es el que agrupa. Es el mismo que enseñaba el JSX que
* sustituye.
*/
group?: string;
}
export declare const TELEGRAM_TOOLKIT_SPECS: TelegramToolkitSpec[];
/** Las herramientas por nombre, para despachar una llamada del modelo. */
export declare const TELEGRAM_TOOLKIT_BY_TOOL_NAME: Record;