{
  "namespace": "tabChatExt",
  "types": [
    {
      "id": "tabChatExt.TabSidePanelMode",
      "type": "string",
      "enum": [
        {
          "name": "floating"
        },
        {
          "name": "docked"
        }
      ]
    },
    {
      "id": "tabChatExt.ResponseBase",
      "type": "object",
      "properties": {
        "error_code": {
          "type": "integer"
        },
        "error_message": {
          "type": "string"
        }
      }
    },
    {
      "id": "tabChatExt.CommandParam",
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "value": {
          "type": "any"
        }
      }
    },
    {
      "id": "tabChatExt.CommandResult",
      "type": "object",
      "properties": {
        "error_code": {
          "type": "integer"
        },
        "error_message": {
          "type": "string"
        },
        "data": {
          "type": "object",
          "optional": true,
          "additionalProperties": {
            "type": "any"
          }
        }
      }
    },
    {
      "id": "tabChatExt.GlicStatusResponse",
      "type": "object",
      "properties": {
        "error_code": {
          "type": "integer"
        },
        "error_message": {
          "type": "string"
        },
        "enabled": {
          "type": "boolean"
        }
      }
    },
    {
      "id": "tabChatExt.ShowGlicSessionForTabOptions",
      "type": "object",
      "properties": {
        "tabId": {
          "type": "integer"
        },
        "sessionId": {
          "type": "string",
          "optional": true
        },
        "openPanel": {
          "type": "boolean",
          "optional": true
        },
        "activateTab": {
          "type": "boolean",
          "optional": true
        },
        "loadWebContents": {
          "type": "boolean",
          "optional": true
        }
      }
    }
  ],
  "functions": [
    {
      "name": "closeTabSidePanel",
      "type": "function",
      "parameters": [
        {
          "name": "message",
          "type": "string"
        }
      ],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "name": "response",
            "$ref": "tabChatExt.ResponseBase"
          }
        ]
      }
    },
    {
      "name": "showTabSidePanel",
      "type": "function",
      "parameters": [
        {
          "name": "message",
          "type": "string"
        }
      ],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "name": "response",
            "$ref": "tabChatExt.ResponseBase"
          }
        ]
      }
    },
    {
      "name": "showGlicSessionForTab",
      "type": "function",
      "parameters": [
        {
          "name": "options",
          "$ref": "tabChatExt.ShowGlicSessionForTabOptions"
        }
      ],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "name": "response",
            "$ref": "tabChatExt.ResponseBase"
          }
        ]
      }
    },
    {
      "name": "getGlicStatus",
      "type": "function",
      "parameters": [],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "name": "response",
            "$ref": "tabChatExt.GlicStatusResponse"
          }
        ]
      }
    },
    {
      "name": "hideTabSidePanel",
      "type": "function",
      "parameters": [
        {
          "name": "message",
          "type": "string"
        }
      ],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "name": "response",
            "$ref": "tabChatExt.ResponseBase"
          }
        ]
      }
    },
    {
      "name": "openTabSkillPopup",
      "type": "function",
      "parameters": [],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "name": "response",
            "$ref": "tabChatExt.ResponseBase"
          }
        ]
      }
    },
    {
      "name": "closeTabSkillPopup",
      "type": "function",
      "parameters": [],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "name": "response",
            "$ref": "tabChatExt.ResponseBase"
          }
        ]
      }
    },
    {
      "name": "openTabOrganizerPanel",
      "type": "function",
      "parameters": [],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "name": "response",
            "$ref": "tabChatExt.ResponseBase"
          }
        ]
      }
    },
    {
      "name": "switchSidebarExpandMode",
      "type": "function",
      "parameters": [
        {
          "name": "mode",
          "$ref": "tabChatExt.TabSidePanelMode"
        }
      ],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "name": "response",
            "$ref": "tabChatExt.ResponseBase"
          }
        ]
      }
    },
    {
      "name": "getSidebarExpandMode",
      "type": "function",
      "parameters": [],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "name": "response",
            "type": "object",
            "properties": {
              "error_code": {
                "type": "integer"
              },
              "error_message": {
                "type": "string"
              },
              "mode": {
                "$ref": "tabChatExt.TabSidePanelMode",
                "optional": true
              }
            }
          }
        ]
      }
    },
    {
      "name": "requestSidePanelFocus",
      "type": "function",
      "parameters": [],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "name": "response",
            "$ref": "tabChatExt.ResponseBase"
          }
        ]
      }
    },
    {
      "name": "returnFocusToMainTab",
      "type": "function",
      "parameters": [],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "name": "response",
            "$ref": "tabChatExt.ResponseBase"
          }
        ]
      }
    },
    {
      "name": "executeCommand",
      "type": "function",
      "parameters": [
        {
          "name": "command",
          "type": "string"
        },
        {
          "name": "params",
          "type": "array",
          "items": {
            "$ref": "tabChatExt.CommandParam"
          }
        }
      ],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "name": "result",
            "$ref": "tabChatExt.CommandResult"
          }
        ]
      }
    },
    {
      "name": "getSelectionContent",
      "type": "function",
      "parameters": [
        {
          "name": "options",
          "type": "object",
          "properties": {
            "tabId": {
              "type": "integer"
            },
            "frameId": {
              "type": "integer",
              "optional": true
            }
          }
        }
      ],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "name": "result",
            "type": "object",
            "properties": {
              "error_code": {
                "type": "integer"
              },
              "error_message": {
                "type": "string",
                "optional": true
              },
              "formattedText": {
                "type": "string",
                "optional": true
              },
              "truncated": {
                "type": "boolean",
                "optional": true
              },
              "originalLength": {
                "type": "number",
                "optional": true
              }
            }
          }
        ]
      }
    },
    {
      "name": "clearSelection",
      "type": "function",
      "parameters": [
        {
          "name": "options",
          "type": "object",
          "properties": {
            "tabId": {
              "type": "integer"
            },
            "frameId": {
              "type": "integer",
              "optional": true
            }
          }
        }
      ],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "name": "result",
            "type": "object",
            "properties": {
              "error_code": {
                "type": "integer"
              },
              "error_message": {
                "type": "string",
                "optional": true
              },
              "cleared": {
                "type": "boolean"
              }
            }
          }
        ]
      }
    },
    {
      "name": "getContextImage",
      "type": "function",
      "parameters": [
        {
          "name": "options",
          "type": "object",
          "properties": {
            "tabId": {
              "type": "integer"
            },
            "srcUrl": {
              "type": "string"
            }
          }
        }
      ],
      "returns_async": {
        "name": "callback",
        "parameters": [
          {
            "name": "result",
            "type": "object",
            "properties": {
              "error_code": {
                "type": "integer"
              },
              "error_message": {
                "type": "string",
                "optional": true
              },
              "imageData": {
                "type": "string",
                "optional": true
              },
              "mimeType": {
                "type": "string",
                "optional": true
              },
              "originalSize": {
                "type": "object",
                "optional": true,
                "properties": {
                  "width": {
                    "type": "integer"
                  },
                  "height": {
                    "type": "integer"
                  }
                }
              }
            }
          }
        ]
      }
    }
  ],
  "events": [
    {
      "name": "onTabSidePanelStateChanged",
      "type": "event",
      "parameters": [
        {
          "name": "state",
          "type": "string"
        },
        {
          "name": "reason",
          "type": "string",
          "optional": true
        },
        {
          "name": "expandMode",
          "$ref": "tabChatExt.TabSidePanelMode",
          "optional": true
        },
        {
          "name": "windowId",
          "type": "integer"
        }
      ]
    },
    {
      "name": "onSaveImageToFavorites",
      "type": "event",
      "parameters": [
        {
          "name": "request",
          "type": "object",
          "properties": {
            "tabId": {
              "type": "integer"
            },
            "sourceUrl": {
              "type": "string"
            },
            "title": {
              "type": "string"
            },
            "mimeType": {
              "type": "string"
            },
            "imageData": {
              "type": "binary"
            }
          }
        }
      ]
    }
  ]
}