{
  "title": "History",
  "$ref": "#/definitions/continuedev__core__main__History",
  "definitions": {
    "FunctionCall": {
      "title": "FunctionCall",
      "type": "object",
      "properties": {
        "name": {
          "title": "Name",
          "type": "string"
        },
        "arguments": {
          "title": "Arguments",
          "type": "string"
        }
      },
      "required": [
        "name",
        "arguments"
      ]
    },
    "ChatMessage": {
      "title": "ChatMessage",
      "type": "object",
      "properties": {
        "role": {
          "title": "Role",
          "enum": [
            "assistant",
            "user",
            "system",
            "function"
          ],
          "type": "string"
        },
        "content": {
          "title": "Content",
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "summary": {
          "title": "Summary",
          "type": "string"
        },
        "function_call": {
          "$ref": "#/definitions/FunctionCall"
        }
      },
      "required": [
        "role",
        "summary"
      ]
    },
    "Step": {
      "title": "Step",
      "type": "object",
      "properties": {
        "name": {
          "title": "Name",
          "type": "string"
        },
        "hide": {
          "title": "Hide",
          "default": false,
          "type": "boolean"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "class_name": {
          "title": "Class Name",
          "default": "Step",
          "type": "string"
        },
        "system_message": {
          "title": "System Message",
          "type": "string"
        },
        "chat_context": {
          "title": "Chat Context",
          "default": [],
          "type": "array",
          "items": {
            "$ref": "#/definitions/ChatMessage"
          }
        },
        "manage_own_chat_context": {
          "title": "Manage Own Chat Context",
          "default": false,
          "type": "boolean"
        }
      }
    },
    "Observation": {
      "title": "Observation",
      "type": "object",
      "properties": {}
    },
    "ContextItemId": {
      "title": "ContextItemId",
      "description": "A ContextItemId is a unique identifier for a ContextItem.",
      "type": "object",
      "properties": {
        "provider_title": {
          "title": "Provider Title",
          "type": "string"
        },
        "item_id": {
          "title": "Item Id",
          "type": "string"
        }
      },
      "required": [
        "provider_title",
        "item_id"
      ]
    },
    "ContextItemDescription": {
      "title": "ContextItemDescription",
      "description": "A ContextItemDescription is a description of a ContextItem that is displayed to the user when they type '@'.\n\nThe id can be used to retrieve the ContextItem from the ContextManager.",
      "type": "object",
      "properties": {
        "name": {
          "title": "Name",
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        },
        "id": {
          "$ref": "#/definitions/ContextItemId"
        }
      },
      "required": [
        "name",
        "description",
        "id"
      ]
    },
    "ContextItem": {
      "title": "ContextItem",
      "description": "A ContextItem is a single item that is stored in the ContextManager.",
      "type": "object",
      "properties": {
        "description": {
          "$ref": "#/definitions/ContextItemDescription"
        },
        "content": {
          "title": "Content",
          "type": "string"
        },
        "editing": {
          "title": "Editing",
          "default": false,
          "type": "boolean"
        },
        "editable": {
          "title": "Editable",
          "default": false,
          "type": "boolean"
        }
      },
      "required": [
        "description",
        "content"
      ]
    },
    "HistoryNode": {
      "title": "HistoryNode",
      "description": "A point in history, a list of which make up History",
      "type": "object",
      "properties": {
        "step": {
          "$ref": "#/definitions/Step"
        },
        "observation": {
          "$ref": "#/definitions/Observation"
        },
        "depth": {
          "title": "Depth",
          "type": "integer"
        },
        "deleted": {
          "title": "Deleted",
          "default": false,
          "type": "boolean"
        },
        "active": {
          "title": "Active",
          "default": true,
          "type": "boolean"
        },
        "logs": {
          "title": "Logs",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "context_used": {
          "title": "Context Used",
          "default": [],
          "type": "array",
          "items": {
            "$ref": "#/definitions/ContextItem"
          }
        }
      },
      "required": [
        "step",
        "depth"
      ]
    },
    "continuedev__core__main__History": {
      "title": "History",
      "description": "A history of steps taken and their results",
      "type": "object",
      "properties": {
        "timeline": {
          "title": "Timeline",
          "type": "array",
          "items": {
            "$ref": "#/definitions/HistoryNode"
          }
        },
        "current_index": {
          "title": "Current Index",
          "type": "integer"
        }
      },
      "required": [
        "timeline",
        "current_index"
      ]
    }
  }
}