kynjal-cli 4.0.0 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (502) hide show
  1. package/dist/src/appliance/gguf-engine.d.ts +91 -0
  2. package/dist/src/appliance/gguf-engine.d.ts.map +1 -0
  3. package/dist/src/appliance/gguf-engine.js +286 -525
  4. package/dist/src/appliance/gguf-engine.js.map +1 -1
  5. package/dist/src/appliance/ruvllm-bridge.d.ts +102 -0
  6. package/dist/src/appliance/ruvllm-bridge.d.ts.map +1 -0
  7. package/dist/src/appliance/ruvllm-bridge.js +203 -403
  8. package/dist/src/appliance/ruvllm-bridge.js.map +1 -1
  9. package/dist/src/appliance/rvfa-builder.d.ts +44 -0
  10. package/dist/src/appliance/rvfa-builder.d.ts.map +1 -0
  11. package/dist/src/appliance/rvfa-builder.js +154 -208
  12. package/dist/src/appliance/rvfa-builder.js.map +1 -1
  13. package/dist/src/appliance/rvfa-distribution.d.ts +97 -0
  14. package/dist/src/appliance/rvfa-distribution.d.ts.map +1 -0
  15. package/dist/src/appliance/rvfa-distribution.js +260 -423
  16. package/dist/src/appliance/rvfa-distribution.js.map +1 -1
  17. package/dist/src/appliance/rvfa-format.d.ts +111 -0
  18. package/dist/src/appliance/rvfa-format.d.ts.map +1 -0
  19. package/dist/src/appliance/rvfa-format.js +128 -200
  20. package/dist/src/appliance/rvfa-format.js.map +1 -1
  21. package/dist/src/appliance/rvfa-runner.d.ts +69 -0
  22. package/dist/src/appliance/rvfa-runner.d.ts.map +1 -0
  23. package/dist/src/appliance/rvfa-runner.js +168 -304
  24. package/dist/src/appliance/rvfa-runner.js.map +1 -1
  25. package/dist/src/appliance/rvfa-signing.d.ts +123 -0
  26. package/dist/src/appliance/rvfa-signing.d.ts.map +1 -0
  27. package/dist/src/appliance/rvfa-signing.js +173 -295
  28. package/dist/src/appliance/rvfa-signing.js.map +1 -1
  29. package/dist/src/benchmarks/pretrain/index.d.ts +58 -0
  30. package/dist/src/benchmarks/pretrain/index.d.ts.map +1 -0
  31. package/dist/src/benchmarks/pretrain/index.js +331 -542
  32. package/dist/src/benchmarks/pretrain/index.js.map +1 -1
  33. package/dist/src/commands/agent.js +574 -697
  34. package/dist/src/commands/agent.js.map +1 -1
  35. package/dist/src/commands/analyze.js +1218 -1548
  36. package/dist/src/commands/analyze.js.map +1 -1
  37. package/dist/src/commands/appliance-advanced.js +158 -267
  38. package/dist/src/commands/appliance-advanced.js.map +1 -1
  39. package/dist/src/commands/appliance.js +318 -493
  40. package/dist/src/commands/appliance.js.map +1 -1
  41. package/dist/src/commands/benchmark.js +372 -523
  42. package/dist/src/commands/benchmark.js.map +1 -1
  43. package/dist/src/commands/claims.js +274 -364
  44. package/dist/src/commands/claims.js.map +1 -1
  45. package/dist/src/commands/cleanup.js +113 -157
  46. package/dist/src/commands/cleanup.js.map +1 -1
  47. package/dist/src/commands/completions.js +477 -118
  48. package/dist/src/commands/completions.js.map +1 -1
  49. package/dist/src/commands/config.js +237 -303
  50. package/dist/src/commands/config.js.map +1 -1
  51. package/dist/src/commands/daemon.js +487 -596
  52. package/dist/src/commands/daemon.js.map +1 -1
  53. package/dist/src/commands/deployment.js +194 -275
  54. package/dist/src/commands/deployment.js.map +1 -1
  55. package/dist/src/commands/doctor.js +504 -686
  56. package/dist/src/commands/doctor.js.map +1 -1
  57. package/dist/src/commands/embeddings.js +1293 -1543
  58. package/dist/src/commands/embeddings.js.map +1 -1
  59. package/dist/src/commands/guidance.js +449 -596
  60. package/dist/src/commands/guidance.js.map +1 -1
  61. package/dist/src/commands/hive-mind.js +854 -938
  62. package/dist/src/commands/hive-mind.js.map +1 -1
  63. package/dist/src/commands/hooks.js +3112 -3519
  64. package/dist/src/commands/hooks.js.map +1 -1
  65. package/dist/src/commands/index.d.ts +115 -0
  66. package/dist/src/commands/index.d.ts.map +1 -0
  67. package/dist/src/commands/index.js +126 -308
  68. package/dist/src/commands/index.js.map +1 -1
  69. package/dist/src/commands/init.js +788 -940
  70. package/dist/src/commands/init.js.map +1 -1
  71. package/dist/src/commands/issues.js +383 -558
  72. package/dist/src/commands/issues.js.map +1 -1
  73. package/dist/src/commands/mcp.js +493 -605
  74. package/dist/src/commands/mcp.js.map +1 -1
  75. package/dist/src/commands/memory.js +833 -1026
  76. package/dist/src/commands/memory.js.map +1 -1
  77. package/dist/src/commands/migrate.js +282 -347
  78. package/dist/src/commands/migrate.js.map +1 -1
  79. package/dist/src/commands/neural.js +1289 -1563
  80. package/dist/src/commands/neural.js.map +1 -1
  81. package/dist/src/commands/performance.js +497 -643
  82. package/dist/src/commands/performance.js.map +1 -1
  83. package/dist/src/commands/plugins.js +668 -841
  84. package/dist/src/commands/plugins.js.map +1 -1
  85. package/dist/src/commands/process.js +392 -447
  86. package/dist/src/commands/process.js.map +1 -1
  87. package/dist/src/commands/progress.js +162 -256
  88. package/dist/src/commands/progress.js.map +1 -1
  89. package/dist/src/commands/providers.js +150 -220
  90. package/dist/src/commands/providers.js.map +1 -1
  91. package/dist/src/commands/route.js +520 -665
  92. package/dist/src/commands/route.js.map +1 -1
  93. package/dist/src/commands/ruvector/backup.js +505 -651
  94. package/dist/src/commands/ruvector/backup.js.map +1 -1
  95. package/dist/src/commands/ruvector/benchmark.js +349 -401
  96. package/dist/src/commands/ruvector/benchmark.js.map +1 -1
  97. package/dist/src/commands/ruvector/import.js +224 -266
  98. package/dist/src/commands/ruvector/import.js.map +1 -1
  99. package/dist/src/commands/ruvector/index.js +37 -75
  100. package/dist/src/commands/ruvector/index.js.map +1 -1
  101. package/dist/src/commands/ruvector/init.js +336 -359
  102. package/dist/src/commands/ruvector/init.js.map +1 -1
  103. package/dist/src/commands/ruvector/migrate.js +335 -322
  104. package/dist/src/commands/ruvector/migrate.js.map +1 -1
  105. package/dist/src/commands/ruvector/optimize.js +375 -431
  106. package/dist/src/commands/ruvector/optimize.js.map +1 -1
  107. package/dist/src/commands/ruvector/setup.js +703 -117
  108. package/dist/src/commands/ruvector/setup.js.map +1 -1
  109. package/dist/src/commands/ruvector/status.js +364 -419
  110. package/dist/src/commands/ruvector/status.js.map +1 -1
  111. package/dist/src/commands/security.js +485 -608
  112. package/dist/src/commands/security.js.map +1 -1
  113. package/dist/src/commands/session.js +504 -626
  114. package/dist/src/commands/session.js.map +1 -1
  115. package/dist/src/commands/start.js +267 -364
  116. package/dist/src/commands/start.js.map +1 -1
  117. package/dist/src/commands/status.js +380 -486
  118. package/dist/src/commands/status.js.map +1 -1
  119. package/dist/src/commands/swarm.js +408 -488
  120. package/dist/src/commands/swarm.js.map +1 -1
  121. package/dist/src/commands/task.js +423 -538
  122. package/dist/src/commands/task.js.map +1 -1
  123. package/dist/src/commands/transfer-store.js +322 -412
  124. package/dist/src/commands/transfer-store.js.map +1 -1
  125. package/dist/src/commands/update.js +196 -291
  126. package/dist/src/commands/update.js.map +1 -1
  127. package/dist/src/commands/workflow.js +386 -486
  128. package/dist/src/commands/workflow.js.map +1 -1
  129. package/dist/src/config-adapter.d.ts +15 -0
  130. package/dist/src/config-adapter.d.ts.map +1 -0
  131. package/dist/src/config-adapter.js +38 -39
  132. package/dist/src/config-adapter.js.map +1 -1
  133. package/dist/src/index.d.ts +77 -0
  134. package/dist/src/index.d.ts.map +1 -0
  135. package/dist/src/index.js +309 -411
  136. package/dist/src/index.js.map +1 -1
  137. package/dist/src/infrastructure/in-memory-repositories.d.ts +68 -0
  138. package/dist/src/infrastructure/in-memory-repositories.d.ts.map +1 -0
  139. package/dist/src/infrastructure/in-memory-repositories.js +246 -507
  140. package/dist/src/infrastructure/in-memory-repositories.js.map +1 -1
  141. package/dist/src/init/claudemd-generator.d.ts +25 -0
  142. package/dist/src/init/claudemd-generator.d.ts.map +1 -0
  143. package/dist/src/init/claudemd-generator.js +368 -78
  144. package/dist/src/init/claudemd-generator.js.map +1 -1
  145. package/dist/src/init/executor.d.ts +41 -0
  146. package/dist/src/init/executor.d.ts.map +1 -0
  147. package/dist/src/init/executor.js +1307 -996
  148. package/dist/src/init/executor.js.map +1 -1
  149. package/dist/src/init/helpers-generator.d.ts +60 -0
  150. package/dist/src/init/helpers-generator.d.ts.map +1 -0
  151. package/dist/src/init/helpers-generator.js +657 -12
  152. package/dist/src/init/helpers-generator.js.map +1 -1
  153. package/dist/src/init/index.d.ts +1 -1
  154. package/dist/src/init/index.d.ts.map +1 -1
  155. package/dist/src/init/index.js +1 -1
  156. package/dist/src/init/index.js.map +1 -1
  157. package/dist/src/init/mcp-generator.js +33 -37
  158. package/dist/src/init/mcp-generator.js.map +1 -1
  159. package/dist/src/init/settings-generator.js +76 -77
  160. package/dist/src/init/settings-generator.js.map +1 -1
  161. package/dist/src/init/statusline-generator.js +801 -3
  162. package/dist/src/init/statusline-generator.js.map +1 -1
  163. package/dist/src/init/types.d.ts +1 -1
  164. package/dist/src/init/types.d.ts.map +1 -1
  165. package/dist/src/init/types.js +76 -59
  166. package/dist/src/init/types.js.map +1 -1
  167. package/dist/src/mcp-client.d.ts +92 -0
  168. package/dist/src/mcp-client.d.ts.map +1 -0
  169. package/dist/src/mcp-client.js +81 -125
  170. package/dist/src/mcp-client.js.map +1 -1
  171. package/dist/src/mcp-server.d.ts +161 -0
  172. package/dist/src/mcp-server.d.ts.map +1 -0
  173. package/dist/src/mcp-server.js +470 -757
  174. package/dist/src/mcp-server.js.map +1 -1
  175. package/dist/src/mcp-tools/agent-tools.js +391 -492
  176. package/dist/src/mcp-tools/agent-tools.js.map +1 -1
  177. package/dist/src/mcp-tools/agentdb-tools.js +332 -533
  178. package/dist/src/mcp-tools/agentdb-tools.js.map +1 -1
  179. package/dist/src/mcp-tools/analyze-tools.js +172 -236
  180. package/dist/src/mcp-tools/analyze-tools.js.map +1 -1
  181. package/dist/src/mcp-tools/auto-install.d.ts +83 -0
  182. package/dist/src/mcp-tools/auto-install.d.ts.map +1 -0
  183. package/dist/src/mcp-tools/auto-install.js +80 -142
  184. package/dist/src/mcp-tools/auto-install.js.map +1 -1
  185. package/dist/src/mcp-tools/browser-tools.js +252 -375
  186. package/dist/src/mcp-tools/browser-tools.js.map +1 -1
  187. package/dist/src/mcp-tools/claims-tools.js +473 -565
  188. package/dist/src/mcp-tools/claims-tools.js.map +1 -1
  189. package/dist/src/mcp-tools/config-tools.js +197 -272
  190. package/dist/src/mcp-tools/config-tools.js.map +1 -1
  191. package/dist/src/mcp-tools/coordination-tools.js +500 -572
  192. package/dist/src/mcp-tools/coordination-tools.js.map +1 -1
  193. package/dist/src/mcp-tools/daa-tools.js +286 -364
  194. package/dist/src/mcp-tools/daa-tools.js.map +1 -1
  195. package/dist/src/mcp-tools/embeddings-tools.js +582 -693
  196. package/dist/src/mcp-tools/embeddings-tools.js.map +1 -1
  197. package/dist/src/mcp-tools/github-tools.js +260 -311
  198. package/dist/src/mcp-tools/github-tools.js.map +1 -1
  199. package/dist/src/mcp-tools/hive-mind-tools.js +573 -640
  200. package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -1
  201. package/dist/src/mcp-tools/hooks-tools.js +2215 -2648
  202. package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
  203. package/dist/src/mcp-tools/memory-tools.js +350 -505
  204. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  205. package/dist/src/mcp-tools/neural-tools.js +315 -412
  206. package/dist/src/mcp-tools/neural-tools.js.map +1 -1
  207. package/dist/src/mcp-tools/performance-tools.js +420 -480
  208. package/dist/src/mcp-tools/performance-tools.js.map +1 -1
  209. package/dist/src/mcp-tools/progress-tools.js +204 -278
  210. package/dist/src/mcp-tools/progress-tools.js.map +1 -1
  211. package/dist/src/mcp-tools/ruvllm-tools.js +163 -279
  212. package/dist/src/mcp-tools/ruvllm-tools.js.map +1 -1
  213. package/dist/src/mcp-tools/security-tools.js +297 -429
  214. package/dist/src/mcp-tools/security-tools.js.map +1 -1
  215. package/dist/src/mcp-tools/session-tools.js +185 -234
  216. package/dist/src/mcp-tools/session-tools.js.map +1 -1
  217. package/dist/src/mcp-tools/swarm-tools.js +207 -260
  218. package/dist/src/mcp-tools/swarm-tools.js.map +1 -1
  219. package/dist/src/mcp-tools/system-tools.js +276 -325
  220. package/dist/src/mcp-tools/system-tools.js.map +1 -1
  221. package/dist/src/mcp-tools/task-tools.js +270 -336
  222. package/dist/src/mcp-tools/task-tools.js.map +1 -1
  223. package/dist/src/mcp-tools/terminal-tools.js +148 -196
  224. package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
  225. package/dist/src/mcp-tools/transfer-tools.js +186 -333
  226. package/dist/src/mcp-tools/transfer-tools.js.map +1 -1
  227. package/dist/src/mcp-tools/types.d.ts +31 -0
  228. package/dist/src/mcp-tools/types.d.ts.map +1 -0
  229. package/dist/src/mcp-tools/wasm-agent-tools.js +133 -280
  230. package/dist/src/mcp-tools/wasm-agent-tools.js.map +1 -1
  231. package/dist/src/mcp-tools/workflow-tools.js +405 -450
  232. package/dist/src/mcp-tools/workflow-tools.js.map +1 -1
  233. package/dist/src/memory/ewc-consolidation.d.ts +295 -0
  234. package/dist/src/memory/ewc-consolidation.d.ts.map +1 -0
  235. package/dist/src/memory/ewc-consolidation.js +190 -303
  236. package/dist/src/memory/ewc-consolidation.js.map +1 -1
  237. package/dist/src/memory/intelligence.d.ts +338 -0
  238. package/dist/src/memory/intelligence.d.ts.map +1 -0
  239. package/dist/src/memory/intelligence.js +569 -794
  240. package/dist/src/memory/intelligence.js.map +1 -1
  241. package/dist/src/memory/memory-bridge.d.ts +407 -0
  242. package/dist/src/memory/memory-bridge.d.ts.map +1 -0
  243. package/dist/src/memory/memory-bridge.js +1170 -1640
  244. package/dist/src/memory/memory-bridge.js.map +1 -1
  245. package/dist/src/memory/memory-initializer.d.ts +412 -0
  246. package/dist/src/memory/memory-initializer.d.ts.map +1 -0
  247. package/dist/src/memory/memory-initializer.js +1836 -1851
  248. package/dist/src/memory/memory-initializer.js.map +1 -1
  249. package/dist/src/memory/sona-optimizer.d.ts +227 -0
  250. package/dist/src/memory/sona-optimizer.d.ts.map +1 -0
  251. package/dist/src/memory/sona-optimizer.js +199 -329
  252. package/dist/src/memory/sona-optimizer.js.map +1 -1
  253. package/dist/src/output.d.ts +2 -2
  254. package/dist/src/output.d.ts.map +1 -1
  255. package/dist/src/output.js +242 -272
  256. package/dist/src/output.js.map +1 -1
  257. package/dist/src/parser.d.ts +51 -0
  258. package/dist/src/parser.d.ts.map +1 -0
  259. package/dist/src/parser.js +140 -187
  260. package/dist/src/parser.js.map +1 -1
  261. package/dist/src/plugins/manager.d.ts +133 -0
  262. package/dist/src/plugins/manager.d.ts.map +1 -0
  263. package/dist/src/plugins/manager.js +285 -521
  264. package/dist/src/plugins/manager.js.map +1 -1
  265. package/dist/src/plugins/store/discovery.d.ts +88 -0
  266. package/dist/src/plugins/store/discovery.d.ts.map +1 -0
  267. package/dist/src/plugins/store/discovery.js +271 -358
  268. package/dist/src/plugins/store/discovery.js.map +1 -1
  269. package/dist/src/plugins/store/index.d.ts +76 -0
  270. package/dist/src/plugins/store/index.d.ts.map +1 -0
  271. package/dist/src/plugins/store/index.js +48 -105
  272. package/dist/src/plugins/store/index.js.map +1 -1
  273. package/dist/src/plugins/store/search.d.ts +46 -0
  274. package/dist/src/plugins/store/search.d.ts.map +1 -0
  275. package/dist/src/plugins/store/search.js +69 -107
  276. package/dist/src/plugins/store/search.js.map +1 -1
  277. package/dist/src/plugins/store/types.d.ts +274 -0
  278. package/dist/src/plugins/store/types.d.ts.map +1 -0
  279. package/dist/src/plugins/tests/demo-plugin-store.js +113 -160
  280. package/dist/src/plugins/tests/demo-plugin-store.js.map +1 -1
  281. package/dist/src/plugins/tests/standalone-test.js +172 -223
  282. package/dist/src/plugins/tests/standalone-test.js.map +1 -1
  283. package/dist/src/plugins/tests/test-plugin-store.js +190 -228
  284. package/dist/src/plugins/tests/test-plugin-store.js.map +1 -1
  285. package/dist/src/production/circuit-breaker.d.ts +101 -0
  286. package/dist/src/production/circuit-breaker.d.ts.map +1 -0
  287. package/dist/src/production/circuit-breaker.js +62 -126
  288. package/dist/src/production/circuit-breaker.js.map +1 -1
  289. package/dist/src/production/error-handler.d.ts +92 -0
  290. package/dist/src/production/error-handler.d.ts.map +1 -0
  291. package/dist/src/production/error-handler.js +86 -156
  292. package/dist/src/production/error-handler.js.map +1 -1
  293. package/dist/src/production/monitoring.d.ts +161 -0
  294. package/dist/src/production/monitoring.d.ts.map +1 -0
  295. package/dist/src/production/monitoring.js +139 -220
  296. package/dist/src/production/monitoring.js.map +1 -1
  297. package/dist/src/production/rate-limiter.d.ts +80 -0
  298. package/dist/src/production/rate-limiter.d.ts.map +1 -0
  299. package/dist/src/production/rate-limiter.js +74 -93
  300. package/dist/src/production/rate-limiter.js.map +1 -1
  301. package/dist/src/production/retry.d.ts +48 -0
  302. package/dist/src/production/retry.d.ts.map +1 -0
  303. package/dist/src/production/retry.js +75 -167
  304. package/dist/src/production/retry.js.map +1 -1
  305. package/dist/src/prompt.d.ts +44 -0
  306. package/dist/src/prompt.d.ts.map +1 -0
  307. package/dist/src/prompt.js +436 -560
  308. package/dist/src/prompt.js.map +1 -1
  309. package/dist/src/runtime/headless.d.ts +60 -0
  310. package/dist/src/runtime/headless.d.ts.map +1 -0
  311. package/dist/src/runtime/headless.js +197 -286
  312. package/dist/src/runtime/headless.js.map +1 -1
  313. package/dist/src/ruvector/agent-wasm.d.ts +182 -0
  314. package/dist/src/ruvector/agent-wasm.d.ts.map +1 -0
  315. package/dist/src/ruvector/agent-wasm.js +156 -351
  316. package/dist/src/ruvector/agent-wasm.js.map +1 -1
  317. package/dist/src/ruvector/ast-analyzer.d.ts +67 -0
  318. package/dist/src/ruvector/ast-analyzer.d.ts.map +1 -0
  319. package/dist/src/ruvector/ast-analyzer.js +145 -232
  320. package/dist/src/ruvector/ast-analyzer.js.map +1 -1
  321. package/dist/src/ruvector/coverage-router.d.ts +160 -0
  322. package/dist/src/ruvector/coverage-router.d.ts.map +1 -0
  323. package/dist/src/ruvector/coverage-router.js +287 -419
  324. package/dist/src/ruvector/coverage-router.js.map +1 -1
  325. package/dist/src/ruvector/coverage-tools.js +56 -101
  326. package/dist/src/ruvector/coverage-tools.js.map +1 -1
  327. package/dist/src/ruvector/diff-classifier.d.ts +175 -0
  328. package/dist/src/ruvector/diff-classifier.d.ts.map +1 -0
  329. package/dist/src/ruvector/diff-classifier.js +324 -451
  330. package/dist/src/ruvector/diff-classifier.js.map +1 -1
  331. package/dist/src/ruvector/enhanced-model-router.d.ts +146 -0
  332. package/dist/src/ruvector/enhanced-model-router.d.ts.map +1 -0
  333. package/dist/src/ruvector/enhanced-model-router.js +260 -336
  334. package/dist/src/ruvector/enhanced-model-router.js.map +1 -1
  335. package/dist/src/ruvector/flash-attention.d.ts +195 -0
  336. package/dist/src/ruvector/flash-attention.d.ts.map +1 -0
  337. package/dist/src/ruvector/flash-attention.js +223 -254
  338. package/dist/src/ruvector/flash-attention.js.map +1 -1
  339. package/dist/src/ruvector/graph-analyzer.d.ts +187 -0
  340. package/dist/src/ruvector/graph-analyzer.d.ts.map +1 -0
  341. package/dist/src/ruvector/graph-analyzer.js +486 -680
  342. package/dist/src/ruvector/graph-analyzer.js.map +1 -1
  343. package/dist/src/ruvector/index.d.ts +40 -0
  344. package/dist/src/ruvector/index.d.ts.map +1 -0
  345. package/dist/src/ruvector/index.js +36 -106
  346. package/dist/src/ruvector/index.js.map +1 -1
  347. package/dist/src/ruvector/lora-adapter.d.ts +218 -0
  348. package/dist/src/ruvector/lora-adapter.d.ts.map +1 -0
  349. package/dist/src/ruvector/lora-adapter.js +155 -248
  350. package/dist/src/ruvector/lora-adapter.js.map +1 -1
  351. package/dist/src/ruvector/model-router.d.ts +220 -0
  352. package/dist/src/ruvector/model-router.d.ts.map +1 -0
  353. package/dist/src/ruvector/model-router.js +175 -248
  354. package/dist/src/ruvector/model-router.js.map +1 -1
  355. package/dist/src/ruvector/moe-router.d.ts +206 -0
  356. package/dist/src/ruvector/moe-router.d.ts.map +1 -0
  357. package/dist/src/ruvector/moe-router.js +228 -286
  358. package/dist/src/ruvector/moe-router.js.map +1 -1
  359. package/dist/src/ruvector/q-learning-router.d.ts +211 -0
  360. package/dist/src/ruvector/q-learning-router.d.ts.map +1 -0
  361. package/dist/src/ruvector/q-learning-router.js +257 -338
  362. package/dist/src/ruvector/q-learning-router.js.map +1 -1
  363. package/dist/src/ruvector/ruvllm-wasm.d.ts +179 -0
  364. package/dist/src/ruvector/ruvllm-wasm.d.ts.map +1 -0
  365. package/dist/src/ruvector/ruvllm-wasm.js +270 -434
  366. package/dist/src/ruvector/ruvllm-wasm.js.map +1 -1
  367. package/dist/src/ruvector/semantic-router.d.ts +77 -0
  368. package/dist/src/ruvector/semantic-router.d.ts.map +1 -0
  369. package/dist/src/ruvector/semantic-router.js +60 -67
  370. package/dist/src/ruvector/semantic-router.js.map +1 -1
  371. package/dist/src/ruvector/vector-db.d.ts +69 -0
  372. package/dist/src/ruvector/vector-db.d.ts.map +1 -0
  373. package/dist/src/ruvector/vector-db.js +119 -205
  374. package/dist/src/ruvector/vector-db.js.map +1 -1
  375. package/dist/src/services/agentic-flow-bridge.d.ts +50 -0
  376. package/dist/src/services/agentic-flow-bridge.d.ts.map +1 -0
  377. package/dist/src/services/agentic-flow-bridge.js +32 -105
  378. package/dist/src/services/agentic-flow-bridge.js.map +1 -1
  379. package/dist/src/services/claim-service.d.ts +204 -0
  380. package/dist/src/services/claim-service.d.ts.map +1 -0
  381. package/dist/src/services/claim-service.js +615 -940
  382. package/dist/src/services/claim-service.js.map +1 -1
  383. package/dist/src/services/container-worker-pool.d.ts +197 -0
  384. package/dist/src/services/container-worker-pool.d.ts.map +1 -0
  385. package/dist/src/services/container-worker-pool.js +398 -666
  386. package/dist/src/services/container-worker-pool.js.map +1 -1
  387. package/dist/src/services/headless-worker-executor.d.ts +304 -0
  388. package/dist/src/services/headless-worker-executor.d.ts.map +1 -0
  389. package/dist/src/services/headless-worker-executor.js +441 -467
  390. package/dist/src/services/headless-worker-executor.js.map +1 -1
  391. package/dist/src/services/index.d.ts +4 -4
  392. package/dist/src/services/index.d.ts.map +1 -1
  393. package/dist/src/services/index.js +4 -4
  394. package/dist/src/services/index.js.map +1 -1
  395. package/dist/src/services/registry-api.d.ts +58 -0
  396. package/dist/src/services/registry-api.d.ts.map +1 -0
  397. package/dist/src/services/registry-api.js +92 -200
  398. package/dist/src/services/registry-api.js.map +1 -1
  399. package/dist/src/services/ruvector-training.d.ts +222 -0
  400. package/dist/src/services/ruvector-training.d.ts.map +1 -0
  401. package/dist/src/services/ruvector-training.js +257 -337
  402. package/dist/src/services/ruvector-training.js.map +1 -1
  403. package/dist/src/services/worker-daemon.d.ts +228 -0
  404. package/dist/src/services/worker-daemon.d.ts.map +1 -0
  405. package/dist/src/services/worker-daemon.js +591 -849
  406. package/dist/src/services/worker-daemon.js.map +1 -1
  407. package/dist/src/services/worker-queue.d.ts +194 -0
  408. package/dist/src/services/worker-queue.d.ts.map +1 -0
  409. package/dist/src/services/worker-queue.js +331 -548
  410. package/dist/src/services/worker-queue.js.map +1 -1
  411. package/dist/src/suggest.d.ts +53 -0
  412. package/dist/src/suggest.d.ts.map +1 -0
  413. package/dist/src/suggest.js +45 -55
  414. package/dist/src/suggest.js.map +1 -1
  415. package/dist/src/transfer/anonymization/index.js +29 -37
  416. package/dist/src/transfer/anonymization/index.js.map +1 -1
  417. package/dist/src/transfer/deploy-seraphine.js +128 -155
  418. package/dist/src/transfer/deploy-seraphine.js.map +1 -1
  419. package/dist/src/transfer/export.d.ts +25 -0
  420. package/dist/src/transfer/export.d.ts.map +1 -0
  421. package/dist/src/transfer/export.js +84 -142
  422. package/dist/src/transfer/export.js.map +1 -1
  423. package/dist/src/transfer/index.d.ts +1 -1
  424. package/dist/src/transfer/index.d.ts.map +1 -1
  425. package/dist/src/transfer/index.js +0 -2
  426. package/dist/src/transfer/index.js.map +1 -1
  427. package/dist/src/transfer/ipfs/client.d.ts +109 -0
  428. package/dist/src/transfer/ipfs/client.d.ts.map +1 -0
  429. package/dist/src/transfer/ipfs/client.js +187 -337
  430. package/dist/src/transfer/ipfs/client.js.map +1 -1
  431. package/dist/src/transfer/ipfs/upload.d.ts +95 -0
  432. package/dist/src/transfer/ipfs/upload.d.ts.map +1 -0
  433. package/dist/src/transfer/ipfs/upload.js +288 -434
  434. package/dist/src/transfer/ipfs/upload.js.map +1 -1
  435. package/dist/src/transfer/models/seraphine.d.ts +72 -0
  436. package/dist/src/transfer/models/seraphine.d.ts.map +1 -0
  437. package/dist/src/transfer/models/seraphine.js +55 -55
  438. package/dist/src/transfer/models/seraphine.js.map +1 -1
  439. package/dist/src/transfer/serialization/cfp.d.ts +49 -0
  440. package/dist/src/transfer/serialization/cfp.d.ts.map +1 -0
  441. package/dist/src/transfer/serialization/cfp.js +30 -31
  442. package/dist/src/transfer/serialization/cfp.js.map +1 -1
  443. package/dist/src/transfer/storage/gcs.d.ts +82 -0
  444. package/dist/src/transfer/storage/gcs.d.ts.map +1 -0
  445. package/dist/src/transfer/storage/gcs.js +165 -232
  446. package/dist/src/transfer/storage/gcs.js.map +1 -1
  447. package/dist/src/transfer/store/discovery.d.ts +84 -0
  448. package/dist/src/transfer/store/discovery.d.ts.map +1 -0
  449. package/dist/src/transfer/store/discovery.js +239 -349
  450. package/dist/src/transfer/store/discovery.js.map +1 -1
  451. package/dist/src/transfer/store/download.d.ts +70 -0
  452. package/dist/src/transfer/store/download.d.ts.map +1 -0
  453. package/dist/src/transfer/store/download.js +243 -365
  454. package/dist/src/transfer/store/download.js.map +1 -1
  455. package/dist/src/transfer/store/index.d.ts +84 -0
  456. package/dist/src/transfer/store/index.d.ts.map +1 -0
  457. package/dist/src/transfer/store/index.js +63 -130
  458. package/dist/src/transfer/store/index.js.map +1 -1
  459. package/dist/src/transfer/store/publish.d.ts +76 -0
  460. package/dist/src/transfer/store/publish.d.ts.map +1 -0
  461. package/dist/src/transfer/store/publish.js +184 -258
  462. package/dist/src/transfer/store/publish.js.map +1 -1
  463. package/dist/src/transfer/store/registry.js +50 -72
  464. package/dist/src/transfer/store/registry.js.map +1 -1
  465. package/dist/src/transfer/store/search.d.ts +54 -0
  466. package/dist/src/transfer/store/search.d.ts.map +1 -0
  467. package/dist/src/transfer/store/search.js +64 -96
  468. package/dist/src/transfer/store/search.js.map +1 -1
  469. package/dist/src/transfer/store/tests/standalone-test.js +174 -231
  470. package/dist/src/transfer/store/tests/standalone-test.js.map +1 -1
  471. package/dist/src/transfer/test-seraphine.js +95 -130
  472. package/dist/src/transfer/test-seraphine.js.map +1 -1
  473. package/dist/src/transfer/tests/test-store.js +194 -239
  474. package/dist/src/transfer/tests/test-store.js.map +1 -1
  475. package/dist/src/transfer/types.d.ts +245 -0
  476. package/dist/src/transfer/types.d.ts.map +1 -0
  477. package/dist/src/types.d.ts +198 -0
  478. package/dist/src/types.d.ts.map +1 -0
  479. package/dist/src/types.js +26 -55
  480. package/dist/src/types.js.map +1 -1
  481. package/dist/src/update/checker.d.ts +34 -0
  482. package/dist/src/update/checker.d.ts.map +1 -0
  483. package/dist/src/update/checker.js +106 -183
  484. package/dist/src/update/checker.js.map +1 -1
  485. package/dist/src/update/executor.d.ts +32 -0
  486. package/dist/src/update/executor.d.ts.map +1 -0
  487. package/dist/src/update/executor.js +135 -198
  488. package/dist/src/update/executor.js.map +1 -1
  489. package/dist/src/update/index.d.ts +33 -0
  490. package/dist/src/update/index.d.ts.map +1 -0
  491. package/dist/src/update/index.js +38 -85
  492. package/dist/src/update/index.js.map +1 -1
  493. package/dist/src/update/rate-limiter.d.ts +20 -0
  494. package/dist/src/update/rate-limiter.d.ts.map +1 -0
  495. package/dist/src/update/rate-limiter.js +19 -31
  496. package/dist/src/update/rate-limiter.js.map +1 -1
  497. package/dist/src/update/validator.d.ts +17 -0
  498. package/dist/src/update/validator.d.ts.map +1 -0
  499. package/dist/src/update/validator.js +38 -64
  500. package/dist/src/update/validator.js.map +1 -1
  501. package/dist/tsconfig.tsbuildinfo +1 -1
  502. package/package.json +1 -1
