agentic-qe 2.3.4 → 2.4.0
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/CHANGELOG.md +72 -0
- package/README.md +1 -1
- package/dist/agents/ApiContractValidatorAgent.d.ts +5 -0
- package/dist/agents/ApiContractValidatorAgent.d.ts.map +1 -1
- package/dist/agents/ApiContractValidatorAgent.js +41 -0
- package/dist/agents/ApiContractValidatorAgent.js.map +1 -1
- package/dist/agents/BaseAgent.d.ts +56 -49
- package/dist/agents/BaseAgent.d.ts.map +1 -1
- package/dist/agents/BaseAgent.js +208 -604
- package/dist/agents/BaseAgent.js.map +1 -1
- package/dist/agents/CodeComplexityAnalyzerAgent.d.ts +5 -0
- package/dist/agents/CodeComplexityAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/CodeComplexityAnalyzerAgent.js +47 -0
- package/dist/agents/CodeComplexityAnalyzerAgent.js.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.d.ts +26 -0
- package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.js +149 -1
- package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
- package/dist/agents/DeploymentReadinessAgent.d.ts +5 -0
- package/dist/agents/DeploymentReadinessAgent.d.ts.map +1 -1
- package/dist/agents/DeploymentReadinessAgent.js +41 -0
- package/dist/agents/DeploymentReadinessAgent.js.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.d.ts +7 -2
- package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.js +48 -104
- package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
- package/dist/agents/FleetCommanderAgent.d.ts +5 -0
- package/dist/agents/FleetCommanderAgent.d.ts.map +1 -1
- package/dist/agents/FleetCommanderAgent.js +51 -0
- package/dist/agents/FleetCommanderAgent.js.map +1 -1
- package/dist/agents/PerformanceTesterAgent.d.ts +5 -0
- package/dist/agents/PerformanceTesterAgent.d.ts.map +1 -1
- package/dist/agents/PerformanceTesterAgent.js +44 -0
- package/dist/agents/PerformanceTesterAgent.js.map +1 -1
- package/dist/agents/ProductionIntelligenceAgent.d.ts +5 -0
- package/dist/agents/ProductionIntelligenceAgent.d.ts.map +1 -1
- package/dist/agents/ProductionIntelligenceAgent.js +46 -0
- package/dist/agents/ProductionIntelligenceAgent.js.map +1 -1
- package/dist/agents/QXPartnerAgent.js +52 -0
- package/dist/agents/QXPartnerAgent.js.map +1 -1
- package/dist/agents/QualityAnalyzerAgent.d.ts +5 -0
- package/dist/agents/QualityAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/QualityAnalyzerAgent.js +45 -0
- package/dist/agents/QualityAnalyzerAgent.js.map +1 -1
- package/dist/agents/QualityGateAgent.d.ts +40 -0
- package/dist/agents/QualityGateAgent.d.ts.map +1 -1
- package/dist/agents/QualityGateAgent.js +227 -1
- package/dist/agents/QualityGateAgent.js.map +1 -1
- package/dist/agents/RegressionRiskAnalyzerAgent.d.ts +5 -0
- package/dist/agents/RegressionRiskAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/RegressionRiskAnalyzerAgent.js +46 -0
- package/dist/agents/RegressionRiskAnalyzerAgent.js.map +1 -1
- package/dist/agents/RequirementsValidatorAgent.d.ts +5 -0
- package/dist/agents/RequirementsValidatorAgent.d.ts.map +1 -1
- package/dist/agents/RequirementsValidatorAgent.js +42 -0
- package/dist/agents/RequirementsValidatorAgent.js.map +1 -1
- package/dist/agents/SecurityScannerAgent.d.ts +5 -0
- package/dist/agents/SecurityScannerAgent.d.ts.map +1 -1
- package/dist/agents/SecurityScannerAgent.js +39 -0
- package/dist/agents/SecurityScannerAgent.js.map +1 -1
- package/dist/agents/TestDataArchitectAgent.d.ts +5 -0
- package/dist/agents/TestDataArchitectAgent.d.ts.map +1 -1
- package/dist/agents/TestDataArchitectAgent.js +46 -0
- package/dist/agents/TestDataArchitectAgent.js.map +1 -1
- package/dist/agents/TestExecutorAgent.d.ts +6 -1
- package/dist/agents/TestExecutorAgent.d.ts.map +1 -1
- package/dist/agents/TestExecutorAgent.js +52 -46
- package/dist/agents/TestExecutorAgent.js.map +1 -1
- package/dist/agents/TestGeneratorAgent.d.ts +5 -0
- package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
- package/dist/agents/TestGeneratorAgent.js +51 -35
- package/dist/agents/TestGeneratorAgent.js.map +1 -1
- package/dist/agents/adapters/CoordinatorAdapter.d.ts +47 -0
- package/dist/agents/adapters/CoordinatorAdapter.d.ts.map +1 -0
- package/dist/agents/adapters/CoordinatorAdapter.js +266 -0
- package/dist/agents/adapters/CoordinatorAdapter.js.map +1 -0
- package/dist/agents/adapters/LearningEngineAdapter.d.ts +45 -0
- package/dist/agents/adapters/LearningEngineAdapter.d.ts.map +1 -0
- package/dist/agents/adapters/LearningEngineAdapter.js +279 -0
- package/dist/agents/adapters/LearningEngineAdapter.js.map +1 -0
- package/dist/agents/adapters/LifecycleManagerAdapter.d.ts +45 -0
- package/dist/agents/adapters/LifecycleManagerAdapter.d.ts.map +1 -0
- package/dist/agents/adapters/LifecycleManagerAdapter.js +128 -0
- package/dist/agents/adapters/LifecycleManagerAdapter.js.map +1 -0
- package/dist/agents/adapters/MemoryServiceAdapter.d.ts +96 -0
- package/dist/agents/adapters/MemoryServiceAdapter.d.ts.map +1 -0
- package/dist/agents/adapters/MemoryServiceAdapter.js +266 -0
- package/dist/agents/adapters/MemoryServiceAdapter.js.map +1 -0
- package/dist/agents/adapters/index.d.ts +14 -0
- package/dist/agents/adapters/index.d.ts.map +1 -0
- package/dist/agents/adapters/index.js +25 -0
- package/dist/agents/adapters/index.js.map +1 -0
- package/dist/agents/lifecycle/AgentLifecycleManager.d.ts.map +1 -1
- package/dist/agents/lifecycle/AgentLifecycleManager.js +17 -8
- package/dist/agents/lifecycle/AgentLifecycleManager.js.map +1 -1
- package/dist/cli/index.js +68 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/core/cache/BinaryCacheBuilder.d.ts +84 -0
- package/dist/core/cache/BinaryCacheBuilder.d.ts.map +1 -0
- package/dist/core/cache/BinaryCacheBuilder.js +225 -0
- package/dist/core/cache/BinaryCacheBuilder.js.map +1 -0
- package/dist/core/cache/BinaryCacheManager.d.ts +142 -0
- package/dist/core/cache/BinaryCacheManager.d.ts.map +1 -0
- package/dist/core/cache/BinaryCacheManager.js +354 -0
- package/dist/core/cache/BinaryCacheManager.js.map +1 -0
- package/dist/core/cache/BinaryCacheReader.d.ts +129 -0
- package/dist/core/cache/BinaryCacheReader.d.ts.map +1 -0
- package/dist/core/cache/BinaryCacheReader.js +243 -0
- package/dist/core/cache/BinaryCacheReader.js.map +1 -0
- package/dist/core/cache/BinaryMetadataCache.d.ts +533 -0
- package/dist/core/cache/BinaryMetadataCache.d.ts.map +1 -0
- package/dist/core/cache/BinaryMetadataCache.js +142 -0
- package/dist/core/cache/BinaryMetadataCache.js.map +1 -0
- package/dist/core/cache/CacheInvalidator.d.ts +103 -0
- package/dist/core/cache/CacheInvalidator.d.ts.map +1 -0
- package/dist/core/cache/CacheInvalidator.js +152 -0
- package/dist/core/cache/CacheInvalidator.js.map +1 -0
- package/dist/core/cache/CacheValidator.d.ts +69 -0
- package/dist/core/cache/CacheValidator.d.ts.map +1 -0
- package/dist/core/cache/CacheValidator.js +189 -0
- package/dist/core/cache/CacheValidator.js.map +1 -0
- package/dist/core/cache/MessagePackSerializer.d.ts +163 -0
- package/dist/core/cache/MessagePackSerializer.d.ts.map +1 -0
- package/dist/core/cache/MessagePackSerializer.js +274 -0
- package/dist/core/cache/MessagePackSerializer.js.map +1 -0
- package/dist/core/cache/index.d.ts +58 -0
- package/dist/core/cache/index.d.ts.map +1 -0
- package/dist/core/cache/index.js +102 -0
- package/dist/core/cache/index.js.map +1 -0
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +18 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/memory/HNSWVectorMemory.js +1 -1
- package/dist/core/memory/PatternStoreFactory.d.ts +28 -0
- package/dist/core/memory/PatternStoreFactory.d.ts.map +1 -1
- package/dist/core/memory/PatternStoreFactory.js +68 -3
- package/dist/core/memory/PatternStoreFactory.js.map +1 -1
- package/dist/core/platform/FileOperations.d.ts +124 -0
- package/dist/core/platform/FileOperations.d.ts.map +1 -0
- package/dist/core/platform/FileOperations.js +371 -0
- package/dist/core/platform/FileOperations.js.map +1 -0
- package/dist/core/platform/PlatformDetector.d.ts +53 -0
- package/dist/core/platform/PlatformDetector.d.ts.map +1 -0
- package/dist/core/platform/PlatformDetector.js +251 -0
- package/dist/core/platform/PlatformDetector.js.map +1 -0
- package/dist/core/platform/index.d.ts +12 -0
- package/dist/core/platform/index.d.ts.map +1 -0
- package/dist/core/platform/index.js +28 -0
- package/dist/core/platform/index.js.map +1 -0
- package/dist/core/strategies/AcceleratedLearningStrategy.d.ts +74 -0
- package/dist/core/strategies/AcceleratedLearningStrategy.d.ts.map +1 -0
- package/dist/core/strategies/AcceleratedLearningStrategy.js +200 -0
- package/dist/core/strategies/AcceleratedLearningStrategy.js.map +1 -0
- package/dist/core/strategies/AgentCoordinationStrategy.d.ts +157 -0
- package/dist/core/strategies/AgentCoordinationStrategy.d.ts.map +1 -0
- package/dist/core/strategies/AgentCoordinationStrategy.js +12 -0
- package/dist/core/strategies/AgentCoordinationStrategy.js.map +1 -0
- package/dist/core/strategies/AgentLearningStrategy.d.ts +200 -0
- package/dist/core/strategies/AgentLearningStrategy.d.ts.map +1 -0
- package/dist/core/strategies/AgentLearningStrategy.js +13 -0
- package/dist/core/strategies/AgentLearningStrategy.js.map +1 -0
- package/dist/core/strategies/AgentLifecycleStrategy.d.ts +116 -0
- package/dist/core/strategies/AgentLifecycleStrategy.d.ts.map +1 -0
- package/dist/core/strategies/AgentLifecycleStrategy.js +12 -0
- package/dist/core/strategies/AgentLifecycleStrategy.js.map +1 -0
- package/dist/core/strategies/AgentMemoryStrategy.d.ts +154 -0
- package/dist/core/strategies/AgentMemoryStrategy.d.ts.map +1 -0
- package/dist/core/strategies/AgentMemoryStrategy.js +13 -0
- package/dist/core/strategies/AgentMemoryStrategy.js.map +1 -0
- package/dist/core/strategies/DefaultCoordinationStrategy.d.ts +105 -0
- package/dist/core/strategies/DefaultCoordinationStrategy.d.ts.map +1 -0
- package/dist/core/strategies/DefaultCoordinationStrategy.js +332 -0
- package/dist/core/strategies/DefaultCoordinationStrategy.js.map +1 -0
- package/dist/core/strategies/DefaultLearningStrategy.d.ts +120 -0
- package/dist/core/strategies/DefaultLearningStrategy.d.ts.map +1 -0
- package/dist/core/strategies/DefaultLearningStrategy.js +365 -0
- package/dist/core/strategies/DefaultLearningStrategy.js.map +1 -0
- package/dist/core/strategies/DefaultLifecycleStrategy.d.ts +129 -0
- package/dist/core/strategies/DefaultLifecycleStrategy.d.ts.map +1 -0
- package/dist/core/strategies/DefaultLifecycleStrategy.js +297 -0
- package/dist/core/strategies/DefaultLifecycleStrategy.js.map +1 -0
- package/dist/core/strategies/DefaultMemoryStrategy.d.ts +91 -0
- package/dist/core/strategies/DefaultMemoryStrategy.d.ts.map +1 -0
- package/dist/core/strategies/DefaultMemoryStrategy.js +257 -0
- package/dist/core/strategies/DefaultMemoryStrategy.js.map +1 -0
- package/dist/core/strategies/DistributedMemoryStrategy.d.ts +85 -0
- package/dist/core/strategies/DistributedMemoryStrategy.d.ts.map +1 -0
- package/dist/core/strategies/DistributedMemoryStrategy.js +126 -0
- package/dist/core/strategies/DistributedMemoryStrategy.js.map +1 -0
- package/dist/core/strategies/index.d.ts +95 -0
- package/dist/core/strategies/index.d.ts.map +1 -0
- package/dist/core/strategies/index.js +65 -0
- package/dist/core/strategies/index.js.map +1 -0
- package/dist/learning/PerformanceOptimizer.js +2 -2
- package/dist/learning/PerformanceOptimizer.js.map +1 -1
- package/dist/learning/capture/ExperienceExtractor.d.ts +219 -0
- package/dist/learning/capture/ExperienceExtractor.d.ts.map +1 -0
- package/dist/learning/capture/ExperienceExtractor.js +536 -0
- package/dist/learning/capture/ExperienceExtractor.js.map +1 -0
- package/dist/learning/capture/ExperienceStore.d.ts +196 -0
- package/dist/learning/capture/ExperienceStore.d.ts.map +1 -0
- package/dist/learning/capture/ExperienceStore.js +453 -0
- package/dist/learning/capture/ExperienceStore.js.map +1 -0
- package/dist/learning/scheduler/SleepScheduler.d.ts +2 -0
- package/dist/learning/scheduler/SleepScheduler.d.ts.map +1 -1
- package/dist/learning/scheduler/SleepScheduler.js +2 -0
- package/dist/learning/scheduler/SleepScheduler.js.map +1 -1
- package/dist/learning/synthesis/ClusteringEngine.d.ts +122 -0
- package/dist/learning/synthesis/ClusteringEngine.d.ts.map +1 -0
- package/dist/learning/synthesis/ClusteringEngine.js +356 -0
- package/dist/learning/synthesis/ClusteringEngine.js.map +1 -0
- package/dist/learning/transfer/TransferRegistry.d.ts +245 -0
- package/dist/learning/transfer/TransferRegistry.d.ts.map +1 -0
- package/dist/learning/transfer/TransferRegistry.js +410 -0
- package/dist/learning/transfer/TransferRegistry.js.map +1 -0
- package/dist/mcp/handlers/base-handler.d.ts +28 -1
- package/dist/mcp/handlers/base-handler.d.ts.map +1 -1
- package/dist/mcp/handlers/base-handler.js +41 -0
- package/dist/mcp/handlers/base-handler.js.map +1 -1
- package/dist/mcp/handlers/task-orchestrate.d.ts +11 -0
- package/dist/mcp/handlers/task-orchestrate.d.ts.map +1 -1
- package/dist/mcp/handlers/task-orchestrate.js +297 -4
- package/dist/mcp/handlers/task-orchestrate.js.map +1 -1
- package/dist/mcp/server-instructions.d.ts +1 -1
- package/dist/mcp/server-instructions.js +1 -1
- package/dist/mcp/services/AgentRegistry.d.ts +6 -1
- package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
- package/dist/mcp/services/AgentRegistry.js +34 -3
- package/dist/mcp/services/AgentRegistry.js.map +1 -1
- package/dist/output/AIActionSuggester.d.ts +98 -0
- package/dist/output/AIActionSuggester.d.ts.map +1 -0
- package/dist/output/AIActionSuggester.js +499 -0
- package/dist/output/AIActionSuggester.js.map +1 -0
- package/dist/output/CLIOutputHelper.d.ts +169 -0
- package/dist/output/CLIOutputHelper.d.ts.map +1 -0
- package/dist/output/CLIOutputHelper.js +320 -0
- package/dist/output/CLIOutputHelper.js.map +1 -0
- package/dist/output/OutputFormatter.d.ts +764 -0
- package/dist/output/OutputFormatter.d.ts.map +1 -0
- package/dist/output/OutputFormatter.js +125 -0
- package/dist/output/OutputFormatter.js.map +1 -0
- package/dist/output/OutputFormatterImpl.d.ts +131 -0
- package/dist/output/OutputFormatterImpl.d.ts.map +1 -0
- package/dist/output/OutputFormatterImpl.js +556 -0
- package/dist/output/OutputFormatterImpl.js.map +1 -0
- package/dist/output/examples.d.ts +38 -0
- package/dist/output/examples.d.ts.map +1 -0
- package/dist/output/examples.js +503 -0
- package/dist/output/examples.js.map +1 -0
- package/dist/output/index.d.ts +16 -0
- package/dist/output/index.d.ts.map +1 -0
- package/dist/output/index.js +58 -0
- package/dist/output/index.js.map +1 -0
- package/package.json +4 -1
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cache Invalidator - Lifecycle Management
|
|
3
|
+
*
|
|
4
|
+
* Manages cache lifecycle with:
|
|
5
|
+
* - Event-based invalidation
|
|
6
|
+
* - TTL-based expiration
|
|
7
|
+
* - Background rebuild scheduling
|
|
8
|
+
*
|
|
9
|
+
* @module core/cache/CacheInvalidator
|
|
10
|
+
* @version 1.0.0
|
|
11
|
+
*/
|
|
12
|
+
import type { CacheInvalidator, CacheInvalidation } from './BinaryMetadataCache';
|
|
13
|
+
/**
|
|
14
|
+
* Implementation of CacheInvalidator interface
|
|
15
|
+
*
|
|
16
|
+
* Tracks cache staleness and schedules rebuilds based on:
|
|
17
|
+
* - Manual invalidation events
|
|
18
|
+
* - TTL expiration
|
|
19
|
+
* - Automatic rebuild triggers
|
|
20
|
+
*/
|
|
21
|
+
export declare class BinaryCacheInvalidator implements CacheInvalidator {
|
|
22
|
+
private staleTimestamp;
|
|
23
|
+
private rebuildCallbacks;
|
|
24
|
+
/**
|
|
25
|
+
* Mark cache as stale
|
|
26
|
+
*
|
|
27
|
+
* Records invalidation event and schedules rebuild if required.
|
|
28
|
+
*
|
|
29
|
+
* @param event - Invalidation event
|
|
30
|
+
*/
|
|
31
|
+
markStale(event: CacheInvalidation): void;
|
|
32
|
+
/**
|
|
33
|
+
* Check if cache is valid
|
|
34
|
+
*
|
|
35
|
+
* Cache is valid if:
|
|
36
|
+
* - Cache timestamp > stale timestamp
|
|
37
|
+
* - No invalidation events since cache generation
|
|
38
|
+
*
|
|
39
|
+
* @param cacheTimestamp - Cache generation timestamp
|
|
40
|
+
* @returns True if cache is valid and not stale
|
|
41
|
+
*/
|
|
42
|
+
isCacheValid(cacheTimestamp: number): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Check if cache is fresh (within TTL)
|
|
45
|
+
*
|
|
46
|
+
* @param cacheTimestamp - Cache generation timestamp
|
|
47
|
+
* @param ttl - Time-to-live in milliseconds
|
|
48
|
+
* @returns True if cache age < TTL
|
|
49
|
+
*/
|
|
50
|
+
isCacheFresh(cacheTimestamp: number, ttl: number): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Check if background rebuild should be triggered
|
|
53
|
+
*
|
|
54
|
+
* Triggers when cache age exceeds 80% of TTL to prevent
|
|
55
|
+
* cold start latency spikes.
|
|
56
|
+
*
|
|
57
|
+
* @param cacheTimestamp - Cache generation timestamp
|
|
58
|
+
* @param ttl - Time-to-live in milliseconds
|
|
59
|
+
* @returns True if background rebuild recommended
|
|
60
|
+
*/
|
|
61
|
+
shouldBackgroundRebuild(cacheTimestamp: number, ttl: number): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Schedule cache rebuild
|
|
64
|
+
*
|
|
65
|
+
* Invokes registered rebuild callbacks.
|
|
66
|
+
*
|
|
67
|
+
* @param background - Whether to rebuild in background
|
|
68
|
+
*/
|
|
69
|
+
scheduleCacheRebuild(background: boolean): void;
|
|
70
|
+
/**
|
|
71
|
+
* Register a rebuild callback
|
|
72
|
+
*
|
|
73
|
+
* Callback is invoked when cache rebuild is scheduled.
|
|
74
|
+
*
|
|
75
|
+
* @param callback - Rebuild callback function
|
|
76
|
+
*/
|
|
77
|
+
onRebuild(callback: () => void): void;
|
|
78
|
+
/**
|
|
79
|
+
* Unregister a rebuild callback
|
|
80
|
+
*
|
|
81
|
+
* @param callback - Rebuild callback function
|
|
82
|
+
*/
|
|
83
|
+
offRebuild(callback: () => void): void;
|
|
84
|
+
/**
|
|
85
|
+
* Get stale timestamp
|
|
86
|
+
*
|
|
87
|
+
* @returns Timestamp when cache was marked stale
|
|
88
|
+
*/
|
|
89
|
+
getStaleTimestamp(): number;
|
|
90
|
+
/**
|
|
91
|
+
* Reset invalidator state
|
|
92
|
+
*
|
|
93
|
+
* Clears stale timestamp and callbacks.
|
|
94
|
+
*/
|
|
95
|
+
reset(): void;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Create a new BinaryCacheInvalidator instance
|
|
99
|
+
*
|
|
100
|
+
* @returns BinaryCacheInvalidator instance
|
|
101
|
+
*/
|
|
102
|
+
export declare function createCacheInvalidator(): BinaryCacheInvalidator;
|
|
103
|
+
//# sourceMappingURL=CacheInvalidator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheInvalidator.d.ts","sourceRoot":"","sources":["../../../src/core/cache/CacheInvalidator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;GAOG;AACH,qBAAa,sBAAuB,YAAW,gBAAgB;IAC7D,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,gBAAgB,CAA8B;IAEtD;;;;;;OAMG;IACH,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAgBzC;;;;;;;;;OASG;IACH,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAI7C;;;;;;OAMG;IACH,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAK1D;;;;;;;;;OASG;IACH,uBAAuB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAMrE;;;;;;OAMG;IACH,oBAAoB,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAa/C;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAIrC;;;;OAIG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAItC;;;;OAIG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;;;OAIG;IACH,KAAK,IAAI,IAAI;CAId;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,sBAAsB,CAE/D"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Cache Invalidator - Lifecycle Management
|
|
4
|
+
*
|
|
5
|
+
* Manages cache lifecycle with:
|
|
6
|
+
* - Event-based invalidation
|
|
7
|
+
* - TTL-based expiration
|
|
8
|
+
* - Background rebuild scheduling
|
|
9
|
+
*
|
|
10
|
+
* @module core/cache/CacheInvalidator
|
|
11
|
+
* @version 1.0.0
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.BinaryCacheInvalidator = void 0;
|
|
15
|
+
exports.createCacheInvalidator = createCacheInvalidator;
|
|
16
|
+
/**
|
|
17
|
+
* Implementation of CacheInvalidator interface
|
|
18
|
+
*
|
|
19
|
+
* Tracks cache staleness and schedules rebuilds based on:
|
|
20
|
+
* - Manual invalidation events
|
|
21
|
+
* - TTL expiration
|
|
22
|
+
* - Automatic rebuild triggers
|
|
23
|
+
*/
|
|
24
|
+
class BinaryCacheInvalidator {
|
|
25
|
+
constructor() {
|
|
26
|
+
this.staleTimestamp = 0;
|
|
27
|
+
this.rebuildCallbacks = new Set();
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Mark cache as stale
|
|
31
|
+
*
|
|
32
|
+
* Records invalidation event and schedules rebuild if required.
|
|
33
|
+
*
|
|
34
|
+
* @param event - Invalidation event
|
|
35
|
+
*/
|
|
36
|
+
markStale(event) {
|
|
37
|
+
this.staleTimestamp = event.timestamp;
|
|
38
|
+
if (event.requiresRebuild) {
|
|
39
|
+
this.scheduleCacheRebuild(false);
|
|
40
|
+
}
|
|
41
|
+
// Log invalidation event
|
|
42
|
+
console.log('[CacheInvalidator] Cache marked stale:', {
|
|
43
|
+
trigger: event.trigger,
|
|
44
|
+
timestamp: new Date(event.timestamp).toISOString(),
|
|
45
|
+
requiresRebuild: event.requiresRebuild,
|
|
46
|
+
metadata: event.metadata,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Check if cache is valid
|
|
51
|
+
*
|
|
52
|
+
* Cache is valid if:
|
|
53
|
+
* - Cache timestamp > stale timestamp
|
|
54
|
+
* - No invalidation events since cache generation
|
|
55
|
+
*
|
|
56
|
+
* @param cacheTimestamp - Cache generation timestamp
|
|
57
|
+
* @returns True if cache is valid and not stale
|
|
58
|
+
*/
|
|
59
|
+
isCacheValid(cacheTimestamp) {
|
|
60
|
+
return cacheTimestamp > this.staleTimestamp;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Check if cache is fresh (within TTL)
|
|
64
|
+
*
|
|
65
|
+
* @param cacheTimestamp - Cache generation timestamp
|
|
66
|
+
* @param ttl - Time-to-live in milliseconds
|
|
67
|
+
* @returns True if cache age < TTL
|
|
68
|
+
*/
|
|
69
|
+
isCacheFresh(cacheTimestamp, ttl) {
|
|
70
|
+
const age = Date.now() - cacheTimestamp;
|
|
71
|
+
return age < ttl;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Check if background rebuild should be triggered
|
|
75
|
+
*
|
|
76
|
+
* Triggers when cache age exceeds 80% of TTL to prevent
|
|
77
|
+
* cold start latency spikes.
|
|
78
|
+
*
|
|
79
|
+
* @param cacheTimestamp - Cache generation timestamp
|
|
80
|
+
* @param ttl - Time-to-live in milliseconds
|
|
81
|
+
* @returns True if background rebuild recommended
|
|
82
|
+
*/
|
|
83
|
+
shouldBackgroundRebuild(cacheTimestamp, ttl) {
|
|
84
|
+
const age = Date.now() - cacheTimestamp;
|
|
85
|
+
const threshold = ttl * 0.8; // 80% of TTL
|
|
86
|
+
return age > threshold;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Schedule cache rebuild
|
|
90
|
+
*
|
|
91
|
+
* Invokes registered rebuild callbacks.
|
|
92
|
+
*
|
|
93
|
+
* @param background - Whether to rebuild in background
|
|
94
|
+
*/
|
|
95
|
+
scheduleCacheRebuild(background) {
|
|
96
|
+
console.log(`[CacheInvalidator] Scheduling cache rebuild (background: ${background})`);
|
|
97
|
+
// Invoke rebuild callbacks
|
|
98
|
+
for (const callback of this.rebuildCallbacks) {
|
|
99
|
+
try {
|
|
100
|
+
callback();
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
console.error('[CacheInvalidator] Rebuild callback failed:', error);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Register a rebuild callback
|
|
109
|
+
*
|
|
110
|
+
* Callback is invoked when cache rebuild is scheduled.
|
|
111
|
+
*
|
|
112
|
+
* @param callback - Rebuild callback function
|
|
113
|
+
*/
|
|
114
|
+
onRebuild(callback) {
|
|
115
|
+
this.rebuildCallbacks.add(callback);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Unregister a rebuild callback
|
|
119
|
+
*
|
|
120
|
+
* @param callback - Rebuild callback function
|
|
121
|
+
*/
|
|
122
|
+
offRebuild(callback) {
|
|
123
|
+
this.rebuildCallbacks.delete(callback);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Get stale timestamp
|
|
127
|
+
*
|
|
128
|
+
* @returns Timestamp when cache was marked stale
|
|
129
|
+
*/
|
|
130
|
+
getStaleTimestamp() {
|
|
131
|
+
return this.staleTimestamp;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Reset invalidator state
|
|
135
|
+
*
|
|
136
|
+
* Clears stale timestamp and callbacks.
|
|
137
|
+
*/
|
|
138
|
+
reset() {
|
|
139
|
+
this.staleTimestamp = 0;
|
|
140
|
+
this.rebuildCallbacks.clear();
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
exports.BinaryCacheInvalidator = BinaryCacheInvalidator;
|
|
144
|
+
/**
|
|
145
|
+
* Create a new BinaryCacheInvalidator instance
|
|
146
|
+
*
|
|
147
|
+
* @returns BinaryCacheInvalidator instance
|
|
148
|
+
*/
|
|
149
|
+
function createCacheInvalidator() {
|
|
150
|
+
return new BinaryCacheInvalidator();
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=CacheInvalidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheInvalidator.js","sourceRoot":"","sources":["../../../src/core/cache/CacheInvalidator.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAqJH,wDAEC;AAhJD;;;;;;;GAOG;AACH,MAAa,sBAAsB;IAAnC;QACU,mBAAc,GAAW,CAAC,CAAC;QAC3B,qBAAgB,GAAoB,IAAI,GAAG,EAAE,CAAC;IA6HxD,CAAC;IA3HC;;;;;;OAMG;IACH,SAAS,CAAC,KAAwB;QAChC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC;QAEtC,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QAED,yBAAyB;QACzB,OAAO,CAAC,GAAG,CAAC,wCAAwC,EAAE;YACpD,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,SAAS,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;YAClD,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACH,YAAY,CAAC,cAAsB;QACjC,OAAO,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IAC9C,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CAAC,cAAsB,EAAE,GAAW;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC;QACxC,OAAO,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;IAED;;;;;;;;;OASG;IACH,uBAAuB,CAAC,cAAsB,EAAE,GAAW;QACzD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC;QACxC,MAAM,SAAS,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,aAAa;QAC1C,OAAO,GAAG,GAAG,SAAS,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACH,oBAAoB,CAAC,UAAmB;QACtC,OAAO,CAAC,GAAG,CAAC,4DAA4D,UAAU,GAAG,CAAC,CAAC;QAEvF,2BAA2B;QAC3B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC7C,IAAI,CAAC;gBACH,QAAQ,EAAE,CAAC;YACb,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,KAAK,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,QAAoB;QAC5B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,QAAoB;QAC7B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,KAAK;QACH,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;CACF;AA/HD,wDA+HC;AAED;;;;GAIG;AACH,SAAgB,sBAAsB;IACpC,OAAO,IAAI,sBAAsB,EAAE,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cache Validator - Integrity and Version Validation
|
|
3
|
+
*
|
|
4
|
+
* Validates binary cache integrity using:
|
|
5
|
+
* - SHA-256 checksum verification
|
|
6
|
+
* - Semantic version compatibility checks
|
|
7
|
+
* - Pattern entry validation
|
|
8
|
+
*
|
|
9
|
+
* @module core/cache/CacheValidator
|
|
10
|
+
* @version 1.0.0
|
|
11
|
+
*/
|
|
12
|
+
import type { CacheValidator, CacheVersion, ValidationResult, PatternEntry } from './BinaryMetadataCache';
|
|
13
|
+
/**
|
|
14
|
+
* Implementation of CacheValidator interface
|
|
15
|
+
*
|
|
16
|
+
* Provides multi-level validation:
|
|
17
|
+
* 1. Checksum validation (SHA-256)
|
|
18
|
+
* 2. Version compatibility (semantic versioning)
|
|
19
|
+
* 3. Pattern entry validation (required fields)
|
|
20
|
+
*/
|
|
21
|
+
export declare class BinaryCacheValidator implements CacheValidator {
|
|
22
|
+
private serializer;
|
|
23
|
+
constructor();
|
|
24
|
+
/**
|
|
25
|
+
* Validate cache integrity
|
|
26
|
+
*
|
|
27
|
+
* Performs comprehensive validation:
|
|
28
|
+
* - Checksum matches expected value
|
|
29
|
+
* - Version is compatible with current code
|
|
30
|
+
* - Buffer structure is valid
|
|
31
|
+
*
|
|
32
|
+
* @param buffer - Binary cache buffer
|
|
33
|
+
* @param expectedChecksum - Expected SHA-256 checksum
|
|
34
|
+
* @returns Validation result with detailed diagnostics
|
|
35
|
+
*/
|
|
36
|
+
validate(buffer: Uint8Array, expectedChecksum: string): Promise<ValidationResult>;
|
|
37
|
+
/**
|
|
38
|
+
* Check version compatibility
|
|
39
|
+
*
|
|
40
|
+
* Rules:
|
|
41
|
+
* - Major version mismatch: INCOMPATIBLE (breaking changes)
|
|
42
|
+
* - Minor version mismatch: COMPATIBLE (backward compatible)
|
|
43
|
+
* - Patch version mismatch: COMPATIBLE (bug fixes)
|
|
44
|
+
*
|
|
45
|
+
* @param cacheVersion - Version from cache header
|
|
46
|
+
* @param codeVersion - Current code version
|
|
47
|
+
* @returns True if compatible
|
|
48
|
+
*/
|
|
49
|
+
isVersionCompatible(cacheVersion: CacheVersion, codeVersion: CacheVersion): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Validate pattern entry
|
|
52
|
+
*
|
|
53
|
+
* Checks for:
|
|
54
|
+
* - Required fields present
|
|
55
|
+
* - Valid embedding dimensions
|
|
56
|
+
* - Valid metadata values
|
|
57
|
+
*
|
|
58
|
+
* @param entry - Pattern entry to validate
|
|
59
|
+
* @returns True if valid
|
|
60
|
+
*/
|
|
61
|
+
isValidPatternEntry(entry: PatternEntry): boolean;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Create a new BinaryCacheValidator instance
|
|
65
|
+
*
|
|
66
|
+
* @returns BinaryCacheValidator instance
|
|
67
|
+
*/
|
|
68
|
+
export declare function createCacheValidator(): BinaryCacheValidator;
|
|
69
|
+
//# sourceMappingURL=CacheValidator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheValidator.d.ts","sourceRoot":"","sources":["../../../src/core/cache/CacheValidator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACb,MAAM,uBAAuB,CAAC;AAG/B;;;;;;;GAOG;AACH,qBAAa,oBAAqB,YAAW,cAAc;IACzD,OAAO,CAAC,UAAU,CAAwB;;IAM1C;;;;;;;;;;;OAWG;IACG,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqEvF;;;;;;;;;;;OAWG;IACH,mBAAmB,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,GAAG,OAAO;IAgBnF;;;;;;;;;;OAUG;IACH,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;CAmDlD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,oBAAoB,CAE3D"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Cache Validator - Integrity and Version Validation
|
|
4
|
+
*
|
|
5
|
+
* Validates binary cache integrity using:
|
|
6
|
+
* - SHA-256 checksum verification
|
|
7
|
+
* - Semantic version compatibility checks
|
|
8
|
+
* - Pattern entry validation
|
|
9
|
+
*
|
|
10
|
+
* @module core/cache/CacheValidator
|
|
11
|
+
* @version 1.0.0
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.BinaryCacheValidator = void 0;
|
|
15
|
+
exports.createCacheValidator = createCacheValidator;
|
|
16
|
+
const MessagePackSerializer_1 = require("./MessagePackSerializer");
|
|
17
|
+
/**
|
|
18
|
+
* Implementation of CacheValidator interface
|
|
19
|
+
*
|
|
20
|
+
* Provides multi-level validation:
|
|
21
|
+
* 1. Checksum validation (SHA-256)
|
|
22
|
+
* 2. Version compatibility (semantic versioning)
|
|
23
|
+
* 3. Pattern entry validation (required fields)
|
|
24
|
+
*/
|
|
25
|
+
class BinaryCacheValidator {
|
|
26
|
+
constructor() {
|
|
27
|
+
this.serializer = new MessagePackSerializer_1.MessagePackSerializer();
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Validate cache integrity
|
|
31
|
+
*
|
|
32
|
+
* Performs comprehensive validation:
|
|
33
|
+
* - Checksum matches expected value
|
|
34
|
+
* - Version is compatible with current code
|
|
35
|
+
* - Buffer structure is valid
|
|
36
|
+
*
|
|
37
|
+
* @param buffer - Binary cache buffer
|
|
38
|
+
* @param expectedChecksum - Expected SHA-256 checksum
|
|
39
|
+
* @returns Validation result with detailed diagnostics
|
|
40
|
+
*/
|
|
41
|
+
async validate(buffer, expectedChecksum) {
|
|
42
|
+
try {
|
|
43
|
+
// 1. Compute actual checksum
|
|
44
|
+
const computedChecksum = await this.serializer.computeChecksum(buffer);
|
|
45
|
+
const checksumValid = computedChecksum === expectedChecksum;
|
|
46
|
+
if (!checksumValid) {
|
|
47
|
+
return {
|
|
48
|
+
valid: false,
|
|
49
|
+
checksumValid: false,
|
|
50
|
+
versionCompatible: false,
|
|
51
|
+
error: `Checksum mismatch: expected ${expectedChecksum}, got ${computedChecksum}`,
|
|
52
|
+
computedChecksum,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
// 2. Decode cache to check structure
|
|
56
|
+
const cache = this.serializer.decode(buffer);
|
|
57
|
+
// 3. Decode version
|
|
58
|
+
const cacheVersion = this.serializer.decodeVersion(cache.version);
|
|
59
|
+
// 4. Check version compatibility (assuming current version is 1.0.0)
|
|
60
|
+
const currentVersion = { major: 1, minor: 0, patch: 0 };
|
|
61
|
+
const versionCompatible = this.isVersionCompatible(cacheVersion, currentVersion);
|
|
62
|
+
if (!versionCompatible) {
|
|
63
|
+
return {
|
|
64
|
+
valid: false,
|
|
65
|
+
checksumValid: true,
|
|
66
|
+
versionCompatible: false,
|
|
67
|
+
error: `Version incompatible: cache version ${cacheVersion.major}.${cacheVersion.minor}.${cacheVersion.patch}, code version ${currentVersion.major}.${currentVersion.minor}.${currentVersion.patch}`,
|
|
68
|
+
computedChecksum,
|
|
69
|
+
cacheVersion,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
// 5. Validate pattern entries
|
|
73
|
+
for (const pattern of cache.patterns) {
|
|
74
|
+
if (!this.isValidPatternEntry(pattern)) {
|
|
75
|
+
return {
|
|
76
|
+
valid: false,
|
|
77
|
+
checksumValid: true,
|
|
78
|
+
versionCompatible: true,
|
|
79
|
+
error: `Invalid pattern entry: ${pattern.id}`,
|
|
80
|
+
computedChecksum,
|
|
81
|
+
cacheVersion,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// All validations passed
|
|
86
|
+
return {
|
|
87
|
+
valid: true,
|
|
88
|
+
checksumValid: true,
|
|
89
|
+
versionCompatible: true,
|
|
90
|
+
computedChecksum,
|
|
91
|
+
cacheVersion,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
return {
|
|
96
|
+
valid: false,
|
|
97
|
+
checksumValid: false,
|
|
98
|
+
versionCompatible: false,
|
|
99
|
+
error: `Validation failed: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Check version compatibility
|
|
105
|
+
*
|
|
106
|
+
* Rules:
|
|
107
|
+
* - Major version mismatch: INCOMPATIBLE (breaking changes)
|
|
108
|
+
* - Minor version mismatch: COMPATIBLE (backward compatible)
|
|
109
|
+
* - Patch version mismatch: COMPATIBLE (bug fixes)
|
|
110
|
+
*
|
|
111
|
+
* @param cacheVersion - Version from cache header
|
|
112
|
+
* @param codeVersion - Current code version
|
|
113
|
+
* @returns True if compatible
|
|
114
|
+
*/
|
|
115
|
+
isVersionCompatible(cacheVersion, codeVersion) {
|
|
116
|
+
// Major version must match exactly
|
|
117
|
+
if (cacheVersion.major !== codeVersion.major) {
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
// Cache minor version can be less than or equal to code version
|
|
121
|
+
// (newer code can read older cache)
|
|
122
|
+
if (cacheVersion.minor > codeVersion.minor) {
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
// Patch version is always compatible within same major.minor
|
|
126
|
+
return true;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Validate pattern entry
|
|
130
|
+
*
|
|
131
|
+
* Checks for:
|
|
132
|
+
* - Required fields present
|
|
133
|
+
* - Valid embedding dimensions
|
|
134
|
+
* - Valid metadata values
|
|
135
|
+
*
|
|
136
|
+
* @param entry - Pattern entry to validate
|
|
137
|
+
* @returns True if valid
|
|
138
|
+
*/
|
|
139
|
+
isValidPatternEntry(entry) {
|
|
140
|
+
// Check required fields
|
|
141
|
+
if (!entry.id || typeof entry.id !== 'string') {
|
|
142
|
+
return false;
|
|
143
|
+
}
|
|
144
|
+
if (!entry.type || typeof entry.type !== 'string') {
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
147
|
+
if (!entry.domain || typeof entry.domain !== 'string') {
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
if (!entry.framework || typeof entry.framework !== 'string') {
|
|
151
|
+
return false;
|
|
152
|
+
}
|
|
153
|
+
if (!entry.content || typeof entry.content !== 'string') {
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
// Validate embedding
|
|
157
|
+
if (!(entry.embedding instanceof Float32Array)) {
|
|
158
|
+
return false;
|
|
159
|
+
}
|
|
160
|
+
if (entry.embedding.length === 0) {
|
|
161
|
+
return false;
|
|
162
|
+
}
|
|
163
|
+
// Validate metadata
|
|
164
|
+
if (!entry.metadata) {
|
|
165
|
+
return false;
|
|
166
|
+
}
|
|
167
|
+
if (typeof entry.metadata.coverage !== 'number' || entry.metadata.coverage < 0 || entry.metadata.coverage > 1) {
|
|
168
|
+
return false;
|
|
169
|
+
}
|
|
170
|
+
if (typeof entry.metadata.flakinessScore !== 'number' || entry.metadata.flakinessScore < 0 || entry.metadata.flakinessScore > 1) {
|
|
171
|
+
return false;
|
|
172
|
+
}
|
|
173
|
+
const validVerdicts = ['success', 'failure', 'flaky', 'unknown'];
|
|
174
|
+
if (!validVerdicts.includes(entry.metadata.verdict)) {
|
|
175
|
+
return false;
|
|
176
|
+
}
|
|
177
|
+
return true;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
exports.BinaryCacheValidator = BinaryCacheValidator;
|
|
181
|
+
/**
|
|
182
|
+
* Create a new BinaryCacheValidator instance
|
|
183
|
+
*
|
|
184
|
+
* @returns BinaryCacheValidator instance
|
|
185
|
+
*/
|
|
186
|
+
function createCacheValidator() {
|
|
187
|
+
return new BinaryCacheValidator();
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=CacheValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheValidator.js","sourceRoot":"","sources":["../../../src/core/cache/CacheValidator.ts"],"names":[],"mappings":"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"}
|