@pcircle/claude-code-buddy-mcp 2.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +661 -0
- package/README.md +599 -0
- package/README.zh-TW.md +577 -0
- package/dist/__benchmarks__/performance-fixes.bench.d.ts +8 -0
- package/dist/__benchmarks__/performance-fixes.bench.d.ts.map +1 -0
- package/dist/__benchmarks__/performance-fixes.bench.js +213 -0
- package/dist/__benchmarks__/performance-fixes.bench.js.map +1 -0
- package/dist/agents/DevelopmentButler.d.ts +80 -0
- package/dist/agents/DevelopmentButler.d.ts.map +1 -0
- package/dist/agents/DevelopmentButler.js +328 -0
- package/dist/agents/DevelopmentButler.js.map +1 -0
- package/dist/agents/E2EHealingAgent.d.ts +30 -0
- package/dist/agents/E2EHealingAgent.d.ts.map +1 -0
- package/dist/agents/E2EHealingAgent.js +162 -0
- package/dist/agents/E2EHealingAgent.js.map +1 -0
- package/dist/agents/TestWriterAgent.d.ts +26 -0
- package/dist/agents/TestWriterAgent.d.ts.map +1 -0
- package/dist/agents/TestWriterAgent.js +139 -0
- package/dist/agents/TestWriterAgent.js.map +1 -0
- package/dist/agents/base/AgentExecutor.d.ts +7 -0
- package/dist/agents/base/AgentExecutor.d.ts.map +1 -0
- package/dist/agents/base/AgentExecutor.js +13 -0
- package/dist/agents/base/AgentExecutor.js.map +1 -0
- package/dist/agents/base/index.d.ts +2 -0
- package/dist/agents/base/index.d.ts.map +1 -0
- package/dist/agents/base/index.js +2 -0
- package/dist/agents/base/index.js.map +1 -0
- package/dist/agents/e2e-healing/analyzers/EvidenceCollector.d.ts +24 -0
- package/dist/agents/e2e-healing/analyzers/EvidenceCollector.d.ts.map +1 -0
- package/dist/agents/e2e-healing/analyzers/EvidenceCollector.js +55 -0
- package/dist/agents/e2e-healing/analyzers/EvidenceCollector.js.map +1 -0
- package/dist/agents/e2e-healing/analyzers/FailureAnalyzer.d.ts +22 -0
- package/dist/agents/e2e-healing/analyzers/FailureAnalyzer.d.ts.map +1 -0
- package/dist/agents/e2e-healing/analyzers/FailureAnalyzer.js +36 -0
- package/dist/agents/e2e-healing/analyzers/FailureAnalyzer.js.map +1 -0
- package/dist/agents/e2e-healing/config.d.ts +4 -0
- package/dist/agents/e2e-healing/config.d.ts.map +1 -0
- package/dist/agents/e2e-healing/config.js +28 -0
- package/dist/agents/e2e-healing/config.js.map +1 -0
- package/dist/agents/e2e-healing/generators/FixGenerator.d.ts +21 -0
- package/dist/agents/e2e-healing/generators/FixGenerator.d.ts.map +1 -0
- package/dist/agents/e2e-healing/generators/FixGenerator.js +33 -0
- package/dist/agents/e2e-healing/generators/FixGenerator.js.map +1 -0
- package/dist/agents/e2e-healing/orchestrator/TestOrchestrator.d.ts +29 -0
- package/dist/agents/e2e-healing/orchestrator/TestOrchestrator.d.ts.map +1 -0
- package/dist/agents/e2e-healing/orchestrator/TestOrchestrator.js +70 -0
- package/dist/agents/e2e-healing/orchestrator/TestOrchestrator.js.map +1 -0
- package/dist/agents/e2e-healing/policy/GraduatedAutonomyPolicy.d.ts +30 -0
- package/dist/agents/e2e-healing/policy/GraduatedAutonomyPolicy.d.ts.map +1 -0
- package/dist/agents/e2e-healing/policy/GraduatedAutonomyPolicy.js +115 -0
- package/dist/agents/e2e-healing/policy/GraduatedAutonomyPolicy.js.map +1 -0
- package/dist/agents/e2e-healing/runners/PlaywrightRunner.d.ts +19 -0
- package/dist/agents/e2e-healing/runners/PlaywrightRunner.d.ts.map +1 -0
- package/dist/agents/e2e-healing/runners/PlaywrightRunner.js +79 -0
- package/dist/agents/e2e-healing/runners/PlaywrightRunner.js.map +1 -0
- package/dist/agents/e2e-healing/safety/CircuitBreaker.d.ts +26 -0
- package/dist/agents/e2e-healing/safety/CircuitBreaker.d.ts.map +1 -0
- package/dist/agents/e2e-healing/safety/CircuitBreaker.js +75 -0
- package/dist/agents/e2e-healing/safety/CircuitBreaker.js.map +1 -0
- package/dist/agents/e2e-healing/safety/RollbackManager.d.ts +31 -0
- package/dist/agents/e2e-healing/safety/RollbackManager.d.ts.map +1 -0
- package/dist/agents/e2e-healing/safety/RollbackManager.js +130 -0
- package/dist/agents/e2e-healing/safety/RollbackManager.js.map +1 -0
- package/dist/agents/e2e-healing/safety/SafetyGate.d.ts +21 -0
- package/dist/agents/e2e-healing/safety/SafetyGate.d.ts.map +1 -0
- package/dist/agents/e2e-healing/safety/SafetyGate.js +62 -0
- package/dist/agents/e2e-healing/safety/SafetyGate.js.map +1 -0
- package/dist/agents/e2e-healing/safety/ScopeLimiter.d.ts +14 -0
- package/dist/agents/e2e-healing/safety/ScopeLimiter.d.ts.map +1 -0
- package/dist/agents/e2e-healing/safety/ScopeLimiter.js +36 -0
- package/dist/agents/e2e-healing/safety/ScopeLimiter.js.map +1 -0
- package/dist/agents/e2e-healing/sdk/AgentSDKAdapter.d.ts +29 -0
- package/dist/agents/e2e-healing/sdk/AgentSDKAdapter.d.ts.map +1 -0
- package/dist/agents/e2e-healing/sdk/AgentSDKAdapter.js +86 -0
- package/dist/agents/e2e-healing/sdk/AgentSDKAdapter.js.map +1 -0
- package/dist/agents/e2e-healing/types.d.ts +46 -0
- package/dist/agents/e2e-healing/types.d.ts.map +1 -0
- package/dist/agents/e2e-healing/types.js +2 -0
- package/dist/agents/e2e-healing/types.js.map +1 -0
- package/dist/agents/knowledge/KnowledgeGraph.d.ts +26 -0
- package/dist/agents/knowledge/KnowledgeGraph.d.ts.map +1 -0
- package/dist/agents/knowledge/KnowledgeGraph.js +106 -0
- package/dist/agents/knowledge/KnowledgeGraph.js.map +1 -0
- package/dist/agents/knowledge/KnowledgeGraphSQLite.d.ts +42 -0
- package/dist/agents/knowledge/KnowledgeGraphSQLite.d.ts.map +1 -0
- package/dist/agents/knowledge/KnowledgeGraphSQLite.js +349 -0
- package/dist/agents/knowledge/KnowledgeGraphSQLite.js.map +1 -0
- package/dist/agents/knowledge/index.d.ts +94 -0
- package/dist/agents/knowledge/index.d.ts.map +1 -0
- package/dist/agents/knowledge/index.js +296 -0
- package/dist/agents/knowledge/index.js.map +1 -0
- package/dist/agents/knowledge/storage/KnowledgeGraphStore.d.ts +25 -0
- package/dist/agents/knowledge/storage/KnowledgeGraphStore.d.ts.map +1 -0
- package/dist/agents/knowledge/storage/KnowledgeGraphStore.js +342 -0
- package/dist/agents/knowledge/storage/KnowledgeGraphStore.js.map +1 -0
- package/dist/agents/knowledge/types.d.ts +21 -0
- package/dist/agents/knowledge/types.d.ts.map +1 -0
- package/dist/agents/knowledge/types.js +2 -0
- package/dist/agents/knowledge/types.js.map +1 -0
- package/dist/agents/templates/ci-templates.d.ts +8 -0
- package/dist/agents/templates/ci-templates.d.ts.map +1 -0
- package/dist/agents/templates/ci-templates.js +119 -0
- package/dist/agents/templates/ci-templates.js.map +1 -0
- package/dist/agents/templates/test-templates.d.ts +18 -0
- package/dist/agents/templates/test-templates.d.ts.map +1 -0
- package/dist/agents/templates/test-templates.js +22 -0
- package/dist/agents/templates/test-templates.js.map +1 -0
- package/dist/config/index.d.ts +51 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +96 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/models.d.ts +47 -0
- package/dist/config/models.d.ts.map +1 -0
- package/dist/config/models.js +57 -0
- package/dist/config/models.js.map +1 -0
- package/dist/config/simple-config.d.ts +32 -0
- package/dist/config/simple-config.d.ts.map +1 -0
- package/dist/config/simple-config.js +225 -0
- package/dist/config/simple-config.js.map +1 -0
- package/dist/core/AgentRegistry.d.ts +32 -0
- package/dist/core/AgentRegistry.d.ts.map +1 -0
- package/dist/core/AgentRegistry.js +281 -0
- package/dist/core/AgentRegistry.js.map +1 -0
- package/dist/core/BackgroundExecutor.d.ts +56 -0
- package/dist/core/BackgroundExecutor.d.ts.map +1 -0
- package/dist/core/BackgroundExecutor.js +492 -0
- package/dist/core/BackgroundExecutor.js.map +1 -0
- package/dist/core/BackgroundExecutorConstants.d.ts +8 -0
- package/dist/core/BackgroundExecutorConstants.d.ts.map +1 -0
- package/dist/core/BackgroundExecutorConstants.js +8 -0
- package/dist/core/BackgroundExecutorConstants.js.map +1 -0
- package/dist/core/CheckpointDetector.d.ts +25 -0
- package/dist/core/CheckpointDetector.d.ts.map +1 -0
- package/dist/core/CheckpointDetector.js +67 -0
- package/dist/core/CheckpointDetector.js.map +1 -0
- package/dist/core/ExecutionMonitor.d.ts +29 -0
- package/dist/core/ExecutionMonitor.d.ts.map +1 -0
- package/dist/core/ExecutionMonitor.js +124 -0
- package/dist/core/ExecutionMonitor.js.map +1 -0
- package/dist/core/ExecutionQueue.d.ts +21 -0
- package/dist/core/ExecutionQueue.d.ts.map +1 -0
- package/dist/core/ExecutionQueue.js +104 -0
- package/dist/core/ExecutionQueue.js.map +1 -0
- package/dist/core/HealthCheck.d.ts +39 -0
- package/dist/core/HealthCheck.d.ts.map +1 -0
- package/dist/core/HealthCheck.js +219 -0
- package/dist/core/HealthCheck.js.map +1 -0
- package/dist/core/HookIntegration.d.ts +45 -0
- package/dist/core/HookIntegration.d.ts.map +1 -0
- package/dist/core/HookIntegration.js +241 -0
- package/dist/core/HookIntegration.js.map +1 -0
- package/dist/core/MCPToolInterface.d.ts +120 -0
- package/dist/core/MCPToolInterface.d.ts.map +1 -0
- package/dist/core/MCPToolInterface.js +376 -0
- package/dist/core/MCPToolInterface.js.map +1 -0
- package/dist/core/PromptEnhancer.d.ts +13 -0
- package/dist/core/PromptEnhancer.d.ts.map +1 -0
- package/dist/core/PromptEnhancer.js +112 -0
- package/dist/core/PromptEnhancer.js.map +1 -0
- package/dist/core/ResourceMonitor.d.ts +32 -0
- package/dist/core/ResourceMonitor.d.ts.map +1 -0
- package/dist/core/ResourceMonitor.js +181 -0
- package/dist/core/ResourceMonitor.js.map +1 -0
- package/dist/core/ResultHandler.d.ts +9 -0
- package/dist/core/ResultHandler.d.ts.map +1 -0
- package/dist/core/ResultHandler.js +60 -0
- package/dist/core/ResultHandler.js.map +1 -0
- package/dist/core/ServiceLocator.d.ts +10 -0
- package/dist/core/ServiceLocator.d.ts.map +1 -0
- package/dist/core/ServiceLocator.js +29 -0
- package/dist/core/ServiceLocator.js.map +1 -0
- package/dist/core/SessionContextMonitor.d.ts +41 -0
- package/dist/core/SessionContextMonitor.d.ts.map +1 -0
- package/dist/core/SessionContextMonitor.js +156 -0
- package/dist/core/SessionContextMonitor.js.map +1 -0
- package/dist/core/SessionTokenTracker.d.ts +43 -0
- package/dist/core/SessionTokenTracker.d.ts.map +1 -0
- package/dist/core/SessionTokenTracker.js +76 -0
- package/dist/core/SessionTokenTracker.js.map +1 -0
- package/dist/core/TaskScheduler.d.ts +19 -0
- package/dist/core/TaskScheduler.d.ts.map +1 -0
- package/dist/core/TaskScheduler.js +59 -0
- package/dist/core/TaskScheduler.js.map +1 -0
- package/dist/core/WorkflowGuidanceEngine.d.ts +35 -0
- package/dist/core/WorkflowGuidanceEngine.d.ts.map +1 -0
- package/dist/core/WorkflowGuidanceEngine.js +104 -0
- package/dist/core/WorkflowGuidanceEngine.js.map +1 -0
- package/dist/core/types.d.ts +66 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +11 -0
- package/dist/core/types.js.map +1 -0
- package/dist/db/ConnectionPool.d.ts +47 -0
- package/dist/db/ConnectionPool.d.ts.map +1 -0
- package/dist/db/ConnectionPool.js +432 -0
- package/dist/db/ConnectionPool.js.map +1 -0
- package/dist/db/QueryCache.d.ts +46 -0
- package/dist/db/QueryCache.d.ts.map +1 -0
- package/dist/db/QueryCache.js +229 -0
- package/dist/db/QueryCache.js.map +1 -0
- package/dist/errors/index.d.ts +62 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +124 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/evolution/ABTestManager.d.ts +21 -0
- package/dist/evolution/ABTestManager.d.ts.map +1 -0
- package/dist/evolution/ABTestManager.js +183 -0
- package/dist/evolution/ABTestManager.js.map +1 -0
- package/dist/evolution/AdaptationEngine.d.ts +60 -0
- package/dist/evolution/AdaptationEngine.d.ts.map +1 -0
- package/dist/evolution/AdaptationEngine.js +313 -0
- package/dist/evolution/AdaptationEngine.js.map +1 -0
- package/dist/evolution/AgentEvolutionConfig.d.ts +32 -0
- package/dist/evolution/AgentEvolutionConfig.d.ts.map +1 -0
- package/dist/evolution/AgentEvolutionConfig.js +329 -0
- package/dist/evolution/AgentEvolutionConfig.js.map +1 -0
- package/dist/evolution/ContextMatcher.d.ts +24 -0
- package/dist/evolution/ContextMatcher.d.ts.map +1 -0
- package/dist/evolution/ContextMatcher.js +85 -0
- package/dist/evolution/ContextMatcher.js.map +1 -0
- package/dist/evolution/EvolutionBootstrap.d.ts +69 -0
- package/dist/evolution/EvolutionBootstrap.d.ts.map +1 -0
- package/dist/evolution/EvolutionBootstrap.js +332 -0
- package/dist/evolution/EvolutionBootstrap.js.map +1 -0
- package/dist/evolution/EvolutionMonitor.d.ts +111 -0
- package/dist/evolution/EvolutionMonitor.d.ts.map +1 -0
- package/dist/evolution/EvolutionMonitor.js +540 -0
- package/dist/evolution/EvolutionMonitor.js.map +1 -0
- package/dist/evolution/FeedbackCollector.d.ts +26 -0
- package/dist/evolution/FeedbackCollector.d.ts.map +1 -0
- package/dist/evolution/FeedbackCollector.js +93 -0
- package/dist/evolution/FeedbackCollector.js.map +1 -0
- package/dist/evolution/KnowledgeTransferManager.d.ts +16 -0
- package/dist/evolution/KnowledgeTransferManager.d.ts.map +1 -0
- package/dist/evolution/KnowledgeTransferManager.js +34 -0
- package/dist/evolution/KnowledgeTransferManager.js.map +1 -0
- package/dist/evolution/LearningManager.d.ts +79 -0
- package/dist/evolution/LearningManager.d.ts.map +1 -0
- package/dist/evolution/LearningManager.js +582 -0
- package/dist/evolution/LearningManager.js.map +1 -0
- package/dist/evolution/LearningManagerConstants.d.ts +55 -0
- package/dist/evolution/LearningManagerConstants.d.ts.map +1 -0
- package/dist/evolution/LearningManagerConstants.js +55 -0
- package/dist/evolution/LearningManagerConstants.js.map +1 -0
- package/dist/evolution/MultiObjectiveOptimizer.d.ts +9 -0
- package/dist/evolution/MultiObjectiveOptimizer.d.ts.map +1 -0
- package/dist/evolution/MultiObjectiveOptimizer.js +92 -0
- package/dist/evolution/MultiObjectiveOptimizer.js.map +1 -0
- package/dist/evolution/PatternExplainer.d.ts +14 -0
- package/dist/evolution/PatternExplainer.d.ts.map +1 -0
- package/dist/evolution/PatternExplainer.js +113 -0
- package/dist/evolution/PatternExplainer.js.map +1 -0
- package/dist/evolution/PerformanceTracker.d.ts +43 -0
- package/dist/evolution/PerformanceTracker.d.ts.map +1 -0
- package/dist/evolution/PerformanceTracker.js +453 -0
- package/dist/evolution/PerformanceTracker.js.map +1 -0
- package/dist/evolution/PerformanceTrackerConstants.d.ts +5 -0
- package/dist/evolution/PerformanceTrackerConstants.d.ts.map +1 -0
- package/dist/evolution/PerformanceTrackerConstants.js +5 -0
- package/dist/evolution/PerformanceTrackerConstants.js.map +1 -0
- package/dist/evolution/StatisticalAnalyzer.d.ts +20 -0
- package/dist/evolution/StatisticalAnalyzer.d.ts.map +1 -0
- package/dist/evolution/StatisticalAnalyzer.js +154 -0
- package/dist/evolution/StatisticalAnalyzer.js.map +1 -0
- package/dist/evolution/TransferabilityChecker.d.ts +11 -0
- package/dist/evolution/TransferabilityChecker.d.ts.map +1 -0
- package/dist/evolution/TransferabilityChecker.js +78 -0
- package/dist/evolution/TransferabilityChecker.js.map +1 -0
- package/dist/evolution/index.d.ts +11 -0
- package/dist/evolution/index.d.ts.map +1 -0
- package/dist/evolution/index.js +9 -0
- package/dist/evolution/index.js.map +1 -0
- package/dist/evolution/instrumentation/SpanTracker.d.ts +64 -0
- package/dist/evolution/instrumentation/SpanTracker.d.ts.map +1 -0
- package/dist/evolution/instrumentation/SpanTracker.js +229 -0
- package/dist/evolution/instrumentation/SpanTracker.js.map +1 -0
- package/dist/evolution/instrumentation/withEvolutionTracking.d.ts +19 -0
- package/dist/evolution/instrumentation/withEvolutionTracking.d.ts.map +1 -0
- package/dist/evolution/instrumentation/withEvolutionTracking.js +256 -0
- package/dist/evolution/instrumentation/withEvolutionTracking.js.map +1 -0
- package/dist/evolution/integration-test-scenarios.d.ts +56 -0
- package/dist/evolution/integration-test-scenarios.d.ts.map +1 -0
- package/dist/evolution/integration-test-scenarios.js +131 -0
- package/dist/evolution/integration-test-scenarios.js.map +1 -0
- package/dist/evolution/links/LinkManager.d.ts +17 -0
- package/dist/evolution/links/LinkManager.d.ts.map +1 -0
- package/dist/evolution/links/LinkManager.js +41 -0
- package/dist/evolution/links/LinkManager.js.map +1 -0
- package/dist/evolution/storage/EvolutionStore.d.ts +87 -0
- package/dist/evolution/storage/EvolutionStore.d.ts.map +1 -0
- package/dist/evolution/storage/EvolutionStore.js +2 -0
- package/dist/evolution/storage/EvolutionStore.js.map +1 -0
- package/dist/evolution/storage/IEvolutionStore.d.ts +87 -0
- package/dist/evolution/storage/IEvolutionStore.d.ts.map +1 -0
- package/dist/evolution/storage/IEvolutionStore.js +2 -0
- package/dist/evolution/storage/IEvolutionStore.js.map +1 -0
- package/dist/evolution/storage/SQLiteStore.d.ts +115 -0
- package/dist/evolution/storage/SQLiteStore.d.ts.map +1 -0
- package/dist/evolution/storage/SQLiteStore.enhanced.d.ts +35 -0
- package/dist/evolution/storage/SQLiteStore.enhanced.d.ts.map +1 -0
- package/dist/evolution/storage/SQLiteStore.enhanced.js +514 -0
- package/dist/evolution/storage/SQLiteStore.enhanced.js.map +1 -0
- package/dist/evolution/storage/SQLiteStore.js +915 -0
- package/dist/evolution/storage/SQLiteStore.js.map +1 -0
- package/dist/evolution/storage/deprecated/SQLiteStore.basic.d.ts +109 -0
- package/dist/evolution/storage/deprecated/SQLiteStore.basic.d.ts.map +1 -0
- package/dist/evolution/storage/deprecated/SQLiteStore.basic.js +1033 -0
- package/dist/evolution/storage/deprecated/SQLiteStore.basic.js.map +1 -0
- package/dist/evolution/storage/index.d.ts +6 -0
- package/dist/evolution/storage/index.d.ts.map +1 -0
- package/dist/evolution/storage/index.js +3 -0
- package/dist/evolution/storage/index.js.map +1 -0
- package/dist/evolution/storage/migrations/MigrationManager.d.ts +17 -0
- package/dist/evolution/storage/migrations/MigrationManager.d.ts.map +1 -0
- package/dist/evolution/storage/migrations/MigrationManager.js +242 -0
- package/dist/evolution/storage/migrations/MigrationManager.js.map +1 -0
- package/dist/evolution/storage/repositories/AdaptationRepository.d.ts +17 -0
- package/dist/evolution/storage/repositories/AdaptationRepository.d.ts.map +1 -0
- package/dist/evolution/storage/repositories/AdaptationRepository.js +82 -0
- package/dist/evolution/storage/repositories/AdaptationRepository.js.map +1 -0
- package/dist/evolution/storage/repositories/CostRecordsRepository.d.ts +43 -0
- package/dist/evolution/storage/repositories/CostRecordsRepository.d.ts.map +1 -0
- package/dist/evolution/storage/repositories/CostRecordsRepository.js +157 -0
- package/dist/evolution/storage/repositories/CostRecordsRepository.js.map +1 -0
- package/dist/evolution/storage/repositories/ExecutionRepository.d.ts +12 -0
- package/dist/evolution/storage/repositories/ExecutionRepository.d.ts.map +1 -0
- package/dist/evolution/storage/repositories/ExecutionRepository.js +87 -0
- package/dist/evolution/storage/repositories/ExecutionRepository.js.map +1 -0
- package/dist/evolution/storage/repositories/PatternRepository.d.ts +12 -0
- package/dist/evolution/storage/repositories/PatternRepository.d.ts.map +1 -0
- package/dist/evolution/storage/repositories/PatternRepository.js +150 -0
- package/dist/evolution/storage/repositories/PatternRepository.js.map +1 -0
- package/dist/evolution/storage/repositories/PerformanceMetricsRepository.d.ts +39 -0
- package/dist/evolution/storage/repositories/PerformanceMetricsRepository.d.ts.map +1 -0
- package/dist/evolution/storage/repositories/PerformanceMetricsRepository.js +130 -0
- package/dist/evolution/storage/repositories/PerformanceMetricsRepository.js.map +1 -0
- package/dist/evolution/storage/repositories/RewardRepository.d.ts +17 -0
- package/dist/evolution/storage/repositories/RewardRepository.d.ts.map +1 -0
- package/dist/evolution/storage/repositories/RewardRepository.js +82 -0
- package/dist/evolution/storage/repositories/RewardRepository.js.map +1 -0
- package/dist/evolution/storage/repositories/SpanRepository.d.ts +14 -0
- package/dist/evolution/storage/repositories/SpanRepository.d.ts.map +1 -0
- package/dist/evolution/storage/repositories/SpanRepository.js +191 -0
- package/dist/evolution/storage/repositories/SpanRepository.js.map +1 -0
- package/dist/evolution/storage/repositories/StatsRepository.d.ts +16 -0
- package/dist/evolution/storage/repositories/StatsRepository.d.ts.map +1 -0
- package/dist/evolution/storage/repositories/StatsRepository.js +271 -0
- package/dist/evolution/storage/repositories/StatsRepository.js.map +1 -0
- package/dist/evolution/storage/repositories/TaskRepository.d.ts +16 -0
- package/dist/evolution/storage/repositories/TaskRepository.d.ts.map +1 -0
- package/dist/evolution/storage/repositories/TaskRepository.js +93 -0
- package/dist/evolution/storage/repositories/TaskRepository.js.map +1 -0
- package/dist/evolution/storage/schema.d.ts +81 -0
- package/dist/evolution/storage/schema.d.ts.map +1 -0
- package/dist/evolution/storage/schema.js +241 -0
- package/dist/evolution/storage/schema.js.map +1 -0
- package/dist/evolution/storage/types.d.ts +402 -0
- package/dist/evolution/storage/types.d.ts.map +1 -0
- package/dist/evolution/storage/types.js +2 -0
- package/dist/evolution/storage/types.js.map +1 -0
- package/dist/evolution/storage/validation.d.ts +12 -0
- package/dist/evolution/storage/validation.d.ts.map +1 -0
- package/dist/evolution/storage/validation.js +88 -0
- package/dist/evolution/storage/validation.js.map +1 -0
- package/dist/evolution/types.d.ts +214 -0
- package/dist/evolution/types.d.ts.map +1 -0
- package/dist/evolution/types.js +2 -0
- package/dist/evolution/types.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/knowledge-graph/index.d.ts +27 -0
- package/dist/knowledge-graph/index.d.ts.map +1 -0
- package/dist/knowledge-graph/index.js +353 -0
- package/dist/knowledge-graph/index.js.map +1 -0
- package/dist/knowledge-graph/types.d.ts +37 -0
- package/dist/knowledge-graph/types.d.ts.map +1 -0
- package/dist/knowledge-graph/types.js +2 -0
- package/dist/knowledge-graph/types.js.map +1 -0
- package/dist/management/UninstallManager.d.ts +23 -0
- package/dist/management/UninstallManager.d.ts.map +1 -0
- package/dist/management/UninstallManager.js +186 -0
- package/dist/management/UninstallManager.js.map +1 -0
- package/dist/management/index.d.ts +3 -0
- package/dist/management/index.d.ts.map +1 -0
- package/dist/management/index.js +2 -0
- package/dist/management/index.js.map +1 -0
- package/dist/mcp/BuddyCommands.d.ts +13 -0
- package/dist/mcp/BuddyCommands.d.ts.map +1 -0
- package/dist/mcp/BuddyCommands.js +110 -0
- package/dist/mcp/BuddyCommands.js.map +1 -0
- package/dist/mcp/ClaudeMdReloader.d.ts +37 -0
- package/dist/mcp/ClaudeMdReloader.d.ts.map +1 -0
- package/dist/mcp/ClaudeMdReloader.js +92 -0
- package/dist/mcp/ClaudeMdReloader.js.map +1 -0
- package/dist/mcp/HumanInLoopUI.d.ts +23 -0
- package/dist/mcp/HumanInLoopUI.d.ts.map +1 -0
- package/dist/mcp/HumanInLoopUI.js +92 -0
- package/dist/mcp/HumanInLoopUI.js.map +1 -0
- package/dist/mcp/ServerInitializer.d.ts +47 -0
- package/dist/mcp/ServerInitializer.d.ts.map +1 -0
- package/dist/mcp/ServerInitializer.js +89 -0
- package/dist/mcp/ServerInitializer.js.map +1 -0
- package/dist/mcp/SessionBootstrapper.d.ts +11 -0
- package/dist/mcp/SessionBootstrapper.d.ts.map +1 -0
- package/dist/mcp/SessionBootstrapper.js +67 -0
- package/dist/mcp/SessionBootstrapper.js.map +1 -0
- package/dist/mcp/ToolDefinitions.d.ts +42 -0
- package/dist/mcp/ToolDefinitions.d.ts.map +1 -0
- package/dist/mcp/ToolDefinitions.js +234 -0
- package/dist/mcp/ToolDefinitions.js.map +1 -0
- package/dist/mcp/ToolRouter.d.ts +22 -0
- package/dist/mcp/ToolRouter.d.ts.map +1 -0
- package/dist/mcp/ToolRouter.js +102 -0
- package/dist/mcp/ToolRouter.js.map +1 -0
- package/dist/mcp/handlers/BuddyHandlers.d.ts +14 -0
- package/dist/mcp/handlers/BuddyHandlers.d.ts.map +1 -0
- package/dist/mcp/handlers/BuddyHandlers.js +152 -0
- package/dist/mcp/handlers/BuddyHandlers.js.map +1 -0
- package/dist/mcp/handlers/ResourceHandlers.d.ts +3 -0
- package/dist/mcp/handlers/ResourceHandlers.d.ts.map +1 -0
- package/dist/mcp/handlers/ResourceHandlers.js +86 -0
- package/dist/mcp/handlers/ResourceHandlers.js.map +1 -0
- package/dist/mcp/handlers/ToolHandlers.d.ts +52 -0
- package/dist/mcp/handlers/ToolHandlers.d.ts.map +1 -0
- package/dist/mcp/handlers/ToolHandlers.js +914 -0
- package/dist/mcp/handlers/ToolHandlers.js.map +1 -0
- package/dist/mcp/handlers/index.d.ts +4 -0
- package/dist/mcp/handlers/index.d.ts.map +1 -0
- package/dist/mcp/handlers/index.js +4 -0
- package/dist/mcp/handlers/index.js.map +1 -0
- package/dist/mcp/index.d.ts +5 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +3 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/schemas/OutputSchemas.d.ts +368 -0
- package/dist/mcp/schemas/OutputSchemas.d.ts.map +1 -0
- package/dist/mcp/schemas/OutputSchemas.js +191 -0
- package/dist/mcp/schemas/OutputSchemas.js.map +1 -0
- package/dist/mcp/server.d.ts +17 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +184 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools/add-observations.d.ts +48 -0
- package/dist/mcp/tools/add-observations.d.ts.map +1 -0
- package/dist/mcp/tools/add-observations.js +64 -0
- package/dist/mcp/tools/add-observations.js.map +1 -0
- package/dist/mcp/tools/buddy-do.d.ts +14 -0
- package/dist/mcp/tools/buddy-do.d.ts.map +1 -0
- package/dist/mcp/tools/buddy-do.js +77 -0
- package/dist/mcp/tools/buddy-do.js.map +1 -0
- package/dist/mcp/tools/buddy-help.d.ts +13 -0
- package/dist/mcp/tools/buddy-help.d.ts.map +1 -0
- package/dist/mcp/tools/buddy-help.js +52 -0
- package/dist/mcp/tools/buddy-help.js.map +1 -0
- package/dist/mcp/tools/buddy-remember.d.ts +15 -0
- package/dist/mcp/tools/buddy-remember.d.ts.map +1 -0
- package/dist/mcp/tools/buddy-remember.js +77 -0
- package/dist/mcp/tools/buddy-remember.js.map +1 -0
- package/dist/mcp/tools/create-entities.d.ts +57 -0
- package/dist/mcp/tools/create-entities.d.ts.map +1 -0
- package/dist/mcp/tools/create-entities.js +64 -0
- package/dist/mcp/tools/create-entities.js.map +1 -0
- package/dist/mcp/tools/create-relations.d.ts +60 -0
- package/dist/mcp/tools/create-relations.d.ts.map +1 -0
- package/dist/mcp/tools/create-relations.js +84 -0
- package/dist/mcp/tools/create-relations.js.map +1 -0
- package/dist/mcp/tools/health-check.d.ts +10 -0
- package/dist/mcp/tools/health-check.d.ts.map +1 -0
- package/dist/mcp/tools/health-check.js +37 -0
- package/dist/mcp/tools/health-check.js.map +1 -0
- package/dist/mcp/tools/recall-memory.d.ts +31 -0
- package/dist/mcp/tools/recall-memory.d.ts.map +1 -0
- package/dist/mcp/tools/recall-memory.js +31 -0
- package/dist/mcp/tools/recall-memory.js.map +1 -0
- package/dist/mcp/validation.d.ts +88 -0
- package/dist/mcp/validation.d.ts.map +1 -0
- package/dist/mcp/validation.js +119 -0
- package/dist/mcp/validation.js.map +1 -0
- package/dist/memory/ProjectAutoTracker.d.ts +36 -0
- package/dist/memory/ProjectAutoTracker.d.ts.map +1 -0
- package/dist/memory/ProjectAutoTracker.js +200 -0
- package/dist/memory/ProjectAutoTracker.js.map +1 -0
- package/dist/memory/ProjectMemoryCleanup.d.ts +17 -0
- package/dist/memory/ProjectMemoryCleanup.d.ts.map +1 -0
- package/dist/memory/ProjectMemoryCleanup.js +57 -0
- package/dist/memory/ProjectMemoryCleanup.js.map +1 -0
- package/dist/memory/ProjectMemoryManager.d.ts +15 -0
- package/dist/memory/ProjectMemoryManager.d.ts.map +1 -0
- package/dist/memory/ProjectMemoryManager.js +36 -0
- package/dist/memory/ProjectMemoryManager.js.map +1 -0
- package/dist/orchestrator/AgentRouter.d.ts +20 -0
- package/dist/orchestrator/AgentRouter.d.ts.map +1 -0
- package/dist/orchestrator/AgentRouter.js +274 -0
- package/dist/orchestrator/AgentRouter.js.map +1 -0
- package/dist/orchestrator/CostTracker.d.ts +25 -0
- package/dist/orchestrator/CostTracker.d.ts.map +1 -0
- package/dist/orchestrator/CostTracker.js +199 -0
- package/dist/orchestrator/CostTracker.js.map +1 -0
- package/dist/orchestrator/GlobalResourcePool.d.ts +59 -0
- package/dist/orchestrator/GlobalResourcePool.d.ts.map +1 -0
- package/dist/orchestrator/GlobalResourcePool.js +224 -0
- package/dist/orchestrator/GlobalResourcePool.js.map +1 -0
- package/dist/orchestrator/GlobalResourcePoolConstants.d.ts +22 -0
- package/dist/orchestrator/GlobalResourcePoolConstants.d.ts.map +1 -0
- package/dist/orchestrator/GlobalResourcePoolConstants.js +22 -0
- package/dist/orchestrator/GlobalResourcePoolConstants.js.map +1 -0
- package/dist/orchestrator/TaskAnalyzer.d.ts +15 -0
- package/dist/orchestrator/TaskAnalyzer.d.ts.map +1 -0
- package/dist/orchestrator/TaskAnalyzer.js +234 -0
- package/dist/orchestrator/TaskAnalyzer.js.map +1 -0
- package/dist/orchestrator/TaskAnalyzerConstants.d.ts +16 -0
- package/dist/orchestrator/TaskAnalyzerConstants.d.ts.map +1 -0
- package/dist/orchestrator/TaskAnalyzerConstants.js +16 -0
- package/dist/orchestrator/TaskAnalyzerConstants.js.map +1 -0
- package/dist/orchestrator/example.d.ts +2 -0
- package/dist/orchestrator/example.d.ts.map +1 -0
- package/dist/orchestrator/example.js +118 -0
- package/dist/orchestrator/example.js.map +1 -0
- package/dist/orchestrator/index.d.ts +82 -0
- package/dist/orchestrator/index.d.ts.map +1 -0
- package/dist/orchestrator/index.js +364 -0
- package/dist/orchestrator/index.js.map +1 -0
- package/dist/orchestrator/router.d.ts +48 -0
- package/dist/orchestrator/router.d.ts.map +1 -0
- package/dist/orchestrator/router.js +126 -0
- package/dist/orchestrator/router.js.map +1 -0
- package/dist/orchestrator/types.d.ts +60 -0
- package/dist/orchestrator/types.d.ts.map +1 -0
- package/dist/orchestrator/types.js +2 -0
- package/dist/orchestrator/types.js.map +1 -0
- package/dist/planning/PlanningEngine.d.ts +52 -0
- package/dist/planning/PlanningEngine.d.ts.map +1 -0
- package/dist/planning/PlanningEngine.js +271 -0
- package/dist/planning/PlanningEngine.js.map +1 -0
- package/dist/planning/TaskDecomposer.d.ts +32 -0
- package/dist/planning/TaskDecomposer.d.ts.map +1 -0
- package/dist/planning/TaskDecomposer.js +152 -0
- package/dist/planning/TaskDecomposer.js.map +1 -0
- package/dist/prompts/templates/PromptTemplates.d.ts +11 -0
- package/dist/prompts/templates/PromptTemplates.d.ts.map +1 -0
- package/dist/prompts/templates/PromptTemplates.js +942 -0
- package/dist/prompts/templates/PromptTemplates.js.map +1 -0
- package/dist/prompts/templates/index.d.ts +2 -0
- package/dist/prompts/templates/index.d.ts.map +1 -0
- package/dist/prompts/templates/index.js +2 -0
- package/dist/prompts/templates/index.js.map +1 -0
- package/dist/skills/SkillManager.d.ts +33 -0
- package/dist/skills/SkillManager.d.ts.map +1 -0
- package/dist/skills/SkillManager.js +153 -0
- package/dist/skills/SkillManager.js.map +1 -0
- package/dist/skills/index.d.ts +3 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +2 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/telemetry/TelemetryCollector.d.ts +19 -0
- package/dist/telemetry/TelemetryCollector.d.ts.map +1 -0
- package/dist/telemetry/TelemetryCollector.js +62 -0
- package/dist/telemetry/TelemetryCollector.js.map +1 -0
- package/dist/telemetry/TelemetryStore.d.ts +20 -0
- package/dist/telemetry/TelemetryStore.d.ts.map +1 -0
- package/dist/telemetry/TelemetryStore.js +126 -0
- package/dist/telemetry/TelemetryStore.js.map +1 -0
- package/dist/telemetry/index.d.ts +8 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +33 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/sanitization.d.ts +6 -0
- package/dist/telemetry/sanitization.d.ts.map +1 -0
- package/dist/telemetry/sanitization.js +180 -0
- package/dist/telemetry/sanitization.js.map +1 -0
- package/dist/telemetry/types.d.ts +73 -0
- package/dist/telemetry/types.d.ts.map +1 -0
- package/dist/telemetry/types.js +16 -0
- package/dist/telemetry/types.js.map +1 -0
- package/dist/templates/git-education-templates.d.ts +26 -0
- package/dist/templates/git-education-templates.d.ts.map +1 -0
- package/dist/templates/git-education-templates.js +455 -0
- package/dist/templates/git-education-templates.js.map +1 -0
- package/dist/types/AgentClassification.d.ts +6 -0
- package/dist/types/AgentClassification.d.ts.map +1 -0
- package/dist/types/AgentClassification.js +7 -0
- package/dist/types/AgentClassification.js.map +1 -0
- package/dist/types/Checkpoint.d.ts +12 -0
- package/dist/types/Checkpoint.d.ts.map +1 -0
- package/dist/types/Checkpoint.js +13 -0
- package/dist/types/Checkpoint.js.map +1 -0
- package/dist/types/toonify.d.ts +91 -0
- package/dist/types/toonify.d.ts.map +1 -0
- package/dist/types/toonify.js +18 -0
- package/dist/types/toonify.js.map +1 -0
- package/dist/ui/AsciiProgressBar.d.ts +29 -0
- package/dist/ui/AsciiProgressBar.d.ts.map +1 -0
- package/dist/ui/AsciiProgressBar.js +131 -0
- package/dist/ui/AsciiProgressBar.js.map +1 -0
- package/dist/ui/AttributionManager.d.ts +19 -0
- package/dist/ui/AttributionManager.d.ts.map +1 -0
- package/dist/ui/AttributionManager.js +107 -0
- package/dist/ui/AttributionManager.js.map +1 -0
- package/dist/ui/Dashboard.d.ts +24 -0
- package/dist/ui/Dashboard.d.ts.map +1 -0
- package/dist/ui/Dashboard.js +135 -0
- package/dist/ui/Dashboard.js.map +1 -0
- package/dist/ui/LoadingIndicator.d.ts +53 -0
- package/dist/ui/LoadingIndicator.d.ts.map +1 -0
- package/dist/ui/LoadingIndicator.js +174 -0
- package/dist/ui/LoadingIndicator.js.map +1 -0
- package/dist/ui/MetricsStore.d.ts +15 -0
- package/dist/ui/MetricsStore.d.ts.map +1 -0
- package/dist/ui/MetricsStore.js +111 -0
- package/dist/ui/MetricsStore.js.map +1 -0
- package/dist/ui/ProgressRenderer.d.ts +24 -0
- package/dist/ui/ProgressRenderer.d.ts.map +1 -0
- package/dist/ui/ProgressRenderer.js +121 -0
- package/dist/ui/ProgressRenderer.js.map +1 -0
- package/dist/ui/ResponseFormatter.d.ts +42 -0
- package/dist/ui/ResponseFormatter.d.ts.map +1 -0
- package/dist/ui/ResponseFormatter.js +243 -0
- package/dist/ui/ResponseFormatter.js.map +1 -0
- package/dist/ui/UIEventBus.d.ts +38 -0
- package/dist/ui/UIEventBus.d.ts.map +1 -0
- package/dist/ui/UIEventBus.js +173 -0
- package/dist/ui/UIEventBus.js.map +1 -0
- package/dist/ui/index.d.ts +8 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +6 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/theme.d.ts +292 -0
- package/dist/ui/theme.d.ts.map +1 -0
- package/dist/ui/theme.js +153 -0
- package/dist/ui/theme.js.map +1 -0
- package/dist/ui/types.d.ts +146 -0
- package/dist/ui/types.d.ts.map +1 -0
- package/dist/ui/types.js +16 -0
- package/dist/ui/types.js.map +1 -0
- package/dist/utils/ILogger.d.ts +7 -0
- package/dist/utils/ILogger.d.ts.map +1 -0
- package/dist/utils/ILogger.js +2 -0
- package/dist/utils/ILogger.js.map +1 -0
- package/dist/utils/MinHeap.d.ts +15 -0
- package/dist/utils/MinHeap.d.ts.map +1 -0
- package/dist/utils/MinHeap.js +69 -0
- package/dist/utils/MinHeap.js.map +1 -0
- package/dist/utils/RateLimiter.d.ts +28 -0
- package/dist/utils/RateLimiter.d.ts.map +1 -0
- package/dist/utils/RateLimiter.js +115 -0
- package/dist/utils/RateLimiter.js.map +1 -0
- package/dist/utils/SecureKeyStore.d.ts +10 -0
- package/dist/utils/SecureKeyStore.d.ts.map +1 -0
- package/dist/utils/SecureKeyStore.js +32 -0
- package/dist/utils/SecureKeyStore.js.map +1 -0
- package/dist/utils/SystemResources.d.ts +40 -0
- package/dist/utils/SystemResources.d.ts.map +1 -0
- package/dist/utils/SystemResources.js +221 -0
- package/dist/utils/SystemResources.js.map +1 -0
- package/dist/utils/cost-tracker.d.ts +34 -0
- package/dist/utils/cost-tracker.d.ts.map +1 -0
- package/dist/utils/cost-tracker.js +92 -0
- package/dist/utils/cost-tracker.js.map +1 -0
- package/dist/utils/errorHandler.d.ts +28 -0
- package/dist/utils/errorHandler.d.ts.map +1 -0
- package/dist/utils/errorHandler.js +206 -0
- package/dist/utils/errorHandler.js.map +1 -0
- package/dist/utils/json.d.ts +13 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +85 -0
- package/dist/utils/json.js.map +1 -0
- package/dist/utils/logger.d.ts +16 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +57 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/lru-cache.d.ts +40 -0
- package/dist/utils/lru-cache.d.ts.map +1 -0
- package/dist/utils/lru-cache.js +209 -0
- package/dist/utils/lru-cache.js.map +1 -0
- package/dist/utils/memory.d.ts +20 -0
- package/dist/utils/memory.d.ts.map +1 -0
- package/dist/utils/memory.js +53 -0
- package/dist/utils/memory.js.map +1 -0
- package/dist/utils/money.d.ts +10 -0
- package/dist/utils/money.d.ts.map +1 -0
- package/dist/utils/money.js +25 -0
- package/dist/utils/money.js.map +1 -0
- package/dist/utils/pathValidation.d.ts +2 -0
- package/dist/utils/pathValidation.d.ts.map +1 -0
- package/dist/utils/pathValidation.js +62 -0
- package/dist/utils/pathValidation.js.map +1 -0
- package/dist/utils/paths.d.ts +4 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +28 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/requestId.d.ts +4 -0
- package/dist/utils/requestId.d.ts.map +1 -0
- package/dist/utils/requestId.js +17 -0
- package/dist/utils/requestId.js.map +1 -0
- package/dist/utils/retry.d.ts +20 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +226 -0
- package/dist/utils/retry.js.map +1 -0
- package/dist/utils/toonify-adapter.d.ts +77 -0
- package/dist/utils/toonify-adapter.d.ts.map +1 -0
- package/dist/utils/toonify-adapter.js +283 -0
- package/dist/utils/toonify-adapter.js.map +1 -0
- package/dist/utils/validation.d.ts +7 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +62 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +116 -0
- package/plugin.json +21 -0
|
@@ -0,0 +1,582 @@
|
|
|
1
|
+
import { logger } from '../utils/logger.js';
|
|
2
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
3
|
+
import { ContextMatcher } from './ContextMatcher.js';
|
|
4
|
+
import { MultiObjectiveOptimizer } from './MultiObjectiveOptimizer.js';
|
|
5
|
+
import { PatternExplainer } from './PatternExplainer.js';
|
|
6
|
+
export class LearningManager {
|
|
7
|
+
patterns = new Map();
|
|
8
|
+
feedback = new Map();
|
|
9
|
+
config;
|
|
10
|
+
performanceTracker;
|
|
11
|
+
contextMatcher;
|
|
12
|
+
multiObjectiveOptimizer;
|
|
13
|
+
patternExplainer;
|
|
14
|
+
contextualPatterns = new Map();
|
|
15
|
+
QUALITY_HIGH = 0.8;
|
|
16
|
+
QUALITY_LOW = 0.5;
|
|
17
|
+
COST_REDUCTION_TARGET = 0.8;
|
|
18
|
+
CONFIDENCE_INCREMENT = 0.02;
|
|
19
|
+
STATISTICAL_BASELINE_SAMPLES = 30;
|
|
20
|
+
COMPLEXITY_LOW_THRESHOLD_MS = 5000;
|
|
21
|
+
COMPLEXITY_MEDIUM_THRESHOLD_MS = 15000;
|
|
22
|
+
COST_VARIATION_PERCENT = 0.1;
|
|
23
|
+
COST_VARIATION_MIN_ABSOLUTE = 0.01;
|
|
24
|
+
P95_MIN_SAMPLE_SIZE = 20;
|
|
25
|
+
static savedPatterns = new Map();
|
|
26
|
+
static savedFeedback = new Map();
|
|
27
|
+
isInitialized = false;
|
|
28
|
+
constructor(performanceTracker, config) {
|
|
29
|
+
this.performanceTracker = performanceTracker;
|
|
30
|
+
this.config = {
|
|
31
|
+
minObservations: config?.minObservations || 10,
|
|
32
|
+
minConfidence: config?.minConfidence || 0.7,
|
|
33
|
+
successRateThreshold: config?.successRateThreshold || 0.8,
|
|
34
|
+
failureRateThreshold: config?.failureRateThreshold || 0.3,
|
|
35
|
+
maxPatternsPerAgent: config?.maxPatternsPerAgent || 100,
|
|
36
|
+
maxFeedbackPerAgent: config?.maxFeedbackPerAgent || 500,
|
|
37
|
+
};
|
|
38
|
+
this.contextMatcher = new ContextMatcher();
|
|
39
|
+
this.multiObjectiveOptimizer = new MultiObjectiveOptimizer();
|
|
40
|
+
this.patternExplainer = new PatternExplainer();
|
|
41
|
+
this.isInitialized = true;
|
|
42
|
+
logger.info('Learning manager initialized', this.config);
|
|
43
|
+
}
|
|
44
|
+
analyzePatterns(agentId) {
|
|
45
|
+
const metrics = this.performanceTracker.getMetrics(agentId);
|
|
46
|
+
if (metrics.length < this.config.minObservations) {
|
|
47
|
+
logger.debug('Insufficient data for pattern analysis', {
|
|
48
|
+
agentId,
|
|
49
|
+
count: metrics.length,
|
|
50
|
+
required: this.config.minObservations,
|
|
51
|
+
});
|
|
52
|
+
return [];
|
|
53
|
+
}
|
|
54
|
+
const newPatterns = [];
|
|
55
|
+
const metricsByTask = this.groupByTaskType(metrics);
|
|
56
|
+
for (const [taskType, taskMetrics] of metricsByTask.entries()) {
|
|
57
|
+
const successPatterns = this.extractSuccessPatterns(agentId, taskType, taskMetrics);
|
|
58
|
+
newPatterns.push(...successPatterns);
|
|
59
|
+
const failurePatterns = this.extractFailurePatterns(agentId, taskType, taskMetrics);
|
|
60
|
+
newPatterns.push(...failurePatterns);
|
|
61
|
+
const optimizationPatterns = this.extractOptimizationPatterns(agentId, taskType, taskMetrics);
|
|
62
|
+
newPatterns.push(...optimizationPatterns);
|
|
63
|
+
}
|
|
64
|
+
this.storePatterns(agentId, newPatterns);
|
|
65
|
+
logger.info('Pattern analysis complete', {
|
|
66
|
+
agentId,
|
|
67
|
+
newPatterns: newPatterns.length,
|
|
68
|
+
totalPatterns: this.patterns.get(agentId)?.length || 0,
|
|
69
|
+
});
|
|
70
|
+
return newPatterns;
|
|
71
|
+
}
|
|
72
|
+
createPattern(agentId, taskType, patternType, description, observedMetrics, totalMetrics, action, successCount, successRate) {
|
|
73
|
+
return {
|
|
74
|
+
id: uuidv4(),
|
|
75
|
+
type: patternType,
|
|
76
|
+
agentId,
|
|
77
|
+
taskType,
|
|
78
|
+
description,
|
|
79
|
+
conditions: {
|
|
80
|
+
taskComplexity: this.inferComplexity(observedMetrics),
|
|
81
|
+
},
|
|
82
|
+
action,
|
|
83
|
+
confidence: this.calculateConfidence(observedMetrics.length, totalMetrics.length),
|
|
84
|
+
observationCount: observedMetrics.length,
|
|
85
|
+
successCount,
|
|
86
|
+
successRate,
|
|
87
|
+
createdAt: new Date(),
|
|
88
|
+
updatedAt: new Date(),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
extractSuccessPatterns(agentId, taskType, metrics) {
|
|
92
|
+
const patterns = [];
|
|
93
|
+
const successfulMetrics = metrics.filter(m => m.success);
|
|
94
|
+
const successRate = successfulMetrics.length / metrics.length;
|
|
95
|
+
if (successRate < this.config.successRateThreshold) {
|
|
96
|
+
return patterns;
|
|
97
|
+
}
|
|
98
|
+
const consistentHighQuality = successfulMetrics.filter(m => m.qualityScore >= this.QUALITY_HIGH);
|
|
99
|
+
if (consistentHighQuality.length >= this.config.minObservations) {
|
|
100
|
+
patterns.push(this.createPattern(agentId, taskType, 'success', `Consistent high quality (≥0.8) for ${taskType}`, consistentHighQuality, metrics, {
|
|
101
|
+
type: 'adjust_prompt',
|
|
102
|
+
parameters: {
|
|
103
|
+
strategy: 'quality-focused',
|
|
104
|
+
focusAreas: ['accuracy', 'consistency'],
|
|
105
|
+
},
|
|
106
|
+
}, consistentHighQuality.length, successRate));
|
|
107
|
+
}
|
|
108
|
+
const medianCost = this.getMedianCost(metrics);
|
|
109
|
+
const costVariation = metrics.some(m => {
|
|
110
|
+
const diff = Math.abs(m.cost - medianCost);
|
|
111
|
+
return diff > Math.max(medianCost * this.COST_VARIATION_PERCENT, this.COST_VARIATION_MIN_ABSOLUTE);
|
|
112
|
+
});
|
|
113
|
+
if (costVariation) {
|
|
114
|
+
const highQualityLowCost = successfulMetrics.filter(m => m.qualityScore >= this.QUALITY_HIGH && m.cost <= medianCost);
|
|
115
|
+
if (highQualityLowCost.length >= this.config.minObservations) {
|
|
116
|
+
patterns.push(this.createPattern(agentId, taskType, 'success', `High quality (≥0.8) with cost-efficient execution for ${taskType}`, highQualityLowCost, metrics, {
|
|
117
|
+
type: 'adjust_prompt',
|
|
118
|
+
parameters: {
|
|
119
|
+
strategy: 'efficient',
|
|
120
|
+
focusAreas: ['quality', 'cost-optimization'],
|
|
121
|
+
},
|
|
122
|
+
}, highQualityLowCost.length, successRate));
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return patterns;
|
|
126
|
+
}
|
|
127
|
+
extractFailurePatterns(agentId, taskType, metrics) {
|
|
128
|
+
const patterns = [];
|
|
129
|
+
const failedMetrics = metrics.filter(m => !m.success);
|
|
130
|
+
const failureRate = failedMetrics.length / metrics.length;
|
|
131
|
+
if (failureRate < this.config.failureRateThreshold) {
|
|
132
|
+
return patterns;
|
|
133
|
+
}
|
|
134
|
+
const timeoutFailures = failedMetrics.filter(m => m.durationMs > this.getP95Duration(metrics));
|
|
135
|
+
if (timeoutFailures.length >= this.config.minObservations / 2) {
|
|
136
|
+
patterns.push(this.createPattern(agentId, taskType, 'anti-pattern', `Timeout failures (P95 duration) for ${taskType}`, timeoutFailures, failedMetrics, {
|
|
137
|
+
type: 'modify_timeout',
|
|
138
|
+
parameters: {
|
|
139
|
+
timeoutMs: Math.round(this.getP95Duration(metrics) * 1.5),
|
|
140
|
+
},
|
|
141
|
+
}, 0, 0));
|
|
142
|
+
}
|
|
143
|
+
const lowQualityMetrics = metrics.filter(m => m.success && m.qualityScore < this.QUALITY_LOW);
|
|
144
|
+
if (lowQualityMetrics.length >= this.config.minObservations / 2) {
|
|
145
|
+
patterns.push(this.createPattern(agentId, taskType, 'anti-pattern', `Low quality output (<0.5) for ${taskType}`, lowQualityMetrics, metrics, {
|
|
146
|
+
type: 'adjust_prompt',
|
|
147
|
+
parameters: {
|
|
148
|
+
strategy: 'quality-focused',
|
|
149
|
+
additionalInstructions: 'Prioritize output quality over speed',
|
|
150
|
+
},
|
|
151
|
+
}, 0, 0));
|
|
152
|
+
}
|
|
153
|
+
return patterns;
|
|
154
|
+
}
|
|
155
|
+
extractOptimizationPatterns(agentId, taskType, metrics) {
|
|
156
|
+
const patterns = [];
|
|
157
|
+
const successfulMetrics = metrics.filter(m => m.success && m.qualityScore >= 0.7);
|
|
158
|
+
if (successfulMetrics.length >= this.config.minObservations) {
|
|
159
|
+
const avgCost = successfulMetrics.reduce((sum, m) => sum + m.cost, 0) / successfulMetrics.length;
|
|
160
|
+
const lowCostHighQuality = successfulMetrics.filter(m => m.cost < avgCost * this.COST_REDUCTION_TARGET && m.qualityScore >= this.QUALITY_HIGH);
|
|
161
|
+
if (lowCostHighQuality.length >= this.config.minObservations / 2) {
|
|
162
|
+
patterns.push(this.createPattern(agentId, taskType, 'optimization', `Cost optimization opportunity: 20% cost reduction with quality ≥0.8 for ${taskType}`, lowCostHighQuality, successfulMetrics, {
|
|
163
|
+
type: 'change_model',
|
|
164
|
+
parameters: {
|
|
165
|
+
targetCostReduction: 0.2,
|
|
166
|
+
minQualityScore: 0.8,
|
|
167
|
+
},
|
|
168
|
+
}, lowCostHighQuality.length, lowCostHighQuality.length / successfulMetrics.length));
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return patterns;
|
|
172
|
+
}
|
|
173
|
+
addFeedback(feedback) {
|
|
174
|
+
const fullFeedback = {
|
|
175
|
+
...feedback,
|
|
176
|
+
id: uuidv4(),
|
|
177
|
+
timestamp: new Date(),
|
|
178
|
+
};
|
|
179
|
+
if (!this.feedback.has(feedback.agentId)) {
|
|
180
|
+
this.feedback.set(feedback.agentId, []);
|
|
181
|
+
}
|
|
182
|
+
this.feedback.get(feedback.agentId).push(fullFeedback);
|
|
183
|
+
this.cleanupOldFeedback(feedback.agentId);
|
|
184
|
+
logger.info('Feedback recorded', {
|
|
185
|
+
agentId: feedback.agentId,
|
|
186
|
+
type: feedback.type,
|
|
187
|
+
rating: feedback.rating,
|
|
188
|
+
});
|
|
189
|
+
return fullFeedback;
|
|
190
|
+
}
|
|
191
|
+
getPatterns(agentId, filter) {
|
|
192
|
+
let patterns = this.patterns.get(agentId) || [];
|
|
193
|
+
if (filter) {
|
|
194
|
+
if (filter.type) {
|
|
195
|
+
patterns = patterns.filter(p => p.type === filter.type);
|
|
196
|
+
}
|
|
197
|
+
if (filter.taskType) {
|
|
198
|
+
patterns = patterns.filter(p => p.taskType === filter.taskType);
|
|
199
|
+
}
|
|
200
|
+
if (filter.minConfidence !== undefined) {
|
|
201
|
+
patterns = patterns.filter(p => p.confidence >= filter.minConfidence);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return patterns;
|
|
205
|
+
}
|
|
206
|
+
getRecommendations(agentId, taskType, taskComplexity) {
|
|
207
|
+
const patterns = this.getPatterns(agentId, {
|
|
208
|
+
taskType,
|
|
209
|
+
minConfidence: this.config.minConfidence,
|
|
210
|
+
});
|
|
211
|
+
const filtered = taskComplexity
|
|
212
|
+
? patterns.filter(p => p.conditions.taskComplexity === taskComplexity)
|
|
213
|
+
: patterns;
|
|
214
|
+
return filtered.sort((a, b) => {
|
|
215
|
+
const scoreA = a.confidence * a.successRate;
|
|
216
|
+
const scoreB = b.confidence * b.successRate;
|
|
217
|
+
return scoreB - scoreA;
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
updatePattern(patternId, success) {
|
|
221
|
+
for (const [agentId, agentPatterns] of this.patterns.entries()) {
|
|
222
|
+
const pattern = agentPatterns.find(p => p.id === patternId);
|
|
223
|
+
if (pattern) {
|
|
224
|
+
pattern.observationCount += 1;
|
|
225
|
+
const successCount = Math.round(pattern.successRate * (pattern.observationCount - 1));
|
|
226
|
+
pattern.successRate = success
|
|
227
|
+
? (successCount + 1) / pattern.observationCount
|
|
228
|
+
: successCount / pattern.observationCount;
|
|
229
|
+
pattern.confidence = Math.min(pattern.confidence + this.CONFIDENCE_INCREMENT, 1.0);
|
|
230
|
+
pattern.updatedAt = new Date();
|
|
231
|
+
logger.debug('Pattern updated', {
|
|
232
|
+
patternId,
|
|
233
|
+
observationCount: pattern.observationCount,
|
|
234
|
+
successRate: pattern.successRate,
|
|
235
|
+
confidence: pattern.confidence,
|
|
236
|
+
});
|
|
237
|
+
break;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
storePatterns(agentId, newPatterns) {
|
|
242
|
+
if (!this.patterns.has(agentId)) {
|
|
243
|
+
this.patterns.set(agentId, []);
|
|
244
|
+
}
|
|
245
|
+
const existing = this.patterns.get(agentId);
|
|
246
|
+
existing.push(...newPatterns);
|
|
247
|
+
if (existing.length > this.config.maxPatternsPerAgent) {
|
|
248
|
+
existing.sort((a, b) => b.confidence - a.confidence);
|
|
249
|
+
this.patterns.set(agentId, existing.slice(0, this.config.maxPatternsPerAgent));
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
cleanupOldFeedback(agentId) {
|
|
253
|
+
const feedbackList = this.feedback.get(agentId);
|
|
254
|
+
if (!feedbackList || feedbackList.length <= this.config.maxFeedbackPerAgent) {
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
feedbackList.sort((a, b) => b.timestamp.getTime() - a.timestamp.getTime());
|
|
258
|
+
const trimmed = feedbackList.slice(0, this.config.maxFeedbackPerAgent);
|
|
259
|
+
this.feedback.set(agentId, trimmed);
|
|
260
|
+
logger.debug('Feedback trimmed for agent', {
|
|
261
|
+
agentId,
|
|
262
|
+
kept: this.config.maxFeedbackPerAgent,
|
|
263
|
+
removed: feedbackList.length - this.config.maxFeedbackPerAgent,
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
groupByTaskType(metrics) {
|
|
267
|
+
const groups = new Map();
|
|
268
|
+
for (const metric of metrics) {
|
|
269
|
+
if (!groups.has(metric.taskType)) {
|
|
270
|
+
groups.set(metric.taskType, []);
|
|
271
|
+
}
|
|
272
|
+
groups.get(metric.taskType).push(metric);
|
|
273
|
+
}
|
|
274
|
+
return groups;
|
|
275
|
+
}
|
|
276
|
+
calculateMedian(values) {
|
|
277
|
+
if (values.length === 0) {
|
|
278
|
+
return 0;
|
|
279
|
+
}
|
|
280
|
+
const sorted = [...values].sort((a, b) => a - b);
|
|
281
|
+
const mid = Math.floor(sorted.length / 2);
|
|
282
|
+
return sorted.length % 2 === 0
|
|
283
|
+
? (sorted[mid - 1] + sorted[mid]) / 2
|
|
284
|
+
: sorted[mid];
|
|
285
|
+
}
|
|
286
|
+
getMedianCost(metrics) {
|
|
287
|
+
return this.calculateMedian(metrics.map(m => m.cost));
|
|
288
|
+
}
|
|
289
|
+
getMedianDuration(metrics) {
|
|
290
|
+
return this.calculateMedian(metrics.map(m => m.durationMs));
|
|
291
|
+
}
|
|
292
|
+
getP95Duration(metrics) {
|
|
293
|
+
if (metrics.length === 0) {
|
|
294
|
+
return 0;
|
|
295
|
+
}
|
|
296
|
+
const sorted = metrics.map(m => m.durationMs).sort((a, b) => a - b);
|
|
297
|
+
if (sorted.length < this.P95_MIN_SAMPLE_SIZE) {
|
|
298
|
+
logger.debug('Using max duration for P95 (insufficient samples)', {
|
|
299
|
+
sampleSize: sorted.length,
|
|
300
|
+
});
|
|
301
|
+
return sorted[sorted.length - 1];
|
|
302
|
+
}
|
|
303
|
+
const index = Math.floor(sorted.length * 0.95);
|
|
304
|
+
return sorted[index];
|
|
305
|
+
}
|
|
306
|
+
inferComplexity(metrics) {
|
|
307
|
+
const avgDuration = metrics.reduce((sum, m) => sum + m.durationMs, 0) / metrics.length;
|
|
308
|
+
if (avgDuration < this.COMPLEXITY_LOW_THRESHOLD_MS)
|
|
309
|
+
return 'low';
|
|
310
|
+
if (avgDuration < this.COMPLEXITY_MEDIUM_THRESHOLD_MS)
|
|
311
|
+
return 'medium';
|
|
312
|
+
return 'high';
|
|
313
|
+
}
|
|
314
|
+
calculateConfidence(observationCount, totalSamples) {
|
|
315
|
+
const proportion = observationCount / totalSamples;
|
|
316
|
+
const n = totalSamples;
|
|
317
|
+
const sampleSizeBonus = Math.min(n / this.STATISTICAL_BASELINE_SAMPLES, 1);
|
|
318
|
+
const proportionScore = proportion;
|
|
319
|
+
return Math.min(sampleSizeBonus * proportionScore, 1.0);
|
|
320
|
+
}
|
|
321
|
+
clearPatterns(agentId) {
|
|
322
|
+
this.patterns.delete(agentId);
|
|
323
|
+
logger.info('Patterns cleared', { agentId });
|
|
324
|
+
}
|
|
325
|
+
getAgentsWithPatterns() {
|
|
326
|
+
return Array.from(this.patterns.keys());
|
|
327
|
+
}
|
|
328
|
+
async identifyContextualPatterns(agentId) {
|
|
329
|
+
const metrics = this.performanceTracker.getMetrics(agentId);
|
|
330
|
+
if (metrics.length < this.config.minObservations) {
|
|
331
|
+
logger.debug('Insufficient data for contextual pattern analysis', {
|
|
332
|
+
agentId,
|
|
333
|
+
count: metrics.length,
|
|
334
|
+
required: this.config.minObservations,
|
|
335
|
+
});
|
|
336
|
+
return [];
|
|
337
|
+
}
|
|
338
|
+
const contextualPatterns = [];
|
|
339
|
+
const metricsByTask = this.groupByTaskType(metrics);
|
|
340
|
+
for (const [taskType, taskMetrics] of metricsByTask.entries()) {
|
|
341
|
+
const complexity = this.inferComplexity(taskMetrics);
|
|
342
|
+
const successfulMetrics = taskMetrics.filter((m) => m.success);
|
|
343
|
+
const successRate = successfulMetrics.length / taskMetrics.length;
|
|
344
|
+
if (successfulMetrics.length >= this.config.minObservations &&
|
|
345
|
+
successRate >= this.config.successRateThreshold) {
|
|
346
|
+
const avgDuration = taskMetrics.reduce((sum, m) => sum + m.durationMs, 0) / taskMetrics.length;
|
|
347
|
+
contextualPatterns.push({
|
|
348
|
+
id: uuidv4(),
|
|
349
|
+
type: 'success',
|
|
350
|
+
description: `Successful execution pattern for ${taskType}`,
|
|
351
|
+
confidence: this.calculateConfidence(successfulMetrics.length, taskMetrics.length),
|
|
352
|
+
observations: successfulMetrics.length,
|
|
353
|
+
success_rate: successRate,
|
|
354
|
+
avg_execution_time: avgDuration,
|
|
355
|
+
last_seen: new Date().toISOString(),
|
|
356
|
+
context: {
|
|
357
|
+
agent_type: agentId,
|
|
358
|
+
task_type: taskType,
|
|
359
|
+
complexity,
|
|
360
|
+
},
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
this.contextualPatterns.set(agentId, contextualPatterns);
|
|
365
|
+
logger.info('Contextual pattern analysis complete', {
|
|
366
|
+
agentId,
|
|
367
|
+
patternsFound: contextualPatterns.length,
|
|
368
|
+
});
|
|
369
|
+
return contextualPatterns;
|
|
370
|
+
}
|
|
371
|
+
findOptimalConfiguration(agentId, weights) {
|
|
372
|
+
const weightValues = Object.values(weights).filter(v => v !== undefined);
|
|
373
|
+
if (weightValues.length === 0) {
|
|
374
|
+
logger.warn('No weights provided for optimization', { agentId });
|
|
375
|
+
return undefined;
|
|
376
|
+
}
|
|
377
|
+
if (weightValues.some(w => w < 0 || !Number.isFinite(w))) {
|
|
378
|
+
logger.error('Invalid weights for optimization', { agentId, weights });
|
|
379
|
+
return undefined;
|
|
380
|
+
}
|
|
381
|
+
const metrics = this.performanceTracker.getMetrics(agentId);
|
|
382
|
+
if (metrics.length === 0) {
|
|
383
|
+
return undefined;
|
|
384
|
+
}
|
|
385
|
+
const candidates = metrics.map((m) => ({
|
|
386
|
+
id: m.executionId,
|
|
387
|
+
objectives: {
|
|
388
|
+
accuracy: m.qualityScore,
|
|
389
|
+
speed: m.durationMs > 0 && Number.isFinite(m.durationMs)
|
|
390
|
+
? 1 / (m.durationMs / 1000)
|
|
391
|
+
: 0,
|
|
392
|
+
cost: m.cost > 0 && Number.isFinite(m.cost)
|
|
393
|
+
? 1 / m.cost
|
|
394
|
+
: 0,
|
|
395
|
+
satisfaction: m.userSatisfaction,
|
|
396
|
+
},
|
|
397
|
+
metadata: m.metadata,
|
|
398
|
+
}));
|
|
399
|
+
const paretoFront = this.multiObjectiveOptimizer.findParetoFront(candidates);
|
|
400
|
+
const best = this.multiObjectiveOptimizer.selectBest(paretoFront, weights);
|
|
401
|
+
if (best) {
|
|
402
|
+
logger.info('Optimal configuration found', {
|
|
403
|
+
agentId,
|
|
404
|
+
candidateId: best.id,
|
|
405
|
+
objectives: best.objectives,
|
|
406
|
+
});
|
|
407
|
+
}
|
|
408
|
+
return best;
|
|
409
|
+
}
|
|
410
|
+
explainPattern(patternId) {
|
|
411
|
+
for (const [agentId, patterns] of this.contextualPatterns.entries()) {
|
|
412
|
+
const pattern = patterns.find((p) => p.id === patternId);
|
|
413
|
+
if (pattern) {
|
|
414
|
+
return this.patternExplainer.explain(pattern);
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
logger.warn('Pattern not found for explanation', { patternId });
|
|
418
|
+
return undefined;
|
|
419
|
+
}
|
|
420
|
+
async getLearnedPatterns(agentId) {
|
|
421
|
+
const patterns = this.contextualPatterns.get(agentId);
|
|
422
|
+
if (!patterns) {
|
|
423
|
+
logger.debug('No patterns found for agent', { agentId });
|
|
424
|
+
return [];
|
|
425
|
+
}
|
|
426
|
+
return patterns;
|
|
427
|
+
}
|
|
428
|
+
addBootstrapPattern(pattern) {
|
|
429
|
+
const agentId = pattern.agentId;
|
|
430
|
+
if (!this.patterns.has(agentId)) {
|
|
431
|
+
this.patterns.set(agentId, []);
|
|
432
|
+
}
|
|
433
|
+
const existing = this.patterns.get(agentId);
|
|
434
|
+
const existingPatternIndex = existing.findIndex((p) => p.id === pattern.id);
|
|
435
|
+
if (existingPatternIndex !== -1) {
|
|
436
|
+
const existingPattern = existing[existingPatternIndex];
|
|
437
|
+
const hasContentChanges = existingPattern.description !== pattern.description ||
|
|
438
|
+
existingPattern.confidence !== pattern.confidence ||
|
|
439
|
+
existingPattern.observationCount !== pattern.observationCount ||
|
|
440
|
+
existingPattern.successCount !== pattern.successCount ||
|
|
441
|
+
existingPattern.successRate !== pattern.successRate;
|
|
442
|
+
if (hasContentChanges) {
|
|
443
|
+
existing[existingPatternIndex] = {
|
|
444
|
+
...pattern,
|
|
445
|
+
createdAt: existingPattern.createdAt,
|
|
446
|
+
updatedAt: new Date(),
|
|
447
|
+
};
|
|
448
|
+
logger.info('Bootstrap pattern updated with new content', {
|
|
449
|
+
patternId: pattern.id,
|
|
450
|
+
agentId,
|
|
451
|
+
taskType: pattern.taskType,
|
|
452
|
+
oldConfidence: existingPattern.confidence,
|
|
453
|
+
newConfidence: pattern.confidence,
|
|
454
|
+
oldObservationCount: existingPattern.observationCount,
|
|
455
|
+
newObservationCount: pattern.observationCount,
|
|
456
|
+
});
|
|
457
|
+
}
|
|
458
|
+
else {
|
|
459
|
+
logger.debug('Bootstrap pattern already exists with same content, skipping', {
|
|
460
|
+
patternId: pattern.id,
|
|
461
|
+
agentId,
|
|
462
|
+
});
|
|
463
|
+
}
|
|
464
|
+
return;
|
|
465
|
+
}
|
|
466
|
+
existing.push(pattern);
|
|
467
|
+
logger.debug('Bootstrap pattern added', {
|
|
468
|
+
patternId: pattern.id,
|
|
469
|
+
agentId,
|
|
470
|
+
taskType: pattern.taskType,
|
|
471
|
+
confidence: pattern.confidence,
|
|
472
|
+
});
|
|
473
|
+
if (existing.length > this.config.maxPatternsPerAgent) {
|
|
474
|
+
existing.sort((a, b) => b.confidence - a.confidence);
|
|
475
|
+
this.patterns.set(agentId, existing.slice(0, this.config.maxPatternsPerAgent));
|
|
476
|
+
logger.debug('Trimmed patterns for agent', {
|
|
477
|
+
agentId,
|
|
478
|
+
kept: this.config.maxPatternsPerAgent,
|
|
479
|
+
removed: existing.length - this.config.maxPatternsPerAgent,
|
|
480
|
+
});
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
async initialize() {
|
|
484
|
+
if (LearningManager.savedPatterns.size > 0) {
|
|
485
|
+
for (const [agentId, patterns] of LearningManager.savedPatterns.entries()) {
|
|
486
|
+
this.patterns.set(agentId, [...patterns]);
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
if (LearningManager.savedFeedback.size > 0) {
|
|
490
|
+
for (const [agentId, feedback] of LearningManager.savedFeedback.entries()) {
|
|
491
|
+
this.feedback.set(agentId, [...feedback]);
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
this.isInitialized = true;
|
|
495
|
+
return Promise.resolve();
|
|
496
|
+
}
|
|
497
|
+
async close() {
|
|
498
|
+
LearningManager.savedPatterns.clear();
|
|
499
|
+
LearningManager.savedFeedback.clear();
|
|
500
|
+
for (const [agentId, patterns] of this.patterns.entries()) {
|
|
501
|
+
LearningManager.savedPatterns.set(agentId, [...patterns]);
|
|
502
|
+
}
|
|
503
|
+
for (const [agentId, feedback] of this.feedback.entries()) {
|
|
504
|
+
LearningManager.savedFeedback.set(agentId, [...feedback]);
|
|
505
|
+
}
|
|
506
|
+
this.patterns.clear();
|
|
507
|
+
this.feedback.clear();
|
|
508
|
+
this.isInitialized = false;
|
|
509
|
+
return Promise.resolve();
|
|
510
|
+
}
|
|
511
|
+
async recordInteraction(interaction) {
|
|
512
|
+
this.addFeedback({
|
|
513
|
+
executionId: `exec-${Date.now()}`,
|
|
514
|
+
agentId: interaction.agentId,
|
|
515
|
+
type: interaction.success ? 'positive' : 'negative',
|
|
516
|
+
rating: interaction.success ? 4 : 2,
|
|
517
|
+
feedback: interaction.feedback,
|
|
518
|
+
});
|
|
519
|
+
return Promise.resolve();
|
|
520
|
+
}
|
|
521
|
+
async extractPatterns() {
|
|
522
|
+
const allPatterns = [];
|
|
523
|
+
for (const [agentId, feedbackList] of this.feedback.entries()) {
|
|
524
|
+
const patternGroups = new Map();
|
|
525
|
+
const totalFeedback = feedbackList.length;
|
|
526
|
+
for (const fb of feedbackList) {
|
|
527
|
+
const normalized = fb.feedback.toLowerCase();
|
|
528
|
+
let groupKey = 'general';
|
|
529
|
+
if (normalized.includes('error handling') || normalized.includes('try-catch')) {
|
|
530
|
+
groupKey = 'error_handling';
|
|
531
|
+
}
|
|
532
|
+
else if (normalized.includes('validation') || normalized.includes('input')) {
|
|
533
|
+
groupKey = 'validation';
|
|
534
|
+
}
|
|
535
|
+
else if (normalized.includes('documentation') || normalized.includes('comment')) {
|
|
536
|
+
groupKey = 'documentation';
|
|
537
|
+
}
|
|
538
|
+
else if (normalized.includes('type') || normalized.includes('annotation')) {
|
|
539
|
+
groupKey = 'type_annotations';
|
|
540
|
+
}
|
|
541
|
+
if (!patternGroups.has(groupKey)) {
|
|
542
|
+
patternGroups.set(groupKey, { feedbacks: [], count: 0 });
|
|
543
|
+
}
|
|
544
|
+
const group = patternGroups.get(groupKey);
|
|
545
|
+
group.feedbacks.push(normalized);
|
|
546
|
+
group.count++;
|
|
547
|
+
}
|
|
548
|
+
for (const [groupKey, group] of patternGroups.entries()) {
|
|
549
|
+
const confidence = Math.min(group.count * 0.3, 1.0);
|
|
550
|
+
let patternText = '';
|
|
551
|
+
if (groupKey === 'error_handling') {
|
|
552
|
+
patternText = 'always add error handling to async functions';
|
|
553
|
+
}
|
|
554
|
+
else if (groupKey === 'validation') {
|
|
555
|
+
patternText = 'always include input validation';
|
|
556
|
+
}
|
|
557
|
+
else if (groupKey === 'documentation') {
|
|
558
|
+
patternText = 'always include comprehensive documentation';
|
|
559
|
+
}
|
|
560
|
+
else if (groupKey === 'type_annotations') {
|
|
561
|
+
patternText = 'always add type annotations';
|
|
562
|
+
}
|
|
563
|
+
else {
|
|
564
|
+
patternText = group.feedbacks[0];
|
|
565
|
+
}
|
|
566
|
+
allPatterns.push({
|
|
567
|
+
pattern: patternText,
|
|
568
|
+
confidence,
|
|
569
|
+
});
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
return allPatterns;
|
|
573
|
+
}
|
|
574
|
+
static clearSavedData() {
|
|
575
|
+
LearningManager.savedPatterns.clear();
|
|
576
|
+
LearningManager.savedFeedback.clear();
|
|
577
|
+
}
|
|
578
|
+
async isReady() {
|
|
579
|
+
return Promise.resolve(this.isInitialized);
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
//# sourceMappingURL=LearningManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LearningManager.js","sourceRoot":"","sources":["../../src/evolution/LearningManager.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAW5C,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAwCzD,MAAM,OAAO,eAAe;IAClB,QAAQ,GAAkC,IAAI,GAAG,EAAE,CAAC;IACpD,QAAQ,GAAiC,IAAI,GAAG,EAAE,CAAC;IACnD,MAAM,CAAiB;IACvB,kBAAkB,CAAqB;IAGvC,cAAc,CAAiB;IAC/B,uBAAuB,CAA0B;IACjD,gBAAgB,CAAmB;IACnC,kBAAkB,GAAqC,IAAI,GAAG,EAAE,CAAC;IAGxD,YAAY,GAAG,GAAG,CAAC;IACnB,WAAW,GAAG,GAAG,CAAC;IAClB,qBAAqB,GAAG,GAAG,CAAC;IAG5B,oBAAoB,GAAG,IAAI,CAAC;IAC5B,4BAA4B,GAAG,EAAE,CAAC;IAGlC,2BAA2B,GAAG,IAAI,CAAC;IACnC,8BAA8B,GAAG,KAAK,CAAC;IAIvC,sBAAsB,GAAG,GAAG,CAAC;IAC7B,2BAA2B,GAAG,IAAI,CAAC;IAGnC,mBAAmB,GAAG,EAAE,CAAC;IAGlC,MAAM,CAAC,aAAa,GAAkC,IAAI,GAAG,EAAE,CAAC;IAChE,MAAM,CAAC,aAAa,GAAiC,IAAI,GAAG,EAAE,CAAC;IAC/D,aAAa,GAAY,KAAK,CAAC;IAEvC,YACE,kBAAuC,EACvC,MAAgC;QAEhC,IAAI,CAAC,kBAAkB,GAAG,kBAAwC,CAAC;QACnE,IAAI,CAAC,MAAM,GAAG;YACZ,eAAe,EAAE,MAAM,EAAE,eAAe,IAAI,EAAE;YAC9C,aAAa,EAAE,MAAM,EAAE,aAAa,IAAI,GAAG;YAC3C,oBAAoB,EAAE,MAAM,EAAE,oBAAoB,IAAI,GAAG;YACzD,oBAAoB,EAAE,MAAM,EAAE,oBAAoB,IAAI,GAAG;YACzD,mBAAmB,EAAE,MAAM,EAAE,mBAAmB,IAAI,GAAG;YACvD,mBAAmB,EAAE,MAAM,EAAE,mBAAmB,IAAI,GAAG;SACxD,CAAC;QAGF,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;QAC3C,IAAI,CAAC,uBAAuB,GAAG,IAAI,uBAAuB,EAAE,CAAC;QAC7D,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAE/C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAE1B,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;IAKD,eAAe,CAAC,OAAe;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE5D,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE;gBACrD,OAAO;gBACP,KAAK,EAAE,OAAO,CAAC,MAAM;gBACrB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;aACtC,CAAC,CAAC;YACH,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,WAAW,GAAqB,EAAE,CAAC;QAGzC,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEpD,KAAK,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;YAE9D,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YACpF,WAAW,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;YAGrC,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YACpF,WAAW,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;YAGrC,MAAM,oBAAoB,GAAG,IAAI,CAAC,2BAA2B,CAC3D,OAAO,EACP,QAAQ,EACR,WAAW,CACZ,CAAC;YACF,WAAW,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,CAAC;QAC5C,CAAC;QAGD,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAEzC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;YACvC,OAAO;YACP,WAAW,EAAE,WAAW,CAAC,MAAM;YAC/B,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;SACvD,CAAC,CAAC;QAEH,OAAO,WAAW,CAAC;IACrB,CAAC;IAMO,aAAa,CACnB,OAAe,EACf,QAAgB,EAChB,WAAwD,EACxD,WAAmB,EACnB,eAAqC,EACrC,YAAkC,EAClC,MAAgC,EAChC,YAAoB,EACpB,WAAmB;QAEnB,OAAO;YACL,EAAE,EAAE,MAAM,EAAE;YACZ,IAAI,EAAE,WAAW;YACjB,OAAO;YACP,QAAQ;YACR,WAAW;YACX,UAAU,EAAE;gBACV,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC;aACtD;YACD,MAAM;YACN,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC;YACjF,gBAAgB,EAAE,eAAe,CAAC,MAAM;YACxC,YAAY;YACZ,WAAW;YACX,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;IACJ,CAAC;IAKO,sBAAsB,CAC5B,OAAe,EACf,QAAgB,EAChB,OAA6B;QAE7B,MAAM,QAAQ,GAAqB,EAAE,CAAC;QAEtC,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE9D,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;YACnD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAGD,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,MAAM,CACpD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CACzC,CAAC;QAEF,IAAI,qBAAqB,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAChE,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,aAAa,CAChB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,sCAAsC,QAAQ,EAAE,EAChD,qBAAqB,EACrB,OAAO,EACP;gBACE,IAAI,EAAE,eAAe;gBACrB,UAAU,EAAE;oBACV,QAAQ,EAAE,iBAAiB;oBAC3B,UAAU,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC;iBACxC;aACF,EACD,qBAAqB,CAAC,MAAM,EAC5B,WAAW,CACZ,CACF,CAAC;QACJ,CAAC;QAGD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC;YAC3C,OAAO,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACrG,CAAC,CAAC,CAAC;QAEH,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,MAAM,CACjD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,IAAI,UAAU,CACjE,CAAC;YAEF,IAAI,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;gBAC7D,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,aAAa,CAChB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,yDAAyD,QAAQ,EAAE,EACnE,kBAAkB,EAClB,OAAO,EACP;oBACE,IAAI,EAAE,eAAe;oBACrB,UAAU,EAAE;wBACV,QAAQ,EAAE,WAAW;wBACrB,UAAU,EAAE,CAAC,SAAS,EAAE,mBAAmB,CAAC;qBAC7C;iBACF,EACD,kBAAkB,CAAC,MAAM,EACzB,WAAW,CACZ,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAKO,sBAAsB,CAC5B,OAAe,EACf,QAAgB,EAChB,OAA6B;QAE7B,MAAM,QAAQ,GAAqB,EAAE,CAAC;QAEtC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE1D,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;YACnD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAGD,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAC1C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CACjD,CAAC;QAEF,IAAI,eAAe,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;YAC9D,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,aAAa,CAChB,OAAO,EACP,QAAQ,EACR,cAAc,EACd,uCAAuC,QAAQ,EAAE,EACjD,eAAe,EACf,aAAa,EACb;gBACE,IAAI,EAAE,gBAAgB;gBACtB,UAAU,EAAE;oBACV,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;iBAC1D;aACF,EACD,CAAC,EACD,CAAC,CACF,CACF,CAAC;QACJ,CAAC;QAGD,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CACtC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CACpD,CAAC;QAEF,IAAI,iBAAiB,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;YAChE,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,aAAa,CAChB,OAAO,EACP,QAAQ,EACR,cAAc,EACd,iCAAiC,QAAQ,EAAE,EAC3C,iBAAiB,EACjB,OAAO,EACP;gBACE,IAAI,EAAE,eAAe;gBACrB,UAAU,EAAE;oBACV,QAAQ,EAAE,iBAAiB;oBAC3B,sBAAsB,EAAE,sCAAsC;iBAC/D;aACF,EACD,CAAC,EACD,CAAC,CACF,CACF,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAKO,2BAA2B,CACjC,OAAe,EACf,QAAgB,EAChB,OAA6B;QAE7B,MAAM,QAAQ,GAAqB,EAAE,CAAC;QAGtC,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,YAAY,IAAI,GAAG,CAAC,CAAC;QAClF,IAAI,iBAAiB,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAC5D,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC;YACjG,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,MAAM,CACjD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAC1F,CAAC;YAEF,IAAI,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;gBACjE,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,aAAa,CAChB,OAAO,EACP,QAAQ,EACR,cAAc,EACd,2EAA2E,QAAQ,EAAE,EACrF,kBAAkB,EAClB,iBAAiB,EACjB;oBACE,IAAI,EAAE,cAAc;oBACpB,UAAU,EAAE;wBACV,mBAAmB,EAAE,GAAG;wBACxB,eAAe,EAAE,GAAG;qBACrB;iBACF,EACD,kBAAkB,CAAC,MAAM,EACzB,kBAAkB,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,CACrD,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAKD,WAAW,CAAC,QAAiD;QAC3D,MAAM,YAAY,GAAkB;YAClC,GAAG,QAAQ;YACX,EAAE,EAAE,MAAM,EAAE;YACZ,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAGxD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE1C,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC;IACtB,CAAC;IAKD,WAAW,CACT,OAAe,EACf,MAIC;QAED,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEhD,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1D,CAAC;YACD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClE,CAAC;YACD,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBACvC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,aAAc,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAKD,kBAAkB,CAChB,OAAe,EACf,QAAgB,EAChB,cAA0C;QAE1C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;YACzC,QAAQ;YACR,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;SACzC,CAAC,CAAC;QAGH,MAAM,QAAQ,GAAG,cAAc;YAC7B,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,KAAK,cAAc,CAAC;YACtE,CAAC,CAAC,QAAQ,CAAC;QAGb,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC5B,MAAM,MAAM,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC;YAC5C,MAAM,MAAM,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC;YAC5C,OAAO,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAKD,aAAa,CAAC,SAAiB,EAAE,OAAgB;QAC/C,KAAK,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/D,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;YAC5D,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,gBAAgB,IAAI,CAAC,CAAC;gBAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,OAAO,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC;gBACtF,OAAO,CAAC,WAAW,GAAG,OAAO;oBAC3B,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,gBAAgB;oBAC/C,CAAC,CAAC,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;gBAI5C,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;gBACnF,OAAO,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;gBAE/B,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE;oBAC9B,SAAS;oBACT,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;oBAC1C,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,UAAU,EAAE,OAAO,CAAC,UAAU;iBAC/B,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAIO,aAAa,CAAC,OAAe,EAAE,WAA6B;QAClE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;QAC7C,QAAQ,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QAG9B,IAAI,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAEtD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAMO,kBAAkB,CAAC,OAAe;QACxC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAC5E,OAAO;QACT,CAAC;QAGD,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEpC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE;YACzC,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB;YACrC,OAAO,EAAE,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB;SAC/D,CAAC,CAAC;IACL,CAAC;IAEO,eAAe,CACrB,OAA6B;QAE7B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAgC,CAAC;QAEvD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAClC,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAKO,eAAe,CAAC,MAAgB;QACtC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE1C,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;YAC5B,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;YACrC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IAEO,aAAa,CAAC,OAA6B;QACjD,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;IAEO,iBAAiB,CAAC,OAA6B;QACrD,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9D,CAAC;IAEO,cAAc,CAAC,OAA6B;QAClD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAGpE,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7C,MAAM,CAAC,KAAK,CAAC,mDAAmD,EAAE;gBAChE,UAAU,EAAE,MAAM,CAAC,MAAM;aAC1B,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QAC/C,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAEO,eAAe,CAAC,OAA6B;QACnD,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QAEvF,IAAI,WAAW,GAAG,IAAI,CAAC,2BAA2B;YAAE,OAAO,KAAK,CAAC;QACjE,IAAI,WAAW,GAAG,IAAI,CAAC,8BAA8B;YAAE,OAAO,QAAQ,CAAC;QACvE,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,mBAAmB,CAAC,gBAAwB,EAAE,YAAoB;QAGxE,MAAM,UAAU,GAAG,gBAAgB,GAAG,YAAY,CAAC;QACnD,MAAM,CAAC,GAAG,YAAY,CAAC;QAGvB,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAC;QAC3E,MAAM,eAAe,GAAG,UAAU,CAAC;QAEnC,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,eAAe,EAAE,GAAG,CAAC,CAAC;IAC1D,CAAC;IAKD,aAAa,CAAC,OAAe;QAC3B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/C,CAAC;IAKD,qBAAqB;QACnB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IAQD,KAAK,CAAC,0BAA0B,CAAC,OAAe;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE5D,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,mDAAmD,EAAE;gBAChE,OAAO;gBACP,KAAK,EAAE,OAAO,CAAC,MAAM;gBACrB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;aACtC,CAAC,CAAC;YACH,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,kBAAkB,GAAwB,EAAE,CAAC;QAGnD,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEpD,KAAK,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;YAE9D,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YAGrD,MAAM,iBAAiB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC/D,MAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;YAElE,IACE,iBAAiB,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe;gBACvD,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAC/C,CAAC;gBACD,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;gBAE/F,kBAAkB,CAAC,IAAI,CAAC;oBACtB,EAAE,EAAE,MAAM,EAAE;oBACZ,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,oCAAoC,QAAQ,EAAE;oBAC3D,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC;oBAClF,YAAY,EAAE,iBAAiB,CAAC,MAAM;oBACtC,YAAY,EAAE,WAAW;oBACzB,kBAAkB,EAAE,WAAW;oBAC/B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,OAAO,EAAE;wBACP,UAAU,EAAE,OAAO;wBACnB,SAAS,EAAE,QAAQ;wBACnB,UAAU;qBACX;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAGD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QAEzD,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE;YAClD,OAAO;YACP,aAAa,EAAE,kBAAkB,CAAC,MAAM;SACzC,CAAC,CAAC;QAEH,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IASD,wBAAwB,CACtB,OAAe,EACf,OAA+B;QAG/B,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAa,CAAC;QACrF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YACjE,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;YACvE,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE5D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,SAAS,CAAC;QACnB,CAAC;QAGD,MAAM,UAAU,GAA4B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9D,EAAE,EAAE,CAAC,CAAC,WAAW;YACjB,UAAU,EAAE;gBACV,QAAQ,EAAE,CAAC,CAAC,YAAY;gBACxB,KAAK,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;oBACtD,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;oBAC3B,CAAC,CAAC,CAAC;gBACL,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;oBACzC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI;oBACZ,CAAC,CAAC,CAAC;gBACL,YAAY,EAAE,CAAC,CAAC,gBAAgB;aACjC;YACD,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACrB,CAAC,CAAC,CAAC;QAGJ,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAG7E,MAAM,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAE3E,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE;gBACzC,OAAO;gBACP,WAAW,EAAE,IAAI,CAAC,EAAE;gBACpB,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAQD,cAAc,CAAC,SAAiB;QAE9B,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,CAAC;YACpE,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;YACzD,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QAChE,OAAO,SAAS,CAAC;IACnB,CAAC;IAQD,KAAK,CAAC,kBAAkB,CAAC,OAAe;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YACzD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAQD,mBAAmB,CAAC,OAAuB;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAEhC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;QAG7C,MAAM,oBAAoB,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;QAE5E,IAAI,oBAAoB,KAAK,CAAC,CAAC,EAAE,CAAC;YAChC,MAAM,eAAe,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAAC;YAGvD,MAAM,iBAAiB,GACrB,eAAe,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW;gBACnD,eAAe,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU;gBACjD,eAAe,CAAC,gBAAgB,KAAK,OAAO,CAAC,gBAAgB;gBAC7D,eAAe,CAAC,YAAY,KAAK,OAAO,CAAC,YAAY;gBACrD,eAAe,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC;YAEtD,IAAI,iBAAiB,EAAE,CAAC;gBAEtB,QAAQ,CAAC,oBAAoB,CAAC,GAAG;oBAC/B,GAAG,OAAO;oBACV,SAAS,EAAE,eAAe,CAAC,SAAS;oBACpC,SAAS,EAAE,IAAI,IAAI,EAAE;iBACtB,CAAC;gBAEF,MAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE;oBACxD,SAAS,EAAE,OAAO,CAAC,EAAE;oBACrB,OAAO;oBACP,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,aAAa,EAAE,eAAe,CAAC,UAAU;oBACzC,aAAa,EAAE,OAAO,CAAC,UAAU;oBACjC,mBAAmB,EAAE,eAAe,CAAC,gBAAgB;oBACrD,mBAAmB,EAAE,OAAO,CAAC,gBAAgB;iBAC9C,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBAEN,MAAM,CAAC,KAAK,CAAC,8DAA8D,EAAE;oBAC3E,SAAS,EAAE,OAAO,CAAC,EAAE;oBACrB,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;YAED,OAAO;QACT,CAAC;QAGD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEvB,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE;YACtC,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,OAAO;YACP,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC,CAAC;QAGH,IAAI,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;YACtD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAE/E,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE;gBACzC,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB;gBACrC,OAAO,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB;aAC3D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IASD,KAAK,CAAC,UAAU;QAEd,IAAI,eAAe,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC3C,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,eAAe,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC1E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QACD,IAAI,eAAe,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC3C,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,eAAe,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC1E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAKD,KAAK,CAAC,KAAK;QAET,eAAe,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QACtC,eAAe,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAEtC,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1D,eAAe,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1D,eAAe,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;QAC5D,CAAC;QAGD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAKD,KAAK,CAAC,iBAAiB,CAAC,WAMvB;QAEC,IAAI,CAAC,WAAW,CAAC;YACf,WAAW,EAAE,QAAQ,IAAI,CAAC,GAAG,EAAE,EAAE;YACjC,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;YACnD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,QAAQ,EAAE,WAAW,CAAC,QAAQ;SAC/B,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAKD,KAAK,CAAC,eAAe;QAEnB,MAAM,WAAW,GAAmD,EAAE,CAAC;QAEvE,KAAK,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YAE9D,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkD,CAAC;YAChF,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC;YAE1C,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;gBAC9B,MAAM,UAAU,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAG7C,IAAI,QAAQ,GAAG,SAAS,CAAC;gBAEzB,IAAI,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC9E,QAAQ,GAAG,gBAAgB,CAAC;gBAC9B,CAAC;qBAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC7E,QAAQ,GAAG,YAAY,CAAC;gBAC1B,CAAC;qBAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBAClF,QAAQ,GAAG,eAAe,CAAC;gBAC7B,CAAC;qBAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC5E,QAAQ,GAAG,kBAAkB,CAAC;gBAChC,CAAC;gBAED,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACjC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC3D,CAAC;gBAED,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;gBAC3C,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACjC,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,CAAC;YAGD,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;gBAGxD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;gBAGpD,IAAI,WAAW,GAAG,EAAE,CAAC;gBACrB,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;oBAClC,WAAW,GAAG,8CAA8C,CAAC;gBAC/D,CAAC;qBAAM,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;oBACrC,WAAW,GAAG,iCAAiC,CAAC;gBAClD,CAAC;qBAAM,IAAI,QAAQ,KAAK,eAAe,EAAE,CAAC;oBACxC,WAAW,GAAG,4CAA4C,CAAC;gBAC7D,CAAC;qBAAM,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;oBAC3C,WAAW,GAAG,6BAA6B,CAAC;gBAC9C,CAAC;qBAAM,CAAC;oBACN,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACnC,CAAC;gBAED,WAAW,CAAC,IAAI,CAAC;oBACf,OAAO,EAAE,WAAW;oBACpB,UAAU;iBACX,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAKD,MAAM,CAAC,cAAc;QACnB,eAAe,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QACtC,eAAe,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IACxC,CAAC;IAKD,KAAK,CAAC,OAAO;QACX,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC7C,CAAC"}
|