fix(cloud): align planner configuration and records
Tests / Test passed: 856

This commit is contained in:
2026-07-15 09:43:14 +08:00
parent f8054cb58c
commit 778af2da53
20 changed files with 368 additions and 52 deletions
@@ -5,7 +5,10 @@ import json
import httpx
import pytest
from host_agent.cloud_planner_client import CloudProxyToolCallingClient
from host_agent.cloud_planner_client import (
_CLOUD_PROXY_HTTP_TIMEOUT_SECONDS,
CloudProxyToolCallingClient,
)
from host_agent.config import HostAgentConfig
from host_agent.planner_context import PlannerExecutionContext, _context
from runtime.tool_calling_client import ToolCallDecision, ToolCallUnavailable
@@ -79,6 +82,29 @@ def test_decide_base64_encodes_screenshot() -> None:
assert body["screenshot_base64"] == "aGVsbG8="
def test_decide_clamps_legacy_timeout_and_waits_for_cloud_profile_timeout() -> None:
seen_requests: list[httpx.Request] = []
def handler(request: httpx.Request) -> httpx.Response:
seen_requests.append(request)
return httpx.Response(200, json={"tool_name": "tap", "arguments": {}})
client = _client(handler)
client.decide(
system_prompt="sp",
user_prompt="up",
screenshot=None,
tools=_TOOLS,
timeout=180.0,
)
request = seen_requests[0]
body = json.loads(request.content)
assert body["timeout_seconds"] == 120.0
assert request.extensions["timeout"]["read"] == _CLOUD_PROXY_HTTP_TIMEOUT_SECONDS
def test_decide_includes_bound_assignment_context() -> None:
seen_requests: list[httpx.Request] = []