From 609ac0c7ab3fade92f79e595e6e09d26a5397b5b Mon Sep 17 00:00:00 2001 From: jif-oai Date: Wed, 1 Apr 2026 12:26:29 +0200 Subject: [PATCH] chore: interrupted as state (#16426) --- codex-rs/tools/src/agent_tool.rs | 2 +- codex-rs/tools/src/agent_tool_tests.rs | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/codex-rs/tools/src/agent_tool.rs b/codex-rs/tools/src/agent_tool.rs index 72e0d6bc4..b82084d51 100644 --- a/codex-rs/tools/src/agent_tool.rs +++ b/codex-rs/tools/src/agent_tool.rs @@ -318,7 +318,7 @@ fn agent_status_output_schema() -> Value { "oneOf": [ { "type": "string", - "enum": ["pending_init", "running", "shutdown", "not_found"] + "enum": ["pending_init", "running", "interrupted", "shutdown", "not_found"] }, { "type": "object", diff --git a/codex-rs/tools/src/agent_tool_tests.rs b/codex-rs/tools/src/agent_tool_tests.rs index 3bd10471d..2277a5ec1 100644 --- a/codex-rs/tools/src/agent_tool_tests.rs +++ b/codex-rs/tools/src/agent_tool_tests.rs @@ -208,3 +208,23 @@ fn list_agents_tool_includes_path_prefix_and_agent_fields() { json!(["agent_name", "agent_status", "last_task_message"]) ); } + +#[test] +fn list_agents_tool_status_schema_includes_interrupted() { + let ToolSpec::Function(ResponsesApiTool { output_schema, .. }) = create_list_agents_tool() + else { + panic!("list_agents should be a function tool"); + }; + + assert_eq!( + output_schema.expect("list_agents output schema")["properties"]["agents"]["items"]["properties"] + ["agent_status"]["allOf"][0]["oneOf"][0]["enum"], + json!([ + "pending_init", + "running", + "interrupted", + "shutdown", + "not_found" + ]) + ); +}