swagger: '2.0'
info:
  title: Giganbot - Asistente institucional GORE Tarapacá
  description: >
    API conversacional institucional del Gobierno Regional de Tarapacá
    (backend real: Claude Haiku 4.5 + base de conocimiento propia sobre el
    GORE y sus fondos regionales, ver gcp/giganbot/main.py). Diseñada para
    integrarse como Custom Connector / Action en Microsoft Copilot Studio, o
    para llamarse directamente desde cualquier sitio web (CORS abierto a
    cualquier origen).
  version: '1.0.0'
host: giganbot-653302241725.southamerica-west1.run.app
basePath: /
schemes:
  - https
consumes:
  - application/json
produces:
  - application/json
paths:
  /:
    post:
      summary: Enviar un mensaje al asistente y recibir su respuesta
      description: >
        Recibe el historial de la conversación (incluyendo el mensaje nuevo
        del usuario al final) y devuelve la respuesta generada por el
        asistente. El backend no guarda estado entre llamadas: cada request
        debe reenviar el historial reciente.
      operationId: EnviarMensaje
      parameters:
        - in: body
          name: body
          required: true
          schema:
            $ref: '#/definitions/SolicitudChat'
      responses:
        '200':
          description: Respuesta generada por el asistente
          schema:
            $ref: '#/definitions/RespuestaChat'
        '400':
          description: Solicitud inválida (falta el campo "mensajes" o viene vacío)
definitions:
  Mensaje:
    type: object
    required:
      - rol
      - texto
    properties:
      rol:
        type: string
        enum:
          - user
          - bot
        description: >-
          'user' para el mensaje de la persona; 'bot' para respuestas
          anteriores del asistente dentro del mismo historial.
      texto:
        type: string
        description: Contenido del mensaje, en texto plano.
  SolicitudChat:
    type: object
    required:
      - mensajes
    properties:
      mensajes:
        type: array
        description: >-
          Historial de la conversación en orden cronológico. Se recomienda
          reenviar como máximo los últimos 12 mensajes (usuario + bot).
        items:
          $ref: '#/definitions/Mensaje'
  RespuestaChat:
    type: object
    properties:
      respuesta:
        type: string
        description: >-
          Texto de la respuesta del asistente, en texto plano (sin
          Markdown: sin encabezados, tablas ni negritas con asteriscos —
          solo saltos de línea y guiones para listas).
