/** * El nodo Google Analytics como AI toolkit: sus operaciones como herramientas * que un AI Node, un servidor MCP o un agente de voz pueden llamar. * * ## Qué pidió Ariel (2026-09-26) * * «Tiene que funcionar como si fuera single operation, pero en AI Toolkit — * exponer todos los endpoints»: cada herramienta lleva TODOS los campos de su * operación (`GOOGLE_ANALYTICS_OPERATION_SPECS`), no un subconjunto. Y la * propiedad, «como el canal de Slack»: la del nodo por defecto, pero el * modelo puede pasar otra — para eso está `list_properties`. * * ## Por qué hay dos herramientas que no son operaciones * * `list_properties` y `list_fields` son lo que en la pantalla rellena los * selectores (propiedades de la cuenta, métricas y dimensiones de la * propiedad). Una persona los ve; un modelo no, así que sin ellos adivinaría * nombres —«users» en vez de `activeUsers`— y GA contestaría con un 400. * * ## El esquema * * Sólo `string`, `number` y `boolean` (lo que admite MCP). Las listas van * separadas por comas y el filtro crudo como JSON en un `string`, igual que * en Sheets y en Mongo. Todas leen: ninguna es destructiva. */ import type { CampoDeToolkit } from './argumentos-de-toolkit.js'; export type GoogleAnalyticsToolkitOperation = 'runReport' | 'runRealtimeReport' | 'listProperties' | 'listFields'; export interface GoogleAnalyticsToolkitParameter { name: string; type: 'string' | 'number' | 'boolean'; description: string; required: boolean; } export interface GoogleAnalyticsToolkitSpec { operation: GoogleAnalyticsToolkitOperation; label: string; toolName: string; description: string; parameters: GoogleAnalyticsToolkitParameter[]; destructive?: boolean; } /** Los parámetros que el nodo puede traer configurados: el modelo los omite * y se usa el del nodo (ver el picker del AI Node y el servidor MCP). */ export declare const GOOGLE_ANALYTICS_TOOLKIT_DEFAULTABLE: readonly ["property_id"]; export declare const GOOGLE_ANALYTICS_TOOLKIT_SPECS: GoogleAnalyticsToolkitSpec[]; export declare const GOOGLE_ANALYTICS_TOOLKIT_SPECS_BY_TOOL_NAME: Readonly>; export declare const GOOGLE_ANALYTICS_TOOLKIT_CAMPOS: Readonly>>>; /** Las filas que devuelve un informe cuando el modelo no dice cuántas. */ export declare const GOOGLE_ANALYTICS_TOOLKIT_LIMITE_POR_DEFECTO = 50;