agentic-flow 2.0.1-alpha.2 → 2.0.1-alpha.20

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 (218) hide show
  1. package/CHANGELOG.md +352 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/agentdb/controllers/EmbeddingService.d.ts +37 -0
  4. package/dist/agentdb/controllers/EmbeddingService.d.ts.map +1 -0
  5. package/dist/agentdb/controllers/EmbeddingService.js +1 -0
  6. package/dist/agentdb/controllers/EmbeddingService.js.map +1 -0
  7. package/dist/billing/mcp/tools.d.ts.map +1 -1
  8. package/dist/billing/mcp/tools.js +2 -0
  9. package/dist/billing/mcp/tools.js.map +1 -1
  10. package/dist/cli/commands/hooks.d.ts +18 -0
  11. package/dist/cli/commands/hooks.d.ts.map +1 -0
  12. package/dist/cli/commands/hooks.js +755 -0
  13. package/dist/cli/commands/hooks.js.map +1 -0
  14. package/dist/cli-proxy.d.ts +1 -1
  15. package/dist/cli-proxy.d.ts.map +1 -1
  16. package/dist/cli-proxy.js +28 -1
  17. package/dist/cli-proxy.js.map +1 -1
  18. package/dist/core/agentdb-fast.js +3 -3
  19. package/dist/core/agentdb-fast.js.map +1 -1
  20. package/dist/core/agentdb-wrapper-enhanced.d.ts.map +1 -1
  21. package/dist/core/agentdb-wrapper-enhanced.js +32 -17
  22. package/dist/core/agentdb-wrapper-enhanced.js.map +1 -1
  23. package/dist/core/attention-native.d.ts +1 -0
  24. package/dist/core/attention-native.d.ts.map +1 -1
  25. package/dist/core/attention-native.js +6 -1
  26. package/dist/core/attention-native.js.map +1 -1
  27. package/dist/federation/integrations/supabase-adapter-debug.js +3 -3
  28. package/dist/federation/integrations/supabase-adapter-debug.js.map +1 -1
  29. package/dist/intelligence/EmbeddingCache.d.ts +112 -0
  30. package/dist/intelligence/EmbeddingCache.d.ts.map +1 -0
  31. package/dist/intelligence/EmbeddingCache.js +624 -0
  32. package/dist/intelligence/EmbeddingCache.js.map +1 -0
  33. package/dist/intelligence/EmbeddingService.d.ts +380 -0
  34. package/dist/intelligence/EmbeddingService.d.ts.map +1 -0
  35. package/dist/intelligence/EmbeddingService.js +1484 -0
  36. package/dist/intelligence/EmbeddingService.js.map +1 -0
  37. package/dist/intelligence/IntelligenceStore.d.ts +168 -0
  38. package/dist/intelligence/IntelligenceStore.d.ts.map +1 -0
  39. package/dist/intelligence/IntelligenceStore.js +364 -0
  40. package/dist/intelligence/IntelligenceStore.js.map +1 -0
  41. package/dist/intelligence/RuVectorIntelligence.d.ts +362 -0
  42. package/dist/intelligence/RuVectorIntelligence.d.ts.map +1 -0
  43. package/dist/intelligence/RuVectorIntelligence.js +853 -0
  44. package/dist/intelligence/RuVectorIntelligence.js.map +1 -0
  45. package/dist/intelligence/embedding-benchmark.d.ts +7 -0
  46. package/dist/intelligence/embedding-benchmark.d.ts.map +1 -0
  47. package/dist/intelligence/embedding-benchmark.js +155 -0
  48. package/dist/intelligence/embedding-benchmark.js.map +1 -0
  49. package/dist/intelligence/index.d.ts +14 -0
  50. package/dist/intelligence/index.d.ts.map +1 -0
  51. package/dist/intelligence/index.js +14 -0
  52. package/dist/intelligence/index.js.map +1 -0
  53. package/dist/llm/RuvLLMOrchestrator.d.ts +184 -0
  54. package/dist/llm/RuvLLMOrchestrator.d.ts.map +1 -0
  55. package/dist/llm/RuvLLMOrchestrator.js +442 -0
  56. package/dist/llm/RuvLLMOrchestrator.js.map +1 -0
  57. package/dist/llm/index.d.ts +9 -0
  58. package/dist/llm/index.d.ts.map +1 -0
  59. package/dist/llm/index.js +8 -0
  60. package/dist/llm/index.js.map +1 -0
  61. package/dist/mcp/claudeFlowSdkServer.d.ts.map +1 -1
  62. package/dist/mcp/claudeFlowSdkServer.js +86 -21
  63. package/dist/mcp/claudeFlowSdkServer.js.map +1 -1
  64. package/dist/mcp/fastmcp/servers/hooks-server.d.ts +15 -0
  65. package/dist/mcp/fastmcp/servers/hooks-server.d.ts.map +1 -0
  66. package/dist/mcp/fastmcp/servers/hooks-server.js +63 -0
  67. package/dist/mcp/fastmcp/servers/hooks-server.js.map +1 -0
  68. package/dist/mcp/fastmcp/tools/hooks/benchmark.d.ts +20 -0
  69. package/dist/mcp/fastmcp/tools/hooks/benchmark.d.ts.map +1 -0
  70. package/dist/mcp/fastmcp/tools/hooks/benchmark.js +110 -0
  71. package/dist/mcp/fastmcp/tools/hooks/benchmark.js.map +1 -0
  72. package/dist/mcp/fastmcp/tools/hooks/build-agents.d.ts +7 -0
  73. package/dist/mcp/fastmcp/tools/hooks/build-agents.d.ts.map +1 -0
  74. package/dist/mcp/fastmcp/tools/hooks/build-agents.js +276 -0
  75. package/dist/mcp/fastmcp/tools/hooks/build-agents.js.map +1 -0
  76. package/dist/mcp/fastmcp/tools/hooks/explain.d.ts +6 -0
  77. package/dist/mcp/fastmcp/tools/hooks/explain.d.ts.map +1 -0
  78. package/dist/mcp/fastmcp/tools/hooks/explain.js +164 -0
  79. package/dist/mcp/fastmcp/tools/hooks/explain.js.map +1 -0
  80. package/dist/mcp/fastmcp/tools/hooks/index.d.ts +28 -0
  81. package/dist/mcp/fastmcp/tools/hooks/index.d.ts.map +1 -0
  82. package/dist/mcp/fastmcp/tools/hooks/index.js +59 -0
  83. package/dist/mcp/fastmcp/tools/hooks/index.js.map +1 -0
  84. package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.d.ts +307 -0
  85. package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.d.ts.map +1 -0
  86. package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.js +714 -0
  87. package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.js.map +1 -0
  88. package/dist/mcp/fastmcp/tools/hooks/intelligence-tools.d.ts +58 -0
  89. package/dist/mcp/fastmcp/tools/hooks/intelligence-tools.d.ts.map +1 -0
  90. package/dist/mcp/fastmcp/tools/hooks/intelligence-tools.js +425 -0
  91. package/dist/mcp/fastmcp/tools/hooks/intelligence-tools.js.map +1 -0
  92. package/dist/mcp/fastmcp/tools/hooks/metrics.d.ts +6 -0
  93. package/dist/mcp/fastmcp/tools/hooks/metrics.d.ts.map +1 -0
  94. package/dist/mcp/fastmcp/tools/hooks/metrics.js +137 -0
  95. package/dist/mcp/fastmcp/tools/hooks/metrics.js.map +1 -0
  96. package/dist/mcp/fastmcp/tools/hooks/post-command.d.ts +7 -0
  97. package/dist/mcp/fastmcp/tools/hooks/post-command.d.ts.map +1 -0
  98. package/dist/mcp/fastmcp/tools/hooks/post-command.js +91 -0
  99. package/dist/mcp/fastmcp/tools/hooks/post-command.js.map +1 -0
  100. package/dist/mcp/fastmcp/tools/hooks/post-edit.d.ts +12 -0
  101. package/dist/mcp/fastmcp/tools/hooks/post-edit.d.ts.map +1 -0
  102. package/dist/mcp/fastmcp/tools/hooks/post-edit.js +146 -0
  103. package/dist/mcp/fastmcp/tools/hooks/post-edit.js.map +1 -0
  104. package/dist/mcp/fastmcp/tools/hooks/pre-command.d.ts +7 -0
  105. package/dist/mcp/fastmcp/tools/hooks/pre-command.d.ts.map +1 -0
  106. package/dist/mcp/fastmcp/tools/hooks/pre-command.js +70 -0
  107. package/dist/mcp/fastmcp/tools/hooks/pre-command.js.map +1 -0
  108. package/dist/mcp/fastmcp/tools/hooks/pre-edit.d.ts +14 -0
  109. package/dist/mcp/fastmcp/tools/hooks/pre-edit.d.ts.map +1 -0
  110. package/dist/mcp/fastmcp/tools/hooks/pre-edit.js +121 -0
  111. package/dist/mcp/fastmcp/tools/hooks/pre-edit.js.map +1 -0
  112. package/dist/mcp/fastmcp/tools/hooks/pretrain.d.ts +7 -0
  113. package/dist/mcp/fastmcp/tools/hooks/pretrain.d.ts.map +1 -0
  114. package/dist/mcp/fastmcp/tools/hooks/pretrain.js +171 -0
  115. package/dist/mcp/fastmcp/tools/hooks/pretrain.js.map +1 -0
  116. package/dist/mcp/fastmcp/tools/hooks/route.d.ts +12 -0
  117. package/dist/mcp/fastmcp/tools/hooks/route.d.ts.map +1 -0
  118. package/dist/mcp/fastmcp/tools/hooks/route.js +267 -0
  119. package/dist/mcp/fastmcp/tools/hooks/route.js.map +1 -0
  120. package/dist/mcp/fastmcp/tools/hooks/shared.d.ts +46 -0
  121. package/dist/mcp/fastmcp/tools/hooks/shared.d.ts.map +1 -0
  122. package/dist/mcp/fastmcp/tools/hooks/shared.js +159 -0
  123. package/dist/mcp/fastmcp/tools/hooks/shared.js.map +1 -0
  124. package/dist/mcp/fastmcp/tools/hooks/transfer.d.ts +7 -0
  125. package/dist/mcp/fastmcp/tools/hooks/transfer.d.ts.map +1 -0
  126. package/dist/mcp/fastmcp/tools/hooks/transfer.js +151 -0
  127. package/dist/mcp/fastmcp/tools/hooks/transfer.js.map +1 -0
  128. package/dist/mcp/tools/agent-booster-tools.d.ts +10 -1
  129. package/dist/mcp/tools/agent-booster-tools.d.ts.map +1 -1
  130. package/dist/mcp/tools/agent-booster-tools.js.map +1 -1
  131. package/dist/mcp/tools/sona-tools.d.ts.map +1 -1
  132. package/dist/mcp/tools/sona-tools.js +15 -3
  133. package/dist/mcp/tools/sona-tools.js.map +1 -1
  134. package/dist/memory/SharedMemoryPool.d.ts +16 -3
  135. package/dist/memory/SharedMemoryPool.d.ts.map +1 -1
  136. package/dist/memory/SharedMemoryPool.js +33 -1
  137. package/dist/memory/SharedMemoryPool.js.map +1 -1
  138. package/dist/middleware/auth.middleware.d.ts +114 -0
  139. package/dist/middleware/auth.middleware.d.ts.map +1 -0
  140. package/dist/middleware/auth.middleware.js +222 -0
  141. package/dist/middleware/auth.middleware.js.map +1 -0
  142. package/dist/optimizations/agent-booster-migration.d.ts.map +1 -1
  143. package/dist/optimizations/agent-booster-migration.js.map +1 -1
  144. package/dist/proxy/anthropic-to-gemini.d.ts.map +1 -1
  145. package/dist/proxy/anthropic-to-gemini.js.map +1 -1
  146. package/dist/proxy/anthropic-to-openrouter.d.ts.map +1 -1
  147. package/dist/proxy/anthropic-to-openrouter.js.map +1 -1
  148. package/dist/proxy/anthropic-to-requesty.d.ts.map +1 -1
  149. package/dist/proxy/anthropic-to-requesty.js.map +1 -1
  150. package/dist/proxy/quic-proxy.d.ts +0 -1
  151. package/dist/proxy/quic-proxy.d.ts.map +1 -1
  152. package/dist/proxy/quic-proxy.js +2 -1
  153. package/dist/proxy/quic-proxy.js.map +1 -1
  154. package/dist/reasoningbank/AdvancedMemory.d.ts.map +1 -1
  155. package/dist/reasoningbank/AdvancedMemory.js +12 -1
  156. package/dist/reasoningbank/AdvancedMemory.js.map +1 -1
  157. package/dist/reasoningbank/HybridBackend.d.ts +9 -0
  158. package/dist/reasoningbank/HybridBackend.d.ts.map +1 -1
  159. package/dist/reasoningbank/HybridBackend.js +48 -4
  160. package/dist/reasoningbank/HybridBackend.js.map +1 -1
  161. package/dist/reasoningbank/backend-selector.d.ts +1 -1
  162. package/dist/reasoningbank/backend-selector.d.ts.map +1 -1
  163. package/dist/reasoningbank/backend-selector.js.map +1 -1
  164. package/dist/reasoningbank/index-new.d.ts +0 -6
  165. package/dist/reasoningbank/index-new.d.ts.map +1 -1
  166. package/dist/reasoningbank/index-new.js +9 -7
  167. package/dist/reasoningbank/index-new.js.map +1 -1
  168. package/dist/reasoningbank/index.d.ts +1 -6
  169. package/dist/reasoningbank/index.d.ts.map +1 -1
  170. package/dist/reasoningbank/index.js +10 -7
  171. package/dist/reasoningbank/index.js.map +1 -1
  172. package/dist/router/providers/onnx-local.d.ts.map +1 -1
  173. package/dist/router/providers/onnx-local.js +3 -1
  174. package/dist/router/providers/onnx-local.js.map +1 -1
  175. package/dist/routing/CircuitBreakerRouter.d.ts +187 -0
  176. package/dist/routing/CircuitBreakerRouter.d.ts.map +1 -0
  177. package/dist/routing/CircuitBreakerRouter.js +460 -0
  178. package/dist/routing/CircuitBreakerRouter.js.map +1 -0
  179. package/dist/routing/SemanticRouter.d.ts +164 -0
  180. package/dist/routing/SemanticRouter.d.ts.map +1 -0
  181. package/dist/routing/SemanticRouter.js +291 -0
  182. package/dist/routing/SemanticRouter.js.map +1 -0
  183. package/dist/routing/index.d.ts +12 -0
  184. package/dist/routing/index.d.ts.map +1 -0
  185. package/dist/routing/index.js +10 -0
  186. package/dist/routing/index.js.map +1 -0
  187. package/dist/services/embedding-service.d.ts.map +1 -1
  188. package/dist/services/embedding-service.js +5 -2
  189. package/dist/services/embedding-service.js.map +1 -1
  190. package/dist/services/sona-agent-training.js +1 -1
  191. package/dist/services/sona-agent-training.js.map +1 -1
  192. package/dist/services/sona-agentdb-integration.d.ts.map +1 -1
  193. package/dist/services/sona-agentdb-integration.js +10 -5
  194. package/dist/services/sona-agentdb-integration.js.map +1 -1
  195. package/dist/services/sona-service.d.ts +6 -6
  196. package/dist/services/sona-service.d.ts.map +1 -1
  197. package/dist/services/sona-service.js +3 -1
  198. package/dist/services/sona-service.js.map +1 -1
  199. package/dist/utils/agentdb-runtime-patch.d.ts +1 -0
  200. package/dist/utils/agentdb-runtime-patch.d.ts.map +1 -1
  201. package/dist/utils/agentdb-runtime-patch.js +97 -2
  202. package/dist/utils/agentdb-runtime-patch.js.map +1 -1
  203. package/dist/utils/audit-logger.d.ts +115 -0
  204. package/dist/utils/audit-logger.d.ts.map +1 -0
  205. package/dist/utils/audit-logger.js +228 -0
  206. package/dist/utils/audit-logger.js.map +1 -0
  207. package/dist/utils/cli.d.ts +1 -1
  208. package/dist/utils/cli.d.ts.map +1 -1
  209. package/dist/utils/cli.js +5 -0
  210. package/dist/utils/cli.js.map +1 -1
  211. package/dist/utils/input-validator.d.ts +116 -0
  212. package/dist/utils/input-validator.d.ts.map +1 -0
  213. package/dist/utils/input-validator.js +299 -0
  214. package/dist/utils/input-validator.js.map +1 -0
  215. package/dist/utils/rate-limiter.js +2 -2
  216. package/dist/utils/rate-limiter.js.map +1 -1
  217. package/package.json +14 -3
  218. package/scripts/postinstall.js +72 -0
