monomind 1.9.16 → 1.10.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 (701) hide show
  1. package/.claude/commands/mastermind/_repeat.md +182 -39
  2. package/.claude/commands/mastermind/architect.md +17 -11
  3. package/.claude/commands/mastermind/brain.md +4 -0
  4. package/.claude/commands/mastermind/build.md +4 -0
  5. package/.claude/commands/mastermind/content.md +4 -0
  6. package/.claude/commands/mastermind/createorg.md +5 -3
  7. package/.claude/commands/mastermind/finance.md +4 -0
  8. package/.claude/commands/mastermind/idea.md +4 -0
  9. package/.claude/commands/mastermind/marketing.md +4 -0
  10. package/.claude/commands/mastermind/master.md +100 -46
  11. package/.claude/commands/mastermind/ops.md +4 -0
  12. package/.claude/commands/mastermind/release.md +4 -0
  13. package/.claude/commands/mastermind/research.md +4 -0
  14. package/.claude/commands/mastermind/review.md +4 -0
  15. package/.claude/commands/mastermind/runorg.md +5 -3
  16. package/.claude/commands/mastermind/sales.md +4 -0
  17. package/.claude/commands/mastermind/techport.md +9 -0
  18. package/.claude/commands/monomind/do.md +5 -1
  19. package/.claude/commands/monomind/idea.md +5 -1
  20. package/.claude/commands/monomind/improve.md +5 -1
  21. package/.claude/commands/monomind/repeat.md +85 -29
  22. package/.claude/commands/monomind/review.md +6 -2
  23. package/.claude/commands/monomind/understand.md +10 -8
  24. package/.claude/helpers/extras-registry.json +235 -235
  25. package/.claude/helpers/graphify-freshen.cjs +13 -1
  26. package/.claude/helpers/hook-handler.cjs +1 -1
  27. package/.claude/helpers/router.cjs +4 -1
  28. package/.claude/scheduled_tasks.lock +1 -1
  29. package/.claude/settings.json +3 -3
  30. package/.claude/settings.local.json +3 -3
  31. package/.claude/skills/.monomind/sessions/current.json +1 -1
  32. package/.claude/skills/.monomind/sessions/session-1777829336455.json +1 -1
  33. package/.claude/skills/.monomind/sessions/session-1777831614725.json +1 -1
  34. package/.claude/skills/.monomind/sessions/session-1777832095857.json +1 -1
  35. package/.claude/skills/.monomind/sessions/session-1777839814183.json +1 -1
  36. package/.claude/skills/.monomind/sessions/session-1777841847131.json +1 -1
  37. package/.claude/skills/.monomind/sessions/session-1777843309463.json +1 -1
  38. package/.claude/skills/.monomind/sessions/session-1777880867159.json +1 -1
  39. package/.claude/skills/.monomind/sessions/session-1777881884593.json +1 -1
  40. package/.claude/skills/.monomind/sessions/session-1777884090471.json +1 -1
  41. package/.claude/skills/.monomind/sessions/session-1777884808221.json +1 -1
  42. package/.claude/skills/.monomind/sessions/session-1777885672155.json +1 -1
  43. package/.claude/skills/.monomind/sessions/session-1777886852818.json +1 -1
  44. package/.claude/skills/.monomind/sessions/session-1777896532690.json +1 -1
  45. package/.claude/skills/mastermind/_protocol.md +37 -21
  46. package/.claude/skills/mastermind/access.md +236 -0
  47. package/.claude/skills/mastermind/activity.md +191 -0
  48. package/.claude/skills/mastermind/adapter-manager.md +259 -0
  49. package/.claude/skills/mastermind/adapters.md +204 -0
  50. package/.claude/skills/mastermind/agent-detail.md +242 -0
  51. package/.claude/skills/mastermind/agents.md +178 -0
  52. package/.claude/skills/mastermind/approval-detail.md +259 -0
  53. package/.claude/skills/mastermind/approve.md +181 -0
  54. package/.claude/skills/mastermind/architect.md +24 -8
  55. package/.claude/skills/mastermind/backup.md +197 -0
  56. package/.claude/skills/mastermind/bootstrap.md +190 -0
  57. package/.claude/skills/mastermind/budgets.md +237 -0
  58. package/.claude/skills/mastermind/companies.md +256 -0
  59. package/.claude/skills/mastermind/costs.md +151 -0
  60. package/.claude/skills/mastermind/createorg.md +23 -5
  61. package/.claude/skills/mastermind/diagnose.md +249 -0
  62. package/.claude/skills/mastermind/env.md +198 -0
  63. package/.claude/skills/mastermind/environments.md +250 -0
  64. package/.claude/skills/mastermind/export.md +324 -0
  65. package/.claude/skills/mastermind/goal-detail.md +255 -0
  66. package/.claude/skills/mastermind/goals.md +149 -0
  67. package/.claude/skills/mastermind/heartbeat.md +164 -0
  68. package/.claude/skills/mastermind/idea.md +318 -186
  69. package/.claude/skills/mastermind/import.md +281 -0
  70. package/.claude/skills/mastermind/inbox.md +214 -0
  71. package/.claude/skills/mastermind/instance-settings.md +315 -0
  72. package/.claude/skills/mastermind/instance.md +231 -0
  73. package/.claude/skills/mastermind/invite-landing.md +227 -0
  74. package/.claude/skills/mastermind/invites.md +254 -0
  75. package/.claude/skills/mastermind/issue-detail.md +291 -0
  76. package/.claude/skills/mastermind/issues.md +235 -0
  77. package/.claude/skills/mastermind/join-queue.md +170 -0
  78. package/.claude/skills/mastermind/liveness.md +392 -0
  79. package/.claude/skills/mastermind/memory.md +321 -0
  80. package/.claude/skills/mastermind/my-issues.md +146 -0
  81. package/.claude/skills/mastermind/new-agent.md +241 -0
  82. package/.claude/skills/mastermind/org-chart.md +207 -0
  83. package/.claude/skills/mastermind/org-settings.md +217 -0
  84. package/.claude/skills/mastermind/plan-to-tasks.md +136 -0
  85. package/.claude/skills/mastermind/plugin-manager.md +241 -0
  86. package/.claude/skills/mastermind/plugin-settings.md +273 -0
  87. package/.claude/skills/mastermind/plugins.md +190 -0
  88. package/.claude/skills/mastermind/profile.md +187 -0
  89. package/.claude/skills/mastermind/project-detail.md +249 -0
  90. package/.claude/skills/mastermind/project-workspace.md +244 -0
  91. package/.claude/skills/mastermind/projects.md +164 -0
  92. package/.claude/skills/mastermind/routine-detail.md +253 -0
  93. package/.claude/skills/mastermind/routines.md +202 -0
  94. package/.claude/skills/mastermind/runorg.md +74 -9
  95. package/.claude/skills/mastermind/search.md +186 -0
  96. package/.claude/skills/mastermind/secrets.md +199 -0
  97. package/.claude/skills/mastermind/skills.md +156 -0
  98. package/.claude/skills/mastermind/tasks.md +149 -0
  99. package/.claude/skills/mastermind/techport.md +5 -5
  100. package/.claude/skills/mastermind/threads.md +259 -0
  101. package/.claude/skills/mastermind/tree-control.md +250 -0
  102. package/.claude/skills/mastermind/wiki.md +314 -0
  103. package/.claude/skills/mastermind/workspace-detail.md +317 -0
  104. package/.claude/skills/mastermind/workspaces.md +261 -0
  105. package/.claude/skills/mastermind/worktree.md +187 -0
  106. package/LICENSE +1 -1
  107. package/package.json +1 -1
  108. package/packages/@monomind/cli/package.json +1 -1
  109. package/packages/@monomind/cli/bundled-graph/dist/src/analyze.d.ts +0 -32
  110. package/packages/@monomind/cli/bundled-graph/dist/src/analyze.d.ts.map +0 -1
  111. package/packages/@monomind/cli/bundled-graph/dist/src/analyze.js +0 -297
  112. package/packages/@monomind/cli/bundled-graph/dist/src/analyze.js.map +0 -1
  113. package/packages/@monomind/cli/bundled-graph/dist/src/build.d.ts +0 -8
  114. package/packages/@monomind/cli/bundled-graph/dist/src/build.d.ts.map +0 -1
  115. package/packages/@monomind/cli/bundled-graph/dist/src/build.js +0 -73
  116. package/packages/@monomind/cli/bundled-graph/dist/src/build.js.map +0 -1
  117. package/packages/@monomind/cli/bundled-graph/dist/src/cache.d.ts +0 -12
  118. package/packages/@monomind/cli/bundled-graph/dist/src/cache.d.ts.map +0 -1
  119. package/packages/@monomind/cli/bundled-graph/dist/src/cache.js +0 -43
  120. package/packages/@monomind/cli/bundled-graph/dist/src/cache.js.map +0 -1
  121. package/packages/@monomind/cli/bundled-graph/dist/src/cluster.d.ts +0 -5
  122. package/packages/@monomind/cli/bundled-graph/dist/src/cluster.d.ts.map +0 -1
  123. package/packages/@monomind/cli/bundled-graph/dist/src/cluster.js +0 -120
  124. package/packages/@monomind/cli/bundled-graph/dist/src/cluster.js.map +0 -1
  125. package/packages/@monomind/cli/bundled-graph/dist/src/detect.d.ts +0 -21
  126. package/packages/@monomind/cli/bundled-graph/dist/src/detect.d.ts.map +0 -1
  127. package/packages/@monomind/cli/bundled-graph/dist/src/detect.js +0 -195
  128. package/packages/@monomind/cli/bundled-graph/dist/src/detect.js.map +0 -1
  129. package/packages/@monomind/cli/bundled-graph/dist/src/export.d.ts +0 -21
  130. package/packages/@monomind/cli/bundled-graph/dist/src/export.d.ts.map +0 -1
  131. package/packages/@monomind/cli/bundled-graph/dist/src/export.js +0 -68
  132. package/packages/@monomind/cli/bundled-graph/dist/src/export.js.map +0 -1
  133. package/packages/@monomind/cli/bundled-graph/dist/src/extract/index.d.ts +0 -20
  134. package/packages/@monomind/cli/bundled-graph/dist/src/extract/index.d.ts.map +0 -1
  135. package/packages/@monomind/cli/bundled-graph/dist/src/extract/index.js +0 -158
  136. package/packages/@monomind/cli/bundled-graph/dist/src/extract/index.js.map +0 -1
  137. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/c.d.ts +0 -3
  138. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/c.d.ts.map +0 -1
  139. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/c.js +0 -88
  140. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/c.js.map +0 -1
  141. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/cpp.d.ts +0 -3
  142. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/cpp.d.ts.map +0 -1
  143. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/cpp.js +0 -121
  144. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/cpp.js.map +0 -1
  145. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/csharp.d.ts +0 -3
  146. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/csharp.d.ts.map +0 -1
  147. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/csharp.js +0 -121
  148. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/csharp.js.map +0 -1
  149. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/go.d.ts +0 -3
  150. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/go.d.ts.map +0 -1
  151. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/go.js +0 -181
  152. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/go.js.map +0 -1
  153. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/java.d.ts +0 -3
  154. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/java.d.ts.map +0 -1
  155. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/java.js +0 -117
  156. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/java.js.map +0 -1
  157. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/kotlin.d.ts +0 -3
  158. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/kotlin.d.ts.map +0 -1
  159. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/kotlin.js +0 -112
  160. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/kotlin.js.map +0 -1
  161. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/php.d.ts +0 -3
  162. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/php.d.ts.map +0 -1
  163. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/php.js +0 -130
  164. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/php.js.map +0 -1
  165. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/python.d.ts +0 -3
  166. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/python.d.ts.map +0 -1
  167. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/python.js +0 -230
  168. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/python.js.map +0 -1
  169. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/ruby.d.ts +0 -3
  170. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/ruby.d.ts.map +0 -1
  171. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/ruby.js +0 -120
  172. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/ruby.js.map +0 -1
  173. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/rust.d.ts +0 -3
  174. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/rust.d.ts.map +0 -1
  175. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/rust.js +0 -195
  176. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/rust.js.map +0 -1
  177. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/scala.d.ts +0 -3
  178. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/scala.d.ts.map +0 -1
  179. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/scala.js +0 -110
  180. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/scala.js.map +0 -1
  181. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/swift.d.ts +0 -3
  182. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/swift.d.ts.map +0 -1
  183. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/swift.js +0 -122
  184. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/swift.js.map +0 -1
  185. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/typescript.d.ts +0 -3
  186. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/typescript.d.ts.map +0 -1
  187. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/typescript.js +0 -295
  188. package/packages/@monomind/cli/bundled-graph/dist/src/extract/languages/typescript.js.map +0 -1
  189. package/packages/@monomind/cli/bundled-graph/dist/src/extract/semantic.d.ts +0 -38
  190. package/packages/@monomind/cli/bundled-graph/dist/src/extract/semantic.d.ts.map +0 -1
  191. package/packages/@monomind/cli/bundled-graph/dist/src/extract/semantic.js +0 -242
  192. package/packages/@monomind/cli/bundled-graph/dist/src/extract/semantic.js.map +0 -1
  193. package/packages/@monomind/cli/bundled-graph/dist/src/extract/tree-sitter-runner.d.ts +0 -48
  194. package/packages/@monomind/cli/bundled-graph/dist/src/extract/tree-sitter-runner.d.ts.map +0 -1
  195. package/packages/@monomind/cli/bundled-graph/dist/src/extract/tree-sitter-runner.js +0 -137
  196. package/packages/@monomind/cli/bundled-graph/dist/src/extract/tree-sitter-runner.js.map +0 -1
  197. package/packages/@monomind/cli/bundled-graph/dist/src/extract/types.d.ts +0 -7
  198. package/packages/@monomind/cli/bundled-graph/dist/src/extract/types.d.ts.map +0 -1
  199. package/packages/@monomind/cli/bundled-graph/dist/src/extract/types.js +0 -2
  200. package/packages/@monomind/cli/bundled-graph/dist/src/extract/types.js.map +0 -1
  201. package/packages/@monomind/cli/bundled-graph/dist/src/index.d.ts +0 -28
  202. package/packages/@monomind/cli/bundled-graph/dist/src/index.d.ts.map +0 -1
  203. package/packages/@monomind/cli/bundled-graph/dist/src/index.js +0 -26
  204. package/packages/@monomind/cli/bundled-graph/dist/src/index.js.map +0 -1
  205. package/packages/@monomind/cli/bundled-graph/dist/src/pipeline.d.ts +0 -27
  206. package/packages/@monomind/cli/bundled-graph/dist/src/pipeline.d.ts.map +0 -1
  207. package/packages/@monomind/cli/bundled-graph/dist/src/pipeline.js +0 -269
  208. package/packages/@monomind/cli/bundled-graph/dist/src/pipeline.js.map +0 -1
  209. package/packages/@monomind/cli/bundled-graph/dist/src/report.d.ts +0 -26
  210. package/packages/@monomind/cli/bundled-graph/dist/src/report.d.ts.map +0 -1
  211. package/packages/@monomind/cli/bundled-graph/dist/src/report.js +0 -214
  212. package/packages/@monomind/cli/bundled-graph/dist/src/report.js.map +0 -1
  213. package/packages/@monomind/cli/bundled-graph/dist/src/types.d.ts +0 -124
  214. package/packages/@monomind/cli/bundled-graph/dist/src/types.d.ts.map +0 -1
  215. package/packages/@monomind/cli/bundled-graph/dist/src/types.js +0 -2
  216. package/packages/@monomind/cli/bundled-graph/dist/src/types.js.map +0 -1
  217. package/packages/@monomind/cli/bundled-graph/dist/src/visualize.d.ts +0 -4
  218. package/packages/@monomind/cli/bundled-graph/dist/src/visualize.d.ts.map +0 -1
  219. package/packages/@monomind/cli/bundled-graph/dist/src/visualize.js +0 -574
  220. package/packages/@monomind/cli/bundled-graph/dist/src/visualize.js.map +0 -1
  221. package/packages/@monomind/cli/dist/src/agents/halt-signal.d.ts +0 -25
  222. package/packages/@monomind/cli/dist/src/agents/halt-signal.js +0 -76
  223. package/packages/@monomind/cli/dist/src/agents/index.d.ts +0 -18
  224. package/packages/@monomind/cli/dist/src/agents/index.js +0 -13
  225. package/packages/@monomind/cli/dist/src/agents/managed-agent.d.ts +0 -41
  226. package/packages/@monomind/cli/dist/src/agents/managed-agent.js +0 -69
  227. package/packages/@monomind/cli/dist/src/agents/prompt-experiment.d.ts +0 -23
  228. package/packages/@monomind/cli/dist/src/agents/prompt-experiment.js +0 -49
  229. package/packages/@monomind/cli/dist/src/agents/prompt-version-manager.d.ts +0 -22
  230. package/packages/@monomind/cli/dist/src/agents/prompt-version-manager.js +0 -80
  231. package/packages/@monomind/cli/dist/src/agents/registry-builder.d.ts +0 -36
  232. package/packages/@monomind/cli/dist/src/agents/registry-builder.js +0 -200
  233. package/packages/@monomind/cli/dist/src/agents/registry-query.d.ts +0 -71
  234. package/packages/@monomind/cli/dist/src/agents/registry-query.js +0 -125
  235. package/packages/@monomind/cli/dist/src/agents/score-decay.d.ts +0 -19
  236. package/packages/@monomind/cli/dist/src/agents/score-decay.js +0 -22
  237. package/packages/@monomind/cli/dist/src/agents/shared-instructions-loader.d.ts +0 -13
  238. package/packages/@monomind/cli/dist/src/agents/shared-instructions-loader.js +0 -40
  239. package/packages/@monomind/cli/dist/src/agents/specialization-scorer.d.ts +0 -54
  240. package/packages/@monomind/cli/dist/src/agents/specialization-scorer.js +0 -212
  241. package/packages/@monomind/cli/dist/src/agents/termination-watcher.d.ts +0 -30
  242. package/packages/@monomind/cli/dist/src/agents/termination-watcher.js +0 -84
  243. package/packages/@monomind/cli/dist/src/agents/trigger-index.d.ts +0 -20
  244. package/packages/@monomind/cli/dist/src/agents/trigger-index.js +0 -38
  245. package/packages/@monomind/cli/dist/src/agents/trigger-scanner.d.ts +0 -64
  246. package/packages/@monomind/cli/dist/src/agents/trigger-scanner.js +0 -308
  247. package/packages/@monomind/cli/dist/src/agents/version-diff.d.ts +0 -18
  248. package/packages/@monomind/cli/dist/src/agents/version-diff.js +0 -64
  249. package/packages/@monomind/cli/dist/src/agents/version-store.d.ts +0 -60
  250. package/packages/@monomind/cli/dist/src/agents/version-store.js +0 -235
  251. package/packages/@monomind/cli/dist/src/autopilot-state.d.ts +0 -77
  252. package/packages/@monomind/cli/dist/src/autopilot-state.js +0 -330
  253. package/packages/@monomind/cli/dist/src/benchmarks/benchmark-runner.d.ts +0 -87
  254. package/packages/@monomind/cli/dist/src/benchmarks/benchmark-runner.js +0 -273
  255. package/packages/@monomind/cli/dist/src/benchmarks/metric-evaluators.d.ts +0 -36
  256. package/packages/@monomind/cli/dist/src/benchmarks/metric-evaluators.js +0 -114
  257. package/packages/@monomind/cli/dist/src/benchmarks/pretrain/index.d.ts +0 -58
  258. package/packages/@monomind/cli/dist/src/benchmarks/pretrain/index.js +0 -404
  259. package/packages/@monomind/cli/dist/src/commands/agent-wasm.d.ts +0 -14
  260. package/packages/@monomind/cli/dist/src/commands/agent-wasm.js +0 -333
  261. package/packages/@monomind/cli/dist/src/commands/agent.d.ts +0 -8
  262. package/packages/@monomind/cli/dist/src/commands/agent.js +0 -943
  263. package/packages/@monomind/cli/dist/src/commands/analyze.d.ts +0 -19
  264. package/packages/@monomind/cli/dist/src/commands/analyze.js +0 -2048
  265. package/packages/@monomind/cli/dist/src/commands/appliance-advanced.d.ts +0 -9
  266. package/packages/@monomind/cli/dist/src/commands/appliance-advanced.js +0 -238
  267. package/packages/@monomind/cli/dist/src/commands/appliance.d.ts +0 -8
  268. package/packages/@monomind/cli/dist/src/commands/appliance.js +0 -406
  269. package/packages/@monomind/cli/dist/src/commands/autopilot.d.ts +0 -15
  270. package/packages/@monomind/cli/dist/src/commands/autopilot.js +0 -362
  271. package/packages/@monomind/cli/dist/src/commands/benchmark.d.ts +0 -10
  272. package/packages/@monomind/cli/dist/src/commands/benchmark.js +0 -571
  273. package/packages/@monomind/cli/dist/src/commands/claims.d.ts +0 -10
  274. package/packages/@monomind/cli/dist/src/commands/claims.js +0 -632
  275. package/packages/@monomind/cli/dist/src/commands/cleanup.d.ts +0 -13
  276. package/packages/@monomind/cli/dist/src/commands/cleanup.js +0 -218
  277. package/packages/@monomind/cli/dist/src/commands/completions.d.ts +0 -10
  278. package/packages/@monomind/cli/dist/src/commands/completions.js +0 -539
  279. package/packages/@monomind/cli/dist/src/commands/config.d.ts +0 -8
  280. package/packages/@monomind/cli/dist/src/commands/config.js +0 -460
  281. package/packages/@monomind/cli/dist/src/commands/daemon.d.ts +0 -8
  282. package/packages/@monomind/cli/dist/src/commands/daemon.js +0 -671
  283. package/packages/@monomind/cli/dist/src/commands/deployment.d.ts +0 -10
  284. package/packages/@monomind/cli/dist/src/commands/deployment.js +0 -691
  285. package/packages/@monomind/cli/dist/src/commands/doctor.d.ts +0 -10
  286. package/packages/@monomind/cli/dist/src/commands/doctor.js +0 -647
  287. package/packages/@monomind/cli/dist/src/commands/embeddings.d.ts +0 -18
  288. package/packages/@monomind/cli/dist/src/commands/embeddings.js +0 -1652
  289. package/packages/@monomind/cli/dist/src/commands/guidance.d.ts +0 -8
  290. package/packages/@monomind/cli/dist/src/commands/guidance.js +0 -560
  291. package/packages/@monomind/cli/dist/src/commands/hive-mind.d.ts +0 -11
  292. package/packages/@monomind/cli/dist/src/commands/hive-mind.js +0 -1238
  293. package/packages/@monomind/cli/dist/src/commands/hooks.d.ts +0 -8
  294. package/packages/@monomind/cli/dist/src/commands/hooks.js +0 -4446
  295. package/packages/@monomind/cli/dist/src/commands/index.d.ts +0 -119
  296. package/packages/@monomind/cli/dist/src/commands/index.js +0 -404
  297. package/packages/@monomind/cli/dist/src/commands/init.d.ts +0 -8
  298. package/packages/@monomind/cli/dist/src/commands/init.js +0 -853
  299. package/packages/@monomind/cli/dist/src/commands/issues.d.ts +0 -21
  300. package/packages/@monomind/cli/dist/src/commands/issues.js +0 -567
  301. package/packages/@monomind/cli/dist/src/commands/mcp.d.ts +0 -11
  302. package/packages/@monomind/cli/dist/src/commands/mcp.js +0 -705
  303. package/packages/@monomind/cli/dist/src/commands/memory.d.ts +0 -8
  304. package/packages/@monomind/cli/dist/src/commands/memory.js +0 -1596
  305. package/packages/@monomind/cli/dist/src/commands/migrate.d.ts +0 -8
  306. package/packages/@monomind/cli/dist/src/commands/migrate.js +0 -790
  307. package/packages/@monomind/cli/dist/src/commands/monograph.d.ts +0 -8
  308. package/packages/@monomind/cli/dist/src/commands/monograph.js +0 -526
  309. package/packages/@monomind/cli/dist/src/commands/neural.d.ts +0 -10
  310. package/packages/@monomind/cli/dist/src/commands/neural.js +0 -1494
  311. package/packages/@monomind/cli/dist/src/commands/performance.d.ts +0 -10
  312. package/packages/@monomind/cli/dist/src/commands/performance.js +0 -601
  313. package/packages/@monomind/cli/dist/src/commands/plugins.d.ts +0 -11
  314. package/packages/@monomind/cli/dist/src/commands/plugins.js +0 -796
  315. package/packages/@monomind/cli/dist/src/commands/process.d.ts +0 -10
  316. package/packages/@monomind/cli/dist/src/commands/process.js +0 -718
  317. package/packages/@monomind/cli/dist/src/commands/progress.d.ts +0 -11
  318. package/packages/@monomind/cli/dist/src/commands/progress.js +0 -259
  319. package/packages/@monomind/cli/dist/src/commands/providers.d.ts +0 -10
  320. package/packages/@monomind/cli/dist/src/commands/providers.js +0 -391
  321. package/packages/@monomind/cli/dist/src/commands/replay.d.ts +0 -8
  322. package/packages/@monomind/cli/dist/src/commands/replay.js +0 -60
  323. package/packages/@monomind/cli/dist/src/commands/route.d.ts +0 -16
  324. package/packages/@monomind/cli/dist/src/commands/route.js +0 -939
  325. package/packages/@monomind/cli/dist/src/commands/ruvector/backup.d.ts +0 -11
  326. package/packages/@monomind/cli/dist/src/commands/ruvector/backup.js +0 -746
  327. package/packages/@monomind/cli/dist/src/commands/ruvector/benchmark.d.ts +0 -11
  328. package/packages/@monomind/cli/dist/src/commands/ruvector/benchmark.js +0 -489
  329. package/packages/@monomind/cli/dist/src/commands/ruvector/import.d.ts +0 -18
  330. package/packages/@monomind/cli/dist/src/commands/ruvector/import.js +0 -359
  331. package/packages/@monomind/cli/dist/src/commands/ruvector/index.d.ts +0 -29
  332. package/packages/@monomind/cli/dist/src/commands/ruvector/index.js +0 -129
  333. package/packages/@monomind/cli/dist/src/commands/ruvector/init.d.ts +0 -11
  334. package/packages/@monomind/cli/dist/src/commands/ruvector/init.js +0 -481
  335. package/packages/@monomind/cli/dist/src/commands/ruvector/migrate.d.ts +0 -11
  336. package/packages/@monomind/cli/dist/src/commands/ruvector/migrate.js +0 -497
  337. package/packages/@monomind/cli/dist/src/commands/ruvector/optimize.d.ts +0 -11
  338. package/packages/@monomind/cli/dist/src/commands/ruvector/optimize.js +0 -504
  339. package/packages/@monomind/cli/dist/src/commands/ruvector/setup.d.ts +0 -18
  340. package/packages/@monomind/cli/dist/src/commands/ruvector/setup.js +0 -765
  341. package/packages/@monomind/cli/dist/src/commands/ruvector/status.d.ts +0 -11
  342. package/packages/@monomind/cli/dist/src/commands/ruvector/status.js +0 -491
  343. package/packages/@monomind/cli/dist/src/commands/security.d.ts +0 -10
  344. package/packages/@monomind/cli/dist/src/commands/security.js +0 -943
  345. package/packages/@monomind/cli/dist/src/commands/session.d.ts +0 -8
  346. package/packages/@monomind/cli/dist/src/commands/session.js +0 -793
  347. package/packages/@monomind/cli/dist/src/commands/start.d.ts +0 -8
  348. package/packages/@monomind/cli/dist/src/commands/start.js +0 -432
  349. package/packages/@monomind/cli/dist/src/commands/status.d.ts +0 -8
  350. package/packages/@monomind/cli/dist/src/commands/status.js +0 -591
  351. package/packages/@monomind/cli/dist/src/commands/swarm.d.ts +0 -8
  352. package/packages/@monomind/cli/dist/src/commands/swarm.js +0 -812
  353. package/packages/@monomind/cli/dist/src/commands/task.d.ts +0 -8
  354. package/packages/@monomind/cli/dist/src/commands/task.js +0 -671
  355. package/packages/@monomind/cli/dist/src/commands/tokens.d.ts +0 -8
  356. package/packages/@monomind/cli/dist/src/commands/tokens.js +0 -107
  357. package/packages/@monomind/cli/dist/src/commands/transfer-store.d.ts +0 -13
  358. package/packages/@monomind/cli/dist/src/commands/transfer-store.js +0 -428
  359. package/packages/@monomind/cli/dist/src/commands/ui.js +0 -68
  360. package/packages/@monomind/cli/dist/src/commands/update.d.ts +0 -8
  361. package/packages/@monomind/cli/dist/src/commands/update.js +0 -276
  362. package/packages/@monomind/cli/dist/src/commands/workflow.d.ts +0 -8
  363. package/packages/@monomind/cli/dist/src/commands/workflow.js +0 -644
  364. package/packages/@monomind/cli/dist/src/config-adapter.d.ts +0 -16
  365. package/packages/@monomind/cli/dist/src/config-adapter.js +0 -186
  366. package/packages/@monomind/cli/dist/src/consensus/audit-writer.d.ts +0 -50
  367. package/packages/@monomind/cli/dist/src/consensus/audit-writer.js +0 -142
  368. package/packages/@monomind/cli/dist/src/consensus/index.d.ts +0 -7
  369. package/packages/@monomind/cli/dist/src/consensus/index.js +0 -6
  370. package/packages/@monomind/cli/dist/src/consensus/vote-signer.d.ts +0 -36
  371. package/packages/@monomind/cli/dist/src/consensus/vote-signer.js +0 -71
  372. package/packages/@monomind/cli/dist/src/context/context-provider.d.ts +0 -44
  373. package/packages/@monomind/cli/dist/src/context/context-provider.js +0 -25
  374. package/packages/@monomind/cli/dist/src/context/git-state-provider.d.ts +0 -12
  375. package/packages/@monomind/cli/dist/src/context/git-state-provider.js +0 -34
  376. package/packages/@monomind/cli/dist/src/context/index.d.ts +0 -12
  377. package/packages/@monomind/cli/dist/src/context/index.js +0 -12
  378. package/packages/@monomind/cli/dist/src/context/project-conventions-provider.d.ts +0 -15
  379. package/packages/@monomind/cli/dist/src/context/project-conventions-provider.js +0 -19
  380. package/packages/@monomind/cli/dist/src/context/prompt-assembler.d.ts +0 -26
  381. package/packages/@monomind/cli/dist/src/context/prompt-assembler.js +0 -93
  382. package/packages/@monomind/cli/dist/src/context/task-history-provider.d.ts +0 -24
  383. package/packages/@monomind/cli/dist/src/context/task-history-provider.js +0 -32
  384. package/packages/@monomind/cli/dist/src/context/user-preferences-provider.d.ts +0 -14
  385. package/packages/@monomind/cli/dist/src/context/user-preferences-provider.js +0 -27
  386. package/packages/@monomind/cli/dist/src/dlq/dlq-reader.d.ts +0 -31
  387. package/packages/@monomind/cli/dist/src/dlq/dlq-reader.js +0 -81
  388. package/packages/@monomind/cli/dist/src/dlq/dlq-replayer.d.ts +0 -27
  389. package/packages/@monomind/cli/dist/src/dlq/dlq-replayer.js +0 -90
  390. package/packages/@monomind/cli/dist/src/dlq/dlq-writer.d.ts +0 -24
  391. package/packages/@monomind/cli/dist/src/dlq/dlq-writer.js +0 -65
  392. package/packages/@monomind/cli/dist/src/dlq/index.d.ts +0 -10
  393. package/packages/@monomind/cli/dist/src/dlq/index.js +0 -7
  394. package/packages/@monomind/cli/dist/src/eval/dataset-manager.d.ts +0 -33
  395. package/packages/@monomind/cli/dist/src/eval/dataset-manager.js +0 -107
  396. package/packages/@monomind/cli/dist/src/eval/dataset-runner.d.ts +0 -23
  397. package/packages/@monomind/cli/dist/src/eval/dataset-runner.js +0 -59
  398. package/packages/@monomind/cli/dist/src/eval/index.d.ts +0 -10
  399. package/packages/@monomind/cli/dist/src/eval/index.js +0 -7
  400. package/packages/@monomind/cli/dist/src/eval/trace-collector.d.ts +0 -40
  401. package/packages/@monomind/cli/dist/src/eval/trace-collector.js +0 -102
  402. package/packages/@monomind/cli/dist/src/index.d.ts +0 -82
  403. package/packages/@monomind/cli/dist/src/index.js +0 -580
  404. package/packages/@monomind/cli/dist/src/infrastructure/in-memory-repositories.d.ts +0 -68
  405. package/packages/@monomind/cli/dist/src/infrastructure/in-memory-repositories.js +0 -264
  406. package/packages/@monomind/cli/dist/src/init/claudemd-generator.d.ts +0 -25
  407. package/packages/@monomind/cli/dist/src/init/claudemd-generator.js +0 -558
  408. package/packages/@monomind/cli/dist/src/init/executor.d.ts +0 -38
  409. package/packages/@monomind/cli/dist/src/init/executor.js +0 -2172
  410. package/packages/@monomind/cli/dist/src/init/helpers-generator.d.ts +0 -60
  411. package/packages/@monomind/cli/dist/src/init/helpers-generator.js +0 -1235
  412. package/packages/@monomind/cli/dist/src/init/index.d.ts +0 -13
  413. package/packages/@monomind/cli/dist/src/init/index.js +0 -15
  414. package/packages/@monomind/cli/dist/src/init/mcp-generator.d.ts +0 -26
  415. package/packages/@monomind/cli/dist/src/init/mcp-generator.js +0 -99
  416. package/packages/@monomind/cli/dist/src/init/settings-generator.d.ts +0 -14
  417. package/packages/@monomind/cli/dist/src/init/settings-generator.js +0 -417
  418. package/packages/@monomind/cli/dist/src/init/shared-instructions-generator.d.ts +0 -38
  419. package/packages/@monomind/cli/dist/src/init/shared-instructions-generator.js +0 -586
  420. package/packages/@monomind/cli/dist/src/init/statusline-generator.d.ts +0 -25
  421. package/packages/@monomind/cli/dist/src/init/statusline-generator.js +0 -1159
  422. package/packages/@monomind/cli/dist/src/init/types.d.ts +0 -315
  423. package/packages/@monomind/cli/dist/src/init/types.js +0 -254
  424. package/packages/@monomind/cli/dist/src/interactive/interrupt.d.ts +0 -22
  425. package/packages/@monomind/cli/dist/src/interactive/interrupt.js +0 -71
  426. package/packages/@monomind/cli/dist/src/mcp/deprecation-injector.d.ts +0 -25
  427. package/packages/@monomind/cli/dist/src/mcp/deprecation-injector.js +0 -48
  428. package/packages/@monomind/cli/dist/src/mcp/tool-registry.d.ts +0 -61
  429. package/packages/@monomind/cli/dist/src/mcp/tool-registry.js +0 -246
  430. package/packages/@monomind/cli/dist/src/mcp-client.d.ts +0 -92
  431. package/packages/@monomind/cli/dist/src/mcp-client.js +0 -270
  432. package/packages/@monomind/cli/dist/src/mcp-server.d.ts +0 -170
  433. package/packages/@monomind/cli/dist/src/mcp-server.js +0 -829
  434. package/packages/@monomind/cli/dist/src/mcp-tools/a2a-tools.d.ts +0 -14
  435. package/packages/@monomind/cli/dist/src/mcp-tools/a2a-tools.js +0 -244
  436. package/packages/@monomind/cli/dist/src/mcp-tools/agent-tools.d.ts +0 -9
  437. package/packages/@monomind/cli/dist/src/mcp-tools/agent-tools.js +0 -607
  438. package/packages/@monomind/cli/dist/src/mcp-tools/agentdb-tools.d.ts +0 -30
  439. package/packages/@monomind/cli/dist/src/mcp-tools/agentdb-tools.js +0 -596
  440. package/packages/@monomind/cli/dist/src/mcp-tools/analyze-tools.d.ts +0 -38
  441. package/packages/@monomind/cli/dist/src/mcp-tools/analyze-tools.js +0 -326
  442. package/packages/@monomind/cli/dist/src/mcp-tools/auto-install.d.ts +0 -83
  443. package/packages/@monomind/cli/dist/src/mcp-tools/auto-install.js +0 -129
  444. package/packages/@monomind/cli/dist/src/mcp-tools/autopilot-tools.d.ts +0 -12
  445. package/packages/@monomind/cli/dist/src/mcp-tools/autopilot-tools.js +0 -237
  446. package/packages/@monomind/cli/dist/src/mcp-tools/browser-tools.d.ts +0 -13
  447. package/packages/@monomind/cli/dist/src/mcp-tools/browser-tools.js +0 -729
  448. package/packages/@monomind/cli/dist/src/mcp-tools/claims-tools.d.ts +0 -12
  449. package/packages/@monomind/cli/dist/src/mcp-tools/claims-tools.js +0 -797
  450. package/packages/@monomind/cli/dist/src/mcp-tools/config-tools.d.ts +0 -8
  451. package/packages/@monomind/cli/dist/src/mcp-tools/config-tools.js +0 -381
  452. package/packages/@monomind/cli/dist/src/mcp-tools/coordination-tools.d.ts +0 -13
  453. package/packages/@monomind/cli/dist/src/mcp-tools/coordination-tools.js +0 -728
  454. package/packages/@monomind/cli/dist/src/mcp-tools/daa-tools.d.ts +0 -13
  455. package/packages/@monomind/cli/dist/src/mcp-tools/daa-tools.js +0 -509
  456. package/packages/@monomind/cli/dist/src/mcp-tools/embeddings-tools.d.ts +0 -9
  457. package/packages/@monomind/cli/dist/src/mcp-tools/embeddings-tools.js +0 -823
  458. package/packages/@monomind/cli/dist/src/mcp-tools/github-tools.d.ts +0 -9
  459. package/packages/@monomind/cli/dist/src/mcp-tools/github-tools.js +0 -485
  460. package/packages/@monomind/cli/dist/src/mcp-tools/graphify-tools.d.ts +0 -10
  461. package/packages/@monomind/cli/dist/src/mcp-tools/graphify-tools.js +0 -49
  462. package/packages/@monomind/cli/dist/src/mcp-tools/guidance-tools.d.ts +0 -15
  463. package/packages/@monomind/cli/dist/src/mcp-tools/guidance-tools.js +0 -646
  464. package/packages/@monomind/cli/dist/src/mcp-tools/hive-mind-tools.d.ts +0 -8
  465. package/packages/@monomind/cli/dist/src/mcp-tools/hive-mind-tools.js +0 -957
  466. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-tools.d.ts +0 -44
  467. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-tools.js +0 -3440
  468. package/packages/@monomind/cli/dist/src/mcp-tools/index.d.ts +0 -39
  469. package/packages/@monomind/cli/dist/src/mcp-tools/index.js +0 -41
  470. package/packages/@monomind/cli/dist/src/mcp-tools/memory-tools.d.ts +0 -14
  471. package/packages/@monomind/cli/dist/src/mcp-tools/memory-tools.js +0 -530
  472. package/packages/@monomind/cli/dist/src/mcp-tools/monograph-tools.d.ts +0 -9
  473. package/packages/@monomind/cli/dist/src/mcp-tools/monograph-tools.js +0 -6306
  474. package/packages/@monomind/cli/dist/src/mcp-tools/neural-tools.d.ts +0 -16
  475. package/packages/@monomind/cli/dist/src/mcp-tools/neural-tools.js +0 -718
  476. package/packages/@monomind/cli/dist/src/mcp-tools/performance-tools.d.ts +0 -16
  477. package/packages/@monomind/cli/dist/src/mcp-tools/performance-tools.js +0 -656
  478. package/packages/@monomind/cli/dist/src/mcp-tools/progress-tools.d.ts +0 -14
  479. package/packages/@monomind/cli/dist/src/mcp-tools/progress-tools.js +0 -350
  480. package/packages/@monomind/cli/dist/src/mcp-tools/request-tracker.d.ts +0 -17
  481. package/packages/@monomind/cli/dist/src/mcp-tools/request-tracker.js +0 -30
  482. package/packages/@monomind/cli/dist/src/mcp-tools/ruvllm-tools.d.ts +0 -9
  483. package/packages/@monomind/cli/dist/src/mcp-tools/ruvllm-tools.js +0 -295
  484. package/packages/@monomind/cli/dist/src/mcp-tools/security-tools.d.ts +0 -18
  485. package/packages/@monomind/cli/dist/src/mcp-tools/security-tools.js +0 -434
  486. package/packages/@monomind/cli/dist/src/mcp-tools/session-tools.d.ts +0 -8
  487. package/packages/@monomind/cli/dist/src/mcp-tools/session-tools.js +0 -378
  488. package/packages/@monomind/cli/dist/src/mcp-tools/swarm-tools.d.ts +0 -9
  489. package/packages/@monomind/cli/dist/src/mcp-tools/swarm-tools.js +0 -317
  490. package/packages/@monomind/cli/dist/src/mcp-tools/system-tools.d.ts +0 -13
  491. package/packages/@monomind/cli/dist/src/mcp-tools/system-tools.js +0 -552
  492. package/packages/@monomind/cli/dist/src/mcp-tools/task-tools.d.ts +0 -8
  493. package/packages/@monomind/cli/dist/src/mcp-tools/task-tools.js +0 -446
  494. package/packages/@monomind/cli/dist/src/mcp-tools/terminal-tools.d.ts +0 -8
  495. package/packages/@monomind/cli/dist/src/mcp-tools/terminal-tools.js +0 -309
  496. package/packages/@monomind/cli/dist/src/mcp-tools/transfer-tools.d.ts +0 -14
  497. package/packages/@monomind/cli/dist/src/mcp-tools/transfer-tools.js +0 -401
  498. package/packages/@monomind/cli/dist/src/mcp-tools/types.d.ts +0 -37
  499. package/packages/@monomind/cli/dist/src/mcp-tools/types.js +0 -14
  500. package/packages/@monomind/cli/dist/src/mcp-tools/wasm-agent-tools.d.ts +0 -9
  501. package/packages/@monomind/cli/dist/src/mcp-tools/wasm-agent-tools.js +0 -230
  502. package/packages/@monomind/cli/dist/src/mcp-tools/workflow-tools.d.ts +0 -8
  503. package/packages/@monomind/cli/dist/src/mcp-tools/workflow-tools.js +0 -631
  504. package/packages/@monomind/cli/dist/src/memory/ewc-consolidation.d.ts +0 -295
  505. package/packages/@monomind/cli/dist/src/memory/ewc-consolidation.js +0 -632
  506. package/packages/@monomind/cli/dist/src/memory/intelligence.d.ts +0 -338
  507. package/packages/@monomind/cli/dist/src/memory/intelligence.js +0 -1049
  508. package/packages/@monomind/cli/dist/src/memory/memory-bridge.d.ts +0 -410
  509. package/packages/@monomind/cli/dist/src/memory/memory-bridge.js +0 -1654
  510. package/packages/@monomind/cli/dist/src/memory/memory-initializer.d.ts +0 -414
  511. package/packages/@monomind/cli/dist/src/memory/memory-initializer.js +0 -2284
  512. package/packages/@monomind/cli/dist/src/memory/sona-optimizer.d.ts +0 -234
  513. package/packages/@monomind/cli/dist/src/memory/sona-optimizer.js +0 -650
  514. package/packages/@monomind/cli/dist/src/model/complexity-scorer.d.ts +0 -21
  515. package/packages/@monomind/cli/dist/src/model/complexity-scorer.js +0 -106
  516. package/packages/@monomind/cli/dist/src/model/index.d.ts +0 -4
  517. package/packages/@monomind/cli/dist/src/model/index.js +0 -4
  518. package/packages/@monomind/cli/dist/src/model/model-settings.d.ts +0 -22
  519. package/packages/@monomind/cli/dist/src/model/model-settings.js +0 -33
  520. package/packages/@monomind/cli/dist/src/model/model-tier-resolver.d.ts +0 -24
  521. package/packages/@monomind/cli/dist/src/model/model-tier-resolver.js +0 -65
  522. package/packages/@monomind/cli/dist/src/observability/replay-reader.d.ts +0 -40
  523. package/packages/@monomind/cli/dist/src/observability/replay-reader.js +0 -138
  524. package/packages/@monomind/cli/dist/src/orchestration/index.d.ts +0 -7
  525. package/packages/@monomind/cli/dist/src/orchestration/index.js +0 -6
  526. package/packages/@monomind/cli/dist/src/orchestration/mode-dispatcher.d.ts +0 -11
  527. package/packages/@monomind/cli/dist/src/orchestration/mode-dispatcher.js +0 -31
  528. package/packages/@monomind/cli/dist/src/orchestration/routing-modes.d.ts +0 -68
  529. package/packages/@monomind/cli/dist/src/orchestration/routing-modes.js +0 -180
  530. package/packages/@monomind/cli/dist/src/output.d.ts +0 -133
  531. package/packages/@monomind/cli/dist/src/output.js +0 -514
  532. package/packages/@monomind/cli/dist/src/parser.d.ts +0 -59
  533. package/packages/@monomind/cli/dist/src/parser.js +0 -459
  534. package/packages/@monomind/cli/dist/src/plugins/manager.d.ts +0 -133
  535. package/packages/@monomind/cli/dist/src/plugins/manager.js +0 -493
  536. package/packages/@monomind/cli/dist/src/plugins/store/discovery.d.ts +0 -88
  537. package/packages/@monomind/cli/dist/src/plugins/store/discovery.js +0 -859
  538. package/packages/@monomind/cli/dist/src/plugins/store/index.d.ts +0 -76
  539. package/packages/@monomind/cli/dist/src/plugins/store/index.js +0 -141
  540. package/packages/@monomind/cli/dist/src/plugins/store/search.d.ts +0 -46
  541. package/packages/@monomind/cli/dist/src/plugins/store/search.js +0 -230
  542. package/packages/@monomind/cli/dist/src/plugins/store/types.d.ts +0 -274
  543. package/packages/@monomind/cli/dist/src/plugins/store/types.js +0 -7
  544. package/packages/@monomind/cli/dist/src/plugins/tests/demo-plugin-store.d.ts +0 -7
  545. package/packages/@monomind/cli/dist/src/plugins/tests/demo-plugin-store.js +0 -126
  546. package/packages/@monomind/cli/dist/src/plugins/tests/standalone-test.d.ts +0 -12
  547. package/packages/@monomind/cli/dist/src/plugins/tests/standalone-test.js +0 -188
  548. package/packages/@monomind/cli/dist/src/plugins/tests/test-plugin-store.d.ts +0 -7
  549. package/packages/@monomind/cli/dist/src/plugins/tests/test-plugin-store.js +0 -206
  550. package/packages/@monomind/cli/dist/src/production/circuit-breaker.d.ts +0 -101
  551. package/packages/@monomind/cli/dist/src/production/circuit-breaker.js +0 -248
  552. package/packages/@monomind/cli/dist/src/production/error-handler.d.ts +0 -94
  553. package/packages/@monomind/cli/dist/src/production/error-handler.js +0 -321
  554. package/packages/@monomind/cli/dist/src/production/index.d.ts +0 -23
  555. package/packages/@monomind/cli/dist/src/production/index.js +0 -18
  556. package/packages/@monomind/cli/dist/src/production/monitoring.d.ts +0 -161
  557. package/packages/@monomind/cli/dist/src/production/monitoring.js +0 -360
  558. package/packages/@monomind/cli/dist/src/production/rate-limiter.d.ts +0 -80
  559. package/packages/@monomind/cli/dist/src/production/rate-limiter.js +0 -209
  560. package/packages/@monomind/cli/dist/src/production/retry.d.ts +0 -48
  561. package/packages/@monomind/cli/dist/src/production/retry.js +0 -179
  562. package/packages/@monomind/cli/dist/src/prompt.d.ts +0 -44
  563. package/packages/@monomind/cli/dist/src/prompt.js +0 -501
  564. package/packages/@monomind/cli/dist/src/runtime/headless.d.ts +0 -60
  565. package/packages/@monomind/cli/dist/src/runtime/headless.js +0 -284
  566. package/packages/@monomind/cli/dist/src/ruvector/agent-wasm.d.ts +0 -182
  567. package/packages/@monomind/cli/dist/src/ruvector/agent-wasm.js +0 -316
  568. package/packages/@monomind/cli/dist/src/ruvector/ast-analyzer.d.ts +0 -67
  569. package/packages/@monomind/cli/dist/src/ruvector/ast-analyzer.js +0 -277
  570. package/packages/@monomind/cli/dist/src/ruvector/coverage-router.d.ts +0 -160
  571. package/packages/@monomind/cli/dist/src/ruvector/coverage-router.js +0 -539
  572. package/packages/@monomind/cli/dist/src/ruvector/coverage-tools.d.ts +0 -33
  573. package/packages/@monomind/cli/dist/src/ruvector/coverage-tools.js +0 -157
  574. package/packages/@monomind/cli/dist/src/ruvector/diff-classifier.d.ts +0 -176
  575. package/packages/@monomind/cli/dist/src/ruvector/diff-classifier.js +0 -718
  576. package/packages/@monomind/cli/dist/src/ruvector/enhanced-model-router.d.ts +0 -146
  577. package/packages/@monomind/cli/dist/src/ruvector/enhanced-model-router.js +0 -551
  578. package/packages/@monomind/cli/dist/src/ruvector/flash-attention.d.ts +0 -195
  579. package/packages/@monomind/cli/dist/src/ruvector/flash-attention.js +0 -643
  580. package/packages/@monomind/cli/dist/src/ruvector/graph-analyzer.d.ts +0 -187
  581. package/packages/@monomind/cli/dist/src/ruvector/graph-analyzer.js +0 -929
  582. package/packages/@monomind/cli/dist/src/ruvector/index.d.ts +0 -39
  583. package/packages/@monomind/cli/dist/src/ruvector/index.js +0 -76
  584. package/packages/@monomind/cli/dist/src/ruvector/lora-adapter.d.ts +0 -218
  585. package/packages/@monomind/cli/dist/src/ruvector/lora-adapter.js +0 -455
  586. package/packages/@monomind/cli/dist/src/ruvector/model-router.d.ts +0 -222
  587. package/packages/@monomind/cli/dist/src/ruvector/model-router.js +0 -512
  588. package/packages/@monomind/cli/dist/src/ruvector/moe-router.d.ts +0 -213
  589. package/packages/@monomind/cli/dist/src/ruvector/moe-router.js +0 -649
  590. package/packages/@monomind/cli/dist/src/ruvector/q-learning-router.d.ts +0 -217
  591. package/packages/@monomind/cli/dist/src/ruvector/q-learning-router.js +0 -712
  592. package/packages/@monomind/cli/dist/src/ruvector/ruvllm-wasm.d.ts +0 -179
  593. package/packages/@monomind/cli/dist/src/ruvector/ruvllm-wasm.js +0 -363
  594. package/packages/@monomind/cli/dist/src/ruvector/semantic-router.d.ts +0 -77
  595. package/packages/@monomind/cli/dist/src/ruvector/semantic-router.js +0 -178
  596. package/packages/@monomind/cli/dist/src/ruvector/vector-db.d.ts +0 -69
  597. package/packages/@monomind/cli/dist/src/ruvector/vector-db.js +0 -243
  598. package/packages/@monomind/cli/dist/src/services/agentic-flow-bridge.d.ts +0 -50
  599. package/packages/@monomind/cli/dist/src/services/agentic-flow-bridge.js +0 -95
  600. package/packages/@monomind/cli/dist/src/services/claim-service.d.ts +0 -206
  601. package/packages/@monomind/cli/dist/src/services/claim-service.js +0 -849
  602. package/packages/@monomind/cli/dist/src/services/config-file-manager.d.ts +0 -51
  603. package/packages/@monomind/cli/dist/src/services/config-file-manager.js +0 -312
  604. package/packages/@monomind/cli/dist/src/services/container-worker-pool.d.ts +0 -197
  605. package/packages/@monomind/cli/dist/src/services/container-worker-pool.js +0 -623
  606. package/packages/@monomind/cli/dist/src/services/headless-worker-executor.d.ts +0 -311
  607. package/packages/@monomind/cli/dist/src/services/headless-worker-executor.js +0 -1167
  608. package/packages/@monomind/cli/dist/src/services/index.d.ts +0 -13
  609. package/packages/@monomind/cli/dist/src/services/index.js +0 -11
  610. package/packages/@monomind/cli/dist/src/services/registry-api.d.ts +0 -58
  611. package/packages/@monomind/cli/dist/src/services/registry-api.js +0 -199
  612. package/packages/@monomind/cli/dist/src/services/ruvector-training.d.ts +0 -222
  613. package/packages/@monomind/cli/dist/src/services/ruvector-training.js +0 -696
  614. package/packages/@monomind/cli/dist/src/services/worker-daemon.d.ts +0 -248
  615. package/packages/@monomind/cli/dist/src/services/worker-daemon.js +0 -1083
  616. package/packages/@monomind/cli/dist/src/services/worker-queue.d.ts +0 -201
  617. package/packages/@monomind/cli/dist/src/services/worker-queue.js +0 -594
  618. package/packages/@monomind/cli/dist/src/suggest.d.ts +0 -53
  619. package/packages/@monomind/cli/dist/src/suggest.js +0 -209
  620. package/packages/@monomind/cli/dist/src/swarm/communication-graph.d.ts +0 -25
  621. package/packages/@monomind/cli/dist/src/swarm/communication-graph.js +0 -77
  622. package/packages/@monomind/cli/dist/src/swarm/flow-enforcer.d.ts +0 -31
  623. package/packages/@monomind/cli/dist/src/swarm/flow-enforcer.js +0 -61
  624. package/packages/@monomind/cli/dist/src/swarm/flow-visualizer.d.ts +0 -19
  625. package/packages/@monomind/cli/dist/src/swarm/flow-visualizer.js +0 -68
  626. package/packages/@monomind/cli/dist/src/transfer/anonymization/index.d.ts +0 -25
  627. package/packages/@monomind/cli/dist/src/transfer/anonymization/index.js +0 -177
  628. package/packages/@monomind/cli/dist/src/transfer/deploy-seraphine.d.ts +0 -13
  629. package/packages/@monomind/cli/dist/src/transfer/deploy-seraphine.js +0 -205
  630. package/packages/@monomind/cli/dist/src/transfer/export.d.ts +0 -25
  631. package/packages/@monomind/cli/dist/src/transfer/export.js +0 -115
  632. package/packages/@monomind/cli/dist/src/transfer/index.d.ts +0 -12
  633. package/packages/@monomind/cli/dist/src/transfer/index.js +0 -31
  634. package/packages/@monomind/cli/dist/src/transfer/ipfs/client.d.ts +0 -109
  635. package/packages/@monomind/cli/dist/src/transfer/ipfs/client.js +0 -384
  636. package/packages/@monomind/cli/dist/src/transfer/ipfs/upload.d.ts +0 -95
  637. package/packages/@monomind/cli/dist/src/transfer/ipfs/upload.js +0 -420
  638. package/packages/@monomind/cli/dist/src/transfer/models/seraphine.d.ts +0 -72
  639. package/packages/@monomind/cli/dist/src/transfer/models/seraphine.js +0 -373
  640. package/packages/@monomind/cli/dist/src/transfer/serialization/cfp.d.ts +0 -49
  641. package/packages/@monomind/cli/dist/src/transfer/serialization/cfp.js +0 -183
  642. package/packages/@monomind/cli/dist/src/transfer/storage/gcs.d.ts +0 -82
  643. package/packages/@monomind/cli/dist/src/transfer/storage/gcs.js +0 -281
  644. package/packages/@monomind/cli/dist/src/transfer/storage/index.d.ts +0 -6
  645. package/packages/@monomind/cli/dist/src/transfer/storage/index.js +0 -6
  646. package/packages/@monomind/cli/dist/src/transfer/store/discovery.d.ts +0 -91
  647. package/packages/@monomind/cli/dist/src/transfer/store/discovery.js +0 -437
  648. package/packages/@monomind/cli/dist/src/transfer/store/download.d.ts +0 -79
  649. package/packages/@monomind/cli/dist/src/transfer/store/download.js +0 -423
  650. package/packages/@monomind/cli/dist/src/transfer/store/index.d.ts +0 -84
  651. package/packages/@monomind/cli/dist/src/transfer/store/index.js +0 -153
  652. package/packages/@monomind/cli/dist/src/transfer/store/publish.d.ts +0 -76
  653. package/packages/@monomind/cli/dist/src/transfer/store/publish.js +0 -293
  654. package/packages/@monomind/cli/dist/src/transfer/store/registry.d.ts +0 -58
  655. package/packages/@monomind/cli/dist/src/transfer/store/registry.js +0 -301
  656. package/packages/@monomind/cli/dist/src/transfer/store/search.d.ts +0 -54
  657. package/packages/@monomind/cli/dist/src/transfer/store/search.js +0 -232
  658. package/packages/@monomind/cli/dist/src/transfer/store/tests/standalone-test.d.ts +0 -12
  659. package/packages/@monomind/cli/dist/src/transfer/store/tests/standalone-test.js +0 -190
  660. package/packages/@monomind/cli/dist/src/transfer/store/types.d.ts +0 -193
  661. package/packages/@monomind/cli/dist/src/transfer/store/types.js +0 -6
  662. package/packages/@monomind/cli/dist/src/transfer/test-seraphine.d.ts +0 -6
  663. package/packages/@monomind/cli/dist/src/transfer/test-seraphine.js +0 -105
  664. package/packages/@monomind/cli/dist/src/transfer/tests/test-store.d.ts +0 -7
  665. package/packages/@monomind/cli/dist/src/transfer/tests/test-store.js +0 -214
  666. package/packages/@monomind/cli/dist/src/transfer/types.d.ts +0 -245
  667. package/packages/@monomind/cli/dist/src/transfer/types.js +0 -6
  668. package/packages/@monomind/cli/dist/src/types.d.ts +0 -198
  669. package/packages/@monomind/cli/dist/src/types.js +0 -38
  670. package/packages/@monomind/cli/dist/src/update/checker.d.ts +0 -34
  671. package/packages/@monomind/cli/dist/src/update/checker.js +0 -198
  672. package/packages/@monomind/cli/dist/src/update/executor.d.ts +0 -32
  673. package/packages/@monomind/cli/dist/src/update/executor.js +0 -186
  674. package/packages/@monomind/cli/dist/src/update/index.d.ts +0 -33
  675. package/packages/@monomind/cli/dist/src/update/index.js +0 -64
  676. package/packages/@monomind/cli/dist/src/update/rate-limiter.d.ts +0 -31
  677. package/packages/@monomind/cli/dist/src/update/rate-limiter.js +0 -116
  678. package/packages/@monomind/cli/dist/src/update/validator.d.ts +0 -17
  679. package/packages/@monomind/cli/dist/src/update/validator.js +0 -118
  680. package/packages/@monomind/cli/dist/src/utils/parse-jsonl.d.ts +0 -6
  681. package/packages/@monomind/cli/dist/src/utils/parse-jsonl.js +0 -22
  682. package/packages/@monomind/cli/dist/src/workflow/condition-evaluator.d.ts +0 -10
  683. package/packages/@monomind/cli/dist/src/workflow/condition-evaluator.js +0 -82
  684. package/packages/@monomind/cli/dist/src/workflow/context-resolver.d.ts +0 -12
  685. package/packages/@monomind/cli/dist/src/workflow/context-resolver.js +0 -23
  686. package/packages/@monomind/cli/dist/src/workflow/dag-builder.d.ts +0 -17
  687. package/packages/@monomind/cli/dist/src/workflow/dag-builder.js +0 -129
  688. package/packages/@monomind/cli/dist/src/workflow/dag-executor.d.ts +0 -9
  689. package/packages/@monomind/cli/dist/src/workflow/dag-executor.js +0 -116
  690. package/packages/@monomind/cli/dist/src/workflow/dag-types.d.ts +0 -41
  691. package/packages/@monomind/cli/dist/src/workflow/dag-types.js +0 -8
  692. package/packages/@monomind/cli/dist/src/workflow/dsl-parser.d.ts +0 -12
  693. package/packages/@monomind/cli/dist/src/workflow/dsl-parser.js +0 -20
  694. package/packages/@monomind/cli/dist/src/workflow/dsl-schema.d.ts +0 -165
  695. package/packages/@monomind/cli/dist/src/workflow/dsl-schema.js +0 -82
  696. package/packages/@monomind/cli/dist/src/workflow/index.d.ts +0 -13
  697. package/packages/@monomind/cli/dist/src/workflow/index.js +0 -11
  698. package/packages/@monomind/cli/dist/src/workflow/template-engine.d.ts +0 -11
  699. package/packages/@monomind/cli/dist/src/workflow/template-engine.js +0 -40
  700. package/packages/@monomind/cli/dist/src/workflow/workflow-executor.d.ts +0 -29
  701. package/packages/@monomind/cli/dist/src/workflow/workflow-executor.js +0 -227
