Skip to main content

bctx_nexus/server/
mod.rs

1pub mod http;
2pub mod stdio;
3
4use atlas::registry::SkillRegistry;
5
6use crate::gateway::ToolGateway;
7use crate::permission::{PermissionEngine, PermissionModel};
8use crate::registry::ToolRegistry;
9
10pub struct NexusServer {
11    pub gateway: ToolGateway,
12}
13
14impl NexusServer {
15    pub fn new(model: PermissionModel) -> Self {
16        let manifests = ToolRegistry::default_registry();
17        let skills = SkillRegistry::default_registry();
18        let permission = PermissionEngine::new(model);
19        Self {
20            gateway: ToolGateway::new(manifests, skills, permission),
21        }
22    }
23}
24
25impl Default for NexusServer {
26    fn default() -> Self {
27        Self::new(PermissionModel::permissive())
28    }
29}