## 1. Responses SSE compatibility - [x] 1.1 Add a failing client behavior test for a streamed text response with final metadata and usage. - [x] 1.2 Add failing configuration and client behavior tests for selecting non-streaming Responses transport. - [x] 1.3 Route Responses requests through the Agent Framework/OpenAI SDK streaming or non-streaming adapter according to configuration. - [x] 1.4 Add behavior coverage for streamed function-call output. ## 2. Invalid tool-argument recovery - [x] 2.1 Add a failing agent-loop behavior test proving malformed function-call JSON does not invoke the tool and is returned to the agent. - [x] 2.2 Preserve argument parse failures on function-call content and add the shared guarded function invoker. - [x] 2.3 Apply guarded function invocation to the summary and workflow-editor agent pipelines. ## 3. Verification - [x] 3.1 Refactor the touched response and invocation paths for DRYness, SOLID boundaries, and simplicity while preserving behavior. - [x] 3.2 Run focused tests, the full solution tests, and strict OpenSpec validation. - [x] 3.3 Verify the client behavior against the deployed LiteLLM Responses endpoint and restart Meeting Assistant only after confirming it is idle. ## 4. Responses message-item compatibility - [x] 4.1 Add a failing client behavior test proving an outbound chat message retains the `message` discriminator through SDK serialization. - [x] 4.2 Emit the Responses `message` discriminator for chat message input items. - [x] 4.3 Run focused and full tests, validate OpenSpec strictly, restart while idle, and retry the failed summary through the local API.