christlurker's picture
FrontierAgent react demo
9d0fd45
Raw
History Blame Contribute Delete
958 Bytes
"""NodeContext — minimal facade between a DAG node and the framework."""
from __future__ import annotations
import logging
from collections.abc import Callable
from frontier_agent.models.pipeline_spec import NodeDefinition
logger = logging.getLogger(__name__)
class NodeContext:
"""Identity-only context object passed to every wrapped node."""
def __init__(
self,
node_def: NodeDefinition,
task_id_getter: Callable[[], str],
) -> None:
self._node_def = node_def
self._task_id_getter = task_id_getter
@property
def node_id(self) -> str:
return self._node_def.node_id
@property
def role_id(self) -> str:
return self._node_def.role_id
@property
def task_id(self) -> str:
return self._task_id_getter()
# Alias for callers that import ``DefaultNodeContext``; ``NodeContext``
# is the single concrete implementation.
DefaultNodeContext = NodeContext