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.
Files changed (337) hide show
  1. agent_control_plane/__init__.py +662 -0
  2. agent_control_plane/a2a_adapter.py +543 -0
  3. agent_control_plane/adapter.py +417 -0
  4. agent_control_plane/agent_hibernation.py +394 -0
  5. agent_control_plane/agent_kernel.py +470 -0
  6. agent_control_plane/compliance.py +720 -0
  7. agent_control_plane/constraint_graphs.py +478 -0
  8. agent_control_plane/control_plane.py +854 -0
  9. agent_control_plane/example_executors.py +195 -0
  10. agent_control_plane/execution_engine.py +231 -0
  11. agent_control_plane/flight_recorder.py +846 -0
  12. agent_control_plane/governance_layer.py +435 -0
  13. agent_control_plane/hf_utils.py +563 -0
  14. agent_control_plane/interfaces/__init__.py +55 -0
  15. agent_control_plane/interfaces/kernel_interface.py +361 -0
  16. agent_control_plane/interfaces/plugin_interface.py +497 -0
  17. agent_control_plane/interfaces/protocol_interfaces.py +387 -0
  18. agent_control_plane/kernel_space.py +1009 -0
  19. agent_control_plane/langchain_adapter.py +424 -0
  20. agent_control_plane/lifecycle.py +3113 -0
  21. agent_control_plane/mcp_adapter.py +653 -0
  22. agent_control_plane/ml_safety.py +563 -0
  23. agent_control_plane/multimodal.py +727 -0
  24. agent_control_plane/mute_agent.py +422 -0
  25. agent_control_plane/observability.py +787 -0
  26. agent_control_plane/orchestrator.py +482 -0
  27. agent_control_plane/plugin_registry.py +750 -0
  28. agent_control_plane/policy_engine.py +954 -0
  29. agent_control_plane/process_isolation.py +777 -0
  30. agent_control_plane/shadow_mode.py +310 -0
  31. agent_control_plane/signals.py +493 -0
  32. agent_control_plane/supervisor_agents.py +430 -0
  33. agent_control_plane/time_travel_debugger.py +557 -0
  34. agent_control_plane/tool_registry.py +452 -0
  35. agent_control_plane/vfs.py +697 -0
  36. agent_kernel/__init__.py +69 -0
  37. agent_kernel/analyzer.py +435 -0
  38. agent_kernel/auditor.py +36 -0
  39. agent_kernel/completeness_auditor.py +237 -0
  40. agent_kernel/detector.py +203 -0
  41. agent_kernel/kernel.py +744 -0
  42. agent_kernel/memory_manager.py +85 -0
  43. agent_kernel/models.py +374 -0
  44. agent_kernel/nudge_mechanism.py +263 -0
  45. agent_kernel/outcome_analyzer.py +338 -0
  46. agent_kernel/patcher.py +582 -0
  47. agent_kernel/semantic_analyzer.py +316 -0
  48. agent_kernel/semantic_purge.py +349 -0
  49. agent_kernel/simulator.py +449 -0
  50. agent_kernel/teacher.py +85 -0
  51. agent_kernel/triage.py +152 -0
  52. agent_os/__init__.py +409 -0
  53. agent_os/_adversarial_impl.py +200 -0
  54. agent_os/_circuit_breaker_impl.py +232 -0
  55. agent_os/_mcp_metrics.py +193 -0
  56. agent_os/adversarial.py +20 -0
  57. agent_os/agents_compat.py +490 -0
  58. agent_os/audit_logger.py +135 -0
  59. agent_os/base_agent.py +651 -0
  60. agent_os/circuit_breaker.py +34 -0
  61. agent_os/cli/__init__.py +659 -0
  62. agent_os/cli/cmd_audit.py +128 -0
  63. agent_os/cli/cmd_init.py +152 -0
  64. agent_os/cli/cmd_policy.py +41 -0
  65. agent_os/cli/cmd_policy_gen.py +180 -0
  66. agent_os/cli/cmd_validate.py +258 -0
  67. agent_os/cli/mcp_scan.py +265 -0
  68. agent_os/cli/output.py +192 -0
  69. agent_os/cli/policy_checker.py +330 -0
  70. agent_os/compat.py +74 -0
  71. agent_os/constraint_graph.py +234 -0
  72. agent_os/content_governance.py +140 -0
  73. agent_os/context_budget.py +305 -0
  74. agent_os/credential_redactor.py +224 -0
  75. agent_os/diff_policy.py +89 -0
  76. agent_os/egress_policy.py +159 -0
  77. agent_os/escalation.py +276 -0
  78. agent_os/event_bus.py +124 -0
  79. agent_os/exceptions.py +180 -0
  80. agent_os/execution_context_policy.py +141 -0
  81. agent_os/github_enterprise.py +96 -0
  82. agent_os/health.py +20 -0
  83. agent_os/integrations/__init__.py +279 -0
  84. agent_os/integrations/a2a_adapter.py +279 -0
  85. agent_os/integrations/agent_lightning/__init__.py +30 -0
  86. agent_os/integrations/anthropic_adapter.py +420 -0
  87. agent_os/integrations/autogen_adapter.py +620 -0
  88. agent_os/integrations/base.py +1137 -0
  89. agent_os/integrations/compat.py +229 -0
  90. agent_os/integrations/config.py +98 -0
  91. agent_os/integrations/conversation_guardian.py +957 -0
  92. agent_os/integrations/crewai_adapter.py +467 -0
  93. agent_os/integrations/drift_detector.py +425 -0
  94. agent_os/integrations/dry_run.py +124 -0
  95. agent_os/integrations/escalation.py +582 -0
  96. agent_os/integrations/gemini_adapter.py +364 -0
  97. agent_os/integrations/google_adk_adapter.py +633 -0
  98. agent_os/integrations/guardrails_adapter.py +394 -0
  99. agent_os/integrations/health.py +197 -0
  100. agent_os/integrations/langchain_adapter.py +654 -0
  101. agent_os/integrations/llamafirewall.py +343 -0
  102. agent_os/integrations/llamaindex_adapter.py +188 -0
  103. agent_os/integrations/logging.py +191 -0
  104. agent_os/integrations/maf_adapter.py +631 -0
  105. agent_os/integrations/mistral_adapter.py +365 -0
  106. agent_os/integrations/openai_adapter.py +816 -0
  107. agent_os/integrations/openai_agents_sdk.py +406 -0
  108. agent_os/integrations/policy_compose.py +171 -0
  109. agent_os/integrations/profiling.py +144 -0
  110. agent_os/integrations/pydantic_ai_adapter.py +420 -0
  111. agent_os/integrations/rate_limiter.py +130 -0
  112. agent_os/integrations/rbac.py +143 -0
  113. agent_os/integrations/registry.py +113 -0
  114. agent_os/integrations/scope_guard.py +303 -0
  115. agent_os/integrations/semantic_kernel_adapter.py +769 -0
  116. agent_os/integrations/smolagents_adapter.py +629 -0
  117. agent_os/integrations/templates.py +178 -0
  118. agent_os/integrations/token_budget.py +134 -0
  119. agent_os/integrations/tool_aliases.py +190 -0
  120. agent_os/integrations/webhooks.py +177 -0
  121. agent_os/lite.py +208 -0
  122. agent_os/mcp_gateway.py +385 -0
  123. agent_os/mcp_message_signer.py +273 -0
  124. agent_os/mcp_protocols.py +161 -0
  125. agent_os/mcp_response_scanner.py +232 -0
  126. agent_os/mcp_security.py +924 -0
  127. agent_os/mcp_session_auth.py +231 -0
  128. agent_os/mcp_sliding_rate_limiter.py +184 -0
  129. agent_os/memory_guard.py +409 -0
  130. agent_os/metrics.py +134 -0
  131. agent_os/mute.py +428 -0
  132. agent_os/mute_agent.py +209 -0
  133. agent_os/policies/__init__.py +77 -0
  134. agent_os/policies/async_evaluator.py +275 -0
  135. agent_os/policies/backends.py +670 -0
  136. agent_os/policies/bridge.py +169 -0
  137. agent_os/policies/budget.py +85 -0
  138. agent_os/policies/cli.py +294 -0
  139. agent_os/policies/conflict_resolution.py +270 -0
  140. agent_os/policies/data_classification.py +252 -0
  141. agent_os/policies/evaluator.py +239 -0
  142. agent_os/policies/policy_schema.json +228 -0
  143. agent_os/policies/rate_limiting.py +145 -0
  144. agent_os/policies/schema.py +115 -0
  145. agent_os/policies/shared.py +331 -0
  146. agent_os/prompt_injection.py +694 -0
  147. agent_os/providers.py +182 -0
  148. agent_os/py.typed +0 -0
  149. agent_os/retry.py +81 -0
  150. agent_os/reversibility.py +251 -0
  151. agent_os/sandbox.py +432 -0
  152. agent_os/sandbox_provider.py +140 -0
  153. agent_os/secure_codegen.py +525 -0
  154. agent_os/security_skills.py +538 -0
  155. agent_os/semantic_policy.py +422 -0
  156. agent_os/server/__init__.py +15 -0
  157. agent_os/server/__main__.py +25 -0
  158. agent_os/server/app.py +277 -0
  159. agent_os/server/models.py +104 -0
  160. agent_os/shift_left_metrics.py +130 -0
  161. agent_os/stateless.py +742 -0
  162. agent_os/supervisor.py +148 -0
  163. agent_os/task_outcome.py +148 -0
  164. agent_os/transparency.py +181 -0
  165. agent_os/trust_root.py +128 -0
  166. agent_os_kernel-3.1.0.dist-info/METADATA +1269 -0
  167. agent_os_kernel-3.1.0.dist-info/RECORD +337 -0
  168. agent_os_kernel-3.1.0.dist-info/WHEEL +4 -0
  169. agent_os_kernel-3.1.0.dist-info/entry_points.txt +2 -0
  170. agent_os_kernel-3.1.0.dist-info/licenses/LICENSE +21 -0
  171. agent_os_observability/__init__.py +27 -0
  172. agent_os_observability/dashboards.py +898 -0
  173. agent_os_observability/metrics.py +398 -0
  174. agent_os_observability/server.py +223 -0
  175. agent_os_observability/tracer.py +232 -0
  176. agent_primitives/__init__.py +24 -0
  177. agent_primitives/failures.py +84 -0
  178. agent_primitives/py.typed +0 -0
  179. amb_core/__init__.py +177 -0
  180. amb_core/adapters/__init__.py +57 -0
  181. amb_core/adapters/aws_sqs_broker.py +376 -0
  182. amb_core/adapters/azure_servicebus_broker.py +340 -0
  183. amb_core/adapters/kafka_broker.py +260 -0
  184. amb_core/adapters/nats_broker.py +285 -0
  185. amb_core/adapters/rabbitmq_broker.py +235 -0
  186. amb_core/adapters/redis_broker.py +262 -0
  187. amb_core/broker.py +145 -0
  188. amb_core/bus.py +481 -0
  189. amb_core/cloudevents.py +509 -0
  190. amb_core/dlq.py +345 -0
  191. amb_core/hf_utils.py +536 -0
  192. amb_core/memory_broker.py +410 -0
  193. amb_core/models.py +141 -0
  194. amb_core/persistence.py +529 -0
  195. amb_core/schema.py +294 -0
  196. amb_core/tracing.py +358 -0
  197. atr/__init__.py +640 -0
  198. atr/access.py +348 -0
  199. atr/composition.py +645 -0
  200. atr/decorator.py +357 -0
  201. atr/executor.py +384 -0
  202. atr/health.py +557 -0
  203. atr/hf_utils.py +449 -0
  204. atr/injection.py +422 -0
  205. atr/metrics.py +440 -0
  206. atr/policies.py +403 -0
  207. atr/py.typed +2 -0
  208. atr/registry.py +452 -0
  209. atr/schema.py +480 -0
  210. atr/tools/safe/__init__.py +75 -0
  211. atr/tools/safe/calculator.py +467 -0
  212. atr/tools/safe/datetime_tool.py +443 -0
  213. atr/tools/safe/file_reader.py +402 -0
  214. atr/tools/safe/http_client.py +316 -0
  215. atr/tools/safe/json_parser.py +374 -0
  216. atr/tools/safe/text_tool.py +537 -0
  217. atr/tools/safe/toolkit.py +175 -0
  218. caas/__init__.py +162 -0
  219. caas/api/__init__.py +7 -0
  220. caas/api/server.py +1328 -0
  221. caas/caching.py +834 -0
  222. caas/cli.py +210 -0
  223. caas/conversation.py +223 -0
  224. caas/decay.py +72 -0
  225. caas/detection/__init__.py +9 -0
  226. caas/detection/detector.py +238 -0
  227. caas/enrichment.py +130 -0
  228. caas/gateway/__init__.py +27 -0
  229. caas/gateway/trust_gateway.py +474 -0
  230. caas/hf_utils.py +479 -0
  231. caas/ingestion/__init__.py +23 -0
  232. caas/ingestion/processors.py +253 -0
  233. caas/ingestion/structure_parser.py +188 -0
  234. caas/models.py +356 -0
  235. caas/pragmatic_truth.py +444 -0
  236. caas/routing/__init__.py +10 -0
  237. caas/routing/heuristic_router.py +58 -0
  238. caas/storage/__init__.py +9 -0
  239. caas/storage/store.py +389 -0
  240. caas/triad.py +213 -0
  241. caas/tuning/__init__.py +9 -0
  242. caas/tuning/tuner.py +329 -0
  243. caas/vfs/__init__.py +14 -0
  244. caas/vfs/filesystem.py +452 -0
  245. cmvk/__init__.py +218 -0
  246. cmvk/audit.py +402 -0
  247. cmvk/benchmarks.py +478 -0
  248. cmvk/constitutional.py +904 -0
  249. cmvk/hf_utils.py +301 -0
  250. cmvk/metrics.py +473 -0
  251. cmvk/profiles.py +300 -0
  252. cmvk/py.typed +0 -0
  253. cmvk/types.py +12 -0
  254. cmvk/verification.py +956 -0
  255. emk/__init__.py +89 -0
  256. emk/causal.py +352 -0
  257. emk/hf_utils.py +421 -0
  258. emk/indexer.py +83 -0
  259. emk/py.typed +0 -0
  260. emk/schema.py +204 -0
  261. emk/sleep_cycle.py +347 -0
  262. emk/store.py +281 -0
  263. iatp/__init__.py +166 -0
  264. iatp/attestation.py +461 -0
  265. iatp/cli.py +317 -0
  266. iatp/hf_utils.py +472 -0
  267. iatp/ipc_pipes.py +580 -0
  268. iatp/main.py +412 -0
  269. iatp/models/__init__.py +447 -0
  270. iatp/policy_engine.py +337 -0
  271. iatp/py.typed +2 -0
  272. iatp/recovery.py +321 -0
  273. iatp/security/__init__.py +270 -0
  274. iatp/sidecar/__init__.py +519 -0
  275. iatp/telemetry/__init__.py +164 -0
  276. iatp/tests/__init__.py +1 -0
  277. iatp/tests/test_attestation.py +370 -0
  278. iatp/tests/test_cli.py +131 -0
  279. iatp/tests/test_ed25519_attestation.py +211 -0
  280. iatp/tests/test_models.py +130 -0
  281. iatp/tests/test_policy_engine.py +347 -0
  282. iatp/tests/test_recovery.py +281 -0
  283. iatp/tests/test_security.py +222 -0
  284. iatp/tests/test_sidecar.py +167 -0
  285. iatp/tests/test_telemetry.py +175 -0
  286. mcp_kernel_server/__init__.py +28 -0
  287. mcp_kernel_server/cli.py +274 -0
  288. mcp_kernel_server/resources.py +217 -0
  289. mcp_kernel_server/server.py +564 -0
  290. mcp_kernel_server/tools.py +1174 -0
  291. mute_agent/__init__.py +68 -0
  292. mute_agent/core/__init__.py +1 -0
  293. mute_agent/core/execution_agent.py +166 -0
  294. mute_agent/core/handshake_protocol.py +201 -0
  295. mute_agent/core/reasoning_agent.py +238 -0
  296. mute_agent/knowledge_graph/__init__.py +1 -0
  297. mute_agent/knowledge_graph/graph_elements.py +65 -0
  298. mute_agent/knowledge_graph/multidimensional_graph.py +170 -0
  299. mute_agent/knowledge_graph/subgraph.py +224 -0
  300. mute_agent/listener/__init__.py +43 -0
  301. mute_agent/listener/adapters/__init__.py +31 -0
  302. mute_agent/listener/adapters/base_adapter.py +189 -0
  303. mute_agent/listener/adapters/caas_adapter.py +344 -0
  304. mute_agent/listener/adapters/control_plane_adapter.py +436 -0
  305. mute_agent/listener/adapters/iatp_adapter.py +332 -0
  306. mute_agent/listener/adapters/scak_adapter.py +251 -0
  307. mute_agent/listener/listener.py +610 -0
  308. mute_agent/listener/state_observer.py +436 -0
  309. mute_agent/listener/threshold_config.py +313 -0
  310. mute_agent/super_system/__init__.py +1 -0
  311. mute_agent/super_system/router.py +204 -0
  312. mute_agent/visualization/__init__.py +10 -0
  313. mute_agent/visualization/graph_debugger.py +502 -0
  314. nexus/README.md +60 -0
  315. nexus/__init__.py +51 -0
  316. nexus/arbiter.py +359 -0
  317. nexus/client.py +466 -0
  318. nexus/dmz.py +444 -0
  319. nexus/escrow.py +430 -0
  320. nexus/exceptions.py +286 -0
  321. nexus/pyproject.toml +36 -0
  322. nexus/registry.py +393 -0
  323. nexus/reputation.py +425 -0
  324. nexus/schemas/__init__.py +51 -0
  325. nexus/schemas/compliance.py +276 -0
  326. nexus/schemas/escrow.py +251 -0
  327. nexus/schemas/manifest.py +225 -0
  328. nexus/schemas/receipt.py +208 -0
  329. nexus/tests/__init__.py +0 -0
  330. nexus/tests/conftest.py +146 -0
  331. nexus/tests/test_arbiter.py +192 -0
  332. nexus/tests/test_dmz.py +194 -0
  333. nexus/tests/test_escrow.py +276 -0
  334. nexus/tests/test_exceptions.py +225 -0
  335. nexus/tests/test_registry.py +232 -0
  336. nexus/tests/test_reputation.py +328 -0
  337. 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