Expand description
Shared types for the Flashmind AI agent framework.
This crate defines the traits, wire types, and event structures shared by all Flashmind crates. It is the foundation that both library consumers and provider implementations depend on.
§Core traits
| Trait | Purpose |
|---|---|
LlmProvider | Streaming completions from any LLM backend |
Tool | Function-calling tools the agent can invoke |
MemoryProvider | Store/search/forget long-term memories |
§Modules
| Module | Types |
|---|---|
event | AgentEvent, AgentInput, TurnStatus, TurnUsage — telemetry |
llm | LlmProvider, CompletionRequest, StreamEvent, FinishReason |
memory | MemoryEntry, MemoryMetadata, MemoryProvider |
message | Message, Role, ToolCall, ContentPart — LLM wire format |
model | Model, Provider, SamplingParams, ReasoningLevel |
tool | Tool, ToolRegistry, ToolContext, ToolResult |
stream | AgentStream, Outcome — stream-with-final-result pattern |
utils | UTF-8-safe string truncation helpers |
§Example: implementing a provider
use async_trait::async_trait;
use flashmind_types::{
CompletionRequest, CompletionStream, LlmProvider, Provider, StreamEvent, FinishReason,
};
struct MyProvider;
#[async_trait]
impl LlmProvider for MyProvider {
fn name(&self) -> &str { "my-provider" }
fn provider(&self) -> Provider { Provider::OpenAi }
fn complete(&self, _request: CompletionRequest) -> CompletionStream {
Box::pin(async_stream::stream! {
yield Ok(StreamEvent::ContentDelta("Hello!".into()));
yield Ok(StreamEvent::Finished(FinishReason::Stop));
})
}
}Re-exports§
pub use error::LlmError;pub use error::LlmErrorKind;pub use error::ParseError;pub use event::AgentEvent;pub use event::AgentInput;pub use event::CompactionReason;pub use event::Source;pub use event::TurnResult;pub use event::TurnStatus;pub use event::TurnUsage;pub use interaction_mode::InteractionMode;pub use llm::AudioFormat;pub use llm::AudioOutputConfig;pub use llm::CompletionRequest;pub use llm::CompletionResponse;pub use llm::CompletionStream;pub use llm::FinishReason;pub use llm::FrameImage;pub use llm::ImageEditRequest;pub use llm::ImageGenConfig;pub use llm::ImageGenRequest;pub use llm::ImageOutputFormat;pub use llm::LlmProvider;pub use llm::Modality;pub use llm::ModelCapabilities;pub use llm::ModelCategory;pub use llm::ModelInfo;pub use llm::ModelPricing;pub use llm::ProviderRegistry;pub use llm::StreamEvent;pub use llm::SttRequest;pub use llm::TokenUsage;pub use llm::ToolDefinition;pub use llm::TtsRequest;pub use llm::VideoGenRequest;pub use llm::Voice;pub use llm::mime_from_extension;pub use memory::MemoryEntry;pub use memory::MemoryMetadata;pub use memory::MemoryProvider;pub use message::ContentPart;pub use message::Message;pub use message::Role;pub use message::ToolCall;pub use message::ToolResult;pub use model::AgentLlmConfig;pub use model::AliasedModel;pub use model::Model;pub use model::Provider;pub use model::ProviderPreferences;pub use model::ProviderSort;pub use model::Quantization;pub use model::ReasoningLevel;pub use model::SamplingParams;pub use session::SessionId;pub use session::SessionIdError;pub use session::SessionUsage;pub use stream::AgentStream;pub use stream::Outcome;pub use tool::ForbiddenCmd;pub use tool::GateAnswer;pub use tool::GateAsk;pub use tool::GateDecision;pub use tool::Tool;pub use tool::ToolContext;pub use tool::ToolGate;pub use tool::ToolRegistry;
Modules§
- error
- Error types for the Flashmind framework.
- event
- Telemetry and control events for the agent turn loop.
- humanize
- Human-readable formatting for numbers, token counts, and pricing.
- interaction_
mode - llm
- LLM wire types — request / response structures and the
LlmProvidertrait. - memory
- Memory abstraction —
MemoryProvidertrait and entry types. - message
- LLM wire-format types —
Role,Message,ToolCall, andContentPart. - model
- Model identifiers, provider variants, and sampling parameters.
- session
- Session identities and cumulative request usage.
- stream
AgentStream— a stream that yields events and terminates with a result.- tool
- Tool trait, registry, context, and result types for agent function calling.
- utils
- Shared utility functions for safe string manipulation.
Constants§
- MIN_
SECRET_ REDACT_ LEN - Minimum length for a secret value to be redacted from output.