smelt.shell¶
Tier: Host — Available in every runtime, including headless mode.
Shell command splitting and interactive/background-operator validators.
smelt.shell.check_background_op¶
Return a user-facing error message if command uses the shell & background operator, or nil otherwise.
smelt.shell.check_interactive¶
Return a user-facing error message if command would invoke an interactive program (editor, REPL, pager, git -i, etc.), or nil if it is safe to run non-interactively.
smelt.shell.extract_paths¶
Extract filesystem paths referenced by command for workspace permission checks.
smelt.shell.split¶
Split command into the sequence of subcommands separated by shell operators (;, &&, ||, |). Operators themselves are dropped.
smelt.shell.split_with_ops¶
Split command into subcommands and pair each with the operator that followed it. Returns rows of { command = string, op = string? }.