agentic-flow 2.0.6 → 2.0.8

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 (316) hide show
  1. package/.claude/settings.json +133 -9
  2. package/.claude/skills/agentic-flow-quickstart/skill.md +69 -0
  3. package/.claude/skills/hooks-automation/skill.md +155 -0
  4. package/.claude/skills/memory-patterns/skill.md +110 -0
  5. package/.claude/skills/sparc-methodology/skill.md +137 -0
  6. package/.claude/skills/swarm-coordination/skill.md +94 -0
  7. package/.claude/skills/worker-benchmarks/skill.md +135 -0
  8. package/.claude/skills/worker-integration/skill.md +154 -0
  9. package/.claude/statusline.mjs +109 -0
  10. package/.claude/statusline.sh +71 -0
  11. package/README.md +1797 -624
  12. package/dist/.tsbuildinfo +1 -1
  13. package/dist/agentdb/index.d.ts +2 -0
  14. package/dist/agentdb/index.d.ts.map +1 -1
  15. package/dist/agentdb/index.js +5 -0
  16. package/dist/agentdb/index.js.map +1 -1
  17. package/dist/agentdb/prerequisites.d.ts +25 -0
  18. package/dist/agentdb/prerequisites.d.ts.map +1 -0
  19. package/dist/agentdb/prerequisites.js +180 -0
  20. package/dist/agentdb/prerequisites.js.map +1 -0
  21. package/dist/benchmarks/embeddings-benchmark.d.ts +38 -0
  22. package/dist/benchmarks/embeddings-benchmark.d.ts.map +1 -0
  23. package/dist/benchmarks/embeddings-benchmark.js +282 -0
  24. package/dist/benchmarks/embeddings-benchmark.js.map +1 -0
  25. package/dist/billing/mcp/tools.js +1 -0
  26. package/dist/billing/mcp/tools.js.map +1 -1
  27. package/dist/cli/commands/embeddings.d.ts +12 -0
  28. package/dist/cli/commands/embeddings.d.ts.map +1 -0
  29. package/dist/cli/commands/embeddings.js +386 -0
  30. package/dist/cli/commands/embeddings.js.map +1 -0
  31. package/dist/cli/commands/hooks.d.ts.map +1 -1
  32. package/dist/cli/commands/hooks.js +79 -4
  33. package/dist/cli/commands/hooks.js.map +1 -1
  34. package/dist/cli/commands/init.d.ts +8 -0
  35. package/dist/cli/commands/init.d.ts.map +1 -0
  36. package/dist/cli/commands/init.js +514 -0
  37. package/dist/cli/commands/init.js.map +1 -0
  38. package/dist/cli/commands/workers.d.ts +9 -0
  39. package/dist/cli/commands/workers.d.ts.map +1 -0
  40. package/dist/cli/commands/workers.js +991 -0
  41. package/dist/cli/commands/workers.js.map +1 -0
  42. package/dist/cli/config-wizard.d.ts.map +1 -1
  43. package/dist/cli/config-wizard.js +47 -25
  44. package/dist/cli/config-wizard.js.map +1 -1
  45. package/dist/cli-proxy.js +89 -1
  46. package/dist/cli-proxy.js.map +1 -1
  47. package/dist/core/agentdb-fast.js +3 -3
  48. package/dist/core/agentdb-fast.js.map +1 -1
  49. package/dist/core/agentdb-wrapper-enhanced.d.ts.map +1 -1
  50. package/dist/core/agentdb-wrapper-enhanced.js +37 -11
  51. package/dist/core/agentdb-wrapper-enhanced.js.map +1 -1
  52. package/dist/core/agentdb-wrapper.d.ts +3 -2
  53. package/dist/core/agentdb-wrapper.d.ts.map +1 -1
  54. package/dist/core/agentdb-wrapper.js +15 -1
  55. package/dist/core/agentdb-wrapper.js.map +1 -1
  56. package/dist/core/attention-native.d.ts +4 -0
  57. package/dist/core/attention-native.d.ts.map +1 -1
  58. package/dist/core/attention-native.js +14 -2
  59. package/dist/core/attention-native.js.map +1 -1
  60. package/dist/core/gnn-wrapper.d.ts.map +1 -1
  61. package/dist/core/gnn-wrapper.js +14 -0
  62. package/dist/core/gnn-wrapper.js.map +1 -1
  63. package/dist/embeddings/index.d.ts +17 -0
  64. package/dist/embeddings/index.d.ts.map +1 -0
  65. package/dist/embeddings/index.js +17 -0
  66. package/dist/embeddings/index.js.map +1 -0
  67. package/dist/embeddings/neural-substrate.d.ts +206 -0
  68. package/dist/embeddings/neural-substrate.d.ts.map +1 -0
  69. package/dist/embeddings/neural-substrate.js +629 -0
  70. package/dist/embeddings/neural-substrate.js.map +1 -0
  71. package/dist/embeddings/optimized-embedder.d.ts +103 -0
  72. package/dist/embeddings/optimized-embedder.d.ts.map +1 -0
  73. package/dist/embeddings/optimized-embedder.js +730 -0
  74. package/dist/embeddings/optimized-embedder.js.map +1 -0
  75. package/dist/examples/embedding-geometry.d.ts +105 -0
  76. package/dist/examples/embedding-geometry.d.ts.map +1 -0
  77. package/dist/examples/embedding-geometry.js +528 -0
  78. package/dist/examples/embedding-geometry.js.map +1 -0
  79. package/dist/federation/SecurityManager.d.ts +11 -2
  80. package/dist/federation/SecurityManager.d.ts.map +1 -1
  81. package/dist/federation/SecurityManager.js +50 -17
  82. package/dist/federation/SecurityManager.js.map +1 -1
  83. package/dist/federation/integrations/supabase-adapter-debug.js +3 -3
  84. package/dist/federation/integrations/supabase-adapter-debug.js.map +1 -1
  85. package/dist/hooks/swarm-learning-optimizer.js +5 -5
  86. package/dist/hooks/swarm-learning-optimizer.js.map +1 -1
  87. package/dist/index.d.ts +5 -3
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js +89 -51
  90. package/dist/index.js.map +1 -1
  91. package/dist/intelligence/IntelligenceStore.d.ts +35 -26
  92. package/dist/intelligence/IntelligenceStore.d.ts.map +1 -1
  93. package/dist/intelligence/IntelligenceStore.js +308 -123
  94. package/dist/intelligence/IntelligenceStore.js.map +1 -1
  95. package/dist/intelligence/RuVectorIntelligence.d.ts +26 -1
  96. package/dist/intelligence/RuVectorIntelligence.d.ts.map +1 -1
  97. package/dist/intelligence/RuVectorIntelligence.js +49 -10
  98. package/dist/intelligence/RuVectorIntelligence.js.map +1 -1
  99. package/dist/intelligence/agent-booster-enhanced.d.ts +1 -0
  100. package/dist/intelligence/agent-booster-enhanced.d.ts.map +1 -1
  101. package/dist/intelligence/agent-booster-enhanced.js +24 -3
  102. package/dist/intelligence/agent-booster-enhanced.js.map +1 -1
  103. package/dist/intelligence/index.d.ts +29 -3
  104. package/dist/intelligence/index.d.ts.map +1 -1
  105. package/dist/intelligence/index.js +13 -3
  106. package/dist/intelligence/index.js.map +1 -1
  107. package/dist/mcp/claudeFlowSdkServer.d.ts.map +1 -1
  108. package/dist/mcp/claudeFlowSdkServer.js +162 -115
  109. package/dist/mcp/claudeFlowSdkServer.js.map +1 -1
  110. package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.js +5 -5
  111. package/dist/mcp/fastmcp/tools/hooks/intelligence-bridge.js.map +1 -1
  112. package/dist/mcp/fastmcp/tools/swarm/init.d.ts.map +1 -1
  113. package/dist/mcp/fastmcp/tools/swarm/init.js +36 -7
  114. package/dist/mcp/fastmcp/tools/swarm/init.js.map +1 -1
  115. package/dist/mcp/fastmcp/tools/swarm/spawn.d.ts.map +1 -1
  116. package/dist/mcp/fastmcp/tools/swarm/spawn.js +47 -8
  117. package/dist/mcp/fastmcp/tools/swarm/spawn.js.map +1 -1
  118. package/dist/mcp/tools/agent-booster-tools.d.ts +15 -1
  119. package/dist/mcp/tools/agent-booster-tools.d.ts.map +1 -1
  120. package/dist/mcp/tools/agent-booster-tools.js +79 -63
  121. package/dist/mcp/tools/agent-booster-tools.js.map +1 -1
  122. package/dist/mcp/tools/sona-tools.d.ts.map +1 -1
  123. package/dist/mcp/tools/sona-tools.js +6 -0
  124. package/dist/mcp/tools/sona-tools.js.map +1 -1
  125. package/dist/memory/SharedMemoryPool.d.ts +103 -0
  126. package/dist/memory/SharedMemoryPool.d.ts.map +1 -0
  127. package/dist/memory/SharedMemoryPool.js +263 -0
  128. package/dist/memory/SharedMemoryPool.js.map +1 -0
  129. package/dist/optimizations/agent-booster-migration.d.ts +2 -1
  130. package/dist/optimizations/agent-booster-migration.d.ts.map +1 -1
  131. package/dist/optimizations/agent-booster-migration.js +69 -45
  132. package/dist/optimizations/agent-booster-migration.js.map +1 -1
  133. package/dist/orchestration/index.d.ts +11 -0
  134. package/dist/orchestration/index.d.ts.map +1 -0
  135. package/dist/orchestration/index.js +10 -0
  136. package/dist/orchestration/index.js.map +1 -0
  137. package/dist/orchestration/memory-plane-types.d.ts +23 -0
  138. package/dist/orchestration/memory-plane-types.d.ts.map +1 -0
  139. package/dist/orchestration/memory-plane-types.js +5 -0
  140. package/dist/orchestration/memory-plane-types.js.map +1 -0
  141. package/dist/orchestration/memory-plane.d.ts +41 -0
  142. package/dist/orchestration/memory-plane.d.ts.map +1 -0
  143. package/dist/orchestration/memory-plane.js +84 -0
  144. package/dist/orchestration/memory-plane.js.map +1 -0
  145. package/dist/orchestration/orchestration-client.d.ts +104 -0
  146. package/dist/orchestration/orchestration-client.d.ts.map +1 -0
  147. package/dist/orchestration/orchestration-client.js +94 -0
  148. package/dist/orchestration/orchestration-client.js.map +1 -0
  149. package/dist/orchestration/orchestration-runtime.d.ts +26 -0
  150. package/dist/orchestration/orchestration-runtime.d.ts.map +1 -0
  151. package/dist/orchestration/orchestration-runtime.js +78 -0
  152. package/dist/orchestration/orchestration-runtime.js.map +1 -0
  153. package/dist/orchestration/orchestration-types.d.ts +124 -0
  154. package/dist/orchestration/orchestration-types.d.ts.map +1 -0
  155. package/dist/orchestration/orchestration-types.js +7 -0
  156. package/dist/orchestration/orchestration-types.js.map +1 -0
  157. package/dist/proxy/anthropic-to-openrouter.js.map +1 -1
  158. package/dist/proxy/anthropic-to-requesty.js.map +1 -1
  159. package/dist/proxy/quic-proxy.d.ts +0 -1
  160. package/dist/proxy/quic-proxy.d.ts.map +1 -1
  161. package/dist/proxy/quic-proxy.js +2 -2
  162. package/dist/proxy/quic-proxy.js.map +1 -1
  163. package/dist/reasoningbank/AdvancedMemory.js +1 -1
  164. package/dist/reasoningbank/AdvancedMemory.js.map +1 -1
  165. package/dist/reasoningbank/HybridBackend.d.ts.map +1 -1
  166. package/dist/reasoningbank/HybridBackend.js +2 -5
  167. package/dist/reasoningbank/HybridBackend.js.map +1 -1
  168. package/dist/reasoningbank/backend-selector.d.ts +10 -0
  169. package/dist/reasoningbank/backend-selector.d.ts.map +1 -1
  170. package/dist/reasoningbank/backend-selector.js +45 -5
  171. package/dist/reasoningbank/backend-selector.js.map +1 -1
  172. package/dist/reasoningbank/core/consolidate.d.ts.map +1 -1
  173. package/dist/reasoningbank/core/consolidate.js +113 -45
  174. package/dist/reasoningbank/core/consolidate.js.map +1 -1
  175. package/dist/reasoningbank/index-new.d.ts +1 -6
  176. package/dist/reasoningbank/index-new.d.ts.map +1 -1
  177. package/dist/reasoningbank/index-new.js +1 -6
  178. package/dist/reasoningbank/index-new.js.map +1 -1
  179. package/dist/reasoningbank/index.d.ts +6 -0
  180. package/dist/reasoningbank/index.d.ts.map +1 -1
  181. package/dist/reasoningbank/index.js +6 -13
  182. package/dist/reasoningbank/index.js.map +1 -1
  183. package/dist/reasoningbank/utils/embeddings.d.ts +1 -0
  184. package/dist/reasoningbank/utils/embeddings.d.ts.map +1 -1
  185. package/dist/reasoningbank/utils/embeddings.js +53 -26
  186. package/dist/reasoningbank/utils/embeddings.js.map +1 -1
  187. package/dist/router/index.d.ts +2 -1
  188. package/dist/router/index.d.ts.map +1 -1
  189. package/dist/router/index.js +1 -0
  190. package/dist/router/index.js.map +1 -1
  191. package/dist/router/providers/ollama.d.ts +20 -0
  192. package/dist/router/providers/ollama.d.ts.map +1 -0
  193. package/dist/router/providers/ollama.js +242 -0
  194. package/dist/router/providers/ollama.js.map +1 -0
  195. package/dist/router/providers/onnx-local-optimized.d.ts +2 -0
  196. package/dist/router/providers/onnx-local-optimized.d.ts.map +1 -1
  197. package/dist/router/providers/onnx-local-optimized.js +10 -0
  198. package/dist/router/providers/onnx-local-optimized.js.map +1 -1
  199. package/dist/router/providers/onnx-local.d.ts +1 -0
  200. package/dist/router/providers/onnx-local.d.ts.map +1 -1
  201. package/dist/router/providers/onnx-local.js +22 -5
  202. package/dist/router/providers/onnx-local.js.map +1 -1
  203. package/dist/router/router.d.ts.map +1 -1
  204. package/dist/router/router.js +39 -23
  205. package/dist/router/router.js.map +1 -1
  206. package/dist/sdk/index.d.ts +2 -1
  207. package/dist/sdk/index.d.ts.map +1 -1
  208. package/dist/sdk/index.js +3 -1
  209. package/dist/sdk/index.js.map +1 -1
  210. package/dist/services/embedding-service.js.map +1 -1
  211. package/dist/services/sona-agent-training.d.ts +1 -0
  212. package/dist/services/sona-agent-training.d.ts.map +1 -1
  213. package/dist/services/sona-agent-training.js.map +1 -1
  214. package/dist/services/sona-agentdb-integration.d.ts.map +1 -1
  215. package/dist/services/sona-agentdb-integration.js +9 -6
  216. package/dist/services/sona-agentdb-integration.js.map +1 -1
  217. package/dist/services/sona-service.d.ts.map +1 -1
  218. package/dist/services/sona-service.js +6 -5
  219. package/dist/services/sona-service.js.map +1 -1
  220. package/dist/utils/cli.d.ts +1 -1
  221. package/dist/utils/cli.d.ts.map +1 -1
  222. package/dist/utils/cli.js +21 -0
  223. package/dist/utils/cli.js.map +1 -1
  224. package/dist/utils/index.d.ts +6 -0
  225. package/dist/utils/index.d.ts.map +1 -0
  226. package/dist/utils/index.js +6 -0
  227. package/dist/utils/index.js.map +1 -0
  228. package/dist/utils/model-cache.d.ts +61 -0
  229. package/dist/utils/model-cache.d.ts.map +1 -0
  230. package/dist/utils/model-cache.js +176 -0
  231. package/dist/utils/model-cache.js.map +1 -0
  232. package/dist/utils/suppress-warnings.d.ts +19 -0
  233. package/dist/utils/suppress-warnings.d.ts.map +1 -0
  234. package/dist/utils/suppress-warnings.js +59 -0
  235. package/dist/utils/suppress-warnings.js.map +1 -0
  236. package/dist/workers/consolidated-phases.d.ts +40 -0
  237. package/dist/workers/consolidated-phases.d.ts.map +1 -0
  238. package/dist/workers/consolidated-phases.js +497 -0
  239. package/dist/workers/consolidated-phases.js.map +1 -0
  240. package/dist/workers/custom-worker-config.d.ts +133 -0
  241. package/dist/workers/custom-worker-config.d.ts.map +1 -0
  242. package/dist/workers/custom-worker-config.js +215 -0
  243. package/dist/workers/custom-worker-config.js.map +1 -0
  244. package/dist/workers/custom-worker-factory.d.ts +89 -0
  245. package/dist/workers/custom-worker-factory.d.ts.map +1 -0
  246. package/dist/workers/custom-worker-factory.js +404 -0
  247. package/dist/workers/custom-worker-factory.js.map +1 -0
  248. package/dist/workers/dispatch-service.d.ts +123 -0
  249. package/dist/workers/dispatch-service.d.ts.map +1 -0
  250. package/dist/workers/dispatch-service.js +1024 -0
  251. package/dist/workers/dispatch-service.js.map +1 -0
  252. package/dist/workers/hooks-integration.d.ts +79 -0
  253. package/dist/workers/hooks-integration.d.ts.map +1 -0
  254. package/dist/workers/hooks-integration.js +286 -0
  255. package/dist/workers/hooks-integration.js.map +1 -0
  256. package/dist/workers/index.d.ts +42 -0
  257. package/dist/workers/index.d.ts.map +1 -0
  258. package/dist/workers/index.js +52 -0
  259. package/dist/workers/index.js.map +1 -0
  260. package/dist/workers/mcp-tools.d.ts +56 -0
  261. package/dist/workers/mcp-tools.d.ts.map +1 -0
  262. package/dist/workers/mcp-tools.js +359 -0
  263. package/dist/workers/mcp-tools.js.map +1 -0
  264. package/dist/workers/phase-executors.d.ts +22 -0
  265. package/dist/workers/phase-executors.d.ts.map +1 -0
  266. package/dist/workers/phase-executors.js +445 -0
  267. package/dist/workers/phase-executors.js.map +1 -0
  268. package/dist/workers/resource-governor.d.ts +75 -0
  269. package/dist/workers/resource-governor.d.ts.map +1 -0
  270. package/dist/workers/resource-governor.js +187 -0
  271. package/dist/workers/resource-governor.js.map +1 -0
  272. package/dist/workers/ruvector-integration.d.ts +163 -0
  273. package/dist/workers/ruvector-integration.d.ts.map +1 -0
  274. package/dist/workers/ruvector-integration.js +543 -0
  275. package/dist/workers/ruvector-integration.js.map +1 -0
  276. package/dist/workers/ruvector-native-integration.d.ts +91 -0
  277. package/dist/workers/ruvector-native-integration.d.ts.map +1 -0
  278. package/dist/workers/ruvector-native-integration.js +254 -0
  279. package/dist/workers/ruvector-native-integration.js.map +1 -0
  280. package/dist/workers/trigger-detector.d.ts +68 -0
  281. package/dist/workers/trigger-detector.d.ts.map +1 -0
  282. package/dist/workers/trigger-detector.js +281 -0
  283. package/dist/workers/trigger-detector.js.map +1 -0
  284. package/dist/workers/types.d.ts +145 -0
  285. package/dist/workers/types.d.ts.map +1 -0
  286. package/dist/workers/types.js +6 -0
  287. package/dist/workers/types.js.map +1 -0
  288. package/dist/workers/worker-agent-integration.d.ts +140 -0
  289. package/dist/workers/worker-agent-integration.d.ts.map +1 -0
  290. package/dist/workers/worker-agent-integration.js +471 -0
  291. package/dist/workers/worker-agent-integration.js.map +1 -0
  292. package/dist/workers/worker-benchmarks.d.ts +88 -0
  293. package/dist/workers/worker-benchmarks.d.ts.map +1 -0
  294. package/dist/workers/worker-benchmarks.js +452 -0
  295. package/dist/workers/worker-benchmarks.js.map +1 -0
  296. package/dist/workers/worker-registry.d.ts +85 -0
  297. package/dist/workers/worker-registry.d.ts.map +1 -0
  298. package/dist/workers/worker-registry.js +547 -0
  299. package/dist/workers/worker-registry.js.map +1 -0
  300. package/docs/embeddings/EMBEDDING_GEOMETRY.md +935 -0
  301. package/package.json +26 -8
  302. package/scripts/postinstall.js +45 -4
  303. package/wasm/reasoningbank/reasoningbank_wasm.js +1 -1
  304. package/wasm/reasoningbank/reasoningbank_wasm_bg.js +54 -54
  305. package/wasm/reasoningbank/reasoningbank_wasm_bg.wasm +0 -0
  306. package/wasm/reasoningbank/reasoningbank_wasm_bg.wasm.d.ts +4 -3
  307. package/.claude/agents/test-neural.md +0 -14
  308. /package/.claude/agents/analysis/{code-review/analyze-code-quality.md → analyze-code-quality.md} +0 -0
  309. /package/.claude/agents/architecture/{system-design/arch-system-design.md → arch-system-design.md} +0 -0
  310. /package/.claude/agents/data/{ml/data-ml-model.md → data-ml-model.md} +0 -0
  311. /package/.claude/agents/development/{backend/dev-backend-api.md → dev-backend-api.md} +0 -0
  312. /package/.claude/agents/devops/{ci-cd/ops-cicd-github.md → ops-cicd-github.md} +0 -0
  313. /package/.claude/agents/documentation/{api-docs/docs-api-openapi.md → docs-api-openapi.md} +0 -0
  314. /package/.claude/agents/specialized/{mobile/spec-mobile-react-native.md → spec-mobile-react-native.md} +0 -0
  315. /package/.claude/agents/testing/{validation/production-validator.md → production-validator.md} +0 -0
  316. /package/.claude/agents/testing/{unit/tdd-london-swarm.md → tdd-london-swarm.md} +0 -0
