> For the complete documentation index, see [llms.txt](https://docs.cuxial.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cuxial.com/scripts/es/ocio/cuxial-gym/configuration.md).

# Configuración

Todas las opciones de Cuxial Gym explicadas: shared/config.lua, los archivos de datos y lo que se edita en juego.

Cuxial Gym se ajusta en tres sitios: `shared/config.lua` para el comportamiento, los archivos de `data/` para los valores de fábrica y los editores en juego para todo lo que vive en la base de datos. Reinicia el recurso después de cambiar un archivo.

{% hint style="info" %}
Las zonas, los equipos, los puntos, el equilibrio, los suplementos y las reglas de negocio se editan en juego con `/gymcreator` y `/gymadmin`. Lo que guardes ahí queda en la base de datos y sustituye a la sección correspondiente de los archivos de `data/`.
{% endhint %}

## General

| Opción  | Tipo    | Por defecto | Qué hace                                                                                                        |
| ------- | ------- | ----------- | --------------------------------------------------------------------------------------------------------------- |
| `debug` | boolean | `false`     | Muestra trazas y los errores de SQL con detalle. También se activa poniendo la convar `cuxial_gym_debug` a `1`. |

## Módulos · `modules`

Interruptores de partes enteras del script. `true` carga el módulo, `false` lo deja fuera.

| Opción         | Tipo    | Por defecto | Qué hace                                                                                             |
| -------------- | ------- | ----------- | ---------------------------------------------------------------------------------------------------- |
| `business`     | boolean | `true`      | Negocios. Con `false` tampoco cargan la tienda, los puntos de negocio, los ayudantes ni `/gymadmin`. |
| `shop`         | boolean | `true`      | Tienda pública de cada negocio.                                                                      |
| `helper`       | boolean | `true`      | Ayudantes: empleados que ayudan a un jugador que entrena.                                            |
| `creator`      | boolean | `true`      | Creador de zonas y comando `/gymcreator`.                                                            |
| `admin`        | boolean | `true`      | Panel de administración de negocios y comando `/gymadmin`.                                           |
| `globalModels` | boolean | `true`      | Props del mapa que sirven de equipo fuera de cualquier zona.                                         |

## Interfaz · `ui`

| Opción            | Tipo         | Por defecto  | Qué hace                                                                           |
| ----------------- | ------------ | ------------ | ---------------------------------------------------------------------------------- |
| `accent`          | string (hex) | configurable | Color de acento de los paneles.                                                    |
| `currency.symbol` | string       | `'$'`        | Símbolo de moneda junto a los importes.                                            |
| `currency.locale` | string       | `'en-US'`    | Formato numérico de los importes, como código de idioma (`'en-US'`, `'es-ES'`...). |

## Sonidos de la interfaz · `sounds`

Volúmenes de `0.0` a `1.0`.

| Opción    | Tipo   | Por defecto | Qué hace                      |
| --------- | ------ | ----------- | ----------------------------- |
| `master`  | number | `1.0`       | Multiplica a todos los demás. |
| `click`   | number | `0.35`      | Sonido de clic.               |
| `start`   | number | `0.6`       | Sonido de inicio.             |
| `success` | number | `0.7`       | Sonido de acierto.            |
| `fail`    | number | `0.7`       | Sonido de fallo.              |

## Sonidos del ejercicio · `audio`

Sonidos que suenan en el mundo al entrenar. Vienen de `cuxial_gym_assets`.

| Opción           | Tipo    | Por defecto  | Qué hace                                                                                   |
| ---------------- | ------- | ------------ | ------------------------------------------------------------------------------------------ |
| `enabled`        | boolean | `true`       | `false` silencia todos los sonidos del ejercicio.                                          |
| `networked`      | boolean | `false`      | `true` hace que los jugadores cercanos oigan los golpes y las respiraciones del personaje. |
| `volume`         | number  | `1.0`        | Factor de volumen de `0.0` a `1.0`.                                                        |
| `debugCommand`   | string  | `'gymaudio'` | Comando de prueba; solo se registra en modo debug.                                         |
| `breath.every`   | number  | `3`          | El personaje respira una vez cada tantas repeticiones.                                     |
| `breath.delayMs` | number  | `600`        | Milisegundos desde que empieza la repetición hasta que suena la respiración.               |

`banks`, `breath.male`, `breath.female`, `rep` y `loops` contienen los nombres de los sonidos que se entregan con los assets. Déjalos como están.

## Registros · `logs`

| Opción   | Tipo   | Por defecto            | Qué hace                                                                         |
| -------- | ------ | ---------------------- | -------------------------------------------------------------------------------- |
| `convar` | string | `'cuxial_gym_webhook'` | Nombre de la convar que guarda el webhook de Discord. La URL va en `server.cfg`. |

## Staff · `admin` y `commands`

| Opción                  | Tipo            | Por defecto            | Qué hace                                                           |
| ----------------------- | --------------- | ---------------------- | ------------------------------------------------------------------ |
| `admin.ace`             | string          | `'cuxial_gym.admin'`   | Permiso ACE que abre el panel de administración de negocios.       |
| `admin.creatorAce`      | string          | `'cuxial_gym.creator'` | Permiso ACE que abre el creador de zonas.                          |
| `admin.permission`      | string          | `'admin'`              | Permiso del framework que concede los dos.                         |
| `admin.auditDays`       | number          | `60`                   | Días que se conserva la auditoría de staff.                        |
| `commands.admin.name`   | string \| false | `'gymadmin'`           | Comando del panel de administración de negocios. `false` lo quita. |
| `commands.creator.name` | string \| false | `'gymcreator'`         | Comando del creador de zonas. `false` lo quita.                    |

## Teclas · `keys`

Teclas por defecto. Cada jugador puede cambiarlas en los ajustes de teclas de GTA.

| Opción         | Por defecto | Qué hace                                     |
| -------------- | ----------- | -------------------------------------------- |
| `cancel`       | `'X'`       | Deja la serie, o deja de ayudar.             |
| `accept`       | `'Y'`       | Acepta una oferta o una llamada.             |
| `decline`      | `'N'`       | La rechaza.                                  |
| `peek`         | `'RSHIFT'`  | Vuelve al creador después de mirar el mundo. |
| `gizmoConfirm` | `'RETURN'`  | Confirma una colocación.                     |
| `gizmoCancel`  | `'BACK'`    | La cancela.                                  |
| `gizmoGround`  | `'LMENU'`   | Pega el objeto al suelo.                     |
| `gizmoCursor`  | `'G'`       | Activa o desactiva el cursor al colocar.     |

## Cámara de colocación · `gizmo`

Cámara opcional que se usa al colocar un objeto con el gizmo.

| Opción         | Tipo   | Por defecto | Qué hace                                  |
| -------------- | ------ | ----------- | ----------------------------------------- |
| `distance`     | number | `5.0`       | Metros de distancia al objeto.            |
| `height`       | number | `2.0`       | Metros por encima del objeto.             |
| `fov`          | number | `50.0`      | Campo de visión, en grados.               |
| `transitionMs` | number | `500`       | Transición de la cámara, en milisegundos. |

## Items y modelos · `items`, `models`

| Opción              | Tipo      | Por defecto                               | Qué hace                                                                |
| ------------------- | --------- | ----------------------------------------- | ----------------------------------------------------------------------- |
| `items.imageUrl`    | string    | `'nui://ox_inventory/web/images/%s.webp'` | De dónde se leen las imágenes de los items. `%s` es el nombre del item. |
| `models.pointProps` | string\[] | el prop de la pantalla                    | Props que el staff puede elegir para un punto de interacción.           |
| `models.pointPeds`  | string\[] | un ped de ejemplo                         | Modelos de ped que el staff puede elegir para un punto de interacción.  |

## Mundo · `world`, `globalModels`, `pedClear`, `points`

| Opción                       | Tipo      | Por defecto | Qué hace                                                                         |
| ---------------------------- | --------- | ----------- | -------------------------------------------------------------------------------- |
| `world.spawnDistance`        | number    | `150.0`     | Metros a los que aparecen los equipos de una zona.                               |
| `world.despawnDistance`      | number    | `200.0`     | Metros a los que se retiran.                                                     |
| `world.tickMs`               | number    | `1000`      | Milisegundos entre comprobaciones de distancia.                                  |
| `world.removedPropsMs`       | number    | `5000`      | Milisegundos entre pasadas de borrado de los props del mapa que retira una zona. |
| `world.removedPropsDistance` | number    | `100.0`     | Radio de esa pasada, en metros.                                                  |
| `world.blipColors`           | number\[] | 30 colores  | Colores de blip que ofrece el creador.                                           |
| `globalModels.range`         | number    | `75.0`      | Radio, en metros, en el que se buscan props del mapa como equipo.                |
| `globalModels.intervalMs`    | number    | `3000`      | Milisegundos entre búsquedas.                                                    |
| `pedClear.intervalMs`        | number    | `5000`      | Milisegundos entre pasadas de limpieza de peds ambientales en las zonas.         |
| `pedClear.edgeBuffer`        | number    | `5.0`       | Metros extra sobre el radio de cada área de limpieza.                            |
| `points.spawnDistance`       | number    | `75.0`      | Metros a los que existe el prop o ped de un punto.                               |
| `points.maxDistance`         | number    | `5.0`       | Distancia máxima que acepta el servidor para una acción.                         |
| `points.targetDistance`      | number    | `2.0`       | Distancia de interacción de un punto que no trae radio propio.                   |

## Panel del gimnasio · `panel` y `tablet`

| Opción                      | Tipo      | Por defecto            | Qué hace                                                                                                                                                                        |
| --------------------------- | --------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `panel.maxDistance`         | number    | `10.0`                 | Metros máximos a un punto del menú del gimnasio para abrir el panel o comprar un pase.                                                                                          |
| `panel.leaderboardSize`     | number    | `10`                   | Filas de cada clasificación.                                                                                                                                                    |
| `panel.leaderboardSeconds`  | number    | `60`                   | Segundos que se guarda en caché una clasificación.                                                                                                                              |
| `tablet.dui`                | boolean   | `true`                 | `true` dibuja el panel en el prop de la pantalla del mundo. `false` lo abre siempre como interfaz a pantalla completa.                                                          |
| `tablet.range`              | number    | `25.0`                 | Metros a los que la pantalla muestra su imagen de reposo. La imagen de reposo lleva la marca de la clave de locale `UI_TABLET_BRAND`, `GYM` por defecto; edítala en `locales/`. |
| `tablet.prewarmDistance`    | number    | `6.0`                  | Metros a los que la pantalla empieza a cargar el panel.                                                                                                                         |
| `tablet.maxDistance`        | number    | `3.0`                  | Metros máximos para abrir la pantalla y seguir en ella.                                                                                                                         |
| `tablet.cursor.mode`        | string    | `'native'`             | `'native'` proyecta el cursor del juego sobre la pantalla. `'virtual'` dibuja un puntero que se mueve con el ratón.                                                             |
| `tablet.cursor.sensitivity` | number    | `1.0`                  | Velocidad del puntero virtual.                                                                                                                                                  |
| `tablet.wheelStep`          | number    | `120`                  | Unidades de desplazamiento por muesca de la rueda. Un valor negativo lo invierte.                                                                                               |
| `tablet.exitKeys`           | number\[] | Esc, Retroceso y mando | Controles del juego que cierran la pantalla.                                                                                                                                    |

{% hint style="warning" %}
`tablet.model`, `txd`, `texture`, `offset`, `yaw`, `pitch`, `width`, `height`, `idle`, `session` y `camera` corresponden al prop de pantalla que se entrega con los assets. No los cambies.
{% endhint %}

## Minijuegos · `minigame`

| Opción        | Tipo   | Por defecto          | Qué hace                                                                                                           |
| ------------- | ------ | -------------------- | ------------------------------------------------------------------------------------------------------------------ |
| `ui.position` | string | `'bottom-right'`     | Esquina donde se dibuja el minijuego: `'bottom-right'`, `'bottom-left'`, `'top-right'`, `'top-left'` o `'center'`. |
| `ui.scale`    | number | `0.8`                | Tamaño del minijuego. `1` es su tamaño natural.                                                                    |
| `ui.offset`   | table  | `{ x = 24, y = 24 }` | Separación del borde de la pantalla, en píxeles.                                                                   |

## Membresías · `membership`

| Opción                  | Tipo   | Por defecto | Qué hace                                |
| ----------------------- | ------ | ----------- | --------------------------------------- |
| `account`               | string | `'cash'`    | Cuenta de la que se cobran los pases.   |
| `rewardCooldownSeconds` | number | `86400`     | Segundos entre dos recompensas diarias. |
| `maxPackages`           | number | `10`        | Máximo de paquetes por zona.            |

## Ejercicio · `exercise`

| Opción               | Tipo   | Por defecto   | Qué hace                                                                                       |
| -------------------- | ------ | ------------- | ---------------------------------------------------------------------------------------------- |
| `startDistance`      | number | `4.0`         | Metros máximos al equipo para empezar.                                                         |
| `maxDistance`        | number | `6.0`         | Más allá de esta distancia la serie termina.                                                   |
| `minRepMs`           | number | `750`         | Milisegundos mínimos entre dos repeticiones.                                                   |
| `minigameMinMs`      | number | `3000`        | Duración mínima que el servidor acepta para un minijuego.                                      |
| `autoPassMs`         | number | `500`         | Duración mínima de una repetición con autopase.                                                |
| `toleranceMs`        | number | `250`         | Tolerancia de red que se aplica a esos mínimos.                                                |
| `idleTimeoutSeconds` | number | `120`         | Segundos sin repeticiones tras los que el servidor cierra la serie.                            |
| `defaultMaxReps`     | number | `20`          | Número de repeticiones con el que se escala la dificultad cuando el ejercicio no tiene límite. |
| `anchorModel`        | string | `'prop_tick'` | Prop interno que sincroniza el ejercicio. Déjalo como está.                                    |

## Estadísticas, ventajas y suplementos

| Opción                  | Tipo    | Por defecto        | Qué hace                                                                                                                                                             |
| ----------------------- | ------- | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stats.baseMaxHealth`   | number  | `200`              | Vida máxima base del personaje. El bono de fuerza se suma encima.                                                                                                    |
| `stats.xpBonusToStats`  | boolean | `false`            | `true` aplica el bono de XP de suplementos y racha a la XP de fuerza y agilidad. `false` lo aplica solo a la XP de ventajas.                                         |
| `perks.enabled`         | boolean | `false`            | `true` activa el árbol de ventajas: entrenar da puntos de ventaja para gastar en bonos permanentes. Con `false` las ventajas no dan nada y no se pueden desbloquear. |
| `perks.xpPerPoint`      | number  | `500`              | XP necesaria para un punto de ventaja.                                                                                                                               |
| `supplements.useMs`     | number  | `4000`             | Milisegundos que se tarda en tomar un suplemento.                                                                                                                    |
| `supplements.stackSame` | boolean | `true`             | `true` permite que dos tomas del mismo suplemento se acumulen. `false` hace que una toma nueva sustituya a la anterior.                                              |
| `supplements.anim`      | table   | animación de comer | Animación al tomarlo: `dict` y `clip`.                                                                                                                               |

## Ayudantes, tutorial y vistas previas

| Opción               | Tipo      | Por defecto        | Qué hace                                                                                        |
| -------------------- | --------- | ------------------ | ----------------------------------------------------------------------------------------------- |
| `helper.maxDistance` | number    | `3.0`              | Metros máximos entre el ayudante y el jugador que entrena.                                      |
| `helper.animSwapMs`  | number\[] | `{ 10000, 15000 }` | Milisegundos mínimos y máximos entre cambios de animación del ayudante.                         |
| `tutorial.enabled`   | boolean   | `true`             | Valor de fábrica de la visita guiada del panel del gimnasio. El staff puede cambiarlo en juego. |
| `previews.enabled`   | boolean   | `false`            | `true` muestra un vídeo de vista previa de cada ejercicio en el panel.                          |
| `previews.baseUrl`   | string    | `''`               | Dirección base de los vídeos. La dirección final es `baseUrl` + clip + `extension`.             |
| `previews.extension` | string    | `'.mp4'`           | Extensión de los vídeos.                                                                        |
| `previews.clips`     | table     | `{}`               | Nombre de clip por ejercicio.                                                                   |

## Taquillas y vestuario

| Opción               | Tipo   | Por defecto | Qué hace                                                                                                                                                                |
| -------------------- | ------ | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `locker.slots`       | number | `20`        | Huecos de la taquilla personal de cada zona.                                                                                                                            |
| `locker.weight`      | number | `30000`     | Peso máximo, en gramos.                                                                                                                                                 |
| `cloakroom.handlers` | table  | un armario  | Acciones que puede ejecutar un punto de vestuario. Cada entrada tiene un `label` (clave de idioma) y `export = { 'recurso', 'función' }` o `event = 'eventoDeCliente'`. |

Para abrir tu propio menú de ropa desde un punto de vestuario:

{% code title="shared/config.lua" %}

```lua
cloakroom = {
    handlers = {
        wardrobe = { label = 'cloak_wardrobe', event = 'my_clothing:client:openWardrobe' },
    },
},
```

{% endcode %}

## Negocios · `business` y `shop`

| Opción                                | Tipo         | Por defecto | Qué hace                                                                |
| ------------------------------------- | ------------ | ----------- | ----------------------------------------------------------------------- |
| `business.account`                    | string       | `'cash'`    | Cuenta de los depósitos, las retiradas y el pago de bonus.              |
| `business.lowStock`                   | number       | `5`         | Nivel de stock a partir del cual el panel avisa de stock bajo.          |
| `business.offerDistance`              | number       | `10.0`      | Metros máximos para ofrecer un contrato o un traspaso.                  |
| `business.gradeColor`                 | string (hex) | `'#4299e1'` | Color de un rango recién creado.                                        |
| `business.maxHourlyWage`              | number       | `5000`      | Sueldo por hora más alto que puede tener un rango.                      |
| `business.maxGrades`                  | number       | `12`        | Número máximo de rangos.                                                |
| `business.historySize`                | number       | `100`       | Transacciones que se guardan en memoria por negocio.                    |
| `business.historyDays`                | number       | `90`        | Días que se conservan las transacciones en la base de datos.            |
| `business.offerSeconds`               | number       | `60`        | Segundos hasta que caduca una oferta.                                   |
| `business.stash.slots`                | number       | `50`        | Huecos de los alijos del negocio.                                       |
| `business.stash.weight`               | number       | `100000`    | Peso máximo, en gramos.                                                 |
| `business.callWorker.cooldownSeconds` | number       | `600`       | Segundos entre dos llamadas al personal de un negocio.                  |
| `business.callWorker.seconds`         | number       | `15`        | Segundos que tiene el personal para aceptar una llamada.                |
| `business.workers.restockAmount`      | number       | `5`         | Unidades que pide el trabajador de reposición cada vez.                 |
| `business.workers.collectorSeconds`   | number       | `900`       | Segundos entre pasadas del trabajador recolector.                       |
| `business.workers.periodSeconds`      | number       | `86400`     | Duración del periodo por el que se cobran los trabajadores automáticos. |
| `shop.account`                        | string       | `'cash'`    | Cuenta de la que se cobran las compras de la tienda.                    |
| `shop.maxCartLines`                   | number       | `30`        | Líneas máximas de un carrito.                                           |
| `shop.maxAmount`                      | number       | `100`       | Unidades máximas por línea.                                             |

## Límites · `limits`

Topes de lo que el staff puede guardar desde los editores.

| Opción                | Por defecto | Limita                                   |
| --------------------- | ----------- | ---------------------------------------- |
| `equipmentPerZone`    | `300`       | Equipos por zona                         |
| `removedPropsPerZone` | `500`       | Props del mapa retirados por zona        |
| `pointsPerOwner`      | `50`        | Puntos de interacción por zona o negocio |
| `pedClearAreas`       | `10`        | Áreas de limpieza de peds por zona       |
| `presets`             | `50`        | Presets de minijuegos                    |
| `supplements`         | `64`        | Suplementos                              |
| `effects`             | `8`         | Efectos por suplemento                   |
| `warehouseItems`      | `200`       | Items del catálogo de almacén            |
| `achievements`        | `200`       | Logros                                   |

`compat` relaciona los nombres de habilidad que usan recursos antiguos con las dos estadísticas. Mira [Exports y eventos](/scripts/es/ocio/cuxial-gym/developers.md#exports-de-compatibilidad).

## Archivos de datos · `data/`

Valores de fábrica. Casi todos se editan también en juego; cuando una sección se guarda desde un editor, el archivo deja de leerse para esa sección. En el creador, *Restablecer valores* vuelve a los valores del archivo.

| Archivo                                       | Contiene                                                                                                                      | Editable en juego                                         |
| --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- |
| `data/defaults.lua`                           | Límite de fatiga, niveles y bonos de las estadísticas, pérdida diaria, bonos de racha                                         | Creador, Configuración del gimnasio                       |
| `data/bodyparts.lua`                          | Tope de fatiga, recuperación por minuto y pesos de XP de las siete partes del cuerpo                                          | Creador, Configuración del gimnasio                       |
| `data/achievements.lua`                       | Los 45 logros                                                                                                                 | Creador, Configuración del gimnasio                       |
| `data/supplements.lua`                        | Item, duración y efectos de cada suplemento                                                                                   | Creador, Suplementos                                      |
| `data/business.lua`                           | Rangos de inicio, paleta de colores, ajustes de negocio, progresión, catálogo de almacén, trabajadores y categorías de tienda | Administración de negocios, salvo rangos y paleta         |
| `data/perks.lua`                              | El árbol de ventajas                                                                                                          | No                                                        |
| `data/minigames.lua`                          | Ajustes de cada minijuego por nivel de dificultad                                                                             | No                                                        |
| `data/exercises.lua` y `data/exercises/*.lua` | Lista de ejercicios y definición de cada uno                                                                                  | Los valores por repetición, en Configuración del gimnasio |
| `data/helper.lua`                             | Animaciones del ayudante                                                                                                      | No                                                        |
| `data/names.lua`                              | Nombres de proveedor al azar que aparecen en los pedidos de almacén                                                           | No                                                        |
| `data/seed.lua`                               | Zona de ejemplo y presets de minijuegos que se insertan en el primer arranque                                                 | No                                                        |

{% hint style="warning" %}
`data/seed.lua` se lee una sola vez, cuando la tabla de zonas está vacía. Editarlo después no cambia nada. Los archivos de ejercicios definen animaciones y posiciones de props que corresponden a los assets entregados: cambia los números de arriba (`xpPerRep`, `fatiguePerRep`, `maxReps`, `repInterval`) y deja el resto.
{% endhint %}

## Cambios habituales

### Cobrar las membresías y la tienda del banco

{% code title="shared/config.lua" %}

```lua
membership = { account = 'bank', rewardCooldownSeconds = 86400, maxPackages = 10 },
shop = { account = 'bank', maxCartLines = 30, maxAmount = 100 },
```

{% endcode %}

### Gimnasios sin negocios

{% code title="shared/config.lua" %}

```lua
modules = { business = false, shop = false, helper = false, creator = true, admin = false, globalModels = true },
```

{% endcode %}

### Abrir siempre el panel a pantalla completa

Pon `dui = false` dentro del bloque `tablet` y no toques los demás valores.

### Añadir un suplemento

1. Añade el item a tu inventario.
2. Abre `/gymcreator`, entra en **Suplementos**, añade el item y define su duración y sus efectos.

### Cambiar el nombre de los comandos

{% code title="shared/config.lua" %}

```lua
commands = { admin = { name = 'gymbiz' }, creator = { name = 'gymzones' } },
```

{% endcode %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.cuxial.com/scripts/es/ocio/cuxial-gym/configuration.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