@@ -6,75 +6,28 @@
6
6
  *
7
7
  * @module @claude-flow/cli/mcp-tools/claims
8
8
  */
9
- var __assign = (this && this.__assign) || function () {
10
- __assign = Object.assign || function(t) {
11
- for (var s, i = 1, n = arguments.length; i < n; i++) {
12
- s = arguments[i];
13
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
14
- t[p] = s[p];
15
- }
16
- return t;
17
- };
18
- return __assign.apply(this, arguments);
19
- };
20
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
21
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
22
- return new (P || (P = Promise))(function (resolve, reject) {
23
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
24
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
25
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
26
- step((generator = generator.apply(thisArg, _arguments || [])).next());
27
- });
28
- };
29
- var __generator = (this && this.__generator) || function (thisArg, body) {
30
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
31
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
32
- function verb(n) { return function (v) { return step([n, v]); }; }
33
- function step(op) {
34
- if (f) throw new TypeError("Generator is already executing.");
35
- while (_) try {
36
- 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;
37
- if (y = 0, t) op = [op[0] & 2, t.value];
38
- switch (op[0]) {
39
- case 0: case 1: t = op; break;
40
- case 4: _.label++; return { value: op[1], done: false };
41
- case 5: _.label++; y = op[1]; op = [0]; continue;
42
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
43
- default:
44
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
45
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
46
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
47
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
48
- if (t[2]) _.ops.pop();
49
- _.trys.pop(); continue;
50
- }
51
- op = body.call(thisArg, _);
52
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
53
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
54
- }
55
- };
56
9
  // File-based persistence
57
10
  import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
58
11
  import { join, resolve } from 'path';
59
- var CLAIMS_DIR = '.claude-flow/claims';
60
- var CLAIMS_FILE = 'claims.json';
12
+ const CLAIMS_DIR = '.claude-flow/claims';
13
+ const CLAIMS_FILE = 'claims.json';
61
14
  function getClaimsPath() {
62
15
  return resolve(join(CLAIMS_DIR, CLAIMS_FILE));
63
16
  }
64
17
  function ensureClaimsDir() {
65
- var dir = resolve(CLAIMS_DIR);
18
+ const dir = resolve(CLAIMS_DIR);
66
19
  if (!existsSync(dir)) {
67
20
  mkdirSync(dir, { recursive: true });
68
21
  }
69
22
  }
70
23
  function loadClaims() {
71
24
  try {
72
- var path = getClaimsPath();
25
+ const path = getClaimsPath();
73
26
  if (existsSync(path)) {
74
27
  return JSON.parse(readFileSync(path, 'utf-8'));
75
28
  }
76
29
  }
77
- catch (_a) {
30
+ catch {
78
31
  // Return empty store on error
79
32
  }
80
33
  return { claims: {}, stealable: {}, contests: {} };
@@ -85,11 +38,11 @@ function saveClaims(store) {
85
38
  }
86
39
  function formatClaimant(claimant) {
87
40
  return claimant.type === 'human'
88
- ? "human:" + claimant.userId + ":" + claimant.name
89
- : "agent:" + claimant.agentId + ":" + claimant.agentType;
41
+ ? `human:${claimant.userId}:${claimant.name}`
42
+ : `agent:${claimant.agentId}:${claimant.agentType}`;
90
43
  }
91
44
  function parseClaimant(str) {
92
- var parts = str.split(':');
45
+ const parts = str.split(':');
93
46
  if (parts[0] === 'human' && parts.length >= 3) {
94
47
  return { type: 'human', userId: parts[1], name: parts.slice(2).join(':') };
95
48
  }
@@ -98,7 +51,7 @@ function parseClaimant(str) {
98
51
  }
99
52
  return null;
100
53
  }
101
- export var claimsTools = [
54
+ export const claimsTools = [
102
55
  {
103
56
  name: 'claims_claim',
104
57
  description: 'Claim an issue for work (human or agent)',
@@ -108,58 +61,55 @@ export var claimsTools = [
108
61
  properties: {
109
62
  issueId: {
110
63
  type: 'string',
111
- description: 'Issue ID or GitHub issue number'
64
+ description: 'Issue ID or GitHub issue number',
112
65
  },
113
66
  claimant: {
114
67
  type: 'string',
115
- description: 'Claimant identifier (e.g., "human:user-1:Alice" or "agent:coder-1:coder")'
68
+ description: 'Claimant identifier (e.g., "human:user-1:Alice" or "agent:coder-1:coder")',
116
69
  },
117
70
  context: {
118
71
  type: 'string',
119
- description: 'Optional context about the work approach'
120
- }
72
+ description: 'Optional context about the work approach',
73
+ },
121
74
  },
122
- required: ['issueId', 'claimant']
75
+ required: ['issueId', 'claimant'],
123
76
  },
124
- handler: function (input) { return __awaiter(void 0, void 0, void 0, function () {
125
- var issueId, claimantStr, context, claimant, store, existing, now, claim;
126
- return __generator(this, function (_a) {
127
- issueId = input.issueId;
128
- claimantStr = input.claimant;
129
- context = input.context;
130
- claimant = parseClaimant(claimantStr);
131
- if (!claimant) {
132
- return [2 /*return*/, { success: false, error: 'Invalid claimant format. Use "human:userId:name" or "agent:agentId:agentType"' }];
133
- }
134
- store = loadClaims();
135
- // Check if already claimed
136
- if (store.claims[issueId]) {
137
- existing = store.claims[issueId];
138
- return [2 /*return*/, {
139
- success: false,
140
- error: "Issue already claimed by " + formatClaimant(existing.claimant),
141
- existingClaim: existing
142
- }];
143
- }
144
- now = new Date().toISOString();
145
- claim = {
146
- issueId: issueId,
147
- claimant: claimant,
148
- claimedAt: now,
149
- status: 'active',
150
- statusChangedAt: now,
151
- progress: 0,
152
- context: context
77
+ handler: async (input) => {
78
+ const issueId = input.issueId;
79
+ const claimantStr = input.claimant;
80
+ const context = input.context;
81
+ const claimant = parseClaimant(claimantStr);
82
+ if (!claimant) {
83
+ return { success: false, error: 'Invalid claimant format. Use "human:userId:name" or "agent:agentId:agentType"' };
84
+ }
85
+ const store = loadClaims();
86
+ // Check if already claimed
87
+ if (store.claims[issueId]) {
88
+ const existing = store.claims[issueId];
89
+ return {
90
+ success: false,
91
+ error: `Issue already claimed by ${formatClaimant(existing.claimant)}`,
92
+ existingClaim: existing,
153
93
  };
154
- store.claims[issueId] = claim;
155
- saveClaims(store);
156
- return [2 /*return*/, {
157
- success: true,
158
- claim: claim,
159
- message: "Issue " + issueId + " claimed by " + formatClaimant(claimant)
160
- }];
161
- });
162
- }); }
94
+ }
95
+ const now = new Date().toISOString();
96
+ const claim = {
97
+ issueId,
98
+ claimant,
99
+ claimedAt: now,
100
+ status: 'active',
101
+ statusChangedAt: now,
102
+ progress: 0,
103
+ context,
104
+ };
105
+ store.claims[issueId] = claim;
106
+ saveClaims(store);
107
+ return {
108
+ success: true,
109
+ claim,
110
+ message: `Issue ${issueId} claimed by ${formatClaimant(claimant)}`,
111
+ };
112
+ },
163
113
  },
164
114
  {
165
115
  name: 'claims_release',
@@ -170,49 +120,46 @@ export var claimsTools = [
170
120
  properties: {
171
121
  issueId: {
172
122
  type: 'string',
173
- description: 'Issue ID to release'
123
+ description: 'Issue ID to release',
174
124
  },
175
125
  claimant: {
176
126
  type: 'string',
177
- description: 'Claimant identifier (must match current owner)'
127
+ description: 'Claimant identifier (must match current owner)',
178
128
  },
179
129
  reason: {
180
130
  type: 'string',
181
- description: 'Reason for releasing'
182
- }
131
+ description: 'Reason for releasing',
132
+ },
183
133
  },
184
- required: ['issueId', 'claimant']
134
+ required: ['issueId', 'claimant'],
135
+ },
136
+ handler: async (input) => {
137
+ const issueId = input.issueId;
138
+ const claimantStr = input.claimant;
139
+ const reason = input.reason;
140
+ const claimant = parseClaimant(claimantStr);
141
+ if (!claimant) {
142
+ return { success: false, error: 'Invalid claimant format' };
143
+ }
144
+ const store = loadClaims();
145
+ const claim = store.claims[issueId];
146
+ if (!claim) {
147
+ return { success: false, error: 'Issue is not claimed' };
148
+ }
149
+ // Verify ownership
150
+ if (formatClaimant(claim.claimant) !== formatClaimant(claimant)) {
151
+ return { success: false, error: 'Only the current claimant can release' };
152
+ }
153
+ delete store.claims[issueId];
154
+ delete store.stealable[issueId];
155
+ saveClaims(store);
156
+ return {
157
+ success: true,
158
+ message: `Issue ${issueId} released`,
159
+ reason,
160
+ previousClaim: claim,
161
+ };
185
162
  },
186
- handler: function (input) { return __awaiter(void 0, void 0, void 0, function () {
187
- var issueId, claimantStr, reason, claimant, store, claim;
188
- return __generator(this, function (_a) {
189
- issueId = input.issueId;
190
- claimantStr = input.claimant;
191
- reason = input.reason;
192
- claimant = parseClaimant(claimantStr);
193
- if (!claimant) {
194
- return [2 /*return*/, { success: false, error: 'Invalid claimant format' }];
195
- }
196
- store = loadClaims();
197
- claim = store.claims[issueId];
198
- if (!claim) {
199
- return [2 /*return*/, { success: false, error: 'Issue is not claimed' }];
200
- }
201
- // Verify ownership
202
- if (formatClaimant(claim.claimant) !== formatClaimant(claimant)) {
203
- return [2 /*return*/, { success: false, error: 'Only the current claimant can release' }];
204
- }
205
- delete store.claims[issueId];
206
- delete store.stealable[issueId];
207
- saveClaims(store);
208
- return [2 /*return*/, {
209
- success: true,
210
- message: "Issue " + issueId + " released",
211
- reason: reason,
212
- previousClaim: claim
213
- }];
214
- });
215
- }); }
216
163
  },
217
164
  {
218
165
  name: 'claims_handoff',
@@ -223,63 +170,60 @@ export var claimsTools = [
223
170
  properties: {
224
171
  issueId: {
225
172
  type: 'string',
226
- description: 'Issue ID to handoff'
173
+ description: 'Issue ID to handoff',
227
174
  },
228
175
  from: {
229
176
  type: 'string',
230
- description: 'Current claimant identifier'
177
+ description: 'Current claimant identifier',
231
178
  },
232
179
  to: {
233
180
  type: 'string',
234
- description: 'Target claimant identifier'
181
+ description: 'Target claimant identifier',
235
182
  },
236
183
  reason: {
237
184
  type: 'string',
238
- description: 'Reason for handoff'
185
+ description: 'Reason for handoff',
239
186
  },
240
187
  progress: {
241
188
  type: 'number',
242
- description: 'Current progress percentage (0-100)'
243
- }
189
+ description: 'Current progress percentage (0-100)',
190
+ },
244
191
  },
245
- required: ['issueId', 'from', 'to']
192
+ required: ['issueId', 'from', 'to'],
193
+ },
194
+ handler: async (input) => {
195
+ const issueId = input.issueId;
196
+ const fromStr = input.from;
197
+ const toStr = input.to;
198
+ const reason = input.reason;
199
+ const progress = input.progress || 0;
200
+ const from = parseClaimant(fromStr);
201
+ const to = parseClaimant(toStr);
202
+ if (!from || !to) {
203
+ return { success: false, error: 'Invalid claimant format' };
204
+ }
205
+ const store = loadClaims();
206
+ const claim = store.claims[issueId];
207
+ if (!claim) {
208
+ return { success: false, error: 'Issue is not claimed' };
209
+ }
210
+ if (formatClaimant(claim.claimant) !== formatClaimant(from)) {
211
+ return { success: false, error: 'Only the current claimant can request handoff' };
212
+ }
213
+ const now = new Date().toISOString();
214
+ claim.status = 'handoff-pending';
215
+ claim.statusChangedAt = now;
216
+ claim.handoffTo = to;
217
+ claim.handoffReason = reason;
218
+ claim.progress = progress;
219
+ store.claims[issueId] = claim;
220
+ saveClaims(store);
221
+ return {
222
+ success: true,
223
+ claim,
224
+ message: `Handoff requested from ${formatClaimant(from)} to ${formatClaimant(to)}`,
225
+ };
246
226
  },
247
- handler: function (input) { return __awaiter(void 0, void 0, void 0, function () {
248
- var issueId, fromStr, toStr, reason, progress, from, to, store, claim, now;
249
- return __generator(this, function (_a) {
250
- issueId = input.issueId;
251
- fromStr = input.from;
252
- toStr = input.to;
253
- reason = input.reason;
254
- progress = input.progress || 0;
255
- from = parseClaimant(fromStr);
256
- to = parseClaimant(toStr);
257
- if (!from || !to) {
258
- return [2 /*return*/, { success: false, error: 'Invalid claimant format' }];
259
- }
260
- store = loadClaims();
261
- claim = store.claims[issueId];
262
- if (!claim) {
263
- return [2 /*return*/, { success: false, error: 'Issue is not claimed' }];
264
- }
265
- if (formatClaimant(claim.claimant) !== formatClaimant(from)) {
266
- return [2 /*return*/, { success: false, error: 'Only the current claimant can request handoff' }];
267
- }
268
- now = new Date().toISOString();
269
- claim.status = 'handoff-pending';
270
- claim.statusChangedAt = now;
271
- claim.handoffTo = to;
272
- claim.handoffReason = reason;
273
- claim.progress = progress;
274
- store.claims[issueId] = claim;
275
- saveClaims(store);
276
- return [2 /*return*/, {
277
- success: true,
278
- claim: claim,
279
- message: "Handoff requested from " + formatClaimant(from) + " to " + formatClaimant(to)
280
- }];
281
- });
282
- }); }
283
227
  },
284
228
  {
285
229
  name: 'claims_accept-handoff',
@@ -290,52 +234,49 @@ export var claimsTools = [
290
234
  properties: {
291
235
  issueId: {
292
236
  type: 'string',
293
- description: 'Issue ID with pending handoff'
237
+ description: 'Issue ID with pending handoff',
294
238
  },
295
239
  claimant: {
296
240
  type: 'string',
297
- description: 'Claimant accepting the handoff'
298
- }
241
+ description: 'Claimant accepting the handoff',
242
+ },
299
243
  },
300
- required: ['issueId', 'claimant']
244
+ required: ['issueId', 'claimant'],
245
+ },
246
+ handler: async (input) => {
247
+ const issueId = input.issueId;
248
+ const claimantStr = input.claimant;
249
+ const claimant = parseClaimant(claimantStr);
250
+ if (!claimant) {
251
+ return { success: false, error: 'Invalid claimant format' };
252
+ }
253
+ const store = loadClaims();
254
+ const claim = store.claims[issueId];
255
+ if (!claim) {
256
+ return { success: false, error: 'Issue is not claimed' };
257
+ }
258
+ if (claim.status !== 'handoff-pending') {
259
+ return { success: false, error: 'No pending handoff for this issue' };
260
+ }
261
+ if (!claim.handoffTo || formatClaimant(claim.handoffTo) !== formatClaimant(claimant)) {
262
+ return { success: false, error: 'You are not the target of this handoff' };
263
+ }
264
+ const previousOwner = claim.claimant;
265
+ const now = new Date().toISOString();
266
+ claim.claimant = claimant;
267
+ claim.status = 'active';
268
+ claim.statusChangedAt = now;
269
+ claim.handoffTo = undefined;
270
+ claim.handoffReason = undefined;
271
+ store.claims[issueId] = claim;
272
+ saveClaims(store);
273
+ return {
274
+ success: true,
275
+ claim,
276
+ previousOwner,
277
+ message: `Handoff accepted. ${formatClaimant(claimant)} now owns issue ${issueId}`,
278
+ };
301
279
  },
302
- handler: function (input) { return __awaiter(void 0, void 0, void 0, function () {
303
- var issueId, claimantStr, claimant, store, claim, previousOwner, now;
304
- return __generator(this, function (_a) {
305
- issueId = input.issueId;
306
- claimantStr = input.claimant;
307
- claimant = parseClaimant(claimantStr);
308
- if (!claimant) {
309
- return [2 /*return*/, { success: false, error: 'Invalid claimant format' }];
310
- }
311
- store = loadClaims();
312
- claim = store.claims[issueId];
313
- if (!claim) {
314
- return [2 /*return*/, { success: false, error: 'Issue is not claimed' }];
315
- }
316
- if (claim.status !== 'handoff-pending') {
317
- return [2 /*return*/, { success: false, error: 'No pending handoff for this issue' }];
318
- }
319
- if (!claim.handoffTo || formatClaimant(claim.handoffTo) !== formatClaimant(claimant)) {
320
- return [2 /*return*/, { success: false, error: 'You are not the target of this handoff' }];
321
- }
322
- previousOwner = claim.claimant;
323
- now = new Date().toISOString();
324
- claim.claimant = claimant;
325
- claim.status = 'active';
326
- claim.statusChangedAt = now;
327
- claim.handoffTo = undefined;
328
- claim.handoffReason = undefined;
329
- store.claims[issueId] = claim;
330
- saveClaims(store);
331
- return [2 /*return*/, {
332
- success: true,
333
- claim: claim,
334
- previousOwner: previousOwner,
335
- message: "Handoff accepted. " + formatClaimant(claimant) + " now owns issue " + issueId
336
- }];
337
- });
338
- }); }
339
280
  },
340
281
  {
341
282
  name: 'claims_status',
@@ -346,54 +287,51 @@ export var claimsTools = [
346
287
  properties: {
347
288
  issueId: {
348
289
  type: 'string',
349
- description: 'Issue ID'
290
+ description: 'Issue ID',
350
291
  },
351
292
  status: {
352
293
  type: 'string',
353
294
  description: 'New status',
354
- "enum": ['active', 'paused', 'blocked', 'review-requested', 'completed']
295
+ enum: ['active', 'paused', 'blocked', 'review-requested', 'completed'],
355
296
  },
356
297
  note: {
357
298
  type: 'string',
358
- description: 'Status note or reason'
299
+ description: 'Status note or reason',
359
300
  },
360
301
  progress: {
361
302
  type: 'number',
362
- description: 'Current progress percentage'
363
- }
303
+ description: 'Current progress percentage',
304
+ },
364
305
  },
365
- required: ['issueId', 'status']
306
+ required: ['issueId', 'status'],
307
+ },
308
+ handler: async (input) => {
309
+ const issueId = input.issueId;
310
+ const status = input.status;
311
+ const note = input.note;
312
+ const progress = input.progress;
313
+ const store = loadClaims();
314
+ const claim = store.claims[issueId];
315
+ if (!claim) {
316
+ return { success: false, error: 'Issue is not claimed' };
317
+ }
318
+ const now = new Date().toISOString();
319
+ claim.status = status;
320
+ claim.statusChangedAt = now;
321
+ if (status === 'blocked') {
322
+ claim.blockReason = note;
323
+ }
324
+ if (progress !== undefined) {
325
+ claim.progress = Math.min(100, Math.max(0, progress));
326
+ }
327
+ store.claims[issueId] = claim;
328
+ saveClaims(store);
329
+ return {
330
+ success: true,
331
+ claim,
332
+ message: `Issue ${issueId} status updated to ${status}`,
333
+ };
366
334
  },
367
- handler: function (input) { return __awaiter(void 0, void 0, void 0, function () {
368
- var issueId, status, note, progress, store, claim, now;
369
- return __generator(this, function (_a) {
370
- issueId = input.issueId;
371
- status = input.status;
372
- note = input.note;
373
- progress = input.progress;
374
- store = loadClaims();
375
- claim = store.claims[issueId];
376
- if (!claim) {
377
- return [2 /*return*/, { success: false, error: 'Issue is not claimed' }];
378
- }
379
- now = new Date().toISOString();
380
- claim.status = status;
381
- claim.statusChangedAt = now;
382
- if (status === 'blocked') {
383
- claim.blockReason = note;
384
- }
385
- if (progress !== undefined) {
386
- claim.progress = Math.min(100, Math.max(0, progress));
387
- }
388
- store.claims[issueId] = claim;
389
- saveClaims(store);
390
- return [2 /*return*/, {
391
- success: true,
392
- claim: claim,
393
- message: "Issue " + issueId + " status updated to " + status
394
- }];
395
- });
396
- }); }
397
335
  },
398
336
  {
399
337
  name: 'claims_list',
@@ -405,45 +343,40 @@ export var claimsTools = [
405
343
  status: {
406
344
  type: 'string',
407
345
  description: 'Filter by status',
408
- "enum": ['active', 'paused', 'blocked', 'stealable', 'completed', 'all']
346
+ enum: ['active', 'paused', 'blocked', 'stealable', 'completed', 'all'],
409
347
  },
410
348
  claimant: {
411
349
  type: 'string',
412
- description: 'Filter by claimant'
350
+ description: 'Filter by claimant',
413
351
  },
414
352
  agentType: {
415
353
  type: 'string',
416
- description: 'Filter by agent type'
417
- }
354
+ description: 'Filter by agent type',
355
+ },
356
+ },
357
+ },
358
+ handler: async (input) => {
359
+ const status = input.status;
360
+ const claimantFilter = input.claimant;
361
+ const agentType = input.agentType;
362
+ const store = loadClaims();
363
+ let claims = Object.values(store.claims);
364
+ if (status && status !== 'all') {
365
+ claims = claims.filter(c => c.status === status);
366
+ }
367
+ if (claimantFilter) {
368
+ claims = claims.filter(c => formatClaimant(c.claimant).includes(claimantFilter));
418
369
  }
370
+ if (agentType) {
371
+ claims = claims.filter(c => c.claimant.type === 'agent' && c.claimant.agentType === agentType);
372
+ }
373
+ return {
374
+ success: true,
375
+ claims,
376
+ count: claims.length,
377
+ stealableCount: Object.keys(store.stealable).length,
378
+ };
419
379
  },
