@cleocode/mcp-server 0.86.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (374) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +306 -0
  3. package/dist/domains/index.d.ts +16 -0
  4. package/dist/domains/index.d.ts.map +1 -0
  5. package/dist/domains/index.js +16 -0
  6. package/dist/domains/index.js.map +1 -0
  7. package/dist/domains/lifecycle.d.ts +147 -0
  8. package/dist/domains/lifecycle.d.ts.map +1 -0
  9. package/dist/domains/lifecycle.js +452 -0
  10. package/dist/domains/lifecycle.js.map +1 -0
  11. package/dist/domains/orchestrate.d.ts +133 -0
  12. package/dist/domains/orchestrate.d.ts.map +1 -0
  13. package/dist/domains/orchestrate.js +465 -0
  14. package/dist/domains/orchestrate.js.map +1 -0
  15. package/dist/domains/release.d.ts +109 -0
  16. package/dist/domains/release.d.ts.map +1 -0
  17. package/dist/domains/release.js +400 -0
  18. package/dist/domains/release.js.map +1 -0
  19. package/dist/domains/research.d.ts +139 -0
  20. package/dist/domains/research.d.ts.map +1 -0
  21. package/dist/domains/research.js +606 -0
  22. package/dist/domains/research.js.map +1 -0
  23. package/dist/domains/session.d.ts +129 -0
  24. package/dist/domains/session.d.ts.map +1 -0
  25. package/dist/domains/session.js +433 -0
  26. package/dist/domains/session.js.map +1 -0
  27. package/dist/domains/system.d.ts +92 -0
  28. package/dist/domains/system.d.ts.map +1 -0
  29. package/dist/domains/system.js +473 -0
  30. package/dist/domains/system.js.map +1 -0
  31. package/dist/domains/tasks.d.ts +180 -0
  32. package/dist/domains/tasks.d.ts.map +1 -0
  33. package/dist/domains/tasks.js +704 -0
  34. package/dist/domains/tasks.js.map +1 -0
  35. package/dist/domains/validate.d.ts +150 -0
  36. package/dist/domains/validate.d.ts.map +1 -0
  37. package/dist/domains/validate.js +568 -0
  38. package/dist/domains/validate.js.map +1 -0
  39. package/dist/gateways/mutate.d.ts +100 -0
  40. package/dist/gateways/mutate.d.ts.map +1 -0
  41. package/dist/gateways/mutate.js +937 -0
  42. package/dist/gateways/mutate.js.map +1 -0
  43. package/dist/gateways/query.d.ts +91 -0
  44. package/dist/gateways/query.d.ts.map +1 -0
  45. package/dist/gateways/query.js +245 -0
  46. package/dist/gateways/query.js.map +1 -0
  47. package/dist/index.d.ts +21 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +299 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/lib/audit.d.ts +118 -0
  52. package/dist/lib/audit.d.ts.map +1 -0
  53. package/dist/lib/audit.js +311 -0
  54. package/dist/lib/audit.js.map +1 -0
  55. package/dist/lib/background-jobs.d.ts +86 -0
  56. package/dist/lib/background-jobs.d.ts.map +1 -0
  57. package/dist/lib/background-jobs.js +183 -0
  58. package/dist/lib/background-jobs.js.map +1 -0
  59. package/dist/lib/cache.d.ts +78 -0
  60. package/dist/lib/cache.d.ts.map +1 -0
  61. package/dist/lib/cache.js +204 -0
  62. package/dist/lib/cache.js.map +1 -0
  63. package/dist/lib/command-builder.d.ts +52 -0
  64. package/dist/lib/command-builder.d.ts.map +1 -0
  65. package/dist/lib/command-builder.js +280 -0
  66. package/dist/lib/command-builder.js.map +1 -0
  67. package/dist/lib/config.d.ts +42 -0
  68. package/dist/lib/config.d.ts.map +1 -0
  69. package/dist/lib/config.js +248 -0
  70. package/dist/lib/config.js.map +1 -0
  71. package/dist/lib/defaults.d.ts +115 -0
  72. package/dist/lib/defaults.d.ts.map +1 -0
  73. package/dist/lib/defaults.js +61 -0
  74. package/dist/lib/defaults.js.map +1 -0
  75. package/dist/lib/error-handler.d.ts +101 -0
  76. package/dist/lib/error-handler.d.ts.map +1 -0
  77. package/dist/lib/error-handler.js +277 -0
  78. package/dist/lib/error-handler.js.map +1 -0
  79. package/dist/lib/executor.d.ts +110 -0
  80. package/dist/lib/executor.d.ts.map +1 -0
  81. package/dist/lib/executor.js +362 -0
  82. package/dist/lib/executor.js.map +1 -0
  83. package/dist/lib/exit-codes.d.ts +190 -0
  84. package/dist/lib/exit-codes.d.ts.map +1 -0
  85. package/dist/lib/exit-codes.js +1027 -0
  86. package/dist/lib/exit-codes.js.map +1 -0
  87. package/dist/lib/formatter.d.ts +196 -0
  88. package/dist/lib/formatter.d.ts.map +1 -0
  89. package/dist/lib/formatter.js +260 -0
  90. package/dist/lib/formatter.js.map +1 -0
  91. package/dist/lib/gate-validators.d.ts +103 -0
  92. package/dist/lib/gate-validators.d.ts.map +1 -0
  93. package/dist/lib/gate-validators.js +689 -0
  94. package/dist/lib/gate-validators.js.map +1 -0
  95. package/dist/lib/manifest-parser.d.ts +61 -0
  96. package/dist/lib/manifest-parser.d.ts.map +1 -0
  97. package/dist/lib/manifest-parser.js +338 -0
  98. package/dist/lib/manifest-parser.js.map +1 -0
  99. package/dist/lib/manifest.d.ts +177 -0
  100. package/dist/lib/manifest.d.ts.map +1 -0
  101. package/dist/lib/manifest.js +301 -0
  102. package/dist/lib/manifest.js.map +1 -0
  103. package/dist/lib/protocol-enforcement.d.ts +105 -0
  104. package/dist/lib/protocol-enforcement.d.ts.map +1 -0
  105. package/dist/lib/protocol-enforcement.js +331 -0
  106. package/dist/lib/protocol-enforcement.js.map +1 -0
  107. package/dist/lib/protocol-rules.d.ts +55 -0
  108. package/dist/lib/protocol-rules.d.ts.map +1 -0
  109. package/dist/lib/protocol-rules.js +760 -0
  110. package/dist/lib/protocol-rules.js.map +1 -0
  111. package/dist/lib/rate-limiter.d.ts +110 -0
  112. package/dist/lib/rate-limiter.d.ts.map +1 -0
  113. package/dist/lib/rate-limiter.js +208 -0
  114. package/dist/lib/rate-limiter.js.map +1 -0
  115. package/dist/lib/router.d.ts +126 -0
  116. package/dist/lib/router.d.ts.map +1 -0
  117. package/dist/lib/router.js +276 -0
  118. package/dist/lib/router.js.map +1 -0
  119. package/dist/lib/schema.d.ts +55 -0
  120. package/dist/lib/schema.d.ts.map +1 -0
  121. package/dist/lib/schema.js +70 -0
  122. package/dist/lib/schema.js.map +1 -0
  123. package/dist/lib/security.d.ts +156 -0
  124. package/dist/lib/security.d.ts.map +1 -0
  125. package/dist/lib/security.js +347 -0
  126. package/dist/lib/security.js.map +1 -0
  127. package/dist/lib/verification-gates.d.ts +287 -0
  128. package/dist/lib/verification-gates.d.ts.map +1 -0
  129. package/dist/lib/verification-gates.js +548 -0
  130. package/dist/lib/verification-gates.js.map +1 -0
  131. package/dist/types/domain.d.ts +29 -0
  132. package/dist/types/domain.d.ts.map +1 -0
  133. package/dist/types/domain.js +7 -0
  134. package/dist/types/domain.js.map +1 -0
  135. package/dist/types/error.d.ts +101 -0
  136. package/dist/types/error.d.ts.map +1 -0
  137. package/dist/types/error.js +61 -0
  138. package/dist/types/error.js.map +1 -0
  139. package/dist/types/gateway.d.ts +78 -0
  140. package/dist/types/gateway.d.ts.map +1 -0
  141. package/dist/types/gateway.js +7 -0
  142. package/dist/types/gateway.js.map +1 -0
  143. package/dist/types/index.d.ts +21 -0
  144. package/dist/types/index.d.ts.map +1 -0
  145. package/dist/types/index.js +11 -0
  146. package/dist/types/index.js.map +1 -0
  147. package/dist/types/operations/lifecycle.d.ts +140 -0
  148. package/dist/types/operations/lifecycle.d.ts.map +1 -0
  149. package/dist/types/operations/lifecycle.js +8 -0
  150. package/dist/types/operations/lifecycle.js.map +1 -0
  151. package/dist/types/operations/orchestrate.d.ts +140 -0
  152. package/dist/types/operations/orchestrate.d.ts.map +1 -0
  153. package/dist/types/operations/orchestrate.js +8 -0
  154. package/dist/types/operations/orchestrate.js.map +1 -0
  155. package/dist/types/operations/release.d.ts +97 -0
  156. package/dist/types/operations/release.d.ts.map +1 -0
  157. package/dist/types/operations/release.js +7 -0
  158. package/dist/types/operations/release.js.map +1 -0
  159. package/dist/types/operations/research.d.ts +122 -0
  160. package/dist/types/operations/research.d.ts.map +1 -0
  161. package/dist/types/operations/research.js +8 -0
  162. package/dist/types/operations/research.js.map +1 -0
  163. package/dist/types/operations/session.d.ts +108 -0
  164. package/dist/types/operations/session.d.ts.map +1 -0
  165. package/dist/types/operations/session.js +8 -0
  166. package/dist/types/operations/session.js.map +1 -0
  167. package/dist/types/operations/system.d.ts +147 -0
  168. package/dist/types/operations/system.d.ts.map +1 -0
  169. package/dist/types/operations/system.js +8 -0
  170. package/dist/types/operations/system.js.map +1 -0
  171. package/dist/types/operations/tasks.d.ts +186 -0
  172. package/dist/types/operations/tasks.d.ts.map +1 -0
  173. package/dist/types/operations/tasks.js +8 -0
  174. package/dist/types/operations/tasks.js.map +1 -0
  175. package/dist/types/operations/validate.d.ts +170 -0
  176. package/dist/types/operations/validate.d.ts.map +1 -0
  177. package/dist/types/operations/validate.js +8 -0
  178. package/dist/types/operations/validate.js.map +1 -0
  179. package/package.json +67 -0
  180. package/schemas/IMPLEMENTATION-SUMMARY.md +250 -0
  181. package/schemas/README.md +284 -0
  182. package/schemas/common/error.schema.json +54 -0
  183. package/schemas/common/meta.schema.json +39 -0
  184. package/schemas/common/pagination.schema.json +32 -0
  185. package/schemas/index.json +159 -0
  186. package/schemas/requests/lifecycle/check.schema.json +20 -0
  187. package/schemas/requests/lifecycle/gate.fail.schema.json +25 -0
  188. package/schemas/requests/lifecycle/gate.pass.schema.json +28 -0
  189. package/schemas/requests/lifecycle/gates.schema.json +15 -0
  190. package/schemas/requests/lifecycle/history.schema.json +15 -0
  191. package/schemas/requests/lifecycle/prerequisites.schema.json +15 -0
  192. package/schemas/requests/lifecycle/progress.schema.json +29 -0
  193. package/schemas/requests/lifecycle/reset.schema.json +25 -0
  194. package/schemas/requests/lifecycle/skip.schema.json +25 -0
  195. package/schemas/requests/lifecycle/status.schema.json +23 -0
  196. package/schemas/requests/orchestrate/analyze.schema.json +15 -0
  197. package/schemas/requests/orchestrate/context.schema.json +13 -0
  198. package/schemas/requests/orchestrate/next.schema.json +15 -0
  199. package/schemas/requests/orchestrate/parallel.end.schema.json +20 -0
  200. package/schemas/requests/orchestrate/parallel.start.schema.json +20 -0
  201. package/schemas/requests/orchestrate/ready.schema.json +15 -0
  202. package/schemas/requests/orchestrate/skill.list.schema.json +13 -0
  203. package/schemas/requests/orchestrate/spawn.schema.json +25 -0
  204. package/schemas/requests/orchestrate/startup.schema.json +15 -0
  205. package/schemas/requests/orchestrate/status.schema.json +15 -0
  206. package/schemas/requests/orchestrate/validate.schema.json +15 -0
  207. package/schemas/requests/orchestrate/waves.schema.json +15 -0
  208. package/schemas/requests/release/changelog.schema.json +23 -0
  209. package/schemas/requests/release/commit.schema.json +22 -0
  210. package/schemas/requests/release/gates.run.schema.json +17 -0
  211. package/schemas/requests/release/prepare.schema.json +20 -0
  212. package/schemas/requests/release/push.schema.json +20 -0
  213. package/schemas/requests/release/rollback.schema.json +20 -0
  214. package/schemas/requests/release/tag.schema.json +19 -0
  215. package/schemas/requests/research/inject.schema.json +24 -0
  216. package/schemas/requests/research/link.schema.json +25 -0
  217. package/schemas/requests/research/list.schema.json +19 -0
  218. package/schemas/requests/research/manifest.append.schema.json +20 -0
  219. package/schemas/requests/research/manifest.archive.schema.json +19 -0
  220. package/schemas/requests/research/manifest.read.schema.json +21 -0
  221. package/schemas/requests/research/pending.schema.json +14 -0
  222. package/schemas/requests/research/query.schema.json +21 -0
  223. package/schemas/requests/research/show.schema.json +14 -0
  224. package/schemas/requests/research/stats.schema.json +14 -0
  225. package/schemas/requests/session/end.schema.json +13 -0
  226. package/schemas/requests/session/focus.clear.schema.json +7 -0
  227. package/schemas/requests/session/focus.get.schema.json +7 -0
  228. package/schemas/requests/session/focus.set.schema.json +15 -0
  229. package/schemas/requests/session/gc.schema.json +14 -0
  230. package/schemas/requests/session/history.schema.json +16 -0
  231. package/schemas/requests/session/list.schema.json +13 -0
  232. package/schemas/requests/session/resume.schema.json +14 -0
  233. package/schemas/requests/session/show.schema.json +14 -0
  234. package/schemas/requests/session/start.schema.json +23 -0
  235. package/schemas/requests/session/status.schema.json +7 -0
  236. package/schemas/requests/session/suspend.schema.json +13 -0
  237. package/schemas/requests/system/backup.schema.json +19 -0
  238. package/schemas/requests/system/cleanup.schema.json +20 -0
  239. package/schemas/requests/system/config.get.schema.json +14 -0
  240. package/schemas/requests/system/config.set.schema.json +24 -0
  241. package/schemas/requests/system/context.schema.json +7 -0
  242. package/schemas/requests/system/doctor.schema.json +7 -0
  243. package/schemas/requests/system/init.schema.json +18 -0
  244. package/schemas/requests/system/migrate.schema.json +19 -0
  245. package/schemas/requests/system/restore.schema.json +14 -0
  246. package/schemas/requests/system/stats.schema.json +7 -0
  247. package/schemas/requests/system/sync.schema.json +15 -0
  248. package/schemas/requests/system/version.schema.json +7 -0
  249. package/schemas/requests/tasks/analyze.schema.json +14 -0
  250. package/schemas/requests/tasks/archive.schema.json +19 -0
  251. package/schemas/requests/tasks/blockers.schema.json +15 -0
  252. package/schemas/requests/tasks/complete.schema.json +24 -0
  253. package/schemas/requests/tasks/create.schema.json +48 -0
  254. package/schemas/requests/tasks/delete.schema.json +20 -0
  255. package/schemas/requests/tasks/deps.schema.json +21 -0
  256. package/schemas/requests/tasks/exists.schema.json +15 -0
  257. package/schemas/requests/tasks/find.schema.json +22 -0
  258. package/schemas/requests/tasks/get.schema.json +15 -0
  259. package/schemas/requests/tasks/list.schema.json +26 -0
  260. package/schemas/requests/tasks/next.schema.json +21 -0
  261. package/schemas/requests/tasks/promote.schema.json +15 -0
  262. package/schemas/requests/tasks/reopen.schema.json +15 -0
  263. package/schemas/requests/tasks/reorder.schema.json +20 -0
  264. package/schemas/requests/tasks/reparent.schema.json +20 -0
  265. package/schemas/requests/tasks/tree.schema.json +21 -0
  266. package/schemas/requests/tasks/unarchive.schema.json +15 -0
  267. package/schemas/requests/tasks/update.schema.json +41 -0
  268. package/schemas/requests/validate/compliance.record.schema.json +20 -0
  269. package/schemas/requests/validate/compliance.summary.schema.json +18 -0
  270. package/schemas/requests/validate/compliance.violations.schema.json +19 -0
  271. package/schemas/requests/validate/manifest.schema.json +23 -0
  272. package/schemas/requests/validate/output.schema.json +19 -0
  273. package/schemas/requests/validate/protocol.schema.json +20 -0
  274. package/schemas/requests/validate/schema.schema.json +19 -0
  275. package/schemas/requests/validate/task.schema.json +21 -0
  276. package/schemas/requests/validate/test.coverage.schema.json +14 -0
  277. package/schemas/requests/validate/test.run.schema.json +22 -0
  278. package/schemas/requests/validate/test.status.schema.json +14 -0
  279. package/schemas/responses/common-error.schema.json +20 -0
  280. package/schemas/responses/common-success.schema.json +21 -0
  281. package/schemas/responses/lifecycle/check.schema.json +18 -0
  282. package/schemas/responses/lifecycle/gate.fail.schema.json +18 -0
  283. package/schemas/responses/lifecycle/gate.pass.schema.json +18 -0
  284. package/schemas/responses/lifecycle/gates.schema.json +18 -0
  285. package/schemas/responses/lifecycle/history.schema.json +18 -0
  286. package/schemas/responses/lifecycle/prerequisites.schema.json +18 -0
  287. package/schemas/responses/lifecycle/progress.schema.json +18 -0
  288. package/schemas/responses/lifecycle/reset.schema.json +18 -0
  289. package/schemas/responses/lifecycle/skip.schema.json +18 -0
  290. package/schemas/responses/lifecycle/status.schema.json +18 -0
  291. package/schemas/responses/orchestrate/analyze.schema.json +18 -0
  292. package/schemas/responses/orchestrate/context.schema.json +18 -0
  293. package/schemas/responses/orchestrate/next.schema.json +18 -0
  294. package/schemas/responses/orchestrate/parallel.end.schema.json +18 -0
  295. package/schemas/responses/orchestrate/parallel.start.schema.json +18 -0
  296. package/schemas/responses/orchestrate/ready.schema.json +18 -0
  297. package/schemas/responses/orchestrate/skill.list.schema.json +18 -0
  298. package/schemas/responses/orchestrate/spawn.schema.json +18 -0
  299. package/schemas/responses/orchestrate/startup.schema.json +18 -0
  300. package/schemas/responses/orchestrate/status.schema.json +18 -0
  301. package/schemas/responses/orchestrate/validate.schema.json +18 -0
  302. package/schemas/responses/orchestrate/waves.schema.json +18 -0
  303. package/schemas/responses/release/changelog.schema.json +18 -0
  304. package/schemas/responses/release/commit.schema.json +18 -0
  305. package/schemas/responses/release/gates.run.schema.json +18 -0
  306. package/schemas/responses/release/prepare.schema.json +18 -0
  307. package/schemas/responses/release/push.schema.json +18 -0
  308. package/schemas/responses/release/rollback.schema.json +18 -0
  309. package/schemas/responses/release/tag.schema.json +18 -0
  310. package/schemas/responses/research/inject.schema.json +18 -0
  311. package/schemas/responses/research/link.schema.json +18 -0
  312. package/schemas/responses/research/list.schema.json +18 -0
  313. package/schemas/responses/research/manifest.append.schema.json +18 -0
  314. package/schemas/responses/research/manifest.archive.schema.json +18 -0
  315. package/schemas/responses/research/manifest.read.schema.json +18 -0
  316. package/schemas/responses/research/pending.schema.json +18 -0
  317. package/schemas/responses/research/query.schema.json +18 -0
  318. package/schemas/responses/research/show.schema.json +18 -0
  319. package/schemas/responses/research/stats.schema.json +18 -0
  320. package/schemas/responses/session/end.schema.json +18 -0
  321. package/schemas/responses/session/focus.clear.schema.json +18 -0
  322. package/schemas/responses/session/focus.get.schema.json +18 -0
  323. package/schemas/responses/session/focus.set.schema.json +18 -0
  324. package/schemas/responses/session/gc.schema.json +18 -0
  325. package/schemas/responses/session/history.schema.json +18 -0
  326. package/schemas/responses/session/list.schema.json +18 -0
  327. package/schemas/responses/session/resume.schema.json +18 -0
  328. package/schemas/responses/session/show.schema.json +18 -0
  329. package/schemas/responses/session/start.schema.json +18 -0
  330. package/schemas/responses/session/status.schema.json +18 -0
  331. package/schemas/responses/session/suspend.schema.json +18 -0
  332. package/schemas/responses/system/backup.schema.json +18 -0
  333. package/schemas/responses/system/cleanup.schema.json +18 -0
  334. package/schemas/responses/system/config.get.schema.json +18 -0
  335. package/schemas/responses/system/config.set.schema.json +18 -0
  336. package/schemas/responses/system/context.schema.json +18 -0
  337. package/schemas/responses/system/doctor.schema.json +18 -0
  338. package/schemas/responses/system/init.schema.json +18 -0
  339. package/schemas/responses/system/migrate.schema.json +18 -0
  340. package/schemas/responses/system/restore.schema.json +18 -0
  341. package/schemas/responses/system/stats.schema.json +18 -0
  342. package/schemas/responses/system/sync.schema.json +18 -0
  343. package/schemas/responses/system/version.schema.json +18 -0
  344. package/schemas/responses/tasks/analyze.schema.json +18 -0
  345. package/schemas/responses/tasks/archive.schema.json +18 -0
  346. package/schemas/responses/tasks/blockers.schema.json +18 -0
  347. package/schemas/responses/tasks/complete.schema.json +18 -0
  348. package/schemas/responses/tasks/create.schema.json +18 -0
  349. package/schemas/responses/tasks/delete.schema.json +18 -0
  350. package/schemas/responses/tasks/deps.schema.json +18 -0
  351. package/schemas/responses/tasks/exists.schema.json +18 -0
  352. package/schemas/responses/tasks/find.schema.json +18 -0
  353. package/schemas/responses/tasks/get.schema.json +87 -0
  354. package/schemas/responses/tasks/list.schema.json +18 -0
  355. package/schemas/responses/tasks/next.schema.json +18 -0
  356. package/schemas/responses/tasks/promote.schema.json +18 -0
  357. package/schemas/responses/tasks/reopen.schema.json +18 -0
  358. package/schemas/responses/tasks/reorder.schema.json +18 -0
  359. package/schemas/responses/tasks/reparent.schema.json +18 -0
  360. package/schemas/responses/tasks/tree.schema.json +18 -0
  361. package/schemas/responses/tasks/unarchive.schema.json +18 -0
  362. package/schemas/responses/tasks/update.schema.json +18 -0
  363. package/schemas/responses/validate/compliance.record.schema.json +18 -0
  364. package/schemas/responses/validate/compliance.summary.schema.json +18 -0
  365. package/schemas/responses/validate/compliance.violations.schema.json +18 -0
  366. package/schemas/responses/validate/manifest.schema.json +18 -0
  367. package/schemas/responses/validate/output.schema.json +18 -0
  368. package/schemas/responses/validate/protocol.schema.json +18 -0
  369. package/schemas/responses/validate/schema.schema.json +18 -0
  370. package/schemas/responses/validate/task.schema.json +18 -0
  371. package/schemas/responses/validate/test.coverage.schema.json +18 -0
  372. package/schemas/responses/validate/test.run.schema.json +18 -0
  373. package/schemas/responses/validate/test.status.schema.json +18 -0
  374. package/server.json +53 -0
