From e220a14895238c32457de081661c112b2635ba90 Mon Sep 17 00:00:00 2001 From: pewdiepie-archdaemon Date: Fri, 18 Sep 2026 14:58:57 +0000 Subject: [PATCH] expose required artifacts in turn audit --- src/clean_agent_preview.py | 1 + tests/test_clean_agent_preview.py | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/clean_agent_preview.py b/src/clean_agent_preview.py index 80bb79aaa..03c0e709d 100644 --- a/src/clean_agent_preview.py +++ b/src/clean_agent_preview.py @@ -4212,6 +4212,7 @@ async def stream_preview(*, endpoint_url, model, messages, headers, turn_contrac ) if native_workspace_enabled else tuple() yield event({'type': 'turn_contract', **turn_contract.audit(), 'schema_mode': 'compact_contract_v5', 'native_workspace': native_workspace_enabled, + 'required_artifacts': list(required_artifacts), 'multimodal_image_count': image_context_count, 'attachment_reference_count': attachment_refs, 'image_rehydration': conversation_diagnostics.get('image_rehydration')}) diff --git a/tests/test_clean_agent_preview.py b/tests/test_clean_agent_preview.py index a570f4598..15be56be2 100644 --- a/tests/test_clean_agent_preview.py +++ b/tests/test_clean_agent_preview.py @@ -4688,6 +4688,8 @@ async def test_native_stream_reserves_remaining_budget_for_required_artifact(mon )] events = [json.loads(chunk[6:]) for chunk in raw if "[DONE]" not in chunk] + turn_contract = next(event for event in events if event.get("type") == "turn_contract") + assert turn_contract["required_artifacts"] == ["/tmp_workspace/results"] recovery = next( event for event in events if event.get("type") == "completion_recovery"