420
- handler: function (input) { return __awaiter(void 0, void 0, void 0, function () {
421
- var status, claimantFilter, agentType, store, claims;
422
- return __generator(this, function (_a) {
423
- status = input.status;
424
- claimantFilter = input.claimant;
425
- agentType = input.agentType;
426
- store = loadClaims();
427
- claims = Object.values(store.claims);
428
- if (status && status !== 'all') {
429
- claims = claims.filter(function (c) { return c.status === status; });
430
- }
431
- if (claimantFilter) {
432
- claims = claims.filter(function (c) { return formatClaimant(c.claimant).includes(claimantFilter); });
433
- }
434
- if (agentType) {
435
- claims = claims.filter(function (c) {
436
- return c.claimant.type === 'agent' && c.claimant.agentType === agentType;
437
- });
438
- }
439
- return [2 /*return*/, {
440
- success: true,
441
- claims: claims,
442
- count: claims.length,
443
- stealableCount: Object.keys(store.stealable).length
444
- }];
445
- });
446
- }); }
447
380
  },
448
381
  {
449
382
  name: 'claims_mark-stealable',
@@ -454,57 +387,54 @@ export var claimsTools = [
454
387
  properties: {
455
388
  issueId: {
456
389
  type: 'string',
457
- description: 'Issue ID to mark stealable'
390
+ description: 'Issue ID to mark stealable',
458
391
  },
459
392
  reason: {
460
393
  type: 'string',
461
394
  description: 'Reason for marking stealable',
462
- "enum": ['overloaded', 'stale', 'blocked-timeout', 'voluntary']
395
+ enum: ['overloaded', 'stale', 'blocked-timeout', 'voluntary'],
463
396
  },
464
397
  preferredTypes: {
465
398
  type: 'array',
466
399
  description: 'Preferred agent types to steal',
467
- items: { type: 'string' }
400
+ items: { type: 'string' },
468
401
  },
469
402
  context: {
470
403
  type: 'string',
471
- description: 'Handoff context for the stealer'
472
- }
404
+ description: 'Handoff context for the stealer',
405
+ },
473
406
  },
474
- required: ['issueId', 'reason']
407
+ required: ['issueId', 'reason'],
408
+ },
409
+ handler: async (input) => {
410
+ const issueId = input.issueId;
411
+ const reason = input.reason;
412
+ const preferredTypes = input.preferredTypes;
413
+ const context = input.context;
414
+ const store = loadClaims();
415
+ const claim = store.claims[issueId];
416
+ if (!claim) {
417
+ return { success: false, error: 'Issue is not claimed' };
418
+ }
419
+ const now = new Date().toISOString();
420
+ claim.status = 'stealable';
421
+ claim.statusChangedAt = now;
422
+ store.stealable[issueId] = {
423
+ reason,
424
+ stealableAt: now,
425
+ preferredTypes,
426
+ progress: claim.progress,
427
+ context,
428
+ };
429
+ store.claims[issueId] = claim;
430
+ saveClaims(store);
431
+ return {
432
+ success: true,
433
+ claim,
434
+ stealableInfo: store.stealable[issueId],
435
+ message: `Issue ${issueId} marked as stealable (${reason})`,
436
+ };
475
437
  },
