Skip to main content

Crate oino_ai

Crate oino_ai 

Source
Expand description

oino-ai: the LLM data model for Oino.

Every type serialises to a fixed JSON shape (field names, tags, optionality), so sessions, RPC records and WASM-boundary payloads stay interchangeable across processes and tools that speak the same format. The crate has no async runtime and builds for wasm32-wasip2; guests and host share these types (D5).

§API map

Unknown JSON fields are ignored on read; optional fields are omitted on write exactly where the wire format omits them; integral f64 costs serialise without a fraction like JSON.stringify.

Re-exports§

pub use content::AssistantContent;
pub use content::ImageContent;
pub use content::TextContent;
pub use content::ThinkingContent;
pub use content::ToolCall;
pub use content::TypedText;
pub use content::UserContent;
pub use content::UserContentField;
pub use content::UserTextField;
pub use json::JsonObject;
pub use json::JsonValue;
pub use message::AgentMessage;
pub use message::AssistantDiagnostic;
pub use message::AssistantMessage;
pub use message::BashExecutionMessage;
pub use message::BranchSummaryMessage;
pub use message::CompactionSummaryMessage;
pub use message::ConstrainedSampling;
pub use message::ConstrainedSamplingConfig;
pub use message::CustomMessage;
pub use message::DeferredHandle;
pub use message::DiagnosticError;
pub use message::FalseLiteral;
pub use message::Message;
pub use message::NestedStatus;
pub use message::NestedToolCallRecord;
pub use message::NestedToolCalls;
pub use message::Sections;
pub use message::StrictMode;
pub use message::SystemMessage;
pub use message::ToolDecl;
pub use message::ToolRef;
pub use message::ToolResultMessage;
pub use message::UserMessage;
pub use model::AnyModel;
pub use model::ClassifierModel;
pub use model::ImageInputLimits;
pub use model::ImageModel;
pub use model::ImageResize;
pub use model::InputLimits;
pub use model::MapEntry;
pub use model::Model;
pub use model::ModelCost;
pub use model::ModelCostTier;
pub use model::ModelKey;
pub use model::ModelKindChat;
pub use model::PromptCache;
pub use model::ThinkingLevelMap;
pub use primitives::CacheRetention;
pub use primitives::InputModality;
pub use primitives::StopReason;
pub use primitives::ThinkingLevel;
pub use primitives::TimestampMs;
pub use primitives::UnknownThinkingLevel;
pub use primitives::Usage;
pub use primitives::UsageCost;
pub use stream::AssistantMessageEvent;
pub use stream::Context;
pub use stream::DoneReason;
pub use stream::ErrorReason;
pub use stream::PartialAssembler;
pub use stream::ProviderEvent;
pub use stream::StreamOptions;
pub use stream::ThinkingBudgets;
pub use stream::Transport;

Modules§

content
Content blocks (TextContent, ThinkingContent, ImageContent, ToolCall).
json
JSON aliases and serde helpers that keep the wire format identical to a JavaScript host.
message
The LLM Message and the coding-agent AgentMessage union.
model
The Model and related catalogue types.
primitives
Scalar types: timestamps, thinking levels, stop reasons, usage.
stream
Streaming events, the partial-free provider form crossing the WIT boundary (ProviderEvent) and request types (Context, StreamOptions).
transcript
System-message replay and the diffSystemPromptSections patch helper.
transform
Provider-side transcript transformation: drop foreign reasoning and signatures, downgrade images for text-only models, synthesize missing tool results, and hold mid-tool-call system messages until the results are in.