@@ -1,849 +0,0 @@
1
- /**
2
- * V1 Collaborative Issue Claims Service
3
- *
4
- * Implements ADR-016: Collaborative Issue Claims for Human-Agent Workflows
5
- *
6
- * Features:
7
- * - Issue claiming/releasing for humans and agents
8
- * - Handoff mechanisms between humans and agents
9
- * - Work stealing for idle agents
10
- * - Load balancing across swarm
11
- * - GitHub integration
12
- *
13
- * @see /packages/implementation/adrs/ADR-016-collaborative-issue-claims.md
14
- */
15
- import { EventEmitter } from 'events';
16
- import * as fs from 'fs';
17
- import * as path from 'path';
18
- import { execFileSync } from 'child_process';
19
- // ============================================================================
20
- // Default Configuration
21
- // ============================================================================
22
- const DEFAULT_CONFIG = {
23
- staleThresholdMinutes: 30,
24
- blockedThresholdMinutes: 60,
25
- overloadThreshold: 5,
26
- gracePeriodMinutes: 10,
27
- minProgressToProtect: 75,
28
- contestWindowMinutes: 5,
29
- requireSameType: false,
30
- allowCrossTypeSteal: [
31
- ['coder', 'debugger'],
32
- ['tester', 'reviewer'],
33
- ],
34
- };
35
- // ============================================================================
36
- // Claim Service Implementation
37
- // ============================================================================
38
- export class ClaimService extends EventEmitter {
39
- claims = new Map();
40
- stealableInfo = new Map();
41
- storagePath;
42
- config;
43
- eventLog = [];
44
- constructor(projectRoot, config) {
45
- super();
46
- this.storagePath = path.join(projectRoot, '.monomind', 'claims');
47
- this.config = { ...DEFAULT_CONFIG, ...config };
48
- }
49
- // ==========================================================================
50
- // Initialization
51
- // ==========================================================================
52
- async initialize() {
53
- // Ensure storage directory exists
54
- if (!fs.existsSync(this.storagePath)) {
55
- fs.mkdirSync(this.storagePath, { recursive: true });
56
- }
57
- // Load existing claims
58
- await this.loadClaims();
59
- }
60
- async loadClaims() {
61
- const claimsFile = path.join(this.storagePath, 'claims.json');
62
- if (fs.existsSync(claimsFile)) {
63
- try {
64
- const data = JSON.parse(fs.readFileSync(claimsFile, 'utf-8'));
65
- for (const claim of data.claims || []) {
66
- claim.claimedAt = new Date(claim.claimedAt);
67
- claim.statusChangedAt = new Date(claim.statusChangedAt);
68
- if (claim.expiresAt)
69
- claim.expiresAt = new Date(claim.expiresAt);
70
- this.claims.set(claim.issueId, claim);
71
- }
72
- }
73
- catch {
74
- // Start fresh if file is corrupted
75
- }
76
- }
77
- }
78
- // Single-flight save lock: serializes concurrent saveClaims() calls so that
79
- // two writers cannot collide on the .tmp file or interleave their renames.
80
- // Combined with the unique tmp suffix below, this defends against in-process
81
- // corruption of claims.json. Cross-process safety still requires fcntl/flock
82
- // around the read-modify-write at higher level.
83
- _saveQueue = Promise.resolve();
84
- async saveClaims() {
85
- // CRITICAL: do NOT let a single rejection (ENOSPC / EROFS / EACCES)
86
- // poison the entire chain. Previously every subsequent saveClaims would
87
- // inherit the rejection and silently skip _doSaveClaims, causing the
88
- // in-memory Map to drift from disk indefinitely — a permanent
89
- // authorization-state desync. Catch the chain link so the next link runs;
90
- // re-expose the real rejection to the caller via a separate promise.
91
- const next = this._saveQueue
92
- .catch(() => undefined)
93
- .then(() => this._doSaveClaims());
94
- this._saveQueue = next.catch(() => undefined);
95
- return next;
96
- }
97
- async _doSaveClaims() {
98
- const claimsFile = path.join(this.storagePath, 'claims.json');
99
- const data = {
100
- claims: Array.from(this.claims.values()),
101
- savedAt: new Date().toISOString(),
102
- };
103
- // Unique tmp filename so a previous in-flight write cannot be clobbered
104
- // by a concurrent fs.writeFileSync truncating the same .tmp path.
105
- const { randomBytes } = await import('crypto');
106
- const tmp = `${claimsFile}.${process.pid}.${Date.now()}.${randomBytes(4).toString('hex')}.tmp`;
107
- fs.writeFileSync(tmp, JSON.stringify(data, null, 2));
108
- fs.renameSync(tmp, claimsFile);
109
- }
110
- // ==========================================================================
111
- // Core Claiming
112
- // ==========================================================================
113
- async claim(issueId, claimant) {
114
- // Check if already claimed
115
- const existing = this.claims.get(issueId);
116
- if (existing && existing.status !== 'stealable') {
117
- return {
118
- success: false,
119
- error: `Issue ${issueId} is already claimed by ${this.formatClaimant(existing.claimant)}`,
120
- };
121
- }
122
- const now = new Date();
123
- const claim = {
124
- issueId,
125
- claimant,
126
- claimedAt: now,
127
- status: 'active',
128
- statusChangedAt: now,
129
- progress: 0,
130
- };
131
- this.claims.set(issueId, claim);
132
- await this.saveClaims();
133
- this.emitEvent({
134
- type: 'issue:claimed',
135
- timestamp: now,
136
- issueId,
137
- claimant,
138
- previousClaimant: existing?.claimant,
139
- });
140
- return { success: true, claim };
141
- }
142
- async release(issueId, claimant) {
143
- const claim = this.claims.get(issueId);
144
- if (!claim) {
145
- throw new Error(`Issue ${issueId} is not claimed`);
146
- }
147
- if (!this.isSameClaimant(claim.claimant, claimant)) {
148
- throw new Error(`Issue ${issueId} is not claimed by ${this.formatClaimant(claimant)}`);
149
- }
150
- this.claims.delete(issueId);
151
- this.stealableInfo.delete(issueId);
152
- await this.saveClaims();
153
- this.emitEvent({
154
- type: 'issue:released',
155
- timestamp: new Date(),
156
- issueId,
157
- claimant,
158
- });
159
- }
160
- // ==========================================================================
161
- // Handoffs
162
- // ==========================================================================
163
- async requestHandoff(issueId, from, to, reason) {
164
- const claim = this.claims.get(issueId);
165
- if (!claim) {
166
- throw new Error(`Issue ${issueId} is not claimed`);
167
- }
168
- if (!this.isSameClaimant(claim.claimant, from)) {
169
- throw new Error(`Issue ${issueId} is not claimed by ${this.formatClaimant(from)}`);
170
- }
171
- claim.status = 'handoff-pending';
172
- claim.statusChangedAt = new Date();
173
- claim.handoffTo = to;
174
- claim.handoffReason = reason;
175
- await this.saveClaims();
176
- this.emitEvent({
177
- type: 'issue:handoff:requested',
178
- timestamp: new Date(),
179
- issueId,
180
- claimant: from,
181
- data: { to, reason },
182
- });
183
- }
184
- async acceptHandoff(issueId, claimant) {
185
- const claim = this.claims.get(issueId);
186
- if (!claim || claim.status !== 'handoff-pending') {
187
- throw new Error(`No pending handoff for issue ${issueId}`);
188
- }
189
- if (!claim.handoffTo || !this.isSameClaimant(claim.handoffTo, claimant)) {
190
- throw new Error(`Handoff not addressed to ${this.formatClaimant(claimant)}`);
191
- }
192
- const previousClaimant = claim.claimant;
193
- claim.claimant = claimant;
194
- claim.status = 'active';
195
- claim.statusChangedAt = new Date();
196
- delete claim.handoffTo;
197
- delete claim.handoffReason;
198
- await this.saveClaims();
199
- this.emitEvent({
200
- type: 'issue:handoff:accepted',
201
- timestamp: new Date(),
202
- issueId,
203
- claimant,
204
- previousClaimant,
205
- });
206
- }
207
- async rejectHandoff(issueId, claimant, reason) {
208
- const claim = this.claims.get(issueId);
209
- if (!claim || claim.status !== 'handoff-pending') {
210
- throw new Error(`No pending handoff for issue ${issueId}`);
211
- }
212
- if (!claim.handoffTo || !this.isSameClaimant(claim.handoffTo, claimant)) {
213
- throw new Error(`Handoff not addressed to ${this.formatClaimant(claimant)}`);
214
- }
215
- claim.status = 'active';
216
- claim.statusChangedAt = new Date();
217
- delete claim.handoffTo;
218
- delete claim.handoffReason;
219
- await this.saveClaims();
220
- this.emitEvent({
221
- type: 'issue:handoff:rejected',
222
- timestamp: new Date(),
223
- issueId,
224
- claimant,
225
- data: { reason },
226
- });
227
- }
228
- // ==========================================================================
229
- // Status Updates
230
- // ==========================================================================
231
- async updateStatus(issueId, status, note) {
232
- const claim = this.claims.get(issueId);
233
- if (!claim) {
234
- throw new Error(`Issue ${issueId} is not claimed`);
235
- }
236
- const previousStatus = claim.status;
237
- claim.status = status;
238
- claim.statusChangedAt = new Date();
239
- if (status === 'blocked' && note) {
240
- claim.blockReason = note;
241
- }
242
- if (status === 'completed') {
243
- claim.progress = 100;
244
- // Evict completed claims after saving to prevent unbounded Map growth
245
- await this.saveClaims();
246
- this.claims.delete(issueId);
247
- return;
248
- }
249
- await this.saveClaims();
250
- this.emitEvent({
251
- type: 'issue:status:changed',
252
- timestamp: new Date(),
253
- issueId,
254
- data: { previousStatus, newStatus: status, note },
255
- });
256
- }
257
- async updateProgress(issueId, progress) {
258
- const claim = this.claims.get(issueId);
259
- if (!claim) {
260
- throw new Error(`Issue ${issueId} is not claimed`);
261
- }
262
- claim.progress = Math.min(100, Math.max(0, progress));
263
- await this.saveClaims();
264
- }
265
- async requestReview(issueId, reviewers) {
266
- const claim = this.claims.get(issueId);
267
- if (!claim) {
268
- throw new Error(`Issue ${issueId} is not claimed`);
269
- }
270
- claim.status = 'review-requested';
271
- claim.statusChangedAt = new Date();
272
- await this.saveClaims();
273
- this.emitEvent({
274
- type: 'issue:review:requested',
275
- timestamp: new Date(),
276
- issueId,
277
- claimant: claim.claimant,
278
- data: { reviewers },
279
- });
280
- }
281
- // ==========================================================================
282
- // Work Stealing
283
- // ==========================================================================
284
- async markStealable(issueId, info, claimant) {
285
- const claim = this.claims.get(issueId);
286
- if (!claim) {
287
- throw new Error(`Issue ${issueId} is not claimed`);
288
- }
289
- if (claimant !== undefined && !this.isSameClaimant(claim.claimant, claimant)) {
290
- throw new Error(`Issue ${issueId} is not owned by ${this.formatClaimant(claimant)}`);
291
- }
292
- claim.status = 'stealable';
293
- claim.statusChangedAt = new Date();
294
- claim.context = info.context;
295
- claim.progress = info.progress;
296
- this.stealableInfo.set(issueId, info);
297
- await this.saveClaims();
298
- this.emitEvent({
299
- type: 'issue:stealable',
300
- timestamp: new Date(),
301
- issueId,
302
- claimant: claim.claimant,
303
- data: { info },
304
- });
305
- }
306
- async steal(issueId, stealer) {
307
- const claim = this.claims.get(issueId);
308
- if (!claim) {
309
- return { success: false, error: `Issue ${issueId} is not claimed` };
310
- }
311
- if (claim.status !== 'stealable') {
312
- return { success: false, error: `Issue ${issueId} is not stealable` };
313
- }
314
- const info = this.stealableInfo.get(issueId);
315
- const previousOwner = claim.claimant;
316
- // Check if steal is allowed
317
- if (this.config.requireSameType && stealer.type === 'agent' && previousOwner.type === 'agent') {
318
- if (stealer.agentType !== previousOwner.agentType) {
319
- const allowed = this.config.allowCrossTypeSteal.some(pair => pair.includes(stealer.agentType) && pair.includes(previousOwner.agentType));
320
- if (!allowed) {
321
- return { success: false, error: `Cross-type steal not allowed` };
322
- }
323
- }
324
- }
325
- // Execute steal
326
- claim.claimant = stealer;
327
- claim.status = 'active';
328
- claim.statusChangedAt = new Date();
329
- claim.claimedAt = new Date();
330
- this.stealableInfo.delete(issueId);
331
- await this.saveClaims();
332
- this.emitEvent({
333
- type: 'issue:stolen',
334
- timestamp: new Date(),
335
- issueId,
336
- claimant: stealer,
337
- previousClaimant: previousOwner,
338
- data: { context: info },
339
- });
340
- return { success: true, claim, previousOwner, context: info };
341
- }
342
- async getStealable(agentType) {
343
- const stealable = [];
344
- for (const claim of this.claims.values()) {
345
- if (claim.status !== 'stealable')
346
- continue;
347
- const info = this.stealableInfo.get(claim.issueId);
348
- if (agentType && info?.preferredTypes?.length) {
349
- if (!info.preferredTypes.includes(agentType))
350
- continue;
351
- }
352
- stealable.push(claim);
353
- }
354
- return stealable;
355
- }
356
- async contestSteal(issueId, originalClaimant, reason) {
357
- const claim = this.claims.get(issueId);
358
- if (!claim) {
359
- throw new Error(`Issue ${issueId} is not claimed`);
360
- }
361
- this.emitEvent({
362
- type: 'issue:steal:contested',
363
- timestamp: new Date(),
364
- issueId,
365
- claimant: originalClaimant,
366
- data: { reason, currentOwner: claim.claimant },
367
- });
368
- // Contest resolution would typically be handled by a coordinator or human
369
- }
370
- // ==========================================================================
371
- // Load Balancing
372
- // ==========================================================================
373
- async getAgentLoad(agentId) {
374
- const claims = [];
375
- let blockedCount = 0;
376
- for (const claim of this.claims.values()) {
377
- if (claim.claimant.type === 'agent' && claim.claimant.agentId === agentId) {
378
- claims.push(claim);
379
- if (claim.status === 'blocked')
380
- blockedCount++;
381
- }
382
- }
383
- const agentType = claims[0]?.claimant.type === 'agent' ? claims[0].claimant.agentType : 'unknown';
384
- return {
385
- agentId,
386
- agentType,
387
- claimCount: claims.length,
388
- maxClaims: this.config.overloadThreshold,
389
- utilization: claims.length / this.config.overloadThreshold,
390
- claims,
391
- avgCompletionTime: 0, // Would need historical data
392
- currentBlockedCount: blockedCount,
393
- };
394
- }
395
- async rebalance(swarmId) {
396
- const result = { moved: [], suggested: [] };
397
- // Get all agent loads
398
- const agentLoads = new Map();
399
- const agentTypes = new Set();
400
- for (const claim of this.claims.values()) {
401
- if (claim.claimant.type !== 'agent')
402
- continue;
403
- const agentId = claim.claimant.agentId;
404
- if (!agentLoads.has(agentId)) {
405
- const load = await this.getAgentLoad(agentId);
406
- agentLoads.set(agentId, load);
407
- agentTypes.add(load.agentType);
408
- }
409
- }
410
- // For each agent type, calculate average load
411
- for (const agentType of agentTypes) {
412
- const typeLoads = Array.from(agentLoads.values()).filter(l => l.agentType === agentType);
413
- const avgLoad = typeLoads.reduce((sum, l) => sum + l.utilization, 0) / typeLoads.length;
414
- const overloaded = typeLoads.filter(l => l.utilization > avgLoad * 1.5);
415
- const underloaded = typeLoads.filter(l => l.utilization < avgLoad * 0.5);
416
- // Generate suggestions
417
- for (const over of overloaded) {
418
- const lowProgressClaims = over.claims
419
- .filter(c => c.progress < 25)
420
- .sort((a, b) => a.progress - b.progress);
421
- for (const claim of lowProgressClaims) {
422
- const target = underloaded.find(u => u.claimCount < u.maxClaims);
423
- if (target) {
424
- result.suggested.push({
425
- issueId: claim.issueId,
426
- currentOwner: claim.claimant,
427
- suggestedOwner: {
428
- type: 'agent',
429
- agentId: target.agentId,
430
- agentType: target.agentType,
431
- },
432
- reason: 'Load balancing: redistributing work across swarm',
433
- });
434
- }
435
- }
436
- }
437
- }
438
- return result;
439
- }
440
- // ==========================================================================
441
- // Queries
442
- // ==========================================================================
443
- async getClaimedBy(claimant) {
444
- return Array.from(this.claims.values()).filter(c => this.isSameClaimant(c.claimant, claimant));
445
- }
446
- async getAvailableIssues(_filters) {
447
- // This would integrate with GitHub API
448
- // For now, return issues that are not claimed
449
- return [];
450
- }
451
- async getIssueStatus(issueId) {
452
- return this.claims.get(issueId) || null;
453
- }
454
- async getAllClaims() {
455
- return Array.from(this.claims.values());
456
- }
457
- async getByStatus(status) {
458
- return Array.from(this.claims.values()).filter(c => c.status === status);
459
- }
460
- // ==========================================================================
461
- // Auto-Management
462
- // ==========================================================================
463
- async expireStale(maxAgeMinutes) {
464
- const threshold = maxAgeMinutes ?? this.config.staleThresholdMinutes;
465
- const now = Date.now();
466
- const expired = [];
467
- for (const claim of this.claims.values()) {
468
- if (claim.status === 'stealable' || claim.status === 'completed')
469
- continue;
470
- const age = (now - claim.statusChangedAt.getTime()) / 60000;
471
- if (age > threshold) {
472
- // Mark as stealable
473
- await this.markStealable(claim.issueId, {
474
- reason: 'stale',
475
- stealableAt: new Date(),
476
- progress: claim.progress,
477
- context: `Stale: No activity for ${Math.round(age)} minutes`,
478
- });
479
- expired.push(claim);
480
- }
481
- }
482
- return expired;
483
- }
484
- // ==========================================================================
485
- // Helpers
486
- // ==========================================================================
487
- formatClaimant(claimant) {
488
- return claimant.type === 'human'
489
- ? `human:${claimant.name}`
490
- : `agent:${claimant.agentType}:${claimant.agentId}`;
491
- }
492
- isSameClaimant(a, b) {
493
- if (a.type !== b.type)
494
- return false;
495
- if (a.type === 'human' && b.type === 'human') {
496
- return a.userId === b.userId;
497
- }
498
- if (a.type === 'agent' && b.type === 'agent') {
499
- return a.agentId === b.agentId;
500
- }
501
- return false;
502
- }
503
- emitEvent(event) {
504
- this.eventLog.push(event);
505
- if (this.eventLog.length > 1000) {
506
- this.eventLog = this.eventLog.slice(-500);
507
- }
508
- this.emit(event.type, event);
509
- }
510
- getEventLog(limit = 100) {
511
- return this.eventLog.slice(-limit);
512
- }
513
- }
514
- // ============================================================================
515
- // GitHub Sync Implementation
516
- // ============================================================================
517
- const DEFAULT_GITHUB_CONFIG = {
518
- enabled: false,
519
- syncLabels: true,
520
- claimLabel: 'claimed',
521
- autoAssign: true,
522
- commentOnClaim: true,
523
- commentOnRelease: true,
524
- };
525
- // ============================================================================
526
- // Input Validation (Security)
527
- // ============================================================================
528
- /**
529
- * Validate GitHub repository format (owner/repo)
530
- * Prevents command injection via malicious repo names
531
- */
532
- function isValidRepo(repo) {
533
- // owner/repo format: alphanumeric, hyphens, underscores, dots
534
- return /^[\w.-]+\/[\w.-]+$/.test(repo) && repo.length <= 100;
535
- }
536
- /**
537
- * Validate issue number (positive integer)
538
- */
539
- function isValidIssueNumber(num) {
540
- return Number.isInteger(num) && num > 0 && num < 1000000000;
541
- }
542
- /**
543
- * Validate claimant name (GitHub username format)
544
- * Prevents command injection via malicious usernames
545
- */
546
- function isValidClaimantName(name) {
547
- // GitHub usernames: alphanumeric, hyphens, max 39 chars
548
- return /^[\w-]+$/.test(name) && name.length >= 1 && name.length <= 39;
549
- }
550
- /**
551
- * Validate label name
552
- * Prevents command injection via malicious label names
553
- */
554
- function isValidLabel(label) {
555
- // Labels: alphanumeric, hyphens, underscores, spaces, max 50 chars
556
- return /^[\w\s-]+$/.test(label) && label.length >= 1 && label.length <= 50;
557
- }
558
- /**
559
- * Sanitize error messages to prevent information disclosure
560
- */
561
- function sanitizeError(error) {
562
- const msg = error.message || 'Unknown error';
563
- // Remove paths and sensitive details
564
- return msg.replace(/\/[\w./-]+/g, '[path]').substring(0, 200);
565
- }
566
- export class GitHubSync {
567
- config;
568
- claimService;
569
- constructor(claimService, config) {
570
- this.claimService = claimService;
571
- this.config = { ...DEFAULT_GITHUB_CONFIG, ...config };
572
- }
573
- /**
574
- * Check if GitHub CLI is available
575
- */
576
- isGhAvailable() {
577
- try {
578
- execFileSync('gh', ['--version'], { stdio: 'ignore' });
579
- return true;
580
- }
581
- catch {
582
- return false;
583
- }
584
- }
585
- /**
586
- * Get the current repository from git remote
587
- */
588
- getRepo() {
589
- if (this.config.repo) {
590
- return isValidRepo(this.config.repo) ? this.config.repo : null;
591
- }
592
- try {
593
- const remote = execFileSync('git', ['remote', 'get-url', 'origin'], { encoding: 'utf-8' }).trim();
594
- const match = remote.match(/github\.com[/:]([\w.-]+\/[\w.-]+)/);
595
- const repo = match ? match[1].replace('.git', '') : null;
596
- return repo && isValidRepo(repo) ? repo : null;
597
- }
598
- catch {
599
- return null;
600
- }
601
- }
602
- /**
603
- * Sync issues from GitHub
604
- */
605
- async syncIssues(state = 'open') {
606
- const errors = [];
607
- const issues = [];
608
- if (!this.isGhAvailable()) {
609
- return { success: false, synced: 0, errors: ['GitHub CLI (gh) not installed'] };
610
- }
611
- const repo = this.getRepo();
612
- if (!repo) {
613
- return { success: false, synced: 0, errors: ['Could not determine GitHub repository'] };
614
- }
615
- // Validate state parameter (whitelist)
616
- const validStates = ['open', 'closed', 'all'];
617
- if (!validStates.includes(state)) {
618
- return { success: false, synced: 0, errors: ['Invalid state parameter'] };
619
- }
620
- try {
621
- const issuesJson = execFileSync('gh', [
622
- 'issue', 'list',
623
- '--repo', repo,
624
- '--state', state,
625
- '--json', 'number,title,body,state,labels,assignees,url,createdAt,updatedAt',
626
- '--limit', '100'
627
- ], { encoding: 'utf-8' });
628
- const rawIssues = JSON.parse(issuesJson);
629
- for (const raw of rawIssues) {
630
- issues.push({
631
- number: raw.number,
632
- title: raw.title,
633
- body: raw.body || '',
634
- state: raw.state === 'OPEN' ? 'open' : 'closed',
635
- labels: raw.labels?.map((l) => l.name) || [],
636
- assignees: raw.assignees?.map((a) => a.login) || [],
637
- url: raw.url,
638
- createdAt: new Date(raw.createdAt),
639
- updatedAt: new Date(raw.updatedAt),
640
- });
641
- }
642
- return { success: true, synced: issues.length, errors, issues };
643
- }
644
- catch (error) {
645
- errors.push(`Failed to fetch issues: ${sanitizeError(error)}`);
646
- return { success: false, synced: 0, errors };
647
- }
648
- }
649
- /**
650
- * Sync a local claim to GitHub (add label/assignee/comment)
651
- */
652
- async claimOnGitHub(issueNumber, claimant) {
653
- const errors = [];
654
- if (!this.config.enabled) {
655
- return { success: true, synced: 0, errors: ['GitHub sync not enabled'] };
656
- }
657
- if (!this.isGhAvailable()) {
658
- return { success: false, synced: 0, errors: ['GitHub CLI (gh) not installed'] };
659
- }
660
- // Validate issue number
661
- if (!isValidIssueNumber(issueNumber)) {
662
- return { success: false, synced: 0, errors: ['Invalid issue number'] };
663
- }
664
- const repo = this.getRepo();
665
- if (!repo) {
666
- return { success: false, synced: 0, errors: ['Could not determine repository'] };
667
- }
668
- // Validate claim label
669
- if (!isValidLabel(this.config.claimLabel)) {
670
- return { success: false, synced: 0, errors: ['Invalid claim label configuration'] };
671
- }
672
- try {
673
- // Add claim label
674
- if (this.config.syncLabels) {
675
- try {
676
- execFileSync('gh', [
677
- 'issue', 'edit', String(issueNumber),
678
- '--repo', repo,
679
- '--add-label', this.config.claimLabel
680
- ], { stdio: 'ignore' });
681
- }
682
- catch {
683
- errors.push('Failed to add claim label (label may not exist)');
684
- }
685
- }
686
- // Auto-assign if human claimant
687
- if (this.config.autoAssign && claimant.type === 'human') {
688
- if (!isValidClaimantName(claimant.name)) {
689
- errors.push('Invalid claimant name format');
690
- }
691
- else {
692
- try {
693
- execFileSync('gh', [
694
- 'issue', 'edit', String(issueNumber),
695
- '--repo', repo,
696
- '--add-assignee', claimant.name
697
- ], { stdio: 'ignore' });
698
- }
699
- catch {
700
- errors.push('Failed to assign issue');
701
- }
702
- }
703
- }
704
- // Add comment
705
- if (this.config.commentOnClaim) {
706
- const claimantStr = claimant.type === 'human'
707
- ? `@${claimant.name.replace(/[^a-zA-Z0-9_-]/g, '')}`
708
- : `Agent: ${(claimant.agentType || 'unknown').replace(/[^a-zA-Z0-9_-]/g, '')}`;
709
- const comment = `🤖 **Issue claimed** by ${claimantStr}\n\n_Coordinated by Monomind_`;
710
- try {
711
- execFileSync('gh', [
712
- 'issue', 'comment', String(issueNumber),
713
- '--repo', repo,
714
- '--body', comment
715
- ], { stdio: 'ignore' });
716
- }
717
- catch {
718
- errors.push('Failed to add comment');
719
- }
720
- }
721
- return { success: errors.length === 0, synced: 1, errors };
722
- }
723
- catch (error) {
724
- errors.push(`GitHub sync failed: ${sanitizeError(error)}`);
725
- return { success: false, synced: 0, errors };
726
- }
727
- }
728
- /**
729
- * Release claim on GitHub (remove label/assignee/comment)
730
- */
731
- async releaseOnGitHub(issueNumber, claimant) {
732
- const errors = [];
733
- if (!this.config.enabled) {
734
- return { success: true, synced: 0, errors: ['GitHub sync not enabled'] };
735
- }
736
- if (!this.isGhAvailable()) {
737
- return { success: false, synced: 0, errors: ['GitHub CLI (gh) not installed'] };
738
- }
739
- // Validate issue number
740
- if (!isValidIssueNumber(issueNumber)) {
741
- return { success: false, synced: 0, errors: ['Invalid issue number'] };
742
- }
743
- const repo = this.getRepo();
744
- if (!repo) {
745
- return { success: false, synced: 0, errors: ['Could not determine repository'] };
746
- }
747
- // Validate claim label
748
- if (!isValidLabel(this.config.claimLabel)) {
749
- return { success: false, synced: 0, errors: ['Invalid claim label configuration'] };
750
- }
751
- try {
752
- // Remove claim label
753
- if (this.config.syncLabels) {
754
- try {
755
- execFileSync('gh', [
756
- 'issue', 'edit', String(issueNumber),
757
- '--repo', repo,
758
- '--remove-label', this.config.claimLabel
759
- ], { stdio: 'ignore' });
760
- }
761
- catch {
762
- // Label might not exist
763
- }
764
- }
765
- // Remove assignee if human claimant
766
- if (this.config.autoAssign && claimant.type === 'human') {
767
- if (isValidClaimantName(claimant.name)) {
768
- try {
769
- execFileSync('gh', [
770
- 'issue', 'edit', String(issueNumber),
771
- '--repo', repo,
772
- '--remove-assignee', claimant.name
773
- ], { stdio: 'ignore' });
774
- }
775
- catch {
776
- errors.push('Failed to remove assignee');
777
- }
778
- }
779
- }
780
- // Add release comment
781
- if (this.config.commentOnRelease) {
782
- const claimantStr = claimant.type === 'human'
783
- ? `@${claimant.name.replace(/[^a-zA-Z0-9_-]/g, '')}`
784
- : `Agent: ${(claimant.agentType || 'unknown').replace(/[^a-zA-Z0-9_-]/g, '')}`;
785
- const comment = `🔓 **Issue released** by ${claimantStr}\n\n_This issue is now available for others to claim._`;
786
- try {
787
- execFileSync('gh', [
788
- 'issue', 'comment', String(issueNumber),
789
- '--repo', repo,
790
- '--body', comment
791
- ], { stdio: 'ignore' });
792
- }
793
- catch {
794
- errors.push('Failed to add release comment');
795
- }
796
- }
797
- return { success: errors.length === 0, synced: 1, errors };
798
- }
799
- catch (error) {
800
- errors.push(`GitHub release sync failed: ${sanitizeError(error)}`);
801
- return { success: false, synced: 0, errors };
802
- }
803
- }
804
- /**
805
- * Bulk sync all local claims to GitHub
806
- */
807
- async syncAllClaimsToGitHub() {
808
- const errors = [];
809
- let synced = 0;
810
- const claims = await this.claimService.getAllClaims();
811
- for (const claim of claims) {
812
- // Extract issue number from issueId (assumes format like "123" or "issue-123")
813
- const issueMatch = claim.issueId.match(/(\d+)/);
814
- if (issueMatch) {
815
- const result = await this.claimOnGitHub(parseInt(issueMatch[1], 10), claim.claimant);
816
- if (result.success)
817
- synced++;
818
- else
819
- errors.push(...result.errors);
820
- }
821
- }
822
- return { success: errors.length === 0, synced, errors };
823
- }
824
- /**
825
- * Get GitHub issues that are claimed locally
826
- */
827
- async getClaimedGitHubIssues() {
828
- const syncResult = await this.syncIssues('open');
829
- if (!syncResult.success || !syncResult.issues)
830
- return [];
831
- const localClaims = await this.claimService.getAllClaims();
832
- const claimedIds = new Set(localClaims.map(c => {
833
- const match = c.issueId.match(/(\d+)/);
834
- return match ? parseInt(match[1], 10) : null;
835
- }).filter(Boolean));
836
- return syncResult.issues.filter(issue => claimedIds.has(issue.number));
837
- }
838
- }
839
- // ============================================================================
840
- // Factory
841
- // ============================================================================
842
- export function createClaimService(projectRoot, config) {
843
- return new ClaimService(projectRoot, config);
844
- }
845
- export function createGitHubSync(claimService, config) {
846
- return new GitHubSync(claimService, config);
847
- }
848
- export default ClaimService;
849
- //# sourceMappingURL=claim-service.js.map