Skip to main content

monoloop_loop/
lib.rs

1//! SPDX-License-Identifier: AGPL-3.0-or-later
2//! Copyright (C) Alexander R. Croft
3//!
4//! Component 03 — The Loop.
5//!
6//! Inner `LoopRuntime` (complete-unit tool reaction) plus the outer
7//! transaction composition layer (Runtime v2 lifecycle under `transaction::lifecycle`).
8
9#![deny(missing_docs)]
10
11mod registry;
12mod runtime;
13mod subscription;
14mod tools;
15mod transaction;
16
17pub use registry::{
18    EmptyToolRegistry, ResolveToolRequest, ToolDescriptorRef, ToolRegistry, ToolRegistryError,
19    ToolResolution,
20};
21pub use runtime::{
22    DefaultLoopRuntime, LoopCompletion, LoopControl, LoopHandle, LoopHealth, LoopRunFuture,
23    StartLoop,
24};
25pub use subscription::{
26    CanonicalEventSubscription, DeliveredEvent, SubscriberId, SubscriptionGap,
27    SubscriptionPublisher, SubscriptionStatus,
28};
29pub use tools::{
30    NoToolRuntime, StartToolExecution, ToolExecutionHandle, ToolRuntime, ToolRuntimeError,
31    ToolRuntimeTerminal,
32};
33pub use transaction::{
34    adapt_completion_callback, adapt_event_sink, build_completion, dispatch_ready_tool,
35    dispatch_ready_tool_cancellable, tool_definitions_from_resolved, validate_tool_completion,
36    validate_tool_input, AbortableAtYieldHandler, AcpPromptEncoder, AcpPromptWireShape,
37    AsyncToolHandler, CapabilityToken, ChannelBinding, ChannelRegistry, ControlHoldGate,
38    DispatchOutcome, DispatchRequest, DispatcherLimits, EmptyBytesEncoder, FinalizerHoldGate,
39    HeadlessPromptEncoder, HostToolRegistry, HostToolRuntime, ImmediateToolHandler,
40    InputValidationFailure, IsolatedKillableToolHandler, JoinOnlySpillInject, LedgerEntry,
41    LifecycleLedger, LinkedToolExecutionHandle, LiveChannel, LostCompletionHandler,
42    McpBindingState, McpGateway, McpGatewayHandle, McpGatewayLimits, McpInstallError,
43    McpRequestOwner, McpRouteTable, OpenAiChatCompletionsEncoder, OpenAiEncoderOptions,
44    OrphanToolPermitSet, OutputValidationFailure, OwnedProcessRegistry, PanicEncoder,
45    PanicOnStartHandler, PendingMcpBinding, PreparedMcpGateway, ProcessIsolatedToolHandler,
46    ProcessToolCommand, RegisteredTool, RejectEncoder, ReservationPool, ReservationPoolError,
47    ResolvedTool, ResolvedToolRegistry, ResolvedToolSet, RuntimeBootstrap, RuntimeConfig,
48    RuntimeOwner, RuntimeState, SharedToolCapacity, ShutdownTicket, SpawnReject, StartFailHandler,
49    StartHoldGate, StartedRuntime, StartupError, StoppedGate, SupervisorCommand, TaskClass,
50    TaskExit, TaskId, TaskSupervisor, TerminalDecision, TerminalProposal, TestTextEncoder,
51    ToolExecutionCompletion, ToolExecutionControl, ToolHandler, ToolKillHandle,
52    TransactionMcpHandler, TransactionPhase, TransactionReservations, TransactionRuntimeHandle,
53    TransactionTaskSpawner, TransactionToolCapacity, TransactionToolDispatcher,
54};
55
56pub use monoloop_contracts::{
57    estimate_event_bytes, transaction_delivery, AdmissionError, AdmissionErrorKind,
58    AdmissionReceipt, BoundaryKind, CanonicalUnit, CanonicalUnitEvent, CleanupFailureCode,
59    CleanupStatus, CompletionPublishResult, DeliveryConfigError, DeliveryLimits, EventEnqueueError,
60    InterpretationEnd, InterpreterOutputEvent, LoopEnd, LoopEndKind, LoopError, LoopErrorKind,
61    LoopId, LoopLimits, LoopOutputEvent, LoopScope, MonoloopRunId, OutboundToolOutcome,
62    OutboundToolResult, ShutdownReport, ShutdownSnapshot, ShutdownWaitOutcome,
63    TerminalEventDelivery, ToolActionId, ToolRequestState, ToolUnavailableReason,
64    TransactionCompletion, TransactionDelivery, TransactionEndEvent, TransactionReceiver,
65    TransactionSubmitRequest,
66};