// PURPOSE: Anything-can-drive-the-UI command bus. Single dispatch point for
//          LLM tool calls, scripts, and remote control. JSON canonical form
//          plus a plain-text DSL sugar layer. Includes a visible "virtual
//          cursor" that animates to elements before commands act on them, so
//          LLM-driven sessions are legible to a watching human.
// ===========================================================================
// EXPORTS
// Bus:        commandBus (singleton), CommandBus (class)
// Types:      Command, Handler, HandlerContext, DispatchOptions,
//             ActionDescriptor, HistoryEntry
// Parser:     parseScript, parseLine, stringifyScript, ScriptOptions, ParsedScript
// Runner:     runScript, runScriptText, RunScriptOptions
// Cursor:     ensureCursor, showCursor, hideCursor, removeCursor,
//             moveCursorTo, moveCursorToElement, clickRipple, setCursorSpeed
// Provider:   CommandBusProvider — registers `navigate` via react-router,
//             mounts the cursor, exposes window.commandBus
// WebSocket:  connectCommandSocket, CommandSocket
// LLM bridge: buildSystemPrompt, extractActionBlocks, runActionBlocks,
//             estimateTokens, trimMessages, RunActionBlocksResult,
//             SystemPromptContext
// ===========================================================================
"use client";

export * from "./bus"
export * from "./parser"
export * from "./script"
export * from "./cursor"
export * from "./ws"
export * from "./llm-bridge"
export { CommandBusProvider } from "./provider"
