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