/** * Gmail operation enum — single source of truth across the API, Dashboard, * and Message Broker. Used by: * - emailAction entity / DTO (api): operation field + validation * - dashboard EmailActionGmailOperation type * - broker hostwebhook types + tool schemas * - trigger / future Gmail-related nodes * * Adding a new Gmail operation = add it here, bump this package's * version, publish to npm, and re-install in the consuming repos. * Each consumer still owns its operation-specific config schema (the * dashboard owns the UI form schema, the api owns the dispatch logic), * but the canonical list of valid operation strings lives here. */ export declare const GMAIL_OPERATIONS: readonly ["send", "sendAndWaitForResponse", "createDraft", "sendDraft", "replyToThread", "getMessage", "listMessages", "deleteMessage", "markRead", "markUnread", "addLabel", "removeLabel", "listLabels", "createLabel", "getThread", "trashThread", "untrashThread"]; export type GmailOperation = (typeof GMAIL_OPERATIONS)[number]; /** Type guard — useful when validating untrusted input (DTOs, tool calls). */ export declare function isGmailOperation(value: unknown): value is GmailOperation; /** * Esquema de formulario, grupos del desplegable y toolkits de Gmail. * * El enum de arriba ya estaba aquí y ya lo importaban la api (DTO + entidad) y * el dashboard. Lo que baja ahora es todo lo demás, que vivía escrito a mano en * cuatro sitios: * * - `OP_SCHEMA` de `OperationFieldsRenderer.tsx` — 17 ops, 53 campos * - `OPERATION_GROUPS` de `OperationSelector.tsx` — 16 ops con etiqueta, * descripción y grupo * - `GMAIL_OPERATION_SPECS` del dashboard y **la misma lista otra vez** en * `api/src/mcp-servers/toolkit-specs.ts` — 16 herramientas cada una * - `NATIVE_EMAIL_OPERATION_SPECS`, igual, por duplicado * * Las dos copias del toolkit estaban idénticas el día de la mudanza (0 * divergencias medidas), lo cual es suerte y no diseño: viven en repos * distintos, así que **ningún test podía compararlas**. Por eso bajan. * * OJO CON EL NOMBRE. En el dashboard `GMAIL_OPERATION_SPECS` eran las specs del * *toolkit*, al revés que en los otros diez nodos. Aquí se respeta la convención * del paquete: `*_OPERATION_SPECS` es el **formulario** y `*_TOOLKIT_SPECS` son * las **herramientas**. */ /** Encabezados del desplegable, en orden de aparición. */ export declare const GMAIL_OPERATION_GROUPS: readonly ["Messages", "Drafts", "Labels", "Threads"]; export type GmailOperationGroup = (typeof GMAIL_OPERATION_GROUPS)[number]; /** * Tipo de control del formulario. Todos tienen precedente en el paquete salvo * `emails`, que es propio de este nodo (el `EmailChipsInput` con * autocompletado), como el `docPicker` de Docs. * * - `string` — `TemplateInput` de una línea * - `htmlTemplate` — cuerpo con el interruptor Plain <-> Advanced (HTML). * Igual que en Docs. * - `emails` — `EmailChipsInput`; se guarda como **array** * - `csvList` — se guarda como array y se edita como texto separado por * comas. El mismo de Contacts; perder el array al guardar * rompe el nodo en ejecución * - `select` — `