## ADDED Requirements ### Requirement: Summary agents tolerate Responses event streams and malformed tool arguments Meeting Assistant SHALL consume successful summary-agent Responses results through the supported OpenAI Responses and Agent Framework Server-Sent Events adapter. When a Responses event stream delivers completed output items separately from the final response metadata, Meeting Assistant SHALL assemble those output items into one agent response while preserving final response metadata and usage. Meeting Assistant SHALL provide an agent setting that selects streaming or non-streaming Responses transport. Streaming SHALL be enabled by default. When streaming is disabled, Meeting Assistant SHALL use the supported non-streaming OpenAI Responses client and adapter. When a returned function call contains arguments that are not a valid JSON object, Meeting Assistant SHALL NOT invoke the requested function and SHALL return an invalid-tool-arguments result associated with the original call ID to the agent so it can correct the call. When Meeting Assistant translates chat messages into a Responses request, every message input item SHALL retain the `message` item discriminator required by the OpenAI SDK and Responses API. #### Scenario: Streamed text response is assembled - **WHEN** the configured Responses endpoint returns completed message output in Server-Sent Events followed by final response metadata - **THEN** the summary agent receives the completed message text, response metadata, and usage without a JSON document parse failure #### Scenario: Streamed function call is assembled - **WHEN** the configured Responses endpoint returns a completed function-call output item in Server-Sent Events - **THEN** the summary agent receives the function call with its call ID, function name, and parsed arguments #### Scenario: Streaming transport can be disabled - **WHEN** `MeetingAssistant:Agent:UseStreaming` is `false` - **THEN** the summary agent requests a non-streaming Responses result - **AND** converts the response through the supported OpenAI Responses adapter #### Scenario: Chat message input remains a Responses message - **WHEN** the summary agent sends a user or assistant chat message through the Responses client - **THEN** the outbound Responses input item has type `message` - **AND** the request does not contain an `unknown` input item type #### Scenario: Malformed function arguments are returned to the agent - **WHEN** the model returns a function call whose arguments are not a valid JSON object - **THEN** Meeting Assistant does not invoke the requested function - **AND** sends a function result with an invalid-tool-arguments error for the original call ID back to the agent - **AND** allows the agent loop to continue