README.md
pyproject.toml
src/gymcraft/__init__.py
src/gymcraft/client.py
src/gymcraft/mcp_server.py
src/gymcraft/py.typed
src/gymcraft/types.py
src/gymcraft.egg-info/PKG-INFO
src/gymcraft.egg-info/SOURCES.txt
src/gymcraft.egg-info/dependency_links.txt
src/gymcraft.egg-info/entry_points.txt
src/gymcraft.egg-info/requires.txt
src/gymcraft.egg-info/top_level.txt
src/gymcraft/demos/__init__.py
src/gymcraft/demos/cli.py
src/gymcraft/demos/iron_golem_warden.py
src/gymcraft/demos/iron_mining.py
src/gymcraft/demos/llm_chat.py
src/gymcraft/demos/parkour_q_learning.py
src/gymcraft/gym/action/action_pb2.py
src/gymcraft/gym/action/action_pb2.pyi
src/gymcraft/gym/action/action_pb2_grpc.py
src/gymcraft/gym/action/components/attack_once_pb2.py
src/gymcraft/gym/action/components/attack_once_pb2.pyi
src/gymcraft/gym/action/components/attack_once_pb2_grpc.py
src/gymcraft/gym/action/components/break_block_pb2.py
src/gymcraft/gym/action/components/break_block_pb2.pyi
src/gymcraft/gym/action/components/break_block_pb2_grpc.py
src/gymcraft/gym/action/components/click_menu_button_pb2.py
src/gymcraft/gym/action/components/click_menu_button_pb2.pyi
src/gymcraft/gym/action/components/click_menu_button_pb2_grpc.py
src/gymcraft/gym/action/components/close_menu_pb2.py
src/gymcraft/gym/action/components/close_menu_pb2.pyi
src/gymcraft/gym/action/components/close_menu_pb2_grpc.py
src/gymcraft/gym/action/components/drop_item_pb2.py
src/gymcraft/gym/action/components/drop_item_pb2.pyi
src/gymcraft/gym/action/components/drop_item_pb2_grpc.py
src/gymcraft/gym/action/components/jump_pb2.py
src/gymcraft/gym/action/components/jump_pb2.pyi
src/gymcraft/gym/action/components/jump_pb2_grpc.py
src/gymcraft/gym/action/components/look_at_pb2.py
src/gymcraft/gym/action/components/look_at_pb2.pyi
src/gymcraft/gym/action/components/look_at_pb2_grpc.py
src/gymcraft/gym/action/components/move_menu_item_pb2.py
src/gymcraft/gym/action/components/move_menu_item_pb2.pyi
src/gymcraft/gym/action/components/move_menu_item_pb2_grpc.py
src/gymcraft/gym/action/components/move_to_pb2.py
src/gymcraft/gym/action/components/move_to_pb2.pyi
src/gymcraft/gym/action/components/move_to_pb2_grpc.py
src/gymcraft/gym/action/components/noop_pb2.py
src/gymcraft/gym/action/components/noop_pb2.pyi
src/gymcraft/gym/action/components/noop_pb2_grpc.py
src/gymcraft/gym/action/components/open_menu_pb2.py
src/gymcraft/gym/action/components/open_menu_pb2.pyi
src/gymcraft/gym/action/components/open_menu_pb2_grpc.py
src/gymcraft/gym/action/components/pick_up_item_pb2.py
src/gymcraft/gym/action/components/pick_up_item_pb2.pyi
src/gymcraft/gym/action/components/pick_up_item_pb2_grpc.py
src/gymcraft/gym/action/components/send_chat_pb2.py
src/gymcraft/gym/action/components/send_chat_pb2.pyi
src/gymcraft/gym/action/components/send_chat_pb2_grpc.py
src/gymcraft/gym/action/components/set_attack_target_pb2.py
src/gymcraft/gym/action/components/set_attack_target_pb2.pyi
src/gymcraft/gym/action/components/set_attack_target_pb2_grpc.py
src/gymcraft/gym/action/components/set_block_pb2.py
src/gymcraft/gym/action/components/set_block_pb2.pyi
src/gymcraft/gym/action/components/set_block_pb2_grpc.py
src/gymcraft/gym/action/components/step_move_pb2.py
src/gymcraft/gym/action/components/step_move_pb2.pyi
src/gymcraft/gym/action/components/step_move_pb2_grpc.py
src/gymcraft/gym/action/components/swim_to_pb2.py
src/gymcraft/gym/action/components/swim_to_pb2.pyi
src/gymcraft/gym/action/components/swim_to_pb2_grpc.py
src/gymcraft/gym/action/components/update_interesting_blocks_pb2.py
src/gymcraft/gym/action/components/update_interesting_blocks_pb2.pyi
src/gymcraft/gym/action/components/update_interesting_blocks_pb2_grpc.py
src/gymcraft/gym/action/components/use_item_pb2.py
src/gymcraft/gym/action/components/use_item_pb2.pyi
src/gymcraft/gym/action/components/use_item_pb2_grpc.py
src/gymcraft/gym/observation/observation_pb2.py
src/gymcraft/gym/observation/observation_pb2.pyi
src/gymcraft/gym/observation/observation_pb2_grpc.py
src/gymcraft/gym/observation/common/block_view_pb2.py
src/gymcraft/gym/observation/common/block_view_pb2.pyi
src/gymcraft/gym/observation/common/block_view_pb2_grpc.py
src/gymcraft/gym/observation/common/entity_view_pb2.py
src/gymcraft/gym/observation/common/entity_view_pb2.pyi
src/gymcraft/gym/observation/common/entity_view_pb2_grpc.py
src/gymcraft/gym/observation/common/item_entity_view_pb2.py
src/gymcraft/gym/observation/common/item_entity_view_pb2.pyi
src/gymcraft/gym/observation/common/item_entity_view_pb2_grpc.py
src/gymcraft/gym/observation/common/item_stack_view_pb2.py
src/gymcraft/gym/observation/common/item_stack_view_pb2.pyi
src/gymcraft/gym/observation/common/item_stack_view_pb2_grpc.py
src/gymcraft/gym/observation/common/slot_pb2.py
src/gymcraft/gym/observation/common/slot_pb2.pyi
src/gymcraft/gym/observation/common/slot_pb2_grpc.py
src/gymcraft/gym/observation/components/chat_pb2.py
src/gymcraft/gym/observation/components/chat_pb2.pyi
src/gymcraft/gym/observation/components/chat_pb2_grpc.py
src/gymcraft/gym/observation/components/health_log_pb2.py
src/gymcraft/gym/observation/components/health_log_pb2.pyi
src/gymcraft/gym/observation/components/health_log_pb2_grpc.py
src/gymcraft/gym/observation/components/interesting_blocks_pb2.py
src/gymcraft/gym/observation/components/interesting_blocks_pb2.pyi
src/gymcraft/gym/observation/components/interesting_blocks_pb2_grpc.py
src/gymcraft/gym/observation/components/menu_pb2.py
src/gymcraft/gym/observation/components/menu_pb2.pyi
src/gymcraft/gym/observation/components/menu_pb2_grpc.py
src/gymcraft/gym/observation/components/nearby_blocks_pb2.py
src/gymcraft/gym/observation/components/nearby_blocks_pb2.pyi
src/gymcraft/gym/observation/components/nearby_blocks_pb2_grpc.py
src/gymcraft/gym/observation/components/nearby_entities_pb2.py
src/gymcraft/gym/observation/components/nearby_entities_pb2.pyi
src/gymcraft/gym/observation/components/nearby_entities_pb2_grpc.py
src/gymcraft/gym/observation/components/nearby_items_pb2.py
src/gymcraft/gym/observation/components/nearby_items_pb2.pyi
src/gymcraft/gym/observation/components/nearby_items_pb2_grpc.py
src/gymcraft/gym/observation/components/self_pb2.py
src/gymcraft/gym/observation/components/self_pb2.pyi
src/gymcraft/gym/observation/components/self_pb2_grpc.py
src/gymcraft/gym/observation/components/world_pb2.py
src/gymcraft/gym/observation/components/world_pb2.pyi
src/gymcraft/gym/observation/components/world_pb2_grpc.py
src/gymcraft/gym/rpc/env_service_pb2.py
src/gymcraft/gym/rpc/env_service_pb2.pyi
src/gymcraft/gym/rpc/env_service_pb2_grpc.py
src/gymcraft/gym/space/space_spec_pb2.py
src/gymcraft/gym/space/space_spec_pb2.pyi
src/gymcraft/gym/space/space_spec_pb2_grpc.py
src/gymcraft/llm/__init__.py
src/gymcraft/llm/blocks.py
src/gymcraft/llm/completions.py
src/gymcraft/llm/context.py
src/gymcraft/llm/env.py
src/gymcraft/llm/errors.py
src/gymcraft/llm/history.py
src/gymcraft/llm/parser.py
src/gymcraft/llm/rendering.py
src/gymcraft/llm/space.py
src/gymcraft/llm/types.py
src/gymcraft/llm/components/__init__.py
src/gymcraft/llm/components/base.py
src/gymcraft/llm/components/registry.py
src/gymcraft/llm/components/actions/__init__.py
src/gymcraft/llm/components/actions/attack_once.py
src/gymcraft/llm/components/actions/break_block.py
src/gymcraft/llm/components/actions/click_menu_button.py
src/gymcraft/llm/components/actions/close_menu.py
src/gymcraft/llm/components/actions/drop_item.py
src/gymcraft/llm/components/actions/jump.py
src/gymcraft/llm/components/actions/look_at.py
src/gymcraft/llm/components/actions/move_menu_item.py
src/gymcraft/llm/components/actions/move_to.py
src/gymcraft/llm/components/actions/noop.py
src/gymcraft/llm/components/actions/open_menu.py
src/gymcraft/llm/components/actions/pick_up_item.py
src/gymcraft/llm/components/actions/send_chat.py
src/gymcraft/llm/components/actions/set_attack_target.py
src/gymcraft/llm/components/actions/set_block.py
src/gymcraft/llm/components/actions/step_move.py
src/gymcraft/llm/components/actions/swim_to.py
src/gymcraft/llm/components/actions/update_interesting_blocks.py
src/gymcraft/llm/components/actions/use_item.py
src/gymcraft/llm/components/observations/__init__.py
src/gymcraft/llm/components/observations/chat.py
src/gymcraft/llm/components/observations/health_log.py
src/gymcraft/llm/components/observations/interesting_blocks.py
src/gymcraft/llm/components/observations/last_actions.py
src/gymcraft/llm/components/observations/menu.py
src/gymcraft/llm/components/observations/nearby_blocks.py
src/gymcraft/llm/components/observations/nearby_entities.py
src/gymcraft/llm/components/observations/nearby_items.py
src/gymcraft/llm/components/observations/self.py
src/gymcraft/llm/components/observations/world.py
src/gymcraft/llm/templates/action_error.j2
src/gymcraft/llm/templates/system_prompt.j2
src/gymcraft/llm/templates/observation/chat.j2
src/gymcraft/llm/templates/observation/header.j2
src/gymcraft/llm/templates/observation/health_log.j2
src/gymcraft/llm/templates/observation/interesting_blocks.j2
src/gymcraft/llm/templates/observation/last_actions.j2
src/gymcraft/llm/templates/observation/menu.j2
src/gymcraft/llm/templates/observation/nearby_blocks.j2
src/gymcraft/llm/templates/observation/nearby_entities.j2
src/gymcraft/llm/templates/observation/nearby_items.j2
src/gymcraft/llm/templates/observation/self.j2
src/gymcraft/llm/templates/observation/world.j2
tests/test_demo_cli.py
tests/test_interesting_blocks.py
tests/test_llm_tools.py
tests/test_use_item.py