Skip to main content
This page is a quick-lookup index. For current session/runtime semantics, see Session contracts. For detailed usage with examples, see the Rust SDK reference.

Generated wire catalogs

The public protocol catalogs are generated from meerkat-contracts and committed with the repository: rkat-rpc initialize returns the compiled feature subset at runtime. The catalog above is the full documented surface with blob, sessions, events, streams, schedule, skills, runtime, live channels, mob, MCP, comms, auth, realm, and approval methods enabled.

Surface entry points

Core types

Traits

Runtime-backed build seam

For runtime-backed Rust surfaces, the canonical path is:
  1. MeerkatMachine::prepare_bindings(session_id)
  2. SessionBuildOptions.runtime_build_mode = RuntimeBuildMode::SessionOwned(bindings)
  3. SessionService::create_session(...)
For standalone/testing/embedded paths, prefer RuntimeBuildMode::StandaloneEphemeral explicitly.

Mobs (Rust SDK)

Mob runtime APIs live primarily in:
  • meerkat_mob (core runtime)
  • meerkat_mob_mcp (tool-dispatch helpers)

Core Rust types

MobBuilder methods

MobHandle methods

Rust example

Agent-Side Mob Integration (meerkat-mob-mcp)

Agent-side mob capability is exposed by composing:
  • meerkat_mob_mcp::MobMcpState
  • meerkat_mob_mcp::AgentMobToolSurfaceFactory
into:
  • SessionBuildOptions.mob_tools (meerkat_core::service).
This is the in-session mechanism for granting mob_* tools to the agent. external_tools remains the surface for custom callback tools and MCP-backed dispatchers. Mob orchestration has its own late-bound mob_tools factory slot, which receives session-scoped runtime authority before producing the dispatcher. Public host surfaces use typed control planes instead:
  • JSON-RPC / SDKs: typed mob/* methods
  • Public MCP hosts: typed meerkat_mob_* tools
For mob-only MCP hosts, meerkat-mob-mcp also exposes:
  • meerkat_mob_mcp::public_tools_list
  • meerkat_mob_mcp::handle_public_tools_call
Those helpers are for public host control-plane tools. AgentMobToolSurface remains the agent-side mob_* tool surface, late-bound through SessionBuildOptions.mob_tools.

Public mob host methods

Public application hosts should use the typed control planes rather than the agent-internal mob_* tool dispatcher: The WorkGraph-to-Flow composition is currently a deliberate MCP host contract: meerkat_workgraph_flow_launch, meerkat_workgraph_flow_reconcile, and meerkat_workgraph_flow_abandon_uncertain, with redacted linkage reads through meerkat_workgraph_flow_binding_get and meerkat_workgraph_flow_binding_list. Its semantic owner is the shared meerkat-mob::WorkGraphFlowBridge; MCP only adapts that owner to a public surface. Hosts start an autonomous reconciler at bootstrap, so durable bindings recover without another caller request. REST and generated JSON-RPC clients do not yet claim this composition contract; their ordinary Mob and WorkGraph surfaces remain independent. For cross-surface behavior and examples (CLI/RPC/REST/MCP/Python/TypeScript), see Mobs.

SDK entry points

Structured output types

See the structured output guide for usage details.

Hook types

See the hooks guide for usage details.

Skill types

See the skills guide for usage details.

Wire types (meerkat-contracts)

Error code reference

This table describes the higher-level canonical ErrorCode/wire envelope view. It is not identical to the lower-level SessionError transport mapping used by the session service adapters. Every ErrorCode maps to a stable string, JSON-RPC code, HTTP status, and CLI exit code: For session-service transport behavior specifically, see the Capability matrix.

Provider clients

All implement AgentLlmClient and normalize streaming responses to LlmEvent (text deltas, tool call deltas, usage updates, done). LlmError variants: RateLimited, ServerOverloaded, NetworkTimeout, ConnectionReset, ServerError, InvalidRequest, InvalidInputShape, InvalidConfig, AuthenticationFailed, ContentFiltered, ContextLengthExceeded, ModelNotFound, InvalidApiKey, Unknown, StreamParseError, IncompleteResponse. Use error.is_retryable() to check if an error should be retried.

Storage implementations

See also