bc-code-intelligence-mcp
Version:
BC Code Intelligence MCP Server - Complete Specialist Bundle with AI-driven expert consultation, seamless handoffs, and context-preserving workflows
101 lines • 3.09 kB
TypeScript
/**
* Specialist Loader Service
*
* Loads and parses specialist persona definitions from markdown files
* with rich YAML frontmatter including personality traits, collaboration
* patterns, and roleplay information.
*/
export interface SpecialistPersona {
personality: string[];
communication_style: string;
greeting: string;
}
export interface SpecialistExpertise {
primary: string[];
secondary: string[];
}
export interface SpecialistCollaboration {
natural_handoffs: string[];
team_consultations: string[];
}
export interface SpecialistDefinition {
title: string;
specialist_id: string;
emoji: string;
role: string;
team: string;
persona: SpecialistPersona;
expertise: SpecialistExpertise;
domains: string[];
when_to_use: string[];
collaboration: SpecialistCollaboration;
related_specialists: string[];
content: string;
}
export interface SpecialistCharacterGuide {
identity_section: string;
process_section: string;
examples_section: string;
collaboration_section: string;
}
export declare class SpecialistLoader {
private specialistsPath;
private specialistCache;
private loaded;
constructor(specialistsPath: string);
/**
* Load all specialist definitions from the specialists folder
*/
loadAllSpecialists(): Promise<Map<string, SpecialistDefinition>>;
/**
* Load a single specialist from a markdown file
*/
loadSpecialist(filePath: string): Promise<SpecialistDefinition | null>;
/**
* Parse specialist markdown file with YAML frontmatter
*/
private parseSpecialistFile;
/**
* Get a specific specialist by ID
*/
getSpecialist(specialistId: string): Promise<SpecialistDefinition | null>;
/**
* Get all loaded specialists
*/
getAllSpecialists(): Promise<SpecialistDefinition[]>;
/**
* Get specialists by team
*/
getSpecialistsByTeam(team: string): Promise<SpecialistDefinition[]>;
/**
* Get specialists by domain expertise
*/
getSpecialistsByDomain(domain: string): Promise<SpecialistDefinition[]>;
/**
* Extract character guide sections from specialist content
*/
extractCharacterGuide(specialist: SpecialistDefinition): SpecialistCharacterGuide;
private extractSection;
/**
* Find specialists who can collaborate with the given specialist
*/
getCollaborators(specialistId: string): Promise<{
handoffs: SpecialistDefinition[];
consultations: SpecialistDefinition[];
related: SpecialistDefinition[];
}>;
/**
* Get specialist suggestions for a given context or problem
*/
suggestSpecialist(context: string, problemType?: string): Promise<SpecialistDefinition[]>;
/**
* Get statistics about loaded specialists
*/
getStatistics(): {
total_specialists: number;
teams: Record<string, number>;
domains: Record<string, number>;
average_collaborators: number;
};
}
//# sourceMappingURL=specialist-loader.d.ts.map