message.py 930 B

12345678910111213141516171819202122232425262728293031323334
  1. from dataclasses import dataclass
  2. from openhands.core.schema import ActionType
  3. from openhands.events.action.action import Action, ActionSecurityRisk
  4. @dataclass
  5. class MessageAction(Action):
  6. content: str
  7. image_urls: list[str] | None = None
  8. wait_for_response: bool = False
  9. action: str = ActionType.MESSAGE
  10. security_risk: ActionSecurityRisk | None = None
  11. @property
  12. def message(self) -> str:
  13. return self.content
  14. @property
  15. def images_urls(self):
  16. # Deprecated alias for backward compatibility
  17. return self.image_urls
  18. @images_urls.setter
  19. def images_urls(self, value):
  20. self.image_urls = value
  21. def __str__(self) -> str:
  22. ret = f'**MessageAction** (source={self.source})\n'
  23. ret += f'CONTENT: {self.content}'
  24. if self.image_urls:
  25. for url in self.image_urls:
  26. ret += f'\nIMAGE_URL: {url}'
  27. return ret