Herramientas de extensiones / TSDocs
Módulo host
Contexto del handler de server.js y servicios del host (ctx.services).
Generado automáticamente de los .d.ts del SDK con npm run docs:tsdocs.
67 símbolos
Handlers de servidor (54)
- ExtensionErrorInterfaz · hostErrores con code que el sandbox conserva (p. ej. MAIL_PERMISSION_DENIED, CALENDAR_PERMISSION_DENIED, AUTH_REQUIRED).
- HandlerEnvTipo · hostVariables autorizadas por ENV_READ:NOMBRE en el manifest (credencial del dominio o fallback controlado del operador).
- HandlerDomainInterfaz · host
- HandlerUserInterfaz · hostUsuario que ejecuta la accion (lo fija el servidor; null si no hay identidad). Requiere el permiso READ_USER para fiarse de el.
- HandlerExtensionInfoInterfaz · host
- HandlerAuthEntryInterfaz · hostToken OAuth inyectado por el host para la cuenta vinculada del usuario (p. ej. ctx.auth.google). [INCIERTO: campos extra segun proveedor]
- AiFeatureTipo · hostFuncion de IA a la que pertenece una llamada. El administrador activa o desactiva cada una en /admin/ai; feature por defecto = primera de ai.features del manifest (o "other").
- AiErrorCodeTipo · hostCodigos de error del servicio de IA (los 8 de la instancia). Llegan como error.code en el Error que lanza services.ai..
- AiErrorCodesConstante · hostLos mismos codigos como valor (se exporta tambien desde index.js; en el sandbox del servidor compara error.code con los literales de texto).
- AiHostErrorCodeTipo · hostOtros codigos que puede llevar error.code en services.ai.: permiso, presupuesto o instancia no disponible.
- AiErrorInterfaz · hostError que lanzan los metodos de services.ai. code es un AiErrorCode (de la instancia) o un AiHostErrorCode (del host).
- AiUsageInterfaz · hostTokens consumidos por una llamada.
- JsonSchemaTypeTipo · hostTipos de un JsonSchema.
- JsonSchemaInterfaz · hostSubconjunto SEGURO de JSON Schema para ai.json. Sin $ref/$defs, pattern, format, allOf/anyOf/oneOf/not. Limites: profundidad 6, 200 nodos, 16 KB serializado, enum de hasta 100 valore
- AiCommonInputInterfaz · hostCampos comunes de las entradas de IA.
- AiGenerateInputInterfaz · hostEntrada de ai.generate.
- AiChatInputInterfaz · hostEntrada de ai.chat.
- AiResultInterfaz · hostResultado de ai.generate / ai.chat.
- AiJsonResultInterfaz · hostResultado de ai.json: data ya cumple el esquema.
- AiStatusInterfaz · hostEstado de la IA para esta extension y usuario (ai.status).
- MailCategoryTipo · host
- MailApplyItemInterfaz · host
- CalendarAttendeeInterfaz · host
- DomainUserInterfaz · hostCuenta del dominio tal como la ve una extension: solo estos cuatro campos (nunca contrasena, hash, tokens ni ajustes).
- UserCreatedContextInterfaz · hostContextos de los eventos de ciclo de vida v2 (capacidad lifecycle.events.v2; declara el intercept en el manifest y el permiso indicado). Todos llevan v: 1 (version del payload) y eventKey (determi
- UserDisabledContextInterfaz · host
- UserEnabledContextInterfaz · host
- EmailSpamDetectedContextInterfaz · host
- LabelAppliedContextInterfaz · host
- OAuthAccountInfoInterfaz · hostCuenta vinculada tal como la ve una extension: NUNCA incluye tokens, secretos ni refresh tokens.
- OAuthErrorInterfaz · hostError del intermediario: code estable (OAUTH_NO_ACCOUNT, OAUTH_SCOPE_MISSING, OAUTH_PERMISSION_DENIED, OAUTH_RATE_LIMITED, OAUTH_NEEDS_RECONNECT, OAUTH_PROVIDER_ERROR, OAUTH_TOO_LARGE, EXTENSION_DEP
- OAuthLibNodeTipo · hostNodo del SDK ctx.libs.<proveedor>: cada RUTA es una ACCION declarada por el proveedor (ctx.libs.microsoft.calendar.events.list(params) == ctx.services.oauth.call("microsoft", "calendar.events.lis
- HandlerLibsInterfaz · hostctx.libs: un nodo por proveedor OAuth cuyo permiso OAUTH_ACCOUNT declara el manifest.
- DiscordUserInterfaz · hostUsuario de Discord filtrado a campos conocidos (nunca tokens ni datos internos).
- DiscordGuildInterfaz · hostServidor (guild). approximateMemberCount solo si Discord lo devuelve.
- DiscordChannelInterfaz · hostCanal o hilo. Los hilos traen threadMetadata.
- DiscordEmbedOutInterfaz · host
- DiscordMessageInterfaz · hostMensaje filtrado: sin menciones crudas ni campos internos.
- DiscordMemberInterfaz · host
- DiscordRoleInterfaz · host
- DiscordWebhookInterfaz · hostWebhook de un canal SIN token (el nucleo lo elimina de toda respuesta).
- DiscordCommandInterfaz · host
- DiscordEmbedInInterfaz · hostEmbed saliente. Limites de Discord validados antes de llamar: <= 10 embeds, titulo 256, descripcion 4096, <= 25 campos, 6000 caracteres en total.
- DiscordMessageInputInterfaz · hostMensaje saliente. content <= 2000 caracteres. NINGUN mensaje avisa a nadie: el nucleo fija allowed_mentions.parse = [] y no se puede cambiar; pedir menciones reales en allowedMentions lanza DISC
- DiscordCommandInputInterfaz · hostComando de aplicacion (slash = 1, usuario = 2, mensaje = 3). Nombre ^[-_a-z0-9]{1,32}$, descripcion 1..100, <= 25 opciones.
- DiscordErrorInterfaz · hostError de la fachada: code estable (DISCORD_INVALID_ID, DISCORD_INVALID_ARGUMENT, DISCORD_CONTENT_TOO_LONG, DISCORD_TOO_MANY_EMBEDS, DISCORD_MENTIONS_NOT_ALLOWED, DISCORD_API_ERROR + discordCode).
- DiscordGuildHandleInterfaz · hostServidor con gestores anidados, estilo guild.channels.list().
- DiscordChannelHandleInterfaz · host
- DiscordFacadeInterfaz · hostctx.libs.discord: fachada estilo discord.js sobre la API REST de Discord con el BOT del dominio (token guardado SOLO por el nucleo). SIN gateway ni websocket (no existe en serverless): consultas y a
- DiscordLibTipo · hostctx.libs.discord: la fachada + el acceso generico a las acciones OAuth de usuario (me, myGuilds, webhook.post).
- DiscordInteractionContextInterfaz · hostEvento que recibe un hook DISCORD_INTERACTION (Interactions por HTTP): vista SANEADA de la interaccion, sin el token de la interaccion. Devuelve { respond: { content?, embeds?, ephemeral? } } (men
- StatsMailDayInterfaz · hostUn dia de la serie de correo (zona horaria UTC).
- HandlerContextInterfaz · hostUnico parametro de un handler. Firma unica: async function handler(ctx); un segundo parametro esta prohibido (tests/contract.test.mjs y _shared/validate.mjs lo comprueban). Lo que fija el SERVIDOR (
- HandlerTipo · hostFirma de un handler: un solo parametro. Devuelve datos JSON serializables (o lanza Error con mensaje claro). El resultado llega a la UI como result en onSuccess de act.callBackend; en hooks EMAI
Servicios del host (13)
- AiServiceInterfaz · hostIA de la instancia (ctx.services.ai). Permiso AI_GENERATE (o bloque ai del manifest); si falta, AI_PERMISSION_DENIED. La politica (activada, funciones, cuotas, guardarrailes, clave del proveedor
- AuthServiceInterfaz · host
- MailServiceInterfaz · hostCorreo del usuario (READ_EMAIL / MAIL_LABEL; 60 llamadas por invocacion).
- CalendarServiceInterfaz · hostCalendario del usuario (CALENDAR_READ / CALENDAR_WRITE).
- ContactsServiceInterfaz · hostContactos del usuario (CONTACTS_READ / CONTACTS_WRITE).
- UsersServiceInterfaz · hostCuentas del dominio (READ_USERS, riesgo alto: lo aprueba el administrador). SOLO LECTURA y solo de ESTA instancia. Paginado por cursor (estable ante altas): repite con nextCursor hasta que sea null
- StorageServiceInterfaz · hostAlmacenamiento propio de la extension por usuario (STORAGE): claves [A-Za-z0-9_.:/-] max 128; valor JSON max 64 KB.
- NotifyServiceInterfaz · hostNotificaciones al usuario (permiso NOTIFY).
- FormatsServiceInterfaz · hostUtilidades puras (FORMATS), salvo renderTemplate/sanitizeHtml que pasan por el frontend.
- OAuthServiceInterfaz · hostIntermediario OAuth del nucleo. La extension pide ACCIONES DECLARADAS por el proveedor (no hay peticiones libres); el nucleo ejecuta la llamada con el token del usuario correcto, aplicando el grupo de
- GoogleLibServiceInterfaz · hostSDK de Google (extension core-googlelib). Cada metodo es una ACCION del intermediario; ninguno expone tokens.
- StatsServiceInterfaz · hostMetricas AGREGADAS del dominio (READ_STATS, riesgo medio). Solo conteos: nunca asuntos, remitentes, direcciones ni contenido. Solo responde si el usuario que ejecuta es administrador (nivel >= 1); par
- HandlerServicesInterfaz · hostServicios del host disponibles en ctx.services (todos opcionales segun el permiso del manifest y si el dominio esta FIRMADO). Los tokens de proveedor no se exponen: usa services.oauth o ctx.libs.