Skip to main content

oharness_core/
lib.rs

1//! Core types, event schema, and context-plumbing traits for open-harness.
2//!
3//! Zero-IO foundation. Every other crate in the workspace depends on this one.
4
5pub mod assessment;
6pub mod capabilities;
7pub mod completion;
8pub mod context;
9pub mod event;
10pub mod ids;
11pub mod message;
12pub mod outcome;
13pub mod task;
14pub mod trajectory;
15pub mod view;
16
17pub use assessment::{
18    AssistantTurn, Episode, EvaluationResult, OwnedEpisode, Reflection, TaskEvaluator, ToolCall,
19    TrajectoryView,
20};
21pub use capabilities::LlmCapabilities;
22pub use completion::{
23    CacheBreakpoint, CacheHints, CacheTtl, CompletionRequest, CompletionResponse, StopReason,
24    ToolSpec, Usage,
25};
26pub use context::{
27    ApprovalChannel, ApprovalRequest, ApprovalResponse, BudgetAmount, BudgetDecision, BudgetHandle,
28    BudgetRequest, BudgetSnapshot, Cancellation, EventSink, NamespaceError, NullApprovalChannel,
29    NullBudget, NullSink, ScopedEmitter, SharedSink,
30};
31pub use event::{Event, EventConstructionError, EventKind, EventPayload, SchemaVersion};
32pub use ids::{ModelId, RunId, SpanId};
33pub use message::{AudioRef, CitationRef, Content, DocumentRef, ImageRef, Message, ToolOutput};
34pub use outcome::{
35    AgentError, CompletionReason, InterruptionReason, ResourceUsage, RunError, RunErrorCategory,
36    RunOutcome, Termination, TruncationLimit,
37};
38pub use task::{Attachment, Task};
39pub use trajectory::{TrajectoryError, TrajectoryHandle, TrajectorySummary};
40pub use view::ConversationView;
41
42/// Re-export of `serde_json::Map<String, serde_json::Value>` — the standard "metadata bag"
43/// type used on messages, events, tasks, etc.
44pub type MetadataMap = serde_json::Map<String, serde_json::Value>;