mirror of
https://github.com/openai/codex.git
synced 2026-10-21 17:48:44 +00:00
Support typed content in contextual prompt fragments (#54776)
## Why Contextual fragments and extension-owned world-state sections currently return strings, limiting them to text content. ## What changed - Return `ContentItem` from fragment bodies and rendering, preserving classification and attribution. Apply text markers only to `InputText`; pass other content through unchanged. - Allow extension prompt and world-state contributions to carry typed content, and preserve media in context-window hints. - Hash non-text world-state fragments by their serialized content and role while retaining the existing text hashing behavior. - Add shared content-to-tool-output conversion that preserves image references, image detail, and audio. ## Testing Add coverage for typed world-state hashing and preservation of image content and attribution. Expand code-mode output tests to cover input text, output text, file-backed and inline images, and audio. GitOrigin-RevId: 2ed00d466a3f169b151202f3eef71e667ea64be1
This commit is contained in:
@@ -10952,10 +10952,9 @@ async fn build_initial_context_adds_multi_agent_v2_subagent_usage_hint_as_develo
|
||||
|
||||
let developer_messages = developer_message_texts(&initial_context);
|
||||
assert!(
|
||||
developer_messages
|
||||
.iter()
|
||||
.flatten()
|
||||
.any(|text| text.contains("<context_window>\nAgent name: /root/worker\n")),
|
||||
developer_messages.iter().any(|message| message
|
||||
.concat()
|
||||
.contains("<context_window>\nAgent name: /root/worker\n")),
|
||||
"expected subagent context window to include its canonical name, got {developer_messages:?}"
|
||||
);
|
||||
assert!(
|
||||
|
||||
@@ -2162,7 +2162,10 @@ pub(super) fn realtime_text_for_event(msg: &EventMsg) -> Option<RealtimeEventTex
|
||||
) =>
|
||||
{
|
||||
Some(RealtimeEventText::Handoff(
|
||||
UserVerificationNotice.render(),
|
||||
UserVerificationNotice
|
||||
.render()
|
||||
.into_text()
|
||||
.unwrap_or_default(),
|
||||
None,
|
||||
))
|
||||
}
|
||||
|
||||
@@ -957,7 +957,7 @@ async fn pending_turn_input(
|
||||
let mut messages = SenderUserMessages {
|
||||
receiver_turn_id: turn_id.to_owned(),
|
||||
receiver_message_id: fragment.delivery.clone(),
|
||||
text: fragment.render(),
|
||||
text: fragment.render().into_text().unwrap_or_default(),
|
||||
};
|
||||
messages.bound();
|
||||
Some(CodexHarnessMetadata {
|
||||
|
||||
Reference in New Issue
Block a user