/** * Agent registry — stored agent profiles for capability-based routing. * * Agent profiles are markdown notes in the Agents/ folder with structured * YAML frontmatter. Agents can self-register or be auto-registered when * they first claim a task. */ import { Vault } from "./vault.js"; export interface AgentProfile { id: string; status: "active" | "idle" | "offline"; capabilities: string[]; tags: string[]; max_concurrent: number; current_tasks: number; model: string; registered: string; last_seen: string; tasks_completed: number; tasks_failed: number; description: string; } /** * Parse raw frontmatter into an AgentProfile. * Returns null if the frontmatter doesn't look like an agent profile. */ export declare function parseAgentProfile(fm: Record): AgentProfile | null; /** * Scan the agents folder and return all agent profiles. */ export declare function scanAgents(vault: Vault, agentsFolder: string): Promise>; /** * Build the file path for an agent profile note. */ export declare function buildAgentPath(agentsFolder: string, agentId: string): string; /** * Build frontmatter for an agent profile. */ export declare function buildAgentFrontmatter(overrides: Partial & { id: string; }): AgentProfile; /** * Match agents to a task based on capability overlap and availability. * Returns agents sorted by match score (highest first). */ export declare function matchAgents(agents: AgentProfile[], taskType: string, taskTags: string[]): Array<{ agent: AgentProfile; score: number; reasons: string[]; }>; /** * Auto-register or update an agent's profile. * Used by claim_task for unregistered agents. */ export declare function ensureAgentProfile(vault: Vault, agentsFolder: string, agentId: string, update?: Partial): Promise<{ path: string; agent: AgentProfile; created: boolean; }>; //# sourceMappingURL=agent-registry.d.ts.map