kynjal-cli 4.0.0 → 4.0.1

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 (502) hide show
  1. package/dist/src/appliance/gguf-engine.d.ts +91 -0
  2. package/dist/src/appliance/gguf-engine.d.ts.map +1 -0
  3. package/dist/src/appliance/gguf-engine.js +286 -525
  4. package/dist/src/appliance/gguf-engine.js.map +1 -1
  5. package/dist/src/appliance/ruvllm-bridge.d.ts +102 -0
  6. package/dist/src/appliance/ruvllm-bridge.d.ts.map +1 -0
  7. package/dist/src/appliance/ruvllm-bridge.js +203 -403
  8. package/dist/src/appliance/ruvllm-bridge.js.map +1 -1
  9. package/dist/src/appliance/rvfa-builder.d.ts +44 -0
  10. package/dist/src/appliance/rvfa-builder.d.ts.map +1 -0
  11. package/dist/src/appliance/rvfa-builder.js +154 -208
  12. package/dist/src/appliance/rvfa-builder.js.map +1 -1
  13. package/dist/src/appliance/rvfa-distribution.d.ts +97 -0
  14. package/dist/src/appliance/rvfa-distribution.d.ts.map +1 -0
  15. package/dist/src/appliance/rvfa-distribution.js +260 -423
  16. package/dist/src/appliance/rvfa-distribution.js.map +1 -1
  17. package/dist/src/appliance/rvfa-format.d.ts +111 -0
  18. package/dist/src/appliance/rvfa-format.d.ts.map +1 -0
  19. package/dist/src/appliance/rvfa-format.js +128 -200
  20. package/dist/src/appliance/rvfa-format.js.map +1 -1
  21. package/dist/src/appliance/rvfa-runner.d.ts +69 -0
  22. package/dist/src/appliance/rvfa-runner.d.ts.map +1 -0
  23. package/dist/src/appliance/rvfa-runner.js +168 -304
  24. package/dist/src/appliance/rvfa-runner.js.map +1 -1
  25. package/dist/src/appliance/rvfa-signing.d.ts +123 -0
  26. package/dist/src/appliance/rvfa-signing.d.ts.map +1 -0
  27. package/dist/src/appliance/rvfa-signing.js +173 -295
  28. package/dist/src/appliance/rvfa-signing.js.map +1 -1
  29. package/dist/src/benchmarks/pretrain/index.d.ts +58 -0
  30. package/dist/src/benchmarks/pretrain/index.d.ts.map +1 -0
  31. package/dist/src/benchmarks/pretrain/index.js +331 -542
  32. package/dist/src/benchmarks/pretrain/index.js.map +1 -1
  33. package/dist/src/commands/agent.js +574 -697
  34. package/dist/src/commands/agent.js.map +1 -1
  35. package/dist/src/commands/analyze.js +1218 -1548
  36. package/dist/src/commands/analyze.js.map +1 -1
  37. package/dist/src/commands/appliance-advanced.js +158 -267
  38. package/dist/src/commands/appliance-advanced.js.map +1 -1
  39. package/dist/src/commands/appliance.js +318 -493
  40. package/dist/src/commands/appliance.js.map +1 -1
  41. package/dist/src/commands/benchmark.js +372 -523
  42. package/dist/src/commands/benchmark.js.map +1 -1
  43. package/dist/src/commands/claims.js +274 -364
  44. package/dist/src/commands/claims.js.map +1 -1
  45. package/dist/src/commands/cleanup.js +113 -157
  46. package/dist/src/commands/cleanup.js.map +1 -1
  47. package/dist/src/commands/completions.js +477 -118
  48. package/dist/src/commands/completions.js.map +1 -1
  49. package/dist/src/commands/config.js +237 -303
  50. package/dist/src/commands/config.js.map +1 -1
  51. package/dist/src/commands/daemon.js +487 -596
  52. package/dist/src/commands/daemon.js.map +1 -1
  53. package/dist/src/commands/deployment.js +194 -275
  54. package/dist/src/commands/deployment.js.map +1 -1
  55. package/dist/src/commands/doctor.js +504 -686
  56. package/dist/src/commands/doctor.js.map +1 -1
  57. package/dist/src/commands/embeddings.js +1293 -1543
  58. package/dist/src/commands/embeddings.js.map +1 -1
  59. package/dist/src/commands/guidance.js +449 -596
  60. package/dist/src/commands/guidance.js.map +1 -1
  61. package/dist/src/commands/hive-mind.js +854 -938
  62. package/dist/src/commands/hive-mind.js.map +1 -1
  63. package/dist/src/commands/hooks.js +3112 -3519
  64. package/dist/src/commands/hooks.js.map +1 -1
  65. package/dist/src/commands/index.d.ts +115 -0
  66. package/dist/src/commands/index.d.ts.map +1 -0
  67. package/dist/src/commands/index.js +126 -308
  68. package/dist/src/commands/index.js.map +1 -1
  69. package/dist/src/commands/init.js +788 -940
  70. package/dist/src/commands/init.js.map +1 -1
  71. package/dist/src/commands/issues.js +383 -558
  72. package/dist/src/commands/issues.js.map +1 -1
  73. package/dist/src/commands/mcp.js +493 -605
  74. package/dist/src/commands/mcp.js.map +1 -1
  75. package/dist/src/commands/memory.js +833 -1026
  76. package/dist/src/commands/memory.js.map +1 -1
  77. package/dist/src/commands/migrate.js +282 -347
  78. package/dist/src/commands/migrate.js.map +1 -1
  79. package/dist/src/commands/neural.js +1289 -1563
  80. package/dist/src/commands/neural.js.map +1 -1
  81. package/dist/src/commands/performance.js +497 -643
  82. package/dist/src/commands/performance.js.map +1 -1
  83. package/dist/src/commands/plugins.js +668 -841
  84. package/dist/src/commands/plugins.js.map +1 -1
  85. package/dist/src/commands/process.js +392 -447
  86. package/dist/src/commands/process.js.map +1 -1
  87. package/dist/src/commands/progress.js +162 -256
  88. package/dist/src/commands/progress.js.map +1 -1
  89. package/dist/src/commands/providers.js +150 -220
  90. package/dist/src/commands/providers.js.map +1 -1
  91. package/dist/src/commands/route.js +520 -665
  92. package/dist/src/commands/route.js.map +1 -1
  93. package/dist/src/commands/ruvector/backup.js +505 -651
  94. package/dist/src/commands/ruvector/backup.js.map +1 -1
  95. package/dist/src/commands/ruvector/benchmark.js +349 -401
  96. package/dist/src/commands/ruvector/benchmark.js.map +1 -1
  97. package/dist/src/commands/ruvector/import.js +224 -266
  98. package/dist/src/commands/ruvector/import.js.map +1 -1
  99. package/dist/src/commands/ruvector/index.js +37 -75
  100. package/dist/src/commands/ruvector/index.js.map +1 -1
  101. package/dist/src/commands/ruvector/init.js +336 -359
  102. package/dist/src/commands/ruvector/init.js.map +1 -1
  103. package/dist/src/commands/ruvector/migrate.js +335 -322
  104. package/dist/src/commands/ruvector/migrate.js.map +1 -1
  105. package/dist/src/commands/ruvector/optimize.js +375 -431
  106. package/dist/src/commands/ruvector/optimize.js.map +1 -1
  107. package/dist/src/commands/ruvector/setup.js +703 -117
  108. package/dist/src/commands/ruvector/setup.js.map +1 -1
  109. package/dist/src/commands/ruvector/status.js +364 -419
  110. package/dist/src/commands/ruvector/status.js.map +1 -1
  111. package/dist/src/commands/security.js +485 -608
  112. package/dist/src/commands/security.js.map +1 -1
  113. package/dist/src/commands/session.js +504 -626
  114. package/dist/src/commands/session.js.map +1 -1
  115. package/dist/src/commands/start.js +267 -364
  116. package/dist/src/commands/start.js.map +1 -1
  117. package/dist/src/commands/status.js +380 -486
  118. package/dist/src/commands/status.js.map +1 -1
  119. package/dist/src/commands/swarm.js +408 -488
  120. package/dist/src/commands/swarm.js.map +1 -1
  121. package/dist/src/commands/task.js +423 -538
  122. package/dist/src/commands/task.js.map +1 -1
  123. package/dist/src/commands/transfer-store.js +322 -412
  124. package/dist/src/commands/transfer-store.js.map +1 -1
  125. package/dist/src/commands/update.js +196 -291
  126. package/dist/src/commands/update.js.map +1 -1
  127. package/dist/src/commands/workflow.js +386 -486
  128. package/dist/src/commands/workflow.js.map +1 -1
  129. package/dist/src/config-adapter.d.ts +15 -0
  130. package/dist/src/config-adapter.d.ts.map +1 -0
  131. package/dist/src/config-adapter.js +38 -39
  132. package/dist/src/config-adapter.js.map +1 -1
  133. package/dist/src/index.d.ts +77 -0
  134. package/dist/src/index.d.ts.map +1 -0
  135. package/dist/src/index.js +309 -411
  136. package/dist/src/index.js.map +1 -1
  137. package/dist/src/infrastructure/in-memory-repositories.d.ts +68 -0
  138. package/dist/src/infrastructure/in-memory-repositories.d.ts.map +1 -0
  139. package/dist/src/infrastructure/in-memory-repositories.js +246 -507
  140. package/dist/src/infrastructure/in-memory-repositories.js.map +1 -1
  141. package/dist/src/init/claudemd-generator.d.ts +25 -0
  142. package/dist/src/init/claudemd-generator.d.ts.map +1 -0
  143. package/dist/src/init/claudemd-generator.js +368 -78
  144. package/dist/src/init/claudemd-generator.js.map +1 -1
  145. package/dist/src/init/executor.d.ts +41 -0
  146. package/dist/src/init/executor.d.ts.map +1 -0
  147. package/dist/src/init/executor.js +1307 -996
  148. package/dist/src/init/executor.js.map +1 -1
  149. package/dist/src/init/helpers-generator.d.ts +60 -0
  150. package/dist/src/init/helpers-generator.d.ts.map +1 -0
  151. package/dist/src/init/helpers-generator.js +657 -12
  152. package/dist/src/init/helpers-generator.js.map +1 -1
  153. package/dist/src/init/index.d.ts +1 -1
  154. package/dist/src/init/index.d.ts.map +1 -1
  155. package/dist/src/init/index.js +1 -1
  156. package/dist/src/init/index.js.map +1 -1
  157. package/dist/src/init/mcp-generator.js +33 -37
  158. package/dist/src/init/mcp-generator.js.map +1 -1
  159. package/dist/src/init/settings-generator.js +76 -77
  160. package/dist/src/init/settings-generator.js.map +1 -1
  161. package/dist/src/init/statusline-generator.js +801 -3
  162. package/dist/src/init/statusline-generator.js.map +1 -1
  163. package/dist/src/init/types.d.ts +1 -1
  164. package/dist/src/init/types.d.ts.map +1 -1
  165. package/dist/src/init/types.js +76 -59
  166. package/dist/src/init/types.js.map +1 -1
  167. package/dist/src/mcp-client.d.ts +92 -0
  168. package/dist/src/mcp-client.d.ts.map +1 -0
  169. package/dist/src/mcp-client.js +81 -125
  170. package/dist/src/mcp-client.js.map +1 -1
  171. package/dist/src/mcp-server.d.ts +161 -0
  172. package/dist/src/mcp-server.d.ts.map +1 -0
  173. package/dist/src/mcp-server.js +470 -757
  174. package/dist/src/mcp-server.js.map +1 -1
  175. package/dist/src/mcp-tools/agent-tools.js +391 -492
  176. package/dist/src/mcp-tools/agent-tools.js.map +1 -1
  177. package/dist/src/mcp-tools/agentdb-tools.js +332 -533
  178. package/dist/src/mcp-tools/agentdb-tools.js.map +1 -1
  179. package/dist/src/mcp-tools/analyze-tools.js +172 -236
  180. package/dist/src/mcp-tools/analyze-tools.js.map +1 -1
  181. package/dist/src/mcp-tools/auto-install.d.ts +83 -0
  182. package/dist/src/mcp-tools/auto-install.d.ts.map +1 -0
  183. package/dist/src/mcp-tools/auto-install.js +80 -142
  184. package/dist/src/mcp-tools/auto-install.js.map +1 -1
  185. package/dist/src/mcp-tools/browser-tools.js +252 -375
  186. package/dist/src/mcp-tools/browser-tools.js.map +1 -1
  187. package/dist/src/mcp-tools/claims-tools.js +473 -565
  188. package/dist/src/mcp-tools/claims-tools.js.map +1 -1
  189. package/dist/src/mcp-tools/config-tools.js +197 -272
  190. package/dist/src/mcp-tools/config-tools.js.map +1 -1
  191. package/dist/src/mcp-tools/coordination-tools.js +500 -572
  192. package/dist/src/mcp-tools/coordination-tools.js.map +1 -1
  193. package/dist/src/mcp-tools/daa-tools.js +286 -364
  194. package/dist/src/mcp-tools/daa-tools.js.map +1 -1
  195. package/dist/src/mcp-tools/embeddings-tools.js +582 -693
  196. package/dist/src/mcp-tools/embeddings-tools.js.map +1 -1
  197. package/dist/src/mcp-tools/github-tools.js +260 -311
  198. package/dist/src/mcp-tools/github-tools.js.map +1 -1
  199. package/dist/src/mcp-tools/hive-mind-tools.js +573 -640
  200. package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -1
  201. package/dist/src/mcp-tools/hooks-tools.js +2215 -2648
  202. package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
  203. package/dist/src/mcp-tools/memory-tools.js +350 -505
  204. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  205. package/dist/src/mcp-tools/neural-tools.js +315 -412
  206. package/dist/src/mcp-tools/neural-tools.js.map +1 -1
  207. package/dist/src/mcp-tools/performance-tools.js +420 -480
  208. package/dist/src/mcp-tools/performance-tools.js.map +1 -1
  209. package/dist/src/mcp-tools/progress-tools.js +204 -278
  210. package/dist/src/mcp-tools/progress-tools.js.map +1 -1
  211. package/dist/src/mcp-tools/ruvllm-tools.js +163 -279
  212. package/dist/src/mcp-tools/ruvllm-tools.js.map +1 -1
  213. package/dist/src/mcp-tools/security-tools.js +297 -429
  214. package/dist/src/mcp-tools/security-tools.js.map +1 -1
  215. package/dist/src/mcp-tools/session-tools.js +185 -234
  216. package/dist/src/mcp-tools/session-tools.js.map +1 -1
  217. package/dist/src/mcp-tools/swarm-tools.js +207 -260
  218. package/dist/src/mcp-tools/swarm-tools.js.map +1 -1
  219. package/dist/src/mcp-tools/system-tools.js +276 -325
  220. package/dist/src/mcp-tools/system-tools.js.map +1 -1
  221. package/dist/src/mcp-tools/task-tools.js +270 -336
  222. package/dist/src/mcp-tools/task-tools.js.map +1 -1
  223. package/dist/src/mcp-tools/terminal-tools.js +148 -196
  224. package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
  225. package/dist/src/mcp-tools/transfer-tools.js +186 -333
  226. package/dist/src/mcp-tools/transfer-tools.js.map +1 -1
  227. package/dist/src/mcp-tools/types.d.ts +31 -0
  228. package/dist/src/mcp-tools/types.d.ts.map +1 -0
  229. package/dist/src/mcp-tools/wasm-agent-tools.js +133 -280
  230. package/dist/src/mcp-tools/wasm-agent-tools.js.map +1 -1
  231. package/dist/src/mcp-tools/workflow-tools.js +405 -450
  232. package/dist/src/mcp-tools/workflow-tools.js.map +1 -1
  233. package/dist/src/memory/ewc-consolidation.d.ts +295 -0
  234. package/dist/src/memory/ewc-consolidation.d.ts.map +1 -0
  235. package/dist/src/memory/ewc-consolidation.js +190 -303
  236. package/dist/src/memory/ewc-consolidation.js.map +1 -1
  237. package/dist/src/memory/intelligence.d.ts +338 -0
  238. package/dist/src/memory/intelligence.d.ts.map +1 -0
  239. package/dist/src/memory/intelligence.js +569 -794
  240. package/dist/src/memory/intelligence.js.map +1 -1
  241. package/dist/src/memory/memory-bridge.d.ts +407 -0
  242. package/dist/src/memory/memory-bridge.d.ts.map +1 -0
  243. package/dist/src/memory/memory-bridge.js +1170 -1640
  244. package/dist/src/memory/memory-bridge.js.map +1 -1
  245. package/dist/src/memory/memory-initializer.d.ts +412 -0
  246. package/dist/src/memory/memory-initializer.d.ts.map +1 -0
  247. package/dist/src/memory/memory-initializer.js +1836 -1851
  248. package/dist/src/memory/memory-initializer.js.map +1 -1
  249. package/dist/src/memory/sona-optimizer.d.ts +227 -0
  250. package/dist/src/memory/sona-optimizer.d.ts.map +1 -0
  251. package/dist/src/memory/sona-optimizer.js +199 -329
  252. package/dist/src/memory/sona-optimizer.js.map +1 -1
  253. package/dist/src/output.d.ts +2 -2
  254. package/dist/src/output.d.ts.map +1 -1
  255. package/dist/src/output.js +242 -272
  256. package/dist/src/output.js.map +1 -1
  257. package/dist/src/parser.d.ts +51 -0
  258. package/dist/src/parser.d.ts.map +1 -0
  259. package/dist/src/parser.js +140 -187
  260. package/dist/src/parser.js.map +1 -1
  261. package/dist/src/plugins/manager.d.ts +133 -0
  262. package/dist/src/plugins/manager.d.ts.map +1 -0
  263. package/dist/src/plugins/manager.js +285 -521
  264. package/dist/src/plugins/manager.js.map +1 -1
  265. package/dist/src/plugins/store/discovery.d.ts +88 -0
  266. package/dist/src/plugins/store/discovery.d.ts.map +1 -0
  267. package/dist/src/plugins/store/discovery.js +271 -358
  268. package/dist/src/plugins/store/discovery.js.map +1 -1
  269. package/dist/src/plugins/store/index.d.ts +76 -0
  270. package/dist/src/plugins/store/index.d.ts.map +1 -0
  271. package/dist/src/plugins/store/index.js +48 -105
  272. package/dist/src/plugins/store/index.js.map +1 -1
  273. package/dist/src/plugins/store/search.d.ts +46 -0
  274. package/dist/src/plugins/store/search.d.ts.map +1 -0
  275. package/dist/src/plugins/store/search.js +69 -107
  276. package/dist/src/plugins/store/search.js.map +1 -1
  277. package/dist/src/plugins/store/types.d.ts +274 -0
  278. package/dist/src/plugins/store/types.d.ts.map +1 -0
  279. package/dist/src/plugins/tests/demo-plugin-store.js +113 -160
  280. package/dist/src/plugins/tests/demo-plugin-store.js.map +1 -1
  281. package/dist/src/plugins/tests/standalone-test.js +172 -223
  282. package/dist/src/plugins/tests/standalone-test.js.map +1 -1
  283. package/dist/src/plugins/tests/test-plugin-store.js +190 -228
  284. package/dist/src/plugins/tests/test-plugin-store.js.map +1 -1
  285. package/dist/src/production/circuit-breaker.d.ts +101 -0
  286. package/dist/src/production/circuit-breaker.d.ts.map +1 -0
  287. package/dist/src/production/circuit-breaker.js +62 -126
  288. package/dist/src/production/circuit-breaker.js.map +1 -1
  289. package/dist/src/production/error-handler.d.ts +92 -0
  290. package/dist/src/production/error-handler.d.ts.map +1 -0
  291. package/dist/src/production/error-handler.js +86 -156
  292. package/dist/src/production/error-handler.js.map +1 -1
  293. package/dist/src/production/monitoring.d.ts +161 -0
  294. package/dist/src/production/monitoring.d.ts.map +1 -0
  295. package/dist/src/production/monitoring.js +139 -220
  296. package/dist/src/production/monitoring.js.map +1 -1
  297. package/dist/src/production/rate-limiter.d.ts +80 -0
  298. package/dist/src/production/rate-limiter.d.ts.map +1 -0
  299. package/dist/src/production/rate-limiter.js +74 -93
  300. package/dist/src/production/rate-limiter.js.map +1 -1
  301. package/dist/src/production/retry.d.ts +48 -0
  302. package/dist/src/production/retry.d.ts.map +1 -0
  303. package/dist/src/production/retry.js +75 -167
  304. package/dist/src/production/retry.js.map +1 -1
  305. package/dist/src/prompt.d.ts +44 -0
  306. package/dist/src/prompt.d.ts.map +1 -0
  307. package/dist/src/prompt.js +436 -560
  308. package/dist/src/prompt.js.map +1 -1
  309. package/dist/src/runtime/headless.d.ts +60 -0
  310. package/dist/src/runtime/headless.d.ts.map +1 -0
  311. package/dist/src/runtime/headless.js +197 -286
  312. package/dist/src/runtime/headless.js.map +1 -1
  313. package/dist/src/ruvector/agent-wasm.d.ts +182 -0
  314. package/dist/src/ruvector/agent-wasm.d.ts.map +1 -0
  315. package/dist/src/ruvector/agent-wasm.js +156 -351
  316. package/dist/src/ruvector/agent-wasm.js.map +1 -1
  317. package/dist/src/ruvector/ast-analyzer.d.ts +67 -0
  318. package/dist/src/ruvector/ast-analyzer.d.ts.map +1 -0
  319. package/dist/src/ruvector/ast-analyzer.js +145 -232
  320. package/dist/src/ruvector/ast-analyzer.js.map +1 -1
  321. package/dist/src/ruvector/coverage-router.d.ts +160 -0
  322. package/dist/src/ruvector/coverage-router.d.ts.map +1 -0
  323. package/dist/src/ruvector/coverage-router.js +287 -419
  324. package/dist/src/ruvector/coverage-router.js.map +1 -1
  325. package/dist/src/ruvector/coverage-tools.js +56 -101
  326. package/dist/src/ruvector/coverage-tools.js.map +1 -1
  327. package/dist/src/ruvector/diff-classifier.d.ts +175 -0
  328. package/dist/src/ruvector/diff-classifier.d.ts.map +1 -0
  329. package/dist/src/ruvector/diff-classifier.js +324 -451
  330. package/dist/src/ruvector/diff-classifier.js.map +1 -1
  331. package/dist/src/ruvector/enhanced-model-router.d.ts +146 -0
  332. package/dist/src/ruvector/enhanced-model-router.d.ts.map +1 -0
  333. package/dist/src/ruvector/enhanced-model-router.js +260 -336
  334. package/dist/src/ruvector/enhanced-model-router.js.map +1 -1
  335. package/dist/src/ruvector/flash-attention.d.ts +195 -0
  336. package/dist/src/ruvector/flash-attention.d.ts.map +1 -0
  337. package/dist/src/ruvector/flash-attention.js +223 -254
  338. package/dist/src/ruvector/flash-attention.js.map +1 -1
  339. package/dist/src/ruvector/graph-analyzer.d.ts +187 -0
  340. package/dist/src/ruvector/graph-analyzer.d.ts.map +1 -0
  341. package/dist/src/ruvector/graph-analyzer.js +486 -680
  342. package/dist/src/ruvector/graph-analyzer.js.map +1 -1
  343. package/dist/src/ruvector/index.d.ts +40 -0
  344. package/dist/src/ruvector/index.d.ts.map +1 -0
  345. package/dist/src/ruvector/index.js +36 -106
  346. package/dist/src/ruvector/index.js.map +1 -1
  347. package/dist/src/ruvector/lora-adapter.d.ts +218 -0
  348. package/dist/src/ruvector/lora-adapter.d.ts.map +1 -0
  349. package/dist/src/ruvector/lora-adapter.js +155 -248
  350. package/dist/src/ruvector/lora-adapter.js.map +1 -1
  351. package/dist/src/ruvector/model-router.d.ts +220 -0
  352. package/dist/src/ruvector/model-router.d.ts.map +1 -0
  353. package/dist/src/ruvector/model-router.js +175 -248
  354. package/dist/src/ruvector/model-router.js.map +1 -1
  355. package/dist/src/ruvector/moe-router.d.ts +206 -0
  356. package/dist/src/ruvector/moe-router.d.ts.map +1 -0
  357. package/dist/src/ruvector/moe-router.js +228 -286
  358. package/dist/src/ruvector/moe-router.js.map +1 -1
  359. package/dist/src/ruvector/q-learning-router.d.ts +211 -0
  360. package/dist/src/ruvector/q-learning-router.d.ts.map +1 -0
  361. package/dist/src/ruvector/q-learning-router.js +257 -338
  362. package/dist/src/ruvector/q-learning-router.js.map +1 -1
  363. package/dist/src/ruvector/ruvllm-wasm.d.ts +179 -0
  364. package/dist/src/ruvector/ruvllm-wasm.d.ts.map +1 -0
  365. package/dist/src/ruvector/ruvllm-wasm.js +270 -434
  366. package/dist/src/ruvector/ruvllm-wasm.js.map +1 -1
  367. package/dist/src/ruvector/semantic-router.d.ts +77 -0
  368. package/dist/src/ruvector/semantic-router.d.ts.map +1 -0
  369. package/dist/src/ruvector/semantic-router.js +60 -67
  370. package/dist/src/ruvector/semantic-router.js.map +1 -1
  371. package/dist/src/ruvector/vector-db.d.ts +69 -0
  372. package/dist/src/ruvector/vector-db.d.ts.map +1 -0
  373. package/dist/src/ruvector/vector-db.js +119 -205
  374. package/dist/src/ruvector/vector-db.js.map +1 -1
  375. package/dist/src/services/agentic-flow-bridge.d.ts +50 -0
  376. package/dist/src/services/agentic-flow-bridge.d.ts.map +1 -0
  377. package/dist/src/services/agentic-flow-bridge.js +32 -105
  378. package/dist/src/services/agentic-flow-bridge.js.map +1 -1
  379. package/dist/src/services/claim-service.d.ts +204 -0
  380. package/dist/src/services/claim-service.d.ts.map +1 -0
  381. package/dist/src/services/claim-service.js +615 -940
  382. package/dist/src/services/claim-service.js.map +1 -1
  383. package/dist/src/services/container-worker-pool.d.ts +197 -0
  384. package/dist/src/services/container-worker-pool.d.ts.map +1 -0
  385. package/dist/src/services/container-worker-pool.js +398 -666
  386. package/dist/src/services/container-worker-pool.js.map +1 -1
  387. package/dist/src/services/headless-worker-executor.d.ts +304 -0
  388. package/dist/src/services/headless-worker-executor.d.ts.map +1 -0
  389. package/dist/src/services/headless-worker-executor.js +441 -467
  390. package/dist/src/services/headless-worker-executor.js.map +1 -1
  391. package/dist/src/services/index.d.ts +4 -4
  392. package/dist/src/services/index.d.ts.map +1 -1
  393. package/dist/src/services/index.js +4 -4
  394. package/dist/src/services/index.js.map +1 -1
  395. package/dist/src/services/registry-api.d.ts +58 -0
  396. package/dist/src/services/registry-api.d.ts.map +1 -0
  397. package/dist/src/services/registry-api.js +92 -200
  398. package/dist/src/services/registry-api.js.map +1 -1
  399. package/dist/src/services/ruvector-training.d.ts +222 -0
  400. package/dist/src/services/ruvector-training.d.ts.map +1 -0
  401. package/dist/src/services/ruvector-training.js +257 -337
  402. package/dist/src/services/ruvector-training.js.map +1 -1
  403. package/dist/src/services/worker-daemon.d.ts +228 -0
  404. package/dist/src/services/worker-daemon.d.ts.map +1 -0
  405. package/dist/src/services/worker-daemon.js +591 -849
  406. package/dist/src/services/worker-daemon.js.map +1 -1
  407. package/dist/src/services/worker-queue.d.ts +194 -0
  408. package/dist/src/services/worker-queue.d.ts.map +1 -0
  409. package/dist/src/services/worker-queue.js +331 -548
  410. package/dist/src/services/worker-queue.js.map +1 -1
  411. package/dist/src/suggest.d.ts +53 -0
  412. package/dist/src/suggest.d.ts.map +1 -0
  413. package/dist/src/suggest.js +45 -55
  414. package/dist/src/suggest.js.map +1 -1
  415. package/dist/src/transfer/anonymization/index.js +29 -37
  416. package/dist/src/transfer/anonymization/index.js.map +1 -1
  417. package/dist/src/transfer/deploy-seraphine.js +128 -155
  418. package/dist/src/transfer/deploy-seraphine.js.map +1 -1
  419. package/dist/src/transfer/export.d.ts +25 -0
  420. package/dist/src/transfer/export.d.ts.map +1 -0
  421. package/dist/src/transfer/export.js +84 -142
  422. package/dist/src/transfer/export.js.map +1 -1
  423. package/dist/src/transfer/index.d.ts +1 -1
  424. package/dist/src/transfer/index.d.ts.map +1 -1
  425. package/dist/src/transfer/index.js +0 -2
  426. package/dist/src/transfer/index.js.map +1 -1
  427. package/dist/src/transfer/ipfs/client.d.ts +109 -0
  428. package/dist/src/transfer/ipfs/client.d.ts.map +1 -0
  429. package/dist/src/transfer/ipfs/client.js +187 -337
  430. package/dist/src/transfer/ipfs/client.js.map +1 -1
  431. package/dist/src/transfer/ipfs/upload.d.ts +95 -0
  432. package/dist/src/transfer/ipfs/upload.d.ts.map +1 -0
  433. package/dist/src/transfer/ipfs/upload.js +288 -434
  434. package/dist/src/transfer/ipfs/upload.js.map +1 -1
  435. package/dist/src/transfer/models/seraphine.d.ts +72 -0
  436. package/dist/src/transfer/models/seraphine.d.ts.map +1 -0
  437. package/dist/src/transfer/models/seraphine.js +55 -55
  438. package/dist/src/transfer/models/seraphine.js.map +1 -1
  439. package/dist/src/transfer/serialization/cfp.d.ts +49 -0
  440. package/dist/src/transfer/serialization/cfp.d.ts.map +1 -0
  441. package/dist/src/transfer/serialization/cfp.js +30 -31
  442. package/dist/src/transfer/serialization/cfp.js.map +1 -1
  443. package/dist/src/transfer/storage/gcs.d.ts +82 -0
  444. package/dist/src/transfer/storage/gcs.d.ts.map +1 -0
  445. package/dist/src/transfer/storage/gcs.js +165 -232
  446. package/dist/src/transfer/storage/gcs.js.map +1 -1
  447. package/dist/src/transfer/store/discovery.d.ts +84 -0
  448. package/dist/src/transfer/store/discovery.d.ts.map +1 -0
  449. package/dist/src/transfer/store/discovery.js +239 -349
  450. package/dist/src/transfer/store/discovery.js.map +1 -1
  451. package/dist/src/transfer/store/download.d.ts +70 -0
  452. package/dist/src/transfer/store/download.d.ts.map +1 -0
  453. package/dist/src/transfer/store/download.js +243 -365
  454. package/dist/src/transfer/store/download.js.map +1 -1
  455. package/dist/src/transfer/store/index.d.ts +84 -0
  456. package/dist/src/transfer/store/index.d.ts.map +1 -0
  457. package/dist/src/transfer/store/index.js +63 -130
  458. package/dist/src/transfer/store/index.js.map +1 -1
  459. package/dist/src/transfer/store/publish.d.ts +76 -0
  460. package/dist/src/transfer/store/publish.d.ts.map +1 -0
  461. package/dist/src/transfer/store/publish.js +184 -258
  462. package/dist/src/transfer/store/publish.js.map +1 -1
  463. package/dist/src/transfer/store/registry.js +50 -72
  464. package/dist/src/transfer/store/registry.js.map +1 -1
  465. package/dist/src/transfer/store/search.d.ts +54 -0
  466. package/dist/src/transfer/store/search.d.ts.map +1 -0
  467. package/dist/src/transfer/store/search.js +64 -96
  468. package/dist/src/transfer/store/search.js.map +1 -1
  469. package/dist/src/transfer/store/tests/standalone-test.js +174 -231
  470. package/dist/src/transfer/store/tests/standalone-test.js.map +1 -1
  471. package/dist/src/transfer/test-seraphine.js +95 -130
  472. package/dist/src/transfer/test-seraphine.js.map +1 -1
  473. package/dist/src/transfer/tests/test-store.js +194 -239
  474. package/dist/src/transfer/tests/test-store.js.map +1 -1
  475. package/dist/src/transfer/types.d.ts +245 -0
  476. package/dist/src/transfer/types.d.ts.map +1 -0
  477. package/dist/src/types.d.ts +198 -0
  478. package/dist/src/types.d.ts.map +1 -0
  479. package/dist/src/types.js +26 -55
  480. package/dist/src/types.js.map +1 -1
  481. package/dist/src/update/checker.d.ts +34 -0
  482. package/dist/src/update/checker.d.ts.map +1 -0
  483. package/dist/src/update/checker.js +106 -183
  484. package/dist/src/update/checker.js.map +1 -1
  485. package/dist/src/update/executor.d.ts +32 -0
  486. package/dist/src/update/executor.d.ts.map +1 -0
  487. package/dist/src/update/executor.js +135 -198
  488. package/dist/src/update/executor.js.map +1 -1
  489. package/dist/src/update/index.d.ts +33 -0
  490. package/dist/src/update/index.d.ts.map +1 -0
  491. package/dist/src/update/index.js +38 -85
  492. package/dist/src/update/index.js.map +1 -1
  493. package/dist/src/update/rate-limiter.d.ts +20 -0
  494. package/dist/src/update/rate-limiter.d.ts.map +1 -0
  495. package/dist/src/update/rate-limiter.js +19 -31
  496. package/dist/src/update/rate-limiter.js.map +1 -1
  497. package/dist/src/update/validator.d.ts +17 -0
  498. package/dist/src/update/validator.d.ts.map +1 -0
  499. package/dist/src/update/validator.js +38 -64
  500. package/dist/src/update/validator.js.map +1 -1
  501. package/dist/tsconfig.tsbuildinfo +1 -1
  502. package/package.json +1 -1
