*** Settings *** Documentation Integration tests for enhanced version, info, diagnostics commands Resource ${CURDIR}/common.resource Library Process Library OperatingSystem Library String Library Collections Suite Setup Setup Test Environment Suite Teardown Cleanup Test Environment *** Keywords *** Run CLI With Clean Home [Documentation] Run a CLI command with a temp HOME to avoid stale config [Arguments] @{cmd} ${tmpdir}= Evaluate __import__('tempfile').mkdtemp(prefix='cli_core_') ${result}= Run Process @{cmd} timeout=120s on_timeout=kill env:HOME=${tmpdir} RETURN ${result} *** Test Cases *** Version Command Default Rich Format [Documentation] Version command with default (rich) format shows version string ${result}= Run Process ${PYTHON} -m cleveragents version timeout=120s on_timeout=kill Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} 1.0.0 Should Contain ${result.stdout} CleverAgents Version Command JSON Format [Documentation] Version command with global --format json returns valid JSON ${result}= Run Process ${PYTHON} -m cleveragents --format json version timeout=120s on_timeout=kill Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} "version": "1.0.0" Should Contain ${result.stdout} "schema": "v3" Should Contain ${result.stdout} "channel": "stable" Should Contain ${result.stdout} "python" Should Contain ${result.stdout} "dependencies" Should Contain ${result.stdout} "build_date" Should Contain ${result.stdout} "commit" Version Command Plain Format [Documentation] Version command with global --format plain returns key-value pairs ${result}= Run Process ${PYTHON} -m cleveragents --format plain version timeout=120s on_timeout=kill Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} version: 1.0.0 Should Contain ${result.stdout} schema: v3 Version Command YAML Format [Documentation] Version command with global --format yaml returns YAML ${result}= Run Process ${PYTHON} -m cleveragents --format yaml version timeout=120s on_timeout=kill Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} version: 1.0.0 Should Contain ${result.stdout} schema: v3 Info Command Default Rich Format [Documentation] Info command with default (rich) format shows environment details ${result}= Run Process ${PYTHON} -m cleveragents info timeout=120s on_timeout=kill Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} Environment Should Contain ${result.stdout} Runtime Info Command JSON Format [Documentation] Info command with global --format json returns structured data ${result}= Run CLI With Clean Home ${PYTHON} -m cleveragents --format json info Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} "version": "1.0.0" Should Contain ${result.stdout} "data_dir" Should Contain ${result.stdout} "database" Should Contain ${result.stdout} "server_mode" Info Command Plain Format [Documentation] Info command with global --format plain returns key-value pairs ${result}= Run CLI With Clean Home ${PYTHON} -m cleveragents --format plain info Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} version: 1.0.0 Should Contain ${result.stdout} server_mode: Diagnostics Command Default Rich Format [Documentation] Diagnostics command with default (rich) format runs checks ${result}= Run Process ${PYTHON} -m cleveragents diagnostics timeout=120s on_timeout=kill Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} Checks Should Contain ${result.stdout} Summary Diagnostics Command JSON Format [Documentation] Diagnostics command with global --format json returns structured data ${result}= Run Process ${PYTHON} -m cleveragents --format json diagnostics timeout=120s on_timeout=kill Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} "checks" Should Contain ${result.stdout} "summary" Should Contain ${result.stdout} "recommendations" Should Contain ${result.stdout} "total" Should Contain ${result.stdout} "warnings" Should Contain ${result.stdout} "errors" Diagnostics Command Plain Format [Documentation] Diagnostics command with global --format plain returns key-value pairs ${result}= Run Process ${PYTHON} -m cleveragents --format plain diagnostics timeout=120s on_timeout=kill Should Be Equal As Integers ${result.rc} 0 Should Contain ${result.stdout} checks: Should Contain ${result.stdout} summary: Diagnostics Command Check Flag Returns Valid Exit Code [Documentation] Diagnostics --check exits 0 when no critical errors are found. ... Disk-space errors are tolerated since CI runners may have low disk. ${result}= Run Process ${PYTHON} -m cleveragents --format json diagnostics --check timeout=120s on_timeout=kill Should Contain ${result.stdout} "checks" Should Contain ${result.stdout} "has_errors" # Accept exit code 0 (clean) or 1 if the only error is disk space (CI environment) IF ${result.rc} != 0 Should Contain ${result.stdout} Disk space Diagnostics --check failed with non-disk error: ${result.stdout} END Diagnostics Command Performance [Documentation] Diagnostics command completes within acceptable time ${start}= Get Time epoch ${result}= Run Process ${PYTHON} -m cleveragents --format json diagnostics timeout=120s on_timeout=kill ${end}= Get Time epoch ${duration}= Evaluate ${end} - ${start} Should Be True ${duration} < 90 Diagnostics took too long: ${duration}s Should Be Equal As Integers ${result.rc} 0