@cleocode/cleo 2026.4.9 → 2026.4.11

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 (693) hide show
  1. package/dist/cli/commander-shim.d.ts +112 -0
  2. package/dist/cli/commander-shim.d.ts.map +1 -0
  3. package/dist/cli/commander-shim.js +233 -0
  4. package/dist/cli/commander-shim.js.map +1 -0
  5. package/dist/cli/commands/add.d.ts +12 -0
  6. package/dist/cli/commands/add.d.ts.map +1 -0
  7. package/dist/cli/commands/add.js +98 -0
  8. package/dist/cli/commands/add.js.map +1 -0
  9. package/dist/cli/commands/admin.d.ts +12 -0
  10. package/dist/cli/commands/admin.d.ts.map +1 -0
  11. package/dist/cli/commands/admin.js +59 -0
  12. package/dist/cli/commands/admin.js.map +1 -0
  13. package/dist/cli/commands/adr.d.ts +27 -0
  14. package/dist/cli/commands/adr.d.ts.map +1 -0
  15. package/dist/cli/commands/adr.js +79 -0
  16. package/dist/cli/commands/adr.js.map +1 -0
  17. package/dist/cli/commands/agent-profile-status.d.ts +98 -0
  18. package/dist/cli/commands/agent-profile-status.d.ts.map +1 -0
  19. package/dist/cli/commands/agent-profile-status.js +71 -0
  20. package/dist/cli/commands/agent-profile-status.js.map +1 -0
  21. package/dist/cli/commands/agent.d.ts +38 -0
  22. package/dist/cli/commands/agent.d.ts.map +1 -0
  23. package/dist/cli/commands/agent.js +1125 -0
  24. package/dist/cli/commands/agent.js.map +1 -0
  25. package/dist/cli/commands/agents.d.ts +17 -0
  26. package/dist/cli/commands/agents.d.ts.map +1 -0
  27. package/dist/cli/commands/agents.js +20 -0
  28. package/dist/cli/commands/agents.js.map +1 -0
  29. package/dist/cli/commands/analyze.d.ts +12 -0
  30. package/dist/cli/commands/analyze.d.ts.map +1 -0
  31. package/dist/cli/commands/analyze.js +20 -0
  32. package/dist/cli/commands/analyze.js.map +1 -0
  33. package/dist/cli/commands/archive-stats.d.ts +18 -0
  34. package/dist/cli/commands/archive-stats.d.ts.map +1 -0
  35. package/dist/cli/commands/archive-stats.js +49 -0
  36. package/dist/cli/commands/archive-stats.js.map +1 -0
  37. package/dist/cli/commands/archive.d.ts +12 -0
  38. package/dist/cli/commands/archive.d.ts.map +1 -0
  39. package/dist/cli/commands/archive.js +32 -0
  40. package/dist/cli/commands/archive.js.map +1 -0
  41. package/dist/cli/commands/backfill.d.ts +38 -0
  42. package/dist/cli/commands/backfill.d.ts.map +1 -0
  43. package/dist/cli/commands/backfill.js +147 -0
  44. package/dist/cli/commands/backfill.js.map +1 -0
  45. package/dist/cli/commands/backup.d.ts +8 -0
  46. package/dist/cli/commands/backup.d.ts.map +1 -0
  47. package/dist/cli/commands/backup.js +35 -0
  48. package/dist/cli/commands/backup.js.map +1 -0
  49. package/dist/cli/commands/blockers.d.ts +7 -0
  50. package/dist/cli/commands/blockers.d.ts.map +1 -0
  51. package/dist/cli/commands/blockers.js +16 -0
  52. package/dist/cli/commands/blockers.js.map +1 -0
  53. package/dist/cli/commands/brain.d.ts +29 -0
  54. package/dist/cli/commands/brain.d.ts.map +1 -0
  55. package/dist/cli/commands/brain.js +107 -0
  56. package/dist/cli/commands/brain.js.map +1 -0
  57. package/dist/cli/commands/briefing.d.ts +22 -0
  58. package/dist/cli/commands/briefing.d.ts.map +1 -0
  59. package/dist/cli/commands/briefing.js +45 -0
  60. package/dist/cli/commands/briefing.js.map +1 -0
  61. package/dist/cli/commands/bug.d.ts +12 -0
  62. package/dist/cli/commands/bug.d.ts.map +1 -0
  63. package/dist/cli/commands/bug.js +81 -0
  64. package/dist/cli/commands/bug.js.map +1 -0
  65. package/dist/cli/commands/cant.d.ts +32 -0
  66. package/dist/cli/commands/cant.d.ts.map +1 -0
  67. package/dist/cli/commands/cant.js +281 -0
  68. package/dist/cli/commands/cant.js.map +1 -0
  69. package/dist/cli/commands/check.d.ts +22 -0
  70. package/dist/cli/commands/check.d.ts.map +1 -0
  71. package/dist/cli/commands/check.js +164 -0
  72. package/dist/cli/commands/check.js.map +1 -0
  73. package/dist/cli/commands/checkpoint.d.ts +15 -0
  74. package/dist/cli/commands/checkpoint.d.ts.map +1 -0
  75. package/dist/cli/commands/checkpoint.js +91 -0
  76. package/dist/cli/commands/checkpoint.js.map +1 -0
  77. package/dist/cli/commands/code.d.ts +11 -0
  78. package/dist/cli/commands/code.d.ts.map +1 -0
  79. package/dist/cli/commands/code.js +114 -0
  80. package/dist/cli/commands/code.js.map +1 -0
  81. package/dist/cli/commands/commands.d.ts +13 -0
  82. package/dist/cli/commands/commands.d.ts.map +1 -0
  83. package/dist/cli/commands/commands.js +29 -0
  84. package/dist/cli/commands/commands.js.map +1 -0
  85. package/dist/cli/commands/complete.d.ts +12 -0
  86. package/dist/cli/commands/complete.d.ts.map +1 -0
  87. package/dist/cli/commands/complete.js +43 -0
  88. package/dist/cli/commands/complete.js.map +1 -0
  89. package/dist/cli/commands/compliance.d.ts +8 -0
  90. package/dist/cli/commands/compliance.d.ts.map +1 -0
  91. package/dist/cli/commands/compliance.js +85 -0
  92. package/dist/cli/commands/compliance.js.map +1 -0
  93. package/dist/cli/commands/config.d.ts +10 -0
  94. package/dist/cli/commands/config.d.ts.map +1 -0
  95. package/dist/cli/commands/config.js +69 -0
  96. package/dist/cli/commands/config.js.map +1 -0
  97. package/dist/cli/commands/consensus.d.ts +13 -0
  98. package/dist/cli/commands/consensus.d.ts.map +1 -0
  99. package/dist/cli/commands/consensus.js +45 -0
  100. package/dist/cli/commands/consensus.js.map +1 -0
  101. package/dist/cli/commands/context.d.ts +8 -0
  102. package/dist/cli/commands/context.d.ts.map +1 -0
  103. package/dist/cli/commands/context.js +40 -0
  104. package/dist/cli/commands/context.js.map +1 -0
  105. package/dist/cli/commands/contribution.d.ts +13 -0
  106. package/dist/cli/commands/contribution.d.ts.map +1 -0
  107. package/dist/cli/commands/contribution.js +41 -0
  108. package/dist/cli/commands/contribution.js.map +1 -0
  109. package/dist/cli/commands/current.d.ts +13 -0
  110. package/dist/cli/commands/current.d.ts.map +1 -0
  111. package/dist/cli/commands/current.js +20 -0
  112. package/dist/cli/commands/current.js.map +1 -0
  113. package/dist/cli/commands/dash.d.ts +12 -0
  114. package/dist/cli/commands/dash.d.ts.map +1 -0
  115. package/dist/cli/commands/dash.js +24 -0
  116. package/dist/cli/commands/dash.js.map +1 -0
  117. package/dist/cli/commands/decomposition.d.ts +13 -0
  118. package/dist/cli/commands/decomposition.d.ts.map +1 -0
  119. package/dist/cli/commands/decomposition.js +45 -0
  120. package/dist/cli/commands/decomposition.js.map +1 -0
  121. package/dist/cli/commands/delete.d.ts +12 -0
  122. package/dist/cli/commands/delete.d.ts.map +1 -0
  123. package/dist/cli/commands/delete.js +37 -0
  124. package/dist/cli/commands/delete.js.map +1 -0
  125. package/dist/cli/commands/deps.d.ts +24 -0
  126. package/dist/cli/commands/deps.d.ts.map +1 -0
  127. package/dist/cli/commands/deps.js +98 -0
  128. package/dist/cli/commands/deps.js.map +1 -0
  129. package/dist/cli/commands/detect-drift.d.ts +15 -0
  130. package/dist/cli/commands/detect-drift.d.ts.map +1 -0
  131. package/dist/cli/commands/detect-drift.js +424 -0
  132. package/dist/cli/commands/detect-drift.js.map +1 -0
  133. package/dist/cli/commands/detect.d.ts +10 -0
  134. package/dist/cli/commands/detect.d.ts.map +1 -0
  135. package/dist/cli/commands/detect.js +24 -0
  136. package/dist/cli/commands/detect.js.map +1 -0
  137. package/dist/cli/commands/docs.d.ts +13 -0
  138. package/dist/cli/commands/docs.d.ts.map +1 -0
  139. package/dist/cli/commands/docs.js +169 -0
  140. package/dist/cli/commands/docs.js.map +1 -0
  141. package/dist/cli/commands/doctor.d.ts +15 -0
  142. package/dist/cli/commands/doctor.d.ts.map +1 -0
  143. package/dist/cli/commands/doctor.js +133 -0
  144. package/dist/cli/commands/doctor.js.map +1 -0
  145. package/dist/cli/commands/dynamic.d.ts +24 -0
  146. package/dist/cli/commands/dynamic.d.ts.map +1 -0
  147. package/dist/cli/commands/dynamic.js +27 -0
  148. package/dist/cli/commands/dynamic.js.map +1 -0
  149. package/dist/cli/commands/env.d.ts +12 -0
  150. package/dist/cli/commands/env.d.ts.map +1 -0
  151. package/dist/cli/commands/env.js +44 -0
  152. package/dist/cli/commands/env.js.map +1 -0
  153. package/dist/cli/commands/exists.d.ts +22 -0
  154. package/dist/cli/commands/exists.d.ts.map +1 -0
  155. package/dist/cli/commands/exists.js +51 -0
  156. package/dist/cli/commands/exists.js.map +1 -0
  157. package/dist/cli/commands/export-tasks.d.ts +10 -0
  158. package/dist/cli/commands/export-tasks.d.ts.map +1 -0
  159. package/dist/cli/commands/export-tasks.js +47 -0
  160. package/dist/cli/commands/export-tasks.js.map +1 -0
  161. package/dist/cli/commands/export.d.ts +9 -0
  162. package/dist/cli/commands/export.d.ts.map +1 -0
  163. package/dist/cli/commands/export.js +46 -0
  164. package/dist/cli/commands/export.js.map +1 -0
  165. package/dist/cli/commands/find.d.ts +14 -0
  166. package/dist/cli/commands/find.d.ts.map +1 -0
  167. package/dist/cli/commands/find.js +70 -0
  168. package/dist/cli/commands/find.js.map +1 -0
  169. package/dist/cli/commands/generate-changelog.d.ts +14 -0
  170. package/dist/cli/commands/generate-changelog.d.ts.map +1 -0
  171. package/dist/cli/commands/generate-changelog.js +252 -0
  172. package/dist/cli/commands/generate-changelog.js.map +1 -0
  173. package/dist/cli/commands/grade.d.ts +13 -0
  174. package/dist/cli/commands/grade.d.ts.map +1 -0
  175. package/dist/cli/commands/grade.js +26 -0
  176. package/dist/cli/commands/grade.js.map +1 -0
  177. package/dist/cli/commands/history.d.ts +9 -0
  178. package/dist/cli/commands/history.d.ts.map +1 -0
  179. package/dist/cli/commands/history.js +30 -0
  180. package/dist/cli/commands/history.js.map +1 -0
  181. package/dist/cli/commands/implementation.d.ts +13 -0
  182. package/dist/cli/commands/implementation.d.ts.map +1 -0
  183. package/dist/cli/commands/implementation.js +41 -0
  184. package/dist/cli/commands/implementation.js.map +1 -0
  185. package/dist/cli/commands/import-tasks.d.ts +10 -0
  186. package/dist/cli/commands/import-tasks.d.ts.map +1 -0
  187. package/dist/cli/commands/import-tasks.js +38 -0
  188. package/dist/cli/commands/import-tasks.js.map +1 -0
  189. package/dist/cli/commands/import.d.ts +9 -0
  190. package/dist/cli/commands/import.d.ts.map +1 -0
  191. package/dist/cli/commands/import.js +28 -0
  192. package/dist/cli/commands/import.js.map +1 -0
  193. package/dist/cli/commands/init.d.ts +34 -0
  194. package/dist/cli/commands/init.d.ts.map +1 -0
  195. package/dist/cli/commands/init.js +96 -0
  196. package/dist/cli/commands/init.js.map +1 -0
  197. package/dist/cli/commands/inject.d.ts +8 -0
  198. package/dist/cli/commands/inject.d.ts.map +1 -0
  199. package/dist/cli/commands/inject.js +28 -0
  200. package/dist/cli/commands/inject.js.map +1 -0
  201. package/dist/cli/commands/issue.d.ts +17 -0
  202. package/dist/cli/commands/issue.d.ts.map +1 -0
  203. package/dist/cli/commands/issue.js +107 -0
  204. package/dist/cli/commands/issue.js.map +1 -0
  205. package/dist/cli/commands/labels.d.ts +13 -0
  206. package/dist/cli/commands/labels.d.ts.map +1 -0
  207. package/dist/cli/commands/labels.js +44 -0
  208. package/dist/cli/commands/labels.js.map +1 -0
  209. package/dist/cli/commands/lifecycle.d.ts +8 -0
  210. package/dist/cli/commands/lifecycle.d.ts.map +1 -0
  211. package/dist/cli/commands/lifecycle.js +84 -0
  212. package/dist/cli/commands/lifecycle.js.map +1 -0
  213. package/dist/cli/commands/list.d.ts +14 -0
  214. package/dist/cli/commands/list.d.ts.map +1 -0
  215. package/dist/cli/commands/list.js +71 -0
  216. package/dist/cli/commands/list.js.map +1 -0
  217. package/dist/cli/commands/log.d.ts +12 -0
  218. package/dist/cli/commands/log.d.ts.map +1 -0
  219. package/dist/cli/commands/log.js +30 -0
  220. package/dist/cli/commands/log.js.map +1 -0
  221. package/dist/cli/commands/map.d.ts +10 -0
  222. package/dist/cli/commands/map.d.ts.map +1 -0
  223. package/dist/cli/commands/map.js +23 -0
  224. package/dist/cli/commands/map.js.map +1 -0
  225. package/dist/cli/commands/memory-brain.d.ts +14 -0
  226. package/dist/cli/commands/memory-brain.d.ts.map +1 -0
  227. package/dist/cli/commands/memory-brain.js +157 -0
  228. package/dist/cli/commands/memory-brain.js.map +1 -0
  229. package/dist/cli/commands/migrate-claude-mem.d.ts +18 -0
  230. package/dist/cli/commands/migrate-claude-mem.d.ts.map +1 -0
  231. package/dist/cli/commands/migrate-claude-mem.js +60 -0
  232. package/dist/cli/commands/migrate-claude-mem.js.map +1 -0
  233. package/dist/cli/commands/next.d.ts +9 -0
  234. package/dist/cli/commands/next.d.ts.map +1 -0
  235. package/dist/cli/commands/next.js +20 -0
  236. package/dist/cli/commands/next.js.map +1 -0
  237. package/dist/cli/commands/nexus.d.ts +16 -0
  238. package/dist/cli/commands/nexus.d.ts.map +1 -0
  239. package/dist/cli/commands/nexus.js +155 -0
  240. package/dist/cli/commands/nexus.js.map +1 -0
  241. package/dist/cli/commands/observe.d.ts +9 -0
  242. package/dist/cli/commands/observe.d.ts.map +1 -0
  243. package/dist/cli/commands/observe.js +39 -0
  244. package/dist/cli/commands/observe.js.map +1 -0
  245. package/dist/cli/commands/ops.d.ts +10 -0
  246. package/dist/cli/commands/ops.d.ts.map +1 -0
  247. package/dist/cli/commands/ops.js +19 -0
  248. package/dist/cli/commands/ops.js.map +1 -0
  249. package/dist/cli/commands/orchestrate.d.ts +8 -0
  250. package/dist/cli/commands/orchestrate.d.ts.map +1 -0
  251. package/dist/cli/commands/orchestrate.js +58 -0
  252. package/dist/cli/commands/orchestrate.js.map +1 -0
  253. package/dist/cli/commands/otel.d.ts +12 -0
  254. package/dist/cli/commands/otel.d.ts.map +1 -0
  255. package/dist/cli/commands/otel.js +128 -0
  256. package/dist/cli/commands/otel.js.map +1 -0
  257. package/dist/cli/commands/phase.d.ts +12 -0
  258. package/dist/cli/commands/phase.d.ts.map +1 -0
  259. package/dist/cli/commands/phase.js +91 -0
  260. package/dist/cli/commands/phase.js.map +1 -0
  261. package/dist/cli/commands/phases.d.ts +12 -0
  262. package/dist/cli/commands/phases.d.ts.map +1 -0
  263. package/dist/cli/commands/phases.js +37 -0
  264. package/dist/cli/commands/phases.js.map +1 -0
  265. package/dist/cli/commands/plan.d.ts +8 -0
  266. package/dist/cli/commands/plan.d.ts.map +1 -0
  267. package/dist/cli/commands/plan.js +15 -0
  268. package/dist/cli/commands/plan.js.map +1 -0
  269. package/dist/cli/commands/promote.d.ts +7 -0
  270. package/dist/cli/commands/promote.d.ts.map +1 -0
  271. package/dist/cli/commands/promote.js +15 -0
  272. package/dist/cli/commands/promote.js.map +1 -0
  273. package/dist/cli/commands/reason.d.ts +35 -0
  274. package/dist/cli/commands/reason.d.ts.map +1 -0
  275. package/dist/cli/commands/reason.js +104 -0
  276. package/dist/cli/commands/reason.js.map +1 -0
  277. package/dist/cli/commands/refresh-memory.d.ts +9 -0
  278. package/dist/cli/commands/refresh-memory.d.ts.map +1 -0
  279. package/dist/cli/commands/refresh-memory.js +24 -0
  280. package/dist/cli/commands/refresh-memory.js.map +1 -0
  281. package/dist/cli/commands/relates.d.ts +12 -0
  282. package/dist/cli/commands/relates.d.ts.map +1 -0
  283. package/dist/cli/commands/relates.js +53 -0
  284. package/dist/cli/commands/relates.js.map +1 -0
  285. package/dist/cli/commands/release.d.ts +8 -0
  286. package/dist/cli/commands/release.d.ts.map +1 -0
  287. package/dist/cli/commands/release.js +72 -0
  288. package/dist/cli/commands/release.js.map +1 -0
  289. package/dist/cli/commands/remote.d.ts +12 -0
  290. package/dist/cli/commands/remote.d.ts.map +1 -0
  291. package/dist/cli/commands/remote.js +207 -0
  292. package/dist/cli/commands/remote.js.map +1 -0
  293. package/dist/cli/commands/reorder.d.ts +7 -0
  294. package/dist/cli/commands/reorder.d.ts.map +1 -0
  295. package/dist/cli/commands/reorder.js +20 -0
  296. package/dist/cli/commands/reorder.js.map +1 -0
  297. package/dist/cli/commands/reparent.d.ts +10 -0
  298. package/dist/cli/commands/reparent.d.ts.map +1 -0
  299. package/dist/cli/commands/reparent.js +19 -0
  300. package/dist/cli/commands/reparent.js.map +1 -0
  301. package/dist/cli/commands/research.d.ts +8 -0
  302. package/dist/cli/commands/research.d.ts.map +1 -0
  303. package/dist/cli/commands/research.js +129 -0
  304. package/dist/cli/commands/research.js.map +1 -0
  305. package/dist/cli/commands/restore.d.ts +11 -0
  306. package/dist/cli/commands/restore.d.ts.map +1 -0
  307. package/dist/cli/commands/restore.js +224 -0
  308. package/dist/cli/commands/restore.js.map +1 -0
  309. package/dist/cli/commands/roadmap.d.ts +8 -0
  310. package/dist/cli/commands/roadmap.d.ts.map +1 -0
  311. package/dist/cli/commands/roadmap.js +21 -0
  312. package/dist/cli/commands/roadmap.js.map +1 -0
  313. package/dist/cli/commands/safestop.d.ts +14 -0
  314. package/dist/cli/commands/safestop.d.ts.map +1 -0
  315. package/dist/cli/commands/safestop.js +32 -0
  316. package/dist/cli/commands/safestop.js.map +1 -0
  317. package/dist/cli/commands/self-update.d.ts +15 -0
  318. package/dist/cli/commands/self-update.d.ts.map +1 -0
  319. package/dist/cli/commands/self-update.js +329 -0
  320. package/dist/cli/commands/self-update.js.map +1 -0
  321. package/dist/cli/commands/sequence.d.ts +8 -0
  322. package/dist/cli/commands/sequence.d.ts.map +1 -0
  323. package/dist/cli/commands/sequence.js +30 -0
  324. package/dist/cli/commands/sequence.js.map +1 -0
  325. package/dist/cli/commands/session.d.ts +12 -0
  326. package/dist/cli/commands/session.d.ts.map +1 -0
  327. package/dist/cli/commands/session.js +175 -0
  328. package/dist/cli/commands/session.js.map +1 -0
  329. package/dist/cli/commands/show.d.ts +13 -0
  330. package/dist/cli/commands/show.d.ts.map +1 -0
  331. package/dist/cli/commands/show.js +20 -0
  332. package/dist/cli/commands/show.js.map +1 -0
  333. package/dist/cli/commands/skills.d.ts +13 -0
  334. package/dist/cli/commands/skills.d.ts.map +1 -0
  335. package/dist/cli/commands/skills.js +131 -0
  336. package/dist/cli/commands/skills.js.map +1 -0
  337. package/dist/cli/commands/snapshot.d.ts +9 -0
  338. package/dist/cli/commands/snapshot.d.ts.map +1 -0
  339. package/dist/cli/commands/snapshot.js +50 -0
  340. package/dist/cli/commands/snapshot.js.map +1 -0
  341. package/dist/cli/commands/specification.d.ts +13 -0
  342. package/dist/cli/commands/specification.d.ts.map +1 -0
  343. package/dist/cli/commands/specification.js +45 -0
  344. package/dist/cli/commands/specification.js.map +1 -0
  345. package/dist/cli/commands/start.d.ts +13 -0
  346. package/dist/cli/commands/start.d.ts.map +1 -0
  347. package/dist/cli/commands/start.js +20 -0
  348. package/dist/cli/commands/start.js.map +1 -0
  349. package/dist/cli/commands/stats.d.ts +12 -0
  350. package/dist/cli/commands/stats.d.ts.map +1 -0
  351. package/dist/cli/commands/stats.js +35 -0
  352. package/dist/cli/commands/stats.js.map +1 -0
  353. package/dist/cli/commands/sticky.d.ts +16 -0
  354. package/dist/cli/commands/sticky.d.ts.map +1 -0
  355. package/dist/cli/commands/sticky.js +211 -0
  356. package/dist/cli/commands/sticky.js.map +1 -0
  357. package/dist/cli/commands/stop.d.ts +13 -0
  358. package/dist/cli/commands/stop.d.ts.map +1 -0
  359. package/dist/cli/commands/stop.js +20 -0
  360. package/dist/cli/commands/stop.js.map +1 -0
  361. package/dist/cli/commands/testing.d.ts +13 -0
  362. package/dist/cli/commands/testing.d.ts.map +1 -0
  363. package/dist/cli/commands/testing.js +64 -0
  364. package/dist/cli/commands/testing.js.map +1 -0
  365. package/dist/cli/commands/token.d.ts +10 -0
  366. package/dist/cli/commands/token.d.ts.map +1 -0
  367. package/dist/cli/commands/token.js +135 -0
  368. package/dist/cli/commands/token.js.map +1 -0
  369. package/dist/cli/commands/update.d.ts +12 -0
  370. package/dist/cli/commands/update.d.ts.map +1 -0
  371. package/dist/cli/commands/update.js +83 -0
  372. package/dist/cli/commands/update.js.map +1 -0
  373. package/dist/cli/commands/upgrade.d.ts +18 -0
  374. package/dist/cli/commands/upgrade.d.ts.map +1 -0
  375. package/dist/cli/commands/upgrade.js +103 -0
  376. package/dist/cli/commands/upgrade.js.map +1 -0
  377. package/dist/cli/commands/validate.d.ts +12 -0
  378. package/dist/cli/commands/validate.d.ts.map +1 -0
  379. package/dist/cli/commands/validate.js +23 -0
  380. package/dist/cli/commands/validate.js.map +1 -0
  381. package/dist/cli/commands/verify.d.ts +8 -0
  382. package/dist/cli/commands/verify.d.ts.map +1 -0
  383. package/dist/cli/commands/verify.js +28 -0
  384. package/dist/cli/commands/verify.js.map +1 -0
  385. package/dist/cli/commands/web.d.ts +13 -0
  386. package/dist/cli/commands/web.d.ts.map +1 -0
  387. package/dist/cli/commands/web.js +277 -0
  388. package/dist/cli/commands/web.js.map +1 -0
  389. package/dist/cli/field-context.d.ts +32 -0
  390. package/dist/cli/field-context.d.ts.map +1 -0
  391. package/dist/cli/field-context.js +47 -0
  392. package/dist/cli/field-context.js.map +1 -0
  393. package/dist/cli/format-context.d.ts +32 -0
  394. package/dist/cli/format-context.d.ts.map +1 -0
  395. package/dist/cli/format-context.js +50 -0
  396. package/dist/cli/format-context.js.map +1 -0
  397. package/dist/cli/index.d.ts +9 -0
  398. package/dist/cli/index.d.ts.map +1 -0
  399. package/dist/cli/index.js +3931 -3401
  400. package/dist/cli/index.js.map +4 -4
  401. package/dist/cli/logger-bootstrap.d.ts +6 -0
  402. package/dist/cli/logger-bootstrap.d.ts.map +1 -0
  403. package/dist/cli/logger-bootstrap.js +10 -0
  404. package/dist/cli/logger-bootstrap.js.map +1 -0
  405. package/dist/cli/middleware/output-format.d.ts +30 -0
  406. package/dist/cli/middleware/output-format.d.ts.map +1 -0
  407. package/dist/cli/middleware/output-format.js +35 -0
  408. package/dist/cli/middleware/output-format.js.map +1 -0
  409. package/dist/cli/progress.d.ts +84 -0
  410. package/dist/cli/progress.d.ts.map +1 -0
  411. package/dist/cli/progress.js +169 -0
  412. package/dist/cli/progress.js.map +1 -0
  413. package/dist/cli/renderers/colors.d.ts +32 -0
  414. package/dist/cli/renderers/colors.d.ts.map +1 -0
  415. package/dist/cli/renderers/colors.js +141 -0
  416. package/dist/cli/renderers/colors.js.map +1 -0
  417. package/dist/cli/renderers/error.d.ts +13 -0
  418. package/dist/cli/renderers/error.d.ts.map +1 -0
  419. package/dist/cli/renderers/error.js +42 -0
  420. package/dist/cli/renderers/error.js.map +1 -0
  421. package/dist/cli/renderers/index.d.ts +59 -0
  422. package/dist/cli/renderers/index.d.ts.map +1 -0
  423. package/dist/cli/renderers/index.js +208 -0
  424. package/dist/cli/renderers/index.js.map +1 -0
  425. package/dist/cli/renderers/lafs-validator.d.ts +97 -0
  426. package/dist/cli/renderers/lafs-validator.d.ts.map +1 -0
  427. package/dist/cli/renderers/lafs-validator.js +229 -0
  428. package/dist/cli/renderers/lafs-validator.js.map +1 -0
  429. package/dist/cli/renderers/normalizer.d.ts +21 -0
  430. package/dist/cli/renderers/normalizer.d.ts.map +1 -0
  431. package/dist/cli/renderers/normalizer.js +106 -0
  432. package/dist/cli/renderers/normalizer.js.map +1 -0
  433. package/dist/cli/renderers/system.d.ts +25 -0
  434. package/dist/cli/renderers/system.d.ts.map +1 -0
  435. package/dist/cli/renderers/system.js +416 -0
  436. package/dist/cli/renderers/system.js.map +1 -0
  437. package/dist/cli/renderers/tasks.d.ts +28 -0
  438. package/dist/cli/renderers/tasks.d.ts.map +1 -0
  439. package/dist/cli/renderers/tasks.js +306 -0
  440. package/dist/cli/renderers/tasks.js.map +1 -0
  441. package/dist/dispatch/adapters/cli.d.ts +67 -0
  442. package/dist/dispatch/adapters/cli.d.ts.map +1 -0
  443. package/dist/dispatch/adapters/cli.js +262 -0
  444. package/dist/dispatch/adapters/cli.js.map +1 -0
  445. package/dist/dispatch/context/session-context.d.ts +54 -0
  446. package/dist/dispatch/context/session-context.d.ts.map +1 -0
  447. package/dist/dispatch/context/session-context.js +61 -0
  448. package/dist/dispatch/context/session-context.js.map +1 -0
  449. package/dist/dispatch/dispatcher.d.ts +23 -0
  450. package/dist/dispatch/dispatcher.d.ts.map +1 -0
  451. package/dist/dispatch/dispatcher.js +84 -0
  452. package/dist/dispatch/dispatcher.js.map +1 -0
  453. package/dist/dispatch/domains/_base.d.ts +59 -0
  454. package/dist/dispatch/domains/_base.d.ts.map +1 -0
  455. package/dist/dispatch/domains/_base.js +77 -0
  456. package/dist/dispatch/domains/_base.js.map +1 -0
  457. package/dist/dispatch/domains/_meta.d.ts +23 -0
  458. package/dist/dispatch/domains/_meta.d.ts.map +1 -0
  459. package/dist/dispatch/domains/_meta.js +25 -0
  460. package/dist/dispatch/domains/_meta.js.map +1 -0
  461. package/dist/dispatch/domains/_routing.d.ts +8 -0
  462. package/dist/dispatch/domains/_routing.d.ts.map +1 -0
  463. package/dist/dispatch/domains/_routing.js +20 -0
  464. package/dist/dispatch/domains/_routing.js.map +1 -0
  465. package/dist/dispatch/domains/admin.d.ts +25 -0
  466. package/dist/dispatch/domains/admin.d.ts.map +1 -0
  467. package/dist/dispatch/domains/admin.js +719 -0
  468. package/dist/dispatch/domains/admin.js.map +1 -0
  469. package/dist/dispatch/domains/check.d.ts +22 -0
  470. package/dist/dispatch/domains/check.d.ts.map +1 -0
  471. package/dist/dispatch/domains/check.js +360 -0
  472. package/dist/dispatch/domains/check.js.map +1 -0
  473. package/dist/dispatch/domains/conduit.d.ts +38 -0
  474. package/dist/dispatch/domains/conduit.d.ts.map +1 -0
  475. package/dist/dispatch/domains/conduit.js +247 -0
  476. package/dist/dispatch/domains/conduit.js.map +1 -0
  477. package/dist/dispatch/domains/index.d.ts +27 -0
  478. package/dist/dispatch/domains/index.d.ts.map +1 -0
  479. package/dist/dispatch/domains/index.js +40 -0
  480. package/dist/dispatch/domains/index.js.map +1 -0
  481. package/dist/dispatch/domains/memory.d.ts +22 -0
  482. package/dist/dispatch/domains/memory.d.ts.map +1 -0
  483. package/dist/dispatch/domains/memory.js +303 -0
  484. package/dist/dispatch/domains/memory.js.map +1 -0
  485. package/dist/dispatch/domains/nexus.d.ts +22 -0
  486. package/dist/dispatch/domains/nexus.d.ts.map +1 -0
  487. package/dist/dispatch/domains/nexus.js +286 -0
  488. package/dist/dispatch/domains/nexus.js.map +1 -0
  489. package/dist/dispatch/domains/orchestrate.d.ts +19 -0
  490. package/dist/dispatch/domains/orchestrate.d.ts.map +1 -0
  491. package/dist/dispatch/domains/orchestrate.js +259 -0
  492. package/dist/dispatch/domains/orchestrate.js.map +1 -0
  493. package/dist/dispatch/domains/pipeline.d.ts +35 -0
  494. package/dist/dispatch/domains/pipeline.d.ts.map +1 -0
  495. package/dist/dispatch/domains/pipeline.js +593 -0
  496. package/dist/dispatch/domains/pipeline.js.map +1 -0
  497. package/dist/dispatch/domains/session.d.ts +22 -0
  498. package/dist/dispatch/domains/session.d.ts.map +1 -0
  499. package/dist/dispatch/domains/session.js +257 -0
  500. package/dist/dispatch/domains/session.js.map +1 -0
  501. package/dist/dispatch/domains/sticky.d.ts +20 -0
  502. package/dist/dispatch/domains/sticky.d.ts.map +1 -0
  503. package/dist/dispatch/domains/sticky.js +164 -0
  504. package/dist/dispatch/domains/sticky.js.map +1 -0
  505. package/dist/dispatch/domains/tasks.d.ts +25 -0
  506. package/dist/dispatch/domains/tasks.d.ts.map +1 -0
  507. package/dist/dispatch/domains/tasks.js +361 -0
  508. package/dist/dispatch/domains/tasks.js.map +1 -0
  509. package/dist/dispatch/domains/tools.d.ts +37 -0
  510. package/dist/dispatch/domains/tools.d.ts.map +1 -0
  511. package/dist/dispatch/domains/tools.js +481 -0
  512. package/dist/dispatch/domains/tools.js.map +1 -0
  513. package/dist/dispatch/engines/_error.d.ts +85 -0
  514. package/dist/dispatch/engines/_error.d.ts.map +1 -0
  515. package/dist/dispatch/engines/_error.js +244 -0
  516. package/dist/dispatch/engines/_error.js.map +1 -0
  517. package/dist/dispatch/engines/code-engine.d.ts +18 -0
  518. package/dist/dispatch/engines/code-engine.d.ts.map +1 -0
  519. package/dist/dispatch/engines/code-engine.js +71 -0
  520. package/dist/dispatch/engines/code-engine.js.map +1 -0
  521. package/dist/dispatch/engines/codebase-map-engine.d.ts +31 -0
  522. package/dist/dispatch/engines/codebase-map-engine.d.ts.map +1 -0
  523. package/dist/dispatch/engines/codebase-map-engine.js +43 -0
  524. package/dist/dispatch/engines/codebase-map-engine.js.map +1 -0
  525. package/dist/dispatch/engines/config-engine.d.ts +32 -0
  526. package/dist/dispatch/engines/config-engine.d.ts.map +1 -0
  527. package/dist/dispatch/engines/config-engine.js +70 -0
  528. package/dist/dispatch/engines/config-engine.js.map +1 -0
  529. package/dist/dispatch/engines/hooks-engine.d.ts +96 -0
  530. package/dist/dispatch/engines/hooks-engine.d.ts.map +1 -0
  531. package/dist/dispatch/engines/hooks-engine.js +144 -0
  532. package/dist/dispatch/engines/hooks-engine.js.map +1 -0
  533. package/dist/dispatch/engines/init-engine.d.ts +56 -0
  534. package/dist/dispatch/engines/init-engine.d.ts.map +1 -0
  535. package/dist/dispatch/engines/init-engine.js +78 -0
  536. package/dist/dispatch/engines/init-engine.js.map +1 -0
  537. package/dist/dispatch/engines/lifecycle-engine.d.ts +66 -0
  538. package/dist/dispatch/engines/lifecycle-engine.d.ts.map +1 -0
  539. package/dist/dispatch/engines/lifecycle-engine.js +224 -0
  540. package/dist/dispatch/engines/lifecycle-engine.js.map +1 -0
  541. package/dist/dispatch/engines/memory-engine.d.ts +10 -0
  542. package/dist/dispatch/engines/memory-engine.d.ts.map +1 -0
  543. package/dist/dispatch/engines/memory-engine.js +10 -0
  544. package/dist/dispatch/engines/memory-engine.js.map +1 -0
  545. package/dist/dispatch/engines/nexus-engine.d.ts +167 -0
  546. package/dist/dispatch/engines/nexus-engine.d.ts.map +1 -0
  547. package/dist/dispatch/engines/nexus-engine.js +356 -0
  548. package/dist/dispatch/engines/nexus-engine.js.map +1 -0
  549. package/dist/dispatch/engines/orchestrate-engine.d.ts +133 -0
  550. package/dist/dispatch/engines/orchestrate-engine.d.ts.map +1 -0
  551. package/dist/dispatch/engines/orchestrate-engine.js +769 -0
  552. package/dist/dispatch/engines/orchestrate-engine.js.map +1 -0
  553. package/dist/dispatch/engines/pipeline-engine.d.ts +51 -0
  554. package/dist/dispatch/engines/pipeline-engine.d.ts.map +1 -0
  555. package/dist/dispatch/engines/pipeline-engine.js +191 -0
  556. package/dist/dispatch/engines/pipeline-engine.js.map +1 -0
  557. package/dist/dispatch/engines/release-engine.d.ts +94 -0
  558. package/dist/dispatch/engines/release-engine.d.ts.map +1 -0
  559. package/dist/dispatch/engines/release-engine.js +763 -0
  560. package/dist/dispatch/engines/release-engine.js.map +1 -0
  561. package/dist/dispatch/engines/session-engine.d.ts +383 -0
  562. package/dist/dispatch/engines/session-engine.d.ts.map +1 -0
  563. package/dist/dispatch/engines/session-engine.js +960 -0
  564. package/dist/dispatch/engines/session-engine.js.map +1 -0
  565. package/dist/dispatch/engines/sticky-engine.d.ts +100 -0
  566. package/dist/dispatch/engines/sticky-engine.d.ts.map +1 -0
  567. package/dist/dispatch/engines/sticky-engine.js +181 -0
  568. package/dist/dispatch/engines/sticky-engine.js.map +1 -0
  569. package/dist/dispatch/engines/system-engine.d.ts +539 -0
  570. package/dist/dispatch/engines/system-engine.d.ts.map +1 -0
  571. package/dist/dispatch/engines/system-engine.js +1266 -0
  572. package/dist/dispatch/engines/system-engine.js.map +1 -0
  573. package/dist/dispatch/engines/task-engine.d.ts +1055 -0
  574. package/dist/dispatch/engines/task-engine.d.ts.map +1 -0
  575. package/dist/dispatch/engines/task-engine.js +1387 -0
  576. package/dist/dispatch/engines/task-engine.js.map +1 -0
  577. package/dist/dispatch/engines/template-parser.d.ts +85 -0
  578. package/dist/dispatch/engines/template-parser.d.ts.map +1 -0
  579. package/dist/dispatch/engines/template-parser.js +108 -0
  580. package/dist/dispatch/engines/template-parser.js.map +1 -0
  581. package/dist/dispatch/engines/tools-engine.d.ts +270 -0
  582. package/dist/dispatch/engines/tools-engine.d.ts.map +1 -0
  583. package/dist/dispatch/engines/tools-engine.js +636 -0
  584. package/dist/dispatch/engines/tools-engine.js.map +1 -0
  585. package/dist/dispatch/engines/validate-engine.d.ts +218 -0
  586. package/dist/dispatch/engines/validate-engine.d.ts.map +1 -0
  587. package/dist/dispatch/engines/validate-engine.js +737 -0
  588. package/dist/dispatch/engines/validate-engine.js.map +1 -0
  589. package/dist/dispatch/index.d.ts +20 -0
  590. package/dist/dispatch/index.d.ts.map +1 -0
  591. package/dist/dispatch/index.js +19 -0
  592. package/dist/dispatch/index.js.map +1 -0
  593. package/dist/dispatch/lib/background-jobs.d.ts +86 -0
  594. package/dist/dispatch/lib/background-jobs.d.ts.map +1 -0
  595. package/dist/dispatch/lib/background-jobs.js +183 -0
  596. package/dist/dispatch/lib/background-jobs.js.map +1 -0
  597. package/dist/dispatch/lib/budget.d.ts +35 -0
  598. package/dist/dispatch/lib/budget.d.ts.map +1 -0
  599. package/dist/dispatch/lib/budget.js +102 -0
  600. package/dist/dispatch/lib/budget.js.map +1 -0
  601. package/dist/dispatch/lib/capability-matrix.d.ts +11 -0
  602. package/dist/dispatch/lib/capability-matrix.d.ts.map +1 -0
  603. package/dist/dispatch/lib/capability-matrix.js +10 -0
  604. package/dist/dispatch/lib/capability-matrix.js.map +1 -0
  605. package/dist/dispatch/lib/config-loader.d.ts +42 -0
  606. package/dist/dispatch/lib/config-loader.d.ts.map +1 -0
  607. package/dist/dispatch/lib/config-loader.js +217 -0
  608. package/dist/dispatch/lib/config-loader.js.map +1 -0
  609. package/dist/dispatch/lib/config.d.ts +11 -0
  610. package/dist/dispatch/lib/config.d.ts.map +1 -0
  611. package/dist/dispatch/lib/config.js +10 -0
  612. package/dist/dispatch/lib/config.js.map +1 -0
  613. package/dist/dispatch/lib/defaults.d.ts +117 -0
  614. package/dist/dispatch/lib/defaults.d.ts.map +1 -0
  615. package/dist/dispatch/lib/defaults.js +58 -0
  616. package/dist/dispatch/lib/defaults.js.map +1 -0
  617. package/dist/dispatch/lib/engine.d.ts +26 -0
  618. package/dist/dispatch/lib/engine.d.ts.map +1 -0
  619. package/dist/dispatch/lib/engine.js +46 -0
  620. package/dist/dispatch/lib/engine.js.map +1 -0
  621. package/dist/dispatch/lib/gateway-meta.d.ts +37 -0
  622. package/dist/dispatch/lib/gateway-meta.d.ts.map +1 -0
  623. package/dist/dispatch/lib/gateway-meta.js +50 -0
  624. package/dist/dispatch/lib/gateway-meta.js.map +1 -0
  625. package/dist/dispatch/lib/job-manager-accessor.d.ts +9 -0
  626. package/dist/dispatch/lib/job-manager-accessor.d.ts.map +1 -0
  627. package/dist/dispatch/lib/job-manager-accessor.js +13 -0
  628. package/dist/dispatch/lib/job-manager-accessor.js.map +1 -0
  629. package/dist/dispatch/lib/meta.d.ts +26 -0
  630. package/dist/dispatch/lib/meta.d.ts.map +1 -0
  631. package/dist/dispatch/lib/meta.js +37 -0
  632. package/dist/dispatch/lib/meta.js.map +1 -0
  633. package/dist/dispatch/lib/param-utils.d.ts +11 -0
  634. package/dist/dispatch/lib/param-utils.d.ts.map +1 -0
  635. package/dist/dispatch/lib/param-utils.js +10 -0
  636. package/dist/dispatch/lib/param-utils.js.map +1 -0
  637. package/dist/dispatch/lib/projections.d.ts +56 -0
  638. package/dist/dispatch/lib/projections.d.ts.map +1 -0
  639. package/dist/dispatch/lib/projections.js +65 -0
  640. package/dist/dispatch/lib/projections.js.map +1 -0
  641. package/dist/dispatch/lib/schema-utils.d.ts +39 -0
  642. package/dist/dispatch/lib/schema-utils.d.ts.map +1 -0
  643. package/dist/dispatch/lib/schema-utils.js +88 -0
  644. package/dist/dispatch/lib/schema-utils.js.map +1 -0
  645. package/dist/dispatch/lib/security.d.ts +11 -0
  646. package/dist/dispatch/lib/security.d.ts.map +1 -0
  647. package/dist/dispatch/lib/security.js +10 -0
  648. package/dist/dispatch/lib/security.js.map +1 -0
  649. package/dist/dispatch/middleware/audit.d.ts +23 -0
  650. package/dist/dispatch/middleware/audit.d.ts.map +1 -0
  651. package/dist/dispatch/middleware/audit.js +169 -0
  652. package/dist/dispatch/middleware/audit.js.map +1 -0
  653. package/dist/dispatch/middleware/field-filter.d.ts +24 -0
  654. package/dist/dispatch/middleware/field-filter.d.ts.map +1 -0
  655. package/dist/dispatch/middleware/field-filter.js +65 -0
  656. package/dist/dispatch/middleware/field-filter.js.map +1 -0
  657. package/dist/dispatch/middleware/pipeline.d.ts +33 -0
  658. package/dist/dispatch/middleware/pipeline.d.ts.map +1 -0
  659. package/dist/dispatch/middleware/pipeline.js +60 -0
  660. package/dist/dispatch/middleware/pipeline.js.map +1 -0
  661. package/dist/dispatch/middleware/projection.d.ts +35 -0
  662. package/dist/dispatch/middleware/projection.d.ts.map +1 -0
  663. package/dist/dispatch/middleware/projection.js +146 -0
  664. package/dist/dispatch/middleware/projection.js.map +1 -0
  665. package/dist/dispatch/middleware/protocol-enforcement.d.ts +27 -0
  666. package/dist/dispatch/middleware/protocol-enforcement.d.ts.map +1 -0
  667. package/dist/dispatch/middleware/protocol-enforcement.js +45 -0
  668. package/dist/dispatch/middleware/protocol-enforcement.js.map +1 -0
  669. package/dist/dispatch/middleware/rate-limiter.d.ts +72 -0
  670. package/dist/dispatch/middleware/rate-limiter.d.ts.map +1 -0
  671. package/dist/dispatch/middleware/rate-limiter.js +127 -0
  672. package/dist/dispatch/middleware/rate-limiter.js.map +1 -0
  673. package/dist/dispatch/middleware/sanitizer.d.ts +24 -0
  674. package/dist/dispatch/middleware/sanitizer.d.ts.map +1 -0
  675. package/dist/dispatch/middleware/sanitizer.js +56 -0
  676. package/dist/dispatch/middleware/sanitizer.js.map +1 -0
  677. package/dist/dispatch/middleware/session-resolver.d.ts +26 -0
  678. package/dist/dispatch/middleware/session-resolver.d.ts.map +1 -0
  679. package/dist/dispatch/middleware/session-resolver.js +65 -0
  680. package/dist/dispatch/middleware/session-resolver.js.map +1 -0
  681. package/dist/dispatch/middleware/verification-gates.d.ts +22 -0
  682. package/dist/dispatch/middleware/verification-gates.d.ts.map +1 -0
  683. package/dist/dispatch/middleware/verification-gates.js +59 -0
  684. package/dist/dispatch/middleware/verification-gates.js.map +1 -0
  685. package/dist/dispatch/registry.d.ts +91 -0
  686. package/dist/dispatch/registry.d.ts.map +1 -0
  687. package/dist/dispatch/registry.js +3133 -0
  688. package/dist/dispatch/registry.js.map +1 -0
  689. package/dist/dispatch/types.d.ts +202 -0
  690. package/dist/dispatch/types.d.ts.map +1 -0
  691. package/dist/dispatch/types.js +26 -0
  692. package/dist/dispatch/types.js.map +1 -0
  693. package/package.json +7 -7
