Skip to main content

monoloop_contracts/
lib.rs

1//! SPDX-License-Identifier: AGPL-3.0-or-later
2//! Copyright (C) Alexander R. Croft
3//!
4//! Shared contracts for Monoloop product components.
5//!
6//! Product components share identities, dialect descriptors, canonical events,
7//! configuration, transaction ports, and closed error families. This crate
8//! intentionally contains no transport, dialect decoder, tool execution, UI,
9//! or host-agent logic.
10
11#![deny(missing_docs)]
12
13mod canonical;
14mod channel;
15mod config;
16mod delivery;
17mod dialect;
18mod encoder;
19mod error;
20mod id;
21mod input;
22mod limits;
23mod loop_types;
24mod safe;
25mod tool;
26mod transaction;
27
28pub use canonical::{
29    BoundaryKind, CanonicalUnit, CanonicalUnitEvent, CanonicalUnitSnapshot, DiagnosticKind, FlowId,
30    InterpretationEnd, InterpretationEndKind, InterpretationId, InterpreterOutputEvent, LaneId,
31    ModelDiagnostic, ParagraphBoundary, ParagraphKind, SemanticBoundary, SourceTimeObservation,
32    StructuralAtom, StructureKind, TextChannel, TextSentence, TokenCount, ToolActionEvent,
33    ToolActionId, ToolExecutionState, ToolRequestState, ToolResultState, ToolTerminalOutcome,
34    UnitId, UnitState, UsageObservation,
35};
36pub use channel::{
37    send_and_retain_allowed, ChannelCapabilities, ChannelCapabilityError, ChannelDescriptor,
38    ChannelKind, ExchangeMode, McpConfigurationCapability, McpReachability, SessionMode,
39    ToolExecutionMode,
40};
41pub use config::{
42    merge_effective_config, ChannelDefaults, ConfigError, ConfigOption, ContinuationPolicy,
43    EffectiveConfig, ExtensionKey, InvocationConfig, OptionPolicy, ReasoningEffort, ResponseFormat,
44    SessionConfig, VersionedExtension,
45};
46pub use delivery::{
47    estimate_event_bytes, transaction_delivery, CompletionPublishResult, DeliveryConfigError,
48    DeliveryLimits, EventEnqueueError, TransactionCompletionReceiver, TransactionCompletionSender,
49    TransactionDelivery, TransactionEventReceiver, TransactionEventSender, TransactionReceiver,
50};
51pub use dialect::{DialectBinding, DialectDescriptor, DialectFamily, DialectNegotiation};
52pub use encoder::{
53    ContinuationContext, EncodedExchange, EncodingError, ExchangeInputPolicy, InitialEncodeRequest,
54    OutboundDialectEncoder, ToolContinuationEncodeRequest,
55};
56pub use error::{ConnectorError, ConnectorErrorKind, InterpreterError, InterpreterErrorKind};
57pub use id::{
58    validate_identity_string, ChannelId, ConnectionId, ExchangeId, ExternalSessionId,
59    GrokSessionId, IdentityError, MonoloopRunId, RequestId, SessionId, SessionKey, ToolId,
60    ToolName, TransactionId, MAX_IDENTITY_BYTES,
61};
62pub use input::{
63    estimate_canonical_input_bytes, user_text_input, CanonicalAssistantToolCall, CanonicalInput,
64    CanonicalMessage, InputValidationError, TextPart,
65};
66pub use limits::{
67    ChannelLimits, ConnectorLimits, ExtensionLimits, InputLimits, InterpretationLimits,
68    LimitsError, ToolLimits, TransactionLimits, TransportBufferLimits,
69};
70pub use loop_types::{
71    LoopEnd, LoopEndKind, LoopError, LoopErrorKind, LoopId, LoopLimits, LoopOutputEvent, LoopScope,
72    OutboundToolOutcome, OutboundToolResult, ToolExecutionId, ToolUnavailableReason,
73};
74pub use safe::{DiagnosticCode, SafeDiagnostic, SafeDiagnosticError};
75pub use tool::{
76    CanonicalToolError, CanonicalToolOutput, CanonicalToolResult, CanonicalToolResultOutcome,
77    JsonSchema, ToolCall, ToolCallContext, ToolCompletion, ToolContractError, ToolExecutionClass,
78    ToolLifecycleEvent, ToolOutputContract, ToolRuntimeError, ToolSpec, ToolStartError,
79    ToolSuccessContract,
80};
81pub use transaction::{
82    AdmissionError, AdmissionErrorKind, AdmissionReceipt, CancellationReason,
83    CancellationReasonCode, CleanupFailureCode, CleanupStatus, CompletionCallback,
84    CompletionDelivery, CompletionDeliveryError, EventDelivery, EventDeliveryError,
85    EventDeliveryOutcome, FnCompletionCallback, FnEventSink, Shutdown, ShutdownDisposition,
86    ShutdownReport, ShutdownSnapshot, ShutdownWaitOutcome, TerminalEventDelivery,
87    TerminationDisposition, TerminationMode, TerminationReason, TerminationReasonCode,
88    TransactionCompletion, TransactionDiagnostic, TransactionEnd, TransactionEndEvent,
89    TransactionEndKind, TransactionEvent, TransactionEventPayload, TransactionEventSink,
90    TransactionSelector, TransactionSubmitRequest, TransactionUsage,
91};
92
93pub use bytes::Bytes;