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,361 @@
|
|
|
1
|
+
# Copyright (c) Microsoft Corporation.
|
|
2
|
+
# Licensed under the MIT License.
|
|
3
|
+
"""
|
|
4
|
+
Kernel Interface - Abstract Base for Agent Kernels
|
|
5
|
+
|
|
6
|
+
This interface defines the contract that any kernel implementation must follow.
|
|
7
|
+
External kernels like SCAK (Self-Correcting Agent Kernel) should inherit from
|
|
8
|
+
this interface rather than being hard-imported.
|
|
9
|
+
|
|
10
|
+
Pattern: Instead of `import scak`, define KernelInterface here.
|
|
11
|
+
SCAK and other kernels will later inherit from this interface.
|
|
12
|
+
|
|
13
|
+
Layer 3: The Framework
|
|
14
|
+
- This is the governance layer that defines Agent, Supervisor, Tool, and Policy
|
|
15
|
+
- Kernels are injected at runtime via config or dependency injection
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
from abc import ABC, abstractmethod
|
|
19
|
+
from typing import Any, Dict, List, Optional, Callable, TYPE_CHECKING
|
|
20
|
+
from dataclasses import dataclass, field
|
|
21
|
+
from enum import Enum
|
|
22
|
+
from datetime import datetime
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class KernelCapability(Enum):
|
|
26
|
+
"""Capabilities that a kernel implementation may support"""
|
|
27
|
+
|
|
28
|
+
# Core capabilities
|
|
29
|
+
SESSION_MANAGEMENT = "session_management"
|
|
30
|
+
PERMISSION_CHECKING = "permission_checking"
|
|
31
|
+
POLICY_ENFORCEMENT = "policy_enforcement"
|
|
32
|
+
AUDIT_LOGGING = "audit_logging"
|
|
33
|
+
|
|
34
|
+
# Advanced capabilities
|
|
35
|
+
SELF_CORRECTION = "self_correction" # e.g., SCAK
|
|
36
|
+
SHADOW_MODE = "shadow_mode"
|
|
37
|
+
CAPABILITY_RESTRICTION = "capability_restriction" # e.g., Mute Agent pattern
|
|
38
|
+
CONSTRAINT_GRAPHS = "constraint_graphs"
|
|
39
|
+
|
|
40
|
+
# Runtime features
|
|
41
|
+
HOT_RELOAD = "hot_reload"
|
|
42
|
+
DISTRIBUTED = "distributed"
|
|
43
|
+
ASYNC_EXECUTION = "async_execution"
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
@dataclass
|
|
47
|
+
class KernelMetadata:
|
|
48
|
+
"""Metadata about a kernel implementation"""
|
|
49
|
+
|
|
50
|
+
name: str
|
|
51
|
+
version: str
|
|
52
|
+
description: str
|
|
53
|
+
capabilities: List[KernelCapability] = field(default_factory=list)
|
|
54
|
+
author: str = ""
|
|
55
|
+
homepage: str = ""
|
|
56
|
+
|
|
57
|
+
# Runtime info
|
|
58
|
+
is_loaded: bool = False
|
|
59
|
+
load_timestamp: Optional[datetime] = None
|
|
60
|
+
|
|
61
|
+
# Configuration schema (JSON Schema format)
|
|
62
|
+
config_schema: Dict[str, Any] = field(default_factory=dict)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class KernelInterface(ABC):
|
|
66
|
+
"""
|
|
67
|
+
Abstract interface for Agent Kernels.
|
|
68
|
+
|
|
69
|
+
The Agent Kernel is the central component that mediates all interactions
|
|
70
|
+
between LLMs (raw compute) and the execution environment. It provides
|
|
71
|
+
governance, safety, and observability for autonomous agents.
|
|
72
|
+
|
|
73
|
+
Any kernel implementation (including SCAK) should inherit from this interface.
|
|
74
|
+
This allows the control plane to work with any kernel without hard dependencies.
|
|
75
|
+
|
|
76
|
+
Example Usage:
|
|
77
|
+
```python
|
|
78
|
+
# In your kernel implementation (e.g., scak package)
|
|
79
|
+
from agent_control_plane.interfaces import KernelInterface
|
|
80
|
+
|
|
81
|
+
class SCAKKernel(KernelInterface):
|
|
82
|
+
def create_session(self, agent_id, permissions=None):
|
|
83
|
+
# SCAK-specific implementation
|
|
84
|
+
...
|
|
85
|
+
|
|
86
|
+
# In the control plane
|
|
87
|
+
control_plane = AgentControlPlane()
|
|
88
|
+
control_plane.register_kernel(SCAKKernel())
|
|
89
|
+
```
|
|
90
|
+
"""
|
|
91
|
+
|
|
92
|
+
@property
|
|
93
|
+
@abstractmethod
|
|
94
|
+
def metadata(self) -> KernelMetadata:
|
|
95
|
+
"""Return metadata about this kernel implementation"""
|
|
96
|
+
pass
|
|
97
|
+
|
|
98
|
+
@abstractmethod
|
|
99
|
+
def create_session(
|
|
100
|
+
self,
|
|
101
|
+
agent_id: str,
|
|
102
|
+
permissions: Optional[Dict[str, Any]] = None
|
|
103
|
+
) -> Any:
|
|
104
|
+
"""
|
|
105
|
+
Create a new agent session with specified permissions.
|
|
106
|
+
|
|
107
|
+
Args:
|
|
108
|
+
agent_id: Unique identifier for the agent
|
|
109
|
+
permissions: Dictionary mapping action types to permission levels
|
|
110
|
+
|
|
111
|
+
Returns:
|
|
112
|
+
Session context object (implementation-specific)
|
|
113
|
+
"""
|
|
114
|
+
pass
|
|
115
|
+
|
|
116
|
+
@abstractmethod
|
|
117
|
+
def terminate_session(self, session_id: str) -> bool:
|
|
118
|
+
"""
|
|
119
|
+
Terminate an agent session.
|
|
120
|
+
|
|
121
|
+
Args:
|
|
122
|
+
session_id: ID of the session to terminate
|
|
123
|
+
|
|
124
|
+
Returns:
|
|
125
|
+
True if session was terminated, False if not found
|
|
126
|
+
"""
|
|
127
|
+
pass
|
|
128
|
+
|
|
129
|
+
@abstractmethod
|
|
130
|
+
def check_permission(
|
|
131
|
+
self,
|
|
132
|
+
session_id: str,
|
|
133
|
+
action_type: str,
|
|
134
|
+
parameters: Dict[str, Any]
|
|
135
|
+
) -> tuple[bool, Optional[str]]:
|
|
136
|
+
"""
|
|
137
|
+
Check if an action is permitted for the given session.
|
|
138
|
+
|
|
139
|
+
Args:
|
|
140
|
+
session_id: ID of the agent session
|
|
141
|
+
action_type: Type of action being requested
|
|
142
|
+
parameters: Parameters for the action
|
|
143
|
+
|
|
144
|
+
Returns:
|
|
145
|
+
Tuple of (is_permitted, reason_if_denied)
|
|
146
|
+
"""
|
|
147
|
+
pass
|
|
148
|
+
|
|
149
|
+
@abstractmethod
|
|
150
|
+
def submit_request(
|
|
151
|
+
self,
|
|
152
|
+
session_id: str,
|
|
153
|
+
action_type: str,
|
|
154
|
+
parameters: Dict[str, Any]
|
|
155
|
+
) -> Any:
|
|
156
|
+
"""
|
|
157
|
+
Submit an execution request for processing.
|
|
158
|
+
|
|
159
|
+
Args:
|
|
160
|
+
session_id: ID of the agent session
|
|
161
|
+
action_type: Type of action to execute
|
|
162
|
+
parameters: Parameters for the action
|
|
163
|
+
|
|
164
|
+
Returns:
|
|
165
|
+
Execution request object (implementation-specific)
|
|
166
|
+
"""
|
|
167
|
+
pass
|
|
168
|
+
|
|
169
|
+
@abstractmethod
|
|
170
|
+
def execute(self, request: Any) -> Any:
|
|
171
|
+
"""
|
|
172
|
+
Execute an approved request.
|
|
173
|
+
|
|
174
|
+
Args:
|
|
175
|
+
request: The execution request to process
|
|
176
|
+
|
|
177
|
+
Returns:
|
|
178
|
+
Execution result (implementation-specific)
|
|
179
|
+
"""
|
|
180
|
+
pass
|
|
181
|
+
|
|
182
|
+
@abstractmethod
|
|
183
|
+
def add_policy_rule(self, rule: Any) -> None:
|
|
184
|
+
"""
|
|
185
|
+
Add a policy rule to the kernel.
|
|
186
|
+
|
|
187
|
+
Args:
|
|
188
|
+
rule: Policy rule to add (implementation-specific)
|
|
189
|
+
"""
|
|
190
|
+
pass
|
|
191
|
+
|
|
192
|
+
@abstractmethod
|
|
193
|
+
def get_audit_log(self, limit: int = 100) -> List[Dict[str, Any]]:
|
|
194
|
+
"""
|
|
195
|
+
Get audit log entries.
|
|
196
|
+
|
|
197
|
+
Args:
|
|
198
|
+
limit: Maximum number of entries to return
|
|
199
|
+
|
|
200
|
+
Returns:
|
|
201
|
+
List of audit log entries
|
|
202
|
+
"""
|
|
203
|
+
pass
|
|
204
|
+
|
|
205
|
+
# Optional methods with default implementations
|
|
206
|
+
|
|
207
|
+
def supports_capability(self, capability: KernelCapability) -> bool:
|
|
208
|
+
"""Check if this kernel supports a specific capability"""
|
|
209
|
+
return capability in self.metadata.capabilities
|
|
210
|
+
|
|
211
|
+
def get_active_sessions(self) -> Dict[str, Any]:
|
|
212
|
+
"""Get all active sessions (optional)"""
|
|
213
|
+
return {}
|
|
214
|
+
|
|
215
|
+
def configure(self, config: Dict[str, Any]) -> None:
|
|
216
|
+
"""
|
|
217
|
+
Configure the kernel with runtime settings.
|
|
218
|
+
|
|
219
|
+
Args:
|
|
220
|
+
config: Configuration dictionary
|
|
221
|
+
"""
|
|
222
|
+
pass
|
|
223
|
+
|
|
224
|
+
def health_check(self) -> Dict[str, Any]:
|
|
225
|
+
"""
|
|
226
|
+
Perform a health check on the kernel.
|
|
227
|
+
|
|
228
|
+
Returns:
|
|
229
|
+
Health status dictionary
|
|
230
|
+
"""
|
|
231
|
+
return {
|
|
232
|
+
"status": "healthy",
|
|
233
|
+
"kernel": self.metadata.name,
|
|
234
|
+
"version": self.metadata.version,
|
|
235
|
+
"capabilities": [c.value for c in self.metadata.capabilities]
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
class SelfCorrectingKernelInterface(KernelInterface):
|
|
240
|
+
"""
|
|
241
|
+
Extended interface for self-correcting kernels (like SCAK).
|
|
242
|
+
|
|
243
|
+
This interface adds methods for kernels that can:
|
|
244
|
+
- Learn from execution failures
|
|
245
|
+
- Adapt policies based on observed behavior
|
|
246
|
+
- Self-correct reasoning chains
|
|
247
|
+
"""
|
|
248
|
+
|
|
249
|
+
@abstractmethod
|
|
250
|
+
def record_outcome(
|
|
251
|
+
self,
|
|
252
|
+
request_id: str,
|
|
253
|
+
outcome: str,
|
|
254
|
+
feedback: Optional[Dict[str, Any]] = None
|
|
255
|
+
) -> None:
|
|
256
|
+
"""
|
|
257
|
+
Record the outcome of an execution for learning.
|
|
258
|
+
|
|
259
|
+
Args:
|
|
260
|
+
request_id: ID of the execution request
|
|
261
|
+
outcome: Outcome status (success, failure, partial, etc.)
|
|
262
|
+
feedback: Optional feedback for learning
|
|
263
|
+
"""
|
|
264
|
+
pass
|
|
265
|
+
|
|
266
|
+
@abstractmethod
|
|
267
|
+
def get_correction_suggestions(
|
|
268
|
+
self,
|
|
269
|
+
request: Any
|
|
270
|
+
) -> List[Dict[str, Any]]:
|
|
271
|
+
"""
|
|
272
|
+
Get suggestions for correcting a request.
|
|
273
|
+
|
|
274
|
+
Args:
|
|
275
|
+
request: The request to analyze
|
|
276
|
+
|
|
277
|
+
Returns:
|
|
278
|
+
List of correction suggestions
|
|
279
|
+
"""
|
|
280
|
+
pass
|
|
281
|
+
|
|
282
|
+
@abstractmethod
|
|
283
|
+
def apply_learned_policy(
|
|
284
|
+
self,
|
|
285
|
+
policy_id: str,
|
|
286
|
+
confidence_threshold: float = 0.8
|
|
287
|
+
) -> bool:
|
|
288
|
+
"""
|
|
289
|
+
Apply a learned policy if confidence exceeds threshold.
|
|
290
|
+
|
|
291
|
+
Args:
|
|
292
|
+
policy_id: ID of the learned policy
|
|
293
|
+
confidence_threshold: Minimum confidence required
|
|
294
|
+
|
|
295
|
+
Returns:
|
|
296
|
+
True if policy was applied
|
|
297
|
+
"""
|
|
298
|
+
pass
|
|
299
|
+
|
|
300
|
+
|
|
301
|
+
class CapabilityRestrictedKernelInterface(KernelInterface):
|
|
302
|
+
"""
|
|
303
|
+
Extended interface for capability-restricted kernels (Mute Agent pattern).
|
|
304
|
+
|
|
305
|
+
This interface adds methods for kernels that:
|
|
306
|
+
- Restrict agents to specific capabilities
|
|
307
|
+
- Return NULL/silence for out-of-scope requests
|
|
308
|
+
- Implement "Scale by Subtraction" philosophy
|
|
309
|
+
"""
|
|
310
|
+
|
|
311
|
+
@abstractmethod
|
|
312
|
+
def define_capability(
|
|
313
|
+
self,
|
|
314
|
+
agent_id: str,
|
|
315
|
+
capability_name: str,
|
|
316
|
+
allowed_actions: List[str],
|
|
317
|
+
parameter_schema: Dict[str, Any]
|
|
318
|
+
) -> None:
|
|
319
|
+
"""
|
|
320
|
+
Define a capability for an agent.
|
|
321
|
+
|
|
322
|
+
Args:
|
|
323
|
+
agent_id: ID of the agent
|
|
324
|
+
capability_name: Name of the capability
|
|
325
|
+
allowed_actions: List of allowed action types
|
|
326
|
+
parameter_schema: JSON schema for valid parameters
|
|
327
|
+
"""
|
|
328
|
+
pass
|
|
329
|
+
|
|
330
|
+
@abstractmethod
|
|
331
|
+
def validate_against_capabilities(
|
|
332
|
+
self,
|
|
333
|
+
agent_id: str,
|
|
334
|
+
action_type: str,
|
|
335
|
+
parameters: Dict[str, Any]
|
|
336
|
+
) -> tuple[bool, Optional[str]]:
|
|
337
|
+
"""
|
|
338
|
+
Validate a request against agent capabilities.
|
|
339
|
+
|
|
340
|
+
Args:
|
|
341
|
+
agent_id: ID of the agent
|
|
342
|
+
action_type: Type of action requested
|
|
343
|
+
parameters: Action parameters
|
|
344
|
+
|
|
345
|
+
Returns:
|
|
346
|
+
Tuple of (is_valid, null_response_if_invalid)
|
|
347
|
+
"""
|
|
348
|
+
pass
|
|
349
|
+
|
|
350
|
+
@abstractmethod
|
|
351
|
+
def get_rejection_log(self, agent_id: Optional[str] = None) -> List[Dict[str, Any]]:
|
|
352
|
+
"""
|
|
353
|
+
Get log of rejected (out-of-scope) requests.
|
|
354
|
+
|
|
355
|
+
Args:
|
|
356
|
+
agent_id: Optional filter by agent ID
|
|
357
|
+
|
|
358
|
+
Returns:
|
|
359
|
+
List of rejection log entries
|
|
360
|
+
"""
|
|
361
|
+
pass
|