1#![cfg_attr(
18 test,
19 allow(
20 dead_code,
21 unused_imports,
22 clippy::expect_used,
23 clippy::large_futures,
24 clippy::needless_borrow,
25 clippy::panic,
26 clippy::redundant_closure_for_method_calls,
27 clippy::redundant_clone,
28 clippy::type_complexity,
29 clippy::unnecessary_to_owned,
30 clippy::unwrap_used
31 )
32)]
33
34#[cfg(target_arch = "wasm32")]
35pub mod tokio {
36 pub use tokio_with_wasm::alias::*;
37}
38
39#[cfg(not(target_arch = "wasm32"))]
40pub use ::tokio;
41
42pub mod accept;
43pub mod auth_machine;
44pub mod coalescing;
45pub mod comms_bridge;
46pub mod comms_drain;
47pub mod comms_trust_reconcile;
48pub mod completion;
49pub mod composition;
50pub(crate) mod control_plane;
51pub mod driver;
52pub mod durability;
53pub(crate) mod effect;
54#[doc(hidden)]
55pub mod generated;
56pub mod handles;
57pub mod identifiers;
58pub mod ingress_types;
59pub mod input;
60pub mod input_ledger;
61pub mod input_scope;
62pub mod input_state;
63pub mod meerkat_machine;
64pub(crate) mod meerkat_machine_types;
65pub mod mob_adapter;
66pub mod ops_lifecycle;
67pub mod peer_handling_mode;
68pub mod policy;
69pub mod policy_table;
70#[allow(unused_imports)]
71#[path = "generated/protocol_supervisor_trust_publish.rs"]
72pub mod protocol_supervisor_trust_publish;
73pub mod queue;
74pub mod runtime_event;
75pub(crate) mod runtime_loop;
76pub mod runtime_state;
77pub mod service_ext;
78pub mod silent_intent;
79pub mod store;
80pub mod traits;
81
82use meerkat_core::lifecycle::run_primitive::RuntimeTurnMetadata as RuntimeStampedTurnMetadata;
83use std::any::Any;
84use std::sync::Arc;
85
86struct SessionRuntimeBindingsAuthority;
87
88pub(crate) fn session_runtime_bindings_authority() -> Arc<dyn Any + Send + Sync> {
89 Arc::new(SessionRuntimeBindingsAuthority)
90}
91
92pub(crate) fn local_session_runtime_bindings_authority() -> Arc<dyn Any + Send + Sync> {
93 session_runtime_bindings_authority()
94}
95
96pub fn session_runtime_bindings_have_machine_authority(
97 bindings: &meerkat_core::SessionRuntimeBindings,
98) -> bool {
99 bindings
100 .__runtime_authority()
101 .is::<SessionRuntimeBindingsAuthority>()
102}
103
104pub use accept::{AcceptOutcome, RejectReason, post_admission_signal_from_accept_outcome};
106pub use coalescing::{
107 AggregateDescriptor, CoalescingResult, SupersessionScope, apply_coalescing, apply_supersession,
108 check_supersession, create_aggregate_input, is_coalescing_eligible,
109};
110pub use completion::{CompletionHandle, CompletionOutcome};
111pub use driver::{EphemeralRuntimeDriver, PersistentRuntimeDriver, PostAdmissionSignal};
112pub use durability::{DurabilityError, validate_durability};
113pub use handles::{
114 HandleDslAuthority, RuntimeAuthLeaseHandle, RuntimeCommsDrainHandle,
115 RuntimeExternalToolSurfaceHandle, RuntimeInteractionStreamHandle,
116 RuntimeMcpServerLifecycleHandle, RuntimeModelRoutingHandle, RuntimePeerCommsHandle,
117 RuntimePeerInteractionHandle, RuntimeSessionAdmissionHandle, RuntimeSessionContextHandle,
118 RuntimeTurnStateHandle,
119};
120pub use identifiers::{
121 CausationId, ConversationId, CorrelationId, EventCodeId, IdempotencyKey, InputKind, KindId,
122 LogicalRuntimeId, PolicyVersion, ProjectionRuleId, RuntimeEventId, SchemaId, SupersessionKey,
123};
124pub use ingress_types::{ContentShape, RequestId, ReservationKey};
125pub use input::{
126 ContinuationInput, ExternalEventInput, FlowStepInput, Input, InputDurability, InputHeader,
127 InputOrigin, InputVisibility, OperationInput, PeerConvention, PeerInput, PromptInput,
128 ResponseProgressPhase, ResponseTerminalStatus, peer_response_terminal_input,
129 response_terminal_status_from_wire,
130};
131pub use input_ledger::InputLedger;
132pub use input_scope::InputScope;
133pub use input_state::{
134 InputAbandonReason, InputLifecycleState, InputState, InputStateEvent, InputStateHistoryEntry,
135 InputTerminalOutcome, MAX_STAGE_ATTEMPTS, PolicySnapshot, ReconstructionSource,
136};
137pub use meerkat_core::types::HandlingMode;
138pub use meerkat_machine::{
139 CommsDrainMode, CommsDrainPhase, DrainExitReason, MachineSessionControlAuthority,
140 MeerkatConsumerSurface, MeerkatMachine, PeerIngressOwner, RuntimeBindingsError,
141};
142pub use meerkat_machine_types::{
143 HydratedSessionLlmState, ImageOperationRoutingRequest, ImageOperationRoutingResult,
144 ModelRoutingApprovalDisposition, ModelRoutingRealtimePolicy, ResolvedSessionLlmReconfigure,
145 SessionLlmCapabilitySurface, SessionLlmCapabilitySurfaceStatus, SessionLlmReconfigureHost,
146 SessionLlmReconfigureReport, SessionLlmReconfigureRequest, SessionToolVisibilityDelta,
147};
148#[doc(hidden)]
149pub use meerkat_machine_types::{
150 MeerkatAdmittedInputSnapshot, MeerkatBindingSnapshot, MeerkatCompletionWaiterSnapshot,
151 MeerkatCompletionWaitersSnapshot, MeerkatControlSnapshot, MeerkatCursorSnapshot,
152 MeerkatDrainSnapshot, MeerkatDriverKind, MeerkatInputsSnapshot, MeerkatMachineCatalogInput,
153 MeerkatMachineCommandClassification, MeerkatMachineCommandClassificationRecord,
154 MeerkatMachineCommandVariant, MeerkatMachineFieldlessRuntimeInternalInput,
155 MeerkatMachineRuntimeInternalClassificationRecord, MeerkatMachineRuntimeInternalInput,
156 MeerkatMachineRuntimeInternalReason, MeerkatMachineShellMechanicReason,
157 MeerkatMachineSpineSnapshot, MeerkatOpsSnapshot,
158 canonical_meerkat_machine_command_classifications,
159 canonical_meerkat_machine_command_input_variant_manifest,
160 canonical_meerkat_machine_command_manifest,
161 canonical_meerkat_machine_runtime_internal_classifications,
162 canonical_meerkat_machine_runtime_internal_fieldless_input_variant_manifest,
163 canonical_meerkat_machine_runtime_internal_input_variant_manifest,
164 canonical_meerkat_machine_runtime_internal_manifest,
165};
166pub use ops_lifecycle::{
167 OpsLifecycleConfig, OpsLifecyclePersistenceRequest, PersistedOpsSnapshot,
168 RuntimeOpsLifecycleRegistry,
169};
170
171pub fn runtime_stamped_prompt_turn_metadata(
178 metadata: Option<RuntimeStampedTurnMetadata>,
179) -> RuntimeStampedTurnMetadata {
180 let input = Input::Prompt(PromptInput::from_content_input(
181 meerkat_core::ContentInput::Text(String::new()),
182 metadata,
183 ));
184 let policy = policy_table::DefaultPolicyTable::resolve(&input, true);
185 let semantics =
186 ingress_types::RuntimeInputSemantics::from_policy_and_kind(&policy, input.kind());
187 runtime_loop::for_input(&input, semantics)
188}
189
190#[doc(hidden)]
191pub mod machine_schema_exports {
192 pub fn meerkat_machine_schema() -> meerkat_machine_schema::MachineSchema {
193 meerkat_machine_schema::catalog::dsl::meerkat_machine_schema_metadata()
194 .attach_to(crate::meerkat_machine::dsl::MeerkatMachineState::schema())
195 }
196
197 pub fn auth_machine_schema() -> meerkat_machine_schema::MachineSchema {
198 meerkat_machine_schema::catalog::dsl::auth_machine_schema_metadata()
199 .attach_to(crate::auth_machine::dsl::AuthMachineState::schema())
200 }
201}
202pub use peer_handling_mode::{PeerHandlingModeError, validate_peer_handling_mode};
203pub use policy::{
204 ApplyMode, ConsumePoint, DrainPolicy, PolicyDecision, QueueMode, RoutingDisposition, WakeMode,
205};
206pub use policy_table::{DEFAULT_POLICY_VERSION, DefaultPolicyTable};
207pub use queue::InputQueue;
208pub use runtime_event::{
209 InputLifecycleEvent, RunLifecycleEvent, RuntimeEvent, RuntimeEventEnvelope,
210 RuntimeProjectionEvent, RuntimeStateChangeEvent, RuntimeTopologyEvent,
211};
212pub use runtime_state::{RuntimeState, RuntimeStateTransitionError};
213pub use service_ext::{RuntimeMode, SessionServiceRuntimeExt};
214pub use store::{InMemoryRuntimeStore, RuntimeStore, RuntimeStoreError, SessionDelta};
215pub use traits::{
216 DestroyReport, RecoveryReport, RecycleReport, ResetReport, RetireReport, RuntimeControlPlane,
217 RuntimeControlPlaneError, RuntimeDriver, RuntimeDriverError,
218};