- matrix-gateway: POST /internal/matrix/presence/online endpoint - usePresenceHeartbeat hook with activity tracking - Auto away after 5 min inactivity - Offline on page close/visibility change - Integrated in MatrixChatRoom component
78 lines
2.4 KiB
Python
78 lines
2.4 KiB
Python
"""
|
|
NATS Subject Registry — Централізований реєстр всіх NATS subjects для Agents Core
|
|
"""
|
|
|
|
# ============================================================================
|
|
# PUBLISH (Agents Service → NATS)
|
|
# ============================================================================
|
|
|
|
# Matrix integration (stub для майбутнього)
|
|
INTEGRATION_MATRIX_MESSAGE = "integration.matrix.message"
|
|
|
|
# Agent lifecycle
|
|
AGENTS_INVOKE = "agents.invoke"
|
|
AGENTS_REPLY = "agents.reply"
|
|
AGENTS_ERROR = "agents.error"
|
|
AGENTS_TELEMETRY = "agents.telemetry"
|
|
|
|
# Agent runs
|
|
AGENTS_RUNS_CREATED = "agents.runs.created"
|
|
AGENTS_RUNS_FINISHED = "agents.runs.finished"
|
|
|
|
# Agent activity (для living map)
|
|
AGENTS_ACTIVITY = "agents.activity"
|
|
|
|
# ============================================================================
|
|
# SUBSCRIBE (Agents Service ← NATS)
|
|
# ============================================================================
|
|
|
|
# Messenger events
|
|
MESSAGE_CREATED = "message.created"
|
|
MESSAGE_UPDATED = "message.updated"
|
|
MESSAGE_DELETED = "message.deleted"
|
|
|
|
# Task events
|
|
TASK_CREATED = "task.created"
|
|
TASK_UPDATED = "task.updated"
|
|
TASK_ASSIGNED = "task.assigned"
|
|
|
|
# User actions
|
|
EVENT_USER_ACTION = "event.user.action"
|
|
|
|
# Usage tracking (already subscribed in Phase 6)
|
|
USAGE_AGENT = "usage.agent"
|
|
USAGE_LLM = "usage.llm"
|
|
USAGE_TOOL = "usage.tool"
|
|
|
|
# Agent replies
|
|
AGENT_REPLY_SENT = "agent.reply.sent"
|
|
AGENT_ERROR_EVENT = "agent.error"
|
|
|
|
# ============================================================================
|
|
# Subject Patterns (wildcards)
|
|
# ============================================================================
|
|
|
|
AGENTS_ALL = "agents.*"
|
|
MESSAGE_ALL = "message.*"
|
|
USAGE_ALL = "usage.*"
|
|
EVENT_ALL = "event.*"
|
|
|
|
# ============================================================================
|
|
# Helper Functions
|
|
# ============================================================================
|
|
|
|
def get_agent_subject(agent_id: str, event_type: str) -> str:
|
|
"""
|
|
Генерує subject для конкретного агента
|
|
Example: agents.agent:sofia.invoke
|
|
"""
|
|
return f"agents.{agent_id}.{event_type}"
|
|
|
|
def get_channel_subject(channel_id: str, event_type: str) -> str:
|
|
"""
|
|
Генерує subject для конкретного каналу
|
|
Example: channel.channel:123.message.created
|
|
"""
|
|
return f"channel.{channel_id}.{event_type}"
|
|
|