/**
 * The agent runtime — public surface.
 *
 * One import site for everything a host needs to drive a model conversation to
 * settlement: {@link createAgent} (the host-facing factory), the {@link Agent}
 * handle it returns, and the public type vocabulary a caller branches on
 * ({@link RunSnapshot}, {@link RunEvent}, {@link AgentConfig}, the tool boundary
 * types, and {@link RunError}). The pure transition factory is re-exported as
 * {@link step} for advanced hosts that want to drive the finite-state machine
 * themselves rather than through the conductor.
 *
 * Gateway types (`Conversation`, `Turn`, `Block`, `ToolDescriptor`, `Reply`,
 * `Emission`, `Channel`, `StreamOptions`, …) are intentionally *not* re-exported
 * here; consumers import those directly from "../llmgateway" or
 * "../llmgateway/contract" so there is a single source of truth for them.
 */
export { createAgent } from "./conductor";
export type { Agent, AgentDeps, AgentEventHandler } from "./conductor";
export type { RunSnapshot, RunPhase, PendingTool, RunEvent, AgentConfig, CompactionPolicy, ToolBox, ToolRunner, ToolCall, ToolOutcome, RunError, RunErrorKind, ModelInvoker, } from "./contract";
export { runError } from "./contract";
export { cadence as step, cadence, initialSnapshot } from "./cadence";
export type { StepFn, Transition } from "./cadence";
