agentic-flow 2.0.3 → 2.0.4
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/.claude/agents/test-neural.md +14 -0
- package/.claude/settings.json +9 -133
- package/README.md +624 -1776
- package/dist/.tsbuildinfo +1 -1
- package/dist/billing/mcp/tools.js +0 -1
- package/dist/billing/mcp/tools.js.map +1 -1
- package/dist/cli/commands/hooks.d.ts.map +1 -1
- package/dist/cli/commands/hooks.js +4 -79
- package/dist/cli/commands/hooks.js.map +1 -1
- package/dist/cli-proxy.js +1 -89
- package/dist/cli-proxy.js.map +1 -1
- package/dist/core/agentdb-fast.js +3 -3
- package/dist/core/agentdb-fast.js.map +1 -1
- package/dist/core/agentdb-wrapper-enhanced.d.ts.map +1 -1
- package/dist/core/agentdb-wrapper-enhanced.js +4 -20
- package/dist/core/agentdb-wrapper-enhanced.js.map +1 -1
- package/dist/core/agentdb-wrapper.d.ts +2 -3
- package/dist/core/agentdb-wrapper.d.ts.map +1 -1
- package/dist/core/agentdb-wrapper.js +1 -15
- package/dist/core/agentdb-wrapper.js.map +1 -1
- package/dist/core/attention-native.d.ts +0 -4
- package/dist/core/attention-native.d.ts.map +1 -1
- package/dist/core/attention-native.js +2 -14
- package/dist/core/attention-native.js.map +1 -1
- package/dist/federation/SecurityManager.d.ts +2 -11
- package/dist/federation/SecurityManager.d.ts.map +1 -1
- package/dist/federation/SecurityManager.js +17 -50
- package/dist/federation/SecurityManager.js.map +1 -1
- package/dist/federation/integrations/supabase-adapter-debug.js +3 -3
- package/dist/federation/integrations/supabase-adapter-debug.js.map +1 -1
- package/dist/hooks/swarm-learning-optimizer.js +5 -5
- package/dist/hooks/swarm-learning-optimizer.js.map +1 -1
- package/dist/intelligence/IntelligenceStore.d.ts +26 -35
- package/dist/intelligence/IntelligenceStore.d.ts.map +1 -1
- package/dist/intelligence/IntelligenceStore.js +123 -308
- package/dist/intelligence/IntelligenceStore.js.map +1 -1
- package/dist/intelligence/RuVectorIntelligence.d.ts +1 -26
- package/dist/intelligence/RuVectorIntelligence.d.ts.map +1 -1
- package/dist/intelligence/RuVectorIntelligence.js +10 -49
- package/dist/intelligence/RuVectorIntelligence.js.map +1 -1
- package/dist/intelligence/agent-booster-enhanced.d.ts +0 -1
- package/dist/intelligence/agent-booster-enhanced.d.ts.map +1 -1
- package/dist/intelligence/agent-booster-enhanced.js +3 -24
- package/dist/intelligence/agent-booster-enhanced.js.map +1 -1
- package/dist/intelligence/index.d.ts +3 -29
- package/dist/intelligence/index.d.ts.map +1 -1
- package/dist/intelligence/index.js +3 -13
- package/dist/intelligence/index.js.map +1 -1
- package/dist/mcp/claudeFlowSdkServer.d.ts.map +1 -1
- package/dist/mcp/claudeFlowSdkServer.js +3 -9
- package/dist/mcp/claudeFlowSdkServer.js.map +1 -1
- package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.js +5 -5
- package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.js.map +1 -1
- package/dist/mcp/fastmcp/tools/swarm/init.d.ts.map +1 -1
- package/dist/mcp/fastmcp/tools/swarm/init.js +7 -36
- package/dist/mcp/fastmcp/tools/swarm/init.js.map +1 -1
- package/dist/mcp/fastmcp/tools/swarm/spawn.d.ts.map +1 -1
- package/dist/mcp/fastmcp/tools/swarm/spawn.js +8 -47
- package/dist/mcp/fastmcp/tools/swarm/spawn.js.map +1 -1
- package/dist/mcp/tools/agent-booster-tools.d.ts +1 -1
- package/dist/mcp/tools/agent-booster-tools.d.ts.map +1 -1
- package/dist/mcp/tools/agent-booster-tools.js +4 -10
- package/dist/mcp/tools/agent-booster-tools.js.map +1 -1
- package/dist/mcp/tools/sona-tools.d.ts.map +1 -1
- package/dist/mcp/tools/sona-tools.js +0 -6
- package/dist/mcp/tools/sona-tools.js.map +1 -1
- package/dist/optimizations/agent-booster-migration.d.ts.map +1 -1
- package/dist/optimizations/agent-booster-migration.js +2 -5
- package/dist/optimizations/agent-booster-migration.js.map +1 -1
- package/dist/proxy/anthropic-to-openrouter.js.map +1 -1
- package/dist/proxy/anthropic-to-requesty.js.map +1 -1
- package/dist/proxy/quic-proxy.d.ts +1 -0
- package/dist/proxy/quic-proxy.d.ts.map +1 -1
- package/dist/proxy/quic-proxy.js +2 -2
- package/dist/proxy/quic-proxy.js.map +1 -1
- package/dist/reasoningbank/AdvancedMemory.js +1 -1
- package/dist/reasoningbank/AdvancedMemory.js.map +1 -1
- package/dist/reasoningbank/HybridBackend.d.ts.map +1 -1
- package/dist/reasoningbank/HybridBackend.js +5 -2
- package/dist/reasoningbank/HybridBackend.js.map +1 -1
- package/dist/reasoningbank/backend-selector.d.ts +1 -11
- package/dist/reasoningbank/backend-selector.d.ts.map +1 -1
- package/dist/reasoningbank/backend-selector.js +5 -45
- package/dist/reasoningbank/backend-selector.js.map +1 -1
- package/dist/reasoningbank/core/consolidate.d.ts.map +1 -1
- package/dist/reasoningbank/core/consolidate.js +45 -113
- package/dist/reasoningbank/core/consolidate.js.map +1 -1
- package/dist/reasoningbank/index-new.d.ts +6 -1
- package/dist/reasoningbank/index-new.d.ts.map +1 -1
- package/dist/reasoningbank/index-new.js +6 -1
- package/dist/reasoningbank/index-new.js.map +1 -1
- package/dist/reasoningbank/index.d.ts +6 -2
- package/dist/reasoningbank/index.d.ts.map +1 -1
- package/dist/reasoningbank/index.js +6 -2
- package/dist/reasoningbank/index.js.map +1 -1
- package/dist/reasoningbank/utils/embeddings.d.ts +0 -1
- package/dist/reasoningbank/utils/embeddings.d.ts.map +1 -1
- package/dist/reasoningbank/utils/embeddings.js +26 -53
- package/dist/reasoningbank/utils/embeddings.js.map +1 -1
- package/dist/router/index.d.ts +17 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js +19 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router/providers/onnx-local-optimized.d.ts +0 -2
- package/dist/router/providers/onnx-local-optimized.d.ts.map +1 -1
- package/dist/router/providers/onnx-local-optimized.js +0 -10
- package/dist/router/providers/onnx-local-optimized.js.map +1 -1
- package/dist/router/providers/onnx-local.d.ts +0 -1
- package/dist/router/providers/onnx-local.d.ts.map +1 -1
- package/dist/router/providers/onnx-local.js +5 -22
- package/dist/router/providers/onnx-local.js.map +1 -1
- package/dist/services/embedding-service.js.map +1 -1
- package/dist/services/sona-agent-training.d.ts +0 -1
- package/dist/services/sona-agent-training.d.ts.map +1 -1
- package/dist/services/sona-agent-training.js.map +1 -1
- package/dist/services/sona-agentdb-integration.d.ts.map +1 -1
- package/dist/services/sona-agentdb-integration.js +6 -9
- package/dist/services/sona-agentdb-integration.js.map +1 -1
- package/dist/services/sona-service.d.ts.map +1 -1
- package/dist/services/sona-service.js +5 -6
- package/dist/services/sona-service.js.map +1 -1
- package/dist/utils/cli.d.ts +1 -1
- package/dist/utils/cli.d.ts.map +1 -1
- package/dist/utils/cli.js +0 -21
- package/dist/utils/cli.js.map +1 -1
- package/package.json +7 -19
- package/scripts/postinstall.js +4 -45
- package/.claude/agents/.claude-flow/metrics/agent-metrics.json +0 -1
- package/.claude/agents/.claude-flow/metrics/performance.json +0 -87
- package/.claude/agents/.claude-flow/metrics/task-metrics.json +0 -10
- package/.claude/skills/.claude-flow/metrics/agent-metrics.json +0 -1
- package/.claude/skills/.claude-flow/metrics/performance.json +0 -87
- package/.claude/skills/.claude-flow/metrics/task-metrics.json +0 -10
- package/.claude/skills/agentic-flow-quickstart/skill.md +0 -69
- package/.claude/skills/hooks-automation/skill.md +0 -155
- package/.claude/skills/memory-patterns/skill.md +0 -110
- package/.claude/skills/skill-builder/.claude-flow/metrics/agent-metrics.json +0 -1
- package/.claude/skills/skill-builder/.claude-flow/metrics/performance.json +0 -87
- package/.claude/skills/skill-builder/.claude-flow/metrics/task-metrics.json +0 -10
- package/.claude/skills/sparc-methodology/skill.md +0 -137
- package/.claude/skills/swarm-coordination/skill.md +0 -94
- package/.claude/skills/worker-benchmarks/skill.md +0 -135
- package/.claude/skills/worker-integration/skill.md +0 -154
- package/.claude/statusline.mjs +0 -109
- package/.claude/statusline.sh +0 -71
- package/dist/agentdb/benchmarks/comprehensive-benchmark.js +0 -664
- package/dist/agentdb/benchmarks/frontier-benchmark.js +0 -419
- package/dist/agentdb/benchmarks/reflexion-benchmark.js +0 -370
- package/dist/agentdb/cli/agentdb-cli.js +0 -717
- package/dist/agentdb/controllers/CausalMemoryGraph.js +0 -322
- package/dist/agentdb/controllers/CausalRecall.js +0 -281
- package/dist/agentdb/controllers/EmbeddingService.d.ts +0 -37
- package/dist/agentdb/controllers/EmbeddingService.d.ts.map +0 -1
- package/dist/agentdb/controllers/EmbeddingService.js +0 -119
- package/dist/agentdb/controllers/EmbeddingService.js.map +0 -1
- package/dist/agentdb/controllers/ExplainableRecall.js +0 -387
- package/dist/agentdb/controllers/NightlyLearner.js +0 -382
- package/dist/agentdb/controllers/ReflexionMemory.js +0 -239
- package/dist/agentdb/controllers/SkillLibrary.js +0 -276
- package/dist/agentdb/controllers/frontier-index.js +0 -9
- package/dist/agentdb/controllers/index.js +0 -8
- package/dist/agentdb/optimizations/BatchOperations.js +0 -198
- package/dist/agentdb/optimizations/QueryOptimizer.js +0 -225
- package/dist/agentdb/optimizations/index.js +0 -7
- package/dist/agentdb/tests/frontier-features.test.js +0 -665
- package/dist/benchmarks/embeddings-benchmark.d.ts +0 -38
- package/dist/benchmarks/embeddings-benchmark.d.ts.map +0 -1
- package/dist/benchmarks/embeddings-benchmark.js +0 -282
- package/dist/benchmarks/embeddings-benchmark.js.map +0 -1
- package/dist/cli/commands/embeddings.d.ts +0 -12
- package/dist/cli/commands/embeddings.d.ts.map +0 -1
- package/dist/cli/commands/embeddings.js +0 -386
- package/dist/cli/commands/embeddings.js.map +0 -1
- package/dist/cli/commands/init.d.ts +0 -8
- package/dist/cli/commands/init.d.ts.map +0 -1
- package/dist/cli/commands/init.js +0 -514
- package/dist/cli/commands/init.js.map +0 -1
- package/dist/cli/commands/workers.d.ts +0 -9
- package/dist/cli/commands/workers.d.ts.map +0 -1
- package/dist/cli/commands/workers.js +0 -991
- package/dist/cli/commands/workers.js.map +0 -1
- package/dist/cli/skills-manager.js +0 -1297
- package/dist/cli/update-message.js +0 -175
- package/dist/embeddings/index.d.ts +0 -17
- package/dist/embeddings/index.d.ts.map +0 -1
- package/dist/embeddings/index.js +0 -17
- package/dist/embeddings/index.js.map +0 -1
- package/dist/embeddings/neural-substrate.d.ts +0 -206
- package/dist/embeddings/neural-substrate.d.ts.map +0 -1
- package/dist/embeddings/neural-substrate.js +0 -629
- package/dist/embeddings/neural-substrate.js.map +0 -1
- package/dist/embeddings/optimized-embedder.d.ts +0 -103
- package/dist/embeddings/optimized-embedder.d.ts.map +0 -1
- package/dist/embeddings/optimized-embedder.js +0 -730
- package/dist/embeddings/optimized-embedder.js.map +0 -1
- package/dist/examples/embedding-geometry.d.ts +0 -105
- package/dist/examples/embedding-geometry.d.ts.map +0 -1
- package/dist/examples/embedding-geometry.js +0 -528
- package/dist/examples/embedding-geometry.js.map +0 -1
- package/dist/memory/SharedMemoryPool.d.ts +0 -129
- package/dist/memory/SharedMemoryPool.d.ts.map +0 -1
- package/dist/memory/SharedMemoryPool.js +0 -243
- package/dist/memory/SharedMemoryPool.js.map +0 -1
- package/dist/memory/index.d.ts +0 -8
- package/dist/memory/index.d.ts.map +0 -1
- package/dist/memory/index.js +0 -7
- package/dist/memory/index.js.map +0 -1
- package/dist/proxy/http3-proxy-old.js +0 -331
- package/dist/proxy/proxy/anthropic-to-gemini.js +0 -439
- package/dist/proxy/utils/logger.js +0 -59
- package/dist/reasoningbank/agentdb-adapter.js +0 -125
- package/dist/reasoningbank/core/database.js +0 -250
- package/dist/reasoningbank/core/memory-engine.js +0 -335
- package/dist/swarm/ipfs-swarm.d.ts +0 -265
- package/dist/swarm/ipfs-swarm.d.ts.map +0 -1
- package/dist/swarm/ipfs-swarm.js +0 -508
- package/dist/swarm/ipfs-swarm.js.map +0 -1
- package/dist/swarm/p2p-free-swarm.d.ts +0 -344
- package/dist/swarm/p2p-free-swarm.d.ts.map +0 -1
- package/dist/swarm/p2p-free-swarm.js +0 -603
- package/dist/swarm/p2p-free-swarm.js.map +0 -1
- package/dist/swarm/real-p2p-swarm.d.ts +0 -183
- package/dist/swarm/real-p2p-swarm.d.ts.map +0 -1
- package/dist/swarm/real-p2p-swarm.js +0 -469
- package/dist/swarm/real-p2p-swarm.js.map +0 -1
- package/dist/utils/adaptive-pool-sizing.js +0 -414
- package/dist/utils/agentdbCommands.js +0 -175
- package/dist/utils/circular-rate-limiter.js +0 -391
- package/dist/utils/dynamic-compression.js +0 -298
- package/dist/utils/http2-multiplexing.js +0 -319
- package/dist/utils/index.d.ts +0 -6
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -6
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/lazy-auth.js +0 -311
- package/dist/utils/model-cache.d.ts +0 -61
- package/dist/utils/model-cache.d.ts.map +0 -1
- package/dist/utils/model-cache.js +0 -176
- package/dist/utils/model-cache.js.map +0 -1
- package/dist/utils/server-push.js +0 -251
- package/dist/utils/suppress-warnings.d.ts +0 -19
- package/dist/utils/suppress-warnings.d.ts.map +0 -1
- package/dist/utils/suppress-warnings.js +0 -59
- package/dist/utils/suppress-warnings.js.map +0 -1
- package/dist/utils/zero-copy-buffer.js +0 -286
- package/dist/workers/consolidated-phases.d.ts +0 -40
- package/dist/workers/consolidated-phases.d.ts.map +0 -1
- package/dist/workers/consolidated-phases.js +0 -497
- package/dist/workers/consolidated-phases.js.map +0 -1
- package/dist/workers/custom-worker-config.d.ts +0 -133
- package/dist/workers/custom-worker-config.d.ts.map +0 -1
- package/dist/workers/custom-worker-config.js +0 -215
- package/dist/workers/custom-worker-config.js.map +0 -1
- package/dist/workers/custom-worker-factory.d.ts +0 -89
- package/dist/workers/custom-worker-factory.d.ts.map +0 -1
- package/dist/workers/custom-worker-factory.js +0 -404
- package/dist/workers/custom-worker-factory.js.map +0 -1
- package/dist/workers/dispatch-service.d.ts +0 -123
- package/dist/workers/dispatch-service.d.ts.map +0 -1
- package/dist/workers/dispatch-service.js +0 -1024
- package/dist/workers/dispatch-service.js.map +0 -1
- package/dist/workers/hooks-integration.d.ts +0 -79
- package/dist/workers/hooks-integration.d.ts.map +0 -1
- package/dist/workers/hooks-integration.js +0 -286
- package/dist/workers/hooks-integration.js.map +0 -1
- package/dist/workers/index.d.ts +0 -42
- package/dist/workers/index.d.ts.map +0 -1
- package/dist/workers/index.js +0 -52
- package/dist/workers/index.js.map +0 -1
- package/dist/workers/mcp-tools.d.ts +0 -56
- package/dist/workers/mcp-tools.d.ts.map +0 -1
- package/dist/workers/mcp-tools.js +0 -359
- package/dist/workers/mcp-tools.js.map +0 -1
- package/dist/workers/phase-executors.d.ts +0 -22
- package/dist/workers/phase-executors.d.ts.map +0 -1
- package/dist/workers/phase-executors.js +0 -445
- package/dist/workers/phase-executors.js.map +0 -1
- package/dist/workers/resource-governor.d.ts +0 -75
- package/dist/workers/resource-governor.d.ts.map +0 -1
- package/dist/workers/resource-governor.js +0 -187
- package/dist/workers/resource-governor.js.map +0 -1
- package/dist/workers/ruvector-integration.d.ts +0 -163
- package/dist/workers/ruvector-integration.d.ts.map +0 -1
- package/dist/workers/ruvector-integration.js +0 -543
- package/dist/workers/ruvector-integration.js.map +0 -1
- package/dist/workers/ruvector-native-integration.d.ts +0 -91
- package/dist/workers/ruvector-native-integration.d.ts.map +0 -1
- package/dist/workers/ruvector-native-integration.js +0 -254
- package/dist/workers/ruvector-native-integration.js.map +0 -1
- package/dist/workers/trigger-detector.d.ts +0 -68
- package/dist/workers/trigger-detector.d.ts.map +0 -1
- package/dist/workers/trigger-detector.js +0 -281
- package/dist/workers/trigger-detector.js.map +0 -1
- package/dist/workers/types.d.ts +0 -145
- package/dist/workers/types.d.ts.map +0 -1
- package/dist/workers/types.js +0 -6
- package/dist/workers/types.js.map +0 -1
- package/dist/workers/worker-agent-integration.d.ts +0 -140
- package/dist/workers/worker-agent-integration.d.ts.map +0 -1
- package/dist/workers/worker-agent-integration.js +0 -471
- package/dist/workers/worker-agent-integration.js.map +0 -1
- package/dist/workers/worker-benchmarks.d.ts +0 -88
- package/dist/workers/worker-benchmarks.d.ts.map +0 -1
- package/dist/workers/worker-benchmarks.js +0 -452
- package/dist/workers/worker-benchmarks.js.map +0 -1
- package/dist/workers/worker-registry.d.ts +0 -85
- package/dist/workers/worker-registry.d.ts.map +0 -1
- package/dist/workers/worker-registry.js +0 -547
- package/dist/workers/worker-registry.js.map +0 -1
- package/docs/.claude-flow/metrics/agent-metrics.json +0 -1
- package/docs/.claude-flow/metrics/performance.json +0 -87
- package/docs/.claude-flow/metrics/task-metrics.json +0 -10
- package/docs/embeddings/EMBEDDING_GEOMETRY.md +0 -935
- /package/.claude/agents/analysis/{analyze-code-quality.md → code-review/analyze-code-quality.md} +0 -0
- /package/.claude/agents/architecture/{arch-system-design.md → system-design/arch-system-design.md} +0 -0
- /package/.claude/agents/data/{data-ml-model.md → ml/data-ml-model.md} +0 -0
- /package/.claude/agents/development/{dev-backend-api.md → backend/dev-backend-api.md} +0 -0
- /package/.claude/agents/devops/{ops-cicd-github.md → ci-cd/ops-cicd-github.md} +0 -0
- /package/.claude/agents/documentation/{docs-api-openapi.md → api-docs/docs-api-openapi.md} +0 -0
- /package/.claude/agents/specialized/{spec-mobile-react-native.md → mobile/spec-mobile-react-native.md} +0 -0
- /package/.claude/agents/testing/{tdd-london-swarm.md → unit/tdd-london-swarm.md} +0 -0
- /package/.claude/agents/testing/{production-validator.md → validation/production-validator.md} +0 -0
|
@@ -1,471 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Worker-Agent Integration Layer
|
|
3
|
-
*
|
|
4
|
-
* Bridges the worker system with agent execution through:
|
|
5
|
-
* - Pattern sharing via ReasoningBank
|
|
6
|
-
* - Metrics-based capability matching
|
|
7
|
-
* - Self-learning feedback loops
|
|
8
|
-
* - Performance-aware agent selection
|
|
9
|
-
*/
|
|
10
|
-
import { modelCache } from '../utils/model-cache.js';
|
|
11
|
-
// ============================================================================
|
|
12
|
-
// Agent Capability Registry
|
|
13
|
-
// ============================================================================
|
|
14
|
-
const AGENT_CAPABILITIES = new Map([
|
|
15
|
-
['researcher', {
|
|
16
|
-
name: 'researcher',
|
|
17
|
-
description: 'Deep research and pattern discovery',
|
|
18
|
-
triggers: ['ultralearn', 'deepdive', 'map'],
|
|
19
|
-
priority: 'high',
|
|
20
|
-
memoryPatterns: ['research/*', 'patterns/*', 'context/*'],
|
|
21
|
-
benchmarkThresholds: [
|
|
22
|
-
{ metric: 'p95_latency', target: 500, unit: 'ms', direction: 'below' },
|
|
23
|
-
{ metric: 'memory_mb', target: 256, unit: 'MB', direction: 'below' }
|
|
24
|
-
]
|
|
25
|
-
}],
|
|
26
|
-
['coder', {
|
|
27
|
-
name: 'coder',
|
|
28
|
-
description: 'Code implementation and optimization',
|
|
29
|
-
triggers: ['optimize', 'refactor'],
|
|
30
|
-
priority: 'high',
|
|
31
|
-
memoryPatterns: ['code/*', 'implementations/*', 'patterns/code/*'],
|
|
32
|
-
benchmarkThresholds: [
|
|
33
|
-
{ metric: 'p95_latency', target: 300, unit: 'ms', direction: 'below' },
|
|
34
|
-
{ metric: 'quality_score', target: 0.85, unit: '%', direction: 'above' }
|
|
35
|
-
]
|
|
36
|
-
}],
|
|
37
|
-
['tester', {
|
|
38
|
-
name: 'tester',
|
|
39
|
-
description: 'Test coverage and gap analysis',
|
|
40
|
-
triggers: ['testgaps', 'audit'],
|
|
41
|
-
priority: 'medium',
|
|
42
|
-
memoryPatterns: ['tests/*', 'coverage/*', 'quality/*'],
|
|
43
|
-
benchmarkThresholds: [
|
|
44
|
-
{ metric: 'coverage', target: 80, unit: '%', direction: 'above' },
|
|
45
|
-
{ metric: 'p95_latency', target: 400, unit: 'ms', direction: 'below' }
|
|
46
|
-
]
|
|
47
|
-
}],
|
|
48
|
-
['security-analyst', {
|
|
49
|
-
name: 'security-analyst',
|
|
50
|
-
description: 'Security analysis and vulnerability detection',
|
|
51
|
-
triggers: ['audit', 'deepdive'],
|
|
52
|
-
priority: 'critical',
|
|
53
|
-
memoryPatterns: ['security/*', 'vulnerabilities/*', 'audit/*'],
|
|
54
|
-
benchmarkThresholds: [
|
|
55
|
-
{ metric: 'scan_coverage', target: 95, unit: '%', direction: 'above' },
|
|
56
|
-
{ metric: 'p95_latency', target: 1000, unit: 'ms', direction: 'below' }
|
|
57
|
-
]
|
|
58
|
-
}],
|
|
59
|
-
['performance-analyzer', {
|
|
60
|
-
name: 'performance-analyzer',
|
|
61
|
-
description: 'Performance analysis and optimization recommendations',
|
|
62
|
-
triggers: ['benchmark', 'optimize'],
|
|
63
|
-
priority: 'medium',
|
|
64
|
-
memoryPatterns: ['performance/*', 'metrics/*', 'benchmarks/*'],
|
|
65
|
-
benchmarkThresholds: [
|
|
66
|
-
{ metric: 'analysis_depth', target: 10, unit: 'ops/s', direction: 'above' }
|
|
67
|
-
]
|
|
68
|
-
}],
|
|
69
|
-
['documenter', {
|
|
70
|
-
name: 'documenter',
|
|
71
|
-
description: 'Documentation generation and maintenance',
|
|
72
|
-
triggers: ['document'],
|
|
73
|
-
priority: 'low',
|
|
74
|
-
memoryPatterns: ['docs/*', 'api/*', 'readme/*'],
|
|
75
|
-
benchmarkThresholds: [
|
|
76
|
-
{ metric: 'p95_latency', target: 600, unit: 'ms', direction: 'below' }
|
|
77
|
-
]
|
|
78
|
-
}]
|
|
79
|
-
]);
|
|
80
|
-
// ============================================================================
|
|
81
|
-
// Worker-Agent Mappings
|
|
82
|
-
// ============================================================================
|
|
83
|
-
const WORKER_AGENT_MAPPINGS = new Map([
|
|
84
|
-
['ultralearn', {
|
|
85
|
-
trigger: 'ultralearn',
|
|
86
|
-
recommendedAgents: ['researcher', 'coder'],
|
|
87
|
-
fallbackAgents: ['planner'],
|
|
88
|
-
pipelinePhases: ['file-discovery', 'pattern-discovery', 'vectorization', 'summarization'],
|
|
89
|
-
memoryKeyPattern: 'ultralearn/{topic}/{phase}'
|
|
90
|
-
}],
|
|
91
|
-
['optimize', {
|
|
92
|
-
trigger: 'optimize',
|
|
93
|
-
recommendedAgents: ['performance-analyzer', 'coder'],
|
|
94
|
-
fallbackAgents: ['researcher'],
|
|
95
|
-
pipelinePhases: ['static-analysis', 'performance-analysis', 'pattern-extraction'],
|
|
96
|
-
memoryKeyPattern: 'optimize/{topic}/{metric}'
|
|
97
|
-
}],
|
|
98
|
-
['audit', {
|
|
99
|
-
trigger: 'audit',
|
|
100
|
-
recommendedAgents: ['security-analyst', 'tester'],
|
|
101
|
-
fallbackAgents: ['reviewer'],
|
|
102
|
-
pipelinePhases: ['security-analysis', 'secret-detection', 'vulnerability-scan'],
|
|
103
|
-
memoryKeyPattern: 'audit/{topic}/{finding}'
|
|
104
|
-
}],
|
|
105
|
-
['benchmark', {
|
|
106
|
-
trigger: 'benchmark',
|
|
107
|
-
recommendedAgents: ['performance-analyzer'],
|
|
108
|
-
fallbackAgents: ['coder', 'tester'],
|
|
109
|
-
pipelinePhases: ['performance-analysis', 'metrics-collection', 'report-generation'],
|
|
110
|
-
memoryKeyPattern: 'benchmark/{topic}/{metric}'
|
|
111
|
-
}],
|
|
112
|
-
['testgaps', {
|
|
113
|
-
trigger: 'testgaps',
|
|
114
|
-
recommendedAgents: ['tester'],
|
|
115
|
-
fallbackAgents: ['coder'],
|
|
116
|
-
pipelinePhases: ['file-discovery', 'coverage-analysis', 'gap-detection'],
|
|
117
|
-
memoryKeyPattern: 'testgaps/{module}/{coverage}'
|
|
118
|
-
}],
|
|
119
|
-
['document', {
|
|
120
|
-
trigger: 'document',
|
|
121
|
-
recommendedAgents: ['documenter', 'researcher'],
|
|
122
|
-
fallbackAgents: ['coder'],
|
|
123
|
-
pipelinePhases: ['api-discovery', 'doc-generation', 'indexing'],
|
|
124
|
-
memoryKeyPattern: 'docs/{topic}/{section}'
|
|
125
|
-
}],
|
|
126
|
-
['deepdive', {
|
|
127
|
-
trigger: 'deepdive',
|
|
128
|
-
recommendedAgents: ['researcher', 'security-analyst'],
|
|
129
|
-
fallbackAgents: ['coder'],
|
|
130
|
-
pipelinePhases: ['call-graph', 'dependency-graph', 'trace-analysis'],
|
|
131
|
-
memoryKeyPattern: 'deepdive/{topic}/{level}'
|
|
132
|
-
}],
|
|
133
|
-
['refactor', {
|
|
134
|
-
trigger: 'refactor',
|
|
135
|
-
recommendedAgents: ['coder', 'reviewer'],
|
|
136
|
-
fallbackAgents: ['researcher'],
|
|
137
|
-
pipelinePhases: ['complexity-analysis', 'code-smell-detection', 'pattern-extraction'],
|
|
138
|
-
memoryKeyPattern: 'refactor/{topic}/{improvement}'
|
|
139
|
-
}],
|
|
140
|
-
['map', {
|
|
141
|
-
trigger: 'map',
|
|
142
|
-
recommendedAgents: ['researcher'],
|
|
143
|
-
fallbackAgents: ['coder'],
|
|
144
|
-
pipelinePhases: ['dependency-discovery', 'graph-build', 'indexing'],
|
|
145
|
-
memoryKeyPattern: 'map/{module}/{relationship}'
|
|
146
|
-
}],
|
|
147
|
-
['preload', {
|
|
148
|
-
trigger: 'preload',
|
|
149
|
-
recommendedAgents: ['researcher'],
|
|
150
|
-
fallbackAgents: [],
|
|
151
|
-
pipelinePhases: ['file-discovery', 'vectorization'],
|
|
152
|
-
memoryKeyPattern: 'preload/{context}/{file}'
|
|
153
|
-
}],
|
|
154
|
-
['predict', {
|
|
155
|
-
trigger: 'predict',
|
|
156
|
-
recommendedAgents: ['performance-analyzer'],
|
|
157
|
-
fallbackAgents: ['researcher'],
|
|
158
|
-
pipelinePhases: ['pattern-discovery', 'prediction'],
|
|
159
|
-
memoryKeyPattern: 'predict/{context}/{next}'
|
|
160
|
-
}],
|
|
161
|
-
['consolidate', {
|
|
162
|
-
trigger: 'consolidate',
|
|
163
|
-
recommendedAgents: ['researcher'],
|
|
164
|
-
fallbackAgents: [],
|
|
165
|
-
pipelinePhases: ['pattern-extraction', 'pattern-storage'],
|
|
166
|
-
memoryKeyPattern: 'consolidate/{session}/{pattern}'
|
|
167
|
-
}]
|
|
168
|
-
]);
|
|
169
|
-
// ============================================================================
|
|
170
|
-
// Performance Tracking
|
|
171
|
-
// ============================================================================
|
|
172
|
-
const agentPerformanceProfiles = new Map();
|
|
173
|
-
function updateAgentPerformance(agentName, latencyMs, success, memoryMB, quality) {
|
|
174
|
-
const existing = agentPerformanceProfiles.get(agentName);
|
|
175
|
-
const count = existing?.executionCount || 0;
|
|
176
|
-
// Exponential moving average
|
|
177
|
-
const alpha = 0.2;
|
|
178
|
-
if (existing) {
|
|
179
|
-
existing.avgLatencyMs = alpha * latencyMs + (1 - alpha) * existing.avgLatencyMs;
|
|
180
|
-
existing.p95LatencyMs = Math.max(latencyMs, existing.p95LatencyMs * 0.95);
|
|
181
|
-
existing.successRate = alpha * (success ? 1 : 0) + (1 - alpha) * existing.successRate;
|
|
182
|
-
existing.memoryUsageMB = alpha * memoryMB + (1 - alpha) * existing.memoryUsageMB;
|
|
183
|
-
existing.qualityScore = alpha * quality + (1 - alpha) * existing.qualityScore;
|
|
184
|
-
existing.executionCount = count + 1;
|
|
185
|
-
existing.lastExecuted = Date.now();
|
|
186
|
-
}
|
|
187
|
-
else {
|
|
188
|
-
agentPerformanceProfiles.set(agentName, {
|
|
189
|
-
agentName,
|
|
190
|
-
capabilities: AGENT_CAPABILITIES.get(agentName)?.triggers || [],
|
|
191
|
-
avgLatencyMs: latencyMs,
|
|
192
|
-
p95LatencyMs: latencyMs,
|
|
193
|
-
successRate: success ? 1 : 0,
|
|
194
|
-
memoryUsageMB: memoryMB,
|
|
195
|
-
qualityScore: quality,
|
|
196
|
-
executionCount: 1,
|
|
197
|
-
lastExecuted: Date.now()
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
// ============================================================================
|
|
202
|
-
// Worker-Agent Integration Manager
|
|
203
|
-
// ============================================================================
|
|
204
|
-
export class WorkerAgentIntegration {
|
|
205
|
-
memoryPatterns = new Map();
|
|
206
|
-
feedbackQueue = [];
|
|
207
|
-
/**
|
|
208
|
-
* Get recommended agents for a worker trigger
|
|
209
|
-
*/
|
|
210
|
-
getRecommendedAgents(trigger) {
|
|
211
|
-
const mapping = WORKER_AGENT_MAPPINGS.get(trigger);
|
|
212
|
-
if (!mapping) {
|
|
213
|
-
return {
|
|
214
|
-
primary: ['researcher'],
|
|
215
|
-
fallback: [],
|
|
216
|
-
phases: ['file-discovery', 'summarization'],
|
|
217
|
-
memoryPattern: `${trigger}/{topic}/{phase}`
|
|
218
|
-
};
|
|
219
|
-
}
|
|
220
|
-
// Sort by performance if we have data
|
|
221
|
-
const sortedPrimary = [...mapping.recommendedAgents].sort((a, b) => {
|
|
222
|
-
const profA = agentPerformanceProfiles.get(a);
|
|
223
|
-
const profB = agentPerformanceProfiles.get(b);
|
|
224
|
-
if (!profA)
|
|
225
|
-
return 1;
|
|
226
|
-
if (!profB)
|
|
227
|
-
return -1;
|
|
228
|
-
return profB.qualityScore - profA.qualityScore;
|
|
229
|
-
});
|
|
230
|
-
return {
|
|
231
|
-
primary: sortedPrimary,
|
|
232
|
-
fallback: mapping.fallbackAgents,
|
|
233
|
-
phases: mapping.pipelinePhases,
|
|
234
|
-
memoryPattern: mapping.memoryKeyPattern
|
|
235
|
-
};
|
|
236
|
-
}
|
|
237
|
-
/**
|
|
238
|
-
* Get agent capabilities for matching
|
|
239
|
-
*/
|
|
240
|
-
getAgentCapabilities(agentName) {
|
|
241
|
-
return AGENT_CAPABILITIES.get(agentName);
|
|
242
|
-
}
|
|
243
|
-
/**
|
|
244
|
-
* Find best agent for a given trigger based on performance history
|
|
245
|
-
*/
|
|
246
|
-
selectBestAgent(trigger) {
|
|
247
|
-
const { primary, fallback } = this.getRecommendedAgents(trigger);
|
|
248
|
-
const candidates = [...primary, ...fallback];
|
|
249
|
-
if (candidates.length === 0) {
|
|
250
|
-
return {
|
|
251
|
-
agent: 'researcher',
|
|
252
|
-
confidence: 0.5,
|
|
253
|
-
reasoning: 'Default agent - no specific mapping'
|
|
254
|
-
};
|
|
255
|
-
}
|
|
256
|
-
// Find best performing agent
|
|
257
|
-
let bestAgent = candidates[0];
|
|
258
|
-
let bestScore = 0;
|
|
259
|
-
for (const agent of candidates) {
|
|
260
|
-
const profile = agentPerformanceProfiles.get(agent);
|
|
261
|
-
if (profile) {
|
|
262
|
-
// Combined score: quality * success_rate * (1 / latency_factor)
|
|
263
|
-
const latencyFactor = Math.max(1, profile.avgLatencyMs / 100);
|
|
264
|
-
const score = profile.qualityScore * profile.successRate * (1 / latencyFactor);
|
|
265
|
-
if (score > bestScore) {
|
|
266
|
-
bestScore = score;
|
|
267
|
-
bestAgent = agent;
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
const profile = agentPerformanceProfiles.get(bestAgent);
|
|
272
|
-
const confidence = profile
|
|
273
|
-
? Math.min(0.95, 0.5 + (profile.executionCount * 0.01) + (profile.qualityScore * 0.4))
|
|
274
|
-
: 0.6;
|
|
275
|
-
return {
|
|
276
|
-
agent: bestAgent,
|
|
277
|
-
confidence,
|
|
278
|
-
reasoning: profile
|
|
279
|
-
? `Selected based on ${profile.executionCount} executions with ${(profile.successRate * 100).toFixed(1)}% success`
|
|
280
|
-
: 'No performance history - using default recommendation'
|
|
281
|
-
};
|
|
282
|
-
}
|
|
283
|
-
/**
|
|
284
|
-
* Record agent execution feedback for learning
|
|
285
|
-
*/
|
|
286
|
-
recordFeedback(trigger, agentName, success, latencyMs, qualityScore, memoryMB = 0) {
|
|
287
|
-
updateAgentPerformance(agentName, latencyMs, success, memoryMB, qualityScore);
|
|
288
|
-
this.feedbackQueue.push({
|
|
289
|
-
trigger,
|
|
290
|
-
agent: agentName,
|
|
291
|
-
success,
|
|
292
|
-
latency: latencyMs,
|
|
293
|
-
quality: qualityScore
|
|
294
|
-
});
|
|
295
|
-
// Process feedback queue periodically
|
|
296
|
-
if (this.feedbackQueue.length > 50) {
|
|
297
|
-
this.processFeedbackQueue();
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
/**
|
|
301
|
-
* Process accumulated feedback for learning
|
|
302
|
-
*/
|
|
303
|
-
processFeedbackQueue() {
|
|
304
|
-
// Group by trigger and agent
|
|
305
|
-
const grouped = new Map();
|
|
306
|
-
for (const feedback of this.feedbackQueue) {
|
|
307
|
-
const key = `${feedback.trigger}:${feedback.agent}`;
|
|
308
|
-
const group = grouped.get(key) || [];
|
|
309
|
-
group.push(feedback);
|
|
310
|
-
grouped.set(key, group);
|
|
311
|
-
}
|
|
312
|
-
// Calculate aggregate metrics
|
|
313
|
-
for (const [key, feedbacks] of grouped) {
|
|
314
|
-
const avgQuality = feedbacks.reduce((sum, f) => sum + f.quality, 0) / feedbacks.length;
|
|
315
|
-
const avgLatency = feedbacks.reduce((sum, f) => sum + f.latency, 0) / feedbacks.length;
|
|
316
|
-
const successRate = feedbacks.filter(f => f.success).length / feedbacks.length;
|
|
317
|
-
// Store as pattern for future retrieval
|
|
318
|
-
const patternKey = `learning/agent-performance/${key.replace(':', '/')}`;
|
|
319
|
-
this.memoryPatterns.set(patternKey, [{
|
|
320
|
-
avgQuality,
|
|
321
|
-
avgLatency,
|
|
322
|
-
successRate,
|
|
323
|
-
sampleCount: feedbacks.length,
|
|
324
|
-
updatedAt: Date.now()
|
|
325
|
-
}]);
|
|
326
|
-
}
|
|
327
|
-
this.feedbackQueue = [];
|
|
328
|
-
}
|
|
329
|
-
/**
|
|
330
|
-
* Get performance metrics for all agents
|
|
331
|
-
*/
|
|
332
|
-
getAgentMetrics() {
|
|
333
|
-
return Array.from(agentPerformanceProfiles.values());
|
|
334
|
-
}
|
|
335
|
-
/**
|
|
336
|
-
* Get performance metrics for specific trigger
|
|
337
|
-
*/
|
|
338
|
-
getTriggerMetrics(trigger) {
|
|
339
|
-
const { primary, fallback } = this.getRecommendedAgents(trigger);
|
|
340
|
-
const agents = [...primary, ...fallback];
|
|
341
|
-
let totalExecutions = 0;
|
|
342
|
-
let totalLatency = 0;
|
|
343
|
-
let successCount = 0;
|
|
344
|
-
const agentScores = [];
|
|
345
|
-
for (const agent of agents) {
|
|
346
|
-
const profile = agentPerformanceProfiles.get(agent);
|
|
347
|
-
if (profile) {
|
|
348
|
-
totalExecutions += profile.executionCount;
|
|
349
|
-
totalLatency += profile.avgLatencyMs * profile.executionCount;
|
|
350
|
-
successCount += profile.successRate * profile.executionCount;
|
|
351
|
-
agentScores.push({
|
|
352
|
-
agent,
|
|
353
|
-
score: profile.qualityScore * profile.successRate
|
|
354
|
-
});
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
return {
|
|
358
|
-
trigger,
|
|
359
|
-
totalExecutions,
|
|
360
|
-
avgLatencyMs: totalExecutions > 0 ? totalLatency / totalExecutions : 0,
|
|
361
|
-
successRate: totalExecutions > 0 ? successCount / totalExecutions : 0,
|
|
362
|
-
topAgents: agentScores.sort((a, b) => b.score - a.score).slice(0, 3)
|
|
363
|
-
};
|
|
364
|
-
}
|
|
365
|
-
/**
|
|
366
|
-
* Get benchmark thresholds for an agent
|
|
367
|
-
*/
|
|
368
|
-
getBenchmarkThresholds(agentName) {
|
|
369
|
-
return AGENT_CAPABILITIES.get(agentName)?.benchmarkThresholds || [];
|
|
370
|
-
}
|
|
371
|
-
/**
|
|
372
|
-
* Check if agent meets benchmark thresholds
|
|
373
|
-
*/
|
|
374
|
-
checkBenchmarkCompliance(agentName) {
|
|
375
|
-
const thresholds = this.getBenchmarkThresholds(agentName);
|
|
376
|
-
const profile = agentPerformanceProfiles.get(agentName);
|
|
377
|
-
if (!profile || thresholds.length === 0) {
|
|
378
|
-
return { compliant: true, violations: [] };
|
|
379
|
-
}
|
|
380
|
-
const violations = [];
|
|
381
|
-
for (const threshold of thresholds) {
|
|
382
|
-
let actual;
|
|
383
|
-
switch (threshold.metric) {
|
|
384
|
-
case 'p95_latency':
|
|
385
|
-
actual = profile.p95LatencyMs;
|
|
386
|
-
break;
|
|
387
|
-
case 'memory_mb':
|
|
388
|
-
actual = profile.memoryUsageMB;
|
|
389
|
-
break;
|
|
390
|
-
case 'quality_score':
|
|
391
|
-
actual = profile.qualityScore;
|
|
392
|
-
break;
|
|
393
|
-
default:
|
|
394
|
-
continue;
|
|
395
|
-
}
|
|
396
|
-
const passed = threshold.direction === 'below'
|
|
397
|
-
? actual <= threshold.target
|
|
398
|
-
: actual >= threshold.target;
|
|
399
|
-
if (!passed) {
|
|
400
|
-
violations.push({
|
|
401
|
-
metric: threshold.metric,
|
|
402
|
-
actual,
|
|
403
|
-
target: threshold.target
|
|
404
|
-
});
|
|
405
|
-
}
|
|
406
|
-
}
|
|
407
|
-
return {
|
|
408
|
-
compliant: violations.length === 0,
|
|
409
|
-
violations
|
|
410
|
-
};
|
|
411
|
-
}
|
|
412
|
-
/**
|
|
413
|
-
* Generate memory key for worker-agent communication
|
|
414
|
-
*/
|
|
415
|
-
generateMemoryKey(trigger, topic, phase) {
|
|
416
|
-
const mapping = WORKER_AGENT_MAPPINGS.get(trigger);
|
|
417
|
-
const pattern = mapping?.memoryKeyPattern || `${trigger}/{topic}/{phase}`;
|
|
418
|
-
return pattern
|
|
419
|
-
.replace('{topic}', topic || 'default')
|
|
420
|
-
.replace('{phase}', phase)
|
|
421
|
-
.replace('{metric}', phase)
|
|
422
|
-
.replace('{finding}', phase)
|
|
423
|
-
.replace('{module}', topic || 'main')
|
|
424
|
-
.replace('{section}', phase)
|
|
425
|
-
.replace('{level}', '0')
|
|
426
|
-
.replace('{improvement}', phase)
|
|
427
|
-
.replace('{relationship}', phase)
|
|
428
|
-
.replace('{context}', topic || 'default')
|
|
429
|
-
.replace('{file}', phase)
|
|
430
|
-
.replace('{next}', phase)
|
|
431
|
-
.replace('{pattern}', phase)
|
|
432
|
-
.replace('{coverage}', phase);
|
|
433
|
-
}
|
|
434
|
-
/**
|
|
435
|
-
* Get integration statistics
|
|
436
|
-
*/
|
|
437
|
-
getStats() {
|
|
438
|
-
const profiles = Array.from(agentPerformanceProfiles.values());
|
|
439
|
-
const totalExecutions = profiles.reduce((sum, p) => sum + p.executionCount, 0);
|
|
440
|
-
const avgQuality = profiles.length > 0
|
|
441
|
-
? profiles.reduce((sum, p) => sum + p.qualityScore, 0) / profiles.length
|
|
442
|
-
: 0;
|
|
443
|
-
const cacheStats = modelCache.getStats();
|
|
444
|
-
return {
|
|
445
|
-
totalAgents: AGENT_CAPABILITIES.size,
|
|
446
|
-
trackedAgents: profiles.length,
|
|
447
|
-
totalFeedback: totalExecutions,
|
|
448
|
-
avgQualityScore: avgQuality,
|
|
449
|
-
modelCacheStats: {
|
|
450
|
-
hits: cacheStats.hits,
|
|
451
|
-
misses: cacheStats.misses,
|
|
452
|
-
hitRate: `${(cacheStats.hitRate * 100).toFixed(1)}%`
|
|
453
|
-
}
|
|
454
|
-
};
|
|
455
|
-
}
|
|
456
|
-
}
|
|
457
|
-
// Singleton instance
|
|
458
|
-
export const workerAgentIntegration = new WorkerAgentIntegration();
|
|
459
|
-
// ============================================================================
|
|
460
|
-
// Convenience Functions
|
|
461
|
-
// ============================================================================
|
|
462
|
-
export function getAgentForTrigger(trigger) {
|
|
463
|
-
return workerAgentIntegration.selectBestAgent(trigger).agent;
|
|
464
|
-
}
|
|
465
|
-
export function recordAgentPerformance(trigger, agent, success, latencyMs, quality) {
|
|
466
|
-
workerAgentIntegration.recordFeedback(trigger, agent, success, latencyMs, quality);
|
|
467
|
-
}
|
|
468
|
-
export function getIntegrationStats() {
|
|
469
|
-
return workerAgentIntegration.getStats();
|
|
470
|
-
}
|
|
471
|
-
//# sourceMappingURL=worker-agent-integration.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker-agent-integration.js","sourceRoot":"","sources":["../../src/workers/worker-agent-integration.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Worker-Agent Integration Layer\n *\n * Bridges the worker system with agent execution through:\n * - Pattern sharing via ReasoningBank\n * - Metrics-based capability matching\n * - Self-learning feedback loops\n * - Performance-aware agent selection\n */\n\nimport { WorkerInfo, WorkerTrigger, WorkerResults, WorkerContext } from './types.js';\nimport { getWorkerRegistry } from './worker-registry.js';\nimport { modelCache } from '../utils/model-cache.js';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface AgentCapability {\n name: string;\n description: string;\n triggers: WorkerTrigger[];\n priority: 'low' | 'medium' | 'high' | 'critical';\n memoryPatterns: string[];\n benchmarkThresholds: BenchmarkThreshold[];\n}\n\nexport interface BenchmarkThreshold {\n metric: string;\n target: number;\n unit: 'ms' | 'ops/s' | 'MB' | '%';\n direction: 'below' | 'above';\n}\n\nexport interface AgentPerformanceProfile {\n agentName: string;\n capabilities: string[];\n avgLatencyMs: number;\n p95LatencyMs: number;\n successRate: number;\n memoryUsageMB: number;\n qualityScore: number;\n executionCount: number;\n lastExecuted: number;\n}\n\nexport interface WorkerAgentMapping {\n trigger: WorkerTrigger;\n recommendedAgents: string[];\n fallbackAgents: string[];\n pipelinePhases: string[];\n memoryKeyPattern: string;\n}\n\n// ============================================================================\n// Agent Capability Registry\n// ============================================================================\n\nconst AGENT_CAPABILITIES: Map<string, AgentCapability> = new Map([\n ['researcher', {\n name: 'researcher',\n description: 'Deep research and pattern discovery',\n triggers: ['ultralearn', 'deepdive', 'map'],\n priority: 'high',\n memoryPatterns: ['research/*', 'patterns/*', 'context/*'],\n benchmarkThresholds: [\n { metric: 'p95_latency', target: 500, unit: 'ms', direction: 'below' },\n { metric: 'memory_mb', target: 256, unit: 'MB', direction: 'below' }\n ]\n }],\n ['coder', {\n name: 'coder',\n description: 'Code implementation and optimization',\n triggers: ['optimize', 'refactor'],\n priority: 'high',\n memoryPatterns: ['code/*', 'implementations/*', 'patterns/code/*'],\n benchmarkThresholds: [\n { metric: 'p95_latency', target: 300, unit: 'ms', direction: 'below' },\n { metric: 'quality_score', target: 0.85, unit: '%', direction: 'above' }\n ]\n }],\n ['tester', {\n name: 'tester',\n description: 'Test coverage and gap analysis',\n triggers: ['testgaps', 'audit'],\n priority: 'medium',\n memoryPatterns: ['tests/*', 'coverage/*', 'quality/*'],\n benchmarkThresholds: [\n { metric: 'coverage', target: 80, unit: '%', direction: 'above' },\n { metric: 'p95_latency', target: 400, unit: 'ms', direction: 'below' }\n ]\n }],\n ['security-analyst', {\n name: 'security-analyst',\n description: 'Security analysis and vulnerability detection',\n triggers: ['audit', 'deepdive'],\n priority: 'critical',\n memoryPatterns: ['security/*', 'vulnerabilities/*', 'audit/*'],\n benchmarkThresholds: [\n { metric: 'scan_coverage', target: 95, unit: '%', direction: 'above' },\n { metric: 'p95_latency', target: 1000, unit: 'ms', direction: 'below' }\n ]\n }],\n ['performance-analyzer', {\n name: 'performance-analyzer',\n description: 'Performance analysis and optimization recommendations',\n triggers: ['benchmark', 'optimize'],\n priority: 'medium',\n memoryPatterns: ['performance/*', 'metrics/*', 'benchmarks/*'],\n benchmarkThresholds: [\n { metric: 'analysis_depth', target: 10, unit: 'ops/s', direction: 'above' }\n ]\n }],\n ['documenter', {\n name: 'documenter',\n description: 'Documentation generation and maintenance',\n triggers: ['document'],\n priority: 'low',\n memoryPatterns: ['docs/*', 'api/*', 'readme/*'],\n benchmarkThresholds: [\n { metric: 'p95_latency', target: 600, unit: 'ms', direction: 'below' }\n ]\n }]\n]);\n\n// ============================================================================\n// Worker-Agent Mappings\n// ============================================================================\n\nconst WORKER_AGENT_MAPPINGS: Map<WorkerTrigger, WorkerAgentMapping> = new Map([\n ['ultralearn', {\n trigger: 'ultralearn',\n recommendedAgents: ['researcher', 'coder'],\n fallbackAgents: ['planner'],\n pipelinePhases: ['file-discovery', 'pattern-discovery', 'vectorization', 'summarization'],\n memoryKeyPattern: 'ultralearn/{topic}/{phase}'\n }],\n ['optimize', {\n trigger: 'optimize',\n recommendedAgents: ['performance-analyzer', 'coder'],\n fallbackAgents: ['researcher'],\n pipelinePhases: ['static-analysis', 'performance-analysis', 'pattern-extraction'],\n memoryKeyPattern: 'optimize/{topic}/{metric}'\n }],\n ['audit', {\n trigger: 'audit',\n recommendedAgents: ['security-analyst', 'tester'],\n fallbackAgents: ['reviewer'],\n pipelinePhases: ['security-analysis', 'secret-detection', 'vulnerability-scan'],\n memoryKeyPattern: 'audit/{topic}/{finding}'\n }],\n ['benchmark', {\n trigger: 'benchmark',\n recommendedAgents: ['performance-analyzer'],\n fallbackAgents: ['coder', 'tester'],\n pipelinePhases: ['performance-analysis', 'metrics-collection', 'report-generation'],\n memoryKeyPattern: 'benchmark/{topic}/{metric}'\n }],\n ['testgaps', {\n trigger: 'testgaps',\n recommendedAgents: ['tester'],\n fallbackAgents: ['coder'],\n pipelinePhases: ['file-discovery', 'coverage-analysis', 'gap-detection'],\n memoryKeyPattern: 'testgaps/{module}/{coverage}'\n }],\n ['document', {\n trigger: 'document',\n recommendedAgents: ['documenter', 'researcher'],\n fallbackAgents: ['coder'],\n pipelinePhases: ['api-discovery', 'doc-generation', 'indexing'],\n memoryKeyPattern: 'docs/{topic}/{section}'\n }],\n ['deepdive', {\n trigger: 'deepdive',\n recommendedAgents: ['researcher', 'security-analyst'],\n fallbackAgents: ['coder'],\n pipelinePhases: ['call-graph', 'dependency-graph', 'trace-analysis'],\n memoryKeyPattern: 'deepdive/{topic}/{level}'\n }],\n ['refactor', {\n trigger: 'refactor',\n recommendedAgents: ['coder', 'reviewer'],\n fallbackAgents: ['researcher'],\n pipelinePhases: ['complexity-analysis', 'code-smell-detection', 'pattern-extraction'],\n memoryKeyPattern: 'refactor/{topic}/{improvement}'\n }],\n ['map', {\n trigger: 'map',\n recommendedAgents: ['researcher'],\n fallbackAgents: ['coder'],\n pipelinePhases: ['dependency-discovery', 'graph-build', 'indexing'],\n memoryKeyPattern: 'map/{module}/{relationship}'\n }],\n ['preload', {\n trigger: 'preload',\n recommendedAgents: ['researcher'],\n fallbackAgents: [],\n pipelinePhases: ['file-discovery', 'vectorization'],\n memoryKeyPattern: 'preload/{context}/{file}'\n }],\n ['predict', {\n trigger: 'predict',\n recommendedAgents: ['performance-analyzer'],\n fallbackAgents: ['researcher'],\n pipelinePhases: ['pattern-discovery', 'prediction'],\n memoryKeyPattern: 'predict/{context}/{next}'\n }],\n ['consolidate', {\n trigger: 'consolidate',\n recommendedAgents: ['researcher'],\n fallbackAgents: [],\n pipelinePhases: ['pattern-extraction', 'pattern-storage'],\n memoryKeyPattern: 'consolidate/{session}/{pattern}'\n }]\n]);\n\n// ============================================================================\n// Performance Tracking\n// ============================================================================\n\nconst agentPerformanceProfiles: Map<string, AgentPerformanceProfile> = new Map();\n\nfunction updateAgentPerformance(\n agentName: string,\n latencyMs: number,\n success: boolean,\n memoryMB: number,\n quality: number\n): void {\n const existing = agentPerformanceProfiles.get(agentName);\n const count = existing?.executionCount || 0;\n\n // Exponential moving average\n const alpha = 0.2;\n\n if (existing) {\n existing.avgLatencyMs = alpha * latencyMs + (1 - alpha) * existing.avgLatencyMs;\n existing.p95LatencyMs = Math.max(latencyMs, existing.p95LatencyMs * 0.95);\n existing.successRate = alpha * (success ? 1 : 0) + (1 - alpha) * existing.successRate;\n existing.memoryUsageMB = alpha * memoryMB + (1 - alpha) * existing.memoryUsageMB;\n existing.qualityScore = alpha * quality + (1 - alpha) * existing.qualityScore;\n existing.executionCount = count + 1;\n existing.lastExecuted = Date.now();\n } else {\n agentPerformanceProfiles.set(agentName, {\n agentName,\n capabilities: AGENT_CAPABILITIES.get(agentName)?.triggers || [],\n avgLatencyMs: latencyMs,\n p95LatencyMs: latencyMs,\n successRate: success ? 1 : 0,\n memoryUsageMB: memoryMB,\n qualityScore: quality,\n executionCount: 1,\n lastExecuted: Date.now()\n });\n }\n}\n\n// ============================================================================\n// Worker-Agent Integration Manager\n// ============================================================================\n\nexport class WorkerAgentIntegration {\n private memoryPatterns: Map<string, unknown[]> = new Map();\n private feedbackQueue: Array<{\n trigger: WorkerTrigger;\n agent: string;\n success: boolean;\n latency: number;\n quality: number;\n }> = [];\n\n /**\n * Get recommended agents for a worker trigger\n */\n getRecommendedAgents(trigger: WorkerTrigger): {\n primary: string[];\n fallback: string[];\n phases: string[];\n memoryPattern: string;\n } {\n const mapping = WORKER_AGENT_MAPPINGS.get(trigger);\n if (!mapping) {\n return {\n primary: ['researcher'],\n fallback: [],\n phases: ['file-discovery', 'summarization'],\n memoryPattern: `${trigger}/{topic}/{phase}`\n };\n }\n\n // Sort by performance if we have data\n const sortedPrimary = [...mapping.recommendedAgents].sort((a, b) => {\n const profA = agentPerformanceProfiles.get(a);\n const profB = agentPerformanceProfiles.get(b);\n if (!profA) return 1;\n if (!profB) return -1;\n return profB.qualityScore - profA.qualityScore;\n });\n\n return {\n primary: sortedPrimary,\n fallback: mapping.fallbackAgents,\n phases: mapping.pipelinePhases,\n memoryPattern: mapping.memoryKeyPattern\n };\n }\n\n /**\n * Get agent capabilities for matching\n */\n getAgentCapabilities(agentName: string): AgentCapability | undefined {\n return AGENT_CAPABILITIES.get(agentName);\n }\n\n /**\n * Find best agent for a given trigger based on performance history\n */\n selectBestAgent(trigger: WorkerTrigger): {\n agent: string;\n confidence: number;\n reasoning: string;\n } {\n const { primary, fallback } = this.getRecommendedAgents(trigger);\n const candidates = [...primary, ...fallback];\n\n if (candidates.length === 0) {\n return {\n agent: 'researcher',\n confidence: 0.5,\n reasoning: 'Default agent - no specific mapping'\n };\n }\n\n // Find best performing agent\n let bestAgent = candidates[0];\n let bestScore = 0;\n\n for (const agent of candidates) {\n const profile = agentPerformanceProfiles.get(agent);\n if (profile) {\n // Combined score: quality * success_rate * (1 / latency_factor)\n const latencyFactor = Math.max(1, profile.avgLatencyMs / 100);\n const score = profile.qualityScore * profile.successRate * (1 / latencyFactor);\n if (score > bestScore) {\n bestScore = score;\n bestAgent = agent;\n }\n }\n }\n\n const profile = agentPerformanceProfiles.get(bestAgent);\n const confidence = profile\n ? Math.min(0.95, 0.5 + (profile.executionCount * 0.01) + (profile.qualityScore * 0.4))\n : 0.6;\n\n return {\n agent: bestAgent,\n confidence,\n reasoning: profile\n ? `Selected based on ${profile.executionCount} executions with ${(profile.successRate * 100).toFixed(1)}% success`\n : 'No performance history - using default recommendation'\n };\n }\n\n /**\n * Record agent execution feedback for learning\n */\n recordFeedback(\n trigger: WorkerTrigger,\n agentName: string,\n success: boolean,\n latencyMs: number,\n qualityScore: number,\n memoryMB: number = 0\n ): void {\n updateAgentPerformance(agentName, latencyMs, success, memoryMB, qualityScore);\n\n this.feedbackQueue.push({\n trigger,\n agent: agentName,\n success,\n latency: latencyMs,\n quality: qualityScore\n });\n\n // Process feedback queue periodically\n if (this.feedbackQueue.length > 50) {\n this.processFeedbackQueue();\n }\n }\n\n /**\n * Process accumulated feedback for learning\n */\n private processFeedbackQueue(): void {\n // Group by trigger and agent\n const grouped = new Map<string, typeof this.feedbackQueue>();\n\n for (const feedback of this.feedbackQueue) {\n const key = `${feedback.trigger}:${feedback.agent}`;\n const group = grouped.get(key) || [];\n group.push(feedback);\n grouped.set(key, group);\n }\n\n // Calculate aggregate metrics\n for (const [key, feedbacks] of grouped) {\n const avgQuality = feedbacks.reduce((sum, f) => sum + f.quality, 0) / feedbacks.length;\n const avgLatency = feedbacks.reduce((sum, f) => sum + f.latency, 0) / feedbacks.length;\n const successRate = feedbacks.filter(f => f.success).length / feedbacks.length;\n\n // Store as pattern for future retrieval\n const patternKey = `learning/agent-performance/${key.replace(':', '/')}`;\n this.memoryPatterns.set(patternKey, [{\n avgQuality,\n avgLatency,\n successRate,\n sampleCount: feedbacks.length,\n updatedAt: Date.now()\n }]);\n }\n\n this.feedbackQueue = [];\n }\n\n /**\n * Get performance metrics for all agents\n */\n getAgentMetrics(): AgentPerformanceProfile[] {\n return Array.from(agentPerformanceProfiles.values());\n }\n\n /**\n * Get performance metrics for specific trigger\n */\n getTriggerMetrics(trigger: WorkerTrigger): {\n trigger: WorkerTrigger;\n totalExecutions: number;\n avgLatencyMs: number;\n successRate: number;\n topAgents: Array<{ agent: string; score: number }>;\n } {\n const { primary, fallback } = this.getRecommendedAgents(trigger);\n const agents = [...primary, ...fallback];\n\n let totalExecutions = 0;\n let totalLatency = 0;\n let successCount = 0;\n\n const agentScores: Array<{ agent: string; score: number }> = [];\n\n for (const agent of agents) {\n const profile = agentPerformanceProfiles.get(agent);\n if (profile) {\n totalExecutions += profile.executionCount;\n totalLatency += profile.avgLatencyMs * profile.executionCount;\n successCount += profile.successRate * profile.executionCount;\n agentScores.push({\n agent,\n score: profile.qualityScore * profile.successRate\n });\n }\n }\n\n return {\n trigger,\n totalExecutions,\n avgLatencyMs: totalExecutions > 0 ? totalLatency / totalExecutions : 0,\n successRate: totalExecutions > 0 ? successCount / totalExecutions : 0,\n topAgents: agentScores.sort((a, b) => b.score - a.score).slice(0, 3)\n };\n }\n\n /**\n * Get benchmark thresholds for an agent\n */\n getBenchmarkThresholds(agentName: string): BenchmarkThreshold[] {\n return AGENT_CAPABILITIES.get(agentName)?.benchmarkThresholds || [];\n }\n\n /**\n * Check if agent meets benchmark thresholds\n */\n checkBenchmarkCompliance(agentName: string): {\n compliant: boolean;\n violations: Array<{ metric: string; actual: number; target: number }>;\n } {\n const thresholds = this.getBenchmarkThresholds(agentName);\n const profile = agentPerformanceProfiles.get(agentName);\n\n if (!profile || thresholds.length === 0) {\n return { compliant: true, violations: [] };\n }\n\n const violations: Array<{ metric: string; actual: number; target: number }> = [];\n\n for (const threshold of thresholds) {\n let actual: number;\n switch (threshold.metric) {\n case 'p95_latency':\n actual = profile.p95LatencyMs;\n break;\n case 'memory_mb':\n actual = profile.memoryUsageMB;\n break;\n case 'quality_score':\n actual = profile.qualityScore;\n break;\n default:\n continue;\n }\n\n const passed = threshold.direction === 'below'\n ? actual <= threshold.target\n : actual >= threshold.target;\n\n if (!passed) {\n violations.push({\n metric: threshold.metric,\n actual,\n target: threshold.target\n });\n }\n }\n\n return {\n compliant: violations.length === 0,\n violations\n };\n }\n\n /**\n * Generate memory key for worker-agent communication\n */\n generateMemoryKey(trigger: WorkerTrigger, topic: string, phase: string): string {\n const mapping = WORKER_AGENT_MAPPINGS.get(trigger);\n const pattern = mapping?.memoryKeyPattern || `${trigger}/{topic}/{phase}`;\n\n return pattern\n .replace('{topic}', topic || 'default')\n .replace('{phase}', phase)\n .replace('{metric}', phase)\n .replace('{finding}', phase)\n .replace('{module}', topic || 'main')\n .replace('{section}', phase)\n .replace('{level}', '0')\n .replace('{improvement}', phase)\n .replace('{relationship}', phase)\n .replace('{context}', topic || 'default')\n .replace('{file}', phase)\n .replace('{next}', phase)\n .replace('{pattern}', phase)\n .replace('{coverage}', phase);\n }\n\n /**\n * Get integration statistics\n */\n getStats(): {\n totalAgents: number;\n trackedAgents: number;\n totalFeedback: number;\n avgQualityScore: number;\n modelCacheStats: { hits: number; misses: number; hitRate: string };\n } {\n const profiles = Array.from(agentPerformanceProfiles.values());\n const totalExecutions = profiles.reduce((sum, p) => sum + p.executionCount, 0);\n const avgQuality = profiles.length > 0\n ? profiles.reduce((sum, p) => sum + p.qualityScore, 0) / profiles.length\n : 0;\n\n const cacheStats = modelCache.getStats();\n\n return {\n totalAgents: AGENT_CAPABILITIES.size,\n trackedAgents: profiles.length,\n totalFeedback: totalExecutions,\n avgQualityScore: avgQuality,\n modelCacheStats: {\n hits: cacheStats.hits,\n misses: cacheStats.misses,\n hitRate: `${(cacheStats.hitRate * 100).toFixed(1)}%`\n }\n };\n }\n}\n\n// Singleton instance\nexport const workerAgentIntegration = new WorkerAgentIntegration();\n\n// ============================================================================\n// Convenience Functions\n// ============================================================================\n\nexport function getAgentForTrigger(trigger: WorkerTrigger): string {\n return workerAgentIntegration.selectBestAgent(trigger).agent;\n}\n\nexport function recordAgentPerformance(\n trigger: WorkerTrigger,\n agent: string,\n success: boolean,\n latencyMs: number,\n quality: number\n): void {\n workerAgentIntegration.recordFeedback(trigger, agent, success, latencyMs, quality);\n}\n\nexport function getIntegrationStats() {\n return workerAgentIntegration.getStats();\n}\n"]}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Worker Benchmark System
|
|
3
|
-
*
|
|
4
|
-
* Comprehensive performance benchmarking for the worker system including:
|
|
5
|
-
* - Dispatch latency measurement
|
|
6
|
-
* - Phase execution timing
|
|
7
|
-
* - Memory tracking
|
|
8
|
-
* - Throughput analysis
|
|
9
|
-
* - Integration with agents
|
|
10
|
-
*/
|
|
11
|
-
export interface BenchmarkResult {
|
|
12
|
-
name: string;
|
|
13
|
-
operation: string;
|
|
14
|
-
count: number;
|
|
15
|
-
totalTimeMs: number;
|
|
16
|
-
avgTimeMs: number;
|
|
17
|
-
minMs: number;
|
|
18
|
-
maxMs: number;
|
|
19
|
-
p50Ms: number;
|
|
20
|
-
p95Ms: number;
|
|
21
|
-
p99Ms: number;
|
|
22
|
-
throughput: number;
|
|
23
|
-
memoryDeltaMB: number;
|
|
24
|
-
passed: boolean;
|
|
25
|
-
target?: number;
|
|
26
|
-
details?: Record<string, unknown>;
|
|
27
|
-
}
|
|
28
|
-
export interface BenchmarkSuite {
|
|
29
|
-
name: string;
|
|
30
|
-
description: string;
|
|
31
|
-
timestamp: number;
|
|
32
|
-
results: BenchmarkResult[];
|
|
33
|
-
summary: {
|
|
34
|
-
totalTests: number;
|
|
35
|
-
passed: number;
|
|
36
|
-
failed: number;
|
|
37
|
-
avgLatencyMs: number;
|
|
38
|
-
totalDurationMs: number;
|
|
39
|
-
peakMemoryMB: number;
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
export interface LatencyBucket {
|
|
43
|
-
range: string;
|
|
44
|
-
count: number;
|
|
45
|
-
percentage: number;
|
|
46
|
-
}
|
|
47
|
-
export declare class WorkerBenchmarks {
|
|
48
|
-
private results;
|
|
49
|
-
/**
|
|
50
|
-
* Benchmark trigger detection speed
|
|
51
|
-
*/
|
|
52
|
-
benchmarkTriggerDetection(iterations?: number): Promise<BenchmarkResult>;
|
|
53
|
-
/**
|
|
54
|
-
* Benchmark worker registry operations
|
|
55
|
-
*/
|
|
56
|
-
benchmarkRegistryOperations(iterations?: number): Promise<BenchmarkResult>;
|
|
57
|
-
/**
|
|
58
|
-
* Benchmark agent selection performance
|
|
59
|
-
*/
|
|
60
|
-
benchmarkAgentSelection(iterations?: number): Promise<BenchmarkResult>;
|
|
61
|
-
/**
|
|
62
|
-
* Benchmark model cache performance
|
|
63
|
-
*/
|
|
64
|
-
benchmarkModelCache(iterations?: number): Promise<BenchmarkResult>;
|
|
65
|
-
/**
|
|
66
|
-
* Benchmark concurrent worker handling
|
|
67
|
-
*/
|
|
68
|
-
benchmarkConcurrentWorkers(workerCount?: number): Promise<BenchmarkResult>;
|
|
69
|
-
/**
|
|
70
|
-
* Benchmark memory key generation
|
|
71
|
-
*/
|
|
72
|
-
benchmarkMemoryKeyGeneration(iterations?: number): Promise<BenchmarkResult>;
|
|
73
|
-
/**
|
|
74
|
-
* Run full benchmark suite
|
|
75
|
-
*/
|
|
76
|
-
runFullSuite(): Promise<BenchmarkSuite>;
|
|
77
|
-
/**
|
|
78
|
-
* Print formatted results
|
|
79
|
-
*/
|
|
80
|
-
private printResults;
|
|
81
|
-
/**
|
|
82
|
-
* Get last results
|
|
83
|
-
*/
|
|
84
|
-
getResults(): BenchmarkResult[];
|
|
85
|
-
}
|
|
86
|
-
export declare const workerBenchmarks: WorkerBenchmarks;
|
|
87
|
-
export declare function runBenchmarks(): Promise<BenchmarkSuite>;
|
|
88
|
-
//# sourceMappingURL=worker-benchmarks.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker-benchmarks.d.ts","sourceRoot":"","sources":["../../src/workers/worker-benchmarks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAWH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAkDD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAyB;IAExC;;OAEG;IACG,yBAAyB,CAAC,UAAU,GAAE,MAAa,GAAG,OAAO,CAAC,eAAe,CAAC;IAyDpF;;OAEG;IACG,2BAA2B,CAAC,UAAU,GAAE,MAAY,GAAG,OAAO,CAAC,eAAe,CAAC;IAyErF;;OAEG;IACG,uBAAuB,CAAC,UAAU,GAAE,MAAa,GAAG,OAAO,CAAC,eAAe,CAAC;IA2ClF;;OAEG;IACG,mBAAmB,CAAC,UAAU,GAAE,MAAY,GAAG,OAAO,CAAC,eAAe,CAAC;IAiD7E;;OAEG;IACG,0BAA0B,CAAC,WAAW,GAAE,MAAW,GAAG,OAAO,CAAC,eAAe,CAAC;IAiEpF;;OAEG;IACG,4BAA4B,CAAC,UAAU,GAAE,MAAa,GAAG,OAAO,CAAC,eAAe,CAAC;IA6CvF;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC;IAoD7C;;OAEG;IACH,OAAO,CAAC,YAAY;IA4BpB;;OAEG;IACH,UAAU,IAAI,eAAe,EAAE;CAGhC;AAGD,eAAO,MAAM,gBAAgB,kBAAyB,CAAC;AAMvD,wBAAsB,aAAa,IAAI,OAAO,CAAC,cAAc,CAAC,CAE7D"}
|