agentic-qe 3.7.5 → 3.7.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/skills-manifest.json +1 -1
- package/CHANGELOG.md +38 -0
- package/dist/cli/bundle.js +6220 -1373
- package/dist/cli/commands/security.d.ts.map +1 -1
- package/dist/cli/commands/security.js +66 -1
- package/dist/cli/commands/security.js.map +1 -1
- package/dist/cli/commands/test.d.ts.map +1 -1
- package/dist/cli/commands/test.js +86 -3
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/index.js +119 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/coordination/workflow-orchestrator.d.ts.map +1 -1
- package/dist/coordination/workflow-orchestrator.js +2 -6
- package/dist/coordination/workflow-orchestrator.js.map +1 -1
- package/dist/domains/test-execution/services/e2e/adaptive-locator-service.d.ts +71 -0
- package/dist/domains/test-execution/services/e2e/adaptive-locator-service.d.ts.map +1 -0
- package/dist/domains/test-execution/services/e2e/adaptive-locator-service.js +456 -0
- package/dist/domains/test-execution/services/e2e/adaptive-locator-service.js.map +1 -0
- package/dist/domains/test-execution/services/e2e/adaptive-locator-types.d.ts +81 -0
- package/dist/domains/test-execution/services/e2e/adaptive-locator-types.d.ts.map +1 -0
- package/dist/domains/test-execution/services/e2e/adaptive-locator-types.js +20 -0
- package/dist/domains/test-execution/services/e2e/adaptive-locator-types.js.map +1 -0
- package/dist/domains/test-execution/services/e2e/browser-orchestrator.d.ts +19 -0
- package/dist/domains/test-execution/services/e2e/browser-orchestrator.d.ts.map +1 -1
- package/dist/domains/test-execution/services/e2e/browser-orchestrator.js +82 -0
- package/dist/domains/test-execution/services/e2e/browser-orchestrator.js.map +1 -1
- package/dist/domains/test-execution/services/e2e/index.d.ts +2 -0
- package/dist/domains/test-execution/services/e2e/index.d.ts.map +1 -1
- package/dist/domains/test-execution/services/e2e/index.js +5 -0
- package/dist/domains/test-execution/services/e2e/index.js.map +1 -1
- package/dist/domains/test-execution/services/e2e/step-executors.d.ts +6 -0
- package/dist/domains/test-execution/services/e2e/step-executors.d.ts.map +1 -1
- package/dist/domains/test-execution/services/e2e/step-executors.js +17 -2
- package/dist/domains/test-execution/services/e2e/step-executors.js.map +1 -1
- package/dist/domains/test-execution/services/e2e/types.d.ts +18 -1
- package/dist/domains/test-execution/services/e2e/types.d.ts.map +1 -1
- package/dist/domains/test-execution/services/e2e/types.js.map +1 -1
- package/dist/integrations/browser/client-factory.d.ts +6 -1
- package/dist/integrations/browser/client-factory.d.ts.map +1 -1
- package/dist/integrations/browser/client-factory.js +37 -2
- package/dist/integrations/browser/client-factory.js.map +1 -1
- package/dist/integrations/browser/index.d.ts +5 -1
- package/dist/integrations/browser/index.d.ts.map +1 -1
- package/dist/integrations/browser/index.js +8 -1
- package/dist/integrations/browser/index.js.map +1 -1
- package/dist/integrations/browser/page-pool-types.d.ts +70 -0
- package/dist/integrations/browser/page-pool-types.d.ts.map +1 -0
- package/dist/integrations/browser/page-pool-types.js +19 -0
- package/dist/integrations/browser/page-pool-types.js.map +1 -0
- package/dist/integrations/browser/page-pool.d.ts +79 -0
- package/dist/integrations/browser/page-pool.d.ts.map +1 -0
- package/dist/integrations/browser/page-pool.js +288 -0
- package/dist/integrations/browser/page-pool.js.map +1 -0
- package/dist/integrations/browser/resource-blocking.d.ts +47 -0
- package/dist/integrations/browser/resource-blocking.d.ts.map +1 -0
- package/dist/integrations/browser/resource-blocking.js +195 -0
- package/dist/integrations/browser/resource-blocking.js.map +1 -0
- package/dist/integrations/browser/stealth/index.d.ts +8 -0
- package/dist/integrations/browser/stealth/index.d.ts.map +1 -0
- package/dist/integrations/browser/stealth/index.js +7 -0
- package/dist/integrations/browser/stealth/index.js.map +1 -0
- package/dist/integrations/browser/stealth/stealth-client.d.ts +51 -0
- package/dist/integrations/browser/stealth/stealth-client.d.ts.map +1 -0
- package/dist/integrations/browser/stealth/stealth-client.js +359 -0
- package/dist/integrations/browser/stealth/stealth-client.js.map +1 -0
- package/dist/integrations/browser/stealth/stealth-types.d.ts +35 -0
- package/dist/integrations/browser/stealth/stealth-types.d.ts.map +1 -0
- package/dist/integrations/browser/stealth/stealth-types.js +17 -0
- package/dist/integrations/browser/stealth/stealth-types.js.map +1 -0
- package/dist/integrations/browser/types.d.ts +13 -10
- package/dist/integrations/browser/types.d.ts.map +1 -1
- package/dist/integrations/browser/types.js.map +1 -1
- package/dist/mcp/bundle.js +5090 -222
- package/dist/mcp/handlers/core-handlers.d.ts.map +1 -1
- package/dist/mcp/handlers/core-handlers.js +35 -0
- package/dist/mcp/handlers/core-handlers.js.map +1 -1
- package/dist/mcp/protocol-server.d.ts.map +1 -1
- package/dist/mcp/protocol-server.js +4 -1
- package/dist/mcp/protocol-server.js.map +1 -1
- package/dist/mcp/qe-tool-bridge.d.ts +27 -0
- package/dist/mcp/qe-tool-bridge.d.ts.map +1 -0
- package/dist/mcp/qe-tool-bridge.js +87 -0
- package/dist/mcp/qe-tool-bridge.js.map +1 -0
- package/dist/mcp/tools/registry.d.ts +4 -0
- package/dist/mcp/tools/registry.d.ts.map +1 -1
- package/dist/mcp/tools/registry.js +20 -0
- package/dist/mcp/tools/registry.js.map +1 -1
- package/dist/mcp/tools/security-compliance/visual-security.d.ts +45 -0
- package/dist/mcp/tools/security-compliance/visual-security.d.ts.map +1 -0
- package/dist/mcp/tools/security-compliance/visual-security.js +218 -0
- package/dist/mcp/tools/security-compliance/visual-security.js.map +1 -0
- package/dist/mcp/tools/test-execution/browser-workflow.d.ts +50 -0
- package/dist/mcp/tools/test-execution/browser-workflow.d.ts.map +1 -0
- package/dist/mcp/tools/test-execution/browser-workflow.js +145 -0
- package/dist/mcp/tools/test-execution/browser-workflow.js.map +1 -0
- package/dist/mcp/tools/test-execution/load-test.d.ts +37 -0
- package/dist/mcp/tools/test-execution/load-test.d.ts.map +1 -0
- package/dist/mcp/tools/test-execution/load-test.js +98 -0
- package/dist/mcp/tools/test-execution/load-test.js.map +1 -0
- package/dist/mcp/tools/test-execution/schedule.d.ts +44 -0
- package/dist/mcp/tools/test-execution/schedule.d.ts.map +1 -0
- package/dist/mcp/tools/test-execution/schedule.js +96 -0
- package/dist/mcp/tools/test-execution/schedule.js.map +1 -0
- package/dist/planning/goap-planner.d.ts.map +1 -1
- package/dist/planning/goap-planner.js +7 -28
- package/dist/planning/goap-planner.js.map +1 -1
- package/dist/planning/plan-executor.d.ts.map +1 -1
- package/dist/planning/plan-executor.js +7 -28
- package/dist/planning/plan-executor.js.map +1 -1
- package/package.json +3 -10
- package/dist/cli/commands/qe-tools.d.ts +0 -27
- package/dist/cli/commands/qe-tools.d.ts.map +0 -1
- package/dist/cli/commands/qe-tools.js +0 -771
- package/dist/cli/commands/qe-tools.js.map +0 -1
- package/dist/neural-optimizer/index.d.ts +0 -55
- package/dist/neural-optimizer/index.d.ts.map +0 -1
- package/dist/neural-optimizer/index.js +0 -57
- package/dist/neural-optimizer/index.js.map +0 -1
- package/dist/neural-optimizer/replay-buffer.d.ts +0 -126
- package/dist/neural-optimizer/replay-buffer.d.ts.map +0 -1
- package/dist/neural-optimizer/replay-buffer.js +0 -356
- package/dist/neural-optimizer/replay-buffer.js.map +0 -1
- package/dist/neural-optimizer/swarm-topology.d.ts +0 -157
- package/dist/neural-optimizer/swarm-topology.d.ts.map +0 -1
- package/dist/neural-optimizer/swarm-topology.js +0 -384
- package/dist/neural-optimizer/swarm-topology.js.map +0 -1
- package/dist/neural-optimizer/topology-optimizer.d.ts +0 -137
- package/dist/neural-optimizer/topology-optimizer.d.ts.map +0 -1
- package/dist/neural-optimizer/topology-optimizer.js +0 -657
- package/dist/neural-optimizer/topology-optimizer.js.map +0 -1
- package/dist/neural-optimizer/types.d.ts +0 -333
- package/dist/neural-optimizer/types.d.ts.map +0 -1
- package/dist/neural-optimizer/types.js +0 -57
- package/dist/neural-optimizer/types.js.map +0 -1
- package/dist/neural-optimizer/value-network.d.ts +0 -129
- package/dist/neural-optimizer/value-network.d.ts.map +0 -1
- package/dist/neural-optimizer/value-network.js +0 -279
- package/dist/neural-optimizer/value-network.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"qe-tools.js","sourceRoot":"","sources":["../../../src/cli/commands/qe-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agentic QE v3 - Neural Topology Optimizer
|
|
3
|
-
* ADR-034: RL-based swarm topology optimization
|
|
4
|
-
*
|
|
5
|
-
* Provides reinforcement learning-based optimization of swarm topologies
|
|
6
|
-
* using value networks, experience replay, and multi-objective rewards.
|
|
7
|
-
*
|
|
8
|
-
* Key Components:
|
|
9
|
-
* - NeuralTopologyOptimizer: Main optimizer using RL
|
|
10
|
-
* - ValueNetwork: Neural network for state value estimation
|
|
11
|
-
* - PrioritizedReplayBuffer: Experience replay with prioritization
|
|
12
|
-
* - MutableSwarmTopology: Modifiable topology structure
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```typescript
|
|
16
|
-
* import {
|
|
17
|
-
* createNeuralTopologyOptimizer,
|
|
18
|
-
* createTopology,
|
|
19
|
-
* createAgent,
|
|
20
|
-
* } from 'agentic-qe/neural-optimizer';
|
|
21
|
-
*
|
|
22
|
-
* // Create topology with agents
|
|
23
|
-
* const topology = createTopology('mesh');
|
|
24
|
-
* topology.addAgent(createAgent('agent-1', 'coordinator'));
|
|
25
|
-
* topology.addAgent(createAgent('agent-2', 'worker'));
|
|
26
|
-
* topology.addAgent(createAgent('agent-3', 'worker'));
|
|
27
|
-
*
|
|
28
|
-
* // Add initial connections
|
|
29
|
-
* topology.addConnection('agent-1', 'agent-2', 1.0);
|
|
30
|
-
* topology.addConnection('agent-1', 'agent-3', 1.0);
|
|
31
|
-
*
|
|
32
|
-
* // Create optimizer
|
|
33
|
-
* const optimizer = createNeuralTopologyOptimizer(topology, {
|
|
34
|
-
* learningRate: 0.001,
|
|
35
|
-
* epsilon: 0.3,
|
|
36
|
-
* });
|
|
37
|
-
*
|
|
38
|
-
* // Run optimization steps
|
|
39
|
-
* const results = optimizer.optimize(100);
|
|
40
|
-
*
|
|
41
|
-
* // Check results
|
|
42
|
-
* console.log('Final min-cut:', results[results.length - 1].newMinCut);
|
|
43
|
-
* console.log('Stats:', optimizer.getStats());
|
|
44
|
-
*
|
|
45
|
-
* // Export learned model
|
|
46
|
-
* const model = optimizer.exportModel();
|
|
47
|
-
* ```
|
|
48
|
-
*/
|
|
49
|
-
export type { TopologyAgent, TopologyConnection, SwarmTopology, AgentMetrics, TopologyOptimizerConfig, TopologyAction, ActionType, TopologyState, Experience, OptimizationResult, OptimizationStats, ExportedModel, IValueNetwork, IReplayBuffer, } from './types';
|
|
50
|
-
export { DEFAULT_OPTIMIZER_CONFIG, ACTION_TYPES, actionToIndex, indexToActionType, } from './types';
|
|
51
|
-
export { NeuralTopologyOptimizer, createNeuralTopologyOptimizer } from './topology-optimizer';
|
|
52
|
-
export { ValueNetwork, createValueNetwork, createValueNetworkFromWeights } from './value-network';
|
|
53
|
-
export { PrioritizedReplayBuffer, UniformReplayBuffer, createPrioritizedReplayBuffer, createUniformReplayBuffer, } from './replay-buffer';
|
|
54
|
-
export { MutableSwarmTopology, createTopology, createAgent, buildMeshTopology, buildRingTopology, buildStarTopology, buildHierarchicalTopology, } from './swarm-topology';
|
|
55
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/neural-optimizer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAMH,YAAY,EAEV,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,YAAY,EAGZ,uBAAuB,EAGvB,cAAc,EACd,UAAU,EAGV,aAAa,EAGb,UAAU,EAGV,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EAGb,aAAa,EACb,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,wBAAwB,EACxB,YAAY,EACZ,aAAa,EACb,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAMjB,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAClG,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,6BAA6B,EAC7B,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agentic QE v3 - Neural Topology Optimizer
|
|
3
|
-
* ADR-034: RL-based swarm topology optimization
|
|
4
|
-
*
|
|
5
|
-
* Provides reinforcement learning-based optimization of swarm topologies
|
|
6
|
-
* using value networks, experience replay, and multi-objective rewards.
|
|
7
|
-
*
|
|
8
|
-
* Key Components:
|
|
9
|
-
* - NeuralTopologyOptimizer: Main optimizer using RL
|
|
10
|
-
* - ValueNetwork: Neural network for state value estimation
|
|
11
|
-
* - PrioritizedReplayBuffer: Experience replay with prioritization
|
|
12
|
-
* - MutableSwarmTopology: Modifiable topology structure
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```typescript
|
|
16
|
-
* import {
|
|
17
|
-
* createNeuralTopologyOptimizer,
|
|
18
|
-
* createTopology,
|
|
19
|
-
* createAgent,
|
|
20
|
-
* } from 'agentic-qe/neural-optimizer';
|
|
21
|
-
*
|
|
22
|
-
* // Create topology with agents
|
|
23
|
-
* const topology = createTopology('mesh');
|
|
24
|
-
* topology.addAgent(createAgent('agent-1', 'coordinator'));
|
|
25
|
-
* topology.addAgent(createAgent('agent-2', 'worker'));
|
|
26
|
-
* topology.addAgent(createAgent('agent-3', 'worker'));
|
|
27
|
-
*
|
|
28
|
-
* // Add initial connections
|
|
29
|
-
* topology.addConnection('agent-1', 'agent-2', 1.0);
|
|
30
|
-
* topology.addConnection('agent-1', 'agent-3', 1.0);
|
|
31
|
-
*
|
|
32
|
-
* // Create optimizer
|
|
33
|
-
* const optimizer = createNeuralTopologyOptimizer(topology, {
|
|
34
|
-
* learningRate: 0.001,
|
|
35
|
-
* epsilon: 0.3,
|
|
36
|
-
* });
|
|
37
|
-
*
|
|
38
|
-
* // Run optimization steps
|
|
39
|
-
* const results = optimizer.optimize(100);
|
|
40
|
-
*
|
|
41
|
-
* // Check results
|
|
42
|
-
* console.log('Final min-cut:', results[results.length - 1].newMinCut);
|
|
43
|
-
* console.log('Stats:', optimizer.getStats());
|
|
44
|
-
*
|
|
45
|
-
* // Export learned model
|
|
46
|
-
* const model = optimizer.exportModel();
|
|
47
|
-
* ```
|
|
48
|
-
*/
|
|
49
|
-
export { DEFAULT_OPTIMIZER_CONFIG, ACTION_TYPES, actionToIndex, indexToActionType, } from './types';
|
|
50
|
-
// ============================================================================
|
|
51
|
-
// Core Classes
|
|
52
|
-
// ============================================================================
|
|
53
|
-
export { NeuralTopologyOptimizer, createNeuralTopologyOptimizer } from './topology-optimizer';
|
|
54
|
-
export { ValueNetwork, createValueNetwork, createValueNetworkFromWeights } from './value-network';
|
|
55
|
-
export { PrioritizedReplayBuffer, UniformReplayBuffer, createPrioritizedReplayBuffer, createUniformReplayBuffer, } from './replay-buffer';
|
|
56
|
-
export { MutableSwarmTopology, createTopology, createAgent, buildMeshTopology, buildRingTopology, buildStarTopology, buildHierarchicalTopology, } from './swarm-topology';
|
|
57
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/neural-optimizer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAoCH,OAAO,EACL,wBAAwB,EACxB,YAAY,EACZ,aAAa,EACb,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAEjB,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,OAAO,EAAE,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAClG,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,6BAA6B,EAC7B,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC"}
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agentic QE v3 - Prioritized Experience Replay Buffer
|
|
3
|
-
* ADR-034: RL-based swarm topology optimization
|
|
4
|
-
*
|
|
5
|
-
* Implements prioritized experience replay for stable RL training:
|
|
6
|
-
* - Priority based on TD error (higher error = more learning potential)
|
|
7
|
-
* - Proportional prioritization with importance sampling
|
|
8
|
-
* - Circular buffer with configurable capacity
|
|
9
|
-
*/
|
|
10
|
-
import type { Experience, IReplayBuffer } from './types';
|
|
11
|
-
/**
|
|
12
|
-
* Prioritized Experience Replay Buffer
|
|
13
|
-
*
|
|
14
|
-
* Features:
|
|
15
|
-
* - Priority based on TD error magnitude
|
|
16
|
-
* - Proportional prioritization with sum tree
|
|
17
|
-
* - Importance sampling weights for bias correction
|
|
18
|
-
*/
|
|
19
|
-
export declare class PrioritizedReplayBuffer implements IReplayBuffer {
|
|
20
|
-
/** Experience storage */
|
|
21
|
-
private buffer;
|
|
22
|
-
/** Sum tree for priority sampling */
|
|
23
|
-
private sumTree;
|
|
24
|
-
/** Buffer capacity */
|
|
25
|
-
private readonly capacity;
|
|
26
|
-
/** Current number of experiences */
|
|
27
|
-
private count;
|
|
28
|
-
/** Write position */
|
|
29
|
-
private writeIdx;
|
|
30
|
-
/** Priority exponent (alpha): how much to use priorities */
|
|
31
|
-
private readonly alpha;
|
|
32
|
-
/** Importance sampling exponent (beta): bias correction */
|
|
33
|
-
private beta;
|
|
34
|
-
/** Beta annealing rate */
|
|
35
|
-
private readonly betaAnnealing;
|
|
36
|
-
/** Small constant to ensure non-zero priority */
|
|
37
|
-
private readonly priorityEpsilon;
|
|
38
|
-
/** Maximum priority seen */
|
|
39
|
-
private maxPriority;
|
|
40
|
-
constructor(capacity: number, options?: {
|
|
41
|
-
alpha?: number;
|
|
42
|
-
beta?: number;
|
|
43
|
-
betaAnnealing?: number;
|
|
44
|
-
});
|
|
45
|
-
/**
|
|
46
|
-
* Get buffer length
|
|
47
|
-
*/
|
|
48
|
-
get length(): number;
|
|
49
|
-
/**
|
|
50
|
-
* Add experience to buffer
|
|
51
|
-
*
|
|
52
|
-
* New experiences get max priority to ensure they're sampled at least once
|
|
53
|
-
*/
|
|
54
|
-
push(experience: Experience): void;
|
|
55
|
-
/**
|
|
56
|
-
* Convert TD error to priority value
|
|
57
|
-
*/
|
|
58
|
-
private getPriorityFromTdError;
|
|
59
|
-
/**
|
|
60
|
-
* Sample experiences using proportional prioritization
|
|
61
|
-
*
|
|
62
|
-
* @param batchSize - Number of experiences to sample
|
|
63
|
-
* @returns Array of experiences with importance sampling weights
|
|
64
|
-
*/
|
|
65
|
-
sample(batchSize: number): Experience[];
|
|
66
|
-
/**
|
|
67
|
-
* Sample with importance sampling weights for bias correction
|
|
68
|
-
*/
|
|
69
|
-
sampleWithWeights(batchSize: number): {
|
|
70
|
-
experiences: Experience[];
|
|
71
|
-
weights: number[];
|
|
72
|
-
indices: number[];
|
|
73
|
-
};
|
|
74
|
-
/**
|
|
75
|
-
* Update priorities for sampled experiences
|
|
76
|
-
*
|
|
77
|
-
* Called after computing new TD errors during training
|
|
78
|
-
*/
|
|
79
|
-
updatePriorities(indices: number[], priorities: number[]): void;
|
|
80
|
-
/**
|
|
81
|
-
* Clear all experiences
|
|
82
|
-
*/
|
|
83
|
-
clear(): void;
|
|
84
|
-
/**
|
|
85
|
-
* Get current beta value
|
|
86
|
-
*/
|
|
87
|
-
getBeta(): number;
|
|
88
|
-
/**
|
|
89
|
-
* Get buffer statistics
|
|
90
|
-
*/
|
|
91
|
-
getStats(): {
|
|
92
|
-
count: number;
|
|
93
|
-
capacity: number;
|
|
94
|
-
totalPriority: number;
|
|
95
|
-
maxPriority: number;
|
|
96
|
-
beta: number;
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Simple uniform sampling replay buffer
|
|
101
|
-
*
|
|
102
|
-
* Use when prioritized replay is not needed
|
|
103
|
-
*/
|
|
104
|
-
export declare class UniformReplayBuffer implements IReplayBuffer {
|
|
105
|
-
private buffer;
|
|
106
|
-
private readonly capacity;
|
|
107
|
-
constructor(capacity: number);
|
|
108
|
-
get length(): number;
|
|
109
|
-
push(experience: Experience): void;
|
|
110
|
-
sample(batchSize: number): Experience[];
|
|
111
|
-
updatePriorities(_indices: number[], _priorities: number[]): void;
|
|
112
|
-
clear(): void;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Create a prioritized replay buffer
|
|
116
|
-
*/
|
|
117
|
-
export declare function createPrioritizedReplayBuffer(capacity: number, options?: {
|
|
118
|
-
alpha?: number;
|
|
119
|
-
beta?: number;
|
|
120
|
-
betaAnnealing?: number;
|
|
121
|
-
}): PrioritizedReplayBuffer;
|
|
122
|
-
/**
|
|
123
|
-
* Create a uniform replay buffer
|
|
124
|
-
*/
|
|
125
|
-
export declare function createUniformReplayBuffer(capacity: number): UniformReplayBuffer;
|
|
126
|
-
//# sourceMappingURL=replay-buffer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"replay-buffer.d.ts","sourceRoot":"","sources":["../../src/neural-optimizer/replay-buffer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA0IzD;;;;;;;GAOG;AACH,qBAAa,uBAAwB,YAAW,aAAa;IAC3D,yBAAyB;IACzB,OAAO,CAAC,MAAM,CAAwB;IAEtC,qCAAqC;IACrC,OAAO,CAAC,OAAO,CAAU;IAEzB,sBAAsB;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC,oCAAoC;IACpC,OAAO,CAAC,KAAK,CAAa;IAE1B,qBAAqB;IACrB,OAAO,CAAC,QAAQ,CAAa;IAE7B,4DAA4D;IAC5D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAE/B,2DAA2D;IAC3D,OAAO,CAAC,IAAI,CAAS;IAErB,0BAA0B;IAC1B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAEvC,iDAAiD;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgB;IAEhD,4BAA4B;IAC5B,OAAO,CAAC,WAAW,CAAe;gBAGhC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,aAAa,CAAC,EAAE,MAAM,CAAC;KACnB;IAUR;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;OAIG;IACH,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAalC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAU9B;;;;;OAKG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE;IAiCvC;;OAEG;IACH,iBAAiB,CACf,SAAS,EAAE,MAAM,GAChB;QAAE,WAAW,EAAE,UAAU,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE;IA0CtE;;;;OAIG;IACH,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI;IAS/D;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;OAEG;IACH,QAAQ,IAAI;QACV,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;KACd;CASF;AAMD;;;;GAIG;AACH,qBAAa,mBAAoB,YAAW,aAAa;IACvD,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,QAAQ,EAAE,MAAM;IAI5B,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAOlC,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE;IAgBvC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI;IAIjE,KAAK,IAAI,IAAI;CAGd;AAMD;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GACA,uBAAuB,CAEzB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CAE/E"}
|
|
@@ -1,356 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agentic QE v3 - Prioritized Experience Replay Buffer
|
|
3
|
-
* ADR-034: RL-based swarm topology optimization
|
|
4
|
-
*
|
|
5
|
-
* Implements prioritized experience replay for stable RL training:
|
|
6
|
-
* - Priority based on TD error (higher error = more learning potential)
|
|
7
|
-
* - Proportional prioritization with importance sampling
|
|
8
|
-
* - Circular buffer with configurable capacity
|
|
9
|
-
*/
|
|
10
|
-
import { secureRandom, secureRandomInt } from '../shared/utils/crypto-random.js';
|
|
11
|
-
// ============================================================================
|
|
12
|
-
// Sum Tree for Efficient Priority Sampling
|
|
13
|
-
// ============================================================================
|
|
14
|
-
/**
|
|
15
|
-
* Sum Tree data structure for O(log n) priority sampling
|
|
16
|
-
*
|
|
17
|
-
* A binary tree where:
|
|
18
|
-
* - Leaves store priorities
|
|
19
|
-
* - Internal nodes store sum of children
|
|
20
|
-
* - Total sum at root enables proportional sampling
|
|
21
|
-
*/
|
|
22
|
-
class SumTree {
|
|
23
|
-
/** Total capacity (number of leaves) */
|
|
24
|
-
capacity;
|
|
25
|
-
/** Tree array: size = 2 * capacity - 1 */
|
|
26
|
-
tree;
|
|
27
|
-
/** Current write position */
|
|
28
|
-
writeIdx = 0;
|
|
29
|
-
constructor(capacity) {
|
|
30
|
-
this.capacity = capacity;
|
|
31
|
-
// Tree has 2*n - 1 nodes for n leaves
|
|
32
|
-
this.tree = new Array(2 * capacity - 1).fill(0);
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Get total priority sum (root value)
|
|
36
|
-
*/
|
|
37
|
-
get total() {
|
|
38
|
-
return this.tree[0];
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Add priority value at next position
|
|
42
|
-
*/
|
|
43
|
-
add(priority) {
|
|
44
|
-
const leafIdx = this.writeIdx;
|
|
45
|
-
const treeIdx = this.capacity - 1 + leafIdx;
|
|
46
|
-
this.update(treeIdx, priority);
|
|
47
|
-
this.writeIdx = (this.writeIdx + 1) % this.capacity;
|
|
48
|
-
return leafIdx;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Update priority at tree index
|
|
52
|
-
*/
|
|
53
|
-
update(treeIdx, priority) {
|
|
54
|
-
const change = priority - this.tree[treeIdx];
|
|
55
|
-
this.tree[treeIdx] = priority;
|
|
56
|
-
// Propagate change up to root
|
|
57
|
-
let idx = treeIdx;
|
|
58
|
-
while (idx > 0) {
|
|
59
|
-
idx = Math.floor((idx - 1) / 2);
|
|
60
|
-
this.tree[idx] += change;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Update priority at leaf index
|
|
65
|
-
*/
|
|
66
|
-
updateLeaf(leafIdx, priority) {
|
|
67
|
-
const treeIdx = this.capacity - 1 + leafIdx;
|
|
68
|
-
this.update(treeIdx, priority);
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Get leaf index and priority for a value in [0, total)
|
|
72
|
-
*/
|
|
73
|
-
get(value) {
|
|
74
|
-
let idx = 0;
|
|
75
|
-
while (idx < this.capacity - 1) {
|
|
76
|
-
const leftChild = 2 * idx + 1;
|
|
77
|
-
const rightChild = leftChild + 1;
|
|
78
|
-
if (value <= this.tree[leftChild]) {
|
|
79
|
-
idx = leftChild;
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
value -= this.tree[leftChild];
|
|
83
|
-
idx = rightChild;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
const leafIdx = idx - (this.capacity - 1);
|
|
87
|
-
return {
|
|
88
|
-
leafIdx,
|
|
89
|
-
priority: this.tree[idx],
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Get priority at leaf index
|
|
94
|
-
*/
|
|
95
|
-
getPriority(leafIdx) {
|
|
96
|
-
const treeIdx = this.capacity - 1 + leafIdx;
|
|
97
|
-
return this.tree[treeIdx];
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Get minimum non-zero priority across all leaves
|
|
101
|
-
* Used for importance sampling weight normalization
|
|
102
|
-
*/
|
|
103
|
-
getMinPriority(count) {
|
|
104
|
-
let minPriority = Infinity;
|
|
105
|
-
const leafStart = this.capacity - 1;
|
|
106
|
-
for (let i = 0; i < count; i++) {
|
|
107
|
-
const priority = this.tree[leafStart + i];
|
|
108
|
-
if (priority > 0 && priority < minPriority) {
|
|
109
|
-
minPriority = priority;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
return minPriority === Infinity ? 1e-8 : minPriority;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Clear all priorities
|
|
116
|
-
*/
|
|
117
|
-
clear() {
|
|
118
|
-
this.tree.fill(0);
|
|
119
|
-
this.writeIdx = 0;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
// ============================================================================
|
|
123
|
-
// Prioritized Replay Buffer
|
|
124
|
-
// ============================================================================
|
|
125
|
-
/**
|
|
126
|
-
* Prioritized Experience Replay Buffer
|
|
127
|
-
*
|
|
128
|
-
* Features:
|
|
129
|
-
* - Priority based on TD error magnitude
|
|
130
|
-
* - Proportional prioritization with sum tree
|
|
131
|
-
* - Importance sampling weights for bias correction
|
|
132
|
-
*/
|
|
133
|
-
export class PrioritizedReplayBuffer {
|
|
134
|
-
/** Experience storage */
|
|
135
|
-
buffer;
|
|
136
|
-
/** Sum tree for priority sampling */
|
|
137
|
-
sumTree;
|
|
138
|
-
/** Buffer capacity */
|
|
139
|
-
capacity;
|
|
140
|
-
/** Current number of experiences */
|
|
141
|
-
count = 0;
|
|
142
|
-
/** Write position */
|
|
143
|
-
writeIdx = 0;
|
|
144
|
-
/** Priority exponent (alpha): how much to use priorities */
|
|
145
|
-
alpha;
|
|
146
|
-
/** Importance sampling exponent (beta): bias correction */
|
|
147
|
-
beta;
|
|
148
|
-
/** Beta annealing rate */
|
|
149
|
-
betaAnnealing;
|
|
150
|
-
/** Small constant to ensure non-zero priority */
|
|
151
|
-
priorityEpsilon = 0.01;
|
|
152
|
-
/** Maximum priority seen */
|
|
153
|
-
maxPriority = 1.0;
|
|
154
|
-
constructor(capacity, options = {}) {
|
|
155
|
-
this.capacity = capacity;
|
|
156
|
-
this.buffer = new Array(capacity).fill(null);
|
|
157
|
-
this.sumTree = new SumTree(capacity);
|
|
158
|
-
this.alpha = options.alpha ?? 0.6;
|
|
159
|
-
this.beta = options.beta ?? 0.4;
|
|
160
|
-
this.betaAnnealing = options.betaAnnealing ?? 0.001;
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* Get buffer length
|
|
164
|
-
*/
|
|
165
|
-
get length() {
|
|
166
|
-
return this.count;
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Add experience to buffer
|
|
170
|
-
*
|
|
171
|
-
* New experiences get max priority to ensure they're sampled at least once
|
|
172
|
-
*/
|
|
173
|
-
push(experience) {
|
|
174
|
-
// Use max priority for new experiences
|
|
175
|
-
const priority = this.getPriorityFromTdError(experience.tdError || this.maxPriority);
|
|
176
|
-
this.buffer[this.writeIdx] = experience;
|
|
177
|
-
this.sumTree.updateLeaf(this.writeIdx, priority);
|
|
178
|
-
this.writeIdx = (this.writeIdx + 1) % this.capacity;
|
|
179
|
-
this.count = Math.min(this.count + 1, this.capacity);
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* Convert TD error to priority value
|
|
183
|
-
*/
|
|
184
|
-
getPriorityFromTdError(tdError) {
|
|
185
|
-
// Priority = (|TD error| + epsilon)^alpha
|
|
186
|
-
const priority = Math.pow(Math.abs(tdError) + this.priorityEpsilon, this.alpha);
|
|
187
|
-
this.maxPriority = Math.max(this.maxPriority, priority);
|
|
188
|
-
return priority;
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* Sample experiences using proportional prioritization
|
|
192
|
-
*
|
|
193
|
-
* @param batchSize - Number of experiences to sample
|
|
194
|
-
* @returns Array of experiences with importance sampling weights
|
|
195
|
-
*/
|
|
196
|
-
sample(batchSize) {
|
|
197
|
-
if (this.count === 0) {
|
|
198
|
-
return [];
|
|
199
|
-
}
|
|
200
|
-
const actualBatchSize = Math.min(batchSize, this.count);
|
|
201
|
-
const experiences = [];
|
|
202
|
-
const indices = [];
|
|
203
|
-
const total = this.sumTree.total;
|
|
204
|
-
const segment = total / actualBatchSize;
|
|
205
|
-
// Anneal beta towards 1.0
|
|
206
|
-
this.beta = Math.min(1.0, this.beta + this.betaAnnealing);
|
|
207
|
-
// Sample from each segment for stratified sampling
|
|
208
|
-
for (let i = 0; i < actualBatchSize; i++) {
|
|
209
|
-
const low = segment * i;
|
|
210
|
-
const high = segment * (i + 1);
|
|
211
|
-
const value = secureRandom() * (high - low) + low;
|
|
212
|
-
const { leafIdx } = this.sumTree.get(value);
|
|
213
|
-
// Ensure valid experience
|
|
214
|
-
if (this.buffer[leafIdx] !== null) {
|
|
215
|
-
experiences.push(this.buffer[leafIdx]);
|
|
216
|
-
indices.push(leafIdx);
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
return experiences;
|
|
220
|
-
}
|
|
221
|
-
/**
|
|
222
|
-
* Sample with importance sampling weights for bias correction
|
|
223
|
-
*/
|
|
224
|
-
sampleWithWeights(batchSize) {
|
|
225
|
-
if (this.count === 0) {
|
|
226
|
-
return { experiences: [], weights: [], indices: [] };
|
|
227
|
-
}
|
|
228
|
-
const actualBatchSize = Math.min(batchSize, this.count);
|
|
229
|
-
const experiences = [];
|
|
230
|
-
const weights = [];
|
|
231
|
-
const indices = [];
|
|
232
|
-
const total = this.sumTree.total;
|
|
233
|
-
const segment = total / actualBatchSize;
|
|
234
|
-
// Anneal beta
|
|
235
|
-
this.beta = Math.min(1.0, this.beta + this.betaAnnealing);
|
|
236
|
-
// Min probability for weight normalization - use actual minimum across all experiences
|
|
237
|
-
const minPriority = this.sumTree.getMinPriority(this.count);
|
|
238
|
-
const minProb = minPriority / total;
|
|
239
|
-
const maxWeight = Math.pow(this.count * minProb, -this.beta);
|
|
240
|
-
for (let i = 0; i < actualBatchSize; i++) {
|
|
241
|
-
const low = segment * i;
|
|
242
|
-
const high = segment * (i + 1);
|
|
243
|
-
const value = secureRandom() * (high - low) + low;
|
|
244
|
-
const { leafIdx, priority } = this.sumTree.get(value);
|
|
245
|
-
if (this.buffer[leafIdx] !== null) {
|
|
246
|
-
const prob = priority / total;
|
|
247
|
-
// Importance sampling weight: (1 / (N * P(i)))^beta / max_weight
|
|
248
|
-
const weight = Math.pow(this.count * prob, -this.beta) / maxWeight;
|
|
249
|
-
experiences.push(this.buffer[leafIdx]);
|
|
250
|
-
weights.push(weight);
|
|
251
|
-
indices.push(leafIdx);
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
return { experiences, weights, indices };
|
|
255
|
-
}
|
|
256
|
-
/**
|
|
257
|
-
* Update priorities for sampled experiences
|
|
258
|
-
*
|
|
259
|
-
* Called after computing new TD errors during training
|
|
260
|
-
*/
|
|
261
|
-
updatePriorities(indices, priorities) {
|
|
262
|
-
for (let i = 0; i < indices.length; i++) {
|
|
263
|
-
const idx = indices[i];
|
|
264
|
-
const tdError = priorities[i];
|
|
265
|
-
const priority = this.getPriorityFromTdError(tdError);
|
|
266
|
-
this.sumTree.updateLeaf(idx, priority);
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
/**
|
|
270
|
-
* Clear all experiences
|
|
271
|
-
*/
|
|
272
|
-
clear() {
|
|
273
|
-
this.buffer.fill(null);
|
|
274
|
-
this.sumTree.clear();
|
|
275
|
-
this.count = 0;
|
|
276
|
-
this.writeIdx = 0;
|
|
277
|
-
this.maxPriority = 1.0;
|
|
278
|
-
}
|
|
279
|
-
/**
|
|
280
|
-
* Get current beta value
|
|
281
|
-
*/
|
|
282
|
-
getBeta() {
|
|
283
|
-
return this.beta;
|
|
284
|
-
}
|
|
285
|
-
/**
|
|
286
|
-
* Get buffer statistics
|
|
287
|
-
*/
|
|
288
|
-
getStats() {
|
|
289
|
-
return {
|
|
290
|
-
count: this.count,
|
|
291
|
-
capacity: this.capacity,
|
|
292
|
-
totalPriority: this.sumTree.total,
|
|
293
|
-
maxPriority: this.maxPriority,
|
|
294
|
-
beta: this.beta,
|
|
295
|
-
};
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
// ============================================================================
|
|
299
|
-
// Simple Uniform Replay Buffer (Alternative)
|
|
300
|
-
// ============================================================================
|
|
301
|
-
/**
|
|
302
|
-
* Simple uniform sampling replay buffer
|
|
303
|
-
*
|
|
304
|
-
* Use when prioritized replay is not needed
|
|
305
|
-
*/
|
|
306
|
-
export class UniformReplayBuffer {
|
|
307
|
-
buffer = [];
|
|
308
|
-
capacity;
|
|
309
|
-
constructor(capacity) {
|
|
310
|
-
this.capacity = capacity;
|
|
311
|
-
}
|
|
312
|
-
get length() {
|
|
313
|
-
return this.buffer.length;
|
|
314
|
-
}
|
|
315
|
-
push(experience) {
|
|
316
|
-
if (this.buffer.length >= this.capacity) {
|
|
317
|
-
this.buffer.shift();
|
|
318
|
-
}
|
|
319
|
-
this.buffer.push(experience);
|
|
320
|
-
}
|
|
321
|
-
sample(batchSize) {
|
|
322
|
-
const actualBatchSize = Math.min(batchSize, this.buffer.length);
|
|
323
|
-
const samples = [];
|
|
324
|
-
const usedIndices = new Set();
|
|
325
|
-
while (samples.length < actualBatchSize) {
|
|
326
|
-
const idx = secureRandomInt(0, this.buffer.length);
|
|
327
|
-
if (!usedIndices.has(idx)) {
|
|
328
|
-
usedIndices.add(idx);
|
|
329
|
-
samples.push(this.buffer[idx]);
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
return samples;
|
|
333
|
-
}
|
|
334
|
-
updatePriorities(_indices, _priorities) {
|
|
335
|
-
// No-op for uniform sampling
|
|
336
|
-
}
|
|
337
|
-
clear() {
|
|
338
|
-
this.buffer = [];
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
// ============================================================================
|
|
342
|
-
// Factory Functions
|
|
343
|
-
// ============================================================================
|
|
344
|
-
/**
|
|
345
|
-
* Create a prioritized replay buffer
|
|
346
|
-
*/
|
|
347
|
-
export function createPrioritizedReplayBuffer(capacity, options) {
|
|
348
|
-
return new PrioritizedReplayBuffer(capacity, options);
|
|
349
|
-
}
|
|
350
|
-
/**
|
|
351
|
-
* Create a uniform replay buffer
|
|
352
|
-
*/
|
|
353
|
-
export function createUniformReplayBuffer(capacity) {
|
|
354
|
-
return new UniformReplayBuffer(capacity);
|
|
355
|
-
}
|
|
356
|
-
//# sourceMappingURL=replay-buffer.js.map
|