Skip to content

permittedToolNames

function permittedToolNames(active): Set<string> | null;

Union of every declaring active skill’s allowed tools plus framework skill tools. Returns null when unrestricted — not an empty set (empty means nothing is allowed).

A skill with no allowed-tools imposes no restriction and does not widen one: if skill A declares alpha and skill B declares nothing, the permitted set is {alpha} ∪ framework, not unrestricted. Loading a second unconstrained skill must not dissolve an active boundary.

allowed-tools is a guard-rail for an honest model that makes mistakes, not a boundary against an adversarial one: load_skill is always permitted, and the permitted set is the union across active skills, so a model restricted by skill A can activate skill B and gain B’s tools. A missed activation (wrong name, or the model chose not to load) restricts nothing. For an unconditional restriction, set an agent policy.

Parameter Type

active

readonly SkillActivation[]

Set<string> | null