@@ -23,4 +23,6 @@ export { CausalMemoryGraph } from 'agentdb';
23
23
  export { CausalRecall } from 'agentdb';
24
24
  export { NightlyLearner } from 'agentdb';
25
25
  export { ExplainableRecall } from 'agentdb';
26
+ export { controllerPrerequisites, noArgControllers, getControllerPrerequisite, filterBySafety } from './prerequisites.js';
27
+ export type { ControllerPrerequisite, ControllerRequirement, ControllerSafety } from './prerequisites.js';
26
28
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agentdb/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agentdb/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAM5C,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,yBAAyB,EACzB,cAAc,EACf,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,oBAAoB,CAAC"}
@@ -24,6 +24,11 @@ export { CausalMemoryGraph } from 'agentdb';
24
24
  export { CausalRecall } from 'agentdb';
25
25
  export { NightlyLearner } from 'agentdb';
26
26
  export { ExplainableRecall } from 'agentdb';
27
+ // Controller activation registry (issue #146 Gap 2). Exported as a no-op
28
+ // re-export so it works whether the installed agentdb publishes the registry
29
+ // natively or not — the local `prerequisites.ts` shim below provides a
30
+ // subset for older agentdb versions.
31
+ export { controllerPrerequisites, noArgControllers, getControllerPrerequisite, filterBySafety } from './prerequisites.js';
27
32
  // Note: These are custom types not exported from agentdb v1.3.9
