Files
hkuds--nanobot/tests/agent/runner_helpers.py
T
wehub-resource-sync ba1d0b91a4
Test Suite / webui (push) Failing after 1s
Test Suite / test (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:06:36 +08:00

55 lines
2.1 KiB
Python

"""Compatibility helpers while runner tests migrate to immutable runtimes."""
from __future__ import annotations
from typing import Any
from nanobot.agent.runner import AgentRunSpec
from nanobot.config.schema import AgentDefaults
from nanobot.providers.base import GenerationSettings, LLMProvider
from nanobot.utils.llm_runtime import LLMRuntime
def make_run_spec(provider: LLMProvider, **kwargs: Any) -> AgentRunSpec:
"""Build a run spec from the pre-runtime test arguments.
Keeping this translation in test support makes production's execution
contract strict while avoiding irrelevant setup noise in runner behavior
tests. New tests should pass ``runtime`` to ``AgentRunSpec`` directly when
runtime identity is itself under test.
"""
model = kwargs.pop("model")
context_window_tokens = kwargs.pop(
"context_window_tokens",
AgentDefaults().context_window_tokens,
)
provider_generation = getattr(provider, "generation", None)
defaults = GenerationSettings()
temperature = kwargs.pop("temperature", None)
if temperature is None:
candidate = getattr(provider_generation, "temperature", None)
temperature = candidate if isinstance(candidate, (int, float)) else defaults.temperature
max_tokens = kwargs.pop("max_tokens", None)
if max_tokens is None:
candidate = getattr(provider_generation, "max_tokens", None)
max_tokens = candidate if isinstance(candidate, int) else defaults.max_tokens
reasoning_effort = kwargs.pop("reasoning_effort", None)
if reasoning_effort is None:
candidate = getattr(provider_generation, "reasoning_effort", None)
reasoning_effort = candidate if isinstance(candidate, str) else None
runtime = LLMRuntime(
provider=provider,
model=model,
generation=GenerationSettings(
temperature=temperature,
max_tokens=max_tokens,
reasoning_effort=reasoning_effort,
),
context_window_tokens=context_window_tokens,
)
return AgentRunSpec(runtime=runtime, **kwargs)