agentic-flow 2.0.0-alpha → 2.0.1-alpha
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/README.md +320 -23
- package/agentic-flow/.claude/agents/base-template-generator.md +229 -3
- package/agentic-flow/.claude/agents/core/coder.md +212 -7
- package/agentic-flow/.claude/agents/core/planner.md +228 -7
- package/agentic-flow/.claude/agents/core/researcher.md +205 -10
- package/agentic-flow/.claude/agents/core/reviewer.md +216 -5
- package/agentic-flow/.claude/agents/core/tester.md +213 -3
- package/agentic-flow/.claude/agents/data/ml/data-ml-model.md +256 -5
- package/agentic-flow/.claude/agents/development/backend/dev-backend-api.md +209 -6
- package/agentic-flow/.claude/agents/documentation/api-docs/docs-api-openapi.md +185 -5
- package/agentic-flow/.claude/agents/github/code-review-swarm.md +307 -468
- package/agentic-flow/.claude/agents/github/issue-tracker.md +270 -13
- package/agentic-flow/.claude/agents/github/pr-manager.md +259 -12
- package/agentic-flow/.claude/agents/github/release-manager.md +253 -15
- package/agentic-flow/.claude/agents/github/workflow-automation.md +277 -9
- package/agentic-flow/.claude/agents/sona/sona-learning-optimizer.md +496 -0
- package/agentic-flow/.claude/agents/sparc/architecture.md +231 -4
- package/agentic-flow/.claude/agents/sparc/pseudocode.md +206 -4
- package/agentic-flow/.claude/agents/sparc/refinement.md +283 -6
- package/agentic-flow/.claude/agents/sparc/specification.md +205 -3
- package/agentic-flow/.claude/agents/swarm/adaptive-coordinator.md +731 -0
- package/agentic-flow/.claude/agents/swarm/hierarchical-coordinator.md +455 -1
- package/agentic-flow/.claude/agents/swarm/mesh-coordinator.md +571 -0
- package/agentic-flow/.claude/agents/templates/sparc-coordinator.md +336 -5
- package/agentic-flow/dist/cli/commands/sona-train.d.ts.map +1 -0
- package/agentic-flow/dist/cli/commands/sona-train.js +295 -0
- package/agentic-flow/dist/cli/commands/sona-train.js.map +1 -0
- package/agentic-flow/dist/cli/commands/sona.d.ts.map +1 -0
- package/agentic-flow/dist/cli/commands/sona.js +290 -0
- package/agentic-flow/dist/cli/commands/sona.js.map +1 -0
- package/agentic-flow/dist/core/agentdb-fast.d.ts.map +1 -0
- package/agentic-flow/dist/core/agentdb-fast.js +299 -0
- package/agentic-flow/dist/core/agentdb-fast.js.map +1 -0
- package/agentic-flow/dist/core/attention-fallbacks.d.ts.map +1 -0
- package/agentic-flow/dist/core/attention-fallbacks.js +321 -0
- package/agentic-flow/dist/core/attention-fallbacks.js.map +1 -0
- package/agentic-flow/dist/core/embedding-service.d.ts.map +1 -0
- package/agentic-flow/dist/core/embedding-service.js +370 -0
- package/agentic-flow/dist/core/embedding-service.js.map +1 -0
- package/agentic-flow/dist/core/gnn-wrapper.d.ts.map +1 -0
- package/agentic-flow/dist/core/gnn-wrapper.js +236 -0
- package/agentic-flow/dist/core/gnn-wrapper.js.map +1 -0
- package/agentic-flow/dist/core/index.d.ts.map +1 -1
- package/agentic-flow/dist/core/index.js +80 -3
- package/agentic-flow/dist/core/index.js.map +1 -1
- package/agentic-flow/dist/mcp/claudeFlowSdkServer.d.ts.map +1 -1
- package/agentic-flow/dist/mcp/claudeFlowSdkServer.js +109 -0
- package/agentic-flow/dist/mcp/claudeFlowSdkServer.js.map +1 -1
- package/agentic-flow/dist/mcp/tools/agent-booster-tools.d.ts.map +1 -0
- package/agentic-flow/dist/mcp/tools/agent-booster-tools.js +262 -0
- package/agentic-flow/dist/mcp/tools/agent-booster-tools.js.map +1 -0
- package/agentic-flow/dist/mcp/tools/sona-tools.d.ts.map +1 -0
- package/agentic-flow/dist/mcp/tools/sona-tools.js +560 -0
- package/agentic-flow/dist/mcp/tools/sona-tools.js.map +1 -0
- package/agentic-flow/dist/optimizations/agent-booster-migration.d.ts.map +1 -0
- package/agentic-flow/dist/optimizations/agent-booster-migration.js +323 -0
- package/agentic-flow/dist/optimizations/agent-booster-migration.js.map +1 -0
- package/agentic-flow/dist/optimizations/configuration-tuning.d.ts.map +1 -0
- package/agentic-flow/dist/optimizations/configuration-tuning.js +422 -0
- package/agentic-flow/dist/optimizations/configuration-tuning.js.map +1 -0
- package/agentic-flow/dist/optimizations/ruvector-backend.d.ts.map +1 -0
- package/agentic-flow/dist/optimizations/ruvector-backend.js +464 -0
- package/agentic-flow/dist/optimizations/ruvector-backend.js.map +1 -0
- package/agentic-flow/dist/services/embedding-service.d.ts.map +1 -0
- package/agentic-flow/dist/services/embedding-service.js +367 -0
- package/agentic-flow/dist/services/embedding-service.js.map +1 -0
- package/agentic-flow/dist/services/sona-agent-training.d.ts.map +1 -0
- package/agentic-flow/dist/services/sona-agent-training.js +382 -0
- package/agentic-flow/dist/services/sona-agent-training.js.map +1 -0
- package/agentic-flow/dist/services/sona-agentdb-integration.d.ts.map +1 -0
- package/agentic-flow/dist/services/sona-agentdb-integration.js +346 -0
- package/agentic-flow/dist/services/sona-agentdb-integration.js.map +1 -0
- package/agentic-flow/dist/services/sona-service.d.ts.map +1 -0
- package/agentic-flow/dist/services/sona-service.js +448 -0
- package/agentic-flow/dist/services/sona-service.js.map +1 -0
- package/agentic-flow/dist/services/sona-types.d.ts.map +1 -0
- package/agentic-flow/dist/services/sona-types.js +59 -0
- package/agentic-flow/dist/services/sona-types.js.map +1 -0
- package/docs/README.md +27 -2
- package/package.json +12 -2
- package/docs/AGENTIC_JUJUTSU_QUICKSTART.md +0 -491
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SONA Agent Training Service
|
|
3
|
+
*
|
|
4
|
+
* Train specialized models for specific agents, tasks, and codebases
|
|
5
|
+
* Uses @ruvector/sona for continuous learning and adaptation
|
|
6
|
+
*/
|
|
7
|
+
import { EventEmitter } from 'events';
|
|
8
|
+
import { SonaEngine } from '@ruvector/sona';
|
|
9
|
+
/**
|
|
10
|
+
* SONA Agent Factory - Create and manage specialized agents
|
|
11
|
+
*/
|
|
12
|
+
export class AgentFactory extends EventEmitter {
|
|
13
|
+
agents;
|
|
14
|
+
baseConfig;
|
|
15
|
+
constructor(baseConfig = {}) {
|
|
16
|
+
super();
|
|
17
|
+
this.baseConfig = {
|
|
18
|
+
hiddenDim: 3072,
|
|
19
|
+
microLoraRank: 2,
|
|
20
|
+
microLoraLr: 0.002,
|
|
21
|
+
ewcLambda: 2000,
|
|
22
|
+
...baseConfig
|
|
23
|
+
};
|
|
24
|
+
this.agents = new Map();
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Create a new specialized agent
|
|
28
|
+
*/
|
|
29
|
+
createAgent(name, config = {}) {
|
|
30
|
+
const purpose = config.purpose || 'simple';
|
|
31
|
+
// Customize config based on purpose
|
|
32
|
+
const agentConfig = {
|
|
33
|
+
name,
|
|
34
|
+
purpose,
|
|
35
|
+
...this.baseConfig,
|
|
36
|
+
...config,
|
|
37
|
+
// Purpose-specific defaults
|
|
38
|
+
baseLoraRank: purpose === 'complex' ? 16 : purpose === 'diverse' ? 12 : 8,
|
|
39
|
+
patternClusters: purpose === 'diverse' ? 200 : purpose === 'complex' ? 100 : 50,
|
|
40
|
+
trajectoryCapacity: purpose === 'complex' ? 10000 : 5000,
|
|
41
|
+
qualityThreshold: purpose === 'complex' ? 0.2 : 0.3,
|
|
42
|
+
};
|
|
43
|
+
// Create SONA engine
|
|
44
|
+
const engine = SonaEngine.withConfig({
|
|
45
|
+
hiddenDim: agentConfig.hiddenDim,
|
|
46
|
+
microLoraRank: agentConfig.microLoraRank,
|
|
47
|
+
baseLoraRank: agentConfig.baseLoraRank,
|
|
48
|
+
microLoraLr: 0.002,
|
|
49
|
+
patternClusters: agentConfig.patternClusters,
|
|
50
|
+
trajectoryCapacity: agentConfig.trajectoryCapacity,
|
|
51
|
+
qualityThreshold: agentConfig.qualityThreshold,
|
|
52
|
+
ewcLambda: agentConfig.ewcLambda,
|
|
53
|
+
enableSimd: true
|
|
54
|
+
});
|
|
55
|
+
this.agents.set(name, {
|
|
56
|
+
engine,
|
|
57
|
+
config: agentConfig,
|
|
58
|
+
trainingCount: 0,
|
|
59
|
+
totalQuality: 0
|
|
60
|
+
});
|
|
61
|
+
this.emit('agent:created', { name, config: agentConfig });
|
|
62
|
+
return engine;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Train an agent on specific examples
|
|
66
|
+
*/
|
|
67
|
+
async trainAgent(name, examples) {
|
|
68
|
+
const agent = this.agents.get(name);
|
|
69
|
+
if (!agent) {
|
|
70
|
+
throw new Error(`Agent "${name}" not found. Create it first with createAgent()`);
|
|
71
|
+
}
|
|
72
|
+
let successCount = 0;
|
|
73
|
+
for (const example of examples) {
|
|
74
|
+
try {
|
|
75
|
+
const tid = agent.engine.beginTrajectory(example.embedding);
|
|
76
|
+
// Set route (agent name)
|
|
77
|
+
agent.engine.setTrajectoryRoute(tid, name);
|
|
78
|
+
// Add context
|
|
79
|
+
if (example.context) {
|
|
80
|
+
for (const [key, value] of Object.entries(example.context)) {
|
|
81
|
+
agent.engine.addTrajectoryContext(tid, `${key}:${value}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Add trajectory step with hidden states and attention
|
|
85
|
+
if (example.hiddenStates && example.attention) {
|
|
86
|
+
agent.engine.addTrajectoryStep(tid, example.hiddenStates, example.attention, example.quality);
|
|
87
|
+
}
|
|
88
|
+
// End trajectory
|
|
89
|
+
agent.engine.endTrajectory(tid, example.quality);
|
|
90
|
+
agent.trainingCount++;
|
|
91
|
+
agent.totalQuality += example.quality;
|
|
92
|
+
successCount++;
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
this.emit('training:error', { name, error: error.message, example });
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
// Force learning to update LoRA weights
|
|
99
|
+
agent.engine.forceLearn();
|
|
100
|
+
agent.lastTrained = new Date();
|
|
101
|
+
this.emit('agent:trained', {
|
|
102
|
+
name,
|
|
103
|
+
examplesProcessed: successCount,
|
|
104
|
+
totalTraining: agent.trainingCount,
|
|
105
|
+
avgQuality: agent.totalQuality / agent.trainingCount
|
|
106
|
+
});
|
|
107
|
+
return successCount;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Get an agent's engine for inference
|
|
111
|
+
*/
|
|
112
|
+
getAgent(name) {
|
|
113
|
+
return this.agents.get(name)?.engine;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Get agent statistics
|
|
117
|
+
*/
|
|
118
|
+
getAgentStats(name) {
|
|
119
|
+
const agent = this.agents.get(name);
|
|
120
|
+
if (!agent)
|
|
121
|
+
return null;
|
|
122
|
+
const stats = agent.engine.getStats();
|
|
123
|
+
return {
|
|
124
|
+
name,
|
|
125
|
+
purpose: agent.config.purpose,
|
|
126
|
+
trainingCount: agent.trainingCount,
|
|
127
|
+
avgQuality: agent.trainingCount > 0 ? agent.totalQuality / agent.trainingCount : 0,
|
|
128
|
+
patterns: stats.totalPatterns || 0,
|
|
129
|
+
lastTrained: agent.lastTrained,
|
|
130
|
+
config: agent.config
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* List all agents
|
|
135
|
+
*/
|
|
136
|
+
listAgents() {
|
|
137
|
+
return Array.from(this.agents.keys())
|
|
138
|
+
.map(name => this.getAgentStats(name))
|
|
139
|
+
.filter(s => s !== null);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Find similar patterns for a query
|
|
143
|
+
*/
|
|
144
|
+
async findPatterns(agentName, queryEmbedding, k = 5) {
|
|
145
|
+
const agent = this.agents.get(agentName);
|
|
146
|
+
if (!agent) {
|
|
147
|
+
throw new Error(`Agent "${agentName}" not found`);
|
|
148
|
+
}
|
|
149
|
+
return agent.engine.findPatterns(queryEmbedding, k);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Apply agent-specific adaptation to embedding
|
|
153
|
+
*/
|
|
154
|
+
async applyAdaptation(agentName, embedding) {
|
|
155
|
+
const agent = this.agents.get(agentName);
|
|
156
|
+
if (!agent) {
|
|
157
|
+
throw new Error(`Agent "${agentName}" not found`);
|
|
158
|
+
}
|
|
159
|
+
return agent.engine.applyMicroLora(embedding);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Codebase-Specific Agent Trainer
|
|
164
|
+
*/
|
|
165
|
+
export class CodebaseTrainer {
|
|
166
|
+
engine;
|
|
167
|
+
indexed = 0;
|
|
168
|
+
constructor(config = {}) {
|
|
169
|
+
this.engine = SonaEngine.withConfig({
|
|
170
|
+
hiddenDim: 3072,
|
|
171
|
+
microLoraRank: 2,
|
|
172
|
+
baseLoraRank: 16,
|
|
173
|
+
patternClusters: 200,
|
|
174
|
+
trajectoryCapacity: 10000,
|
|
175
|
+
qualityThreshold: 0.2,
|
|
176
|
+
ewcLambda: 2000,
|
|
177
|
+
enableSimd: true,
|
|
178
|
+
...config
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Index an entire codebase for pattern learning
|
|
183
|
+
*/
|
|
184
|
+
async indexCodebase(files) {
|
|
185
|
+
let totalChunks = 0;
|
|
186
|
+
for (const file of files) {
|
|
187
|
+
if (!file.chunks) {
|
|
188
|
+
file.chunks = this.chunkCode(file.content, file.language);
|
|
189
|
+
}
|
|
190
|
+
for (const chunk of file.chunks) {
|
|
191
|
+
if (!chunk.embedding) {
|
|
192
|
+
// In production, call actual embedding service
|
|
193
|
+
chunk.embedding = this.mockEmbedding(chunk.code);
|
|
194
|
+
}
|
|
195
|
+
const tid = this.engine.beginTrajectory(chunk.embedding);
|
|
196
|
+
// Add rich context
|
|
197
|
+
this.engine.setTrajectoryRoute(tid, file.language);
|
|
198
|
+
this.engine.addTrajectoryContext(tid, file.path);
|
|
199
|
+
this.engine.addTrajectoryContext(tid, chunk.type);
|
|
200
|
+
// High quality for indexed code (0.95)
|
|
201
|
+
this.engine.addTrajectoryStep(tid, chunk.embedding, chunk.embedding, 0.95);
|
|
202
|
+
this.engine.endTrajectory(tid, 0.95);
|
|
203
|
+
totalChunks++;
|
|
204
|
+
this.indexed++;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
// Force learning
|
|
208
|
+
this.engine.forceLearn();
|
|
209
|
+
return totalChunks;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Query with codebase-aware adaptation
|
|
213
|
+
*/
|
|
214
|
+
async query(queryText, k = 5) {
|
|
215
|
+
const embedding = this.mockEmbedding(queryText);
|
|
216
|
+
// Find relevant patterns from codebase
|
|
217
|
+
const patterns = this.engine.findPatterns(embedding, k);
|
|
218
|
+
// Apply codebase-specific adaptation
|
|
219
|
+
const adapted = this.engine.applyMicroLora(embedding);
|
|
220
|
+
return { adapted, relevantPatterns: patterns };
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Get codebase statistics
|
|
224
|
+
*/
|
|
225
|
+
getStats() {
|
|
226
|
+
return {
|
|
227
|
+
indexed: this.indexed,
|
|
228
|
+
...this.engine.getStats()
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Chunk code into trainable segments
|
|
233
|
+
*/
|
|
234
|
+
chunkCode(content, language) {
|
|
235
|
+
// Simplified chunking - in production use tree-sitter or similar
|
|
236
|
+
const chunks = [];
|
|
237
|
+
// Detect functions
|
|
238
|
+
const functionRegex = /(?:function|def|fn)\s+(\w+)/g;
|
|
239
|
+
let match;
|
|
240
|
+
while ((match = functionRegex.exec(content)) !== null) {
|
|
241
|
+
const start = match.index;
|
|
242
|
+
const end = this.findBlockEnd(content, start);
|
|
243
|
+
chunks.push({
|
|
244
|
+
code: content.slice(start, end),
|
|
245
|
+
type: 'function'
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
// Detect classes
|
|
249
|
+
const classRegex = /(?:class|struct|interface)\s+(\w+)/g;
|
|
250
|
+
while ((match = classRegex.exec(content)) !== null) {
|
|
251
|
+
const start = match.index;
|
|
252
|
+
const end = this.findBlockEnd(content, start);
|
|
253
|
+
chunks.push({
|
|
254
|
+
code: content.slice(start, end),
|
|
255
|
+
type: 'class'
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
// If no chunks, treat whole file as module
|
|
259
|
+
if (chunks.length === 0) {
|
|
260
|
+
chunks.push({
|
|
261
|
+
code: content,
|
|
262
|
+
type: 'module'
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
return chunks;
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Find end of code block (simplified)
|
|
269
|
+
*/
|
|
270
|
+
findBlockEnd(content, start) {
|
|
271
|
+
let depth = 0;
|
|
272
|
+
let inBlock = false;
|
|
273
|
+
for (let i = start; i < content.length; i++) {
|
|
274
|
+
if (content[i] === '{') {
|
|
275
|
+
depth++;
|
|
276
|
+
inBlock = true;
|
|
277
|
+
}
|
|
278
|
+
else if (content[i] === '}') {
|
|
279
|
+
depth--;
|
|
280
|
+
if (inBlock && depth === 0) {
|
|
281
|
+
return i + 1;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
return Math.min(start + 500, content.length);
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Mock embedding (replace with actual embedding service in production)
|
|
289
|
+
*/
|
|
290
|
+
mockEmbedding(text) {
|
|
291
|
+
const hash = this.hashCode(text);
|
|
292
|
+
const embedding = new Array(3072);
|
|
293
|
+
for (let i = 0; i < 3072; i++) {
|
|
294
|
+
const seed = hash + i;
|
|
295
|
+
embedding[i] = (Math.sin(seed) * 10000) - Math.floor(Math.sin(seed) * 10000);
|
|
296
|
+
}
|
|
297
|
+
return embedding;
|
|
298
|
+
}
|
|
299
|
+
hashCode(str) {
|
|
300
|
+
let hash = 0;
|
|
301
|
+
for (let i = 0; i < str.length; i++) {
|
|
302
|
+
const char = str.charCodeAt(i);
|
|
303
|
+
hash = ((hash << 5) - hash) + char;
|
|
304
|
+
hash = hash & hash;
|
|
305
|
+
}
|
|
306
|
+
return hash;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Pre-configured agent templates
|
|
311
|
+
*/
|
|
312
|
+
export const AgentTemplates = {
|
|
313
|
+
/**
|
|
314
|
+
* Code Assistant - Complex reasoning, code-specific patterns
|
|
315
|
+
*/
|
|
316
|
+
codeAssistant: () => ({
|
|
317
|
+
name: 'code-assistant',
|
|
318
|
+
purpose: 'complex',
|
|
319
|
+
baseLoraRank: 16,
|
|
320
|
+
patternClusters: 200,
|
|
321
|
+
qualityThreshold: 0.2,
|
|
322
|
+
route: 'code-agent'
|
|
323
|
+
}),
|
|
324
|
+
/**
|
|
325
|
+
* Chat Agent - Simple conversational patterns
|
|
326
|
+
*/
|
|
327
|
+
chatBot: () => ({
|
|
328
|
+
name: 'chat-bot',
|
|
329
|
+
purpose: 'simple',
|
|
330
|
+
baseLoraRank: 8,
|
|
331
|
+
patternClusters: 50,
|
|
332
|
+
qualityThreshold: 0.3,
|
|
333
|
+
route: 'chat-agent'
|
|
334
|
+
}),
|
|
335
|
+
/**
|
|
336
|
+
* Data Analyst - Diverse data patterns
|
|
337
|
+
*/
|
|
338
|
+
dataAnalyst: () => ({
|
|
339
|
+
name: 'data-analyst',
|
|
340
|
+
purpose: 'diverse',
|
|
341
|
+
baseLoraRank: 12,
|
|
342
|
+
patternClusters: 150,
|
|
343
|
+
qualityThreshold: 0.25,
|
|
344
|
+
route: 'data-agent'
|
|
345
|
+
}),
|
|
346
|
+
/**
|
|
347
|
+
* RAG Agent - Large capacity for document retrieval
|
|
348
|
+
*/
|
|
349
|
+
ragAgent: () => ({
|
|
350
|
+
name: 'rag-agent',
|
|
351
|
+
purpose: 'diverse',
|
|
352
|
+
baseLoraRank: 12,
|
|
353
|
+
patternClusters: 200,
|
|
354
|
+
trajectoryCapacity: 10000,
|
|
355
|
+
qualityThreshold: 0.2,
|
|
356
|
+
route: 'rag-agent'
|
|
357
|
+
}),
|
|
358
|
+
/**
|
|
359
|
+
* Task Planner - Complex reasoning with strong memory
|
|
360
|
+
*/
|
|
361
|
+
taskPlanner: () => ({
|
|
362
|
+
name: 'task-planner',
|
|
363
|
+
purpose: 'complex',
|
|
364
|
+
baseLoraRank: 16,
|
|
365
|
+
patternClusters: 100,
|
|
366
|
+
ewcLambda: 2500,
|
|
367
|
+
qualityThreshold: 0.2,
|
|
368
|
+
route: 'planner-agent'
|
|
369
|
+
}),
|
|
370
|
+
/**
|
|
371
|
+
* Domain Expert - Learns specific domain
|
|
372
|
+
*/
|
|
373
|
+
domainExpert: (domain) => ({
|
|
374
|
+
name: `${domain}-expert`,
|
|
375
|
+
purpose: 'complex',
|
|
376
|
+
baseLoraRank: 16,
|
|
377
|
+
patternClusters: 150,
|
|
378
|
+
qualityThreshold: 0.1, // Learn from more examples
|
|
379
|
+
route: `${domain}-agent`
|
|
380
|
+
})
|
|
381
|
+
};
|
|
382
|
+
//# sourceMappingURL=sona-agent-training.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sona-agent-training.js","sourceRoot":"","sources":["../../src/services/sona-agent-training.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * SONA Agent Training Service\n *\n * Train specialized models for specific agents, tasks, and codebases\n * Uses @ruvector/sona for continuous learning and adaptation\n */\n\nimport { EventEmitter } from 'events';\nimport { SonaEngine } from '@ruvector/sona';\n\nexport interface AgentConfig {\n name: string;\n purpose: 'simple' | 'complex' | 'diverse';\n hiddenDim?: number;\n microLoraRank?: number;\n baseLoraRank?: number;\n patternClusters?: number;\n trajectoryCapacity?: number;\n qualityThreshold?: number;\n ewcLambda?: number;\n route?: string;\n}\n\nexport interface TrainingExample {\n embedding: number[];\n prompt?: string;\n output?: string;\n hiddenStates?: number[];\n attention?: number[];\n quality: number;\n context?: Record<string, any>;\n}\n\nexport interface CodebaseFile {\n path: string;\n language: string;\n content: string;\n chunks?: Array<{\n code: string;\n type: 'function' | 'class' | 'interface' | 'module';\n embedding?: number[];\n }>;\n}\n\nexport interface AgentStats {\n name: string;\n purpose: string;\n trainingCount: number;\n avgQuality: number;\n patterns: number;\n lastTrained?: Date;\n config: any;\n}\n\n/**\n * SONA Agent Factory - Create and manage specialized agents\n */\nexport class AgentFactory extends EventEmitter {\n private agents: Map<string, {\n engine: any;\n config: AgentConfig;\n trainingCount: number;\n totalQuality: number;\n lastTrained?: Date;\n }>;\n\n private baseConfig: Partial<AgentConfig>;\n\n constructor(baseConfig: Partial<AgentConfig> = {}) {\n super();\n this.baseConfig = {\n hiddenDim: 3072,\n microLoraRank: 2,\n microLoraLr: 0.002,\n ewcLambda: 2000,\n ...baseConfig\n };\n this.agents = new Map();\n }\n\n /**\n * Create a new specialized agent\n */\n createAgent(name: string, config: Partial<AgentConfig> = {}): any {\n const purpose = config.purpose || 'simple';\n\n // Customize config based on purpose\n const agentConfig: AgentConfig = {\n name,\n purpose,\n ...this.baseConfig,\n ...config,\n // Purpose-specific defaults\n baseLoraRank: purpose === 'complex' ? 16 : purpose === 'diverse' ? 12 : 8,\n patternClusters: purpose === 'diverse' ? 200 : purpose === 'complex' ? 100 : 50,\n trajectoryCapacity: purpose === 'complex' ? 10000 : 5000,\n qualityThreshold: purpose === 'complex' ? 0.2 : 0.3,\n };\n\n // Create SONA engine\n const engine = SonaEngine.withConfig({\n hiddenDim: agentConfig.hiddenDim!,\n microLoraRank: agentConfig.microLoraRank!,\n baseLoraRank: agentConfig.baseLoraRank!,\n microLoraLr: 0.002,\n patternClusters: agentConfig.patternClusters!,\n trajectoryCapacity: agentConfig.trajectoryCapacity!,\n qualityThreshold: agentConfig.qualityThreshold!,\n ewcLambda: agentConfig.ewcLambda!,\n enableSimd: true\n });\n\n this.agents.set(name, {\n engine,\n config: agentConfig,\n trainingCount: 0,\n totalQuality: 0\n });\n\n this.emit('agent:created', { name, config: agentConfig });\n return engine;\n }\n\n /**\n * Train an agent on specific examples\n */\n async trainAgent(name: string, examples: TrainingExample[]): Promise<number> {\n const agent = this.agents.get(name);\n if (!agent) {\n throw new Error(`Agent \"${name}\" not found. Create it first with createAgent()`);\n }\n\n let successCount = 0;\n\n for (const example of examples) {\n try {\n const tid = agent.engine.beginTrajectory(example.embedding);\n\n // Set route (agent name)\n agent.engine.setTrajectoryRoute(tid, name);\n\n // Add context\n if (example.context) {\n for (const [key, value] of Object.entries(example.context)) {\n agent.engine.addTrajectoryContext(tid, `${key}:${value}`);\n }\n }\n\n // Add trajectory step with hidden states and attention\n if (example.hiddenStates && example.attention) {\n agent.engine.addTrajectoryStep(\n tid,\n example.hiddenStates,\n example.attention,\n example.quality\n );\n }\n\n // End trajectory\n agent.engine.endTrajectory(tid, example.quality);\n\n agent.trainingCount++;\n agent.totalQuality += example.quality;\n successCount++;\n\n } catch (error: any) {\n this.emit('training:error', { name, error: error.message, example });\n }\n }\n\n // Force learning to update LoRA weights\n agent.engine.forceLearn();\n agent.lastTrained = new Date();\n\n this.emit('agent:trained', {\n name,\n examplesProcessed: successCount,\n totalTraining: agent.trainingCount,\n avgQuality: agent.totalQuality / agent.trainingCount\n });\n\n return successCount;\n }\n\n /**\n * Get an agent's engine for inference\n */\n getAgent(name: string): any {\n return this.agents.get(name)?.engine;\n }\n\n /**\n * Get agent statistics\n */\n getAgentStats(name: string): AgentStats | null {\n const agent = this.agents.get(name);\n if (!agent) return null;\n\n const stats = agent.engine.getStats();\n\n return {\n name,\n purpose: agent.config.purpose,\n trainingCount: agent.trainingCount,\n avgQuality: agent.trainingCount > 0 ? agent.totalQuality / agent.trainingCount : 0,\n patterns: stats.totalPatterns || 0,\n lastTrained: agent.lastTrained,\n config: agent.config\n };\n }\n\n /**\n * List all agents\n */\n listAgents(): AgentStats[] {\n return Array.from(this.agents.keys())\n .map(name => this.getAgentStats(name))\n .filter(s => s !== null) as AgentStats[];\n }\n\n /**\n * Find similar patterns for a query\n */\n async findPatterns(agentName: string, queryEmbedding: number[], k: number = 5): Promise<any[]> {\n const agent = this.agents.get(agentName);\n if (!agent) {\n throw new Error(`Agent \"${agentName}\" not found`);\n }\n\n return agent.engine.findPatterns(queryEmbedding, k);\n }\n\n /**\n * Apply agent-specific adaptation to embedding\n */\n async applyAdaptation(agentName: string, embedding: number[]): Promise<number[]> {\n const agent = this.agents.get(agentName);\n if (!agent) {\n throw new Error(`Agent \"${agentName}\" not found`);\n }\n\n return agent.engine.applyMicroLora(embedding);\n }\n}\n\n/**\n * Codebase-Specific Agent Trainer\n */\nexport class CodebaseTrainer {\n private engine: any;\n private indexed: number = 0;\n\n constructor(config: Partial<AgentConfig> = {}) {\n this.engine = SonaEngine.withConfig({\n hiddenDim: 3072,\n microLoraRank: 2,\n baseLoraRank: 16,\n patternClusters: 200,\n trajectoryCapacity: 10000,\n qualityThreshold: 0.2,\n ewcLambda: 2000,\n enableSimd: true,\n ...config\n });\n }\n\n /**\n * Index an entire codebase for pattern learning\n */\n async indexCodebase(files: CodebaseFile[]): Promise<number> {\n let totalChunks = 0;\n\n for (const file of files) {\n if (!file.chunks) {\n file.chunks = this.chunkCode(file.content, file.language);\n }\n\n for (const chunk of file.chunks) {\n if (!chunk.embedding) {\n // In production, call actual embedding service\n chunk.embedding = this.mockEmbedding(chunk.code);\n }\n\n const tid = this.engine.beginTrajectory(chunk.embedding);\n\n // Add rich context\n this.engine.setTrajectoryRoute(tid, file.language);\n this.engine.addTrajectoryContext(tid, file.path);\n this.engine.addTrajectoryContext(tid, chunk.type);\n\n // High quality for indexed code (0.95)\n this.engine.addTrajectoryStep(tid, chunk.embedding, chunk.embedding, 0.95);\n this.engine.endTrajectory(tid, 0.95);\n\n totalChunks++;\n this.indexed++;\n }\n }\n\n // Force learning\n this.engine.forceLearn();\n\n return totalChunks;\n }\n\n /**\n * Query with codebase-aware adaptation\n */\n async query(queryText: string, k: number = 5): Promise<{\n adapted: number[];\n relevantPatterns: any[];\n }> {\n const embedding = this.mockEmbedding(queryText);\n\n // Find relevant patterns from codebase\n const patterns = this.engine.findPatterns(embedding, k);\n\n // Apply codebase-specific adaptation\n const adapted = this.engine.applyMicroLora(embedding);\n\n return { adapted, relevantPatterns: patterns };\n }\n\n /**\n * Get codebase statistics\n */\n getStats() {\n return {\n indexed: this.indexed,\n ...this.engine.getStats()\n };\n }\n\n /**\n * Chunk code into trainable segments\n */\n private chunkCode(content: string, language: string): Array<{\n code: string;\n type: 'function' | 'class' | 'interface' | 'module';\n }> {\n // Simplified chunking - in production use tree-sitter or similar\n const chunks: any[] = [];\n\n // Detect functions\n const functionRegex = /(?:function|def|fn)\\s+(\\w+)/g;\n let match;\n while ((match = functionRegex.exec(content)) !== null) {\n const start = match.index;\n const end = this.findBlockEnd(content, start);\n chunks.push({\n code: content.slice(start, end),\n type: 'function'\n });\n }\n\n // Detect classes\n const classRegex = /(?:class|struct|interface)\\s+(\\w+)/g;\n while ((match = classRegex.exec(content)) !== null) {\n const start = match.index;\n const end = this.findBlockEnd(content, start);\n chunks.push({\n code: content.slice(start, end),\n type: 'class'\n });\n }\n\n // If no chunks, treat whole file as module\n if (chunks.length === 0) {\n chunks.push({\n code: content,\n type: 'module'\n });\n }\n\n return chunks;\n }\n\n /**\n * Find end of code block (simplified)\n */\n private findBlockEnd(content: string, start: number): number {\n let depth = 0;\n let inBlock = false;\n\n for (let i = start; i < content.length; i++) {\n if (content[i] === '{') {\n depth++;\n inBlock = true;\n } else if (content[i] === '}') {\n depth--;\n if (inBlock && depth === 0) {\n return i + 1;\n }\n }\n }\n\n return Math.min(start + 500, content.length);\n }\n\n /**\n * Mock embedding (replace with actual embedding service in production)\n */\n private mockEmbedding(text: string): number[] {\n const hash = this.hashCode(text);\n const embedding = new Array(3072);\n\n for (let i = 0; i < 3072; i++) {\n const seed = hash + i;\n embedding[i] = (Math.sin(seed) * 10000) - Math.floor(Math.sin(seed) * 10000);\n }\n\n return embedding;\n }\n\n private hashCode(str: string): number {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n const char = str.charCodeAt(i);\n hash = ((hash << 5) - hash) + char;\n hash = hash & hash;\n }\n return hash;\n }\n}\n\n/**\n * Pre-configured agent templates\n */\nexport const AgentTemplates = {\n /**\n * Code Assistant - Complex reasoning, code-specific patterns\n */\n codeAssistant: (): AgentConfig => ({\n name: 'code-assistant',\n purpose: 'complex',\n baseLoraRank: 16,\n patternClusters: 200,\n qualityThreshold: 0.2,\n route: 'code-agent'\n }),\n\n /**\n * Chat Agent - Simple conversational patterns\n */\n chatBot: (): AgentConfig => ({\n name: 'chat-bot',\n purpose: 'simple',\n baseLoraRank: 8,\n patternClusters: 50,\n qualityThreshold: 0.3,\n route: 'chat-agent'\n }),\n\n /**\n * Data Analyst - Diverse data patterns\n */\n dataAnalyst: (): AgentConfig => ({\n name: 'data-analyst',\n purpose: 'diverse',\n baseLoraRank: 12,\n patternClusters: 150,\n qualityThreshold: 0.25,\n route: 'data-agent'\n }),\n\n /**\n * RAG Agent - Large capacity for document retrieval\n */\n ragAgent: (): AgentConfig => ({\n name: 'rag-agent',\n purpose: 'diverse',\n baseLoraRank: 12,\n patternClusters: 200,\n trajectoryCapacity: 10000,\n qualityThreshold: 0.2,\n route: 'rag-agent'\n }),\n\n /**\n * Task Planner - Complex reasoning with strong memory\n */\n taskPlanner: (): AgentConfig => ({\n name: 'task-planner',\n purpose: 'complex',\n baseLoraRank: 16,\n patternClusters: 100,\n ewcLambda: 2500,\n qualityThreshold: 0.2,\n route: 'planner-agent'\n }),\n\n /**\n * Domain Expert - Learns specific domain\n */\n domainExpert: (domain: string): AgentConfig => ({\n name: `${domain}-expert`,\n purpose: 'complex',\n baseLoraRank: 16,\n patternClusters: 150,\n qualityThreshold: 0.1, // Learn from more examples\n route: `${domain}-agent`\n })\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sona-agentdb-integration.d.ts","sourceRoot":"","sources":["../../src/services/sona-agentdb-integration.ts"],"names":[],"mappings":"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"}
|