kemdicode-mcp 1.15.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 (872) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +486 -0
  3. package/dist/ai/agents.d.ts +40 -0
  4. package/dist/ai/agents.d.ts.map +1 -0
  5. package/dist/ai/agents.js +164 -0
  6. package/dist/ai/agents.js.map +1 -0
  7. package/dist/ai/client.d.ts +73 -0
  8. package/dist/ai/client.d.ts.map +1 -0
  9. package/dist/ai/client.js +235 -0
  10. package/dist/ai/client.js.map +1 -0
  11. package/dist/ai/execute.d.ts +61 -0
  12. package/dist/ai/execute.d.ts.map +1 -0
  13. package/dist/ai/execute.js +98 -0
  14. package/dist/ai/execute.js.map +1 -0
  15. package/dist/ai/file-context.d.ts +44 -0
  16. package/dist/ai/file-context.d.ts.map +1 -0
  17. package/dist/ai/file-context.js +220 -0
  18. package/dist/ai/file-context.js.map +1 -0
  19. package/dist/ai/index.d.ts +14 -0
  20. package/dist/ai/index.d.ts.map +1 -0
  21. package/dist/ai/index.js +21 -0
  22. package/dist/ai/index.js.map +1 -0
  23. package/dist/ai/model-spec.d.ts +33 -0
  24. package/dist/ai/model-spec.d.ts.map +1 -0
  25. package/dist/ai/model-spec.js +106 -0
  26. package/dist/ai/model-spec.js.map +1 -0
  27. package/dist/ai/providers/anthropic.provider.d.ts +23 -0
  28. package/dist/ai/providers/anthropic.provider.d.ts.map +1 -0
  29. package/dist/ai/providers/anthropic.provider.js +135 -0
  30. package/dist/ai/providers/anthropic.provider.js.map +1 -0
  31. package/dist/ai/providers/gemini.provider.d.ts +20 -0
  32. package/dist/ai/providers/gemini.provider.d.ts.map +1 -0
  33. package/dist/ai/providers/gemini.provider.js +113 -0
  34. package/dist/ai/providers/gemini.provider.js.map +1 -0
  35. package/dist/ai/providers/index.d.ts +13 -0
  36. package/dist/ai/providers/index.d.ts.map +1 -0
  37. package/dist/ai/providers/index.js +12 -0
  38. package/dist/ai/providers/index.js.map +1 -0
  39. package/dist/ai/providers/openai-compat.provider.d.ts +13 -0
  40. package/dist/ai/providers/openai-compat.provider.d.ts.map +1 -0
  41. package/dist/ai/providers/openai-compat.provider.js +68 -0
  42. package/dist/ai/providers/openai-compat.provider.js.map +1 -0
  43. package/dist/ai/providers/openai-shared.d.ts +41 -0
  44. package/dist/ai/providers/openai-shared.d.ts.map +1 -0
  45. package/dist/ai/providers/openai-shared.js +67 -0
  46. package/dist/ai/providers/openai-shared.js.map +1 -0
  47. package/dist/ai/providers/openai.provider.d.ts +22 -0
  48. package/dist/ai/providers/openai.provider.d.ts.map +1 -0
  49. package/dist/ai/providers/openai.provider.js +74 -0
  50. package/dist/ai/providers/openai.provider.js.map +1 -0
  51. package/dist/ai/providers/registry.d.ts +33 -0
  52. package/dist/ai/providers/registry.d.ts.map +1 -0
  53. package/dist/ai/providers/registry.js +137 -0
  54. package/dist/ai/providers/registry.js.map +1 -0
  55. package/dist/ai/providers/types.d.ts +59 -0
  56. package/dist/ai/providers/types.d.ts.map +1 -0
  57. package/dist/ai/providers/types.js +58 -0
  58. package/dist/ai/providers/types.js.map +1 -0
  59. package/dist/ai/workspace-editor.d.ts +59 -0
  60. package/dist/ai/workspace-editor.d.ts.map +1 -0
  61. package/dist/ai/workspace-editor.js +155 -0
  62. package/dist/ai/workspace-editor.js.map +1 -0
  63. package/dist/config/defaults.d.ts +31 -0
  64. package/dist/config/defaults.d.ts.map +1 -0
  65. package/dist/config/defaults.js +100 -0
  66. package/dist/config/defaults.js.map +1 -0
  67. package/dist/config/index.d.ts +45 -0
  68. package/dist/config/index.d.ts.map +1 -0
  69. package/dist/config/index.js +44 -0
  70. package/dist/config/index.js.map +1 -0
  71. package/dist/config/manager.d.ts +101 -0
  72. package/dist/config/manager.d.ts.map +1 -0
  73. package/dist/config/manager.js +338 -0
  74. package/dist/config/manager.js.map +1 -0
  75. package/dist/config/schema.d.ts +382 -0
  76. package/dist/config/schema.d.ts.map +1 -0
  77. package/dist/config/schema.js +150 -0
  78. package/dist/config/schema.js.map +1 -0
  79. package/dist/config/types.d.ts +189 -0
  80. package/dist/config/types.d.ts.map +1 -0
  81. package/dist/config/types.js +32 -0
  82. package/dist/config/types.js.map +1 -0
  83. package/dist/constants.d.ts +92 -0
  84. package/dist/constants.d.ts.map +1 -0
  85. package/dist/constants.js +100 -0
  86. package/dist/constants.js.map +1 -0
  87. package/dist/context/agent-monitor.d.ts +173 -0
  88. package/dist/context/agent-monitor.d.ts.map +1 -0
  89. package/dist/context/agent-monitor.js +958 -0
  90. package/dist/context/agent-monitor.js.map +1 -0
  91. package/dist/context/feedback-loop.d.ts +73 -0
  92. package/dist/context/feedback-loop.d.ts.map +1 -0
  93. package/dist/context/feedback-loop.js +303 -0
  94. package/dist/context/feedback-loop.js.map +1 -0
  95. package/dist/context/index.d.ts +29 -0
  96. package/dist/context/index.d.ts.map +1 -0
  97. package/dist/context/index.js +29 -0
  98. package/dist/context/index.js.map +1 -0
  99. package/dist/context/integration.d.ts +83 -0
  100. package/dist/context/integration.d.ts.map +1 -0
  101. package/dist/context/integration.js +276 -0
  102. package/dist/context/integration.js.map +1 -0
  103. package/dist/context/iteration-tracker.d.ts +87 -0
  104. package/dist/context/iteration-tracker.d.ts.map +1 -0
  105. package/dist/context/iteration-tracker.js +333 -0
  106. package/dist/context/iteration-tracker.js.map +1 -0
  107. package/dist/context/storage.d.ts +234 -0
  108. package/dist/context/storage.d.ts.map +1 -0
  109. package/dist/context/storage.js +513 -0
  110. package/dist/context/storage.js.map +1 -0
  111. package/dist/context/types.d.ts +396 -0
  112. package/dist/context/types.d.ts.map +1 -0
  113. package/dist/context/types.js +125 -0
  114. package/dist/context/types.js.map +1 -0
  115. package/dist/index.d.ts +70 -0
  116. package/dist/index.d.ts.map +1 -0
  117. package/dist/index.js +207 -0
  118. package/dist/index.js.map +1 -0
  119. package/dist/infrastructure/redis/connection.d.ts +111 -0
  120. package/dist/infrastructure/redis/connection.d.ts.map +1 -0
  121. package/dist/infrastructure/redis/connection.js +242 -0
  122. package/dist/infrastructure/redis/connection.js.map +1 -0
  123. package/dist/infrastructure/redis/index.d.ts +2 -0
  124. package/dist/infrastructure/redis/index.d.ts.map +1 -0
  125. package/dist/infrastructure/redis/index.js +2 -0
  126. package/dist/infrastructure/redis/index.js.map +1 -0
  127. package/dist/infrastructure/redis/redis-backed-service.d.ts +35 -0
  128. package/dist/infrastructure/redis/redis-backed-service.d.ts.map +1 -0
  129. package/dist/infrastructure/redis/redis-backed-service.js +55 -0
  130. package/dist/infrastructure/redis/redis-backed-service.js.map +1 -0
  131. package/dist/kanban/board-store.d.ts +222 -0
  132. package/dist/kanban/board-store.d.ts.map +1 -0
  133. package/dist/kanban/board-store.js +486 -0
  134. package/dist/kanban/board-store.js.map +1 -0
  135. package/dist/kanban/index.d.ts +33 -0
  136. package/dist/kanban/index.d.ts.map +1 -0
  137. package/dist/kanban/index.js +37 -0
  138. package/dist/kanban/index.js.map +1 -0
  139. package/dist/kanban/kanban-store.d.ts +236 -0
  140. package/dist/kanban/kanban-store.d.ts.map +1 -0
  141. package/dist/kanban/kanban-store.js +854 -0
  142. package/dist/kanban/kanban-store.js.map +1 -0
  143. package/dist/kanban/membership-store.d.ts +230 -0
  144. package/dist/kanban/membership-store.d.ts.map +1 -0
  145. package/dist/kanban/membership-store.js +384 -0
  146. package/dist/kanban/membership-store.js.map +1 -0
  147. package/dist/kanban/migration.d.ts +131 -0
  148. package/dist/kanban/migration.d.ts.map +1 -0
  149. package/dist/kanban/migration.js +275 -0
  150. package/dist/kanban/migration.js.map +1 -0
  151. package/dist/kanban/types.d.ts +314 -0
  152. package/dist/kanban/types.d.ts.map +1 -0
  153. package/dist/kanban/types.js +126 -0
  154. package/dist/kanban/types.js.map +1 -0
  155. package/dist/kanban/workspace-store.d.ts +193 -0
  156. package/dist/kanban/workspace-store.d.ts.map +1 -0
  157. package/dist/kanban/workspace-store.js +386 -0
  158. package/dist/kanban/workspace-store.js.map +1 -0
  159. package/dist/loci/graph-storage.d.ts +120 -0
  160. package/dist/loci/graph-storage.d.ts.map +1 -0
  161. package/dist/loci/graph-storage.js +489 -0
  162. package/dist/loci/graph-storage.js.map +1 -0
  163. package/dist/loci/graph-traversal.d.ts +56 -0
  164. package/dist/loci/graph-traversal.d.ts.map +1 -0
  165. package/dist/loci/graph-traversal.js +291 -0
  166. package/dist/loci/graph-traversal.js.map +1 -0
  167. package/dist/loci/index.d.ts +30 -0
  168. package/dist/loci/index.d.ts.map +1 -0
  169. package/dist/loci/index.js +27 -0
  170. package/dist/loci/index.js.map +1 -0
  171. package/dist/loci/loci-manager.d.ts +119 -0
  172. package/dist/loci/loci-manager.d.ts.map +1 -0
  173. package/dist/loci/loci-manager.js +435 -0
  174. package/dist/loci/loci-manager.js.map +1 -0
  175. package/dist/loci/sequence-tracker.d.ts +89 -0
  176. package/dist/loci/sequence-tracker.d.ts.map +1 -0
  177. package/dist/loci/sequence-tracker.js +311 -0
  178. package/dist/loci/sequence-tracker.js.map +1 -0
  179. package/dist/loci/types.d.ts +306 -0
  180. package/dist/loci/types.d.ts.map +1 -0
  181. package/dist/loci/types.js +143 -0
  182. package/dist/loci/types.js.map +1 -0
  183. package/dist/mpc/auth.d.ts +67 -0
  184. package/dist/mpc/auth.d.ts.map +1 -0
  185. package/dist/mpc/auth.js +173 -0
  186. package/dist/mpc/auth.js.map +1 -0
  187. package/dist/mpc/crypto.d.ts +139 -0
  188. package/dist/mpc/crypto.d.ts.map +1 -0
  189. package/dist/mpc/crypto.js +287 -0
  190. package/dist/mpc/crypto.js.map +1 -0
  191. package/dist/mpc/index.d.ts +30 -0
  192. package/dist/mpc/index.d.ts.map +1 -0
  193. package/dist/mpc/index.js +27 -0
  194. package/dist/mpc/index.js.map +1 -0
  195. package/dist/mpc/redis-store.d.ts +88 -0
  196. package/dist/mpc/redis-store.d.ts.map +1 -0
  197. package/dist/mpc/redis-store.js +337 -0
  198. package/dist/mpc/redis-store.js.map +1 -0
  199. package/dist/mpc/share-manager.d.ts +59 -0
  200. package/dist/mpc/share-manager.d.ts.map +1 -0
  201. package/dist/mpc/share-manager.js +254 -0
  202. package/dist/mpc/share-manager.js.map +1 -0
  203. package/dist/mpc/types.d.ts +213 -0
  204. package/dist/mpc/types.d.ts.map +1 -0
  205. package/dist/mpc/types.js +42 -0
  206. package/dist/mpc/types.js.map +1 -0
  207. package/dist/recursive/index.d.ts +27 -0
  208. package/dist/recursive/index.d.ts.map +1 -0
  209. package/dist/recursive/index.js +27 -0
  210. package/dist/recursive/index.js.map +1 -0
  211. package/dist/recursive/tool-invoker.d.ts +51 -0
  212. package/dist/recursive/tool-invoker.d.ts.map +1 -0
  213. package/dist/recursive/tool-invoker.js +293 -0
  214. package/dist/recursive/tool-invoker.js.map +1 -0
  215. package/dist/recursive/types.d.ts +110 -0
  216. package/dist/recursive/types.d.ts.map +1 -0
  217. package/dist/recursive/types.js +52 -0
  218. package/dist/recursive/types.js.map +1 -0
  219. package/dist/rl/dopamine.d.ts +96 -0
  220. package/dist/rl/dopamine.d.ts.map +1 -0
  221. package/dist/rl/dopamine.js +242 -0
  222. package/dist/rl/dopamine.js.map +1 -0
  223. package/dist/rl/index.d.ts +30 -0
  224. package/dist/rl/index.d.ts.map +1 -0
  225. package/dist/rl/index.js +27 -0
  226. package/dist/rl/index.js.map +1 -0
  227. package/dist/rl/potential.d.ts +78 -0
  228. package/dist/rl/potential.d.ts.map +1 -0
  229. package/dist/rl/potential.js +152 -0
  230. package/dist/rl/potential.js.map +1 -0
  231. package/dist/rl/rewards.d.ts +92 -0
  232. package/dist/rl/rewards.d.ts.map +1 -0
  233. package/dist/rl/rewards.js +278 -0
  234. package/dist/rl/rewards.js.map +1 -0
  235. package/dist/rl/state-tracker.d.ts +107 -0
  236. package/dist/rl/state-tracker.d.ts.map +1 -0
  237. package/dist/rl/state-tracker.js +285 -0
  238. package/dist/rl/state-tracker.js.map +1 -0
  239. package/dist/rl/types.d.ts +274 -0
  240. package/dist/rl/types.d.ts.map +1 -0
  241. package/dist/rl/types.js +145 -0
  242. package/dist/rl/types.js.map +1 -0
  243. package/dist/runtime/crypto.d.ts +87 -0
  244. package/dist/runtime/crypto.d.ts.map +1 -0
  245. package/dist/runtime/crypto.js +226 -0
  246. package/dist/runtime/crypto.js.map +1 -0
  247. package/dist/runtime/http.d.ts +111 -0
  248. package/dist/runtime/http.d.ts.map +1 -0
  249. package/dist/runtime/http.js +350 -0
  250. package/dist/runtime/http.js.map +1 -0
  251. package/dist/runtime/index.d.ts +48 -0
  252. package/dist/runtime/index.d.ts.map +1 -0
  253. package/dist/runtime/index.js +43 -0
  254. package/dist/runtime/index.js.map +1 -0
  255. package/dist/runtime/net.d.ts +42 -0
  256. package/dist/runtime/net.d.ts.map +1 -0
  257. package/dist/runtime/net.js +108 -0
  258. package/dist/runtime/net.js.map +1 -0
  259. package/dist/runtime/process.d.ts +54 -0
  260. package/dist/runtime/process.d.ts.map +1 -0
  261. package/dist/runtime/process.js +247 -0
  262. package/dist/runtime/process.js.map +1 -0
  263. package/dist/runtime/types.d.ts +143 -0
  264. package/dist/runtime/types.d.ts.map +1 -0
  265. package/dist/runtime/types.js +19 -0
  266. package/dist/runtime/types.js.map +1 -0
  267. package/dist/server/http-server.d.ts +26 -0
  268. package/dist/server/http-server.d.ts.map +1 -0
  269. package/dist/server/http-server.js +290 -0
  270. package/dist/server/http-server.js.map +1 -0
  271. package/dist/server/index.d.ts +22 -0
  272. package/dist/server/index.d.ts.map +1 -0
  273. package/dist/server/index.js +25 -0
  274. package/dist/server/index.js.map +1 -0
  275. package/dist/server/progress.d.ts +74 -0
  276. package/dist/server/progress.d.ts.map +1 -0
  277. package/dist/server/progress.js +174 -0
  278. package/dist/server/progress.js.map +1 -0
  279. package/dist/server/session-server.d.ts +76 -0
  280. package/dist/server/session-server.d.ts.map +1 -0
  281. package/dist/server/session-server.js +186 -0
  282. package/dist/server/session-server.js.map +1 -0
  283. package/dist/server/types.d.ts +82 -0
  284. package/dist/server/types.d.ts.map +1 -0
  285. package/dist/server/types.js +25 -0
  286. package/dist/server/types.js.map +1 -0
  287. package/dist/session/cwd-resolver.d.ts +136 -0
  288. package/dist/session/cwd-resolver.d.ts.map +1 -0
  289. package/dist/session/cwd-resolver.js +715 -0
  290. package/dist/session/cwd-resolver.js.map +1 -0
  291. package/dist/session/index.d.ts +27 -0
  292. package/dist/session/index.d.ts.map +1 -0
  293. package/dist/session/index.js +27 -0
  294. package/dist/session/index.js.map +1 -0
  295. package/dist/session/manager.d.ts +296 -0
  296. package/dist/session/manager.d.ts.map +1 -0
  297. package/dist/session/manager.js +605 -0
  298. package/dist/session/manager.js.map +1 -0
  299. package/dist/session/types.d.ts +152 -0
  300. package/dist/session/types.d.ts.map +1 -0
  301. package/dist/session/types.js +60 -0
  302. package/dist/session/types.js.map +1 -0
  303. package/dist/tools/agents/agent-alert.tool.d.ts +20 -0
  304. package/dist/tools/agents/agent-alert.tool.d.ts.map +1 -0
  305. package/dist/tools/agents/agent-alert.tool.js +103 -0
  306. package/dist/tools/agents/agent-alert.tool.js.map +1 -0
  307. package/dist/tools/agents/agent-history.tool.d.ts +20 -0
  308. package/dist/tools/agents/agent-history.tool.d.ts.map +1 -0
  309. package/dist/tools/agents/agent-history.tool.js +133 -0
  310. package/dist/tools/agents/agent-history.tool.js.map +1 -0
  311. package/dist/tools/agents/agent-inject.tool.d.ts +39 -0
  312. package/dist/tools/agents/agent-inject.tool.d.ts.map +1 -0
  313. package/dist/tools/agents/agent-inject.tool.js +121 -0
  314. package/dist/tools/agents/agent-inject.tool.js.map +1 -0
  315. package/dist/tools/agents/agent-list.tool.d.ts +20 -0
  316. package/dist/tools/agents/agent-list.tool.d.ts.map +1 -0
  317. package/dist/tools/agents/agent-list.tool.js +86 -0
  318. package/dist/tools/agents/agent-list.tool.js.map +1 -0
  319. package/dist/tools/agents/agent-register.tool.d.ts +20 -0
  320. package/dist/tools/agents/agent-register.tool.d.ts.map +1 -0
  321. package/dist/tools/agents/agent-register.tool.js +114 -0
  322. package/dist/tools/agents/agent-register.tool.js.map +1 -0
  323. package/dist/tools/agents/agent-summary.tool.d.ts +20 -0
  324. package/dist/tools/agents/agent-summary.tool.d.ts.map +1 -0
  325. package/dist/tools/agents/agent-summary.tool.js +99 -0
  326. package/dist/tools/agents/agent-summary.tool.js.map +1 -0
  327. package/dist/tools/agents/agent-watch.tool.d.ts +20 -0
  328. package/dist/tools/agents/agent-watch.tool.d.ts.map +1 -0
  329. package/dist/tools/agents/agent-watch.tool.js +56 -0
  330. package/dist/tools/agents/agent-watch.tool.js.map +1 -0
  331. package/dist/tools/agents/index.d.ts +41 -0
  332. package/dist/tools/agents/index.d.ts.map +1 -0
  333. package/dist/tools/agents/index.js +41 -0
  334. package/dist/tools/agents/index.js.map +1 -0
  335. package/dist/tools/agents/monitor.tool.d.ts +20 -0
  336. package/dist/tools/agents/monitor.tool.d.ts.map +1 -0
  337. package/dist/tools/agents/monitor.tool.js +314 -0
  338. package/dist/tools/agents/monitor.tool.js.map +1 -0
  339. package/dist/tools/agents/queue-message.tool.d.ts +20 -0
  340. package/dist/tools/agents/queue-message.tool.d.ts.map +1 -0
  341. package/dist/tools/agents/queue-message.tool.js +176 -0
  342. package/dist/tools/agents/queue-message.tool.js.map +1 -0
  343. package/dist/tools/ask-ai.tool.d.ts +20 -0
  344. package/dist/tools/ask-ai.tool.d.ts.map +1 -0
  345. package/dist/tools/ask-ai.tool.js +49 -0
  346. package/dist/tools/ask-ai.tool.js.map +1 -0
  347. package/dist/tools/batch.tool.d.ts +42 -0
  348. package/dist/tools/batch.tool.d.ts.map +1 -0
  349. package/dist/tools/batch.tool.js +146 -0
  350. package/dist/tools/batch.tool.js.map +1 -0
  351. package/dist/tools/brainstorm.tool.d.ts +20 -0
  352. package/dist/tools/brainstorm.tool.d.ts.map +1 -0
  353. package/dist/tools/brainstorm.tool.js +86 -0
  354. package/dist/tools/brainstorm.tool.js.map +1 -0
  355. package/dist/tools/code/code-outline.tool.d.ts +20 -0
  356. package/dist/tools/code/code-outline.tool.d.ts.map +1 -0
  357. package/dist/tools/code/code-outline.tool.js +803 -0
  358. package/dist/tools/code/code-outline.tool.js.map +1 -0
  359. package/dist/tools/code/find-definition.tool.d.ts +20 -0
  360. package/dist/tools/code/find-definition.tool.d.ts.map +1 -0
  361. package/dist/tools/code/find-definition.tool.js +218 -0
  362. package/dist/tools/code/find-definition.tool.js.map +1 -0
  363. package/dist/tools/code/find-references.tool.d.ts +20 -0
  364. package/dist/tools/code/find-references.tool.d.ts.map +1 -0
  365. package/dist/tools/code/find-references.tool.js +207 -0
  366. package/dist/tools/code/find-references.tool.js.map +1 -0
  367. package/dist/tools/code/find-symbols.tool.d.ts +20 -0
  368. package/dist/tools/code/find-symbols.tool.d.ts.map +1 -0
  369. package/dist/tools/code/find-symbols.tool.js +367 -0
  370. package/dist/tools/code/find-symbols.tool.js.map +1 -0
  371. package/dist/tools/code/index.d.ts +34 -0
  372. package/dist/tools/code/index.d.ts.map +1 -0
  373. package/dist/tools/code/index.js +35 -0
  374. package/dist/tools/code/index.js.map +1 -0
  375. package/dist/tools/code/insert-after-symbol.tool.d.ts +20 -0
  376. package/dist/tools/code/insert-after-symbol.tool.d.ts.map +1 -0
  377. package/dist/tools/code/insert-after-symbol.tool.js +224 -0
  378. package/dist/tools/code/insert-after-symbol.tool.js.map +1 -0
  379. package/dist/tools/code/insert-before-symbol.tool.d.ts +20 -0
  380. package/dist/tools/code/insert-before-symbol.tool.d.ts.map +1 -0
  381. package/dist/tools/code/insert-before-symbol.tool.js +136 -0
  382. package/dist/tools/code/insert-before-symbol.tool.js.map +1 -0
  383. package/dist/tools/code/rename-symbol.tool.d.ts +20 -0
  384. package/dist/tools/code/rename-symbol.tool.d.ts.map +1 -0
  385. package/dist/tools/code/rename-symbol.tool.js +255 -0
  386. package/dist/tools/code/rename-symbol.tool.js.map +1 -0
  387. package/dist/tools/code/semantic-search.tool.d.ts +20 -0
  388. package/dist/tools/code/semantic-search.tool.d.ts.map +1 -0
  389. package/dist/tools/code/semantic-search.tool.js +172 -0
  390. package/dist/tools/code/semantic-search.tool.js.map +1 -0
  391. package/dist/tools/code/symbol-search.d.ts +39 -0
  392. package/dist/tools/code/symbol-search.d.ts.map +1 -0
  393. package/dist/tools/code/symbol-search.js +118 -0
  394. package/dist/tools/code/symbol-search.js.map +1 -0
  395. package/dist/tools/context/feedback.tool.d.ts +20 -0
  396. package/dist/tools/context/feedback.tool.d.ts.map +1 -0
  397. package/dist/tools/context/feedback.tool.js +176 -0
  398. package/dist/tools/context/feedback.tool.js.map +1 -0
  399. package/dist/tools/context/get-shared-context.tool.d.ts +20 -0
  400. package/dist/tools/context/get-shared-context.tool.d.ts.map +1 -0
  401. package/dist/tools/context/get-shared-context.tool.js +83 -0
  402. package/dist/tools/context/get-shared-context.tool.js.map +1 -0
  403. package/dist/tools/context/index.d.ts +26 -0
  404. package/dist/tools/context/index.d.ts.map +1 -0
  405. package/dist/tools/context/index.js +26 -0
  406. package/dist/tools/context/index.js.map +1 -0
  407. package/dist/tools/context/shared-thoughts.tool.d.ts +20 -0
  408. package/dist/tools/context/shared-thoughts.tool.d.ts.map +1 -0
  409. package/dist/tools/context/shared-thoughts.tool.js +199 -0
  410. package/dist/tools/context/shared-thoughts.tool.js.map +1 -0
  411. package/dist/tools/edit/delete-lines.tool.d.ts +20 -0
  412. package/dist/tools/edit/delete-lines.tool.d.ts.map +1 -0
  413. package/dist/tools/edit/delete-lines.tool.js +88 -0
  414. package/dist/tools/edit/delete-lines.tool.js.map +1 -0
  415. package/dist/tools/edit/edit-shared.d.ts +55 -0
  416. package/dist/tools/edit/edit-shared.d.ts.map +1 -0
  417. package/dist/tools/edit/edit-shared.js +122 -0
  418. package/dist/tools/edit/edit-shared.js.map +1 -0
  419. package/dist/tools/edit/index.d.ts +29 -0
  420. package/dist/tools/edit/index.d.ts.map +1 -0
  421. package/dist/tools/edit/index.js +29 -0
  422. package/dist/tools/edit/index.js.map +1 -0
  423. package/dist/tools/edit/insert-at-line.tool.d.ts +20 -0
  424. package/dist/tools/edit/insert-at-line.tool.d.ts.map +1 -0
  425. package/dist/tools/edit/insert-at-line.tool.js +92 -0
  426. package/dist/tools/edit/insert-at-line.tool.js.map +1 -0
  427. package/dist/tools/edit/replace-content.tool.d.ts +20 -0
  428. package/dist/tools/edit/replace-content.tool.d.ts.map +1 -0
  429. package/dist/tools/edit/replace-content.tool.js +214 -0
  430. package/dist/tools/edit/replace-content.tool.js.map +1 -0
  431. package/dist/tools/edit/replace-lines.tool.d.ts +20 -0
  432. package/dist/tools/edit/replace-lines.tool.d.ts.map +1 -0
  433. package/dist/tools/edit/replace-lines.tool.js +97 -0
  434. package/dist/tools/edit/replace-lines.tool.js.map +1 -0
  435. package/dist/tools/file/file-diff.tool.d.ts +20 -0
  436. package/dist/tools/file/file-diff.tool.d.ts.map +1 -0
  437. package/dist/tools/file/file-diff.tool.js +359 -0
  438. package/dist/tools/file/file-diff.tool.js.map +1 -0
  439. package/dist/tools/file/file-read.tool.d.ts +20 -0
  440. package/dist/tools/file/file-read.tool.d.ts.map +1 -0
  441. package/dist/tools/file/file-read.tool.js +270 -0
  442. package/dist/tools/file/file-read.tool.js.map +1 -0
  443. package/dist/tools/file/file-search.tool.d.ts +20 -0
  444. package/dist/tools/file/file-search.tool.d.ts.map +1 -0
  445. package/dist/tools/file/file-search.tool.js +339 -0
  446. package/dist/tools/file/file-search.tool.js.map +1 -0
  447. package/dist/tools/file/file-tree.tool.d.ts +49 -0
  448. package/dist/tools/file/file-tree.tool.d.ts.map +1 -0
  449. package/dist/tools/file/file-tree.tool.js +398 -0
  450. package/dist/tools/file/file-tree.tool.js.map +1 -0
  451. package/dist/tools/file/file-write.tool.d.ts +20 -0
  452. package/dist/tools/file/file-write.tool.d.ts.map +1 -0
  453. package/dist/tools/file/file-write.tool.js +204 -0
  454. package/dist/tools/file/file-write.tool.js.map +1 -0
  455. package/dist/tools/file/index.d.ts +31 -0
  456. package/dist/tools/file/index.d.ts.map +1 -0
  457. package/dist/tools/file/index.js +31 -0
  458. package/dist/tools/file/index.js.map +1 -0
  459. package/dist/tools/git/git-blame.tool.d.ts +20 -0
  460. package/dist/tools/git/git-blame.tool.d.ts.map +1 -0
  461. package/dist/tools/git/git-blame.tool.js +138 -0
  462. package/dist/tools/git/git-blame.tool.js.map +1 -0
  463. package/dist/tools/git/git-branch.tool.d.ts +20 -0
  464. package/dist/tools/git/git-branch.tool.d.ts.map +1 -0
  465. package/dist/tools/git/git-branch.tool.js +158 -0
  466. package/dist/tools/git/git-branch.tool.js.map +1 -0
  467. package/dist/tools/git/git-diff.tool.d.ts +20 -0
  468. package/dist/tools/git/git-diff.tool.d.ts.map +1 -0
  469. package/dist/tools/git/git-diff.tool.js +117 -0
  470. package/dist/tools/git/git-diff.tool.js.map +1 -0
  471. package/dist/tools/git/git-log.tool.d.ts +20 -0
  472. package/dist/tools/git/git-log.tool.d.ts.map +1 -0
  473. package/dist/tools/git/git-log.tool.js +150 -0
  474. package/dist/tools/git/git-log.tool.js.map +1 -0
  475. package/dist/tools/git/git-status.tool.d.ts +20 -0
  476. package/dist/tools/git/git-status.tool.d.ts.map +1 -0
  477. package/dist/tools/git/git-status.tool.js +81 -0
  478. package/dist/tools/git/git-status.tool.js.map +1 -0
  479. package/dist/tools/git/index.d.ts +31 -0
  480. package/dist/tools/git/index.d.ts.map +1 -0
  481. package/dist/tools/git/index.js +32 -0
  482. package/dist/tools/git/index.js.map +1 -0
  483. package/dist/tools/index.d.ts +19 -0
  484. package/dist/tools/index.d.ts.map +1 -0
  485. package/dist/tools/index.js +170 -0
  486. package/dist/tools/index.js.map +1 -0
  487. package/dist/tools/kanban/board-create.tool.d.ts +20 -0
  488. package/dist/tools/kanban/board-create.tool.d.ts.map +1 -0
  489. package/dist/tools/kanban/board-create.tool.js +92 -0
  490. package/dist/tools/kanban/board-create.tool.js.map +1 -0
  491. package/dist/tools/kanban/board-invite.tool.d.ts +20 -0
  492. package/dist/tools/kanban/board-invite.tool.d.ts.map +1 -0
  493. package/dist/tools/kanban/board-invite.tool.js +96 -0
  494. package/dist/tools/kanban/board-invite.tool.js.map +1 -0
  495. package/dist/tools/kanban/board-list.tool.d.ts +20 -0
  496. package/dist/tools/kanban/board-list.tool.d.ts.map +1 -0
  497. package/dist/tools/kanban/board-list.tool.js +94 -0
  498. package/dist/tools/kanban/board-list.tool.js.map +1 -0
  499. package/dist/tools/kanban/board-members.tool.d.ts +20 -0
  500. package/dist/tools/kanban/board-members.tool.d.ts.map +1 -0
  501. package/dist/tools/kanban/board-members.tool.js +153 -0
  502. package/dist/tools/kanban/board-members.tool.js.map +1 -0
  503. package/dist/tools/kanban/board-share.tool.d.ts +20 -0
  504. package/dist/tools/kanban/board-share.tool.d.ts.map +1 -0
  505. package/dist/tools/kanban/board-share.tool.js +91 -0
  506. package/dist/tools/kanban/board-share.tool.js.map +1 -0
  507. package/dist/tools/kanban/board-status.tool.d.ts +20 -0
  508. package/dist/tools/kanban/board-status.tool.d.ts.map +1 -0
  509. package/dist/tools/kanban/board-status.tool.js +79 -0
  510. package/dist/tools/kanban/board-status.tool.js.map +1 -0
  511. package/dist/tools/kanban/index.d.ts +42 -0
  512. package/dist/tools/kanban/index.d.ts.map +1 -0
  513. package/dist/tools/kanban/index.js +46 -0
  514. package/dist/tools/kanban/index.js.map +1 -0
  515. package/dist/tools/kanban/task-assign.tool.d.ts +20 -0
  516. package/dist/tools/kanban/task-assign.tool.d.ts.map +1 -0
  517. package/dist/tools/kanban/task-assign.tool.js +103 -0
  518. package/dist/tools/kanban/task-assign.tool.js.map +1 -0
  519. package/dist/tools/kanban/task-claim.tool.d.ts +20 -0
  520. package/dist/tools/kanban/task-claim.tool.d.ts.map +1 -0
  521. package/dist/tools/kanban/task-claim.tool.js +107 -0
  522. package/dist/tools/kanban/task-claim.tool.js.map +1 -0
  523. package/dist/tools/kanban/task-create.tool.d.ts +20 -0
  524. package/dist/tools/kanban/task-create.tool.d.ts.map +1 -0
  525. package/dist/tools/kanban/task-create.tool.js +123 -0
  526. package/dist/tools/kanban/task-create.tool.js.map +1 -0
  527. package/dist/tools/kanban/task-list.tool.d.ts +20 -0
  528. package/dist/tools/kanban/task-list.tool.d.ts.map +1 -0
  529. package/dist/tools/kanban/task-list.tool.js +95 -0
  530. package/dist/tools/kanban/task-list.tool.js.map +1 -0
  531. package/dist/tools/kanban/task-push-multi.tool.d.ts +20 -0
  532. package/dist/tools/kanban/task-push-multi.tool.d.ts.map +1 -0
  533. package/dist/tools/kanban/task-push-multi.tool.js +273 -0
  534. package/dist/tools/kanban/task-push-multi.tool.js.map +1 -0
  535. package/dist/tools/kanban/task-update.tool.d.ts +20 -0
  536. package/dist/tools/kanban/task-update.tool.d.ts.map +1 -0
  537. package/dist/tools/kanban/task-update.tool.js +173 -0
  538. package/dist/tools/kanban/task-update.tool.js.map +1 -0
  539. package/dist/tools/kanban/workspace-create.tool.d.ts +20 -0
  540. package/dist/tools/kanban/workspace-create.tool.d.ts.map +1 -0
  541. package/dist/tools/kanban/workspace-create.tool.js +84 -0
  542. package/dist/tools/kanban/workspace-create.tool.js.map +1 -0
  543. package/dist/tools/kanban/workspace-join.tool.d.ts +20 -0
  544. package/dist/tools/kanban/workspace-join.tool.d.ts.map +1 -0
  545. package/dist/tools/kanban/workspace-join.tool.js +76 -0
  546. package/dist/tools/kanban/workspace-join.tool.js.map +1 -0
  547. package/dist/tools/kanban/workspace-leave.tool.d.ts +20 -0
  548. package/dist/tools/kanban/workspace-leave.tool.d.ts.map +1 -0
  549. package/dist/tools/kanban/workspace-leave.tool.js +74 -0
  550. package/dist/tools/kanban/workspace-leave.tool.js.map +1 -0
  551. package/dist/tools/kanban/workspace-list.tool.d.ts +20 -0
  552. package/dist/tools/kanban/workspace-list.tool.d.ts.map +1 -0
  553. package/dist/tools/kanban/workspace-list.tool.js +75 -0
  554. package/dist/tools/kanban/workspace-list.tool.js.map +1 -0
  555. package/dist/tools/loci/graph-find-path.tool.d.ts +38 -0
  556. package/dist/tools/loci/graph-find-path.tool.d.ts.map +1 -0
  557. package/dist/tools/loci/graph-find-path.tool.js +133 -0
  558. package/dist/tools/loci/graph-find-path.tool.js.map +1 -0
  559. package/dist/tools/loci/graph-query.tool.d.ts +55 -0
  560. package/dist/tools/loci/graph-query.tool.d.ts.map +1 -0
  561. package/dist/tools/loci/graph-query.tool.js +98 -0
  562. package/dist/tools/loci/graph-query.tool.js.map +1 -0
  563. package/dist/tools/loci/index.d.ts +27 -0
  564. package/dist/tools/loci/index.d.ts.map +1 -0
  565. package/dist/tools/loci/index.js +27 -0
  566. package/dist/tools/loci/index.js.map +1 -0
  567. package/dist/tools/loci/loci-recall.tool.d.ts +33 -0
  568. package/dist/tools/loci/loci-recall.tool.d.ts.map +1 -0
  569. package/dist/tools/loci/loci-recall.tool.js +156 -0
  570. package/dist/tools/loci/loci-recall.tool.js.map +1 -0
  571. package/dist/tools/loci/sequence-recommend.tool.d.ts +33 -0
  572. package/dist/tools/loci/sequence-recommend.tool.d.ts.map +1 -0
  573. package/dist/tools/loci/sequence-recommend.tool.js +114 -0
  574. package/dist/tools/loci/sequence-recommend.tool.js.map +1 -0
  575. package/dist/tools/memory/delete-memory.tool.d.ts +20 -0
  576. package/dist/tools/memory/delete-memory.tool.d.ts.map +1 -0
  577. package/dist/tools/memory/delete-memory.tool.js +96 -0
  578. package/dist/tools/memory/delete-memory.tool.js.map +1 -0
  579. package/dist/tools/memory/edit-memory.tool.d.ts +20 -0
  580. package/dist/tools/memory/edit-memory.tool.d.ts.map +1 -0
  581. package/dist/tools/memory/edit-memory.tool.js +172 -0
  582. package/dist/tools/memory/edit-memory.tool.js.map +1 -0
  583. package/dist/tools/memory/index.d.ts +31 -0
  584. package/dist/tools/memory/index.d.ts.map +1 -0
  585. package/dist/tools/memory/index.js +31 -0
  586. package/dist/tools/memory/index.js.map +1 -0
  587. package/dist/tools/memory/list-memories.tool.d.ts +20 -0
  588. package/dist/tools/memory/list-memories.tool.d.ts.map +1 -0
  589. package/dist/tools/memory/list-memories.tool.js +142 -0
  590. package/dist/tools/memory/list-memories.tool.js.map +1 -0
  591. package/dist/tools/memory/read-memory.tool.d.ts +20 -0
  592. package/dist/tools/memory/read-memory.tool.d.ts.map +1 -0
  593. package/dist/tools/memory/read-memory.tool.js +98 -0
  594. package/dist/tools/memory/read-memory.tool.js.map +1 -0
  595. package/dist/tools/memory/write-memory.tool.d.ts +20 -0
  596. package/dist/tools/memory/write-memory.tool.d.ts.map +1 -0
  597. package/dist/tools/memory/write-memory.tool.js +162 -0
  598. package/dist/tools/memory/write-memory.tool.js.map +1 -0
  599. package/dist/tools/mpc/index.d.ts +27 -0
  600. package/dist/tools/mpc/index.d.ts.map +1 -0
  601. package/dist/tools/mpc/index.js +27 -0
  602. package/dist/tools/mpc/index.js.map +1 -0
  603. package/dist/tools/mpc/mpc-distribute.tool.d.ts +36 -0
  604. package/dist/tools/mpc/mpc-distribute.tool.d.ts.map +1 -0
  605. package/dist/tools/mpc/mpc-distribute.tool.js +129 -0
  606. package/dist/tools/mpc/mpc-distribute.tool.js.map +1 -0
  607. package/dist/tools/mpc/mpc-reconstruct.tool.d.ts +28 -0
  608. package/dist/tools/mpc/mpc-reconstruct.tool.d.ts.map +1 -0
  609. package/dist/tools/mpc/mpc-reconstruct.tool.js +125 -0
  610. package/dist/tools/mpc/mpc-reconstruct.tool.js.map +1 -0
  611. package/dist/tools/mpc/mpc-split.tool.d.ts +43 -0
  612. package/dist/tools/mpc/mpc-split.tool.d.ts.map +1 -0
  613. package/dist/tools/mpc/mpc-split.tool.js +120 -0
  614. package/dist/tools/mpc/mpc-split.tool.js.map +1 -0
  615. package/dist/tools/mpc/mpc-status.tool.d.ts +33 -0
  616. package/dist/tools/mpc/mpc-status.tool.d.ts.map +1 -0
  617. package/dist/tools/mpc/mpc-status.tool.js +129 -0
  618. package/dist/tools/mpc/mpc-status.tool.js.map +1 -0
  619. package/dist/tools/multi-llm/consensus-prompt.tool.d.ts +9 -0
  620. package/dist/tools/multi-llm/consensus-prompt.tool.d.ts.map +1 -0
  621. package/dist/tools/multi-llm/consensus-prompt.tool.js +165 -0
  622. package/dist/tools/multi-llm/consensus-prompt.tool.js.map +1 -0
  623. package/dist/tools/multi-llm/index.d.ts +8 -0
  624. package/dist/tools/multi-llm/index.d.ts.map +1 -0
  625. package/dist/tools/multi-llm/index.js +8 -0
  626. package/dist/tools/multi-llm/index.js.map +1 -0
  627. package/dist/tools/multi-llm/multi-prompt.tool.d.ts +9 -0
  628. package/dist/tools/multi-llm/multi-prompt.tool.d.ts.map +1 -0
  629. package/dist/tools/multi-llm/multi-prompt.tool.js +90 -0
  630. package/dist/tools/multi-llm/multi-prompt.tool.js.map +1 -0
  631. package/dist/tools/project/check-types.tool.d.ts +20 -0
  632. package/dist/tools/project/check-types.tool.d.ts.map +1 -0
  633. package/dist/tools/project/check-types.tool.js +254 -0
  634. package/dist/tools/project/check-types.tool.js.map +1 -0
  635. package/dist/tools/project/index.d.ts +35 -0
  636. package/dist/tools/project/index.d.ts.map +1 -0
  637. package/dist/tools/project/index.js +35 -0
  638. package/dist/tools/project/index.js.map +1 -0
  639. package/dist/tools/project/project-info.tool.d.ts +20 -0
  640. package/dist/tools/project/project-info.tool.d.ts.map +1 -0
  641. package/dist/tools/project/project-info.tool.js +364 -0
  642. package/dist/tools/project/project-info.tool.js.map +1 -0
  643. package/dist/tools/project/run-lint.tool.d.ts +20 -0
  644. package/dist/tools/project/run-lint.tool.d.ts.map +1 -0
  645. package/dist/tools/project/run-lint.tool.js +279 -0
  646. package/dist/tools/project/run-lint.tool.js.map +1 -0
  647. package/dist/tools/project/run-script.tool.d.ts +20 -0
  648. package/dist/tools/project/run-script.tool.d.ts.map +1 -0
  649. package/dist/tools/project/run-script.tool.js +141 -0
  650. package/dist/tools/project/run-script.tool.js.map +1 -0
  651. package/dist/tools/project/run-tests.tool.d.ts +20 -0
  652. package/dist/tools/project/run-tests.tool.d.ts.map +1 -0
  653. package/dist/tools/project/run-tests.tool.js +357 -0
  654. package/dist/tools/project/run-tests.tool.js.map +1 -0
  655. package/dist/tools/recursive/index.d.ts +28 -0
  656. package/dist/tools/recursive/index.d.ts.map +1 -0
  657. package/dist/tools/recursive/index.js +28 -0
  658. package/dist/tools/recursive/index.js.map +1 -0
  659. package/dist/tools/recursive/invocation-log.tool.d.ts +20 -0
  660. package/dist/tools/recursive/invocation-log.tool.d.ts.map +1 -0
  661. package/dist/tools/recursive/invocation-log.tool.js +110 -0
  662. package/dist/tools/recursive/invocation-log.tool.js.map +1 -0
  663. package/dist/tools/recursive/invoke-batch.tool.d.ts +20 -0
  664. package/dist/tools/recursive/invoke-batch.tool.d.ts.map +1 -0
  665. package/dist/tools/recursive/invoke-batch.tool.js +99 -0
  666. package/dist/tools/recursive/invoke-batch.tool.js.map +1 -0
  667. package/dist/tools/recursive/invoke-tool.tool.d.ts +20 -0
  668. package/dist/tools/recursive/invoke-tool.tool.d.ts.map +1 -0
  669. package/dist/tools/recursive/invoke-tool.tool.js +100 -0
  670. package/dist/tools/recursive/invoke-tool.tool.js.map +1 -0
  671. package/dist/tools/registry.d.ts +261 -0
  672. package/dist/tools/registry.d.ts.map +1 -0
  673. package/dist/tools/registry.js +462 -0
  674. package/dist/tools/registry.js.map +1 -0
  675. package/dist/tools/rl/index.d.ts +25 -0
  676. package/dist/tools/rl/index.d.ts.map +1 -0
  677. package/dist/tools/rl/index.js +25 -0
  678. package/dist/tools/rl/index.js.map +1 -0
  679. package/dist/tools/rl/rl-dopamine-log.tool.d.ts +32 -0
  680. package/dist/tools/rl/rl-dopamine-log.tool.d.ts.map +1 -0
  681. package/dist/tools/rl/rl-dopamine-log.tool.js +112 -0
  682. package/dist/tools/rl/rl-dopamine-log.tool.js.map +1 -0
  683. package/dist/tools/rl/rl-reward-stats.tool.d.ts +33 -0
  684. package/dist/tools/rl/rl-reward-stats.tool.d.ts.map +1 -0
  685. package/dist/tools/rl/rl-reward-stats.tool.js +100 -0
  686. package/dist/tools/rl/rl-reward-stats.tool.js.map +1 -0
  687. package/dist/tools/session/index.d.ts +28 -0
  688. package/dist/tools/session/index.d.ts.map +1 -0
  689. package/dist/tools/session/index.js +28 -0
  690. package/dist/tools/session/index.js.map +1 -0
  691. package/dist/tools/session/session-create.tool.d.ts +35 -0
  692. package/dist/tools/session/session-create.tool.d.ts.map +1 -0
  693. package/dist/tools/session/session-create.tool.js +74 -0
  694. package/dist/tools/session/session-create.tool.js.map +1 -0
  695. package/dist/tools/session/session-delete.tool.d.ts +32 -0
  696. package/dist/tools/session/session-delete.tool.d.ts.map +1 -0
  697. package/dist/tools/session/session-delete.tool.js +94 -0
  698. package/dist/tools/session/session-delete.tool.js.map +1 -0
  699. package/dist/tools/session/session-info.tool.d.ts +30 -0
  700. package/dist/tools/session/session-info.tool.d.ts.map +1 -0
  701. package/dist/tools/session/session-info.tool.js +89 -0
  702. package/dist/tools/session/session-info.tool.js.map +1 -0
  703. package/dist/tools/session/session-list.tool.d.ts +43 -0
  704. package/dist/tools/session/session-list.tool.d.ts.map +1 -0
  705. package/dist/tools/session/session-list.tool.js +85 -0
  706. package/dist/tools/session/session-list.tool.js.map +1 -0
  707. package/dist/tools/session/session-switch.tool.d.ts +32 -0
  708. package/dist/tools/session/session-switch.tool.d.ts.map +1 -0
  709. package/dist/tools/session/session-switch.tool.js +75 -0
  710. package/dist/tools/session/session-switch.tool.js.map +1 -0
  711. package/dist/tools/simple-tools.d.ts +23 -0
  712. package/dist/tools/simple-tools.d.ts.map +1 -0
  713. package/dist/tools/simple-tools.js +73 -0
  714. package/dist/tools/simple-tools.js.map +1 -0
  715. package/dist/tools/specialized/analyze-deps.tool.d.ts +20 -0
  716. package/dist/tools/specialized/analyze-deps.tool.d.ts.map +1 -0
  717. package/dist/tools/specialized/analyze-deps.tool.js +102 -0
  718. package/dist/tools/specialized/analyze-deps.tool.js.map +1 -0
  719. package/dist/tools/specialized/auto-fix-agent.tool.d.ts +12 -0
  720. package/dist/tools/specialized/auto-fix-agent.tool.d.ts.map +1 -0
  721. package/dist/tools/specialized/auto-fix-agent.tool.js +154 -0
  722. package/dist/tools/specialized/auto-fix-agent.tool.js.map +1 -0
  723. package/dist/tools/specialized/auto-fix.tool.d.ts +20 -0
  724. package/dist/tools/specialized/auto-fix.tool.d.ts.map +1 -0
  725. package/dist/tools/specialized/auto-fix.tool.js +264 -0
  726. package/dist/tools/specialized/auto-fix.tool.js.map +1 -0
  727. package/dist/tools/specialized/code-review.tool.d.ts +20 -0
  728. package/dist/tools/specialized/code-review.tool.d.ts.map +1 -0
  729. package/dist/tools/specialized/code-review.tool.js +140 -0
  730. package/dist/tools/specialized/code-review.tool.js.map +1 -0
  731. package/dist/tools/specialized/explain-code.tool.d.ts +20 -0
  732. package/dist/tools/specialized/explain-code.tool.d.ts.map +1 -0
  733. package/dist/tools/specialized/explain-code.tool.js +90 -0
  734. package/dist/tools/specialized/explain-code.tool.js.map +1 -0
  735. package/dist/tools/specialized/fix-bug.tool.d.ts +20 -0
  736. package/dist/tools/specialized/fix-bug.tool.d.ts.map +1 -0
  737. package/dist/tools/specialized/fix-bug.tool.js +107 -0
  738. package/dist/tools/specialized/fix-bug.tool.js.map +1 -0
  739. package/dist/tools/specialized/index.d.ts +26 -0
  740. package/dist/tools/specialized/index.d.ts.map +1 -0
  741. package/dist/tools/specialized/index.js +26 -0
  742. package/dist/tools/specialized/index.js.map +1 -0
  743. package/dist/tools/specialized/refactor.tool.d.ts +20 -0
  744. package/dist/tools/specialized/refactor.tool.d.ts.map +1 -0
  745. package/dist/tools/specialized/refactor.tool.js +115 -0
  746. package/dist/tools/specialized/refactor.tool.js.map +1 -0
  747. package/dist/tools/specialized/write-tests.tool.d.ts +20 -0
  748. package/dist/tools/specialized/write-tests.tool.d.ts.map +1 -0
  749. package/dist/tools/specialized/write-tests.tool.js +115 -0
  750. package/dist/tools/specialized/write-tests.tool.js.map +1 -0
  751. package/dist/tools/system/ai-config.tool.d.ts +13 -0
  752. package/dist/tools/system/ai-config.tool.d.ts.map +1 -0
  753. package/dist/tools/system/ai-config.tool.js +252 -0
  754. package/dist/tools/system/ai-config.tool.js.map +1 -0
  755. package/dist/tools/system/ai-models.tool.d.ts +45 -0
  756. package/dist/tools/system/ai-models.tool.d.ts.map +1 -0
  757. package/dist/tools/system/ai-models.tool.js +194 -0
  758. package/dist/tools/system/ai-models.tool.js.map +1 -0
  759. package/dist/tools/system/config.tool.d.ts +57 -0
  760. package/dist/tools/system/config.tool.d.ts.map +1 -0
  761. package/dist/tools/system/config.tool.js +320 -0
  762. package/dist/tools/system/config.tool.js.map +1 -0
  763. package/dist/tools/system/env-info.tool.d.ts +20 -0
  764. package/dist/tools/system/env-info.tool.d.ts.map +1 -0
  765. package/dist/tools/system/env-info.tool.js +228 -0
  766. package/dist/tools/system/env-info.tool.js.map +1 -0
  767. package/dist/tools/system/index.d.ts +37 -0
  768. package/dist/tools/system/index.d.ts.map +1 -0
  769. package/dist/tools/system/index.js +37 -0
  770. package/dist/tools/system/index.js.map +1 -0
  771. package/dist/tools/system/memory-usage.tool.d.ts +20 -0
  772. package/dist/tools/system/memory-usage.tool.d.ts.map +1 -0
  773. package/dist/tools/system/memory-usage.tool.js +223 -0
  774. package/dist/tools/system/memory-usage.tool.js.map +1 -0
  775. package/dist/tools/system/process-list.tool.d.ts +20 -0
  776. package/dist/tools/system/process-list.tool.d.ts.map +1 -0
  777. package/dist/tools/system/process-list.tool.js +202 -0
  778. package/dist/tools/system/process-list.tool.js.map +1 -0
  779. package/dist/tools/system/shell-exec.tool.d.ts +20 -0
  780. package/dist/tools/system/shell-exec.tool.d.ts.map +1 -0
  781. package/dist/tools/system/shell-exec.tool.js +293 -0
  782. package/dist/tools/system/shell-exec.tool.js.map +1 -0
  783. package/dist/tools/timeout-test.tool.d.ts +20 -0
  784. package/dist/tools/timeout-test.tool.d.ts.map +1 -0
  785. package/dist/tools/timeout-test.tool.js +46 -0
  786. package/dist/tools/timeout-test.tool.js.map +1 -0
  787. package/dist/tree-sitter/index.d.ts +27 -0
  788. package/dist/tree-sitter/index.d.ts.map +1 -0
  789. package/dist/tree-sitter/index.js +27 -0
  790. package/dist/tree-sitter/index.js.map +1 -0
  791. package/dist/tree-sitter/parser-manager.d.ts +83 -0
  792. package/dist/tree-sitter/parser-manager.d.ts.map +1 -0
  793. package/dist/tree-sitter/parser-manager.js +430 -0
  794. package/dist/tree-sitter/parser-manager.js.map +1 -0
  795. package/dist/tree-sitter/types.d.ts +117 -0
  796. package/dist/tree-sitter/types.d.ts.map +1 -0
  797. package/dist/tree-sitter/types.js +375 -0
  798. package/dist/tree-sitter/types.js.map +1 -0
  799. package/dist/types/file-types.d.ts +277 -0
  800. package/dist/types/file-types.d.ts.map +1 -0
  801. package/dist/types/file-types.js +75 -0
  802. package/dist/types/file-types.js.map +1 -0
  803. package/dist/types/git-types.d.ts +270 -0
  804. package/dist/types/git-types.d.ts.map +1 -0
  805. package/dist/types/git-types.js +26 -0
  806. package/dist/types/git-types.js.map +1 -0
  807. package/dist/types/index.d.ts +28 -0
  808. package/dist/types/index.d.ts.map +1 -0
  809. package/dist/types/index.js +31 -0
  810. package/dist/types/index.js.map +1 -0
  811. package/dist/types/tool-types.d.ts +231 -0
  812. package/dist/types/tool-types.d.ts.map +1 -0
  813. package/dist/types/tool-types.js +30 -0
  814. package/dist/types/tool-types.js.map +1 -0
  815. package/dist/utils/bun-file.d.ts +99 -0
  816. package/dist/utils/bun-file.d.ts.map +1 -0
  817. package/dist/utils/bun-file.js +393 -0
  818. package/dist/utils/bun-file.js.map +1 -0
  819. package/dist/utils/cache.d.ts +124 -0
  820. package/dist/utils/cache.d.ts.map +1 -0
  821. package/dist/utils/cache.js +228 -0
  822. package/dist/utils/cache.js.map +1 -0
  823. package/dist/utils/commandExecutor.d.ts +54 -0
  824. package/dist/utils/commandExecutor.d.ts.map +1 -0
  825. package/dist/utils/commandExecutor.js +165 -0
  826. package/dist/utils/commandExecutor.js.map +1 -0
  827. package/dist/utils/edit-utils.d.ts +72 -0
  828. package/dist/utils/edit-utils.d.ts.map +1 -0
  829. package/dist/utils/edit-utils.js +129 -0
  830. package/dist/utils/edit-utils.js.map +1 -0
  831. package/dist/utils/errors.d.ts +170 -0
  832. package/dist/utils/errors.d.ts.map +1 -0
  833. package/dist/utils/errors.js +304 -0
  834. package/dist/utils/errors.js.map +1 -0
  835. package/dist/utils/file-utils.d.ts +195 -0
  836. package/dist/utils/file-utils.d.ts.map +1 -0
  837. package/dist/utils/file-utils.js +401 -0
  838. package/dist/utils/file-utils.js.map +1 -0
  839. package/dist/utils/git-utils.d.ts +204 -0
  840. package/dist/utils/git-utils.d.ts.map +1 -0
  841. package/dist/utils/git-utils.js +352 -0
  842. package/dist/utils/git-utils.js.map +1 -0
  843. package/dist/utils/languageDetection.d.ts +54 -0
  844. package/dist/utils/languageDetection.d.ts.map +1 -0
  845. package/dist/utils/languageDetection.js +340 -0
  846. package/dist/utils/languageDetection.js.map +1 -0
  847. package/dist/utils/logger.d.ts +207 -0
  848. package/dist/utils/logger.d.ts.map +1 -0
  849. package/dist/utils/logger.js +484 -0
  850. package/dist/utils/logger.js.map +1 -0
  851. package/dist/utils/process-utils.d.ts +196 -0
  852. package/dist/utils/process-utils.d.ts.map +1 -0
  853. package/dist/utils/process-utils.js +302 -0
  854. package/dist/utils/process-utils.js.map +1 -0
  855. package/dist/utils/projectContext.enhanced.d.ts +71 -0
  856. package/dist/utils/projectContext.enhanced.d.ts.map +1 -0
  857. package/dist/utils/projectContext.enhanced.js +816 -0
  858. package/dist/utils/projectContext.enhanced.js.map +1 -0
  859. package/dist/utils/security.d.ts +123 -0
  860. package/dist/utils/security.d.ts.map +1 -0
  861. package/dist/utils/security.js +337 -0
  862. package/dist/utils/security.js.map +1 -0
  863. package/dist/utils/validation.d.ts +163 -0
  864. package/dist/utils/validation.d.ts.map +1 -0
  865. package/dist/utils/validation.js +558 -0
  866. package/dist/utils/validation.js.map +1 -0
  867. package/dist/version.d.ts +17 -0
  868. package/dist/version.d.ts.map +1 -0
  869. package/dist/version.js +17 -0
  870. package/dist/version.js.map +1 -0
  871. package/kemdi-code-mcp-logo.png +0 -0
  872. package/package.json +136 -0
