Replace brittle string checks with robust path.resolve/relative validation: - Fix Windows backslash paths (.sisyphus\plans\x.md) being incorrectly blocked - Fix case-sensitive extension check (.MD now accepted) - Add workspace confinement (block paths outside root even if containing .sisyphus) - Block nested .sisyphus directories (only first segment allowed) - Block path traversal attempts (.sisyphus/../secrets.md) - Use ALLOWED_EXTENSIONS and ALLOWED_PATH_PREFIX constants (case-insensitive) The new isAllowedFile() uses Node's path module for cross-platform compatibility instead of string includes/endsWith which failed on Windows separators.
This commit is contained in:
@@ -4,7 +4,7 @@ export const PROMETHEUS_AGENTS = ["Prometheus (Planner)"]
|
||||
|
||||
export const ALLOWED_EXTENSIONS = [".md"]
|
||||
|
||||
export const ALLOWED_PATH_PREFIX = ".sisyphus/"
|
||||
export const ALLOWED_PATH_PREFIX = ".sisyphus"
|
||||
|
||||
export const BLOCKED_TOOLS = ["Write", "Edit", "write", "edit"]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user