import type { SkillScope, LoadedSkill } from "../../features/opencode-skill-loader/types"; import type { SkillMcpManager } from "../../features/skill-mcp-manager"; import type { GitMasterConfig } from "../../config/schema"; import type { CommandInfo } from "../slashcommand/types"; export interface SkillArgs { name: string; user_message?: string; } export interface SkillInfo { name: string; description: string; location?: string; scope: SkillScope; license?: string; compatibility?: string; metadata?: Record; allowedTools?: string[]; } export interface SkillLoadOptions { /** When true, only load from OpenCode paths (.opencode/skills/, ~/.config/opencode/skills/) */ opencodeOnly?: boolean; /** Pre-merged skills to use instead of discovering */ skills?: LoadedSkill[]; /** Pre-discovered commands to use instead of discovering */ commands?: CommandInfo[]; /** MCP manager for querying skill-embedded MCP servers */ mcpManager?: SkillMcpManager; /** Session ID getter for MCP client identification */ getSessionID?: () => string; /** Git master configuration for watermark/co-author settings */ gitMasterConfig?: GitMasterConfig; disabledSkills?: Set; /** Include Claude marketplace plugin commands in discovery (default: true) */ pluginsEnabled?: boolean; /** Override plugin enablement from Claude settings by plugin key */ enabledPluginsOverride?: Record; }