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.
Files changed (138) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/CHANGELOG.md +38 -0
  3. package/dist/cli/bundle.js +6220 -1373
  4. package/dist/cli/commands/security.d.ts.map +1 -1
  5. package/dist/cli/commands/security.js +66 -1
  6. package/dist/cli/commands/security.js.map +1 -1
  7. package/dist/cli/commands/test.d.ts.map +1 -1
  8. package/dist/cli/commands/test.js +86 -3
  9. package/dist/cli/commands/test.js.map +1 -1
  10. package/dist/cli/index.js +119 -0
  11. package/dist/cli/index.js.map +1 -1
  12. package/dist/coordination/workflow-orchestrator.d.ts.map +1 -1
  13. package/dist/coordination/workflow-orchestrator.js +2 -6
  14. package/dist/coordination/workflow-orchestrator.js.map +1 -1
  15. package/dist/domains/test-execution/services/e2e/adaptive-locator-service.d.ts +71 -0
  16. package/dist/domains/test-execution/services/e2e/adaptive-locator-service.d.ts.map +1 -0
  17. package/dist/domains/test-execution/services/e2e/adaptive-locator-service.js +456 -0
  18. package/dist/domains/test-execution/services/e2e/adaptive-locator-service.js.map +1 -0
  19. package/dist/domains/test-execution/services/e2e/adaptive-locator-types.d.ts +81 -0
  20. package/dist/domains/test-execution/services/e2e/adaptive-locator-types.d.ts.map +1 -0
  21. package/dist/domains/test-execution/services/e2e/adaptive-locator-types.js +20 -0
  22. package/dist/domains/test-execution/services/e2e/adaptive-locator-types.js.map +1 -0
  23. package/dist/domains/test-execution/services/e2e/browser-orchestrator.d.ts +19 -0
  24. package/dist/domains/test-execution/services/e2e/browser-orchestrator.d.ts.map +1 -1
  25. package/dist/domains/test-execution/services/e2e/browser-orchestrator.js +82 -0
  26. package/dist/domains/test-execution/services/e2e/browser-orchestrator.js.map +1 -1
  27. package/dist/domains/test-execution/services/e2e/index.d.ts +2 -0
  28. package/dist/domains/test-execution/services/e2e/index.d.ts.map +1 -1
  29. package/dist/domains/test-execution/services/e2e/index.js +5 -0
  30. package/dist/domains/test-execution/services/e2e/index.js.map +1 -1
  31. package/dist/domains/test-execution/services/e2e/step-executors.d.ts +6 -0
  32. package/dist/domains/test-execution/services/e2e/step-executors.d.ts.map +1 -1
  33. package/dist/domains/test-execution/services/e2e/step-executors.js +17 -2
  34. package/dist/domains/test-execution/services/e2e/step-executors.js.map +1 -1
  35. package/dist/domains/test-execution/services/e2e/types.d.ts +18 -1
  36. package/dist/domains/test-execution/services/e2e/types.d.ts.map +1 -1
  37. package/dist/domains/test-execution/services/e2e/types.js.map +1 -1
  38. package/dist/integrations/browser/client-factory.d.ts +6 -1
  39. package/dist/integrations/browser/client-factory.d.ts.map +1 -1
  40. package/dist/integrations/browser/client-factory.js +37 -2
  41. package/dist/integrations/browser/client-factory.js.map +1 -1
  42. package/dist/integrations/browser/index.d.ts +5 -1
  43. package/dist/integrations/browser/index.d.ts.map +1 -1
  44. package/dist/integrations/browser/index.js +8 -1
  45. package/dist/integrations/browser/index.js.map +1 -1
  46. package/dist/integrations/browser/page-pool-types.d.ts +70 -0
  47. package/dist/integrations/browser/page-pool-types.d.ts.map +1 -0
  48. package/dist/integrations/browser/page-pool-types.js +19 -0
  49. package/dist/integrations/browser/page-pool-types.js.map +1 -0
  50. package/dist/integrations/browser/page-pool.d.ts +79 -0
  51. package/dist/integrations/browser/page-pool.d.ts.map +1 -0
  52. package/dist/integrations/browser/page-pool.js +288 -0
  53. package/dist/integrations/browser/page-pool.js.map +1 -0
  54. package/dist/integrations/browser/resource-blocking.d.ts +47 -0
  55. package/dist/integrations/browser/resource-blocking.d.ts.map +1 -0
  56. package/dist/integrations/browser/resource-blocking.js +195 -0
  57. package/dist/integrations/browser/resource-blocking.js.map +1 -0
  58. package/dist/integrations/browser/stealth/index.d.ts +8 -0
  59. package/dist/integrations/browser/stealth/index.d.ts.map +1 -0
  60. package/dist/integrations/browser/stealth/index.js +7 -0
  61. package/dist/integrations/browser/stealth/index.js.map +1 -0
  62. package/dist/integrations/browser/stealth/stealth-client.d.ts +51 -0
  63. package/dist/integrations/browser/stealth/stealth-client.d.ts.map +1 -0
  64. package/dist/integrations/browser/stealth/stealth-client.js +359 -0
  65. package/dist/integrations/browser/stealth/stealth-client.js.map +1 -0
  66. package/dist/integrations/browser/stealth/stealth-types.d.ts +35 -0
  67. package/dist/integrations/browser/stealth/stealth-types.d.ts.map +1 -0
  68. package/dist/integrations/browser/stealth/stealth-types.js +17 -0
  69. package/dist/integrations/browser/stealth/stealth-types.js.map +1 -0
  70. package/dist/integrations/browser/types.d.ts +13 -10
  71. package/dist/integrations/browser/types.d.ts.map +1 -1
  72. package/dist/integrations/browser/types.js.map +1 -1
  73. package/dist/mcp/bundle.js +5090 -222
  74. package/dist/mcp/handlers/core-handlers.d.ts.map +1 -1
  75. package/dist/mcp/handlers/core-handlers.js +35 -0
  76. package/dist/mcp/handlers/core-handlers.js.map +1 -1
  77. package/dist/mcp/protocol-server.d.ts.map +1 -1
  78. package/dist/mcp/protocol-server.js +4 -1
  79. package/dist/mcp/protocol-server.js.map +1 -1
  80. package/dist/mcp/qe-tool-bridge.d.ts +27 -0
  81. package/dist/mcp/qe-tool-bridge.d.ts.map +1 -0
  82. package/dist/mcp/qe-tool-bridge.js +87 -0
  83. package/dist/mcp/qe-tool-bridge.js.map +1 -0
  84. package/dist/mcp/tools/registry.d.ts +4 -0
  85. package/dist/mcp/tools/registry.d.ts.map +1 -1
  86. package/dist/mcp/tools/registry.js +20 -0
  87. package/dist/mcp/tools/registry.js.map +1 -1
  88. package/dist/mcp/tools/security-compliance/visual-security.d.ts +45 -0
  89. package/dist/mcp/tools/security-compliance/visual-security.d.ts.map +1 -0
  90. package/dist/mcp/tools/security-compliance/visual-security.js +218 -0
  91. package/dist/mcp/tools/security-compliance/visual-security.js.map +1 -0
  92. package/dist/mcp/tools/test-execution/browser-workflow.d.ts +50 -0
  93. package/dist/mcp/tools/test-execution/browser-workflow.d.ts.map +1 -0
  94. package/dist/mcp/tools/test-execution/browser-workflow.js +145 -0
  95. package/dist/mcp/tools/test-execution/browser-workflow.js.map +1 -0
  96. package/dist/mcp/tools/test-execution/load-test.d.ts +37 -0
  97. package/dist/mcp/tools/test-execution/load-test.d.ts.map +1 -0
  98. package/dist/mcp/tools/test-execution/load-test.js +98 -0
  99. package/dist/mcp/tools/test-execution/load-test.js.map +1 -0
  100. package/dist/mcp/tools/test-execution/schedule.d.ts +44 -0
  101. package/dist/mcp/tools/test-execution/schedule.d.ts.map +1 -0
  102. package/dist/mcp/tools/test-execution/schedule.js +96 -0
  103. package/dist/mcp/tools/test-execution/schedule.js.map +1 -0
  104. package/dist/planning/goap-planner.d.ts.map +1 -1
  105. package/dist/planning/goap-planner.js +7 -28
  106. package/dist/planning/goap-planner.js.map +1 -1
  107. package/dist/planning/plan-executor.d.ts.map +1 -1
  108. package/dist/planning/plan-executor.js +7 -28
  109. package/dist/planning/plan-executor.js.map +1 -1
  110. package/package.json +3 -10
  111. package/dist/cli/commands/qe-tools.d.ts +0 -27
  112. package/dist/cli/commands/qe-tools.d.ts.map +0 -1
  113. package/dist/cli/commands/qe-tools.js +0 -771
  114. package/dist/cli/commands/qe-tools.js.map +0 -1
  115. package/dist/neural-optimizer/index.d.ts +0 -55
  116. package/dist/neural-optimizer/index.d.ts.map +0 -1
  117. package/dist/neural-optimizer/index.js +0 -57
  118. package/dist/neural-optimizer/index.js.map +0 -1
  119. package/dist/neural-optimizer/replay-buffer.d.ts +0 -126
  120. package/dist/neural-optimizer/replay-buffer.d.ts.map +0 -1
  121. package/dist/neural-optimizer/replay-buffer.js +0 -356
  122. package/dist/neural-optimizer/replay-buffer.js.map +0 -1
  123. package/dist/neural-optimizer/swarm-topology.d.ts +0 -157
  124. package/dist/neural-optimizer/swarm-topology.d.ts.map +0 -1
  125. package/dist/neural-optimizer/swarm-topology.js +0 -384
  126. package/dist/neural-optimizer/swarm-topology.js.map +0 -1
  127. package/dist/neural-optimizer/topology-optimizer.d.ts +0 -137
  128. package/dist/neural-optimizer/topology-optimizer.d.ts.map +0 -1
  129. package/dist/neural-optimizer/topology-optimizer.js +0 -657
  130. package/dist/neural-optimizer/topology-optimizer.js.map +0 -1
  131. package/dist/neural-optimizer/types.d.ts +0 -333
  132. package/dist/neural-optimizer/types.d.ts.map +0 -1
  133. package/dist/neural-optimizer/types.js +0 -57
  134. package/dist/neural-optimizer/types.js.map +0 -1
  135. package/dist/neural-optimizer/value-network.d.ts +0 -129
  136. package/dist/neural-optimizer/value-network.d.ts.map +0 -1
  137. package/dist/neural-optimizer/value-network.js +0 -279
  138. 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