#![warn(missing_docs)]
pub mod alerting;
pub mod builder;
pub mod conformance;
pub mod dialect;
pub mod dynamic;
pub mod error;
pub mod event;
pub mod language;
pub mod llm;
pub mod model;
pub mod registry;
pub mod resolve;
pub mod sinks;
pub mod storage;
pub use builder::PluginRegistryBuilder;
pub use dialect::{DialectInfo, PlatformDialect, PlatformRegistry};
pub use dynamic::{
API_VERSION, ApiVersionFn, PLUGIN_API_VERSION_SYMBOL, PLUGIN_REGISTER_SYMBOL, PluginLoadResult,
RegisterPluginFn,
};
pub use razeri_plugin_contract;
#[cfg(all(feature = "dynamic", not(target_arch = "wasm32")))]
pub use dynamic::load_plugins_from_dir;
pub use error::{EventSinkError, LanguageError, LlmError, StorageError};
pub use event::{
EventCategory, EventEmitter, EventFilterKeys, EventPayload, EventQuery, EventRegistry,
EventSeverity, EventSink, EventSubject, EventSubjectKind, EventSummary, EventValidationError,
RazeriEvent, WorkflowContext,
};
pub use language::{LanguageRegistry, LanguageRenderer, LanguageRendererFactory};
pub use llm::{
ChatResponse, LlmClient, LlmClientFactory, LlmRegistry, Message, ModelInfo, TokenUsage,
};
pub use model::{LlmModelAdapter, ModelCapabilities, ModelRegistry};
pub use registry::PluginRegistry;
pub use resolve::ResolveError;
pub use storage::{
StorageListEntry, StorageMetadata, StorageOps, StorageProviderFactory, StorageRegistry,
};
#[cfg(not(target_arch = "wasm32"))]
pub use sinks::jsonl::JsonlSink;
pub use sinks::stdout::StdoutSink;
pub use sinks::webhook::WebhookSink;
pub use sinks::{EventSinkConfig, create_sink};
pub use alerting::{
AlertCondition, AlertMetric, AlertResult, AlertRule, AlertScope, ComparisonOp, HealthDomain,
HealthStatus, HealthSummary, SinkStatus, discover_health, evaluate_rules, health_for_domain,
};
pub use builder::{
DialectRegistration, EventSinkRegistration, LanguageRegistration, LlmRegistration,
ModelRegistration, StorageRegistration,
};
use std::sync::Arc;
pub fn resolve_dialect_by_name(name: &str) -> Result<Arc<dyn PlatformDialect>, ResolveError> {
resolve::resolve_dialect_by_name(name)
}
#[must_use]
pub fn try_resolve_dialect_by_name(name: &str) -> Option<Arc<dyn PlatformDialect>> {
resolve_dialect_by_name(name).ok()
}