MCPcopy Create free account
hub / github.com/AutoForgeAI/autoforge / get_effective_pkill_processes

Function get_effective_pkill_processes

security.py:804–837  ·  view source on GitHub ↗

Get effective pkill process names after hierarchy resolution. Merges processes from: 1. DEFAULT_PKILL_PROCESSES (hardcoded baseline) 2. Org config pkill_processes 3. Project config pkill_processes Args: project_dir: Path to the project directory, or None Retur

(project_dir: Optional[Path])

Source from the content-addressed store, hash-verified

802
803
804def get_effective_pkill_processes(project_dir: Optional[Path]) -> set[str]:
805 """
806 Get effective pkill process names after hierarchy resolution.
807
808 Merges processes from:
809 1. DEFAULT_PKILL_PROCESSES (hardcoded baseline)
810 2. Org config pkill_processes
811 3. Project config pkill_processes
812
813 Args:
814 project_dir: Path to the project directory, or None
815
816 Returns:
817 Set of allowed process names for pkill
818 """
819 # Start with default processes
820 processes = DEFAULT_PKILL_PROCESSES.copy()
821
822 # Add org-level pkill_processes
823 org_config = load_org_config()
824 if org_config:
825 org_processes = org_config.get("pkill_processes", [])
826 if isinstance(org_processes, list):
827 processes |= {p for p in org_processes if isinstance(p, str) and p.strip()}
828
829 # Add project-level pkill_processes
830 if project_dir:
831 project_config = load_project_commands(project_dir)
832 if project_config:
833 proj_processes = project_config.get("pkill_processes", [])
834 if isinstance(proj_processes, list):
835 processes |= {p for p in proj_processes if isinstance(p, str) and p.strip()}
836
837 return processes
838
839
840def is_command_allowed(command: str, allowed_commands: set[str]) -> bool:

Callers 2

test_pkill_extensibilityFunction · 0.90
bash_security_hookFunction · 0.85

Calls 2

load_org_configFunction · 0.85
load_project_commandsFunction · 0.85

Tested by 1

test_pkill_extensibilityFunction · 0.72