claude-buddy
Version:
Your friendly AI development companion for Claude Code - supercharge Claude Code with intelligent workflows and safety features
176 lines • 4.87 kB
TypeScript
export type PersonaCategory = 'technical' | 'process' | 'knowledge';
export type ActivationReason = 'manual' | 'automatic';
export type CollaborationStrategy = 'single_persona' | 'multi_persona' | 'comprehensive' | 'isolated' | 'collaborative' | 'manual_selection' | 'focus_driven';
export interface AutoActivationConfig {
keywords: string[];
file_patterns: string[];
confidence_threshold: number;
}
export interface PersonaConfig {
category: PersonaCategory;
description: string;
specializations: string[];
auto_activation: AutoActivationConfig;
compatible_with: string[];
priority_hierarchy: string[];
}
export interface ActivePersona {
name: string;
confidence: number;
activationReason: ActivationReason;
reasoning?: string;
category: PersonaCategory;
specializations: string[];
}
export interface CollaborationPattern {
personas: string[];
description: string;
synergy: 'positive' | 'neutral' | 'negative';
leadPersona: string;
}
export interface ValidationStep {
type: 'security' | 'quality' | 'performance';
personas: string[];
description: string;
}
export interface CollaborationPlan {
strategy: CollaborationStrategy;
leadPersona: string | null;
consultingPersonas?: string[];
collaborationPatterns?: CollaborationPattern[];
validationChain?: ValidationStep[];
}
export interface DetectionResults {
recommendations: PersonaRecommendation[];
sessionContext: unknown;
analysisDetails: unknown;
}
export interface PersonaRecommendation {
persona: string;
confidence: number;
reasoning: string;
breakdown: {
keyword_matching: number;
context_analysis: number;
file_patterns: number;
user_history: number;
};
}
export interface PersonaActivationResult {
activePersonas: ActivePersona[];
reasoning: string;
detectionResults?: DetectionResults | null;
manualMode?: boolean;
automaticMode?: boolean;
fallbackMode?: boolean;
collaboration?: CollaborationPlan;
}
export interface SessionMemory {
interactions: PersonaInteraction[];
preferences: Record<string, unknown>;
successfulPatterns: SuccessfulPattern[];
feedbackHistory: FeedbackRecord[];
activationHistory: ActivationHistory[];
lastAnalysis?: Date;
}
export interface PersonaInteraction {
input: string;
personas: string[];
activationType: ActivationReason;
confidence: number[];
context: Record<string, unknown>;
timestamp?: string;
}
export interface PersonaFeedback {
personas: string[];
rating: number;
comments?: string;
effectiveness?: number;
timestamp?: string;
context?: Record<string, unknown>;
}
export interface SuccessfulPattern {
personas: string[];
context: unknown;
timestamp: number;
}
export interface FeedbackRecord {
type: 'feedback';
personas: string[];
rating: number;
comments?: string;
context: unknown;
timestamp: number;
}
export interface ActivationHistory {
timestamp: number;
personas: string[];
activationType: ActivationReason;
confidence: number[];
input: string;
}
export interface SystemAnalytics {
personaManager: PersonaManagerAnalytics;
learning: LearningAnalytics;
systemHealth: SystemHealth;
}
export interface PersonaManagerAnalytics {
totalInteractions: number;
personaUsage: Record<string, {
count: number;
totalConfidence: number;
}>;
collaborationPatterns: Record<string, number>;
averageConfidence: number;
successfulPatterns: number;
}
export interface LearningAnalytics {
sessionStats: {
interactions: number;
feedback: number;
patterns: number;
sessionDuration: number;
};
persistentStats: {
successfulPatterns: number;
failedPatterns: number;
totalLearningEvents: number;
};
learningEffectiveness: number;
topPatterns: {
pattern: string;
usage: number;
rating: number;
personas: string[];
}[];
recommendations: {
type: string;
message: string;
priority: string;
}[];
}
export interface SystemHealth {
initialized: boolean;
availablePersonas: number;
activePersonas: number;
lastUpdate?: string;
}
export interface GeneratedPrompt {
systemPrompt: string;
personaContext: PersonaContext | null;
collaboration?: CollaborationPlan | null;
learningIntegration?: unknown;
flagIntegration?: unknown;
userInput?: string;
context?: unknown;
}
export interface PersonaContext {
active: ActivePersonaInfo[];
collaboration: CollaborationPlan;
}
export interface ActivePersonaInfo {
name: string;
confidence: number;
role: 'lead' | 'supporting';
}
//# sourceMappingURL=personas.d.ts.map