@@ -0,0 +1,400 @@
1
+ /**
2
+ * Release Domain Handler
3
+ *
4
+ * Implements all 12 release operations for CLEO MCP server:
5
+ * - Query (3): version, verify, changelog
6
+ * - Mutate (9): bump, tag, publish, rollback, prepare, changelog, commit, push, gates.run
7
+ *
8
+ * Each operation maps to corresponding CLEO CLI commands with proper
9
+ * parameter validation and error handling.
10
+ *
11
+ * @task T2934
12
+ */
13
+ /**
14
+ * Release domain handler implementation
15
+ */
16
+ export class ReleaseHandler {
17
+ executor;
18
+ constructor(executor) {
19
+ this.executor = executor;
20
+ }
21
+ /**
22
+ * Query operations (read-only)
23
+ */
24
+ async query(operation, params) {
25
+ const startTime = Date.now();
26
+ // Require executor for all operations
27
+ if (!this.executor) {
28
+ return this.createErrorResponse('cleo_query', 'release', operation, 'E_NOT_INITIALIZED', 'Release handler not initialized with executor', startTime);
29
+ }
30
+ try {
31
+ switch (operation) {
32
+ case 'version':
33
+ return await this.queryVersion(params);
34
+ case 'verify':
35
+ return await this.queryVerify(params);
36
+ case 'changelog':
37
+ return await this.queryChangelog(params);
38
+ default:
39
+ return this.createErrorResponse('cleo_query', 'release', operation, 'E_INVALID_OPERATION', `Unknown query operation: ${operation}`, startTime);
40
+ }
41
+ }
42
+ catch (error) {
43
+ return this.handleError('cleo_query', 'release', operation, error, startTime);
44
+ }
45
+ }
46
+ /**
47
+ * Mutate operations (write)
48
+ */
49
+ async mutate(operation, params) {
50
+ const startTime = Date.now();
51
+ // Require executor for all operations
52
+ if (!this.executor) {
53
+ return this.createErrorResponse('cleo_mutate', 'release', operation, 'E_NOT_INITIALIZED', 'Release handler not initialized with executor', startTime);
54
+ }
55
+ try {
56
+ switch (operation) {
57
+ case 'bump':
58
+ return await this.mutateBump(params);
59
+ case 'tag':
60
+ return await this.mutateTag(params);
61
+ case 'publish':
62
+ return await this.mutatePublish(params);
63
+ case 'rollback':
64
+ return await this.mutateRollback(params);
65
+ case 'prepare':
66
+ return await this.mutatePrepare(params);
67
+ case 'changelog':
68
+ return await this.mutateChangelog(params);
69
+ case 'commit':
70
+ return await this.mutateCommit(params);
71
+ case 'push':
72
+ return await this.mutatePush(params);
73
+ case 'gates.run':
74
+ return await this.mutateGatesRun(params);
75
+ default:
76
+ return this.createErrorResponse('cleo_mutate', 'release', operation, 'E_INVALID_OPERATION', `Unknown mutate operation: ${operation}`, startTime);
77
+ }
78
+ }
79
+ catch (error) {
80
+ return this.handleError('cleo_mutate', 'release', operation, error, startTime);
81
+ }
82
+ }
83
+ /**
84
+ * Get supported operations
85
+ */
86
+ getSupportedOperations() {
87
+ return {
88
+ query: ['version', 'verify', 'changelog'],
89
+ mutate: ['bump', 'tag', 'publish', 'rollback', 'prepare', 'changelog', 'commit', 'push', 'gates.run'],
90
+ };
91
+ }
92
+ // ===== Query Operations =====
93
+ /**
94
+ * version - Get current version
95
+ * CLI: cleo version
96
+ */
97
+ async queryVersion(params) {
98
+ const startTime = Date.now();
99
+ const result = await this.executor.execute({
100
+ domain: 'version',
101
+ operation: '',
102
+ flags: { json: true },
103
+ });
104
+ return this.wrapExecutorResult(result, 'cleo_query', 'release', 'version', startTime);
105
+ }
106
+ /**
107
+ * verify - Verify version consistency
108
+ * CLI: ./dev/validate-version.sh
109
+ */
110
+ async queryVerify(params) {
111
+ const startTime = Date.now();
112
+ const result = await this.executor.execute({
113
+ domain: 'validate-version',
114
+ operation: '',
115
+ flags: { json: true },
116
+ customCommand: './dev/validate-version.sh',
117
+ });
118
+ return this.wrapExecutorResult(result, 'cleo_query', 'release', 'verify', startTime);
119
+ }
120
+ /**
121
+ * changelog - Get changelog content
122
+ * CLI: cat CHANGELOG.md
123
+ */
124
+ async queryChangelog(params) {
125
+ const startTime = Date.now();
126
+ if (!params?.version) {
127
+ return this.createErrorResponse('cleo_query', 'release', 'changelog', 'E_INVALID_INPUT', 'version is required', startTime);
128
+ }
129
+ const result = await this.executor.execute({
130
+ domain: 'changelog',
131
+ operation: '',
132
+ args: [params.version],
133
+ flags: { json: true },
134
+ customCommand: 'cat CHANGELOG.md',
135
+ });
136
+ return this.wrapExecutorResult(result, 'cleo_query', 'release', 'changelog', startTime);
137
+ }
138
+ // ===== Mutate Operations =====
139
+ /**
140
+ * bump - Bump version (patch/minor/major)
141
+ * CLI: ./dev/bump-version.sh <type>
142
+ */
143
+ async mutateBump(params) {
144
+ const startTime = Date.now();
145
+ if (!params?.type) {
146
+ return this.createErrorResponse('cleo_mutate', 'release', 'bump', 'E_INVALID_INPUT', 'type is required (patch, minor, or major)', startTime);
147
+ }
148
+ // Validate type
149
+ if (!['patch', 'minor', 'major'].includes(params.type)) {
150
+ return this.createErrorResponse('cleo_mutate', 'release', 'bump', 'E_INVALID_INPUT', `Invalid type: ${params.type}. Must be patch, minor, or major`, startTime);
151
+ }
152
+ const result = await this.executor.execute({
153
+ domain: 'bump-version',
154
+ operation: '',
155
+ args: [params.type],
156
+ flags: { json: true },
157
+ customCommand: './dev/bump-version.sh',
158
+ });
159
+ return this.wrapExecutorResult(result, 'cleo_mutate', 'release', 'bump', startTime);
160
+ }
161
+ /**
162
+ * tag - Create git tag
163
+ * CLI: git tag -a v<version> -m <message>
164
+ */
165
+ async mutateTag(params) {
166
+ const startTime = Date.now();
167
+ if (!params?.version) {
168
+ return this.createErrorResponse('cleo_mutate', 'release', 'tag', 'E_INVALID_INPUT', 'version is required', startTime);
169
+ }
170
+ const args = ['-a', `v${params.version}`, '-m', params.message || `Release v${params.version}`];
171
+ const result = await this.executor.execute({
172
+ domain: 'git',
173
+ operation: 'tag',
174
+ args,
175
+ flags: { json: true },
176
+ customCommand: 'git',
177
+ });
178
+ return this.wrapExecutorResult(result, 'cleo_mutate', 'release', 'tag', startTime);
179
+ }
180
+ /**
181
+ * publish - Publish release
182
+ * CLI: ./dev/release-version.sh <type> [--push]
183
+ */
184
+ async mutatePublish(params) {
185
+ const startTime = Date.now();
186
+ if (!params?.type) {
187
+ return this.createErrorResponse('cleo_mutate', 'release', 'publish', 'E_INVALID_INPUT', 'type is required (patch, minor, or major)', startTime);
188
+ }
189
+ // Validate type
190
+ if (!['patch', 'minor', 'major'].includes(params.type)) {
191
+ return this.createErrorResponse('cleo_mutate', 'release', 'publish', 'E_INVALID_INPUT', `Invalid type: ${params.type}. Must be patch, minor, or major`, startTime);
192
+ }
193
+ const args = [params.type];
194
+ const flags = { json: true };
195
+ if (params?.push) {
196
+ flags.push = true;
197
+ }
198
+ const result = await this.executor.execute({
199
+ domain: 'release-version',
200
+ operation: '',
201
+ args,
202
+ flags,
203
+ customCommand: './dev/release-version.sh',
204
+ });
205
+ return this.wrapExecutorResult(result, 'cleo_mutate', 'release', 'publish', startTime);
206
+ }
207
+ /**
208
+ * rollback - Rollback to previous version
209
+ * CLI: git tag -d v<version> && git push --delete origin v<version>
210
+ */
211
+ async mutateRollback(params) {
212
+ const startTime = Date.now();
213
+ if (!params?.version) {
214
+ return this.createErrorResponse('cleo_mutate', 'release', 'rollback', 'E_INVALID_INPUT', 'version is required', startTime);
215
+ }
216
+ if (!params?.reason) {
217
+ return this.createErrorResponse('cleo_mutate', 'release', 'rollback', 'E_INVALID_INPUT', 'reason is required', startTime);
218
+ }
219
+ // Delete local tag
220
+ await this.executor.execute({
221
+ domain: 'git',
222
+ operation: 'tag',
223
+ args: ['-d', `v${params.version}`],
224
+ customCommand: 'git',
225
+ });
226
+ // Delete remote tag
227
+ const result = await this.executor.execute({
228
+ domain: 'git',
229
+ operation: 'push',
230
+ args: ['--delete', 'origin', `v${params.version}`],
231
+ flags: { json: true },
232
+ customCommand: 'git',
233
+ });
234
+ return this.wrapExecutorResult(result, 'cleo_mutate', 'release', 'rollback', startTime);
235
+ }
236
+ // ===== New Mutate Operations =====
237
+ /**
238
+ * prepare - Prepare release (dry-run validation)
239
+ * CLI: ./dev/release-version.sh <type> --dry-run
240
+ */
241
+ async mutatePrepare(params) {
242
+ const startTime = Date.now();
243
+ if (!params?.version) {
244
+ return this.createErrorResponse('cleo_mutate', 'release', 'prepare', 'E_INVALID_INPUT', 'version is required', startTime);
245
+ }
246
+ const type = params.type || 'patch';
247
+ const result = await this.executor.execute({
248
+ domain: 'release-version',
249
+ operation: '',
250
+ args: [type],
251
+ flags: { json: true, 'dry-run': true },
252
+ customCommand: './dev/release-version.sh',
253
+ });
254
+ return this.wrapExecutorResult(result, 'cleo_mutate', 'release', 'prepare', startTime);
255
+ }
256
+ /**
257
+ * changelog (mutate) - Generate changelog
258
+ * CLI: scripts/generate-changelog.sh
259
+ */
260
+ async mutateChangelog(params) {
261
+ const startTime = Date.now();
262
+ if (!params?.version) {
263
+ return this.createErrorResponse('cleo_mutate', 'release', 'changelog', 'E_INVALID_INPUT', 'version is required', startTime);
264
+ }
265
+ const result = await this.executor.execute({
266
+ domain: 'generate-changelog',
267
+ operation: '',
268
+ args: [params.version],
269
+ flags: { json: true },
270
+ customCommand: './scripts/generate-changelog.sh',
271
+ });
272
+ return this.wrapExecutorResult(result, 'cleo_mutate', 'release', 'changelog', startTime);
273
+ }
274
+ /**
275
+ * commit - Create release commit
276
+ * CLI: git commit -m "chore: Release v<version>"
277
+ */
278
+ async mutateCommit(params) {
279
+ const startTime = Date.now();
280
+ if (!params?.version) {
281
+ return this.createErrorResponse('cleo_mutate', 'release', 'commit', 'E_INVALID_INPUT', 'version is required', startTime);
282
+ }
283
+ const message = `chore: Release v${params.version}`;
284
+ const args = ['-m', message];
285
+ if (params?.files && params.files.length > 0) {
286
+ // Stage specific files first
287
+ await this.executor.execute({
288
+ domain: 'git',
289
+ operation: 'add',
290
+ args: params.files,
291
+ customCommand: 'git',
292
+ });
293
+ }
294
+ const result = await this.executor.execute({
295
+ domain: 'git',
296
+ operation: 'commit',
297
+ args,
298
+ flags: { json: true },
299
+ customCommand: 'git',
300
+ });
301
+ return this.wrapExecutorResult(result, 'cleo_mutate', 'release', 'commit', startTime);
302
+ }
303
+ /**
304
+ * push - Push to remote with tags
305
+ * CLI: git push [<remote>] --follow-tags
306
+ */
307
+ async mutatePush(params) {
308
+ const startTime = Date.now();
309
+ if (!params?.version) {
310
+ return this.createErrorResponse('cleo_mutate', 'release', 'push', 'E_INVALID_INPUT', 'version is required', startTime);
311
+ }
312
+ const remote = params.remote || 'origin';
313
+ const args = [remote, '--follow-tags'];
314
+ const result = await this.executor.execute({
315
+ domain: 'git',
316
+ operation: 'push',
317
+ args,
318
+ flags: { json: true },
319
+ customCommand: 'git',
320
+ });
321
+ return this.wrapExecutorResult(result, 'cleo_mutate', 'release', 'push', startTime);
322
+ }
323
+ /**
324
+ * gates.run - Run release gates (tests, lint, security)
325
+ * CLI: Run test suite and validation checks
326
+ */
327
+ async mutateGatesRun(params) {
328
+ const startTime = Date.now();
329
+ const flags = { json: true };
330
+ if (params?.gates && params.gates.length > 0) {
331
+ flags.gates = params.gates.join(',');
332
+ }
333
+ const result = await this.executor.execute({
334
+ domain: 'release',
335
+ operation: 'gates',
336
+ flags,
337
+ });
338
+ return this.wrapExecutorResult(result, 'cleo_mutate', 'release', 'gates.run', startTime);
339
+ }
340
+ // ===== Helper Methods =====
341
+ /**
342
+ * Wrap executor result in DomainResponse format
343
+ */
344
+ wrapExecutorResult(result, gateway, domain, operation, startTime) {
345
+ const duration_ms = Date.now() - startTime;
346
+ if (result.success) {
347
+ return {
348
+ _meta: {
349
+ gateway,
350
+ domain,
351
+ operation,
352
+ version: '1.0.0',
353
+ timestamp: new Date().toISOString(),
354
+ duration_ms,
355
+ },
356
+ success: true,
357
+ data: result.data,
358
+ };
359
+ }
360
+ return {
361
+ _meta: {
362
+ gateway,
363
+ domain,
364
+ operation,
365
+ version: '1.0.0',
366
+ timestamp: new Date().toISOString(),
367
+ duration_ms,
368
+ },
369
+ success: false,
370
+ error: result.error,
371
+ };
372
+ }
373
+ /**
374
+ * Create error response
375
+ */
376
+ createErrorResponse(gateway, domain, operation, code, message, startTime) {
377
+ return {
378
+ _meta: {
379
+ gateway,
380
+ domain,
381
+ operation,
382
+ version: '1.0.0',
383
+ timestamp: new Date().toISOString(),
384
+ duration_ms: Date.now() - startTime,
385
+ },
386
+ success: false,
387
+ error: {
388
+ code,
389
+ message,
390
+ },
391
+ };
392
+ }
393
+ /**
394
+ * Handle unexpected errors
395
+ */
396
+ handleError(gateway, domain, operation, error, startTime) {
397
+ return this.createErrorResponse(gateway, domain, operation, 'E_INTERNAL_ERROR', error instanceof Error ? error.message : String(error), startTime);
398
+ }
399
+ }
400
+ //# sourceMappingURL=release.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release.js","sourceRoot":"","sources":["../../src/domains/release.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Research Domain Handler
3
+ *
4
+ * Implements all 10 research operations for CLEO MCP server:
5
+ * - Query (5): list, stats, validate, search, export
6
+ * - Mutate (5): link, unlink, import, aggregate, report
7
+ *
8
+ * Maps to cleo research CLI commands with proper parameter validation.
9
+ *
10
+ * @task T2931
11
+ */
12
+ import { DomainHandler, DomainResponse } from '../lib/router.js';
13
+ import { CLIExecutor } from '../lib/executor.js';
14
+ /**
15
+ * Research domain handler implementation
16
+ */
17
+ export declare class ResearchHandler implements DomainHandler {
18
+ private executor;
19
+ private manifestReader;
20
+ constructor(executor: CLIExecutor, manifestPath?: string);
21
+ /**
22
+ * Query operations (read-only)
23
+ */
24
+ query(operation: string, params?: Record<string, unknown>): Promise<DomainResponse>;
25
+ /**
26
+ * Mutate operations (write)
27
+ */
28
+ mutate(operation: string, params?: Record<string, unknown>): Promise<DomainResponse>;
29
+ /**
30
+ * Get supported operations
31
+ */
32
+ getSupportedOperations(): {
33
+ query: string[];
34
+ mutate: string[];
35
+ };
36
+ /**
37
+ * list - List research entries
38
+ * CLI: cleo research list [--task <id>] [--status <status>] [--type <type>] [--topic <topic>] [--limit <n>] [--actionable]
39
+ */
40
+ private queryList;
41
+ /**
42
+ * stats - Research statistics
43
+ * CLI: cleo research stats [--epic <id>]
44
+ */
45
+ private queryStats;
46
+ /**
47
+ * validate - Validate research links
48
+ * CLI: cleo research validate <taskId>
49
+ */
50
+ private queryValidate;
51
+ /**
52
+ * search - Search research entries
53
+ * CLI: cleo research show <query> [--confidence <n>] [--limit <n>]
54
+ */
55
+ private querySearch;
56
+ /**
57
+ * export - Export research data
58
+ * CLI: cleo research export [--format <fmt>] [--status <status>] [--type <type>]
59
+ */
60
+ private queryExport;
61
+ /**
62
+ * manifest.read - Read manifest entries
63
+ * Direct: ManifestReader (not CLI)
64
+ */
65
+ private queryManifestRead;
66
+ /**
67
+ * manifest.validate - Validate manifest integrity
68
+ * Direct: ManifestReader (not CLI)
69
+ */
70
+ private queryManifestValidate;
71
+ /**
72
+ * manifest.summary - Get manifest statistics
73
+ * Direct: ManifestReader (not CLI)
74
+ */
75
+ private queryManifestSummary;
76
+ /**
77
+ * link - Link research to task
78
+ * CLI: cleo research link <taskId> <researchId> [--notes <text>]
79
+ */
80
+ private mutateLink;
81
+ /**
82
+ * unlink - Unlink research from task
83
+ * CLI: cleo research unlink <taskId> <researchId>
84
+ */
85
+ private mutateUnlink;
86
+ /**
87
+ * import - Import research data
88
+ * CLI: cleo research import <source> [--overwrite]
89
+ */
90
+ private mutateImport;
91
+ /**
92
+ * aggregate - Aggregate research findings
93
+ * CLI: cleo research aggregate <id1> <id2> ... [--output <file>]
94
+ */
95
+ private mutateAggregate;
96
+ /**
97
+ * report - Generate research report
98
+ * CLI: cleo research report [--epic <id>] [--format <fmt>] [--include-links]
99
+ */
100
+ private mutateReport;
101
+ /**
102
+ * show - Get research entry details
103
+ * CLI: cleo research show <researchId>
104
+ */
105
+ private queryShow;
106
+ /**
107
+ * pending - Get pending research items
108
+ * CLI: cleo research pending [--epicId <id>]
109
+ */
110
+ private queryPending;
111
+ /**
112
+ * inject - Get protocol injection content
113
+ * CLI: cleo research inject <protocolType> [--taskId <id>] [--variant <variant>]
114
+ */
115
+ private mutateInject;
116
+ /**
117
+ * manifest.append - Append entry to MANIFEST.jsonl
118
+ * Direct: Validates and appends to manifest file
119
+ */
120
+ private mutateManifestAppend;
121
+ /**
122
+ * manifest.archive - Archive old manifest entries
123
+ * Direct: Reads manifest, filters by date, writes archived entries
124
+ */
125
+ private mutateManifestArchive;
126
+ /**
127
+ * Wrap executor result in DomainResponse format
128
+ */
129
+ private wrapExecutorResult;
130
+ /**
131
+ * Create error response
132
+ */
133
+ private createErrorResponse;
134
+ /**
135
+ * Handle unexpected errors
136
+ */
137
+ private handleError;
138
+ }
139
+ //# sourceMappingURL=research.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"research.d.ts","sourceRoot":"","sources":["../../src/domains/research.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAyHjD;;GAEG;AACH,qBAAa,eAAgB,YAAW,aAAa;IAIjD,OAAO,CAAC,QAAQ;IAHlB,OAAO,CAAC,cAAc,CAAiB;gBAG7B,QAAQ,EAAE,WAAW,EAC7B,YAAY,GAAE,MAAkD;IAKlE;;OAEG;IACG,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IA0CzF;;OAEG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAoC1F;;OAEG;IACH,sBAAsB,IAAI;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IAS/D;;;OAGG;YACW,SAAS;IAqBvB;;;OAGG;YACW,UAAU;IAexB;;;OAGG;YACW,aAAa;IAwB3B;;;OAGG;YACW,WAAW;IA4BzB;;;OAGG;YACW,WAAW;IAiBzB;;;OAGG;YACW,iBAAiB;IAqC/B;;;OAGG;YACW,qBAAqB;IA8BnC;;;OAGG;YACW,oBAAoB;IAgClC;;;OAGG;YACW,UAAU;IA2BxB;;;OAGG;YACW,YAAY;IAwB1B;;;OAGG;YACW,YAAY;IA2B1B;;;OAGG;YACW,eAAe;IA2B7B;;;OAGG;YACW,YAAY;IAiB1B;;;OAGG;YACW,SAAS;IAwBvB;;;OAGG;YACW,YAAY;IAe1B;;;OAGG;YACW,YAAY;IA4B1B;;;OAGG;YACW,oBAAoB;IAiElC;;;OAGG;YACW,qBAAqB;IAgFnC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsC1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyB3B;;OAEG;IACH,OAAO,CAAC,WAAW;CAgBpB"}