The tool names ALLOWED at a declared purity, given a vocabulary V:
purity
V
"pure"
V["readOnly"]
"bounded"
V["bounded"]
Bash
"dangerously-unrestricted"
string
With the open default vocabulary every branch widens to string, so an untyped surface accepts any tools.
The tool names ALLOWED at a declared
purity, given a vocabularyV:"pure"→ onlyV["readOnly"]."bounded"→V["bounded"](read-only ∪ decidable side-effecting ∪Bash)."dangerously-unrestricted"(or no purity) →string(anything).With the open default vocabulary every branch widens to
string, so an untyped surface accepts any tools.