Streaming Capability Detector
Detects and caches streaming capability.
PromptRunner goes through supportsStreaming with operations and options. A definitive yes is cached by model name, and only when the options name one model for the life of the process (see modelNameCacheKey); a no is never cached, so a timeout or a missing key cannot pin a name to non-streaming.
com.embabel.agent.spi.LlmService.supportsStreaming goes through the ChatModel overload, which runs StreamingCapabilityVerifier once per instance for a definitive answer. That overload is the source of truth: everything the name cache declines to key falls through to it. Entries are weakly held so a per-request BYOK model can be collected.
Functions
Clears memoized results. For tests only.
Probes chatModel via StreamingCapabilityVerifier and caches a definitive answer.
Tests whether the LLM resolved from the given operations and options supports streaming.