Skip to main content

conversation_api/execution/
mod.rs

1//! Consumer-owned contracts for the Agent runtime.
2//!
3//! This crate contains transport-neutral domain types and ports. Implementations live in the local
4//! `MeowCore` composition or the private `agent-cloud` composition.
5
6pub mod agent;
7pub mod context;
8pub mod error;
9pub mod event;
10pub mod facade;
11pub mod facade_response;
12pub use facade_response::{FacadeProblem, FacadeResponse, FacadeStatus, ResponseDetail};
13pub mod id;
14pub mod llm;
15pub mod operational_context;
16pub mod storage;
17
18pub use crate::{
19    ConversationSurface, InteractionAnswer, InteractionCard, InteractionKind, InteractionResponse,
20    InteractionTone, PendingInteractionItem,
21};
22pub use agent::{AccessMode, AgentCommand, Interaction, QueuedRun, RunOptions};
23pub use artifact_api::{
24    ARTIFACT_URL_PREFIX, ArtifactKind, ArtifactMetadata, ArtifactReference, ArtifactUri,
25};
26pub use context::{Actor, InvocationContext, Scope};
27pub use error::{ExternalError, ExternalErrorKind};
28pub use event::{
29    AgentEvent, AgentObservation, DurableEvent, EventPublisher, InteractionRequest, Observer,
30};
31pub use facade::{AppFacade, FacadeRequest, FacadeResult, PreparedAction};
32pub use id::{
33    ActionId, ClientId, EventId, MessageId, OperationId, RunId, ScopeId, TenantId, ThreadId, UserId,
34};
35pub use llm::{
36    Completion, CompletionRequest, ContentPart, Continuation, FinishReason, INPUT_AUDIO,
37    INPUT_FILE, INPUT_IMAGE, INPUT_VIDEO, Llm, LlmFailure, Message, MessageRole, ModelCapabilities,
38    ModelConstraints, ModelMode, ModelProfile, TokenUsage, ToolCall, ToolDefinition, ToolEffect,
39    ToolPolicy, UsageSummary, UseCase, input_modality_for_kind, payload_input_modalities,
40};
41pub use operational_context::{
42    ContextGeneration, ContextInvalidation, ContextSource, OperationalContext,
43    OperationalContextDelta,
44};
45pub use storage::{
46    Checkpoint, ClaimNextOutcome, CommitOutcome, HistoryMutation, QueueSnapshot, QueueStore,
47    Revision, RunControl, RunCoordinator, RunLease, RuntimeSnapshot, StoreError, ThreadCommit,
48    ThreadKey, ThreadRecord, ThreadStore,
49};
50
51pub mod wire;
52
53// Serde's internally tagged unit variants otherwise discard their remaining
54// map even with deny_unknown_fields on the enum. Preserve the public unit
55// variant API while requiring an empty payload after the tag is consumed.
56pub(crate) fn deserialize_empty_variant<'de, D>(deserializer: D) -> Result<(), D::Error>
57where
58    D: serde::Deserializer<'de>,
59{
60    #[derive(serde::Deserialize)]
61    #[serde(deny_unknown_fields)]
62    struct Empty {}
63    <Empty as serde::Deserialize>::deserialize(deserializer).map(|_| ())
64}