CrucibleIR.Backend.Capabilities (CrucibleIR v0.3.0)
View SourceDeclares backend capabilities and limits.
This struct is used for capability discovery, routing, and cost visibility.
Fields
:backend_id- Backend identifier:provider- Provider name:models- Supported models:default_model- Default model:supports_streaming- Streaming support:supports_tools- Tool calling support:supports_vision- Vision support:supports_audio- Audio support:supports_json_mode- JSON mode support:supports_extended_thinking- Extended thinking support:supports_caching- Caching support:max_tokens- Maximum completion tokens:max_context_length- Maximum context length:max_images_per_request- Maximum images per request:requests_per_minute- RPM limit:tokens_per_minute- TPM limit:cost_per_million_input- Input token cost (per 1M):cost_per_million_output- Output token cost (per 1M):metadata- Additional metadata
Summary
Types
@type t() :: %CrucibleIR.Backend.Capabilities{ backend_id: atom(), cost_per_million_input: float() | nil, cost_per_million_output: float() | nil, default_model: String.t() | nil, max_context_length: non_neg_integer() | nil, max_images_per_request: non_neg_integer() | nil, max_tokens: non_neg_integer() | nil, metadata: map(), models: [String.t()], provider: String.t(), requests_per_minute: non_neg_integer() | nil, supports_audio: boolean(), supports_caching: boolean(), supports_extended_thinking: boolean(), supports_json_mode: boolean(), supports_streaming: boolean(), supports_tools: boolean(), supports_vision: boolean(), tokens_per_minute: non_neg_integer() | nil }