@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,606 @@
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 { ManifestReader } from '../lib/manifest.js';
13
+ import { validateEntry, serializeEntry } from '../lib/manifest-parser.js';
14
+ import { appendFile, writeFile } from 'fs/promises';
15
+ import { resolve } from 'path';
16
+ /**
17
+ * Research domain handler implementation
18
+ */
19
+ export class ResearchHandler {
20
+ executor;
21
+ manifestReader;
22
+ constructor(executor, manifestPath = 'claudedocs/agent-outputs/MANIFEST.jsonl') {
23
+ this.executor = executor;
24
+ this.manifestReader = new ManifestReader(manifestPath);
25
+ }
26
+ /**
27
+ * Query operations (read-only)
28
+ */
29
+ async query(operation, params) {
30
+ const startTime = Date.now();
31
+ try {
32
+ switch (operation) {
33
+ case 'list':
34
+ return await this.queryList(params);
35
+ case 'stats':
36
+ return await this.queryStats(params);
37
+ case 'validate':
38
+ return await this.queryValidate(params);
39
+ case 'search':
40
+ return await this.querySearch(params);
41
+ case 'export':
42
+ return await this.queryExport(params);
43
+ case 'manifest.read':
44
+ return await this.queryManifestRead(params);
45
+ case 'manifest.validate':
46
+ return await this.queryManifestValidate();
47
+ case 'manifest.summary':
48
+ return await this.queryManifestSummary();
49
+ case 'show':
50
+ return await this.queryShow(params);
51
+ case 'pending':
52
+ return await this.queryPending(params);
53
+ case 'query':
54
+ return await this.querySearch(params);
55
+ default:
56
+ return this.createErrorResponse('cleo_query', 'research', operation, 'E_INVALID_OPERATION', `Unknown query operation: ${operation}`, startTime);
57
+ }
58
+ }
59
+ catch (error) {
60
+ return this.handleError('cleo_query', 'research', 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 'link':
71
+ return await this.mutateLink(params);
72
+ case 'unlink':
73
+ return await this.mutateUnlink(params);
74
+ case 'import':
75
+ return await this.mutateImport(params);
76
+ case 'aggregate':
77
+ return await this.mutateAggregate(params);
78
+ case 'report':
79
+ return await this.mutateReport(params);
80
+ case 'inject':
81
+ return await this.mutateInject(params);
82
+ case 'manifest.append':
83
+ return await this.mutateManifestAppend(params);
84
+ case 'manifest.archive':
85
+ return await this.mutateManifestArchive(params);
86
+ default:
87
+ return this.createErrorResponse('cleo_mutate', 'research', operation, 'E_INVALID_OPERATION', `Unknown mutate operation: ${operation}`, startTime);
88
+ }
89
+ }
90
+ catch (error) {
91
+ return this.handleError('cleo_mutate', 'research', operation, error, startTime);
92
+ }
93
+ }
94
+ /**
95
+ * Get supported operations
96
+ */
97
+ getSupportedOperations() {
98
+ return {
99
+ query: ['list', 'stats', 'validate', 'search', 'export', 'manifest.read', 'manifest.validate', 'manifest.summary', 'show', 'pending', 'query'],
100
+ mutate: ['link', 'unlink', 'import', 'aggregate', 'report', 'inject', 'manifest.append', 'manifest.archive'],
101
+ };
102
+ }
103
+ // ===== Query Operations =====
104
+ /**
105
+ * list - List research entries
106
+ * CLI: cleo research list [--task <id>] [--status <status>] [--type <type>] [--topic <topic>] [--limit <n>] [--actionable]
107
+ */
108
+ async queryList(params) {
109
+ const startTime = Date.now();
110
+ const flags = { json: true };
111
+ if (params?.taskId)
112
+ flags.task = params.taskId;
113
+ if (params?.status)
114
+ flags.status = params.status;
115
+ if (params?.type)
116
+ flags.type = params.type;
117
+ if (params?.topic)
118
+ flags.topic = params.topic;
119
+ if (params?.limit)
120
+ flags.limit = params.limit;
121
+ if (params?.actionable)
122
+ flags.actionable = true;
123
+ const result = await this.executor.execute({
124
+ domain: 'research',
125
+ operation: 'list',
126
+ flags,
127
+ });
128
+ return this.wrapExecutorResult(result, 'cleo_query', 'research', 'list', startTime);
129
+ }
130
+ /**
131
+ * stats - Research statistics
132
+ * CLI: cleo research stats [--epic <id>]
133
+ */
134
+ async queryStats(params) {
135
+ const startTime = Date.now();
136
+ const flags = { json: true };
137
+ if (params?.epicId)
138
+ flags.epic = params.epicId;
139
+ const result = await this.executor.execute({
140
+ domain: 'research',
141
+ operation: 'stats',
142
+ flags,
143
+ });
144
+ return this.wrapExecutorResult(result, 'cleo_query', 'research', 'stats', startTime);
145
+ }
146
+ /**
147
+ * validate - Validate research links
148
+ * CLI: cleo research validate <taskId>
149
+ */
150
+ async queryValidate(params) {
151
+ const startTime = Date.now();
152
+ if (!params?.taskId) {
153
+ return this.createErrorResponse('cleo_query', 'research', 'validate', 'E_INVALID_INPUT', 'taskId is required', startTime);
154
+ }
155
+ const result = await this.executor.execute({
156
+ domain: 'research',
157
+ operation: 'validate',
158
+ args: [params.taskId],
159
+ flags: { json: true },
160
+ });
161
+ return this.wrapExecutorResult(result, 'cleo_query', 'research', 'validate', startTime);
162
+ }
163
+ /**
164
+ * search - Search research entries
165
+ * CLI: cleo research show <query> [--confidence <n>] [--limit <n>]
166
+ */
167
+ async querySearch(params) {
168
+ const startTime = Date.now();
169
+ if (!params?.query) {
170
+ return this.createErrorResponse('cleo_query', 'research', 'search', 'E_INVALID_INPUT', 'query is required', startTime);
171
+ }
172
+ const flags = { json: true };
173
+ if (params?.confidence !== undefined)
174
+ flags.confidence = params.confidence;
175
+ if (params?.limit)
176
+ flags.limit = params.limit;
177
+ const result = await this.executor.execute({
178
+ domain: 'research',
179
+ operation: 'show',
180
+ args: [params.query],
181
+ flags,
182
+ });
183
+ return this.wrapExecutorResult(result, 'cleo_query', 'research', 'search', startTime);
184
+ }
185
+ /**
186
+ * export - Export research data
187
+ * CLI: cleo research export [--format <fmt>] [--status <status>] [--type <type>]
188
+ */
189
+ async queryExport(params) {
190
+ const startTime = Date.now();
191
+ const flags = { json: true };
192
+ if (params?.format)
193
+ flags.format = params.format;
194
+ if (params?.filter?.status)
195
+ flags.status = params.filter.status;
196
+ if (params?.filter?.type)
197
+ flags.type = params.filter.type;
198
+ const result = await this.executor.execute({
199
+ domain: 'research',
200
+ operation: 'export',
201
+ flags,
202
+ });
203
+ return this.wrapExecutorResult(result, 'cleo_query', 'research', 'export', startTime);
204
+ }
205
+ /**
206
+ * manifest.read - Read manifest entries
207
+ * Direct: ManifestReader (not CLI)
208
+ */
209
+ async queryManifestRead(params) {
210
+ const startTime = Date.now();
211
+ try {
212
+ const entries = await this.manifestReader.readManifest();
213
+ const filtered = params
214
+ ? this.manifestReader.filterEntries(entries, params)
215
+ : entries;
216
+ return {
217
+ _meta: {
218
+ gateway: 'cleo_query',
219
+ domain: 'research',
220
+ operation: 'manifest.read',
221
+ version: '1.0.0',
222
+ timestamp: new Date().toISOString(),
223
+ duration_ms: Date.now() - startTime,
224
+ },
225
+ success: true,
226
+ data: {
227
+ entries: filtered,
228
+ total: filtered.length,
229
+ filter: params || {},
230
+ },
231
+ };
232
+ }
233
+ catch (error) {
234
+ return this.createErrorResponse('cleo_query', 'research', 'manifest.read', 'E_MANIFEST_READ_FAILED', error instanceof Error ? error.message : String(error), startTime);
235
+ }
236
+ }
237
+ /**
238
+ * manifest.validate - Validate manifest integrity
239
+ * Direct: ManifestReader (not CLI)
240
+ */
241
+ async queryManifestValidate() {
242
+ const startTime = Date.now();
243
+ try {
244
+ const validation = await this.manifestReader.validateManifest();
245
+ return {
246
+ _meta: {
247
+ gateway: 'cleo_query',
248
+ domain: 'research',
249
+ operation: 'manifest.validate',
250
+ version: '1.0.0',
251
+ timestamp: new Date().toISOString(),
252
+ duration_ms: Date.now() - startTime,
253
+ },
254
+ success: true,
255
+ data: validation,
256
+ };
257
+ }
258
+ catch (error) {
259
+ return this.createErrorResponse('cleo_query', 'research', 'manifest.validate', 'E_MANIFEST_VALIDATION_FAILED', error instanceof Error ? error.message : String(error), startTime);
260
+ }
261
+ }
262
+ /**
263
+ * manifest.summary - Get manifest statistics
264
+ * Direct: ManifestReader (not CLI)
265
+ */
266
+ async queryManifestSummary() {
267
+ const startTime = Date.now();
268
+ try {
269
+ const summary = await this.manifestReader.getSummary();
270
+ return {
271
+ _meta: {
272
+ gateway: 'cleo_query',
273
+ domain: 'research',
274
+ operation: 'manifest.summary',
275
+ version: '1.0.0',
276
+ timestamp: new Date().toISOString(),
277
+ duration_ms: Date.now() - startTime,
278
+ },
279
+ success: true,
280
+ data: summary,
281
+ };
282
+ }
283
+ catch (error) {
284
+ return this.createErrorResponse('cleo_query', 'research', 'manifest.summary', 'E_MANIFEST_SUMMARY_FAILED', error instanceof Error ? error.message : String(error), startTime);
285
+ }
286
+ }
287
+ // ===== Mutate Operations =====
288
+ /**
289
+ * link - Link research to task
290
+ * CLI: cleo research link <taskId> <researchId> [--notes <text>]
291
+ */
292
+ async mutateLink(params) {
293
+ const startTime = Date.now();
294
+ if (!params?.taskId || !params?.researchId) {
295
+ return this.createErrorResponse('cleo_mutate', 'research', 'link', 'E_INVALID_INPUT', 'taskId and researchId are required', startTime);
296
+ }
297
+ const flags = { json: true };
298
+ if (params?.notes)
299
+ flags.notes = params.notes;
300
+ const result = await this.executor.execute({
301
+ domain: 'research',
302
+ operation: 'link',
303
+ args: [params.taskId, params.researchId],
304
+ flags,
305
+ });
306
+ return this.wrapExecutorResult(result, 'cleo_mutate', 'research', 'link', startTime);
307
+ }
308
+ /**
309
+ * unlink - Unlink research from task
310
+ * CLI: cleo research unlink <taskId> <researchId>
311
+ */
312
+ async mutateUnlink(params) {
313
+ const startTime = Date.now();
314
+ if (!params?.taskId || !params?.researchId) {
315
+ return this.createErrorResponse('cleo_mutate', 'research', 'unlink', 'E_INVALID_INPUT', 'taskId and researchId are required', startTime);
316
+ }
317
+ const result = await this.executor.execute({
318
+ domain: 'research',
319
+ operation: 'unlink',
320
+ args: [params.taskId, params.researchId],
321
+ flags: { json: true },
322
+ });
323
+ return this.wrapExecutorResult(result, 'cleo_mutate', 'research', 'unlink', startTime);
324
+ }
325
+ /**
326
+ * import - Import research data
327
+ * CLI: cleo research import <source> [--overwrite]
328
+ */
329
+ async mutateImport(params) {
330
+ const startTime = Date.now();
331
+ if (!params?.source) {
332
+ return this.createErrorResponse('cleo_mutate', 'research', 'import', 'E_INVALID_INPUT', 'source is required', startTime);
333
+ }
334
+ const flags = { json: true };
335
+ if (params?.overwrite)
336
+ flags.overwrite = true;
337
+ const result = await this.executor.execute({
338
+ domain: 'research',
339
+ operation: 'import',
340
+ args: [params.source],
341
+ flags,
342
+ });
343
+ return this.wrapExecutorResult(result, 'cleo_mutate', 'research', 'import', startTime);
344
+ }
345
+ /**
346
+ * aggregate - Aggregate research findings
347
+ * CLI: cleo research aggregate <id1> <id2> ... [--output <file>]
348
+ */
349
+ async mutateAggregate(params) {
350
+ const startTime = Date.now();
351
+ if (!params?.taskIds || params.taskIds.length === 0) {
352
+ return this.createErrorResponse('cleo_mutate', 'research', 'aggregate', 'E_INVALID_INPUT', 'taskIds array is required', startTime);
353
+ }
354
+ const flags = { json: true };
355
+ if (params?.outputFile)
356
+ flags.output = params.outputFile;
357
+ const result = await this.executor.execute({
358
+ domain: 'research',
359
+ operation: 'aggregate',
360
+ args: params.taskIds,
361
+ flags,
362
+ });
363
+ return this.wrapExecutorResult(result, 'cleo_mutate', 'research', 'aggregate', startTime);
364
+ }
365
+ /**
366
+ * report - Generate research report
367
+ * CLI: cleo research report [--epic <id>] [--format <fmt>] [--include-links]
368
+ */
369
+ async mutateReport(params) {
370
+ const startTime = Date.now();
371
+ const flags = { json: true };
372
+ if (params?.epicId)
373
+ flags.epic = params.epicId;
374
+ if (params?.format)
375
+ flags.format = params.format;
376
+ if (params?.includeLinks)
377
+ flags['include-links'] = true;
378
+ const result = await this.executor.execute({
379
+ domain: 'research',
380
+ operation: 'report',
381
+ flags,
382
+ });
383
+ return this.wrapExecutorResult(result, 'cleo_mutate', 'research', 'report', startTime);
384
+ }
385
+ /**
386
+ * show - Get research entry details
387
+ * CLI: cleo research show <researchId>
388
+ */
389
+ async queryShow(params) {
390
+ const startTime = Date.now();
391
+ if (!params?.researchId) {
392
+ return this.createErrorResponse('cleo_query', 'research', 'show', 'E_INVALID_INPUT', 'researchId is required', startTime);
393
+ }
394
+ const result = await this.executor.execute({
395
+ domain: 'research',
396
+ operation: 'show',
397
+ args: [params.researchId],
398
+ flags: { json: true },
399
+ });
400
+ return this.wrapExecutorResult(result, 'cleo_query', 'research', 'show', startTime);
401
+ }
402
+ /**
403
+ * pending - Get pending research items
404
+ * CLI: cleo research pending [--epicId <id>]
405
+ */
406
+ async queryPending(params) {
407
+ const startTime = Date.now();
408
+ const flags = { json: true };
409
+ if (params?.epicId)
410
+ flags.epic = params.epicId;
411
+ const result = await this.executor.execute({
412
+ domain: 'research',
413
+ operation: 'pending',
414
+ flags,
415
+ });
416
+ return this.wrapExecutorResult(result, 'cleo_query', 'research', 'pending', startTime);
417
+ }
418
+ /**
419
+ * inject - Get protocol injection content
420
+ * CLI: cleo research inject <protocolType> [--taskId <id>] [--variant <variant>]
421
+ */
422
+ async mutateInject(params) {
423
+ const startTime = Date.now();
424
+ if (!params?.protocolType) {
425
+ return this.createErrorResponse('cleo_mutate', 'research', 'inject', 'E_INVALID_INPUT', 'protocolType is required', startTime);
426
+ }
427
+ const flags = { json: true };
428
+ if (params?.taskId)
429
+ flags.task = params.taskId;
430
+ if (params?.variant)
431
+ flags.variant = params.variant;
432
+ const result = await this.executor.execute({
433
+ domain: 'research',
434
+ operation: 'inject',
435
+ args: [params.protocolType],
436
+ flags,
437
+ });
438
+ return this.wrapExecutorResult(result, 'cleo_mutate', 'research', 'inject', startTime);
439
+ }
440
+ /**
441
+ * manifest.append - Append entry to MANIFEST.jsonl
442
+ * Direct: Validates and appends to manifest file
443
+ */
444
+ async mutateManifestAppend(params) {
445
+ const startTime = Date.now();
446
+ if (!params?.entry) {
447
+ return this.createErrorResponse('cleo_mutate', 'research', 'manifest.append', 'E_INVALID_INPUT', 'entry is required', startTime);
448
+ }
449
+ try {
450
+ // Validate the entry
451
+ const validation = validateEntry(params.entry);
452
+ if (!validation.valid) {
453
+ const errorMessages = validation.errors
454
+ .filter((e) => e.severity === 'error')
455
+ .map((e) => `${e.field}: ${e.message}`)
456
+ .join(', ');
457
+ return this.createErrorResponse('cleo_mutate', 'research', 'manifest.append', 'E_VALIDATION_FAILED', `Invalid manifest entry: ${errorMessages}`, startTime);
458
+ }
459
+ // Serialize and append
460
+ const serialized = serializeEntry(params.entry);
461
+ const manifestPath = resolve(process.cwd(), 'claudedocs/agent-outputs/MANIFEST.jsonl');
462
+ await appendFile(manifestPath, serialized + '\n', 'utf-8');
463
+ return {
464
+ _meta: {
465
+ gateway: 'cleo_mutate',
466
+ domain: 'research',
467
+ operation: 'manifest.append',
468
+ version: '1.0.0',
469
+ timestamp: new Date().toISOString(),
470
+ duration_ms: Date.now() - startTime,
471
+ },
472
+ success: true,
473
+ data: {
474
+ appended: true,
475
+ entryId: params.entry.id,
476
+ file: 'claudedocs/agent-outputs/MANIFEST.jsonl',
477
+ },
478
+ };
479
+ }
480
+ catch (error) {
481
+ return this.createErrorResponse('cleo_mutate', 'research', 'manifest.append', 'E_MANIFEST_APPEND_FAILED', error instanceof Error ? error.message : String(error), startTime);
482
+ }
483
+ }
484
+ /**
485
+ * manifest.archive - Archive old manifest entries
486
+ * Direct: Reads manifest, filters by date, writes archived entries
487
+ */
488
+ async mutateManifestArchive(params) {
489
+ const startTime = Date.now();
490
+ if (!params?.beforeDate) {
491
+ return this.createErrorResponse('cleo_mutate', 'research', 'manifest.archive', 'E_INVALID_INPUT', 'beforeDate is required (ISO-8601 format: YYYY-MM-DD)', startTime);
492
+ }
493
+ try {
494
+ const entries = await this.manifestReader.readManifest();
495
+ const toArchive = entries.filter((e) => e.date < params.beforeDate);
496
+ const toKeep = entries.filter((e) => e.date >= params.beforeDate);
497
+ if (toArchive.length === 0) {
498
+ return {
499
+ _meta: {
500
+ gateway: 'cleo_mutate',
501
+ domain: 'research',
502
+ operation: 'manifest.archive',
503
+ version: '1.0.0',
504
+ timestamp: new Date().toISOString(),
505
+ duration_ms: Date.now() - startTime,
506
+ },
507
+ success: true,
508
+ data: {
509
+ archived: 0,
510
+ remaining: entries.length,
511
+ message: 'No entries found before the specified date',
512
+ },
513
+ };
514
+ }
515
+ // Write archived entries to archive file
516
+ const archivePath = resolve(process.cwd(), 'claudedocs/agent-outputs/MANIFEST.archive.jsonl');
517
+ const archiveContent = toArchive.map((e) => JSON.stringify(e)).join('\n') + '\n';
518
+ await appendFile(archivePath, archiveContent, 'utf-8');
519
+ // Rewrite main manifest with remaining entries
520
+ const manifestPath = resolve(process.cwd(), 'claudedocs/agent-outputs/MANIFEST.jsonl');
521
+ const remainingContent = toKeep.length > 0
522
+ ? toKeep.map((e) => JSON.stringify(e)).join('\n') + '\n'
523
+ : '';
524
+ await writeFile(manifestPath, remainingContent, 'utf-8');
525
+ return {
526
+ _meta: {
527
+ gateway: 'cleo_mutate',
528
+ domain: 'research',
529
+ operation: 'manifest.archive',
530
+ version: '1.0.0',
531
+ timestamp: new Date().toISOString(),
532
+ duration_ms: Date.now() - startTime,
533
+ },
534
+ success: true,
535
+ data: {
536
+ archived: toArchive.length,
537
+ remaining: toKeep.length,
538
+ archiveFile: 'claudedocs/agent-outputs/MANIFEST.archive.jsonl',
539
+ },
540
+ };
541
+ }
542
+ catch (error) {
543
+ return this.createErrorResponse('cleo_mutate', 'research', 'manifest.archive', 'E_MANIFEST_ARCHIVE_FAILED', error instanceof Error ? error.message : String(error), startTime);
544
+ }
545
+ }
546
+ // ===== Helper Methods =====
547
+ /**
548
+ * Wrap executor result in DomainResponse format
549
+ */
550
+ wrapExecutorResult(result, gateway, domain, operation, startTime) {
551
+ const duration_ms = Date.now() - startTime;
552
+ if (result.success) {
553
+ return {
554
+ _meta: {
555
+ gateway,
556
+ domain,
557
+ operation,
558
+ version: '1.0.0',
559
+ timestamp: new Date().toISOString(),
560
+ duration_ms,
561
+ },
562
+ success: true,
563
+ data: result.data,
564
+ };
565
+ }
566
+ return {
567
+ _meta: {
568
+ gateway,
569
+ domain,
570
+ operation,
571
+ version: '1.0.0',
572
+ timestamp: new Date().toISOString(),
573
+ duration_ms,
574
+ },
575
+ success: false,
576
+ error: result.error,
577
+ };
578
+ }
579
+ /**
580
+ * Create error response
581
+ */
582
+ createErrorResponse(gateway, domain, operation, code, message, startTime) {
583
+ return {
584
+ _meta: {
585
+ gateway,
586
+ domain,
587
+ operation,
588
+ version: '1.0.0',
589
+ timestamp: new Date().toISOString(),
590
+ duration_ms: Date.now() - startTime,
591
+ },
592
+ success: false,
593
+ error: {
594
+ code,
595
+ message,
596
+ },
597
+ };
598
+ }
599
+ /**
600
+ * Handle unexpected errors
601
+ */
602
+ handleError(gateway, domain, operation, error, startTime) {
603
+ return this.createErrorResponse(gateway, domain, operation, 'E_INTERNAL_ERROR', error instanceof Error ? error.message : String(error), startTime);
604
+ }
605
+ }
606
+ //# sourceMappingURL=research.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"research.js","sourceRoot":"","sources":["../../src/domains/research.ts"],"names":[],"mappings":"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"}