This is the implementation of a ACL/A2A agent that proposes refactorings given a specification and a Python source code. 
It is based on an LLM. 

## Interface
See `advisor.asi` for the declared interface.

First send a _tell/spec_ message to give the specification, then an _upload_ message with the code to refactor.

The agent replies synchronously in streaming with an artifact (see `tests/clients/refactoring_advisor_client/run_test_client.py`) and asynchronously with an _upload_ message. 

### Settings
By default the LLM is mocked, change this setting with the `mock_flag` in `context.py` .

The mocked answer can be selected with the value of `MOCK_FILE` in `context.py` .

Select the LLM you want to use in `context.py` .

# Run the agent
```bash 
    python3 run_advisor_agent.py
```
