2.6 KiB
RuntimeStatusStar Specification
Overview
RuntimeStatusStar is an internal ABP (AstrBot Protocol) star plugin that exposes runtime state information via callable tools. It provides diagnostic capabilities for monitoring the AstrBot core runtime health.
Tool Interface
Tools Exposed
All tools follow the ABP tool calling convention via call_tool(tool_name, arguments).
1. get_runtime_status
Returns the current runtime state.
Arguments: None
Returns:
{
"running": true,
"uptime_seconds": 12345.67
}
2. get_protocol_status
Returns the connection state of each protocol client.
Arguments: None
Returns:
{
"lsp": {"connected": true, "name": "lsp-client"},
"mcp": {"connected": false, "name": "mcp-client"},
"acp": {"connected": true, "name": "acp-client"},
"abp": {"connected": true, "name": "abp-client"}
}
3. get_star_registry
Returns the list of registered star names.
Arguments: None
Returns:
{
"stars": ["runtime-status-star", "star-1", "star-2"]
}
4. get_stats
Returns runtime statistics and metrics.
Arguments: None
Returns:
{
"total_messages": 100,
"last_activity": "2024-01-01T00:00:00Z"
}
Architecture
Component Hierarchy
AstrbotOrchestrator
└── RuntimeStatusStar (auto-registered)
└── Tools: get_runtime_status, get_protocol_status, get_star_registry, get_stats
Auto-Registration
RuntimeStatusStar is instantiated and registered in AstrbotOrchestrator.__init__():
from astrbot._internal.stars.runtime_status_star import RuntimeStatusStar
class AstrbotOrchestrator:
def __init__(self):
self._stars: dict[str, Star] = {}
# Auto-register RuntimeStatusStar
self._runtime_status_star = RuntimeStatusStar(self)
self._stars["runtime-status-star"] = self._runtime_status_star
Orchestrator Reference
RuntimeStatusStar holds a reference to the orchestrator to query state:
class RuntimeStatusStar(Star):
def __init__(self, orchestrator: AstrbotOrchestrator):
self._orchestrator = orchestrator
Implementation Notes
-
Thread Safety: The orchestrator may be accessed from multiple contexts. All state queries should be read-only.
-
Latency: Tool calls should return immediately without blocking. No polling or long-running operations.
-
Error Handling: If any status query fails, return an error message rather than raising an exception.
-
Future Extensibility: Additional stats can be added by extending the
get_statstool response structure.