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
| Module | Contents |
|---|---|
primitives | scalars: TimestampMs, ThinkingLevel (+ clamping), StopReason, Usage |
content | content blocks: TextContent, ThinkingContent, ImageContent, ToolCall, UserContent, AssistantContent, UserContentField |
message | Message, AgentMessage, SystemMessage, AssistantMessage, … |
model | Model, ModelKey, ThinkingLevelMap, costs and limits |
stream | AssistantMessageEvent, ProviderEvent, PartialAssembler |
transcript | system-message replay, transcript::diff_sections, collapsing |
transform | transform::transform_messages |
json | JsonObject, JsonValue, json::json_semantic_eq |
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
Messageand the coding-agentAgentMessageunion. - model
- The
Modeland 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
diffSystemPromptSectionspatch 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.