claude_pool_server/
lib.rs1pub mod prompts;
8pub mod resources;
9pub mod tools;
10
11pub mod auth;
12
13use std::path::PathBuf;
14use std::sync::Arc;
15
16use claude_pool::{Pool, PoolStore, SkillRegistry, WorkflowRegistry};
17use serde::Serialize;
18use tokio::sync::RwLock;
19
20#[derive(Debug, Clone, Serialize)]
22pub struct ServerInfo {
23 pub version: String,
25 pub commit: String,
27 pub model: Option<String>,
29 pub permission_mode: String,
31 pub slots: usize,
33}
34
35impl ServerInfo {
36 pub fn new(model: Option<String>, permission_mode: String, slots: usize) -> Self {
38 Self {
39 version: env!("CARGO_PKG_VERSION").to_string(),
40 commit: env!("GIT_HASH").to_string(),
41 model,
42 permission_mode,
43 slots,
44 }
45 }
46}
47
48pub struct State<S: PoolStore> {
50 pub pool: Pool<S>,
52 pub skills: Arc<RwLock<SkillRegistry>>,
54 pub workflows: WorkflowRegistry,
56 pub skills_dir: PathBuf,
58 pub server_info: ServerInfo,
60}