@cleocode/cleo 2026.3.65 → 2026.3.66

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 (717) hide show
  1. package/dist/cli/index.js +129 -128
  2. package/dist/cli/index.js.map +4 -4
  3. package/dist/mcp/index.js +124 -127
  4. package/dist/mcp/index.js.map +4 -4
  5. package/package.json +3 -3
  6. package/dist/cli/commander-shim.d.ts +0 -112
  7. package/dist/cli/commander-shim.d.ts.map +0 -1
  8. package/dist/cli/commander-shim.js +0 -233
  9. package/dist/cli/commander-shim.js.map +0 -1
  10. package/dist/cli/commands/add.d.ts +0 -12
  11. package/dist/cli/commands/add.d.ts.map +0 -1
  12. package/dist/cli/commands/add.js +0 -94
  13. package/dist/cli/commands/add.js.map +0 -1
  14. package/dist/cli/commands/adr.d.ts +0 -27
  15. package/dist/cli/commands/adr.d.ts.map +0 -1
  16. package/dist/cli/commands/adr.js +0 -79
  17. package/dist/cli/commands/adr.js.map +0 -1
  18. package/dist/cli/commands/agents.d.ts +0 -31
  19. package/dist/cli/commands/agents.d.ts.map +0 -1
  20. package/dist/cli/commands/agents.js +0 -104
  21. package/dist/cli/commands/agents.js.map +0 -1
  22. package/dist/cli/commands/analyze.d.ts +0 -12
  23. package/dist/cli/commands/analyze.d.ts.map +0 -1
  24. package/dist/cli/commands/analyze.js +0 -20
  25. package/dist/cli/commands/analyze.js.map +0 -1
  26. package/dist/cli/commands/archive-stats.d.ts +0 -18
  27. package/dist/cli/commands/archive-stats.d.ts.map +0 -1
  28. package/dist/cli/commands/archive-stats.js +0 -49
  29. package/dist/cli/commands/archive-stats.js.map +0 -1
  30. package/dist/cli/commands/archive.d.ts +0 -12
  31. package/dist/cli/commands/archive.d.ts.map +0 -1
  32. package/dist/cli/commands/archive.js +0 -32
  33. package/dist/cli/commands/archive.js.map +0 -1
  34. package/dist/cli/commands/backfill.d.ts +0 -32
  35. package/dist/cli/commands/backfill.d.ts.map +0 -1
  36. package/dist/cli/commands/backfill.js +0 -101
  37. package/dist/cli/commands/backfill.js.map +0 -1
  38. package/dist/cli/commands/backup.d.ts +0 -8
  39. package/dist/cli/commands/backup.d.ts.map +0 -1
  40. package/dist/cli/commands/backup.js +0 -35
  41. package/dist/cli/commands/backup.js.map +0 -1
  42. package/dist/cli/commands/blockers.d.ts +0 -7
  43. package/dist/cli/commands/blockers.d.ts.map +0 -1
  44. package/dist/cli/commands/blockers.js +0 -16
  45. package/dist/cli/commands/blockers.js.map +0 -1
  46. package/dist/cli/commands/briefing.d.ts +0 -22
  47. package/dist/cli/commands/briefing.d.ts.map +0 -1
  48. package/dist/cli/commands/briefing.js +0 -45
  49. package/dist/cli/commands/briefing.js.map +0 -1
  50. package/dist/cli/commands/bug.d.ts +0 -12
  51. package/dist/cli/commands/bug.d.ts.map +0 -1
  52. package/dist/cli/commands/bug.js +0 -81
  53. package/dist/cli/commands/bug.js.map +0 -1
  54. package/dist/cli/commands/checkpoint.d.ts +0 -15
  55. package/dist/cli/commands/checkpoint.d.ts.map +0 -1
  56. package/dist/cli/commands/checkpoint.js +0 -91
  57. package/dist/cli/commands/checkpoint.js.map +0 -1
  58. package/dist/cli/commands/commands.d.ts +0 -13
  59. package/dist/cli/commands/commands.d.ts.map +0 -1
  60. package/dist/cli/commands/commands.js +0 -30
  61. package/dist/cli/commands/commands.js.map +0 -1
  62. package/dist/cli/commands/complete.d.ts +0 -12
  63. package/dist/cli/commands/complete.d.ts.map +0 -1
  64. package/dist/cli/commands/complete.js +0 -43
  65. package/dist/cli/commands/complete.js.map +0 -1
  66. package/dist/cli/commands/compliance.d.ts +0 -8
  67. package/dist/cli/commands/compliance.d.ts.map +0 -1
  68. package/dist/cli/commands/compliance.js +0 -85
  69. package/dist/cli/commands/compliance.js.map +0 -1
  70. package/dist/cli/commands/config.d.ts +0 -10
  71. package/dist/cli/commands/config.d.ts.map +0 -1
  72. package/dist/cli/commands/config.js +0 -69
  73. package/dist/cli/commands/config.js.map +0 -1
  74. package/dist/cli/commands/consensus.d.ts +0 -13
  75. package/dist/cli/commands/consensus.d.ts.map +0 -1
  76. package/dist/cli/commands/consensus.js +0 -45
  77. package/dist/cli/commands/consensus.js.map +0 -1
  78. package/dist/cli/commands/context.d.ts +0 -8
  79. package/dist/cli/commands/context.d.ts.map +0 -1
  80. package/dist/cli/commands/context.js +0 -40
  81. package/dist/cli/commands/context.js.map +0 -1
  82. package/dist/cli/commands/contribution.d.ts +0 -13
  83. package/dist/cli/commands/contribution.d.ts.map +0 -1
  84. package/dist/cli/commands/contribution.js +0 -41
  85. package/dist/cli/commands/contribution.js.map +0 -1
  86. package/dist/cli/commands/current.d.ts +0 -13
  87. package/dist/cli/commands/current.d.ts.map +0 -1
  88. package/dist/cli/commands/current.js +0 -20
  89. package/dist/cli/commands/current.js.map +0 -1
  90. package/dist/cli/commands/dash.d.ts +0 -12
  91. package/dist/cli/commands/dash.d.ts.map +0 -1
  92. package/dist/cli/commands/dash.js +0 -24
  93. package/dist/cli/commands/dash.js.map +0 -1
  94. package/dist/cli/commands/decomposition.d.ts +0 -13
  95. package/dist/cli/commands/decomposition.d.ts.map +0 -1
  96. package/dist/cli/commands/decomposition.js +0 -45
  97. package/dist/cli/commands/decomposition.js.map +0 -1
  98. package/dist/cli/commands/delete.d.ts +0 -12
  99. package/dist/cli/commands/delete.d.ts.map +0 -1
  100. package/dist/cli/commands/delete.js +0 -37
  101. package/dist/cli/commands/delete.js.map +0 -1
  102. package/dist/cli/commands/deps.d.ts +0 -24
  103. package/dist/cli/commands/deps.d.ts.map +0 -1
  104. package/dist/cli/commands/deps.js +0 -98
  105. package/dist/cli/commands/deps.js.map +0 -1
  106. package/dist/cli/commands/detect-drift.d.ts +0 -15
  107. package/dist/cli/commands/detect-drift.d.ts.map +0 -1
  108. package/dist/cli/commands/detect-drift.js +0 -387
  109. package/dist/cli/commands/detect-drift.js.map +0 -1
  110. package/dist/cli/commands/detect.d.ts +0 -10
  111. package/dist/cli/commands/detect.d.ts.map +0 -1
  112. package/dist/cli/commands/detect.js +0 -24
  113. package/dist/cli/commands/detect.js.map +0 -1
  114. package/dist/cli/commands/docs.d.ts +0 -13
  115. package/dist/cli/commands/docs.d.ts.map +0 -1
  116. package/dist/cli/commands/docs.js +0 -169
  117. package/dist/cli/commands/docs.js.map +0 -1
  118. package/dist/cli/commands/doctor.d.ts +0 -11
  119. package/dist/cli/commands/doctor.d.ts.map +0 -1
  120. package/dist/cli/commands/doctor.js +0 -54
  121. package/dist/cli/commands/doctor.js.map +0 -1
  122. package/dist/cli/commands/dynamic.d.ts +0 -24
  123. package/dist/cli/commands/dynamic.d.ts.map +0 -1
  124. package/dist/cli/commands/dynamic.js +0 -27
  125. package/dist/cli/commands/dynamic.js.map +0 -1
  126. package/dist/cli/commands/env.d.ts +0 -12
  127. package/dist/cli/commands/env.d.ts.map +0 -1
  128. package/dist/cli/commands/env.js +0 -44
  129. package/dist/cli/commands/env.js.map +0 -1
  130. package/dist/cli/commands/exists.d.ts +0 -22
  131. package/dist/cli/commands/exists.d.ts.map +0 -1
  132. package/dist/cli/commands/exists.js +0 -51
  133. package/dist/cli/commands/exists.js.map +0 -1
  134. package/dist/cli/commands/export-tasks.d.ts +0 -10
  135. package/dist/cli/commands/export-tasks.d.ts.map +0 -1
  136. package/dist/cli/commands/export-tasks.js +0 -47
  137. package/dist/cli/commands/export-tasks.js.map +0 -1
  138. package/dist/cli/commands/export.d.ts +0 -9
  139. package/dist/cli/commands/export.d.ts.map +0 -1
  140. package/dist/cli/commands/export.js +0 -46
  141. package/dist/cli/commands/export.js.map +0 -1
  142. package/dist/cli/commands/find.d.ts +0 -14
  143. package/dist/cli/commands/find.d.ts.map +0 -1
  144. package/dist/cli/commands/find.js +0 -70
  145. package/dist/cli/commands/find.js.map +0 -1
  146. package/dist/cli/commands/generate-changelog.d.ts +0 -14
  147. package/dist/cli/commands/generate-changelog.d.ts.map +0 -1
  148. package/dist/cli/commands/generate-changelog.js +0 -252
  149. package/dist/cli/commands/generate-changelog.js.map +0 -1
  150. package/dist/cli/commands/grade.d.ts +0 -13
  151. package/dist/cli/commands/grade.d.ts.map +0 -1
  152. package/dist/cli/commands/grade.js +0 -26
  153. package/dist/cli/commands/grade.js.map +0 -1
  154. package/dist/cli/commands/history.d.ts +0 -9
  155. package/dist/cli/commands/history.d.ts.map +0 -1
  156. package/dist/cli/commands/history.js +0 -30
  157. package/dist/cli/commands/history.js.map +0 -1
  158. package/dist/cli/commands/implementation.d.ts +0 -13
  159. package/dist/cli/commands/implementation.d.ts.map +0 -1
  160. package/dist/cli/commands/implementation.js +0 -41
  161. package/dist/cli/commands/implementation.js.map +0 -1
  162. package/dist/cli/commands/import-tasks.d.ts +0 -10
  163. package/dist/cli/commands/import-tasks.d.ts.map +0 -1
  164. package/dist/cli/commands/import-tasks.js +0 -38
  165. package/dist/cli/commands/import-tasks.js.map +0 -1
  166. package/dist/cli/commands/import.d.ts +0 -9
  167. package/dist/cli/commands/import.d.ts.map +0 -1
  168. package/dist/cli/commands/import.js +0 -28
  169. package/dist/cli/commands/import.js.map +0 -1
  170. package/dist/cli/commands/init.d.ts +0 -34
  171. package/dist/cli/commands/init.d.ts.map +0 -1
  172. package/dist/cli/commands/init.js +0 -89
  173. package/dist/cli/commands/init.js.map +0 -1
  174. package/dist/cli/commands/inject.d.ts +0 -8
  175. package/dist/cli/commands/inject.d.ts.map +0 -1
  176. package/dist/cli/commands/inject.js +0 -28
  177. package/dist/cli/commands/inject.js.map +0 -1
  178. package/dist/cli/commands/install-global.d.ts +0 -19
  179. package/dist/cli/commands/install-global.d.ts.map +0 -1
  180. package/dist/cli/commands/install-global.js +0 -50
  181. package/dist/cli/commands/install-global.js.map +0 -1
  182. package/dist/cli/commands/issue.d.ts +0 -17
  183. package/dist/cli/commands/issue.d.ts.map +0 -1
  184. package/dist/cli/commands/issue.js +0 -107
  185. package/dist/cli/commands/issue.js.map +0 -1
  186. package/dist/cli/commands/labels.d.ts +0 -13
  187. package/dist/cli/commands/labels.d.ts.map +0 -1
  188. package/dist/cli/commands/labels.js +0 -44
  189. package/dist/cli/commands/labels.js.map +0 -1
  190. package/dist/cli/commands/lifecycle.d.ts +0 -8
  191. package/dist/cli/commands/lifecycle.d.ts.map +0 -1
  192. package/dist/cli/commands/lifecycle.js +0 -72
  193. package/dist/cli/commands/lifecycle.js.map +0 -1
  194. package/dist/cli/commands/list.d.ts +0 -14
  195. package/dist/cli/commands/list.d.ts.map +0 -1
  196. package/dist/cli/commands/list.js +0 -71
  197. package/dist/cli/commands/list.js.map +0 -1
  198. package/dist/cli/commands/log.d.ts +0 -12
  199. package/dist/cli/commands/log.d.ts.map +0 -1
  200. package/dist/cli/commands/log.js +0 -30
  201. package/dist/cli/commands/log.js.map +0 -1
  202. package/dist/cli/commands/map.d.ts +0 -10
  203. package/dist/cli/commands/map.d.ts.map +0 -1
  204. package/dist/cli/commands/map.js +0 -23
  205. package/dist/cli/commands/map.js.map +0 -1
  206. package/dist/cli/commands/mcp-install.d.ts +0 -17
  207. package/dist/cli/commands/mcp-install.d.ts.map +0 -1
  208. package/dist/cli/commands/mcp-install.js +0 -128
  209. package/dist/cli/commands/mcp-install.js.map +0 -1
  210. package/dist/cli/commands/memory-brain.d.ts +0 -14
  211. package/dist/cli/commands/memory-brain.d.ts.map +0 -1
  212. package/dist/cli/commands/memory-brain.js +0 -151
  213. package/dist/cli/commands/memory-brain.js.map +0 -1
  214. package/dist/cli/commands/migrate-claude-mem.d.ts +0 -18
  215. package/dist/cli/commands/migrate-claude-mem.d.ts.map +0 -1
  216. package/dist/cli/commands/migrate-claude-mem.js +0 -60
  217. package/dist/cli/commands/migrate-claude-mem.js.map +0 -1
  218. package/dist/cli/commands/next.d.ts +0 -9
  219. package/dist/cli/commands/next.d.ts.map +0 -1
  220. package/dist/cli/commands/next.js +0 -20
  221. package/dist/cli/commands/next.js.map +0 -1
  222. package/dist/cli/commands/nexus.d.ts +0 -16
  223. package/dist/cli/commands/nexus.d.ts.map +0 -1
  224. package/dist/cli/commands/nexus.js +0 -155
  225. package/dist/cli/commands/nexus.js.map +0 -1
  226. package/dist/cli/commands/observe.d.ts +0 -9
  227. package/dist/cli/commands/observe.d.ts.map +0 -1
  228. package/dist/cli/commands/observe.js +0 -39
  229. package/dist/cli/commands/observe.js.map +0 -1
  230. package/dist/cli/commands/ops.d.ts +0 -10
  231. package/dist/cli/commands/ops.d.ts.map +0 -1
  232. package/dist/cli/commands/ops.js +0 -19
  233. package/dist/cli/commands/ops.js.map +0 -1
  234. package/dist/cli/commands/orchestrate.d.ts +0 -8
  235. package/dist/cli/commands/orchestrate.d.ts.map +0 -1
  236. package/dist/cli/commands/orchestrate.js +0 -58
  237. package/dist/cli/commands/orchestrate.js.map +0 -1
  238. package/dist/cli/commands/otel.d.ts +0 -12
  239. package/dist/cli/commands/otel.d.ts.map +0 -1
  240. package/dist/cli/commands/otel.js +0 -128
  241. package/dist/cli/commands/otel.js.map +0 -1
  242. package/dist/cli/commands/phase.d.ts +0 -12
  243. package/dist/cli/commands/phase.d.ts.map +0 -1
  244. package/dist/cli/commands/phase.js +0 -88
  245. package/dist/cli/commands/phase.js.map +0 -1
  246. package/dist/cli/commands/phases.d.ts +0 -12
  247. package/dist/cli/commands/phases.d.ts.map +0 -1
  248. package/dist/cli/commands/phases.js +0 -37
  249. package/dist/cli/commands/phases.js.map +0 -1
  250. package/dist/cli/commands/plan.d.ts +0 -8
  251. package/dist/cli/commands/plan.d.ts.map +0 -1
  252. package/dist/cli/commands/plan.js +0 -15
  253. package/dist/cli/commands/plan.js.map +0 -1
  254. package/dist/cli/commands/promote.d.ts +0 -7
  255. package/dist/cli/commands/promote.d.ts.map +0 -1
  256. package/dist/cli/commands/promote.js +0 -15
  257. package/dist/cli/commands/promote.js.map +0 -1
  258. package/dist/cli/commands/reason.d.ts +0 -35
  259. package/dist/cli/commands/reason.d.ts.map +0 -1
  260. package/dist/cli/commands/reason.js +0 -104
  261. package/dist/cli/commands/reason.js.map +0 -1
  262. package/dist/cli/commands/refresh-memory.d.ts +0 -9
  263. package/dist/cli/commands/refresh-memory.d.ts.map +0 -1
  264. package/dist/cli/commands/refresh-memory.js +0 -24
  265. package/dist/cli/commands/refresh-memory.js.map +0 -1
  266. package/dist/cli/commands/relates.d.ts +0 -12
  267. package/dist/cli/commands/relates.d.ts.map +0 -1
  268. package/dist/cli/commands/relates.js +0 -53
  269. package/dist/cli/commands/relates.js.map +0 -1
  270. package/dist/cli/commands/release.d.ts +0 -8
  271. package/dist/cli/commands/release.d.ts.map +0 -1
  272. package/dist/cli/commands/release.js +0 -72
  273. package/dist/cli/commands/release.js.map +0 -1
  274. package/dist/cli/commands/remote.d.ts +0 -12
  275. package/dist/cli/commands/remote.d.ts.map +0 -1
  276. package/dist/cli/commands/remote.js +0 -207
  277. package/dist/cli/commands/remote.js.map +0 -1
  278. package/dist/cli/commands/reorder.d.ts +0 -7
  279. package/dist/cli/commands/reorder.d.ts.map +0 -1
  280. package/dist/cli/commands/reorder.js +0 -20
  281. package/dist/cli/commands/reorder.js.map +0 -1
  282. package/dist/cli/commands/reparent.d.ts +0 -10
  283. package/dist/cli/commands/reparent.d.ts.map +0 -1
  284. package/dist/cli/commands/reparent.js +0 -19
  285. package/dist/cli/commands/reparent.js.map +0 -1
  286. package/dist/cli/commands/research.d.ts +0 -8
  287. package/dist/cli/commands/research.d.ts.map +0 -1
  288. package/dist/cli/commands/research.js +0 -129
  289. package/dist/cli/commands/research.js.map +0 -1
  290. package/dist/cli/commands/restore.d.ts +0 -11
  291. package/dist/cli/commands/restore.d.ts.map +0 -1
  292. package/dist/cli/commands/restore.js +0 -224
  293. package/dist/cli/commands/restore.js.map +0 -1
  294. package/dist/cli/commands/roadmap.d.ts +0 -8
  295. package/dist/cli/commands/roadmap.d.ts.map +0 -1
  296. package/dist/cli/commands/roadmap.js +0 -21
  297. package/dist/cli/commands/roadmap.js.map +0 -1
  298. package/dist/cli/commands/safestop.d.ts +0 -14
  299. package/dist/cli/commands/safestop.d.ts.map +0 -1
  300. package/dist/cli/commands/safestop.js +0 -32
  301. package/dist/cli/commands/safestop.js.map +0 -1
  302. package/dist/cli/commands/self-update.d.ts +0 -15
  303. package/dist/cli/commands/self-update.d.ts.map +0 -1
  304. package/dist/cli/commands/self-update.js +0 -329
  305. package/dist/cli/commands/self-update.js.map +0 -1
  306. package/dist/cli/commands/sequence.d.ts +0 -8
  307. package/dist/cli/commands/sequence.d.ts.map +0 -1
  308. package/dist/cli/commands/sequence.js +0 -30
  309. package/dist/cli/commands/sequence.js.map +0 -1
  310. package/dist/cli/commands/session.d.ts +0 -12
  311. package/dist/cli/commands/session.d.ts.map +0 -1
  312. package/dist/cli/commands/session.js +0 -175
  313. package/dist/cli/commands/session.js.map +0 -1
  314. package/dist/cli/commands/show.d.ts +0 -13
  315. package/dist/cli/commands/show.d.ts.map +0 -1
  316. package/dist/cli/commands/show.js +0 -20
  317. package/dist/cli/commands/show.js.map +0 -1
  318. package/dist/cli/commands/skills.d.ts +0 -13
  319. package/dist/cli/commands/skills.d.ts.map +0 -1
  320. package/dist/cli/commands/skills.js +0 -131
  321. package/dist/cli/commands/skills.js.map +0 -1
  322. package/dist/cli/commands/snapshot.d.ts +0 -9
  323. package/dist/cli/commands/snapshot.d.ts.map +0 -1
  324. package/dist/cli/commands/snapshot.js +0 -50
  325. package/dist/cli/commands/snapshot.js.map +0 -1
  326. package/dist/cli/commands/specification.d.ts +0 -13
  327. package/dist/cli/commands/specification.d.ts.map +0 -1
  328. package/dist/cli/commands/specification.js +0 -45
  329. package/dist/cli/commands/specification.js.map +0 -1
  330. package/dist/cli/commands/start.d.ts +0 -13
  331. package/dist/cli/commands/start.d.ts.map +0 -1
  332. package/dist/cli/commands/start.js +0 -20
  333. package/dist/cli/commands/start.js.map +0 -1
  334. package/dist/cli/commands/stats.d.ts +0 -12
  335. package/dist/cli/commands/stats.d.ts.map +0 -1
  336. package/dist/cli/commands/stats.js +0 -35
  337. package/dist/cli/commands/stats.js.map +0 -1
  338. package/dist/cli/commands/sticky.d.ts +0 -16
  339. package/dist/cli/commands/sticky.d.ts.map +0 -1
  340. package/dist/cli/commands/sticky.js +0 -211
  341. package/dist/cli/commands/sticky.js.map +0 -1
  342. package/dist/cli/commands/stop.d.ts +0 -13
  343. package/dist/cli/commands/stop.d.ts.map +0 -1
  344. package/dist/cli/commands/stop.js +0 -20
  345. package/dist/cli/commands/stop.js.map +0 -1
  346. package/dist/cli/commands/testing.d.ts +0 -13
  347. package/dist/cli/commands/testing.d.ts.map +0 -1
  348. package/dist/cli/commands/testing.js +0 -64
  349. package/dist/cli/commands/testing.js.map +0 -1
  350. package/dist/cli/commands/token.d.ts +0 -10
  351. package/dist/cli/commands/token.d.ts.map +0 -1
  352. package/dist/cli/commands/token.js +0 -135
  353. package/dist/cli/commands/token.js.map +0 -1
  354. package/dist/cli/commands/update.d.ts +0 -12
  355. package/dist/cli/commands/update.d.ts.map +0 -1
  356. package/dist/cli/commands/update.js +0 -83
  357. package/dist/cli/commands/update.js.map +0 -1
  358. package/dist/cli/commands/upgrade.d.ts +0 -16
  359. package/dist/cli/commands/upgrade.d.ts.map +0 -1
  360. package/dist/cli/commands/upgrade.js +0 -83
  361. package/dist/cli/commands/upgrade.js.map +0 -1
  362. package/dist/cli/commands/validate.d.ts +0 -12
  363. package/dist/cli/commands/validate.d.ts.map +0 -1
  364. package/dist/cli/commands/validate.js +0 -23
  365. package/dist/cli/commands/validate.js.map +0 -1
  366. package/dist/cli/commands/verify.d.ts +0 -8
  367. package/dist/cli/commands/verify.d.ts.map +0 -1
  368. package/dist/cli/commands/verify.js +0 -28
  369. package/dist/cli/commands/verify.js.map +0 -1
  370. package/dist/cli/commands/web.d.ts +0 -13
  371. package/dist/cli/commands/web.d.ts.map +0 -1
  372. package/dist/cli/commands/web.js +0 -264
  373. package/dist/cli/commands/web.js.map +0 -1
  374. package/dist/cli/field-context.d.ts +0 -32
  375. package/dist/cli/field-context.d.ts.map +0 -1
  376. package/dist/cli/field-context.js +0 -47
  377. package/dist/cli/field-context.js.map +0 -1
  378. package/dist/cli/format-context.d.ts +0 -32
  379. package/dist/cli/format-context.d.ts.map +0 -1
  380. package/dist/cli/format-context.js +0 -50
  381. package/dist/cli/format-context.js.map +0 -1
  382. package/dist/cli/index.d.ts +0 -9
  383. package/dist/cli/index.d.ts.map +0 -1
  384. package/dist/cli/logger-bootstrap.d.ts +0 -6
  385. package/dist/cli/logger-bootstrap.d.ts.map +0 -1
  386. package/dist/cli/logger-bootstrap.js +0 -10
  387. package/dist/cli/logger-bootstrap.js.map +0 -1
  388. package/dist/cli/middleware/output-format.d.ts +0 -30
  389. package/dist/cli/middleware/output-format.d.ts.map +0 -1
  390. package/dist/cli/middleware/output-format.js +0 -35
  391. package/dist/cli/middleware/output-format.js.map +0 -1
  392. package/dist/cli/progress.d.ts +0 -84
  393. package/dist/cli/progress.d.ts.map +0 -1
  394. package/dist/cli/progress.js +0 -169
  395. package/dist/cli/progress.js.map +0 -1
  396. package/dist/cli/renderers/colors.d.ts +0 -32
  397. package/dist/cli/renderers/colors.d.ts.map +0 -1
  398. package/dist/cli/renderers/colors.js +0 -141
  399. package/dist/cli/renderers/colors.js.map +0 -1
  400. package/dist/cli/renderers/error.d.ts +0 -13
  401. package/dist/cli/renderers/error.d.ts.map +0 -1
  402. package/dist/cli/renderers/error.js +0 -42
  403. package/dist/cli/renderers/error.js.map +0 -1
  404. package/dist/cli/renderers/index.d.ts +0 -59
  405. package/dist/cli/renderers/index.d.ts.map +0 -1
  406. package/dist/cli/renderers/index.js +0 -184
  407. package/dist/cli/renderers/index.js.map +0 -1
  408. package/dist/cli/renderers/normalizer.d.ts +0 -21
  409. package/dist/cli/renderers/normalizer.d.ts.map +0 -1
  410. package/dist/cli/renderers/normalizer.js +0 -106
  411. package/dist/cli/renderers/normalizer.js.map +0 -1
  412. package/dist/cli/renderers/system.d.ts +0 -25
  413. package/dist/cli/renderers/system.d.ts.map +0 -1
  414. package/dist/cli/renderers/system.js +0 -416
  415. package/dist/cli/renderers/system.js.map +0 -1
  416. package/dist/cli/renderers/tasks.d.ts +0 -28
  417. package/dist/cli/renderers/tasks.d.ts.map +0 -1
  418. package/dist/cli/renderers/tasks.js +0 -306
  419. package/dist/cli/renderers/tasks.js.map +0 -1
  420. package/dist/dispatch/adapters/cli.d.ts +0 -67
  421. package/dist/dispatch/adapters/cli.d.ts.map +0 -1
  422. package/dist/dispatch/adapters/cli.js +0 -205
  423. package/dist/dispatch/adapters/cli.js.map +0 -1
  424. package/dist/dispatch/adapters/mcp.d.ts +0 -37
  425. package/dist/dispatch/adapters/mcp.d.ts.map +0 -1
  426. package/dist/dispatch/adapters/mcp.js +0 -122
  427. package/dist/dispatch/adapters/mcp.js.map +0 -1
  428. package/dist/dispatch/context/session-context.d.ts +0 -54
  429. package/dist/dispatch/context/session-context.d.ts.map +0 -1
  430. package/dist/dispatch/context/session-context.js +0 -61
  431. package/dist/dispatch/context/session-context.js.map +0 -1
  432. package/dist/dispatch/dispatcher.d.ts +0 -23
  433. package/dist/dispatch/dispatcher.d.ts.map +0 -1
  434. package/dist/dispatch/dispatcher.js +0 -84
  435. package/dist/dispatch/dispatcher.js.map +0 -1
  436. package/dist/dispatch/domains/_base.d.ts +0 -59
  437. package/dist/dispatch/domains/_base.d.ts.map +0 -1
  438. package/dist/dispatch/domains/_base.js +0 -77
  439. package/dist/dispatch/domains/_base.js.map +0 -1
  440. package/dist/dispatch/domains/_meta.d.ts +0 -23
  441. package/dist/dispatch/domains/_meta.d.ts.map +0 -1
  442. package/dist/dispatch/domains/_meta.js +0 -25
  443. package/dist/dispatch/domains/_meta.js.map +0 -1
  444. package/dist/dispatch/domains/_routing.d.ts +0 -8
  445. package/dist/dispatch/domains/_routing.d.ts.map +0 -1
  446. package/dist/dispatch/domains/_routing.js +0 -20
  447. package/dist/dispatch/domains/_routing.js.map +0 -1
  448. package/dist/dispatch/domains/admin.d.ts +0 -25
  449. package/dist/dispatch/domains/admin.d.ts.map +0 -1
  450. package/dist/dispatch/domains/admin.js +0 -694
  451. package/dist/dispatch/domains/admin.js.map +0 -1
  452. package/dist/dispatch/domains/check.d.ts +0 -22
  453. package/dist/dispatch/domains/check.d.ts.map +0 -1
  454. package/dist/dispatch/domains/check.js +0 -293
  455. package/dist/dispatch/domains/check.js.map +0 -1
  456. package/dist/dispatch/domains/index.d.ts +0 -26
  457. package/dist/dispatch/domains/index.d.ts.map +0 -1
  458. package/dist/dispatch/domains/index.js +0 -38
  459. package/dist/dispatch/domains/index.js.map +0 -1
  460. package/dist/dispatch/domains/memory.d.ts +0 -22
  461. package/dist/dispatch/domains/memory.d.ts.map +0 -1
  462. package/dist/dispatch/domains/memory.js +0 -303
  463. package/dist/dispatch/domains/memory.js.map +0 -1
  464. package/dist/dispatch/domains/nexus.d.ts +0 -22
  465. package/dist/dispatch/domains/nexus.d.ts.map +0 -1
  466. package/dist/dispatch/domains/nexus.js +0 -286
  467. package/dist/dispatch/domains/nexus.js.map +0 -1
  468. package/dist/dispatch/domains/orchestrate.d.ts +0 -19
  469. package/dist/dispatch/domains/orchestrate.d.ts.map +0 -1
  470. package/dist/dispatch/domains/orchestrate.js +0 -259
  471. package/dist/dispatch/domains/orchestrate.js.map +0 -1
  472. package/dist/dispatch/domains/pipeline.d.ts +0 -35
  473. package/dist/dispatch/domains/pipeline.d.ts.map +0 -1
  474. package/dist/dispatch/domains/pipeline.js +0 -553
  475. package/dist/dispatch/domains/pipeline.js.map +0 -1
  476. package/dist/dispatch/domains/session.d.ts +0 -22
  477. package/dist/dispatch/domains/session.d.ts.map +0 -1
  478. package/dist/dispatch/domains/session.js +0 -255
  479. package/dist/dispatch/domains/session.js.map +0 -1
  480. package/dist/dispatch/domains/sticky.d.ts +0 -20
  481. package/dist/dispatch/domains/sticky.d.ts.map +0 -1
  482. package/dist/dispatch/domains/sticky.js +0 -164
  483. package/dist/dispatch/domains/sticky.js.map +0 -1
  484. package/dist/dispatch/domains/tasks.d.ts +0 -25
  485. package/dist/dispatch/domains/tasks.d.ts.map +0 -1
  486. package/dist/dispatch/domains/tasks.js +0 -339
  487. package/dist/dispatch/domains/tasks.js.map +0 -1
  488. package/dist/dispatch/domains/tools.d.ts +0 -36
  489. package/dist/dispatch/domains/tools.d.ts.map +0 -1
  490. package/dist/dispatch/domains/tools.js +0 -451
  491. package/dist/dispatch/domains/tools.js.map +0 -1
  492. package/dist/dispatch/engines/_error.d.ts +0 -42
  493. package/dist/dispatch/engines/_error.d.ts.map +0 -1
  494. package/dist/dispatch/engines/_error.js +0 -201
  495. package/dist/dispatch/engines/_error.js.map +0 -1
  496. package/dist/dispatch/engines/codebase-map-engine.d.ts +0 -17
  497. package/dist/dispatch/engines/codebase-map-engine.d.ts.map +0 -1
  498. package/dist/dispatch/engines/codebase-map-engine.js +0 -29
  499. package/dist/dispatch/engines/codebase-map-engine.js.map +0 -1
  500. package/dist/dispatch/engines/config-engine.d.ts +0 -32
  501. package/dist/dispatch/engines/config-engine.d.ts.map +0 -1
  502. package/dist/dispatch/engines/config-engine.js +0 -70
  503. package/dist/dispatch/engines/config-engine.js.map +0 -1
  504. package/dist/dispatch/engines/hooks-engine.d.ts +0 -47
  505. package/dist/dispatch/engines/hooks-engine.d.ts.map +0 -1
  506. package/dist/dispatch/engines/hooks-engine.js +0 -57
  507. package/dist/dispatch/engines/hooks-engine.js.map +0 -1
  508. package/dist/dispatch/engines/init-engine.d.ts +0 -43
  509. package/dist/dispatch/engines/init-engine.d.ts.map +0 -1
  510. package/dist/dispatch/engines/init-engine.js +0 -73
  511. package/dist/dispatch/engines/init-engine.js.map +0 -1
  512. package/dist/dispatch/engines/lifecycle-engine.d.ts +0 -66
  513. package/dist/dispatch/engines/lifecycle-engine.d.ts.map +0 -1
  514. package/dist/dispatch/engines/lifecycle-engine.js +0 -213
  515. package/dist/dispatch/engines/lifecycle-engine.js.map +0 -1
  516. package/dist/dispatch/engines/memory-engine.d.ts +0 -10
  517. package/dist/dispatch/engines/memory-engine.d.ts.map +0 -1
  518. package/dist/dispatch/engines/memory-engine.js +0 -10
  519. package/dist/dispatch/engines/memory-engine.js.map +0 -1
  520. package/dist/dispatch/engines/nexus-engine.d.ts +0 -167
  521. package/dist/dispatch/engines/nexus-engine.d.ts.map +0 -1
  522. package/dist/dispatch/engines/nexus-engine.js +0 -356
  523. package/dist/dispatch/engines/nexus-engine.js.map +0 -1
  524. package/dist/dispatch/engines/orchestrate-engine.d.ts +0 -133
  525. package/dist/dispatch/engines/orchestrate-engine.d.ts.map +0 -1
  526. package/dist/dispatch/engines/orchestrate-engine.js +0 -769
  527. package/dist/dispatch/engines/orchestrate-engine.js.map +0 -1
  528. package/dist/dispatch/engines/pipeline-engine.d.ts +0 -51
  529. package/dist/dispatch/engines/pipeline-engine.d.ts.map +0 -1
  530. package/dist/dispatch/engines/pipeline-engine.js +0 -191
  531. package/dist/dispatch/engines/pipeline-engine.js.map +0 -1
  532. package/dist/dispatch/engines/release-engine.d.ts +0 -94
  533. package/dist/dispatch/engines/release-engine.d.ts.map +0 -1
  534. package/dist/dispatch/engines/release-engine.js +0 -669
  535. package/dist/dispatch/engines/release-engine.js.map +0 -1
  536. package/dist/dispatch/engines/session-engine.d.ts +0 -323
  537. package/dist/dispatch/engines/session-engine.d.ts.map +0 -1
  538. package/dist/dispatch/engines/session-engine.js +0 -869
  539. package/dist/dispatch/engines/session-engine.js.map +0 -1
  540. package/dist/dispatch/engines/sticky-engine.d.ts +0 -100
  541. package/dist/dispatch/engines/sticky-engine.d.ts.map +0 -1
  542. package/dist/dispatch/engines/sticky-engine.js +0 -181
  543. package/dist/dispatch/engines/sticky-engine.js.map +0 -1
  544. package/dist/dispatch/engines/system-engine.d.ts +0 -382
  545. package/dist/dispatch/engines/system-engine.d.ts.map +0 -1
  546. package/dist/dispatch/engines/system-engine.js +0 -992
  547. package/dist/dispatch/engines/system-engine.js.map +0 -1
  548. package/dist/dispatch/engines/task-engine.d.ts +0 -630
  549. package/dist/dispatch/engines/task-engine.d.ts.map +0 -1
  550. package/dist/dispatch/engines/task-engine.js +0 -979
  551. package/dist/dispatch/engines/task-engine.js.map +0 -1
  552. package/dist/dispatch/engines/template-parser.d.ts +0 -34
  553. package/dist/dispatch/engines/template-parser.d.ts.map +0 -1
  554. package/dist/dispatch/engines/template-parser.js +0 -57
  555. package/dist/dispatch/engines/template-parser.js.map +0 -1
  556. package/dist/dispatch/engines/tools-engine.d.ts +0 -270
  557. package/dist/dispatch/engines/tools-engine.d.ts.map +0 -1
  558. package/dist/dispatch/engines/tools-engine.js +0 -636
  559. package/dist/dispatch/engines/tools-engine.js.map +0 -1
  560. package/dist/dispatch/engines/validate-engine.d.ts +0 -154
  561. package/dist/dispatch/engines/validate-engine.d.ts.map +0 -1
  562. package/dist/dispatch/engines/validate-engine.js +0 -524
  563. package/dist/dispatch/engines/validate-engine.js.map +0 -1
  564. package/dist/dispatch/index.d.ts +0 -20
  565. package/dist/dispatch/index.d.ts.map +0 -1
  566. package/dist/dispatch/index.js +0 -19
  567. package/dist/dispatch/index.js.map +0 -1
  568. package/dist/dispatch/lib/capability-matrix.d.ts +0 -11
  569. package/dist/dispatch/lib/capability-matrix.d.ts.map +0 -1
  570. package/dist/dispatch/lib/capability-matrix.js +0 -10
  571. package/dist/dispatch/lib/capability-matrix.js.map +0 -1
  572. package/dist/dispatch/lib/config.d.ts +0 -16
  573. package/dist/dispatch/lib/config.d.ts.map +0 -1
  574. package/dist/dispatch/lib/config.js +0 -15
  575. package/dist/dispatch/lib/config.js.map +0 -1
  576. package/dist/dispatch/lib/engine.d.ts +0 -25
  577. package/dist/dispatch/lib/engine.d.ts.map +0 -1
  578. package/dist/dispatch/lib/engine.js +0 -44
  579. package/dist/dispatch/lib/engine.js.map +0 -1
  580. package/dist/dispatch/lib/meta.d.ts +0 -26
  581. package/dist/dispatch/lib/meta.d.ts.map +0 -1
  582. package/dist/dispatch/lib/meta.js +0 -37
  583. package/dist/dispatch/lib/meta.js.map +0 -1
  584. package/dist/dispatch/lib/param-utils.d.ts +0 -11
  585. package/dist/dispatch/lib/param-utils.d.ts.map +0 -1
  586. package/dist/dispatch/lib/param-utils.js +0 -10
  587. package/dist/dispatch/lib/param-utils.js.map +0 -1
  588. package/dist/dispatch/lib/projections.d.ts +0 -23
  589. package/dist/dispatch/lib/projections.d.ts.map +0 -1
  590. package/dist/dispatch/lib/projections.js +0 -48
  591. package/dist/dispatch/lib/projections.js.map +0 -1
  592. package/dist/dispatch/lib/schema-utils.d.ts +0 -42
  593. package/dist/dispatch/lib/schema-utils.d.ts.map +0 -1
  594. package/dist/dispatch/lib/schema-utils.js +0 -93
  595. package/dist/dispatch/lib/schema-utils.js.map +0 -1
  596. package/dist/dispatch/lib/security.d.ts +0 -11
  597. package/dist/dispatch/lib/security.d.ts.map +0 -1
  598. package/dist/dispatch/lib/security.js +0 -10
  599. package/dist/dispatch/lib/security.js.map +0 -1
  600. package/dist/dispatch/middleware/audit.d.ts +0 -23
  601. package/dist/dispatch/middleware/audit.d.ts.map +0 -1
  602. package/dist/dispatch/middleware/audit.js +0 -169
  603. package/dist/dispatch/middleware/audit.js.map +0 -1
  604. package/dist/dispatch/middleware/field-filter.d.ts +0 -24
  605. package/dist/dispatch/middleware/field-filter.d.ts.map +0 -1
  606. package/dist/dispatch/middleware/field-filter.js +0 -65
  607. package/dist/dispatch/middleware/field-filter.js.map +0 -1
  608. package/dist/dispatch/middleware/pipeline.d.ts +0 -20
  609. package/dist/dispatch/middleware/pipeline.d.ts.map +0 -1
  610. package/dist/dispatch/middleware/pipeline.js +0 -47
  611. package/dist/dispatch/middleware/pipeline.js.map +0 -1
  612. package/dist/dispatch/middleware/projection.d.ts +0 -35
  613. package/dist/dispatch/middleware/projection.d.ts.map +0 -1
  614. package/dist/dispatch/middleware/projection.js +0 -145
  615. package/dist/dispatch/middleware/projection.js.map +0 -1
  616. package/dist/dispatch/middleware/protocol-enforcement.d.ts +0 -12
  617. package/dist/dispatch/middleware/protocol-enforcement.d.ts.map +0 -1
  618. package/dist/dispatch/middleware/protocol-enforcement.js +0 -30
  619. package/dist/dispatch/middleware/protocol-enforcement.js.map +0 -1
  620. package/dist/dispatch/middleware/rate-limiter.d.ts +0 -30
  621. package/dist/dispatch/middleware/rate-limiter.d.ts.map +0 -1
  622. package/dist/dispatch/middleware/rate-limiter.js +0 -101
  623. package/dist/dispatch/middleware/rate-limiter.js.map +0 -1
  624. package/dist/dispatch/middleware/sanitizer.d.ts +0 -10
  625. package/dist/dispatch/middleware/sanitizer.d.ts.map +0 -1
  626. package/dist/dispatch/middleware/sanitizer.js +0 -42
  627. package/dist/dispatch/middleware/sanitizer.js.map +0 -1
  628. package/dist/dispatch/middleware/session-resolver.d.ts +0 -26
  629. package/dist/dispatch/middleware/session-resolver.d.ts.map +0 -1
  630. package/dist/dispatch/middleware/session-resolver.js +0 -65
  631. package/dist/dispatch/middleware/session-resolver.js.map +0 -1
  632. package/dist/dispatch/middleware/verification-gates.d.ts +0 -3
  633. package/dist/dispatch/middleware/verification-gates.d.ts.map +0 -1
  634. package/dist/dispatch/middleware/verification-gates.js +0 -40
  635. package/dist/dispatch/middleware/verification-gates.js.map +0 -1
  636. package/dist/dispatch/registry.d.ts +0 -91
  637. package/dist/dispatch/registry.d.ts.map +0 -1
  638. package/dist/dispatch/registry.js +0 -2914
  639. package/dist/dispatch/registry.js.map +0 -1
  640. package/dist/dispatch/types.d.ts +0 -218
  641. package/dist/dispatch/types.d.ts.map +0 -1
  642. package/dist/dispatch/types.js +0 -25
  643. package/dist/dispatch/types.js.map +0 -1
  644. package/dist/mcp/gateways/mutate.d.ts +0 -146
  645. package/dist/mcp/gateways/mutate.d.ts.map +0 -1
  646. package/dist/mcp/gateways/mutate.js +0 -1016
  647. package/dist/mcp/gateways/mutate.js.map +0 -1
  648. package/dist/mcp/gateways/query.d.ts +0 -138
  649. package/dist/mcp/gateways/query.d.ts.map +0 -1
  650. package/dist/mcp/gateways/query.js +0 -186
  651. package/dist/mcp/gateways/query.js.map +0 -1
  652. package/dist/mcp/index.d.ts +0 -16
  653. package/dist/mcp/index.d.ts.map +0 -1
  654. package/dist/mcp/lib/background-jobs.d.ts +0 -86
  655. package/dist/mcp/lib/background-jobs.d.ts.map +0 -1
  656. package/dist/mcp/lib/background-jobs.js +0 -183
  657. package/dist/mcp/lib/background-jobs.js.map +0 -1
  658. package/dist/mcp/lib/budget.d.ts +0 -35
  659. package/dist/mcp/lib/budget.d.ts.map +0 -1
  660. package/dist/mcp/lib/budget.js +0 -102
  661. package/dist/mcp/lib/budget.js.map +0 -1
  662. package/dist/mcp/lib/cache.d.ts +0 -78
  663. package/dist/mcp/lib/cache.d.ts.map +0 -1
  664. package/dist/mcp/lib/cache.js +0 -207
  665. package/dist/mcp/lib/cache.js.map +0 -1
  666. package/dist/mcp/lib/config.d.ts +0 -42
  667. package/dist/mcp/lib/config.d.ts.map +0 -1
  668. package/dist/mcp/lib/config.js +0 -241
  669. package/dist/mcp/lib/config.js.map +0 -1
  670. package/dist/mcp/lib/defaults.d.ts +0 -115
  671. package/dist/mcp/lib/defaults.d.ts.map +0 -1
  672. package/dist/mcp/lib/defaults.js +0 -61
  673. package/dist/mcp/lib/defaults.js.map +0 -1
  674. package/dist/mcp/lib/gate-validators.d.ts +0 -13
  675. package/dist/mcp/lib/gate-validators.d.ts.map +0 -1
  676. package/dist/mcp/lib/gate-validators.js +0 -13
  677. package/dist/mcp/lib/gate-validators.js.map +0 -1
  678. package/dist/mcp/lib/gateway-meta.d.ts +0 -37
  679. package/dist/mcp/lib/gateway-meta.d.ts.map +0 -1
  680. package/dist/mcp/lib/gateway-meta.js +0 -50
  681. package/dist/mcp/lib/gateway-meta.js.map +0 -1
  682. package/dist/mcp/lib/job-manager-accessor.d.ts +0 -10
  683. package/dist/mcp/lib/job-manager-accessor.d.ts.map +0 -1
  684. package/dist/mcp/lib/job-manager-accessor.js +0 -14
  685. package/dist/mcp/lib/job-manager-accessor.js.map +0 -1
  686. package/dist/mcp/lib/protocol-enforcement.d.ts +0 -12
  687. package/dist/mcp/lib/protocol-enforcement.d.ts.map +0 -1
  688. package/dist/mcp/lib/protocol-enforcement.js +0 -12
  689. package/dist/mcp/lib/protocol-enforcement.js.map +0 -1
  690. package/dist/mcp/lib/protocol-rules.d.ts +0 -12
  691. package/dist/mcp/lib/protocol-rules.d.ts.map +0 -1
  692. package/dist/mcp/lib/protocol-rules.js +0 -12
  693. package/dist/mcp/lib/protocol-rules.js.map +0 -1
  694. package/dist/mcp/lib/rate-limiter.d.ts +0 -110
  695. package/dist/mcp/lib/rate-limiter.d.ts.map +0 -1
  696. package/dist/mcp/lib/rate-limiter.js +0 -208
  697. package/dist/mcp/lib/rate-limiter.js.map +0 -1
  698. package/dist/mcp/lib/router.d.ts +0 -58
  699. package/dist/mcp/lib/router.d.ts.map +0 -1
  700. package/dist/mcp/lib/router.js +0 -12
  701. package/dist/mcp/lib/router.js.map +0 -1
  702. package/dist/mcp/lib/security.d.ts +0 -161
  703. package/dist/mcp/lib/security.d.ts.map +0 -1
  704. package/dist/mcp/lib/security.js +0 -360
  705. package/dist/mcp/lib/security.js.map +0 -1
  706. package/dist/mcp/lib/verification-gates.d.ts +0 -13
  707. package/dist/mcp/lib/verification-gates.d.ts.map +0 -1
  708. package/dist/mcp/lib/verification-gates.js +0 -12
  709. package/dist/mcp/lib/verification-gates.js.map +0 -1
  710. package/dist/mcp/resources/budget.d.ts +0 -22
  711. package/dist/mcp/resources/budget.d.ts.map +0 -1
  712. package/dist/mcp/resources/budget.js +0 -46
  713. package/dist/mcp/resources/budget.js.map +0 -1
  714. package/dist/mcp/resources/index.d.ts +0 -53
  715. package/dist/mcp/resources/index.d.ts.map +0 -1
  716. package/dist/mcp/resources/index.js +0 -278
  717. package/dist/mcp/resources/index.js.map +0 -1
