*** Settings ***
Library    OperatingSystem
Library    Collections
Library    Process

*** Variables ***
${PYTHON}              python

*** Test Cases ***
V2 Actor Config Produces Provider And Graph Descriptor
    ${config}=    Set Variable    ${OUTPUT DIR}/v2_actor.yaml
    ${content}=    Catenate    SEPARATOR=\n
    ...    cleveragents:
    ...    ${SPACE*2}default_router: main_router
    ...    agents:
    ...    ${SPACE*2}paper_writer:
    ...    ${SPACE*4}type: llm
    ...    ${SPACE*4}config:
    ...    ${SPACE*6}provider: openai
    ...    ${SPACE*6}model: gpt-4
    ...    ${SPACE*6}unsafe: true
    ...    ${SPACE*6}options:
    ...    ${SPACE*8}temperature: 0.5
    ...    routes:
    ...    ${SPACE*2}main_router:
    ...    ${SPACE*4}type: stream
    ...    ${SPACE*4}operators:
    ...    ${SPACE*6}- type: map
    ...    ${SPACE*8}params:
    ...    ${SPACE*10}agent: paper_writer
    ...    ${SPACE*4}publications:
    ...    ${SPACE*6}- __output__
    Create File    ${config}    ${content}
    ${result}=    Run Process    ${PYTHON}    robot/helper_actor_config.py    ${config}
    Should Be Equal As Integers    ${result.rc}    0
    ${payload}=    Evaluate    __import__('json').loads('''${result.stdout.strip()}''')
    Should Be Equal    ${payload['provider']}    openai
    Should Be Equal    ${payload['model']}    gpt-4
    Should Be True     ${payload['unsafe']}
    List Should Contain Value    ${payload['graph_keys']}    agents
    List Should Contain Value    ${payload['graph_keys']}    routes
    Should Be Equal As Numbers    ${payload['options']['temperature']}    0.5

Missing Config File Exits With Non-Zero Code And Stderr Message
    [Tags]    tdd_issue    tdd_issue_4202    tdd_expected_fail
    ${missing}=    Set Variable    ${OUTPUT DIR}/does_not_exist_actor.yaml
    ${result}=    Run Process    ${PYTHON}    robot/helper_actor_config.py    ${missing}
    Should Not Be Equal As Integers    ${result.rc}    0
    Should Contain    ${result.stderr}    Error: Config file not found at '${missing}'
