1#![cfg_attr(
20 test,
21 allow(
22 clippy::unwrap_used,
23 clippy::expect_used,
24 clippy::panic,
25 clippy::redundant_clone,
26 clippy::io_other_error,
27 clippy::collapsible_if,
28 clippy::await_holding_lock
29 )
30)]
31
32#[cfg(target_arch = "wasm32")]
34pub mod tokio {
35 pub use tokio_with_wasm::alias::*;
36}
37
38pub mod backend;
39pub mod build;
40pub mod definition;
41pub mod error;
42pub mod event;
43mod generated;
44pub mod ids;
45pub mod launch;
46pub mod profile;
47pub mod roster;
48pub mod run;
49pub mod runtime;
50pub mod runtime_mode;
51pub mod snapshot;
52pub mod spec;
53pub mod storage;
54pub mod store;
55pub mod tasks;
56pub mod validate;
57
58pub use backend::{MobBackendKind, RuntimeBinding};
60pub use definition::MobDefinition;
61pub use error::MobError;
62pub use event::{AttributedEvent, MemberRef, MobEvent, MobEventKind, NewMobEvent};
63pub use ids::{
64 BranchId, FlowId, FlowNodeId, FrameId, LoopId, LoopInstanceId, MeerkatId, MobId, ProfileName,
65 RunId, StepId, TaskId,
66};
67pub use launch::{BudgetSplitPolicy, ForkContext, MemberLaunchMode};
68pub use profile::{Profile, ProfileBinding, ProfileSource, SpawnTooling, ToolConfig};
69pub use roster::{
70 MemberState, MobMemberKickoffPhase, MobMemberKickoffSnapshot, Roster, RosterAddEntry,
71 RosterEntry,
72};
73pub use run::{
74 FailureLedgerEntry, FlowContext, FlowRunConfig, FrameSnapshot, LoopContextHistory,
75 LoopIterationLedgerEntry, LoopSnapshot, MobRun, MobRunStatus, StepLedgerEntry, StepRunStatus,
76};
77pub use runtime::RestoreIncompatible;
78pub use runtime::{FlowFrameKernel, FlowFrameMutator};
79pub use runtime::{FlowTurnExecutor, FlowTurnOutcome, FlowTurnTicket, TimeoutDisposition};
80pub use runtime::{
81 HelperOptions, HelperResult, MemberDeliveryReceipt, MemberHandle, MemberRespawnReceipt,
82 MemberSessionRef, MobBuilder, MobEventRouterConfig, MobEventRouterHandle, MobHandle,
83 MobMemberSnapshot, MobMemberStatus, MobPeerConnectivitySnapshot, MobRespawnError,
84 MobSessionService, MobState, MobUnreachablePeer, PeerTarget, SpawnMemberSpec, SpawnPolicy,
85 SpawnSpec,
86};
87pub use runtime::{SchedulerGrant, pump_schedulers_to_exhaustion};
88pub use runtime_mode::MobRuntimeMode;
89pub use snapshot::ParentToolScopeSnapshot;
90pub use spec::SpecValidator;
91pub use storage::MobStorage;
92pub use store::{
93 InMemoryMobEventStore, InMemoryMobRunStore, InMemoryMobSpecStore, InMemoryRealmProfileStore,
94 MobEventStore, MobRunStore, MobSpecStore, MobStoreError, RealmProfileStore, StoredRealmProfile,
95};
96#[cfg(not(target_arch = "wasm32"))]
97pub use store::{
98 SqliteMobEventStore, SqliteMobRunStore, SqliteMobSpecStore, SqliteMobStores,
99 SqliteRealmProfileStore,
100};
101pub use tasks::{MobTask, TaskBoard, TaskStatus};
102pub use validate::{
103 Diagnostic, DiagnosticCode, DiagnosticSeverity, partition_diagnostics, validate_definition,
104};
105
106pub type ExternalToolsProvider = std::sync::Arc<
112 dyn Fn() -> Option<std::sync::Arc<dyn meerkat_core::agent::AgentToolDispatcher>> + Send + Sync,
113>;
114
115#[cfg(test)]
116mod tests;