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}