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
@@ -8,12 +8,59 @@
8
8
  * - No actual distributed coordination
9
9
  * - Useful for single-machine workflow orchestration
10
10
  */
11
+ var __assign = (this && this.__assign) || function () {
12
+ __assign = Object.assign || function(t) {
13
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
14
+ s = arguments[i];
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
16
+ t[p] = s[p];
17
+ }
18
+ return t;
19
+ };
20
+ return __assign.apply(this, arguments);
21
+ };
22
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
23
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
24
+ return new (P || (P = Promise))(function (resolve, reject) {
25
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
26
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
27
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
28
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
29
+ });
30
+ };
31
+ var __generator = (this && this.__generator) || function (thisArg, body) {
32
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
33
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
34
+ function verb(n) { return function (v) { return step([n, v]); }; }
35
+ function step(op) {
36
+ if (f) throw new TypeError("Generator is already executing.");
37
+ while (_) try {
38
+ 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;
39
+ if (y = 0, t) op = [op[0] & 2, t.value];
40
+ switch (op[0]) {
41
+ case 0: case 1: t = op; break;
42
+ case 4: _.label++; return { value: op[1], done: false };
43
+ case 5: _.label++; y = op[1]; op = [0]; continue;
44
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
45
+ default:
46
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
47
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
48
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
49
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
50
+ if (t[2]) _.ops.pop();
51
+ _.trys.pop(); continue;
52
+ }
53
+ op = body.call(thisArg, _);
54
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
55
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
56
+ }
57
+ };
11
58
  import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
12
59
  import { join } from 'node:path';
13
60
  // Storage paths
14
- const STORAGE_DIR = '.claude-flow';
15
- const COORD_DIR = 'coordination';
16
- const COORD_FILE = 'store.json';
61
+ var STORAGE_DIR = '.claude-flow';
62
+ var COORD_DIR = 'coordination';
63
+ var COORD_FILE = 'store.json';
17
64
  function getCoordDir() {
18
65
  return join(process.cwd(), STORAGE_DIR, COORD_DIR);
19
66
  }
@@ -21,19 +68,19 @@ function getCoordPath() {
21
68
  return join(getCoordDir(), COORD_FILE);
22
69
  }
23
70
  function ensureCoordDir() {
24
- const dir = getCoordDir();
71
+ var dir = getCoordDir();
25
72
  if (!existsSync(dir)) {
26
73
  mkdirSync(dir, { recursive: true });
27
74
  }
28
75
  }
29
76
  function loadCoordStore() {
30
77
  try {
31
- const path = getCoordPath();
78
+ var path = getCoordPath();
32
79
  if (existsSync(path)) {
33
80
  return JSON.parse(readFileSync(path, 'utf-8'));
34
81
  }
35
82
  }
36
- catch {
83
+ catch (_a) {
37
84
  // Return default store
38
85
  }
39
86
  return {
@@ -41,28 +88,28 @@ function loadCoordStore() {
41
88
  type: 'hierarchical',
42
89
  maxNodes: 15,
43
90
  redundancy: 2,
44
- consensusAlgorithm: 'raft',
91
+ consensusAlgorithm: 'raft'
45
92
  },
46
93
  loadBalance: {
47
94
  algorithm: 'adaptive',
48
95
  weights: {},
49
- healthCheck: true,
96
+ healthCheck: true
50
97
  },
51
98
  sync: {
52
99
  lastSync: new Date().toISOString(),
53
100
  syncCount: 0,
54
101
  conflicts: 0,
55
- pendingChanges: 0,
102
+ pendingChanges: 0
56
103
  },
57
104
  nodes: {},
58
- version: '3.0.0',
105
+ version: '3.0.0'
59
106
  };
60
107
  }
61
108
  function saveCoordStore(store) {
62
109
  ensureCoordDir();
63
110
  writeFileSync(getCoordPath(), JSON.stringify(store, null, 2), 'utf-8');
64
111
  }
65
- export const coordinationTools = [
112
+ export var coordinationTools = [
66
113
  {
67
114
  name: 'coordination_topology',
68
115
  description: 'Configure swarm topology',
@@ -70,67 +117,69 @@ export const coordinationTools = [
70
117
  inputSchema: {
71
118
  type: 'object',
72
119
  properties: {
73
- action: { type: 'string', enum: ['get', 'set', 'optimize'], description: 'Action to perform' },
74
- type: { type: 'string', enum: ['mesh', 'hierarchical', 'ring', 'star', 'hybrid', 'hierarchical-mesh'], description: 'Topology type' },
120
+ action: { type: 'string', "enum": ['get', 'set', 'optimize'], description: 'Action to perform' },
121
+ type: { type: 'string', "enum": ['mesh', 'hierarchical', 'ring', 'star', 'hybrid', 'hierarchical-mesh'], description: 'Topology type' },
75
122
  maxNodes: { type: 'number', description: 'Maximum nodes' },
76
123
  redundancy: { type: 'number', description: 'Redundancy level' },
77
- consensusAlgorithm: { type: 'string', enum: ['raft', 'byzantine', 'gossip', 'crdt'], description: 'Consensus algorithm' },
78
- },
79
- },
80
- handler: async (input) => {
81
- const store = loadCoordStore();
82
- const action = input.action || 'get';
83
- if (action === 'get') {
84
- return {
85
- success: true,
86
- topology: store.topology,
87
- nodes: Object.keys(store.nodes).length,
88
- status: 'active',
89
- };
90
- }
91
- if (action === 'set') {
92
- if (input.type)
93
- store.topology.type = input.type;
94
- if (input.maxNodes)
95
- store.topology.maxNodes = input.maxNodes;
96
- if (input.redundancy)
97
- store.topology.redundancy = input.redundancy;
98
- if (input.consensusAlgorithm)
99
- store.topology.consensusAlgorithm = input.consensusAlgorithm;
100
- saveCoordStore(store);
101
- return {
102
- success: true,
103
- action: 'updated',
104
- topology: store.topology,
105
- };
124
+ consensusAlgorithm: { type: 'string', "enum": ['raft', 'byzantine', 'gossip', 'crdt'], description: 'Consensus algorithm' }
106
125
  }
107
- if (action === 'optimize') {
108
- // Analyze current state and suggest optimal topology
109
- const nodeCount = Object.keys(store.nodes).length;
110
- let recommended = 'hierarchical';
111
- if (nodeCount <= 5) {
112
- recommended = 'mesh';
126
+ },
127
+ handler: function (input) { return __awaiter(void 0, void 0, void 0, function () {
128
+ var store, action, nodeCount, recommended;
129
+ return __generator(this, function (_a) {
130
+ store = loadCoordStore();
131
+ action = input.action || 'get';
132
+ if (action === 'get') {
133
+ return [2 /*return*/, {
134
+ success: true,
135
+ topology: store.topology,
136
+ nodes: Object.keys(store.nodes).length,
137
+ status: 'active'
138
+ }];
113
139
  }
114
- else if (nodeCount <= 15) {
115
- recommended = 'hierarchical';
140
+ if (action === 'set') {
141
+ if (input.type)
142
+ store.topology.type = input.type;
143
+ if (input.maxNodes)
144
+ store.topology.maxNodes = input.maxNodes;
145
+ if (input.redundancy)
146
+ store.topology.redundancy = input.redundancy;
147
+ if (input.consensusAlgorithm)
148
+ store.topology.consensusAlgorithm = input.consensusAlgorithm;
149
+ saveCoordStore(store);
150
+ return [2 /*return*/, {
151
+ success: true,
152
+ action: 'updated',
153
+ topology: store.topology
154
+ }];
116
155
  }
117
- else {
118
- recommended = 'hybrid';
156
+ if (action === 'optimize') {
157
+ nodeCount = Object.keys(store.nodes).length;
158
+ recommended = 'hierarchical';
159
+ if (nodeCount <= 5) {
160
+ recommended = 'mesh';
161
+ }
162
+ else if (nodeCount <= 15) {
163
+ recommended = 'hierarchical';
164
+ }
165
+ else {
166
+ recommended = 'hybrid';
167
+ }
168
+ return [2 /*return*/, {
169
+ success: true,
170
+ action: 'optimize',
171
+ current: store.topology.type,
172
+ recommended: recommended,
173
+ reason: nodeCount <= 5
174
+ ? 'Small cluster benefits from full mesh connectivity'
175
+ : nodeCount <= 15
176
+ ? 'Medium cluster works well with hierarchical coordination'
177
+ : 'Large cluster needs hybrid approach for scalability'
178
+ }];
119
179
  }
120
- return {
121
- success: true,
122
- action: 'optimize',
123
- current: store.topology.type,
124
- recommended,
125
- reason: nodeCount <= 5
126
- ? 'Small cluster benefits from full mesh connectivity'
127
- : nodeCount <= 15
128
- ? 'Medium cluster works well with hierarchical coordination'
129
- : 'Large cluster needs hybrid approach for scalability',
130
- };
131
- }
132
- return { success: false, error: 'Unknown action' };
133
- },
180
+ return [2 /*return*/, { success: false, error: 'Unknown action' }];
181
+ });
182
+ }); }
134
183
  },
135
184
  {
136
185
  name: 'coordination_load_balance',
@@ -139,77 +188,79 @@ export const coordinationTools = [
139
188
  inputSchema: {
140
189
  type: 'object',
141
190
  properties: {
142
- action: { type: 'string', enum: ['get', 'set', 'distribute'], description: 'Action to perform' },
143
- algorithm: { type: 'string', enum: ['round-robin', 'least-connections', 'weighted', 'adaptive'], description: 'Algorithm' },
191
+ action: { type: 'string', "enum": ['get', 'set', 'distribute'], description: 'Action to perform' },
192
+ algorithm: { type: 'string', "enum": ['round-robin', 'least-connections', 'weighted', 'adaptive'], description: 'Algorithm' },
144
193
  weights: { type: 'object', description: 'Node weights' },
145
- task: { type: 'string', description: 'Task to distribute' },
146
- },
147
- },
148
- handler: async (input) => {
149
- const store = loadCoordStore();
150
- const action = input.action || 'get';
151
- if (action === 'get') {
152
- const nodes = Object.values(store.nodes);
153
- const avgLoad = nodes.length > 0
154
- ? nodes.reduce((sum, n) => sum + n.load, 0) / nodes.length
155
- : 0;
156
- return {
157
- success: true,
158
- loadBalance: store.loadBalance,
159
- metrics: {
160
- nodeCount: nodes.length,
161
- avgLoad,
162
- maxLoad: nodes.length > 0 ? Math.max(...nodes.map(n => n.load)) : 0,
163
- minLoad: nodes.length > 0 ? Math.min(...nodes.map(n => n.load)) : 0,
164
- },
165
- };
166
- }
167
- if (action === 'set') {
168
- if (input.algorithm)
169
- store.loadBalance.algorithm = input.algorithm;
170
- if (input.weights)
171
- store.loadBalance.weights = input.weights;
172
- saveCoordStore(store);
173
- return {
174
- success: true,
175
- action: 'updated',
176
- loadBalance: store.loadBalance,
177
- };
194
+ task: { type: 'string', description: 'Task to distribute' }
178
195
  }
179
- if (action === 'distribute') {
180
- const task = input.task;
181
- const nodes = Object.values(store.nodes).filter(n => n.status === 'active');
182
- if (nodes.length === 0) {
183
- return { success: false, error: 'No active nodes available' };
184
- }
185
- // Select node based on algorithm
186
- let selectedNode;
187
- const algorithm = store.loadBalance.algorithm;
188
- if (algorithm === 'least-connections' || algorithm === 'adaptive') {
189
- selectedNode = nodes.reduce((min, n) => n.load < min.load ? n : min);
196
+ },
197
+ handler: function (input) { return __awaiter(void 0, void 0, void 0, function () {
198
+ var store, action, nodes, avgLoad, task, nodes, selectedNode, algorithm, weights_1;
199
+ return __generator(this, function (_a) {
200
+ store = loadCoordStore();
201
+ action = input.action || 'get';
202
+ if (action === 'get') {
203
+ nodes = Object.values(store.nodes);
204
+ avgLoad = nodes.length > 0
205
+ ? nodes.reduce(function (sum, n) { return sum + n.load; }, 0) / nodes.length
206
+ : 0;
207
+ return [2 /*return*/, {
208
+ success: true,
209
+ loadBalance: store.loadBalance,
210
+ metrics: {
211
+ nodeCount: nodes.length,
212
+ avgLoad: avgLoad,
213
+ maxLoad: nodes.length > 0 ? Math.max.apply(Math, nodes.map(function (n) { return n.load; })) : 0,
214
+ minLoad: nodes.length > 0 ? Math.min.apply(Math, nodes.map(function (n) { return n.load; })) : 0
215
+ }
216
+ }];
190
217
  }
191
- else if (algorithm === 'weighted') {
192
- const weights = store.loadBalance.weights;
193
- selectedNode = nodes.reduce((max, n) => (weights[n.id] || 1) > (weights[max.id] || 1) ? n : max);
218
+ if (action === 'set') {
219
+ if (input.algorithm)
220
+ store.loadBalance.algorithm = input.algorithm;
221
+ if (input.weights)
222
+ store.loadBalance.weights = input.weights;
223
+ saveCoordStore(store);
224
+ return [2 /*return*/, {
225
+ success: true,
226
+ action: 'updated',
227
+ loadBalance: store.loadBalance
228
+ }];
194
229
  }
195
- else {
196
- // Round robin - just pick first active
197
- selectedNode = nodes[0];
230
+ if (action === 'distribute') {
231
+ task = input.task;
232
+ nodes = Object.values(store.nodes).filter(function (n) { return n.status === 'active'; });
233
+ if (nodes.length === 0) {
234
+ return [2 /*return*/, { success: false, error: 'No active nodes available' }];
235
+ }
236
+ selectedNode = void 0;
237
+ algorithm = store.loadBalance.algorithm;
238
+ if (algorithm === 'least-connections' || algorithm === 'adaptive') {
239
+ selectedNode = nodes.reduce(function (min, n) { return n.load < min.load ? n : min; });
240
+ }
241
+ else if (algorithm === 'weighted') {
242
+ weights_1 = store.loadBalance.weights;
243
+ selectedNode = nodes.reduce(function (max, n) { return (weights_1[n.id] || 1) > (weights_1[max.id] || 1) ? n : max; });
244
+ }
245
+ else {
246
+ // Round robin - just pick first active
247
+ selectedNode = nodes[0];
248
+ }
249
+ // Update load
250
+ selectedNode.load += 1;
251
+ saveCoordStore(store);
252
+ return [2 /*return*/, {
253
+ success: true,
254
+ action: 'distributed',
255
+ task: task,
256
+ assignedTo: selectedNode.id,
257
+ algorithm: algorithm,
258
+ nodeLoad: selectedNode.load
259
+ }];
198
260
  }
199
- // Update load
200
- selectedNode.load += 1;
201
- saveCoordStore(store);
202
- return {
203
- success: true,
204
- action: 'distributed',
205
- task,
206
- assignedTo: selectedNode.id,
207
- algorithm,
208
- nodeLoad: selectedNode.load,
209
- };
210
- }
211
- return { success: false, error: 'Unknown action' };
212
- },
261
+ return [2 /*return*/, { success: false, error: 'Unknown action' }];
262
+ });
263
+ }); }
213
264
  },
214
265
  {
215
266
  name: 'coordination_sync',
@@ -218,59 +269,68 @@ export const coordinationTools = [
218
269
  inputSchema: {
219
270
  type: 'object',
220
271
  properties: {
221
- action: { type: 'string', enum: ['status', 'trigger', 'resolve'], description: 'Action to perform' },
272
+ action: { type: 'string', "enum": ['status', 'trigger', 'resolve'], description: 'Action to perform' },
222
273
  force: { type: 'boolean', description: 'Force synchronization' },
223
- conflictResolution: { type: 'string', enum: ['latest', 'merge', 'manual'], description: 'Conflict resolution strategy' },
224
- },
225
- },
226
- handler: async (input) => {
227
- const store = loadCoordStore();
228
- const action = input.action || 'status';
229
- if (action === 'status') {
230
- const timeSinceSync = Date.now() - new Date(store.sync.lastSync).getTime();
231
- return {
232
- success: true,
233
- sync: store.sync,
234
- timeSinceSync: `${Math.floor(timeSinceSync / 1000)}s`,
235
- status: store.sync.conflicts > 0 ? 'conflicts' : store.sync.pendingChanges > 0 ? 'pending' : 'synced',
236
- };
274
+ conflictResolution: { type: 'string', "enum": ['latest', 'merge', 'manual'], description: 'Conflict resolution strategy' }
237
275
  }
238
- if (action === 'trigger') {
239
- store.sync.syncCount++;
240
- store.sync.lastSync = new Date().toISOString();
241
- store.sync.pendingChanges = 0;
242
- // Simulate sync
243
- await new Promise(resolve => setTimeout(resolve, 50));
244
- saveCoordStore(store);
245
- return {
246
- success: true,
247
- action: 'synchronized',
248
- syncCount: store.sync.syncCount,
249
- syncedAt: store.sync.lastSync,
250
- nodesSync: Object.keys(store.nodes).length,
251
- };
252
- }
253
- if (action === 'resolve') {
254
- const strategy = input.conflictResolution || 'latest';
255
- if (store.sync.conflicts > 0) {
256
- const resolved = store.sync.conflicts;
257
- store.sync.conflicts = 0;
258
- saveCoordStore(store);
259
- return {
260
- success: true,
261
- action: 'resolved',
262
- strategy,
263
- conflictsResolved: resolved,
264
- };
265
- }
266
- return {
267
- success: true,
268
- action: 'resolve',
269
- message: 'No conflicts to resolve',
270
- };
271
- }
272
- return { success: false, error: 'Unknown action' };
273
276
  },
277
+ handler: function (input) { return __awaiter(void 0, void 0, void 0, function () {
278
+ var store, action, timeSinceSync, strategy, resolved;
279
+ return __generator(this, function (_a) {
280
+ switch (_a.label) {
281
+ case 0:
282
+ store = loadCoordStore();
283
+ action = input.action || 'status';
284
+ if (action === 'status') {
285
+ timeSinceSync = Date.now() - new Date(store.sync.lastSync).getTime();
286
+ return [2 /*return*/, {
287
+ success: true,
288
+ sync: store.sync,
289
+ timeSinceSync: Math.floor(timeSinceSync / 1000) + "s",
290
+ status: store.sync.conflicts > 0 ? 'conflicts' : store.sync.pendingChanges > 0 ? 'pending' : 'synced'
291
+ }];
292
+ }
293
+ if (!(action === 'trigger')) return [3 /*break*/, 2];
294
+ store.sync.syncCount++;
295
+ store.sync.lastSync = new Date().toISOString();
296
+ store.sync.pendingChanges = 0;
297
+ // Simulate sync
298
+ return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 50); })];
299
+ case 1:
300
+ // Simulate sync
301
+ _a.sent();
302
+ saveCoordStore(store);
303
+ return [2 /*return*/, {
304
+ success: true,
305
+ action: 'synchronized',
306
+ syncCount: store.sync.syncCount,
307
+ syncedAt: store.sync.lastSync,
308
+ nodesSync: Object.keys(store.nodes).length
309
+ }];
310
+ case 2:
311
+ if (action === 'resolve') {
312
+ strategy = input.conflictResolution || 'latest';
313
+ if (store.sync.conflicts > 0) {
314
+ resolved = store.sync.conflicts;
315
+ store.sync.conflicts = 0;
316
+ saveCoordStore(store);
317
+ return [2 /*return*/, {
318
+ success: true,
319
+ action: 'resolved',
320
+ strategy: strategy,
321
+ conflictsResolved: resolved
322
+ }];
323
+ }
324
+ return [2 /*return*/, {
325
+ success: true,
326
+ action: 'resolve',
327
+ message: 'No conflicts to resolve'
328
+ }];
329
+ }
330
+ return [2 /*return*/, { success: false, error: 'Unknown action' }];
331
+ }
332
+ });
333
+ }); }
274
334
  },
275
335
  {
276
336
  name: 'coordination_node',
@@ -279,129 +339,314 @@ export const coordinationTools = [
279
339
  inputSchema: {
280
340
  type: 'object',
281
341
  properties: {
282
- action: { type: 'string', enum: ['list', 'add', 'remove', 'heartbeat'], description: 'Action to perform' },
342
+ action: { type: 'string', "enum": ['list', 'add', 'remove', 'heartbeat'], description: 'Action to perform' },
283
343
  nodeId: { type: 'string', description: 'Node ID' },
284
- status: { type: 'string', description: 'Node status' },
285
- },
286
- },
287
- handler: async (input) => {
288
- const store = loadCoordStore();
289
- const action = input.action || 'list';
290
- if (action === 'list') {
291
- const nodes = Object.values(store.nodes);
292
- return {
293
- success: true,
294
- nodes: nodes.map(n => ({
295
- id: n.id,
296
- status: n.status,
297
- load: n.load,
298
- lastHeartbeat: n.lastHeartbeat,
299
- })),
300
- total: nodes.length,
301
- active: nodes.filter(n => n.status === 'active').length,
302
- };
303
- }
304
- if (action === 'add') {
305
- const nodeId = input.nodeId || `node-${Date.now()}`;
306
- store.nodes[nodeId] = {
307
- id: nodeId,
308
- status: 'active',
309
- load: 0,
310
- lastHeartbeat: new Date().toISOString(),
311
- };
312
- saveCoordStore(store);
313
- return {
314
- success: true,
315
- action: 'added',
316
- nodeId,
317
- totalNodes: Object.keys(store.nodes).length,
318
- };
344
+ status: { type: 'string', description: 'Node status' }
319
345
  }
320
- if (action === 'remove') {
321
- const nodeId = input.nodeId;
322
- if (!store.nodes[nodeId]) {
323
- return { success: false, error: 'Node not found' };
346
+ },
347
+ handler: function (input) { return __awaiter(void 0, void 0, void 0, function () {
348
+ var store, action, nodes, nodeId, nodeId, nodeId;
349
+ return __generator(this, function (_a) {
350
+ store = loadCoordStore();
351
+ action = input.action || 'list';
352
+ if (action === 'list') {
353
+ nodes = Object.values(store.nodes);
354
+ return [2 /*return*/, {
355
+ success: true,
356
+ nodes: nodes.map(function (n) { return ({
357
+ id: n.id,
358
+ status: n.status,
359
+ load: n.load,
360
+ lastHeartbeat: n.lastHeartbeat
361
+ }); }),
362
+ total: nodes.length,
363
+ active: nodes.filter(function (n) { return n.status === 'active'; }).length
364
+ }];
324
365
  }
325
- delete store.nodes[nodeId];
326
- saveCoordStore(store);
327
- return {
328
- success: true,
329
- action: 'removed',
330
- nodeId,
331
- totalNodes: Object.keys(store.nodes).length,
332
- };
333
- }
334
- if (action === 'heartbeat') {
335
- const nodeId = input.nodeId;
336
- if (store.nodes[nodeId]) {
337
- store.nodes[nodeId].lastHeartbeat = new Date().toISOString();
338
- store.nodes[nodeId].status = 'active';
366
+ if (action === 'add') {
367
+ nodeId = input.nodeId || "node-" + Date.now();
368
+ store.nodes[nodeId] = {
369
+ id: nodeId,
370
+ status: 'active',
371
+ load: 0,
372
+ lastHeartbeat: new Date().toISOString()
373
+ };
339
374
  saveCoordStore(store);
375
+ return [2 /*return*/, {
376
+ success: true,
377
+ action: 'added',
378
+ nodeId: nodeId,
379
+ totalNodes: Object.keys(store.nodes).length
380
+ }];
340
381
  }
341
- return {
342
- success: true,
343
- action: 'heartbeat',
344
- nodeId,
345
- timestamp: new Date().toISOString(),
346
- };
347
- }
348
- return { success: false, error: 'Unknown action' };
349
- },
382
+ if (action === 'remove') {
383
+ nodeId = input.nodeId;
384
+ if (!store.nodes[nodeId]) {
385
+ return [2 /*return*/, { success: false, error: 'Node not found' }];
386
+ }
387
+ delete store.nodes[nodeId];
388
+ saveCoordStore(store);
389
+ return [2 /*return*/, {
390
+ success: true,
391
+ action: 'removed',
392
+ nodeId: nodeId,
393
+ totalNodes: Object.keys(store.nodes).length
394
+ }];
395
+ }
396
+ if (action === 'heartbeat') {
397
+ nodeId = input.nodeId;
398
+ if (store.nodes[nodeId]) {
399
+ store.nodes[nodeId].lastHeartbeat = new Date().toISOString();
400
+ store.nodes[nodeId].status = 'active';
401
+ saveCoordStore(store);
402
+ }
403
+ return [2 /*return*/, {
404
+ success: true,
405
+ action: 'heartbeat',
406
+ nodeId: nodeId,
407
+ timestamp: new Date().toISOString()
408
+ }];
409
+ }
410
+ return [2 /*return*/, { success: false, error: 'Unknown action' }];
411
+ });
412
+ }); }
350
413
  },
351
414
  {
352
415
  name: 'coordination_consensus',
353
- description: 'Manage consensus protocol',
416
+ description: 'Manage consensus protocol with BFT, Raft, or Quorum strategies',
354
417
  category: 'coordination',
355
418
  inputSchema: {
356
419
  type: 'object',
357
420
  properties: {
358
- action: { type: 'string', enum: ['status', 'propose', 'vote', 'commit'], description: 'Action to perform' },
359
- proposal: { type: 'object', description: 'Proposal data' },
360
- vote: { type: 'string', enum: ['accept', 'reject'], description: 'Vote' },
361
- },
362
- },
363
- handler: async (input) => {
364
- const store = loadCoordStore();
365
- const action = input.action || 'status';
366
- if (action === 'status') {
367
- const nodeCount = Object.keys(store.nodes).length;
368
- const quorum = Math.floor(nodeCount / 2) + 1;
369
- return {
370
- success: true,
371
- algorithm: store.topology.consensusAlgorithm,
372
- nodes: nodeCount,
373
- quorum,
374
- status: nodeCount >= quorum ? 'operational' : 'degraded',
375
- };
376
- }
377
- if (action === 'propose') {
378
- const proposalId = `proposal-${Date.now()}`;
379
- return {
380
- success: true,
381
- action: 'proposed',
382
- proposalId,
383
- proposal: input.proposal,
384
- status: 'pending',
385
- requiredVotes: Math.floor(Object.keys(store.nodes).length / 2) + 1,
386
- };
387
- }
388
- if (action === 'vote') {
389
- return {
390
- success: true,
391
- action: 'voted',
392
- vote: input.vote,
393
- timestamp: new Date().toISOString(),
394
- };
395
- }
396
- if (action === 'commit') {
397
- return {
398
- success: true,
399
- action: 'committed',
400
- committedAt: new Date().toISOString(),
401
- };
421
+ action: { type: 'string', "enum": ['status', 'propose', 'vote', 'commit'], description: 'Action to perform' },
422
+ proposal: { type: 'object', description: 'Proposal data (for propose)' },
423
+ proposalId: { type: 'string', description: 'Proposal ID (for vote/commit/status)' },
424
+ vote: { type: 'string', "enum": ['accept', 'reject'], description: 'Vote' },
425
+ voterId: { type: 'string', description: 'Voter node ID' },
426
+ strategy: { type: 'string', "enum": ['bft', 'raft', 'quorum'], description: 'Consensus strategy (default: raft)' },
427
+ quorumPreset: { type: 'string', "enum": ['unanimous', 'majority', 'supermajority'], description: 'Quorum threshold preset (default: majority)' },
428
+ term: { type: 'number', description: 'Term number (for raft strategy)' }
402
429
  }
403
- return { success: false, error: 'Unknown action' };
404
430
  },
431
+ handler: function (input) { return __awaiter(void 0, void 0, void 0, function () {
432
+ function calcRequired(strat, total, preset) {
433
+ if (total <= 0)
434
+ return 1;
435
+ if (strat === 'bft')
436
+ return Math.floor((total * 2) / 3) + 1;
437
+ if (strat === 'quorum') {
438
+ if (preset === 'unanimous')
439
+ return total;
440
+ if (preset === 'supermajority')
441
+ return Math.floor((total * 2) / 3) + 1;
442
+ }
443
+ return Math.floor(total / 2) + 1;
444
+ }
445
+ var store, action, strategy, nodeCount, consensus, p, votesFor, votesAgainst, h, quorum, proposalId, quorumPreset, term_1, required, existing, p_1, voterId, voteValue, pStrategy, required, _i, _a, other, votesFor, votesAgainst, resolved, result, h;
446
+ var _b;
447
+ return __generator(this, function (_c) {
448
+ store = loadCoordStore();
449
+ action = input.action || 'status';
450
+ strategy = input.strategy || 'raft';
451
+ nodeCount = Object.keys(store.nodes).length || 1;
452
+ // Initialize consensus storage in the coordination store if missing
453
+ if (!store.consensus) {
454
+ store.consensus = { pending: [], history: [] };
455
+ }
456
+ consensus = store.consensus;
457
+ if (action === 'status') {
458
+ if (input.proposalId) {
459
+ p = consensus.pending.find(function (x) { return x.proposalId === input.proposalId; });
460
+ if (p) {
461
+ votesFor = Object.values(p.votes).filter(function (v) { return v; }).length;
462
+ votesAgainst = Object.values(p.votes).filter(function (v) { return !v; }).length;
463
+ return [2 /*return*/, {
464
+ success: true,
465
+ proposalId: p.proposalId,
466
+ strategy: p.strategy,
467
+ status: p.status,
468
+ votesFor: votesFor,
469
+ votesAgainst: votesAgainst,
470
+ required: calcRequired(p.strategy, nodeCount, p.quorumPreset),
471
+ totalNodes: nodeCount,
472
+ resolved: false
473
+ }];
474
+ }
475
+ h = consensus.history.find(function (x) { return x.proposalId === input.proposalId; });
476
+ if (h)
477
+ return [2 /*return*/, __assign(__assign({ success: true }, h), { resolved: true, historical: true })];
478
+ return [2 /*return*/, { success: false, error: 'Proposal not found' }];
479
+ }
480
+ quorum = calcRequired(strategy, nodeCount);
481
+ return [2 /*return*/, {
482
+ success: true,
483
+ algorithm: store.topology.consensusAlgorithm,
484
+ strategy: strategy,
485
+ nodes: nodeCount,
486
+ quorum: quorum,
487
+ pendingProposals: consensus.pending.length,
488
+ resolvedProposals: consensus.history.length,
489
+ status: nodeCount >= quorum ? 'operational' : 'degraded'
490
+ }];
491
+ }
492
+ if (action === 'propose') {
493
+ proposalId = "proposal-" + Date.now() + "-" + Math.random().toString(36).slice(2, 8);
494
+ quorumPreset = input.quorumPreset || 'majority';
495
+ term_1 = input.term || 1;
496
+ required = calcRequired(strategy, nodeCount, quorumPreset);
497
+ // Raft: one pending proposal per term
498
+ if (strategy === 'raft') {
499
+ existing = consensus.pending.find(function (p) { return p.strategy === 'raft' && p.term === term_1; });
500
+ if (existing) {
501
+ return [2 /*return*/, {
502
+ success: false,
503
+ error: "Raft term " + term_1 + " already has pending proposal: " + existing.proposalId,
504
+ existingProposalId: existing.proposalId
505
+ }];
506
+ }
507
+ }
508
+ consensus.pending.push({
509
+ proposalId: proposalId,
510
+ type: 'coordination',
511
+ proposal: input.proposal,
512
+ proposedBy: input.voterId || 'system',
513
+ proposedAt: new Date().toISOString(),
514
+ votes: {},
515
+ status: 'pending',
516
+ strategy: strategy,
517
+ term: strategy === 'raft' ? term_1 : undefined,
518
+ quorumPreset: strategy === 'quorum' ? quorumPreset : undefined,
519
+ byzantineVoters: strategy === 'bft' ? [] : undefined
520
+ });
521
+ saveCoordStore(store);
522
+ return [2 /*return*/, {
523
+ success: true,
524
+ action: 'proposed',
525
+ proposalId: proposalId,
526
+ proposal: input.proposal,
527
+ strategy: strategy,
528
+ status: 'pending',
529
+ required: required,
530
+ totalNodes: nodeCount,
531
+ term: strategy === 'raft' ? term_1 : undefined
532
+ }];
533
+ }
534
+ if (action === 'vote') {
535
+ p_1 = consensus.pending.find(function (x) { return x.proposalId === input.proposalId; });
536
+ if (!p_1)
537
+ return [2 /*return*/, { success: false, error: 'Proposal not found or already resolved' }];
538
+ voterId = input.voterId;
539
+ if (!voterId)
540
+ return [2 /*return*/, { success: false, error: 'voterId is required' }];
541
+ voteValue = input.vote === 'accept';
542
+ pStrategy = p_1.strategy || 'raft';
543
+ required = calcRequired(pStrategy, nodeCount, p_1.quorumPreset);
544
+ // Double-vote prevention
545
+ if (voterId in p_1.votes) {
546
+ if (pStrategy === 'bft' && p_1.votes[voterId] !== voteValue) {
547
+ if (!p_1.byzantineVoters)
548
+ p_1.byzantineVoters = [];
549
+ if (!p_1.byzantineVoters.includes(voterId))
550
+ p_1.byzantineVoters.push(voterId);
551
+ delete p_1.votes[voterId];
552
+ saveCoordStore(store);
553
+ return [2 /*return*/, {
554
+ success: false,
555
+ byzantineDetected: true,
556
+ message: "Byzantine behavior: voter " + voterId + " attempted conflicting vote. Vote invalidated.",
557
+ byzantineVoters: p_1.byzantineVoters
558
+ }];
559
+ }
560
+ return [2 /*return*/, { success: false, error: "Voter " + voterId + " has already voted on this proposal" }];
561
+ }
562
+ // BFT cross-proposal conflict check
563
+ if (pStrategy === 'bft') {
564
+ for (_i = 0, _a = consensus.pending; _i < _a.length; _i++) {
565
+ other = _a[_i];
566
+ if (other.proposalId === p_1.proposalId)
567
+ continue;
568
+ if (voterId in other.votes && other.votes[voterId] !== voteValue) {
569
+ if (!p_1.byzantineVoters)
570
+ p_1.byzantineVoters = [];
571
+ if (!p_1.byzantineVoters.includes(voterId))
572
+ p_1.byzantineVoters.push(voterId);
573
+ saveCoordStore(store);
574
+ return [2 /*return*/, {
575
+ success: false,
576
+ byzantineDetected: true,
577
+ message: "Byzantine behavior: voter " + voterId + " cast conflicting votes across proposals.",
578
+ byzantineVoters: p_1.byzantineVoters
579
+ }];
580
+ }
581
+ }
582
+ }
583
+ p_1.votes[voterId] = voteValue;
584
+ votesFor = Object.values(p_1.votes).filter(function (v) { return v; }).length;
585
+ votesAgainst = Object.values(p_1.votes).filter(function (v) { return !v; }).length;
586
+ resolved = false;
587
+ result = void 0;
588
+ if (votesFor >= required) {
589
+ resolved = true;
590
+ result = 'approved';
591
+ }
592
+ else if (votesAgainst >= required) {
593
+ resolved = true;
594
+ result = 'rejected';
595
+ }
596
+ else if (pStrategy === 'quorum' && p_1.quorumPreset === 'unanimous' && votesAgainst > 0) {
597
+ resolved = true;
598
+ result = 'rejected';
599
+ }
600
+ if (resolved && result) {
601
+ p_1.status = result;
602
+ consensus.history.push({
603
+ proposalId: p_1.proposalId,
604
+ result: result,
605
+ votes: { "for": votesFor, against: votesAgainst },
606
+ decidedAt: new Date().toISOString(),
607
+ strategy: pStrategy,
608
+ term: p_1.term,
609
+ byzantineDetected: ((_b = p_1.byzantineVoters) === null || _b === void 0 ? void 0 : _b.length) ? p_1.byzantineVoters : undefined
610
+ });
611
+ consensus.pending = consensus.pending.filter(function (x) { return x.proposalId !== p_1.proposalId; });
612
+ }
613
+ saveCoordStore(store);
614
+ return [2 /*return*/, {
615
+ success: true,
616
+ action: 'voted',
617
+ proposalId: p_1.proposalId,
618
+ voterId: voterId,
619
+ vote: input.vote,
620
+ strategy: pStrategy,
621
+ votesFor: votesFor,
622
+ votesAgainst: votesAgainst,
623
+ required: required,
624
+ totalNodes: nodeCount,
625
+ resolved: resolved,
626
+ result: resolved ? result : undefined,
627
+ status: p_1.status
628
+ }];
629
+ }
630
+ if (action === 'commit') {
631
+ // Commit is a no-op confirmation for already-resolved proposals
632
+ if (input.proposalId) {
633
+ h = consensus.history.find(function (x) { return x.proposalId === input.proposalId; });
634
+ if (h) {
635
+ return [2 /*return*/, {
636
+ success: true,
637
+ action: 'committed',
638
+ proposalId: input.proposalId,
639
+ result: h.result,
640
+ committedAt: new Date().toISOString()
641
+ }];
642
+ }
643
+ return [2 /*return*/, { success: false, error: 'Proposal not found in resolved history. Vote must reach quorum first.' }];
644
+ }
645
+ return [2 /*return*/, { success: false, error: 'proposalId is required for commit' }];
646
+ }
647
+ return [2 /*return*/, { success: false, error: 'Unknown action' }];
648
+ });
649
+ }); }
405
650
  },
406
651
  {
407
652
  name: 'coordination_orchestrate',
@@ -411,29 +656,32 @@ export const coordinationTools = [
411
656
  type: 'object',
412
657
  properties: {
413
658
  task: { type: 'string', description: 'Task to orchestrate' },
414
- agents: { type: 'array', description: 'Agent IDs to coordinate' },
415
- strategy: { type: 'string', enum: ['parallel', 'sequential', 'pipeline', 'broadcast'], description: 'Orchestration strategy' },
416
- timeout: { type: 'number', description: 'Timeout in ms' },
659
+ agents: { type: 'array', items: { type: 'string' }, description: 'Agent IDs to coordinate' },
660
+ strategy: { type: 'string', "enum": ['parallel', 'sequential', 'pipeline', 'broadcast'], description: 'Orchestration strategy' },
661
+ timeout: { type: 'number', description: 'Timeout in ms' }
417
662
  },
418
- required: ['task'],
419
- },
420
- handler: async (input) => {
421
- const store = loadCoordStore();
422
- const task = input.task;
423
- const agents = input.agents || Object.keys(store.nodes);
424
- const strategy = input.strategy || 'parallel';
425
- const orchestrationId = `orch-${Date.now()}`;
426
- return {
427
- success: true,
428
- orchestrationId,
429
- task,
430
- strategy,
431
- agents,
432
- status: 'initiated',
433
- topology: store.topology.type,
434
- estimatedCompletion: `${agents.length * (strategy === 'sequential' ? 100 : 50)}ms`,
435
- };
663
+ required: ['task']
436
664
  },
665
+ handler: function (input) { return __awaiter(void 0, void 0, void 0, function () {
666
+ var store, task, agents, strategy, orchestrationId;
667
+ return __generator(this, function (_a) {
668
+ store = loadCoordStore();
669
+ task = input.task;
670
+ agents = input.agents || Object.keys(store.nodes);
671
+ strategy = input.strategy || 'parallel';
672
+ orchestrationId = "orch-" + Date.now();
673
+ return [2 /*return*/, {
674
+ success: true,
675
+ orchestrationId: orchestrationId,
676
+ task: task,
677
+ strategy: strategy,
678
+ agents: agents,
679
+ status: 'initiated',
680
+ topology: store.topology.type,
681
+ estimatedCompletion: agents.length * (strategy === 'sequential' ? 100 : 50) + "ms"
682
+ }];
683
+ });
684
+ }); }
437
685
  },
438
686
  {
439
687
  name: 'coordination_metrics',
@@ -442,45 +690,48 @@ export const coordinationTools = [
442
690
  inputSchema: {
443
691
  type: 'object',
444
692
  properties: {
445
- metric: { type: 'string', enum: ['all', 'latency', 'throughput', 'availability'], description: 'Metric type' },
446
- timeRange: { type: 'string', description: 'Time range' },
447
- },
448
- },
449
- handler: async (input) => {
450
- const store = loadCoordStore();
451
- const metric = input.metric || 'all';
452
- const nodes = Object.values(store.nodes);
453
- const activeNodes = nodes.filter(n => n.status === 'active');
454
- const metrics = {
455
- latency: {
456
- avg: 25 + Math.random() * 20,
457
- p50: 20 + Math.random() * 15,
458
- p95: 50 + Math.random() * 30,
459
- p99: 100 + Math.random() * 50,
460
- unit: 'ms',
461
- },
462
- throughput: {
463
- current: Math.floor(Math.random() * 1000) + 500,
464
- peak: Math.floor(Math.random() * 2000) + 1000,
465
- avg: Math.floor(Math.random() * 800) + 400,
466
- unit: 'ops/s',
467
- },
468
- availability: {
469
- uptime: 99.9 + Math.random() * 0.09,
470
- activeNodes: activeNodes.length,
471
- totalNodes: nodes.length,
472
- syncStatus: store.sync.conflicts === 0 ? 'healthy' : 'conflicts',
473
- },
474
- };
475
- if (metric === 'all') {
476
- return { success: true, metrics };
693
+ metric: { type: 'string', "enum": ['all', 'latency', 'throughput', 'availability'], description: 'Metric type' },
694
+ timeRange: { type: 'string', description: 'Time range' }
477
695
  }
478
- return {
479
- success: true,
480
- metric,
481
- data: metrics[metric],
482
- };
483
696
  },
697
+ handler: function (input) { return __awaiter(void 0, void 0, void 0, function () {
698
+ var store, metric, nodes, activeNodes, metrics;
699
+ return __generator(this, function (_a) {
700
+ store = loadCoordStore();
701
+ metric = input.metric || 'all';
702
+ nodes = Object.values(store.nodes);
703
+ activeNodes = nodes.filter(function (n) { return n.status === 'active'; });
704
+ metrics = {
705
+ latency: {
706
+ avg: 25 + Math.random() * 20,
707
+ p50: 20 + Math.random() * 15,
708
+ p95: 50 + Math.random() * 30,
709
+ p99: 100 + Math.random() * 50,
710
+ unit: 'ms'
711
+ },
712
+ throughput: {
713
+ current: Math.floor(Math.random() * 1000) + 500,
714
+ peak: Math.floor(Math.random() * 2000) + 1000,
715
+ avg: Math.floor(Math.random() * 800) + 400,
716
+ unit: 'ops/s'
717
+ },
718
+ availability: {
719
+ uptime: 99.9 + Math.random() * 0.09,
720
+ activeNodes: activeNodes.length,
721
+ totalNodes: nodes.length,
722
+ syncStatus: store.sync.conflicts === 0 ? 'healthy' : 'conflicts'
723
+ }
724
+ };
725
+ if (metric === 'all') {
726
+ return [2 /*return*/, { success: true, metrics: metrics }];
727
+ }
728
+ return [2 /*return*/, {
729
+ success: true,
730
+ metric: metric,
731
+ data: metrics[metric]
732
+ }];
733
+ });
734
+ }); }
484
735
  },
485
736
  ];
486
737
  //# sourceMappingURL=coordination-tools.js.map