fix(codex): support structured_content summaries

This commit is contained in:
banteg
2026-01-01 02:23:44 +04:00
parent a3cac40623
commit 1410037f59
2 changed files with 78 additions and 2 deletions
+69
View File
@@ -0,0 +1,69 @@
from takopi.model import ActionEvent
from takopi.runners.codex import translate_codex_event
def test_translate_mcp_tool_call_summarizes_structured_content() -> None:
evt = {
"type": "item.completed",
"item": {
"id": "item_1",
"type": "mcp_tool_call",
"server": "docs",
"tool": "search",
"arguments": {"q": "hi"},
"result": {
"content": [{"type": "text", "text": "ok"}],
"structured_content": {"matches": 3},
},
"error": None,
"status": "completed",
},
}
out = translate_codex_event(evt, title="Codex")
assert len(out) == 1
assert isinstance(out[0], ActionEvent)
summary = out[0].action.detail["result_summary"]
assert summary["content_blocks"] == 1
assert summary["has_structured"] is True
def test_translate_mcp_tool_call_summarizes_null_structured_content() -> None:
evt = {
"type": "item.completed",
"item": {
"id": "item_2",
"type": "mcp_tool_call",
"server": "docs",
"tool": "search",
"result": {"content": [], "structured_content": None},
"error": None,
"status": "completed",
},
}
out = translate_codex_event(evt, title="Codex")
assert len(out) == 1
assert isinstance(out[0], ActionEvent)
assert out[0].action.detail["result_summary"]["has_structured"] is False
def test_translate_mcp_tool_call_summarizes_legacy_structured_key() -> None:
evt = {
"type": "item.completed",
"item": {
"id": "item_3",
"type": "mcp_tool_call",
"server": "docs",
"tool": "search",
"result": {"structured": {"matches": 3}},
"error": None,
"status": "completed",
},
}
out = translate_codex_event(evt, title="Codex")
assert len(out) == 1
assert isinstance(out[0], ActionEvent)
assert out[0].action.detail["result_summary"]["has_structured"] is True