non streaming broken (fiber branch)
## Summary
`OpenAiBasedProviderClientBase::chat()` contains a Fiber branch (line 341) that silently forces streaming on any call executed inside a PHP Fiber, even when the caller never requested streaming. This breaks non-streaming AI calls made from within Fiber-based execution contexts (e.g. `ai_search_block` with streaming disabled in block config).
## Root cause
The condition on line 341 is:
```php
elseif (\Fiber::getCurrent() && in_array(AiProviderCapability::StreamChatOutput, $this->getSupportedCapabilities())) {
```
`\Fiber::getCurrent()` alone is too broad — it fires for any code running in a Fiber, not just callers that requested streaming. The missing guard is `$input->isStreamedOutput()`.
## Proposed resolution
Add `$input->isStreamedOutput()` to the Fiber branch condition in `OpenAiBasedProviderClientBase::chat()`:
```php
elseif (\Fiber::getCurrent() && $input->isStreamedOutput() && in_array(AiProviderCapability::StreamChatOutput, $this->getSupportedCapabilities())) {
```
This ensures non-streaming calls always fall through to the normal synchronous path (line 359), even when running inside a Fiber.
issue