Skip to main content

aios_protocol/
lib.rs

1//! # aios-protocol — Canonical Agent OS Protocol
2//!
3//! This crate defines the shared types, event taxonomy, and trait interfaces
4//! that all Agent OS projects (Arcan, Lago, Praxis, Autonomic) depend on.
5//!
6//! It is intentionally dependency-light (no runtime deps like tokio, axum, or redb)
7//! so it can be used as a pure contract crate.
8//!
9//! ## Module Overview
10//!
11//! - [`ids`] — Typed ID wrappers (SessionId, EventId, BranchId, BlobHash, etc.)
12//! - [`event`] — EventEnvelope + EventKind (~55 variants, forward-compatible)
13//! - [`state`] — AgentStateVector, BudgetState (homeostasis vitals)
14//! - [`mode`] — OperatingMode, GatingProfile (operating constraints)
15//! - [`policy`] — Capability, PolicySet, PolicyEvaluation
16//! - [`tool`] — ToolCall, ToolOutcome, ToolDefinition, ToolResult, Tool trait, ToolRegistry
17//! - [`sandbox`] — SandboxTier, SandboxLimits, NetworkPolicy
18//! - [`memory`] — SoulProfile, Observation, Provenance, MemoryScope
19//! - [`session`] — SessionManifest, BranchInfo, CheckpointManifest
20//! - [`payment`] — PaymentPort for agent financial operations (x402, MPP)
21//! - [`ports`] — Runtime boundary ports (event store, provider, tools, policy, approvals, memory)
22//! - [`error`] — KernelError, KernelResult
23
24pub mod error;
25pub mod event;
26pub mod identity;
27pub mod ids;
28pub mod memory;
29pub mod mode;
30pub mod payment;
31pub mod policy;
32pub mod ports;
33pub mod sandbox;
34pub mod session;
35pub mod state;
36pub mod tool;
37
38// Re-export the most commonly used types at the crate root.
39pub use error::{KernelError, KernelResult};
40pub use event::{
41    ActorType, ApprovalDecision, EventActor, EventEnvelope, EventKind, EventRecord, EventSchema,
42    LoopPhase, PolicyDecisionKind, RiskLevel, SnapshotType, SpanStatus, TokenUsage,
43};
44pub use identity::{AgentIdentityProvider, BasicIdentity};
45pub use ids::{
46    AgentId, ApprovalId, BlobHash, BranchId, CheckpointId, EventId, HiveTaskId, MemoryId, RunId,
47    SeqNo, SessionId, SnapshotId, ToolRunId,
48};
49pub use memory::{FileProvenance, MemoryScope, Observation, Provenance, SoulProfile};
50pub use mode::{GatingProfile, OperatingMode};
51pub use payment::{
52    PaymentAuthorizationDecision, PaymentAuthorizationRequest, PaymentPort,
53    PaymentSettlementReceipt, WalletBalanceInfo,
54};
55pub use policy::{Capability, PolicyEvaluation, PolicySet};
56pub use ports::{
57    ApprovalPort, ApprovalRequest, ApprovalResolution, ApprovalTicket, EventRecordStream,
58    EventStorePort, ModelCompletion, ModelCompletionRequest, ModelDirective, ModelProviderPort,
59    ModelStopReason, PolicyGateDecision, PolicyGatePort, ToolExecutionReport, ToolExecutionRequest,
60    ToolHarnessPort,
61};
62pub use sandbox::{NetworkPolicy, SandboxLimits, SandboxTier};
63pub use session::{
64    BranchInfo, BranchMergeResult, CheckpointManifest, ModelRouting, SessionManifest,
65};
66pub use state::{
67    AgentStateVector, BlobRef, BudgetState, CanonicalState, MemoryNamespace, PatchApplyError,
68    PatchOp, ProvenanceRef, StatePatch, VersionedCanonicalState,
69};
70pub use tool::{
71    Tool, ToolAnnotations, ToolCall, ToolContent, ToolContext, ToolDefinition, ToolError,
72    ToolOutcome, ToolRegistry, ToolResult,
73};