@skillsmith/core 0.4.0 → 0.4.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/dist/.tsbuildinfo +1 -1
- package/dist/src/analysis/CodebaseAnalyzer.d.ts.map +1 -1
- package/dist/src/analysis/CodebaseAnalyzer.js.map +1 -1
- package/dist/src/analysis/adapters/__tests__/python.test.js.map +1 -1
- package/dist/src/analysis/language-detector.d.ts +4 -20
- package/dist/src/analysis/language-detector.d.ts.map +1 -1
- package/dist/src/analysis/language-detector.js +2 -399
- package/dist/src/analysis/language-detector.js.map +1 -1
- package/dist/src/analysis/language-detector.patterns.d.ts +17 -0
- package/dist/src/analysis/language-detector.patterns.d.ts.map +1 -0
- package/dist/src/analysis/language-detector.patterns.js +413 -0
- package/dist/src/analysis/language-detector.patterns.js.map +1 -0
- package/dist/src/analysis/language-detector.types.d.ts +48 -0
- package/dist/src/analysis/language-detector.types.d.ts.map +1 -0
- package/dist/src/analysis/language-detector.types.js +6 -0
- package/dist/src/analysis/language-detector.types.js.map +1 -0
- package/dist/src/analysis/metrics.d.ts +22 -219
- package/dist/src/analysis/metrics.d.ts.map +1 -1
- package/dist/src/analysis/metrics.implementations.d.ts +39 -0
- package/dist/src/analysis/metrics.implementations.d.ts.map +1 -0
- package/dist/src/analysis/metrics.implementations.js +114 -0
- package/dist/src/analysis/metrics.implementations.js.map +1 -0
- package/dist/src/analysis/metrics.js +21 -224
- package/dist/src/analysis/metrics.js.map +1 -1
- package/dist/src/analysis/metrics.types.d.ts +79 -0
- package/dist/src/analysis/metrics.types.d.ts.map +1 -0
- package/dist/src/analysis/metrics.types.js +6 -0
- package/dist/src/analysis/metrics.types.js.map +1 -0
- package/dist/src/analytics/ROIDashboardService.js +4 -2
- package/dist/src/analytics/ROIDashboardService.js.map +1 -1
- package/dist/src/api/cache.d.ts.map +1 -1
- package/dist/src/api/cache.js.map +1 -1
- package/dist/src/api/client.d.ts +1 -0
- package/dist/src/api/client.d.ts.map +1 -1
- package/dist/src/api/client.js +17 -3
- package/dist/src/api/client.js.map +1 -1
- package/dist/src/api/types.d.ts +1 -1
- package/dist/src/api/types.d.ts.map +1 -1
- package/dist/src/benchmarks/BenchmarkRunner.d.ts.map +1 -1
- package/dist/src/benchmarks/BenchmarkRunner.js +1 -1
- package/dist/src/benchmarks/BenchmarkRunner.js.map +1 -1
- package/dist/src/billing/BillingService.d.ts +15 -53
- package/dist/src/billing/BillingService.d.ts.map +1 -1
- package/dist/src/billing/BillingService.helpers.d.ts +15 -0
- package/dist/src/billing/BillingService.helpers.d.ts.map +1 -0
- package/dist/src/billing/BillingService.helpers.js +45 -0
- package/dist/src/billing/BillingService.helpers.js.map +1 -0
- package/dist/src/billing/BillingService.js +49 -179
- package/dist/src/billing/BillingService.js.map +1 -1
- package/dist/src/billing/BillingService.types.d.ts +52 -0
- package/dist/src/billing/BillingService.types.d.ts.map +1 -0
- package/dist/src/billing/BillingService.types.js +6 -0
- package/dist/src/billing/BillingService.types.js.map +1 -0
- package/dist/src/billing/StripeClient.d.ts +3 -2
- package/dist/src/billing/StripeClient.d.ts.map +1 -1
- package/dist/src/billing/StripeClient.js +4 -3
- package/dist/src/billing/StripeClient.js.map +1 -1
- package/dist/src/billing/StripeWebhookHandler.d.ts +13 -0
- package/dist/src/billing/StripeWebhookHandler.d.ts.map +1 -1
- package/dist/src/billing/StripeWebhookHandler.js +52 -9
- package/dist/src/billing/StripeWebhookHandler.js.map +1 -1
- package/dist/src/db/migration.d.ts +129 -0
- package/dist/src/db/migration.d.ts.map +1 -0
- package/dist/src/db/migration.js +289 -0
- package/dist/src/db/migration.js.map +1 -0
- package/dist/src/db/schema.d.ts +2 -2
- package/dist/src/db/schema.d.ts.map +1 -1
- package/dist/src/db/schema.js +23 -1
- package/dist/src/db/schema.js.map +1 -1
- package/dist/src/embeddings/hnsw-store.d.ts +8 -518
- package/dist/src/embeddings/hnsw-store.d.ts.map +1 -1
- package/dist/src/embeddings/hnsw-store.helpers.d.ts +83 -0
- package/dist/src/embeddings/hnsw-store.helpers.d.ts.map +1 -0
- package/dist/src/embeddings/hnsw-store.helpers.js +147 -0
- package/dist/src/embeddings/hnsw-store.helpers.js.map +1 -0
- package/dist/src/embeddings/hnsw-store.js +66 -517
- package/dist/src/embeddings/hnsw-store.js.map +1 -1
- package/dist/src/embeddings/hnsw-store.types.d.ts +154 -0
- package/dist/src/embeddings/hnsw-store.types.d.ts.map +1 -0
- package/dist/src/embeddings/hnsw-store.types.js +26 -0
- package/dist/src/embeddings/hnsw-store.types.js.map +1 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +1 -1
- package/dist/src/errors.js.map +1 -1
- package/dist/src/index.d.ts +8 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +18 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/indexer/GitHubIndexer.d.ts.map +1 -1
- package/dist/src/indexer/GitHubIndexer.js +17 -4
- package/dist/src/indexer/GitHubIndexer.js.map +1 -1
- package/dist/src/indexer/SwarmIndexer.d.ts.map +1 -1
- package/dist/src/indexer/SwarmIndexer.js +1 -1
- package/dist/src/indexer/SwarmIndexer.js.map +1 -1
- package/dist/src/learning/PatternStore.d.ts +6 -426
- package/dist/src/learning/PatternStore.d.ts.map +1 -1
- package/dist/src/learning/PatternStore.helpers.d.ts +88 -0
- package/dist/src/learning/PatternStore.helpers.d.ts.map +1 -0
- package/dist/src/learning/PatternStore.helpers.js +286 -0
- package/dist/src/learning/PatternStore.helpers.js.map +1 -0
- package/dist/src/learning/PatternStore.js +52 -598
- package/dist/src/learning/PatternStore.js.map +1 -1
- package/dist/src/learning/PatternStore.queries.d.ts +83 -0
- package/dist/src/learning/PatternStore.queries.d.ts.map +1 -0
- package/dist/src/learning/PatternStore.queries.js +189 -0
- package/dist/src/learning/PatternStore.queries.js.map +1 -0
- package/dist/src/learning/PatternStore.types.d.ts +308 -0
- package/dist/src/learning/PatternStore.types.d.ts.map +1 -0
- package/dist/src/learning/PatternStore.types.js +44 -0
- package/dist/src/learning/PatternStore.types.js.map +1 -0
- package/dist/src/learning/ReasoningBankIntegration.d.ts +5 -345
- package/dist/src/learning/ReasoningBankIntegration.d.ts.map +1 -1
- package/dist/src/learning/ReasoningBankIntegration.helpers.d.ts +49 -0
- package/dist/src/learning/ReasoningBankIntegration.helpers.d.ts.map +1 -0
- package/dist/src/learning/ReasoningBankIntegration.helpers.js +180 -0
- package/dist/src/learning/ReasoningBankIntegration.helpers.js.map +1 -0
- package/dist/src/learning/ReasoningBankIntegration.js +21 -390
- package/dist/src/learning/ReasoningBankIntegration.js.map +1 -1
- package/dist/src/learning/ReasoningBankIntegration.types.d.ts +167 -0
- package/dist/src/learning/ReasoningBankIntegration.types.d.ts.map +1 -0
- package/dist/src/learning/ReasoningBankIntegration.types.js +51 -0
- package/dist/src/learning/ReasoningBankIntegration.types.js.map +1 -0
- package/dist/src/learning/interfaces.d.ts.map +1 -1
- package/dist/src/pipeline/DailyIndexPipeline.js +1 -1
- package/dist/src/pipeline/DailyIndexPipeline.js.map +1 -1
- package/dist/src/repositories/IndexerRepository.d.ts +1 -0
- package/dist/src/repositories/IndexerRepository.d.ts.map +1 -1
- package/dist/src/repositories/IndexerRepository.js +6 -0
- package/dist/src/repositories/IndexerRepository.js.map +1 -1
- package/dist/src/repositories/SkillRepository.d.ts.map +1 -1
- package/dist/src/repositories/SkillRepository.js +20 -5
- package/dist/src/repositories/SkillRepository.js.map +1 -1
- package/dist/src/routing/SONARouter.d.ts +3 -101
- package/dist/src/routing/SONARouter.d.ts.map +1 -1
- package/dist/src/routing/SONARouter.helpers.d.ts +112 -0
- package/dist/src/routing/SONARouter.helpers.d.ts.map +1 -0
- package/dist/src/routing/SONARouter.helpers.js +184 -0
- package/dist/src/routing/SONARouter.helpers.js.map +1 -0
- package/dist/src/routing/SONARouter.js +16 -318
- package/dist/src/routing/SONARouter.js.map +1 -1
- package/dist/src/scripts/github-import/github-client.js +0 -1
- package/dist/src/scripts/github-import/github-client.js.map +1 -1
- package/dist/src/scripts/ingest-lenny-skills.d.ts +40 -0
- package/dist/src/scripts/ingest-lenny-skills.d.ts.map +1 -0
- package/dist/src/scripts/ingest-lenny-skills.js +346 -0
- package/dist/src/scripts/ingest-lenny-skills.js.map +1 -0
- package/dist/src/scripts/review-lenny-skills.d.ts +25 -0
- package/dist/src/scripts/review-lenny-skills.d.ts.map +1 -0
- package/dist/src/scripts/review-lenny-skills.js +520 -0
- package/dist/src/scripts/review-lenny-skills.js.map +1 -0
- package/dist/src/scripts/sync-to-supabase.d.ts +10 -0
- package/dist/src/scripts/sync-to-supabase.d.ts.map +1 -0
- package/dist/src/scripts/sync-to-supabase.js +93 -0
- package/dist/src/scripts/sync-to-supabase.js.map +1 -0
- package/dist/src/security/AuditLogger.js +1 -1
- package/dist/src/security/AuditLogger.js.map +1 -1
- package/dist/src/security/__tests__/pathValidation.test.js.map +1 -1
- package/dist/src/security/scanner/SecurityScanner.d.ts +12 -88
- package/dist/src/security/scanner/SecurityScanner.d.ts.map +1 -1
- package/dist/src/security/scanner/SecurityScanner.formatters.d.ts +49 -0
- package/dist/src/security/scanner/SecurityScanner.formatters.d.ts.map +1 -0
- package/dist/src/security/scanner/SecurityScanner.formatters.js +139 -0
- package/dist/src/security/scanner/SecurityScanner.formatters.js.map +1 -0
- package/dist/src/security/scanner/SecurityScanner.helpers.d.ts +40 -0
- package/dist/src/security/scanner/SecurityScanner.helpers.d.ts.map +1 -0
- package/dist/src/security/scanner/SecurityScanner.helpers.js +142 -0
- package/dist/src/security/scanner/SecurityScanner.helpers.js.map +1 -0
- package/dist/src/security/scanner/SecurityScanner.js +26 -255
- package/dist/src/security/scanner/SecurityScanner.js.map +1 -1
- package/dist/src/services/SearchService.d.ts +5 -0
- package/dist/src/services/SearchService.d.ts.map +1 -1
- package/dist/src/services/SearchService.js +143 -11
- package/dist/src/services/SearchService.js.map +1 -1
- package/dist/src/services/SkillAnalyzer.d.ts +117 -0
- package/dist/src/services/SkillAnalyzer.d.ts.map +1 -0
- package/dist/src/services/SkillAnalyzer.js +421 -0
- package/dist/src/services/SkillAnalyzer.js.map +1 -0
- package/dist/src/services/SkillDecomposer.d.ts +103 -0
- package/dist/src/services/SkillDecomposer.d.ts.map +1 -0
- package/dist/src/services/SkillDecomposer.js +359 -0
- package/dist/src/services/SkillDecomposer.js.map +1 -0
- package/dist/src/services/SubagentGenerator.d.ts +68 -0
- package/dist/src/services/SubagentGenerator.d.ts.map +1 -0
- package/dist/src/services/SubagentGenerator.js +319 -0
- package/dist/src/services/SubagentGenerator.js.map +1 -0
- package/dist/src/services/TransformationService.d.ts +163 -0
- package/dist/src/services/TransformationService.d.ts.map +1 -0
- package/dist/src/services/TransformationService.js +291 -0
- package/dist/src/services/TransformationService.js.map +1 -0
- package/dist/src/services/__tests__/SkillAnalyzer.test.d.ts +6 -0
- package/dist/src/services/__tests__/SkillAnalyzer.test.d.ts.map +1 -0
- package/dist/src/services/__tests__/SkillAnalyzer.test.js +177 -0
- package/dist/src/services/__tests__/SkillAnalyzer.test.js.map +1 -0
- package/dist/src/services/__tests__/SkillDecomposer.test.d.ts +6 -0
- package/dist/src/services/__tests__/SkillDecomposer.test.d.ts.map +1 -0
- package/dist/src/services/__tests__/SkillDecomposer.test.js +235 -0
- package/dist/src/services/__tests__/SkillDecomposer.test.js.map +1 -0
- package/dist/src/services/__tests__/SubagentGenerator.test.d.ts +6 -0
- package/dist/src/services/__tests__/SubagentGenerator.test.d.ts.map +1 -0
- package/dist/src/services/__tests__/SubagentGenerator.test.js +174 -0
- package/dist/src/services/__tests__/SubagentGenerator.test.js.map +1 -0
- package/dist/src/services/__tests__/TransformationService.test.d.ts +6 -0
- package/dist/src/services/__tests__/TransformationService.test.d.ts.map +1 -0
- package/dist/src/services/__tests__/TransformationService.test.js +242 -0
- package/dist/src/services/__tests__/TransformationService.test.js.map +1 -0
- package/dist/src/session/SessionContext.js +1 -1
- package/dist/src/session/SessionContext.js.map +1 -1
- package/dist/src/session/SessionManager.d.ts +3 -67
- package/dist/src/session/SessionManager.d.ts.map +1 -1
- package/dist/src/session/SessionManager.helpers.d.ts +68 -0
- package/dist/src/session/SessionManager.helpers.d.ts.map +1 -0
- package/dist/src/session/SessionManager.helpers.js +152 -0
- package/dist/src/session/SessionManager.helpers.js.map +1 -0
- package/dist/src/session/SessionManager.js +58 -163
- package/dist/src/session/SessionManager.js.map +1 -1
- package/dist/src/session/SessionManager.types.d.ts +88 -0
- package/dist/src/session/SessionManager.types.d.ts.map +1 -0
- package/dist/src/session/SessionManager.types.js +27 -0
- package/dist/src/session/SessionManager.types.js.map +1 -0
- package/dist/src/session/SessionRecovery.d.ts.map +1 -1
- package/dist/src/session/SessionRecovery.js +3 -2
- package/dist/src/session/SessionRecovery.js.map +1 -1
- package/dist/src/sources/RawUrlSourceAdapter.js.map +1 -1
- package/dist/src/sources/SourceAdapterRegistry.js +1 -1
- package/dist/src/sources/SourceAdapterRegistry.js.map +1 -1
- package/dist/src/telemetry/tracer.d.ts.map +1 -1
- package/dist/src/telemetry/tracer.js +2 -3
- package/dist/src/telemetry/tracer.js.map +1 -1
- package/dist/src/testing/MultiLLMProvider.d.ts +17 -293
- package/dist/src/testing/MultiLLMProvider.d.ts.map +1 -1
- package/dist/src/testing/MultiLLMProvider.helpers.d.ts +54 -0
- package/dist/src/testing/MultiLLMProvider.helpers.d.ts.map +1 -0
- package/dist/src/testing/MultiLLMProvider.helpers.js +126 -0
- package/dist/src/testing/MultiLLMProvider.helpers.js.map +1 -0
- package/dist/src/testing/MultiLLMProvider.js +50 -323
- package/dist/src/testing/MultiLLMProvider.js.map +1 -1
- package/dist/src/testing/MultiLLMProvider.types.d.ts +253 -0
- package/dist/src/testing/MultiLLMProvider.types.d.ts.map +1 -0
- package/dist/src/testing/MultiLLMProvider.types.js +111 -0
- package/dist/src/testing/MultiLLMProvider.types.js.map +1 -0
- package/dist/src/triggers/__tests__/TriggerDetector.test.js +1 -1
- package/dist/src/triggers/__tests__/TriggerDetector.test.js.map +1 -1
- package/dist/src/types/skill.d.ts +29 -0
- package/dist/src/types/skill.d.ts.map +1 -1
- package/dist/src/types/skill.js +11 -1
- package/dist/src/types/skill.js.map +1 -1
- package/dist/src/types.d.ts +22 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/retry.js +2 -2
- package/dist/src/utils/retry.js.map +1 -1
- package/dist/src/validation/index.js +2 -2
- package/dist/src/validation/index.js.map +1 -1
- package/dist/src/webhooks/WebhookHandler.d.ts.map +1 -1
- package/dist/src/webhooks/WebhookHandler.js.map +1 -1
- package/dist/src/webhooks/WebhookPayload.js +1 -1
- package/dist/src/webhooks/WebhookPayload.js.map +1 -1
- package/dist/tests/Analytics.integration.test.js +2 -2
- package/dist/tests/Analytics.integration.test.js.map +1 -1
- package/dist/tests/AnalyticsRepository.test.js +3 -5
- package/dist/tests/AnalyticsRepository.test.js.map +1 -1
- package/dist/tests/AnalyticsStorage.test.js.map +1 -1
- package/dist/tests/ApiPartialResponses.test.d.ts +12 -0
- package/dist/tests/ApiPartialResponses.test.d.ts.map +1 -0
- package/dist/tests/ApiPartialResponses.test.js +202 -0
- package/dist/tests/ApiPartialResponses.test.js.map +1 -0
- package/dist/tests/AuditLogger.test.js.map +1 -1
- package/dist/tests/BenchmarkRunner.test.js +6 -6
- package/dist/tests/BenchmarkRunner.test.js.map +1 -1
- package/dist/tests/CacheSecurity.test.js.map +1 -1
- package/dist/tests/CodebaseAnalyzer.test.js.map +1 -1
- package/dist/tests/DailyIndexPipeline.test.js.map +1 -1
- package/dist/tests/EmbeddingService.test.js.map +1 -1
- package/dist/tests/GitHubIndexer.test.js +4 -3
- package/dist/tests/GitHubIndexer.test.js.map +1 -1
- package/dist/tests/MemoryProfiler.test.js +3 -3
- package/dist/tests/MemoryProfiler.test.js.map +1 -1
- package/dist/tests/QualityScorer.test.js.map +1 -1
- package/dist/tests/RateLimiter.test.js.map +1 -1
- package/dist/tests/ScraperAdapters.test.js.map +1 -1
- package/dist/tests/SecurityScanner.test.js +4 -4
- package/dist/tests/SecurityScanner.test.js.map +1 -1
- package/dist/tests/SessionManager.security.test.js +1 -1
- package/dist/tests/SessionManager.security.test.js.map +1 -1
- package/dist/tests/SessionManager.test.js +4 -4
- package/dist/tests/SessionManager.test.js.map +1 -1
- package/dist/tests/SwarmIndexer.test.js +1 -1
- package/dist/tests/SwarmIndexer.test.js.map +1 -1
- package/dist/tests/TieredCache.test.js +2 -11
- package/dist/tests/TieredCache.test.js.map +1 -1
- package/dist/tests/WebhookHandler.test.js.map +1 -1
- package/dist/tests/fixtures/api-responses/index.d.ts +119 -0
- package/dist/tests/fixtures/api-responses/index.d.ts.map +1 -0
- package/dist/tests/fixtures/api-responses/index.js +419 -0
- package/dist/tests/fixtures/api-responses/index.js.map +1 -0
- package/dist/tests/logger.test.js +1 -1
- package/dist/tests/logger.test.js.map +1 -1
- package/dist/tests/performance/LargeScalePerformance.test.js +1 -1
- package/dist/tests/performance/LargeScalePerformance.test.js.map +1 -1
- package/dist/tests/sanitization.test.js.map +1 -1
- package/dist/tests/session/SessionManager.helpers.test.d.ts +8 -0
- package/dist/tests/session/SessionManager.helpers.test.d.ts.map +1 -0
- package/dist/tests/session/SessionManager.helpers.test.js +105 -0
- package/dist/tests/session/SessionManager.helpers.test.js.map +1 -0
- package/dist/tests/sources.test.js.map +1 -1
- package/dist/tests/webhooks/WebhookHandler.idempotency.test.js +1 -1
- package/dist/tests/webhooks/WebhookHandler.idempotency.test.js.map +1 -1
- package/dist/tests/webhooks/WebhookPayload.security.test.js.map +1 -1
- package/package.json +9 -9
|
@@ -6,167 +6,16 @@
|
|
|
6
6
|
* Routes MCP tool requests through an 8-expert MoE (Mixture of Experts)
|
|
7
7
|
* network to optimize tool execution based on accuracy requirements,
|
|
8
8
|
* latency constraints, and load distribution.
|
|
9
|
-
*
|
|
10
|
-
* Features:
|
|
11
|
-
* - O(1) routing decisions with LRU caching
|
|
12
|
-
* - V3 MoE integration with fallback to local scoring
|
|
13
|
-
* - Adaptive load balancing across experts
|
|
14
|
-
* - Health monitoring and circuit breaker patterns
|
|
15
|
-
* - Feature flags for gradual rollout
|
|
16
|
-
* - Prometheus-compatible metrics
|
|
17
|
-
*
|
|
18
|
-
* Performance targets:
|
|
19
|
-
* - 2.8-4.4x speed improvement
|
|
20
|
-
* - <5ms routing overhead (P95)
|
|
21
|
-
* - >60% cache hit rate
|
|
22
|
-
*
|
|
23
|
-
* @example
|
|
24
|
-
* ```typescript
|
|
25
|
-
* const router = new SONARouter()
|
|
26
|
-
* await router.initialize()
|
|
27
|
-
*
|
|
28
|
-
* const decision = await router.route({
|
|
29
|
-
* requestId: 'req-123',
|
|
30
|
-
* tool: 'search',
|
|
31
|
-
* arguments: { query: 'testing skills' },
|
|
32
|
-
* timestamp: new Date(),
|
|
33
|
-
* })
|
|
34
|
-
*
|
|
35
|
-
* console.log(decision.expertId) // 'accuracy-semantic'
|
|
36
|
-
* console.log(decision.confidence) // 0.92
|
|
37
|
-
* ```
|
|
38
9
|
*/
|
|
39
10
|
import { DEFAULT_SONA_CONFIG, TOOL_WEIGHTS } from './types.js';
|
|
40
|
-
|
|
41
|
-
//
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Simple LRU cache for routing decisions
|
|
45
|
-
*/
|
|
46
|
-
class LRUCache {
|
|
47
|
-
cache;
|
|
48
|
-
maxSize;
|
|
49
|
-
ttlMs;
|
|
50
|
-
constructor(maxSize, ttlMs) {
|
|
51
|
-
this.cache = new Map();
|
|
52
|
-
this.maxSize = maxSize;
|
|
53
|
-
this.ttlMs = ttlMs;
|
|
54
|
-
}
|
|
55
|
-
get(key) {
|
|
56
|
-
const entry = this.cache.get(key);
|
|
57
|
-
if (!entry)
|
|
58
|
-
return null;
|
|
59
|
-
// Check TTL
|
|
60
|
-
if (Date.now() - entry.timestamp > this.ttlMs) {
|
|
61
|
-
this.cache.delete(key);
|
|
62
|
-
return null;
|
|
63
|
-
}
|
|
64
|
-
// Move to end (most recently used)
|
|
65
|
-
this.cache.delete(key);
|
|
66
|
-
this.cache.set(key, entry);
|
|
67
|
-
return entry.value;
|
|
68
|
-
}
|
|
69
|
-
set(key, value) {
|
|
70
|
-
// Remove oldest if at capacity
|
|
71
|
-
if (this.cache.size >= this.maxSize) {
|
|
72
|
-
const firstKey = this.cache.keys().next().value;
|
|
73
|
-
if (firstKey !== undefined) {
|
|
74
|
-
this.cache.delete(firstKey);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
this.cache.set(key, { value, timestamp: Date.now() });
|
|
78
|
-
}
|
|
79
|
-
clear() {
|
|
80
|
-
this.cache.clear();
|
|
81
|
-
}
|
|
82
|
-
get size() {
|
|
83
|
-
return this.cache.size;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
// ============================================================================
|
|
87
|
-
// Metrics Collector
|
|
88
|
-
// ============================================================================
|
|
89
|
-
/**
|
|
90
|
-
* Simple metrics collector for SONA routing
|
|
91
|
-
*/
|
|
92
|
-
class MetricsCollector {
|
|
93
|
-
totalRequests = 0;
|
|
94
|
-
requestsByTool = {};
|
|
95
|
-
requestsByExpert = {};
|
|
96
|
-
cacheHits = 0;
|
|
97
|
-
cacheMisses = 0;
|
|
98
|
-
totalRoutingTimeMs = 0;
|
|
99
|
-
totalExecutionTimeMs = 0;
|
|
100
|
-
errorCount = 0;
|
|
101
|
-
errorsByType = {};
|
|
102
|
-
recordRouting(tool, expertId, routingTimeMs, cacheHit) {
|
|
103
|
-
this.totalRequests++;
|
|
104
|
-
this.requestsByTool[tool] = (this.requestsByTool[tool] || 0) + 1;
|
|
105
|
-
this.requestsByExpert[expertId] = (this.requestsByExpert[expertId] || 0) + 1;
|
|
106
|
-
this.totalRoutingTimeMs += routingTimeMs;
|
|
107
|
-
if (cacheHit) {
|
|
108
|
-
this.cacheHits++;
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
this.cacheMisses++;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
recordExecution(executionTimeMs) {
|
|
115
|
-
this.totalExecutionTimeMs += executionTimeMs;
|
|
116
|
-
}
|
|
117
|
-
recordError(errorType) {
|
|
118
|
-
this.errorCount++;
|
|
119
|
-
this.errorsByType[errorType] = (this.errorsByType[errorType] || 0) + 1;
|
|
120
|
-
}
|
|
121
|
-
getMetrics() {
|
|
122
|
-
const totalCache = this.cacheHits + this.cacheMisses;
|
|
123
|
-
const avgRoutingMs = this.totalRequests > 0 ? this.totalRoutingTimeMs / this.totalRequests : 0;
|
|
124
|
-
const avgExecutionMs = this.totalRequests > 0 ? this.totalExecutionTimeMs / this.totalRequests : 0;
|
|
125
|
-
return {
|
|
126
|
-
totalRequests: this.totalRequests,
|
|
127
|
-
requestsByTool: this.requestsByTool,
|
|
128
|
-
requestsByExpert: this.requestsByExpert,
|
|
129
|
-
cache: {
|
|
130
|
-
hits: this.cacheHits,
|
|
131
|
-
misses: this.cacheMisses,
|
|
132
|
-
hitRate: totalCache > 0 ? this.cacheHits / totalCache : 0,
|
|
133
|
-
},
|
|
134
|
-
errors: {
|
|
135
|
-
total: this.errorCount,
|
|
136
|
-
byType: this.errorsByType,
|
|
137
|
-
byExpert: {},
|
|
138
|
-
},
|
|
139
|
-
speedImprovement: {
|
|
140
|
-
baselineMs: 100, // Baseline without SONA
|
|
141
|
-
currentMs: avgRoutingMs + avgExecutionMs,
|
|
142
|
-
improvementRatio: avgRoutingMs + avgExecutionMs > 0 ? 100 / (avgRoutingMs + avgExecutionMs) : 1,
|
|
143
|
-
},
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
reset() {
|
|
147
|
-
this.totalRequests = 0;
|
|
148
|
-
this.requestsByTool = {};
|
|
149
|
-
this.requestsByExpert = {};
|
|
150
|
-
this.cacheHits = 0;
|
|
151
|
-
this.cacheMisses = 0;
|
|
152
|
-
this.totalRoutingTimeMs = 0;
|
|
153
|
-
this.totalExecutionTimeMs = 0;
|
|
154
|
-
this.errorCount = 0;
|
|
155
|
-
this.errorsByType = {};
|
|
156
|
-
}
|
|
157
|
-
}
|
|
11
|
+
import { LRUCache, MetricsCollector, hashObject } from './SONARouter.helpers.js';
|
|
12
|
+
// Re-export helpers for public API
|
|
13
|
+
export { LRUCache, MetricsCollector, shouldUseSONARouting, isHighConfidenceDecision, usedFallback, } from './SONARouter.helpers.js';
|
|
158
14
|
// ============================================================================
|
|
159
15
|
// Main SONARouter Class
|
|
160
16
|
// ============================================================================
|
|
161
17
|
/**
|
|
162
18
|
* SONARouter routes MCP tool requests through an 8-expert MoE network.
|
|
163
|
-
*
|
|
164
|
-
* The router uses a weighted scoring algorithm to select the optimal expert
|
|
165
|
-
* for each request based on tool-specific weight profiles and real-time
|
|
166
|
-
* expert health/load status.
|
|
167
|
-
*
|
|
168
|
-
* When V3 MoE integration is enabled, it leverages Claude-Flow's neural
|
|
169
|
-
* routing for improved accuracy. Otherwise, it uses the local scoring algorithm.
|
|
170
19
|
*/
|
|
171
20
|
export class SONARouter {
|
|
172
21
|
config;
|
|
@@ -178,69 +27,41 @@ export class SONARouter {
|
|
|
178
27
|
v3SONA = null;
|
|
179
28
|
initialized = false;
|
|
180
29
|
healthCheckInterval = null;
|
|
181
|
-
/**
|
|
182
|
-
* Create a new SONARouter instance.
|
|
183
|
-
*
|
|
184
|
-
* @param config - Router configuration
|
|
185
|
-
*/
|
|
186
30
|
constructor(config = {}) {
|
|
187
31
|
this.config = {
|
|
188
32
|
...DEFAULT_SONA_CONFIG,
|
|
189
33
|
...config,
|
|
190
|
-
fallback: {
|
|
191
|
-
...DEFAULT_SONA_CONFIG.fallback,
|
|
192
|
-
...config.fallback,
|
|
193
|
-
},
|
|
34
|
+
fallback: { ...DEFAULT_SONA_CONFIG.fallback, ...config.fallback },
|
|
194
35
|
};
|
|
195
|
-
// Initialize expert registry
|
|
196
36
|
this.experts = new Map();
|
|
197
37
|
this.expertStatus = new Map();
|
|
198
38
|
for (const expert of this.config.experts) {
|
|
199
39
|
this.experts.set(expert.id, expert);
|
|
200
40
|
this.expertStatus.set(expert.id, this.createInitialStatus(expert.id));
|
|
201
41
|
}
|
|
202
|
-
// Initialize cache and metrics
|
|
203
42
|
this.cache = new LRUCache(this.config.cacheMaxSize, this.config.cacheTtlMs);
|
|
204
43
|
this.metrics = new MetricsCollector();
|
|
205
44
|
}
|
|
206
45
|
// ==========================================================================
|
|
207
46
|
// Initialization
|
|
208
47
|
// ==========================================================================
|
|
209
|
-
/**
|
|
210
|
-
* Initialize the router with V3 MoE integration.
|
|
211
|
-
*
|
|
212
|
-
* Attempts to load V3 MoERouter and SONAOptimizer.
|
|
213
|
-
* Falls back to local scoring if V3 is unavailable.
|
|
214
|
-
*/
|
|
215
48
|
async initialize() {
|
|
216
|
-
if (this.initialized)
|
|
49
|
+
if (this.initialized)
|
|
217
50
|
return;
|
|
218
|
-
}
|
|
219
|
-
// Try to load V3 MoE if enabled
|
|
220
51
|
if (this.config.useV3MoE !== false) {
|
|
221
52
|
await this.initializeV3MoE();
|
|
222
53
|
}
|
|
223
|
-
// Start health check loop
|
|
224
54
|
if (this.config.healthCheckIntervalMs > 0) {
|
|
225
55
|
this.startHealthChecks();
|
|
226
56
|
}
|
|
227
57
|
this.initialized = true;
|
|
228
58
|
}
|
|
229
|
-
/**
|
|
230
|
-
* Check if router is initialized
|
|
231
|
-
*/
|
|
232
59
|
isInitialized() {
|
|
233
60
|
return this.initialized;
|
|
234
61
|
}
|
|
235
|
-
/**
|
|
236
|
-
* Check if V3 MoE is being used
|
|
237
|
-
*/
|
|
238
62
|
isUsingV3MoE() {
|
|
239
63
|
return this.v3MoE !== null;
|
|
240
64
|
}
|
|
241
|
-
/**
|
|
242
|
-
* Shutdown the router and cleanup resources
|
|
243
|
-
*/
|
|
244
65
|
async shutdown() {
|
|
245
66
|
if (this.healthCheckInterval) {
|
|
246
67
|
clearInterval(this.healthCheckInterval);
|
|
@@ -252,16 +73,9 @@ export class SONARouter {
|
|
|
252
73
|
// ==========================================================================
|
|
253
74
|
// Routing
|
|
254
75
|
// ==========================================================================
|
|
255
|
-
/**
|
|
256
|
-
* Route a tool request to the optimal expert.
|
|
257
|
-
*
|
|
258
|
-
* @param request - Tool request to route
|
|
259
|
-
* @returns Routing decision with selected expert and confidence
|
|
260
|
-
*/
|
|
261
76
|
async route(request) {
|
|
262
77
|
this.ensureInitialized();
|
|
263
78
|
const startTime = Date.now();
|
|
264
|
-
// Check cache first
|
|
265
79
|
if (this.config.enableCache && request.priority !== 'high') {
|
|
266
80
|
const cacheKey = this.generateCacheKey(request);
|
|
267
81
|
const cached = this.cache.get(cacheKey);
|
|
@@ -271,43 +85,27 @@ export class SONARouter {
|
|
|
271
85
|
return decision;
|
|
272
86
|
}
|
|
273
87
|
}
|
|
274
|
-
// Get eligible experts
|
|
275
88
|
const eligible = this.getEligibleExperts(request);
|
|
276
89
|
if (eligible.length === 0) {
|
|
277
90
|
return this.createFallbackDecision(request, 'NO_ELIGIBLE_EXPERTS', startTime);
|
|
278
91
|
}
|
|
279
|
-
// Score and select expert
|
|
280
92
|
const scoredExperts = this.scoreExperts(eligible, request);
|
|
281
93
|
const decision = this.selectBestExpert(scoredExperts, request, startTime);
|
|
282
|
-
// Cache the decision
|
|
283
94
|
if (this.config.enableCache) {
|
|
284
95
|
const cacheKey = this.generateCacheKey(request);
|
|
285
96
|
this.cache.set(cacheKey, decision);
|
|
286
97
|
}
|
|
287
|
-
// Record metrics
|
|
288
98
|
this.metrics.recordRouting(request.tool, decision.expertId, decision.decisionTimeMs, false);
|
|
289
99
|
return decision;
|
|
290
100
|
}
|
|
291
|
-
/**
|
|
292
|
-
* Execute a tool request with SONA routing.
|
|
293
|
-
*
|
|
294
|
-
* Routes the request, executes via the selected expert, and records outcome.
|
|
295
|
-
*
|
|
296
|
-
* @param request - Tool request to execute
|
|
297
|
-
* @param executor - Function to execute the tool with given expert
|
|
298
|
-
* @returns Tool response with execution metadata
|
|
299
|
-
*/
|
|
300
101
|
async executeWithRouting(request, executor) {
|
|
301
102
|
const routingStart = Date.now();
|
|
302
|
-
// Route the request
|
|
303
103
|
const decision = await this.route(request);
|
|
304
104
|
const routingTimeMs = Date.now() - routingStart;
|
|
305
|
-
// Execute with selected expert
|
|
306
105
|
const executionStart = Date.now();
|
|
307
106
|
try {
|
|
308
107
|
const data = await executor(decision.expertId, request);
|
|
309
108
|
const executionTimeMs = Date.now() - executionStart;
|
|
310
|
-
// Record success
|
|
311
109
|
this.recordOutcome(request, decision.expertId, true);
|
|
312
110
|
this.metrics.recordExecution(executionTimeMs);
|
|
313
111
|
return {
|
|
@@ -326,10 +124,8 @@ export class SONARouter {
|
|
|
326
124
|
}
|
|
327
125
|
catch (error) {
|
|
328
126
|
const executionTimeMs = Date.now() - executionStart;
|
|
329
|
-
// Record failure
|
|
330
127
|
this.recordOutcome(request, decision.expertId, false);
|
|
331
128
|
this.metrics.recordError(error instanceof Error ? error.name : 'UnknownError');
|
|
332
|
-
// Try fallback if enabled
|
|
333
129
|
if (this.config.fallback.enabled && decision.expertId !== 'direct-fallback') {
|
|
334
130
|
try {
|
|
335
131
|
const fallbackData = await executor('direct-fallback', request);
|
|
@@ -372,43 +168,27 @@ export class SONARouter {
|
|
|
372
168
|
// ==========================================================================
|
|
373
169
|
// Expert Management
|
|
374
170
|
// ==========================================================================
|
|
375
|
-
/**
|
|
376
|
-
* Get current status of all experts
|
|
377
|
-
*/
|
|
378
171
|
getExpertStatus() {
|
|
379
172
|
return Array.from(this.expertStatus.values());
|
|
380
173
|
}
|
|
381
|
-
/**
|
|
382
|
-
* Get status of a specific expert
|
|
383
|
-
*/
|
|
384
174
|
getExpert(expertId) {
|
|
385
175
|
return this.experts.get(expertId);
|
|
386
176
|
}
|
|
387
|
-
/**
|
|
388
|
-
* Update expert health status
|
|
389
|
-
*/
|
|
390
177
|
updateExpertHealth(expertId, state, load) {
|
|
391
178
|
const status = this.expertStatus.get(expertId);
|
|
392
179
|
if (status) {
|
|
393
180
|
status.state = state;
|
|
394
|
-
if (load !== undefined)
|
|
181
|
+
if (load !== undefined)
|
|
395
182
|
status.load = load;
|
|
396
|
-
}
|
|
397
183
|
status.lastHealthCheck = new Date();
|
|
398
184
|
}
|
|
399
185
|
}
|
|
400
186
|
// ==========================================================================
|
|
401
187
|
// Metrics
|
|
402
188
|
// ==========================================================================
|
|
403
|
-
/**
|
|
404
|
-
* Get current routing metrics
|
|
405
|
-
*/
|
|
406
189
|
getMetrics() {
|
|
407
190
|
return this.metrics.getMetrics();
|
|
408
191
|
}
|
|
409
|
-
/**
|
|
410
|
-
* Reset metrics
|
|
411
|
-
*/
|
|
412
192
|
resetMetrics() {
|
|
413
193
|
this.metrics.reset();
|
|
414
194
|
}
|
|
@@ -433,11 +213,9 @@ export class SONARouter {
|
|
|
433
213
|
}
|
|
434
214
|
async initializeV3MoE() {
|
|
435
215
|
try {
|
|
436
|
-
// Dynamic import of V3 MoE router
|
|
437
216
|
const moeModule = await import('claude-flow/v3/@claude-flow/cli/dist/src/ruvector/moe-router.js');
|
|
438
217
|
this.v3MoE = moeModule.getMoERouter();
|
|
439
218
|
await this.v3MoE.initialize();
|
|
440
|
-
// Dynamic import of V3 SONA optimizer
|
|
441
219
|
const sonaModule = await import('claude-flow/v3/@claude-flow/cli/dist/src/memory/sona-optimizer.js');
|
|
442
220
|
const sonaOptimizer = await sonaModule.getSONAOptimizer();
|
|
443
221
|
await sonaOptimizer.initialize();
|
|
@@ -445,7 +223,6 @@ export class SONARouter {
|
|
|
445
223
|
console.log('[SONARouter] V3 MoE integration initialized');
|
|
446
224
|
}
|
|
447
225
|
catch {
|
|
448
|
-
// V3 not available, use local routing
|
|
449
226
|
console.log('[SONARouter] V3 MoE not available, using local scoring algorithm');
|
|
450
227
|
this.v3MoE = null;
|
|
451
228
|
this.v3SONA = null;
|
|
@@ -457,9 +234,7 @@ export class SONARouter {
|
|
|
457
234
|
}, this.config.healthCheckIntervalMs);
|
|
458
235
|
}
|
|
459
236
|
runHealthChecks() {
|
|
460
|
-
// Simple health check - in production would ping actual expert endpoints
|
|
461
237
|
for (const [_expertId, status] of this.expertStatus) {
|
|
462
|
-
// Simulate health based on load
|
|
463
238
|
if (status.load > 0.9) {
|
|
464
239
|
status.state = 'degraded';
|
|
465
240
|
}
|
|
@@ -473,36 +248,19 @@ export class SONARouter {
|
|
|
473
248
|
}
|
|
474
249
|
}
|
|
475
250
|
generateCacheKey(request) {
|
|
476
|
-
|
|
477
|
-
const argsHash = this.hashObject(request.arguments);
|
|
251
|
+
const argsHash = hashObject(request.arguments);
|
|
478
252
|
return `${request.tool}:${argsHash}`;
|
|
479
253
|
}
|
|
480
|
-
hashObject(obj) {
|
|
481
|
-
const str = JSON.stringify(obj, Object.keys(obj).sort());
|
|
482
|
-
let hash = 0;
|
|
483
|
-
for (let i = 0; i < str.length; i++) {
|
|
484
|
-
const char = str.charCodeAt(i);
|
|
485
|
-
hash = (hash << 5) - hash + char;
|
|
486
|
-
hash = hash & hash;
|
|
487
|
-
}
|
|
488
|
-
return hash.toString(36);
|
|
489
|
-
}
|
|
490
254
|
getEligibleExperts(request) {
|
|
491
255
|
const eligible = [];
|
|
492
256
|
for (const [, expert] of this.experts) {
|
|
493
|
-
|
|
494
|
-
if (!expert.capabilities.supportedTools.includes(request.tool)) {
|
|
257
|
+
if (!expert.capabilities.supportedTools.includes(request.tool))
|
|
495
258
|
continue;
|
|
496
|
-
}
|
|
497
|
-
// Check health
|
|
498
259
|
const status = this.expertStatus.get(expert.id);
|
|
499
|
-
if (!status || status.state === 'unhealthy')
|
|
260
|
+
if (!status || status.state === 'unhealthy')
|
|
500
261
|
continue;
|
|
501
|
-
|
|
502
|
-
// Check load
|
|
503
|
-
if (status.load >= 0.95) {
|
|
262
|
+
if (status.load >= 0.95)
|
|
504
263
|
continue;
|
|
505
|
-
}
|
|
506
264
|
eligible.push(expert);
|
|
507
265
|
}
|
|
508
266
|
return eligible;
|
|
@@ -515,47 +273,31 @@ export class SONARouter {
|
|
|
515
273
|
const scores = this.calculateScores(expert, status, toolWeights, request);
|
|
516
274
|
scoredExperts.push({ expert, scores });
|
|
517
275
|
}
|
|
518
|
-
// Sort by total score descending
|
|
519
276
|
scoredExperts.sort((a, b) => b.scores.totalScore - a.scores.totalScore);
|
|
520
277
|
return scoredExperts;
|
|
521
278
|
}
|
|
522
279
|
calculateScores(expert, status, toolWeights, request) {
|
|
523
|
-
// Accuracy score based on historical performance
|
|
524
280
|
const accuracyScore = expert.capabilities.accuracyScore * (1 - status.load * 0.1);
|
|
525
|
-
|
|
526
|
-
const latencyBaseline = 200; // ms
|
|
281
|
+
const latencyBaseline = 200;
|
|
527
282
|
let latencyScore = Math.max(0, 1 - expert.capabilities.avgLatencyMs / latencyBaseline);
|
|
528
|
-
// Apply latency constraint if specified
|
|
529
283
|
if (request.maxLatencyMs && expert.capabilities.avgLatencyMs > request.maxLatencyMs) {
|
|
530
|
-
latencyScore = latencyScore * 0.5;
|
|
284
|
+
latencyScore = latencyScore * 0.5;
|
|
531
285
|
}
|
|
532
|
-
// Reliability score based on success rate
|
|
533
286
|
const reliabilityScore = status.successRate;
|
|
534
|
-
// Efficiency score (inverse of load)
|
|
535
287
|
const efficiencyScore = 1 - status.load;
|
|
536
|
-
// Calculate weighted total
|
|
537
288
|
let totalScore = toolWeights.accuracy * accuracyScore +
|
|
538
289
|
toolWeights.latency * latencyScore +
|
|
539
290
|
toolWeights.reliability * reliabilityScore +
|
|
540
291
|
toolWeights.efficiency * efficiencyScore;
|
|
541
|
-
// Priority boost for specialized experts
|
|
542
292
|
if (expert.type === 'specialized' && expert.capabilities.supportedTools.length === 1) {
|
|
543
293
|
totalScore = totalScore * 1.1;
|
|
544
294
|
}
|
|
545
|
-
// Priority tiebreaker
|
|
546
295
|
totalScore = totalScore + expert.priority / 10000;
|
|
547
|
-
return {
|
|
548
|
-
accuracyScore,
|
|
549
|
-
latencyScore,
|
|
550
|
-
reliabilityScore,
|
|
551
|
-
efficiencyScore,
|
|
552
|
-
totalScore,
|
|
553
|
-
};
|
|
296
|
+
return { accuracyScore, latencyScore, reliabilityScore, efficiencyScore, totalScore };
|
|
554
297
|
}
|
|
555
298
|
selectBestExpert(scoredExperts, request, startTime) {
|
|
556
299
|
const selected = scoredExperts[0];
|
|
557
|
-
const alternatives = scoredExperts.slice(1, 4);
|
|
558
|
-
// Calculate confidence based on score margin
|
|
300
|
+
const alternatives = scoredExperts.slice(1, 4);
|
|
559
301
|
let confidence;
|
|
560
302
|
if (alternatives.length > 0) {
|
|
561
303
|
const scoreMargin = selected.scores.totalScore - alternatives[0].scores.totalScore;
|
|
@@ -572,7 +314,7 @@ export class SONARouter {
|
|
|
572
314
|
alternatives: alternatives.map((alt) => ({
|
|
573
315
|
expertId: alt.expert.id,
|
|
574
316
|
score: alt.scores.totalScore,
|
|
575
|
-
reason:
|
|
317
|
+
reason: `${alt.expert.name}: score ${alt.scores.totalScore.toFixed(3)}`,
|
|
576
318
|
})),
|
|
577
319
|
reason: this.generateDecisionReason(selected.expert, selected.scores, request.tool),
|
|
578
320
|
decidedAt: new Date(),
|
|
@@ -585,9 +327,6 @@ export class SONARouter {
|
|
|
585
327
|
return (`Selected ${expert.name} (${expert.type}) for ${tool}: ` +
|
|
586
328
|
`optimized for ${primaryFactor} with score ${scores.totalScore.toFixed(3)}`);
|
|
587
329
|
}
|
|
588
|
-
generateAlternativeReason(expert, scores) {
|
|
589
|
-
return `${expert.name}: score ${scores.totalScore.toFixed(3)}`;
|
|
590
|
-
}
|
|
591
330
|
createFallbackDecision(request, reason, startTime) {
|
|
592
331
|
return {
|
|
593
332
|
requestId: request.requestId,
|
|
@@ -607,13 +346,10 @@ export class SONARouter {
|
|
|
607
346
|
};
|
|
608
347
|
}
|
|
609
348
|
recordOutcome(request, expertId, success) {
|
|
610
|
-
// Update expert status
|
|
611
349
|
const status = this.expertStatus.get(expertId);
|
|
612
350
|
if (status) {
|
|
613
|
-
// Update success rate (rolling average of last 100)
|
|
614
351
|
status.successRate = status.successRate * 0.99 + (success ? 0.01 : 0);
|
|
615
352
|
}
|
|
616
|
-
// Update V3 SONA if available
|
|
617
353
|
if (this.v3SONA) {
|
|
618
354
|
this.v3SONA.processTrajectoryOutcome({
|
|
619
355
|
trajectoryId: request.requestId,
|
|
@@ -622,14 +358,13 @@ export class SONARouter {
|
|
|
622
358
|
success,
|
|
623
359
|
});
|
|
624
360
|
}
|
|
625
|
-
// Update V3 MoE weights if available
|
|
626
361
|
if (this.v3MoE) {
|
|
627
362
|
this.v3MoE.updateExpertWeights(expertId, success ? 1.0 : -0.5);
|
|
628
363
|
}
|
|
629
364
|
}
|
|
630
365
|
}
|
|
631
366
|
// ============================================================================
|
|
632
|
-
// Factory
|
|
367
|
+
// Factory Function
|
|
633
368
|
// ============================================================================
|
|
634
369
|
/**
|
|
635
370
|
* Create and initialize a SONARouter instance
|
|
@@ -639,41 +374,4 @@ export async function createSONARouter(config) {
|
|
|
639
374
|
await router.initialize();
|
|
640
375
|
return router;
|
|
641
376
|
}
|
|
642
|
-
/**
|
|
643
|
-
* Check if SONA routing should be used for a request
|
|
644
|
-
*/
|
|
645
|
-
export function shouldUseSONARouting(tool, featureFlags, userTier) {
|
|
646
|
-
// Master switch
|
|
647
|
-
if (!featureFlags['sona.enabled']) {
|
|
648
|
-
return false;
|
|
649
|
-
}
|
|
650
|
-
// Tool-specific flag
|
|
651
|
-
const toolFlag = `sona.tools.${tool}`;
|
|
652
|
-
if (!featureFlags[toolFlag]) {
|
|
653
|
-
return false;
|
|
654
|
-
}
|
|
655
|
-
// Tier check
|
|
656
|
-
if (userTier) {
|
|
657
|
-
const tierFlag = `sona.tiers.${userTier}`;
|
|
658
|
-
if (!featureFlags[tierFlag]) {
|
|
659
|
-
return false;
|
|
660
|
-
}
|
|
661
|
-
}
|
|
662
|
-
return true;
|
|
663
|
-
}
|
|
664
|
-
// ============================================================================
|
|
665
|
-
// Type Guards
|
|
666
|
-
// ============================================================================
|
|
667
|
-
/**
|
|
668
|
-
* Check if a routing decision indicates high confidence
|
|
669
|
-
*/
|
|
670
|
-
export function isHighConfidenceDecision(decision) {
|
|
671
|
-
return decision.confidence >= 0.8;
|
|
672
|
-
}
|
|
673
|
-
/**
|
|
674
|
-
* Check if a routing decision used fallback
|
|
675
|
-
*/
|
|
676
|
-
export function usedFallback(decision) {
|
|
677
|
-
return decision.expertId === 'direct-fallback';
|
|
678
|
-
}
|
|
679
377
|
//# sourceMappingURL=SONARouter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SONARouter.js","sourceRoot":"","sources":["../../../src/routing/SONARouter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SONARouter.js","sourceRoot":"","sources":["../../../src/routing/SONARouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,6 @@ const _rateLimitTracker = {
|
|
|
12
12
|
currentSearch: 0,
|
|
13
13
|
};
|
|
14
14
|
// Forward declaration for getRateLimitStatus - assigned after getGitHubHeaders is defined
|
|
15
|
-
// eslint-disable-next-line prefer-const
|
|
16
15
|
let getRateLimitStatus;
|
|
17
16
|
/**
|
|
18
17
|
* Display rate limit status from response headers (lightweight, no API call).
|