476
- handler: function (input) { return __awaiter(void 0, void 0, void 0, function () {
477
- var issueId, reason, preferredTypes, context, store, claim, now;
478
- return __generator(this, function (_a) {
479
- issueId = input.issueId;
480
- reason = input.reason;
481
- preferredTypes = input.preferredTypes;
482
- context = input.context;
483
- store = loadClaims();
484
- claim = store.claims[issueId];
485
- if (!claim) {
486
- return [2 /*return*/, { success: false, error: 'Issue is not claimed' }];
487
- }
488
- now = new Date().toISOString();
489
- claim.status = 'stealable';
490
- claim.statusChangedAt = now;
491
- store.stealable[issueId] = {
492
- reason: reason,
493
- stealableAt: now,
494
- preferredTypes: preferredTypes,
495
- progress: claim.progress,
496
- context: context
497
- };
498
- store.claims[issueId] = claim;
499
- saveClaims(store);
500
- return [2 /*return*/, {
501
- success: true,
502
- claim: claim,
503
- stealableInfo: store.stealable[issueId],
504
- message: "Issue " + issueId + " marked as stealable (" + reason + ")"
505
- }];
506
- });
507
- }); }
508
438
  },
509
439
  {
510
440
  name: 'claims_steal',
@@ -515,60 +445,57 @@ export var claimsTools = [
515
445
  properties: {
516
446
  issueId: {
517
447
  type: 'string',
518
- description: 'Issue ID to steal'
448
+ description: 'Issue ID to steal',
519
449
  },
520
450
  stealer: {
521
451
  type: 'string',
522
- description: 'Claimant stealing the issue'
523
- }
452
+ description: 'Claimant stealing the issue',
453
+ },
524
454
  },
525
- required: ['issueId', 'stealer']
455
+ required: ['issueId', 'stealer'],
526
456
  },
