diff --git a/.changeset/angry-cooks-wait.md b/.changeset/angry-cooks-wait.md new file mode 100644 index 00000000..9cdc9733 --- /dev/null +++ b/.changeset/angry-cooks-wait.md @@ -0,0 +1,7 @@ +--- +"@openai/agents-core": patch +"@openai/agents-extensions": patch +"@openai/agents-openai": patch +--- + +Fix #233 - eliminate confusion with "input_text" type items with role: "assistant" diff --git a/packages/agents-core/src/types/protocol.ts b/packages/agents-core/src/types/protocol.ts index 365e7f68..2a92abb0 100644 --- a/packages/agents-core/src/types/protocol.ts +++ b/packages/agents-core/src/types/protocol.ts @@ -241,7 +241,6 @@ export type ComputerAction = z.infer; export const AssistantContent = z.discriminatedUnion('type', [ OutputText, Refusal, - InputText, AudioContent, ImageContent, ]); diff --git a/packages/agents-extensions/src/aiSdk.ts b/packages/agents-extensions/src/aiSdk.ts index 369b5e56..be00766e 100644 --- a/packages/agents-extensions/src/aiSdk.ts +++ b/packages/agents-extensions/src/aiSdk.ts @@ -116,29 +116,16 @@ export function itemsToLanguageV1Messages( messages.push({ role, content: content - .filter((c) => c.type === 'input_text' || c.type === 'output_text') + .filter((c) => c.type === 'output_text') .map((c) => { const { providerData: contentProviderData } = c; - if (c.type === 'output_text') { - return { - type: 'text', - text: c.text, - providerMetadata: { - ...(contentProviderData ?? {}), - }, - }; - } - if (c.type === 'input_text') { - return { - type: 'text', - text: c.text, - providerMetadata: { - ...(contentProviderData ?? {}), - }, - }; - } - const exhaustiveCheck = c satisfies never; - throw new UserError(`Unknown content type: ${exhaustiveCheck}`); + return { + type: 'text', + text: c.text, + providerMetadata: { + ...(contentProviderData ?? {}), + }, + }; }), providerMetadata: { ...(providerData ?? {}), diff --git a/packages/agents-openai/src/openaiChatCompletionsConverter.ts b/packages/agents-openai/src/openaiChatCompletionsConverter.ts index bfa44525..6f022db5 100644 --- a/packages/agents-openai/src/openaiChatCompletionsConverter.ts +++ b/packages/agents-openai/src/openaiChatCompletionsConverter.ts @@ -37,7 +37,7 @@ export function extractAllAssistantContent( } const out: ChatCompletionAssistantMessageParam['content'] = []; for (const c of content) { - if (c.type === 'output_text' || c.type === 'input_text') { + if (c.type === 'output_text') { out.push({ type: 'text', text: c.text,