Implement EventHandler class for streaming tool call processing, add demo_tools console script and Makefile target, introduce demo_tools.py with echo and remember functions, and update ReplikaAgent with temperature parameter in demo_replika.py
The diff shows two changes in `src/ragent/__init__.py` within the `Agent.communicate` method:
- Replaced `isinstance(message, list)` with `hasattr(message, "__iter__")` to support any iterable type for the messages parameter.
- Fixed a bug where `message_role` was incorrectly assigned to `message["content"]` instead of `message["role"]` when processing dict messages, and moved the assignment before the content extraction to preserve the role value.
Adds a detailed section to README.md describing the practical challenges of implementing document embeddings with local LLMs like Ollama, including chunking strategies (paragraph, line, page), vector database integration with ChromaDB, and file format conversion considerations for book imports.
Add a new "Costs" section to the README documenting the low operational cost of approximately ten cents per day of chat usage, along with a screenshot (costs.png) showing the actual expenses from extensive testing.