28
33
  // Users should import from agentdb directly if needed
29
34
  // export type { LearningSystem } from 'agentdb/...';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agentdb/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,0FAA0F;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,gEAAgE;AAChE,sDAAsD;AACtD,qDAAqD;AACrD,oDAAoD;AAEpD,sDAAsD;AACtD,8EAA8E","sourcesContent":["/**\n * AgentDB Re-exports for Backwards Compatibility\n *\n * This module provides backwards-compatible exports for code that previously\n * used embedded AgentDB controllers. Now proxies to agentdb npm package.\n *\n * @deprecated Import directly from specific agentdb paths for better tree-shaking\n * @since v1.7.0 - Integrated agentdb as proper dependency\n *\n * Example migration:\n * ```typescript\n * // Old (still works)\n * import { ReflexionMemory } from 'agentic-flow/agentdb';\n *\n * // New (recommended)\n * import { ReflexionMemory } from 'agentdb/controllers/ReflexionMemory';\n * ```\n */\n\n// Import from agentdb package - using direct package imports for bundler moduleResolution\nexport { ReflexionMemory } from 'agentdb';\nexport { SkillLibrary } from 'agentdb';\nexport { EmbeddingService } from 'agentdb';\nexport { CausalMemoryGraph } from 'agentdb';\nexport { CausalRecall } from 'agentdb';\nexport { NightlyLearner } from 'agentdb';\nexport { ExplainableRecall } from 'agentdb';\n\n// Note: These are custom types not exported from agentdb v1.3.9\n// Users should import from agentdb directly if needed\n// export type { LearningSystem } from 'agentdb/...';\n// export type { ReasoningBank } from 'agentdb/...';\n\n// Note: Optimizations not available in agentdb v1.3.9\n// Users can implement custom optimizations or use AgentDB's built-in features\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agentdb/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,0FAA0F;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,yEAAyE;AACzE,6EAA6E;AAC7E,uEAAuE;AACvE,qCAAqC;AACrC,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,yBAAyB,EACzB,cAAc,EACf,MAAM,oBAAoB,CAAC;AAO5B,gEAAgE;AAChE,sDAAsD;AACtD,qDAAqD;AACrD,oDAAoD;AAEpD,sDAAsD;AACtD,8EAA8E","sourcesContent":["/**\n * AgentDB Re-exports for Backwards Compatibility\n *\n * This module provides backwards-compatible exports for code that previously\n * used embedded AgentDB controllers. Now proxies to agentdb npm package.\n *\n * @deprecated Import directly from specific agentdb paths for better tree-shaking\n * @since v1.7.0 - Integrated agentdb as proper dependency\n *\n * Example migration:\n * ```typescript\n * // Old (still works)\n * import { ReflexionMemory } from 'agentic-flow/agentdb';\n *\n * // New (recommended)\n * import { ReflexionMemory } from 'agentdb/controllers/ReflexionMemory';\n * ```\n */\n\n// Import from agentdb package - using direct package imports for bundler moduleResolution\nexport { ReflexionMemory } from 'agentdb';\nexport { SkillLibrary } from 'agentdb';\nexport { EmbeddingService } from 'agentdb';\nexport { CausalMemoryGraph } from 'agentdb';\nexport { CausalRecall } from 'agentdb';\nexport { NightlyLearner } from 'agentdb';\nexport { ExplainableRecall } from 'agentdb';\n\n// Controller activation registry (issue #146 Gap 2). Exported as a no-op\n// re-export so it works whether the installed agentdb publishes the registry\n// natively or not — the local `prerequisites.ts` shim below provides a\n// subset for older agentdb versions.\nexport {\n controllerPrerequisites,\n noArgControllers,\n getControllerPrerequisite,\n filterBySafety\n} from './prerequisites.js';\nexport type {\n ControllerPrerequisite,\n ControllerRequirement,\n ControllerSafety\n} from './prerequisites.js';\n\n// Note: These are custom types not exported from agentdb v1.3.9\n// Users should import from agentdb directly if needed\n// export type { LearningSystem } from 'agentdb/...';\n// export type { ReasoningBank } from 'agentdb/...';\n\n// Note: Optimizations not available in agentdb v1.3.9\n// Users can implement custom optimizations or use AgentDB's built-in features\n"]}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Controller Prerequisites — local shim for `agentic-flow/agentdb`.
