eln_plugin_sdk/lib.rs
1//! # eln-plugin-sdk
2//!
3//! Plugin API platform for the [elendirna](https://github.com/elen-labs/elendirna) project.
4//!
5//! Defines the interface contract between elendirna core and plugin modules:
6//! permissions, identity, tool call shape, server surface.
7//!
8//! ## Status (S2)
9//!
10//! Trait-shaped skeleton. rmcp dep 미포함 — transport-agnostic. SDK proc-macro
11//! (`#[mcp_tool]`)는 도입하지 않음 (rmcp `#[tool]` macro와 layer 충돌 회피).
12//! API key validation / signature·hash·registry / audit hook은 본 SDK 범위 밖 (S3).
13
14pub mod api_key;
15pub mod error;
16pub mod identity;
17pub mod permissions;
18pub mod server;
19pub mod tool;
20
21pub use api_key::ApiKey;
22pub use error::{PermissionDenied, ToolError};
23pub use identity::Identity;
24pub use permissions::Permissions;
25pub use server::{PluginServer, ToolDescriptor};
26pub use tool::{CallContext, ToolHandler};
27
28/// SDK crate 버전 (`CARGO_PKG_VERSION`). 호환성 진단용 — core가 session_start 응답에
29/// core 버전과 함께 노출해 plugin SDK ↔ core 버전 skew를 한눈에 드러낸다.
30pub const VERSION: &str = env!("CARGO_PKG_VERSION");