OpenHands/docs/architecture/backend_architecture.puml
Jirka Borovec e32d95cb1a
lint: simplify hooks already covered by Ruff (#1204)
* lint: simplify hooks already covered by Ruff

* prune dev dependency

* setting E, W, F

* poetry?

* autopep8

* quote-style = "single"

* double-quote-string-fixer

* --all-files

* apply

* Q

* drop double-quote-string-fixer

* --all-files

* apply pre-commit

* python3.11 -m poetry lock --no-update

---------

Co-authored-by: Robert Brennan <accounts@rbren.io>
2024-04-27 11:32:14 +00:00

223 lines
6.7 KiB
Plaintext

@startuml opendevin
!pragma useIntermediatePackages false
class opendevin.action.agent.AgentEchoAction {
content: str
runnable: bool
action: str
}
class opendevin.action.agent.AgentFinishAction {
runnable: bool
action: str
}
class opendevin.observation.AgentMessageObservation {
role: str
observation: str
}
class opendevin.action.agent.AgentRecallAction {
query: str
action: str
}
class opendevin.observation.AgentRecallObservation {
memories: List[str]
role: str
observation: str
}
class opendevin.action.agent.AgentSummarizeAction {
summary: str
action: str
}
class opendevin.action.agent.AgentThinkAction {
thought: str
runnable: bool
action: str
}
class opendevin.action.base.ExecutableAction {
}
class opendevin.action.base.NotExecutableAction {
}
class opendevin.observation.Observation {
content: str
}
class opendevin.action.base.Action {
}
class opendevin.action.base.NullAction {
action: str
}
class opendevin.action.bash.CmdKillAction {
id: int
action: str
}
class opendevin.action.bash.CmdRunAction {
command: str
background: bool
action: str
}
class opendevin.action.browse.BrowseURLAction {
url: str
action: str
}
class opendevin.observation.BrowserOutputObservation {
url: str
status_code: int
error: bool
observation: str
}
class opendevin.action.fileop.FileReadAction {
path: str
action: str
}
class opendevin.observation.FileReadObservation {
path: str
observation: str
}
class opendevin.action.fileop.FileWriteAction {
path: str
contents: str
action: str
}
class opendevin.observation.FileWriteObservation {
path: str
observation: str
}
class opendevin.action.tasks.AddTaskAction {
parent: str
goal: str
subtasks: list
action: str
}
class opendevin.action.tasks.ModifyTaskAction {
id: str
state: str
action: str
}
abstract class opendevin.agent.Agent {
_registry: Dict[str, Type[Agent]] {static}
llm: LLM
_complete: None
}
class opendevin.llm.llm.LLM {
model: None
api_key: None
base_url: None
_debug_dir: None
_debug_idx: None
_debug_id: None
_completion: None
}
class opendevin.controller.agent_controller.AgentController {
agent: Agent
max_iterations: int
workdir: str
command_manager: CommandManager
state: State
plan: Plan
callbacks: List[Callable]
}
class opendevin.observation.AgentErrorObservation {
observation: str
}
class opendevin.controller.command_manager.CommandManager {
directory: None
shell: None
}
class opendevin.observation.NullObservation {
observation: str
}
class opendevin.plan.Plan {
main_goal: str {static}
task: Task {static}
main_goal: str
task: None
}
class opendevin.state.State {
plan: Plan
iteration: int
background_commands_obs: List[CmdOutputObservation]
history: List[Tuple[Action, Observation]]
updated_info: List[Tuple[Action, Observation]]
}
class opendevin.observation.CmdOutputObservation {
command_id: int
command: str
exit_code: int
observation: str
}
class opendevin.sandbox.sandbox.DockerInteractive {
background_commands: Dict[int, BackgroundCommand] {static}
instance_id: None
instance_id: None
workspace_dir: None
workspace_dir: None
workspace_dir: None
timeout: int
container_image: None
container_name: None
}
class opendevin.observation.UserMessageObservation {
role: str
observation: str
}
class opendevin.plan.Task {
id: str {static}
goal: str {static}
parent: Task | None {static}
subtasks: List[Task] {static}
id: None
id: None
parent: None
goal: str
subtasks: None
}
class opendevin.server.session.Session {
websocket: None
controller: Optional[AgentController]
agent: Optional[Agent]
agent_task: None
}
opendevin.action.base.ExecutableAction <|-- opendevin.action.agent.AgentEchoAction
opendevin.action.base.NotExecutableAction <|-- opendevin.action.agent.AgentFinishAction
opendevin.observation.Observation <|-- opendevin.observation.AgentMessageObservation
opendevin.action.base.ExecutableAction <|-- opendevin.action.agent.AgentRecallAction
opendevin.observation.Observation <|-- opendevin.observation.AgentRecallObservation
opendevin.action.base.NotExecutableAction <|-- opendevin.action.agent.AgentSummarizeAction
opendevin.action.base.NotExecutableAction <|-- opendevin.action.agent.AgentThinkAction
opendevin.action.base.Action <|-- opendevin.action.base.ExecutableAction
opendevin.action.base.Action <|-- opendevin.action.base.NotExecutableAction
opendevin.action.base.NotExecutableAction <|-- opendevin.action.base.NullAction
opendevin.action.base.ExecutableAction <|-- opendevin.action.bash.CmdKillAction
opendevin.action.base.ExecutableAction <|-- opendevin.action.bash.CmdRunAction
opendevin.action.base.ExecutableAction <|-- opendevin.action.browse.BrowseURLAction
opendevin.observation.Observation <|-- opendevin.observation.BrowserOutputObservation
opendevin.action.base.ExecutableAction <|-- opendevin.action.fileop.FileReadAction
opendevin.observation.Observation <|-- opendevin.observation.FileReadObservation
opendevin.action.base.ExecutableAction <|-- opendevin.action.fileop.FileWriteAction
opendevin.observation.Observation <|-- opendevin.observation.FileWriteObservation
opendevin.action.base.NotExecutableAction <|-- opendevin.action.tasks.AddTaskAction
opendevin.action.base.NotExecutableAction <|-- opendevin.action.tasks.ModifyTaskAction
opendevin.agent.Agent *-- opendevin.agent.Agent
opendevin.agent.Agent *-- opendevin.llm.llm.LLM
opendevin.controller.agent_controller.AgentController *-- opendevin.agent.Agent
opendevin.observation.Observation <|-- opendevin.observation.AgentErrorObservation
opendevin.observation.Observation <|-- opendevin.observation.NullObservation
opendevin.plan.Plan *-- opendevin.plan.Task
opendevin.state.State *-- opendevin.plan.Plan
opendevin.state.State *-- opendevin.observation.CmdOutputObservation
opendevin.state.State *-- opendevin.action.base.Action
opendevin.state.State *-- opendevin.observation.Observation
opendevin.observation.Observation <|-- opendevin.observation.CmdOutputObservation
opendevin.sandbox.sandbox.DockerInteractive *-- opendevin.sandbox.sandbox.BackgroundCommand
opendevin.observation.Observation <|-- opendevin.observation.UserMessageObservation
opendevin.plan.Task *-- opendevin.plan.Task
opendevin.server.session.Session *-- opendevin.controller.agent_controller.AgentController
opendevin.server.session.Session *-- opendevin.agent.Agent
opendevin.controller.agent_controller.AgentController -> opendevin.state.State
opendevin.controller.agent_controller.AgentController -> opendevin.plan.Plan
opendevin.controller.agent_controller.AgentController -> opendevin.controller.command_manager.CommandManager
opendevin.controller.command_manager.CommandManager -> opendevin.sandbox.sandbox.DockerInteractive
footer Based on f3fda42; Generated by //py2puml//
@enduml