Add ItemStarted/ItemCompleted events for UserInputItem (#5306)

Adds a new ItemStarted event and delivers UserMessage as the first item
type (more to come).


Renames `InputItem` to `UserInput` considering we're using the `Item`
suffix for actual items.
This commit is contained in:
pakrym-oai
2025-10-20 13:34:44 -07:00
committed by GitHub
parent 5e4f3bbb0b
commit 9c903c4716
49 changed files with 435 additions and 202 deletions

View File

@@ -7,11 +7,11 @@ use codex_core::features::Feature;
use codex_core::model_family::find_family_for_model;
use codex_core::protocol::AskForApproval;
use codex_core::protocol::EventMsg;
use codex_core::protocol::InputItem;
use codex_core::protocol::Op;
use codex_core::protocol::SandboxPolicy;
use codex_protocol::config_types::ReasoningSummary;
use codex_protocol::plan_tool::StepStatus;
use codex_protocol::user_input::UserInput;
use core_test_support::assert_regex_match;
use core_test_support::responses;
use core_test_support::responses::ev_apply_patch_function_call;
@@ -74,7 +74,7 @@ async fn shell_tool_executes_command_and_streams_output() -> anyhow::Result<()>
codex
.submit(Op::UserTurn {
items: vec![InputItem::Text {
items: vec![UserInput::Text {
text: "please run the shell command".into(),
}],
final_output_json_schema: None,
@@ -143,7 +143,7 @@ async fn update_plan_tool_emits_plan_update_event() -> anyhow::Result<()> {
codex
.submit(Op::UserTurn {
items: vec![InputItem::Text {
items: vec![UserInput::Text {
text: "please update the plan".into(),
}],
final_output_json_schema: None,
@@ -226,7 +226,7 @@ async fn update_plan_tool_rejects_malformed_payload() -> anyhow::Result<()> {
codex
.submit(Op::UserTurn {
items: vec![InputItem::Text {
items: vec![UserInput::Text {
text: "please update the plan".into(),
}],
final_output_json_schema: None,
@@ -324,7 +324,7 @@ async fn apply_patch_tool_executes_and_emits_patch_events() -> anyhow::Result<()
codex
.submit(Op::UserTurn {
items: vec![InputItem::Text {
items: vec![UserInput::Text {
text: "please apply a patch".into(),
}],
final_output_json_schema: None,
@@ -425,7 +425,7 @@ async fn apply_patch_reports_parse_diagnostics() -> anyhow::Result<()> {
codex
.submit(Op::UserTurn {
items: vec![InputItem::Text {
items: vec![UserInput::Text {
text: "please apply a patch".into(),
}],
final_output_json_schema: None,