{
  "openapi": "3.0.0",
  "info": {
    "title": "@digipair/skill-chatbot",
    "summary": "Communication with the chatbot",
    "description": "The skill allows managing communication with the chatbot.",
    "version": "0.1.0",
    "x-icon": "🤖"
  },
  "paths": {
    "/answer": {
      "post": {
        "tags": ["boost"],
        "summary": "Chatbot response",
        "parameters": [
          {
            "name": "assistant",
            "summary": "Response",
            "required": true,
            "description": "Assistant's response",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "command",
            "summary": "Commands",
            "required": false,
            "description": "Commands executed on the chatbot",
            "schema": {
              "type": "array",
              "items": {
                "type": "object"
              }
            }
          },
          {
            "name": "boosts",
            "summary": "Proposed boosts",
            "required": false,
            "description": "List of proposed boosts",
            "schema": {
              "type": "array",
              "items": {
                "type": "object"
              }
            }
          },
          {
            "name": "sources",
            "summary": "List of sources",
            "required": false,
            "description": "List of sources used to respond to the user",
            "schema": {
              "type": "array",
              "items": {
                "type": "object"
              }
            }
          },
          {
            "name": "files",
            "summary": "List of files",
            "required": false,
            "description": "List of files used to respond to the user",
            "schema": {
              "type": "array",
              "items": {
                "type": "object"
              }
            }
          },
          {
            "name": "logs",
            "summary": "Logs",
            "required": false,
            "description": "Useful information for debugging reasoning",
            "schema": {
              "type": "object"
            }
          },
          {
            "name": "boost",
            "summary": "Boost",
            "required": false,
            "description": "Boost to execute in response to this message",
            "schema": {
              "type": "object"
            }
          },
          {
            "name": "parent_history",
            "summary": "Parent message",
            "required": false,
            "description": "Parent conversation",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "session",
            "summary": "Session",
            "required": false,
            "description": "Session",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uuid",
            "summary": "Identifier",
            "required": false,
            "description": "Message identifier",
            "schema": {
              "type": "string"
            }
          }
        ],
        "x-events": [],
        "responses": {
          "200": {
            "description": "Chatbot response prepared successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "assistant": {
                      "type": "string",
                      "description": "Assistant's response"
                    },
                    "command": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      },
                      "description": "Prepared commands"
                    },
                    "boosts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      },
                      "description": "Available boosts"
                    },
                    "sources": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      },
                      "description": "Source references"
                    },
                    "logs": {
                      "type": "object",
                      "description": "Debug logs"
                    },
                    "boost": {
                      "type": "object",
                      "nullable": true,
                      "description": "Boost configuration"
                    },
                    "parent_history": {
                      "type": "string",
                      "description": "Parent message ID"
                    },
                    "session": {
                      "type": "string",
                      "description": "Session ID"
                    },
                    "uuid": {
                      "type": "string",
                      "description": "Message UUID"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/execute": {
      "post": {
        "tags": ["boost"],
        "summary": "Execute a step",
        "description": "Execute a step of a boost",
        "parameters": [
          {
            "name": "step",
            "required": true,
            "summary": "Name",
            "description": "Name of the step to execute",
            "schema": {
              "type": "string"
            }
          }
        ],
        "x-events": [],
        "responses": {
          "200": {
            "description": "Step executed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "Result of the executed step"
                }
              }
            }
          }
        }
      }
    },
    "/boost": {
      "post": {
        "summary": "Boost",
        "description": "Boost proposed by Digipair",
        "tags": ["boost", "service"],
        "parameters": [
          {
            "name": "steps",
            "summary": "Execute the following steps",
            "required": true,
            "description": "Execute the defined steps",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Step"
              }
            }
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "Step": {
        "type": "object",
        "tags": ["boost"],
        "summary": "Step",
        "properties": {
          "name": {
            "summary": "Step name",
            "type": "string"
          },
          "execute": {
            "summary": "Actions to execute",
            "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": "Context Parameter",
        "properties": {
          "name": {
            "summary": "Name",
            "type": "string"
          },
          "summary": {
            "summary": "Summary",
            "type": "string"
          },
          "required": {
            "summary": "Required",
            "type": "boolean"
          },
          "schema": {
            "summary": "Schema",
            "type": "object"
          },
          "description": {
            "summary": "Summary",
            "type": "string"
          }
        },
        "required": ["name", "summary", "required", "schema"]
      }
    }
  },
  "x-scene-blocks": {
    "/boost": {
      "summary": "Boost",
      "description": "Boost proposed by Digipair",
      "tags": ["boost", "service"],
      "metadata": [
        {
          "name": "standalone",
          "summary": "Standalone",
          "required": true,
          "description": "Is the boost standalone",
          "schema": {
            "type": "boolean"
          }
        },
        {
          "name": "selector",
          "summary": "Selector",
          "required": false,
          "description": "CSS selector",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "url",
          "summary": "RegEx Url",
          "required": false,
          "description": "RegEx url",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "context",
          "summary": "Context",
          "required": true,
          "description": "Context schema",
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContextParameter"
            }
          }
        }
      ],
      "parameters": [
        {
          "name": "steps",
          "summary": "Execute the following steps",
          "required": true,
          "description": "Execute the defined steps",
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Step"
            }
          }
        }
      ]
    }
  }
}
