Skip to main content

sim_lib_logic/
capabilities.rs

1//! Capability names used by the logic library.
2
3use sim_kernel::CapabilityName;
4
5/// The capability gating logic-database writes (`logic.db.write`).
6pub fn logic_db_write_capability() -> CapabilityName {
7    CapabilityName::new("logic.db.write")
8}
9
10/// The capability gating global logic-config mutation (`logic.config.write`).
11pub fn logic_config_write_capability() -> CapabilityName {
12    CapabilityName::new("logic.config.write")
13}
14
15/// The capability gating logic tool calls (`logic.tool-call`).
16pub fn logic_tool_call_capability() -> CapabilityName {
17    CapabilityName::new("logic.tool-call")
18}
19
20#[cfg(test)]
21mod tests {
22    use super::{
23        logic_config_write_capability, logic_db_write_capability, logic_tool_call_capability,
24    };
25
26    #[test]
27    fn capability_tokens_are_stable() {
28        assert_eq!(logic_db_write_capability().as_str(), "logic.db.write");
29        assert_eq!(
30            logic_config_write_capability().as_str(),
31            "logic.config.write"
32        );
33        assert_eq!(logic_tool_call_capability().as_str(), "logic.tool-call");
34    }
35}