From 16c8b2a6e3fffe12a53bf7df399b34a58258c9c9 Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Wed, 11 Feb 2026 17:31:27 +0100 Subject: [PATCH] maybe this works? --- autogpt_platform/backend/backend/data/__init__.py | 13 ++++++++++--- autogpt_platform/backend/backend/data/graph.py | 6 ++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/autogpt_platform/backend/backend/data/__init__.py b/autogpt_platform/backend/backend/data/__init__.py index c98667e362..45f8f8ea85 100644 --- a/autogpt_platform/backend/backend/data/__init__.py +++ b/autogpt_platform/backend/backend/data/__init__.py @@ -1,8 +1,15 @@ -from backend.api.features.library.model import LibraryAgentPreset - from .graph import NodeModel from .integrations import Webhook # noqa: F401 # Resolve Webhook forward references NodeModel.model_rebuild() -LibraryAgentPreset.model_rebuild() + + +def _rebuild_library_agent_preset() -> None: + """Deferred model rebuild to avoid circular import.""" + from backend.api.features.library.model import LibraryAgentPreset + + LibraryAgentPreset.model_rebuild() + + +_rebuild_library_agent_preset() diff --git a/autogpt_platform/backend/backend/data/graph.py b/autogpt_platform/backend/backend/data/graph.py index 4ced05982b..16cfeb9faa 100644 --- a/autogpt_platform/backend/backend/data/graph.py +++ b/autogpt_platform/backend/backend/data/graph.py @@ -24,7 +24,7 @@ from pydantic import BaseModel, BeforeValidator, Field from pydantic.fields import computed_field from backend.blocks import get_block, get_blocks -from backend.blocks._base import AnyBlockSchema, Block, BlockType, EmptySchema +from backend.blocks._base import Block, BlockType, EmptySchema from backend.blocks.agent import AgentExecutorBlock from backend.blocks.io import AgentInputBlock, AgentOutputBlock from backend.blocks.llm import LlmModel @@ -47,6 +47,8 @@ from .db import BaseDbModel, query_raw_with_schema, transaction from .includes import AGENT_GRAPH_INCLUDE, AGENT_NODE_INCLUDE if TYPE_CHECKING: + from backend.blocks._base import AnyBlockSchema + from .execution import NodesInputMasks from .integrations import Webhook @@ -122,7 +124,7 @@ class Node(BaseDbModel): return self.metadata.get("credentials_optional", False) @property - def block(self) -> AnyBlockSchema | "_UnknownBlockBase": + def block(self) -> "AnyBlockSchema | _UnknownBlockBase": """Get the block for this node. Returns UnknownBlock if block is deleted/missing.""" block = get_block(self.block_id) if not block: