Skip to main content

soma_ops/
lib.rs

1//! Product-neutral contracts for safe infrastructure operations.
2//!
3//! `soma-ops` defines stable operation identities, typed request envelopes,
4//! catalog metadata, authorization evidence, deterministic plans, bounded
5//! progress, terminal results, verification, and lifecycle events. It does not
6//! know about Soma principals, Synapse scopes, MCP elicitation, CLI prompts,
7//! Docker, Incus, SSH, databases, or product configuration.
8//!
9//! Product applications translate their own identity and policy into these
10//! contracts. Concrete engines such as `soma-infra` implement operation
11//! definitions over these types.
12
13#![forbid(unsafe_code)]
14#![warn(missing_docs)]
15
16mod catalog;
17mod contract_id;
18mod event;
19mod identity;
20mod model;
21mod plan;
22mod progress;
23mod request;
24mod result;
25
26pub use catalog::{
27    CapabilitySupport, EvidenceKind, OperationDefinition, OperationSpec, ParameterGroup, SpecError,
28};
29pub use contract_id::{DiagnosticCode, DiagnosticCodeError, SchemaId, SchemaIdError};
30pub use event::{
31    EventError, EventSink, OperationEvent, OperationEventEnvelope, OperationEventPayload,
32    OperationEventType,
33};
34pub use identity::{
35    ActorRef, AuthorizationId, CorrelationId, EventId, IdentityError, OperationId, ProducerRef,
36    Timestamp, TraceContext,
37};
38pub use model::{
39    AccessClass, IdempotencyKey, IdempotencyKeyError, MutationSendState, OperationName,
40    OperationNameError, RetryClass, Reversibility, RiskClass, TargetKind, TargetRef,
41    TargetRefError, VerificationStatus,
42};
43pub use plan::{
44    OperationPlan, PlanError, PlanFingerprint, PlanStep, PlannedChange, VerificationStrategy,
45};
46pub use progress::{NoopProgressSink, ProgressError, ProgressEvent, ProgressSink};
47pub use request::{
48    AuthorizationError, AuthorizationEvidence, AuthorizationScope, OperationContext,
49    OperationRequest, RequestError,
50};
51pub use result::{
52    ArtifactRef, Diagnostic, DiagnosticSeverity, EvidenceRef, ExecutionMetadata, OperationResult,
53    OperationStatus, RedactionMetadata, ResultError, VerificationResult,
54};