Consola de PruebasPUMA IA · cliente tonto → Function URL (PI-95)
vertical: —
POST
Cliente tonto (PI-94) — arma el envelope, hace POST y renderiza. Sin clasificación ni KB en el browser (ADR 0034: el server es el router).

Vertical (audiencia)

Número (país se infiere en el backend)

País (desde debug.country)
— pendiente de respuesta

Ubicación (Station Lookup)

Opciones (config)

force_intent (clientes). El turno sale con dry_run: false. Sin selector de actor ni de max_rounds.
Último request → respuesta
Enviá un mensaje para ver el envelope y la respuesta.
Contrato HTTP (PI-95)
POST (Function URL)  ·  header x-console-token
body: {
  "vertical": "clientes_finales|dealers|flota",
  "config":   { "dry_run": false, "force_intent"?: "…" },
  "message":  {
    "from": "5491122334455",
    "type": "text" | "location" | "image" | "continuacion",
    "text": "…",
    "latitude": -34.6, "longitude": -58.3
  }
}
→ 200 { "reply": "…", "pending_continuation": false,
        "debug": {
          "country", "message_type", "vertical", "latency_ms",
          "intent", "intent_source", "reason", "scores",
          "session", "retrieval",
          "trace": { retrieval, retrieved, context, match,
                     fuentes, generation, atribucion, trace_version },
          "confidence"?   // sólo si intent_source == "classifier"
        } }
// Dealers multi-round (PI-197): el servidor retiene sesión por message.from;
// no reenviar config.state — la respuesta no incluye state.
Latencia medida en el cliente (round-trip). País null = gap PI-97 (p. ej. Puerto Rico). Debug solo en el browser del operador (A09).