<!--
  AUTO-GENERADO por scripts/import-corpus.mjs a partir de manuales/corpus/ — NO EDITAR A MANO.
  Para cambiar este contenido: edita manuales/neutros/*.html, regenera el corpus
  (manuales/build-corpus.mjs) y vuelve a ejecutar "pnpm run import:corpus".
  Fuente: manuales/neutros/57-manual-copiloto-integrador.html#seccion-10
-->

## 10.1 «Te guío» y «lo hacemos juntos»

Si la acción que la persona pide existe en tu manifiesto y está activada, el asistente pregunta si quiere que se lo muestre («te guío»: solo navega y resalta) o que lo hagan juntos («lo hacemos juntos»: además rellena y ofrece pulsar el botón, siempre con confirmación). Si no existe o está apagada, el asistente solo puede guiar con lo que sepa por su base de conocimiento — nunca promete rellenar algo que no está armado.

## 10.2 Confirmación al guardar

Navegar, resaltar y rellenar ocurren a la vista sin preguntar. Toda acción que guarda, envía o borra **siempre** pide confirmación — es el suelo mínimo del producto, y tu web puede endurecerlo (`confirmOnFill: true`, para pedir confirmación también al rellenar) pero nunca relajarlo.

## 10.3 Degradación honesta

| Situación | Qué ve la persona |
| --- | --- |
| SDK ausente o de versión insuficiente | `reason: "sdk_too_old"` en el arranque; el widget sigue funcionando como chat normal, sin copiloto. |
| Manifiesto desactualizado | `manifestStatus: "outdated"`; copiloto apagado hasta aprobar de nuevo. |
| Manifiesto revocado | `manifestStatus: "revoked"`; se apaga al instante en todas las sesiones abiertas. |
| Sin manifiesto registrado todavía | `needManifest: true`; el servidor pide el JSON completo en el siguiente arranque. |
| Copiloto no activado para el canal | El widget se comporta exactamente como antes de instalar el SDK. |
| Canal «fuera de plan» (tras un cambio de plan del tenant) | `reason: "out_of_plan"` en el arranque; el widget muestra un panel de cierre honesto («Asistente no disponible», sin código interno ni datos del plan) en vez del chat, hasta que el tenant lo conserve de nuevo o suba de plan. |

> **Nota — No es un fallo de tu integración**
>
> Si el canal queda «fuera de plan», tu SDK no tiene que hacer nada distinto — el widget gestiona solo el cierre honesto. El detalle de qué es «fuera de plan» y cómo el tenant lo resuelve está en el **Manual 62 · Capacidades y límites del plan**, apartado 6.