@cleocode/cleo 2026.3.73 → 2026.3.76

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 (718) hide show
  1. package/README.md +1 -1
  2. package/dist/cli/index.js +4928 -1914
  3. package/dist/cli/index.js.map +4 -4
  4. package/dist/mcp/index.js +4971 -2409
  5. package/dist/mcp/index.js.map +4 -4
  6. package/package.json +7 -5
  7. package/dist/cli/commander-shim.d.ts +0 -112
  8. package/dist/cli/commander-shim.d.ts.map +0 -1
  9. package/dist/cli/commander-shim.js +0 -233
  10. package/dist/cli/commander-shim.js.map +0 -1
  11. package/dist/cli/commands/add.d.ts +0 -12
  12. package/dist/cli/commands/add.d.ts.map +0 -1
  13. package/dist/cli/commands/add.js +0 -94
  14. package/dist/cli/commands/add.js.map +0 -1
  15. package/dist/cli/commands/adr.d.ts +0 -27
  16. package/dist/cli/commands/adr.d.ts.map +0 -1
  17. package/dist/cli/commands/adr.js +0 -79
  18. package/dist/cli/commands/adr.js.map +0 -1
  19. package/dist/cli/commands/agents.d.ts +0 -31
  20. package/dist/cli/commands/agents.d.ts.map +0 -1
  21. package/dist/cli/commands/agents.js +0 -104
  22. package/dist/cli/commands/agents.js.map +0 -1
  23. package/dist/cli/commands/analyze.d.ts +0 -12
  24. package/dist/cli/commands/analyze.d.ts.map +0 -1
  25. package/dist/cli/commands/analyze.js +0 -20
  26. package/dist/cli/commands/analyze.js.map +0 -1
  27. package/dist/cli/commands/archive-stats.d.ts +0 -18
  28. package/dist/cli/commands/archive-stats.d.ts.map +0 -1
  29. package/dist/cli/commands/archive-stats.js +0 -49
  30. package/dist/cli/commands/archive-stats.js.map +0 -1
  31. package/dist/cli/commands/archive.d.ts +0 -12
  32. package/dist/cli/commands/archive.d.ts.map +0 -1
  33. package/dist/cli/commands/archive.js +0 -32
  34. package/dist/cli/commands/archive.js.map +0 -1
  35. package/dist/cli/commands/backfill.d.ts +0 -32
  36. package/dist/cli/commands/backfill.d.ts.map +0 -1
  37. package/dist/cli/commands/backfill.js +0 -101
  38. package/dist/cli/commands/backfill.js.map +0 -1
  39. package/dist/cli/commands/backup.d.ts +0 -8
  40. package/dist/cli/commands/backup.d.ts.map +0 -1
  41. package/dist/cli/commands/backup.js +0 -35
  42. package/dist/cli/commands/backup.js.map +0 -1
  43. package/dist/cli/commands/blockers.d.ts +0 -7
  44. package/dist/cli/commands/blockers.d.ts.map +0 -1
  45. package/dist/cli/commands/blockers.js +0 -16
  46. package/dist/cli/commands/blockers.js.map +0 -1
  47. package/dist/cli/commands/briefing.d.ts +0 -22
  48. package/dist/cli/commands/briefing.d.ts.map +0 -1
  49. package/dist/cli/commands/briefing.js +0 -45
  50. package/dist/cli/commands/briefing.js.map +0 -1
  51. package/dist/cli/commands/bug.d.ts +0 -12
  52. package/dist/cli/commands/bug.d.ts.map +0 -1
  53. package/dist/cli/commands/bug.js +0 -81
  54. package/dist/cli/commands/bug.js.map +0 -1
  55. package/dist/cli/commands/checkpoint.d.ts +0 -15
  56. package/dist/cli/commands/checkpoint.d.ts.map +0 -1
  57. package/dist/cli/commands/checkpoint.js +0 -91
  58. package/dist/cli/commands/checkpoint.js.map +0 -1
  59. package/dist/cli/commands/commands.d.ts +0 -13
  60. package/dist/cli/commands/commands.d.ts.map +0 -1
  61. package/dist/cli/commands/commands.js +0 -30
  62. package/dist/cli/commands/commands.js.map +0 -1
  63. package/dist/cli/commands/complete.d.ts +0 -12
  64. package/dist/cli/commands/complete.d.ts.map +0 -1
  65. package/dist/cli/commands/complete.js +0 -43
  66. package/dist/cli/commands/complete.js.map +0 -1
  67. package/dist/cli/commands/compliance.d.ts +0 -8
  68. package/dist/cli/commands/compliance.d.ts.map +0 -1
  69. package/dist/cli/commands/compliance.js +0 -85
  70. package/dist/cli/commands/compliance.js.map +0 -1
  71. package/dist/cli/commands/config.d.ts +0 -10
  72. package/dist/cli/commands/config.d.ts.map +0 -1
  73. package/dist/cli/commands/config.js +0 -69
  74. package/dist/cli/commands/config.js.map +0 -1
  75. package/dist/cli/commands/consensus.d.ts +0 -13
  76. package/dist/cli/commands/consensus.d.ts.map +0 -1
  77. package/dist/cli/commands/consensus.js +0 -45
  78. package/dist/cli/commands/consensus.js.map +0 -1
  79. package/dist/cli/commands/context.d.ts +0 -8
  80. package/dist/cli/commands/context.d.ts.map +0 -1
  81. package/dist/cli/commands/context.js +0 -40
  82. package/dist/cli/commands/context.js.map +0 -1
  83. package/dist/cli/commands/contribution.d.ts +0 -13
  84. package/dist/cli/commands/contribution.d.ts.map +0 -1
  85. package/dist/cli/commands/contribution.js +0 -41
  86. package/dist/cli/commands/contribution.js.map +0 -1
  87. package/dist/cli/commands/current.d.ts +0 -13
  88. package/dist/cli/commands/current.d.ts.map +0 -1
  89. package/dist/cli/commands/current.js +0 -20
  90. package/dist/cli/commands/current.js.map +0 -1
  91. package/dist/cli/commands/dash.d.ts +0 -12
  92. package/dist/cli/commands/dash.d.ts.map +0 -1
  93. package/dist/cli/commands/dash.js +0 -24
  94. package/dist/cli/commands/dash.js.map +0 -1
  95. package/dist/cli/commands/decomposition.d.ts +0 -13
  96. package/dist/cli/commands/decomposition.d.ts.map +0 -1
  97. package/dist/cli/commands/decomposition.js +0 -45
  98. package/dist/cli/commands/decomposition.js.map +0 -1
  99. package/dist/cli/commands/delete.d.ts +0 -12
  100. package/dist/cli/commands/delete.d.ts.map +0 -1
  101. package/dist/cli/commands/delete.js +0 -37
  102. package/dist/cli/commands/delete.js.map +0 -1
  103. package/dist/cli/commands/deps.d.ts +0 -24
  104. package/dist/cli/commands/deps.d.ts.map +0 -1
  105. package/dist/cli/commands/deps.js +0 -98
  106. package/dist/cli/commands/deps.js.map +0 -1
  107. package/dist/cli/commands/detect-drift.d.ts +0 -15
  108. package/dist/cli/commands/detect-drift.d.ts.map +0 -1
  109. package/dist/cli/commands/detect-drift.js +0 -429
  110. package/dist/cli/commands/detect-drift.js.map +0 -1
  111. package/dist/cli/commands/detect.d.ts +0 -10
  112. package/dist/cli/commands/detect.d.ts.map +0 -1
  113. package/dist/cli/commands/detect.js +0 -24
  114. package/dist/cli/commands/detect.js.map +0 -1
  115. package/dist/cli/commands/docs.d.ts +0 -13
  116. package/dist/cli/commands/docs.d.ts.map +0 -1
  117. package/dist/cli/commands/docs.js +0 -169
  118. package/dist/cli/commands/docs.js.map +0 -1
  119. package/dist/cli/commands/doctor.d.ts +0 -13
  120. package/dist/cli/commands/doctor.d.ts.map +0 -1
  121. package/dist/cli/commands/doctor.js +0 -64
  122. package/dist/cli/commands/doctor.js.map +0 -1
  123. package/dist/cli/commands/dynamic.d.ts +0 -24
  124. package/dist/cli/commands/dynamic.d.ts.map +0 -1
  125. package/dist/cli/commands/dynamic.js +0 -27
  126. package/dist/cli/commands/dynamic.js.map +0 -1
  127. package/dist/cli/commands/env.d.ts +0 -12
  128. package/dist/cli/commands/env.d.ts.map +0 -1
  129. package/dist/cli/commands/env.js +0 -44
  130. package/dist/cli/commands/env.js.map +0 -1
  131. package/dist/cli/commands/exists.d.ts +0 -22
  132. package/dist/cli/commands/exists.d.ts.map +0 -1
  133. package/dist/cli/commands/exists.js +0 -51
  134. package/dist/cli/commands/exists.js.map +0 -1
  135. package/dist/cli/commands/export-tasks.d.ts +0 -10
  136. package/dist/cli/commands/export-tasks.d.ts.map +0 -1
  137. package/dist/cli/commands/export-tasks.js +0 -47
  138. package/dist/cli/commands/export-tasks.js.map +0 -1
  139. package/dist/cli/commands/export.d.ts +0 -9
  140. package/dist/cli/commands/export.d.ts.map +0 -1
  141. package/dist/cli/commands/export.js +0 -46
  142. package/dist/cli/commands/export.js.map +0 -1
  143. package/dist/cli/commands/find.d.ts +0 -14
  144. package/dist/cli/commands/find.d.ts.map +0 -1
  145. package/dist/cli/commands/find.js +0 -70
  146. package/dist/cli/commands/find.js.map +0 -1
  147. package/dist/cli/commands/generate-changelog.d.ts +0 -14
  148. package/dist/cli/commands/generate-changelog.d.ts.map +0 -1
  149. package/dist/cli/commands/generate-changelog.js +0 -252
  150. package/dist/cli/commands/generate-changelog.js.map +0 -1
  151. package/dist/cli/commands/grade.d.ts +0 -13
  152. package/dist/cli/commands/grade.d.ts.map +0 -1
  153. package/dist/cli/commands/grade.js +0 -26
  154. package/dist/cli/commands/grade.js.map +0 -1
  155. package/dist/cli/commands/history.d.ts +0 -9
  156. package/dist/cli/commands/history.d.ts.map +0 -1
  157. package/dist/cli/commands/history.js +0 -30
  158. package/dist/cli/commands/history.js.map +0 -1
  159. package/dist/cli/commands/implementation.d.ts +0 -13
  160. package/dist/cli/commands/implementation.d.ts.map +0 -1
  161. package/dist/cli/commands/implementation.js +0 -41
  162. package/dist/cli/commands/implementation.js.map +0 -1
  163. package/dist/cli/commands/import-tasks.d.ts +0 -10
  164. package/dist/cli/commands/import-tasks.d.ts.map +0 -1
  165. package/dist/cli/commands/import-tasks.js +0 -38
  166. package/dist/cli/commands/import-tasks.js.map +0 -1
  167. package/dist/cli/commands/import.d.ts +0 -9
  168. package/dist/cli/commands/import.d.ts.map +0 -1
  169. package/dist/cli/commands/import.js +0 -28
  170. package/dist/cli/commands/import.js.map +0 -1
  171. package/dist/cli/commands/init.d.ts +0 -34
  172. package/dist/cli/commands/init.d.ts.map +0 -1
  173. package/dist/cli/commands/init.js +0 -89
  174. package/dist/cli/commands/init.js.map +0 -1
  175. package/dist/cli/commands/inject.d.ts +0 -8
  176. package/dist/cli/commands/inject.d.ts.map +0 -1
  177. package/dist/cli/commands/inject.js +0 -28
  178. package/dist/cli/commands/inject.js.map +0 -1
  179. package/dist/cli/commands/install-global.d.ts +0 -19
  180. package/dist/cli/commands/install-global.d.ts.map +0 -1
  181. package/dist/cli/commands/install-global.js +0 -50
  182. package/dist/cli/commands/install-global.js.map +0 -1
  183. package/dist/cli/commands/issue.d.ts +0 -17
  184. package/dist/cli/commands/issue.d.ts.map +0 -1
  185. package/dist/cli/commands/issue.js +0 -107
  186. package/dist/cli/commands/issue.js.map +0 -1
  187. package/dist/cli/commands/labels.d.ts +0 -13
  188. package/dist/cli/commands/labels.d.ts.map +0 -1
  189. package/dist/cli/commands/labels.js +0 -44
  190. package/dist/cli/commands/labels.js.map +0 -1
  191. package/dist/cli/commands/lifecycle.d.ts +0 -8
  192. package/dist/cli/commands/lifecycle.d.ts.map +0 -1
  193. package/dist/cli/commands/lifecycle.js +0 -72
  194. package/dist/cli/commands/lifecycle.js.map +0 -1
  195. package/dist/cli/commands/list.d.ts +0 -14
  196. package/dist/cli/commands/list.d.ts.map +0 -1
  197. package/dist/cli/commands/list.js +0 -71
  198. package/dist/cli/commands/list.js.map +0 -1
  199. package/dist/cli/commands/log.d.ts +0 -12
  200. package/dist/cli/commands/log.d.ts.map +0 -1
  201. package/dist/cli/commands/log.js +0 -30
  202. package/dist/cli/commands/log.js.map +0 -1
  203. package/dist/cli/commands/map.d.ts +0 -10
  204. package/dist/cli/commands/map.d.ts.map +0 -1
  205. package/dist/cli/commands/map.js +0 -23
  206. package/dist/cli/commands/map.js.map +0 -1
  207. package/dist/cli/commands/mcp-install.d.ts +0 -17
  208. package/dist/cli/commands/mcp-install.d.ts.map +0 -1
  209. package/dist/cli/commands/mcp-install.js +0 -128
  210. package/dist/cli/commands/mcp-install.js.map +0 -1
  211. package/dist/cli/commands/memory-brain.d.ts +0 -14
  212. package/dist/cli/commands/memory-brain.d.ts.map +0 -1
  213. package/dist/cli/commands/memory-brain.js +0 -151
  214. package/dist/cli/commands/memory-brain.js.map +0 -1
  215. package/dist/cli/commands/migrate-claude-mem.d.ts +0 -18
  216. package/dist/cli/commands/migrate-claude-mem.d.ts.map +0 -1
  217. package/dist/cli/commands/migrate-claude-mem.js +0 -60
  218. package/dist/cli/commands/migrate-claude-mem.js.map +0 -1
  219. package/dist/cli/commands/next.d.ts +0 -9
  220. package/dist/cli/commands/next.d.ts.map +0 -1
  221. package/dist/cli/commands/next.js +0 -20
  222. package/dist/cli/commands/next.js.map +0 -1
  223. package/dist/cli/commands/nexus.d.ts +0 -16
  224. package/dist/cli/commands/nexus.d.ts.map +0 -1
  225. package/dist/cli/commands/nexus.js +0 -155
  226. package/dist/cli/commands/nexus.js.map +0 -1
  227. package/dist/cli/commands/observe.d.ts +0 -9
  228. package/dist/cli/commands/observe.d.ts.map +0 -1
  229. package/dist/cli/commands/observe.js +0 -39
  230. package/dist/cli/commands/observe.js.map +0 -1
  231. package/dist/cli/commands/ops.d.ts +0 -10
  232. package/dist/cli/commands/ops.d.ts.map +0 -1
  233. package/dist/cli/commands/ops.js +0 -19
  234. package/dist/cli/commands/ops.js.map +0 -1
  235. package/dist/cli/commands/orchestrate.d.ts +0 -8
  236. package/dist/cli/commands/orchestrate.d.ts.map +0 -1
  237. package/dist/cli/commands/orchestrate.js +0 -58
  238. package/dist/cli/commands/orchestrate.js.map +0 -1
  239. package/dist/cli/commands/otel.d.ts +0 -12
  240. package/dist/cli/commands/otel.d.ts.map +0 -1
  241. package/dist/cli/commands/otel.js +0 -128
  242. package/dist/cli/commands/otel.js.map +0 -1
  243. package/dist/cli/commands/phase.d.ts +0 -12
  244. package/dist/cli/commands/phase.d.ts.map +0 -1
  245. package/dist/cli/commands/phase.js +0 -88
  246. package/dist/cli/commands/phase.js.map +0 -1
  247. package/dist/cli/commands/phases.d.ts +0 -12
  248. package/dist/cli/commands/phases.d.ts.map +0 -1
  249. package/dist/cli/commands/phases.js +0 -37
  250. package/dist/cli/commands/phases.js.map +0 -1
  251. package/dist/cli/commands/plan.d.ts +0 -8
  252. package/dist/cli/commands/plan.d.ts.map +0 -1
  253. package/dist/cli/commands/plan.js +0 -15
  254. package/dist/cli/commands/plan.js.map +0 -1
  255. package/dist/cli/commands/promote.d.ts +0 -7
  256. package/dist/cli/commands/promote.d.ts.map +0 -1
  257. package/dist/cli/commands/promote.js +0 -15
  258. package/dist/cli/commands/promote.js.map +0 -1
  259. package/dist/cli/commands/reason.d.ts +0 -35
  260. package/dist/cli/commands/reason.d.ts.map +0 -1
  261. package/dist/cli/commands/reason.js +0 -104
  262. package/dist/cli/commands/reason.js.map +0 -1
  263. package/dist/cli/commands/refresh-memory.d.ts +0 -9
  264. package/dist/cli/commands/refresh-memory.d.ts.map +0 -1
  265. package/dist/cli/commands/refresh-memory.js +0 -24
  266. package/dist/cli/commands/refresh-memory.js.map +0 -1
  267. package/dist/cli/commands/relates.d.ts +0 -12
  268. package/dist/cli/commands/relates.d.ts.map +0 -1
  269. package/dist/cli/commands/relates.js +0 -53
  270. package/dist/cli/commands/relates.js.map +0 -1
  271. package/dist/cli/commands/release.d.ts +0 -8
  272. package/dist/cli/commands/release.d.ts.map +0 -1
  273. package/dist/cli/commands/release.js +0 -72
  274. package/dist/cli/commands/release.js.map +0 -1
  275. package/dist/cli/commands/remote.d.ts +0 -12
  276. package/dist/cli/commands/remote.d.ts.map +0 -1
  277. package/dist/cli/commands/remote.js +0 -207
  278. package/dist/cli/commands/remote.js.map +0 -1
  279. package/dist/cli/commands/reorder.d.ts +0 -7
  280. package/dist/cli/commands/reorder.d.ts.map +0 -1
  281. package/dist/cli/commands/reorder.js +0 -20
  282. package/dist/cli/commands/reorder.js.map +0 -1
  283. package/dist/cli/commands/reparent.d.ts +0 -10
  284. package/dist/cli/commands/reparent.d.ts.map +0 -1
  285. package/dist/cli/commands/reparent.js +0 -19
  286. package/dist/cli/commands/reparent.js.map +0 -1
  287. package/dist/cli/commands/research.d.ts +0 -8
  288. package/dist/cli/commands/research.d.ts.map +0 -1
  289. package/dist/cli/commands/research.js +0 -129
  290. package/dist/cli/commands/research.js.map +0 -1
  291. package/dist/cli/commands/restore.d.ts +0 -11
  292. package/dist/cli/commands/restore.d.ts.map +0 -1
  293. package/dist/cli/commands/restore.js +0 -224
  294. package/dist/cli/commands/restore.js.map +0 -1
  295. package/dist/cli/commands/roadmap.d.ts +0 -8
  296. package/dist/cli/commands/roadmap.d.ts.map +0 -1
  297. package/dist/cli/commands/roadmap.js +0 -21
  298. package/dist/cli/commands/roadmap.js.map +0 -1
  299. package/dist/cli/commands/safestop.d.ts +0 -14
  300. package/dist/cli/commands/safestop.d.ts.map +0 -1
  301. package/dist/cli/commands/safestop.js +0 -32
  302. package/dist/cli/commands/safestop.js.map +0 -1
  303. package/dist/cli/commands/self-update.d.ts +0 -15
  304. package/dist/cli/commands/self-update.d.ts.map +0 -1
  305. package/dist/cli/commands/self-update.js +0 -329
  306. package/dist/cli/commands/self-update.js.map +0 -1
  307. package/dist/cli/commands/sequence.d.ts +0 -8
  308. package/dist/cli/commands/sequence.d.ts.map +0 -1
  309. package/dist/cli/commands/sequence.js +0 -30
  310. package/dist/cli/commands/sequence.js.map +0 -1
  311. package/dist/cli/commands/session.d.ts +0 -12
  312. package/dist/cli/commands/session.d.ts.map +0 -1
  313. package/dist/cli/commands/session.js +0 -175
  314. package/dist/cli/commands/session.js.map +0 -1
  315. package/dist/cli/commands/show.d.ts +0 -13
  316. package/dist/cli/commands/show.d.ts.map +0 -1
  317. package/dist/cli/commands/show.js +0 -20
  318. package/dist/cli/commands/show.js.map +0 -1
  319. package/dist/cli/commands/skills.d.ts +0 -13
  320. package/dist/cli/commands/skills.d.ts.map +0 -1
  321. package/dist/cli/commands/skills.js +0 -131
  322. package/dist/cli/commands/skills.js.map +0 -1
  323. package/dist/cli/commands/snapshot.d.ts +0 -9
  324. package/dist/cli/commands/snapshot.d.ts.map +0 -1
  325. package/dist/cli/commands/snapshot.js +0 -50
  326. package/dist/cli/commands/snapshot.js.map +0 -1
  327. package/dist/cli/commands/specification.d.ts +0 -13
  328. package/dist/cli/commands/specification.d.ts.map +0 -1
  329. package/dist/cli/commands/specification.js +0 -45
  330. package/dist/cli/commands/specification.js.map +0 -1
  331. package/dist/cli/commands/start.d.ts +0 -13
  332. package/dist/cli/commands/start.d.ts.map +0 -1
  333. package/dist/cli/commands/start.js +0 -20
  334. package/dist/cli/commands/start.js.map +0 -1
  335. package/dist/cli/commands/stats.d.ts +0 -12
  336. package/dist/cli/commands/stats.d.ts.map +0 -1
  337. package/dist/cli/commands/stats.js +0 -35
  338. package/dist/cli/commands/stats.js.map +0 -1
  339. package/dist/cli/commands/sticky.d.ts +0 -16
  340. package/dist/cli/commands/sticky.d.ts.map +0 -1
  341. package/dist/cli/commands/sticky.js +0 -211
  342. package/dist/cli/commands/sticky.js.map +0 -1
  343. package/dist/cli/commands/stop.d.ts +0 -13
  344. package/dist/cli/commands/stop.d.ts.map +0 -1
  345. package/dist/cli/commands/stop.js +0 -20
  346. package/dist/cli/commands/stop.js.map +0 -1
  347. package/dist/cli/commands/testing.d.ts +0 -13
  348. package/dist/cli/commands/testing.d.ts.map +0 -1
  349. package/dist/cli/commands/testing.js +0 -64
  350. package/dist/cli/commands/testing.js.map +0 -1
  351. package/dist/cli/commands/token.d.ts +0 -10
  352. package/dist/cli/commands/token.d.ts.map +0 -1
  353. package/dist/cli/commands/token.js +0 -135
  354. package/dist/cli/commands/token.js.map +0 -1
  355. package/dist/cli/commands/update.d.ts +0 -12
  356. package/dist/cli/commands/update.d.ts.map +0 -1
  357. package/dist/cli/commands/update.js +0 -83
  358. package/dist/cli/commands/update.js.map +0 -1
  359. package/dist/cli/commands/upgrade.d.ts +0 -18
  360. package/dist/cli/commands/upgrade.d.ts.map +0 -1
  361. package/dist/cli/commands/upgrade.js +0 -103
  362. package/dist/cli/commands/upgrade.js.map +0 -1
  363. package/dist/cli/commands/validate.d.ts +0 -12
  364. package/dist/cli/commands/validate.d.ts.map +0 -1
  365. package/dist/cli/commands/validate.js +0 -23
  366. package/dist/cli/commands/validate.js.map +0 -1
  367. package/dist/cli/commands/verify.d.ts +0 -8
  368. package/dist/cli/commands/verify.d.ts.map +0 -1
  369. package/dist/cli/commands/verify.js +0 -28
  370. package/dist/cli/commands/verify.js.map +0 -1
  371. package/dist/cli/commands/web.d.ts +0 -13
  372. package/dist/cli/commands/web.d.ts.map +0 -1
  373. package/dist/cli/commands/web.js +0 -264
  374. package/dist/cli/commands/web.js.map +0 -1
  375. package/dist/cli/field-context.d.ts +0 -32
  376. package/dist/cli/field-context.d.ts.map +0 -1
  377. package/dist/cli/field-context.js +0 -47
  378. package/dist/cli/field-context.js.map +0 -1
  379. package/dist/cli/format-context.d.ts +0 -32
  380. package/dist/cli/format-context.d.ts.map +0 -1
  381. package/dist/cli/format-context.js +0 -50
  382. package/dist/cli/format-context.js.map +0 -1
  383. package/dist/cli/index.d.ts +0 -9
  384. package/dist/cli/index.d.ts.map +0 -1
  385. package/dist/cli/logger-bootstrap.d.ts +0 -6
  386. package/dist/cli/logger-bootstrap.d.ts.map +0 -1
  387. package/dist/cli/logger-bootstrap.js +0 -10
  388. package/dist/cli/logger-bootstrap.js.map +0 -1
  389. package/dist/cli/middleware/output-format.d.ts +0 -30
  390. package/dist/cli/middleware/output-format.d.ts.map +0 -1
  391. package/dist/cli/middleware/output-format.js +0 -35
  392. package/dist/cli/middleware/output-format.js.map +0 -1
  393. package/dist/cli/progress.d.ts +0 -84
  394. package/dist/cli/progress.d.ts.map +0 -1
  395. package/dist/cli/progress.js +0 -169
  396. package/dist/cli/progress.js.map +0 -1
  397. package/dist/cli/renderers/colors.d.ts +0 -32
  398. package/dist/cli/renderers/colors.d.ts.map +0 -1
  399. package/dist/cli/renderers/colors.js +0 -141
  400. package/dist/cli/renderers/colors.js.map +0 -1
  401. package/dist/cli/renderers/error.d.ts +0 -13
  402. package/dist/cli/renderers/error.d.ts.map +0 -1
  403. package/dist/cli/renderers/error.js +0 -42
  404. package/dist/cli/renderers/error.js.map +0 -1
  405. package/dist/cli/renderers/index.d.ts +0 -59
  406. package/dist/cli/renderers/index.d.ts.map +0 -1
  407. package/dist/cli/renderers/index.js +0 -184
  408. package/dist/cli/renderers/index.js.map +0 -1
  409. package/dist/cli/renderers/normalizer.d.ts +0 -21
  410. package/dist/cli/renderers/normalizer.d.ts.map +0 -1
  411. package/dist/cli/renderers/normalizer.js +0 -106
  412. package/dist/cli/renderers/normalizer.js.map +0 -1
  413. package/dist/cli/renderers/system.d.ts +0 -25
  414. package/dist/cli/renderers/system.d.ts.map +0 -1
  415. package/dist/cli/renderers/system.js +0 -416
  416. package/dist/cli/renderers/system.js.map +0 -1
  417. package/dist/cli/renderers/tasks.d.ts +0 -28
  418. package/dist/cli/renderers/tasks.d.ts.map +0 -1
  419. package/dist/cli/renderers/tasks.js +0 -306
  420. package/dist/cli/renderers/tasks.js.map +0 -1
  421. package/dist/dispatch/adapters/cli.d.ts +0 -67
  422. package/dist/dispatch/adapters/cli.d.ts.map +0 -1
  423. package/dist/dispatch/adapters/cli.js +0 -205
  424. package/dist/dispatch/adapters/cli.js.map +0 -1
  425. package/dist/dispatch/adapters/mcp.d.ts +0 -37
  426. package/dist/dispatch/adapters/mcp.d.ts.map +0 -1
  427. package/dist/dispatch/adapters/mcp.js +0 -122
  428. package/dist/dispatch/adapters/mcp.js.map +0 -1
  429. package/dist/dispatch/context/session-context.d.ts +0 -54
  430. package/dist/dispatch/context/session-context.d.ts.map +0 -1
  431. package/dist/dispatch/context/session-context.js +0 -61
  432. package/dist/dispatch/context/session-context.js.map +0 -1
  433. package/dist/dispatch/dispatcher.d.ts +0 -23
  434. package/dist/dispatch/dispatcher.d.ts.map +0 -1
  435. package/dist/dispatch/dispatcher.js +0 -84
  436. package/dist/dispatch/dispatcher.js.map +0 -1
  437. package/dist/dispatch/domains/_base.d.ts +0 -59
  438. package/dist/dispatch/domains/_base.d.ts.map +0 -1
  439. package/dist/dispatch/domains/_base.js +0 -77
  440. package/dist/dispatch/domains/_base.js.map +0 -1
  441. package/dist/dispatch/domains/_meta.d.ts +0 -23
  442. package/dist/dispatch/domains/_meta.d.ts.map +0 -1
  443. package/dist/dispatch/domains/_meta.js +0 -25
  444. package/dist/dispatch/domains/_meta.js.map +0 -1
  445. package/dist/dispatch/domains/_routing.d.ts +0 -8
  446. package/dist/dispatch/domains/_routing.d.ts.map +0 -1
  447. package/dist/dispatch/domains/_routing.js +0 -20
  448. package/dist/dispatch/domains/_routing.js.map +0 -1
  449. package/dist/dispatch/domains/admin.d.ts +0 -25
  450. package/dist/dispatch/domains/admin.d.ts.map +0 -1
  451. package/dist/dispatch/domains/admin.js +0 -699
  452. package/dist/dispatch/domains/admin.js.map +0 -1
  453. package/dist/dispatch/domains/check.d.ts +0 -22
  454. package/dist/dispatch/domains/check.d.ts.map +0 -1
  455. package/dist/dispatch/domains/check.js +0 -293
  456. package/dist/dispatch/domains/check.js.map +0 -1
  457. package/dist/dispatch/domains/index.d.ts +0 -26
  458. package/dist/dispatch/domains/index.d.ts.map +0 -1
  459. package/dist/dispatch/domains/index.js +0 -38
  460. package/dist/dispatch/domains/index.js.map +0 -1
  461. package/dist/dispatch/domains/memory.d.ts +0 -22
  462. package/dist/dispatch/domains/memory.d.ts.map +0 -1
  463. package/dist/dispatch/domains/memory.js +0 -303
  464. package/dist/dispatch/domains/memory.js.map +0 -1
  465. package/dist/dispatch/domains/nexus.d.ts +0 -22
  466. package/dist/dispatch/domains/nexus.d.ts.map +0 -1
  467. package/dist/dispatch/domains/nexus.js +0 -286
  468. package/dist/dispatch/domains/nexus.js.map +0 -1
  469. package/dist/dispatch/domains/orchestrate.d.ts +0 -19
  470. package/dist/dispatch/domains/orchestrate.d.ts.map +0 -1
  471. package/dist/dispatch/domains/orchestrate.js +0 -259
  472. package/dist/dispatch/domains/orchestrate.js.map +0 -1
  473. package/dist/dispatch/domains/pipeline.d.ts +0 -35
  474. package/dist/dispatch/domains/pipeline.d.ts.map +0 -1
  475. package/dist/dispatch/domains/pipeline.js +0 -555
  476. package/dist/dispatch/domains/pipeline.js.map +0 -1
  477. package/dist/dispatch/domains/session.d.ts +0 -22
  478. package/dist/dispatch/domains/session.d.ts.map +0 -1
  479. package/dist/dispatch/domains/session.js +0 -255
  480. package/dist/dispatch/domains/session.js.map +0 -1
  481. package/dist/dispatch/domains/sticky.d.ts +0 -20
  482. package/dist/dispatch/domains/sticky.d.ts.map +0 -1
  483. package/dist/dispatch/domains/sticky.js +0 -164
  484. package/dist/dispatch/domains/sticky.js.map +0 -1
  485. package/dist/dispatch/domains/tasks.d.ts +0 -25
  486. package/dist/dispatch/domains/tasks.d.ts.map +0 -1
  487. package/dist/dispatch/domains/tasks.js +0 -339
  488. package/dist/dispatch/domains/tasks.js.map +0 -1
  489. package/dist/dispatch/domains/tools.d.ts +0 -36
  490. package/dist/dispatch/domains/tools.d.ts.map +0 -1
  491. package/dist/dispatch/domains/tools.js +0 -451
  492. package/dist/dispatch/domains/tools.js.map +0 -1
  493. package/dist/dispatch/engines/_error.d.ts +0 -42
  494. package/dist/dispatch/engines/_error.d.ts.map +0 -1
  495. package/dist/dispatch/engines/_error.js +0 -201
  496. package/dist/dispatch/engines/_error.js.map +0 -1
  497. package/dist/dispatch/engines/codebase-map-engine.d.ts +0 -17
  498. package/dist/dispatch/engines/codebase-map-engine.d.ts.map +0 -1
  499. package/dist/dispatch/engines/codebase-map-engine.js +0 -29
  500. package/dist/dispatch/engines/codebase-map-engine.js.map +0 -1
  501. package/dist/dispatch/engines/config-engine.d.ts +0 -32
  502. package/dist/dispatch/engines/config-engine.d.ts.map +0 -1
  503. package/dist/dispatch/engines/config-engine.js +0 -70
  504. package/dist/dispatch/engines/config-engine.js.map +0 -1
  505. package/dist/dispatch/engines/hooks-engine.d.ts +0 -47
  506. package/dist/dispatch/engines/hooks-engine.d.ts.map +0 -1
  507. package/dist/dispatch/engines/hooks-engine.js +0 -57
  508. package/dist/dispatch/engines/hooks-engine.js.map +0 -1
  509. package/dist/dispatch/engines/init-engine.d.ts +0 -43
  510. package/dist/dispatch/engines/init-engine.d.ts.map +0 -1
  511. package/dist/dispatch/engines/init-engine.js +0 -73
  512. package/dist/dispatch/engines/init-engine.js.map +0 -1
  513. package/dist/dispatch/engines/lifecycle-engine.d.ts +0 -66
  514. package/dist/dispatch/engines/lifecycle-engine.d.ts.map +0 -1
  515. package/dist/dispatch/engines/lifecycle-engine.js +0 -213
  516. package/dist/dispatch/engines/lifecycle-engine.js.map +0 -1
  517. package/dist/dispatch/engines/memory-engine.d.ts +0 -10
  518. package/dist/dispatch/engines/memory-engine.d.ts.map +0 -1
  519. package/dist/dispatch/engines/memory-engine.js +0 -10
  520. package/dist/dispatch/engines/memory-engine.js.map +0 -1
  521. package/dist/dispatch/engines/nexus-engine.d.ts +0 -167
  522. package/dist/dispatch/engines/nexus-engine.d.ts.map +0 -1
  523. package/dist/dispatch/engines/nexus-engine.js +0 -356
  524. package/dist/dispatch/engines/nexus-engine.js.map +0 -1
  525. package/dist/dispatch/engines/orchestrate-engine.d.ts +0 -133
  526. package/dist/dispatch/engines/orchestrate-engine.d.ts.map +0 -1
  527. package/dist/dispatch/engines/orchestrate-engine.js +0 -769
  528. package/dist/dispatch/engines/orchestrate-engine.js.map +0 -1
  529. package/dist/dispatch/engines/pipeline-engine.d.ts +0 -51
  530. package/dist/dispatch/engines/pipeline-engine.d.ts.map +0 -1
  531. package/dist/dispatch/engines/pipeline-engine.js +0 -191
  532. package/dist/dispatch/engines/pipeline-engine.js.map +0 -1
  533. package/dist/dispatch/engines/release-engine.d.ts +0 -94
  534. package/dist/dispatch/engines/release-engine.d.ts.map +0 -1
  535. package/dist/dispatch/engines/release-engine.js +0 -669
  536. package/dist/dispatch/engines/release-engine.js.map +0 -1
  537. package/dist/dispatch/engines/session-engine.d.ts +0 -323
  538. package/dist/dispatch/engines/session-engine.d.ts.map +0 -1
  539. package/dist/dispatch/engines/session-engine.js +0 -869
  540. package/dist/dispatch/engines/session-engine.js.map +0 -1
  541. package/dist/dispatch/engines/sticky-engine.d.ts +0 -100
  542. package/dist/dispatch/engines/sticky-engine.d.ts.map +0 -1
  543. package/dist/dispatch/engines/sticky-engine.js +0 -181
  544. package/dist/dispatch/engines/sticky-engine.js.map +0 -1
  545. package/dist/dispatch/engines/system-engine.d.ts +0 -409
  546. package/dist/dispatch/engines/system-engine.d.ts.map +0 -1
  547. package/dist/dispatch/engines/system-engine.js +0 -1180
  548. package/dist/dispatch/engines/system-engine.js.map +0 -1
  549. package/dist/dispatch/engines/task-engine.d.ts +0 -630
  550. package/dist/dispatch/engines/task-engine.d.ts.map +0 -1
  551. package/dist/dispatch/engines/task-engine.js +0 -979
  552. package/dist/dispatch/engines/task-engine.js.map +0 -1
  553. package/dist/dispatch/engines/template-parser.d.ts +0 -34
  554. package/dist/dispatch/engines/template-parser.d.ts.map +0 -1
  555. package/dist/dispatch/engines/template-parser.js +0 -57
  556. package/dist/dispatch/engines/template-parser.js.map +0 -1
  557. package/dist/dispatch/engines/tools-engine.d.ts +0 -270
  558. package/dist/dispatch/engines/tools-engine.d.ts.map +0 -1
  559. package/dist/dispatch/engines/tools-engine.js +0 -636
  560. package/dist/dispatch/engines/tools-engine.js.map +0 -1
  561. package/dist/dispatch/engines/validate-engine.d.ts +0 -154
  562. package/dist/dispatch/engines/validate-engine.d.ts.map +0 -1
  563. package/dist/dispatch/engines/validate-engine.js +0 -524
  564. package/dist/dispatch/engines/validate-engine.js.map +0 -1
  565. package/dist/dispatch/index.d.ts +0 -20
  566. package/dist/dispatch/index.d.ts.map +0 -1
  567. package/dist/dispatch/index.js +0 -19
  568. package/dist/dispatch/index.js.map +0 -1
  569. package/dist/dispatch/lib/capability-matrix.d.ts +0 -11
  570. package/dist/dispatch/lib/capability-matrix.d.ts.map +0 -1
  571. package/dist/dispatch/lib/capability-matrix.js +0 -10
  572. package/dist/dispatch/lib/capability-matrix.js.map +0 -1
  573. package/dist/dispatch/lib/config.d.ts +0 -16
  574. package/dist/dispatch/lib/config.d.ts.map +0 -1
  575. package/dist/dispatch/lib/config.js +0 -15
  576. package/dist/dispatch/lib/config.js.map +0 -1
  577. package/dist/dispatch/lib/engine.d.ts +0 -25
  578. package/dist/dispatch/lib/engine.d.ts.map +0 -1
  579. package/dist/dispatch/lib/engine.js +0 -44
  580. package/dist/dispatch/lib/engine.js.map +0 -1
  581. package/dist/dispatch/lib/meta.d.ts +0 -26
  582. package/dist/dispatch/lib/meta.d.ts.map +0 -1
  583. package/dist/dispatch/lib/meta.js +0 -37
  584. package/dist/dispatch/lib/meta.js.map +0 -1
  585. package/dist/dispatch/lib/param-utils.d.ts +0 -11
  586. package/dist/dispatch/lib/param-utils.d.ts.map +0 -1
  587. package/dist/dispatch/lib/param-utils.js +0 -10
  588. package/dist/dispatch/lib/param-utils.js.map +0 -1
  589. package/dist/dispatch/lib/projections.d.ts +0 -23
  590. package/dist/dispatch/lib/projections.d.ts.map +0 -1
  591. package/dist/dispatch/lib/projections.js +0 -48
  592. package/dist/dispatch/lib/projections.js.map +0 -1
  593. package/dist/dispatch/lib/schema-utils.d.ts +0 -42
  594. package/dist/dispatch/lib/schema-utils.d.ts.map +0 -1
  595. package/dist/dispatch/lib/schema-utils.js +0 -93
  596. package/dist/dispatch/lib/schema-utils.js.map +0 -1
  597. package/dist/dispatch/lib/security.d.ts +0 -11
  598. package/dist/dispatch/lib/security.d.ts.map +0 -1
  599. package/dist/dispatch/lib/security.js +0 -10
  600. package/dist/dispatch/lib/security.js.map +0 -1
  601. package/dist/dispatch/middleware/audit.d.ts +0 -23
  602. package/dist/dispatch/middleware/audit.d.ts.map +0 -1
  603. package/dist/dispatch/middleware/audit.js +0 -169
  604. package/dist/dispatch/middleware/audit.js.map +0 -1
  605. package/dist/dispatch/middleware/field-filter.d.ts +0 -24
  606. package/dist/dispatch/middleware/field-filter.d.ts.map +0 -1
  607. package/dist/dispatch/middleware/field-filter.js +0 -65
  608. package/dist/dispatch/middleware/field-filter.js.map +0 -1
  609. package/dist/dispatch/middleware/pipeline.d.ts +0 -20
  610. package/dist/dispatch/middleware/pipeline.d.ts.map +0 -1
  611. package/dist/dispatch/middleware/pipeline.js +0 -47
  612. package/dist/dispatch/middleware/pipeline.js.map +0 -1
  613. package/dist/dispatch/middleware/projection.d.ts +0 -35
  614. package/dist/dispatch/middleware/projection.d.ts.map +0 -1
  615. package/dist/dispatch/middleware/projection.js +0 -145
  616. package/dist/dispatch/middleware/projection.js.map +0 -1
  617. package/dist/dispatch/middleware/protocol-enforcement.d.ts +0 -12
  618. package/dist/dispatch/middleware/protocol-enforcement.d.ts.map +0 -1
  619. package/dist/dispatch/middleware/protocol-enforcement.js +0 -30
  620. package/dist/dispatch/middleware/protocol-enforcement.js.map +0 -1
  621. package/dist/dispatch/middleware/rate-limiter.d.ts +0 -30
  622. package/dist/dispatch/middleware/rate-limiter.d.ts.map +0 -1
  623. package/dist/dispatch/middleware/rate-limiter.js +0 -101
  624. package/dist/dispatch/middleware/rate-limiter.js.map +0 -1
  625. package/dist/dispatch/middleware/sanitizer.d.ts +0 -10
  626. package/dist/dispatch/middleware/sanitizer.d.ts.map +0 -1
  627. package/dist/dispatch/middleware/sanitizer.js +0 -42
  628. package/dist/dispatch/middleware/sanitizer.js.map +0 -1
  629. package/dist/dispatch/middleware/session-resolver.d.ts +0 -26
  630. package/dist/dispatch/middleware/session-resolver.d.ts.map +0 -1
  631. package/dist/dispatch/middleware/session-resolver.js +0 -65
  632. package/dist/dispatch/middleware/session-resolver.js.map +0 -1
  633. package/dist/dispatch/middleware/verification-gates.d.ts +0 -3
  634. package/dist/dispatch/middleware/verification-gates.d.ts.map +0 -1
  635. package/dist/dispatch/middleware/verification-gates.js +0 -40
  636. package/dist/dispatch/middleware/verification-gates.js.map +0 -1
  637. package/dist/dispatch/registry.d.ts +0 -91
  638. package/dist/dispatch/registry.d.ts.map +0 -1
  639. package/dist/dispatch/registry.js +0 -2924
  640. package/dist/dispatch/registry.js.map +0 -1
  641. package/dist/dispatch/types.d.ts +0 -218
  642. package/dist/dispatch/types.d.ts.map +0 -1
  643. package/dist/dispatch/types.js +0 -25
  644. package/dist/dispatch/types.js.map +0 -1
  645. package/dist/mcp/gateways/mutate.d.ts +0 -146
  646. package/dist/mcp/gateways/mutate.d.ts.map +0 -1
  647. package/dist/mcp/gateways/mutate.js +0 -1016
  648. package/dist/mcp/gateways/mutate.js.map +0 -1
  649. package/dist/mcp/gateways/query.d.ts +0 -138
  650. package/dist/mcp/gateways/query.d.ts.map +0 -1
  651. package/dist/mcp/gateways/query.js +0 -186
  652. package/dist/mcp/gateways/query.js.map +0 -1
  653. package/dist/mcp/index.d.ts +0 -16
  654. package/dist/mcp/index.d.ts.map +0 -1
  655. package/dist/mcp/lib/background-jobs.d.ts +0 -86
  656. package/dist/mcp/lib/background-jobs.d.ts.map +0 -1
  657. package/dist/mcp/lib/background-jobs.js +0 -183
  658. package/dist/mcp/lib/background-jobs.js.map +0 -1
  659. package/dist/mcp/lib/budget.d.ts +0 -35
  660. package/dist/mcp/lib/budget.d.ts.map +0 -1
  661. package/dist/mcp/lib/budget.js +0 -102
  662. package/dist/mcp/lib/budget.js.map +0 -1
  663. package/dist/mcp/lib/cache.d.ts +0 -78
  664. package/dist/mcp/lib/cache.d.ts.map +0 -1
  665. package/dist/mcp/lib/cache.js +0 -207
  666. package/dist/mcp/lib/cache.js.map +0 -1
  667. package/dist/mcp/lib/config.d.ts +0 -42
  668. package/dist/mcp/lib/config.d.ts.map +0 -1
  669. package/dist/mcp/lib/config.js +0 -241
  670. package/dist/mcp/lib/config.js.map +0 -1
  671. package/dist/mcp/lib/defaults.d.ts +0 -115
  672. package/dist/mcp/lib/defaults.d.ts.map +0 -1
  673. package/dist/mcp/lib/defaults.js +0 -61
  674. package/dist/mcp/lib/defaults.js.map +0 -1
  675. package/dist/mcp/lib/gate-validators.d.ts +0 -13
  676. package/dist/mcp/lib/gate-validators.d.ts.map +0 -1
  677. package/dist/mcp/lib/gate-validators.js +0 -13
  678. package/dist/mcp/lib/gate-validators.js.map +0 -1
  679. package/dist/mcp/lib/gateway-meta.d.ts +0 -37
  680. package/dist/mcp/lib/gateway-meta.d.ts.map +0 -1
  681. package/dist/mcp/lib/gateway-meta.js +0 -50
  682. package/dist/mcp/lib/gateway-meta.js.map +0 -1
  683. package/dist/mcp/lib/job-manager-accessor.d.ts +0 -10
  684. package/dist/mcp/lib/job-manager-accessor.d.ts.map +0 -1
  685. package/dist/mcp/lib/job-manager-accessor.js +0 -14
  686. package/dist/mcp/lib/job-manager-accessor.js.map +0 -1
  687. package/dist/mcp/lib/protocol-enforcement.d.ts +0 -12
  688. package/dist/mcp/lib/protocol-enforcement.d.ts.map +0 -1
  689. package/dist/mcp/lib/protocol-enforcement.js +0 -12
  690. package/dist/mcp/lib/protocol-enforcement.js.map +0 -1
  691. package/dist/mcp/lib/protocol-rules.d.ts +0 -12
  692. package/dist/mcp/lib/protocol-rules.d.ts.map +0 -1
  693. package/dist/mcp/lib/protocol-rules.js +0 -12
  694. package/dist/mcp/lib/protocol-rules.js.map +0 -1
  695. package/dist/mcp/lib/rate-limiter.d.ts +0 -110
  696. package/dist/mcp/lib/rate-limiter.d.ts.map +0 -1
  697. package/dist/mcp/lib/rate-limiter.js +0 -208
  698. package/dist/mcp/lib/rate-limiter.js.map +0 -1
  699. package/dist/mcp/lib/router.d.ts +0 -58
  700. package/dist/mcp/lib/router.d.ts.map +0 -1
  701. package/dist/mcp/lib/router.js +0 -12
  702. package/dist/mcp/lib/router.js.map +0 -1
  703. package/dist/mcp/lib/security.d.ts +0 -161
  704. package/dist/mcp/lib/security.d.ts.map +0 -1
  705. package/dist/mcp/lib/security.js +0 -360
  706. package/dist/mcp/lib/security.js.map +0 -1
  707. package/dist/mcp/lib/verification-gates.d.ts +0 -13
  708. package/dist/mcp/lib/verification-gates.d.ts.map +0 -1
  709. package/dist/mcp/lib/verification-gates.js +0 -12
  710. package/dist/mcp/lib/verification-gates.js.map +0 -1
  711. package/dist/mcp/resources/budget.d.ts +0 -22
  712. package/dist/mcp/resources/budget.d.ts.map +0 -1
  713. package/dist/mcp/resources/budget.js +0 -46
  714. package/dist/mcp/resources/budget.js.map +0 -1
  715. package/dist/mcp/resources/index.d.ts +0 -53
  716. package/dist/mcp/resources/index.d.ts.map +0 -1
  717. package/dist/mcp/resources/index.js +0 -278
  718. 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