-
Notifications
You must be signed in to change notification settings - Fork 0
Home
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/comSupervisorView over gRPC), - reads the
Tracer.hhexecution-trace feed (via the com gRPC adapters /tracer_jsonldecode), - 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 Coderf-theia 0.1.0 is live on PyPI. The [mcp] extra installs the rf-theia-mcp console script.
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.TheiaTestLibraryconsuming 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.
| 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.
-
Writing Scenarios — author a
.robotscenario, the keyword families, and the full keyword reference. -
MCP Server — the
rf-theia-mcpserver, its tools, env-var resolution, and.mcp.jsonwiring for Claude Code.
- Theia — the platform under test: https://github.com/perotheia/theia/wiki
- perotheia org: https://github.com/perotheia
Install
pip install rf-theia
pip install 'rf-theia[mcp]'Related wikis