ignore typecheck in models.py

frdel committed Sep 23, 2025 at 17:40 UTC 9c75aea346cb0bed180ec2ca860883ea5c3674bb
2 files changed +13 -5
models.py
+3 -2
@@ -17,6 +17,7 @@ from typing import (
17 from litellm import completion, acompletion, embedding
18 import litellm
19 import openai
20 +from litellm.types.utils import ModelResponse
21
22 from python.helpers import dotenv
23 from python.helpers import settings, dirty_json
@@ -620,9 +621,9 @@ class BrowserCompatibleChatWrapper(ChatOpenRouter):
621
622 # Gemini: strip triple backticks and conform schema
623 try:
623 - msg = resp.choices[0].message
624 + msg = resp.choices[0].message # type: ignore
625 if self.provider == "gemini" and isinstance(getattr(msg, "content", None), str):
625 - cleaned = browser_use_monkeypatch.gemini_clean_and_conform(msg.content)
626 + cleaned = browser_use_monkeypatch.gemini_clean_and_conform(msg.content) # type: ignore
627 if cleaned:
628 msg.content = cleaned
629 except Exception:
webui/js/api.js
+10 -3
@@ -55,6 +55,7 @@ export async function fetchApi(url, request) {
55 }else if(response.redirected && response.url.endsWith("/login")){
56 // redirect to login
57 window.location.href = response.url;
58 + return;
59 }
60
61 // return the response
@@ -80,8 +81,14 @@ async function getCsrfToken() {
81 if (csrfToken) return csrfToken;
82 const response = await fetch("/csrf_token", {
83 credentials: "same-origin",
83 - }).then((r) => r.json());
84 - csrfToken = response.token;
85 - document.cookie = `csrf_token_${response.runtime_id}=${csrfToken}; SameSite=Strict; Path=/`;
84 + });
85 + if (response.redirected && response.url.endsWith("/login")) {
86 + // redirect to login
87 + window.location.href = response.url;
88 + return;
89 + }
90 + const json = await response.json();
91 + csrfToken = json.token;
92 + document.cookie = `csrf_token_${json.runtime_id}=${csrfToken}; SameSite=Strict; Path=/`;
93 return csrfToken;
94 }