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
@@ -15,12 +15,68 @@
15
15
  *
16
16
  * @module moe-router
17
17
  */
18
+ var __assign = (this && this.__assign) || function () {
19
+ __assign = Object.assign || function(t) {
20
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
21
+ s = arguments[i];
22
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
23
+ t[p] = s[p];
24
+ }
25
+ return t;
26
+ };
27
+ return __assign.apply(this, arguments);
28
+ };
29
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
30
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
31
+ return new (P || (P = Promise))(function (resolve, reject) {
32
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
33
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
34
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
35
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
36
+ });
37
+ };
38
+ var __generator = (this && this.__generator) || function (thisArg, body) {
39
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
40
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
41
+ function verb(n) { return function (v) { return step([n, v]); }; }
42
+ function step(op) {
43
+ if (f) throw new TypeError("Generator is already executing.");
44
+ while (_) try {
45
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
46
+ if (y = 0, t) op = [op[0] & 2, t.value];
47
+ switch (op[0]) {
48
+ case 0: case 1: t = op; break;
49
+ case 4: _.label++; return { value: op[1], done: false };
50
+ case 5: _.label++; y = op[1]; op = [0]; continue;
51
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
52
+ default:
53
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
54
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
55
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
56
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
57
+ if (t[2]) _.ops.pop();
58
+ _.trys.pop(); continue;
59
+ }
60
+ op = body.call(thisArg, _);
61
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
62
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
63
+ }
64
+ };
65
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
66
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
67
+ if (ar || !(i in from)) {
68
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
69
+ ar[i] = from[i];
70
+ }
71
+ }
72
+ return to.concat(ar || Array.prototype.slice.call(from));
73
+ };
18
74
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
19
75
  import { dirname } from 'path';
20
76
  /**
21
77
  * Expert names in order (index corresponds to expert slot)
22
78
  */
