{
  "openapi": "3.0.0",
  "info": {
    "title": "@digipair/skill-chatbot",
    "summary": "Communication avec le chatbot",
    "description": "La compétence permet de gérer la communication avec le chatbot.",
    "version": "0.1.0",
    "x-icon": "🤖"
  },
  "paths": {
    "/answer": {
      "post": {
        "tags": ["boost"],
        "summary": "Réponse du chatbot",
        "parameters": [
          {
            "name": "assistant",
            "summary": "Réponse",
            "required": true,
            "description": "Reponse de l'assistant",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "command",
            "summary": "Commandes",
            "required": false,
            "description": "Commandes exécutées sur le chatbot",
            "schema": {
              "type": "array",
              "items": {
                "type": "object"
              }
            }
          },
          {
            "name": "boosts",
            "summary": "Proposition de boosts",
            "required": false,
            "description": "Liste des boosts proposés",
            "schema": {
              "type": "array",
              "items": {
                "type": "object"
              }
            }
          },
          {
            "name": "sources",
            "summary": "Liste des sources",
            "required": false,
            "description": "Liste des sources utilisées pour répondre a l'utilisateur",
            "schema": {
              "type": "array",
              "items": {
                "type": "object"
              }
            }
          },
          {
            "name": "files",
            "summary": "Liste des fichiers",
            "required": false,
            "description": "Liste des fichiers utilisés pour répondre a l'utilisateur",
            "schema": {
              "type": "array",
              "items": {
                "type": "object"
              }
            }
          },
          {
            "name": "logs",
            "summary": "Logs",
            "required": false,
            "description": "Informations utiles pour débogguer le raisonnement",
            "schema": {
              "type": "object"
            }
          },
          {
            "name": "boost",
            "summary": "Boost",
            "required": false,
            "description": "Boost à executer en réponse à ce message",
            "schema": {
              "type": "object"
            }
          },
          {
            "name": "parent_history",
            "summary": "Message parent",
            "required": false,
            "description": "Conversation parent",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "session",
            "summary": "Session",
            "required": false,
            "description": "Session",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uuid",
            "summary": "Identifiant",
            "required": false,
            "description": "Identifiant du message",
            "schema": {
              "type": "string"
            }
          }
        ],
        "x-events": [],
        "responses": {
          "200": {
            "description": "Réponse du chatbot préparée avec succès",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "assistant": {
                      "type": "string",
                      "description": "Réponse de l'assistant"
                    },
                    "command": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      },
                      "description": "Commandes à exécuter"
                    },
                    "boosts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      },
                      "description": "Boosts disponibles"
                    },
                    "sources": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      },
                      "description": "Références des sources"
                    },
                    "logs": {
                      "type": "object",
                      "description": "Journaux de débogage"
                    },
                    "boost": {
                      "type": "object",
                      "nullable": true,
                      "description": "Configuration du boost"
                    },
                    "parent_history": {
                      "type": "string",
                      "description": "ID du message parent"
                    },
                    "session": {
                      "type": "string",
                      "description": "ID de session"
                    },
                    "uuid": {
                      "type": "string",
                      "description": "UUID du message"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/execute": {
      "post": {
        "tags": ["boost"],
        "summary": "Execute une étape",
        "description": "Execute une étape d'un boost",
        "parameters": [
          {
            "name": "step",
            "required": true,
            "summary": "Nom",
            "description": "Nom de l'étape à exécuter",
            "schema": {
              "type": "string"
            }
          }
        ],
        "x-events": [],
        "responses": {
          "200": {
            "description": "Étape exécutée avec succès",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Résultat de l'étape exécutée"
                }
              }
            }
          }
        }
      }
    },
    "/boost": {
      "post": {
        "summary": "Boost",
        "description": "Boost proposé par le Digipair",
        "tags": ["boost", "service"],
        "parameters": [
          {
            "name": "steps",
            "summary": "Exécute les étapes suivantes",
            "required": true,
            "description": "Exécute les étapes définies",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Step"
              }
            }
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "Step": {
        "type": "object",
        "tags": ["boost"],
        "summary": "Etape",
        "properties": {
          "name": {
            "summary": "Nom de l'étape",
            "type": "string"
          },
          "execute": {
            "summary": "Actions à exécuter",
            "type": "array",
            "items": {
              "$ref": "https://schemas.digipair.ai/pinsSettings"
            }
          }
        },
        "required": ["name", "execute"]
      },
      "Boost": {
        "type": "object",
        "tags": ["boost"],
        "summary": "Boost",
        "properties": {
          "prompt": {
            "type": "boolean"
          },
          "required": {
            "type": "boolean"
          },
          "selector": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "step": {
            "type": "string"
          },
          "inputs": {
            "type": "array",
            "items": {
              "$ref": "https://schemas.digipair.ai/pinsSettings"
            }
          }
        },
        "required": []
      },
      "ContextParameter": {
        "type": "object",
        "tags": ["service"],
        "summary": "Parametre de contexte",
        "properties": {
          "name": {
            "summary": "Paramètre",
            "type": "string"
          },
          "summary": {
            "summary": "Nom",
            "type": "string"
          },
          "required": {
            "summary": "Requis",
            "type": "boolean"
          },
          "schema": {
            "summary": "Schema",
            "type": "object"
          },
          "description": {
            "summary": "Description",
            "type": "string"
          }
        },
        "required": ["name", "summary", "required", "schema"]
      }
    }
  },
  "x-scene-blocks": {
    "/boost": {
      "summary": "Boost",
      "description": "Boost proposé par le Digipair",
      "tags": ["boost", "service"],
      "metadata": [
        {
          "name": "standalone",
          "summary": "Autonome",
          "required": true,
          "description": "Boost déclenchable depuis une chatbot full ou une discussion",
          "schema": {
            "type": "boolean"
          }
        },
        {
          "name": "selector",
          "summary": "Sélecteur CSS du déclencheur",
          "required": false,
          "description": "Sélecteur CSS du déclencheur",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "url",
          "summary": "Correspondance URL",
          "required": false,
          "description": "Correspondance URL du déclencheur",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "context",
          "summary": "Contexte",
          "required": true,
          "description": "Schema du contexte",
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContextParameter"
            }
          }
        }
      ],
      "parameters": [
        {
          "name": "steps",
          "summary": "Exécute les étapes suivantes",
          "required": true,
          "description": "Exécute les étapes définies",
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Step"
            }
          }
        }
      ]
    }
  }
}
