{
  "title": "FullState",
  "$ref": "#/definitions/src__continuedev__core__main__FullState",
  "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"
        },
        "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": {}
    },
    "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"
          }
        }
      },
      "required": [
        "step",
        "depth"
      ]
    },
    "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"
      ]
    },
    "SlashCommandDescription": {
      "title": "SlashCommandDescription",
      "type": "object",
      "properties": {
        "name": {
          "title": "Name",
          "type": "string"
        },
        "description": {
          "title": "Description",
          "type": "string"
        }
      },
      "required": [
        "name",
        "description"
      ]
    },
    "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"
      ]
    },
    "src__continuedev__core__main__FullState": {
      "title": "FullState",
      "description": "A full state of the program, including the history",
      "type": "object",
      "properties": {
        "history": {
          "$ref": "#/definitions/History"
        },
        "active": {
          "title": "Active",
          "type": "boolean"
        },
        "user_input_queue": {
          "title": "User Input Queue",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "slash_commands": {
          "title": "Slash Commands",
          "type": "array",
          "items": {
            "$ref": "#/definitions/SlashCommandDescription"
          }
        },
        "adding_highlighted_code": {
          "title": "Adding Highlighted Code",
          "type": "boolean"
        },
        "selected_context_items": {
          "title": "Selected Context Items",
          "type": "array",
          "items": {
            "$ref": "#/definitions/ContextItem"
          }
        }
      },
      "required": [
        "history",
        "active",
        "user_input_queue",
        "slash_commands",
        "adding_highlighted_code",
        "selected_context_items"
      ]
    }
  }
}