527
- handler: function (input) { return __awaiter(void 0, void 0, void 0, function () {
528
- var issueId, stealerStr, stealer, store, claim, stealableInfo, previousOwner, now;
529
- return __generator(this, function (_a) {
530
- issueId = input.issueId;
531
- stealerStr = input.stealer;
532
- stealer = parseClaimant(stealerStr);
533
- if (!stealer) {
534
- return [2 /*return*/, { success: false, error: 'Invalid claimant format' }];
535
- }
536
- store = loadClaims();
537
- claim = store.claims[issueId];
538
- stealableInfo = store.stealable[issueId];
539
- if (!claim) {
540
- return [2 /*return*/, { success: false, error: 'Issue is not claimed' }];
541
- }
542
- if (!stealableInfo) {
543
- return [2 /*return*/, { success: false, error: 'Issue is not stealable' }];
544
- }
545
- // Check preferred types
546
- if (stealableInfo.preferredTypes && stealableInfo.preferredTypes.length > 0) {
547
- if (stealer.type === 'agent' && !stealableInfo.preferredTypes.includes(stealer.agentType)) {
548
- return [2 /*return*/, {
549
- success: false,
550
- error: "Issue prefers agent types: " + stealableInfo.preferredTypes.join(', ')
551
- }];
552
- }
457
+ handler: async (input) => {
458
+ const issueId = input.issueId;
459
+ const stealerStr = input.stealer;
460
+ const stealer = parseClaimant(stealerStr);
461
+ if (!stealer) {
462
+ return { success: false, error: 'Invalid claimant format' };
463
+ }
464
+ const store = loadClaims();
465
+ const claim = store.claims[issueId];
466
+ const stealableInfo = store.stealable[issueId];
467
+ if (!claim) {
468
+ return { success: false, error: 'Issue is not claimed' };
469
+ }
470
+ if (!stealableInfo) {
471
+ return { success: false, error: 'Issue is not stealable' };
472
+ }
473
+ // Check preferred types
474
+ if (stealableInfo.preferredTypes && stealableInfo.preferredTypes.length > 0) {
475
+ if (stealer.type === 'agent' && !stealableInfo.preferredTypes.includes(stealer.agentType)) {
476
+ return {
477
+ success: false,
478
+ error: `Issue prefers agent types: ${stealableInfo.preferredTypes.join(', ')}`,
479
+ };
553
480
  }
554
- previousOwner = claim.claimant;
555
- now = new Date().toISOString();
556
- claim.claimant = stealer;
557
- claim.status = 'active';
558
- claim.statusChangedAt = now;
559
- claim.context = stealableInfo.context;
560
- delete store.stealable[issueId];
561
- store.claims[issueId] = claim;
562
- saveClaims(store);
563
- return [2 /*return*/, {
564
- success: true,
565
- claim: claim,
566
- previousOwner: previousOwner,
567
- stealableInfo: stealableInfo,
568
- message: "Issue " + issueId + " stolen by " + formatClaimant(stealer)
569
- }];
570
- });
571
- }); }
481
+ }
482
+ const previousOwner = claim.claimant;
483
+ const now = new Date().toISOString();
484
+ claim.claimant = stealer;
485
+ claim.status = 'active';
486
+ claim.statusChangedAt = now;
487
+ claim.context = stealableInfo.context;
488
+ delete store.stealable[issueId];
489
+ store.claims[issueId] = claim;
490
+ saveClaims(store);
491
+ return {
492
+ success: true,
493
+ claim,
494
+ previousOwner,
495
+ stealableInfo,
496
+ message: `Issue ${issueId} stolen by ${formatClaimant(stealer)}`,
497
+ };
498
+ },
572
499
  },
