/**
 * Current-code invariants asserted (2026-04-21, ses_006 Phase 3):
 *
 *   - `ToolRegistry` extends `ManagedRegistry<ToolDefinition>` with
 *     `idField: 'name'` and an additional `availability` map keyed by
 *     tool name.
 *   - `register(tool)` defaults availability to 'active'; the array
 *     overload uses the second arg (if it's a string) as the initial
 *     state for all tools.
 *   - Tier validation: if `tool.tier` is set AND `tierConfig` is
 *     configured, the tier id must be in `tierConfig.tiers`; otherwise
 *     register throws. Tools without a tier (even with tierConfig
 *     configured) are always accepted.
 *   - `unregister` + `clear` drop both the Registry entry and the
 *     availability entry.
 *   - `activate` / `defer` take a list of names; each throws (via
 *     `getOrThrow`) if the name is unknown, then toggles availability.
 *   - `suspendAll` flips every `active` tool to `suspended`;
 *     `deferred` / `suspended` tools are left alone. `hasSuspended`
 *     reports true iff at least one tool is suspended.
 *   - `getAvailability(name)` returns 'active' as a default even for
 *     unknown names (this is non-obvious but is the current behavior).
 *   - `searchDeferred(q)` is a case-insensitive filter against name OR
 *     description of every DEFERRED tool.
 *   - `assignTiers(mapping)` mutates `tool.tier` on existing tools;
 *     throws via `getOrThrow` on unknown name; throws if the tier id
 *     is not in `tierConfig.tiers`.
 *   - `toTierGuidance` returns null without a guidanceTemplate; calls
 *     the template with every defined tier otherwise.
 *   - `toPromptSection`: returns '' when no active or deferred tools;
 *     otherwise produces `<available_tools>` + `<deferred_tools>`
 *     fragments.
 *   - `toLLMTools`: converts active + suspended tools (filtered by
 *     `toolNames` if provided) into LLM tool schemas via
 *     `zodToJsonSchema`. When `tierConfig.labelInDescription` is true,
 *     the description is prefixed with the tier label.
 *   - `execute`: validates availability → permissionMode plan gate →
 *     zod.safeParse → calls tool.execute inside an OTEL span; wraps
 *     thrown errors as `{success:false, error}`.
 */
export {};
//# sourceMappingURL=execute.test.d.ts.map