/** * Los parámetros de herramienta que NO decide el modelo sino el disparador: * el chat de Telegram al que se contesta, el callback que se responde, el * canal de Slack o de Discord de donde vino el mensaje. * * ## Para qué sirve la lista (2026-09-27) * * Tiene dos usos, y los dos tienen que leer la MISMA lista: * * - el selector de herramientas del AI Node (dashboard) escribe la * descripción de estos parámetros como `{{payload.}}` al elegir la * herramienta: el AI Node los esconde del esquema que ve el modelo y los * rellena del payload al ejecutar; * - el AI Node (api y hw-nodes) rellena por NOMBRE desde el payload las * herramientas elegidas antes de que un nombre entrara en la lista (su * descripción guardada es texto, no la plantilla), y pisa el valor que * mande el modelo — los modelos flojos se inventan ids (`C1234567890`). * * ## El fallo que cierra * * Ese relleno por nombre no miraba esta lista: se aplicaba a CUALQUIER * parámetro que no fuera de contenido. Medido en producción: un AI Node con * `read_article` al que se le pidió leer una página, con un campo `url` * distinto en su payload, leyó la del payload — «auto-filled url from payload» * — y contestó con el título equivocado. Igual `repo` de GitHub, `feed_url` de * RSS o cualquier nombre que el payload de un webhook trajera por casualidad. * Ahora sólo los de esta lista; el resto de parámetros que el modelo ve son * del modelo. * * Añadir un nombre aquí SÓLO cuando su valor lo da el disparador sin * ambigüedad. `to` de WhatsApp NO está: el payload entrante trae `from`, y * `{{payload.to}}` no resolvería a nada. * * ## Contexto que el modelo puede cambiar * * Estar aquí no siempre es «lo pone el disparador y el modelo no lo toca». * `channel` de Slack y `channelId` de Discord son ELEGIBLES en el AI Node * (`CONTEXTO_ELEGIBLE` de `autorrelleno-de-herramientas.ts`, api y hw-nodes): * el del evento sólo entra si el modelo lo omite. Un bot habla en muchos * canales, y «avisa en #anuncios» es parte de la tarea; el chat de Telegram de * quien escribe, no. */ export declare const PARAMETROS_DE_CONTEXTO: readonly string[]; export declare function esParametroDeContexto(nombre: string | undefined | null): boolean;