diff --git a/src/model/openai.ts b/src/model/openai.ts index b46dd88..f89a7a2 100644 --- a/src/model/openai.ts +++ b/src/model/openai.ts @@ -49,15 +49,17 @@ export class OpenAIResponsesClient implements ModelClient { : [] ); + const outputText = response.output_text ?? ""; + await this.events?.emit("model.response", { outputItems: response.output.length, toolCalls: toolCalls.map((toolCall) => toolCall.name), - hasText: response.output_text.length > 0 + hasText: outputText.length > 0 }); return { - output: response.output, - outputText: response.output_text, + output: sanitizeOutputItems(response.output), + outputText, toolCalls }; } @@ -105,16 +107,29 @@ export class OpenAIResponsesClient implements ModelClient { : [] ); + const outputText = response.output_text ?? ""; + await this.events?.emit("model.response", { outputItems: response.output.length, toolCalls: toolCalls.map((toolCall) => toolCall.name), - hasText: response.output_text.length > 0 + hasText: outputText.length > 0 }); return { - output: response.output, - outputText: response.output_text, + output: sanitizeOutputItems(response.output), + outputText, toolCalls }; } } + +function sanitizeOutputItems(items: unknown[]): unknown[] { + return JSON.parse( + JSON.stringify(items, (key, value) => { + if (key === "parsed_arguments") { + return undefined; + } + return value; + }) + ) as unknown[]; +}