Skip to content

Commit 44e8a0a

Browse files
cursoragentnikhil
andcommitted
Add grok-4.7 to GrokComputerUseLlm
Accept the new default model and the grok-4.6 and grok-4.5 aliases that the Grok Computer Use API still maps to grok-4.7. Co-authored-by: nikhil <nikhil@metlo.com>
1 parent a52d6aa commit 44e8a0a

2 files changed

Lines changed: 29 additions & 2 deletions

File tree

‎hyperbrowser/models/consts.py‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,11 @@
115115
"gemini-3-flash-preview",
116116
"gemini-2.5-computer-use-preview-10-2025",
117117
]
118-
GrokComputerUseLlm = Literal["grok-4.5",]
118+
GrokComputerUseLlm = Literal[
119+
"grok-4.7",
120+
"grok-4.6",
121+
"grok-4.5",
122+
]
119123
GrokReasoningEffort = Literal[
120124
"low",
121125
"medium",

‎tests/test_grok_computer_use_models.py‎

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
1-
from hyperbrowser.models.agents.grok_computer_use import GrokComputerUseTaskResponse
1+
import pytest
2+
from pydantic import ValidationError
3+
4+
from hyperbrowser.client._request import dump_request
5+
from hyperbrowser.models.agents.grok_computer_use import (
6+
GrokComputerUseTaskResponse,
7+
StartGrokComputerUseTaskParams,
8+
)
29

310

411
def test_grok_computer_use_task_response_parses_xai_style_step_payload() -> None:
@@ -35,3 +42,19 @@ def test_grok_computer_use_task_response_parses_xai_style_step_payload() -> None
3542
assert step.incomplete_details.reason == "timeout"
3643
assert step.reasoning is not None
3744
assert step.reasoning.effort == "high"
45+
46+
47+
@pytest.mark.parametrize("llm", ["grok-4.7", "grok-4.6", "grok-4.5"])
48+
def test_start_grok_computer_use_accepts_api_models(llm: str) -> None:
49+
model_params = StartGrokComputerUseTaskParams(task="Inspect the page", llm=llm)
50+
dict_params = {"task": "Inspect the page", "llm": llm}
51+
52+
for params in (model_params, dict_params):
53+
dumped = dump_request(params, StartGrokComputerUseTaskParams)
54+
assert dumped["task"] == "Inspect the page"
55+
assert dumped["llm"] == llm
56+
57+
58+
def test_start_grok_computer_use_rejects_unknown_model() -> None:
59+
with pytest.raises(ValidationError):
60+
StartGrokComputerUseTaskParams(task="Inspect the page", llm="grok-4")

0 commit comments

Comments
 (0)