vibe-coder-mcp
Version:
Production-ready MCP server with complete agent integration, multi-transport support, and comprehensive development automation tools for AI-assisted workflows.
110 lines • 3.4 kB
TypeScript
import { AtomicTask } from './task.js';
import { ProjectContext } from '../types/project-context.js';
import { ContextResult } from '../services/context-enrichment-service.js';
export interface ResearchTriggerConditions {
projectType: {
isGreenfield: boolean;
hasExistingCodebase: boolean;
codebaseMaturity: 'new' | 'developing' | 'mature' | 'legacy';
confidence: number;
};
taskComplexity: {
complexityScore: number;
complexityIndicators: string[];
estimatedResearchValue: number;
requiresSpecializedKnowledge: boolean;
};
knowledgeGap: {
contextQuality: number;
relevanceScore: number;
filesFound: number;
averageRelevance: number;
hasInsufficientContext: boolean;
};
domainSpecific: {
technologyStack: string[];
unfamiliarTechnologies: string[];
specializedDomain: boolean;
domainComplexity: number;
};
}
export interface ResearchTriggerDecision {
shouldTriggerResearch: boolean;
confidence: number;
primaryReason: 'project_type' | 'task_complexity' | 'knowledge_gap' | 'domain_specific' | 'sufficient_context';
reasoning: string[];
recommendedScope: {
depth: 'shallow' | 'medium' | 'deep';
focus: 'technical' | 'business' | 'market' | 'comprehensive';
priority: 'low' | 'medium' | 'high';
estimatedQueries: number;
};
evaluatedConditions: ResearchTriggerConditions;
metrics: {
evaluationTime: number;
conditionsChecked: number;
cacheHits: number;
};
}
export interface AutoResearchDetectorConfig {
enabled: boolean;
thresholds: {
minComplexityScore: number;
maxContextQuality: number;
minDecisionConfidence: number;
minFilesForSufficientContext: number;
minAverageRelevance: number;
};
complexityIndicators: {
highComplexity: string[];
mediumComplexity: string[];
architectural: string[];
integration: string[];
};
specializedTechnologies: {
emerging: string[];
complexFrameworks: string[];
enterprise: string[];
domains: string[];
};
performance: {
enableCaching: boolean;
cacheTTL: number;
maxEvaluationTime: number;
enableParallelEvaluation: boolean;
};
}
export interface ResearchTriggerContext {
task: AtomicTask;
projectContext: ProjectContext;
contextResult?: ContextResult;
projectPath: string;
sessionId?: string;
metadata?: {
previousResearch?: string[];
userPreferences?: {
researchPreference: 'minimal' | 'balanced' | 'comprehensive';
autoResearchEnabled: boolean;
};
timeConstraints?: {
maxResearchTime: number;
urgentTask: boolean;
};
};
}
export interface ResearchTriggerEvaluation {
decision: ResearchTriggerDecision;
context: ResearchTriggerContext;
timestamp: number;
metadata: {
detectorVersion: string;
configSnapshot: Partial<AutoResearchDetectorConfig>;
performance: {
totalTime: number;
conditionEvaluationTime: number;
decisionTime: number;
cacheOperationTime: number;
};
};
}
//# sourceMappingURL=research-types.d.ts.map