*** Settings *** Documentation Smoke tests for the Actor Compiler (GRAPH → LangGraph) Resource ${CURDIR}/common.resource Suite Setup Setup Test Environment Suite Teardown Cleanup Test Environment *** Variables *** ${HELPER} ${CURDIR}/helper_actor_compiler.py *** Test Cases *** Compile Simple Graph Actor YAML [Documentation] Compile the simple_graph example and verify node/edge counts [Tags] slow ${result}= Run Process ${PYTHON} ${HELPER} compile ${CURDIR}/../examples/actors/simple_graph.yaml cwd=${WORKSPACE} Log ${result.stdout} Log ${result.stderr} Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} actor-compiler-ok Compile Graph Workflow Actor YAML [Documentation] Compile the graph_workflow example and verify success [Tags] slow ${result}= Run Process ${PYTHON} ${HELPER} compile ${CURDIR}/../examples/actors/graph_workflow.yaml cwd=${WORKSPACE} Log ${result.stdout} Log ${result.stderr} Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} actor-compiler-ok Retrieve Compilation Metadata [Documentation] Verify metadata output from the compiler contains node IDs [Tags] slow ${result}= Run Process ${PYTHON} ${HELPER} metadata ${CURDIR}/../examples/actors/simple_graph.yaml cwd=${WORKSPACE} Log ${result.stdout} Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} actor-compiler-metadata Reject LLM Actor Compilation [Documentation] Attempt to compile an LLM-type actor and expect failure [Tags] slow ${result}= Run Process ${PYTHON} ${HELPER} compile-fail ${CURDIR}/../examples/actors/simple_llm.yaml cwd=${WORKSPACE} Log ${result.stdout} Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} actor-compiler-expected-fail Should Contain ${result.stdout} GRAPH Detect Cross-Actor Subgraph Cycle Via actor_ref Field [Documentation] Verify that mutually-referencing actors raise SubgraphCycleError. ... This is the regression test for issue #1431: _detect_subgraph_cycles() ... was reading node.config.get("actor_ref") instead of node.actor_ref, ... causing cycle detection to silently fail. [Tags] slow ${result}= Run Process ${PYTHON} ${HELPER} cycle-detect dummy cwd=${WORKSPACE} Log ${result.stdout} Log ${result.stderr} Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} actor-compiler-cycle-detected Extract LSP Binding From Typed lsp_binding Field [Documentation] Verify that a node with a typed lsp_binding field populates ... CompilationMetadata.lsp_bindings — regression test for issue #1432: ... _extract_lsp_bindings() was reading only node.config.get("lsp_bindings") ... instead of the NodeLspBinding typed field on NodeDefinition. [Tags] slow ${result}= Run Process ${PYTHON} ${HELPER} lsp-binding-field cwd=${WORKSPACE} Log ${result.stdout} Log ${result.stderr} Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} actor-compiler-lsp-binding-ok Should Contain ${result.stdout} lsp-server: local/pyright