Files

26 lines
577 B
Python

from contextlib import contextmanager
from contextvars import ContextVar
from dataclasses import dataclass
SYSTEM_BACKEND = "system"
SYSTEM_SENDER = "-"
@dataclass(frozen=True)
class Origin:
backend: str = SYSTEM_BACKEND
sender: str = SYSTEM_SENDER
command: str | None = None
ORIGIN: ContextVar[Origin] = ContextVar("agent_origin", default=Origin())
@contextmanager
def use_origin(backend: str, sender: str, command: str | None = None):
token = ORIGIN.set(Origin(backend, sender, command))
try:
yield
finally:
ORIGIN.reset(token)