/** * SkillRuntime — 技能运行时引擎 * * 参考 OpenClaw 的多目录加载机制 + 优先级覆盖: * - bundled: 内置 Skill(代码中注册) * - managed: ~/.jarvis/skills/ 下安装的 Skill * - workspace: 项目目录 skills/ 下的 Skill * - runtime: Agent 运行时动态创建的 Skill * * 加载优先级:workspace > managed > bundled(同名覆盖) */ import type { AgentConfig, Tool } from "../types.js"; import type { SkillFactory, SkillSource, LoadedSkill, SkillSearchResult, SkillCategory } from "./types.js"; export declare class SkillRuntime { /** 已加载的 Skill 映射 */ private skills; /** 全局配置 */ private config; /** 事件回调 */ private listeners; constructor(config?: AgentConfig); /** * 注册内置 Skill(bundled) * 通过工厂函数创建,最低优先级 */ registerBundled(factory: SkillFactory): void; /** * 批量注册内置 Skill */ registerBundledAll(factories: SkillFactory[]): void; /** * 从文件系统目录加载 Skill * 目录结构:skills//skill.json + index.ts * * 注意:此方法需要在 Node.js 环境中运行 * 使用动态 import 加载 Skill 模块 */ loadFromDirectory(dir: string, source?: SkillSource): Promise; /** * 加载一个 Skill 实例 * 处理同名覆盖(高优先级覆盖低优先级) */ private loadSkillInstance; /** 激活所有已加载的 Skill */ activateAll(): Promise; /** 激活单个 Skill */ activateSkill(name: string): Promise; /** 停用 Skill */ deactivateSkill(name: string): Promise; /** 卸载 Skill */ unloadSkill(name: string): Promise; /** 获取所有已激活的 Tools(聚合所有 Skill 的 Tools) */ getAllTools(): Tool[]; /** 获取单个 Tool */ getTool(toolName: string): Tool | undefined; /** 查找 Tool 所属的 Skill */ findSkillByTool(toolName: string): LoadedSkill | undefined; /** 按分类获取 Skill */ getSkillsByCategory(category: SkillCategory): LoadedSkill[]; /** 搜索 Skill */ searchSkills(query: string): SkillSearchResult[]; /** 获取所有 Skill 状态 */ getStatus(): SkillSearchResult[]; /** 获取 Skill 元数据(供 LLM System Prompt 使用) */ getSkillsPrompt(): string; /** 根据触发词匹配 Skill */ matchByTrigger(instruction: string): LoadedSkill[]; /** 对所有活跃 Skill 执行健康检查 */ healthCheckAll(): Promise>; /** 检查 Skill 的运行时需求 */ private checkRequirements; on(event: string, callback: (...args: unknown[]) => void): void; private emit; get skillCount(): number; get activeSkillCount(): number; get totalToolCount(): number; } //# sourceMappingURL=runtime.d.ts.map