Skip to main content

oxios_kernel/
lib.rs

1//! Oxios kernel: supervisor, event bus, state store.
2//!
3//! The kernel is the core of the Oxios Agent OS. Everything passes
4//! through here: agent lifecycle, inter-agent communication, and
5//! persistent state management.
6
7#![warn(missing_docs)]
8
9// ─── Lifecycle ──────────────────────────────────────────────────────
10// Agent 생성, 실행, 종료. OS의 init + process management.
11pub mod agent_group;
12pub mod agent_lifecycle;
13pub mod agent_runtime;
14pub mod daemon;
15pub mod supervisor;
16
17// ─── Orchestration ──────────────────────────────────────────────────
18// 작업 조율, 스케줄링, 예산 관리.
19pub mod orchestrator;
20pub mod scheduler;
21pub mod cron;
22pub mod budget;
23pub mod circuit_breaker;
24
25// ─── Security ───────────────────────────────────────────────────────
26// 접근 제어, 인증, 권한, 감사.
27pub mod access_manager;
28pub mod auth;
29pub mod capability;
30pub mod credential;
31pub mod audit_trail;
32
33// ─── Communication ──────────────────────────────────────────────────
34// 이벤트, 메시징, 외부 프로토콜.
35pub mod event_bus;
36pub mod a2a;
37pub mod mcp;
38
39// ─── Intelligence ───────────────────────────────────────────────────
40// 메모리, 임베딩, 페르소나, 온보딩.
41pub mod memory;
42pub mod embedding;
43pub mod persona;
44pub mod persona_manager;
45pub mod persona_store;
46pub mod onboarding;
47
48// ─── Tools & Programs ──────────────────────────────────────────────
49// 에이전트가 사용하는 도구, 프로그램, 스킬.
50pub mod tools;
51pub mod host_tools;
52pub mod program;
53pub mod skill;
54#[cfg(feature = "wasm-sandbox")]
55pub mod wasm_sandbox;
56
57// ─── State & Config ─────────────────────────────────────────────────
58// 영속 상태, 설정, 백업, 리소스 모니터링.
59pub mod state_store;
60pub mod config;
61pub mod backup;
62pub mod git_layer;
63pub mod resource_monitor;
64pub mod space;
65
66// ─── Infrastructure ─────────────────────────────────────────────────
67// 엔진, 에러, 타입, 메트릭, 텔레메트리.
68pub mod engine;
69pub mod error;
70pub mod types;
71pub mod metrics;
72#[cfg(feature = "otel")]
73pub mod telemetry_otel;
74#[cfg(feature = "otel")]
75pub use telemetry_otel as telemetry;
76#[cfg(not(feature = "otel"))]
77pub mod telemetry_stub;
78#[cfg(not(feature = "otel"))]
79pub use telemetry_stub as telemetry;
80
81// ─── API Surface ────────────────────────────────────────────────────
82// 외부에 노출하는 typed facade.
83pub mod kernel_handle;
84
85// ─────────────────────────────────────────────────────────────────────
86// Re-exports (같은 섹션 순서)
87// ─────────────────────────────────────────────────────────────────────
88
89// ─── Lifecycle ──────────────────────────────────────────────────────
90pub use agent_group::{OxiosAgentGroup, OxiosAgentGroupStatus, OxiosGroupAgent};
91pub use agent_lifecycle::AgentLifecycleManager;
92pub use agent_runtime::AgentRuntime;
93pub use daemon::{DaemonManager, DaemonStatus};
94pub use supervisor::{BasicSupervisor, Supervisor};
95
96// ─── Orchestration ──────────────────────────────────────────────────
97pub use orchestrator::{AgentRole, OrchestrationResult, Orchestrator, SubTask};
98pub use scheduler::{AgentScheduler, Priority, ScheduledTask, SchedulerStats, TaskStatus};
99pub use cron::{CronJob, CronJobResult, CronJobUpdate, CronScheduler, JobSource};
100pub use budget::{BudgetExceeded, BudgetInfo, BudgetKind, BudgetLimit, BudgetManager};
101pub use circuit_breaker::CircuitBreaker;
102
103// ─── Security ───────────────────────────────────────────────────────
104pub use access_manager::{
105    AccessManager, Action, AgentPermissions, ApprovalStatus, PendingApproval, RbacAuditEntry,
106    RbacManager, RbacPolicy, Role, Subject,
107};
108pub use auth::{AuthManager, KeyMeta};
109pub use capability::template::CapabilityTemplate;
110pub use capability::{CSpace, Capability, CapabilityId, Issuer, ResourceRef, Rights};
111pub use credential::CredentialStore;
112pub use audit_trail::{
113    AgentId as AuditAgentId, AuditAction, AuditEntry, AuditError, AuditTrail, HashDigest,
114};
115
116// ─── Communication ──────────────────────────────────────────────────
117pub use event_bus::{EventBus, KernelEvent};
118pub use a2a::{
119    A2AMessage, A2AProtocol, A2ARequest, A2AResponse, AgentCard, AgentCardRegistry,
120    DelegationHandler, TaskPriority, TaskSpec,
121};
122pub use mcp::{
123    McpBridge, McpCapabilities, McpServer, McpTool, McpToolCallResult as CallToolResult,
124};
125
126// ─── Intelligence ───────────────────────────────────────────────────
127pub use memory::auto_memory_bridge::{
128    AutoMemoryBridge, ExportResult, GuidancePattern, ImportResult, InsightCategory, MemoryInsight,
129    SyncDirection, SyncResult,
130};
131pub use memory::flash_attention::{
132    BenchmarkResult as AttentionBenchmarkResult, FlashAttention, FlashAttentionConfig,
133    MemoryEstimate,
134};
135pub use memory::hyperbolic::{
136    batch_euclidean_to_poincare, euclidean_to_poincare, hyperbolic_distance, mobius_add,
137    mobius_scalar_mul, HyperbolicConfig, HyperbolicEmbedding,
138};
139pub use memory::{
140    chunk_fixed, chunk_paragraphs, content_hash, cosine_similarity_f32, l2_normalize_f32,
141    l2_normalize_f64, ChunkConfig, CurationCandidate, CurationReport, HnswIndex, HnswMemoryIndex,
142    MemoryBudget, MemoryEntry, MemoryGraph, MemoryManager, MemoryType, SemanticHit, TextChunk,
143    TextVector,
144};
145pub use embedding::{EmbeddingProvider, EmbeddingVector, TfIdfEmbeddingProvider};
146pub use persona::{default_personas, Persona};
147pub use persona_manager::PersonaManager;
148pub use persona_store::PersonaStore;
149
150// ─── Tools & Programs ──────────────────────────────────────────────
151#[cfg(feature = "browser")]
152pub use tools::BrowserTool;
153pub use tools::{ExecTool, ProgramTool};
154pub use host_tools::{common as host_tools_common, HostToolStatus, HostToolValidator};
155pub use program::{
156    ArgumentDef, HostRequirementsCheck, InstallSource, Program, ProgramManager, ProgramMeta,
157    ToolDef,
158};
159pub use skill::{Skill, SkillMeta, SkillStore};
160#[cfg(feature = "wasm-sandbox")]
161pub use wasm_sandbox::{ResourceKind, WasmConfig, WasmError, WasmSandbox};
162
163// ─── State & Config ─────────────────────────────────────────────────
164pub use state_store::{AgentResponse, Session, SessionId, SessionSummary, StateStore};
165pub use config::{
166    BrowserConfig, ChannelsConfig, CronConfig, DaemonConfig, EngineConfig, ExecConfig, GitConfig,
167    InlineCronJob, McpConfig, McpServerDef, MemoryConfig, OxiosConfig, PersonaConfig,
168    TelegramChannelConfig,
169};
170pub use backup::{BackupManifest, BackupSection};
171pub use git_layer::{CommitInfo, GitLayer, LogEntry};
172pub use resource_monitor::{OverloadThreshold, ResourceMonitor, ResourceSnapshot};
173pub use space::{
174    extract_filesystem_path, match_keywords, ConversationBuffer, ConversationTurn, CrossRefEntry,
175    KnowledgeBridge, KnowledgeFlow, PathMatcher, Space, SpaceId, SpaceManager, SpaceManagerError,
176    SpaceSource,
177};
178
179// ─── Infrastructure ─────────────────────────────────────────────────
180pub use engine::{EngineProvider, OxiEngineProvider, OxiosEngine};
181pub use error::{HttpStatus, KernelError, KernelResult};
182pub use types::{AgentId, AgentInfo, AgentStatus};
183pub use metrics::{get_metrics, register_builtin_metrics, registry};
184
185// ─── API Surface ────────────────────────────────────────────────────
186pub use kernel_handle::KernelHandle;
187pub use kernel_handle::{
188    A2aApi, AgentApi, BrowserApi, ExecApi, ExtensionApi, InfraApi, McpApi, PersonaApi, SecurityApi,
189    SpaceApi, StateApi,
190};
191
192// ─── oxi-sdk re-exports ─────────────────────────────────────────────
193//
194// Only types that are actually USED by kernel modules are re-exported.
195// Dead re-exports were removed (see audit 2026-05-16).
196//
197// When oxi-sdk adds full re-exports of oxi-ai/oxi-agent types,
198// we can drop direct oxi-ai/oxi-agent dependencies entirely.
199// See ../oxi/docs/proposals/sdk-consumer-requirements.md
200pub use oxi_sdk::{
201    AgentEvent,
202    AgentLoop,
203    InterAgentMessage,
204    KernelToolContext,
205    KernelToolProvider,
206    MessageBus,
207    Model,
208    Oxi,
209    OxiBuilder,
210    Provider,
211    StreamOptions,
212};