# IMPORTANT: LEGACY V0 CODE - Deprecated since version 1.0.0, scheduled for removal April 1, 2026 # This file is part of the legacy (V0) implementation of OpenHands and will be removed soon as we complete the migration to V1. # OpenHands V1 uses the Software Agent SDK for the agentic core and runs a new application server. Please refer to: # - V1 agentic core (SDK): https://github.com/OpenHands/software-agent-sdk # - V1 application server (in this repo): openhands/app_server/ # Unless you are working on deprecation, please avoid extending this legacy file and consult the V1 codepaths above. # Tag: Legacy-V0 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) -> None: """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