agent_os_kernel 3.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- agent_control_plane/__init__.py +662 -0
- agent_control_plane/a2a_adapter.py +543 -0
- agent_control_plane/adapter.py +417 -0
- agent_control_plane/agent_hibernation.py +394 -0
- agent_control_plane/agent_kernel.py +470 -0
- agent_control_plane/compliance.py +720 -0
- agent_control_plane/constraint_graphs.py +478 -0
- agent_control_plane/control_plane.py +854 -0
- agent_control_plane/example_executors.py +195 -0
- agent_control_plane/execution_engine.py +231 -0
- agent_control_plane/flight_recorder.py +846 -0
- agent_control_plane/governance_layer.py +435 -0
- agent_control_plane/hf_utils.py +563 -0
- agent_control_plane/interfaces/__init__.py +55 -0
- agent_control_plane/interfaces/kernel_interface.py +361 -0
- agent_control_plane/interfaces/plugin_interface.py +497 -0
- agent_control_plane/interfaces/protocol_interfaces.py +387 -0
- agent_control_plane/kernel_space.py +1009 -0
- agent_control_plane/langchain_adapter.py +424 -0
- agent_control_plane/lifecycle.py +3113 -0
- agent_control_plane/mcp_adapter.py +653 -0
- agent_control_plane/ml_safety.py +563 -0
- agent_control_plane/multimodal.py +727 -0
- agent_control_plane/mute_agent.py +422 -0
- agent_control_plane/observability.py +787 -0
- agent_control_plane/orchestrator.py +482 -0
- agent_control_plane/plugin_registry.py +750 -0
- agent_control_plane/policy_engine.py +954 -0
- agent_control_plane/process_isolation.py +777 -0
- agent_control_plane/shadow_mode.py +310 -0
- agent_control_plane/signals.py +493 -0
- agent_control_plane/supervisor_agents.py +430 -0
- agent_control_plane/time_travel_debugger.py +557 -0
- agent_control_plane/tool_registry.py +452 -0
- agent_control_plane/vfs.py +697 -0
- agent_kernel/__init__.py +69 -0
- agent_kernel/analyzer.py +435 -0
- agent_kernel/auditor.py +36 -0
- agent_kernel/completeness_auditor.py +237 -0
- agent_kernel/detector.py +203 -0
- agent_kernel/kernel.py +744 -0
- agent_kernel/memory_manager.py +85 -0
- agent_kernel/models.py +374 -0
- agent_kernel/nudge_mechanism.py +263 -0
- agent_kernel/outcome_analyzer.py +338 -0
- agent_kernel/patcher.py +582 -0
- agent_kernel/semantic_analyzer.py +316 -0
- agent_kernel/semantic_purge.py +349 -0
- agent_kernel/simulator.py +449 -0
- agent_kernel/teacher.py +85 -0
- agent_kernel/triage.py +152 -0
- agent_os/__init__.py +409 -0
- agent_os/_adversarial_impl.py +200 -0
- agent_os/_circuit_breaker_impl.py +232 -0
- agent_os/_mcp_metrics.py +193 -0
- agent_os/adversarial.py +20 -0
- agent_os/agents_compat.py +490 -0
- agent_os/audit_logger.py +135 -0
- agent_os/base_agent.py +651 -0
- agent_os/circuit_breaker.py +34 -0
- agent_os/cli/__init__.py +659 -0
- agent_os/cli/cmd_audit.py +128 -0
- agent_os/cli/cmd_init.py +152 -0
- agent_os/cli/cmd_policy.py +41 -0
- agent_os/cli/cmd_policy_gen.py +180 -0
- agent_os/cli/cmd_validate.py +258 -0
- agent_os/cli/mcp_scan.py +265 -0
- agent_os/cli/output.py +192 -0
- agent_os/cli/policy_checker.py +330 -0
- agent_os/compat.py +74 -0
- agent_os/constraint_graph.py +234 -0
- agent_os/content_governance.py +140 -0
- agent_os/context_budget.py +305 -0
- agent_os/credential_redactor.py +224 -0
- agent_os/diff_policy.py +89 -0
- agent_os/egress_policy.py +159 -0
- agent_os/escalation.py +276 -0
- agent_os/event_bus.py +124 -0
- agent_os/exceptions.py +180 -0
- agent_os/execution_context_policy.py +141 -0
- agent_os/github_enterprise.py +96 -0
- agent_os/health.py +20 -0
- agent_os/integrations/__init__.py +279 -0
- agent_os/integrations/a2a_adapter.py +279 -0
- agent_os/integrations/agent_lightning/__init__.py +30 -0
- agent_os/integrations/anthropic_adapter.py +420 -0
- agent_os/integrations/autogen_adapter.py +620 -0
- agent_os/integrations/base.py +1137 -0
- agent_os/integrations/compat.py +229 -0
- agent_os/integrations/config.py +98 -0
- agent_os/integrations/conversation_guardian.py +957 -0
- agent_os/integrations/crewai_adapter.py +467 -0
- agent_os/integrations/drift_detector.py +425 -0
- agent_os/integrations/dry_run.py +124 -0
- agent_os/integrations/escalation.py +582 -0
- agent_os/integrations/gemini_adapter.py +364 -0
- agent_os/integrations/google_adk_adapter.py +633 -0
- agent_os/integrations/guardrails_adapter.py +394 -0
- agent_os/integrations/health.py +197 -0
- agent_os/integrations/langchain_adapter.py +654 -0
- agent_os/integrations/llamafirewall.py +343 -0
- agent_os/integrations/llamaindex_adapter.py +188 -0
- agent_os/integrations/logging.py +191 -0
- agent_os/integrations/maf_adapter.py +631 -0
- agent_os/integrations/mistral_adapter.py +365 -0
- agent_os/integrations/openai_adapter.py +816 -0
- agent_os/integrations/openai_agents_sdk.py +406 -0
- agent_os/integrations/policy_compose.py +171 -0
- agent_os/integrations/profiling.py +144 -0
- agent_os/integrations/pydantic_ai_adapter.py +420 -0
- agent_os/integrations/rate_limiter.py +130 -0
- agent_os/integrations/rbac.py +143 -0
- agent_os/integrations/registry.py +113 -0
- agent_os/integrations/scope_guard.py +303 -0
- agent_os/integrations/semantic_kernel_adapter.py +769 -0
- agent_os/integrations/smolagents_adapter.py +629 -0
- agent_os/integrations/templates.py +178 -0
- agent_os/integrations/token_budget.py +134 -0
- agent_os/integrations/tool_aliases.py +190 -0
- agent_os/integrations/webhooks.py +177 -0
- agent_os/lite.py +208 -0
- agent_os/mcp_gateway.py +385 -0
- agent_os/mcp_message_signer.py +273 -0
- agent_os/mcp_protocols.py +161 -0
- agent_os/mcp_response_scanner.py +232 -0
- agent_os/mcp_security.py +924 -0
- agent_os/mcp_session_auth.py +231 -0
- agent_os/mcp_sliding_rate_limiter.py +184 -0
- agent_os/memory_guard.py +409 -0
- agent_os/metrics.py +134 -0
- agent_os/mute.py +428 -0
- agent_os/mute_agent.py +209 -0
- agent_os/policies/__init__.py +77 -0
- agent_os/policies/async_evaluator.py +275 -0
- agent_os/policies/backends.py +670 -0
- agent_os/policies/bridge.py +169 -0
- agent_os/policies/budget.py +85 -0
- agent_os/policies/cli.py +294 -0
- agent_os/policies/conflict_resolution.py +270 -0
- agent_os/policies/data_classification.py +252 -0
- agent_os/policies/evaluator.py +239 -0
- agent_os/policies/policy_schema.json +228 -0
- agent_os/policies/rate_limiting.py +145 -0
- agent_os/policies/schema.py +115 -0
- agent_os/policies/shared.py +331 -0
- agent_os/prompt_injection.py +694 -0
- agent_os/providers.py +182 -0
- agent_os/py.typed +0 -0
- agent_os/retry.py +81 -0
- agent_os/reversibility.py +251 -0
- agent_os/sandbox.py +432 -0
- agent_os/sandbox_provider.py +140 -0
- agent_os/secure_codegen.py +525 -0
- agent_os/security_skills.py +538 -0
- agent_os/semantic_policy.py +422 -0
- agent_os/server/__init__.py +15 -0
- agent_os/server/__main__.py +25 -0
- agent_os/server/app.py +277 -0
- agent_os/server/models.py +104 -0
- agent_os/shift_left_metrics.py +130 -0
- agent_os/stateless.py +742 -0
- agent_os/supervisor.py +148 -0
- agent_os/task_outcome.py +148 -0
- agent_os/transparency.py +181 -0
- agent_os/trust_root.py +128 -0
- agent_os_kernel-3.1.0.dist-info/METADATA +1269 -0
- agent_os_kernel-3.1.0.dist-info/RECORD +337 -0
- agent_os_kernel-3.1.0.dist-info/WHEEL +4 -0
- agent_os_kernel-3.1.0.dist-info/entry_points.txt +2 -0
- agent_os_kernel-3.1.0.dist-info/licenses/LICENSE +21 -0
- agent_os_observability/__init__.py +27 -0
- agent_os_observability/dashboards.py +898 -0
- agent_os_observability/metrics.py +398 -0
- agent_os_observability/server.py +223 -0
- agent_os_observability/tracer.py +232 -0
- agent_primitives/__init__.py +24 -0
- agent_primitives/failures.py +84 -0
- agent_primitives/py.typed +0 -0
- amb_core/__init__.py +177 -0
- amb_core/adapters/__init__.py +57 -0
- amb_core/adapters/aws_sqs_broker.py +376 -0
- amb_core/adapters/azure_servicebus_broker.py +340 -0
- amb_core/adapters/kafka_broker.py +260 -0
- amb_core/adapters/nats_broker.py +285 -0
- amb_core/adapters/rabbitmq_broker.py +235 -0
- amb_core/adapters/redis_broker.py +262 -0
- amb_core/broker.py +145 -0
- amb_core/bus.py +481 -0
- amb_core/cloudevents.py +509 -0
- amb_core/dlq.py +345 -0
- amb_core/hf_utils.py +536 -0
- amb_core/memory_broker.py +410 -0
- amb_core/models.py +141 -0
- amb_core/persistence.py +529 -0
- amb_core/schema.py +294 -0
- amb_core/tracing.py +358 -0
- atr/__init__.py +640 -0
- atr/access.py +348 -0
- atr/composition.py +645 -0
- atr/decorator.py +357 -0
- atr/executor.py +384 -0
- atr/health.py +557 -0
- atr/hf_utils.py +449 -0
- atr/injection.py +422 -0
- atr/metrics.py +440 -0
- atr/policies.py +403 -0
- atr/py.typed +2 -0
- atr/registry.py +452 -0
- atr/schema.py +480 -0
- atr/tools/safe/__init__.py +75 -0
- atr/tools/safe/calculator.py +467 -0
- atr/tools/safe/datetime_tool.py +443 -0
- atr/tools/safe/file_reader.py +402 -0
- atr/tools/safe/http_client.py +316 -0
- atr/tools/safe/json_parser.py +374 -0
- atr/tools/safe/text_tool.py +537 -0
- atr/tools/safe/toolkit.py +175 -0
- caas/__init__.py +162 -0
- caas/api/__init__.py +7 -0
- caas/api/server.py +1328 -0
- caas/caching.py +834 -0
- caas/cli.py +210 -0
- caas/conversation.py +223 -0
- caas/decay.py +72 -0
- caas/detection/__init__.py +9 -0
- caas/detection/detector.py +238 -0
- caas/enrichment.py +130 -0
- caas/gateway/__init__.py +27 -0
- caas/gateway/trust_gateway.py +474 -0
- caas/hf_utils.py +479 -0
- caas/ingestion/__init__.py +23 -0
- caas/ingestion/processors.py +253 -0
- caas/ingestion/structure_parser.py +188 -0
- caas/models.py +356 -0
- caas/pragmatic_truth.py +444 -0
- caas/routing/__init__.py +10 -0
- caas/routing/heuristic_router.py +58 -0
- caas/storage/__init__.py +9 -0
- caas/storage/store.py +389 -0
- caas/triad.py +213 -0
- caas/tuning/__init__.py +9 -0
- caas/tuning/tuner.py +329 -0
- caas/vfs/__init__.py +14 -0
- caas/vfs/filesystem.py +452 -0
- cmvk/__init__.py +218 -0
- cmvk/audit.py +402 -0
- cmvk/benchmarks.py +478 -0
- cmvk/constitutional.py +904 -0
- cmvk/hf_utils.py +301 -0
- cmvk/metrics.py +473 -0
- cmvk/profiles.py +300 -0
- cmvk/py.typed +0 -0
- cmvk/types.py +12 -0
- cmvk/verification.py +956 -0
- emk/__init__.py +89 -0
- emk/causal.py +352 -0
- emk/hf_utils.py +421 -0
- emk/indexer.py +83 -0
- emk/py.typed +0 -0
- emk/schema.py +204 -0
- emk/sleep_cycle.py +347 -0
- emk/store.py +281 -0
- iatp/__init__.py +166 -0
- iatp/attestation.py +461 -0
- iatp/cli.py +317 -0
- iatp/hf_utils.py +472 -0
- iatp/ipc_pipes.py +580 -0
- iatp/main.py +412 -0
- iatp/models/__init__.py +447 -0
- iatp/policy_engine.py +337 -0
- iatp/py.typed +2 -0
- iatp/recovery.py +321 -0
- iatp/security/__init__.py +270 -0
- iatp/sidecar/__init__.py +519 -0
- iatp/telemetry/__init__.py +164 -0
- iatp/tests/__init__.py +1 -0
- iatp/tests/test_attestation.py +370 -0
- iatp/tests/test_cli.py +131 -0
- iatp/tests/test_ed25519_attestation.py +211 -0
- iatp/tests/test_models.py +130 -0
- iatp/tests/test_policy_engine.py +347 -0
- iatp/tests/test_recovery.py +281 -0
- iatp/tests/test_security.py +222 -0
- iatp/tests/test_sidecar.py +167 -0
- iatp/tests/test_telemetry.py +175 -0
- mcp_kernel_server/__init__.py +28 -0
- mcp_kernel_server/cli.py +274 -0
- mcp_kernel_server/resources.py +217 -0
- mcp_kernel_server/server.py +564 -0
- mcp_kernel_server/tools.py +1174 -0
- mute_agent/__init__.py +68 -0
- mute_agent/core/__init__.py +1 -0
- mute_agent/core/execution_agent.py +166 -0
- mute_agent/core/handshake_protocol.py +201 -0
- mute_agent/core/reasoning_agent.py +238 -0
- mute_agent/knowledge_graph/__init__.py +1 -0
- mute_agent/knowledge_graph/graph_elements.py +65 -0
- mute_agent/knowledge_graph/multidimensional_graph.py +170 -0
- mute_agent/knowledge_graph/subgraph.py +224 -0
- mute_agent/listener/__init__.py +43 -0
- mute_agent/listener/adapters/__init__.py +31 -0
- mute_agent/listener/adapters/base_adapter.py +189 -0
- mute_agent/listener/adapters/caas_adapter.py +344 -0
- mute_agent/listener/adapters/control_plane_adapter.py +436 -0
- mute_agent/listener/adapters/iatp_adapter.py +332 -0
- mute_agent/listener/adapters/scak_adapter.py +251 -0
- mute_agent/listener/listener.py +610 -0
- mute_agent/listener/state_observer.py +436 -0
- mute_agent/listener/threshold_config.py +313 -0
- mute_agent/super_system/__init__.py +1 -0
- mute_agent/super_system/router.py +204 -0
- mute_agent/visualization/__init__.py +10 -0
- mute_agent/visualization/graph_debugger.py +502 -0
- nexus/README.md +60 -0
- nexus/__init__.py +51 -0
- nexus/arbiter.py +359 -0
- nexus/client.py +466 -0
- nexus/dmz.py +444 -0
- nexus/escrow.py +430 -0
- nexus/exceptions.py +286 -0
- nexus/pyproject.toml +36 -0
- nexus/registry.py +393 -0
- nexus/reputation.py +425 -0
- nexus/schemas/__init__.py +51 -0
- nexus/schemas/compliance.py +276 -0
- nexus/schemas/escrow.py +251 -0
- nexus/schemas/manifest.py +225 -0
- nexus/schemas/receipt.py +208 -0
- nexus/tests/__init__.py +0 -0
- nexus/tests/conftest.py +146 -0
- nexus/tests/test_arbiter.py +192 -0
- nexus/tests/test_dmz.py +194 -0
- nexus/tests/test_escrow.py +276 -0
- nexus/tests/test_exceptions.py +225 -0
- nexus/tests/test_registry.py +232 -0
- nexus/tests/test_reputation.py +328 -0
- nexus/tests/test_schemas.py +295 -0
|
@@ -0,0 +1,387 @@
|
|
|
1
|
+
# Copyright (c) Microsoft Corporation.
|
|
2
|
+
# Licensed under the MIT License.
|
|
3
|
+
"""
|
|
4
|
+
Protocol Interfaces - Integration Points for iatp, cmvk, and caas
|
|
5
|
+
|
|
6
|
+
This module defines the interfaces for integrating with the allowed
|
|
7
|
+
Layer 2 protocols:
|
|
8
|
+
- iatp: Inter-Agent Transport Protocol (message security)
|
|
9
|
+
- cmvk: Cryptographic Message Verification Kit (verification)
|
|
10
|
+
- caas: Context-as-a-Service (context routing)
|
|
11
|
+
|
|
12
|
+
Layer 3: The Framework
|
|
13
|
+
- These interfaces allow optional integration with Layer 2 protocols
|
|
14
|
+
- Implementations are injected at runtime, not hard-coded
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
from abc import ABC, abstractmethod
|
|
18
|
+
from typing import Any, Dict, List, Optional, Tuple
|
|
19
|
+
from dataclasses import dataclass, field
|
|
20
|
+
from enum import Enum
|
|
21
|
+
from datetime import datetime
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
# ============================================================================
|
|
25
|
+
# Message Security Interface (for iatp integration)
|
|
26
|
+
# ============================================================================
|
|
27
|
+
|
|
28
|
+
class SecurityLevel(Enum):
|
|
29
|
+
"""Security levels for message passing"""
|
|
30
|
+
NONE = "none"
|
|
31
|
+
SIGNED = "signed"
|
|
32
|
+
ENCRYPTED = "encrypted"
|
|
33
|
+
SIGNED_ENCRYPTED = "signed_encrypted"
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
@dataclass
|
|
37
|
+
class SecureMessage:
|
|
38
|
+
"""A secured message with optional encryption and signature"""
|
|
39
|
+
message_id: str
|
|
40
|
+
payload: Any
|
|
41
|
+
sender_id: str
|
|
42
|
+
recipient_id: str
|
|
43
|
+
timestamp: datetime
|
|
44
|
+
security_level: SecurityLevel = SecurityLevel.NONE
|
|
45
|
+
signature: Optional[bytes] = None
|
|
46
|
+
encrypted_payload: Optional[bytes] = None
|
|
47
|
+
metadata: Dict[str, Any] = field(default_factory=dict)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
@dataclass
|
|
51
|
+
class SecurityValidationResult:
|
|
52
|
+
"""Result of security validation"""
|
|
53
|
+
is_valid: bool
|
|
54
|
+
security_level: SecurityLevel
|
|
55
|
+
sender_verified: bool = False
|
|
56
|
+
integrity_verified: bool = False
|
|
57
|
+
decrypted_payload: Optional[Any] = None
|
|
58
|
+
errors: List[str] = field(default_factory=list)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
class MessageSecurityInterface(ABC):
|
|
62
|
+
"""
|
|
63
|
+
Abstract interface for message security (iatp integration).
|
|
64
|
+
|
|
65
|
+
This interface defines how to secure inter-agent messages.
|
|
66
|
+
Implementations can use iatp or any other security protocol.
|
|
67
|
+
|
|
68
|
+
Example Usage:
|
|
69
|
+
```python
|
|
70
|
+
from agent_control_plane.interfaces import MessageSecurityInterface
|
|
71
|
+
|
|
72
|
+
class IATPMessageSecurity(MessageSecurityInterface):
|
|
73
|
+
def secure_message(self, message, security_level):
|
|
74
|
+
# Use iatp to secure the message
|
|
75
|
+
...
|
|
76
|
+
|
|
77
|
+
control_plane.register_message_security(IATPMessageSecurity())
|
|
78
|
+
```
|
|
79
|
+
"""
|
|
80
|
+
|
|
81
|
+
@abstractmethod
|
|
82
|
+
def secure_message(
|
|
83
|
+
self,
|
|
84
|
+
message: Any,
|
|
85
|
+
sender_id: str,
|
|
86
|
+
recipient_id: str,
|
|
87
|
+
security_level: SecurityLevel = SecurityLevel.SIGNED_ENCRYPTED
|
|
88
|
+
) -> SecureMessage:
|
|
89
|
+
"""
|
|
90
|
+
Secure a message for transmission.
|
|
91
|
+
|
|
92
|
+
Args:
|
|
93
|
+
message: The message payload to secure
|
|
94
|
+
sender_id: ID of the sending agent
|
|
95
|
+
recipient_id: ID of the receiving agent
|
|
96
|
+
security_level: Desired security level
|
|
97
|
+
|
|
98
|
+
Returns:
|
|
99
|
+
SecureMessage with appropriate security applied
|
|
100
|
+
"""
|
|
101
|
+
pass
|
|
102
|
+
|
|
103
|
+
@abstractmethod
|
|
104
|
+
def validate_message(self, secure_message: SecureMessage) -> SecurityValidationResult:
|
|
105
|
+
"""
|
|
106
|
+
Validate a received secure message.
|
|
107
|
+
|
|
108
|
+
Args:
|
|
109
|
+
secure_message: The message to validate
|
|
110
|
+
|
|
111
|
+
Returns:
|
|
112
|
+
SecurityValidationResult with validation details
|
|
113
|
+
"""
|
|
114
|
+
pass
|
|
115
|
+
|
|
116
|
+
@abstractmethod
|
|
117
|
+
def register_agent_keys(
|
|
118
|
+
self,
|
|
119
|
+
agent_id: str,
|
|
120
|
+
public_key: bytes,
|
|
121
|
+
key_type: str = "ed25519"
|
|
122
|
+
) -> bool:
|
|
123
|
+
"""
|
|
124
|
+
Register an agent's public key for verification.
|
|
125
|
+
|
|
126
|
+
Args:
|
|
127
|
+
agent_id: ID of the agent
|
|
128
|
+
public_key: Agent's public key
|
|
129
|
+
key_type: Type of key (default: ed25519)
|
|
130
|
+
|
|
131
|
+
Returns:
|
|
132
|
+
True if registration was successful
|
|
133
|
+
"""
|
|
134
|
+
pass
|
|
135
|
+
|
|
136
|
+
def get_supported_security_levels(self) -> List[SecurityLevel]:
|
|
137
|
+
"""Get supported security levels"""
|
|
138
|
+
return list(SecurityLevel)
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
# ============================================================================
|
|
142
|
+
# Verification Interface (for cmvk integration)
|
|
143
|
+
# ============================================================================
|
|
144
|
+
|
|
145
|
+
class VerificationType(Enum):
|
|
146
|
+
"""Types of verification"""
|
|
147
|
+
SIGNATURE = "signature"
|
|
148
|
+
HASH = "hash"
|
|
149
|
+
HASH_CHAIN_PROOF = "hash_chain_proof"
|
|
150
|
+
ZERO_KNOWLEDGE = "zero_knowledge"
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
@dataclass
|
|
154
|
+
class VerificationRequest:
|
|
155
|
+
"""Request for verification"""
|
|
156
|
+
request_id: str
|
|
157
|
+
data: Any
|
|
158
|
+
verification_type: VerificationType
|
|
159
|
+
expected_proof: Optional[bytes] = None
|
|
160
|
+
metadata: Dict[str, Any] = field(default_factory=dict)
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
@dataclass
|
|
164
|
+
class VerificationResult:
|
|
165
|
+
"""Result of verification"""
|
|
166
|
+
is_verified: bool
|
|
167
|
+
verification_type: VerificationType
|
|
168
|
+
proof: Optional[bytes] = None
|
|
169
|
+
timestamp: datetime = field(default_factory=datetime.now)
|
|
170
|
+
details: Dict[str, Any] = field(default_factory=dict)
|
|
171
|
+
errors: List[str] = field(default_factory=list)
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
class VerificationInterface(ABC):
|
|
175
|
+
"""
|
|
176
|
+
Abstract interface for cryptographic verification (cmvk integration).
|
|
177
|
+
|
|
178
|
+
This interface defines how to verify data integrity and authenticity.
|
|
179
|
+
Implementations can use cmvk or any other verification system.
|
|
180
|
+
|
|
181
|
+
Example Usage:
|
|
182
|
+
```python
|
|
183
|
+
from agent_control_plane.interfaces import VerificationInterface
|
|
184
|
+
|
|
185
|
+
class CMVKVerifier(VerificationInterface):
|
|
186
|
+
def verify(self, request):
|
|
187
|
+
# Use cmvk for verification
|
|
188
|
+
...
|
|
189
|
+
|
|
190
|
+
control_plane.register_verifier(CMVKVerifier())
|
|
191
|
+
```
|
|
192
|
+
"""
|
|
193
|
+
|
|
194
|
+
@abstractmethod
|
|
195
|
+
def create_proof(
|
|
196
|
+
self,
|
|
197
|
+
data: Any,
|
|
198
|
+
verification_type: VerificationType = VerificationType.SIGNATURE
|
|
199
|
+
) -> bytes:
|
|
200
|
+
"""
|
|
201
|
+
Create a verification proof for data.
|
|
202
|
+
|
|
203
|
+
Args:
|
|
204
|
+
data: The data to create proof for
|
|
205
|
+
verification_type: Type of verification to use
|
|
206
|
+
|
|
207
|
+
Returns:
|
|
208
|
+
Proof bytes
|
|
209
|
+
"""
|
|
210
|
+
pass
|
|
211
|
+
|
|
212
|
+
@abstractmethod
|
|
213
|
+
def verify(self, request: VerificationRequest) -> VerificationResult:
|
|
214
|
+
"""
|
|
215
|
+
Verify data against a proof.
|
|
216
|
+
|
|
217
|
+
Args:
|
|
218
|
+
request: The verification request
|
|
219
|
+
|
|
220
|
+
Returns:
|
|
221
|
+
VerificationResult with verification details
|
|
222
|
+
"""
|
|
223
|
+
pass
|
|
224
|
+
|
|
225
|
+
@abstractmethod
|
|
226
|
+
def verify_chain(
|
|
227
|
+
self,
|
|
228
|
+
data_chain: List[Any],
|
|
229
|
+
proofs: List[bytes]
|
|
230
|
+
) -> List[VerificationResult]:
|
|
231
|
+
"""
|
|
232
|
+
Verify a chain of data items.
|
|
233
|
+
|
|
234
|
+
Args:
|
|
235
|
+
data_chain: List of data items
|
|
236
|
+
proofs: List of corresponding proofs
|
|
237
|
+
|
|
238
|
+
Returns:
|
|
239
|
+
List of verification results
|
|
240
|
+
"""
|
|
241
|
+
pass
|
|
242
|
+
|
|
243
|
+
def get_supported_verification_types(self) -> List[VerificationType]:
|
|
244
|
+
"""Get supported verification types"""
|
|
245
|
+
return [VerificationType.SIGNATURE, VerificationType.HASH]
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
# ============================================================================
|
|
249
|
+
# Context Routing Interface (for caas integration)
|
|
250
|
+
# ============================================================================
|
|
251
|
+
|
|
252
|
+
class RoutingStrategy(Enum):
|
|
253
|
+
"""Routing strategies for context"""
|
|
254
|
+
ROUND_ROBIN = "round_robin"
|
|
255
|
+
LEAST_LOADED = "least_loaded"
|
|
256
|
+
CONTENT_BASED = "content_based"
|
|
257
|
+
CAPABILITY_BASED = "capability_based"
|
|
258
|
+
PRIORITY_BASED = "priority_based"
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
@dataclass
|
|
262
|
+
class ContextMetadata:
|
|
263
|
+
"""Metadata about a context"""
|
|
264
|
+
context_id: str
|
|
265
|
+
content_type: str
|
|
266
|
+
size_bytes: int
|
|
267
|
+
created_at: datetime
|
|
268
|
+
tags: List[str] = field(default_factory=list)
|
|
269
|
+
attributes: Dict[str, Any] = field(default_factory=dict)
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
@dataclass
|
|
273
|
+
class RoutingContext:
|
|
274
|
+
"""Context for routing decisions"""
|
|
275
|
+
request_id: str
|
|
276
|
+
content: Any
|
|
277
|
+
metadata: ContextMetadata
|
|
278
|
+
constraints: Dict[str, Any] = field(default_factory=dict)
|
|
279
|
+
preferences: Dict[str, Any] = field(default_factory=dict)
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
@dataclass
|
|
283
|
+
class RouteResult:
|
|
284
|
+
"""Result of a routing operation"""
|
|
285
|
+
success: bool
|
|
286
|
+
target_id: str
|
|
287
|
+
strategy_used: RoutingStrategy
|
|
288
|
+
latency_ms: float = 0.0
|
|
289
|
+
fallback_targets: List[str] = field(default_factory=list)
|
|
290
|
+
metadata: Dict[str, Any] = field(default_factory=dict)
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
class ContextRoutingInterface(ABC):
|
|
294
|
+
"""
|
|
295
|
+
Abstract interface for context routing (caas integration).
|
|
296
|
+
|
|
297
|
+
This interface defines how to route context to appropriate handlers.
|
|
298
|
+
Implementations can use caas or any other context routing system.
|
|
299
|
+
|
|
300
|
+
Example Usage:
|
|
301
|
+
```python
|
|
302
|
+
from agent_control_plane.interfaces import ContextRoutingInterface
|
|
303
|
+
|
|
304
|
+
class CAASRouter(ContextRoutingInterface):
|
|
305
|
+
def route_context(self, context, available_handlers):
|
|
306
|
+
# Use caas for routing
|
|
307
|
+
...
|
|
308
|
+
|
|
309
|
+
control_plane.register_context_router(CAASRouter())
|
|
310
|
+
```
|
|
311
|
+
"""
|
|
312
|
+
|
|
313
|
+
@abstractmethod
|
|
314
|
+
def route_context(
|
|
315
|
+
self,
|
|
316
|
+
context: RoutingContext,
|
|
317
|
+
available_handlers: List[str],
|
|
318
|
+
strategy: RoutingStrategy = RoutingStrategy.CAPABILITY_BASED
|
|
319
|
+
) -> RouteResult:
|
|
320
|
+
"""
|
|
321
|
+
Route context to an appropriate handler.
|
|
322
|
+
|
|
323
|
+
Args:
|
|
324
|
+
context: The context to route
|
|
325
|
+
available_handlers: List of available handler IDs
|
|
326
|
+
strategy: Routing strategy to use
|
|
327
|
+
|
|
328
|
+
Returns:
|
|
329
|
+
RouteResult with target and metadata
|
|
330
|
+
"""
|
|
331
|
+
pass
|
|
332
|
+
|
|
333
|
+
@abstractmethod
|
|
334
|
+
def register_handler(
|
|
335
|
+
self,
|
|
336
|
+
handler_id: str,
|
|
337
|
+
capabilities: List[str],
|
|
338
|
+
capacity: int = 100,
|
|
339
|
+
metadata: Optional[Dict[str, Any]] = None
|
|
340
|
+
) -> bool:
|
|
341
|
+
"""
|
|
342
|
+
Register a context handler.
|
|
343
|
+
|
|
344
|
+
Args:
|
|
345
|
+
handler_id: ID of the handler
|
|
346
|
+
capabilities: List of content types/tags the handler can process
|
|
347
|
+
capacity: Maximum concurrent contexts
|
|
348
|
+
metadata: Optional handler metadata
|
|
349
|
+
|
|
350
|
+
Returns:
|
|
351
|
+
True if registration was successful
|
|
352
|
+
"""
|
|
353
|
+
pass
|
|
354
|
+
|
|
355
|
+
@abstractmethod
|
|
356
|
+
def unregister_handler(self, handler_id: str) -> bool:
|
|
357
|
+
"""
|
|
358
|
+
Unregister a context handler.
|
|
359
|
+
|
|
360
|
+
Args:
|
|
361
|
+
handler_id: ID of the handler to unregister
|
|
362
|
+
|
|
363
|
+
Returns:
|
|
364
|
+
True if unregistration was successful
|
|
365
|
+
"""
|
|
366
|
+
pass
|
|
367
|
+
|
|
368
|
+
@abstractmethod
|
|
369
|
+
def get_handler_status(self, handler_id: str) -> Dict[str, Any]:
|
|
370
|
+
"""
|
|
371
|
+
Get status of a registered handler.
|
|
372
|
+
|
|
373
|
+
Args:
|
|
374
|
+
handler_id: ID of the handler
|
|
375
|
+
|
|
376
|
+
Returns:
|
|
377
|
+
Handler status dictionary
|
|
378
|
+
"""
|
|
379
|
+
pass
|
|
380
|
+
|
|
381
|
+
def get_routing_statistics(self) -> Dict[str, Any]:
|
|
382
|
+
"""Get routing statistics"""
|
|
383
|
+
return {}
|
|
384
|
+
|
|
385
|
+
def get_supported_strategies(self) -> List[RoutingStrategy]:
|
|
386
|
+
"""Get supported routing strategies"""
|
|
387
|
+
return list(RoutingStrategy)
|