573
500
  {
574
501
  name: 'claims_stealable',
@@ -579,31 +506,27 @@ export var claimsTools = [
579
506
  properties: {
580
507
  agentType: {
581
508
  type: 'string',
582
- description: 'Filter by preferred agent type'
583
- }
509
+ description: 'Filter by preferred agent type',
510
+ },
511
+ },
512
+ },
513
+ handler: async (input) => {
514
+ const agentType = input.agentType;
515
+ const store = loadClaims();
516
+ let stealableIssues = Object.entries(store.stealable).map(([issueId, info]) => ({
517
+ issueId,
518
+ ...info,
519
+ claim: store.claims[issueId],
520
+ }));
521
+ if (agentType) {
522
+ stealableIssues = stealableIssues.filter(s => !s.preferredTypes || s.preferredTypes.length === 0 || s.preferredTypes.includes(agentType));
584
523
  }
524
+ return {
525
+ success: true,
526
+ stealable: stealableIssues,
527
+ count: stealableIssues.length,
528
+ };
585
529
  },
586
- handler: function (input) { return __awaiter(void 0, void 0, void 0, function () {
587
- var agentType, store, stealableIssues;
588
- return __generator(this, function (_a) {
589
- agentType = input.agentType;
590
- store = loadClaims();
591
- stealableIssues = Object.entries(store.stealable).map(function (_a) {
592
- var issueId = _a[0], info = _a[1];
593
- return (__assign(__assign({ issueId: issueId }, info), { claim: store.claims[issueId] }));
594
- });
595
- if (agentType) {
596
- stealableIssues = stealableIssues.filter(function (s) {
597
- return !s.preferredTypes || s.preferredTypes.length === 0 || s.preferredTypes.includes(agentType);
598
- });
599
- }
600
- return [2 /*return*/, {
601
- success: true,
602
- stealable: stealableIssues,
603
- count: stealableIssues.length
604
- }];
605
- });
606
- }); }
607
530
  },
