mirror of
https://github.com/openai/codex.git
synced 2026-05-02 02:17:22 +00:00
Keep things simple and build a full Responses API request request right in the model client
37 lines
1.1 KiB
Rust
37 lines
1.1 KiB
Rust
use codex_protocol::models::ResponseItem;
|
|
use serde_json::Value;
|
|
|
|
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
|
|
pub enum Compression {
|
|
#[default]
|
|
None,
|
|
Zstd,
|
|
}
|
|
|
|
pub(crate) fn attach_item_ids(payload_json: &mut Value, original_items: &[ResponseItem]) {
|
|
let Some(input_value) = payload_json.get_mut("input") else {
|
|
return;
|
|
};
|
|
let Value::Array(items) = input_value else {
|
|
return;
|
|
};
|
|
|
|
for (value, item) in items.iter_mut().zip(original_items.iter()) {
|
|
if let ResponseItem::Reasoning { id, .. }
|
|
| ResponseItem::Message { id: Some(id), .. }
|
|
| ResponseItem::WebSearchCall { id: Some(id), .. }
|
|
| ResponseItem::FunctionCall { id: Some(id), .. }
|
|
| ResponseItem::LocalShellCall { id: Some(id), .. }
|
|
| ResponseItem::CustomToolCall { id: Some(id), .. } = item
|
|
{
|
|
if id.is_empty() {
|
|
continue;
|
|
}
|
|
|
|
if let Some(obj) = value.as_object_mut() {
|
|
obj.insert("id".to_string(), Value::String(id.clone()));
|
|
}
|
|
}
|
|
}
|
|
}
|