@@ -0,0 +1,337 @@
1
+ /**
2
+ * KemdiCode MCP Server
3
+ * Copyright (C) 2025-2026 Kemdi Sp. z o.o.
4
+ *
5
+ * This program is free software: you can redistribute it and/or modify
6
+ * it under the terms of the GNU General Public License as published by
7
+ * the Free Software Foundation, either version 3 of the License, or
8
+ * (at your option) any later version.
9
+ *
10
+ * This program is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ * GNU General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU General Public License
16
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
17
+ */
18
+ /**
19
+ * MPC Redis Store
20
+ *
21
+ * Persistent storage for MPC shares and secret metadata using Redis.
22
+ */
23
+ import { RedisBackedService } from '../infrastructure/redis/redis-backed-service.js';
24
+ import { MPC_KEYS } from './types.js';
25
+ import { getKeyManager } from './crypto.js';
26
+ function safeJsonParse(value, fallback) {
27
+ try {
28
+ return JSON.parse(value || '') ?? fallback;
29
+ }
30
+ catch {
31
+ return fallback;
32
+ }
33
+ }
34
+ /**
35
+ * MPC Redis Store
36
+ */
37
+ export class MpcRedisStore extends RedisBackedService {
38
+ get serviceName() { return 'MpcRedisStore'; }
39
+ constructor(_config = {}) {
40
+ super();
41
+ }
42
+ /**
43
+ * Save secret metadata
44
+ */
45
+ async saveSecretMetadata(metadata) {
46
+ if (!this.isConnected() || !this.redis)
47
+ return false;
48
+ try {
49
+ const key = MPC_KEYS.secret(metadata.sessionId, metadata.id);
50
+ await this.redis.hset(key, {
51
+ ...metadata,
52
+ holders: JSON.stringify(metadata.holders),
53
+ tags: JSON.stringify(metadata.tags || []),
54
+ });
55
+ // Set TTL if specified
56
+ if (metadata.ttl) {
57
+ await this.redis.expire(key, metadata.ttl);
58
+ }
59
+ // Add to session index
60
+ const sessionIndexKey = MPC_KEYS.sessionIndex(metadata.sessionId);
61
+ await this.redis.sadd(sessionIndexKey, metadata.id);
62
+ return true;
63
+ }
64
+ catch (error) {
65
+ console.error('[MPC Store] Error saving secret metadata:', error);
66
+ return false;
67
+ }
68
+ }
69
+ /**
70
+ * Get secret metadata
71
+ */
72
+ async getSecretMetadata(sessionId, secretId) {
73
+ if (!this.isConnected() || !this.redis)
74
+ return null;
75
+ try {
76
+ const key = MPC_KEYS.secret(sessionId, secretId);
77
+ const data = await this.redis.hgetall(key);
78
+ if (!data || Object.keys(data).length === 0) {
79
+ return null;
80
+ }
81
+ return {
82
+ id: data.id,
83
+ sessionId: data.sessionId,
84
+ totalShares: parseInt(data.totalShares, 10) || 0,
85
+ threshold: parseInt(data.threshold, 10) || 0,
86
+ holders: safeJsonParse(data.holders, []),
87
+ creatorAgentId: data.creatorAgentId,
88
+ createdAt: parseInt(data.createdAt, 10) || 0,
89
+ ttl: data.ttl ? (parseInt(data.ttl, 10) || undefined) : undefined,
90
+ label: data.label || undefined,
91
+ tags: safeJsonParse(data.tags, []),
92
+ secretType: data.secretType,
93
+ verificationHash: data.verificationHash || undefined,
94
+ };
95
+ }
96
+ catch (error) {
97
+ console.error('[MPC Store] Error getting secret metadata:', error);
98
+ return null;
99
+ }
100
+ }
101
+ /**
102
+ * Update holders list in metadata
103
+ */
104
+ async updateHolders(sessionId, secretId, holders) {
105
+ if (!this.isConnected() || !this.redis)
106
+ return false;
107
+ try {
108
+ const key = MPC_KEYS.secret(sessionId, secretId);
109
+ await this.redis.hset(key, 'holders', JSON.stringify(holders));
110
+ return true;
111
+ }
112
+ catch (error) {
113
+ console.error('[MPC Store] Error updating holders:', error);
114
+ return false;
115
+ }
116
+ }
117
+ /**
118
+ * Save a share (always encrypted)
119
+ *
120
+ * SECURITY: Shares are always encrypted with AES-256-GCM using session-derived keys.
121
+ * Plaintext storage is not supported to prevent accidental data exposure.
122
+ */
123
+ async saveShare(share) {
124
+ if (!this.isConnected() || !this.redis)
125
+ return false;
126
+ try {
127
+ const key = MPC_KEYS.share(share.sessionId, share.secretId, share.agentId);
128
+ // Always encrypt shares - plaintext storage is a security risk
129
+ const keyManager = getKeyManager();
130
+ const encrypted = keyManager.encryptForSession(share.sessionId, share.data);
131
+ const shareData = {
132
+ id: share.id,
133
+ index: share.index,
134
+ data: JSON.stringify(encrypted),
135
+ agentId: share.agentId,
136
+ secretId: share.secretId,
137
+ sessionId: share.sessionId,
138
+ createdAt: share.createdAt,
139
+ encrypted: true,
140
+ };
141
+ await this.redis.hset(key, shareData);
142
+ // Add to agent index
143
+ const agentIndexKey = MPC_KEYS.agentIndex(share.agentId);
144
+ await this.redis.sadd(agentIndexKey, share.secretId);
145
+ return true;
146
+ }
147
+ catch (error) {
148
+ console.error('[MPC Store] Error saving share:', error);
149
+ return false;
150
+ }
151
+ }
152
+ /**
153
+ * Get a share (decrypted)
154
+ */
155
+ async getShare(sessionId, secretId, agentId) {
156
+ if (!this.isConnected() || !this.redis)
157
+ return null;
158
+ try {
159
+ const key = MPC_KEYS.share(sessionId, secretId, agentId);
160
+ const data = await this.redis.hgetall(key);
161
+ if (!data || Object.keys(data).length === 0) {
162
+ return null;
163
+ }
164
+ let shareData = data.data;
165
+ const isEncrypted = data.encrypted === 'true' || data.encrypted === '1';
166
+ if (isEncrypted) {
167
+ try {
168
+ const keyManager = getKeyManager();
169
+ // SECURITY: Validate JSON structure before parsing
170
+ let encrypted;
171
+ try {
172
+ const parsed = JSON.parse(data.data);
173
+ // Validate required EncryptedData fields
174
+ if (typeof parsed !== 'object' ||
175
+ parsed === null ||
176
+ typeof parsed.ciphertext !== 'string' ||
177
+ typeof parsed.iv !== 'string' ||
178
+ typeof parsed.authTag !== 'string') {
179
+ throw new Error('Invalid encrypted data structure');
180
+ }
181
+ encrypted = parsed;
182
+ }
183
+ catch (parseError) {
184
+ console.error('[MPC Store] Invalid JSON in encrypted share:', parseError);
185
+ return null;
186
+ }
187
+ shareData = keyManager.decryptForSession(sessionId, encrypted);
188
+ }
189
+ catch (decryptError) {
190
+ console.error('[MPC Store] Error decrypting share:', decryptError);
191
+ return null;
192
+ }
193
+ }
194
+ return {
195
+ id: data.id,
196
+ index: parseInt(data.index, 10) || 0,
197
+ data: shareData,
198
+ agentId: data.agentId,
199
+ secretId: data.secretId,
200
+ sessionId: data.sessionId,
201
+ createdAt: parseInt(data.createdAt, 10) || 0,
202
+ encrypted: isEncrypted,
203
+ };
204
+ }
205
+ catch (error) {
206
+ console.error('[MPC Store] Error getting share:', error);
207
+ return null;
208
+ }
209
+ }
210
+ /**
211
+ * Get all shares for a secret from specific agents
212
+ */
213
+ async getSharesForReconstruction(sessionId, secretId, agentIds) {
214
+ const shares = [];
215
+ for (const agentId of agentIds) {
216
+ const share = await this.getShare(sessionId, secretId, agentId);
217
+ if (share) {
218
+ shares.push(share);
219
+ }
220
+ }
221
+ return shares;
222
+ }
223
+ /**
224
+ * Get all secrets for a session
225
+ */
226
+ async getSessionSecrets(sessionId) {
227
+ if (!this.isConnected() || !this.redis)
228
+ return [];
229
+ try {
230
+ const indexKey = MPC_KEYS.sessionIndex(sessionId);
231
+ const secretIds = await this.redis.smembers(indexKey);
232
+ const secrets = [];
233
+ for (const secretId of secretIds) {
234
+ const metadata = await this.getSecretMetadata(sessionId, secretId);
235
+ if (metadata) {
236
+ secrets.push(metadata);
237
+ }
238
+ }
239
+ return secrets;
240
+ }
241
+ catch (error) {
242
+ console.error('[MPC Store] Error getting session secrets:', error);
243
+ return [];
244
+ }
245
+ }
246
+ /**
247
+ * Get secrets held by an agent
248
+ */
249
+ async getAgentSecrets(agentId) {
250
+ if (!this.isConnected() || !this.redis)
251
+ return [];
252
+ try {
253
+ const indexKey = MPC_KEYS.agentIndex(agentId);
254
+ return await this.redis.smembers(indexKey);
255
+ }
256
+ catch (error) {
257
+ console.error('[MPC Store] Error getting agent secrets:', error);
258
+ return [];
259
+ }
260
+ }
261
+ /**
262
+ * Get secret status including distribution info
263
+ */
264
+ async getSecretStatus(sessionId, secretId) {
265
+ const metadata = await this.getSecretMetadata(sessionId, secretId);
266
+ if (!metadata)
267
+ return null;
268
+ const distribution = [];
269
+ for (const agentId of metadata.holders) {
270
+ const share = await this.getShare(sessionId, secretId, agentId);
271
+ distribution.push({
272
+ agentId,
273
+ shareIndex: share?.index || 0,
274
+ delivered: share !== null,
275
+ acknowledgedAt: share?.createdAt,
276
+ });
277
+ }
278
+ return {
279
+ metadata,
280
+ distribution,
281
+ reconstructable: distribution.filter((d) => d.delivered).length >= metadata.threshold,
282
+ acknowledgedCount: distribution.filter((d) => d.delivered).length,
283
+ };
284
+ }
285
+ /**
286
+ * Delete a secret and all its shares
287
+ */
288
+ async deleteSecret(sessionId, secretId) {
289
+ if (!this.isConnected() || !this.redis)
290
+ return false;
291
+ try {
292
+ const metadata = await this.getSecretMetadata(sessionId, secretId);
293
+ if (!metadata)
294
+ return false;
295
+ // Delete all shares
296
+ for (const agentId of metadata.holders) {
297
+ const shareKey = MPC_KEYS.share(sessionId, secretId, agentId);
298
+ await this.redis.del(shareKey);
299
+ // Remove from agent index
300
+ const agentIndexKey = MPC_KEYS.agentIndex(agentId);
301
+ await this.redis.srem(agentIndexKey, secretId);
302
+ }
303
+ // Delete metadata
304
+ const metadataKey = MPC_KEYS.secret(sessionId, secretId);
305
+ await this.redis.del(metadataKey);
306
+ // Remove from session index
307
+ const sessionIndexKey = MPC_KEYS.sessionIndex(sessionId);
308
+ await this.redis.srem(sessionIndexKey, secretId);
309
+ return true;
310
+ }
311
+ catch (error) {
312
+ console.error('[MPC Store] Error deleting secret:', error);
313
+ return false;
314
+ }
315
+ }
316
+ }
317
+ // Singleton instance
318
+ let mpcStore = null;
319
+ /**
320
+ * Get the global MPC store
321
+ */
322
+ export function getMpcStore() {
323
+ if (!mpcStore) {
324
+ mpcStore = new MpcRedisStore();
325
+ }
326
+ return mpcStore;
327
+ }
328
+ /**
329
+ * Reset the global MPC store (for testing)
330
+ */
331
+ export function resetMpcStore() {
332
+ if (mpcStore) {
333
+ mpcStore.disconnect().catch(console.error);
334
+ }
335
+ mpcStore = null;
336
+ }
337
+ //# sourceMappingURL=redis-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis-store.js","sourceRoot":"","sources":["../../src/mpc/redis-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * KemdiCode MCP Server
3
+ * Copyright (C) 2025-2026 Kemdi Sp. z o.o.
4
+ *
5
+ * This program is free software: you can redistribute it and/or modify
6
+ * it under the terms of the GNU General Public License as published by
7
+ * the Free Software Foundation, either version 3 of the License, or
8
+ * (at your option) any later version.
9
+ *
10
+ * This program is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ * GNU General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU General Public License
16
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
17
+ */
18
+ import type { MpcShare, MpcSecretMetadata, MpcSplitConfig, MpcSplitResult, MpcDistribution, MpcReconstructResult } from './types.js';
19
+ /**
20
+ * Split a secret into shares
21
+ */
22
+ export declare function splitSecret(config: MpcSplitConfig): Promise<MpcSplitResult>;
23
+ /**
24
+ * Distribute shares to agents
25
+ */
26
+ export declare function distributeShares(shares: MpcShare[], distribution: MpcDistribution): {
27
+ distributedShares: MpcShare[];
28
+ holders: string[];
29
+ };
30
+ /**
31
+ * Validate shares before reconstruction
32
+ */
33
+ export declare function validateSharesForReconstruction(shares: MpcShare[], metadata: MpcSecretMetadata): {
34
+ valid: boolean;
35
+ error?: string;
36
+ };
37
+ /**
38
+ * Reconstruct a secret from shares
39
+ */
40
+ export declare function reconstructSecret(shares: MpcShare[], metadata: MpcSecretMetadata): Promise<MpcReconstructResult>;
41
+ /**
42
+ * Generate a random secret for testing
43
+ */
44
+ export declare function generateRandomSecret(length?: number): string;
45
+ /**
46
+ * Check if an agent role can perform an MPC operation
47
+ */
48
+ export declare function canPerformMpcOperation(operation: 'split' | 'distribute' | 'reconstruct' | 'viewStatus', role: string): boolean;
49
+ /**
50
+ * Calculate share distribution statistics
51
+ */
52
+ export declare function calculateDistributionStats(metadata: MpcSecretMetadata): {
53
+ totalShares: number;
54
+ distributed: number;
55
+ threshold: number;
56
+ reconstructable: boolean;
57
+ redundancy: number;
58
+ };
59
+ //# sourceMappingURL=share-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share-manager.d.ts","sourceRoot":"","sources":["../../src/mpc/share-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAWH,OAAO,KAAK,EACV,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,eAAe,EACf,oBAAoB,EACrB,MAAM,YAAY,CAAC;AA0CpB;;GAEG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CA6DjF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,QAAQ,EAAE,EAClB,YAAY,EAAE,eAAe,GAC5B;IAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CA4BtD;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,QAAQ,EAAE,EAClB,QAAQ,EAAE,iBAAiB,GAC1B;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAuCpC;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,QAAQ,EAAE,EAClB,QAAQ,EAAE,iBAAiB,GAC1B,OAAO,CAAC,oBAAoB,CAAC,CAgD/B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,GAAE,MAAW,GAAG,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,OAAO,GAAG,YAAY,GAAG,aAAa,GAAG,YAAY,EAChE,IAAI,EAAE,MAAM,GACX,OAAO,CAUT;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,iBAAiB,GAAG;IACvE,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB,CASA"}
@@ -0,0 +1,254 @@
1
+ /**
2
+ * KemdiCode MCP Server
3
+ * Copyright (C) 2025-2026 Kemdi Sp. z o.o.
4
+ *
5
+ * This program is free software: you can redistribute it and/or modify
6
+ * it under the terms of the GNU General Public License as published by
7
+ * the Free Software Foundation, either version 3 of the License, or
8
+ * (at your option) any later version.
9
+ *
10
+ * This program is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ * GNU General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU General Public License
16
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
17
+ */
18
+ /**
19
+ * MPC Share Manager
20
+ *
21
+ * Manages splitting secrets into shares and reconstructing them using
22
+ * Shamir's Secret Sharing scheme.
23
+ */
24
+ import { split, combine } from 'shamir-secret-sharing';
25
+ import { randomBytes } from 'crypto';
26
+ import { generateSecretId, generateShareId, generateVerificationHash, verifySecretHash, } from './crypto.js';
27
+ /**
28
+ * Convert string to Uint8Array
29
+ */
30
+ function stringToBytes(str) {
31
+ return new TextEncoder().encode(str);
32
+ }
33
+ /**
34
+ * Convert Uint8Array to string
35
+ */
36
+ function bytesToString(bytes) {
37
+ return new TextDecoder().decode(bytes);
38
+ }
39
+ /**
40
+ * Convert Uint8Array to hex string
41
+ */
42
+ function bytesToHex(bytes) {
43
+ return Array.from(bytes)
44
+ .map((b) => b.toString(16).padStart(2, '0'))
45
+ .join('');
46
+ }
47
+ /**
48
+ * Convert hex string to Uint8Array
49
+ */
50
+ function hexToBytes(hex) {
51
+ const bytes = new Uint8Array(hex.length / 2);
52
+ for (let i = 0; i < hex.length; i += 2) {
53
+ bytes[i / 2] = parseInt(hex.substring(i, i + 2), 16);
54
+ }
55
+ return bytes;
56
+ }
57
+ /**
58
+ * Split a secret into shares
59
+ */
60
+ export async function splitSecret(config) {
61
+ const { secret, totalShares, threshold, sessionId, creatorAgentId, label, ttl, tags, secretType, } = config;
62
+ // Validate parameters
63
+ if (totalShares < 2 || totalShares > 255) {
64
+ throw new Error('Total shares must be between 2 and 255');
65
+ }
66
+ if (threshold < 2 || threshold > totalShares) {
67
+ throw new Error('Threshold must be between 2 and totalShares');
68
+ }
69
+ if (!secret || secret.length === 0) {
70
+ throw new Error('Secret cannot be empty');
71
+ }
72
+ // Generate secret ID
73
+ const secretId = generateSecretId();
74
+ const now = Date.now();
75
+ // Convert secret to bytes and split
76
+ const secretBytes = stringToBytes(secret);
77
+ const shareBytes = await split(secretBytes, totalShares, threshold);
78
+ // Create share objects
79
+ const shares = shareBytes.map((shareData, index) => ({
80
+ id: generateShareId(secretId, index + 1),
81
+ index: index + 1, // 1-based indexing
82
+ data: bytesToHex(shareData),
83
+ agentId: '', // Will be assigned during distribution
84
+ secretId,
85
+ sessionId,
86
+ createdAt: now,
87
+ encrypted: false,
88
+ }));
89
+ // Create metadata
90
+ const metadata = {
91
+ id: secretId,
92
+ sessionId,
93
+ totalShares,
94
+ threshold,
95
+ holders: [],
96
+ creatorAgentId,
97
+ createdAt: now,
98
+ ttl,
99
+ label,
100
+ tags,
101
+ secretType,
102
+ verificationHash: generateVerificationHash(secret),
103
+ };
104
+ return { metadata, shares };
105
+ }
106
+ /**
107
+ * Distribute shares to agents
108
+ */
109
+ export function distributeShares(shares, distribution) {
110
+ const { assignments } = distribution;
111
+ // Validate assignments
112
+ const assignedIndices = new Set();
113
+ const holders = [];
114
+ for (const assignment of assignments) {
115
+ if (assignedIndices.has(assignment.shareIndex)) {
116
+ throw new Error(`Share index ${assignment.shareIndex} assigned multiple times`);
117
+ }
118
+ assignedIndices.add(assignment.shareIndex);
119
+ }
120
+ // Apply assignments
121
+ const distributedShares = shares.map((share) => {
122
+ const assignment = assignments.find((a) => a.shareIndex === share.index);
123
+ if (assignment) {
124
+ holders.push(assignment.agentId);
125
+ return {
126
+ ...share,
127
+ agentId: assignment.agentId,
128
+ };
129
+ }
130
+ return share;
131
+ });
132
+ return { distributedShares, holders };
133
+ }
134
+ /**
135
+ * Validate shares before reconstruction
136
+ */
137
+ export function validateSharesForReconstruction(shares, metadata) {
138
+ // Check if we have enough shares
139
+ if (shares.length < metadata.threshold) {
140
+ return {
141
+ valid: false,
142
+ error: `Need at least ${metadata.threshold} shares, but only have ${shares.length}`,
143
+ };
144
+ }
145
+ // Check if all shares belong to the same secret
146
+ const secretIds = new Set(shares.map((s) => s.secretId));
147
+ if (secretIds.size > 1) {
148
+ return {
149
+ valid: false,
150
+ error: 'Shares belong to different secrets',
151
+ };
152
+ }
153
+ // Check for duplicate indices
154
+ const indices = shares.map((s) => s.index);
155
+ const uniqueIndices = new Set(indices);
156
+ if (uniqueIndices.size !== indices.length) {
157
+ return {
158
+ valid: false,
159
+ error: 'Duplicate share indices detected',
160
+ };
161
+ }
162
+ // Check indices are valid
163
+ for (const index of indices) {
164
+ if (index < 1 || index > metadata.totalShares) {
165
+ return {
166
+ valid: false,
167
+ error: `Invalid share index: ${index}`,
168
+ };
169
+ }
170
+ }
171
+ return { valid: true };
172
+ }
173
+ /**
174
+ * Reconstruct a secret from shares
175
+ */
176
+ export async function reconstructSecret(shares, metadata) {
177
+ // Validate shares
178
+ const validation = validateSharesForReconstruction(shares, metadata);
179
+ if (!validation.valid) {
180
+ return {
181
+ success: false,
182
+ sharesCollected: shares.length,
183
+ thresholdRequired: metadata.threshold,
184
+ error: validation.error,
185
+ };
186
+ }
187
+ try {
188
+ // Convert shares back to Uint8Array
189
+ // Sort shares by index to ensure consistent reconstruction
190
+ const sortedShares = [...shares].sort((a, b) => a.index - b.index);
191
+ const shareBytes = sortedShares.map((s) => hexToBytes(s.data));
192
+ // Reconstruct the secret
193
+ const secretBytes = await combine(shareBytes);
194
+ const secret = bytesToString(secretBytes);
195
+ // Verify the reconstructed secret
196
+ if (metadata.verificationHash) {
197
+ if (!verifySecretHash(secret, metadata.verificationHash)) {
198
+ return {
199
+ success: false,
200
+ sharesCollected: shares.length,
201
+ thresholdRequired: metadata.threshold,
202
+ error: 'Reconstructed secret verification failed',
203
+ };
204
+ }
205
+ }
206
+ return {
207
+ success: true,
208
+ secret,
209
+ sharesCollected: shares.length,
210
+ thresholdRequired: metadata.threshold,
211
+ };
212
+ }
213
+ catch (error) {
214
+ return {
215
+ success: false,
216
+ sharesCollected: shares.length,
217
+ thresholdRequired: metadata.threshold,
218
+ error: error instanceof Error ? error.message : 'Unknown reconstruction error',
219
+ };
220
+ }
221
+ }
222
+ /**
223
+ * Generate a random secret for testing
224
+ */
225
+ export function generateRandomSecret(length = 32) {
226
+ return randomBytes(length).toString('hex');
227
+ }
228
+ /**
229
+ * Check if an agent role can perform an MPC operation
230
+ */
231
+ export function canPerformMpcOperation(operation, role) {
232
+ const allowedRoles = {
233
+ split: ['supervisor', 'coordinator'],
234
+ distribute: ['supervisor', 'coordinator'],
235
+ reconstruct: ['supervisor', 'coordinator'],
236
+ viewStatus: ['supervisor', 'coordinator', 'worker', 'specialist'],
237
+ };
238
+ const allowed = allowedRoles[operation];
239
+ return allowed ? allowed.includes(role) : false;
240
+ }
241
+ /**
242
+ * Calculate share distribution statistics
243
+ */
244
+ export function calculateDistributionStats(metadata) {
245
+ const distributed = metadata.holders.length;
246
+ return {
247
+ totalShares: metadata.totalShares,
248
+ distributed,
249
+ threshold: metadata.threshold,
250
+ reconstructable: distributed >= metadata.threshold,
251
+ redundancy: distributed - metadata.threshold,
252
+ };
253
+ }
254
+ //# sourceMappingURL=share-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share-manager.js","sourceRoot":"","sources":["../../src/mpc/share-manager.ts"],"names":[],"mappings":"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"}