mod api;
mod auth;
#[cfg(feature = "bot")]
pub mod bot;
pub mod events;
pub mod loaders;
pub mod store;
pub mod tools;
pub mod vector_store;
pub use events::listener::LarkEventListener;
pub use loaders::bitable::LarkBitableLoader;
pub use loaders::doc::LarkDocLoader;
pub use loaders::drive::LarkDriveLoader;
pub use loaders::spreadsheet::LarkSpreadsheetLoader;
pub use loaders::wiki::LarkWikiLoader;
pub use store::cache::LarkBitableLlmCache;
pub use store::checkpointer::LarkBitableCheckpointer;
pub use store::memory::LarkBitableMemoryStore;
pub use tools::asr::LarkAsrTool;
pub use tools::bitable::LarkBitableTool;
pub use tools::calendar::LarkCalendarTool;
pub use tools::chat::LarkChatTool;
pub use tools::contact::LarkContactTool;
pub use tools::doc_process::LarkDocProcessTool;
pub use tools::message::LarkMessageTool;
pub use tools::ocr::LarkOcrTool;
pub use tools::spreadsheet::LarkSpreadsheetTool;
pub use tools::task::LarkTaskTool;
pub use tools::translate::LarkTranslateTool;
pub use vector_store::LarkVectorStore;
#[cfg(feature = "bot")]
pub use bot::{
LarkBotClient, LarkLongConnListener, LarkMessageEvent, StreamingCardOptions,
StreamingCardWriter,
};
pub use synaptic_core::{Loader, Tool};
use std::sync::Arc;
#[derive(Debug, Clone)]
pub struct LarkConfig {
pub app_id: String,
pub app_secret: String,
pub base_url: String,
}
impl LarkConfig {
pub fn new(app_id: impl Into<String>, app_secret: impl Into<String>) -> Self {
Self {
app_id: app_id.into(),
app_secret: app_secret.into(),
base_url: "https://open.feishu.cn/open-apis".to_string(),
}
}
pub fn with_base_url(mut self, url: impl Into<String>) -> Self {
self.base_url = url.into();
self
}
pub(crate) fn token_cache(self) -> auth::TokenCache {
auth::TokenCache::new(Arc::new(self))
}
}