@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
|
@@ -0,0 +1,463 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* V3 ReasoningBank Adapter
|
|
3
|
+
*
|
|
4
|
+
* Provides agentic-flow@alpha compatible ReasoningBank interface:
|
|
5
|
+
* - 4-step pipeline: RETRIEVE, JUDGE, DISTILL, CONSOLIDATE
|
|
6
|
+
* - Trajectory tracking and verdict judgment
|
|
7
|
+
* - Memory distillation from successful trajectories
|
|
8
|
+
* - Pattern consolidation with deduplication and pruning
|
|
9
|
+
*
|
|
10
|
+
* Based on Algorithm 3 & 4 from ReasoningBank paper.
|
|
11
|
+
*
|
|
12
|
+
* Performance Targets:
|
|
13
|
+
* - Pattern retrieval: <5ms
|
|
14
|
+
* - Verdict judgment: <10ms
|
|
15
|
+
* - Memory distillation: <50ms
|
|
16
|
+
* - Consolidation: <100ms
|
|
17
|
+
*/
|
|
18
|
+
import { createSONAManager } from './sona-manager.js';
|
|
19
|
+
import { createPatternLearner } from './pattern-learner.js';
|
|
20
|
+
// ============================================================================
|
|
21
|
+
// ReasoningBank Adapter Implementation
|
|
22
|
+
// ============================================================================
|
|
23
|
+
export class ReasoningBankAdapter {
|
|
24
|
+
config;
|
|
25
|
+
sonaManager;
|
|
26
|
+
patternLearner;
|
|
27
|
+
patterns = new Map();
|
|
28
|
+
newPatternsSinceConsolidation = 0;
|
|
29
|
+
initialized = false;
|
|
30
|
+
constructor(config) {
|
|
31
|
+
this.config = {
|
|
32
|
+
dbPath: config?.dbPath || '.agentdb/reasoningbank.db',
|
|
33
|
+
enableLearning: config?.enableLearning ?? true,
|
|
34
|
+
enableReasoning: config?.enableReasoning ?? true,
|
|
35
|
+
sonaMode: config?.sonaMode || 'balanced',
|
|
36
|
+
duplicateThreshold: config?.duplicateThreshold ?? 0.95,
|
|
37
|
+
contradictionThreshold: config?.contradictionThreshold ?? 0.85,
|
|
38
|
+
pruneAgeDays: config?.pruneAgeDays ?? 30,
|
|
39
|
+
minConfidenceKeep: config?.minConfidenceKeep ?? 0.3,
|
|
40
|
+
consolidateTriggerThreshold: config?.consolidateTriggerThreshold ?? 100,
|
|
41
|
+
maxItemsSuccess: config?.maxItemsSuccess ?? 5,
|
|
42
|
+
maxItemsFailure: config?.maxItemsFailure ?? 3,
|
|
43
|
+
confidencePriorSuccess: config?.confidencePriorSuccess ?? 0.8,
|
|
44
|
+
confidencePriorFailure: config?.confidencePriorFailure ?? 0.5,
|
|
45
|
+
};
|
|
46
|
+
this.sonaManager = createSONAManager(this.config.sonaMode);
|
|
47
|
+
this.patternLearner = createPatternLearner({
|
|
48
|
+
maxPatterns: 5000,
|
|
49
|
+
matchThreshold: 0.7,
|
|
50
|
+
qualityThreshold: 0.5,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
async initialize() {
|
|
54
|
+
if (this.initialized)
|
|
55
|
+
return;
|
|
56
|
+
await this.sonaManager.initialize();
|
|
57
|
+
this.initialized = true;
|
|
58
|
+
}
|
|
59
|
+
// ==========================================================================
|
|
60
|
+
// Step 1: RETRIEVE - Top-k memory injection with MMR diversity
|
|
61
|
+
// ==========================================================================
|
|
62
|
+
/**
|
|
63
|
+
* Retrieve relevant patterns for a query
|
|
64
|
+
*/
|
|
65
|
+
async retrieve(queryEmbedding, options) {
|
|
66
|
+
const k = options?.k ?? 5;
|
|
67
|
+
const domain = options?.domain;
|
|
68
|
+
const minConfidence = options?.minConfidence ?? 0;
|
|
69
|
+
const useMmr = options?.useMmr ?? true;
|
|
70
|
+
const mmrLambda = options?.mmrLambda ?? 0.7;
|
|
71
|
+
// Get all patterns, filter by domain and confidence
|
|
72
|
+
let candidates = Array.from(this.patterns.values());
|
|
73
|
+
if (domain) {
|
|
74
|
+
candidates = candidates.filter(p => p.domain === domain);
|
|
75
|
+
}
|
|
76
|
+
if (minConfidence > 0) {
|
|
77
|
+
candidates = candidates.filter(p => p.confidence >= minConfidence);
|
|
78
|
+
}
|
|
79
|
+
if (candidates.length === 0) {
|
|
80
|
+
return [];
|
|
81
|
+
}
|
|
82
|
+
// Compute similarities
|
|
83
|
+
const similarities = candidates.map(pattern => ({
|
|
84
|
+
pattern,
|
|
85
|
+
similarity: this.cosineSimilarity(queryEmbedding, pattern.embedding),
|
|
86
|
+
}));
|
|
87
|
+
if (!useMmr) {
|
|
88
|
+
// Simple top-k
|
|
89
|
+
return similarities
|
|
90
|
+
.sort((a, b) => b.similarity - a.similarity)
|
|
91
|
+
.slice(0, k)
|
|
92
|
+
.map(s => s.pattern);
|
|
93
|
+
}
|
|
94
|
+
// Maximal Marginal Relevance (MMR) for diversity
|
|
95
|
+
return this.mmrSelect(queryEmbedding, similarities, k, mmrLambda);
|
|
96
|
+
}
|
|
97
|
+
// ==========================================================================
|
|
98
|
+
// Step 2: JUDGE - LLM-as-judge trajectory evaluation
|
|
99
|
+
// ==========================================================================
|
|
100
|
+
/**
|
|
101
|
+
* Judge a trajectory's success
|
|
102
|
+
*/
|
|
103
|
+
async judge(trajectory) {
|
|
104
|
+
// Compute quality metrics
|
|
105
|
+
const qualityScore = trajectory.qualityScore;
|
|
106
|
+
const stepCount = trajectory.steps.length;
|
|
107
|
+
const avgReward = stepCount > 0
|
|
108
|
+
? trajectory.steps.reduce((sum, s) => sum + s.reward, 0) / stepCount
|
|
109
|
+
: 0;
|
|
110
|
+
// Determine verdict label
|
|
111
|
+
let label;
|
|
112
|
+
if (qualityScore >= 0.8 && avgReward >= 0.7) {
|
|
113
|
+
label = 'Success';
|
|
114
|
+
}
|
|
115
|
+
else if (qualityScore < 0.4 || avgReward < 0.3) {
|
|
116
|
+
label = 'Failure';
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
label = 'Partial';
|
|
120
|
+
}
|
|
121
|
+
// Collect evidence
|
|
122
|
+
const evidence = [];
|
|
123
|
+
evidence.push(`Quality score: ${qualityScore.toFixed(2)}`);
|
|
124
|
+
evidence.push(`Average reward: ${avgReward.toFixed(2)}`);
|
|
125
|
+
evidence.push(`Step count: ${stepCount}`);
|
|
126
|
+
if (trajectory.steps.length > 0) {
|
|
127
|
+
const lastStep = trajectory.steps[trajectory.steps.length - 1];
|
|
128
|
+
evidence.push(`Final action: ${lastStep.action}`);
|
|
129
|
+
evidence.push(`Final reward: ${lastStep.reward.toFixed(2)}`);
|
|
130
|
+
}
|
|
131
|
+
// Generate reasoning
|
|
132
|
+
const reasoning = this.generateJudgmentReasoning(trajectory, label, evidence);
|
|
133
|
+
return {
|
|
134
|
+
label,
|
|
135
|
+
score: qualityScore,
|
|
136
|
+
evidence,
|
|
137
|
+
reasoning,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
// ==========================================================================
|
|
141
|
+
// Step 3: DISTILL - Extract strategy memories from trajectories
|
|
142
|
+
// ==========================================================================
|
|
143
|
+
/**
|
|
144
|
+
* Distill memories from a judged trajectory
|
|
145
|
+
*/
|
|
146
|
+
async distill(trajectory, verdict, options) {
|
|
147
|
+
const maxItems = verdict.label === 'Success'
|
|
148
|
+
? this.config.maxItemsSuccess
|
|
149
|
+
: this.config.maxItemsFailure;
|
|
150
|
+
const confidencePrior = verdict.label === 'Success'
|
|
151
|
+
? this.config.confidencePriorSuccess
|
|
152
|
+
: this.config.confidencePriorFailure;
|
|
153
|
+
const memoryIds = [];
|
|
154
|
+
// Extract key patterns from trajectory
|
|
155
|
+
const patterns = this.extractPatternsFromTrajectory(trajectory, verdict);
|
|
156
|
+
for (let i = 0; i < Math.min(patterns.length, maxItems); i++) {
|
|
157
|
+
const pattern = patterns[i];
|
|
158
|
+
const id = `mem_${Date.now()}_${Math.random().toString(36).slice(2, 9)}`;
|
|
159
|
+
const rbPattern = {
|
|
160
|
+
id,
|
|
161
|
+
type: 'reasoning_memory',
|
|
162
|
+
domain: trajectory.domain,
|
|
163
|
+
patternData: {
|
|
164
|
+
title: pattern.title,
|
|
165
|
+
description: pattern.description,
|
|
166
|
+
content: pattern.content,
|
|
167
|
+
source: {
|
|
168
|
+
taskId: options?.taskId || trajectory.trajectoryId,
|
|
169
|
+
agentId: options?.agentId || 'unknown',
|
|
170
|
+
outcome: verdict.label,
|
|
171
|
+
evidence: verdict.evidence,
|
|
172
|
+
},
|
|
173
|
+
tags: pattern.tags,
|
|
174
|
+
domain: trajectory.domain,
|
|
175
|
+
createdAt: new Date().toISOString(),
|
|
176
|
+
confidence: confidencePrior,
|
|
177
|
+
nUses: 0,
|
|
178
|
+
},
|
|
179
|
+
confidence: confidencePrior,
|
|
180
|
+
usageCount: 0,
|
|
181
|
+
embedding: this.computePatternEmbedding(trajectory, i),
|
|
182
|
+
createdAt: Date.now(),
|
|
183
|
+
lastUsed: Date.now(),
|
|
184
|
+
};
|
|
185
|
+
this.patterns.set(id, rbPattern);
|
|
186
|
+
this.newPatternsSinceConsolidation++;
|
|
187
|
+
memoryIds.push(id);
|
|
188
|
+
}
|
|
189
|
+
// Check if consolidation should run
|
|
190
|
+
if (this.shouldConsolidate()) {
|
|
191
|
+
await this.consolidate();
|
|
192
|
+
}
|
|
193
|
+
return memoryIds;
|
|
194
|
+
}
|
|
195
|
+
// ==========================================================================
|
|
196
|
+
// Step 4: CONSOLIDATE - Dedup, detect contradictions, prune old patterns
|
|
197
|
+
// ==========================================================================
|
|
198
|
+
/**
|
|
199
|
+
* Run consolidation: deduplicate, detect contradictions, prune
|
|
200
|
+
*/
|
|
201
|
+
async consolidate() {
|
|
202
|
+
const startTime = Date.now();
|
|
203
|
+
const patterns = Array.from(this.patterns.values());
|
|
204
|
+
let duplicatesFound = 0;
|
|
205
|
+
let contradictionsFound = 0;
|
|
206
|
+
let itemsPruned = 0;
|
|
207
|
+
// Step 1: Deduplicate similar patterns
|
|
208
|
+
const toRemove = new Set();
|
|
209
|
+
for (let i = 0; i < patterns.length; i++) {
|
|
210
|
+
if (toRemove.has(patterns[i].id))
|
|
211
|
+
continue;
|
|
212
|
+
for (let j = i + 1; j < patterns.length; j++) {
|
|
213
|
+
if (toRemove.has(patterns[j].id))
|
|
214
|
+
continue;
|
|
215
|
+
const similarity = this.cosineSimilarity(patterns[i].embedding, patterns[j].embedding);
|
|
216
|
+
if (similarity >= this.config.duplicateThreshold) {
|
|
217
|
+
duplicatesFound++;
|
|
218
|
+
// Keep the one with higher usage/confidence
|
|
219
|
+
const score1 = patterns[i].usageCount * patterns[i].confidence;
|
|
220
|
+
const score2 = patterns[j].usageCount * patterns[j].confidence;
|
|
221
|
+
if (score1 >= score2) {
|
|
222
|
+
toRemove.add(patterns[j].id);
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
toRemove.add(patterns[i].id);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
// Step 2: Detect contradictions (similar embeddings, different outcomes)
|
|
231
|
+
for (let i = 0; i < patterns.length; i++) {
|
|
232
|
+
if (toRemove.has(patterns[i].id))
|
|
233
|
+
continue;
|
|
234
|
+
for (let j = i + 1; j < patterns.length; j++) {
|
|
235
|
+
if (toRemove.has(patterns[j].id))
|
|
236
|
+
continue;
|
|
237
|
+
const similarity = this.cosineSimilarity(patterns[i].embedding, patterns[j].embedding);
|
|
238
|
+
const outcome1 = patterns[i].patternData.source.outcome;
|
|
239
|
+
const outcome2 = patterns[j].patternData.source.outcome;
|
|
240
|
+
if (similarity >= this.config.contradictionThreshold &&
|
|
241
|
+
outcome1 !== outcome2) {
|
|
242
|
+
contradictionsFound++;
|
|
243
|
+
// Log contradiction for analysis (don't auto-remove)
|
|
244
|
+
console.warn(`Contradiction detected: ${patterns[i].id} vs ${patterns[j].id}`);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
// Step 3: Prune old, low-confidence patterns
|
|
249
|
+
const now = Date.now();
|
|
250
|
+
const maxAge = this.config.pruneAgeDays * 24 * 60 * 60 * 1000;
|
|
251
|
+
for (const pattern of patterns) {
|
|
252
|
+
if (toRemove.has(pattern.id))
|
|
253
|
+
continue;
|
|
254
|
+
const age = now - pattern.createdAt;
|
|
255
|
+
if (age > maxAge &&
|
|
256
|
+
pattern.confidence < this.config.minConfidenceKeep &&
|
|
257
|
+
pattern.usageCount < 3) {
|
|
258
|
+
toRemove.add(pattern.id);
|
|
259
|
+
itemsPruned++;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
// Remove marked patterns
|
|
263
|
+
for (const id of toRemove) {
|
|
264
|
+
this.patterns.delete(id);
|
|
265
|
+
}
|
|
266
|
+
this.newPatternsSinceConsolidation = 0;
|
|
267
|
+
const durationMs = Date.now() - startTime;
|
|
268
|
+
return {
|
|
269
|
+
itemsProcessed: patterns.length,
|
|
270
|
+
duplicatesFound,
|
|
271
|
+
contradictionsFound,
|
|
272
|
+
itemsPruned,
|
|
273
|
+
durationMs,
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
// ==========================================================================
|
|
277
|
+
// Pattern Management
|
|
278
|
+
// ==========================================================================
|
|
279
|
+
/**
|
|
280
|
+
* Insert a pattern directly
|
|
281
|
+
*/
|
|
282
|
+
insertPattern(pattern) {
|
|
283
|
+
const fullPattern = {
|
|
284
|
+
...pattern,
|
|
285
|
+
createdAt: Date.now(),
|
|
286
|
+
lastUsed: Date.now(),
|
|
287
|
+
};
|
|
288
|
+
this.patterns.set(pattern.id, fullPattern);
|
|
289
|
+
this.newPatternsSinceConsolidation++;
|
|
290
|
+
return pattern.id;
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Get a pattern by ID
|
|
294
|
+
*/
|
|
295
|
+
getPattern(id) {
|
|
296
|
+
const pattern = this.patterns.get(id);
|
|
297
|
+
if (pattern) {
|
|
298
|
+
pattern.lastUsed = Date.now();
|
|
299
|
+
pattern.usageCount++;
|
|
300
|
+
}
|
|
301
|
+
return pattern;
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Update pattern confidence
|
|
305
|
+
*/
|
|
306
|
+
updateConfidence(id, delta) {
|
|
307
|
+
const pattern = this.patterns.get(id);
|
|
308
|
+
if (pattern) {
|
|
309
|
+
pattern.confidence = Math.max(0, Math.min(1, pattern.confidence + delta));
|
|
310
|
+
pattern.patternData.confidence = pattern.confidence;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Get statistics
|
|
315
|
+
*/
|
|
316
|
+
getStats() {
|
|
317
|
+
const patterns = Array.from(this.patterns.values());
|
|
318
|
+
const byDomain = {};
|
|
319
|
+
const byOutcome = {};
|
|
320
|
+
for (const pattern of patterns) {
|
|
321
|
+
byDomain[pattern.domain] = (byDomain[pattern.domain] || 0) + 1;
|
|
322
|
+
byOutcome[pattern.patternData.source.outcome] =
|
|
323
|
+
(byOutcome[pattern.patternData.source.outcome] || 0) + 1;
|
|
324
|
+
}
|
|
325
|
+
const avgConfidence = patterns.length > 0
|
|
326
|
+
? patterns.reduce((sum, p) => sum + p.confidence, 0) / patterns.length
|
|
327
|
+
: 0;
|
|
328
|
+
return {
|
|
329
|
+
totalPatterns: patterns.length,
|
|
330
|
+
byDomain,
|
|
331
|
+
byOutcome,
|
|
332
|
+
avgConfidence,
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
|
+
// ==========================================================================
|
|
336
|
+
// Private Helper Methods
|
|
337
|
+
// ==========================================================================
|
|
338
|
+
cosineSimilarity(a, b) {
|
|
339
|
+
if (a.length !== b.length)
|
|
340
|
+
return 0;
|
|
341
|
+
let dot = 0;
|
|
342
|
+
let normA = 0;
|
|
343
|
+
let normB = 0;
|
|
344
|
+
for (let i = 0; i < a.length; i++) {
|
|
345
|
+
dot += a[i] * b[i];
|
|
346
|
+
normA += a[i] * a[i];
|
|
347
|
+
normB += b[i] * b[i];
|
|
348
|
+
}
|
|
349
|
+
const denom = Math.sqrt(normA) * Math.sqrt(normB);
|
|
350
|
+
return denom > 0 ? dot / denom : 0;
|
|
351
|
+
}
|
|
352
|
+
mmrSelect(query, candidates, k, lambda) {
|
|
353
|
+
const selected = [];
|
|
354
|
+
const remaining = [...candidates];
|
|
355
|
+
while (selected.length < k && remaining.length > 0) {
|
|
356
|
+
let bestScore = -Infinity;
|
|
357
|
+
let bestIdx = 0;
|
|
358
|
+
for (let i = 0; i < remaining.length; i++) {
|
|
359
|
+
const candidate = remaining[i];
|
|
360
|
+
const relevance = candidate.similarity;
|
|
361
|
+
// Calculate max similarity to already selected patterns
|
|
362
|
+
let maxSimilarity = 0;
|
|
363
|
+
for (const sel of selected) {
|
|
364
|
+
const sim = this.cosineSimilarity(candidate.pattern.embedding, sel.embedding);
|
|
365
|
+
maxSimilarity = Math.max(maxSimilarity, sim);
|
|
366
|
+
}
|
|
367
|
+
// MMR score: lambda * relevance - (1 - lambda) * redundancy
|
|
368
|
+
const score = lambda * relevance - (1 - lambda) * maxSimilarity;
|
|
369
|
+
if (score > bestScore) {
|
|
370
|
+
bestScore = score;
|
|
371
|
+
bestIdx = i;
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
selected.push(remaining[bestIdx].pattern);
|
|
375
|
+
remaining.splice(bestIdx, 1);
|
|
376
|
+
}
|
|
377
|
+
return selected;
|
|
378
|
+
}
|
|
379
|
+
shouldConsolidate() {
|
|
380
|
+
return this.newPatternsSinceConsolidation >= this.config.consolidateTriggerThreshold;
|
|
381
|
+
}
|
|
382
|
+
generateJudgmentReasoning(trajectory, label, evidence) {
|
|
383
|
+
const parts = [];
|
|
384
|
+
parts.push(`Trajectory ${trajectory.trajectoryId} judged as ${label}.`);
|
|
385
|
+
parts.push(`Domain: ${trajectory.domain}, Steps: ${trajectory.steps.length}.`);
|
|
386
|
+
if (label === 'Success') {
|
|
387
|
+
parts.push('The trajectory achieved high quality scores with positive rewards.');
|
|
388
|
+
}
|
|
389
|
+
else if (label === 'Failure') {
|
|
390
|
+
parts.push('The trajectory had low quality scores or negative rewards.');
|
|
391
|
+
}
|
|
392
|
+
else {
|
|
393
|
+
parts.push('The trajectory showed mixed results with room for improvement.');
|
|
394
|
+
}
|
|
395
|
+
return parts.join(' ');
|
|
396
|
+
}
|
|
397
|
+
extractPatternsFromTrajectory(trajectory, verdict) {
|
|
398
|
+
const patterns = [];
|
|
399
|
+
// Extract overall strategy pattern
|
|
400
|
+
const actions = trajectory.steps.map(s => s.action);
|
|
401
|
+
patterns.push({
|
|
402
|
+
title: `${verdict.label}: ${trajectory.context.slice(0, 50)}`,
|
|
403
|
+
description: `Strategy for ${trajectory.domain} task with ${verdict.label.toLowerCase()} outcome`,
|
|
404
|
+
content: `Actions: ${actions.slice(0, 5).join(' -> ')}${actions.length > 5 ? '...' : ''}`,
|
|
405
|
+
tags: [verdict.label.toLowerCase(), trajectory.domain, 'strategy'],
|
|
406
|
+
});
|
|
407
|
+
// Extract key step patterns for successful trajectories
|
|
408
|
+
if (verdict.label === 'Success' && trajectory.steps.length > 0) {
|
|
409
|
+
const highRewardSteps = trajectory.steps
|
|
410
|
+
.filter(s => s.reward > 0.7)
|
|
411
|
+
.slice(0, 3);
|
|
412
|
+
for (const step of highRewardSteps) {
|
|
413
|
+
patterns.push({
|
|
414
|
+
title: `High-reward action: ${step.action.slice(0, 30)}`,
|
|
415
|
+
description: `Effective action in ${trajectory.domain} context`,
|
|
416
|
+
content: `Action: ${step.action}, Reward: ${step.reward.toFixed(2)}`,
|
|
417
|
+
tags: ['high-reward', trajectory.domain, 'action'],
|
|
418
|
+
});
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
return patterns;
|
|
422
|
+
}
|
|
423
|
+
computePatternEmbedding(trajectory, index) {
|
|
424
|
+
if (trajectory.steps.length === 0) {
|
|
425
|
+
return new Float32Array(768);
|
|
426
|
+
}
|
|
427
|
+
// Use weighted average of step embeddings
|
|
428
|
+
const dim = trajectory.steps[0].stateAfter.length;
|
|
429
|
+
const embedding = new Float32Array(dim);
|
|
430
|
+
let totalWeight = 0;
|
|
431
|
+
for (let i = 0; i < trajectory.steps.length; i++) {
|
|
432
|
+
const weight = (i + 1 + index) / (trajectory.steps.length + index);
|
|
433
|
+
totalWeight += weight;
|
|
434
|
+
for (let j = 0; j < dim; j++) {
|
|
435
|
+
embedding[j] += trajectory.steps[i].stateAfter[j] * weight;
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
for (let j = 0; j < dim; j++) {
|
|
439
|
+
embedding[j] /= totalWeight;
|
|
440
|
+
}
|
|
441
|
+
return embedding;
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
// ============================================================================
|
|
445
|
+
// Factory Functions
|
|
446
|
+
// ============================================================================
|
|
447
|
+
/**
|
|
448
|
+
* Create ReasoningBank adapter
|
|
449
|
+
*/
|
|
450
|
+
export function createReasoningBankAdapter(config) {
|
|
451
|
+
return new ReasoningBankAdapter(config);
|
|
452
|
+
}
|
|
453
|
+
/**
|
|
454
|
+
* Create default ReasoningBank adapter
|
|
455
|
+
*/
|
|
456
|
+
export function createDefaultReasoningBankAdapter() {
|
|
457
|
+
return new ReasoningBankAdapter({
|
|
458
|
+
enableLearning: true,
|
|
459
|
+
enableReasoning: true,
|
|
460
|
+
sonaMode: 'balanced',
|
|
461
|
+
});
|
|
462
|
+
}
|
|
463
|
+
//# sourceMappingURL=reasoningbank-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reasoningbank-adapter.js","sourceRoot":"","sources":["../src/reasoningbank-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SONA Integration for V3 Neural Module
|
|
3
|
+
*
|
|
4
|
+
* Wraps @ruvector/sona package for V3 usage with:
|
|
5
|
+
* - Trajectory tracking and verdict judgment
|
|
6
|
+
* - Pattern extraction and memory distillation
|
|
7
|
+
* - Sub-0.05ms learning performance target
|
|
8
|
+
* - Clean TypeScript API with proper types
|
|
9
|
+
*
|
|
10
|
+
* @module sona-integration
|
|
11
|
+
*/
|
|
12
|
+
import { type JsSonaConfig, type JsLearnedPattern } from '@ruvector/sona';
|
|
13
|
+
import type { Trajectory, SONAMode, SONAModeConfig } from './types.js';
|
|
14
|
+
/**
|
|
15
|
+
* Context for SONA learning adaptation
|
|
16
|
+
*/
|
|
17
|
+
export interface Context {
|
|
18
|
+
/** Task domain */
|
|
19
|
+
domain: 'code' | 'creative' | 'reasoning' | 'chat' | 'math' | 'general';
|
|
20
|
+
/** Current query embedding */
|
|
21
|
+
queryEmbedding: Float32Array;
|
|
22
|
+
/** Additional context metadata */
|
|
23
|
+
metadata?: Record<string, unknown>;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Adapted behavior result from SONA
|
|
27
|
+
*/
|
|
28
|
+
export interface AdaptedBehavior {
|
|
29
|
+
/** Transformed query embedding after micro-LoRA */
|
|
30
|
+
transformedQuery: Float32Array;
|
|
31
|
+
/** Similar learned patterns */
|
|
32
|
+
patterns: JsLearnedPattern[];
|
|
33
|
+
/** Suggested route/model */
|
|
34
|
+
suggestedRoute?: string;
|
|
35
|
+
/** Confidence score */
|
|
36
|
+
confidence: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* SONA engine statistics
|
|
40
|
+
*/
|
|
41
|
+
export interface SONAStats {
|
|
42
|
+
/** Total trajectories recorded */
|
|
43
|
+
totalTrajectories: number;
|
|
44
|
+
/** Patterns learned */
|
|
45
|
+
patternsLearned: number;
|
|
46
|
+
/** Average quality */
|
|
47
|
+
avgQuality: number;
|
|
48
|
+
/** Last learning time (ms) */
|
|
49
|
+
lastLearningMs: number;
|
|
50
|
+
/** Engine enabled state */
|
|
51
|
+
enabled: boolean;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* SONA Learning Engine - wraps @ruvector/sona for V3 usage
|
|
55
|
+
*
|
|
56
|
+
* Performance targets:
|
|
57
|
+
* - learn(): <0.05ms
|
|
58
|
+
* - adapt(): <0.1ms
|
|
59
|
+
* - Full learning cycle: <10ms
|
|
60
|
+
*/
|
|
61
|
+
export declare class SONALearningEngine {
|
|
62
|
+
private engine;
|
|
63
|
+
private trajectoryMap;
|
|
64
|
+
private adaptationTimeMs;
|
|
65
|
+
private learningTimeMs;
|
|
66
|
+
private mode;
|
|
67
|
+
private modeConfig;
|
|
68
|
+
constructor(mode: SONAMode, modeConfig: SONAModeConfig);
|
|
69
|
+
/**
|
|
70
|
+
* Learn from a trajectory
|
|
71
|
+
*
|
|
72
|
+
* Performance target: <0.05ms
|
|
73
|
+
*
|
|
74
|
+
* @param trajectory - Trajectory to learn from
|
|
75
|
+
*/
|
|
76
|
+
learn(trajectory: Trajectory): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Adapt behavior based on context
|
|
79
|
+
*
|
|
80
|
+
* @param context - Current context for adaptation
|
|
81
|
+
* @returns Adapted behavior with transformed embeddings
|
|
82
|
+
*/
|
|
83
|
+
adapt(context: Context): Promise<AdaptedBehavior>;
|
|
84
|
+
/**
|
|
85
|
+
* Get last adaptation time
|
|
86
|
+
*
|
|
87
|
+
* @returns Adaptation time in milliseconds
|
|
88
|
+
*/
|
|
89
|
+
getAdaptationTime(): number;
|
|
90
|
+
/**
|
|
91
|
+
* Get last learning time
|
|
92
|
+
*
|
|
93
|
+
* @returns Learning time in milliseconds
|
|
94
|
+
*/
|
|
95
|
+
getLearningTime(): number;
|
|
96
|
+
/**
|
|
97
|
+
* Reset learning state
|
|
98
|
+
*/
|
|
99
|
+
resetLearning(): void;
|
|
100
|
+
/**
|
|
101
|
+
* Force immediate learning cycle
|
|
102
|
+
*
|
|
103
|
+
* @returns Status message
|
|
104
|
+
*/
|
|
105
|
+
forceLearning(): string;
|
|
106
|
+
/**
|
|
107
|
+
* Tick background learning (call periodically)
|
|
108
|
+
*
|
|
109
|
+
* @returns Status message if learning occurred
|
|
110
|
+
*/
|
|
111
|
+
tick(): string | null;
|
|
112
|
+
/**
|
|
113
|
+
* Get engine statistics
|
|
114
|
+
*
|
|
115
|
+
* @returns SONA engine statistics
|
|
116
|
+
*/
|
|
117
|
+
getStats(): SONAStats;
|
|
118
|
+
/**
|
|
119
|
+
* Enable or disable the engine
|
|
120
|
+
*
|
|
121
|
+
* @param enabled - Whether to enable the engine
|
|
122
|
+
*/
|
|
123
|
+
setEnabled(enabled: boolean): void;
|
|
124
|
+
/**
|
|
125
|
+
* Check if engine is enabled
|
|
126
|
+
*
|
|
127
|
+
* @returns Whether the engine is enabled
|
|
128
|
+
*/
|
|
129
|
+
isEnabled(): boolean;
|
|
130
|
+
/**
|
|
131
|
+
* Find learned patterns similar to query
|
|
132
|
+
*
|
|
133
|
+
* @param queryEmbedding - Query embedding
|
|
134
|
+
* @param k - Number of patterns to return
|
|
135
|
+
* @returns Learned patterns
|
|
136
|
+
*/
|
|
137
|
+
findPatterns(queryEmbedding: Float32Array, k?: number): JsLearnedPattern[];
|
|
138
|
+
/**
|
|
139
|
+
* Convert trajectory to query embedding
|
|
140
|
+
*/
|
|
141
|
+
private trajectoryToQueryEmbedding;
|
|
142
|
+
/**
|
|
143
|
+
* Convert state embedding to activations
|
|
144
|
+
*/
|
|
145
|
+
private stateToActivations;
|
|
146
|
+
/**
|
|
147
|
+
* Convert state embedding to attention weights
|
|
148
|
+
*/
|
|
149
|
+
private stateToAttentionWeights;
|
|
150
|
+
/**
|
|
151
|
+
* Calculate quality score for trajectory
|
|
152
|
+
*/
|
|
153
|
+
private calculateQuality;
|
|
154
|
+
/**
|
|
155
|
+
* Infer suggested route from patterns and context
|
|
156
|
+
*/
|
|
157
|
+
private inferRoute;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Create a SONA learning engine
|
|
161
|
+
*
|
|
162
|
+
* @param mode - SONA learning mode
|
|
163
|
+
* @param modeConfig - Mode configuration
|
|
164
|
+
* @returns SONA learning engine instance
|
|
165
|
+
*/
|
|
166
|
+
export declare function createSONALearningEngine(mode: SONAMode, modeConfig: SONAModeConfig): SONALearningEngine;
|
|
167
|
+
export type { JsLearnedPattern, JsSonaConfig };
|
|
168
|
+
//# sourceMappingURL=sona-integration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sona-integration.d.ts","sourceRoot":"","sources":["../src/sona-integration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAc,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,KAAK,EACV,UAAU,EAIV,QAAQ,EACR,cAAc,EACf,MAAM,YAAY,CAAC;AAMpB;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,kBAAkB;IAClB,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACxE,8BAA8B;IAC9B,cAAc,EAAE,YAAY,CAAC;IAC7B,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,gBAAgB,EAAE,YAAY,CAAC;IAC/B,+BAA+B;IAC/B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,4BAA4B;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,kCAAkC;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,2BAA2B;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB;AAiED;;;;;;;GAOG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,UAAU,CAAiB;gBAEvB,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc;IAOtD;;;;;;OAMG;IACG,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAyClD;;;;;OAKG;IACG,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IAgCvD;;;;OAIG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;;;OAIG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,aAAa,IAAI,IAAI;IASrB;;;;OAIG;IACH,aAAa,IAAI,MAAM;IAIvB;;;;OAIG;IACH,IAAI,IAAI,MAAM,GAAG,IAAI;IAIrB;;;;OAIG;IACH,QAAQ,IAAI,SAAS;IAarB;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC;;;;OAIG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;;;OAMG;IACH,YAAY,CAAC,cAAc,EAAE,YAAY,EAAE,CAAC,GAAE,MAAU,GAAG,gBAAgB,EAAE;IAQ7E;;OAEG;IACH,OAAO,CAAC,0BAA0B;IASlC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAM1B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAa/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAexB;;OAEG;IACH,OAAO,CAAC,UAAU;CAUnB;AAMD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,QAAQ,EACd,UAAU,EAAE,cAAc,GACzB,kBAAkB,CAEpB;AAMD,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,CAAC"}
|