23
- export const EXPERT_NAMES = [
79
+ export var EXPERT_NAMES = [
24
80
  'coder',
25
81
  'tester',
26
82
  'reviewer',
@@ -33,19 +89,19 @@ export const EXPERT_NAMES = [
33
89
  /**
34
90
  * Number of experts (fixed at 8)
35
91
  */
36
- export const NUM_EXPERTS = 8;
92
+ export var NUM_EXPERTS = 8;
37
93
  /**
38
94
  * Input dimension (384 from ONNX MiniLM-L6-v2)
39
95
  */
40
- export const INPUT_DIM = 384;
96
+ export var INPUT_DIM = 384;
41
97
  /**
42
98
  * Hidden layer dimension
43
99
  */
44
- export const HIDDEN_DIM = 128;
100
+ export var HIDDEN_DIM = 128;
45
101
  /**
46
102
  * Default configuration
47
103
  */
48
- const DEFAULT_CONFIG = {
104
+ var DEFAULT_CONFIG = {
49
105
  topK: 2,
50
106
  learningRate: 0.01,
51
107
  temperature: 1.0,
@@ -53,7 +109,7 @@ const DEFAULT_CONFIG = {
53
109
  weightsPath: '.swarm/moe-weights.json',
54
110
  autoSaveInterval: 50,
55
111
  enableNoise: true,
56
- noiseStd: 0.1,
112
+ noiseStd: 0.1
57
113
  };
58
114
  // ============================================================================
59
115
  // Matrix Operations
@@ -62,13 +118,13 @@ const DEFAULT_CONFIG = {
62
118
  * Initialize weights using Xavier/Glorot initialization
63
119
  */
64
120
  function xavierInit(fanIn, fanOut) {
65
- const std = Math.sqrt(2.0 / (fanIn + fanOut));
66
- const weights = new Float32Array(fanIn * fanOut);
67
- for (let i = 0; i < weights.length; i++) {
121
+ var std = Math.sqrt(2.0 / (fanIn + fanOut));
122
+ var weights = new Float32Array(fanIn * fanOut);
123
+ for (var i = 0; i < weights.length; i++) {
68
124
  // Box-Muller transform for normal distribution
69
- const u1 = Math.random();
70
- const u2 = Math.random();
71
- const z = Math.sqrt(-2 * Math.log(u1 + 1e-8)) * Math.cos(2 * Math.PI * u2);
125
+ var u1 = Math.random();
126
+ var u2 = Math.random();
127
+ var z = Math.sqrt(-2 * Math.log(u1 + 1e-8)) * Math.cos(2 * Math.PI * u2);
72
128
  weights[i] = z * std;
73
129
  }
74
130
  return weights;
@@ -78,11 +134,11 @@ function xavierInit(fanIn, fanOut) {
78
134
  * W is stored row-major: [rows * cols]
79
135
  */
80
136
  function matmul(W, x, rows, cols, out) {
81
- for (let i = 0; i < rows; i++) {
82
- let sum = 0;
83
- const rowOffset = i * cols;
137
+ for (var i = 0; i < rows; i++) {
138
+ var sum = 0;
139
+ var rowOffset = i * cols;
84
140
  // 4x loop unrolling for SIMD-friendly access
85
- let j = 0;
141
+ var j = 0;
86
142
  for (; j + 3 < cols; j += 4) {
87
143
  sum +=
88
144
  W[rowOffset + j] * x[j] +
@@ -101,7 +157,7 @@ function matmul(W, x, rows, cols, out) {
101
157
  * Vector addition: y = x + b
102
158
  */
103
159
  function addBias(x, b, out) {
104
- for (let i = 0; i < x.length; i++) {
160
+ for (var i = 0; i < x.length; i++) {
105
161
  out[i] = x[i] + b[i];
106
162
  }
107
163
  }
@@ -109,7 +165,7 @@ function addBias(x, b, out) {
109
165
  * ReLU activation: y = max(0, x)
110
166
  */
111
167
  function relu(x, out) {
112
- for (let i = 0; i < x.length; i++) {
168
+ for (var i = 0; i < x.length; i++) {
113
169
  out[i] = x[i] > 0 ? x[i] : 0;
114
170
  }
115
171
  }
@@ -118,20 +174,20 @@ function relu(x, out) {
118
174
  */
119
175
  function softmax(x, temperature, out) {
120
176
  // Find max for numerical stability
121
- let maxVal = x[0];
122
- for (let i = 1; i < x.length; i++) {
177
+ var maxVal = x[0];
178
+ for (var i = 1; i < x.length; i++) {
123
179
  if (x[i] > maxVal)
124
180
  maxVal = x[i];
125
181
  }
126
182
  // Compute exp and sum
127
- let sum = 0;
128
- for (let i = 0; i < x.length; i++) {
183
+ var sum = 0;
184
+ for (var i = 0; i < x.length; i++) {
129
185
  out[i] = Math.exp((x[i] - maxVal) / temperature);
130
186
  sum += out[i];
131
187
  }
132
188
  // Normalize
133
- const invSum = 1.0 / (sum + 1e-8);
134
- for (let i = 0; i < x.length; i++) {
189
+ var invSum = 1.0 / (sum + 1e-8);
190
+ for (var i = 0; i < x.length; i++) {
135
191
  out[i] *= invSum;
136
192
  }
137
193
  }
@@ -139,8 +195,8 @@ function softmax(x, temperature, out) {
139
195
  * Compute entropy of distribution: H = -sum(p * log(p))
140
196
  */
141
197
  function entropy(p) {
142
- let h = 0;
143
- for (let i = 0; i < p.length; i++) {
198
+ var h = 0;
199
+ for (var i = 0; i < p.length; i++) {
144
200
  if (p[i] > 1e-8) {
145
201
  h -= p[i] * Math.log(p[i]);
146
202
  }
@@ -151,10 +207,10 @@ function entropy(p) {
151
207
  * Add Gaussian noise for exploration
152
208
  */
153
209
  function addNoise(x, std, out) {
154
- for (let i = 0; i < x.length; i++) {
155
- const u1 = Math.random();
156
- const u2 = Math.random();
157
- const z = Math.sqrt(-2 * Math.log(u1 + 1e-8)) * Math.cos(2 * Math.PI * u2);
210
+ for (var i = 0; i < x.length; i++) {
211
+ var u1 = Math.random();
212
+ var u2 = Math.random();
213
+ var z = Math.sqrt(-2 * Math.log(u1 + 1e-8)) * Math.cos(2 * Math.PI * u2);
158
214
  out[i] = x[i] + z * std;
159
215
  }
160
216
  }
@@ -170,39 +226,18 @@ function addNoise(x, std, out) {
170
226
  *
171
227
  * Uses top-k expert selection with load balancing.
172
228
  */
173
- export class MoERouter {
174
- config;
175
- // Network weights (pre-allocated Float32Arrays)
176
- W1; // [HIDDEN_DIM x INPUT_DIM]
177
- b1; // [HIDDEN_DIM]
178
- W2; // [NUM_EXPERTS x HIDDEN_DIM]
179
- b2; // [NUM_EXPERTS]
180
- // Intermediate buffers (pre-allocated, no GC pressure)
181
- hidden; // [HIDDEN_DIM]
182
- hiddenWithBias; // [HIDDEN_DIM]
183
- hiddenActivated; // [HIDDEN_DIM]
184
- logits; // [NUM_EXPERTS]
185
- logitsWithBias; // [NUM_EXPERTS]
186
- noisyLogits; // [NUM_EXPERTS]
187
- probs; // [NUM_EXPERTS]
188
- // Gradient buffers for online learning
189
- gradW2; // [NUM_EXPERTS x HIDDEN_DIM]
190
- gradb2; // [NUM_EXPERTS]
191
- gradW1; // [HIDDEN_DIM x INPUT_DIM]
192
- gradb1; // [HIDDEN_DIM]
193
- gradHidden; // [HIDDEN_DIM]
194
- // Statistics
195
- routingCounts; // [NUM_EXPERTS]
196
- totalRoutings = 0;
197
- updateCount = 0;
198
- avgReward = 0;
199
- // Cache for last input (for gradient computation)
200
- lastInput = null;
201
- lastHiddenActivated = null;
202
- lastProbs = null;
203
- lastSelectedExperts = [];
204
- constructor(config = {}) {
205
- this.config = { ...DEFAULT_CONFIG, ...config };
229
+ var MoERouter = /** @class */ (function () {
230
+ function MoERouter(config) {
231
+ if (config === void 0) { config = {}; }
232
+ this.totalRoutings = 0;
233
+ this.updateCount = 0;
234
+ this.avgReward = 0;
235
+ // Cache for last input (for gradient computation)
236
+ this.lastInput = null;
237
+ this.lastHiddenActivated = null;
238
+ this.lastProbs = null;
239
+ this.lastSelectedExperts = [];
240
+ this.config = __assign(__assign({}, DEFAULT_CONFIG), config);
206
241
  // Initialize weights
207
242
  this.W1 = xavierInit(INPUT_DIM, HIDDEN_DIM);
208
243
  this.b1 = new Float32Array(HIDDEN_DIM);
@@ -228,23 +263,33 @@ export class MoERouter {
228
263
  /**
229
264
  * Initialize router, loading persisted weights if available
230
265
  */
231
- async initialize() {
232
- await this.loadWeights();
233
- }
266
+ MoERouter.prototype.initialize = function () {
267
+ return __awaiter(this, void 0, Promise, function () {
268
+ return __generator(this, function (_a) {
269
+ switch (_a.label) {
270
+ case 0: return [4 /*yield*/, this.loadWeights()];
271
+ case 1:
272
+ _a.sent();
273
+ return [2 /*return*/];
274
+ }
275
+ });
276
+ });
277
+ };
234
278
  /**
235
279
  * Route task to top-k experts based on embedding
236
280
  *
237
281
  * @param taskEmbedding - 384-dim task embedding from ONNX
238
282
  * @returns Routing result with selected experts and weights
239
283
  */
240
- route(taskEmbedding) {
284
+ MoERouter.prototype.route = function (taskEmbedding) {
285
+ var _this = this;
241
286
  // Convert to Float32Array if needed
242
- const input = taskEmbedding instanceof Float32Array
287
+ var input = taskEmbedding instanceof Float32Array
243
288
  ? taskEmbedding
244
289
  : new Float32Array(taskEmbedding);
245
290
  // Validate input dimension
246
291
  if (input.length !== INPUT_DIM) {
247
- throw new Error(`Expected embedding dimension ${INPUT_DIM}, got ${input.length}`);
292
+ throw new Error("Expected embedding dimension " + INPUT_DIM + ", got " + input.length);
248
293
  }
249
294
  // Forward pass through gating network
250
295
  // Layer 1: Linear + ReLU
@@ -264,13 +309,14 @@ export class MoERouter {
264
309
  // Softmax to get probabilities
265
310
  softmax(this.noisyLogits, this.config.temperature, this.probs);
266
311
  // Select top-k experts
267
- const expertIndices = this.selectTopK(this.probs, this.config.topK);
312
+ var expertIndices = this.selectTopK(this.probs, this.config.topK);
268
313
  // Compute load balance loss
269
- const loadBalanceLoss = this.computeLoadBalanceLoss();
314
+ var loadBalanceLoss = this.computeLoadBalanceLoss();
270
315
  // Compute entropy
271
- const routingEntropy = entropy(this.probs);
316
+ var routingEntropy = entropy(this.probs);
272
317
  // Update statistics
273
- for (const idx of expertIndices) {
318
+ for (var _i = 0, expertIndices_1 = expertIndices; _i < expertIndices_1.length; _i++) {
319
+ var idx = expertIndices_1[_i];
274
320
  this.routingCounts[idx]++;
275
321
  }
276
322
  this.totalRoutings++;
@@ -280,20 +326,20 @@ export class MoERouter {
280
326
  this.lastProbs = new Float32Array(this.probs);
281
327
  this.lastSelectedExperts = expertIndices;
282
328
  // Build result
283
- const totalWeight = expertIndices.reduce((sum, idx) => sum + this.probs[idx], 0);
284
- const experts = expertIndices.map((idx) => ({
329
+ var totalWeight = expertIndices.reduce(function (sum, idx) { return sum + _this.probs[idx]; }, 0);
330
+ var experts = expertIndices.map(function (idx) { return ({
285
331
  name: EXPERT_NAMES[idx],
286
332
  index: idx,
287
- weight: this.probs[idx] / (totalWeight + 1e-8), // Normalize weights
288
- score: this.probs[idx],
289
- }));
333
+ weight: _this.probs[idx] / (totalWeight + 1e-8),
334
+ score: _this.probs[idx]
335
+ }); });
290
336
  return {
291
- experts,
337
+ experts: experts,
292
338
  allScores: Array.from(this.probs),
293
- loadBalanceLoss,
294
- entropy: routingEntropy,
339
+ loadBalanceLoss: loadBalanceLoss,
340
+ entropy: routingEntropy
295
341
  };
296
- }
342
+ };
297
343
  /**
298
344
  * Update expert weights based on reward signal
299
345
  *
@@ -303,10 +349,10 @@ export class MoERouter {
303
349
  * @param expert - Expert that received the reward
304
350
  * @param reward - Reward signal (-1 to 1, positive = good)
305
351
  */
306
- updateExpertWeights(expert, reward) {
307
- const expertIdx = typeof expert === 'number' ? expert : EXPERT_NAMES.indexOf(expert);
352
+ MoERouter.prototype.updateExpertWeights = function (expert, reward) {
353
+ var expertIdx = typeof expert === 'number' ? expert : EXPERT_NAMES.indexOf(expert);
308
354
  if (expertIdx < 0 || expertIdx >= NUM_EXPERTS) {
309
- console.warn(`[MoE] Invalid expert: ${expert}`);
355
+ console.warn("[MoE] Invalid expert: " + expert);
310
356
  return;
311
357
  }
312
358
  if (!this.lastInput || !this.lastHiddenActivated || !this.lastProbs) {
@@ -314,7 +360,7 @@ export class MoERouter {
314
360
  return;
315
361
  }
316
362
  // Clamp reward to [-1, 1]
317
- const clampedReward = Math.max(-1, Math.min(1, reward));
363
+ var clampedReward = Math.max(-1, Math.min(1, reward));
318
364
  // Compute gradients using REINFORCE
319
365
  // For softmax: d_log_p_i / d_logit_j = delta_ij - p_j
320
366
  // gradient = reward * (1 - p_expert) for selected expert
@@ -326,7 +372,7 @@ export class MoERouter {
326
372
  this.gradb1.fill(0);
327
373
  this.gradHidden.fill(0);
328
374
  // Gradient w.r.t. logits (before softmax)
329
- for (let i = 0; i < NUM_EXPERTS; i++) {
375
+ for (var i = 0; i < NUM_EXPERTS; i++) {
330
376
  if (i === expertIdx) {
331
377
  this.gradb2[i] = clampedReward * (1 - this.lastProbs[i]);
332
378
  }
@@ -335,22 +381,22 @@ export class MoERouter {
335
381
  }
336
382
  }
337
383
  // Gradient w.r.t. W2: outer product of gradb2 and hiddenActivated
338
- for (let i = 0; i < NUM_EXPERTS; i++) {
339
- const rowOffset = i * HIDDEN_DIM;
340
- for (let j = 0; j < HIDDEN_DIM; j++) {
384
+ for (var i = 0; i < NUM_EXPERTS; i++) {
385
+ var rowOffset = i * HIDDEN_DIM;
386
+ for (var j = 0; j < HIDDEN_DIM; j++) {
341
387
  this.gradW2[rowOffset + j] = this.gradb2[i] * this.lastHiddenActivated[j];
342
388
  }
343
389
  }
344
390
  // Backprop through W2 to get gradient w.r.t. hidden
345
- for (let j = 0; j < HIDDEN_DIM; j++) {
346
- let sum = 0;
347
- for (let i = 0; i < NUM_EXPERTS; i++) {
391
+ for (var j = 0; j < HIDDEN_DIM; j++) {
392
+ var sum = 0;
393
+ for (var i = 0; i < NUM_EXPERTS; i++) {
348
394
  sum += this.gradb2[i] * this.W2[i * HIDDEN_DIM + j];
349
395
  }
350
396
  this.gradHidden[j] = sum;
351
397
  }
352
398
  // Backprop through ReLU: gradient is 0 where activation was 0
353
- for (let j = 0; j < HIDDEN_DIM; j++) {
399
+ for (var j = 0; j < HIDDEN_DIM; j++) {
354
400
  if (this.lastHiddenActivated[j] <= 0) {
355
401
  this.gradHidden[j] = 0;
356
402
  }
@@ -358,24 +404,24 @@ export class MoERouter {
358
404
  // Gradient w.r.t. b1
359
405
  this.gradb1.set(this.gradHidden);
360
406
  // Gradient w.r.t. W1: outer product of gradHidden and input
361
- for (let i = 0; i < HIDDEN_DIM; i++) {
362
- const rowOffset = i * INPUT_DIM;
363
- for (let j = 0; j < INPUT_DIM; j++) {
407
+ for (var i = 0; i < HIDDEN_DIM; i++) {
408
+ var rowOffset = i * INPUT_DIM;
409
+ for (var j = 0; j < INPUT_DIM; j++) {
364
410
  this.gradW1[rowOffset + j] = this.gradHidden[i] * this.lastInput[j];
365
411
  }
366
412
  }
367
413
  // Apply gradients with learning rate
368
- const lr = this.config.learningRate;
369
- for (let i = 0; i < this.W2.length; i++) {
414
+ var lr = this.config.learningRate;
415
+ for (var i = 0; i < this.W2.length; i++) {
370
416
  this.W2[i] += lr * this.gradW2[i];
371
417
  }
372
- for (let i = 0; i < this.b2.length; i++) {
418
+ for (var i = 0; i < this.b2.length; i++) {
373
419
  this.b2[i] += lr * this.gradb2[i];
374
420
  }
375
- for (let i = 0; i < this.W1.length; i++) {
421
+ for (var i = 0; i < this.W1.length; i++) {
376
422
  this.W1[i] += lr * this.gradW1[i];
377
423
  }
378
- for (let i = 0; i < this.b1.length; i++) {
424
+ for (var i = 0; i < this.b1.length; i++) {
379
425
  this.b1[i] += lr * this.gradb1[i];
380
426
  }
381
427
  // Update statistics
@@ -384,44 +430,44 @@ export class MoERouter {
384
430
  // Auto-save
385
431
  if (this.config.autoSaveInterval > 0 &&
386
432
  this.updateCount % this.config.autoSaveInterval === 0) {
387
- this.saveWeights().catch(() => { }); // Fire and forget
433
+ this.saveWeights()["catch"](function () { }); // Fire and forget
388
434
  }
389
- }
435
+ };
390
436
  /**
391
437
  * Get load balance statistics across all experts
392
438
  */
393
- getLoadBalance() {
394
- const counts = {};
395
- const utilization = {};
396
- const total = this.totalRoutings || 1;
397
- const idealUtilization = 1 / NUM_EXPERTS;
398
- for (let i = 0; i < NUM_EXPERTS; i++) {
399
- const name = EXPERT_NAMES[i];
439
+ MoERouter.prototype.getLoadBalance = function () {
440
+ var counts = {};
441
+ var utilization = {};
442
+ var total = this.totalRoutings || 1;
443
+ var idealUtilization = 1 / NUM_EXPERTS;
444
+ for (var i = 0; i < NUM_EXPERTS; i++) {
445
+ var name = EXPERT_NAMES[i];
400
446
  counts[name] = this.routingCounts[i];
401
447
  utilization[name] = this.routingCounts[i] / total;
402
448
  }
403
449
  // Compute Gini coefficient
404
- const gini = this.computeGiniCoefficient();
450
+ var gini = this.computeGiniCoefficient();
405
451
  // Compute coefficient of variation
406
- const mean = total / NUM_EXPERTS;
407
- let variance = 0;
408
- for (let i = 0; i < NUM_EXPERTS; i++) {
452
+ var mean = total / NUM_EXPERTS;
453
+ var variance = 0;
454
+ for (var i = 0; i < NUM_EXPERTS; i++) {
409
455
  variance += Math.pow(this.routingCounts[i] - mean, 2);
410
456
  }
411
457
  variance /= NUM_EXPERTS;
412
- const cv = Math.sqrt(variance) / (mean + 1e-8);
458
+ var cv = Math.sqrt(variance) / (mean + 1e-8);
413
459
  return {
414
- utilization,
460
+ utilization: utilization,
415
461
  totalRoutings: this.totalRoutings,
416
462
  routingCounts: counts,
417
463
  giniCoefficient: gini,
418
- coefficientOfVariation: cv,
464
+ coefficientOfVariation: cv
419
465
  };
420
- }
466
+ };
421
467
  /**
422
468
  * Get router statistics
423
469
  */
424
- getStats() {
470
+ MoERouter.prototype.getStats = function () {
425
471
  return {
426
472
  totalRoutings: this.totalRoutings,
427
473
  updateCount: this.updateCount,
@@ -429,129 +475,139 @@ export class MoERouter {
429
475
  topK: this.config.topK,
430
476
  temperature: this.config.temperature,
431
477
  learningRate: this.config.learningRate,
432
- giniCoefficient: this.computeGiniCoefficient(),
478
+ giniCoefficient: this.computeGiniCoefficient()
433
479
  };
434
- }
480
+ };
435
481
  /**
436
482
  * Reset all statistics and routing counts
437
483
  */
438
- resetStats() {
484
+ MoERouter.prototype.resetStats = function () {
439
485
  this.routingCounts.fill(0);
440
486
  this.totalRoutings = 0;
441
487
  this.updateCount = 0;
442
488
  this.avgReward = 0;
443
- }
489
+ };
444
490
  /**
445
491
  * Load weights from persistence file
446
492
  */
447
- async loadWeights(path) {
448
- const weightsPath = path || this.config.weightsPath;
449
- try {
450
- if (!existsSync(weightsPath)) {
451
- return false;
452
- }
453
- const data = readFileSync(weightsPath, 'utf-8');
454
- const model = JSON.parse(data);
455
- // Validate version
456
- if (!model.version || !model.version.startsWith('1.')) {
457
- console.warn(`[MoE] Incompatible model version: ${model.version}`);
458
- return false;
459
- }
460
- // Load weights
461
- this.W1 = new Float32Array(model.weights.W1.flat());
462
- this.b1 = new Float32Array(model.weights.b1);
463
- this.W2 = new Float32Array(model.weights.W2.flat());
464
- this.b2 = new Float32Array(model.weights.b2);
465
- // Load stats
466
- this.updateCount = model.stats.updateCount || 0;
467
- this.avgReward = model.stats.avgReward || 0;
468
- this.routingCounts = new Float32Array(model.stats.routingCounts || new Array(NUM_EXPERTS).fill(0));
469
- this.totalRoutings = this.routingCounts.reduce((a, b) => a + b, 0);
470
- return true;
471
- }
472
- catch (err) {
473
- console.warn(`[MoE] Failed to load weights: ${err}`);
474
- return false;
475
- }
476
- }
493
+ MoERouter.prototype.loadWeights = function (path) {
494
+ return __awaiter(this, void 0, Promise, function () {
495
+ var weightsPath, data, model;
496
+ return __generator(this, function (_a) {
497
+ weightsPath = path || this.config.weightsPath;
498
+ try {
499
+ if (!existsSync(weightsPath)) {
500
+ return [2 /*return*/, false];
501
+ }
502
+ data = readFileSync(weightsPath, 'utf-8');
503
+ model = JSON.parse(data);
504
+ // Validate version
505
+ if (!model.version || !model.version.startsWith('1.')) {
506
+ console.warn("[MoE] Incompatible model version: " + model.version);
507
+ return [2 /*return*/, false];
508
+ }
509
+ // Load weights
510
+ this.W1 = new Float32Array(model.weights.W1.flat());
511
+ this.b1 = new Float32Array(model.weights.b1);
512
+ this.W2 = new Float32Array(model.weights.W2.flat());
513
+ this.b2 = new Float32Array(model.weights.b2);
514
+ // Load stats
515
+ this.updateCount = model.stats.updateCount || 0;
516
+ this.avgReward = model.stats.avgReward || 0;
517
+ this.routingCounts = new Float32Array(model.stats.routingCounts || new Array(NUM_EXPERTS).fill(0));
518
+ this.totalRoutings = this.routingCounts.reduce(function (a, b) { return a + b; }, 0);
519
+ return [2 /*return*/, true];
520
+ }
521
+ catch (err) {
522
+ console.warn("[MoE] Failed to load weights: " + err);
523
+ return [2 /*return*/, false];
524
+ }
525
+ return [2 /*return*/];
526
+ });
527
+ });
528
+ };
477
529
  /**
478
530
  * Save weights to persistence file
479
531
  */
480
- async saveWeights(path) {
481
- const weightsPath = path || this.config.weightsPath;
482
- try {
483
- // Ensure directory exists
484
- const dir = dirname(weightsPath);
485
- if (!existsSync(dir)) {
486
- mkdirSync(dir, { recursive: true });
487
- }
488
- // Convert Float32Arrays to nested arrays for JSON
489
- const W1_2d = [];
490
- for (let i = 0; i < HIDDEN_DIM; i++) {
491
- W1_2d.push(Array.from(this.W1.slice(i * INPUT_DIM, (i + 1) * INPUT_DIM)));
492
- }
493
- const W2_2d = [];
494
- for (let i = 0; i < NUM_EXPERTS; i++) {
495
- W2_2d.push(Array.from(this.W2.slice(i * HIDDEN_DIM, (i + 1) * HIDDEN_DIM)));
496
- }
497
- const model = {
498
- version: '1.0.0',
499
- config: {
500
- topK: this.config.topK,
501
- temperature: this.config.temperature,
502
- learningRate: this.config.learningRate,
503
- loadBalanceCoef: this.config.loadBalanceCoef,
504
- },
505
- weights: {
506
- W1: W1_2d,
507
- b1: Array.from(this.b1),
508
- W2: W2_2d,
509
- b2: Array.from(this.b2),
510
- },
511
- stats: {
512
- updateCount: this.updateCount,
513
- routingCounts: Array.from(this.routingCounts),
514
- avgReward: this.avgReward,
515
- },
516
- metadata: {
517
- savedAt: new Date().toISOString(),
518
- expertNames: [...EXPERT_NAMES],
519
- },
520
- };
521
- writeFileSync(weightsPath, JSON.stringify(model, null, 2));
522
- return true;
523
- }
524
- catch (err) {
525
- console.warn(`[MoE] Failed to save weights: ${err}`);
526
- return false;
527
- }
528
- }
532
+ MoERouter.prototype.saveWeights = function (path) {
533
+ return __awaiter(this, void 0, Promise, function () {
534
+ var weightsPath, dir, W1_2d, i, W2_2d, i, model;
535
+ return __generator(this, function (_a) {
536
+ weightsPath = path || this.config.weightsPath;
537
+ try {
538
+ dir = dirname(weightsPath);
539
+ if (!existsSync(dir)) {
540
+ mkdirSync(dir, { recursive: true });
541
+ }
542
+ W1_2d = [];
543
+ for (i = 0; i < HIDDEN_DIM; i++) {
544
+ W1_2d.push(Array.from(this.W1.slice(i * INPUT_DIM, (i + 1) * INPUT_DIM)));
545
+ }
546
+ W2_2d = [];
547
+ for (i = 0; i < NUM_EXPERTS; i++) {
548
+ W2_2d.push(Array.from(this.W2.slice(i * HIDDEN_DIM, (i + 1) * HIDDEN_DIM)));
549
+ }
550
+ model = {
551
+ version: '1.0.0',
552
+ config: {
553
+ topK: this.config.topK,
554
+ temperature: this.config.temperature,
555
+ learningRate: this.config.learningRate,
556
+ loadBalanceCoef: this.config.loadBalanceCoef
557
+ },
558
+ weights: {
559
+ W1: W1_2d,
560
+ b1: Array.from(this.b1),
561
+ W2: W2_2d,
562
+ b2: Array.from(this.b2)
563
+ },
564
+ stats: {
565
+ updateCount: this.updateCount,
566
+ routingCounts: Array.from(this.routingCounts),
567
+ avgReward: this.avgReward
568
+ },
569
+ metadata: {
570
+ savedAt: new Date().toISOString(),
571
+ expertNames: __spreadArray([], EXPERT_NAMES, true)
572
+ }
573
+ };
574
+ writeFileSync(weightsPath, JSON.stringify(model, null, 2));
575
+ return [2 /*return*/, true];
576
+ }
577
+ catch (err) {
578
+ console.warn("[MoE] Failed to save weights: " + err);
579
+ return [2 /*return*/, false];
580
+ }
581
+ return [2 /*return*/];
582
+ });
583
+ });
584
+ };
529
585
  /**
530
586
  * Reset weights to random initialization
531
587
  */
532
- resetWeights() {
588
+ MoERouter.prototype.resetWeights = function () {
533
589
  this.W1 = xavierInit(INPUT_DIM, HIDDEN_DIM);
534
590
  this.b1.fill(0);
535
591
  this.W2 = xavierInit(HIDDEN_DIM, NUM_EXPERTS);
536
592
  this.b2.fill(0);
537
593
  this.resetStats();
538
- }
594
+ };
539
595
  // ============================================================================
540
596
  // Private Methods
541
597
  // ============================================================================
542
598
  /**
543
599
  * Select top-k indices from probabilities
544
600
  */
545
- selectTopK(probs, k) {
601
+ MoERouter.prototype.selectTopK = function (probs, k) {
546
602
  // Create index-value pairs and sort by value descending
547
- const pairs = [];
548
- for (let i = 0; i < probs.length; i++) {
603
+ var pairs = [];
604
+ for (var i = 0; i < probs.length; i++) {
549
605
  pairs.push([i, probs[i]]);
550
606
  }
551
- pairs.sort((a, b) => b[1] - a[1]);
607
+ pairs.sort(function (a, b) { return b[1] - a[1]; });
552
608
  // Return top-k indices
553
- return pairs.slice(0, k).map((p) => p[0]);
554
- }
609
+ return pairs.slice(0, k).map(function (p) { return p[0]; });
610
+ };
555
611
  /**
556
612
  * Compute load balance loss for regularization
557
613
  *
@@ -560,41 +616,43 @@ export class MoERouter {
560
616
  * where f_i = fraction of tokens routed to expert i
561
617
  * P_i = average routing probability to expert i
562
618
  */
563
- computeLoadBalanceLoss() {
619
+ MoERouter.prototype.computeLoadBalanceLoss = function () {
564
620
  if (this.totalRoutings === 0)
565
621
  return 0;
566
- let loss = 0;
567
- for (let i = 0; i < NUM_EXPERTS; i++) {
568
- const fraction = this.routingCounts[i] / this.totalRoutings;
569
- const avgProb = this.probs[i]; // Current routing prob
622
+ var loss = 0;
623
+ for (var i = 0; i < NUM_EXPERTS; i++) {
624
+ var fraction = this.routingCounts[i] / this.totalRoutings;
625
+ var avgProb = this.probs[i]; // Current routing prob
570
626
  loss += fraction * avgProb;
571
627
  }
572
628
  return NUM_EXPERTS * loss * this.config.loadBalanceCoef;
573
- }
629
+ };
574
630
  /**
575
631
  * Compute Gini coefficient for load distribution
576
632
  */
577
- computeGiniCoefficient() {
633
+ MoERouter.prototype.computeGiniCoefficient = function () {
578
634
  if (this.totalRoutings === 0)
579
635
  return 0;
580
636
  // Sort counts
581
- const sorted = Array.from(this.routingCounts).sort((a, b) => a - b);
582
- const n = sorted.length;
583
- const mean = this.totalRoutings / n;
637
+ var sorted = Array.from(this.routingCounts).sort(function (a, b) { return a - b; });
638
+ var n = sorted.length;
639
+ var mean = this.totalRoutings / n;
584
640
  // Compute Gini using the formula: G = (2 * sum(i * x_i) - (n+1) * sum(x_i)) / (n * sum(x_i))
585
- let weightedSum = 0;
586
- for (let i = 0; i < n; i++) {
641
+ var weightedSum = 0;
642
+ for (var i = 0; i < n; i++) {
587
643
  weightedSum += (i + 1) * sorted[i];
588
644
  }
589
- const gini = (2 * weightedSum - (n + 1) * this.totalRoutings) /
645
+ var gini = (2 * weightedSum - (n + 1) * this.totalRoutings) /
590
646
  (n * this.totalRoutings + 1e-8);
591
647
  return Math.max(0, gini);
592
- }
593
- }
648
+ };
649
+ return MoERouter;
650
+ }());
651
+ export { MoERouter };
594
652
  // ============================================================================
595
653
  // Singleton Instance
596
654
  // ============================================================================
597
- let moeRouterInstance = null;
655
+ var moeRouterInstance = null;
598
656
  /**
599
657
  * Get singleton MoE router instance
600
658
  *
@@ -605,7 +663,7 @@ export function getMoERouter(config) {
605
663
  if (!moeRouterInstance) {
606
664
  moeRouterInstance = new MoERouter(config);
607
665
  // Initialize in background (load weights)
608
- moeRouterInstance.initialize().catch((err) => {
666
+ moeRouterInstance.initialize()["catch"](function (err) {
609
667
  console.warn('[MoE] Failed to initialize router:', err);
610
668
  });
611
669
  }