@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,568 @@
1
+ /**
2
+ * Validate Domain Handler
3
+ *
4
+ * Implements all 19 validation operations for CLEO MCP server:
5
+ * - Query (13): report, stats, task, compliance, all, schema, protocol, manifest,
6
+ * output, compliance.summary, compliance.violations, test.status, test.coverage
7
+ * - Mutate (8): fix, schema, protocol, session, research, lifecycle, compliance.record, test.run
8
+ *
9
+ * Each operation maps to corresponding CLEO CLI validate commands with proper
10
+ * parameter validation and error handling.
11
+ *
12
+ * @task T2933
13
+ */
14
+ /**
15
+ * Validate domain handler implementation
16
+ */
17
+ export class ValidateHandler {
18
+ executor;
19
+ constructor(executor) {
20
+ this.executor = executor;
21
+ }
22
+ /**
23
+ * Query operations (read-only)
24
+ */
25
+ async query(operation, params) {
26
+ const startTime = Date.now();
27
+ try {
28
+ switch (operation) {
29
+ case 'report':
30
+ return await this.queryReport(params);
31
+ case 'stats':
32
+ return await this.queryStats(params);
33
+ case 'task':
34
+ return await this.queryTask(params);
35
+ case 'compliance':
36
+ return await this.queryCompliance(params);
37
+ case 'all':
38
+ return await this.queryAll(params);
39
+ case 'schema':
40
+ return await this.querySchema(params);
41
+ case 'protocol':
42
+ return await this.queryProtocol(params);
43
+ case 'manifest':
44
+ return await this.queryManifest(params);
45
+ case 'output':
46
+ return await this.queryOutput(params);
47
+ case 'compliance.summary':
48
+ return await this.queryCompliance(params);
49
+ case 'compliance.violations':
50
+ return await this.queryComplianceViolations(params);
51
+ case 'test.status':
52
+ return await this.queryTestStatus(params);
53
+ case 'test.coverage':
54
+ return await this.queryTestCoverage(params);
55
+ default:
56
+ return this.createErrorResponse('cleo_query', 'validate', operation, 'E_INVALID_OPERATION', `Unknown query operation: ${operation}`, startTime);
57
+ }
58
+ }
59
+ catch (error) {
60
+ return this.handleError('cleo_query', 'validate', operation, error, startTime);
61
+ }
62
+ }
63
+ /**
64
+ * Mutate operations (write)
65
+ */
66
+ async mutate(operation, params) {
67
+ const startTime = Date.now();
68
+ try {
69
+ switch (operation) {
70
+ case 'fix':
71
+ return await this.mutateFix(params);
72
+ case 'schema':
73
+ return await this.mutateSchema(params);
74
+ case 'protocol':
75
+ return await this.mutateProtocol(params);
76
+ case 'session':
77
+ return await this.mutateSession(params);
78
+ case 'research':
79
+ return await this.mutateResearch(params);
80
+ case 'lifecycle':
81
+ return await this.mutateLifecycle(params);
82
+ case 'compliance.record':
83
+ return await this.mutateComplianceRecord(params);
84
+ case 'test.run':
85
+ return await this.mutateTestRun(params);
86
+ default:
87
+ return this.createErrorResponse('cleo_mutate', 'validate', operation, 'E_INVALID_OPERATION', `Unknown mutate operation: ${operation}`, startTime);
88
+ }
89
+ }
90
+ catch (error) {
91
+ return this.handleError('cleo_mutate', 'validate', operation, error, startTime);
92
+ }
93
+ }
94
+ /**
95
+ * Get supported operations
96
+ */
97
+ getSupportedOperations() {
98
+ return {
99
+ query: [
100
+ 'report', 'stats', 'task', 'compliance', 'all',
101
+ 'schema', 'protocol', 'manifest', 'output',
102
+ 'compliance.summary', 'compliance.violations',
103
+ 'test.status', 'test.coverage',
104
+ ],
105
+ mutate: [
106
+ 'fix', 'schema', 'protocol', 'session', 'research', 'lifecycle',
107
+ 'compliance.record', 'test.run',
108
+ ],
109
+ };
110
+ }
111
+ // ===== Query Operations =====
112
+ /**
113
+ * report - Get validation report
114
+ * CLI: cleo validate [--scope <scope>] [--format <fmt>]
115
+ */
116
+ async queryReport(params) {
117
+ const startTime = Date.now();
118
+ const flags = { json: true };
119
+ if (params?.scope)
120
+ flags.scope = params.scope;
121
+ if (params?.format)
122
+ flags.format = params.format;
123
+ const result = await this.executor.execute({
124
+ domain: 'validate',
125
+ operation: '',
126
+ flags,
127
+ });
128
+ return this.wrapExecutorResult(result, 'cleo_query', 'validate', 'report', startTime);
129
+ }
130
+ /**
131
+ * stats - Validation statistics
132
+ * CLI: cleo validate stats [--since <date>]
133
+ */
134
+ async queryStats(params) {
135
+ const startTime = Date.now();
136
+ const flags = { json: true };
137
+ if (params?.since)
138
+ flags.since = params.since;
139
+ const result = await this.executor.execute({
140
+ domain: 'validate',
141
+ operation: 'stats',
142
+ flags,
143
+ });
144
+ return this.wrapExecutorResult(result, 'cleo_query', 'validate', 'stats', startTime);
145
+ }
146
+ /**
147
+ * task - Validate single task
148
+ * CLI: cleo validate task <taskId> [--mode <mode>]
149
+ */
150
+ async queryTask(params) {
151
+ const startTime = Date.now();
152
+ if (!params?.taskId) {
153
+ return this.createErrorResponse('cleo_query', 'validate', 'task', 'E_INVALID_INPUT', 'taskId is required', startTime);
154
+ }
155
+ const flags = { json: true };
156
+ if (params?.checkMode)
157
+ flags.mode = params.checkMode;
158
+ const result = await this.executor.execute({
159
+ domain: 'validate',
160
+ operation: 'task',
161
+ args: [params.taskId],
162
+ flags,
163
+ });
164
+ return this.wrapExecutorResult(result, 'cleo_query', 'validate', 'task', startTime);
165
+ }
166
+ /**
167
+ * compliance - Check protocol compliance
168
+ * CLI: cleo validate compliance [--protocol <type>] [--severity <level>]
169
+ */
170
+ async queryCompliance(params) {
171
+ const startTime = Date.now();
172
+ const flags = { json: true };
173
+ if (params?.protocolType)
174
+ flags.protocol = params.protocolType;
175
+ if (params?.severity)
176
+ flags.severity = params.severity;
177
+ const result = await this.executor.execute({
178
+ domain: 'validate',
179
+ operation: 'compliance',
180
+ flags,
181
+ });
182
+ return this.wrapExecutorResult(result, 'cleo_query', 'validate', 'compliance', startTime);
183
+ }
184
+ /**
185
+ * all - Validate entire system
186
+ * CLI: cleo validate all [--strict] [--include-archive]
187
+ */
188
+ async queryAll(params) {
189
+ const startTime = Date.now();
190
+ const flags = { json: true };
191
+ if (params?.strict)
192
+ flags.strict = true;
193
+ if (params?.includeArchive)
194
+ flags.includeArchive = true;
195
+ const result = await this.executor.execute({
196
+ domain: 'validate',
197
+ operation: 'all',
198
+ flags,
199
+ });
200
+ return this.wrapExecutorResult(result, 'cleo_query', 'validate', 'all', startTime);
201
+ }
202
+ // ===== Mutate Operations =====
203
+ /**
204
+ * fix - Auto-fix validation errors
205
+ * CLI: cleo validate --fix [--auto] [--dry-run] [--fix-duplicates] [--fix-missing-sizes]
206
+ */
207
+ async mutateFix(params) {
208
+ const startTime = Date.now();
209
+ const flags = { json: true, fix: true };
210
+ if (params?.auto)
211
+ flags.auto = true;
212
+ if (params?.dryRun)
213
+ flags.dryRun = true;
214
+ // Map fixType to specific fix flags
215
+ if (params?.fixType === 'duplicates') {
216
+ flags.fixDuplicates = true;
217
+ }
218
+ else if (params?.fixType === 'orphans') {
219
+ flags.fixOrphans = 'unlink'; // Default to unlink
220
+ }
221
+ else if (params?.fixType === 'missing-sizes') {
222
+ flags.fixMissingSizes = true;
223
+ }
224
+ else if (params?.fixType === 'all') {
225
+ // Enable all fix types
226
+ flags.fixDuplicates = true;
227
+ flags.fixOrphans = 'unlink';
228
+ flags.fixMissingSizes = true;
229
+ }
230
+ const result = await this.executor.execute({
231
+ domain: 'validate',
232
+ operation: '',
233
+ flags,
234
+ });
235
+ return this.wrapExecutorResult(result, 'cleo_mutate', 'validate', 'fix', startTime);
236
+ }
237
+ /**
238
+ * schema - Validate against schema
239
+ * CLI: cleo validate schema <fileType> [<filePath>]
240
+ */
241
+ async mutateSchema(params) {
242
+ const startTime = Date.now();
243
+ if (!params?.fileType) {
244
+ return this.createErrorResponse('cleo_mutate', 'validate', 'schema', 'E_INVALID_INPUT', 'fileType is required', startTime);
245
+ }
246
+ const args = [params.fileType];
247
+ if (params?.filePath) {
248
+ args.push(params.filePath);
249
+ }
250
+ const result = await this.executor.execute({
251
+ domain: 'validate',
252
+ operation: 'schema',
253
+ args,
254
+ flags: { json: true },
255
+ });
256
+ return this.wrapExecutorResult(result, 'cleo_mutate', 'validate', 'schema', startTime);
257
+ }
258
+ /**
259
+ * protocol - Validate protocol compliance
260
+ * CLI: cleo validate protocol <taskId> <protocolType> [--strict]
261
+ */
262
+ async mutateProtocol(params) {
263
+ const startTime = Date.now();
264
+ if (!params?.taskId || !params?.protocolType) {
265
+ return this.createErrorResponse('cleo_mutate', 'validate', 'protocol', 'E_INVALID_INPUT', 'taskId and protocolType are required', startTime);
266
+ }
267
+ const flags = { json: true };
268
+ if (params?.strict)
269
+ flags.strict = true;
270
+ const result = await this.executor.execute({
271
+ domain: 'validate',
272
+ operation: 'protocol',
273
+ args: [params.taskId, params.protocolType],
274
+ flags,
275
+ });
276
+ return this.wrapExecutorResult(result, 'cleo_mutate', 'validate', 'protocol', startTime);
277
+ }
278
+ /**
279
+ * session - Validate session state
280
+ * CLI: cleo validate session [<sessionId>] [--check-focus]
281
+ */
282
+ async mutateSession(params) {
283
+ const startTime = Date.now();
284
+ const flags = { json: true };
285
+ if (params?.checkFocus)
286
+ flags.checkFocus = true;
287
+ const args = [];
288
+ if (params?.sessionId) {
289
+ args.push(params.sessionId);
290
+ }
291
+ const result = await this.executor.execute({
292
+ domain: 'validate',
293
+ operation: 'session',
294
+ args,
295
+ flags,
296
+ });
297
+ return this.wrapExecutorResult(result, 'cleo_mutate', 'validate', 'session', startTime);
298
+ }
299
+ /**
300
+ * research - Validate research links
301
+ * CLI: cleo validate research <taskId> [--check-links]
302
+ */
303
+ async mutateResearch(params) {
304
+ const startTime = Date.now();
305
+ if (!params?.taskId) {
306
+ return this.createErrorResponse('cleo_mutate', 'validate', 'research', 'E_INVALID_INPUT', 'taskId is required', startTime);
307
+ }
308
+ const flags = { json: true };
309
+ if (params?.checkLinks)
310
+ flags.checkLinks = true;
311
+ const result = await this.executor.execute({
312
+ domain: 'validate',
313
+ operation: 'research',
314
+ args: [params.taskId],
315
+ flags,
316
+ });
317
+ return this.wrapExecutorResult(result, 'cleo_mutate', 'validate', 'research', startTime);
318
+ }
319
+ /**
320
+ * lifecycle - Validate lifecycle gates
321
+ * CLI: cleo validate lifecycle <taskId> [<targetStage>]
322
+ */
323
+ async mutateLifecycle(params) {
324
+ const startTime = Date.now();
325
+ if (!params?.taskId) {
326
+ return this.createErrorResponse('cleo_mutate', 'validate', 'lifecycle', 'E_INVALID_INPUT', 'taskId is required', startTime);
327
+ }
328
+ const args = [params.taskId];
329
+ if (params?.targetStage) {
330
+ args.push(params.targetStage);
331
+ }
332
+ const result = await this.executor.execute({
333
+ domain: 'validate',
334
+ operation: 'lifecycle',
335
+ args,
336
+ flags: { json: true },
337
+ });
338
+ return this.wrapExecutorResult(result, 'cleo_mutate', 'validate', 'lifecycle', startTime);
339
+ }
340
+ // ===== New Query Operations =====
341
+ /**
342
+ * schema (query) - Validate against JSON schema (read-only check)
343
+ * CLI: cleo validate schema <fileType> [<filePath>]
344
+ */
345
+ async querySchema(params) {
346
+ const startTime = Date.now();
347
+ if (!params?.fileType) {
348
+ return this.createErrorResponse('cleo_query', 'validate', 'schema', 'E_INVALID_INPUT', 'fileType is required', startTime);
349
+ }
350
+ const args = [params.fileType];
351
+ if (params?.filePath) {
352
+ args.push(params.filePath);
353
+ }
354
+ const result = await this.executor.execute({
355
+ domain: 'validate',
356
+ operation: 'schema',
357
+ args,
358
+ flags: { json: true },
359
+ });
360
+ return this.wrapExecutorResult(result, 'cleo_query', 'validate', 'schema', startTime);
361
+ }
362
+ /**
363
+ * protocol (query) - Validate protocol compliance (read-only check)
364
+ * CLI: cleo validate protocol <taskId> <protocolType> [--strict]
365
+ */
366
+ async queryProtocol(params) {
367
+ const startTime = Date.now();
368
+ if (!params?.taskId || !params?.protocolType) {
369
+ return this.createErrorResponse('cleo_query', 'validate', 'protocol', 'E_INVALID_INPUT', 'taskId and protocolType are required', startTime);
370
+ }
371
+ const flags = { json: true };
372
+ if (params?.strict)
373
+ flags.strict = true;
374
+ const result = await this.executor.execute({
375
+ domain: 'validate',
376
+ operation: 'protocol',
377
+ args: [params.taskId, params.protocolType],
378
+ flags,
379
+ });
380
+ return this.wrapExecutorResult(result, 'cleo_query', 'validate', 'protocol', startTime);
381
+ }
382
+ /**
383
+ * manifest - Validate manifest entry
384
+ * CLI: cleo validate manifest [--task <taskId>] [--entry <entry>]
385
+ */
386
+ async queryManifest(params) {
387
+ const startTime = Date.now();
388
+ const flags = { json: true };
389
+ if (params?.taskId)
390
+ flags.task = params.taskId;
391
+ if (params?.entry)
392
+ flags.entry = params.entry;
393
+ const result = await this.executor.execute({
394
+ domain: 'validate',
395
+ operation: 'manifest',
396
+ flags,
397
+ });
398
+ return this.wrapExecutorResult(result, 'cleo_query', 'validate', 'manifest', startTime);
399
+ }
400
+ /**
401
+ * output - Validate output file
402
+ * CLI: cleo validate output <taskId> <filePath>
403
+ */
404
+ async queryOutput(params) {
405
+ const startTime = Date.now();
406
+ if (!params?.taskId || !params?.filePath) {
407
+ return this.createErrorResponse('cleo_query', 'validate', 'output', 'E_INVALID_INPUT', 'taskId and filePath are required', startTime);
408
+ }
409
+ const result = await this.executor.execute({
410
+ domain: 'validate',
411
+ operation: 'output',
412
+ args: [params.taskId, params.filePath],
413
+ flags: { json: true },
414
+ });
415
+ return this.wrapExecutorResult(result, 'cleo_query', 'validate', 'output', startTime);
416
+ }
417
+ /**
418
+ * compliance.violations - List compliance violations
419
+ * CLI: cleo compliance violations [--severity <level>] [--protocol <type>]
420
+ */
421
+ async queryComplianceViolations(params) {
422
+ const startTime = Date.now();
423
+ const flags = { json: true };
424
+ if (params?.severity)
425
+ flags.severity = params.severity;
426
+ if (params?.protocol)
427
+ flags.protocol = params.protocol;
428
+ const result = await this.executor.execute({
429
+ domain: 'compliance',
430
+ operation: 'violations',
431
+ flags,
432
+ });
433
+ return this.wrapExecutorResult(result, 'cleo_query', 'validate', 'compliance.violations', startTime);
434
+ }
435
+ /**
436
+ * test.status - Test suite pass/fail counts
437
+ * CLI: cleo validate test status [--task <taskId>]
438
+ */
439
+ async queryTestStatus(params) {
440
+ const startTime = Date.now();
441
+ const flags = { json: true };
442
+ if (params?.taskId)
443
+ flags.task = params.taskId;
444
+ const result = await this.executor.execute({
445
+ domain: 'validate',
446
+ operation: 'test-status',
447
+ flags,
448
+ });
449
+ return this.wrapExecutorResult(result, 'cleo_query', 'validate', 'test.status', startTime);
450
+ }
451
+ /**
452
+ * test.coverage - Coverage percentages
453
+ * CLI: cleo validate test coverage [--task <taskId>]
454
+ */
455
+ async queryTestCoverage(params) {
456
+ const startTime = Date.now();
457
+ const flags = { json: true };
458
+ if (params?.taskId)
459
+ flags.task = params.taskId;
460
+ const result = await this.executor.execute({
461
+ domain: 'validate',
462
+ operation: 'test-coverage',
463
+ flags,
464
+ });
465
+ return this.wrapExecutorResult(result, 'cleo_query', 'validate', 'test.coverage', startTime);
466
+ }
467
+ // ===== New Mutate Operations =====
468
+ /**
469
+ * compliance.record - Record compliance check result
470
+ * CLI: cleo compliance record <taskId> --result <json>
471
+ */
472
+ async mutateComplianceRecord(params) {
473
+ const startTime = Date.now();
474
+ if (!params?.taskId || !params?.result) {
475
+ return this.createErrorResponse('cleo_mutate', 'validate', 'compliance.record', 'E_INVALID_INPUT', 'taskId and result are required', startTime);
476
+ }
477
+ const result = await this.executor.execute({
478
+ domain: 'compliance',
479
+ operation: 'record',
480
+ args: [params.taskId],
481
+ flags: {
482
+ json: true,
483
+ result: typeof params.result === 'string' ? params.result : JSON.stringify(params.result),
484
+ },
485
+ });
486
+ return this.wrapExecutorResult(result, 'cleo_mutate', 'validate', 'compliance.record', startTime);
487
+ }
488
+ /**
489
+ * test.run - Execute test suite
490
+ * CLI: npx jest [--scope <scope>] [--pattern <pattern>]
491
+ */
492
+ async mutateTestRun(params) {
493
+ const startTime = Date.now();
494
+ const flags = { json: true };
495
+ if (params?.scope)
496
+ flags.scope = params.scope;
497
+ if (params?.pattern)
498
+ flags.pattern = params.pattern;
499
+ if (params?.parallel)
500
+ flags.parallel = true;
501
+ const result = await this.executor.execute({
502
+ domain: 'validate',
503
+ operation: 'test-run',
504
+ flags,
505
+ });
506
+ return this.wrapExecutorResult(result, 'cleo_mutate', 'validate', 'test.run', startTime);
507
+ }
508
+ // ===== Helper Methods =====
509
+ /**
510
+ * Wrap executor result in DomainResponse format
511
+ */
512
+ wrapExecutorResult(result, gateway, domain, operation, startTime) {
513
+ const duration_ms = Date.now() - startTime;
514
+ if (result.success) {
515
+ return {
516
+ _meta: {
517
+ gateway,
518
+ domain,
519
+ operation,
520
+ version: '1.0.0',
521
+ timestamp: new Date().toISOString(),
522
+ duration_ms,
523
+ },
524
+ success: true,
525
+ data: result.data,
526
+ };
527
+ }
528
+ return {
529
+ _meta: {
530
+ gateway,
531
+ domain,
532
+ operation,
533
+ version: '1.0.0',
534
+ timestamp: new Date().toISOString(),
535
+ duration_ms,
536
+ },
537
+ success: false,
538
+ error: result.error,
539
+ };
540
+ }
541
+ /**
542
+ * Create error response
543
+ */
544
+ createErrorResponse(gateway, domain, operation, code, message, startTime) {
545
+ return {
546
+ _meta: {
547
+ gateway,
548
+ domain,
549
+ operation,
550
+ version: '1.0.0',
551
+ timestamp: new Date().toISOString(),
552
+ duration_ms: Date.now() - startTime,
553
+ },
554
+ success: false,
555
+ error: {
556
+ code,
557
+ message,
558
+ },
559
+ };
560
+ }
561
+ /**
562
+ * Handle unexpected errors
563
+ */
564
+ handleError(gateway, domain, operation, error, startTime) {
565
+ return this.createErrorResponse(gateway, domain, operation, 'E_INTERNAL_ERROR', error instanceof Error ? error.message : String(error), startTime);
566
+ }
567
+ }
568
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/domains/validate.ts"],"names":[],"mappings":"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"}