1. Wrap neuri tool invocations to catch ActionError and return as
result strings instead of throwing. This allows the LLM to learn
from tool failures during its reasoning phase.
2. Enhance craftRecipe to use the recipe planner for auto-crafting
intermediate materials. If the bot has raw materials (e.g., logs)
but not direct ingredients (e.g., planks), it will automatically
craft the intermediates first.
3. Add memory note about the dual tool interface discovery (neuri
native tool calls vs JSON actions through TaskExecutor) for future
optimization work.