*** Settings ***
Documentation    E2E acceptance test for M2 (v3.1.0): Actor Compiler + Full LLM Integration.
...
...    Exercises actor YAML compilation into functional graphs, skill registry,
...    tool lifecycle, and plan execution with a custom actor using real LLM keys.
...    Zero mocking — all CLI invocations hit the real CleverAgents binary with
...    real provider keys.
Resource    common_e2e.resource
Suite Setup    E2E Suite Setup
Suite Teardown    E2E Suite Teardown

*** Variables ***
${ACTOR_NAME}    local/m2-e2e-actor
${ACTION_NAME}    local/m2-e2e-action
${RESOURCE_NAME}    local/m2-e2e-repo
${PROJECT_NAME}    local/m2-e2e-project

*** Test Cases ***
M2 Full Actor Compiler And LLM Integration
  [Documentation]    End-to-end acceptance test for the M2 milestone.
  ...
  ...    Exercises actor YAML compilation, registration via CLI,
  ...    resource and project setup, action creation referencing a
  ...    custom actor, and the full plan lifecycle (use, execute
  ...    strategize, execute, diff, apply) with real LLM API keys.
  [Tags]    E2E tdd_issue tdd_issue_4189 tdd_expected_fail
  Skip If No LLM Keys
  # ---- Step 1: Create temp git repo with sample project files ----
  ${repo_dir}=    Create Temp Git Repo    m2-e2e-repo
  Create Directory    ${repo_dir}${/}src
  Create File    ${repo_dir}${/}src${/}main.py    print("hello world")\n
  ${r_add}=    Run Process    git    add    .    cwd=${repo_dir}    timeout=60s    on_timeout=kill
  Should Be Equal As Integers    ${r_add.rc}    0    msg=git add failed (rc=${r_add.rc}). Check DEBUG logs above.
  ${r_commit}=    Run Process    git    commit    -m    Add source files    cwd=${repo_dir}    timeout=60s    on_timeout=kill
  Should Be Equal As Integers    ${r_commit.rc}    0    msg=git commit failed (rc=${r_commit.rc}). Check DEBUG logs above.
  # Detect the default branch name created by git init
  ${branch_result}=    Run Process    git    rev-parse    --abbrev-ref    HEAD    cwd=${repo_dir}    timeout=60s    on_timeout=kill
  ${branch}=    Strip String    ${branch_result.stdout}
  Log    Detected branch: ${branch}









