ultimate-mcp-server
Version:
The definitive all-in-one Model Context Protocol server for AI-assisted coding across 30+ platforms
194 lines • 5.23 kB
TypeScript
/**
* Autonomous Exploration Types
* Inspired by code-assistant for self-guided code navigation and task execution
*/
export interface WorkingMemory {
projectStructure: ProjectStructure;
visitedFiles: Set<string>;
keyInsights: Insight[];
taskContext: TaskContext;
navigationHistory: NavigationStep[];
decisions: Decision[];
}
export interface ProjectStructure {
rootPath: string;
directories: DirectoryNode;
fileCount: number;
totalSize: number;
languages: Record<string, number>;
patterns: ProjectPattern[];
metadata?: Record<string, any>;
}
export interface DirectoryNode {
name: string;
path: string;
type: 'directory' | 'file';
children?: DirectoryNode[];
size?: number;
language?: string;
importance?: number;
lastModified?: Date;
}
export interface Insight {
id: string;
type: InsightType;
description: string;
relevance: number;
filePath?: string;
lineRange?: {
start: number;
end: number;
};
timestamp: Date;
metadata?: Record<string, any>;
}
export type InsightType = 'architecture' | 'pattern' | 'dependency' | 'issue' | 'opportunity' | 'convention' | 'entry-point' | 'test-coverage';
export interface TaskContext {
id: string;
description: string;
goals: string[];
constraints: string[];
currentPhase: TaskPhase;
progress: number;
startTime: Date;
estimatedCompletion?: Date;
}
export type TaskPhase = 'exploration' | 'analysis' | 'planning' | 'implementation' | 'validation' | 'completion';
export interface NavigationStep {
id: string;
action: NavigationAction;
target: string;
reason: string;
timestamp: Date;
findings?: string[];
nextSteps?: string[];
}
export type NavigationAction = 'explore_directory' | 'read_file' | 'analyze_code' | 'search_pattern' | 'follow_import' | 'check_references' | 'examine_tests';
export interface Decision {
id: string;
question: string;
options: DecisionOption[];
selected?: string;
rationale?: string;
impact: 'low' | 'medium' | 'high';
timestamp: Date;
userInput?: boolean;
}
export interface DecisionOption {
id: string;
label: string;
description: string;
pros: string[];
cons: string[];
confidence: number;
}
export interface ExplorationStrategy {
name: string;
description: string;
phases: ExplorationPhase[];
heuristics: ExplorationHeuristic[];
}
export interface ExplorationPhase {
name: string;
goals: string[];
actions: NavigationAction[];
completionCriteria: string[];
maxDuration?: number;
}
export interface ExplorationHeuristic {
name: string;
condition: string;
action: string;
priority: number;
}
export interface FileAnalysis {
filePath: string;
language: string;
purpose: string;
exports: string[];
imports: string[];
dependencies: string[];
complexity: number;
testCoverage?: number;
issues: CodeIssue[];
suggestions: string[];
}
export interface CodeIssue {
type: 'error' | 'warning' | 'info';
message: string;
line?: number;
column?: number;
rule?: string;
fixable?: boolean;
}
export interface ExplorationResult {
taskId: string;
success: boolean;
workingMemory: WorkingMemory;
summary: string;
keyFindings: string[];
recommendations: string[];
artifacts?: Record<string, any>;
duration: number;
}
export interface AutonomousTask {
id: string;
type: TaskType;
description: string;
parameters: Record<string, any>;
strategy?: ExplorationStrategy;
constraints?: TaskConstraints;
status: TaskStatus;
result?: ExplorationResult;
}
export type TaskType = 'explore_codebase' | 'find_implementation' | 'analyze_architecture' | 'trace_data_flow' | 'identify_patterns' | 'suggest_improvements' | 'generate_documentation';
export type TaskStatus = 'pending' | 'exploring' | 'analyzing' | 'completed' | 'failed' | 'interrupted';
export interface TaskConstraints {
maxFiles?: number;
maxDepth?: number;
timeLimit?: number;
includePatterns?: string[];
excludePatterns?: string[];
focusAreas?: string[];
}
export interface InteractionRequest {
id: string;
type: 'question' | 'confirmation' | 'choice';
message: string;
options?: string[];
context: string;
timeout?: number;
}
export interface ProjectPattern {
name: string;
type: 'architecture' | 'framework' | 'library' | 'convention';
evidence: string[];
confidence: number;
implications: string[];
}
export interface NavigationPlan {
steps: PlannedStep[];
estimatedDuration: number;
requiredCapabilities: string[];
risks: string[];
}
export interface PlannedStep {
order: number;
action: NavigationAction;
target: string;
purpose: string;
dependencies: number[];
optional: boolean;
}
export interface MemorySnapshot {
timestamp: Date;
phase: TaskPhase;
summary: string;
metrics: {
filesExplored: number;
insightsGathered: number;
decisionsMode: number;
codebaseUnderstanding: number;
};
}
//# sourceMappingURL=types.d.ts.map