@arcanea/guardian-evolution 0.1.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/dist/algorithms/a2c.d.ts +86 -0
- package/dist/algorithms/a2c.d.ts.map +1 -0
- package/dist/algorithms/a2c.js +361 -0
- package/dist/algorithms/a2c.js.map +1 -0
- package/dist/algorithms/curiosity.d.ts +82 -0
- package/dist/algorithms/curiosity.d.ts.map +1 -0
- package/dist/algorithms/curiosity.js +392 -0
- package/dist/algorithms/curiosity.js.map +1 -0
- package/dist/algorithms/decision-transformer.d.ts +82 -0
- package/dist/algorithms/decision-transformer.d.ts.map +1 -0
- package/dist/algorithms/decision-transformer.js +415 -0
- package/dist/algorithms/decision-transformer.js.map +1 -0
- package/dist/algorithms/dqn.d.ts +72 -0
- package/dist/algorithms/dqn.d.ts.map +1 -0
- package/dist/algorithms/dqn.js +303 -0
- package/dist/algorithms/dqn.js.map +1 -0
- package/dist/algorithms/index.d.ts +32 -0
- package/dist/algorithms/index.d.ts.map +1 -0
- package/dist/algorithms/index.js +74 -0
- package/dist/algorithms/index.js.map +1 -0
- package/dist/algorithms/ppo.d.ts +72 -0
- package/dist/algorithms/ppo.d.ts.map +1 -0
- package/dist/algorithms/ppo.js +331 -0
- package/dist/algorithms/ppo.js.map +1 -0
- package/dist/algorithms/q-learning.d.ts +77 -0
- package/dist/algorithms/q-learning.d.ts.map +1 -0
- package/dist/algorithms/q-learning.js +259 -0
- package/dist/algorithms/q-learning.js.map +1 -0
- package/dist/algorithms/sarsa.d.ts +82 -0
- package/dist/algorithms/sarsa.d.ts.map +1 -0
- package/dist/algorithms/sarsa.js +297 -0
- package/dist/algorithms/sarsa.js.map +1 -0
- package/dist/index.d.ts +118 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +201 -0
- package/dist/index.js.map +1 -0
- package/dist/modes/balanced.d.ts +60 -0
- package/dist/modes/balanced.d.ts.map +1 -0
- package/dist/modes/balanced.js +234 -0
- package/dist/modes/balanced.js.map +1 -0
- package/dist/modes/batch.d.ts +82 -0
- package/dist/modes/batch.d.ts.map +1 -0
- package/dist/modes/batch.js +316 -0
- package/dist/modes/batch.js.map +1 -0
- package/dist/modes/edge.d.ts +85 -0
- package/dist/modes/edge.d.ts.map +1 -0
- package/dist/modes/edge.js +310 -0
- package/dist/modes/edge.js.map +1 -0
- package/dist/modes/index.d.ts +55 -0
- package/dist/modes/index.d.ts.map +1 -0
- package/dist/modes/index.js +83 -0
- package/dist/modes/index.js.map +1 -0
- package/dist/modes/real-time.d.ts +58 -0
- package/dist/modes/real-time.d.ts.map +1 -0
- package/dist/modes/real-time.js +196 -0
- package/dist/modes/real-time.js.map +1 -0
- package/dist/modes/research.d.ts +79 -0
- package/dist/modes/research.d.ts.map +1 -0
- package/dist/modes/research.js +389 -0
- package/dist/modes/research.js.map +1 -0
- package/dist/pattern-learner.d.ts +117 -0
- package/dist/pattern-learner.d.ts.map +1 -0
- package/dist/pattern-learner.js +603 -0
- package/dist/pattern-learner.js.map +1 -0
- package/dist/reasoning-bank.d.ts +259 -0
- package/dist/reasoning-bank.d.ts.map +1 -0
- package/dist/reasoning-bank.js +993 -0
- package/dist/reasoning-bank.js.map +1 -0
- package/dist/reasoningbank-adapter.d.ts +168 -0
- package/dist/reasoningbank-adapter.d.ts.map +1 -0
- package/dist/reasoningbank-adapter.js +463 -0
- package/dist/reasoningbank-adapter.js.map +1 -0
- package/dist/sona-integration.d.ts +168 -0
- package/dist/sona-integration.d.ts.map +1 -0
- package/dist/sona-integration.js +316 -0
- package/dist/sona-integration.js.map +1 -0
- package/dist/sona-manager.d.ts +147 -0
- package/dist/sona-manager.d.ts.map +1 -0
- package/dist/sona-manager.js +695 -0
- package/dist/sona-manager.js.map +1 -0
- package/dist/types.d.ts +431 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +11 -0
- package/dist/types.js.map +1 -0
- package/package.json +47 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* V3 Neural/Learning System
|
|
3
|
+
*
|
|
4
|
+
* Complete neural learning module with SONA learning modes,
|
|
5
|
+
* ReasoningBank integration, pattern learning, and RL algorithms.
|
|
6
|
+
*
|
|
7
|
+
* Performance Targets:
|
|
8
|
+
* - SONA adaptation: <0.05ms
|
|
9
|
+
* - Pattern matching: <1ms
|
|
10
|
+
* - Learning step: <10ms
|
|
11
|
+
*
|
|
12
|
+
* @module @claude-flow/neural
|
|
13
|
+
*/
|
|
14
|
+
// =============================================================================
|
|
15
|
+
// SONA Manager
|
|
16
|
+
// =============================================================================
|
|
17
|
+
export { SONAManager, createSONAManager, getModeConfig, getModeOptimizations, } from './sona-manager.js';
|
|
18
|
+
export { BaseModeImplementation, RealTimeMode, BalancedMode, ResearchMode, EdgeMode, BatchMode, } from './modes/index.js';
|
|
19
|
+
// =============================================================================
|
|
20
|
+
// SONA Integration (@ruvector/sona)
|
|
21
|
+
// =============================================================================
|
|
22
|
+
export { SONALearningEngine, createSONALearningEngine, } from './sona-integration.js';
|
|
23
|
+
// =============================================================================
|
|
24
|
+
// ReasoningBank
|
|
25
|
+
// =============================================================================
|
|
26
|
+
export { ReasoningBank, createReasoningBank, createInitializedReasoningBank, } from './reasoning-bank.js';
|
|
27
|
+
// =============================================================================
|
|
28
|
+
// Pattern Learner
|
|
29
|
+
// =============================================================================
|
|
30
|
+
export { PatternLearner, createPatternLearner, } from './pattern-learner.js';
|
|
31
|
+
// =============================================================================
|
|
32
|
+
// RL Algorithms
|
|
33
|
+
// =============================================================================
|
|
34
|
+
export {
|
|
35
|
+
// PPO
|
|
36
|
+
PPOAlgorithm, createPPO, DEFAULT_PPO_CONFIG,
|
|
37
|
+
// DQN
|
|
38
|
+
DQNAlgorithm, createDQN, DEFAULT_DQN_CONFIG,
|
|
39
|
+
// A2C
|
|
40
|
+
A2CAlgorithm, createA2C, DEFAULT_A2C_CONFIG,
|
|
41
|
+
// Decision Transformer
|
|
42
|
+
DecisionTransformer, createDecisionTransformer, DEFAULT_DT_CONFIG,
|
|
43
|
+
// Q-Learning
|
|
44
|
+
QLearning, createQLearning, DEFAULT_QLEARNING_CONFIG,
|
|
45
|
+
// SARSA
|
|
46
|
+
SARSAAlgorithm, createSARSA, DEFAULT_SARSA_CONFIG,
|
|
47
|
+
// Curiosity
|
|
48
|
+
CuriosityModule, createCuriosity, DEFAULT_CURIOSITY_CONFIG,
|
|
49
|
+
// Factory functions
|
|
50
|
+
createAlgorithm, getDefaultConfig, } from './algorithms/index.js';
|
|
51
|
+
// =============================================================================
|
|
52
|
+
// Convenience Factory
|
|
53
|
+
// =============================================================================
|
|
54
|
+
import { SONAManager, createSONAManager } from './sona-manager.js';
|
|
55
|
+
import { ReasoningBank, createReasoningBank } from './reasoning-bank.js';
|
|
56
|
+
import { PatternLearner, createPatternLearner } from './pattern-learner.js';
|
|
57
|
+
import { SONALearningEngine, createSONALearningEngine } from './sona-integration.js';
|
|
58
|
+
/**
|
|
59
|
+
* Neural Learning System - Complete integrated learning module
|
|
60
|
+
*/
|
|
61
|
+
export class NeuralLearningSystem {
|
|
62
|
+
sona;
|
|
63
|
+
reasoningBank;
|
|
64
|
+
patternLearner;
|
|
65
|
+
initialized = false;
|
|
66
|
+
constructor(mode = 'balanced') {
|
|
67
|
+
this.sona = createSONAManager(mode);
|
|
68
|
+
this.reasoningBank = createReasoningBank();
|
|
69
|
+
this.patternLearner = createPatternLearner();
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Initialize the learning system
|
|
73
|
+
*/
|
|
74
|
+
async initialize() {
|
|
75
|
+
if (this.initialized)
|
|
76
|
+
return;
|
|
77
|
+
await this.sona.initialize();
|
|
78
|
+
this.initialized = true;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Get SONA manager
|
|
82
|
+
*/
|
|
83
|
+
getSONAManager() {
|
|
84
|
+
return this.sona;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Get ReasoningBank
|
|
88
|
+
*/
|
|
89
|
+
getReasoningBank() {
|
|
90
|
+
return this.reasoningBank;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get Pattern Learner
|
|
94
|
+
*/
|
|
95
|
+
getPatternLearner() {
|
|
96
|
+
return this.patternLearner;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Change learning mode
|
|
100
|
+
*/
|
|
101
|
+
async setMode(mode) {
|
|
102
|
+
await this.sona.setMode(mode);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Begin tracking a task
|
|
106
|
+
*/
|
|
107
|
+
beginTask(context, domain = 'general') {
|
|
108
|
+
return this.sona.beginTrajectory(context, domain);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Record a step in the current task
|
|
112
|
+
*/
|
|
113
|
+
recordStep(trajectoryId, action, reward, stateEmbedding) {
|
|
114
|
+
this.sona.recordStep(trajectoryId, action, reward, stateEmbedding);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Complete a task and trigger learning
|
|
118
|
+
*/
|
|
119
|
+
async completeTask(trajectoryId, quality) {
|
|
120
|
+
const trajectory = this.sona.completeTrajectory(trajectoryId, quality);
|
|
121
|
+
if (trajectory) {
|
|
122
|
+
// Store in reasoning bank
|
|
123
|
+
this.reasoningBank.storeTrajectory(trajectory);
|
|
124
|
+
// Judge and potentially distill
|
|
125
|
+
await this.reasoningBank.judge(trajectory);
|
|
126
|
+
const memory = await this.reasoningBank.distill(trajectory);
|
|
127
|
+
// Extract pattern if successful
|
|
128
|
+
if (memory) {
|
|
129
|
+
this.patternLearner.extractPattern(trajectory, memory);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Find similar patterns for a task
|
|
135
|
+
*/
|
|
136
|
+
async findPatterns(queryEmbedding, k = 3) {
|
|
137
|
+
return this.patternLearner.findMatches(queryEmbedding, k);
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Retrieve relevant memories
|
|
141
|
+
*/
|
|
142
|
+
async retrieveMemories(queryEmbedding, k = 3) {
|
|
143
|
+
return this.reasoningBank.retrieve(queryEmbedding, k);
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Trigger learning cycle
|
|
147
|
+
*/
|
|
148
|
+
async triggerLearning() {
|
|
149
|
+
await this.sona.triggerLearning('manual');
|
|
150
|
+
await this.reasoningBank.consolidate();
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Get comprehensive statistics
|
|
154
|
+
*/
|
|
155
|
+
getStats() {
|
|
156
|
+
return {
|
|
157
|
+
sona: this.sona.getStats(),
|
|
158
|
+
reasoningBank: this.reasoningBank.getStats(),
|
|
159
|
+
patternLearner: this.patternLearner.getStats(),
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Add event listener
|
|
164
|
+
*/
|
|
165
|
+
addEventListener(listener) {
|
|
166
|
+
this.sona.addEventListener(listener);
|
|
167
|
+
this.reasoningBank.addEventListener(listener);
|
|
168
|
+
this.patternLearner.addEventListener(listener);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Cleanup resources
|
|
172
|
+
*/
|
|
173
|
+
async cleanup() {
|
|
174
|
+
await this.sona.cleanup();
|
|
175
|
+
this.initialized = false;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Create a complete neural learning system
|
|
180
|
+
*/
|
|
181
|
+
export function createNeuralLearningSystem(mode = 'balanced') {
|
|
182
|
+
return new NeuralLearningSystem(mode);
|
|
183
|
+
}
|
|
184
|
+
// =============================================================================
|
|
185
|
+
// Default Export
|
|
186
|
+
// =============================================================================
|
|
187
|
+
export default {
|
|
188
|
+
// Factories
|
|
189
|
+
createSONAManager,
|
|
190
|
+
createReasoningBank,
|
|
191
|
+
createPatternLearner,
|
|
192
|
+
createNeuralLearningSystem,
|
|
193
|
+
createSONALearningEngine,
|
|
194
|
+
// Classes
|
|
195
|
+
SONAManager,
|
|
196
|
+
ReasoningBank,
|
|
197
|
+
PatternLearner,
|
|
198
|
+
NeuralLearningSystem,
|
|
199
|
+
SONALearningEngine,
|
|
200
|
+
};
|
|
201
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Balanced Mode Implementation
|
|
3
|
+
*
|
|
4
|
+
* General-purpose mode with:
|
|
5
|
+
* - +25% quality improvement
|
|
6
|
+
* - 18ms overhead
|
|
7
|
+
* - Rank-4 LoRA
|
|
8
|
+
* - Pattern caching
|
|
9
|
+
* - Standard learning pipeline
|
|
10
|
+
*/
|
|
11
|
+
import type { SONAModeConfig, Trajectory, Pattern, PatternMatch, LoRAWeights, EWCState } from '../types.js';
|
|
12
|
+
import { BaseModeImplementation } from './index.js';
|
|
13
|
+
/**
|
|
14
|
+
* Balanced mode for general-purpose learning
|
|
15
|
+
*/
|
|
16
|
+
export declare class BalancedMode extends BaseModeImplementation {
|
|
17
|
+
readonly mode = "balanced";
|
|
18
|
+
private patternCache;
|
|
19
|
+
private cacheHits;
|
|
20
|
+
private cacheMisses;
|
|
21
|
+
private gradientAccumulator;
|
|
22
|
+
private momentumBuffers;
|
|
23
|
+
private totalPatternMatches;
|
|
24
|
+
private totalPatternTime;
|
|
25
|
+
private totalLearnTime;
|
|
26
|
+
private learnIterations;
|
|
27
|
+
private qualityImprovements;
|
|
28
|
+
initialize(): Promise<void>;
|
|
29
|
+
cleanup(): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Find patterns using similarity search with caching
|
|
32
|
+
*/
|
|
33
|
+
findPatterns(embedding: Float32Array, k: number, patterns: Pattern[]): Promise<PatternMatch[]>;
|
|
34
|
+
/**
|
|
35
|
+
* Learn from trajectories using standard gradient descent
|
|
36
|
+
*/
|
|
37
|
+
learn(trajectories: Trajectory[], config: SONAModeConfig, ewcState: EWCState): Promise<number>;
|
|
38
|
+
/**
|
|
39
|
+
* Apply LoRA adaptations with rank-4
|
|
40
|
+
*/
|
|
41
|
+
applyLoRA(input: Float32Array, weights?: LoRAWeights): Promise<Float32Array>;
|
|
42
|
+
getStats(): Record<string, number>;
|
|
43
|
+
/**
|
|
44
|
+
* Compute cache key from embedding
|
|
45
|
+
*/
|
|
46
|
+
private computeCacheKey;
|
|
47
|
+
/**
|
|
48
|
+
* Compute gradient from state and reward
|
|
49
|
+
*/
|
|
50
|
+
private computeGradient;
|
|
51
|
+
/**
|
|
52
|
+
* Accumulate gradient with momentum
|
|
53
|
+
*/
|
|
54
|
+
private accumulateGradient;
|
|
55
|
+
/**
|
|
56
|
+
* Compute EWC penalty for continual learning
|
|
57
|
+
*/
|
|
58
|
+
private computeEWCPenalty;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=balanced.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"balanced.d.ts","sourceRoot":"","sources":["../../src/modes/balanced.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,cAAc,EAEd,UAAU,EACV,OAAO,EACP,YAAY,EACZ,WAAW,EACX,QAAQ,EACT,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD;;GAEG;AACH,qBAAa,YAAa,SAAQ,sBAAsB;IACtD,QAAQ,CAAC,IAAI,cAAc;IAG3B,OAAO,CAAC,YAAY,CAA0C;IAC9D,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,WAAW,CAAK;IAGxB,OAAO,CAAC,mBAAmB,CAAwC;IACnE,OAAO,CAAC,eAAe,CAAwC;IAG/D,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,mBAAmB,CAAgB;IAErC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAO9B;;OAEG;IACG,YAAY,CAChB,SAAS,EAAE,YAAY,EACvB,CAAC,EAAE,MAAM,EACT,QAAQ,EAAE,OAAO,EAAE,GAClB,OAAO,CAAC,YAAY,EAAE,CAAC;IA8C1B;;OAEG;IACG,KAAK,CACT,YAAY,EAAE,UAAU,EAAE,EAC1B,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,MAAM,CAAC;IAwDlB;;OAEG;IACG,SAAS,CACb,KAAK,EAAE,YAAY,EACnB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,YAAY,CAAC;IA2BxB,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAqBlC;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAyB1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAiB1B"}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Balanced Mode Implementation
|
|
3
|
+
*
|
|
4
|
+
* General-purpose mode with:
|
|
5
|
+
* - +25% quality improvement
|
|
6
|
+
* - 18ms overhead
|
|
7
|
+
* - Rank-4 LoRA
|
|
8
|
+
* - Pattern caching
|
|
9
|
+
* - Standard learning pipeline
|
|
10
|
+
*/
|
|
11
|
+
import { BaseModeImplementation } from './index.js';
|
|
12
|
+
/**
|
|
13
|
+
* Balanced mode for general-purpose learning
|
|
14
|
+
*/
|
|
15
|
+
export class BalancedMode extends BaseModeImplementation {
|
|
16
|
+
mode = 'balanced';
|
|
17
|
+
// Pattern cache
|
|
18
|
+
patternCache = new Map();
|
|
19
|
+
cacheHits = 0;
|
|
20
|
+
cacheMisses = 0;
|
|
21
|
+
// Learning state
|
|
22
|
+
gradientAccumulator = new Map();
|
|
23
|
+
momentumBuffers = new Map();
|
|
24
|
+
// Stats
|
|
25
|
+
totalPatternMatches = 0;
|
|
26
|
+
totalPatternTime = 0;
|
|
27
|
+
totalLearnTime = 0;
|
|
28
|
+
learnIterations = 0;
|
|
29
|
+
qualityImprovements = [];
|
|
30
|
+
async initialize() {
|
|
31
|
+
await super.initialize();
|
|
32
|
+
this.patternCache.clear();
|
|
33
|
+
this.gradientAccumulator.clear();
|
|
34
|
+
this.momentumBuffers.clear();
|
|
35
|
+
}
|
|
36
|
+
async cleanup() {
|
|
37
|
+
this.patternCache.clear();
|
|
38
|
+
this.gradientAccumulator.clear();
|
|
39
|
+
this.momentumBuffers.clear();
|
|
40
|
+
await super.cleanup();
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Find patterns using similarity search with caching
|
|
44
|
+
*/
|
|
45
|
+
async findPatterns(embedding, k, patterns) {
|
|
46
|
+
const startTime = performance.now();
|
|
47
|
+
// Check cache
|
|
48
|
+
const cacheKey = this.computeCacheKey(embedding);
|
|
49
|
+
const cached = this.patternCache.get(cacheKey);
|
|
50
|
+
if (cached && cached.length >= k) {
|
|
51
|
+
this.cacheHits++;
|
|
52
|
+
this.totalPatternTime += performance.now() - startTime;
|
|
53
|
+
this.totalPatternMatches++;
|
|
54
|
+
return cached.slice(0, k);
|
|
55
|
+
}
|
|
56
|
+
this.cacheMisses++;
|
|
57
|
+
// Compute similarities for all patterns
|
|
58
|
+
const matches = [];
|
|
59
|
+
for (const pattern of patterns) {
|
|
60
|
+
const similarity = this.cosineSimilarity(embedding, pattern.embedding);
|
|
61
|
+
matches.push({
|
|
62
|
+
pattern,
|
|
63
|
+
similarity,
|
|
64
|
+
confidence: similarity * pattern.successRate,
|
|
65
|
+
latencyMs: 0,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
// Sort by similarity descending
|
|
69
|
+
matches.sort((a, b) => b.similarity - a.similarity);
|
|
70
|
+
const topK = matches.slice(0, k);
|
|
71
|
+
// Cache result
|
|
72
|
+
if (this.patternCache.size > 500) {
|
|
73
|
+
const firstKey = this.patternCache.keys().next().value;
|
|
74
|
+
if (firstKey)
|
|
75
|
+
this.patternCache.delete(firstKey);
|
|
76
|
+
}
|
|
77
|
+
this.patternCache.set(cacheKey, topK);
|
|
78
|
+
this.totalPatternTime += performance.now() - startTime;
|
|
79
|
+
this.totalPatternMatches++;
|
|
80
|
+
return topK;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Learn from trajectories using standard gradient descent
|
|
84
|
+
*/
|
|
85
|
+
async learn(trajectories, config, ewcState) {
|
|
86
|
+
const startTime = performance.now();
|
|
87
|
+
if (trajectories.length === 0)
|
|
88
|
+
return 0;
|
|
89
|
+
const qualityThreshold = config.qualityThreshold;
|
|
90
|
+
const learningRate = config.learningRate;
|
|
91
|
+
// Separate positive and negative examples
|
|
92
|
+
const goodTrajectories = trajectories.filter(t => t.qualityScore >= qualityThreshold);
|
|
93
|
+
const badTrajectories = trajectories.filter(t => t.qualityScore < qualityThreshold);
|
|
94
|
+
if (goodTrajectories.length === 0)
|
|
95
|
+
return 0;
|
|
96
|
+
// Compute gradients from trajectory pairs
|
|
97
|
+
let totalGradientNorm = 0;
|
|
98
|
+
for (const good of goodTrajectories) {
|
|
99
|
+
// Use last step embedding as "goal state"
|
|
100
|
+
if (good.steps.length === 0)
|
|
101
|
+
continue;
|
|
102
|
+
const goalState = good.steps[good.steps.length - 1].stateAfter;
|
|
103
|
+
// Positive gradient: move toward good outcomes
|
|
104
|
+
const posGradient = this.computeGradient(goalState, good.qualityScore);
|
|
105
|
+
totalGradientNorm += this.accumulateGradient('positive', posGradient, learningRate);
|
|
106
|
+
// Negative gradient: move away from bad outcomes (contrastive)
|
|
107
|
+
for (const bad of badTrajectories.slice(0, 3)) {
|
|
108
|
+
if (bad.steps.length === 0)
|
|
109
|
+
continue;
|
|
110
|
+
const badState = bad.steps[bad.steps.length - 1].stateAfter;
|
|
111
|
+
const negGradient = this.computeGradient(badState, -bad.qualityScore);
|
|
112
|
+
totalGradientNorm += this.accumulateGradient('negative', negGradient, learningRate * 0.5);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
// Apply EWC regularization
|
|
116
|
+
const ewcPenalty = this.computeEWCPenalty(ewcState, config.ewcLambda);
|
|
117
|
+
totalGradientNorm += ewcPenalty;
|
|
118
|
+
// Compute improvement delta
|
|
119
|
+
const avgGoodQuality = goodTrajectories.reduce((s, t) => s + t.qualityScore, 0) / goodTrajectories.length;
|
|
120
|
+
const baselineQuality = 0.5;
|
|
121
|
+
const improvementDelta = avgGoodQuality - baselineQuality;
|
|
122
|
+
this.qualityImprovements.push(improvementDelta);
|
|
123
|
+
if (this.qualityImprovements.length > 100) {
|
|
124
|
+
this.qualityImprovements = this.qualityImprovements.slice(-100);
|
|
125
|
+
}
|
|
126
|
+
this.totalLearnTime += performance.now() - startTime;
|
|
127
|
+
this.learnIterations++;
|
|
128
|
+
return Math.max(0, improvementDelta);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Apply LoRA adaptations with rank-4
|
|
132
|
+
*/
|
|
133
|
+
async applyLoRA(input, weights) {
|
|
134
|
+
if (!weights) {
|
|
135
|
+
return input;
|
|
136
|
+
}
|
|
137
|
+
const output = new Float32Array(input.length);
|
|
138
|
+
output.set(input);
|
|
139
|
+
const rank = this.config.loraRank;
|
|
140
|
+
// Apply to all target modules
|
|
141
|
+
for (const module of ['q_proj', 'v_proj', 'k_proj', 'o_proj']) {
|
|
142
|
+
const A = weights.A.get(module);
|
|
143
|
+
const B = weights.B.get(module);
|
|
144
|
+
if (A && B) {
|
|
145
|
+
const adapted = this.applyLoRATransform(input, A, B, rank);
|
|
146
|
+
const alpha = 0.2; // Moderate blending
|
|
147
|
+
for (let i = 0; i < output.length; i++) {
|
|
148
|
+
output[i] = output[i] * (1 - alpha) + adapted[i] * alpha;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return output;
|
|
153
|
+
}
|
|
154
|
+
getStats() {
|
|
155
|
+
const avgImprovement = this.qualityImprovements.length > 0
|
|
156
|
+
? this.qualityImprovements.reduce((a, b) => a + b, 0) / this.qualityImprovements.length
|
|
157
|
+
: 0;
|
|
158
|
+
return {
|
|
159
|
+
cacheHitRate: this.cacheHits + this.cacheMisses > 0
|
|
160
|
+
? this.cacheHits / (this.cacheHits + this.cacheMisses)
|
|
161
|
+
: 0,
|
|
162
|
+
avgPatternMatchMs: this.totalPatternMatches > 0
|
|
163
|
+
? this.totalPatternTime / this.totalPatternMatches
|
|
164
|
+
: 0,
|
|
165
|
+
avgLearnMs: this.learnIterations > 0
|
|
166
|
+
? this.totalLearnTime / this.learnIterations
|
|
167
|
+
: 0,
|
|
168
|
+
avgImprovement,
|
|
169
|
+
patternCacheSize: this.patternCache.size,
|
|
170
|
+
learnIterations: this.learnIterations,
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Compute cache key from embedding
|
|
175
|
+
*/
|
|
176
|
+
computeCacheKey(embedding) {
|
|
177
|
+
const keyParts = [];
|
|
178
|
+
for (let i = 0; i < Math.min(16, embedding.length); i++) {
|
|
179
|
+
keyParts.push(embedding[i].toFixed(2));
|
|
180
|
+
}
|
|
181
|
+
return keyParts.join(',');
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Compute gradient from state and reward
|
|
185
|
+
*/
|
|
186
|
+
computeGradient(state, reward) {
|
|
187
|
+
const gradient = new Float32Array(state.length);
|
|
188
|
+
for (let i = 0; i < state.length; i++) {
|
|
189
|
+
gradient[i] = state[i] * reward;
|
|
190
|
+
}
|
|
191
|
+
return gradient;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Accumulate gradient with momentum
|
|
195
|
+
*/
|
|
196
|
+
accumulateGradient(key, gradient, lr) {
|
|
197
|
+
let momentum = this.momentumBuffers.get(key);
|
|
198
|
+
if (!momentum) {
|
|
199
|
+
momentum = new Float32Array(gradient.length);
|
|
200
|
+
this.momentumBuffers.set(key, momentum);
|
|
201
|
+
}
|
|
202
|
+
let accumulator = this.gradientAccumulator.get(key);
|
|
203
|
+
if (!accumulator) {
|
|
204
|
+
accumulator = new Float32Array(gradient.length);
|
|
205
|
+
this.gradientAccumulator.set(key, accumulator);
|
|
206
|
+
}
|
|
207
|
+
const beta = 0.9; // Momentum coefficient
|
|
208
|
+
let norm = 0;
|
|
209
|
+
for (let i = 0; i < gradient.length; i++) {
|
|
210
|
+
momentum[i] = beta * momentum[i] + (1 - beta) * gradient[i];
|
|
211
|
+
accumulator[i] += lr * momentum[i];
|
|
212
|
+
norm += momentum[i] * momentum[i];
|
|
213
|
+
}
|
|
214
|
+
return Math.sqrt(norm);
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Compute EWC penalty for continual learning
|
|
218
|
+
*/
|
|
219
|
+
computeEWCPenalty(ewcState, lambda) {
|
|
220
|
+
let penalty = 0;
|
|
221
|
+
for (const [key, fisher] of ewcState.fisher) {
|
|
222
|
+
const means = ewcState.means.get(key);
|
|
223
|
+
const current = this.gradientAccumulator.get(key);
|
|
224
|
+
if (means && current) {
|
|
225
|
+
for (let i = 0; i < Math.min(fisher.length, means.length, current.length); i++) {
|
|
226
|
+
const diff = current[i] - means[i];
|
|
227
|
+
penalty += fisher[i] * diff * diff;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return lambda * penalty * 0.5;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
//# sourceMappingURL=balanced.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"balanced.js","sourceRoot":"","sources":["../../src/modes/balanced.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Batch Mode Implementation
|
|
3
|
+
*
|
|
4
|
+
* Optimized for high-throughput processing with:
|
|
5
|
+
* - Large batch sizes (128)
|
|
6
|
+
* - Rank-8 LoRA
|
|
7
|
+
* - Gradient accumulation
|
|
8
|
+
* - Async batch processing
|
|
9
|
+
* - 50ms latency budget
|
|
10
|
+
*/
|
|
11
|
+
import type { SONAModeConfig, Trajectory, Pattern, PatternMatch, LoRAWeights, EWCState } from '../types.js';
|
|
12
|
+
import { BaseModeImplementation } from './index.js';
|
|
13
|
+
/**
|
|
14
|
+
* Batch mode for high-throughput processing
|
|
15
|
+
*/
|
|
16
|
+
export declare class BatchMode extends BaseModeImplementation {
|
|
17
|
+
readonly mode = "batch";
|
|
18
|
+
private patternQueue;
|
|
19
|
+
private learningQueue;
|
|
20
|
+
private embeddingBuffer;
|
|
21
|
+
private batchEmbeddings;
|
|
22
|
+
private accumulatedGradients;
|
|
23
|
+
private gradientSteps;
|
|
24
|
+
private isBatchProcessing;
|
|
25
|
+
private batchTimer;
|
|
26
|
+
private totalBatches;
|
|
27
|
+
private totalItems;
|
|
28
|
+
private totalBatchTime;
|
|
29
|
+
private learnIterations;
|
|
30
|
+
initialize(): Promise<void>;
|
|
31
|
+
cleanup(): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Find patterns - queues for batch processing
|
|
34
|
+
*/
|
|
35
|
+
findPatterns(embedding: Float32Array, k: number, patterns: Pattern[]): Promise<PatternMatch[]>;
|
|
36
|
+
/**
|
|
37
|
+
* Learn from trajectories - accumulates for batch
|
|
38
|
+
*/
|
|
39
|
+
learn(trajectories: Trajectory[], config: SONAModeConfig, ewcState: EWCState): Promise<number>;
|
|
40
|
+
/**
|
|
41
|
+
* Apply LoRA with rank-8
|
|
42
|
+
*/
|
|
43
|
+
applyLoRA(input: Float32Array, weights?: LoRAWeights): Promise<Float32Array>;
|
|
44
|
+
getStats(): Record<string, number>;
|
|
45
|
+
/**
|
|
46
|
+
* Direct pattern matching without batching
|
|
47
|
+
*/
|
|
48
|
+
private findPatternsDirect;
|
|
49
|
+
/**
|
|
50
|
+
* Direct LoRA application
|
|
51
|
+
*/
|
|
52
|
+
private applyLoRADirect;
|
|
53
|
+
/**
|
|
54
|
+
* Schedule batch processing
|
|
55
|
+
*/
|
|
56
|
+
private scheduleBatchProcessing;
|
|
57
|
+
/**
|
|
58
|
+
* Process pattern requests in batch
|
|
59
|
+
*/
|
|
60
|
+
private processBatchPatterns;
|
|
61
|
+
/**
|
|
62
|
+
* Batch similarity search
|
|
63
|
+
*/
|
|
64
|
+
private batchSimilaritySearch;
|
|
65
|
+
/**
|
|
66
|
+
* Process batch learning
|
|
67
|
+
*/
|
|
68
|
+
private processBatchLearning;
|
|
69
|
+
/**
|
|
70
|
+
* Accumulate gradient from trajectory
|
|
71
|
+
*/
|
|
72
|
+
private accumulateTrajectoryGradient;
|
|
73
|
+
/**
|
|
74
|
+
* Apply accumulated gradients with EWC
|
|
75
|
+
*/
|
|
76
|
+
private applyAccumulatedGradients;
|
|
77
|
+
/**
|
|
78
|
+
* Apply LoRA to batch of inputs
|
|
79
|
+
*/
|
|
80
|
+
private applyLoRABatch;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=batch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../src/modes/batch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,cAAc,EAEd,UAAU,EACV,OAAO,EACP,YAAY,EACZ,WAAW,EACX,QAAQ,EACT,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD;;GAEG;AACH,qBAAa,SAAU,SAAQ,sBAAsB;IACnD,QAAQ,CAAC,IAAI,WAAW;IAGxB,OAAO,CAAC,YAAY,CAIZ;IACR,OAAO,CAAC,aAAa,CAAoB;IAGzC,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,eAAe,CAAsB;IAG7C,OAAO,CAAC,oBAAoB,CAAwC;IACpE,OAAO,CAAC,aAAa,CAAK;IAG1B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,UAAU,CAA8C;IAGhE,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,eAAe,CAAK;IAEtB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAU9B;;OAEG;IACG,YAAY,CAChB,SAAS,EAAE,YAAY,EACvB,CAAC,EAAE,MAAM,EACT,QAAQ,EAAE,OAAO,EAAE,GAClB,OAAO,CAAC,YAAY,EAAE,CAAC;IAa1B;;OAEG;IACG,KAAK,CACT,YAAY,EAAE,UAAU,EAAE,EAC1B,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,MAAM,CAAC;IAoBlB;;OAEG;IACG,SAAS,CACb,KAAK,EAAE,YAAY,EACnB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,YAAY,CAAC;IAqBxB,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAgBlC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;YACW,eAAe;IA6B7B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAQ/B;;OAEG;YACW,oBAAoB;IA8BlC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAwB7B;;OAEG;YACW,oBAAoB;IAiDlC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAwBpC;;OAEG;YACW,yBAAyB;IA6BvC;;OAEG;YACW,cAAc;CA8B7B"}
|