kynjal-cli 3.1.3 → 4.0.0

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