af-agent 0.4.0

Stable Agent model, tool, inbox, and trusted-plugin contracts.
Documentation
//! Stable Agent extension contracts: model, tools, inbox, and trusted plugins.
//! The single executable loop lives in `af-agent-runtime`.

#![deny(missing_docs)]
#![deny(rustdoc::broken_intra_doc_links)]

/// Per-step context contribution seam.
pub mod context;
/// Pending-input queue and delivery modes.
pub mod inbox;
pub mod model;
/// Trusted plugin lifecycle, hooks and registrar.
pub mod plugin;
/// Deterministic prompt-section composition.
pub mod prompt;
pub mod testing;
pub mod tool;

pub use af_agent_session::InteractionResolution;
pub use af_context::RequestContext;
pub use context::{ContextAuthority, ContextContribution, ContextContributor, ContextRequest};
pub use inbox::{Inbox, InboxError, InboxItem};
pub use model::{ChatModel, ModelDescriptor, ModelRegistry, ModelRegistryError};
pub use plugin::{
    mount_plugins, resolve_plugin_order, validate_plugin_references, AgentPlugin, AgentRegistrar,
    Hook, HookDecision, ModelFailure, ModelRequestPolicy, MountedPlugins, PluginCatalog,
    PluginDescriptor, PluginError, PluginLease, PluginManifest, PluginMountContext,
    PluginPermission, PluginReferenceIssue, PreStepDecision, RequestErrorAction, StepContext,
    ToolExecutionFuture, TurnStopDecision,
};
pub use prompt::{PromptAuthority, PromptRegistry, PromptSection};
pub use tool::{
    model_tool_name, support as tool_support, validate_json_schema,
    validate_json_schema_definition, validate_json_schema_value, CancellationToken, Tool,
    ToolConcurrency, ToolExecutionContext, ToolMeta, ToolRegistry, ToolSurface,
};