zzz / openhands /runtime /plugins /requirement.py
ar08's picture
Upload 1040 files
246d201 verified
raw
history blame contribute delete
693 Bytes
from abc import abstractmethod
from dataclasses import dataclass
from openhands.events.action import Action
from openhands.events.observation import Observation
class Plugin:
"""Base class for a plugin.
This will be initialized by the runtime client, which will run inside docker.
"""
name: str
@abstractmethod
async def initialize(self, username: str):
"""Initialize the plugin."""
pass
@abstractmethod
async def run(self, action: Action) -> Observation:
"""Run the plugin for a given action."""
pass
@dataclass
class PluginRequirement:
"""Requirement for a plugin."""
name: str