119 lines
2.4 KiB
Python
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()
|