33 lines
937 B
Python
33 lines
937 B
Python
"""Shared OpenClaw lifecycle primitives."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from uuid import UUID
|
|
|
|
from app.models.gateways import Gateway
|
|
from app.services.openclaw.constants import (
|
|
_GATEWAY_AGENT_PREFIX,
|
|
_GATEWAY_AGENT_SUFFIX,
|
|
_GATEWAY_OPENCLAW_AGENT_PREFIX,
|
|
)
|
|
|
|
|
|
class GatewayAgentIdentity:
|
|
"""Naming and identity rules for Mission Control gateway-main agents."""
|
|
|
|
@classmethod
|
|
def session_key_for_id(cls, gateway_id: UUID) -> str:
|
|
return f"{_GATEWAY_AGENT_PREFIX}{gateway_id}{_GATEWAY_AGENT_SUFFIX}"
|
|
|
|
@classmethod
|
|
def session_key(cls, gateway: Gateway) -> str:
|
|
return cls.session_key_for_id(gateway.id)
|
|
|
|
@classmethod
|
|
def openclaw_agent_id_for_id(cls, gateway_id: UUID) -> str:
|
|
return f"{_GATEWAY_OPENCLAW_AGENT_PREFIX}{gateway_id}"
|
|
|
|
@classmethod
|
|
def openclaw_agent_id(cls, gateway: Gateway) -> str:
|
|
return cls.openclaw_agent_id_for_id(gateway.id)
|