diff --git a/llm/anthropic/wit/deps/wasi:io/error.wit "b/llm/anthropic/wit/deps/wasi\357\200\272io/error.wit" similarity index 100% rename from llm/anthropic/wit/deps/wasi:io/error.wit rename to "llm/anthropic/wit/deps/wasi\357\200\272io/error.wit" diff --git a/llm/anthropic/wit/deps/wasi:io/poll.wit "b/llm/anthropic/wit/deps/wasi\357\200\272io/poll.wit" similarity index 100% rename from llm/anthropic/wit/deps/wasi:io/poll.wit rename to "llm/anthropic/wit/deps/wasi\357\200\272io/poll.wit" diff --git a/llm/anthropic/wit/deps/wasi:io/streams.wit "b/llm/anthropic/wit/deps/wasi\357\200\272io/streams.wit" similarity index 100% rename from llm/anthropic/wit/deps/wasi:io/streams.wit rename to "llm/anthropic/wit/deps/wasi\357\200\272io/streams.wit" diff --git a/llm/anthropic/wit/deps/wasi:io/world.wit "b/llm/anthropic/wit/deps/wasi\357\200\272io/world.wit" similarity index 100% rename from llm/anthropic/wit/deps/wasi:io/world.wit rename to "llm/anthropic/wit/deps/wasi\357\200\272io/world.wit" diff --git a/llm/grok/wit/deps/wasi:io/error.wit "b/llm/grok/wit/deps/wasi\357\200\272io/error.wit" similarity index 100% rename from llm/grok/wit/deps/wasi:io/error.wit rename to "llm/grok/wit/deps/wasi\357\200\272io/error.wit" diff --git a/llm/grok/wit/deps/wasi:io/poll.wit "b/llm/grok/wit/deps/wasi\357\200\272io/poll.wit" similarity index 100% rename from llm/grok/wit/deps/wasi:io/poll.wit rename to "llm/grok/wit/deps/wasi\357\200\272io/poll.wit" diff --git a/llm/grok/wit/deps/wasi:io/streams.wit "b/llm/grok/wit/deps/wasi\357\200\272io/streams.wit" similarity index 100% rename from llm/grok/wit/deps/wasi:io/streams.wit rename to "llm/grok/wit/deps/wasi\357\200\272io/streams.wit" diff --git a/llm/grok/wit/deps/wasi:io/world.wit "b/llm/grok/wit/deps/wasi\357\200\272io/world.wit" similarity index 100% rename from llm/grok/wit/deps/wasi:io/world.wit rename to "llm/grok/wit/deps/wasi\357\200\272io/world.wit" diff --git a/llm/llm/wit/deps/wasi:io/error.wit "b/llm/llm/wit/deps/wasi\357\200\272io/error.wit" similarity index 100% rename from llm/llm/wit/deps/wasi:io/error.wit rename to "llm/llm/wit/deps/wasi\357\200\272io/error.wit" diff --git a/llm/llm/wit/deps/wasi:io/poll.wit "b/llm/llm/wit/deps/wasi\357\200\272io/poll.wit" similarity index 100% rename from llm/llm/wit/deps/wasi:io/poll.wit rename to "llm/llm/wit/deps/wasi\357\200\272io/poll.wit" diff --git a/llm/llm/wit/deps/wasi:io/streams.wit "b/llm/llm/wit/deps/wasi\357\200\272io/streams.wit" similarity index 100% rename from llm/llm/wit/deps/wasi:io/streams.wit rename to "llm/llm/wit/deps/wasi\357\200\272io/streams.wit" diff --git a/llm/llm/wit/deps/wasi:io/world.wit "b/llm/llm/wit/deps/wasi\357\200\272io/world.wit" similarity index 100% rename from llm/llm/wit/deps/wasi:io/world.wit rename to "llm/llm/wit/deps/wasi\357\200\272io/world.wit" diff --git a/llm/ollama/wit/deps/wasi:io/error.wit "b/llm/ollama/wit/deps/wasi\357\200\272io/error.wit" similarity index 100% rename from llm/ollama/wit/deps/wasi:io/error.wit rename to "llm/ollama/wit/deps/wasi\357\200\272io/error.wit" diff --git a/llm/ollama/wit/deps/wasi:io/poll.wit "b/llm/ollama/wit/deps/wasi\357\200\272io/poll.wit" similarity index 100% rename from llm/ollama/wit/deps/wasi:io/poll.wit rename to "llm/ollama/wit/deps/wasi\357\200\272io/poll.wit" diff --git a/llm/ollama/wit/deps/wasi:io/streams.wit "b/llm/ollama/wit/deps/wasi\357\200\272io/streams.wit" similarity index 100% rename from llm/ollama/wit/deps/wasi:io/streams.wit rename to "llm/ollama/wit/deps/wasi\357\200\272io/streams.wit" diff --git a/llm/ollama/wit/deps/wasi:io/world.wit "b/llm/ollama/wit/deps/wasi\357\200\272io/world.wit" similarity index 100% rename from llm/ollama/wit/deps/wasi:io/world.wit rename to "llm/ollama/wit/deps/wasi\357\200\272io/world.wit" diff --git a/llm/openai/src/client.rs b/llm/openai/src/client.rs index 688939a36..20c07ce26 100644 --- a/llm/openai/src/client.rs +++ b/llm/openai/src/client.rs @@ -208,6 +208,8 @@ pub enum InnerInputItem { #[serde(default)] detail: Detail, }, + #[serde(rename = "output_text")] + OutputText { text: String }, } #[derive(Debug, Clone, Serialize, Deserialize, Default)] diff --git a/llm/openai/src/conversions.rs b/llm/openai/src/conversions.rs index 43694c0f3..77ebcb41a 100644 --- a/llm/openai/src/conversions.rs +++ b/llm/openai/src/conversions.rs @@ -45,8 +45,9 @@ pub fn messages_to_input_items(messages: Vec) -> Vec { for message in messages { let role = to_openai_role_name(message.role).to_string(); let mut input_items = Vec::new(); + let is_assistant = role == "assistant"; // Only assistant messages get output_text for content_part in message.content { - input_items.push(content_part_to_inner_input_item(content_part)); + input_items.push(content_part_to_inner_input_item(content_part, is_assistant)); } items.push(InputItem::InputMessage { @@ -122,9 +123,15 @@ pub fn to_openai_role_name(role: Role) -> &'static str { } } -pub fn content_part_to_inner_input_item(content_part: ContentPart) -> InnerInputItem { +pub fn content_part_to_inner_input_item(content_part: ContentPart, is_assistant: bool) -> InnerInputItem { match content_part { - ContentPart::Text(msg) => InnerInputItem::TextInput { text: msg }, + ContentPart::Text(msg) => { + if is_assistant { + InnerInputItem::OutputText { text: msg } + } else { + InnerInputItem::TextInput { text: msg } + } + }, ContentPart::Image(image_reference) => match image_reference { ImageReference::Url(image_url) => InnerInputItem::ImageInput { image_url: image_url.url, @@ -234,3 +241,8 @@ pub fn create_response_metadata(response: &CreateModelResponseResponse) -> Respo provider_metadata_json: response.metadata.as_ref().map(|m| m.to_string()), } } + +fn main() { + println!("Hello, world!"); + // Or call your library code here +} diff --git a/llm/openai/wit/deps/wasi:io/error.wit "b/llm/openai/wit/deps/wasi\357\200\272io/error.wit" similarity index 100% rename from llm/openai/wit/deps/wasi:io/error.wit rename to "llm/openai/wit/deps/wasi\357\200\272io/error.wit" diff --git a/llm/openai/wit/deps/wasi:io/poll.wit "b/llm/openai/wit/deps/wasi\357\200\272io/poll.wit" similarity index 100% rename from llm/openai/wit/deps/wasi:io/poll.wit rename to "llm/openai/wit/deps/wasi\357\200\272io/poll.wit" diff --git a/llm/openai/wit/deps/wasi:io/streams.wit "b/llm/openai/wit/deps/wasi\357\200\272io/streams.wit" similarity index 100% rename from llm/openai/wit/deps/wasi:io/streams.wit rename to "llm/openai/wit/deps/wasi\357\200\272io/streams.wit" diff --git a/llm/openai/wit/deps/wasi:io/world.wit "b/llm/openai/wit/deps/wasi\357\200\272io/world.wit" similarity index 100% rename from llm/openai/wit/deps/wasi:io/world.wit rename to "llm/openai/wit/deps/wasi\357\200\272io/world.wit" diff --git a/llm/openrouter/wit/deps/wasi:io/error.wit "b/llm/openrouter/wit/deps/wasi\357\200\272io/error.wit" similarity index 100% rename from llm/openrouter/wit/deps/wasi:io/error.wit rename to "llm/openrouter/wit/deps/wasi\357\200\272io/error.wit" diff --git a/llm/openrouter/wit/deps/wasi:io/poll.wit "b/llm/openrouter/wit/deps/wasi\357\200\272io/poll.wit" similarity index 100% rename from llm/openrouter/wit/deps/wasi:io/poll.wit rename to "llm/openrouter/wit/deps/wasi\357\200\272io/poll.wit" diff --git a/llm/openrouter/wit/deps/wasi:io/streams.wit "b/llm/openrouter/wit/deps/wasi\357\200\272io/streams.wit" similarity index 100% rename from llm/openrouter/wit/deps/wasi:io/streams.wit rename to "llm/openrouter/wit/deps/wasi\357\200\272io/streams.wit" diff --git a/llm/openrouter/wit/deps/wasi:io/world.wit "b/llm/openrouter/wit/deps/wasi\357\200\272io/world.wit" similarity index 100% rename from llm/openrouter/wit/deps/wasi:io/world.wit rename to "llm/openrouter/wit/deps/wasi\357\200\272io/world.wit" diff --git a/llm/wit/deps/wasi:io/error.wit "b/llm/wit/deps/wasi\357\200\272io/error.wit" similarity index 100% rename from llm/wit/deps/wasi:io/error.wit rename to "llm/wit/deps/wasi\357\200\272io/error.wit" diff --git a/llm/wit/deps/wasi:io/poll.wit "b/llm/wit/deps/wasi\357\200\272io/poll.wit" similarity index 100% rename from llm/wit/deps/wasi:io/poll.wit rename to "llm/wit/deps/wasi\357\200\272io/poll.wit" diff --git a/llm/wit/deps/wasi:io/streams.wit "b/llm/wit/deps/wasi\357\200\272io/streams.wit" similarity index 100% rename from llm/wit/deps/wasi:io/streams.wit rename to "llm/wit/deps/wasi\357\200\272io/streams.wit" diff --git a/llm/wit/deps/wasi:io/world.wit "b/llm/wit/deps/wasi\357\200\272io/world.wit" similarity index 100% rename from llm/wit/deps/wasi:io/world.wit rename to "llm/wit/deps/wasi\357\200\272io/world.wit"