Skip to content
vladyslav-kinzerskiy edited this page Jun 15, 2026 · 3 revisions

rf-theia

rf-theia is a Robot Framework + TPT testing harness for Theia / Artheia. It is a reusable, pip-installable library that:

  • drives the live supervisor (services/com SupervisorView over gRPC),
  • reads the Tracer.hh execution-trace feed (via the com gRPC adapters / tracer_jsonl decode),
  • regression-tests the artheia generators, and
  • asserts end-to-end signal flow across Functional Clusters (FCs) — supervision cascades, hybrid-automata (gen_statem) transitions, and static netgraph topology.
pip install rf-theia            # the harness
pip install 'rf-theia[mcp]'     # + the MCP server for Claude Code

rf-theia 0.1.0 is live on PyPI. The [mcp] extra installs the rf-theia-mcp console script.

The key concept: harness vs. scenarios

rf-theia is the harness only — a standalone library (its own repo, mounted as the rf-theia/ submodule). The .robot scenarios that test a specific Theia deployment do not live here. They live in the consuming project (e.g. perotheia/theia at testing/scenarios/) and import the harness as a single Robot library:

*** Settings ***
Library    rf_theia.TheiaTestLibrary
consuming repo (perotheia/theia)          rf-theia (submodule / PyPI)
  testing/scenarios/*.robot   ──imports──►  rf_theia.TheiaTestLibrary
  testing/fixtures/*.json                   rf_theia/runtime/   (semantics)
  .venv/  (rf-theia installed here)         rf_theia/adapters/  (supervisor gRPC,
  .mcp.json ──► rf-theia/run_mcp.sh                              tracer JSONL, MCP)

This separation lets the harness evolve and ship independently (PyPI / deb wheels) while each project keeps its own test corpus, fixtures, and rig definitions.

What it drives

Surface How rf-theia reaches it
Supervisor tree (start/stop/crash children, restart strategies) services/com SupervisorView gRPC, default localhost:5051
Execution traces (Tracer.hh records) trace feed → tracer_jsonl decode → event bus
gen_statem FCs (drive + observe one statem standalone) probe injects gate events; observer reads the STATEM trace — see [[Probe and Isolation Testing
Static topology / netgraph artheia-emitted netgraph.json, cross-checked against the rig

A single suite-scoped runtime ties these together: Load Rig binds a typed rig context (from artheia's rig-deps JSON) and opens the supervisor channel lazily, so hermetic tests can load a rig fixture without a live stack.

Pages

  • Writing Scenarios — author a .robot scenario, the keyword families, and the full keyword reference.
  • MCP Server — the rf-theia-mcp server, its tools, env-var resolution, and .mcp.json wiring for Claude Code.

Related wikis

rf-theia wiki


Install

pip install rf-theia
pip install 'rf-theia[mcp]'

Related wikis

Clone this wiki locally