UNPKG

mushcode-mcp-server

Version:

A specialized Model Context Protocol server for MUSHCODE development assistance. Provides AI-powered code generation, validation, optimization, and examples for MUD development.

263 lines 6.38 kB
/** * Knowledge base type definitions for MUSHCODE patterns, dialects, and security rules */ /** * Parameter definition for MUSHCODE functions */ export interface Parameter { name: string; type: string; description: string; required: boolean; defaultValue?: string; validation?: string; } /** * MUSHCODE pattern template for code generation */ export interface MushcodePattern { id: string; name: string; description: string; category: 'command' | 'function' | 'trigger' | 'attribute' | 'utility'; codeTemplate: string; parameters: Parameter[]; serverCompatibility: string[]; securityLevel: 'public' | 'player' | 'builder' | 'wizard' | 'god'; examples: string[]; relatedPatterns: string[]; tags: string[]; difficulty: 'beginner' | 'intermediate' | 'advanced'; createdAt: Date; updatedAt: Date; } /** * Syntax rule for server-specific variations */ export interface SyntaxRule { ruleId: string; description: string; pattern: string; replacement?: string; serverSpecific: boolean; examples: { before: string; after: string; }; } /** * Feature definition for server capabilities */ export interface Feature { name: string; description: string; syntax: string; availability: string[]; examples: string[]; limitations?: string[]; } /** * Security model for server permissions */ export interface SecurityModel { permissionLevels: string[]; defaultLevel: string; escalationRules: { from: string; to: string; conditions: string[]; }[]; restrictedFunctions: string[]; } /** * Function definition in server library */ export interface FunctionDefinition { name: string; description: string; syntax: string; parameters: Parameter[]; returnType: string; permissions: string[]; examples: string[]; notes?: string[]; deprecated?: boolean; alternativeTo?: string; } /** * Server dialect definition */ export interface ServerDialect { name: string; version: string; description: string; syntaxVariations: SyntaxRule[]; uniqueFeatures: Feature[]; securityModel: SecurityModel; functionLibrary: FunctionDefinition[]; commonPatterns: string[]; limitations: string[]; documentation: { url?: string; version?: string; lastUpdated?: Date; }; } /** * Security rule for vulnerability detection */ export interface SecurityRule { ruleId: string; name: string; description: string; severity: 'low' | 'medium' | 'high' | 'critical'; category: 'injection' | 'permission' | 'resource' | 'logic' | 'data'; pattern: string; recommendation: string; examples: { vulnerable: string; secure: string; explanation: string; }; affectedServers: string[]; cweId?: string; references: string[]; } /** * Code analysis result types */ export interface SyntaxError { line: number; column: number; message: string; severity: 'error' | 'warning' | 'info'; code: string; suggestion?: string; fixable: boolean; } export interface SecurityWarning { ruleId: string; type: string; description: string; lineNumber?: number; columnNumber?: number; severity: 'low' | 'medium' | 'high' | 'critical'; mitigation: string; codeSnippet?: string; references: string[]; } export interface CodeImprovement { type: 'performance' | 'readability' | 'security' | 'best_practice' | 'maintainability'; description: string; lineNumber?: number; before: string; after: string; impact: string; confidence: number; effort: 'low' | 'medium' | 'high'; category: string; } /** * Code example for educational purposes */ export interface CodeExample { id: string; title: string; description: string; code: string; explanation: string; difficulty: 'beginner' | 'intermediate' | 'advanced'; category: string; tags: string[]; serverCompatibility: string[]; relatedConcepts: string[]; prerequisites?: string[]; learningObjectives: string[]; source?: { url: string; author?: string; license?: string; }; } /** * Learning path for progressive skill development */ export interface LearningPath { id: string; name: string; description: string; difficulty: 'beginner' | 'intermediate' | 'advanced'; estimatedTime: string; prerequisites: string[]; steps: { stepNumber: number; title: string; description: string; exampleIds: string[]; exercises?: string[]; objectives: string[]; }[]; resources: { type: 'documentation' | 'tutorial' | 'reference' | 'community'; title: string; url: string; description?: string; }[]; } /** * Knowledge base storage interface */ export interface KnowledgeBase { patterns: Map<string, MushcodePattern>; dialects: Map<string, ServerDialect>; securityRules: Map<string, SecurityRule>; examples: Map<string, CodeExample>; learningPaths: Map<string, LearningPath>; patternsByCategory: Map<string, string[]>; patternsByServer: Map<string, string[]>; patternsByDifficulty: Map<string, string[]>; examplesByCategory: Map<string, string[]>; examplesByDifficulty: Map<string, string[]>; version: string; lastUpdated: Date; sources: string[]; } /** * Pattern matching result */ export interface PatternMatch { patternId: string; confidence: number; relevance: number; matchedTerms: string[]; context?: Record<string, unknown>; } /** * Search query for knowledge base */ export interface KnowledgeQuery { query: string; category?: string; serverType?: string; difficulty?: string; tags?: string[]; limit?: number; includeExamples?: boolean; includePatterns?: boolean; fuzzyMatch?: boolean; } /** * Search result from knowledge base */ export interface KnowledgeSearchResult { patterns: PatternMatch[]; examples: { exampleId: string; relevance: number; matchedTerms: string[]; }[]; suggestions: string[]; totalResults: number; executionTime: number; } //# sourceMappingURL=knowledge.d.ts.map