mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-05-29 06:31:32 +00:00
63 lines
2 KiB
Python
63 lines
2 KiB
Python
from types import SimpleNamespace
|
|
|
|
from agent.codex_responses_adapter import _normalize_codex_response
|
|
|
|
|
|
def test_normalize_codex_response_drops_transient_rs_tmp_reasoning_items():
|
|
response = SimpleNamespace(
|
|
status="completed",
|
|
output=[
|
|
SimpleNamespace(
|
|
type="reasoning",
|
|
id="rs_tmp_123",
|
|
encrypted_content="opaque-transient",
|
|
summary=[],
|
|
),
|
|
SimpleNamespace(
|
|
type="reasoning",
|
|
id="rs_456",
|
|
encrypted_content="opaque-stable",
|
|
summary=[SimpleNamespace(text="stable summary")],
|
|
),
|
|
SimpleNamespace(
|
|
type="message",
|
|
role="assistant",
|
|
status="completed",
|
|
content=[SimpleNamespace(type="output_text", text="done")],
|
|
),
|
|
],
|
|
)
|
|
|
|
assistant_message, finish_reason = _normalize_codex_response(response)
|
|
|
|
assert finish_reason == "stop"
|
|
assert assistant_message.content == "done"
|
|
assert assistant_message.codex_reasoning_items == [
|
|
{
|
|
"type": "reasoning",
|
|
"encrypted_content": "opaque-stable",
|
|
"id": "rs_456",
|
|
"summary": [{"type": "summary_text", "text": "stable summary"}],
|
|
}
|
|
]
|
|
|
|
|
|
def test_normalize_codex_response_treats_summary_only_reasoning_as_incomplete():
|
|
response = SimpleNamespace(
|
|
status="completed",
|
|
output=[
|
|
SimpleNamespace(
|
|
type="reasoning",
|
|
id="rs_tmp_789",
|
|
encrypted_content="opaque-transient",
|
|
summary=[SimpleNamespace(text="still thinking")],
|
|
)
|
|
],
|
|
)
|
|
|
|
assistant_message, finish_reason = _normalize_codex_response(response)
|
|
|
|
assert finish_reason == "incomplete"
|
|
assert assistant_message.content == ""
|
|
assert assistant_message.reasoning == "still thinking"
|
|
assert assistant_message.codex_reasoning_items is None
|