#!/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()