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.
Files changed (81) hide show
  1. package/README.md +320 -23
  2. package/agentic-flow/.claude/agents/base-template-generator.md +229 -3
  3. package/agentic-flow/.claude/agents/core/coder.md +212 -7
  4. package/agentic-flow/.claude/agents/core/planner.md +228 -7
  5. package/agentic-flow/.claude/agents/core/researcher.md +205 -10
  6. package/agentic-flow/.claude/agents/core/reviewer.md +216 -5
  7. package/agentic-flow/.claude/agents/core/tester.md +213 -3
  8. package/agentic-flow/.claude/agents/data/ml/data-ml-model.md +256 -5
  9. package/agentic-flow/.claude/agents/development/backend/dev-backend-api.md +209 -6
  10. package/agentic-flow/.claude/agents/documentation/api-docs/docs-api-openapi.md +185 -5
  11. package/agentic-flow/.claude/agents/github/code-review-swarm.md +307 -468
  12. package/agentic-flow/.claude/agents/github/issue-tracker.md +270 -13
  13. package/agentic-flow/.claude/agents/github/pr-manager.md +259 -12
  14. package/agentic-flow/.claude/agents/github/release-manager.md +253 -15
  15. package/agentic-flow/.claude/agents/github/workflow-automation.md +277 -9
  16. package/agentic-flow/.claude/agents/sona/sona-learning-optimizer.md +496 -0
  17. package/agentic-flow/.claude/agents/sparc/architecture.md +231 -4
  18. package/agentic-flow/.claude/agents/sparc/pseudocode.md +206 -4
  19. package/agentic-flow/.claude/agents/sparc/refinement.md +283 -6
  20. package/agentic-flow/.claude/agents/sparc/specification.md +205 -3
  21. package/agentic-flow/.claude/agents/swarm/adaptive-coordinator.md +731 -0
  22. package/agentic-flow/.claude/agents/swarm/hierarchical-coordinator.md +455 -1
  23. package/agentic-flow/.claude/agents/swarm/mesh-coordinator.md +571 -0
  24. package/agentic-flow/.claude/agents/templates/sparc-coordinator.md +336 -5
  25. package/agentic-flow/dist/cli/commands/sona-train.d.ts.map +1 -0
  26. package/agentic-flow/dist/cli/commands/sona-train.js +295 -0
  27. package/agentic-flow/dist/cli/commands/sona-train.js.map +1 -0
  28. package/agentic-flow/dist/cli/commands/sona.d.ts.map +1 -0
  29. package/agentic-flow/dist/cli/commands/sona.js +290 -0
  30. package/agentic-flow/dist/cli/commands/sona.js.map +1 -0
  31. package/agentic-flow/dist/core/agentdb-fast.d.ts.map +1 -0
  32. package/agentic-flow/dist/core/agentdb-fast.js +299 -0
  33. package/agentic-flow/dist/core/agentdb-fast.js.map +1 -0
  34. package/agentic-flow/dist/core/attention-fallbacks.d.ts.map +1 -0
  35. package/agentic-flow/dist/core/attention-fallbacks.js +321 -0
  36. package/agentic-flow/dist/core/attention-fallbacks.js.map +1 -0
  37. package/agentic-flow/dist/core/embedding-service.d.ts.map +1 -0
  38. package/agentic-flow/dist/core/embedding-service.js +370 -0
  39. package/agentic-flow/dist/core/embedding-service.js.map +1 -0
  40. package/agentic-flow/dist/core/gnn-wrapper.d.ts.map +1 -0
  41. package/agentic-flow/dist/core/gnn-wrapper.js +236 -0
  42. package/agentic-flow/dist/core/gnn-wrapper.js.map +1 -0
  43. package/agentic-flow/dist/core/index.d.ts.map +1 -1
  44. package/agentic-flow/dist/core/index.js +80 -3
  45. package/agentic-flow/dist/core/index.js.map +1 -1
  46. package/agentic-flow/dist/mcp/claudeFlowSdkServer.d.ts.map +1 -1
  47. package/agentic-flow/dist/mcp/claudeFlowSdkServer.js +109 -0
  48. package/agentic-flow/dist/mcp/claudeFlowSdkServer.js.map +1 -1
  49. package/agentic-flow/dist/mcp/tools/agent-booster-tools.d.ts.map +1 -0
  50. package/agentic-flow/dist/mcp/tools/agent-booster-tools.js +262 -0
  51. package/agentic-flow/dist/mcp/tools/agent-booster-tools.js.map +1 -0
  52. package/agentic-flow/dist/mcp/tools/sona-tools.d.ts.map +1 -0
  53. package/agentic-flow/dist/mcp/tools/sona-tools.js +560 -0
  54. package/agentic-flow/dist/mcp/tools/sona-tools.js.map +1 -0
  55. package/agentic-flow/dist/optimizations/agent-booster-migration.d.ts.map +1 -0
  56. package/agentic-flow/dist/optimizations/agent-booster-migration.js +323 -0
  57. package/agentic-flow/dist/optimizations/agent-booster-migration.js.map +1 -0
  58. package/agentic-flow/dist/optimizations/configuration-tuning.d.ts.map +1 -0
  59. package/agentic-flow/dist/optimizations/configuration-tuning.js +422 -0
  60. package/agentic-flow/dist/optimizations/configuration-tuning.js.map +1 -0
  61. package/agentic-flow/dist/optimizations/ruvector-backend.d.ts.map +1 -0
  62. package/agentic-flow/dist/optimizations/ruvector-backend.js +464 -0
  63. package/agentic-flow/dist/optimizations/ruvector-backend.js.map +1 -0
  64. package/agentic-flow/dist/services/embedding-service.d.ts.map +1 -0
  65. package/agentic-flow/dist/services/embedding-service.js +367 -0
  66. package/agentic-flow/dist/services/embedding-service.js.map +1 -0
  67. package/agentic-flow/dist/services/sona-agent-training.d.ts.map +1 -0
  68. package/agentic-flow/dist/services/sona-agent-training.js +382 -0
  69. package/agentic-flow/dist/services/sona-agent-training.js.map +1 -0
  70. package/agentic-flow/dist/services/sona-agentdb-integration.d.ts.map +1 -0
  71. package/agentic-flow/dist/services/sona-agentdb-integration.js +346 -0
  72. package/agentic-flow/dist/services/sona-agentdb-integration.js.map +1 -0
  73. package/agentic-flow/dist/services/sona-service.d.ts.map +1 -0
  74. package/agentic-flow/dist/services/sona-service.js +448 -0
  75. package/agentic-flow/dist/services/sona-service.js.map +1 -0
  76. package/agentic-flow/dist/services/sona-types.d.ts.map +1 -0
  77. package/agentic-flow/dist/services/sona-types.js +59 -0
  78. package/agentic-flow/dist/services/sona-types.js.map +1 -0
  79. package/docs/README.md +27 -2
  80. package/package.json +12 -2
  81. 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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"}