Capability protocol

A capability protocol is an optional, runtime-checkable typing.Protocol a plugin may satisfy on top of its required protocol; the pipeline tests it with isinstance instead of probing attributes. The capabilities are SupportsKvCache, SupportsLogprobs and SupportsAclose for backends and FittableValueFunction, RequiresEmbeddings and RequiresLogprobs for value functions; a value function that needs logprobs on a backend without SupportsLogprobs raises ConfigError before any generation.

Package: protocols. Decision: Embeddings computed only when the value function needs them.