mirror of
https://github.com/johndoe6345789/AutoMetabuilder.git
synced 2026-04-24 13:54:59 +00:00
- Implement core components: CLI argument parsing, environment loading, GitHub service creation, and logging configuration. - Add support for OpenAI client setup and model resolution. - Develop SDLC context loader from GitHub and repository files. - Implement workflow context and engine builders. - Introduce major workflow packages: `game_tick_loop` and `contextual_iterative_loop`. - Update localization files with new package descriptions and labels. - Streamline web navigation by loading items from a dedicated JSON file.
30 lines
1.0 KiB
Python
30 lines
1.0 KiB
Python
"""Run tools with logging and filtering."""
|
|
|
|
|
|
class ToolRunner:
|
|
"""Run tool callables with shared logging."""
|
|
def __init__(self, tool_map: dict, msgs: dict, logger):
|
|
self.tool_map = tool_map
|
|
self.msgs = msgs
|
|
self.logger = logger
|
|
|
|
def call(self, tool_name: str, **kwargs):
|
|
"""Call a named tool with filtered kwargs."""
|
|
tool = self.tool_map.get(tool_name)
|
|
if not tool:
|
|
msg = self.msgs.get(
|
|
"error_tool_not_found",
|
|
"Tool {name} not found or unavailable."
|
|
).format(name=tool_name)
|
|
self.logger.error(msg)
|
|
return msg
|
|
|
|
filtered_kwargs = {k: v for k, v in kwargs.items() if v is not None}
|
|
try:
|
|
result = tool(**filtered_kwargs)
|
|
return result if result is not None else "Success"
|
|
except Exception as error: # pylint: disable=broad-exception-caught
|
|
error_msg = f"Error executing {tool_name}: {error}"
|
|
self.logger.error(error_msg)
|
|
return error_msg
|