Skip to main content

Crate flashmind_types

Crate flashmind_types 

Source
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

TraitPurpose
LlmProviderStreaming completions from any LLM backend
ToolFunction-calling tools the agent can invoke
MemoryProviderStore/search/forget long-term memories

§Modules

§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::ImageGenConfig;
pub use llm::ImageGenRequest;
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::Tool;
pub use tool::ToolContext;
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 LlmProvider trait.
memory
Memory abstraction — MemoryProvider trait and entry types.
message
LLM wire-format types — Role, Message, ToolCall, and ContentPart.
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.