| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- from ..exceptions import AgentMalformedActionError
- from .agent import (
- AgentDelegateAction,
- AgentEchoAction,
- AgentFinishAction,
- AgentRecallAction,
- AgentSummarizeAction,
- AgentTalkAction,
- AgentThinkAction,
- )
- from .base import Action, NullAction
- from .bash import CmdKillAction, CmdRunAction, IPythonRunCellAction
- from .browse import BrowseURLAction
- from .fileop import FileReadAction, FileWriteAction
- from .github import GitHubPushAction
- from .tasks import AddTaskAction, ModifyTaskAction
- actions = (
- CmdKillAction,
- CmdRunAction,
- IPythonRunCellAction,
- BrowseURLAction,
- FileReadAction,
- FileWriteAction,
- AgentRecallAction,
- AgentThinkAction,
- AgentTalkAction,
- AgentFinishAction,
- AgentDelegateAction,
- AddTaskAction,
- ModifyTaskAction,
- GitHubPushAction,
- )
- ACTION_TYPE_TO_CLASS = {action_class.action: action_class for action_class in actions} # type: ignore[attr-defined]
- def action_from_dict(action: dict) -> Action:
- if not isinstance(action, dict):
- raise AgentMalformedActionError('action must be a dictionary')
- action = action.copy()
- if 'action' not in action:
- raise AgentMalformedActionError(f"'action' key is not found in {action=}")
- action_class = ACTION_TYPE_TO_CLASS.get(action['action'])
- if action_class is None:
- raise AgentMalformedActionError(
- f"'{action['action']=}' is not defined. Available actions: {ACTION_TYPE_TO_CLASS.keys()}"
- )
- args = action.get('args', {})
- try:
- decoded_action = action_class(**args)
- except TypeError:
- raise AgentMalformedActionError(f'action={action} has the wrong arguments')
- return decoded_action
- __all__ = [
- 'Action',
- 'NullAction',
- 'CmdRunAction',
- 'CmdKillAction',
- 'BrowseURLAction',
- 'FileReadAction',
- 'FileWriteAction',
- 'AgentRecallAction',
- 'AgentThinkAction',
- 'AgentTalkAction',
- 'AgentFinishAction',
- 'AgentDelegateAction',
- 'AgentEchoAction',
- 'AgentSummarizeAction',
- 'AddTaskAction',
- 'ModifyTaskAction',
- 'IPythonRunCellAction'
- ]
|