@@ -1 +1 @@
1
- {"version":3,"file":"embedding-service.js","sourceRoot":"","sources":["../../src/services/embedding-service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Production Embedding Service\n *\n * Replaces mock embeddings with real implementations:\n * 1. OpenAI Embeddings API (text-embedding-3-small/large)\n * 2. Local Transformers.js (runs in Node.js/browser)\n * 3. Custom ONNX models\n * 4. Fallback hash-based embeddings (for development)\n */\n\nimport { EventEmitter } from 'events';\n\nexport interface EmbeddingConfig {\n provider: 'openai' | 'transformers' | 'onnx' | 'mock';\n model?: string;\n dimensions?: number;\n apiKey?: string;\n cacheSize?: number;\n}\n\nexport interface EmbeddingResult {\n embedding: number[];\n usage?: {\n promptTokens: number;\n totalTokens: number;\n };\n latency: number;\n}\n\n/**\n * Base embedding service interface\n */\nexport abstract class EmbeddingService extends EventEmitter {\n protected config: EmbeddingConfig;\n protected cache: Map<string, number[]> = new Map();\n\n constructor(config: EmbeddingConfig) {\n super();\n this.config = {\n cacheSize: 1000,\n ...config\n };\n }\n\n abstract embed(text: string): Promise<EmbeddingResult>;\n abstract embedBatch(texts: string[]): Promise<EmbeddingResult[]>;\n\n /**\n * Get cached embedding if available\n */\n protected getCached(text: string): number[] | null {\n return this.cache.get(text) || null;\n }\n\n /**\n * Cache embedding with LRU eviction\n */\n protected setCached(text: string, embedding: number[]): void {\n if (this.cache.size >= this.config.cacheSize!) {\n // Remove oldest entry (first in map)\n const firstKey = this.cache.keys().next().value;\n this.cache.delete(firstKey);\n }\n this.cache.set(text, embedding);\n }\n\n /**\n * Clear cache\n */\n clearCache(): void {\n this.cache.clear();\n }\n}\n\n/**\n * OpenAI Embeddings Service\n *\n * Uses OpenAI's text-embedding-3-small (1536D) or text-embedding-3-large (3072D)\n * https://platform.openai.com/docs/guides/embeddings\n */\nexport class OpenAIEmbeddingService extends EmbeddingService {\n private apiKey: string;\n private model: string;\n private baseURL = 'https://api.openai.com/v1/embeddings';\n\n constructor(config: Omit<EmbeddingConfig, 'provider'> & { apiKey: string }) {\n super({ ...config, provider: 'openai' });\n this.apiKey = config.apiKey;\n this.model = config.model || 'text-embedding-3-small';\n }\n\n async embed(text: string): Promise<EmbeddingResult> {\n // Check cache\n const cached = this.getCached(text);\n if (cached) {\n return {\n embedding: cached,\n latency: 0\n };\n }\n\n const start = Date.now();\n\n try {\n const response = await fetch(this.baseURL, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${this.apiKey}`\n },\n body: JSON.stringify({\n model: this.model,\n input: text,\n dimensions: this.config.dimensions || undefined\n })\n });\n\n if (!response.ok) {\n throw new Error(`OpenAI API error: ${response.statusText}`);\n }\n\n const data = await response.json();\n const embedding = data.data[0].embedding;\n\n // Cache it\n this.setCached(text, embedding);\n\n const latency = Date.now() - start;\n\n this.emit('embed', { text, latency });\n\n return {\n embedding,\n usage: data.usage,\n latency\n };\n } catch (error: any) {\n throw new Error(`OpenAI embedding failed: ${error.message}`);\n }\n }\n\n async embedBatch(texts: string[]): Promise<EmbeddingResult[]> {\n const start = Date.now();\n\n try {\n const response = await fetch(this.baseURL, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${this.apiKey}`\n },\n body: JSON.stringify({\n model: this.model,\n input: texts,\n dimensions: this.config.dimensions || undefined\n })\n });\n\n if (!response.ok) {\n throw new Error(`OpenAI API error: ${response.statusText}`);\n }\n\n const data = await response.json();\n const latency = Date.now() - start;\n\n return data.data.map((item: any, index: number) => {\n const embedding = item.embedding;\n this.setCached(texts[index], embedding);\n\n return {\n embedding,\n usage: {\n promptTokens: Math.floor(data.usage.prompt_tokens / texts.length),\n totalTokens: Math.floor(data.usage.total_tokens / texts.length)\n },\n latency: Math.floor(latency / texts.length)\n };\n });\n } catch (error: any) {\n throw new Error(`OpenAI batch embedding failed: ${error.message}`);\n }\n }\n}\n\n/**\n * Transformers.js Local Embedding Service\n *\n * Runs locally without API calls using ONNX runtime\n * https://huggingface.co/docs/transformers.js\n */\nexport class TransformersEmbeddingService extends EmbeddingService {\n private pipeline: any = null;\n private modelName: string;\n\n constructor(config: Omit<EmbeddingConfig, 'provider'>) {\n super({ ...config, provider: 'transformers' });\n this.modelName = config.model || 'Xenova/all-MiniLM-L6-v2';\n }\n\n async initialize(): Promise<void> {\n if (this.pipeline) return;\n\n try {\n // Dynamically import transformers.js\n const { pipeline } = await import('@xenova/transformers');\n\n this.pipeline = await pipeline('feature-extraction', this.modelName);\n this.emit('initialized', { model: this.modelName });\n } catch (error: any) {\n throw new Error(`Failed to initialize transformers.js: ${error.message}`);\n }\n }\n\n async embed(text: string): Promise<EmbeddingResult> {\n await this.initialize();\n\n // Check cache\n const cached = this.getCached(text);\n if (cached) {\n return {\n embedding: cached,\n latency: 0\n };\n }\n\n const start = Date.now();\n\n try {\n const output = await this.pipeline(text, { pooling: 'mean', normalize: true });\n\n // Convert to regular array\n const embedding = Array.from(output.data);\n\n // Cache it\n this.setCached(text, embedding);\n\n const latency = Date.now() - start;\n\n this.emit('embed', { text, latency });\n\n return {\n embedding,\n latency\n };\n } catch (error: any) {\n throw new Error(`Transformers.js embedding failed: ${error.message}`);\n }\n }\n\n async embedBatch(texts: string[]): Promise<EmbeddingResult[]> {\n await this.initialize();\n\n const start = Date.now();\n\n try {\n const results: EmbeddingResult[] = [];\n\n for (const text of texts) {\n const cached = this.getCached(text);\n\n if (cached) {\n results.push({\n embedding: cached,\n latency: 0\n });\n } else {\n const output = await this.pipeline(text, {\n pooling: 'mean',\n normalize: true\n });\n const embedding = Array.from(output.data);\n\n this.setCached(text, embedding);\n\n results.push({\n embedding,\n latency: Math.floor((Date.now() - start) / texts.length)\n });\n }\n }\n\n return results;\n } catch (error: any) {\n throw new Error(`Transformers.js batch embedding failed: ${error.message}`);\n }\n }\n}\n\n/**\n * Mock Embedding Service (for development/testing)\n *\n * Generates deterministic hash-based embeddings\n * Fast but not semantically meaningful\n */\nexport class MockEmbeddingService extends EmbeddingService {\n constructor(config?: Partial<EmbeddingConfig>) {\n super({\n provider: 'mock',\n dimensions: 384,\n ...config\n });\n }\n\n async embed(text: string): Promise<EmbeddingResult> {\n // Check cache\n const cached = this.getCached(text);\n if (cached) {\n return {\n embedding: cached,\n latency: 0\n };\n }\n\n const start = Date.now();\n\n // Generate hash-based embedding\n const embedding = this.hashEmbedding(text);\n\n // Cache it\n this.setCached(text, embedding);\n\n const latency = Date.now() - start;\n\n return {\n embedding,\n latency\n };\n }\n\n async embedBatch(texts: string[]): Promise<EmbeddingResult[]> {\n return Promise.all(texts.map(text => this.embed(text)));\n }\n\n private hashEmbedding(text: string): number[] {\n const dimensions = this.config.dimensions || 384;\n const embedding = new Array(dimensions);\n\n // Seed with text hash\n let hash = 0;\n for (let i = 0; i < text.length; i++) {\n hash = (hash << 5) - hash + text.charCodeAt(i);\n hash = hash & hash;\n }\n\n // Generate pseudo-random embedding\n for (let i = 0; i < dimensions; i++) {\n const seed = hash + i * 2654435761;\n const x = Math.sin(seed) * 10000;\n embedding[i] = x - Math.floor(x);\n }\n\n // Normalize to unit vector\n const norm = Math.sqrt(embedding.reduce((sum, v) => sum + v * v, 0));\n return embedding.map(v => v / norm);\n }\n}\n\n/**\n * Factory function to create appropriate embedding service\n */\nexport function createEmbeddingService(config: EmbeddingConfig): EmbeddingService {\n switch (config.provider) {\n case 'openai':\n if (!config.apiKey) {\n throw new Error('OpenAI API key required');\n }\n return new OpenAIEmbeddingService(config as any);\n\n case 'transformers':\n return new TransformersEmbeddingService(config);\n\n case 'mock':\n return new MockEmbeddingService(config);\n\n default:\n console.warn(`Unknown provider: ${config.provider}, using mock`);\n return new MockEmbeddingService(config);\n }\n}\n\n/**\n * Convenience function for quick embeddings\n */\nexport async function getEmbedding(\n text: string,\n config?: Partial<EmbeddingConfig>\n): Promise<number[]> {\n const service = createEmbeddingService({\n provider: 'mock',\n ...config\n } as EmbeddingConfig);\n\n const result = await service.embed(text);\n return result.embedding;\n}\n\n/**\n * Benchmark different embedding providers\n */\nexport async function benchmarkEmbeddings(testText: string = 'Hello world'): Promise<{\n mock: { latency: number; dimensions: number };\n transformers?: { latency: number; dimensions: number; error?: string };\n openai?: { latency: number; dimensions: number; error?: string };\n}> {\n const results: any = {};\n\n // Test mock\n const mockService = new MockEmbeddingService({ dimensions: 384 });\n const mockResult = await mockService.embed(testText);\n results.mock = {\n latency: mockResult.latency,\n dimensions: mockResult.embedding.length\n };\n\n // Test transformers (if available)\n try {\n const transformersService = new TransformersEmbeddingService({\n model: 'Xenova/all-MiniLM-L6-v2'\n });\n const transformersResult = await transformersService.embed(testText);\n results.transformers = {\n latency: transformersResult.latency,\n dimensions: transformersResult.embedding.length\n };\n } catch (error: any) {\n results.transformers = {\n error: error.message\n };\n }\n\n // Test OpenAI (if API key available)\n const apiKey = process.env.OPENAI_API_KEY;\n if (apiKey) {\n try {\n const openaiService = new OpenAIEmbeddingService({\n apiKey,\n model: 'text-embedding-3-small'\n });\n const openaiResult = await openaiService.embed(testText);\n results.openai = {\n latency: openaiResult.latency,\n dimensions: openaiResult.embedding.length\n };\n } catch (error: any) {\n results.openai = {\n error: error.message\n };\n }\n }\n\n return results;\n}\n"]}
1
+ {"version":3,"file":"embedding-service.js","sourceRoot":"","sources":["../../src/services/embedding-service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Production Embedding Service\n *\n * Replaces mock embeddings with real implementations:\n * 1. OpenAI Embeddings API (text-embedding-3-small/large)\n * 2. Local Transformers.js (runs in Node.js/browser)\n * 3. Custom ONNX models\n * 4. Fallback hash-based embeddings (for development)\n */\n\nimport { EventEmitter } from 'events';\n\nexport interface EmbeddingConfig {\n provider: 'openai' | 'transformers' | 'onnx' | 'mock';\n model?: string;\n dimensions?: number;\n apiKey?: string;\n cacheSize?: number;\n}\n\nexport interface EmbeddingResult {\n embedding: number[];\n usage?: {\n promptTokens: number;\n totalTokens: number;\n };\n latency: number;\n}\n\n// OpenAI Embedding API response type\ninterface OpenAIEmbeddingResponse {\n data: Array<{ embedding: number[]; index: number }>;\n usage: { prompt_tokens: number; total_tokens: number };\n model: string;\n}\n\n/**\n * Base embedding service interface\n */\nexport abstract class EmbeddingService extends EventEmitter {\n protected config: EmbeddingConfig;\n protected cache: Map<string, number[]> = new Map();\n\n constructor(config: EmbeddingConfig) {\n super();\n this.config = {\n cacheSize: 1000,\n ...config\n };\n }\n\n abstract embed(text: string): Promise<EmbeddingResult>;\n abstract embedBatch(texts: string[]): Promise<EmbeddingResult[]>;\n\n /**\n * Get cached embedding if available\n */\n protected getCached(text: string): number[] | null {\n return this.cache.get(text) || null;\n }\n\n /**\n * Cache embedding with LRU eviction\n */\n protected setCached(text: string, embedding: number[]): void {\n if (this.cache.size >= this.config.cacheSize!) {\n // Remove oldest entry (first in map)\n const firstKey = this.cache.keys().next().value;\n this.cache.delete(firstKey);\n }\n this.cache.set(text, embedding);\n }\n\n /**\n * Clear cache\n */\n clearCache(): void {\n this.cache.clear();\n }\n}\n\n/**\n * OpenAI Embeddings Service\n *\n * Uses OpenAI's text-embedding-3-small (1536D) or text-embedding-3-large (3072D)\n * https://platform.openai.com/docs/guides/embeddings\n */\nexport class OpenAIEmbeddingService extends EmbeddingService {\n private apiKey: string;\n private model: string;\n private baseURL = 'https://api.openai.com/v1/embeddings';\n\n constructor(config: Omit<EmbeddingConfig, 'provider'> & { apiKey: string }) {\n super({ ...config, provider: 'openai' });\n this.apiKey = config.apiKey;\n this.model = config.model || 'text-embedding-3-small';\n }\n\n async embed(text: string): Promise<EmbeddingResult> {\n // Check cache\n const cached = this.getCached(text);\n if (cached) {\n return {\n embedding: cached,\n latency: 0\n };\n }\n\n const start = Date.now();\n\n try {\n const response = await fetch(this.baseURL, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${this.apiKey}`\n },\n body: JSON.stringify({\n model: this.model,\n input: text,\n dimensions: this.config.dimensions || undefined\n })\n });\n\n if (!response.ok) {\n throw new Error(`OpenAI API error: ${response.statusText}`);\n }\n\n const data = await response.json() as OpenAIEmbeddingResponse;\n const embedding = data.data[0].embedding;\n\n // Cache it\n this.setCached(text, embedding);\n\n const latency = Date.now() - start;\n\n this.emit('embed', { text, latency });\n\n return {\n embedding,\n usage: {\n promptTokens: data.usage.prompt_tokens,\n totalTokens: data.usage.total_tokens,\n },\n latency\n };\n } catch (error: any) {\n throw new Error(`OpenAI embedding failed: ${error.message}`);\n }\n }\n\n async embedBatch(texts: string[]): Promise<EmbeddingResult[]> {\n const start = Date.now();\n\n try {\n const response = await fetch(this.baseURL, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${this.apiKey}`\n },\n body: JSON.stringify({\n model: this.model,\n input: texts,\n dimensions: this.config.dimensions || undefined\n })\n });\n\n if (!response.ok) {\n throw new Error(`OpenAI API error: ${response.statusText}`);\n }\n\n const data = await response.json() as OpenAIEmbeddingResponse;\n const latency = Date.now() - start;\n\n return data.data.map((item, index: number) => {\n const embedding = item.embedding;\n this.setCached(texts[index], embedding);\n\n return {\n embedding,\n usage: {\n promptTokens: Math.floor(data.usage.prompt_tokens / texts.length),\n totalTokens: Math.floor(data.usage.total_tokens / texts.length)\n },\n latency: Math.floor(latency / texts.length)\n };\n });\n } catch (error: any) {\n throw new Error(`OpenAI batch embedding failed: ${error.message}`);\n }\n }\n}\n\n/**\n * Transformers.js Local Embedding Service\n *\n * Runs locally without API calls using ONNX runtime\n * https://huggingface.co/docs/transformers.js\n */\nexport class TransformersEmbeddingService extends EmbeddingService {\n private pipeline: any = null;\n private modelName: string;\n\n constructor(config: Omit<EmbeddingConfig, 'provider'>) {\n super({ ...config, provider: 'transformers' });\n this.modelName = config.model || 'Xenova/all-MiniLM-L6-v2';\n }\n\n async initialize(): Promise<void> {\n if (this.pipeline) return;\n\n try {\n // Dynamically import transformers.js\n const { pipeline } = await import('@xenova/transformers');\n\n this.pipeline = await pipeline('feature-extraction', this.modelName);\n this.emit('initialized', { model: this.modelName });\n } catch (error: any) {\n throw new Error(`Failed to initialize transformers.js: ${error.message}`);\n }\n }\n\n async embed(text: string): Promise<EmbeddingResult> {\n await this.initialize();\n\n // Check cache\n const cached = this.getCached(text);\n if (cached) {\n return {\n embedding: cached,\n latency: 0\n };\n }\n\n const start = Date.now();\n\n try {\n const output = await this.pipeline(text, { pooling: 'mean', normalize: true });\n\n // Convert to regular array (output.data is Float32Array or similar)\n const embedding = Array.from(output.data as ArrayLike<number>) as number[];\n\n // Cache it\n this.setCached(text, embedding);\n\n const latency = Date.now() - start;\n\n this.emit('embed', { text, latency });\n\n return {\n embedding,\n latency\n };\n } catch (error: any) {\n throw new Error(`Transformers.js embedding failed: ${error.message}`);\n }\n }\n\n async embedBatch(texts: string[]): Promise<EmbeddingResult[]> {\n await this.initialize();\n\n const start = Date.now();\n\n try {\n const results: EmbeddingResult[] = [];\n\n for (const text of texts) {\n const cached = this.getCached(text);\n\n if (cached) {\n results.push({\n embedding: cached,\n latency: 0\n });\n } else {\n const output = await this.pipeline(text, {\n pooling: 'mean',\n normalize: true\n });\n const embedding = Array.from(output.data as ArrayLike<number>) as number[];\n\n this.setCached(text, embedding);\n\n results.push({\n embedding,\n latency: Math.floor((Date.now() - start) / texts.length)\n });\n }\n }\n\n return results;\n } catch (error: any) {\n throw new Error(`Transformers.js batch embedding failed: ${error.message}`);\n }\n }\n}\n\n/**\n * Mock Embedding Service (for development/testing)\n *\n * Generates deterministic hash-based embeddings\n * Fast but not semantically meaningful\n */\nexport class MockEmbeddingService extends EmbeddingService {\n constructor(config?: Partial<EmbeddingConfig>) {\n super({\n provider: 'mock',\n dimensions: 384,\n ...config\n });\n }\n\n async embed(text: string): Promise<EmbeddingResult> {\n // Check cache\n const cached = this.getCached(text);\n if (cached) {\n return {\n embedding: cached,\n latency: 0\n };\n }\n\n const start = Date.now();\n\n // Generate hash-based embedding\n const embedding = this.hashEmbedding(text);\n\n // Cache it\n this.setCached(text, embedding);\n\n const latency = Date.now() - start;\n\n return {\n embedding,\n latency\n };\n }\n\n async embedBatch(texts: string[]): Promise<EmbeddingResult[]> {\n return Promise.all(texts.map(text => this.embed(text)));\n }\n\n private hashEmbedding(text: string): number[] {\n const dimensions = this.config.dimensions || 384;\n const embedding = new Array(dimensions);\n\n // Seed with text hash\n let hash = 0;\n for (let i = 0; i < text.length; i++) {\n hash = (hash << 5) - hash + text.charCodeAt(i);\n hash = hash & hash;\n }\n\n // Generate pseudo-random embedding\n for (let i = 0; i < dimensions; i++) {\n const seed = hash + i * 2654435761;\n const x = Math.sin(seed) * 10000;\n embedding[i] = x - Math.floor(x);\n }\n\n // Normalize to unit vector\n const norm = Math.sqrt(embedding.reduce((sum, v) => sum + v * v, 0));\n return embedding.map(v => v / norm);\n }\n}\n\n/**\n * Factory function to create appropriate embedding service\n */\nexport function createEmbeddingService(config: EmbeddingConfig): EmbeddingService {\n switch (config.provider) {\n case 'openai':\n if (!config.apiKey) {\n throw new Error('OpenAI API key required');\n }\n return new OpenAIEmbeddingService(config as any);\n\n case 'transformers':\n return new TransformersEmbeddingService(config);\n\n case 'mock':\n return new MockEmbeddingService(config);\n\n default:\n console.warn(`Unknown provider: ${config.provider}, using mock`);\n return new MockEmbeddingService(config);\n }\n}\n\n/**\n * Convenience function for quick embeddings\n */\nexport async function getEmbedding(\n text: string,\n config?: Partial<EmbeddingConfig>\n): Promise<number[]> {\n const service = createEmbeddingService({\n provider: 'mock',\n ...config\n } as EmbeddingConfig);\n\n const result = await service.embed(text);\n return result.embedding;\n}\n\n/**\n * Benchmark different embedding providers\n */\nexport async function benchmarkEmbeddings(testText: string = 'Hello world'): Promise<{\n mock: { latency: number; dimensions: number };\n transformers?: { latency: number; dimensions: number; error?: string };\n openai?: { latency: number; dimensions: number; error?: string };\n}> {\n const results: any = {};\n\n // Test mock\n const mockService = new MockEmbeddingService({ dimensions: 384 });\n const mockResult = await mockService.embed(testText);\n results.mock = {\n latency: mockResult.latency,\n dimensions: mockResult.embedding.length\n };\n\n // Test transformers (if available)\n try {\n const transformersService = new TransformersEmbeddingService({\n model: 'Xenova/all-MiniLM-L6-v2'\n });\n const transformersResult = await transformersService.embed(testText);\n results.transformers = {\n latency: transformersResult.latency,\n dimensions: transformersResult.embedding.length\n };\n } catch (error: any) {\n results.transformers = {\n error: error.message\n };\n }\n\n // Test OpenAI (if API key available)\n const apiKey = process.env.OPENAI_API_KEY;\n if (apiKey) {\n try {\n const openaiService = new OpenAIEmbeddingService({\n apiKey,\n model: 'text-embedding-3-small'\n });\n const openaiResult = await openaiService.embed(testText);\n results.openai = {\n latency: openaiResult.latency,\n dimensions: openaiResult.embedding.length\n };\n } catch (error: any) {\n results.openai = {\n error: error.message\n };\n }\n }\n\n return results;\n}\n"]}
@@ -17,7 +17,7 @@ export class AgentFactory extends EventEmitter {
17
17
  this.baseConfig = {
18
18
  hiddenDim: 3072,
19
19
  microLoraRank: 2,
20
- microLoraLr: 0.002,
20
+ // Note: microLoraLr is configured via SONA, not AgentConfig
21
21
  ewcLambda: 2000,
22
22
  ...baseConfig
23
23
  };
@@ -1 +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"]}
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 // Note: microLoraLr is configured via SONA, not AgentConfig\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"]}
@@ -1 +1 @@
1
- {"version":3,"file":"sona-agentdb-integration.d.ts","sourceRoot":"","sources":["../../src/services/sona-agentdb-integration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sona-agentdb-integration.d.ts","sourceRoot":"","sources":["../../src/services/sona-agentdb-integration.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,EAAc,SAAS,EAAE,WAAW,EAAmB,MAAM,iBAAiB,CAAC;AAEtF,MAAM,WAAW,iBAAiB;IAEhC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IAGxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,EAAE,CAAa;IACvB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,WAAW,CAAkB;gBAEzB,MAAM,GAAE,OAAO,CAAC,iBAAiB,CAAM;IAuBnD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCjC;;;;;;;OAOG;IACG,KAAK,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAwDtD;;;;;;;OAOG;IACG,KAAK,CACT,cAAc,EAAE,MAAM,EAAE,EACxB,CAAC,GAAE,MAAU,EACb,UAAU,GAAE,MAAY,GACvB,OAAO,CAAC;QACT,QAAQ,EAAE,GAAG,EAAE,CAAC;QAChB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE;YACP,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC;IAiDF;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;QACrD,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IA8BF;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC;QACxB,IAAI,EAAE,SAAS,CAAC;QAChB,OAAO,EAAE,GAAG,CAAC;QACb,QAAQ,EAAE;YACR,aAAa,EAAE,MAAM,CAAC;YACtB,eAAe,EAAE,MAAM,CAAC;YACxB,iBAAiB,EAAE,MAAM,CAAC;SAC3B,CAAC;KACH,CAAC;IAqBF;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;IAUxC;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAezC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAe5B;;OAEG;IACH,OAAO,CAAC,aAAa;IA2CrB;;OAEG;IACH,OAAO,CAAC,UAAU;CAGnB;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB;IAC9B;;OAEG;oBACW,OAAO,CAAC,iBAAiB,CAAC;IAQxC;;OAEG;oBACW,OAAO,CAAC,iBAAiB,CAAC;IAQxC;;OAEG;mBACU,OAAO,CAAC,iBAAiB,CAAC;IASvC;;OAEG;sBACa,OAAO,CAAC,iBAAiB,CAAC;CAQ3C,CAAC"}
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import { EventEmitter } from 'events';
8
8
  import { SonaEngine } from '@ruvector/sona';
9
- import agentdb from 'agentdb';
9
+ import { AgentDB } from 'agentdb';
10
10
  import { ValidationUtils } from './sona-types.js';
11
11
  /**
12
12
  * SONA + AgentDB Integrated Trainer
@@ -45,7 +45,9 @@ export class SONAAgentDBTrainer extends EventEmitter {
45
45
  async initialize() {
46
46
  if (this.initialized)
47
47
  return;
48
- // Initialize SONA engine
48
+ // Initialize SONA engine (cast to SONAEngine interface)
49
+ // Note: SonaEngine returns numeric IDs, SONAEngine interface expects strings
50
+ // The wrapper handles conversion
49
51
  this.sonaEngine = SonaEngine.withConfig({
50
52
  hiddenDim: this.config.hiddenDim,
51
53
  microLoraRank: this.config.microLoraRank,
@@ -56,13 +58,16 @@ export class SONAAgentDBTrainer extends EventEmitter {
56
58
  enableSimd: true
57
59
  });
58
60
  // Initialize AgentDB with HNSW
59
- this.db = await agentdb.open({
60
- path: this.config.dbPath,
61
+ this.db = new AgentDB({
62
+ dbPath: this.config.dbPath,
61
63
  vectorDimensions: this.config.vectorDimensions,
62
64
  enableHNSW: this.config.enableHNSW,
63
65
  hnswM: this.config.hnswM,
64
66
  hnswEfConstruction: this.config.hnswEfConstruction
65
- });
67
+ }); // Cast to any for config flexibility
68
+ if (this.db.initialize) {
69
+ await this.db.initialize();
70
+ }
66
71
  this.initialized = true;
67
72
  this.emit('initialized', { config: this.config });
68
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sona-agentdb-integration.js","sourceRoot":"","sources":["../../src/services/sona-agentdb-integration.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * SONA + AgentDB Integration\n *\n * Combines SONA's LoRA fine-tuning with AgentDB's vector search\n * for ultra-fast adaptive learning with pattern matching\n */\n\nimport { EventEmitter } from 'events';\nimport { SonaEngine } from '@ruvector/sona';\nimport agentdb from 'agentdb';\nimport { SONAEngine, SONAStats, LearnResult, ValidationUtils } from './sona-types.js';\n\nexport interface AgentDBSONAConfig {\n // SONA config\n hiddenDim: number;\n microLoraRank: number;\n baseLoraRank: number;\n microLoraLr: number;\n ewcLambda: number;\n patternClusters: number;\n\n // AgentDB config\n dbPath?: string;\n vectorDimensions: number;\n enableHNSW: boolean;\n hnswM?: number;\n hnswEfConstruction?: number;\n}\n\nexport interface TrainingPattern {\n id?: string;\n embedding: number[];\n hiddenStates: number[];\n attention: number[];\n quality: number;\n context: Record<string, any>;\n timestamp?: number;\n}\n\n/**\n * SONA + AgentDB Integrated Trainer\n *\n * - SONA: Sub-millisecond LoRA adaptation (0.45ms)\n * - AgentDB: 125x faster HNSW vector search\n * - Combined: 150x-12,500x performance boost\n */\nexport class SONAAgentDBTrainer extends EventEmitter {\n private sonaEngine: SONAEngine | null = null;\n private db: any = null;\n private config: AgentDBSONAConfig;\n private initialized: boolean = false;\n\n constructor(config: Partial<AgentDBSONAConfig> = {}) {\n super();\n\n this.config = {\n // SONA defaults (from vibecast optimizations)\n hiddenDim: 3072,\n microLoraRank: 2,\n baseLoraRank: 16,\n microLoraLr: 0.002,\n ewcLambda: 2000,\n patternClusters: 100,\n\n // AgentDB defaults\n dbPath: '.sona-agentdb',\n vectorDimensions: 3072,\n enableHNSW: true,\n hnswM: 16,\n hnswEfConstruction: 200,\n\n ...config\n };\n }\n\n /**\n * Initialize SONA + AgentDB\n */\n async initialize(): Promise<void> {\n if (this.initialized) return;\n\n // Initialize SONA engine\n this.sonaEngine = SonaEngine.withConfig({\n hiddenDim: this.config.hiddenDim,\n microLoraRank: this.config.microLoraRank,\n baseLoraRank: this.config.baseLoraRank,\n microLoraLr: this.config.microLoraLr,\n ewcLambda: this.config.ewcLambda,\n patternClusters: this.config.patternClusters,\n enableSimd: true\n });\n\n // Initialize AgentDB with HNSW\n this.db = await agentdb.open({\n path: this.config.dbPath,\n vectorDimensions: this.config.vectorDimensions,\n enableHNSW: this.config.enableHNSW,\n hnswM: this.config.hnswM,\n hnswEfConstruction: this.config.hnswEfConstruction\n });\n\n this.initialized = true;\n this.emit('initialized', { config: this.config });\n }\n\n /**\n * Train with pattern storage in AgentDB\n *\n * Flow:\n * 1. SONA: Record trajectory + LoRA adaptation (0.45ms)\n * 2. AgentDB: Store pattern with HNSW indexing (0.8ms)\n * 3. Total: ~1.25ms per training example\n */\n async train(pattern: TrainingPattern): Promise<string> {\n await this.initialize();\n\n // Validate inputs\n ValidationUtils.validateEmbedding(pattern.embedding);\n ValidationUtils.validateStates(pattern.hiddenStates, pattern.attention);\n ValidationUtils.validateQuality(pattern.quality);\n\n if (!this.sonaEngine) {\n throw new Error('SONA engine not initialized');\n }\n\n // 1. SONA trajectory\n const tid = this.sonaEngine.beginTrajectory(pattern.embedding);\n\n // Add context\n if (pattern.context) {\n for (const [key, value] of Object.entries(pattern.context)) {\n this.sonaEngine.addTrajectoryContext(tid, `${key}:${value}`);\n }\n }\n\n // Add step with hidden states and attention\n this.sonaEngine.addTrajectoryStep(\n tid,\n pattern.hiddenStates,\n pattern.attention,\n pattern.quality\n );\n\n // End trajectory (triggers LoRA update)\n this.sonaEngine.endTrajectory(tid, pattern.quality);\n\n // 2. Store in AgentDB with HNSW indexing\n const patternId = pattern.id || this.generateId();\n\n await this.db.insert({\n id: patternId,\n vector: pattern.embedding,\n metadata: {\n quality: pattern.quality,\n context: pattern.context,\n timestamp: pattern.timestamp || Date.now(),\n trajectoryId: tid\n }\n });\n\n this.emit('pattern:stored', {\n id: patternId,\n quality: pattern.quality,\n latency: '~1.25ms'\n });\n\n return patternId;\n }\n\n /**\n * Query with hybrid SONA + AgentDB retrieval\n *\n * Flow:\n * 1. AgentDB HNSW search: Find k nearest neighbors (125x faster)\n * 2. SONA pattern matching: Refine with learned patterns (761 decisions/sec)\n * 3. SONA adaptation: Apply LoRA to query embedding (0.45ms)\n */\n async query(\n queryEmbedding: number[],\n k: number = 5,\n minQuality: number = 0.5\n ): Promise<{\n patterns: any[];\n adapted: number[];\n latency: {\n hnsw: number;\n sona: number;\n total: number;\n };\n }> {\n await this.initialize();\n\n // Validate inputs\n ValidationUtils.validateEmbedding(queryEmbedding);\n ValidationUtils.validateQuality(minQuality, 'minQuality');\n\n if (k < 1 || k > 1000) {\n throw new Error(`k must be between 1 and 1000, got ${k}`);\n }\n\n if (!this.sonaEngine || !this.db) {\n throw new Error('SONA engine or database not initialized');\n }\n\n const startTime = performance.now();\n\n // 1. AgentDB HNSW search (125x faster than traditional)\n const hnswStart = performance.now();\n const hnswResults = await this.db.search({\n vector: queryEmbedding,\n k: k * 2, // Get extra for quality filtering\n metric: 'cosine'\n });\n const hnswTime = performance.now() - hnswStart;\n\n // 2. SONA pattern matching (761 decisions/sec)\n const sonaStart = performance.now();\n const sonaPatterns = this.sonaEngine.findPatterns(queryEmbedding, k);\n const sonaTime = performance.now() - sonaStart;\n\n // 3. Merge and filter by quality\n const mergedPatterns = this.mergePatterns(hnswResults, sonaPatterns, minQuality);\n\n // 4. Apply SONA adaptation (0.45ms)\n const adapted = this.sonaEngine.applyMicroLora(queryEmbedding);\n const totalTime = performance.now() - startTime;\n\n return {\n patterns: mergedPatterns.slice(0, k),\n adapted,\n latency: {\n hnsw: hnswTime,\n sona: sonaTime,\n total: totalTime\n }\n };\n }\n\n /**\n * Batch train multiple patterns efficiently\n */\n async batchTrain(patterns: TrainingPattern[]): Promise<{\n success: number;\n failed: number;\n avgLatency: number;\n }> {\n await this.initialize();\n\n const startTime = performance.now();\n let success = 0;\n let failed = 0;\n\n for (const pattern of patterns) {\n try {\n await this.train(pattern);\n success++;\n } catch (error) {\n failed++;\n this.emit('train:error', { pattern, error });\n }\n }\n\n const totalTime = performance.now() - startTime;\n const avgLatency = totalTime / patterns.length;\n\n this.emit('batch:complete', {\n total: patterns.length,\n success,\n failed,\n avgLatency\n });\n\n return { success, failed, avgLatency };\n }\n\n /**\n * Get comprehensive statistics\n */\n async getStats(): Promise<{\n sona: SONAStats;\n agentdb: any;\n combined: {\n totalPatterns: number;\n avgQueryLatency: string;\n storageEfficiency: string;\n };\n }> {\n await this.initialize();\n\n if (!this.sonaEngine || !this.db) {\n throw new Error('SONA engine or database not initialized');\n }\n\n const sonaStats = this.sonaEngine.getStats();\n const agentdbStats = await this.db.stats();\n\n return {\n sona: sonaStats,\n agentdb: agentdbStats,\n combined: {\n totalPatterns: agentdbStats.totalVectors || 0,\n avgQueryLatency: '~1.25ms (HNSW + SONA)',\n storageEfficiency: '~3KB per pattern'\n }\n };\n }\n\n /**\n * Force SONA learning cycle\n */\n async forceLearn(): Promise<LearnResult> {\n if (!this.sonaEngine) {\n throw new Error('SONA engine not initialized');\n }\n\n const result = this.sonaEngine.forceLearn();\n this.emit('learn:complete', result);\n return result;\n }\n\n /**\n * Export trained model\n */\n async export(path: string): Promise<void> {\n // Export SONA LoRA weights (future: use HuggingFaceExporter)\n // For now, save configuration and stats\n const stats = await this.getStats();\n\n const fs = await import('fs/promises');\n await fs.writeFile(path, JSON.stringify({\n config: this.config,\n stats,\n exported: new Date().toISOString()\n }, null, 2));\n\n this.emit('export:complete', { path });\n }\n\n /**\n * Close connections\n */\n async close(): Promise<void> {\n // Remove all event listeners to prevent memory leaks\n this.removeAllListeners();\n\n // Close AgentDB connection\n if (this.db) {\n await this.db.close();\n this.db = null;\n }\n\n // Clear SONA engine reference\n this.sonaEngine = null;\n this.initialized = false;\n }\n\n /**\n * Merge HNSW and SONA patterns with quality filtering\n */\n private mergePatterns(\n hnswResults: any[],\n sonaPatterns: any[],\n minQuality: number\n ): any[] {\n const merged = new Map();\n\n // Add HNSW results\n for (const result of hnswResults) {\n if (result.metadata?.quality >= minQuality) {\n merged.set(result.id, {\n ...result,\n source: 'hnsw',\n score: result.distance\n });\n }\n }\n\n // Add SONA patterns\n for (const pattern of sonaPatterns) {\n const id = pattern.id || this.generateId();\n if (pattern.avgQuality >= minQuality) {\n if (merged.has(id)) {\n // Boost score if found in both\n const existing = merged.get(id);\n existing.score = (existing.score + (pattern.similarity || 0)) / 2;\n existing.source = 'hybrid';\n } else {\n merged.set(id, {\n id,\n ...pattern,\n source: 'sona',\n score: pattern.similarity || 0\n });\n }\n }\n }\n\n // Sort by score\n return Array.from(merged.values())\n .sort((a, b) => b.score - a.score);\n }\n\n /**\n * Generate unique ID\n */\n private generateId(): string {\n return `pattern_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;\n }\n}\n\n/**\n * Pre-configured SONA+AgentDB profiles\n */\nexport const SONAAgentDBProfiles = {\n /**\n * Real-time profile: Optimized for <2ms latency\n */\n realtime: (): Partial<AgentDBSONAConfig> => ({\n microLoraRank: 2,\n baseLoraRank: 8,\n patternClusters: 25,\n hnswM: 8,\n hnswEfConstruction: 100\n }),\n\n /**\n * Balanced profile: Good speed + quality\n */\n balanced: (): Partial<AgentDBSONAConfig> => ({\n microLoraRank: 2,\n baseLoraRank: 16,\n patternClusters: 100,\n hnswM: 16,\n hnswEfConstruction: 200\n }),\n\n /**\n * Quality profile: Maximum accuracy\n */\n quality: (): Partial<AgentDBSONAConfig> => ({\n microLoraRank: 2,\n baseLoraRank: 16,\n patternClusters: 200,\n hnswM: 32,\n hnswEfConstruction: 400,\n microLoraLr: 0.002 // Sweet spot for +55% quality\n }),\n\n /**\n * Large-scale profile: Handle millions of patterns\n */\n largescale: (): Partial<AgentDBSONAConfig> => ({\n microLoraRank: 2,\n baseLoraRank: 16,\n patternClusters: 200,\n hnswM: 16,\n hnswEfConstruction: 200,\n vectorDimensions: 3072\n })\n};\n"]}
1
+ {"version":3,"file":"sona-agentdb-integration.js","sourceRoot":"","sources":["../../src/services/sona-agentdb-integration.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * SONA + AgentDB Integration\n *\n * Combines SONA's LoRA fine-tuning with AgentDB's vector search\n * for ultra-fast adaptive learning with pattern matching\n */\n\nimport { EventEmitter } from 'events';\nimport { SonaEngine } from '@ruvector/sona';\nimport { AgentDB } from 'agentdb';\nimport { SONAEngine, SONAStats, LearnResult, ValidationUtils } from './sona-types.js';\n\nexport interface AgentDBSONAConfig {\n // SONA config\n hiddenDim: number;\n microLoraRank: number;\n baseLoraRank: number;\n microLoraLr: number;\n ewcLambda: number;\n patternClusters: number;\n\n // AgentDB config\n dbPath?: string;\n vectorDimensions: number;\n enableHNSW: boolean;\n hnswM?: number;\n hnswEfConstruction?: number;\n}\n\nexport interface TrainingPattern {\n id?: string;\n embedding: number[];\n hiddenStates: number[];\n attention: number[];\n quality: number;\n context: Record<string, any>;\n timestamp?: number;\n}\n\n/**\n * SONA + AgentDB Integrated Trainer\n *\n * - SONA: Sub-millisecond LoRA adaptation (0.45ms)\n * - AgentDB: 125x faster HNSW vector search\n * - Combined: 150x-12,500x performance boost\n */\nexport class SONAAgentDBTrainer extends EventEmitter {\n private sonaEngine: SONAEngine | null = null;\n private db: any = null;\n private config: AgentDBSONAConfig;\n private initialized: boolean = false;\n\n constructor(config: Partial<AgentDBSONAConfig> = {}) {\n super();\n\n this.config = {\n // SONA defaults (from vibecast optimizations)\n hiddenDim: 3072,\n microLoraRank: 2,\n baseLoraRank: 16,\n microLoraLr: 0.002,\n ewcLambda: 2000,\n patternClusters: 100,\n\n // AgentDB defaults\n dbPath: '.sona-agentdb',\n vectorDimensions: 3072,\n enableHNSW: true,\n hnswM: 16,\n hnswEfConstruction: 200,\n\n ...config\n };\n }\n\n /**\n * Initialize SONA + AgentDB\n */\n async initialize(): Promise<void> {\n if (this.initialized) return;\n\n // Initialize SONA engine (cast to SONAEngine interface)\n // Note: SonaEngine returns numeric IDs, SONAEngine interface expects strings\n // The wrapper handles conversion\n this.sonaEngine = SonaEngine.withConfig({\n hiddenDim: this.config.hiddenDim,\n microLoraRank: this.config.microLoraRank,\n baseLoraRank: this.config.baseLoraRank,\n microLoraLr: this.config.microLoraLr,\n ewcLambda: this.config.ewcLambda,\n patternClusters: this.config.patternClusters,\n enableSimd: true\n }) as unknown as SONAEngine;\n\n // Initialize AgentDB with HNSW\n this.db = new AgentDB({\n dbPath: this.config.dbPath,\n vectorDimensions: this.config.vectorDimensions,\n enableHNSW: this.config.enableHNSW,\n hnswM: this.config.hnswM,\n hnswEfConstruction: this.config.hnswEfConstruction\n } as any); // Cast to any for config flexibility\n if (this.db.initialize) {\n await this.db.initialize();\n }\n\n this.initialized = true;\n this.emit('initialized', { config: this.config });\n }\n\n /**\n * Train with pattern storage in AgentDB\n *\n * Flow:\n * 1. SONA: Record trajectory + LoRA adaptation (0.45ms)\n * 2. AgentDB: Store pattern with HNSW indexing (0.8ms)\n * 3. Total: ~1.25ms per training example\n */\n async train(pattern: TrainingPattern): Promise<string> {\n await this.initialize();\n\n // Validate inputs\n ValidationUtils.validateEmbedding(pattern.embedding);\n ValidationUtils.validateStates(pattern.hiddenStates, pattern.attention);\n ValidationUtils.validateQuality(pattern.quality);\n\n if (!this.sonaEngine) {\n throw new Error('SONA engine not initialized');\n }\n\n // 1. SONA trajectory\n const tid = this.sonaEngine.beginTrajectory(pattern.embedding);\n\n // Add context\n if (pattern.context) {\n for (const [key, value] of Object.entries(pattern.context)) {\n this.sonaEngine.addTrajectoryContext(tid, `${key}:${value}`);\n }\n }\n\n // Add step with hidden states and attention\n this.sonaEngine.addTrajectoryStep(\n tid,\n pattern.hiddenStates,\n pattern.attention,\n pattern.quality\n );\n\n // End trajectory (triggers LoRA update)\n this.sonaEngine.endTrajectory(tid, pattern.quality);\n\n // 2. Store in AgentDB with HNSW indexing\n const patternId = pattern.id || this.generateId();\n\n await this.db.insert({\n id: patternId,\n vector: pattern.embedding,\n metadata: {\n quality: pattern.quality,\n context: pattern.context,\n timestamp: pattern.timestamp || Date.now(),\n trajectoryId: tid\n }\n });\n\n this.emit('pattern:stored', {\n id: patternId,\n quality: pattern.quality,\n latency: '~1.25ms'\n });\n\n return patternId;\n }\n\n /**\n * Query with hybrid SONA + AgentDB retrieval\n *\n * Flow:\n * 1. AgentDB HNSW search: Find k nearest neighbors (125x faster)\n * 2. SONA pattern matching: Refine with learned patterns (761 decisions/sec)\n * 3. SONA adaptation: Apply LoRA to query embedding (0.45ms)\n */\n async query(\n queryEmbedding: number[],\n k: number = 5,\n minQuality: number = 0.5\n ): Promise<{\n patterns: any[];\n adapted: number[];\n latency: {\n hnsw: number;\n sona: number;\n total: number;\n };\n }> {\n await this.initialize();\n\n // Validate inputs\n ValidationUtils.validateEmbedding(queryEmbedding);\n ValidationUtils.validateQuality(minQuality, 'minQuality');\n\n if (k < 1 || k > 1000) {\n throw new Error(`k must be between 1 and 1000, got ${k}`);\n }\n\n if (!this.sonaEngine || !this.db) {\n throw new Error('SONA engine or database not initialized');\n }\n\n const startTime = performance.now();\n\n // 1. AgentDB HNSW search (125x faster than traditional)\n const hnswStart = performance.now();\n const hnswResults = await this.db.search({\n vector: queryEmbedding,\n k: k * 2, // Get extra for quality filtering\n metric: 'cosine'\n });\n const hnswTime = performance.now() - hnswStart;\n\n // 2. SONA pattern matching (761 decisions/sec)\n const sonaStart = performance.now();\n const sonaPatterns = this.sonaEngine.findPatterns(queryEmbedding, k);\n const sonaTime = performance.now() - sonaStart;\n\n // 3. Merge and filter by quality\n const mergedPatterns = this.mergePatterns(hnswResults, sonaPatterns, minQuality);\n\n // 4. Apply SONA adaptation (0.45ms)\n const adapted = this.sonaEngine.applyMicroLora(queryEmbedding);\n const totalTime = performance.now() - startTime;\n\n return {\n patterns: mergedPatterns.slice(0, k),\n adapted,\n latency: {\n hnsw: hnswTime,\n sona: sonaTime,\n total: totalTime\n }\n };\n }\n\n /**\n * Batch train multiple patterns efficiently\n */\n async batchTrain(patterns: TrainingPattern[]): Promise<{\n success: number;\n failed: number;\n avgLatency: number;\n }> {\n await this.initialize();\n\n const startTime = performance.now();\n let success = 0;\n let failed = 0;\n\n for (const pattern of patterns) {\n try {\n await this.train(pattern);\n success++;\n } catch (error) {\n failed++;\n this.emit('train:error', { pattern, error });\n }\n }\n\n const totalTime = performance.now() - startTime;\n const avgLatency = totalTime / patterns.length;\n\n this.emit('batch:complete', {\n total: patterns.length,\n success,\n failed,\n avgLatency\n });\n\n return { success, failed, avgLatency };\n }\n\n /**\n * Get comprehensive statistics\n */\n async getStats(): Promise<{\n sona: SONAStats;\n agentdb: any;\n combined: {\n totalPatterns: number;\n avgQueryLatency: string;\n storageEfficiency: string;\n };\n }> {\n await this.initialize();\n\n if (!this.sonaEngine || !this.db) {\n throw new Error('SONA engine or database not initialized');\n }\n\n const sonaStats = this.sonaEngine.getStats();\n const agentdbStats = await this.db.stats();\n\n return {\n sona: sonaStats,\n agentdb: agentdbStats,\n combined: {\n totalPatterns: agentdbStats.totalVectors || 0,\n avgQueryLatency: '~1.25ms (HNSW + SONA)',\n storageEfficiency: '~3KB per pattern'\n }\n };\n }\n\n /**\n * Force SONA learning cycle\n */\n async forceLearn(): Promise<LearnResult> {\n if (!this.sonaEngine) {\n throw new Error('SONA engine not initialized');\n }\n\n const result = this.sonaEngine.forceLearn();\n this.emit('learn:complete', result);\n return result;\n }\n\n /**\n * Export trained model\n */\n async export(path: string): Promise<void> {\n // Export SONA LoRA weights (future: use HuggingFaceExporter)\n // For now, save configuration and stats\n const stats = await this.getStats();\n\n const fs = await import('fs/promises');\n await fs.writeFile(path, JSON.stringify({\n config: this.config,\n stats,\n exported: new Date().toISOString()\n }, null, 2));\n\n this.emit('export:complete', { path });\n }\n\n /**\n * Close connections\n */\n async close(): Promise<void> {\n // Remove all event listeners to prevent memory leaks\n this.removeAllListeners();\n\n // Close AgentDB connection\n if (this.db) {\n await this.db.close();\n this.db = null;\n }\n\n // Clear SONA engine reference\n this.sonaEngine = null;\n this.initialized = false;\n }\n\n /**\n * Merge HNSW and SONA patterns with quality filtering\n */\n private mergePatterns(\n hnswResults: any[],\n sonaPatterns: any[],\n minQuality: number\n ): any[] {\n const merged = new Map();\n\n // Add HNSW results\n for (const result of hnswResults) {\n if (result.metadata?.quality >= minQuality) {\n merged.set(result.id, {\n ...result,\n source: 'hnsw',\n score: result.distance\n });\n }\n }\n\n // Add SONA patterns\n for (const pattern of sonaPatterns) {\n const id = pattern.id || this.generateId();\n if (pattern.avgQuality >= minQuality) {\n if (merged.has(id)) {\n // Boost score if found in both\n const existing = merged.get(id);\n existing.score = (existing.score + (pattern.similarity || 0)) / 2;\n existing.source = 'hybrid';\n } else {\n merged.set(id, {\n id,\n ...pattern,\n source: 'sona',\n score: pattern.similarity || 0\n });\n }\n }\n }\n\n // Sort by score\n return Array.from(merged.values())\n .sort((a, b) => b.score - a.score);\n }\n\n /**\n * Generate unique ID\n */\n private generateId(): string {\n return `pattern_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;\n }\n}\n\n/**\n * Pre-configured SONA+AgentDB profiles\n */\nexport const SONAAgentDBProfiles = {\n /**\n * Real-time profile: Optimized for <2ms latency\n */\n realtime: (): Partial<AgentDBSONAConfig> => ({\n microLoraRank: 2,\n baseLoraRank: 8,\n patternClusters: 25,\n hnswM: 8,\n hnswEfConstruction: 100\n }),\n\n /**\n * Balanced profile: Good speed + quality\n */\n balanced: (): Partial<AgentDBSONAConfig> => ({\n microLoraRank: 2,\n baseLoraRank: 16,\n patternClusters: 100,\n hnswM: 16,\n hnswEfConstruction: 200\n }),\n\n /**\n * Quality profile: Maximum accuracy\n */\n quality: (): Partial<AgentDBSONAConfig> => ({\n microLoraRank: 2,\n baseLoraRank: 16,\n patternClusters: 200,\n hnswM: 32,\n hnswEfConstruction: 400,\n microLoraLr: 0.002 // Sweet spot for +55% quality\n }),\n\n /**\n * Large-scale profile: Handle millions of patterns\n */\n largescale: (): Partial<AgentDBSONAConfig> => ({\n microLoraRank: 2,\n baseLoraRank: 16,\n patternClusters: 200,\n hnswM: 16,\n hnswEfConstruction: 200,\n vectorDimensions: 3072\n })\n};\n"]}
@@ -33,7 +33,7 @@ export interface SONAConfig {
33
33
  enableSimd: boolean;
34
34
  }
35
35
  export interface TrajectoryMetadata {
36
- id: string;
36
+ id: number;
37
37
  embedding: number[];
38
38
  route?: string;
39
39
  contexts: string[];
@@ -72,19 +72,19 @@ export declare class SONAService extends EventEmitter {
72
72
  /**
73
73
  * Begin a new trajectory
74
74
  */
75
- beginTrajectory(embedding: number[], route?: string): string;
75
+ beginTrajectory(embedding: number[], route?: string): number;
76
76
  /**
77
77
  * Add a step to an active trajectory
78
78
  */
79
- addTrajectoryStep(trajectoryId: string, activations: number[], attentionWeights: number[], reward: number): void;
79
+ addTrajectoryStep(trajectoryId: number, activations: number[], attentionWeights: number[], reward: number): void;
80
80
  /**
81
81
  * Add context to a trajectory
82
82
  */
83
- addTrajectoryContext(trajectoryId: string, contextId: string): void;
83
+ addTrajectoryContext(trajectoryId: number, contextId: string): void;
84
84
  /**
85
85
  * End a trajectory with quality score
86
86
  */
87
- endTrajectory(trajectoryId: string, qualityScore: number): void;
87
+ endTrajectory(trajectoryId: number, qualityScore: number): void;
88
88
  /**
89
89
  * Apply Micro-LoRA to input
90
90
  */
@@ -160,7 +160,7 @@ export declare class SONAService extends EventEmitter {
160
160
  /**
161
161
  * Get trajectory metadata
162
162
  */
163
- getTrajectory(trajectoryId: string): TrajectoryMetadata | undefined;
163
+ getTrajectory(trajectoryId: number | string): TrajectoryMetadata | undefined;
164
164
  /**
165
165
  * Get all active trajectories
166
166
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sona-service.d.ts","sourceRoot":"","sources":["../../src/services/sona-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sona-service.d.ts","sourceRoot":"","sources":["../../src/services/sona-service.ts"],"names":[],"mappings":"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"}
@@ -370,7 +370,9 @@ export class SONAService extends EventEmitter {
370
370
  * Get trajectory metadata
371
371
  */
372
372
  getTrajectory(trajectoryId) {
373
- return this.trajectories.get(trajectoryId);
373
+ // Convert string to number if needed for backward compatibility
374
+ const id = typeof trajectoryId === 'string' ? parseInt(trajectoryId, 10) : trajectoryId;
375
+ return this.trajectories.get(id);
374
376
  }
375
377
  /**
376
378
  * Get all active trajectories