Files
timmy-config/wizards/allegro-primus/capabilities/__init__.py
2026-03-31 20:02:01 +00:00

119 lines
2.4 KiB
Python

#!/usr/bin/env python3
"""
AP Capability Discovery System
Provides capability registration, discovery, advertisement, and manifest management.
"""
from discovery import (
Capability,
CapabilityType,
CapabilityStatus,
CapabilityQuery,
CapabilityRegistry,
get_registry,
capability
)
from manifest import (
AgentManifest,
AgentRole,
ModelInfo,
ModelProvider,
PerformanceMetrics,
ResourceLimits,
ManifestBuilder,
get_default_manifest
)
from registry_server import (
CapabilityServer,
AgentInfo,
AgentStatus,
get_server
)
from advertise import (
AutoAdvertiser,
AdvertiseConfig,
AdvertiseState,
start_advertising,
stop_advertising,
get_advertiser
)
__version__ = "1.0.0"
__all__ = [
# Discovery
"Capability",
"CapabilityType",
"CapabilityStatus",
"CapabilityQuery",
"CapabilityRegistry",
"get_registry",
"capability",
# Manifest
"AgentManifest",
"AgentRole",
"ModelInfo",
"ModelProvider",
"PerformanceMetrics",
"ResourceLimits",
"ManifestBuilder",
"get_default_manifest",
# Server
"CapabilityServer",
"AgentInfo",
"AgentStatus",
"get_server",
# Advertise
"AutoAdvertiser",
"AdvertiseConfig",
"AdvertiseState",
"start_advertising",
"stop_advertising",
"get_advertiser"
]
def initialize(
agent_id: str = "allegro-primus",
father_endpoint: Optional[str] = None,
auto_advertise: bool = True
) -> CapabilityServer:
"""
Initialize the full capability discovery system.
Args:
agent_id: Unique identifier for this agent
father_endpoint: URL of father agent for registration
auto_advertise: Whether to auto-advertise capabilities
Returns:
Configured CapabilityServer instance
"""
# Initialize components
registry = get_registry(agent_id)
server = get_server(agent_id, father_endpoint)
# Start auto-advertisement if configured
if auto_advertise and father_endpoint:
from advertise import start_advertising
start_advertising(father_endpoint, agent_id)
return server
def shutdown():
"""Shutdown the capability discovery system."""
from advertise import stop_advertising
from registry_server import reset_server
from discovery import reset_registry
stop_advertising()
reset_server()
reset_registry()