@@ -14,45 +14,24 @@
14
14
  *
15
15
  * Created with love by ruv.io
16
16
  */
17
- var __assign = (this && this.__assign) || function () {
18
- __assign = Object.assign || function(t) {
19
- for (var s, i = 1, n = arguments.length; i < n; i++) {
20
- s = arguments[i];
21
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
- t[p] = s[p];
23
- }
24
- return t;
25
- };
26
- return __assign.apply(this, arguments);
27
- };
28
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
29
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
30
- if (ar || !(i in from)) {
31
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
32
- ar[i] = from[i];
33
- }
34
- }
35
- return to.concat(ar || Array.prototype.slice.call(from));
36
- };
37
17
  // ============================================================================
38
18
  // Flash Attention Implementation
39
19
  // ============================================================================
40
- var FlashAttention = /** @class */ (function () {
41
- function FlashAttention(config) {
42
- if (config === void 0) { config = {}; }
43
- var _a, _b, _c, _d, _e;
44
- this.lastSpeedup = 0;
45
- this.benchmarkHistory = [];
46
- // Pre-allocated buffers for CPU optimization
47
- this.scoreBuffer = null;
48
- this.expBuffer = null;
49
- this.accumBuffer = null;
20
+ export class FlashAttention {
21
+ config;
22
+ lastSpeedup = 0;
23
+ benchmarkHistory = [];
24
+ // Pre-allocated buffers for CPU optimization
25
+ scoreBuffer = null;
26
+ expBuffer = null;
27
+ accumBuffer = null;
28
+ constructor(config = {}) {
50
29
  this.config = {
51
- blockSize: (_a = config.blockSize) !== null && _a !== void 0 ? _a : 32,
52
- dimensions: (_b = config.dimensions) !== null && _b !== void 0 ? _b : 384,
53
- temperature: (_c = config.temperature) !== null && _c !== void 0 ? _c : 1.0,
54
- useStableMode: (_d = config.useStableMode) !== null && _d !== void 0 ? _d : true,
55
- useCPUOptimizations: (_e = config.useCPUOptimizations) !== null && _e !== void 0 ? _e : true
30
+ blockSize: config.blockSize ?? 32, // Smaller blocks for CPU L1 cache
31
+ dimensions: config.dimensions ?? 384,
32
+ temperature: config.temperature ?? 1.0,
33
+ useStableMode: config.useStableMode ?? true,
34
+ useCPUOptimizations: config.useCPUOptimizations ?? true,
56
35
  };
57
36
  }
58
37
  // ==========================================================================
@@ -66,14 +45,14 @@ var FlashAttention = /** @class */ (function () {
66
45
  * @param values - Value vectors [M x D]
67
46
  * @returns Attention output [N x D]
68
47
  */
69
- FlashAttention.prototype.attention = function (queries, keys, values) {
70
- var startTime = performance.now();
48
+ attention(queries, keys, values) {
49
+ const startTime = performance.now();
71
50
  // Validate inputs
72
51
  this.validateInputs(queries, keys, values);
73
- var numQueries = queries.length;
74
- var numKeys = keys.length;
52
+ const numQueries = queries.length;
53
+ const numKeys = keys.length;
75
54
  // Use CPU-optimized path for all sizes when enabled
76
- var output;
55
+ let output;
77
56
  if (this.config.useCPUOptimizations) {
78
57
  output = this.cpuOptimizedAttention(queries, keys, values);
79
58
  }
@@ -83,12 +62,12 @@ var FlashAttention = /** @class */ (function () {
83
62
  else {
84
63
  output = this.naiveAttention(queries, keys, values);
85
64
  }
86
- var computeTimeMs = performance.now() - startTime;
65
+ const computeTimeMs = performance.now() - startTime;
87
66
  return {
88
- output: output,
89
- computeTimeMs: computeTimeMs
67
+ output,
68
+ computeTimeMs,
90
69
  };
91
- };
70
+ }
92
71
  /**
93
72
  * CPU-optimized attention with aggressive optimizations
94
73
  *
@@ -99,15 +78,14 @@ var FlashAttention = /** @class */ (function () {
99
78
  * - 8x loop unrolling for dot products
100
79
  * - Fused max-finding during score computation
101
80
  */
102
- FlashAttention.prototype.cpuOptimizedAttention = function (Q, K, V) {
103
- var _a, _b;
104
- var numQ = Q.length;
105
- var numK = K.length;
106
- var dim = (_b = (_a = Q[0]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : this.config.dimensions;
107
- var scale = 1.0 / (Math.sqrt(dim) * this.config.temperature);
81
+ cpuOptimizedAttention(Q, K, V) {
82
+ const numQ = Q.length;
83
+ const numK = K.length;
84
+ const dim = Q[0]?.length ?? this.config.dimensions;
85
+ const scale = 1.0 / (Math.sqrt(dim) * this.config.temperature);
108
86
  // Sparse attention: Use only top 12% of keys (min 16, max 96)
109
- var topK = Math.max(16, Math.min(96, Math.ceil(numK * 0.12)));
110
- var useTopK = numK > 32;
87
+ const topK = Math.max(16, Math.min(96, Math.ceil(numK * 0.12)));
88
+ const useTopK = numK > 32;
111
89
  // Ensure buffers are allocated
112
90
  if (!this.scoreBuffer || this.scoreBuffer.length < numK) {
113
91
  this.scoreBuffer = new Float32Array(numK);
@@ -118,42 +96,42 @@ var FlashAttention = /** @class */ (function () {
118
96
  if (!this.accumBuffer || this.accumBuffer.length < dim) {
119
97
  this.accumBuffer = new Float64Array(dim);
120
98
  }
121
- var scores = this.scoreBuffer;
122
- var exps = this.expBuffer;
123
- var accum = this.accumBuffer;
99
+ const scores = this.scoreBuffer;
100
+ const exps = this.expBuffer;
101
+ const accum = this.accumBuffer;
124
102
  // Pre-allocate output once
125
- var output = new Array(numQ);
126
- for (var i = 0; i < numQ; i++) {
103
+ const output = new Array(numQ);
104
+ for (let i = 0; i < numQ; i++) {
127
105
  output[i] = new Float32Array(dim);
128
106
  }
129
107
  // Reusable index array
130
- var indices = useTopK ? new Uint32Array(numK) : null;
108
+ const indices = useTopK ? new Uint32Array(numK) : null;
131
109
  if (indices) {
132
- for (var i = 0; i < numK; i++)
110
+ for (let i = 0; i < numK; i++)
133
111
  indices[i] = i;
134
112
  }
135
113
  // Two-stage screening: use 1/4 of dimensions for quick filtering
136
- var screenDim = Math.min(96, dim >> 2);
137
- var screenScale = scale * Math.sqrt(dim / screenDim);
114
+ const screenDim = Math.min(96, dim >> 2);
115
+ const screenScale = scale * Math.sqrt(dim / screenDim);
138
116
  // Candidate buffer for two-stage filtering
139
- var candidateCount = Math.max(topK * 2, Math.ceil(numK * 0.25));
117
+ const candidateCount = Math.max(topK * 2, Math.ceil(numK * 0.25));
140
118
  // Process queries
141
- for (var qi = 0; qi < numQ; qi++) {
142
- var query = Q[qi];
119
+ for (let qi = 0; qi < numQ; qi++) {
120
+ const query = Q[qi];
143
121
  if (useTopK && numK > 128) {
144
122
  // Two-stage approach for large key sets
145
123
  // Stage 1: Quick screening with partial dimensions
146
- for (var ki = 0; ki < numK; ki++) {
124
+ for (let ki = 0; ki < numK; ki++) {
147
125
  scores[ki] = this.partialDotProduct(query, K[ki], screenDim) * screenScale;
148
126
  indices[ki] = ki;
149
127
  }
150
128
  // Get top candidates (2x topK)
151
129
  this.partialSort(scores, indices, candidateCount);
152
130
  // Stage 2: Full score computation only for candidates
153
- var maxScore = -Infinity;
154
- for (var i = 0; i < candidateCount; i++) {
155
- var ki = indices[i];
156
- var s = this.fastDotProduct(query, K[ki], dim) * scale;
131
+ let maxScore = -Infinity;
132
+ for (let i = 0; i < candidateCount; i++) {
133
+ const ki = indices[i];
134
+ const s = this.fastDotProduct(query, K[ki], dim) * scale;
157
135
  scores[ki] = s;
158
136
  if (s > maxScore)
159
137
  maxScore = s;
@@ -162,68 +140,68 @@ var FlashAttention = /** @class */ (function () {
162
140
  this.partialSort(scores, indices.subarray(0, candidateCount), topK);
163
141
  // Compute softmax over top-K
164
142
  maxScore = -Infinity;
165
- for (var i = 0; i < topK; i++) {
143
+ for (let i = 0; i < topK; i++) {
166
144
  if (scores[indices[i]] > maxScore)
167
145
  maxScore = scores[indices[i]];
168
146
  }
169
- var sumExp = 0;
170
- for (var i = 0; i < topK; i++) {
171
- var e = Math.exp(scores[indices[i]] - maxScore);
147
+ let sumExp = 0;
148
+ for (let i = 0; i < topK; i++) {
149
+ const e = Math.exp(scores[indices[i]] - maxScore);
172
150
  exps[i] = e;
173
151
  sumExp += e;
174
152
  }
175
153
  // Weighted sum
176
- for (var d = 0; d < dim; d++)
154
+ for (let d = 0; d < dim; d++)
177
155
  accum[d] = 0;
178
- var invSum = 1.0 / sumExp;
179
- for (var i = 0; i < topK; i++) {
180
- var weight = exps[i] * invSum;
181
- var value = V[indices[i]];
182
- for (var d = 0; d < dim; d++) {
156
+ const invSum = 1.0 / sumExp;
157
+ for (let i = 0; i < topK; i++) {
158
+ const weight = exps[i] * invSum;
159
+ const value = V[indices[i]];
160
+ for (let d = 0; d < dim; d++) {
183
161
  accum[d] += weight * value[d];
184
162
  }
185
163
  }
186
164
  }
187
165
  else {
188
166
  // Simple path for small key sets
189
- var maxScore = -Infinity;
190
- for (var ki = 0; ki < numK; ki++) {
191
- var s = this.fastDotProduct(query, K[ki], dim) * scale;
167
+ let maxScore = -Infinity;
168
+ for (let ki = 0; ki < numK; ki++) {
169
+ const s = this.fastDotProduct(query, K[ki], dim) * scale;
192
170
  scores[ki] = s;
193
171
  if (s > maxScore)
194
172
  maxScore = s;
195
173
  }
196
- var sumExp = 0;
197
- for (var ki = 0; ki < numK; ki++) {
198
- var e = Math.exp(scores[ki] - maxScore);
174
+ let sumExp = 0;
175
+ for (let ki = 0; ki < numK; ki++) {
176
+ const e = Math.exp(scores[ki] - maxScore);
199
177
  exps[ki] = e;
200
178
  sumExp += e;
201
179
  }
202
- for (var d = 0; d < dim; d++)
180
+ for (let d = 0; d < dim; d++)
203
181
  accum[d] = 0;
204
- var invSum = 1.0 / sumExp;
205
- for (var ki = 0; ki < numK; ki++) {
206
- var weight = exps[ki] * invSum;
207
- var value = V[ki];
208
- for (var d = 0; d < dim; d++) {
182
+ const invSum = 1.0 / sumExp;
183
+ for (let ki = 0; ki < numK; ki++) {
184
+ const weight = exps[ki] * invSum;
185
+ const value = V[ki];
186
+ for (let d = 0; d < dim; d++) {
209
187
  accum[d] += weight * value[d];
210
188
  }
211
189
  }
212
190
  }
213
191
  // Copy to output
214
- var out = output[qi];
215
- for (var d = 0; d < dim; d++) {
192
+ const out = output[qi];
193
+ for (let d = 0; d < dim; d++) {
216
194
  out[d] = accum[d];
217
195
  }
218
196
  }
219
197
  return output;
220
- };
198
+ }
221
199
  /**
222
200
  * Partial dot product using only first N dimensions (for screening)
223
201
  */
224
- FlashAttention.prototype.partialDotProduct = function (a, b, len) {
225
- var sum = 0;
226
- var i = 0;
202
+ partialDotProduct(a, b, len) {
203
+ let sum = 0;
204
+ let i = 0;
227
205
  for (; i <= len - 4; i += 4) {
228
206
  sum += a[i] * b[i] + a[i + 1] * b[i + 1] + a[i + 2] * b[i + 2] + a[i + 3] * b[i + 3];
229
207
  }
@@ -231,26 +209,26 @@ var FlashAttention = /** @class */ (function () {
231
209
  sum += a[i] * b[i];
232
210
  }
233
211
  return sum;
234
- };
212
+ }
235
213
  /**
236
214
  * Partial sort to get top-K elements (QuickSelect-like)
237
215
  * Only ensures first K elements are the largest, not sorted
238
216
  */
239
- FlashAttention.prototype.partialSort = function (scores, indices, k) {
240
- var n = indices.length;
217
+ partialSort(scores, indices, k) {
218
+ const n = indices.length;
241
219
  if (k >= n)
242
220
  return;
243
221
  // Use partition-based selection (O(n) average)
244
- var left = 0;
245
- var right = n - 1;
222
+ let left = 0;
223
+ let right = n - 1;
246
224
  while (left < right) {
247
225
  // Partition around pivot
248
- var pivotIdx = left + Math.floor(Math.random() * (right - left + 1));
249
- var pivotScore = scores[indices[pivotIdx]];
226
+ const pivotIdx = left + Math.floor(Math.random() * (right - left + 1));
227
+ const pivotScore = scores[indices[pivotIdx]];
250
228
  // Move pivot to end
251
229
  this.swapIndices(indices, pivotIdx, right);
252
- var storeIdx = left;
253
- for (var i = left; i < right; i++) {
230
+ let storeIdx = left;
231
+ for (let i = left; i < right; i++) {
254
232
  if (scores[indices[i]] > pivotScore) {
255
233
  this.swapIndices(indices, i, storeIdx);
256
234
  storeIdx++;
@@ -268,21 +246,21 @@ var FlashAttention = /** @class */ (function () {
268
246
  right = storeIdx - 1;
269
247
  }
270
248
  }
271
- };
249
+ }
272
250
  /**
273
251
  * Swap two indices in array
274
252
  */
275
- FlashAttention.prototype.swapIndices = function (arr, i, j) {
276
- var temp = arr[i];
253
+ swapIndices(arr, i, j) {
254
+ const temp = arr[i];
277
255
  arr[i] = arr[j];
278
256
  arr[j] = temp;
279
- };
257
+ }
280
258
  /**
281
259
  * Fast dot product with 8x unrolling
282
260
  */
283
- FlashAttention.prototype.fastDotProduct = function (a, b, len) {
284
- var sum = 0;
285
- var i = 0;
261
+ fastDotProduct(a, b, len) {
262
+ let sum = 0;
263
+ let i = 0;
286
264
  // 8x unroll
287
265
  for (; i <= len - 8; i += 8) {
288
266
  sum += a[i] * b[i] +
@@ -299,7 +277,7 @@ var FlashAttention = /** @class */ (function () {
299
277
  sum += a[i] * b[i];
300
278
  }
301
279
  return sum;
302
- };
280
+ }
303
281
  /**
304
282
  * Block-wise attention computation (Flash Attention core algorithm)
305
283
  *
@@ -315,50 +293,49 @@ var FlashAttention = /** @class */ (function () {
315
293
  * @param V - Value vectors
316
294
  * @param blockSize - Block size for tiling
317
295
  */
318
- FlashAttention.prototype.blockAttention = function (Q, K, V, blockSize) {
319
- var _a, _b;
320
- var numQueries = Q.length;
321
- var numKeys = K.length;
322
- var dimensions = (_b = (_a = Q[0]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : this.config.dimensions;
323
- var scale = 1.0 / (Math.sqrt(dimensions) * this.config.temperature);
296
+ blockAttention(Q, K, V, blockSize) {
297
+ const numQueries = Q.length;
298
+ const numKeys = K.length;
299
+ const dimensions = Q[0]?.length ?? this.config.dimensions;
300
+ const scale = 1.0 / (Math.sqrt(dimensions) * this.config.temperature);
324
301
  // Initialize output arrays
325
- var output = new Array(numQueries);
326
- for (var i = 0; i < numQueries; i++) {
302
+ const output = new Array(numQueries);
303
+ for (let i = 0; i < numQueries; i++) {
327
304
  output[i] = new Float32Array(dimensions);
328
305
  }
329
306
  // Online softmax state: max values and sum of exp for each query
330
- var maxScores = new Float32Array(numQueries).fill(-Infinity);
331
- var sumExp = new Float32Array(numQueries).fill(0);
307
+ const maxScores = new Float32Array(numQueries).fill(-Infinity);
308
+ const sumExp = new Float32Array(numQueries).fill(0);
332
309
  // Process in blocks
333
- for (var kStart = 0; kStart < numKeys; kStart += blockSize) {
334
- var kEnd = Math.min(kStart + blockSize, numKeys);
335
- var kBlockSize = kEnd - kStart;
310
+ for (let kStart = 0; kStart < numKeys; kStart += blockSize) {
311
+ const kEnd = Math.min(kStart + blockSize, numKeys);
312
+ const kBlockSize = kEnd - kStart;
336
313
  // Process each query against this key block
337
- for (var qStart = 0; qStart < numQueries; qStart += blockSize) {
338
- var qEnd = Math.min(qStart + blockSize, numQueries);
314
+ for (let qStart = 0; qStart < numQueries; qStart += blockSize) {
315
+ const qEnd = Math.min(qStart + blockSize, numQueries);
339
316
  // Compute attention scores for this block
340
- var blockScores = this.computeBlockScores(Q, K, qStart, qEnd, kStart, kEnd, scale);
317
+ const blockScores = this.computeBlockScores(Q, K, qStart, qEnd, kStart, kEnd, scale);
341
318
  // Apply online softmax and accumulate output
342
319
  this.onlineSoftmaxAccumulate(blockScores, V, output, maxScores, sumExp, qStart, qEnd, kStart, kEnd);
343
320
  }
344
321
  }
345
322
  // Normalize outputs by final sum of exponentials
346
- for (var i = 0; i < numQueries; i++) {
347
- var normalizer = sumExp[i];
323
+ for (let i = 0; i < numQueries; i++) {
324
+ const normalizer = sumExp[i];
348
325
  if (normalizer > 0) {
349
- for (var d = 0; d < dimensions; d++) {
326
+ for (let d = 0; d < dimensions; d++) {
350
327
  output[i][d] /= normalizer;
351
328
  }
352
329
  }
353
330
  }
354
331
  return output;
355
- };
332
+ }
356
333
  /**
357
334
  * Get the speedup factor from the last benchmark
358
335
  */
359
- FlashAttention.prototype.getSpeedup = function () {
336
+ getSpeedup() {
360
337
  return this.lastSpeedup;
361
- };
338
+ }
362
339
  /**
363
340
  * Run benchmark comparing naive vs CPU-optimized attention
364
341
  *
@@ -366,165 +343,160 @@ var FlashAttention = /** @class */ (function () {
366
343
  * @param dimensions - Dimensions per vector
367
344
  * @param iterations - Number of iterations for averaging
368
345
  */
369
- FlashAttention.prototype.benchmark = function (numVectors, dimensions, iterations) {
370
- if (numVectors === void 0) { numVectors = 512; }
371
- if (dimensions === void 0) { dimensions = 384; }
372
- if (iterations === void 0) { iterations = 5; }
346
+ benchmark(numVectors = 512, dimensions = 384, iterations = 5) {
373
347
  // Generate random test data
374
- var queries = this.generateRandomVectors(numVectors, dimensions);
375
- var keys = this.generateRandomVectors(numVectors, dimensions);
376
- var values = this.generateRandomVectors(numVectors, dimensions);
348
+ const queries = this.generateRandomVectors(numVectors, dimensions);
349
+ const keys = this.generateRandomVectors(numVectors, dimensions);
350
+ const values = this.generateRandomVectors(numVectors, dimensions);
377
351
  // Warm up both paths
378
352
  this.naiveAttention(queries.slice(0, 10), keys.slice(0, 10), values.slice(0, 10));
379
353
  this.cpuOptimizedAttention(queries.slice(0, 10), keys.slice(0, 10), values.slice(0, 10));
380
354
  // Benchmark naive attention
381
- var naiveTotalMs = 0;
382
- for (var i = 0; i < iterations; i++) {
383
- var start = performance.now();
355
+ let naiveTotalMs = 0;
356
+ for (let i = 0; i < iterations; i++) {
357
+ const start = performance.now();
384
358
  this.naiveAttention(queries, keys, values);
385
359
  naiveTotalMs += performance.now() - start;
386
360
  }
387
- var naiveTimeMs = naiveTotalMs / iterations;
361
+ const naiveTimeMs = naiveTotalMs / iterations;
388
362
  // Benchmark CPU-optimized attention
389
- var flashTotalMs = 0;
390
- for (var i = 0; i < iterations; i++) {
391
- var start = performance.now();
363
+ let flashTotalMs = 0;
364
+ for (let i = 0; i < iterations; i++) {
365
+ const start = performance.now();
392
366
  this.cpuOptimizedAttention(queries, keys, values);
393
367
  flashTotalMs += performance.now() - start;
394
368
  }
395
- var flashTimeMs = flashTotalMs / iterations;
369
+ const flashTimeMs = flashTotalMs / iterations;
396
370
  // Calculate metrics
397
- var speedup = naiveTimeMs / flashTimeMs;
371
+ const speedup = naiveTimeMs / flashTimeMs;
398
372
  this.lastSpeedup = speedup;
399
373
  // Memory estimates
400
374
  // Naive: needs full N x N attention matrix
401
- var naiveMemoryBytes = numVectors * numVectors * 4; // Float32
375
+ const naiveMemoryBytes = numVectors * numVectors * 4; // Float32
402
376
  // Flash: only needs block_size x block_size at a time
403
- var flashMemoryBytes = this.config.blockSize * this.config.blockSize * 4;
404
- var memoryReduction = naiveMemoryBytes / flashMemoryBytes;
405
- var result = {
406
- naiveTimeMs: naiveTimeMs,
407
- flashTimeMs: flashTimeMs,
408
- speedup: speedup,
409
- numVectors: numVectors,
410
- dimensions: dimensions,
411
- naiveMemoryBytes: naiveMemoryBytes,
412
- flashMemoryBytes: flashMemoryBytes,
413
- memoryReduction: memoryReduction
377
+ const flashMemoryBytes = this.config.blockSize * this.config.blockSize * 4;
378
+ const memoryReduction = naiveMemoryBytes / flashMemoryBytes;
379
+ const result = {
380
+ naiveTimeMs,
381
+ flashTimeMs,
382
+ speedup,
383
+ numVectors,
384
+ dimensions,
385
+ naiveMemoryBytes,
386
+ flashMemoryBytes,
387
+ memoryReduction,
414
388
  };
415
389
  this.benchmarkHistory.push(result);
416
390
  return result;
417
- };
391
+ }
418
392
  /**
419
393
  * Get benchmark history
420
394
  */
421
- FlashAttention.prototype.getBenchmarkHistory = function () {
422
- return __spreadArray([], this.benchmarkHistory, true);
423
- };
395
+ getBenchmarkHistory() {
396
+ return [...this.benchmarkHistory];
397
+ }
424
398
  /**
425
399
  * Get configuration
426
400
  */
427
- FlashAttention.prototype.getConfig = function () {
428
- return __assign({}, this.config);
429
- };
401
+ getConfig() {
402
+ return { ...this.config };
403
+ }
430
404
  /**
431
405
  * Update configuration
432
406
  */
433
- FlashAttention.prototype.setConfig = function (config) {
434
- this.config = __assign(__assign({}, this.config), config);
435
- };
407
+ setConfig(config) {
408
+ this.config = { ...this.config, ...config };
409
+ }
436
410
  // ==========================================================================
437
411
  // Private Methods
438
412
  // ==========================================================================
439
413
  /**
440
414
  * Naive O(N^2) attention implementation for comparison
441
415
  */
442
- FlashAttention.prototype.naiveAttention = function (queries, keys, values) {
443
- var _a, _b;
444
- var numQueries = queries.length;
445
- var numKeys = keys.length;
446
- var dimensions = (_b = (_a = queries[0]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : this.config.dimensions;
447
- var scale = 1.0 / (Math.sqrt(dimensions) * this.config.temperature);
416
+ naiveAttention(queries, keys, values) {
417
+ const numQueries = queries.length;
418
+ const numKeys = keys.length;
419
+ const dimensions = queries[0]?.length ?? this.config.dimensions;
420
+ const scale = 1.0 / (Math.sqrt(dimensions) * this.config.temperature);
448
421
  // Compute full attention matrix Q @ K.T
449
- var scores = new Array(numQueries);
450
- for (var i = 0; i < numQueries; i++) {
422
+ const scores = new Array(numQueries);
423
+ for (let i = 0; i < numQueries; i++) {
451
424
  scores[i] = new Float32Array(numKeys);
452
- for (var j = 0; j < numKeys; j++) {
425
+ for (let j = 0; j < numKeys; j++) {
453
426
  scores[i][j] = this.dotProduct(queries[i], keys[j]) * scale;
454
427
  }
455
428
  }
456
429
  // Softmax over each row
457
- var attentionWeights = new Array(numQueries);
458
- for (var i = 0; i < numQueries; i++) {
430
+ const attentionWeights = new Array(numQueries);
431
+ for (let i = 0; i < numQueries; i++) {
459
432
  attentionWeights[i] = this.softmax(scores[i]);
460
433
  }
461
434
  // Compute output: attention @ V
462
- var output = new Array(numQueries);
463
- for (var i = 0; i < numQueries; i++) {
435
+ const output = new Array(numQueries);
436
+ for (let i = 0; i < numQueries; i++) {
464
437
  output[i] = new Float32Array(dimensions);
465
- for (var j = 0; j < numKeys; j++) {
466
- var weight = attentionWeights[i][j];
467
- for (var d = 0; d < dimensions; d++) {
438
+ for (let j = 0; j < numKeys; j++) {
439
+ const weight = attentionWeights[i][j];
440
+ for (let d = 0; d < dimensions; d++) {
468
441
  output[i][d] += weight * values[j][d];
469
442
  }
470
443
  }
471
444
  }
472
445
  return output;
473
- };
446
+ }
474
447
  /**
475
448
  * Compute block of attention scores
476
449
  */
477
- FlashAttention.prototype.computeBlockScores = function (Q, K, qStart, qEnd, kStart, kEnd, scale) {
478
- var qBlockSize = qEnd - qStart;
479
- var kBlockSize = kEnd - kStart;
480
- var scores = new Array(qBlockSize);
481
- for (var qi = 0; qi < qBlockSize; qi++) {
450
+ computeBlockScores(Q, K, qStart, qEnd, kStart, kEnd, scale) {
451
+ const qBlockSize = qEnd - qStart;
452
+ const kBlockSize = kEnd - kStart;
453
+ const scores = new Array(qBlockSize);
454
+ for (let qi = 0; qi < qBlockSize; qi++) {
482
455
  scores[qi] = new Float32Array(kBlockSize);
483
- var query = Q[qStart + qi];
484
- for (var ki = 0; ki < kBlockSize; ki++) {
456
+ const query = Q[qStart + qi];
457
+ for (let ki = 0; ki < kBlockSize; ki++) {
485
458
  scores[qi][ki] = this.dotProduct(query, K[kStart + ki]) * scale;
486
459
  }
487
460
  }
488
461
  return scores;
489
- };
462
+ }
490
463
  /**
491
464
  * Online softmax with output accumulation (key to Flash Attention)
492
465
  *
493
466
  * Uses the online softmax trick to maintain numerical stability
494
467
  * while processing blocks incrementally.
495
468
  */
496
- FlashAttention.prototype.onlineSoftmaxAccumulate = function (blockScores, V, output, maxScores, sumExp, qStart, qEnd, kStart, kEnd) {
497
- var _a, _b;
498
- var qBlockSize = qEnd - qStart;
499
- var kBlockSize = kEnd - kStart;
500
- var dimensions = (_b = (_a = output[0]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : this.config.dimensions;
501
- for (var qi = 0; qi < qBlockSize; qi++) {
502
- var globalQi = qStart + qi;
503
- var rowScores = blockScores[qi];
469
+ onlineSoftmaxAccumulate(blockScores, V, output, maxScores, sumExp, qStart, qEnd, kStart, kEnd) {
470
+ const qBlockSize = qEnd - qStart;
471
+ const kBlockSize = kEnd - kStart;
472
+ const dimensions = output[0]?.length ?? this.config.dimensions;
473
+ for (let qi = 0; qi < qBlockSize; qi++) {
474
+ const globalQi = qStart + qi;
475
+ const rowScores = blockScores[qi];
504
476
  // Find max in this block
505
- var blockMax = -Infinity;
506
- for (var ki = 0; ki < kBlockSize; ki++) {
477
+ let blockMax = -Infinity;
478
+ for (let ki = 0; ki < kBlockSize; ki++) {
507
479
  if (rowScores[ki] > blockMax) {
508
480
  blockMax = rowScores[ki];
509
481
  }
510
482
  }
511
- var oldMax = maxScores[globalQi];
512
- var newMax = Math.max(oldMax, blockMax);
483
+ const oldMax = maxScores[globalQi];
484
+ const newMax = Math.max(oldMax, blockMax);
513
485
  // Correction factor for previous outputs
514
- var correction = oldMax === -Infinity ? 0 : Math.exp(oldMax - newMax);
486
+ const correction = oldMax === -Infinity ? 0 : Math.exp(oldMax - newMax);
515
487
  // Update sum of exponentials with correction
516
- var newSumExp = sumExp[globalQi] * correction;
488
+ let newSumExp = sumExp[globalQi] * correction;
517
489
  // Scale existing output by correction factor
518
- for (var d = 0; d < dimensions; d++) {
490
+ for (let d = 0; d < dimensions; d++) {
519
491
  output[globalQi][d] *= correction;
520
492
  }
521
493
  // Process this block
522
- for (var ki = 0; ki < kBlockSize; ki++) {
523
- var expScore = Math.exp(rowScores[ki] - newMax);
494
+ for (let ki = 0; ki < kBlockSize; ki++) {
495
+ const expScore = Math.exp(rowScores[ki] - newMax);
524
496
  newSumExp += expScore;
525
497
  // Accumulate weighted values
526
- var value = V[kStart + ki];
527
- for (var d = 0; d < dimensions; d++) {
498
+ const value = V[kStart + ki];
499
+ for (let d = 0; d < dimensions; d++) {
528
500
  output[globalQi][d] += expScore * value[d];
529
501
  }
530
502
  }
@@ -532,15 +504,15 @@ var FlashAttention = /** @class */ (function () {
532
504
  maxScores[globalQi] = newMax;
533
505
  sumExp[globalQi] = newSumExp;
534
506
  }
535
- };
507
+ }
536
508
  /**
537
509
  * Compute dot product of two vectors
538
510
  */
539
- FlashAttention.prototype.dotProduct = function (a, b) {
540
- var sum = 0;
541
- var len = Math.min(a.length, b.length);
511
+ dotProduct(a, b) {
512
+ let sum = 0;
513
+ const len = Math.min(a.length, b.length);
542
514
  // Unroll loop for performance (4x unroll)
543
- var i = 0;
515
+ let i = 0;
544
516
  for (; i <= len - 4; i += 4) {
545
517
  sum += a[i] * b[i] +
546
518
  a[i + 1] * b[i + 1] +
@@ -552,85 +524,82 @@ var FlashAttention = /** @class */ (function () {
552
524
  sum += a[i] * b[i];
553
525
  }
554
526
  return sum;
555
- };
527
+ }
556
528
  /**
557
529
  * Stable softmax implementation
558
530
  */
559
- FlashAttention.prototype.softmax = function (scores) {
560
- var result = new Float32Array(scores.length);
531
+ softmax(scores) {
532
+ const result = new Float32Array(scores.length);
561
533
  // Find max for numerical stability
562
- var max = -Infinity;
563
- for (var i = 0; i < scores.length; i++) {
534
+ let max = -Infinity;
535
+ for (let i = 0; i < scores.length; i++) {
564
536
  if (scores[i] > max) {
565
537
  max = scores[i];
566
538
  }
567
539
  }
568
540
  // Compute exp and sum
569
- var sum = 0;
570
- for (var i = 0; i < scores.length; i++) {
541
+ let sum = 0;
542
+ for (let i = 0; i < scores.length; i++) {
571
543
  result[i] = Math.exp(scores[i] - max);
572
544
  sum += result[i];
573
545
  }
574
546
  // Normalize
575
547
  if (sum > 0) {
576
- for (var i = 0; i < scores.length; i++) {
548
+ for (let i = 0; i < scores.length; i++) {
577
549
  result[i] /= sum;
578
550
  }
579
551
  }
580
552
  return result;
581
- };
553
+ }
582
554
  /**
583
555
  * Generate random vectors for benchmarking
584
556
  */
585
- FlashAttention.prototype.generateRandomVectors = function (count, dimensions) {
586
- var vectors = new Array(count);
587
- for (var i = 0; i < count; i++) {
557
+ generateRandomVectors(count, dimensions) {
558
+ const vectors = new Array(count);
559
+ for (let i = 0; i < count; i++) {
588
560
  vectors[i] = new Float32Array(dimensions);
589
- for (var d = 0; d < dimensions; d++) {
561
+ for (let d = 0; d < dimensions; d++) {
590
562
  vectors[i][d] = (Math.random() - 0.5) * 2;
591
563
  }
592
564
  // Normalize
593
- var norm = 0;
594
- for (var d = 0; d < dimensions; d++) {
565
+ let norm = 0;
566
+ for (let d = 0; d < dimensions; d++) {
595
567
  norm += vectors[i][d] * vectors[i][d];
596
568
  }
597
569
  norm = Math.sqrt(norm);
598
570
  if (norm > 0) {
599
- for (var d = 0; d < dimensions; d++) {
571
+ for (let d = 0; d < dimensions; d++) {
600
572
  vectors[i][d] /= norm;
601
573
  }
602
574
  }
603
575
  }
604
576
  return vectors;
605
- };
577
+ }
606
578
  /**
607
579
  * Validate input arrays
608
580
  */
609
- FlashAttention.prototype.validateInputs = function (queries, keys, values) {
610
- var _a, _b, _c, _d, _e, _f;
581
+ validateInputs(queries, keys, values) {
611
582
  if (!queries.length || !keys.length || !values.length) {
612
583
  throw new Error('FlashAttention: Empty input arrays');
613
584
  }
614
585
  if (keys.length !== values.length) {
615
- throw new Error("FlashAttention: Keys and values must have same count. Got " + keys.length + " keys, " + values.length + " values");
586
+ throw new Error(`FlashAttention: Keys and values must have same count. Got ${keys.length} keys, ${values.length} values`);
616
587
  }
617
- var qDim = (_b = (_a = queries[0]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
618
- var kDim = (_d = (_c = keys[0]) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0;
619
- var vDim = (_f = (_e = values[0]) === null || _e === void 0 ? void 0 : _e.length) !== null && _f !== void 0 ? _f : 0;
588
+ const qDim = queries[0]?.length ?? 0;
589
+ const kDim = keys[0]?.length ?? 0;
590
+ const vDim = values[0]?.length ?? 0;
620
591
  if (qDim !== kDim) {
621
- throw new Error("FlashAttention: Query and key dimensions must match. Got Q=" + qDim + ", K=" + kDim);
592
+ throw new Error(`FlashAttention: Query and key dimensions must match. Got Q=${qDim}, K=${kDim}`);
622
593
  }
623
594
  if (kDim !== vDim) {
624
- throw new Error("FlashAttention: Key and value dimensions must match. Got K=" + kDim + ", V=" + vDim);
595
+ throw new Error(`FlashAttention: Key and value dimensions must match. Got K=${kDim}, V=${vDim}`);
625
596
  }
626
- };
627
- return FlashAttention;
628
- }());
629
- export { FlashAttention };
597
+ }
598
+ }
630
599
  // ============================================================================
631
600
  // Singleton Instance
632
601
  // ============================================================================
633
- var flashAttentionInstance = null;
602
+ let flashAttentionInstance = null;
634
603
  /**
635
604
  * Get singleton FlashAttention instance
636
605
  *
@@ -656,7 +625,7 @@ export function resetFlashAttention() {
656
625
  * Compute attention using Flash Attention
657
626
  */
658
627
  export function computeAttention(queries, keys, values, config) {
659
- var fa = config ? new FlashAttention(config) : getFlashAttention();
628
+ const fa = config ? new FlashAttention(config) : getFlashAttention();
660
629
  return fa.attention(queries, keys, values);
661
630
  }
662
631
  /**