__init__.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. from .base import Action, NullAction
  2. from .bash import CmdRunAction, CmdKillAction
  3. from .browse import BrowseURLAction
  4. from .fileop import FileReadAction, FileWriteAction
  5. from .agent import AgentRecallAction, AgentThinkAction, AgentFinishAction, AgentEchoAction, AgentSummarizeAction
  6. from .tasks import AddTaskAction, ModifyTaskAction
  7. actions = (
  8. CmdKillAction,
  9. CmdRunAction,
  10. BrowseURLAction,
  11. FileReadAction,
  12. FileWriteAction,
  13. AgentRecallAction,
  14. AgentThinkAction,
  15. AgentFinishAction
  16. )
  17. ACTION_TYPE_TO_CLASS = {action_class.action:action_class for action_class in actions} # type: ignore[attr-defined]
  18. def action_class_initialize_dispatcher(action: str, *args: str, **kwargs: str) -> Action:
  19. action_class = ACTION_TYPE_TO_CLASS.get(action)
  20. if action_class is None:
  21. raise KeyError(f"'{action=}' is not defined. Available actions: {ACTION_TYPE_TO_CLASS.keys()}")
  22. return action_class(*args, **kwargs)
  23. CLASS_TO_ACTION_TYPE = {v: k for k, v in ACTION_TYPE_TO_CLASS.items()}
  24. __all__ = [
  25. "Action",
  26. "NullAction",
  27. "CmdRunAction",
  28. "CmdKillAction",
  29. "BrowseURLAction",
  30. "FileReadAction",
  31. "FileWriteAction",
  32. "AgentRecallAction",
  33. "AgentThinkAction",
  34. "AgentFinishAction",
  35. "AgentEchoAction",
  36. "AgentSummarizeAction",
  37. "AddTaskAction",
  38. "ModifyTaskAction"
  39. ]