Skip to main content

Crate infinity_provider_protocol

Crate infinity_provider_protocol 

Source
Expand description

Extensible model provider abstraction and its remote wire protocol.

This crate is intentionally lightweight (no HTTP stack, no LLM SDKs) so that both the agent runtime and out-of-process provider implementations (e.g. infinity-provider-bedrock) can depend on it.

It defines:

  • The chat message types and completion request/stream types that form the entire model API surface of this project.
  • ModelProvider — an async trait for listing models and invoking one of them, returning a ModelStream of StreamChunks.
  • [remote] (feature remote) — a Unix-socket transport so providers can run out of process.

Re-exports§

pub use completion::CompletionError;
pub use completion::CompletionRequest;
pub use completion::ErrorClass;
pub use completion::FinalResponse;
pub use completion::ModelStream;
pub use completion::StreamChunk;
pub use completion::ToolCallDeltaContent;
pub use completion::ToolDefinition;
pub use completion::Usage;
pub use message::AssistantContent;
pub use message::Image;
pub use message::ImageMediaType;
pub use message::ImageSource;
pub use message::Message;
pub use message::Reasoning;
pub use message::ReasoningContent;
pub use message::Text;
pub use message::ToolCall;
pub use message::ToolFunction;
pub use message::ToolResult;
pub use message::ToolResultContent;
pub use message::UserContent;

Modules§

completion
Completion request, response streaming, and error types.
message
Chat message types exchanged between the agent runtime and model providers.

Structs§

ModelEntry
A model offered by a ModelProvider.
SingleModelProvider
Adapter exposing a single CompletionModel as a ModelProvider. Useful for tests and simple single-model deployments.

Traits§

CompletionModel
A single completion model (as opposed to a provider, which is a catalog of models). Mostly useful for tests; see SingleModelProvider.
ModelProvider
A backend that can list and invoke completion models.