/** * El nodo de Notion como AI toolkit: sus doce operaciones como herramientas * que un AI Node, un servidor MCP o un agente de voz pueden llamar. * * ## Qué pidió Ariel (2026-09-27) * * «Haz el AI Toolkit de Jira y Notion», con el criterio de los anteriores: * como si fuera single operation, con TODOS los campos de cada operación * (`NOTION_OPERATION_SPECS`). Y dos decisiones suyas: * * - «Update page content» (`update_page_content`) nace BLOQUEADA: puede * reemplazar el cuerpo entero de la página, y por API no se deshace. Archivar * no: va a la papelera de Notion, que guarda 30 días, y la misma herramienta * la saca. * - El alcance es lo que VE la integración: Notion ya limita a las páginas * que se le compartieron, y acotar a una base obligaría a mirar el padre de * cada página con una llamada más. La base del nodo va como valor por * defecto de `data_source_id`. * * ## Las propiedades * * Van en el formato crudo de Notion, como en single operation: cada tipo de * propiedad tiene su forma (`{"Status": {"select": {"name": "Done"}}}`), y * `get_data_source_schema` le dice al modelo qué propiedades hay y de qué * tipo es cada una. */ import type { CampoDeToolkit } from './argumentos-de-toolkit.js'; export type NotionToolkitOperation = 'createPage' | 'getPage' | 'getPageMarkdown' | 'updatePageProperties' | 'updatePageMarkdown' | 'archivePage' | 'queryDataSource' | 'getDataSource' | 'appendToPage' | 'getBlockChildren' | 'search' | 'createComment'; export interface NotionToolkitParameter { name: string; type: 'string' | 'number' | 'boolean'; description: string; required: boolean; } export interface NotionToolkitSpec { operation: NotionToolkitOperation; label: string; toolName: string; description: string; parameters: NotionToolkitParameter[]; destructive?: boolean; /** Nace bloqueada en el nodo; el dueño la desbloquea. Ver `toolkits.ts`. */ bloqueadaPorDefecto?: boolean; } /** Los parámetros que el nodo puede traer configurados: el modelo los omite * y se usa la base (data source) del nodo. */ export declare const NOTION_TOOLKIT_DEFAULTABLE: readonly ["data_source_id"]; /** Cuántas filas o resultados vuelven si el modelo no dice otra cosa. */ export declare const NOTION_TOOLKIT_RESULTADOS_POR_DEFECTO = 25; export declare const NOTION_TOOLKIT_SPECS: NotionToolkitSpec[]; export declare const NOTION_TOOLKIT_SPECS_BY_TOOL_NAME: Readonly>; export declare const NOTION_TOOLKIT_CAMPOS: Readonly>>>;