@@ -1,1016 +0,0 @@
1
- /**
2
- * mutate Gateway - Write Operations
3
- *
4
- * Handles all state-modifying operations with strict validation,
5
- * audit logging, and rollback support.
6
- *
7
- * Canonical domains (10): tasks, session, memory, check, pipeline,
8
- * orchestrate, tools, admin, nexus, sticky
9
- *
10
- * @task T2929
11
- */
12
- import { deriveGatewayMatrix, getByGateway } from '../../dispatch/registry.js';
13
- /**
14
- * Mutate operation matrix - all write operations by domain.
15
- *
16
- * DERIVED from the dispatch registry — single source of truth.
17
- * Contains canonical domains.
18
- *
19
- * Reference: MCP-SERVER-SPECIFICATION.md Section 2.2.2
20
- */
21
- export const MUTATE_OPERATIONS = deriveGatewayMatrix('mutate');
22
- /**
23
- * Dynamic operation count (derived from MUTATE_OPERATIONS).
24
- */
25
- const actualMutateCount = Object.values(MUTATE_OPERATIONS).flat().length;
26
- if (actualMutateCount < 1) {
27
- console.error('Warning: Mutate operation registry is empty.');
28
- }
29
- function buildOperationFlagMatrix(predicate) {
30
- const matrix = {};
31
- for (const op of getByGateway('mutate')) {
32
- if (!predicate(op)) {
33
- continue;
34
- }
35
- if (!matrix[op.domain]) {
36
- matrix[op.domain] = [];
37
- }
38
- matrix[op.domain].push(op.operation);
39
- }
40
- return matrix;
41
- }
42
- /**
43
- * Idempotent operations derived from registry metadata.
44
- */
45
- const IDEMPOTENT_OPERATIONS = buildOperationFlagMatrix((op) => op.idempotent);
46
- /**
47
- * Session-required operations derived from registry metadata.
48
- */
49
- const SESSION_REQUIRED_OPERATIONS = buildOperationFlagMatrix((op) => op.sessionRequired);
50
- /**
51
- * Validate mutate request parameters
52
- */
53
- export function validateMutateParams(request) {
54
- const { domain, operation, params } = request;
55
- // Check if domain is valid
56
- if (!MUTATE_OPERATIONS[domain]) {
57
- return {
58
- valid: false,
59
- error: {
60
- _meta: {
61
- gateway: 'mutate',
62
- domain,
63
- operation,
64
- version: '1.0.0',
65
- timestamp: new Date().toISOString(),
66
- duration_ms: 0,
67
- },
68
- success: false,
69
- error: {
70
- code: 'E_INVALID_DOMAIN',
71
- exitCode: 2,
72
- message: `Unknown mutate domain: ${domain}`,
73
- fix: `Use one of: ${Object.keys(MUTATE_OPERATIONS).join(', ')}`,
74
- alternatives: Object.keys(MUTATE_OPERATIONS).map((d) => ({
75
- action: `List ${d} operations`,
76
- command: `Available: ${MUTATE_OPERATIONS[d].join(', ')}`,
77
- })),
78
- },
79
- },
80
- };
81
- }
82
- // Check if operation is valid for this domain
83
- const validOps = MUTATE_OPERATIONS[domain];
84
- if (!validOps.includes(operation)) {
85
- return {
86
- valid: false,
87
- error: {
88
- _meta: {
89
- gateway: 'mutate',
90
- domain,
91
- operation,
92
- version: '1.0.0',
93
- timestamp: new Date().toISOString(),
94
- duration_ms: 0,
95
- },
96
- success: false,
97
- error: {
98
- code: 'E_INVALID_OPERATION',
99
- exitCode: 2,
100
- message: `Operation '${operation}' not supported for mutate in domain '${domain}'`,
101
- fix: `Use one of: ${validOps.join(', ')}`,
102
- alternatives: validOps.map((op) => ({
103
- action: `Use ${op}`,
104
- command: `mutate ${domain} ${op}`,
105
- })),
106
- },
107
- },
108
- };
109
- }
110
- // Perform operation-specific parameter validation
111
- const paramValidation = validateOperationParams(domain, operation, params);
112
- if (!paramValidation.valid) {
113
- return paramValidation;
114
- }
115
- return { valid: true };
116
- }
117
- /**
118
- * Validate operation-specific parameters
119
- */
120
- function validateOperationParams(domain, operation, params) {
121
- // Domain-specific parameter validation (canonical domains only)
122
- switch (domain) {
123
- case 'tasks':
124
- return validateTasksParams(operation, params);
125
- case 'session':
126
- return validateSessionParams(operation, params);
127
- case 'orchestrate':
128
- return validateOrchestrateParams(operation, params);
129
- case 'memory':
130
- return validateMemoryParams(operation, params);
131
- case 'check':
132
- return validateCheckParams(operation, params);
133
- case 'pipeline':
134
- return validatePipelineParams(operation, params);
135
- case 'admin':
136
- return validateAdminParams(operation, params);
137
- case 'tools':
138
- return validateToolsParams(operation, params);
139
- default:
140
- return { valid: true };
141
- }
142
- }
143
- /**
144
- * Validate tasks domain parameters
145
- */
146
- function validateTasksParams(operation, params) {
147
- switch (operation) {
148
- case 'add':
149
- if (!params?.title || !params?.description) {
150
- return {
151
- valid: false,
152
- error: {
153
- _meta: {
154
- gateway: 'mutate',
155
- domain: 'tasks',
156
- operation,
157
- version: '1.0.0',
158
- timestamp: new Date().toISOString(),
159
- duration_ms: 0,
160
- },
161
- success: false,
162
- error: {
163
- code: 'E_VALIDATION_FAILED',
164
- exitCode: 6,
165
- message: 'Missing required parameters: title and description',
166
- fix: 'Provide both title and description fields',
167
- },
168
- },
169
- };
170
- }
171
- if (params.title === params.description) {
172
- return {
173
- valid: false,
174
- error: {
175
- _meta: {
176
- gateway: 'mutate',
177
- domain: 'tasks',
178
- operation,
179
- version: '1.0.0',
180
- timestamp: new Date().toISOString(),
181
- duration_ms: 0,
182
- },
183
- success: false,
184
- error: {
185
- code: 'E_VALIDATION_FAILED',
186
- exitCode: 6,
187
- message: 'Title and description must be different (anti-hallucination requirement)',
188
- fix: 'Provide a unique description that differs from the title',
189
- },
190
- },
191
- };
192
- }
193
- break;
194
- case 'update':
195
- case 'complete':
196
- case 'delete':
197
- case 'restore':
198
- case 'reparent':
199
- case 'promote':
200
- case 'reorder':
201
- case 'start':
202
- if (!params?.taskId) {
203
- return {
204
- valid: false,
205
- error: {
206
- _meta: {
207
- gateway: 'mutate',
208
- domain: 'tasks',
209
- operation,
210
- version: '1.0.0',
211
- timestamp: new Date().toISOString(),
212
- duration_ms: 0,
213
- },
214
- success: false,
215
- error: {
216
- code: 'E_VALIDATION_FAILED',
217
- exitCode: 6,
218
- message: 'Missing required parameter: taskId',
219
- fix: 'Provide taskId parameter',
220
- },
221
- },
222
- };
223
- }
224
- break;
225
- case 'relates.add': {
226
- // Accept both targetId and relatedId for the second task (T5149)
227
- const hasTarget = !!(params?.targetId || params?.relatedId);
228
- if (!params?.taskId || !hasTarget || !params?.type) {
229
- return {
230
- valid: false,
231
- error: {
232
- _meta: {
233
- gateway: 'mutate',
234
- domain: 'tasks',
235
- operation,
236
- version: '1.0.0',
237
- timestamp: new Date().toISOString(),
238
- duration_ms: 0,
239
- },
240
- success: false,
241
- error: {
242
- code: 'E_VALIDATION_FAILED',
243
- exitCode: 6,
244
- message: 'Missing required parameters: taskId, targetId (or relatedId), and type',
245
- fix: 'Provide taskId, targetId (or relatedId), and type parameters',
246
- },
247
- },
248
- };
249
- }
250
- break;
251
- }
252
- }
253
- return { valid: true };
254
- }
255
- /**
256
- * Validate session domain parameters
257
- */
258
- function validateSessionParams(operation, params) {
259
- switch (operation) {
260
- case 'start':
261
- if (!params?.scope) {
262
- return {
263
- valid: false,
264
- error: {
265
- _meta: {
266
- gateway: 'mutate',
267
- domain: 'session',
268
- operation,
269
- version: '1.0.0',
270
- timestamp: new Date().toISOString(),
271
- duration_ms: 0,
272
- },
273
- success: false,
274
- error: {
275
- code: 'E_VALIDATION_FAILED',
276
- exitCode: 6,
277
- message: 'Missing required parameter: scope',
278
- fix: 'Provide scope as "global" or "epic:TXXX"',
279
- },
280
- },
281
- };
282
- }
283
- break;
284
- case 'resume':
285
- if (!params?.sessionId) {
286
- return {
287
- valid: false,
288
- error: {
289
- _meta: {
290
- gateway: 'mutate',
291
- domain: 'session',
292
- operation,
293
- version: '1.0.0',
294
- timestamp: new Date().toISOString(),
295
- duration_ms: 0,
296
- },
297
- success: false,
298
- error: {
299
- code: 'E_VALIDATION_FAILED',
300
- exitCode: 6,
301
- message: 'Missing required parameter: sessionId',
302
- fix: 'Provide sessionId parameter',
303
- },
304
- },
305
- };
306
- }
307
- break;
308
- case 'record.decision':
309
- if (!params?.sessionId || !params?.taskId || !params?.decision || !params?.rationale) {
310
- return {
311
- valid: false,
312
- error: {
313
- _meta: {
314
- gateway: 'mutate',
315
- domain: 'session',
316
- operation,
317
- version: '1.0.0',
318
- timestamp: new Date().toISOString(),
319
- duration_ms: 0,
320
- },
321
- success: false,
322
- error: {
323
- code: 'E_VALIDATION_FAILED',
324
- exitCode: 6,
325
- message: 'Missing required parameters: sessionId, taskId, decision, and rationale',
326
- fix: 'Provide sessionId, taskId, decision, and rationale parameters',
327
- },
328
- },
329
- };
330
- }
331
- break;
332
- case 'record.assumption':
333
- if (!params?.assumption || !params?.confidence) {
334
- return {
335
- valid: false,
336
- error: {
337
- _meta: {
338
- gateway: 'mutate',
339
- domain: 'session',
340
- operation,
341
- version: '1.0.0',
342
- timestamp: new Date().toISOString(),
343
- duration_ms: 0,
344
- },
345
- success: false,
346
- error: {
347
- code: 'E_VALIDATION_FAILED',
348
- exitCode: 6,
349
- message: 'Missing required parameters: assumption and confidence',
350
- fix: 'Provide assumption (string) and confidence (high|medium|low) parameters',
351
- },
352
- },
353
- };
354
- }
355
- break;
356
- }
357
- return { valid: true };
358
- }
359
- /**
360
- * Validate orchestrate domain parameters
361
- */
362
- function validateOrchestrateParams(operation, params) {
363
- switch (operation) {
364
- case 'start':
365
- if (!params?.epicId) {
366
- return {
367
- valid: false,
368
- error: {
369
- _meta: {
370
- gateway: 'mutate',
371
- domain: 'orchestrate',
372
- operation,
373
- version: '1.0.0',
374
- timestamp: new Date().toISOString(),
375
- duration_ms: 0,
376
- },
377
- success: false,
378
- error: {
379
- code: 'E_VALIDATION_FAILED',
380
- exitCode: 6,
381
- message: 'Missing required parameter: epicId',
382
- fix: 'Provide epicId parameter',
383
- },
384
- },
385
- };
386
- }
387
- break;
388
- case 'spawn':
389
- case 'validate':
390
- if (!params?.taskId) {
391
- return {
392
- valid: false,
393
- error: {
394
- _meta: {
395
- gateway: 'mutate',
396
- domain: 'orchestrate',
397
- operation,
398
- version: '1.0.0',
399
- timestamp: new Date().toISOString(),
400
- duration_ms: 0,
401
- },
402
- success: false,
403
- error: {
404
- code: 'E_VALIDATION_FAILED',
405
- exitCode: 6,
406
- message: 'Missing required parameter: taskId',
407
- fix: 'Provide taskId parameter',
408
- },
409
- },
410
- };
411
- }
412
- break;
413
- case 'handoff':
414
- if (!params?.taskId || !params?.protocolType) {
415
- return {
416
- valid: false,
417
- error: {
418
- _meta: {
419
- gateway: 'mutate',
420
- domain: 'orchestrate',
421
- operation,
422
- version: '1.0.0',
423
- timestamp: new Date().toISOString(),
424
- duration_ms: 0,
425
- },
426
- success: false,
427
- error: {
428
- code: 'E_VALIDATION_FAILED',
429
- exitCode: 6,
430
- message: 'Missing required parameters: taskId and protocolType',
431
- fix: 'Provide both taskId and protocolType parameters',
432
- },
433
- },
434
- };
435
- }
436
- break;
437
- case 'parallel.start':
438
- case 'parallel.end':
439
- if (!params?.epicId || params?.wave === undefined) {
440
- return {
441
- valid: false,
442
- error: {
443
- _meta: {
444
- gateway: 'mutate',
445
- domain: 'orchestrate',
446
- operation,
447
- version: '1.0.0',
448
- timestamp: new Date().toISOString(),
449
- duration_ms: 0,
450
- },
451
- success: false,
452
- error: {
453
- code: 'E_VALIDATION_FAILED',
454
- exitCode: 6,
455
- message: 'Missing required parameters: epicId and wave',
456
- fix: 'Provide both epicId and wave parameters',
457
- },
458
- },
459
- };
460
- }
461
- break;
462
- }
463
- return { valid: true };
464
- }
465
- /**
466
- * Validate memory domain parameters
467
- */
468
- function validateMemoryParams(operation, params) {
469
- switch (operation) {
470
- case 'inject':
471
- if (!params?.protocolType) {
472
- return {
473
- valid: false,
474
- error: {
475
- _meta: {
476
- gateway: 'mutate',
477
- domain: 'memory',
478
- operation,
479
- version: '1.0.0',
480
- timestamp: new Date().toISOString(),
481
- duration_ms: 0,
482
- },
483
- success: false,
484
- error: {
485
- code: 'E_VALIDATION_FAILED',
486
- exitCode: 6,
487
- message: 'Missing required parameter: protocolType',
488
- fix: 'Provide protocolType parameter (e.g., "research", "implementation")',
489
- },
490
- },
491
- };
492
- }
493
- break;
494
- case 'link':
495
- if (!params?.researchId || !params?.taskId) {
496
- return {
497
- valid: false,
498
- error: {
499
- _meta: {
500
- gateway: 'mutate',
501
- domain: 'memory',
502
- operation,
503
- version: '1.0.0',
504
- timestamp: new Date().toISOString(),
505
- duration_ms: 0,
506
- },
507
- success: false,
508
- error: {
509
- code: 'E_VALIDATION_FAILED',
510
- exitCode: 6,
511
- message: 'Missing required parameters: researchId and taskId',
512
- fix: 'Provide both researchId and taskId parameters',
513
- },
514
- },
515
- };
516
- }
517
- break;
518
- case 'manifest.append':
519
- if (!params?.entry) {
520
- return {
521
- valid: false,
522
- error: {
523
- _meta: {
524
- gateway: 'mutate',
525
- domain: 'memory',
526
- operation,
527
- version: '1.0.0',
528
- timestamp: new Date().toISOString(),
529
- duration_ms: 0,
530
- },
531
- success: false,
532
- error: {
533
- code: 'E_VALIDATION_FAILED',
534
- exitCode: 6,
535
- message: 'Missing required parameter: entry',
536
- fix: 'Provide entry parameter with manifest entry object',
537
- },
538
- },
539
- };
540
- }
541
- break;
542
- }
543
- return { valid: true };
544
- }
545
- /**
546
- * Validate pipeline stage.* sub-operation parameters
547
- */
548
- function validateStageParams(operation, params) {
549
- switch (operation) {
550
- case 'record':
551
- if (!params?.taskId || !params?.stage || !params?.status) {
552
- return {
553
- valid: false,
554
- error: {
555
- _meta: {
556
- gateway: 'mutate',
557
- domain: 'pipeline',
558
- operation,
559
- version: '1.0.0',
560
- timestamp: new Date().toISOString(),
561
- duration_ms: 0,
562
- },
563
- success: false,
564
- error: {
565
- code: 'E_VALIDATION_FAILED',
566
- exitCode: 6,
567
- message: 'Missing required parameters: taskId, stage, and status',
568
- fix: 'Provide taskId, stage, and status parameters',
569
- },
570
- },
571
- };
572
- }
573
- break;
574
- case 'skip':
575
- case 'reset':
576
- if (!params?.taskId || !params?.stage || !params?.reason) {
577
- return {
578
- valid: false,
579
- error: {
580
- _meta: {
581
- gateway: 'mutate',
582
- domain: 'pipeline',
583
- operation,
584
- version: '1.0.0',
585
- timestamp: new Date().toISOString(),
586
- duration_ms: 0,
587
- },
588
- success: false,
589
- error: {
590
- code: 'E_VALIDATION_FAILED',
591
- exitCode: 6,
592
- message: 'Missing required parameters: taskId, stage, and reason',
593
- fix: 'Provide taskId, stage, and reason parameters',
594
- },
595
- },
596
- };
597
- }
598
- break;
599
- case 'gate.pass':
600
- case 'gate.fail':
601
- if (!params?.taskId || !params?.gateName) {
602
- return {
603
- valid: false,
604
- error: {
605
- _meta: {
606
- gateway: 'mutate',
607
- domain: 'pipeline',
608
- operation,
609
- version: '1.0.0',
610
- timestamp: new Date().toISOString(),
611
- duration_ms: 0,
612
- },
613
- success: false,
614
- error: {
615
- code: 'E_VALIDATION_FAILED',
616
- exitCode: 6,
617
- message: 'Missing required parameters: taskId and gateName',
618
- fix: 'Provide taskId and gateName parameters',
619
- },
620
- },
621
- };
622
- }
623
- break;
624
- }
625
- return { valid: true };
626
- }
627
- /**
628
- * Validate check domain parameters
629
- */
630
- function validateCheckParams(operation, params) {
631
- switch (operation) {
632
- case 'compliance.record':
633
- if (!params?.taskId || !params?.result) {
634
- return {
635
- valid: false,
636
- error: {
637
- _meta: {
638
- gateway: 'mutate',
639
- domain: 'check',
640
- operation,
641
- version: '1.0.0',
642
- timestamp: new Date().toISOString(),
643
- duration_ms: 0,
644
- },
645
- success: false,
646
- error: {
647
- code: 'E_VALIDATION_FAILED',
648
- exitCode: 6,
649
- message: 'Missing required parameters: taskId and result',
650
- fix: 'Provide taskId and result parameters',
651
- },
652
- },
653
- };
654
- }
655
- break;
656
- }
657
- return { valid: true };
658
- }
659
- /**
660
- * Validate pipeline release.* sub-operation parameters
661
- */
662
- function validateReleaseParams(operation, params) {
663
- switch (operation) {
664
- case 'prepare':
665
- case 'changelog':
666
- case 'commit':
667
- case 'tag':
668
- case 'push':
669
- case 'rollback':
670
- case 'cancel':
671
- if (!params?.version) {
672
- return {
673
- valid: false,
674
- error: {
675
- _meta: {
676
- gateway: 'mutate',
677
- domain: 'pipeline',
678
- operation,
679
- version: '1.0.0',
680
- timestamp: new Date().toISOString(),
681
- duration_ms: 0,
682
- },
683
- success: false,
684
- error: {
685
- code: 'E_VALIDATION_FAILED',
686
- exitCode: 6,
687
- message: 'Missing required parameter: version',
688
- fix: 'Provide version parameter (X.Y.Z or YYYY.M.patch format)',
689
- },
690
- },
691
- };
692
- }
693
- break;
694
- }
695
- return { valid: true };
696
- }
697
- /**
698
- * Validate pipeline chain.* sub-operation parameters
699
- */
700
- function validateChainParams(operation, params) {
701
- switch (operation) {
702
- case 'gate.pass':
703
- case 'gate.fail':
704
- if (!params?.instanceId || !params?.gateId) {
705
- return {
706
- valid: false,
707
- error: {
708
- _meta: {
709
- gateway: 'mutate',
710
- domain: 'pipeline',
711
- operation,
712
- version: '1.0.0',
713
- timestamp: new Date().toISOString(),
714
- duration_ms: 0,
715
- },
716
- success: false,
717
- error: {
718
- code: 'E_VALIDATION_FAILED',
719
- exitCode: 6,
720
- message: 'Missing required parameters: instanceId and gateId',
721
- fix: 'Provide instanceId and gateId parameters',
722
- },
723
- },
724
- };
725
- }
726
- break;
727
- }
728
- return { valid: true };
729
- }
730
- /**
731
- * Validate admin domain parameters
732
- */
733
- function validateAdminParams(operation, params) {
734
- switch (operation) {
735
- case 'config.set':
736
- if (!params?.key || params?.value === undefined) {
737
- return {
738
- valid: false,
739
- error: {
740
- _meta: {
741
- gateway: 'mutate',
742
- domain: 'admin',
743
- operation,
744
- version: '1.0.0',
745
- timestamp: new Date().toISOString(),
746
- duration_ms: 0,
747
- },
748
- success: false,
749
- error: {
750
- code: 'E_VALIDATION_FAILED',
751
- exitCode: 6,
752
- message: 'Missing required parameters: key and value',
753
- fix: 'Provide key and value parameters',
754
- },
755
- },
756
- };
757
- }
758
- break;
759
- case 'restore':
760
- if (!params?.backupId) {
761
- return {
762
- valid: false,
763
- error: {
764
- _meta: {
765
- gateway: 'mutate',
766
- domain: 'admin',
767
- operation,
768
- version: '1.0.0',
769
- timestamp: new Date().toISOString(),
770
- duration_ms: 0,
771
- },
772
- success: false,
773
- error: {
774
- code: 'E_VALIDATION_FAILED',
775
- exitCode: 6,
776
- message: 'Missing required parameter: backupId',
777
- fix: 'Provide backupId parameter',
778
- },
779
- },
780
- };
781
- }
782
- break;
783
- case 'job.cancel':
784
- if (!params?.jobId) {
785
- return {
786
- valid: false,
787
- error: {
788
- _meta: {
789
- gateway: 'mutate',
790
- domain: 'admin',
791
- operation,
792
- version: '1.0.0',
793
- timestamp: new Date().toISOString(),
794
- duration_ms: 0,
795
- },
796
- success: false,
797
- error: {
798
- code: 'E_VALIDATION_FAILED',
799
- exitCode: 6,
800
- message: 'Missing required parameter: jobId',
801
- fix: 'Provide jobId parameter',
802
- },
803
- },
804
- };
805
- }
806
- break;
807
- case 'cleanup':
808
- if (!params?.type) {
809
- return {
810
- valid: false,
811
- error: {
812
- _meta: {
813
- gateway: 'mutate',
814
- domain: 'admin',
815
- operation,
816
- version: '1.0.0',
817
- timestamp: new Date().toISOString(),
818
- duration_ms: 0,
819
- },
820
- success: false,
821
- error: {
822
- code: 'E_VALIDATION_FAILED',
823
- exitCode: 6,
824
- message: 'Missing required parameter: type',
825
- fix: 'Provide type parameter (e.g., "sessions", "backups")',
826
- },
827
- },
828
- };
829
- }
830
- break;
831
- }
832
- return { valid: true };
833
- }
834
- /**
835
- * Validate tools skill.* sub-operation parameters
836
- */
837
- function validateSkillSubParams(operation, params) {
838
- switch (operation) {
839
- case 'install':
840
- case 'uninstall':
841
- case 'enable':
842
- case 'disable':
843
- case 'configure':
844
- if (!params?.name) {
845
- return {
846
- valid: false,
847
- error: {
848
- _meta: {
849
- gateway: 'mutate',
850
- domain: 'tools',
851
- operation,
852
- version: '1.0.0',
853
- timestamp: new Date().toISOString(),
854
- duration_ms: 0,
855
- },
856
- success: false,
857
- error: {
858
- code: 'E_VALIDATION_FAILED',
859
- exitCode: 6,
860
- message: 'Missing required parameter: name',
861
- fix: 'Provide name parameter for the skill',
862
- },
863
- },
864
- };
865
- }
866
- break;
867
- }
868
- return { valid: true };
869
- }
870
- /**
871
- * Validate pipeline (canonical) domain parameters
872
- *
873
- * Handles stage.* and release.* prefixed operations that map to
874
- * the legacy lifecycle and release domains respectively.
875
- */
876
- function validatePipelineParams(operation, params) {
877
- // Stage operations (lifecycle alias)
878
- if (operation.startsWith('stage.')) {
879
- const stageOp = operation.slice('stage.'.length);
880
- return validateStageParams(stageOp, params);
881
- }
882
- // Release operations
883
- if (operation.startsWith('release.')) {
884
- const releaseOp = operation.slice('release.'.length);
885
- return validateReleaseParams(releaseOp, params);
886
- }
887
- // Chain operations
888
- if (operation.startsWith('chain.')) {
889
- const chainOp = operation.slice('chain.'.length);
890
- return validateChainParams(chainOp, params);
891
- }
892
- return { valid: true };
893
- }
894
- /**
895
- * Validate tools (canonical) domain parameters
896
- *
897
- * Handles skill.*, issue.*, and provider.* prefixed operations that
898
- * map to the legacy skills, issues, and providers domains respectively.
899
- */
900
- function validateToolsParams(operation, params) {
901
- // Skill operations
902
- if (operation.startsWith('skill.')) {
903
- const skillOp = operation.slice('skill.'.length);
904
- return validateSkillSubParams(skillOp, params);
905
- }
906
- // Issue and provider operations pass through without extra validation
907
- return { valid: true };
908
- }
909
- /**
910
- * Register mutate tool with MCP server
911
- *
912
- * Returns tool definition for ListToolsRequestSchema handler
913
- */
914
- export function registerMutateTool() {
915
- return {
916
- name: 'mutate',
917
- description: 'CLEO write operations: create, update, complete tasks; manage sessions; spawn agents; progress lifecycle; execute releases. Modifies state with validation. Use query with domain "admin", operation "help" first to discover available operations.',
918
- inputSchema: {
919
- type: 'object',
920
- required: ['domain', 'operation'],
921
- properties: {
922
- domain: {
923
- type: 'string',
924
- enum: Object.keys(MUTATE_OPERATIONS),
925
- description: 'Functional domain to mutate',
926
- },
927
- operation: {
928
- type: 'string',
929
- description: 'Domain-specific write operation. Call query admin.help to see the full operation matrix. Common: tasks.add, tasks.update, tasks.complete, session.start, session.end',
930
- },
931
- params: {
932
- type: 'object',
933
- description: 'Operation-specific parameters',
934
- additionalProperties: true,
935
- },
936
- },
937
- },
938
- };
939
- }
940
- /**
941
- * Handle mutate request
942
- *
943
- * Validates parameters, logs to audit trail, routes to domain handler,
944
- * and handles idempotency
945
- *
946
- * @param request Mutate request with domain, operation, and params
947
- * @returns Promise resolving to mutate response
948
- */
949
- export async function handleMutateRequest(request) {
950
- const startTime = Date.now();
951
- // Validate request parameters
952
- const validation = validateMutateParams(request);
953
- if (!validation.valid) {
954
- return validation.error;
955
- }
956
- // Build domain request
957
- const domainRequest = {
958
- gateway: 'mutate',
959
- domain: request.domain,
960
- operation: request.operation,
961
- params: request.params,
962
- };
963
- const response = {
964
- _meta: {
965
- gateway: 'mutate',
966
- domain: request.domain,
967
- operation: request.operation,
968
- version: '1.0.0',
969
- timestamp: new Date().toISOString(),
970
- duration_ms: Date.now() - startTime,
971
- },
972
- success: true,
973
- data: domainRequest,
974
- };
975
- return response;
976
- }
977
- /**
978
- * Check if operation is idempotent
979
- */
980
- export function isIdempotentOperation(domain, operation) {
981
- return IDEMPOTENT_OPERATIONS[domain]?.includes(operation) || false;
982
- }
983
- /**
984
- * Check if operation requires session binding
985
- */
986
- export function requiresSession(domain, operation) {
987
- return SESSION_REQUIRED_OPERATIONS[domain]?.includes(operation) || false;
988
- }
989
- /**
990
- * Get mutate operation count for specific domain or all domains
991
- */
992
- export function getMutateOperationCount(domain) {
993
- if (domain) {
994
- return MUTATE_OPERATIONS[domain]?.length || 0;
995
- }
996
- return actualMutateCount;
997
- }
998
- /**
999
- * Check if operation is write (mutate)
1000
- */
1001
- export function isMutateOperation(domain, operation) {
1002
- return MUTATE_OPERATIONS[domain]?.includes(operation) || false;
1003
- }
1004
- /**
1005
- * Get all mutate domains
1006
- */
1007
- export function getMutateDomains() {
1008
- return Object.keys(MUTATE_OPERATIONS);
1009
- }
1010
- /**
1011
- * Get operations for specific mutate domain
1012
- */
1013
- export function getMutateOperations(domain) {
1014
- return MUTATE_OPERATIONS[domain] || [];
1015
- }
1016
- //# sourceMappingURL=mutate.js.map