/** A named agent archetype loaded from a .goodvibes/agents/*.md file * or from built-in templates. */ export interface AgentArchetype { /** Archetype identifier (filename without extension, or template key). */ name: string; /** Human-readable description. */ description: string; /** Tool names the agent has access to. */ tools: string[]; /** Model override (optional). */ model?: string | undefined; /** Provider override (optional). */ provider?: string | undefined; /** System prompt injected at agent start (optional). */ systemPrompt?: string | undefined; /** True if loaded from a markdown file, false if built-in. */ isCustom: boolean; /** Where this archetype came from. */ origin: 'builtin' | 'local-markdown'; /** Source path when loaded from a markdown file. */ sourcePath?: string | undefined; /** Validation or schema issues discovered while loading. */ validationIssues?: readonly string[] | undefined; /** Brief preview of the archetype body. */ preview?: string | undefined; /** Lazy @ references discovered in the body. */ includes?: readonly string[] | undefined; /** Markdown headings discovered in the body. */ sections?: readonly string[] | undefined; } /** Loads and caches agent archetypes from .goodvibes/agents/*.md files. * * Progressive loading: * - `listArchetypes()` returns all known archetypes (frontmatter only); * full body (system_prompt) is populated on first call to `loadArchetype()`. * - Built-in archetypes are available when no local .md file is found. */ export declare class ArchetypeLoader { /** Map from archetype name -> AgentArchetype (may be partially loaded) */ private cache; /** Map from archetype name -> raw markdown body (lazy) */ private bodyCache; /** Whether the directory scan has been run */ private scanned; /** Directory to scan for .md files */ private dir; constructor(dir?: string); /** Scan the agents directory and populate cache with frontmatter-only entries. * Called automatically on first access. */ private scan; /** Load a named archetype with full content (including system prompt). * Returns null if not found in files or built-ins. */ loadArchetype(name: string): AgentArchetype | null; /** List all known archetypes (frontmatter only, no body loading). */ listArchetypes(): AgentArchetype[]; /** Merge archetype config with runtime overrides. * Override properties take precedence over archetype defaults. * Returns null if the named archetype is not found. */ mergeWithOverrides(name: string, overrides: { model?: string | undefined; provider?: string | undefined; tools?: string[] | undefined; }): AgentArchetype | null; /** Clear all cached archetypes and force re-scan on next access. * Primarily for testing. */ clear(): void; } //# sourceMappingURL=archetypes.d.ts.map