• UnoRouterUNOROUTER
Documentación
  • Guía del chat
Primeros pasos
  • Primeros pasos
Personajes y mundo
  • Personajes
  • Personas
  • Lorebooks
  • Tarjetas
Prompting
  • Presets
  • Plantilla de prompt
  • Chats grupales
Scripting
  • Macros (CBS)
  • Scripts regex
  • Disparadores y Lua
  • Complementos
Contexto y medios
  • Memoria y contexto
  • Imágenes
  • Proveedores personalizados
Tus datos
  • Tus datos
  • Copia y restauración
Navegar
  • Modelos
  • Clasificaciones
  • Inspector
  • Precios
  • Chat
  • Estado

Buscar documentación...

Empieza a escribir para buscar documentación

PlataformaIntegracionesChat
Guía del chat

Complementos

Tu propio JavaScript, ejecutándose con seguridad en cada mensaje.

Un complemento es JavaScript que tú escribes y que se ejecuta cada vez que sale o llega un mensaje. Sirve para reescribir texto, llevar tus propios contadores o insertar notas en el prompt.

Los complementos son globales: una vez activados, se ejecutan en todos los chats. Se gestionan en Complementos, dentro del menú del chat, donde puedes pegar código o importar un archivo .js.

Registra un manejador para uno de estos cuatro momentos:

input request output display

El manejador recibe el texto y devuelve el reemplazo. Si no devuelve nada, el texto queda intacto.

text
uno.registerHandler("output", (text) => {
  return text.replace(/\bcolour\b/g, "color");
});

Los manejadores se ejecutan en orden y nunca bloquean una respuesta: si uno falla o tarda más de cinco segundos, se omite y pasa el texto original.

Dentro de un manejador, el objeto uno lee y escribe la conversación. Cada llamada devuelve una promesa.

text
const name = await uno.getName();
const last = await uno.getUserLastMessage();
await uno.setChatVar("mood", "curious");
const mood = await uno.getChatVar("mood");

El conjunto completo abarca mensajes del chat, campos de personaje y persona, variables del chat, entradas del lorebook, expansión de macros, recuento de tokens y una petición https con límite de frecuencia.

Los scripts escritos para JanitorAI funcionan tal cual. Reciben el mismo objeto context, y lo que dejen en character.personality y character.scenario se convierte en el prompt de ese turno.

text
if (context.chat.last_message.toLowerCase().indexOf("storm") !== -1) {
  context.character.scenario += "\nA storm is rolling in.";
}

También se aplican sus reglas: el estado se reinicia en cada turno, así que vuelve a escribir en el escenario todo lo que quieras conservar.

Los complementos se ejecutan en un marco aislado, sin acceso a tus chats, archivos, cookies ni sesión. No pueden leer la página ni hacer sus propias peticiones de red.

Todo lo que alcanza un complemento pasa por la API anterior, así que solo ve lo que recibe un manejador. Aun así, instala solo código de confianza: un complemento puede reescribir lo que envías y lo que lees.

Disparadores y LuaMemoria y contexto

En esta página

Qué son los complementos
Enganches
La API uno
Scripts de JanitorAI
Lo que un complemento no puede hacer