/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import { Storage } from '../config/storage.js'; import { type SkillDefinition } from './skillLoader.js'; import type { GeminiCLIExtension } from '../config/config.js'; export { type SkillDefinition }; export declare class SkillManager { private skills; private activeSkillNames; private adminSkillsEnabled; /** * Clears all discovered skills. */ clearSkills(): void; /** * Sets administrative settings for skills. */ setAdminSettings(enabled: boolean): void; /** * Returns true if skills are enabled by the admin. */ isAdminEnabled(): boolean; /** * Discovers skills from standard user and workspace locations, as well as extensions. * Precedence: Extensions (lowest) -> User -> Workspace (highest). */ discoverSkills(storage: Storage, extensions?: GeminiCLIExtension[], isTrusted?: boolean): Promise; /** * Discovers built-in skills. */ private discoverBuiltinSkills; /** * Adds skills to the manager programmatically. */ addSkills(skills: SkillDefinition[]): void; private addSkillsWithPrecedence; /** * Returns the list of enabled discovered skills. */ getSkills(): SkillDefinition[]; /** * Returns the list of enabled discovered skills that should be displayed in the UI. * This excludes built-in skills. */ getDisplayableSkills(): SkillDefinition[]; /** * Returns all discovered skills, including disabled ones. */ getAllSkills(): SkillDefinition[]; /** * Filters discovered skills by name. */ filterSkills(predicate: (skill: SkillDefinition) => boolean): void; /** * Sets the list of disabled skill names. */ setDisabledSkills(disabledNames: string[]): void; /** * Reads the full content (metadata + body) of a skill by name. */ getSkill(name: string): SkillDefinition | null; /** * Activates a skill by name. */ activateSkill(name: string): void; /** * Checks if a skill is active. */ isSkillActive(name: string): boolean; }