import type { AgentModelInput, IAgentSession } from '../agent/types.js'; import type { TraceSink } from '../agent/trace/index.js'; import type { ReadScopeInputs } from '../agent/subagent-read-scope.js'; export interface SkillExecutionContext { apiKey?: string; defaultModel?: AgentModelInput; defaultSubagentModel: AgentModelInput; callId?: string; dispatchSkill?: (name: string, args?: string) => Promise; traceWriter?: TraceSink; getReadScopeInputs?: () => ReadScopeInputs; workspaceStore?: import('../agent/workspace/index.js').WorkspaceStore; } export interface SkillMetadata { name: string; description: string; handler: (input: unknown, parentSession?: IAgentSession, ctx?: SkillExecutionContext) => Promise; argumentHint?: string; whenToUse?: string; model?: string; context?: 'inline' | 'fork' | 'load'; loadBody?: string; origin?: 'builtin' | 'user' | 'project' | `imported:${string}`; flags?: readonly string[]; readOnly?: boolean; audience?: 'public' | 'internal'; category?: SkillCategory; } export declare const SKILL_CATEGORIES: readonly ["Build & ship", "Debug & fix", "Understand & explore", "Refactor & simplify", "Review & verify", "Setup & ops", "Author & meta"]; export type SkillCategory = (typeof SKILL_CATEGORIES)[number]; export declare const UNCATEGORIZED_LABEL = "More skills";