@@ -0,0 +1,737 @@
1
+ /**
2
+ * Validate Engine
3
+ *
4
+ * Thin wrapper layer around core validation operations.
5
+ * Delegates all business logic to src/core/validation/validate-ops.ts.
6
+ *
7
+ * @task T4477
8
+ * @task T4659
9
+ * @task T4786
10
+ * @epic T4654
11
+ */
12
+ import { coreBatchValidate, coreCoherenceCheck, coreComplianceRecord, coreComplianceSummary, coreComplianceViolations, coreTestCoverage, coreTestRun, coreTestStatus, coreValidateManifest, coreValidateOutput, coreValidateProtocol, coreValidateSchema, coreValidateTask, resolveProjectRoot, } from '@cleocode/core/internal';
13
+ import { engineError } from './_error.js';
14
+ /**
15
+ * validate.schema - JSON Schema validation
16
+ * @task T4477
17
+ */
18
+ export function validateSchemaOp(type, data, projectRoot) {
19
+ try {
20
+ const root = projectRoot || resolveProjectRoot();
21
+ const result = coreValidateSchema(type, data, root);
22
+ return { success: true, data: result };
23
+ }
24
+ catch (err) {
25
+ const message = err instanceof Error ? err.message : String(err);
26
+ const code = message.includes('not found')
27
+ ? 'E_NOT_FOUND'
28
+ : message.includes('Unknown schema')
29
+ ? 'E_INVALID_TYPE'
30
+ : message.includes('required')
31
+ ? 'E_INVALID_INPUT'
32
+ : 'E_VALIDATION_ERROR';
33
+ return engineError(code, message);
34
+ }
35
+ }
36
+ /**
37
+ * validate.task - Anti-hallucination task validation
38
+ * @task T4477
39
+ */
40
+ export async function validateTask(taskId, projectRoot) {
41
+ try {
42
+ const root = projectRoot || resolveProjectRoot();
43
+ const result = await coreValidateTask(taskId, root);
44
+ return { success: true, data: result };
45
+ }
46
+ catch (err) {
47
+ const message = err instanceof Error ? err.message : String(err);
48
+ const code = message.includes('not found') ? 'E_NOT_FOUND' : 'E_INVALID_INPUT';
49
+ return engineError(code, message);
50
+ }
51
+ }
52
+ /**
53
+ * validate.protocol - Protocol compliance check
54
+ * @task T4477
55
+ */
56
+ export async function validateProtocol(taskId, protocolType, projectRoot) {
57
+ try {
58
+ const root = projectRoot || resolveProjectRoot();
59
+ const result = await coreValidateProtocol(taskId, protocolType, root);
60
+ return { success: true, data: result };
61
+ }
62
+ catch (err) {
63
+ const message = err instanceof Error ? err.message : String(err);
64
+ const code = message.includes('not found') ? 'E_NOT_FOUND' : 'E_INVALID_INPUT';
65
+ return engineError(code, message);
66
+ }
67
+ }
68
+ /**
69
+ * validate.manifest - Manifest entry validation
70
+ * @task T4477
71
+ */
72
+ export function validateManifest(projectRoot) {
73
+ try {
74
+ const root = projectRoot || resolveProjectRoot();
75
+ const result = coreValidateManifest(root);
76
+ return { success: true, data: result };
77
+ }
78
+ catch (err) {
79
+ return engineError('E_FILE_ERROR', err instanceof Error ? err.message : String(err));
80
+ }
81
+ }
82
+ /**
83
+ * validate.output - Output file validation
84
+ * @task T4477
85
+ */
86
+ export function validateOutput(filePath, taskId, projectRoot) {
87
+ try {
88
+ const root = projectRoot || resolveProjectRoot();
89
+ const result = coreValidateOutput(filePath, taskId, root);
90
+ return { success: true, data: result };
91
+ }
92
+ catch (err) {
93
+ const message = err instanceof Error ? err.message : String(err);
94
+ const code = message.includes('not found') ? 'E_NOT_FOUND' : 'E_INVALID_INPUT';
95
+ return engineError(code, message);
96
+ }
97
+ }
98
+ /**
99
+ * validate.compliance.summary - Aggregated compliance metrics
100
+ * @task T4477
101
+ */
102
+ export function validateComplianceSummary(projectRoot) {
103
+ try {
104
+ const root = projectRoot || resolveProjectRoot();
105
+ const result = coreComplianceSummary(root);
106
+ return { success: true, data: result };
107
+ }
108
+ catch (err) {
109
+ return engineError('E_FILE_ERROR', err instanceof Error ? err.message : String(err));
110
+ }
111
+ }
112
+ /**
113
+ * validate.compliance.violations - List compliance violations
114
+ * @task T4477
115
+ */
116
+ export function validateComplianceViolations(limit, projectRoot) {
117
+ try {
118
+ const root = projectRoot || resolveProjectRoot();
119
+ const result = coreComplianceViolations(limit, root);
120
+ return { success: true, data: result };
121
+ }
122
+ catch (err) {
123
+ return engineError('E_FILE_ERROR', err instanceof Error ? err.message : String(err));
124
+ }
125
+ }
126
+ /**
127
+ * validate.compliance.record - Record compliance check result
128
+ * @task T4477
129
+ */
130
+ export function validateComplianceRecord(taskId, result, protocol, violations, projectRoot) {
131
+ try {
132
+ const root = projectRoot || resolveProjectRoot();
133
+ const data = coreComplianceRecord(taskId, result, protocol, violations, root);
134
+ return { success: true, data };
135
+ }
136
+ catch (err) {
137
+ return engineError('E_INVALID_INPUT', err instanceof Error ? err.message : String(err));
138
+ }
139
+ }
140
+ /**
141
+ * validate.test.status - Test suite status
142
+ * @task T4477
143
+ */
144
+ export function validateTestStatus(projectRoot) {
145
+ try {
146
+ const root = projectRoot || resolveProjectRoot();
147
+ const result = coreTestStatus(root);
148
+ return { success: true, data: result };
149
+ }
150
+ catch (err) {
151
+ return engineError('E_GENERAL', err instanceof Error ? err.message : String(err));
152
+ }
153
+ }
154
+ /**
155
+ * validate.coherence-check - Cross-validate task graph for consistency
156
+ * @task T4477
157
+ */
158
+ export async function validateCoherenceCheck(projectRoot) {
159
+ try {
160
+ const root = projectRoot || resolveProjectRoot();
161
+ const result = await coreCoherenceCheck(root);
162
+ return { success: true, data: result };
163
+ }
164
+ catch (err) {
165
+ return engineError('E_NOT_INITIALIZED', err instanceof Error ? err.message : String(err));
166
+ }
167
+ }
168
+ /**
169
+ * validate.test.run - Execute test suite via subprocess
170
+ * @task T4632
171
+ */
172
+ export function validateTestRun(params, projectRoot) {
173
+ try {
174
+ const root = projectRoot || resolveProjectRoot();
175
+ const result = coreTestRun(params, root);
176
+ return { success: true, data: result };
177
+ }
178
+ catch (err) {
179
+ return engineError('E_GENERAL', err instanceof Error ? err.message : String(err));
180
+ }
181
+ }
182
+ /**
183
+ * validate.batch-validate - Batch validate all tasks against schema and rules
184
+ * @task T4632
185
+ */
186
+ export async function validateBatchValidate(projectRoot) {
187
+ try {
188
+ const root = projectRoot || resolveProjectRoot();
189
+ const result = await coreBatchValidate(root);
190
+ return { success: true, data: result };
191
+ }
192
+ catch (err) {
193
+ return engineError('E_NOT_FOUND', err instanceof Error ? err.message : String(err));
194
+ }
195
+ }
196
+ /**
197
+ * validate.test.coverage - Coverage metrics
198
+ * @task T4477
199
+ */
200
+ export function validateTestCoverage(projectRoot) {
201
+ try {
202
+ const root = projectRoot || resolveProjectRoot();
203
+ const result = coreTestCoverage(root);
204
+ return { success: true, data: result };
205
+ }
206
+ catch (err) {
207
+ return engineError('E_FILE_ERROR', err instanceof Error ? err.message : String(err));
208
+ }
209
+ }
210
+ // ============================================================================
211
+ // Protocol Validation Operations (T5327)
212
+ // ============================================================================
213
+ import { checkArchitectureDecisionManifest, checkArtifactPublishManifest, checkConsensusManifest, checkContributionManifest, checkDecompositionManifest, checkImplementationManifest, checkProvenanceManifest, checkReleaseManifest, checkResearchManifest, checkSpecificationManifest, checkTestingManifest, checkValidationManifest, validateArchitectureDecisionTask, validateArtifactPublishTask, validateConsensusTask, validateContributionProtocol as validateContributionTask, validateDecompositionTask, validateImplementationTask, validateProvenanceTask, validateReleaseTask, validateResearchTask, validateSpecificationTask, validateTestingTask, validateValidationTask, } from '@cleocode/core/internal';
214
+ /**
215
+ * Shared catch handler for protocol validation ops.
216
+ *
217
+ * @task T260
218
+ */
219
+ function protocolCatch(err) {
220
+ const message = err instanceof Error ? err.message : String(err);
221
+ const code = message.includes('not found')
222
+ ? 'E_NOT_FOUND'
223
+ : message.includes('violations')
224
+ ? 'E_PROTOCOL_VIOLATION'
225
+ : 'E_VALIDATION_ERROR';
226
+ return engineError(code, message);
227
+ }
228
+ /**
229
+ * check.protocol.consensus - Validate consensus protocol compliance
230
+ * @task T5327
231
+ */
232
+ export async function validateProtocolConsensus(params, _projectRoot) {
233
+ try {
234
+ const { mode, strict, votingMatrixFile } = params;
235
+ if (mode === 'task') {
236
+ if (!params.taskId) {
237
+ return engineError('E_INVALID_INPUT', 'taskId is required for task mode');
238
+ }
239
+ const result = await validateConsensusTask(params.taskId, {
240
+ strict,
241
+ votingMatrixFile,
242
+ });
243
+ return { success: true, data: result };
244
+ }
245
+ else {
246
+ if (!params.manifestFile) {
247
+ return engineError('E_INVALID_INPUT', 'manifestFile is required for manifest mode');
248
+ }
249
+ const result = await checkConsensusManifest(params.manifestFile, {
250
+ strict,
251
+ votingMatrixFile,
252
+ });
253
+ return { success: true, data: result };
254
+ }
255
+ }
256
+ catch (err) {
257
+ const message = err instanceof Error ? err.message : String(err);
258
+ const code = message.includes('not found')
259
+ ? 'E_NOT_FOUND'
260
+ : message.includes('violations')
261
+ ? 'E_PROTOCOL_VIOLATION'
262
+ : 'E_VALIDATION_ERROR';
263
+ return engineError(code, message);
264
+ }
265
+ }
266
+ /**
267
+ * check.protocol.contribution - Validate contribution protocol compliance
268
+ * @task T5327
269
+ */
270
+ export async function validateProtocolContribution(params, _projectRoot) {
271
+ try {
272
+ const { mode, strict } = params;
273
+ if (mode === 'task') {
274
+ if (!params.taskId) {
275
+ return engineError('E_INVALID_INPUT', 'taskId is required for task mode');
276
+ }
277
+ const result = await validateContributionTask(params.taskId, { strict });
278
+ return { success: true, data: result };
279
+ }
280
+ else {
281
+ if (!params.manifestFile) {
282
+ return engineError('E_INVALID_INPUT', 'manifestFile is required for manifest mode');
283
+ }
284
+ const result = await checkContributionManifest(params.manifestFile, { strict });
285
+ return { success: true, data: result };
286
+ }
287
+ }
288
+ catch (err) {
289
+ const message = err instanceof Error ? err.message : String(err);
290
+ const code = message.includes('not found')
291
+ ? 'E_NOT_FOUND'
292
+ : message.includes('violations')
293
+ ? 'E_PROTOCOL_VIOLATION'
294
+ : 'E_VALIDATION_ERROR';
295
+ return engineError(code, message);
296
+ }
297
+ }
298
+ /**
299
+ * check.protocol.decomposition - Validate decomposition protocol compliance
300
+ * @task T5327
301
+ */
302
+ export async function validateProtocolDecomposition(params, _projectRoot) {
303
+ try {
304
+ const { mode, strict, epicId } = params;
305
+ if (mode === 'task') {
306
+ if (!params.taskId) {
307
+ return engineError('E_INVALID_INPUT', 'taskId is required for task mode');
308
+ }
309
+ const result = await validateDecompositionTask(params.taskId, { strict, epicId });
310
+ return { success: true, data: result };
311
+ }
312
+ else {
313
+ if (!params.manifestFile) {
314
+ return engineError('E_INVALID_INPUT', 'manifestFile is required for manifest mode');
315
+ }
316
+ const result = await checkDecompositionManifest(params.manifestFile, { strict, epicId });
317
+ return { success: true, data: result };
318
+ }
319
+ }
320
+ catch (err) {
321
+ const message = err instanceof Error ? err.message : String(err);
322
+ const code = message.includes('not found')
323
+ ? 'E_NOT_FOUND'
324
+ : message.includes('violations')
325
+ ? 'E_PROTOCOL_VIOLATION'
326
+ : 'E_VALIDATION_ERROR';
327
+ return engineError(code, message);
328
+ }
329
+ }
330
+ /**
331
+ * check.protocol.implementation - Validate implementation protocol compliance
332
+ * @task T5327
333
+ */
334
+ export async function validateProtocolImplementation(params, _projectRoot) {
335
+ try {
336
+ const { mode, strict } = params;
337
+ if (mode === 'task') {
338
+ if (!params.taskId) {
339
+ return engineError('E_INVALID_INPUT', 'taskId is required for task mode');
340
+ }
341
+ const result = await validateImplementationTask(params.taskId, { strict });
342
+ return { success: true, data: result };
343
+ }
344
+ else {
345
+ if (!params.manifestFile) {
346
+ return engineError('E_INVALID_INPUT', 'manifestFile is required for manifest mode');
347
+ }
348
+ const result = await checkImplementationManifest(params.manifestFile, { strict });
349
+ return { success: true, data: result };
350
+ }
351
+ }
352
+ catch (err) {
353
+ const message = err instanceof Error ? err.message : String(err);
354
+ const code = message.includes('not found')
355
+ ? 'E_NOT_FOUND'
356
+ : message.includes('violations')
357
+ ? 'E_PROTOCOL_VIOLATION'
358
+ : 'E_VALIDATION_ERROR';
359
+ return engineError(code, message);
360
+ }
361
+ }
362
+ /**
363
+ * check.protocol.specification - Validate specification protocol compliance
364
+ * @task T5327
365
+ */
366
+ export async function validateProtocolSpecification(params, _projectRoot) {
367
+ try {
368
+ const { mode, strict, specFile } = params;
369
+ if (mode === 'task') {
370
+ if (!params.taskId) {
371
+ return engineError('E_INVALID_INPUT', 'taskId is required for task mode');
372
+ }
373
+ const result = await validateSpecificationTask(params.taskId, { strict, specFile });
374
+ return { success: true, data: result };
375
+ }
376
+ else {
377
+ if (!params.manifestFile) {
378
+ return engineError('E_INVALID_INPUT', 'manifestFile is required for manifest mode');
379
+ }
380
+ const result = await checkSpecificationManifest(params.manifestFile, { strict, specFile });
381
+ return { success: true, data: result };
382
+ }
383
+ }
384
+ catch (err) {
385
+ return protocolCatch(err);
386
+ }
387
+ }
388
+ /**
389
+ * check.protocol.research - Validate research protocol compliance
390
+ * @task T260
391
+ */
392
+ export async function validateProtocolResearch(params, _projectRoot) {
393
+ try {
394
+ const { mode, strict, hasCodeChanges } = params;
395
+ if (mode === 'task') {
396
+ if (!params.taskId) {
397
+ return engineError('E_INVALID_INPUT', 'taskId is required for task mode');
398
+ }
399
+ const result = await validateResearchTask(params.taskId, { strict, hasCodeChanges });
400
+ return { success: true, data: result };
401
+ }
402
+ if (!params.manifestFile) {
403
+ return engineError('E_INVALID_INPUT', 'manifestFile is required for manifest mode');
404
+ }
405
+ const result = await checkResearchManifest(params.manifestFile, { strict, hasCodeChanges });
406
+ return { success: true, data: result };
407
+ }
408
+ catch (err) {
409
+ return protocolCatch(err);
410
+ }
411
+ }
412
+ /**
413
+ * check.protocol.architecture-decision - Validate ADR protocol compliance
414
+ * @task T260
415
+ */
416
+ export async function validateProtocolArchitectureDecision(params, _projectRoot) {
417
+ try {
418
+ const { mode, strict, adrContent, status, hitlReviewed, downstreamFlagged, persistedInDb } = params;
419
+ const adrOpts = { strict, adrContent, status, hitlReviewed, downstreamFlagged, persistedInDb };
420
+ if (mode === 'task') {
421
+ if (!params.taskId) {
422
+ return engineError('E_INVALID_INPUT', 'taskId is required for task mode');
423
+ }
424
+ const result = await validateArchitectureDecisionTask(params.taskId, adrOpts);
425
+ return { success: true, data: result };
426
+ }
427
+ if (!params.manifestFile) {
428
+ return engineError('E_INVALID_INPUT', 'manifestFile is required for manifest mode');
429
+ }
430
+ const result = await checkArchitectureDecisionManifest(params.manifestFile, adrOpts);
431
+ return { success: true, data: result };
432
+ }
433
+ catch (err) {
434
+ return protocolCatch(err);
435
+ }
436
+ }
437
+ /**
438
+ * check.protocol.validation - Validate validation-stage protocol compliance
439
+ * @task T260
440
+ */
441
+ export async function validateProtocolValidation(params, _projectRoot) {
442
+ try {
443
+ const { mode, strict, specMatchConfirmed, testSuitePassed, protocolComplianceChecked } = params;
444
+ const validationOpts = {
445
+ strict,
446
+ specMatchConfirmed,
447
+ testSuitePassed,
448
+ protocolComplianceChecked,
449
+ };
450
+ if (mode === 'task') {
451
+ if (!params.taskId) {
452
+ return engineError('E_INVALID_INPUT', 'taskId is required for task mode');
453
+ }
454
+ const result = await validateValidationTask(params.taskId, validationOpts);
455
+ return { success: true, data: result };
456
+ }
457
+ if (!params.manifestFile) {
458
+ return engineError('E_INVALID_INPUT', 'manifestFile is required for manifest mode');
459
+ }
460
+ const result = await checkValidationManifest(params.manifestFile, validationOpts);
461
+ return { success: true, data: result };
462
+ }
463
+ catch (err) {
464
+ return protocolCatch(err);
465
+ }
466
+ }
467
+ /**
468
+ * check.protocol.testing - Validate testing-stage protocol compliance (IVT loop)
469
+ * @task T260
470
+ */
471
+ export async function validateProtocolTesting(params, _projectRoot) {
472
+ try {
473
+ const { mode, strict, framework, testsRun, testsPassed, testsFailed, coveragePercent, coverageThreshold, ivtLoopConverged, ivtLoopIterations, } = params;
474
+ const testingOpts = {
475
+ strict,
476
+ framework: framework,
477
+ testsRun,
478
+ testsPassed,
479
+ testsFailed,
480
+ coveragePercent,
481
+ coverageThreshold,
482
+ ivtLoopConverged,
483
+ ivtLoopIterations,
484
+ };
485
+ if (mode === 'task') {
486
+ if (!params.taskId) {
487
+ return engineError('E_INVALID_INPUT', 'taskId is required for task mode');
488
+ }
489
+ const result = await validateTestingTask(params.taskId, testingOpts);
490
+ return { success: true, data: result };
491
+ }
492
+ if (!params.manifestFile) {
493
+ return engineError('E_INVALID_INPUT', 'manifestFile is required for manifest mode');
494
+ }
495
+ const result = await checkTestingManifest(params.manifestFile, testingOpts);
496
+ return { success: true, data: result };
497
+ }
498
+ catch (err) {
499
+ return protocolCatch(err);
500
+ }
501
+ }
502
+ /**
503
+ * check.protocol.release - Validate release protocol compliance
504
+ * @task T260
505
+ */
506
+ export async function validateProtocolRelease(params, _projectRoot) {
507
+ try {
508
+ const { mode, strict, version, hasChangelog } = params;
509
+ const releaseOpts = { strict, version, hasChangelog };
510
+ if (mode === 'task') {
511
+ if (!params.taskId) {
512
+ return engineError('E_INVALID_INPUT', 'taskId is required for task mode');
513
+ }
514
+ const result = await validateReleaseTask(params.taskId, releaseOpts);
515
+ return { success: true, data: result };
516
+ }
517
+ if (!params.manifestFile) {
518
+ return engineError('E_INVALID_INPUT', 'manifestFile is required for manifest mode');
519
+ }
520
+ const result = await checkReleaseManifest(params.manifestFile, releaseOpts);
521
+ return { success: true, data: result };
522
+ }
523
+ catch (err) {
524
+ return protocolCatch(err);
525
+ }
526
+ }
527
+ /**
528
+ * check.protocol.artifact-publish - Validate artifact-publish protocol compliance
529
+ * @task T260
530
+ */
531
+ export async function validateProtocolArtifactPublish(params, _projectRoot) {
532
+ try {
533
+ const { mode, strict, artifactType, buildPassed } = params;
534
+ const artifactOpts = { strict, artifactType, buildPassed };
535
+ if (mode === 'task') {
536
+ if (!params.taskId) {
537
+ return engineError('E_INVALID_INPUT', 'taskId is required for task mode');
538
+ }
539
+ const result = await validateArtifactPublishTask(params.taskId, artifactOpts);
540
+ return { success: true, data: result };
541
+ }
542
+ if (!params.manifestFile) {
543
+ return engineError('E_INVALID_INPUT', 'manifestFile is required for manifest mode');
544
+ }
545
+ const result = await checkArtifactPublishManifest(params.manifestFile, artifactOpts);
546
+ return { success: true, data: result };
547
+ }
548
+ catch (err) {
549
+ return protocolCatch(err);
550
+ }
551
+ }
552
+ /**
553
+ * check.protocol.provenance - Validate provenance protocol compliance
554
+ * @task T260
555
+ */
556
+ export async function validateProtocolProvenance(params, _projectRoot) {
557
+ try {
558
+ const { mode, strict, hasAttestation, hasSbom } = params;
559
+ const provenanceOpts = { strict, hasAttestation, hasSbom };
560
+ if (mode === 'task') {
561
+ if (!params.taskId) {
562
+ return engineError('E_INVALID_INPUT', 'taskId is required for task mode');
563
+ }
564
+ const result = await validateProvenanceTask(params.taskId, provenanceOpts);
565
+ return { success: true, data: result };
566
+ }
567
+ if (!params.manifestFile) {
568
+ return engineError('E_INVALID_INPUT', 'manifestFile is required for manifest mode');
569
+ }
570
+ const result = await checkProvenanceManifest(params.manifestFile, provenanceOpts);
571
+ return { success: true, data: result };
572
+ }
573
+ catch (err) {
574
+ return protocolCatch(err);
575
+ }
576
+ }
577
+ import { getAccessor } from '@cleocode/core/internal';
578
+ const VALID_GATES = [
579
+ 'implemented',
580
+ 'testsPassed',
581
+ 'qaPassed',
582
+ 'cleanupDone',
583
+ 'securityPassed',
584
+ 'documented',
585
+ ];
586
+ const DEFAULT_REQUIRED_GATES = [
587
+ 'implemented',
588
+ 'testsPassed',
589
+ 'qaPassed',
590
+ 'securityPassed',
591
+ 'documented',
592
+ ];
593
+ function initVerification() {
594
+ return {
595
+ passed: false,
596
+ round: 0,
597
+ gates: {},
598
+ lastAgent: null,
599
+ lastUpdated: null,
600
+ failureLog: [],
601
+ };
602
+ }
603
+ function computePassed(verification, requiredGates = DEFAULT_REQUIRED_GATES) {
604
+ for (const gate of requiredGates) {
605
+ if (verification.gates[gate] !== true)
606
+ return false;
607
+ }
608
+ return true;
609
+ }
610
+ function getMissingGates(verification, requiredGates = DEFAULT_REQUIRED_GATES) {
611
+ return requiredGates.filter((g) => verification.gates[g] !== true);
612
+ }
613
+ /** Load required gates from project config, falling back to hardcoded defaults. */
614
+ async function loadRequiredGates(projectRoot) {
615
+ try {
616
+ const { loadConfig } = await import('@cleocode/core/internal');
617
+ const config = await loadConfig(projectRoot);
618
+ const cfgGates = config.verification?.requiredGates;
619
+ if (Array.isArray(cfgGates) && cfgGates.length > 0) {
620
+ return cfgGates.filter((g) => DEFAULT_REQUIRED_GATES.includes(g));
621
+ }
622
+ }
623
+ catch {
624
+ // fallback
625
+ }
626
+ return [...DEFAULT_REQUIRED_GATES];
627
+ }
628
+ /**
629
+ * check.gate.verify - View or modify verification gates for a task
630
+ * @task T5327
631
+ */
632
+ export async function validateGateVerify(params, projectRoot) {
633
+ try {
634
+ const root = projectRoot || resolveProjectRoot();
635
+ const { taskId, gate, value = true, agent, all, reset } = params;
636
+ // Validate task ID format
637
+ const idPattern = /^T\d{3,}$/;
638
+ if (!idPattern.test(taskId)) {
639
+ return engineError('E_INVALID_INPUT', `Invalid task ID format: ${taskId}`);
640
+ }
641
+ const accessor = await getAccessor(root);
642
+ const task = await accessor.loadSingleTask(taskId);
643
+ if (!task) {
644
+ return engineError('E_NOT_FOUND', `Task ${taskId} not found`);
645
+ }
646
+ const configGates = await loadRequiredGates(root);
647
+ // View mode (no modifications)
648
+ if (!gate && !all && !reset) {
649
+ const verification = task.verification ?? initVerification();
650
+ const missing = getMissingGates(verification, configGates);
651
+ return {
652
+ success: true,
653
+ data: {
654
+ taskId,
655
+ title: task.title,
656
+ status: task.status,
657
+ type: task.type ?? 'task',
658
+ verification,
659
+ verificationStatus: verification.passed ? 'passed' : 'pending',
660
+ passed: verification.passed,
661
+ round: verification.round,
662
+ requiredGates: configGates,
663
+ missingGates: missing,
664
+ action: 'view',
665
+ },
666
+ };
667
+ }
668
+ // Modification mode
669
+ let verification = task.verification ?? initVerification();
670
+ const now = new Date().toISOString();
671
+ let action = 'view';
672
+ if (reset) {
673
+ verification = initVerification();
674
+ action = 'reset';
675
+ }
676
+ else if (all) {
677
+ for (const g of configGates) {
678
+ verification.gates[g] = true;
679
+ }
680
+ if (agent) {
681
+ verification.lastAgent = agent;
682
+ }
683
+ verification.lastUpdated = now;
684
+ action = 'set_all';
685
+ }
686
+ else if (gate) {
687
+ if (!VALID_GATES.includes(gate)) {
688
+ return engineError('E_INVALID_INPUT', `Invalid gate: ${gate}. Valid: ${VALID_GATES.join(', ')}`);
689
+ }
690
+ verification.gates[gate] = value;
691
+ if (agent) {
692
+ verification.lastAgent = agent;
693
+ }
694
+ verification.lastUpdated = now;
695
+ if (!value) {
696
+ verification.round++;
697
+ verification.failureLog.push({
698
+ round: verification.round,
699
+ agent: agent ?? 'unknown',
700
+ reason: `Gate ${gate} set to false`,
701
+ timestamp: now,
702
+ });
703
+ }
704
+ action = 'set_gate';
705
+ }
706
+ verification.passed = computePassed(verification, configGates);
707
+ task.verification = verification;
708
+ task.updatedAt = now;
709
+ await accessor.upsertSingleTask(task);
710
+ const missing = getMissingGates(verification, configGates);
711
+ const result = {
712
+ taskId,
713
+ title: task.title,
714
+ status: task.status,
715
+ type: task.type ?? 'task',
716
+ verification,
717
+ verificationStatus: verification.passed ? 'passed' : 'pending',
718
+ passed: verification.passed,
719
+ round: verification.round,
720
+ requiredGates: configGates,
721
+ missingGates: missing,
722
+ action,
723
+ };
724
+ if (action === 'set_gate') {
725
+ result.gateSet = gate;
726
+ }
727
+ else if (action === 'set_all') {
728
+ result.gatesSet = configGates;
729
+ }
730
+ return { success: true, data: result };
731
+ }
732
+ catch (err) {
733
+ const message = err instanceof Error ? err.message : String(err);
734
+ return engineError('E_GENERAL', message);
735
+ }
736
+ }
737
+ //# sourceMappingURL=validate-engine.js.map