#![deny(missing_docs)]
#![forbid(unsafe_code)]
mod completion;
mod error;
mod hooks;
mod lifecycle;
mod provider;
mod storage;
mod vault;
pub use completion::{Completion, CompletionRequest, CompletionTarget};
pub use error::{PluginError, PluginErrorCode, PluginResult};
pub use hooks::{
EventAttribution, EventCursor, HookBus, HookEvent, HookLifecycle, HookRecvError,
HookSubscription, PublishError, VaultEventEnvelope, WriteProvenance,
};
pub use lifecycle::{ShutdownSignal, ShutdownTrigger};
pub use provider::{
MCP_TOOL_NAME_MAX_LEN, Plugin, PluginCapabilities, PluginContext, PluginDescriptor,
PluginProvider, PluginRequestContext, namespaced_prompt_name, namespaced_resource_template,
namespaced_resource_uri, namespaced_tool_name, validate_mcp_tool_name, validate_plugin_id,
};
pub use storage::{PluginStorage, PluginStore};
pub use turbomcp_types::{
Prompt, PromptResult, Resource, ResourceResult, ResourceTemplate, Tool, ToolResult,
};
pub use vault::{
NoteListing, NoteSnapshot, PluginIdentity, VaultApi, VaultDescriptor, VaultHost,
WriteNoteRequest, WritePrecondition, WriteReceipt,
};
#[cfg(doctest)]
#[doc = include_str!("../README.md")]
struct ReadmeExamples;