UNPKG

mcp-context-engineering

Version:

The intelligent context optimization system for AI coding assistants. Built with Cole's PRP methodology, Context Portal knowledge graphs, and production-ready MongoDB architecture.

200 lines (199 loc) 7.66 kB
import { ObjectId } from 'mongodb'; import { z } from 'zod'; // Cole's PRP Methodology Schema (Verified structure) export const PRPMethodologySchema = z.object({ // Research phase (Cole's verified approach) research: z.object({ codebase_analysis: z.array(z.string()), external_research: z.array(z.string()), documentation_urls: z.array(z.string()), existing_patterns: z.array(z.string()), potential_challenges: z.array(z.string()) }), // Implementation blueprint (Cole's template structure) implementation: z.object({ goal: z.string(), business_value: z.string(), technical_requirements: z.array(z.string()), pseudocode: z.string(), task_breakdown: z.array(z.object({ task: z.string(), order: z.number(), dependencies: z.array(z.string()), validation: z.string() })), error_handling_strategy: z.string(), integration_points: z.array(z.string()) }), // Validation framework (Cole's quality approach) validation: z.object({ syntax_checks: z.array(z.string()), unit_test_commands: z.array(z.string()), integration_tests: z.array(z.string()), confidence_score: z.number().min(1).max(10), quality_checklist: z.array(z.string()) }) }); // Context Portal Knowledge Graph Schema (Enhanced with verified patterns) export const DecisionSchema = z.object({ id: z.string(), title: z.string(), description: z.string(), rationale: z.string(), implementation_details: z.string().optional(), consequences: z.array(z.string()), status: z.enum(['proposed', 'accepted', 'rejected', 'deprecated']), tags: z.array(z.string()).optional(), date: z.date(), workspace_id: z.string(), auto_linked_progress: z.array(z.string()).optional() }); export const ProgressEntrySchema = z.object({ id: z.string(), task: z.string(), status: z.enum(['todo', 'in_progress', 'completed', 'blocked']), progress_notes: z.string(), parent_id: z.string().optional(), // Hierarchical relationships date: z.date(), workspace_id: z.string(), linked_decisions: z.array(z.string()).optional() }); export const SystemPatternSchema = z.object({ id: z.string(), pattern_name: z.string(), description: z.string(), usage_examples: z.array(z.string()), benefits: z.array(z.string()), drawbacks: z.array(z.string()), implementation_details: z.string().optional(), workspace_id: z.string() }); export const ContextLinkSchema = z.object({ source_item_type: z.string(), source_item_id: z.string(), target_item_type: z.string(), target_item_id: z.string(), relationship_type: z.enum(['implements', 'related_to', 'depends_on', 'enables', 'conflicts_with', 'relates_to_progress']), description: z.string().optional(), workspace_id: z.string(), timestamp: z.date() }); export const KnowledgeGraphSchema = z.object({ // Core entities (Context Portal verified structure) decisions: z.array(DecisionSchema), progress_entries: z.array(ProgressEntrySchema), system_patterns: z.array(SystemPatternSchema), // Knowledge graph relationships (explicit linking) context_links: z.array(ContextLinkSchema), // Flexible custom data with categories custom_data: z.record(z.any()), // Workspace context workspace_context: z.object({ workspace_id: z.string(), project_id: z.string(), active_context: z.record(z.any()).optional(), product_context: z.record(z.any()).optional() }), // Legacy relationships (for backwards compatibility) relationships: z.object({ depends_on: z.array(z.string()), enables: z.array(z.string()), conflicts_with: z.array(z.string()), related_patterns: z.array(z.string()) }) }); // Agent-specific optimization schema export const AgentOptimizationSchema = z.object({ cursor: z.object({ format: z.enum(['concise', 'detailed']), focus: z.array(z.string()), effectiveness_score: z.number().min(0).max(10), preferred_sections: z.array(z.string()), avoid_patterns: z.array(z.string()) }), windsurf: z.object({ format: z.enum(['step_by_step', 'overview']), focus: z.array(z.string()), effectiveness_score: z.number().min(0).max(10), preferred_sections: z.array(z.string()), avoid_patterns: z.array(z.string()) }), claude_code: z.object({ format: z.enum(['full_prp', 'summary']), focus: z.array(z.string()), effectiveness_score: z.number().min(0).max(10), preferred_sections: z.array(z.string()), avoid_patterns: z.array(z.string()) }), generic: z.object({ format: z.literal('balanced'), focus: z.array(z.string()), effectiveness_score: z.number().min(0).max(10), preferred_sections: z.array(z.string()), avoid_patterns: z.array(z.string()) }) }); // Effectiveness tracking schema export const EffectivenessMetricsSchema = z.object({ overall_success_rate: z.number().min(0).max(1), implementation_success_count: z.number().nonnegative(), usage_count: z.number().nonnegative(), last_used: z.date(), improvement_suggestions: z.array(z.string()), feedback_history: z.array(z.object({ score: z.number().min(0).max(10), feedback: z.string(), agent_type: z.string(), timestamp: z.date(), implementation_success: z.boolean() })) }); // Main Universal Context Pattern Schema export const UniversalContextPatternSchema = z.object({ _id: z.instanceof(ObjectId).optional(), // Cole's PRP methodology structure (verified) prp_methodology: PRPMethodologySchema, // Context Portal knowledge graph structure (verified) knowledge_graph: KnowledgeGraphSchema, // Embedding vectors for semantic search (English text) embeddings: z.object({ methodology_vector: z.array(z.number()), // Cole's English methodology description context_vector: z.array(z.number()), // Context Portal English descriptions query_vector: z.array(z.number()) // User query matching vector }), // Universal agent optimization agent_optimizations: AgentOptimizationSchema, // Learning and effectiveness tracking effectiveness_metrics: EffectivenessMetricsSchema, // Metadata metadata: z.object({ pattern_type: z.string(), complexity: z.enum(['low', 'medium', 'high']), project_types: z.array(z.string()), tech_stacks: z.array(z.string()), tags: z.array(z.string()), created_at: z.date(), updated_at: z.date(), version: z.number() }) }); // Enhanced collection structure (Context Portal + MongoDB best practices) export const COLLECTIONS = { // Core pattern storage CONTEXT_PATTERNS: 'context_patterns', // Knowledge graph entities (separate collections for better performance) DECISIONS: 'decisions', PROGRESS_ENTRIES: 'progress_entries', SYSTEM_PATTERNS: 'system_patterns', CONTEXT_LINKS: 'context_links', // Project and workspace management PROJECT_CONTEXTS: 'project_contexts', WORKSPACES: 'workspaces', // Version control and history (Context Portal pattern) CONTEXT_HISTORY: 'context_history', // Agent and effectiveness tracking AGENT_PROFILES: 'agent_profiles', EFFECTIVENESS_TRACKING: 'effectiveness_tracking', // Vector embeddings (MongoDB Atlas Vector Search) EMBEDDINGS: 'embeddings' };