3
+ *
4
+ * Mirrors the registry that lives in the upstream `agentdb` package
5
+ * (`agentdb/dist/controllers/prerequisites.js`). Exposing it through the
6
+ * `agentic-flow/agentdb` re-export means consumers (e.g. ruflo) can rely on
7
+ * a single import surface regardless of which agentdb version is installed.
8
+ *
9
+ * Issue #146 Gap 2.
10
+ */
11
+ export type ControllerRequirement = 'database' | 'embedder' | 'vectorBackend' | 'graphBackend' | 'learningBackend' | 'config' | 'wasm' | 'networkEndpoint';
12
+ export type ControllerSafety = 'pure' | 'opens-resource' | 'opens-network';
13
+ export interface ControllerPrerequisite {
14
+ name: string;
15
+ requirements: ControllerRequirement[];
16
+ optional: ControllerRequirement[];
17
+ arity: number;
18
+ safety: ControllerSafety;
19
+ description: string;
20
+ }
21
+ export declare const controllerPrerequisites: readonly ControllerPrerequisite[];
22
+ export declare const noArgControllers: readonly ControllerPrerequisite[];
23
+ export declare function getControllerPrerequisite(name: string): ControllerPrerequisite | null;
24
+ export declare function filterBySafety(safety: readonly ControllerSafety[]): readonly ControllerPrerequisite[];
25
+ //# sourceMappingURL=prerequisites.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prerequisites.d.ts","sourceRoot":"","sources":["../../src/agentdb/prerequisites.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,MAAM,qBAAqB,GAC7B,UAAU,GACV,UAAU,GACV,eAAe,GACf,cAAc,GACd,iBAAiB,GACjB,QAAQ,GACR,MAAM,GACN,iBAAiB,CAAC;AAEtB,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,gBAAgB,GAAG,eAAe,CAAC;AAE3E,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,qBAAqB,EAAE,CAAC;IACtC,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,gBAAgB,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,uBAAuB,EAAE,SAAS,sBAAsB,EAiKnE,CAAC;AAEH,eAAO,MAAM,gBAAgB,EAAE,SAAS,sBAAsB,EAE7D,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI,CAErF;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,gBAAgB,EAAE,GAClC,SAAS,sBAAsB,EAAE,CAEnC"}
@@ -0,0 +1,180 @@
1
+ /**
2
+ * Controller Prerequisites — local shim for `agentic-flow/agentdb`.
3
+ *
4
+ * Mirrors the registry that lives in the upstream `agentdb` package
5
+ * (`agentdb/dist/controllers/prerequisites.js`). Exposing it through the
6
+ * `agentic-flow/agentdb` re-export means consumers (e.g. ruflo) can rely on
7
+ * a single import surface regardless of which agentdb version is installed.
8
+ *
9
+ * Issue #146 Gap 2.
10
+ */
11
+ export const controllerPrerequisites = Object.freeze([
12
+ {
13
+ name: 'AttentionService',
14
+ requirements: ['config'],
15
+ optional: ['wasm'],
16
+ arity: 1,
17
+ safety: 'opens-resource',
18
+ description: 'Self / cross / multi-head attention over embeddings.'
19
+ },
20
+ {
21
+ name: 'CausalMemoryGraph',
22
+ requirements: ['database'],
23
+ optional: ['embedder', 'graphBackend', 'vectorBackend', 'config'],
24
+ arity: 5,
25
+ safety: 'opens-resource',
26
+ description: 'Causal edge graph over memories.'
27
+ },
28
+ {
29
+ name: 'CausalRecall',
30
+ requirements: ['database', 'embedder'],
31
+ optional: ['vectorBackend', 'config'],
32
+ arity: 4,
33
+ safety: 'pure',
34
+ description: 'Causal-uplift reranker.'
35
+ },
36
+ {
37
+ name: 'ContextSynthesizer',
38
+ requirements: ['database'],
39
+ optional: ['embedder', 'config'],
40
+ arity: 3,
41
+ safety: 'pure',
42
+ description: 'Synthesises retrieved memories into context.'
43
+ },
44
+ {
45
+ name: 'EmbeddingService',
46
+ requirements: ['config'],
47
+ optional: [],
48
+ arity: 1,
49
+ safety: 'pure',
50
+ description: 'Text → vector embedder.'
51
+ },
52
+ {
53
+ name: 'EnhancedEmbeddingService',
54
+ requirements: ['config'],
55
+ optional: [],
56
+ arity: 1,
57
+ safety: 'pure',
58
+ description: 'EmbeddingService with caching and provider fallback.'
59
+ },
60
+ {
61
+ name: 'ExplainableRecall',
62
+ requirements: ['database', 'embedder'],
63
+ optional: ['vectorBackend'],
64
+ arity: 3,
65
+ safety: 'pure',
66
+ description: 'Recall with feature attributions.'
67
+ },
68
+ {
69
+ name: 'HNSWIndex',
70
+ requirements: ['database'],
71
+ optional: ['config'],
72
+ arity: 2,
73
+ safety: 'opens-resource',
74
+ description: 'On-disk HNSW vector index.'
75
+ },
76
+ {
77
+ name: 'LearningSystem',
78
+ requirements: ['database', 'embedder'],
79
+ optional: ['vectorBackend', 'config'],
80
+ arity: 4,
81
+ safety: 'pure',
82
+ description: 'Online learning consolidator.'
83
+ },
84
+ {
85
+ name: 'MMRDiversityRanker',
86
+ requirements: [],
87
+ optional: ['config'],
88
+ arity: 1,
89
+ safety: 'pure',
90
+ description: 'MMR diversity reranker.'
91
+ },
92
+ {
93
+ name: 'MemoryController',
94
+ requirements: [],
95
+ optional: ['vectorBackend', 'config'],
96
+ arity: 2,
97
+ safety: 'pure',
98
+ description: 'High-level memory orchestration.'
99
+ },
100
+ {
101
+ name: 'MetadataFilter',
102
+ requirements: [],
103
+ optional: [],
104
+ arity: 0,
105
+ safety: 'pure',
106
+ description: 'Pure utility for metadata predicates.'
107
+ },
108
+ {
109
+ name: 'NightlyLearner',
110
+ requirements: ['database', 'embedder'],
111
+ optional: ['config'],
112
+ arity: 3,
113
+ safety: 'pure',
114
+ description: 'Background consolidation pipeline.'
115
+ },
116
+ {
117
+ name: 'QUICClient',
118
+ requirements: ['config', 'networkEndpoint'],
119
+ optional: [],
120
+ arity: 1,
121
+ safety: 'opens-network',
122
+ description: 'QUIC sync client.'
123
+ },
124
+ {
125
+ name: 'QUICServer',
126
+ requirements: ['config'],
127
+ optional: [],
128
+ arity: 1,
129
+ safety: 'opens-network',
130
+ description: 'QUIC sync server.'
131
+ },
132
+ {
133
+ name: 'ReasoningBank',
134
+ requirements: ['database', 'embedder'],
135
+ optional: ['vectorBackend', 'graphBackend', 'config'],
136
+ arity: 5,
137
+ safety: 'pure',
138
+ description: 'Reasoning memory facade.'
139
+ },
140
+ {
141
+ name: 'ReflexionMemory',
142
+ requirements: ['database', 'embedder'],
143
+ optional: ['vectorBackend', 'learningBackend', 'graphBackend'],
144
+ arity: 5,
145
+ safety: 'pure',
146
+ description: 'Episodic replay memory.'
147
+ },
148
+ {
149
+ name: 'SkillLibrary',
150
+ requirements: ['database', 'embedder'],
151
+ optional: ['vectorBackend', 'graphBackend', 'config'],
152
+ arity: 5,
153
+ safety: 'pure',
154
+ description: 'Reusable skill registry.'
155
+ },
156
+ {
157
+ name: 'SyncCoordinator',
158
+ requirements: ['config'],
159
+ optional: ['networkEndpoint'],
160
+ arity: 1,
161
+ safety: 'opens-network',
162
+ description: 'Multi-peer QUIC sync coordinator.'
163
+ },
164
+ {
165
+ name: 'WASMVectorSearch',
166
+ requirements: ['wasm'],
167
+ optional: ['config'],
168
+ arity: 1,
169
+ safety: 'opens-resource',
170
+ description: 'Pure-WASM vector search index.'
171
+ }
172
+ ]);
173
+ export const noArgControllers = Object.freeze(controllerPrerequisites.filter(c => c.requirements.length === 0));
174
+ export function getControllerPrerequisite(name) {
175
+ return controllerPrerequisites.find(c => c.name === name) ?? null;
176
+ }
177
+ export function filterBySafety(safety) {
178
+ return controllerPrerequisites.filter(c => safety.includes(c.safety));
179
+ }
180
+ //# sourceMappingURL=prerequisites.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prerequisites.js","sourceRoot":"","sources":["../../src/agentdb/prerequisites.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Controller Prerequisites — local shim for `agentic-flow/agentdb`.\n *\n * Mirrors the registry that lives in the upstream `agentdb` package\n * (`agentdb/dist/controllers/prerequisites.js`). Exposing it through the\n * `agentic-flow/agentdb` re-export means consumers (e.g. ruflo) can rely on\n * a single import surface regardless of which agentdb version is installed.\n *\n * Issue #146 Gap 2.\n */\n\nexport type ControllerRequirement =\n | 'database'\n | 'embedder'\n | 'vectorBackend'\n | 'graphBackend'\n | 'learningBackend'\n | 'config'\n | 'wasm'\n | 'networkEndpoint';\n\nexport type ControllerSafety = 'pure' | 'opens-resource' | 'opens-network';\n\nexport interface ControllerPrerequisite {\n name: string;\n requirements: ControllerRequirement[];\n optional: ControllerRequirement[];\n arity: number;\n safety: ControllerSafety;\n description: string;\n}\n\nexport const controllerPrerequisites: readonly ControllerPrerequisite[] = Object.freeze([\n {\n name: 'AttentionService',\n requirements: ['config'],\n optional: ['wasm'],\n arity: 1,\n safety: 'opens-resource',\n description: 'Self / cross / multi-head attention over embeddings.'\n },\n {\n name: 'CausalMemoryGraph',\n requirements: ['database'],\n optional: ['embedder', 'graphBackend', 'vectorBackend', 'config'],\n arity: 5,\n safety: 'opens-resource',\n description: 'Causal edge graph over memories.'\n },\n {\n name: 'CausalRecall',\n requirements: ['database', 'embedder'],\n optional: ['vectorBackend', 'config'],\n arity: 4,\n safety: 'pure',\n description: 'Causal-uplift reranker.'\n },\n {\n name: 'ContextSynthesizer',\n requirements: ['database'],\n optional: ['embedder', 'config'],\n arity: 3,\n safety: 'pure',\n description: 'Synthesises retrieved memories into context.'\n },\n {\n name: 'EmbeddingService',\n requirements: ['config'],\n optional: [],\n arity: 1,\n safety: 'pure',\n description: 'Text → vector embedder.'\n },\n {\n name: 'EnhancedEmbeddingService',\n requirements: ['config'],\n optional: [],\n arity: 1,\n safety: 'pure',\n description: 'EmbeddingService with caching and provider fallback.'\n },\n {\n name: 'ExplainableRecall',\n requirements: ['database', 'embedder'],\n optional: ['vectorBackend'],\n arity: 3,\n safety: 'pure',\n description: 'Recall with feature attributions.'\n },\n {\n name: 'HNSWIndex',\n requirements: ['database'],\n optional: ['config'],\n arity: 2,\n safety: 'opens-resource',\n description: 'On-disk HNSW vector index.'\n },\n {\n name: 'LearningSystem',\n requirements: ['database', 'embedder'],\n optional: ['vectorBackend', 'config'],\n arity: 4,\n safety: 'pure',\n description: 'Online learning consolidator.'\n },\n {\n name: 'MMRDiversityRanker',\n requirements: [],\n optional: ['config'],\n arity: 1,\n safety: 'pure',\n description: 'MMR diversity reranker.'\n },\n {\n name: 'MemoryController',\n requirements: [],\n optional: ['vectorBackend', 'config'],\n arity: 2,\n safety: 'pure',\n description: 'High-level memory orchestration.'\n },\n {\n name: 'MetadataFilter',\n requirements: [],\n optional: [],\n arity: 0,\n safety: 'pure',\n description: 'Pure utility for metadata predicates.'\n },\n {\n name: 'NightlyLearner',\n requirements: ['database', 'embedder'],\n optional: ['config'],\n arity: 3,\n safety: 'pure',\n description: 'Background consolidation pipeline.'\n },\n {\n name: 'QUICClient',\n requirements: ['config', 'networkEndpoint'],\n optional: [],\n arity: 1,\n safety: 'opens-network',\n description: 'QUIC sync client.'\n },\n {\n name: 'QUICServer',\n requirements: ['config'],\n optional: [],\n arity: 1,\n safety: 'opens-network',\n description: 'QUIC sync server.'\n },\n {\n name: 'ReasoningBank',\n requirements: ['database', 'embedder'],\n optional: ['vectorBackend', 'graphBackend', 'config'],\n arity: 5,\n safety: 'pure',\n description: 'Reasoning memory facade.'\n },\n {\n name: 'ReflexionMemory',\n requirements: ['database', 'embedder'],\n optional: ['vectorBackend', 'learningBackend', 'graphBackend'],\n arity: 5,\n safety: 'pure',\n description: 'Episodic replay memory.'\n },\n {\n name: 'SkillLibrary',\n requirements: ['database', 'embedder'],\n optional: ['vectorBackend', 'graphBackend', 'config'],\n arity: 5,\n safety: 'pure',\n description: 'Reusable skill registry.'\n },\n {\n name: 'SyncCoordinator',\n requirements: ['config'],\n optional: ['networkEndpoint'],\n arity: 1,\n safety: 'opens-network',\n description: 'Multi-peer QUIC sync coordinator.'\n },\n {\n name: 'WASMVectorSearch',\n requirements: ['wasm'],\n optional: ['config'],\n arity: 1,\n safety: 'opens-resource',\n description: 'Pure-WASM vector search index.'\n }\n]);\n\nexport const noArgControllers: readonly ControllerPrerequisite[] = Object.freeze(\n controllerPrerequisites.filter(c => c.requirements.length === 0)\n);\n\nexport function getControllerPrerequisite(name: string): ControllerPrerequisite | null {\n return controllerPrerequisites.find(c => c.name === name) ?? null;\n}\n\nexport function filterBySafety(\n safety: readonly ControllerSafety[]\n): readonly ControllerPrerequisite[] {\n return controllerPrerequisites.filter(c => safety.includes(c.safety));\n}\n"]}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Embeddings Performance Benchmark Suite
3
+ *
4
+ * Measures performance of:
5
+ * - O(1) LRU Cache operations
6
+ * - Parallel batch embedding
7
+ * - 8x unrolled cosine similarity
8
+ * - Neural substrate operations
9
+ * - Overall throughput
10
+ */
11
+ interface BenchmarkResult {
12
+ name: string;
13
+ iterations: number;
14
+ totalMs: number;
15
+ avgMs: number;
16
+ opsPerSec: number;
17
+ minMs: number;
18
+ maxMs: number;
19
+ p95Ms: number;
20
+ }
21
+ declare function benchmark(name: string, fn: () => Promise<void> | void, iterations?: number): Promise<BenchmarkResult>;
22
+ declare function runBenchmarks(): Promise<{
23
+ results: BenchmarkResult[];
24
+ memory: {
25
+ heapBefore: number;
26
+ heapAfter: number;
27
+ heapDelta: number;
28
+ gcPauses: number;
29
+ };
30
+ throughput: {
31
+ textsProcessed: number;
32
+ totalTimeMs: number;
33
+ textsPerSecond: number;
34
+ };
35
+ }>;
36
+ export { runBenchmarks, benchmark };
37
+ export type { BenchmarkResult };
38
+ //# sourceMappingURL=embeddings-benchmark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddings-benchmark.d.ts","sourceRoot":"","sources":["../../src/benchmarks/embeddings-benchmark.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAcH,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,iBAAe,SAAS,CACtB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EAC9B,UAAU,GAAE,MAAa,GACxB,OAAO,CAAC,eAAe,CAAC,CA6B1B;AAuOD,iBAAe,aAAa;;;oBAnEd,MAAM;mBACP,MAAM;mBACN,MAAM;kBACP,MAAM;;;wBAqCA,MAAM;qBACT,MAAM;wBACH,MAAM;;GA+GvB;AAKD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;AACpC,YAAY,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,282 @@
1
+ /**
2
+ * Embeddings Performance Benchmark Suite
3
+ *
4
+ * Measures performance of:
5
+ * - O(1) LRU Cache operations
6
+ * - Parallel batch embedding
7
+ * - 8x unrolled cosine similarity
8
+ * - Neural substrate operations
9
+ * - Overall throughput
10
+ */
11
+ import { performance } from 'perf_hooks';
12
+ import { getOptimizedEmbedder, cosineSimilarity, euclideanDistance, normalizeVector } from '../embeddings/optimized-embedder.js';
13
+ async function benchmark(name, fn, iterations = 1000) {
14
+ const times = [];
15
+ // Warmup
16
+ for (let i = 0; i < Math.min(10, iterations / 10); i++) {
17
+ await fn();
18
+ }
19
+ // Actual benchmark
20
+ for (let i = 0; i < iterations; i++) {
21
+ const start = performance.now();
22
+ await fn();
23
+ times.push(performance.now() - start);
24
+ }
25
+ times.sort((a, b) => a - b);
26
+ const totalMs = times.reduce((a, b) => a + b, 0);
27
+ const avgMs = totalMs / iterations;
28
+ return {
29
+ name,
30
+ iterations,
31
+ totalMs,
32
+ avgMs,
33
+ opsPerSec: 1000 / avgMs,
34
+ minMs: times[0],
35
+ maxMs: times[times.length - 1],
36
+ p95Ms: times[Math.floor(iterations * 0.95)]
37
+ };
38
+ }
39
+ function formatResult(result) {
40
+ return [
41
+ ` ${result.name}`,
42
+ ` Iterations: ${result.iterations.toLocaleString()}`,
43
+ ` Total: ${result.totalMs.toFixed(2)}ms`,
44
+ ` Avg: ${result.avgMs.toFixed(4)}ms`,
45
+ ` Ops/sec: ${result.opsPerSec.toFixed(2)}`,
46
+ ` Min: ${result.minMs.toFixed(4)}ms`,
47
+ ` Max: ${result.maxMs.toFixed(4)}ms`,
48
+ ` P95: ${result.p95Ms.toFixed(4)}ms`
49
+ ].join('\n');
50
+ }
51
+ // ============================================================================
52
+ // Vector Operation Benchmarks
53
+ // ============================================================================
54
+ async function benchmarkCosineSimilarity() {
55
+ const dim = 384;
56
+ const a = new Float32Array(dim);
57
+ const b = new Float32Array(dim);
58
+ // Initialize with random values
59
+ for (let i = 0; i < dim; i++) {
60
+ a[i] = Math.random() - 0.5;
61
+ b[i] = Math.random() - 0.5;
62
+ }
63
+ normalizeVector(a);
64
+ normalizeVector(b);
65
+ return benchmark('Cosine Similarity (384d, 8x unrolled)', () => {
66
+ cosineSimilarity(a, b);
67
+ }, 100000);
68
+ }
69
+ async function benchmarkEuclideanDistance() {
70
+ const dim = 384;
71
+ const a = new Float32Array(dim);
72
+ const b = new Float32Array(dim);
73
+ for (let i = 0; i < dim; i++) {
74
+ a[i] = Math.random() - 0.5;
75
+ b[i] = Math.random() - 0.5;
76
+ }
77
+ return benchmark('Euclidean Distance (384d)', () => {
78
+ euclideanDistance(a, b);
79
+ }, 100000);
80
+ }
81
+ async function benchmarkNormalize() {
82
+ const dim = 384;
83
+ const vectors = [];
84
+ // Pre-create vectors
85
+ for (let i = 0; i < 1000; i++) {
86
+ const v = new Float32Array(dim);
87
+ for (let j = 0; j < dim; j++) {
88
+ v[j] = Math.random() - 0.5;
89
+ }
90
+ vectors.push(v);
91
+ }
92
+ let idx = 0;
93
+ return benchmark('Normalize Vector (384d)', () => {
94
+ normalizeVector(vectors[idx++ % 1000]);
95
+ }, 100000);
96
+ }
97
+ // ============================================================================
98
+ // Cache Benchmarks
99
+ // ============================================================================
100
+ async function benchmarkCacheOperations() {
101
+ const embedder = getOptimizedEmbedder();
102
+ await embedder.init();
103
+ const results = [];
104
+ // Pre-populate cache
105
+ const texts = Array.from({ length: 256 }, (_, i) => `cache test text ${i}`);
106
+ for (const text of texts) {
107
+ await embedder.embed(text);
108
+ }
109
+ // Benchmark cache hits
110
+ results.push(await benchmark('Cache Hit (O(1) LRU)', async () => {
111
+ await embedder.embed(texts[Math.floor(Math.random() * 256)]);
112
+ }, 10000));
113
+ // Benchmark cache miss + embedding
114
+ let missIdx = 1000;
115
+ results.push(await benchmark('Cache Miss + Embed', async () => {
116
+ await embedder.embed(`unique text for miss ${missIdx++}`);
117
+ }, 100));
118
+ return results;
119
+ }
120
+ // ============================================================================
121
+ // Batch Embedding Benchmarks
122
+ // ============================================================================
123
+ async function benchmarkBatchEmbedding() {
124
+ const embedder = getOptimizedEmbedder();
125
+ await embedder.init();
126
+ embedder.clearCache();
127
+ const results = [];
128
+ // Small batch
129
+ const smallBatch = Array.from({ length: 10 }, (_, i) => `small batch text ${i}`);
130
+ results.push(await benchmark('Batch Embed (10 texts, parallel)', async () => {
131
+ embedder.clearCache();
132
+ await embedder.embedBatch(smallBatch, 4);
133
+ }, 20));
134
+ // Medium batch
135
+ const mediumBatch = Array.from({ length: 50 }, (_, i) => `medium batch text ${i}`);
136
+ results.push(await benchmark('Batch Embed (50 texts, parallel)', async () => {
137
+ embedder.clearCache();
138
+ await embedder.embedBatch(mediumBatch, 4);
139
+ }, 10));
140
+ // Compare sequential vs parallel (simulated)
141
+ results.push(await benchmark('Batch Embed (10 texts, cached)', async () => {
142
+ await embedder.embedBatch(smallBatch, 4); // Should hit cache
143
+ }, 100));
144
+ return results;
145
+ }
146
+ // ============================================================================
147
+ // Similarity Search Benchmarks
148
+ // ============================================================================
149
+ async function benchmarkSimilaritySearch() {
150
+ const embedder = getOptimizedEmbedder();
151
+ await embedder.init();
152
+ const results = [];
153
+ // Prepare candidates
154
+ const candidates = Array.from({ length: 100 }, (_, i) => `candidate document about topic ${i % 10} with content ${i}`);
155
+ // Pre-embed candidates
156
+ await embedder.embedBatch(candidates, 4);
157
+ results.push(await benchmark('Find Similar (100 candidates, top-5)', async () => {
158
+ await embedder.findSimilar('search query about topic 5', candidates, 5);
159
+ }, 50));
160
+ return results;
161
+ }
162
+ // ============================================================================
163
+ // Memory Pressure Test
164
+ // ============================================================================
165
+ async function benchmarkMemoryPressure() {
166
+ const embedder = getOptimizedEmbedder();
167
+ await embedder.init();
168
+ embedder.clearCache();
169
+ // Force GC if available
170
+ if (global.gc)
171
+ global.gc();
172
+ const heapBefore = process.memoryUsage().heapUsed;
173
+ let gcPauses = 0;
174
+ // Generate 1000 embeddings
175
+ for (let i = 0; i < 1000; i++) {
176
+ await embedder.embed(`memory pressure test text ${i} with some content`);
177
+ // Detect potential GC pauses
178
+ const start = performance.now();
179
+ await new Promise(resolve => setImmediate(resolve));
180
+ if (performance.now() - start > 5)
181
+ gcPauses++;
182
+ }
183
+ const heapAfter = process.memoryUsage().heapUsed;
184
+ return {
185
+ heapBefore,
186
+ heapAfter,
187
+ heapDelta: heapAfter - heapBefore,
188
+ gcPauses
189
+ };
190
+ }
191
+ // ============================================================================
192
+ // Throughput Test
193
+ // ============================================================================
194
+ async function benchmarkThroughput() {
195
+ const embedder = getOptimizedEmbedder();
196
+ await embedder.init();
197
+ embedder.clearCache();
198
+ const texts = Array.from({ length: 100 }, (_, i) => `throughput test document ${i} with varying content length ${i * 10}`);
199
+ const start = performance.now();
200
+ await embedder.embedBatch(texts, 4);
201
+ const totalTimeMs = performance.now() - start;
202
+ return {
203
+ textsProcessed: texts.length,
204
+ totalTimeMs,
205
+ textsPerSecond: (texts.length / totalTimeMs) * 1000
206
+ };
207
+ }
208
+ // ============================================================================
209
+ // Main Benchmark Runner
210
+ // ============================================================================
211
+ async function runBenchmarks() {
212
+ console.log('\n' + '='.repeat(70));
213
+ console.log(' EMBEDDINGS PERFORMANCE BENCHMARK SUITE');
214
+ console.log(' agentic-flow v2.0.1-alpha.50');
215
+ console.log('='.repeat(70) + '\n');
216
+ const allResults = [];
217
+ // Vector Operations
218
+ console.log('šŸ“ Vector Operations\n');
219
+ const cosineSim = await benchmarkCosineSimilarity();
220
+ console.log(formatResult(cosineSim) + '\n');
221
+ allResults.push(cosineSim);
222
+ const euclidean = await benchmarkEuclideanDistance();
223
+ console.log(formatResult(euclidean) + '\n');
224
+ allResults.push(euclidean);
225
+ const normalize = await benchmarkNormalize();
226
+ console.log(formatResult(normalize) + '\n');
227
+ allResults.push(normalize);
228
+ // Cache Operations
229
+ console.log('\nšŸ’¾ Cache Operations (O(1) LRU)\n');
230
+ const cacheResults = await benchmarkCacheOperations();
231
+ for (const result of cacheResults) {
232
+ console.log(formatResult(result) + '\n');
233
+ allResults.push(result);
234
+ }
235
+ // Batch Embedding
236
+ console.log('\n⚔ Batch Embedding (Parallel Processing)\n');
237
+ const batchResults = await benchmarkBatchEmbedding();
238
+ for (const result of batchResults) {
239
+ console.log(formatResult(result) + '\n');
240
+ allResults.push(result);
241
+ }
242
+ // Similarity Search
243
+ console.log('\nšŸ” Similarity Search\n');
244
+ const searchResults = await benchmarkSimilaritySearch();
245
+ for (const result of searchResults) {
246
+ console.log(formatResult(result) + '\n');
247
+ allResults.push(result);
248
+ }
249
+ // Memory Pressure
250
+ console.log('\n🧠 Memory Pressure Test\n');
251
+ const memoryResult = await benchmarkMemoryPressure();
252
+ console.log(` Heap Before: ${(memoryResult.heapBefore / 1024 / 1024).toFixed(2)} MB`);
253
+ console.log(` Heap After: ${(memoryResult.heapAfter / 1024 / 1024).toFixed(2)} MB`);
254
+ console.log(` Heap Delta: ${(memoryResult.heapDelta / 1024 / 1024).toFixed(2)} MB`);
255
+ console.log(` Potential GC Pauses: ${memoryResult.gcPauses}\n`);
256
+ // Throughput
257
+ console.log('\nšŸš€ Throughput Test\n');
258
+ const throughput = await benchmarkThroughput();
259
+ console.log(` Texts Processed: ${throughput.textsProcessed}`);
260
+ console.log(` Total Time: ${throughput.totalTimeMs.toFixed(2)} ms`);
261
+ console.log(` Throughput: ${throughput.textsPerSecond.toFixed(2)} texts/sec\n`);
262
+ // Summary
263
+ console.log('\n' + '='.repeat(70));
264
+ console.log(' BENCHMARK SUMMARY');
265
+ console.log('='.repeat(70) + '\n');
266
+ console.log(' Key Metrics:');
267
+ console.log(` • Cosine Similarity: ${cosineSim.opsPerSec.toFixed(0)} ops/sec`);
268
+ console.log(` • Cache Hit: ${cacheResults[0].opsPerSec.toFixed(0)} ops/sec`);
269
+ console.log(` • Batch Throughput: ${throughput.textsPerSecond.toFixed(1)} texts/sec`);
270
+ console.log(` • Memory Efficiency: ${(memoryResult.heapDelta / 1024).toFixed(1)} KB for 1000 embeds`);
271
+ console.log('\n Performance Characteristics:');
272
+ console.log(' āœ“ O(1) LRU cache operations');
273
+ console.log(' āœ“ 8x loop unrolling with ILP');
274
+ console.log(' āœ“ Parallel batch processing');
275
+ console.log(' āœ“ Pre-allocated tensor buffers');
276
+ console.log(' āœ“ Minimal GC pressure\n');
277
+ return { results: allResults, memory: memoryResult, throughput };
278
+ }
279
+ // Run if executed directly
280
+ runBenchmarks().catch(console.error);
281
+ export { runBenchmarks, benchmark };
282
+ //# sourceMappingURL=embeddings-benchmark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddings-benchmark.js","sourceRoot":"","sources":["../../src/benchmarks/embeddings-benchmark.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Embeddings Performance Benchmark Suite\n *\n * Measures performance of:\n * - O(1) LRU Cache operations\n * - Parallel batch embedding\n * - 8x unrolled cosine similarity\n * - Neural substrate operations\n * - Overall throughput\n */\n\nimport { performance } from 'perf_hooks';\nimport {\n getOptimizedEmbedder,\n cosineSimilarity,\n euclideanDistance,\n normalizeVector\n} from '../embeddings/optimized-embedder.js';\n\n// ============================================================================\n// Benchmark Utilities\n// ============================================================================\n\ninterface BenchmarkResult {\n name: string;\n iterations: number;\n totalMs: number;\n avgMs: number;\n opsPerSec: number;\n minMs: number;\n maxMs: number;\n p95Ms: number;\n}\n\nasync function benchmark(\n name: string,\n fn: () => Promise<void> | void,\n iterations: number = 1000\n): Promise<BenchmarkResult> {\n const times: number[] = [];\n\n // Warmup\n for (let i = 0; i < Math.min(10, iterations / 10); i++) {\n await fn();\n }\n\n // Actual benchmark\n for (let i = 0; i < iterations; i++) {\n const start = performance.now();\n await fn();\n times.push(performance.now() - start);\n }\n\n times.sort((a, b) => a - b);\n const totalMs = times.reduce((a, b) => a + b, 0);\n const avgMs = totalMs / iterations;\n\n return {\n name,\n iterations,\n totalMs,\n avgMs,\n opsPerSec: 1000 / avgMs,\n minMs: times[0],\n maxMs: times[times.length - 1],\n p95Ms: times[Math.floor(iterations * 0.95)]\n };\n}\n\nfunction formatResult(result: BenchmarkResult): string {\n return [\n ` ${result.name}`,\n ` Iterations: ${result.iterations.toLocaleString()}`,\n ` Total: ${result.totalMs.toFixed(2)}ms`,\n ` Avg: ${result.avgMs.toFixed(4)}ms`,\n ` Ops/sec: ${result.opsPerSec.toFixed(2)}`,\n ` Min: ${result.minMs.toFixed(4)}ms`,\n ` Max: ${result.maxMs.toFixed(4)}ms`,\n ` P95: ${result.p95Ms.toFixed(4)}ms`\n ].join('\\n');\n}\n\n// ============================================================================\n// Vector Operation Benchmarks\n// ============================================================================\n\nasync function benchmarkCosineSimilarity(): Promise<BenchmarkResult> {\n const dim = 384;\n const a = new Float32Array(dim);\n const b = new Float32Array(dim);\n\n // Initialize with random values\n for (let i = 0; i < dim; i++) {\n a[i] = Math.random() - 0.5;\n b[i] = Math.random() - 0.5;\n }\n normalizeVector(a);\n normalizeVector(b);\n\n return benchmark('Cosine Similarity (384d, 8x unrolled)', () => {\n cosineSimilarity(a, b);\n }, 100000);\n}\n\nasync function benchmarkEuclideanDistance(): Promise<BenchmarkResult> {\n const dim = 384;\n const a = new Float32Array(dim);\n const b = new Float32Array(dim);\n\n for (let i = 0; i < dim; i++) {\n a[i] = Math.random() - 0.5;\n b[i] = Math.random() - 0.5;\n }\n\n return benchmark('Euclidean Distance (384d)', () => {\n euclideanDistance(a, b);\n }, 100000);\n}\n\nasync function benchmarkNormalize(): Promise<BenchmarkResult> {\n const dim = 384;\n const vectors: Float32Array[] = [];\n\n // Pre-create vectors\n for (let i = 0; i < 1000; i++) {\n const v = new Float32Array(dim);\n for (let j = 0; j < dim; j++) {\n v[j] = Math.random() - 0.5;\n }\n vectors.push(v);\n }\n\n let idx = 0;\n return benchmark('Normalize Vector (384d)', () => {\n normalizeVector(vectors[idx++ % 1000]);\n }, 100000);\n}\n\n// ============================================================================\n// Cache Benchmarks\n// ============================================================================\n\nasync function benchmarkCacheOperations(): Promise<BenchmarkResult[]> {\n const embedder = getOptimizedEmbedder();\n await embedder.init();\n\n const results: BenchmarkResult[] = [];\n\n // Pre-populate cache\n const texts = Array.from({ length: 256 }, (_, i) => `cache test text ${i}`);\n for (const text of texts) {\n await embedder.embed(text);\n }\n\n // Benchmark cache hits\n results.push(await benchmark('Cache Hit (O(1) LRU)', async () => {\n await embedder.embed(texts[Math.floor(Math.random() * 256)]);\n }, 10000));\n\n // Benchmark cache miss + embedding\n let missIdx = 1000;\n results.push(await benchmark('Cache Miss + Embed', async () => {\n await embedder.embed(`unique text for miss ${missIdx++}`);\n }, 100));\n\n return results;\n}\n\n// ============================================================================\n// Batch Embedding Benchmarks\n// ============================================================================\n\nasync function benchmarkBatchEmbedding(): Promise<BenchmarkResult[]> {\n const embedder = getOptimizedEmbedder();\n await embedder.init();\n embedder.clearCache();\n\n const results: BenchmarkResult[] = [];\n\n // Small batch\n const smallBatch = Array.from({ length: 10 }, (_, i) => `small batch text ${i}`);\n results.push(await benchmark('Batch Embed (10 texts, parallel)', async () => {\n embedder.clearCache();\n await embedder.embedBatch(smallBatch, 4);\n }, 20));\n\n // Medium batch\n const mediumBatch = Array.from({ length: 50 }, (_, i) => `medium batch text ${i}`);\n results.push(await benchmark('Batch Embed (50 texts, parallel)', async () => {\n embedder.clearCache();\n await embedder.embedBatch(mediumBatch, 4);\n }, 10));\n\n // Compare sequential vs parallel (simulated)\n results.push(await benchmark('Batch Embed (10 texts, cached)', async () => {\n await embedder.embedBatch(smallBatch, 4); // Should hit cache\n }, 100));\n\n return results;\n}\n\n// ============================================================================\n// Similarity Search Benchmarks\n// ============================================================================\n\nasync function benchmarkSimilaritySearch(): Promise<BenchmarkResult[]> {\n const embedder = getOptimizedEmbedder();\n await embedder.init();\n\n const results: BenchmarkResult[] = [];\n\n // Prepare candidates\n const candidates = Array.from({ length: 100 }, (_, i) =>\n `candidate document about topic ${i % 10} with content ${i}`\n );\n\n // Pre-embed candidates\n await embedder.embedBatch(candidates, 4);\n\n results.push(await benchmark('Find Similar (100 candidates, top-5)', async () => {\n await embedder.findSimilar('search query about topic 5', candidates, 5);\n }, 50));\n\n return results;\n}\n\n// ============================================================================\n// Memory Pressure Test\n// ============================================================================\n\nasync function benchmarkMemoryPressure(): Promise<{\n heapBefore: number;\n heapAfter: number;\n heapDelta: number;\n gcPauses: number;\n}> {\n const embedder = getOptimizedEmbedder();\n await embedder.init();\n embedder.clearCache();\n\n // Force GC if available\n if (global.gc) global.gc();\n\n const heapBefore = process.memoryUsage().heapUsed;\n let gcPauses = 0;\n\n // Generate 1000 embeddings\n for (let i = 0; i < 1000; i++) {\n await embedder.embed(`memory pressure test text ${i} with some content`);\n\n // Detect potential GC pauses\n const start = performance.now();\n await new Promise(resolve => setImmediate(resolve));\n if (performance.now() - start > 5) gcPauses++;\n }\n\n const heapAfter = process.memoryUsage().heapUsed;\n\n return {\n heapBefore,\n heapAfter,\n heapDelta: heapAfter - heapBefore,\n gcPauses\n };\n}\n\n// ============================================================================\n// Throughput Test\n// ============================================================================\n\nasync function benchmarkThroughput(): Promise<{\n textsProcessed: number;\n totalTimeMs: number;\n textsPerSecond: number;\n}> {\n const embedder = getOptimizedEmbedder();\n await embedder.init();\n embedder.clearCache();\n\n const texts = Array.from({ length: 100 }, (_, i) =>\n `throughput test document ${i} with varying content length ${i * 10}`\n );\n\n const start = performance.now();\n await embedder.embedBatch(texts, 4);\n const totalTimeMs = performance.now() - start;\n\n return {\n textsProcessed: texts.length,\n totalTimeMs,\n textsPerSecond: (texts.length / totalTimeMs) * 1000\n };\n}\n\n// ============================================================================\n// Main Benchmark Runner\n// ============================================================================\n\nasync function runBenchmarks() {\n console.log('\\n' + '='.repeat(70));\n console.log(' EMBEDDINGS PERFORMANCE BENCHMARK SUITE');\n console.log(' agentic-flow v2.0.1-alpha.50');\n console.log('='.repeat(70) + '\\n');\n\n const allResults: BenchmarkResult[] = [];\n\n // Vector Operations\n console.log('šŸ“ Vector Operations\\n');\n\n const cosineSim = await benchmarkCosineSimilarity();\n console.log(formatResult(cosineSim) + '\\n');\n allResults.push(cosineSim);\n\n const euclidean = await benchmarkEuclideanDistance();\n console.log(formatResult(euclidean) + '\\n');\n allResults.push(euclidean);\n\n const normalize = await benchmarkNormalize();\n console.log(formatResult(normalize) + '\\n');\n allResults.push(normalize);\n\n // Cache Operations\n console.log('\\nšŸ’¾ Cache Operations (O(1) LRU)\\n');\n\n const cacheResults = await benchmarkCacheOperations();\n for (const result of cacheResults) {\n console.log(formatResult(result) + '\\n');\n allResults.push(result);\n }\n\n // Batch Embedding\n console.log('\\n⚔ Batch Embedding (Parallel Processing)\\n');\n\n const batchResults = await benchmarkBatchEmbedding();\n for (const result of batchResults) {\n console.log(formatResult(result) + '\\n');\n allResults.push(result);\n }\n\n // Similarity Search\n console.log('\\nšŸ” Similarity Search\\n');\n\n const searchResults = await benchmarkSimilaritySearch();\n for (const result of searchResults) {\n console.log(formatResult(result) + '\\n');\n allResults.push(result);\n }\n\n // Memory Pressure\n console.log('\\n🧠 Memory Pressure Test\\n');\n\n const memoryResult = await benchmarkMemoryPressure();\n console.log(` Heap Before: ${(memoryResult.heapBefore / 1024 / 1024).toFixed(2)} MB`);\n console.log(` Heap After: ${(memoryResult.heapAfter / 1024 / 1024).toFixed(2)} MB`);\n console.log(` Heap Delta: ${(memoryResult.heapDelta / 1024 / 1024).toFixed(2)} MB`);\n console.log(` Potential GC Pauses: ${memoryResult.gcPauses}\\n`);\n\n // Throughput\n console.log('\\nšŸš€ Throughput Test\\n');\n\n const throughput = await benchmarkThroughput();\n console.log(` Texts Processed: ${throughput.textsProcessed}`);\n console.log(` Total Time: ${throughput.totalTimeMs.toFixed(2)} ms`);\n console.log(` Throughput: ${throughput.textsPerSecond.toFixed(2)} texts/sec\\n`);\n\n // Summary\n console.log('\\n' + '='.repeat(70));\n console.log(' BENCHMARK SUMMARY');\n console.log('='.repeat(70) + '\\n');\n\n console.log(' Key Metrics:');\n console.log(` • Cosine Similarity: ${cosineSim.opsPerSec.toFixed(0)} ops/sec`);\n console.log(` • Cache Hit: ${cacheResults[0].opsPerSec.toFixed(0)} ops/sec`);\n console.log(` • Batch Throughput: ${throughput.textsPerSecond.toFixed(1)} texts/sec`);\n console.log(` • Memory Efficiency: ${(memoryResult.heapDelta / 1024).toFixed(1)} KB for 1000 embeds`);\n\n console.log('\\n Performance Characteristics:');\n console.log(' āœ“ O(1) LRU cache operations');\n console.log(' āœ“ 8x loop unrolling with ILP');\n console.log(' āœ“ Parallel batch processing');\n console.log(' āœ“ Pre-allocated tensor buffers');\n console.log(' āœ“ Minimal GC pressure\\n');\n\n return { results: allResults, memory: memoryResult, throughput };\n}\n\n// Run if executed directly\nrunBenchmarks().catch(console.error);\n\nexport { runBenchmarks, benchmark };\nexport type { BenchmarkResult };\n"]}