#[cfg(target_arch = "wasm32")]
pub mod tokio {
pub use tokio_with_wasm::alias::*;
}
pub use meerkat_core::{
Agent,
AgentBuilder,
AgentConfig,
AgentError,
AgentEvent,
AgentLlmClient,
AgentSessionStore,
AgentToolDispatcher,
ArtifactRef,
AssistantMessage,
Availability,
AvailabilityCheck,
Budget,
BudgetConfig,
BudgetLimits,
BudgetPool,
BudgetType,
CompiledSchema,
ConcurrencyLimits,
Config,
ConfigDelta,
ConfigError,
ContextStrategy,
ForkBranch,
ForkBudgetPolicy,
HookCapability,
HookDecision,
HookEngine,
HookEngineError,
HookEntryConfig,
HookExecutionMode,
HookExecutionReport,
HookFailurePolicy,
HookId,
HookInvocation,
HookOutcome,
HookPatch,
HookPatchEnvelope,
HookPoint,
HookReasonCode,
HookRevision,
HookRunOverrides,
HookRuntimeConfig,
HooksConfig,
InteractionContent,
InteractionId,
LlmStreamResult,
LoopState,
McpServerConfig,
MeerkatSchema,
Message,
OpEvent,
OperationId,
OperationPolicy,
OperationResult,
OperationSpec,
OutputSchema,
Provider,
ProviderConfig,
ResponseStatus,
ResultShape,
RetryConfig,
RetryPolicy,
RunResult,
RuntimeBuildMode,
RuntimeEpochId,
SESSION_VERSION,
SchemaCompat,
SchemaError,
SchemaFormat,
SchemaWarning,
Session,
SessionId,
SessionLlmIdentity,
SessionMeta,
SessionMetadata,
SessionRuntimeBindings,
SessionTooling,
SpawnSpec,
StopReason,
StorageConfig,
SystemMessage,
ToolAccessPolicy,
ToolCall,
ToolCategoryOverride,
ToolDef,
ToolGateway,
ToolGatewayBuilder,
ToolResult,
Usage,
UserMessage,
WorkKind,
};
#[cfg(not(target_arch = "wasm32"))]
pub use meerkat_core::{
ConfigEnvelope, ConfigResolvedPaths, ConfigRuntime, ConfigRuntimeError, ConfigSnapshot,
ConfigStore, ConfigStoreMetadata, FileConfigStore, MemoryConfigStore, TaggedConfigStore,
};
#[cfg(feature = "comms")]
pub use meerkat_comms::agent::{CommsContent, CommsMessage, CommsStatus};
#[cfg(feature = "comms")]
pub use meerkat_comms::{CommsRuntime, CommsRuntimeError, CommsToolMaterial, CoreCommsConfig};
#[cfg(feature = "comms")]
pub use meerkat_core::SessionServiceCommsExt;
pub use meerkat_core::SessionServiceControlExt;
pub use meerkat_core::SessionServiceHistoryExt;
#[cfg(feature = "comms")]
pub use meerkat_core::{
CommsCommand, EventStream, InputSource, InputStreamMode, PeerDirectoryEntry,
PeerDirectorySource, PeerName, SendAndStreamError, SendError, SendReceipt, StreamError,
StreamScope,
};
pub use meerkat_client::{LlmClient, LlmDoneOutcome, LlmError, LlmEvent, LlmRequest, LlmResponse};
pub use meerkat_schedule::{
CalendarFieldSpec, CalendarTriggerSpec, ClaimDueRequest, ClaimDueResult, CreateScheduleRequest,
DeliveryCompletion, DeliveryDispatch, DeliveryReceipt, DeliveryReceiptStage, DeliveryTerminal,
DisabledScheduleStore, ForkContextSpec, HelperOptionsSpec, IntervalTriggerSpec,
MemoryScheduleStore, MisfirePolicy, MissingTargetPolicy, MobTargetBinding, Occurrence,
OccurrenceFailureClass, OccurrenceFilter, OccurrenceId, OccurrenceOrdinal, OccurrencePhase,
OverlapPolicy, SCHEDULE_TOOL_CAPABILITY_UNAVAILABLE, SCHEDULE_TOOL_INVALID_ARGUMENTS,
SCHEDULE_TOOL_NOT_FOUND, Schedule, ScheduleDomainError, ScheduleDriver, ScheduleDriverConfig,
ScheduleFilter, ScheduleId, SchedulePhase, ScheduleRevision, ScheduleService, ScheduleStore,
ScheduleStoreError, ScheduleStoreKind, ScheduleTargetDelivery, ScheduleTargetProbe,
ScheduleToolError, ScheduledMobAction, ScheduledMobBackendKind, ScheduledMobRuntimeMode,
ScheduledSessionAction, SessionMaterializationSpec, SessionTargetBinding, TargetBinding,
TargetProbeOutcome, TriggerSpec, UpdateScheduleRequest, handle_schedule_tools_call,
schedule_tools_list,
};
pub use meerkat_tools::ToolError;
mod factory;
pub use factory::{
AgentBuildConfig, AgentFactory, BuildAgentError, DynAgent,
decode_llm_client_override_from_service, encode_llm_client_override_for_service, provider_key,
};
mod persistence;
pub use persistence::PersistenceBundle;
#[cfg(feature = "session-store")]
pub use persistence::PersistenceError;
#[cfg(all(feature = "session-store", not(target_arch = "wasm32")))]
pub use persistence::open_realm_persistence_in;
mod service_factory;
#[cfg(feature = "session-store")]
pub use service_factory::build_persistent_service;
pub use service_factory::{FactoryAgent, FactoryAgentBuilder, build_ephemeral_service};
pub use meerkat_core::{
AppendSystemContextRequest, AppendSystemContextResult, AppendSystemContextStatus,
CreateSessionRequest, MobToolsBuildArgs, MobToolsFactory, SessionControlError, SessionError,
SessionHistoryPage, SessionHistoryQuery, SessionInfo, SessionQuery, SessionService,
SessionSummary, SessionUsage, SessionView, StartTurnRequest,
};
#[cfg(feature = "session-compaction")]
pub use meerkat_session::DefaultCompactor;
#[cfg(feature = "session-store")]
pub use meerkat_session::PersistentSessionService;
pub use meerkat_session::{EphemeralSessionService, SessionAgent, SessionAgentBuilder};
#[cfg(feature = "anthropic")]
pub use meerkat_client::AnthropicClient;
#[cfg(feature = "openai")]
pub use meerkat_client::OpenAiClient;
#[cfg(feature = "gemini")]
pub use meerkat_client::GeminiClient;
pub use meerkat_store::{SessionFilter, SessionStore, SessionStoreError, StoreError};
#[cfg(feature = "jsonl-store")]
pub use meerkat_store::JsonlStore;
#[cfg(feature = "memory-store")]
pub use meerkat_store::MemoryStore;
#[cfg(all(feature = "session-store", not(target_arch = "wasm32")))]
pub use meerkat_store::RedbScheduleStore;
#[cfg(all(feature = "session-store", not(target_arch = "wasm32")))]
pub use meerkat_store::RedbSessionStore;
#[cfg(all(feature = "session-store", not(target_arch = "wasm32")))]
pub use meerkat_store::SqliteScheduleStore;
#[cfg(all(feature = "session-store", not(target_arch = "wasm32")))]
pub use meerkat_store::SqliteSessionStore;
#[cfg(not(target_arch = "wasm32"))]
pub use meerkat_tools::{DispatchError, ToolDispatcher, ToolRegistry, ToolValidationError};
#[cfg(feature = "skills")]
inventory::submit! {
meerkat_skills::SkillRegistration {
id: "mob-communication",
name: "Mob Communication",
description: "How to communicate with peers in a collaborative mob",
scope: meerkat_core::skills::SkillScope::Builtin,
requires_capabilities: &["comms"],
body: include_str!("../skills/mob-communication/SKILL.md"),
extensions: &[],
}
}
#[cfg(feature = "comms")]
pub use meerkat_tools::CommsToolSurface;
#[cfg(all(feature = "session-store", not(target_arch = "wasm32")))]
pub use meerkat_tools::builtin::SqliteTaskStore;
pub use meerkat_tools::{
BuiltinTool, BuiltinToolConfig, BuiltinToolEntry, BuiltinToolError, CompositeDispatcher,
CompositeDispatcherError, EnforcedToolPolicy, MemoryTaskStore, ResolvedToolPolicy, TaskStore,
ToolMode, ToolPolicyLayer,
};
#[cfg(not(target_arch = "wasm32"))]
pub use meerkat_tools::{FileTaskStore, ensure_rkat_dir, find_project_root};
#[cfg(feature = "mcp")]
pub use meerkat_mcp::{
McpApplyDelta, McpApplyResult, McpConnection, McpError, McpLifecycleAction, McpLifecyclePhase,
McpReloadTarget, McpRouter, McpRouterAdapter, McpServerLifecycleState,
};
pub use meerkat_core::skills::{
SkillCollection, SkillDescriptor, SkillDocument, SkillFilter, SkillId, SkillIntrospectionEntry,
SkillRuntime, SkillScope,
};
pub use meerkat_contracts::{
self as contracts, CapabilitiesResponse, CapabilityHint, CapabilityId, CapabilityRegistration,
CapabilityScope, CapabilityStatus, CommsParams, ContractVersion, CoreCreateParams,
ErrorCategory, ErrorCode, HookParams, Protocol, SkillEntry, SkillInspectResponse,
SkillListResponse, SkillsParams, StructuredOutputParams, WireError, WireEvent, WireRunResult,
WireSessionInfo, WireSessionSummary, WireUsage, build_capabilities,
};
pub mod surface;
#[cfg(not(target_arch = "wasm32"))]
mod prompt_assembly;
#[cfg(not(target_arch = "wasm32"))]
pub use prompt_assembly::assemble_system_prompt;
#[cfg(not(target_arch = "wasm32"))]
mod sdk;
#[cfg(not(target_arch = "wasm32"))]
pub use sdk::*;
#[cfg(not(target_arch = "wasm32"))]
mod sdk_config;
#[cfg(not(target_arch = "wasm32"))]
pub use sdk_config::SdkConfigStore;
#[cfg(feature = "comms")]
pub fn compose_tools_with_comms(
base_tools: std::sync::Arc<dyn meerkat_core::AgentToolDispatcher>,
tool_usage_instructions: String,
material: meerkat_comms::CommsToolMaterial,
) -> Result<
(
std::sync::Arc<dyn meerkat_core::AgentToolDispatcher>,
String,
),
meerkat_tools::ToolError,
> {
use meerkat_tools::CommsToolSurface;
use std::sync::Arc;
let router = material.router().clone();
let trusted_peers = material.trusted_peers_shared();
let self_pubkey = material.self_pubkey();
let runtime = material.into_runtime();
let comms_surface = CommsToolSurface::new_with_runtime(router, trusted_peers.clone(), runtime);
let availability = CommsToolSurface::peer_availability(trusted_peers, self_pubkey);
let comms_gateway = meerkat_core::ToolGatewayBuilder::new()
.add_dispatcher_with_availability(Arc::new(comms_surface), availability)
.build()?;
let composite =
meerkat_core::DynamicToolComposite::new(vec![base_tools, Arc::new(comms_gateway)]);
let mut instructions = tool_usage_instructions;
if !instructions.is_empty() {
instructions.push_str("\n\n");
}
instructions.push_str(CommsToolSurface::usage_instructions());
Ok((Arc::new(composite), instructions))
}
pub mod prelude {
pub use super::{
AgentConfig, AgentError, AgentEvent, AssistantMessage, Budget, BudgetLimits, BudgetType,
Config, LlmClient, LlmError, LlmEvent, LlmRequest, Message, RetryPolicy, RunResult,
Session, SessionFilter, SessionId, SessionMeta, SessionStore, StopReason, SystemMessage,
ToolCall, ToolDef, ToolResult, Usage, UserMessage,
};
#[cfg(feature = "anthropic")]
pub use super::AnthropicClient;
#[cfg(feature = "openai")]
pub use super::OpenAiClient;
#[cfg(feature = "gemini")]
pub use super::GeminiClient;
}