agentic-qe 2.3.5 → 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 +47 -0
- package/README.md +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/FlakyTestHunterAgent.d.ts +2 -2
- package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.js +8 -104
- package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
- package/dist/agents/TestExecutorAgent.d.ts +1 -1
- package/dist/agents/TestExecutorAgent.d.ts.map +1 -1
- package/dist/agents/TestExecutorAgent.js +4 -46
- package/dist/agents/TestExecutorAgent.js.map +1 -1
- package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
- package/dist/agents/TestGeneratorAgent.js +15 -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 +12 -6
- package/dist/agents/lifecycle/AgentLifecycleManager.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/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/server-instructions.d.ts +1 -1
- package/dist/mcp/server-instructions.js +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
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA;;GAEG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;AAEH,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,iCAA6C;AAApC,8FAAA,KAAK,OAAA;AAAE,oGAAA,WAAW,OAAA;AAC3B,+BAAwD;AAA/C,4FAAA,IAAI,OAAA;AAAE,kGAAA,UAAU,OAAA;AAAE,oGAAA,YAAY,OAAA;AACvC,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AAczB,uBAAuB;AACvB,2BAcc;AAbZ,iGAAA,WAAW,OAAA;AAIX,wGAAA,kBAAkB,OAAA;AAClB,wGAAA,kBAAkB,OAAA;AAClB,0GAAA,oBAAoB,OAAA;AACpB,qGAAA,eAAe,OAAA;AAGf,+GAAA,yBAAyB,OAAA;AACzB,0GAAA,oBAAoB,OAAA;AACpB,4FAAA,MAAM,OAAA;AAGR,6BAA6B;AAC7B,6CAA2B;AAE3B,0BAA0B;AAC1B,+CAA6B"}
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
*/
|
|
18
18
|
import type { IPatternStore, PatternStoreConfig, PatternStoreStats } from './IPatternStore';
|
|
19
19
|
import { getRuVectorInfo } from './RuVectorPatternStore';
|
|
20
|
+
import { BinaryCacheManager } from '../cache/BinaryCacheManager';
|
|
20
21
|
/**
|
|
21
22
|
* Factory configuration
|
|
22
23
|
*/
|
|
@@ -33,6 +34,15 @@ export interface PatternStoreFactoryConfig extends PatternStoreConfig {
|
|
|
33
34
|
enableQUICSync?: boolean;
|
|
34
35
|
syncPeers?: string[];
|
|
35
36
|
};
|
|
37
|
+
/** Binary cache configuration for fast pattern loading (<5ms target) */
|
|
38
|
+
binaryCache?: {
|
|
39
|
+
/** Enable binary caching (default: true if cachePath provided) */
|
|
40
|
+
enabled?: boolean;
|
|
41
|
+
/** Path to binary cache file */
|
|
42
|
+
cachePath?: string;
|
|
43
|
+
/** Cache TTL in milliseconds (default: 24 hours) */
|
|
44
|
+
maxAge?: number;
|
|
45
|
+
};
|
|
36
46
|
}
|
|
37
47
|
/**
|
|
38
48
|
* Factory result with backend info
|
|
@@ -40,11 +50,16 @@ export interface PatternStoreFactoryConfig extends PatternStoreConfig {
|
|
|
40
50
|
export interface PatternStoreFactoryResult {
|
|
41
51
|
store: IPatternStore;
|
|
42
52
|
backend: 'ruvector' | 'agentdb' | 'fallback';
|
|
53
|
+
/** Binary cache manager if enabled */
|
|
54
|
+
cacheManager?: BinaryCacheManager;
|
|
43
55
|
info: {
|
|
44
56
|
platform: string;
|
|
45
57
|
arch: string;
|
|
46
58
|
nativeAvailable: boolean;
|
|
47
59
|
features: string[];
|
|
60
|
+
/** Binary cache status */
|
|
61
|
+
binaryCacheEnabled: boolean;
|
|
62
|
+
binaryCachePath?: string;
|
|
48
63
|
};
|
|
49
64
|
}
|
|
50
65
|
/**
|
|
@@ -80,6 +95,11 @@ export declare class PatternStoreFactory {
|
|
|
80
95
|
* Create a pattern store with intelligent backend selection
|
|
81
96
|
*/
|
|
82
97
|
static create(config?: PatternStoreFactoryConfig): Promise<PatternStoreFactoryResult>;
|
|
98
|
+
/**
|
|
99
|
+
* Wrap a pattern store with BinaryCacheManager for fast pattern loading
|
|
100
|
+
* Target: <5ms load time vs 32ms SQLite baseline
|
|
101
|
+
*/
|
|
102
|
+
private static wrapWithBinaryCache;
|
|
83
103
|
/**
|
|
84
104
|
* Create store with forced backend (fails if unavailable)
|
|
85
105
|
*/
|
|
@@ -135,6 +155,14 @@ export declare function createPatternStore(config?: PatternStoreFactoryConfig):
|
|
|
135
155
|
* Uses RuVector if available, optimized for throughput
|
|
136
156
|
*/
|
|
137
157
|
export declare function createHighPerformanceStore(storagePath?: string): Promise<IPatternStore>;
|
|
158
|
+
/**
|
|
159
|
+
* Convenience function to create a cached pattern store
|
|
160
|
+
* Uses binary cache for fast pattern loading (<5ms target)
|
|
161
|
+
*
|
|
162
|
+
* @param cachePath - Path to binary cache file (default: .agentic-qe/patterns.cache)
|
|
163
|
+
* @returns Pattern store with binary cache enabled
|
|
164
|
+
*/
|
|
165
|
+
export declare function createCachedPatternStore(cachePath?: string): Promise<PatternStoreFactoryResult>;
|
|
138
166
|
/**
|
|
139
167
|
* Create pattern store from environment configuration
|
|
140
168
|
* Reads from PATTERN_STORE_BACKEND, PATTERN_STORE_PATH, etc.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PatternStoreFactory.d.ts","sourceRoot":"","sources":["../../../src/core/memory/PatternStoreFactory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAGL,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAEhC;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACnE,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;IAEnD,oDAAoD;IACpD,YAAY,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAEtC,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,qCAAqC;IACrC,OAAO,CAAC,EAAE;QACR,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;IAC7C,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,eAAe,EAAE,OAAO,CAAC;QACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"PatternStoreFactory.d.ts","sourceRoot":"","sources":["../../../src/core/memory/PatternStoreFactory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAGL,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AAMrC;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACnE,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;IAEnD,oDAAoD;IACpD,YAAY,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAEtC,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,qCAAqC;IACrC,OAAO,CAAC,EAAE;QACR,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;IAEF,wEAAwE;IACxE,WAAW,CAAC,EAAE;QACZ,kEAAkE;QAClE,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,gCAAgC;QAChC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,oDAAoD;QACpD,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;IAC7C,sCAAsC;IACtC,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,eAAe,EAAE,OAAO,CAAC;QACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,0BAA0B;QAC1B,kBAAkB,EAAE,OAAO,CAAC;QAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,mBAAmB;IAC9B;;OAEG;WACU,MAAM,CACjB,MAAM,GAAE,yBAA8B,GACrC,OAAO,CAAC,yBAAyB,CAAC;IA4BrC;;;OAGG;mBACkB,mBAAmB;IAyCxC;;OAEG;mBACkB,mBAAmB;IAgCxC;;OAEG;mBACkB,iBAAiB;IA+CtC;;OAEG;mBACkB,mBAAmB;IAmCxC;;;OAGG;mBACkB,kBAAkB;IA+BvC;;OAEG;mBACkB,mBAAmB;IA6BxC;;OAEG;IACH,MAAM,CAAC,sBAAsB,IAAI,gBAAgB;IAoCjD;;OAEG;IACH,MAAM,CAAC,oBAAoB,IAAI,yBAAyB;IAuCxD;;OAEG;WACU,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC;QACnD,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,KAAK,EAAE,iBAAiB,CAAC;KAC1B,CAAC;IAmDF;;OAEG;IACH,MAAM,CAAC,eAAe,IAAI,UAAU,CAAC,OAAO,eAAe,CAAC;IAI5D;;OAEG;IACH,MAAM,CAAC,mBAAmB,IAAI,OAAO;CAGtC;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,CAAC,EAAE,yBAAyB,GACjC,OAAO,CAAC,aAAa,CAAC,CAGxB;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,aAAa,CAAC,CAYxB;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,yBAAyB,CAAC,CASpC;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,yBAAyB,CAAC,CAcpF"}
|
|
@@ -20,8 +20,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
20
20
|
exports.PatternStoreFactory = void 0;
|
|
21
21
|
exports.createPatternStore = createPatternStore;
|
|
22
22
|
exports.createHighPerformanceStore = createHighPerformanceStore;
|
|
23
|
+
exports.createCachedPatternStore = createCachedPatternStore;
|
|
23
24
|
exports.createPatternStoreFromEnv = createPatternStoreFromEnv;
|
|
24
25
|
const RuVectorPatternStore_1 = require("./RuVectorPatternStore");
|
|
26
|
+
const BinaryCacheManager_1 = require("../cache/BinaryCacheManager");
|
|
25
27
|
/**
|
|
26
28
|
* PatternStoreFactory - Intelligent pattern store creation
|
|
27
29
|
*
|
|
@@ -52,11 +54,54 @@ class PatternStoreFactory {
|
|
|
52
54
|
console.log('[PatternStoreFactory] Platform detection:', features);
|
|
53
55
|
}
|
|
54
56
|
// Handle forced backend
|
|
57
|
+
let result;
|
|
55
58
|
if (config.forceBackend) {
|
|
56
|
-
|
|
59
|
+
result = await this.createForcedBackend(config, features, verbose);
|
|
57
60
|
}
|
|
58
|
-
|
|
59
|
-
|
|
61
|
+
else {
|
|
62
|
+
// Auto-select based on availability and preference
|
|
63
|
+
result = await this.autoSelectBackend(config, features, preferredBackend, verbose);
|
|
64
|
+
}
|
|
65
|
+
// Wrap with binary cache if enabled
|
|
66
|
+
if (config.binaryCache?.enabled || config.binaryCache?.cachePath) {
|
|
67
|
+
result = await this.wrapWithBinaryCache(result, config, verbose);
|
|
68
|
+
}
|
|
69
|
+
return result;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Wrap a pattern store with BinaryCacheManager for fast pattern loading
|
|
73
|
+
* Target: <5ms load time vs 32ms SQLite baseline
|
|
74
|
+
*/
|
|
75
|
+
static async wrapWithBinaryCache(result, config, verbose) {
|
|
76
|
+
const cacheConfig = config.binaryCache;
|
|
77
|
+
const cachePath = cacheConfig.cachePath ?? './.agentic-qe/patterns.cache';
|
|
78
|
+
if (verbose) {
|
|
79
|
+
console.log('[PatternStoreFactory] Enabling binary cache:', { cachePath });
|
|
80
|
+
}
|
|
81
|
+
const binaryCacheConfig = {
|
|
82
|
+
enabled: cacheConfig.enabled ?? true,
|
|
83
|
+
cachePath,
|
|
84
|
+
maxAge: cacheConfig.maxAge ?? 24 * 60 * 60 * 1000, // 24 hours default
|
|
85
|
+
checkInterval: 5 * 60 * 1000, // 5 minutes
|
|
86
|
+
backgroundRebuild: true,
|
|
87
|
+
fallbackToSQLite: true,
|
|
88
|
+
version: { major: 1, minor: 0, patch: 0 },
|
|
89
|
+
enableMetrics: true,
|
|
90
|
+
};
|
|
91
|
+
const cacheManager = new BinaryCacheManager_1.BinaryCacheManager(binaryCacheConfig, result.store);
|
|
92
|
+
const cacheInitialized = await cacheManager.initialize();
|
|
93
|
+
if (verbose) {
|
|
94
|
+
console.log('[PatternStoreFactory] Binary cache initialized:', cacheInitialized);
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
...result,
|
|
98
|
+
cacheManager,
|
|
99
|
+
info: {
|
|
100
|
+
...result.info,
|
|
101
|
+
binaryCacheEnabled: cacheInitialized,
|
|
102
|
+
binaryCachePath: cachePath,
|
|
103
|
+
},
|
|
104
|
+
};
|
|
60
105
|
}
|
|
61
106
|
/**
|
|
62
107
|
* Create store with forced backend (fails if unavailable)
|
|
@@ -138,6 +183,7 @@ class PatternStoreFactory {
|
|
|
138
183
|
arch: features.arch,
|
|
139
184
|
nativeAvailable: true,
|
|
140
185
|
features: info.features,
|
|
186
|
+
binaryCacheEnabled: false,
|
|
141
187
|
},
|
|
142
188
|
};
|
|
143
189
|
}
|
|
@@ -165,6 +211,7 @@ class PatternStoreFactory {
|
|
|
165
211
|
arch: features.arch,
|
|
166
212
|
nativeAvailable: features.agentdbNative,
|
|
167
213
|
features: ['sql-storage', 'learning', 'quic-sync'],
|
|
214
|
+
binaryCacheEnabled: false,
|
|
168
215
|
},
|
|
169
216
|
};
|
|
170
217
|
}
|
|
@@ -189,6 +236,7 @@ class PatternStoreFactory {
|
|
|
189
236
|
arch: features.arch,
|
|
190
237
|
nativeAvailable: false,
|
|
191
238
|
features: ['in-memory', 'cosine-similarity'],
|
|
239
|
+
binaryCacheEnabled: false,
|
|
192
240
|
},
|
|
193
241
|
};
|
|
194
242
|
}
|
|
@@ -353,6 +401,23 @@ async function createHighPerformanceStore(storagePath) {
|
|
|
353
401
|
});
|
|
354
402
|
return result.store;
|
|
355
403
|
}
|
|
404
|
+
/**
|
|
405
|
+
* Convenience function to create a cached pattern store
|
|
406
|
+
* Uses binary cache for fast pattern loading (<5ms target)
|
|
407
|
+
*
|
|
408
|
+
* @param cachePath - Path to binary cache file (default: .agentic-qe/patterns.cache)
|
|
409
|
+
* @returns Pattern store with binary cache enabled
|
|
410
|
+
*/
|
|
411
|
+
async function createCachedPatternStore(cachePath) {
|
|
412
|
+
return PatternStoreFactory.create({
|
|
413
|
+
preferredBackend: 'ruvector',
|
|
414
|
+
binaryCache: {
|
|
415
|
+
enabled: true,
|
|
416
|
+
cachePath: cachePath ?? './.agentic-qe/patterns.cache',
|
|
417
|
+
maxAge: 24 * 60 * 60 * 1000, // 24 hours
|
|
418
|
+
},
|
|
419
|
+
});
|
|
420
|
+
}
|
|
356
421
|
/**
|
|
357
422
|
* Create pattern store from environment configuration
|
|
358
423
|
* Reads from PATTERN_STORE_BACKEND, PATTERN_STORE_PATH, etc.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PatternStoreFactory.js","sourceRoot":"","sources":["../../../src/core/memory/PatternStoreFactory.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;
|
|
1
|
+
{"version":3,"file":"PatternStoreFactory.js","sourceRoot":"","sources":["../../../src/core/memory/PatternStoreFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FileOperations - Platform-optimized file operations
|
|
3
|
+
*
|
|
4
|
+
* Provides file copy/clone operations that leverage platform-specific
|
|
5
|
+
* features like APFS clonefile (macOS) and reflink (Linux btrfs/xfs)
|
|
6
|
+
* for 50-100x performance improvements.
|
|
7
|
+
*
|
|
8
|
+
* @module core/platform/FileOperations
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Copy strategy used for a file operation
|
|
13
|
+
*/
|
|
14
|
+
export declare enum CopyStrategy {
|
|
15
|
+
/** Copy-on-write clone (fastest) */
|
|
16
|
+
REFLINK = "reflink",
|
|
17
|
+
/** Filesystem hardlink (instant, shares data) */
|
|
18
|
+
HARDLINK = "hardlink",
|
|
19
|
+
/** Kernel-space copy (fast) */
|
|
20
|
+
KERNEL = "kernel",
|
|
21
|
+
/** Userspace copy (fallback) */
|
|
22
|
+
USERSPACE = "userspace"
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Result of a copy operation
|
|
26
|
+
*/
|
|
27
|
+
export interface CopyResult {
|
|
28
|
+
/** Source path */
|
|
29
|
+
source: string;
|
|
30
|
+
/** Destination path */
|
|
31
|
+
destination: string;
|
|
32
|
+
/** Strategy used */
|
|
33
|
+
strategy: CopyStrategy;
|
|
34
|
+
/** Operation duration in milliseconds */
|
|
35
|
+
duration: number;
|
|
36
|
+
/** File size in bytes */
|
|
37
|
+
size: number;
|
|
38
|
+
/** Whether operation succeeded */
|
|
39
|
+
success: boolean;
|
|
40
|
+
/** Error message if failed */
|
|
41
|
+
error?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Options for copy operations
|
|
45
|
+
*/
|
|
46
|
+
export interface CopyOptions {
|
|
47
|
+
/** Force a specific strategy (skips auto-detection) */
|
|
48
|
+
strategy?: CopyStrategy;
|
|
49
|
+
/** Overwrite existing destination */
|
|
50
|
+
overwrite?: boolean;
|
|
51
|
+
/** Create parent directories if they don't exist */
|
|
52
|
+
recursive?: boolean;
|
|
53
|
+
/** Preserve file timestamps */
|
|
54
|
+
preserveTimestamps?: boolean;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Copy a file using the optimal strategy for the platform
|
|
58
|
+
*
|
|
59
|
+
* Priority: reflink > kernel copy > userspace copy
|
|
60
|
+
*
|
|
61
|
+
* @param source - Source file path
|
|
62
|
+
* @param destination - Destination file path
|
|
63
|
+
* @param options - Copy options
|
|
64
|
+
* @returns Copy result with strategy and timing info
|
|
65
|
+
*/
|
|
66
|
+
export declare function copyFile(source: string, destination: string, options?: CopyOptions): Promise<CopyResult>;
|
|
67
|
+
/**
|
|
68
|
+
* Copy a directory recursively using optimal strategies
|
|
69
|
+
*
|
|
70
|
+
* @param source - Source directory path
|
|
71
|
+
* @param destination - Destination directory path
|
|
72
|
+
* @param options - Copy options
|
|
73
|
+
* @returns Array of copy results for all files
|
|
74
|
+
*/
|
|
75
|
+
export declare function copyDirectory(source: string, destination: string, options?: CopyOptions): Promise<CopyResult[]>;
|
|
76
|
+
/**
|
|
77
|
+
* Clone a directory for test isolation
|
|
78
|
+
*
|
|
79
|
+
* Optimized for creating isolated test workspaces with COW cloning.
|
|
80
|
+
*
|
|
81
|
+
* @param source - Source directory path
|
|
82
|
+
* @param destination - Destination directory path
|
|
83
|
+
* @returns Clone result summary
|
|
84
|
+
*/
|
|
85
|
+
export declare function cloneForIsolation(source: string, destination: string): Promise<{
|
|
86
|
+
success: boolean;
|
|
87
|
+
filesCloned: number;
|
|
88
|
+
totalSize: number;
|
|
89
|
+
duration: number;
|
|
90
|
+
strategy: CopyStrategy;
|
|
91
|
+
errors: string[];
|
|
92
|
+
}>;
|
|
93
|
+
/**
|
|
94
|
+
* Create a read-only fixture copy using hardlinks
|
|
95
|
+
*
|
|
96
|
+
* Useful for test fixtures that won't be modified.
|
|
97
|
+
*
|
|
98
|
+
* @param source - Source file path
|
|
99
|
+
* @param destination - Destination file path
|
|
100
|
+
* @returns Copy result
|
|
101
|
+
*/
|
|
102
|
+
export declare function linkFixture(source: string, destination: string): Promise<CopyResult>;
|
|
103
|
+
/**
|
|
104
|
+
* Get platform copy capabilities summary
|
|
105
|
+
*/
|
|
106
|
+
export declare function getCopyCapabilities(): Promise<{
|
|
107
|
+
platform: string;
|
|
108
|
+
filesystem: string;
|
|
109
|
+
optimalStrategy: CopyStrategy;
|
|
110
|
+
expectedSpeedup: string;
|
|
111
|
+
}>;
|
|
112
|
+
/**
|
|
113
|
+
* Benchmark copy operations for the current platform
|
|
114
|
+
*
|
|
115
|
+
* @param testPath - Path to run benchmark in
|
|
116
|
+
* @returns Benchmark results
|
|
117
|
+
*/
|
|
118
|
+
export declare function benchmarkCopy(testPath?: string): Promise<{
|
|
119
|
+
reflink: number | null;
|
|
120
|
+
kernel: number | null;
|
|
121
|
+
userspace: number;
|
|
122
|
+
improvement: string;
|
|
123
|
+
}>;
|
|
124
|
+
//# sourceMappingURL=FileOperations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileOperations.d.ts","sourceRoot":"","sources":["../../../src/core/platform/FileOperations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH;;GAEG;AACH,oBAAY,YAAY;IACtB,oCAAoC;IACpC,OAAO,YAAY;IACnB,iDAAiD;IACjD,QAAQ,aAAa;IACrB,+BAA+B;IAC/B,MAAM,WAAW;IACjB,gCAAgC;IAChC,SAAS,cAAc;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB;IACpB,QAAQ,EAAE,YAAY,CAAC;IACvB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,uDAAuD;IACvD,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,qCAAqC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oDAAoD;IACpD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+BAA+B;IAC/B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,CAAC,CAgHrB;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,EAAE,CAAC,CA8CvB;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC,CAkCD;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,UAAU,CAAC,CAKrB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,YAAY,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC,CAuBD;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,QAAQ,GAAE,MAAe,GACxB,OAAO,CAAC;IACT,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC,CA0DD"}
|