608
531
  {
609
532
  name: 'claims_load',
@@ -614,72 +537,69 @@ export var claimsTools = [
614
537
  properties: {
615
538
  agentId: {
616
539
  type: 'string',
617
- description: 'Specific agent ID (optional)'
540
+ description: 'Specific agent ID (optional)',
618
541
  },
619
542
  agentType: {
620
543
  type: 'string',
621
- description: 'Filter by agent type'
622
- }
623
- }
544
+ description: 'Filter by agent type',
545
+ },
546
+ },
624
547
  },
625
- handler: function (input) { return __awaiter(void 0, void 0, void 0, function () {
626
- var agentId, agentType, store, claims, agentLoads, _i, claims_1, claim, key, load, loads, result;
627
- return __generator(this, function (_a) {
628
- agentId = input.agentId;
629
- agentType = input.agentType;
630
- store = loadClaims();
631
- claims = Object.values(store.claims);
632
- agentLoads = new Map();
633
- for (_i = 0, claims_1 = claims; _i < claims_1.length; _i++) {
634
- claim = claims_1[_i];
635
- if (claim.claimant.type !== 'agent')
636
- continue;
637
- key = claim.claimant.agentId;
638
- if (!agentLoads.has(key)) {
639
- agentLoads.set(key, {
640
- agentId: key,
641
- agentType: claim.claimant.agentType,
642
- claims: [],
643
- blockedCount: 0
644
- });
645
- }
646
- load = agentLoads.get(key);
647
- load.claims.push(claim);
648
- if (claim.status === 'blocked') {
649
- load.blockedCount++;
650
- }
651
- }
652
- loads = Array.from(agentLoads.values());
653
- if (agentId) {
654
- loads = loads.filter(function (l) { return l.agentId === agentId; });
548
+ handler: async (input) => {
549
+ const agentId = input.agentId;
550
+ const agentType = input.agentType;
551
+ const store = loadClaims();
552
+ const claims = Object.values(store.claims);
553
+ // Group claims by agent
554
+ const agentLoads = new Map();
555
+ for (const claim of claims) {
556
+ if (claim.claimant.type !== 'agent')
557
+ continue;
558
+ const key = claim.claimant.agentId;
559
+ if (!agentLoads.has(key)) {
560
+ agentLoads.set(key, {
561
+ agentId: key,
562
+ agentType: claim.claimant.agentType,
563
+ claims: [],
564
+ blockedCount: 0,
565
+ });
655
566
  }
656
- if (agentType) {
657
- loads = loads.filter(function (l) { return l.agentType === agentType; });
567
+ const load = agentLoads.get(key);
568
+ load.claims.push(claim);
569
+ if (claim.status === 'blocked') {
570
+ load.blockedCount++;
658
571
  }
659
- result = loads.map(function (l) { return ({
660
- agentId: l.agentId,
661
- agentType: l.agentType,
662
- claimCount: l.claims.length,
663
- maxClaims: 5,
664
- utilization: l.claims.length / 5,
665
- blockedCount: l.blockedCount,
666
- claims: l.claims.map(function (c) { return ({
667
- issueId: c.issueId,
668
- status: c.status,
669
- progress: c.progress
670
- }); })
671
- }); });
672
- return [2 /*return*/, {
673
- success: true,
674
- loads: result,
675
- totalAgents: result.length,
676
- totalClaims: claims.filter(function (c) { return c.claimant.type === 'agent'; }).length,
677
- avgUtilization: result.length > 0
678
- ? result.reduce(function (sum, l) { return sum + l.utilization; }, 0) / result.length
679
- : 0
680
- }];
681
- });
682
- }); }
572
+ }
573
+ let loads = Array.from(agentLoads.values());
574
+ if (agentId) {
575
+ loads = loads.filter(l => l.agentId === agentId);
576
+ }
577
+ if (agentType) {
578
+ loads = loads.filter(l => l.agentType === agentType);
579
+ }
580
+ const result = loads.map(l => ({
581
+ agentId: l.agentId,
582
+ agentType: l.agentType,
583
+ claimCount: l.claims.length,
584
+ maxClaims: 5, // Default max
585
+ utilization: l.claims.length / 5,
586
+ blockedCount: l.blockedCount,
587
+ claims: l.claims.map(c => ({
588
+ issueId: c.issueId,
589
+ status: c.status,
590
+ progress: c.progress,
591
+ })),
592
+ }));
593
+ return {
594
+ success: true,
595
+ loads: result,
596
+ totalAgents: result.length,
597
+ totalClaims: claims.filter(c => c.claimant.type === 'agent').length,
598
+ avgUtilization: result.length > 0
599
+ ? result.reduce((sum, l) => sum + l.utilization, 0) / result.length
600
+ : 0,
601
+ };
602
+ },
683
603
  },
684
604
  {
685
605
  name: 'claims_board',
@@ -687,52 +607,48 @@ export var claimsTools = [
687
607
  category: 'claims',
688
608
  inputSchema: {
689
609
  type: 'object',
690
- properties: {}
610
+ properties: {},
691
611
  },
692
- handler: function () { return __awaiter(void 0, void 0, void 0, function () {
693
- var store, claims, byStatus, _i, claims_2, claim, humanClaims, agentClaims;
694
- return __generator(this, function (_a) {
695
- store = loadClaims();
696
- claims = Object.values(store.claims);
697
- byStatus = {
698
- active: [],
699
- paused: [],
700
- blocked: [],
701
- 'handoff-pending': [],
702
- 'review-requested': [],
703
- stealable: [],
704
- completed: []
705
- };
706
- for (_i = 0, claims_2 = claims; _i < claims_2.length; _i++) {
707
- claim = claims_2[_i];
708
- if (byStatus[claim.status]) {
709
- byStatus[claim.status].push(claim);
710
- }
612
+ handler: async () => {
613
+ const store = loadClaims();
614
+ const claims = Object.values(store.claims);
615
+ const byStatus = {
616
+ active: [],
617
+ paused: [],
618
+ blocked: [],
619
+ 'handoff-pending': [],
620
+ 'review-requested': [],
621
+ stealable: [],
622
+ completed: [],
623
+ };
624
+ for (const claim of claims) {
625
+ if (byStatus[claim.status]) {
626
+ byStatus[claim.status].push(claim);
711
627
  }
712
- humanClaims = claims.filter(function (c) { return c.claimant.type === 'human'; });
713
- agentClaims = claims.filter(function (c) { return c.claimant.type === 'agent'; });
714
- return [2 /*return*/, {
715
- success: true,
716
- board: {
717
- active: byStatus.active.map(function (c) { return ({ issueId: c.issueId, claimant: formatClaimant(c.claimant), progress: c.progress }); }),
718
- paused: byStatus.paused.map(function (c) { return ({ issueId: c.issueId, claimant: formatClaimant(c.claimant) }); }),
719
- blocked: byStatus.blocked.map(function (c) { return ({ issueId: c.issueId, claimant: formatClaimant(c.claimant), reason: c.blockReason }); }),
720
- 'handoff-pending': byStatus['handoff-pending'].map(function (c) { return ({ issueId: c.issueId, from: formatClaimant(c.claimant), to: c.handoffTo ? formatClaimant(c.handoffTo) : null }); }),
721
- 'review-requested': byStatus['review-requested'].map(function (c) { return ({ issueId: c.issueId, claimant: formatClaimant(c.claimant) }); }),
722
- stealable: byStatus.stealable.map(function (c) { return ({ issueId: c.issueId, claimant: formatClaimant(c.claimant) }); }),
723
- completed: byStatus.completed.map(function (c) { return ({ issueId: c.issueId, claimant: formatClaimant(c.claimant) }); })
724
- },
725
- summary: {
726
- total: claims.length,
727
- active: byStatus.active.length,
728
- blocked: byStatus.blocked.length,
729
- stealable: byStatus.stealable.length,
730
- humanClaims: humanClaims.length,
731
- agentClaims: agentClaims.length
732
- }
733
- }];
734
- });
735
- }); }
628
+ }
629
+ const humanClaims = claims.filter(c => c.claimant.type === 'human');
630
+ const agentClaims = claims.filter(c => c.claimant.type === 'agent');
631
+ return {
632
+ success: true,
633
+ board: {
634
+ active: byStatus.active.map(c => ({ issueId: c.issueId, claimant: formatClaimant(c.claimant), progress: c.progress })),
635
+ paused: byStatus.paused.map(c => ({ issueId: c.issueId, claimant: formatClaimant(c.claimant) })),
636
+ blocked: byStatus.blocked.map(c => ({ issueId: c.issueId, claimant: formatClaimant(c.claimant), reason: c.blockReason })),
637
+ 'handoff-pending': byStatus['handoff-pending'].map(c => ({ issueId: c.issueId, from: formatClaimant(c.claimant), to: c.handoffTo ? formatClaimant(c.handoffTo) : null })),
638
+ 'review-requested': byStatus['review-requested'].map(c => ({ issueId: c.issueId, claimant: formatClaimant(c.claimant) })),
639
+ stealable: byStatus.stealable.map(c => ({ issueId: c.issueId, claimant: formatClaimant(c.claimant) })),
640
+ completed: byStatus.completed.map(c => ({ issueId: c.issueId, claimant: formatClaimant(c.claimant) })),
641
+ },
642
+ summary: {
643
+ total: claims.length,
644
+ active: byStatus.active.length,
645
+ blocked: byStatus.blocked.length,
646
+ stealable: byStatus.stealable.length,
647
+ humanClaims: humanClaims.length,
648
+ agentClaims: agentClaims.length,
649
+ },
650
+ };
651
+ },
736
652
  },
737
653
  {
738
654
  name: 'claims_rebalance',
@@ -744,80 +660,72 @@ export var claimsTools = [
744
660
  dryRun: {
745
661
  type: 'boolean',
746
662
  description: 'Preview rebalancing without applying',
747
- "default": true
663
+ default: true,
748
664
  },
749
665
  targetUtilization: {
750
666
  type: 'number',
751
667
  description: 'Target utilization (0-1)',
752
- "default": 0.7
753
- }
754
- }
668
+ default: 0.7,
669
+ },
670
+ },
755
671
  },
756
- handler: function (input) { return __awaiter(void 0, void 0, void 0, function () {
757
- var dryRun, targetUtilization, store, claims, agentLoads, _i, claims_3, claim, key, loads, maxClaims, avgLoad, overloaded, underloaded, suggestions, _loop_1, _a, overloaded_1, over;
758
- return __generator(this, function (_b) {
759
- dryRun = input.dryRun !== false;
760
- targetUtilization = input.targetUtilization || 0.7;
761
- store = loadClaims();
762
- claims = Object.values(store.claims);
763
- agentLoads = new Map();
764
- for (_i = 0, claims_3 = claims; _i < claims_3.length; _i++) {
765
- claim = claims_3[_i];
766
- if (claim.claimant.type !== 'agent')
767
- continue;
768
- key = claim.claimant.agentId;
769
- if (!agentLoads.has(key)) {
770
- agentLoads.set(key, { agentId: key, agentType: claim.claimant.agentType, claims: [] });
771
- }
772
- agentLoads.get(key).claims.push(claim);
773
- }
774
- loads = Array.from(agentLoads.values());
775
- maxClaims = 5;
776
- avgLoad = loads.length > 0
777
- ? loads.reduce(function (sum, l) { return sum + l.claims.length; }, 0) / loads.length
778
- : 0;
779
- overloaded = loads.filter(function (l) { return l.claims.length > maxClaims * targetUtilization * 1.5; });
780
- underloaded = loads.filter(function (l) { return l.claims.length < maxClaims * targetUtilization * 0.5; });
781
- suggestions = [];
782
- _loop_1 = function (over) {
783
- // Find low-progress claims to redistribute
784
- var movable = over.claims
785
- .filter(function (c) { return c.progress < 25 && c.status === 'active'; })
786
- .slice(0, over.claims.length - Math.ceil(maxClaims * targetUtilization));
787
- for (var _c = 0, movable_1 = movable; _c < movable_1.length; _c++) {
788
- var claim = movable_1[_c];
789
- var target = underloaded.find(function (u) { return u.agentType === over.agentType && u.claims.length < maxClaims; });
790
- if (target) {
791
- suggestions.push({
792
- issueId: claim.issueId,
793
- from: "agent:" + over.agentId + ":" + over.agentType,
794
- to: "agent:" + target.agentId + ":" + target.agentType,
795
- reason: 'Load balancing'
796
- });
797
- }
672
+ handler: async (input) => {
673
+ const dryRun = input.dryRun !== false;
674
+ const targetUtilization = input.targetUtilization || 0.7;
675
+ const store = loadClaims();
676
+ const claims = Object.values(store.claims);
677
+ // Group by agent
678
+ const agentLoads = new Map();
679
+ for (const claim of claims) {
680
+ if (claim.claimant.type !== 'agent')
681
+ continue;
682
+ const key = claim.claimant.agentId;
683
+ if (!agentLoads.has(key)) {
684
+ agentLoads.set(key, { agentId: key, agentType: claim.claimant.agentType, claims: [] });
685
+ }
686
+ agentLoads.get(key).claims.push(claim);
687
+ }
688
+ const loads = Array.from(agentLoads.values());
689
+ const maxClaims = 5;
690
+ const avgLoad = loads.length > 0
691
+ ? loads.reduce((sum, l) => sum + l.claims.length, 0) / loads.length
692
+ : 0;
693
+ const overloaded = loads.filter(l => l.claims.length > maxClaims * targetUtilization * 1.5);
694
+ const underloaded = loads.filter(l => l.claims.length < maxClaims * targetUtilization * 0.5);
695
+ const suggestions = [];
696
+ for (const over of overloaded) {
697
+ // Find low-progress claims to redistribute
698
+ const movable = over.claims
699
+ .filter(c => c.progress < 25 && c.status === 'active')
700
+ .slice(0, over.claims.length - Math.ceil(maxClaims * targetUtilization));
701
+ for (const claim of movable) {
702
+ const target = underloaded.find(u => u.agentType === over.agentType && u.claims.length < maxClaims);
703
+ if (target) {
704
+ suggestions.push({
705
+ issueId: claim.issueId,
706
+ from: `agent:${over.agentId}:${over.agentType}`,
707
+ to: `agent:${target.agentId}:${target.agentType}`,
708
+ reason: 'Load balancing',
709
+ });
798
710
  }
799
- };
800
- for (_a = 0, overloaded_1 = overloaded; _a < overloaded_1.length; _a++) {
801
- over = overloaded_1[_a];
802
- _loop_1(over);
803
711
  }
804
- return [2 /*return*/, {
805
- success: true,
806
- dryRun: dryRun,
807
- suggestions: suggestions,
808
- metrics: {
809
- totalAgents: loads.length,
810
- avgLoad: avgLoad,
811
- overloadedCount: overloaded.length,
812
- underloadedCount: underloaded.length,
813
- targetUtilization: targetUtilization
814
- },
815
- message: dryRun
816
- ? "Found " + suggestions.length + " rebalancing opportunities (dry run)"
817
- : "Applied " + suggestions.length + " rebalancing moves"
818
- }];
819
- });
820
- }); }
712
+ }
713
+ return {
714
+ success: true,
715
+ dryRun,
716
+ suggestions,
717
+ metrics: {
718
+ totalAgents: loads.length,
719
+ avgLoad,
720
+ overloadedCount: overloaded.length,
721
+ underloadedCount: underloaded.length,
722
+ targetUtilization,
723
+ },
724
+ message: dryRun
725
+ ? `Found ${suggestions.length} rebalancing opportunities (dry run)`
726
+ : `Applied ${suggestions.length} rebalancing moves`,
727
+ };
728
+ },
821
729
  },
822
730
  ];
823
731
  export default claimsTools;