@cleocode/cleo 2026.3.73 → 2026.3.76

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (718) hide show
  1. package/README.md +1 -1
  2. package/dist/cli/index.js +4928 -1914
  3. package/dist/cli/index.js.map +4 -4
  4. package/dist/mcp/index.js +4971 -2409
  5. package/dist/mcp/index.js.map +4 -4
  6. package/package.json +7 -5
  7. package/dist/cli/commander-shim.d.ts +0 -112
  8. package/dist/cli/commander-shim.d.ts.map +0 -1
  9. package/dist/cli/commander-shim.js +0 -233
  10. package/dist/cli/commander-shim.js.map +0 -1
  11. package/dist/cli/commands/add.d.ts +0 -12
  12. package/dist/cli/commands/add.d.ts.map +0 -1
  13. package/dist/cli/commands/add.js +0 -94
  14. package/dist/cli/commands/add.js.map +0 -1
  15. package/dist/cli/commands/adr.d.ts +0 -27
  16. package/dist/cli/commands/adr.d.ts.map +0 -1
  17. package/dist/cli/commands/adr.js +0 -79
  18. package/dist/cli/commands/adr.js.map +0 -1
  19. package/dist/cli/commands/agents.d.ts +0 -31
  20. package/dist/cli/commands/agents.d.ts.map +0 -1
  21. package/dist/cli/commands/agents.js +0 -104
  22. package/dist/cli/commands/agents.js.map +0 -1
  23. package/dist/cli/commands/analyze.d.ts +0 -12
  24. package/dist/cli/commands/analyze.d.ts.map +0 -1
  25. package/dist/cli/commands/analyze.js +0 -20
  26. package/dist/cli/commands/analyze.js.map +0 -1
  27. package/dist/cli/commands/archive-stats.d.ts +0 -18
  28. package/dist/cli/commands/archive-stats.d.ts.map +0 -1
  29. package/dist/cli/commands/archive-stats.js +0 -49
  30. package/dist/cli/commands/archive-stats.js.map +0 -1
  31. package/dist/cli/commands/archive.d.ts +0 -12
  32. package/dist/cli/commands/archive.d.ts.map +0 -1
  33. package/dist/cli/commands/archive.js +0 -32
  34. package/dist/cli/commands/archive.js.map +0 -1
  35. package/dist/cli/commands/backfill.d.ts +0 -32
  36. package/dist/cli/commands/backfill.d.ts.map +0 -1
  37. package/dist/cli/commands/backfill.js +0 -101
  38. package/dist/cli/commands/backfill.js.map +0 -1
  39. package/dist/cli/commands/backup.d.ts +0 -8
  40. package/dist/cli/commands/backup.d.ts.map +0 -1
  41. package/dist/cli/commands/backup.js +0 -35
  42. package/dist/cli/commands/backup.js.map +0 -1
  43. package/dist/cli/commands/blockers.d.ts +0 -7
  44. package/dist/cli/commands/blockers.d.ts.map +0 -1
  45. package/dist/cli/commands/blockers.js +0 -16
  46. package/dist/cli/commands/blockers.js.map +0 -1
  47. package/dist/cli/commands/briefing.d.ts +0 -22
  48. package/dist/cli/commands/briefing.d.ts.map +0 -1
  49. package/dist/cli/commands/briefing.js +0 -45
  50. package/dist/cli/commands/briefing.js.map +0 -1
  51. package/dist/cli/commands/bug.d.ts +0 -12
  52. package/dist/cli/commands/bug.d.ts.map +0 -1
  53. package/dist/cli/commands/bug.js +0 -81
  54. package/dist/cli/commands/bug.js.map +0 -1
  55. package/dist/cli/commands/checkpoint.d.ts +0 -15
  56. package/dist/cli/commands/checkpoint.d.ts.map +0 -1
  57. package/dist/cli/commands/checkpoint.js +0 -91
  58. package/dist/cli/commands/checkpoint.js.map +0 -1
  59. package/dist/cli/commands/commands.d.ts +0 -13
  60. package/dist/cli/commands/commands.d.ts.map +0 -1
  61. package/dist/cli/commands/commands.js +0 -30
  62. package/dist/cli/commands/commands.js.map +0 -1
  63. package/dist/cli/commands/complete.d.ts +0 -12
  64. package/dist/cli/commands/complete.d.ts.map +0 -1
  65. package/dist/cli/commands/complete.js +0 -43
  66. package/dist/cli/commands/complete.js.map +0 -1
  67. package/dist/cli/commands/compliance.d.ts +0 -8
  68. package/dist/cli/commands/compliance.d.ts.map +0 -1
  69. package/dist/cli/commands/compliance.js +0 -85
  70. package/dist/cli/commands/compliance.js.map +0 -1
  71. package/dist/cli/commands/config.d.ts +0 -10
  72. package/dist/cli/commands/config.d.ts.map +0 -1
  73. package/dist/cli/commands/config.js +0 -69
  74. package/dist/cli/commands/config.js.map +0 -1
  75. package/dist/cli/commands/consensus.d.ts +0 -13
  76. package/dist/cli/commands/consensus.d.ts.map +0 -1
  77. package/dist/cli/commands/consensus.js +0 -45
  78. package/dist/cli/commands/consensus.js.map +0 -1
  79. package/dist/cli/commands/context.d.ts +0 -8
  80. package/dist/cli/commands/context.d.ts.map +0 -1
  81. package/dist/cli/commands/context.js +0 -40
  82. package/dist/cli/commands/context.js.map +0 -1
  83. package/dist/cli/commands/contribution.d.ts +0 -13
  84. package/dist/cli/commands/contribution.d.ts.map +0 -1
  85. package/dist/cli/commands/contribution.js +0 -41
  86. package/dist/cli/commands/contribution.js.map +0 -1
  87. package/dist/cli/commands/current.d.ts +0 -13
  88. package/dist/cli/commands/current.d.ts.map +0 -1
  89. package/dist/cli/commands/current.js +0 -20
  90. package/dist/cli/commands/current.js.map +0 -1
  91. package/dist/cli/commands/dash.d.ts +0 -12
  92. package/dist/cli/commands/dash.d.ts.map +0 -1
  93. package/dist/cli/commands/dash.js +0 -24
  94. package/dist/cli/commands/dash.js.map +0 -1
  95. package/dist/cli/commands/decomposition.d.ts +0 -13
  96. package/dist/cli/commands/decomposition.d.ts.map +0 -1
  97. package/dist/cli/commands/decomposition.js +0 -45
  98. package/dist/cli/commands/decomposition.js.map +0 -1
  99. package/dist/cli/commands/delete.d.ts +0 -12
  100. package/dist/cli/commands/delete.d.ts.map +0 -1
  101. package/dist/cli/commands/delete.js +0 -37
  102. package/dist/cli/commands/delete.js.map +0 -1
  103. package/dist/cli/commands/deps.d.ts +0 -24
  104. package/dist/cli/commands/deps.d.ts.map +0 -1
  105. package/dist/cli/commands/deps.js +0 -98
  106. package/dist/cli/commands/deps.js.map +0 -1
  107. package/dist/cli/commands/detect-drift.d.ts +0 -15
  108. package/dist/cli/commands/detect-drift.d.ts.map +0 -1
  109. package/dist/cli/commands/detect-drift.js +0 -429
  110. package/dist/cli/commands/detect-drift.js.map +0 -1
  111. package/dist/cli/commands/detect.d.ts +0 -10
  112. package/dist/cli/commands/detect.d.ts.map +0 -1
  113. package/dist/cli/commands/detect.js +0 -24
  114. package/dist/cli/commands/detect.js.map +0 -1
  115. package/dist/cli/commands/docs.d.ts +0 -13
  116. package/dist/cli/commands/docs.d.ts.map +0 -1
  117. package/dist/cli/commands/docs.js +0 -169
  118. package/dist/cli/commands/docs.js.map +0 -1
  119. package/dist/cli/commands/doctor.d.ts +0 -13
  120. package/dist/cli/commands/doctor.d.ts.map +0 -1
  121. package/dist/cli/commands/doctor.js +0 -64
  122. package/dist/cli/commands/doctor.js.map +0 -1
  123. package/dist/cli/commands/dynamic.d.ts +0 -24
  124. package/dist/cli/commands/dynamic.d.ts.map +0 -1
  125. package/dist/cli/commands/dynamic.js +0 -27
  126. package/dist/cli/commands/dynamic.js.map +0 -1
  127. package/dist/cli/commands/env.d.ts +0 -12
  128. package/dist/cli/commands/env.d.ts.map +0 -1
  129. package/dist/cli/commands/env.js +0 -44
  130. package/dist/cli/commands/env.js.map +0 -1
  131. package/dist/cli/commands/exists.d.ts +0 -22
  132. package/dist/cli/commands/exists.d.ts.map +0 -1
  133. package/dist/cli/commands/exists.js +0 -51
  134. package/dist/cli/commands/exists.js.map +0 -1
  135. package/dist/cli/commands/export-tasks.d.ts +0 -10
  136. package/dist/cli/commands/export-tasks.d.ts.map +0 -1
  137. package/dist/cli/commands/export-tasks.js +0 -47
  138. package/dist/cli/commands/export-tasks.js.map +0 -1
  139. package/dist/cli/commands/export.d.ts +0 -9
  140. package/dist/cli/commands/export.d.ts.map +0 -1
  141. package/dist/cli/commands/export.js +0 -46
  142. package/dist/cli/commands/export.js.map +0 -1
  143. package/dist/cli/commands/find.d.ts +0 -14
  144. package/dist/cli/commands/find.d.ts.map +0 -1
  145. package/dist/cli/commands/find.js +0 -70
  146. package/dist/cli/commands/find.js.map +0 -1
  147. package/dist/cli/commands/generate-changelog.d.ts +0 -14
  148. package/dist/cli/commands/generate-changelog.d.ts.map +0 -1
  149. package/dist/cli/commands/generate-changelog.js +0 -252
  150. package/dist/cli/commands/generate-changelog.js.map +0 -1
  151. package/dist/cli/commands/grade.d.ts +0 -13
  152. package/dist/cli/commands/grade.d.ts.map +0 -1
  153. package/dist/cli/commands/grade.js +0 -26
  154. package/dist/cli/commands/grade.js.map +0 -1
  155. package/dist/cli/commands/history.d.ts +0 -9
  156. package/dist/cli/commands/history.d.ts.map +0 -1
  157. package/dist/cli/commands/history.js +0 -30
  158. package/dist/cli/commands/history.js.map +0 -1
  159. package/dist/cli/commands/implementation.d.ts +0 -13
  160. package/dist/cli/commands/implementation.d.ts.map +0 -1
  161. package/dist/cli/commands/implementation.js +0 -41
  162. package/dist/cli/commands/implementation.js.map +0 -1
  163. package/dist/cli/commands/import-tasks.d.ts +0 -10
  164. package/dist/cli/commands/import-tasks.d.ts.map +0 -1
  165. package/dist/cli/commands/import-tasks.js +0 -38
  166. package/dist/cli/commands/import-tasks.js.map +0 -1
  167. package/dist/cli/commands/import.d.ts +0 -9
  168. package/dist/cli/commands/import.d.ts.map +0 -1
  169. package/dist/cli/commands/import.js +0 -28
  170. package/dist/cli/commands/import.js.map +0 -1
  171. package/dist/cli/commands/init.d.ts +0 -34
  172. package/dist/cli/commands/init.d.ts.map +0 -1
  173. package/dist/cli/commands/init.js +0 -89
  174. package/dist/cli/commands/init.js.map +0 -1
  175. package/dist/cli/commands/inject.d.ts +0 -8
  176. package/dist/cli/commands/inject.d.ts.map +0 -1
  177. package/dist/cli/commands/inject.js +0 -28
  178. package/dist/cli/commands/inject.js.map +0 -1
  179. package/dist/cli/commands/install-global.d.ts +0 -19
  180. package/dist/cli/commands/install-global.d.ts.map +0 -1
  181. package/dist/cli/commands/install-global.js +0 -50
  182. package/dist/cli/commands/install-global.js.map +0 -1
  183. package/dist/cli/commands/issue.d.ts +0 -17
  184. package/dist/cli/commands/issue.d.ts.map +0 -1
  185. package/dist/cli/commands/issue.js +0 -107
  186. package/dist/cli/commands/issue.js.map +0 -1
  187. package/dist/cli/commands/labels.d.ts +0 -13
  188. package/dist/cli/commands/labels.d.ts.map +0 -1
  189. package/dist/cli/commands/labels.js +0 -44
  190. package/dist/cli/commands/labels.js.map +0 -1
  191. package/dist/cli/commands/lifecycle.d.ts +0 -8
  192. package/dist/cli/commands/lifecycle.d.ts.map +0 -1
  193. package/dist/cli/commands/lifecycle.js +0 -72
  194. package/dist/cli/commands/lifecycle.js.map +0 -1
  195. package/dist/cli/commands/list.d.ts +0 -14
  196. package/dist/cli/commands/list.d.ts.map +0 -1
  197. package/dist/cli/commands/list.js +0 -71
  198. package/dist/cli/commands/list.js.map +0 -1
  199. package/dist/cli/commands/log.d.ts +0 -12
  200. package/dist/cli/commands/log.d.ts.map +0 -1
  201. package/dist/cli/commands/log.js +0 -30
  202. package/dist/cli/commands/log.js.map +0 -1
  203. package/dist/cli/commands/map.d.ts +0 -10
  204. package/dist/cli/commands/map.d.ts.map +0 -1
  205. package/dist/cli/commands/map.js +0 -23
  206. package/dist/cli/commands/map.js.map +0 -1
  207. package/dist/cli/commands/mcp-install.d.ts +0 -17
  208. package/dist/cli/commands/mcp-install.d.ts.map +0 -1
  209. package/dist/cli/commands/mcp-install.js +0 -128
  210. package/dist/cli/commands/mcp-install.js.map +0 -1
  211. package/dist/cli/commands/memory-brain.d.ts +0 -14
  212. package/dist/cli/commands/memory-brain.d.ts.map +0 -1
  213. package/dist/cli/commands/memory-brain.js +0 -151
  214. package/dist/cli/commands/memory-brain.js.map +0 -1
  215. package/dist/cli/commands/migrate-claude-mem.d.ts +0 -18
  216. package/dist/cli/commands/migrate-claude-mem.d.ts.map +0 -1
  217. package/dist/cli/commands/migrate-claude-mem.js +0 -60
  218. package/dist/cli/commands/migrate-claude-mem.js.map +0 -1
  219. package/dist/cli/commands/next.d.ts +0 -9
  220. package/dist/cli/commands/next.d.ts.map +0 -1
  221. package/dist/cli/commands/next.js +0 -20
  222. package/dist/cli/commands/next.js.map +0 -1
  223. package/dist/cli/commands/nexus.d.ts +0 -16
  224. package/dist/cli/commands/nexus.d.ts.map +0 -1
  225. package/dist/cli/commands/nexus.js +0 -155
  226. package/dist/cli/commands/nexus.js.map +0 -1
  227. package/dist/cli/commands/observe.d.ts +0 -9
  228. package/dist/cli/commands/observe.d.ts.map +0 -1
  229. package/dist/cli/commands/observe.js +0 -39
  230. package/dist/cli/commands/observe.js.map +0 -1
  231. package/dist/cli/commands/ops.d.ts +0 -10
  232. package/dist/cli/commands/ops.d.ts.map +0 -1
  233. package/dist/cli/commands/ops.js +0 -19
  234. package/dist/cli/commands/ops.js.map +0 -1
  235. package/dist/cli/commands/orchestrate.d.ts +0 -8
  236. package/dist/cli/commands/orchestrate.d.ts.map +0 -1
  237. package/dist/cli/commands/orchestrate.js +0 -58
  238. package/dist/cli/commands/orchestrate.js.map +0 -1
  239. package/dist/cli/commands/otel.d.ts +0 -12
  240. package/dist/cli/commands/otel.d.ts.map +0 -1
  241. package/dist/cli/commands/otel.js +0 -128
  242. package/dist/cli/commands/otel.js.map +0 -1
  243. package/dist/cli/commands/phase.d.ts +0 -12
  244. package/dist/cli/commands/phase.d.ts.map +0 -1
  245. package/dist/cli/commands/phase.js +0 -88
  246. package/dist/cli/commands/phase.js.map +0 -1
  247. package/dist/cli/commands/phases.d.ts +0 -12
  248. package/dist/cli/commands/phases.d.ts.map +0 -1
  249. package/dist/cli/commands/phases.js +0 -37
  250. package/dist/cli/commands/phases.js.map +0 -1
  251. package/dist/cli/commands/plan.d.ts +0 -8
  252. package/dist/cli/commands/plan.d.ts.map +0 -1
  253. package/dist/cli/commands/plan.js +0 -15
  254. package/dist/cli/commands/plan.js.map +0 -1
  255. package/dist/cli/commands/promote.d.ts +0 -7
  256. package/dist/cli/commands/promote.d.ts.map +0 -1
  257. package/dist/cli/commands/promote.js +0 -15
  258. package/dist/cli/commands/promote.js.map +0 -1
  259. package/dist/cli/commands/reason.d.ts +0 -35
  260. package/dist/cli/commands/reason.d.ts.map +0 -1
  261. package/dist/cli/commands/reason.js +0 -104
  262. package/dist/cli/commands/reason.js.map +0 -1
  263. package/dist/cli/commands/refresh-memory.d.ts +0 -9
  264. package/dist/cli/commands/refresh-memory.d.ts.map +0 -1
  265. package/dist/cli/commands/refresh-memory.js +0 -24
  266. package/dist/cli/commands/refresh-memory.js.map +0 -1
  267. package/dist/cli/commands/relates.d.ts +0 -12
  268. package/dist/cli/commands/relates.d.ts.map +0 -1
  269. package/dist/cli/commands/relates.js +0 -53
  270. package/dist/cli/commands/relates.js.map +0 -1
  271. package/dist/cli/commands/release.d.ts +0 -8
  272. package/dist/cli/commands/release.d.ts.map +0 -1
  273. package/dist/cli/commands/release.js +0 -72
  274. package/dist/cli/commands/release.js.map +0 -1
  275. package/dist/cli/commands/remote.d.ts +0 -12
  276. package/dist/cli/commands/remote.d.ts.map +0 -1
  277. package/dist/cli/commands/remote.js +0 -207
  278. package/dist/cli/commands/remote.js.map +0 -1
  279. package/dist/cli/commands/reorder.d.ts +0 -7
  280. package/dist/cli/commands/reorder.d.ts.map +0 -1
  281. package/dist/cli/commands/reorder.js +0 -20
  282. package/dist/cli/commands/reorder.js.map +0 -1
  283. package/dist/cli/commands/reparent.d.ts +0 -10
  284. package/dist/cli/commands/reparent.d.ts.map +0 -1
  285. package/dist/cli/commands/reparent.js +0 -19
  286. package/dist/cli/commands/reparent.js.map +0 -1
  287. package/dist/cli/commands/research.d.ts +0 -8
  288. package/dist/cli/commands/research.d.ts.map +0 -1
  289. package/dist/cli/commands/research.js +0 -129
  290. package/dist/cli/commands/research.js.map +0 -1
  291. package/dist/cli/commands/restore.d.ts +0 -11
  292. package/dist/cli/commands/restore.d.ts.map +0 -1
  293. package/dist/cli/commands/restore.js +0 -224
  294. package/dist/cli/commands/restore.js.map +0 -1
  295. package/dist/cli/commands/roadmap.d.ts +0 -8
  296. package/dist/cli/commands/roadmap.d.ts.map +0 -1
  297. package/dist/cli/commands/roadmap.js +0 -21
  298. package/dist/cli/commands/roadmap.js.map +0 -1
  299. package/dist/cli/commands/safestop.d.ts +0 -14
  300. package/dist/cli/commands/safestop.d.ts.map +0 -1
  301. package/dist/cli/commands/safestop.js +0 -32
  302. package/dist/cli/commands/safestop.js.map +0 -1
  303. package/dist/cli/commands/self-update.d.ts +0 -15
  304. package/dist/cli/commands/self-update.d.ts.map +0 -1
  305. package/dist/cli/commands/self-update.js +0 -329
  306. package/dist/cli/commands/self-update.js.map +0 -1
  307. package/dist/cli/commands/sequence.d.ts +0 -8
  308. package/dist/cli/commands/sequence.d.ts.map +0 -1
  309. package/dist/cli/commands/sequence.js +0 -30
  310. package/dist/cli/commands/sequence.js.map +0 -1
  311. package/dist/cli/commands/session.d.ts +0 -12
  312. package/dist/cli/commands/session.d.ts.map +0 -1
  313. package/dist/cli/commands/session.js +0 -175
  314. package/dist/cli/commands/session.js.map +0 -1
  315. package/dist/cli/commands/show.d.ts +0 -13
  316. package/dist/cli/commands/show.d.ts.map +0 -1
  317. package/dist/cli/commands/show.js +0 -20
  318. package/dist/cli/commands/show.js.map +0 -1
  319. package/dist/cli/commands/skills.d.ts +0 -13
  320. package/dist/cli/commands/skills.d.ts.map +0 -1
  321. package/dist/cli/commands/skills.js +0 -131
  322. package/dist/cli/commands/skills.js.map +0 -1
  323. package/dist/cli/commands/snapshot.d.ts +0 -9
  324. package/dist/cli/commands/snapshot.d.ts.map +0 -1
  325. package/dist/cli/commands/snapshot.js +0 -50
  326. package/dist/cli/commands/snapshot.js.map +0 -1
  327. package/dist/cli/commands/specification.d.ts +0 -13
  328. package/dist/cli/commands/specification.d.ts.map +0 -1
  329. package/dist/cli/commands/specification.js +0 -45
  330. package/dist/cli/commands/specification.js.map +0 -1
  331. package/dist/cli/commands/start.d.ts +0 -13
  332. package/dist/cli/commands/start.d.ts.map +0 -1
  333. package/dist/cli/commands/start.js +0 -20
  334. package/dist/cli/commands/start.js.map +0 -1
  335. package/dist/cli/commands/stats.d.ts +0 -12
  336. package/dist/cli/commands/stats.d.ts.map +0 -1
  337. package/dist/cli/commands/stats.js +0 -35
  338. package/dist/cli/commands/stats.js.map +0 -1
  339. package/dist/cli/commands/sticky.d.ts +0 -16
  340. package/dist/cli/commands/sticky.d.ts.map +0 -1
  341. package/dist/cli/commands/sticky.js +0 -211
  342. package/dist/cli/commands/sticky.js.map +0 -1
  343. package/dist/cli/commands/stop.d.ts +0 -13
  344. package/dist/cli/commands/stop.d.ts.map +0 -1
  345. package/dist/cli/commands/stop.js +0 -20
  346. package/dist/cli/commands/stop.js.map +0 -1
  347. package/dist/cli/commands/testing.d.ts +0 -13
  348. package/dist/cli/commands/testing.d.ts.map +0 -1
  349. package/dist/cli/commands/testing.js +0 -64
  350. package/dist/cli/commands/testing.js.map +0 -1
  351. package/dist/cli/commands/token.d.ts +0 -10
  352. package/dist/cli/commands/token.d.ts.map +0 -1
  353. package/dist/cli/commands/token.js +0 -135
  354. package/dist/cli/commands/token.js.map +0 -1
  355. package/dist/cli/commands/update.d.ts +0 -12
  356. package/dist/cli/commands/update.d.ts.map +0 -1
  357. package/dist/cli/commands/update.js +0 -83
  358. package/dist/cli/commands/update.js.map +0 -1
  359. package/dist/cli/commands/upgrade.d.ts +0 -18
  360. package/dist/cli/commands/upgrade.d.ts.map +0 -1
  361. package/dist/cli/commands/upgrade.js +0 -103
  362. package/dist/cli/commands/upgrade.js.map +0 -1
  363. package/dist/cli/commands/validate.d.ts +0 -12
  364. package/dist/cli/commands/validate.d.ts.map +0 -1
  365. package/dist/cli/commands/validate.js +0 -23
  366. package/dist/cli/commands/validate.js.map +0 -1
  367. package/dist/cli/commands/verify.d.ts +0 -8
  368. package/dist/cli/commands/verify.d.ts.map +0 -1
  369. package/dist/cli/commands/verify.js +0 -28
  370. package/dist/cli/commands/verify.js.map +0 -1
  371. package/dist/cli/commands/web.d.ts +0 -13
  372. package/dist/cli/commands/web.d.ts.map +0 -1
  373. package/dist/cli/commands/web.js +0 -264
  374. package/dist/cli/commands/web.js.map +0 -1
  375. package/dist/cli/field-context.d.ts +0 -32
  376. package/dist/cli/field-context.d.ts.map +0 -1
  377. package/dist/cli/field-context.js +0 -47
  378. package/dist/cli/field-context.js.map +0 -1
  379. package/dist/cli/format-context.d.ts +0 -32
  380. package/dist/cli/format-context.d.ts.map +0 -1
  381. package/dist/cli/format-context.js +0 -50
  382. package/dist/cli/format-context.js.map +0 -1
  383. package/dist/cli/index.d.ts +0 -9
  384. package/dist/cli/index.d.ts.map +0 -1
  385. package/dist/cli/logger-bootstrap.d.ts +0 -6
  386. package/dist/cli/logger-bootstrap.d.ts.map +0 -1
  387. package/dist/cli/logger-bootstrap.js +0 -10
  388. package/dist/cli/logger-bootstrap.js.map +0 -1
  389. package/dist/cli/middleware/output-format.d.ts +0 -30
  390. package/dist/cli/middleware/output-format.d.ts.map +0 -1
  391. package/dist/cli/middleware/output-format.js +0 -35
  392. package/dist/cli/middleware/output-format.js.map +0 -1
  393. package/dist/cli/progress.d.ts +0 -84
  394. package/dist/cli/progress.d.ts.map +0 -1
  395. package/dist/cli/progress.js +0 -169
  396. package/dist/cli/progress.js.map +0 -1
  397. package/dist/cli/renderers/colors.d.ts +0 -32
  398. package/dist/cli/renderers/colors.d.ts.map +0 -1
  399. package/dist/cli/renderers/colors.js +0 -141
  400. package/dist/cli/renderers/colors.js.map +0 -1
  401. package/dist/cli/renderers/error.d.ts +0 -13
  402. package/dist/cli/renderers/error.d.ts.map +0 -1
  403. package/dist/cli/renderers/error.js +0 -42
  404. package/dist/cli/renderers/error.js.map +0 -1
  405. package/dist/cli/renderers/index.d.ts +0 -59
  406. package/dist/cli/renderers/index.d.ts.map +0 -1
  407. package/dist/cli/renderers/index.js +0 -184
  408. package/dist/cli/renderers/index.js.map +0 -1
  409. package/dist/cli/renderers/normalizer.d.ts +0 -21
  410. package/dist/cli/renderers/normalizer.d.ts.map +0 -1
  411. package/dist/cli/renderers/normalizer.js +0 -106
  412. package/dist/cli/renderers/normalizer.js.map +0 -1
  413. package/dist/cli/renderers/system.d.ts +0 -25
  414. package/dist/cli/renderers/system.d.ts.map +0 -1
  415. package/dist/cli/renderers/system.js +0 -416
  416. package/dist/cli/renderers/system.js.map +0 -1
  417. package/dist/cli/renderers/tasks.d.ts +0 -28
  418. package/dist/cli/renderers/tasks.d.ts.map +0 -1
  419. package/dist/cli/renderers/tasks.js +0 -306
  420. package/dist/cli/renderers/tasks.js.map +0 -1
  421. package/dist/dispatch/adapters/cli.d.ts +0 -67
  422. package/dist/dispatch/adapters/cli.d.ts.map +0 -1
  423. package/dist/dispatch/adapters/cli.js +0 -205
  424. package/dist/dispatch/adapters/cli.js.map +0 -1
  425. package/dist/dispatch/adapters/mcp.d.ts +0 -37
  426. package/dist/dispatch/adapters/mcp.d.ts.map +0 -1
  427. package/dist/dispatch/adapters/mcp.js +0 -122
  428. package/dist/dispatch/adapters/mcp.js.map +0 -1
  429. package/dist/dispatch/context/session-context.d.ts +0 -54
  430. package/dist/dispatch/context/session-context.d.ts.map +0 -1
  431. package/dist/dispatch/context/session-context.js +0 -61
  432. package/dist/dispatch/context/session-context.js.map +0 -1
  433. package/dist/dispatch/dispatcher.d.ts +0 -23
  434. package/dist/dispatch/dispatcher.d.ts.map +0 -1
  435. package/dist/dispatch/dispatcher.js +0 -84
  436. package/dist/dispatch/dispatcher.js.map +0 -1
  437. package/dist/dispatch/domains/_base.d.ts +0 -59
  438. package/dist/dispatch/domains/_base.d.ts.map +0 -1
  439. package/dist/dispatch/domains/_base.js +0 -77
  440. package/dist/dispatch/domains/_base.js.map +0 -1
  441. package/dist/dispatch/domains/_meta.d.ts +0 -23
  442. package/dist/dispatch/domains/_meta.d.ts.map +0 -1
  443. package/dist/dispatch/domains/_meta.js +0 -25
  444. package/dist/dispatch/domains/_meta.js.map +0 -1
  445. package/dist/dispatch/domains/_routing.d.ts +0 -8
  446. package/dist/dispatch/domains/_routing.d.ts.map +0 -1
  447. package/dist/dispatch/domains/_routing.js +0 -20
  448. package/dist/dispatch/domains/_routing.js.map +0 -1
  449. package/dist/dispatch/domains/admin.d.ts +0 -25
  450. package/dist/dispatch/domains/admin.d.ts.map +0 -1
  451. package/dist/dispatch/domains/admin.js +0 -699
  452. package/dist/dispatch/domains/admin.js.map +0 -1
  453. package/dist/dispatch/domains/check.d.ts +0 -22
  454. package/dist/dispatch/domains/check.d.ts.map +0 -1
  455. package/dist/dispatch/domains/check.js +0 -293
  456. package/dist/dispatch/domains/check.js.map +0 -1
  457. package/dist/dispatch/domains/index.d.ts +0 -26
  458. package/dist/dispatch/domains/index.d.ts.map +0 -1
  459. package/dist/dispatch/domains/index.js +0 -38
  460. package/dist/dispatch/domains/index.js.map +0 -1
  461. package/dist/dispatch/domains/memory.d.ts +0 -22
  462. package/dist/dispatch/domains/memory.d.ts.map +0 -1
  463. package/dist/dispatch/domains/memory.js +0 -303
  464. package/dist/dispatch/domains/memory.js.map +0 -1
  465. package/dist/dispatch/domains/nexus.d.ts +0 -22
  466. package/dist/dispatch/domains/nexus.d.ts.map +0 -1
  467. package/dist/dispatch/domains/nexus.js +0 -286
  468. package/dist/dispatch/domains/nexus.js.map +0 -1
  469. package/dist/dispatch/domains/orchestrate.d.ts +0 -19
  470. package/dist/dispatch/domains/orchestrate.d.ts.map +0 -1
  471. package/dist/dispatch/domains/orchestrate.js +0 -259
  472. package/dist/dispatch/domains/orchestrate.js.map +0 -1
  473. package/dist/dispatch/domains/pipeline.d.ts +0 -35
  474. package/dist/dispatch/domains/pipeline.d.ts.map +0 -1
  475. package/dist/dispatch/domains/pipeline.js +0 -555
  476. package/dist/dispatch/domains/pipeline.js.map +0 -1
  477. package/dist/dispatch/domains/session.d.ts +0 -22
  478. package/dist/dispatch/domains/session.d.ts.map +0 -1
  479. package/dist/dispatch/domains/session.js +0 -255
  480. package/dist/dispatch/domains/session.js.map +0 -1
  481. package/dist/dispatch/domains/sticky.d.ts +0 -20
  482. package/dist/dispatch/domains/sticky.d.ts.map +0 -1
  483. package/dist/dispatch/domains/sticky.js +0 -164
  484. package/dist/dispatch/domains/sticky.js.map +0 -1
  485. package/dist/dispatch/domains/tasks.d.ts +0 -25
  486. package/dist/dispatch/domains/tasks.d.ts.map +0 -1
  487. package/dist/dispatch/domains/tasks.js +0 -339
  488. package/dist/dispatch/domains/tasks.js.map +0 -1
  489. package/dist/dispatch/domains/tools.d.ts +0 -36
  490. package/dist/dispatch/domains/tools.d.ts.map +0 -1
  491. package/dist/dispatch/domains/tools.js +0 -451
  492. package/dist/dispatch/domains/tools.js.map +0 -1
  493. package/dist/dispatch/engines/_error.d.ts +0 -42
  494. package/dist/dispatch/engines/_error.d.ts.map +0 -1
  495. package/dist/dispatch/engines/_error.js +0 -201
  496. package/dist/dispatch/engines/_error.js.map +0 -1
  497. package/dist/dispatch/engines/codebase-map-engine.d.ts +0 -17
  498. package/dist/dispatch/engines/codebase-map-engine.d.ts.map +0 -1
  499. package/dist/dispatch/engines/codebase-map-engine.js +0 -29
  500. package/dist/dispatch/engines/codebase-map-engine.js.map +0 -1
  501. package/dist/dispatch/engines/config-engine.d.ts +0 -32
  502. package/dist/dispatch/engines/config-engine.d.ts.map +0 -1
  503. package/dist/dispatch/engines/config-engine.js +0 -70
  504. package/dist/dispatch/engines/config-engine.js.map +0 -1
  505. package/dist/dispatch/engines/hooks-engine.d.ts +0 -47
  506. package/dist/dispatch/engines/hooks-engine.d.ts.map +0 -1
  507. package/dist/dispatch/engines/hooks-engine.js +0 -57
  508. package/dist/dispatch/engines/hooks-engine.js.map +0 -1
  509. package/dist/dispatch/engines/init-engine.d.ts +0 -43
  510. package/dist/dispatch/engines/init-engine.d.ts.map +0 -1
  511. package/dist/dispatch/engines/init-engine.js +0 -73
  512. package/dist/dispatch/engines/init-engine.js.map +0 -1
  513. package/dist/dispatch/engines/lifecycle-engine.d.ts +0 -66
  514. package/dist/dispatch/engines/lifecycle-engine.d.ts.map +0 -1
  515. package/dist/dispatch/engines/lifecycle-engine.js +0 -213
  516. package/dist/dispatch/engines/lifecycle-engine.js.map +0 -1
  517. package/dist/dispatch/engines/memory-engine.d.ts +0 -10
  518. package/dist/dispatch/engines/memory-engine.d.ts.map +0 -1
  519. package/dist/dispatch/engines/memory-engine.js +0 -10
  520. package/dist/dispatch/engines/memory-engine.js.map +0 -1
  521. package/dist/dispatch/engines/nexus-engine.d.ts +0 -167
  522. package/dist/dispatch/engines/nexus-engine.d.ts.map +0 -1
  523. package/dist/dispatch/engines/nexus-engine.js +0 -356
  524. package/dist/dispatch/engines/nexus-engine.js.map +0 -1
  525. package/dist/dispatch/engines/orchestrate-engine.d.ts +0 -133
  526. package/dist/dispatch/engines/orchestrate-engine.d.ts.map +0 -1
  527. package/dist/dispatch/engines/orchestrate-engine.js +0 -769
  528. package/dist/dispatch/engines/orchestrate-engine.js.map +0 -1
  529. package/dist/dispatch/engines/pipeline-engine.d.ts +0 -51
  530. package/dist/dispatch/engines/pipeline-engine.d.ts.map +0 -1
  531. package/dist/dispatch/engines/pipeline-engine.js +0 -191
  532. package/dist/dispatch/engines/pipeline-engine.js.map +0 -1
  533. package/dist/dispatch/engines/release-engine.d.ts +0 -94
  534. package/dist/dispatch/engines/release-engine.d.ts.map +0 -1
  535. package/dist/dispatch/engines/release-engine.js +0 -669
  536. package/dist/dispatch/engines/release-engine.js.map +0 -1
  537. package/dist/dispatch/engines/session-engine.d.ts +0 -323
  538. package/dist/dispatch/engines/session-engine.d.ts.map +0 -1
  539. package/dist/dispatch/engines/session-engine.js +0 -869
  540. package/dist/dispatch/engines/session-engine.js.map +0 -1
  541. package/dist/dispatch/engines/sticky-engine.d.ts +0 -100
  542. package/dist/dispatch/engines/sticky-engine.d.ts.map +0 -1
  543. package/dist/dispatch/engines/sticky-engine.js +0 -181
  544. package/dist/dispatch/engines/sticky-engine.js.map +0 -1
  545. package/dist/dispatch/engines/system-engine.d.ts +0 -409
  546. package/dist/dispatch/engines/system-engine.d.ts.map +0 -1
  547. package/dist/dispatch/engines/system-engine.js +0 -1180
  548. package/dist/dispatch/engines/system-engine.js.map +0 -1
  549. package/dist/dispatch/engines/task-engine.d.ts +0 -630
  550. package/dist/dispatch/engines/task-engine.d.ts.map +0 -1
  551. package/dist/dispatch/engines/task-engine.js +0 -979
  552. package/dist/dispatch/engines/task-engine.js.map +0 -1
  553. package/dist/dispatch/engines/template-parser.d.ts +0 -34
  554. package/dist/dispatch/engines/template-parser.d.ts.map +0 -1
  555. package/dist/dispatch/engines/template-parser.js +0 -57
  556. package/dist/dispatch/engines/template-parser.js.map +0 -1
  557. package/dist/dispatch/engines/tools-engine.d.ts +0 -270
  558. package/dist/dispatch/engines/tools-engine.d.ts.map +0 -1
  559. package/dist/dispatch/engines/tools-engine.js +0 -636
  560. package/dist/dispatch/engines/tools-engine.js.map +0 -1
  561. package/dist/dispatch/engines/validate-engine.d.ts +0 -154
  562. package/dist/dispatch/engines/validate-engine.d.ts.map +0 -1
  563. package/dist/dispatch/engines/validate-engine.js +0 -524
  564. package/dist/dispatch/engines/validate-engine.js.map +0 -1
  565. package/dist/dispatch/index.d.ts +0 -20
  566. package/dist/dispatch/index.d.ts.map +0 -1
  567. package/dist/dispatch/index.js +0 -19
  568. package/dist/dispatch/index.js.map +0 -1
  569. package/dist/dispatch/lib/capability-matrix.d.ts +0 -11
  570. package/dist/dispatch/lib/capability-matrix.d.ts.map +0 -1
  571. package/dist/dispatch/lib/capability-matrix.js +0 -10
  572. package/dist/dispatch/lib/capability-matrix.js.map +0 -1
  573. package/dist/dispatch/lib/config.d.ts +0 -16
  574. package/dist/dispatch/lib/config.d.ts.map +0 -1
  575. package/dist/dispatch/lib/config.js +0 -15
  576. package/dist/dispatch/lib/config.js.map +0 -1
  577. package/dist/dispatch/lib/engine.d.ts +0 -25
  578. package/dist/dispatch/lib/engine.d.ts.map +0 -1
  579. package/dist/dispatch/lib/engine.js +0 -44
  580. package/dist/dispatch/lib/engine.js.map +0 -1
  581. package/dist/dispatch/lib/meta.d.ts +0 -26
  582. package/dist/dispatch/lib/meta.d.ts.map +0 -1
  583. package/dist/dispatch/lib/meta.js +0 -37
  584. package/dist/dispatch/lib/meta.js.map +0 -1
  585. package/dist/dispatch/lib/param-utils.d.ts +0 -11
  586. package/dist/dispatch/lib/param-utils.d.ts.map +0 -1
  587. package/dist/dispatch/lib/param-utils.js +0 -10
  588. package/dist/dispatch/lib/param-utils.js.map +0 -1
  589. package/dist/dispatch/lib/projections.d.ts +0 -23
  590. package/dist/dispatch/lib/projections.d.ts.map +0 -1
  591. package/dist/dispatch/lib/projections.js +0 -48
  592. package/dist/dispatch/lib/projections.js.map +0 -1
  593. package/dist/dispatch/lib/schema-utils.d.ts +0 -42
  594. package/dist/dispatch/lib/schema-utils.d.ts.map +0 -1
  595. package/dist/dispatch/lib/schema-utils.js +0 -93
  596. package/dist/dispatch/lib/schema-utils.js.map +0 -1
  597. package/dist/dispatch/lib/security.d.ts +0 -11
  598. package/dist/dispatch/lib/security.d.ts.map +0 -1
  599. package/dist/dispatch/lib/security.js +0 -10
  600. package/dist/dispatch/lib/security.js.map +0 -1
  601. package/dist/dispatch/middleware/audit.d.ts +0 -23
  602. package/dist/dispatch/middleware/audit.d.ts.map +0 -1
  603. package/dist/dispatch/middleware/audit.js +0 -169
  604. package/dist/dispatch/middleware/audit.js.map +0 -1
  605. package/dist/dispatch/middleware/field-filter.d.ts +0 -24
  606. package/dist/dispatch/middleware/field-filter.d.ts.map +0 -1
  607. package/dist/dispatch/middleware/field-filter.js +0 -65
  608. package/dist/dispatch/middleware/field-filter.js.map +0 -1
  609. package/dist/dispatch/middleware/pipeline.d.ts +0 -20
  610. package/dist/dispatch/middleware/pipeline.d.ts.map +0 -1
  611. package/dist/dispatch/middleware/pipeline.js +0 -47
  612. package/dist/dispatch/middleware/pipeline.js.map +0 -1
  613. package/dist/dispatch/middleware/projection.d.ts +0 -35
  614. package/dist/dispatch/middleware/projection.d.ts.map +0 -1
  615. package/dist/dispatch/middleware/projection.js +0 -145
  616. package/dist/dispatch/middleware/projection.js.map +0 -1
  617. package/dist/dispatch/middleware/protocol-enforcement.d.ts +0 -12
  618. package/dist/dispatch/middleware/protocol-enforcement.d.ts.map +0 -1
  619. package/dist/dispatch/middleware/protocol-enforcement.js +0 -30
  620. package/dist/dispatch/middleware/protocol-enforcement.js.map +0 -1
  621. package/dist/dispatch/middleware/rate-limiter.d.ts +0 -30
  622. package/dist/dispatch/middleware/rate-limiter.d.ts.map +0 -1
  623. package/dist/dispatch/middleware/rate-limiter.js +0 -101
  624. package/dist/dispatch/middleware/rate-limiter.js.map +0 -1
  625. package/dist/dispatch/middleware/sanitizer.d.ts +0 -10
  626. package/dist/dispatch/middleware/sanitizer.d.ts.map +0 -1
  627. package/dist/dispatch/middleware/sanitizer.js +0 -42
  628. package/dist/dispatch/middleware/sanitizer.js.map +0 -1
  629. package/dist/dispatch/middleware/session-resolver.d.ts +0 -26
  630. package/dist/dispatch/middleware/session-resolver.d.ts.map +0 -1
  631. package/dist/dispatch/middleware/session-resolver.js +0 -65
  632. package/dist/dispatch/middleware/session-resolver.js.map +0 -1
  633. package/dist/dispatch/middleware/verification-gates.d.ts +0 -3
  634. package/dist/dispatch/middleware/verification-gates.d.ts.map +0 -1
  635. package/dist/dispatch/middleware/verification-gates.js +0 -40
  636. package/dist/dispatch/middleware/verification-gates.js.map +0 -1
  637. package/dist/dispatch/registry.d.ts +0 -91
  638. package/dist/dispatch/registry.d.ts.map +0 -1
  639. package/dist/dispatch/registry.js +0 -2924
  640. package/dist/dispatch/registry.js.map +0 -1
  641. package/dist/dispatch/types.d.ts +0 -218
  642. package/dist/dispatch/types.d.ts.map +0 -1
  643. package/dist/dispatch/types.js +0 -25
  644. package/dist/dispatch/types.js.map +0 -1
  645. package/dist/mcp/gateways/mutate.d.ts +0 -146
  646. package/dist/mcp/gateways/mutate.d.ts.map +0 -1
  647. package/dist/mcp/gateways/mutate.js +0 -1016
  648. package/dist/mcp/gateways/mutate.js.map +0 -1
  649. package/dist/mcp/gateways/query.d.ts +0 -138
  650. package/dist/mcp/gateways/query.d.ts.map +0 -1
  651. package/dist/mcp/gateways/query.js +0 -186
  652. package/dist/mcp/gateways/query.js.map +0 -1
  653. package/dist/mcp/index.d.ts +0 -16
  654. package/dist/mcp/index.d.ts.map +0 -1
  655. package/dist/mcp/lib/background-jobs.d.ts +0 -86
  656. package/dist/mcp/lib/background-jobs.d.ts.map +0 -1
  657. package/dist/mcp/lib/background-jobs.js +0 -183
  658. package/dist/mcp/lib/background-jobs.js.map +0 -1
  659. package/dist/mcp/lib/budget.d.ts +0 -35
  660. package/dist/mcp/lib/budget.d.ts.map +0 -1
  661. package/dist/mcp/lib/budget.js +0 -102
  662. package/dist/mcp/lib/budget.js.map +0 -1
  663. package/dist/mcp/lib/cache.d.ts +0 -78
  664. package/dist/mcp/lib/cache.d.ts.map +0 -1
  665. package/dist/mcp/lib/cache.js +0 -207
  666. package/dist/mcp/lib/cache.js.map +0 -1
  667. package/dist/mcp/lib/config.d.ts +0 -42
  668. package/dist/mcp/lib/config.d.ts.map +0 -1
  669. package/dist/mcp/lib/config.js +0 -241
  670. package/dist/mcp/lib/config.js.map +0 -1
  671. package/dist/mcp/lib/defaults.d.ts +0 -115
  672. package/dist/mcp/lib/defaults.d.ts.map +0 -1
  673. package/dist/mcp/lib/defaults.js +0 -61
  674. package/dist/mcp/lib/defaults.js.map +0 -1
  675. package/dist/mcp/lib/gate-validators.d.ts +0 -13
  676. package/dist/mcp/lib/gate-validators.d.ts.map +0 -1
  677. package/dist/mcp/lib/gate-validators.js +0 -13
  678. package/dist/mcp/lib/gate-validators.js.map +0 -1
  679. package/dist/mcp/lib/gateway-meta.d.ts +0 -37
  680. package/dist/mcp/lib/gateway-meta.d.ts.map +0 -1
  681. package/dist/mcp/lib/gateway-meta.js +0 -50
  682. package/dist/mcp/lib/gateway-meta.js.map +0 -1
  683. package/dist/mcp/lib/job-manager-accessor.d.ts +0 -10
  684. package/dist/mcp/lib/job-manager-accessor.d.ts.map +0 -1
  685. package/dist/mcp/lib/job-manager-accessor.js +0 -14
  686. package/dist/mcp/lib/job-manager-accessor.js.map +0 -1
  687. package/dist/mcp/lib/protocol-enforcement.d.ts +0 -12
  688. package/dist/mcp/lib/protocol-enforcement.d.ts.map +0 -1
  689. package/dist/mcp/lib/protocol-enforcement.js +0 -12
  690. package/dist/mcp/lib/protocol-enforcement.js.map +0 -1
  691. package/dist/mcp/lib/protocol-rules.d.ts +0 -12
  692. package/dist/mcp/lib/protocol-rules.d.ts.map +0 -1
  693. package/dist/mcp/lib/protocol-rules.js +0 -12
  694. package/dist/mcp/lib/protocol-rules.js.map +0 -1
  695. package/dist/mcp/lib/rate-limiter.d.ts +0 -110
  696. package/dist/mcp/lib/rate-limiter.d.ts.map +0 -1
  697. package/dist/mcp/lib/rate-limiter.js +0 -208
  698. package/dist/mcp/lib/rate-limiter.js.map +0 -1
  699. package/dist/mcp/lib/router.d.ts +0 -58
  700. package/dist/mcp/lib/router.d.ts.map +0 -1
  701. package/dist/mcp/lib/router.js +0 -12
  702. package/dist/mcp/lib/router.js.map +0 -1
  703. package/dist/mcp/lib/security.d.ts +0 -161
  704. package/dist/mcp/lib/security.d.ts.map +0 -1
  705. package/dist/mcp/lib/security.js +0 -360
  706. package/dist/mcp/lib/security.js.map +0 -1
  707. package/dist/mcp/lib/verification-gates.d.ts +0 -13
  708. package/dist/mcp/lib/verification-gates.d.ts.map +0 -1
  709. package/dist/mcp/lib/verification-gates.js +0 -12
  710. package/dist/mcp/lib/verification-gates.js.map +0 -1
  711. package/dist/mcp/resources/budget.d.ts +0 -22
  712. package/dist/mcp/resources/budget.d.ts.map +0 -1
  713. package/dist/mcp/resources/budget.js +0 -46
  714. package/dist/mcp/resources/budget.js.map +0 -1
  715. package/dist/mcp/resources/index.d.ts +0 -53
  716. package/dist/mcp/resources/index.d.ts.map +0 -1
  717. package/dist/mcp/resources/index.js +0 -278
  718. package/dist/mcp/resources/index.js.map +0 -1
@@ -1,979 +0,0 @@
1
- /**
2
- * Task Engine
3
- *
4
- * Native TypeScript implementation of core task CRUD operations.
5
- * Uses StoreProvider (via getStore()) for task/session data access,
6
- * falling back to direct JSON for config and specialized operations.
7
- *
8
- * CRUD operations (show, list, find, exists, create, update, complete, delete, archive)
9
- * delegate to src/core/tasks/*.
10
- *
11
- * Non-CRUD operations delegate to src/core/tasks/task-ops.ts.
12
- *
13
- * @task T4657
14
- * @task T4790
15
- * @epic T4654
16
- */
17
- // validation-rules.js still used by other engines; core modules handle their own validation
18
- // Core module imports for accessor-based operations
19
- import { addTask as coreAddTask, archiveTasks as coreArchiveTasks, completeTask as coreCompleteTask, deleteTask as coreDeleteTask, findTasks as coreFindTasks, listTasks as coreListTasks, showTask as coreShowTask, coreTaskAnalyze, coreTaskBatchValidate, coreTaskBlockers, coreTaskCancel, coreTaskComplexityEstimate, coreTaskDepends, coreTaskDeps, coreTaskDepsCycles, coreTaskDepsOverview, coreTaskExport, coreTaskHistory, coreTaskImport, coreTaskLint, coreTaskNext, coreTaskPromote, coreTaskRelates, coreTaskRelatesAdd, coreTaskReopen, coreTaskReorder, coreTaskReparent, coreTaskRestore, coreTaskStats, coreTaskTree, coreTaskUnarchive, updateTask as coreUpdateTask, getAccessor, predictImpact, toCompact, } from '@cleocode/core/internal';
20
- import { engineError } from './_error.js';
21
- const TASK_COMPLETE_EXIT_TO_ENGINE_CODE = {
22
- 4: 'E_NOT_FOUND',
23
- 5: 'E_DEPENDENCY_ERROR',
24
- 6: 'E_VALIDATION_FAILED',
25
- 16: 'E_HAS_CHILDREN',
26
- 17: 'E_TASK_COMPLETED',
27
- 40: 'E_VERIFICATION_INIT_FAILED',
28
- 44: 'E_MAX_ROUNDS_EXCEEDED',
29
- 45: 'E_GATE_DEPENDENCY',
30
- 80: 'E_LIFECYCLE_GATE_FAILED',
31
- };
32
- /**
33
- * Convert a core Task to a TaskRecord for backward compatibility.
34
- * TaskRecord has string-typed status/priority; Task has union types.
35
- *
36
- * @task T4657
37
- * @epic T4654
38
- */
39
- function taskToRecord(task) {
40
- // Task union-typed fields (status, priority, origin, etc.) widen to string in TaskRecord.
41
- // Some fields have structural mismatches (blockedBy: string vs string[], etc.)
42
- // so we explicitly map each field rather than relying on spread.
43
- return {
44
- id: task.id,
45
- title: task.title,
46
- description: task.description ?? '',
47
- status: task.status,
48
- priority: task.priority,
49
- type: task.type,
50
- phase: task.phase,
51
- createdAt: task.createdAt,
52
- updatedAt: task.updatedAt ?? null,
53
- completedAt: task.completedAt ?? null,
54
- cancelledAt: task.cancelledAt ?? null,
55
- parentId: task.parentId,
56
- position: task.position,
57
- positionVersion: task.positionVersion,
58
- depends: task.depends,
59
- relates: task.relates,
60
- files: task.files,
61
- acceptance: task.acceptance,
62
- notes: task.notes,
63
- labels: task.labels,
64
- size: task.size ?? null,
65
- epicLifecycle: task.epicLifecycle ?? null,
66
- noAutoComplete: task.noAutoComplete ?? null,
67
- verification: task.verification ? { ...task.verification } : null,
68
- origin: task.origin ?? null,
69
- cancellationReason: task.cancellationReason,
70
- blockedBy: task.blockedBy ? [task.blockedBy] : undefined,
71
- pipelineStage: task.pipelineStage ?? null,
72
- };
73
- }
74
- /**
75
- * Convert an array of core Tasks to TaskRecords.
76
- *
77
- * @task T4657
78
- * @epic T4654
79
- */
80
- function tasksToRecords(tasks) {
81
- return tasks.map(taskToRecord);
82
- }
83
- // loadTaskFile and saveTaskFile removed — all operations now use DataAccessor.
84
- // Config reads (hierarchy limits, phase meta) still use readJsonFile directly
85
- // since they are NOT domain data (they don't go through the accessor).
86
- // Priority normalization moved to core/tasks/add.ts (normalizePriority)
87
- // ===== Query Operations =====
88
- /**
89
- * Get a single task by ID
90
- * @task T4657
91
- * @epic T4654
92
- */
93
- export async function taskShow(projectRoot, taskId) {
94
- try {
95
- const accessor = await getAccessor(projectRoot);
96
- const detail = await coreShowTask(taskId, projectRoot, accessor);
97
- return { success: true, data: { task: taskToRecord(detail) } };
98
- }
99
- catch (err) {
100
- const code = err?.code;
101
- if (code === 4 /* NOT_FOUND */) {
102
- return engineError('E_NOT_FOUND', err.message || `Task '${taskId}' not found`);
103
- }
104
- if (code === 2 /* INVALID_INPUT */) {
105
- return engineError('E_INVALID_INPUT', err.message || 'Invalid input');
106
- }
107
- return engineError('E_NOT_INITIALIZED', err.message || 'Task database not initialized');
108
- }
109
- }
110
- /**
111
- * List tasks with optional filters
112
- * @task T4657
113
- * @epic T4654
114
- */
115
- export async function taskList(projectRoot, params) {
116
- try {
117
- const accessor = await getAccessor(projectRoot);
118
- const result = await coreListTasks({
119
- parentId: params?.parent ?? undefined,
120
- status: params?.status,
121
- priority: params?.priority,
122
- type: params?.type,
123
- phase: params?.phase,
124
- label: params?.label,
125
- children: params?.children,
126
- limit: params?.limit,
127
- offset: params?.offset,
128
- }, projectRoot, accessor);
129
- const tasks = params?.compact
130
- ? result.tasks.map((t) => toCompact(t))
131
- : tasksToRecords(result.tasks);
132
- if (params?.compact) {
133
- return {
134
- success: true,
135
- data: { tasks, total: result.total, filtered: result.filtered },
136
- page: result.page,
137
- };
138
- }
139
- return {
140
- success: true,
141
- data: { tasks, total: result.total, filtered: result.filtered },
142
- page: result.page,
143
- };
144
- }
145
- catch (err) {
146
- const code = err?.code;
147
- if (code === 4)
148
- return engineError('E_NOT_FOUND', err.message || 'Task not found');
149
- if (code === 2)
150
- return engineError('E_INVALID_INPUT', err.message || 'Invalid input');
151
- return engineError('E_NOT_INITIALIZED', err.message || 'Task database not initialized');
152
- }
153
- }
154
- /**
155
- * Fuzzy search tasks by title/description/ID
156
- * @task T4657
157
- * @epic T4654
158
- */
159
- export async function taskFind(projectRoot, query, limit, options) {
160
- try {
161
- const accessor = await getAccessor(projectRoot);
162
- const findResult = await coreFindTasks({
163
- query,
164
- id: options?.id,
165
- exact: options?.exact,
166
- status: options?.status,
167
- includeArchive: options?.includeArchive,
168
- limit: limit ?? 20,
169
- offset: options?.offset,
170
- }, projectRoot, accessor);
171
- const results = findResult.results.map((r) => ({
172
- id: r.id,
173
- title: r.title,
174
- status: r.status,
175
- priority: r.priority,
176
- parentId: r.parentId,
177
- }));
178
- return { success: true, data: { results, total: results.length } };
179
- }
180
- catch (err) {
181
- const code = err?.code;
182
- if (code === 4)
183
- return engineError('E_NOT_FOUND', err.message || 'Task not found');
184
- if (code === 2)
185
- return engineError('E_INVALID_INPUT', err.message || 'Invalid input');
186
- return engineError('E_NOT_INITIALIZED', err.message || 'Task database not initialized');
187
- }
188
- }
189
- /**
190
- * Check if a task exists
191
- * @task T4657
192
- * @epic T4654
193
- */
194
- export async function taskExists(projectRoot, taskId) {
195
- try {
196
- const accessor = await getAccessor(projectRoot);
197
- const exists = await accessor.taskExists(taskId);
198
- return { success: true, data: { exists, taskId } };
199
- }
200
- catch {
201
- return { success: true, data: { exists: false, taskId } };
202
- }
203
- }
204
- // ===== Mutate Operations =====
205
- /**
206
- * Create a new task
207
- */
208
- export async function taskCreate(projectRoot, params) {
209
- try {
210
- const accessor = await getAccessor(projectRoot);
211
- const result = await coreAddTask({
212
- title: params.title,
213
- description: params.description,
214
- parentId: params.parent || null,
215
- depends: params.depends,
216
- priority: params.priority || 'medium',
217
- labels: params.labels,
218
- type: params.type || undefined,
219
- phase: params.phase,
220
- size: params.size,
221
- acceptance: params.acceptance,
222
- notes: params.notes,
223
- files: params.files,
224
- dryRun: params.dryRun,
225
- }, projectRoot, accessor);
226
- return {
227
- success: true,
228
- data: {
229
- task: taskToRecord(result.task),
230
- duplicate: result.duplicate ?? false,
231
- dryRun: params.dryRun,
232
- },
233
- };
234
- }
235
- catch (err) {
236
- const cleoErr = err;
237
- // Map CleoError exit codes to engine error codes (see src/types/exit-codes.ts)
238
- if (cleoErr.code === 10 /* PARENT_NOT_FOUND */) {
239
- return engineError('E_PARENT_NOT_FOUND', cleoErr.message ?? 'Parent task not found');
240
- }
241
- if (cleoErr.code === 11 /* DEPTH_EXCEEDED */) {
242
- return engineError('E_DEPTH_EXCEEDED', cleoErr.message ?? 'Max hierarchy depth exceeded');
243
- }
244
- if (cleoErr.code === 12 /* SIBLING_LIMIT */) {
245
- return engineError('E_SIBLING_LIMIT', cleoErr.message ?? 'Max siblings exceeded');
246
- }
247
- if (cleoErr.code === 13 /* INVALID_PARENT_TYPE */) {
248
- return engineError('E_INVALID_PARENT', cleoErr.message ?? 'Invalid parent type');
249
- }
250
- if (cleoErr.code === 14 /* CIRCULAR_REFERENCE */) {
251
- return engineError('E_CIRCULAR_REFERENCE', cleoErr.message ?? 'Circular reference detected');
252
- }
253
- if (cleoErr.code === 6 /* VALIDATION_ERROR */ || cleoErr.code === 2 /* INVALID_INPUT */) {
254
- return engineError('E_VALIDATION_FAILED', cleoErr.message ?? 'Validation failed');
255
- }
256
- if (cleoErr.code === 4 /* NOT_FOUND */) {
257
- return engineError('E_NOT_FOUND', cleoErr.message ?? 'Task not found');
258
- }
259
- return engineError('E_NOT_INITIALIZED', cleoErr.message ?? 'Task database not initialized');
260
- }
261
- }
262
- /**
263
- * Update a task
264
- */
265
- export async function taskUpdate(projectRoot, taskId, updates) {
266
- try {
267
- const accessor = await getAccessor(projectRoot);
268
- const result = await coreUpdateTask({
269
- taskId,
270
- title: updates.title,
271
- description: updates.description,
272
- status: updates.status,
273
- priority: updates.priority,
274
- notes: updates.notes,
275
- labels: updates.labels,
276
- addLabels: updates.addLabels,
277
- removeLabels: updates.removeLabels,
278
- depends: updates.depends,
279
- addDepends: updates.addDepends,
280
- removeDepends: updates.removeDepends,
281
- acceptance: updates.acceptance,
282
- parentId: updates.parent,
283
- type: updates.type,
284
- size: updates.size,
285
- }, projectRoot, accessor);
286
- return { success: true, data: { task: taskToRecord(result.task), changes: result.changes } };
287
- }
288
- catch (err) {
289
- const cleoErr = err;
290
- if (cleoErr.code === 4 /* NOT_FOUND */) {
291
- return engineError('E_NOT_FOUND', cleoErr.message ?? `Task '${taskId}' not found`);
292
- }
293
- if (cleoErr.code === 6 /* VALIDATION_ERROR */ || cleoErr.code === 2 /* INVALID_INPUT */) {
294
- return engineError('E_VALIDATION_FAILED', cleoErr.message ?? 'Validation failed');
295
- }
296
- if (cleoErr.code === 102 /* NO_CHANGE */) {
297
- return engineError('E_NO_CHANGE', cleoErr.message ?? 'No changes specified');
298
- }
299
- return engineError('E_NOT_INITIALIZED', cleoErr.message ?? 'Task database not initialized');
300
- }
301
- }
302
- /**
303
- * Complete a task (set status to done)
304
- */
305
- export async function taskComplete(projectRoot, taskId, notes) {
306
- try {
307
- const accessor = await getAccessor(projectRoot);
308
- const result = await coreCompleteTask({ taskId, notes }, projectRoot, accessor);
309
- return {
310
- success: true,
311
- data: {
312
- task: result.task,
313
- ...(result.autoCompleted && { autoCompleted: result.autoCompleted }),
314
- ...(result.unblockedTasks && { unblockedTasks: result.unblockedTasks }),
315
- },
316
- };
317
- }
318
- catch (err) {
319
- const cleoErr = err;
320
- const message = cleoErr.message ?? 'Failed to complete task';
321
- if (typeof cleoErr.code === 'number') {
322
- const mappedCode = TASK_COMPLETE_EXIT_TO_ENGINE_CODE[cleoErr.code];
323
- if (mappedCode) {
324
- return engineError(mappedCode, message);
325
- }
326
- }
327
- return engineError('E_INTERNAL', message);
328
- }
329
- }
330
- /**
331
- * Delete a task
332
- */
333
- export async function taskDelete(projectRoot, taskId, force) {
334
- try {
335
- const accessor = await getAccessor(projectRoot);
336
- const result = await coreDeleteTask({
337
- taskId,
338
- force: force ?? false,
339
- cascade: force ?? false,
340
- }, projectRoot, accessor);
341
- return {
342
- success: true,
343
- data: {
344
- deletedTask: taskToRecord(result.deletedTask),
345
- deleted: true,
346
- cascadeDeleted: result.cascadeDeleted,
347
- },
348
- };
349
- }
350
- catch (err) {
351
- const cleoErr = err;
352
- if (cleoErr.code === 4 /* NOT_FOUND */) {
353
- return engineError('E_NOT_FOUND', cleoErr.message ?? `Task '${taskId}' not found`);
354
- }
355
- if (cleoErr.code === 16 /* HAS_CHILDREN */) {
356
- return engineError('E_HAS_CHILDREN', cleoErr.message ?? `Task '${taskId}' has children`);
357
- }
358
- return engineError('E_NOT_INITIALIZED', cleoErr.message ?? 'Task database not initialized');
359
- }
360
- }
361
- /**
362
- * Archive completed tasks.
363
- * Moves done/cancelled tasks from active task data to archive.
364
- */
365
- export async function taskArchive(projectRoot, taskId, before) {
366
- try {
367
- const accessor = await getAccessor(projectRoot);
368
- const result = await coreArchiveTasks({
369
- taskIds: taskId ? [taskId] : undefined,
370
- before,
371
- }, projectRoot, accessor);
372
- return {
373
- success: true,
374
- data: {
375
- archivedCount: result.archived.length,
376
- archivedTasks: result.archived.map((id) => ({ id })),
377
- },
378
- };
379
- }
380
- catch (err) {
381
- const cleoErr = err;
382
- if (cleoErr.code === 4 /* NOT_FOUND */) {
383
- return engineError('E_NOT_FOUND', cleoErr.message ?? 'Task not found');
384
- }
385
- return engineError('E_NOT_INITIALIZED', cleoErr.message ?? 'Task database not initialized');
386
- }
387
- }
388
- // ===== Non-CRUD Operations (delegated to core/tasks/task-ops.ts) =====
389
- /**
390
- * Suggest next task to work on based on priority, phase alignment, age, and dependency readiness.
391
- * @task T4657
392
- * @task T4790
393
- * @epic T4654
394
- */
395
- export async function taskNext(projectRoot, params) {
396
- try {
397
- const result = await coreTaskNext(projectRoot, params);
398
- return { success: true, data: result };
399
- }
400
- catch {
401
- return engineError('E_NOT_INITIALIZED', 'Task database not initialized');
402
- }
403
- }
404
- /**
405
- * Show blocked tasks and analyze blocking chains.
406
- * @task T4657
407
- * @task T4790
408
- * @epic T4654
409
- */
410
- export async function taskBlockers(projectRoot, params) {
411
- try {
412
- const result = await coreTaskBlockers(projectRoot, params);
413
- return { success: true, data: result };
414
- }
415
- catch {
416
- return engineError('E_NOT_INITIALIZED', 'Task database not initialized');
417
- }
418
- }
419
- /**
420
- * Build hierarchy tree.
421
- * @task T4657
422
- * @task T4790
423
- * @epic T4654
424
- */
425
- export async function taskTree(projectRoot, taskId) {
426
- try {
427
- const result = await coreTaskTree(projectRoot, taskId);
428
- return { success: true, data: result };
429
- }
430
- catch (err) {
431
- const message = err instanceof Error ? err.message : String(err);
432
- if (message.includes('not found')) {
433
- return engineError('E_NOT_FOUND', message);
434
- }
435
- return engineError('E_NOT_INITIALIZED', 'Task database not initialized');
436
- }
437
- }
438
- /**
439
- * Show dependencies for a task - both what it depends on and what depends on it.
440
- * @task T4657
441
- * @task T4790
442
- * @epic T4654
443
- */
444
- export async function taskDeps(projectRoot, taskId) {
445
- try {
446
- const result = await coreTaskDeps(projectRoot, taskId);
447
- return { success: true, data: result };
448
- }
449
- catch (err) {
450
- const message = err instanceof Error ? err.message : String(err);
451
- if (message.includes('not found')) {
452
- return engineError('E_NOT_FOUND', message);
453
- }
454
- return engineError('E_NOT_INITIALIZED', 'Task database not initialized');
455
- }
456
- }
457
- /**
458
- * Show task relations (existing relates entries).
459
- * @task T4657
460
- * @task T4790
461
- * @epic T4654
462
- */
463
- export async function taskRelates(projectRoot, taskId) {
464
- try {
465
- const result = await coreTaskRelates(projectRoot, taskId);
466
- return { success: true, data: result };
467
- }
468
- catch (err) {
469
- const message = err instanceof Error ? err.message : String(err);
470
- if (message.includes('not found')) {
471
- return engineError('E_NOT_FOUND', message);
472
- }
473
- return engineError('E_GENERAL', `Failed to read task relations: ${message}`);
474
- }
475
- }
476
- /**
477
- * Add a relation between two tasks.
478
- * @task T4790
479
- */
480
- export async function taskRelatesAdd(projectRoot, taskId, relatedId, type, reason) {
481
- try {
482
- const result = await coreTaskRelatesAdd(projectRoot, taskId, relatedId, type, reason);
483
- return { success: true, data: result };
484
- }
485
- catch (err) {
486
- const message = err instanceof Error ? err.message : String(err);
487
- if (message.includes('not found')) {
488
- return engineError('E_NOT_FOUND', message);
489
- }
490
- if (message.includes('Invalid relation type')) {
491
- return engineError('E_VALIDATION', message, {
492
- fix: 'Use a valid relation type: related, blocks, duplicates, absorbs, fixes, extends, supersedes',
493
- });
494
- }
495
- return engineError('E_GENERAL', `Failed to update task relations: ${message}`);
496
- }
497
- }
498
- /**
499
- * Analyze a task for description quality, missing fields, and dependency health.
500
- * @task T4657
501
- * @task T4790
502
- * @epic T4654
503
- */
504
- export async function taskAnalyze(projectRoot, taskId, params) {
505
- try {
506
- const result = await coreTaskAnalyze(projectRoot, taskId, params);
507
- return { success: true, data: result };
508
- }
509
- catch (err) {
510
- const message = err instanceof Error ? err.message : String(err);
511
- if (message.includes('not found')) {
512
- return engineError('E_NOT_FOUND', message);
513
- }
514
- return engineError('E_GENERAL', `Task analysis failed: ${message}`);
515
- }
516
- }
517
- /**
518
- * Predict downstream impact of a free-text change description.
519
- *
520
- * Delegates to {@link predictImpact} from the intelligence module.
521
- * Uses keyword matching against task titles/descriptions, then traces
522
- * the reverse dependency graph for transitive effects.
523
- *
524
- * @param projectRoot - Project root directory
525
- * @param change - Free-text description of the proposed change
526
- * @param matchLimit - Maximum seed tasks to match (default: 5)
527
- * @returns Impact prediction report
528
- * @task T043
529
- */
530
- export async function taskImpact(projectRoot, change, matchLimit) {
531
- try {
532
- const result = await predictImpact(change, projectRoot, undefined, matchLimit);
533
- return { success: true, data: result };
534
- }
535
- catch (err) {
536
- const message = err instanceof Error ? err.message : String(err);
537
- return engineError('E_GENERAL', `Impact prediction failed: ${message}`);
538
- }
539
- }
540
- /**
541
- * Restore a cancelled task back to pending.
542
- * @task T4790
543
- */
544
- export async function taskRestore(projectRoot, taskId, params) {
545
- try {
546
- const result = await coreTaskRestore(projectRoot, taskId, params);
547
- return { success: true, data: result };
548
- }
549
- catch (err) {
550
- const message = err instanceof Error ? err.message : String(err);
551
- if (message.includes('not found')) {
552
- return engineError('E_NOT_FOUND', message);
553
- }
554
- if (message.includes('not cancelled')) {
555
- return engineError('E_INVALID_INPUT', message);
556
- }
557
- return engineError('E_NOT_INITIALIZED', 'Failed to restore task');
558
- }
559
- }
560
- /**
561
- * Move an archived task back to active task data with status 'done' (or specified status).
562
- * @task T4790
563
- */
564
- export async function taskUnarchive(projectRoot, taskId, params) {
565
- try {
566
- const result = await coreTaskUnarchive(projectRoot, taskId, params);
567
- return { success: true, data: result };
568
- }
569
- catch (err) {
570
- const message = err instanceof Error ? err.message : String(err);
571
- if (message.includes('not found')) {
572
- return engineError('E_NOT_FOUND', message);
573
- }
574
- if (message.includes('already exists')) {
575
- return engineError('E_ID_COLLISION', message);
576
- }
577
- return engineError('E_NOT_INITIALIZED', 'Failed to unarchive task');
578
- }
579
- }
580
- /**
581
- * Change task position within its sibling group.
582
- * @task T4790
583
- */
584
- export async function taskReorder(projectRoot, taskId, position) {
585
- try {
586
- const result = await coreTaskReorder(projectRoot, taskId, position);
587
- return { success: true, data: result };
588
- }
589
- catch (err) {
590
- const message = err instanceof Error ? err.message : String(err);
591
- if (message.includes('not found')) {
592
- return engineError('E_NOT_FOUND', message);
593
- }
594
- return engineError('E_NOT_INITIALIZED', 'Failed to reorder task');
595
- }
596
- }
597
- /**
598
- * Move task under a different parent.
599
- * @task T4790
600
- */
601
- export async function taskReparent(projectRoot, taskId, newParentId) {
602
- try {
603
- const result = await coreTaskReparent(projectRoot, taskId, newParentId);
604
- return { success: true, data: result };
605
- }
606
- catch (err) {
607
- const message = err instanceof Error ? err.message : String(err);
608
- if (message.includes('not found')) {
609
- const code = message.includes('Parent') ? 'E_PARENT_NOT_FOUND' : 'E_NOT_FOUND';
610
- return engineError(code, message);
611
- }
612
- if (message.includes('subtask')) {
613
- return engineError('E_INVALID_PARENT_TYPE', message);
614
- }
615
- if (message.includes('circular')) {
616
- return engineError('E_CIRCULAR_REFERENCE', message);
617
- }
618
- if (message.includes('depth')) {
619
- return engineError('E_DEPTH_EXCEEDED', message);
620
- }
621
- if (message.includes('siblings')) {
622
- return engineError('E_SIBLING_LIMIT', message);
623
- }
624
- return engineError('E_NOT_INITIALIZED', 'Failed to reparent task');
625
- }
626
- }
627
- /**
628
- * Promote a subtask to task or task to root (remove parent).
629
- * @task T4790
630
- */
631
- export async function taskPromote(projectRoot, taskId) {
632
- try {
633
- const result = await coreTaskPromote(projectRoot, taskId);
634
- return { success: true, data: result };
635
- }
636
- catch (err) {
637
- const message = err instanceof Error ? err.message : String(err);
638
- if (message.includes('not found')) {
639
- return engineError('E_NOT_FOUND', message);
640
- }
641
- return engineError('E_NOT_INITIALIZED', 'Failed to promote task');
642
- }
643
- }
644
- /**
645
- * Reopen a completed task (set status back to pending).
646
- * @task T4790
647
- */
648
- export async function taskReopen(projectRoot, taskId, params) {
649
- try {
650
- const result = await coreTaskReopen(projectRoot, taskId, params);
651
- return { success: true, data: result };
652
- }
653
- catch (err) {
654
- const message = err instanceof Error ? err.message : String(err);
655
- if (message.includes('not found')) {
656
- return engineError('E_NOT_FOUND', message);
657
- }
658
- if (message.includes('not completed')) {
659
- return engineError('E_INVALID_INPUT', message);
660
- }
661
- if (message.includes('Invalid target')) {
662
- return engineError('E_INVALID_INPUT', message);
663
- }
664
- return engineError('E_NOT_INITIALIZED', 'Failed to reopen task');
665
- }
666
- }
667
- /**
668
- * Cancel a task (soft terminal state — reversible via restore).
669
- * @task T4529
670
- */
671
- export async function taskCancel(projectRoot, taskId, reason) {
672
- try {
673
- const result = await coreTaskCancel(projectRoot, taskId, { reason });
674
- return { success: true, data: result };
675
- }
676
- catch (err) {
677
- const message = err instanceof Error ? err.message : String(err);
678
- if (message.includes('not found'))
679
- return engineError('E_NOT_FOUND', message);
680
- if (message.includes('already cancelled') || message.includes('completed'))
681
- return engineError('E_INVALID_INPUT', message);
682
- return engineError('E_INTERNAL', message);
683
- }
684
- }
685
- /**
686
- * Deterministic complexity scoring from task metadata.
687
- * @task T4657
688
- * @task T4790
689
- * @epic T4654
690
- */
691
- export async function taskComplexityEstimate(projectRoot, params) {
692
- try {
693
- const result = await coreTaskComplexityEstimate(projectRoot, params);
694
- return { success: true, data: result };
695
- }
696
- catch (err) {
697
- const message = err instanceof Error ? err.message : String(err);
698
- if (message.includes('not found')) {
699
- return engineError('E_NOT_FOUND', message);
700
- }
701
- return engineError('E_NOT_INITIALIZED', 'Task database not initialized');
702
- }
703
- }
704
- /**
705
- * List dependencies for a task in a given direction.
706
- * @task T4657
707
- * @task T4790
708
- * @epic T4654
709
- */
710
- export async function taskDepends(projectRoot, taskId, direction = 'both', tree) {
711
- try {
712
- const result = await coreTaskDepends(projectRoot, taskId, direction, tree ? { tree } : undefined);
713
- return { success: true, data: result };
714
- }
715
- catch (err) {
716
- const message = err instanceof Error ? err.message : String(err);
717
- if (message.includes('not found')) {
718
- return engineError('E_NOT_FOUND', message);
719
- }
720
- return engineError('E_NOT_INITIALIZED', 'Task database not initialized');
721
- }
722
- }
723
- /**
724
- * Overview of all dependencies across the project.
725
- * @task T5157
726
- */
727
- export async function taskDepsOverview(projectRoot) {
728
- try {
729
- const result = await coreTaskDepsOverview(projectRoot);
730
- return { success: true, data: result };
731
- }
732
- catch (err) {
733
- const message = err instanceof Error ? err.message : String(err);
734
- return engineError('E_NOT_INITIALIZED', message);
735
- }
736
- }
737
- /**
738
- * Detect circular dependencies across the project.
739
- * @task T5157
740
- */
741
- export async function taskDepsCycles(projectRoot) {
742
- try {
743
- const result = await coreTaskDepsCycles(projectRoot);
744
- return { success: true, data: result };
745
- }
746
- catch (err) {
747
- const message = err instanceof Error ? err.message : String(err);
748
- return engineError('E_NOT_INITIALIZED', message);
749
- }
750
- }
751
- /**
752
- * Compute task statistics, optionally scoped to an epic.
753
- * @task T4657
754
- * @task T4790
755
- * @epic T4654
756
- */
757
- export async function taskStats(projectRoot, epicId) {
758
- try {
759
- const result = await coreTaskStats(projectRoot, epicId);
760
- return { success: true, data: result };
761
- }
762
- catch {
763
- return engineError('E_NOT_INITIALIZED', 'Task database not initialized');
764
- }
765
- }
766
- /**
767
- * Export tasks as JSON or CSV.
768
- * @task T4657
769
- * @task T4790
770
- * @epic T4654
771
- */
772
- export async function taskExport(projectRoot, params) {
773
- try {
774
- const result = await coreTaskExport(projectRoot, params);
775
- return { success: true, data: result };
776
- }
777
- catch {
778
- return engineError('E_NOT_INITIALIZED', 'Task database not initialized');
779
- }
780
- }
781
- /**
782
- * Get task history from the log file.
783
- * @task T4657
784
- * @task T4790
785
- * @epic T4654
786
- */
787
- export async function taskHistory(projectRoot, taskId, limit) {
788
- try {
789
- const result = await coreTaskHistory(projectRoot, taskId, limit);
790
- return { success: true, data: result };
791
- }
792
- catch {
793
- return engineError('E_NOT_INITIALIZED', 'Failed to read task history');
794
- }
795
- }
796
- /**
797
- * Lint tasks for common issues.
798
- * @task T4657
799
- * @task T4790
800
- * @epic T4654
801
- */
802
- export async function taskLint(projectRoot, taskId) {
803
- try {
804
- const result = await coreTaskLint(projectRoot, taskId);
805
- return { success: true, data: result };
806
- }
807
- catch (err) {
808
- const message = err instanceof Error ? err.message : String(err);
809
- if (message.includes('not found')) {
810
- return engineError('E_NOT_FOUND', message);
811
- }
812
- return engineError('E_NOT_INITIALIZED', 'Task database not initialized');
813
- }
814
- }
815
- /**
816
- * Validate multiple tasks at once.
817
- * @task T4657
818
- * @task T4790
819
- * @epic T4654
820
- */
821
- export async function taskBatchValidate(projectRoot, taskIds, checkMode = 'full') {
822
- try {
823
- const result = await coreTaskBatchValidate(projectRoot, taskIds, checkMode);
824
- return { success: true, data: result };
825
- }
826
- catch {
827
- return engineError('E_NOT_INITIALIZED', 'Task database not initialized');
828
- }
829
- }
830
- /**
831
- * Import tasks from a JSON source string or export package.
832
- * @task T4790
833
- */
834
- export async function taskImport(projectRoot, source, overwrite) {
835
- try {
836
- const result = await coreTaskImport(projectRoot, source, overwrite);
837
- return { success: true, data: result };
838
- }
839
- catch (err) {
840
- const message = err instanceof Error ? err.message : String(err);
841
- if (message.includes('Invalid JSON')) {
842
- return engineError('E_INVALID_INPUT', message);
843
- }
844
- return engineError('E_NOT_INITIALIZED', 'Failed to import tasks');
845
- }
846
- }
847
- /**
848
- * Compute a ranked plan: in-progress epics, ready tasks, blockers, bugs.
849
- * @task T4815
850
- */
851
- export async function taskPlan(projectRoot) {
852
- const { coreTaskPlan } = await import('@cleocode/core/internal');
853
- try {
854
- const result = await coreTaskPlan(projectRoot);
855
- return { success: true, data: result };
856
- }
857
- catch {
858
- return engineError('E_NOT_INITIALIZED', 'Task database not initialized');
859
- }
860
- }
861
- /**
862
- * Find related tasks using semantic search or keyword matching.
863
- * @task T5672
864
- */
865
- export async function taskRelatesFind(projectRoot, taskId, params) {
866
- try {
867
- const { suggestRelated, discoverRelated } = await import('@cleocode/core/internal');
868
- const accessor = await getAccessor(projectRoot);
869
- const mode = params?.mode ?? 'suggest';
870
- let result;
871
- if (mode === 'discover') {
872
- result = await discoverRelated(taskId, undefined, accessor);
873
- }
874
- else {
875
- const threshold = params?.threshold ?? 50;
876
- result = await suggestRelated(taskId, { threshold }, accessor);
877
- }
878
- return { success: true, data: result };
879
- }
880
- catch (err) {
881
- const message = err instanceof Error ? err.message : String(err);
882
- if (message.includes('not found')) {
883
- return engineError('E_NOT_FOUND', message);
884
- }
885
- return engineError('E_INTERNAL', message);
886
- }
887
- }
888
- /**
889
- * List all labels used in tasks.
890
- * @task T5672
891
- */
892
- export async function taskLabelList(projectRoot) {
893
- try {
894
- const { listLabels } = await import('@cleocode/core/internal');
895
- const accessor = await getAccessor(projectRoot);
896
- const labels = await listLabels(projectRoot, accessor);
897
- return { success: true, data: { labels, count: labels.length } };
898
- }
899
- catch {
900
- return engineError('E_NOT_INITIALIZED', 'Task database not initialized');
901
- }
902
- }
903
- /**
904
- * Show tasks associated with a label.
905
- * @task T5672
906
- */
907
- export async function taskLabelShow(projectRoot, label) {
908
- try {
909
- const { showLabelTasks } = await import('@cleocode/core/internal');
910
- const accessor = await getAccessor(projectRoot);
911
- const result = await showLabelTasks(label, projectRoot, accessor);
912
- return { success: true, data: result };
913
- }
914
- catch (err) {
915
- const message = err instanceof Error ? err.message : String(err);
916
- return engineError('E_INTERNAL', message);
917
- }
918
- }
919
- // ---------------------------------------------------------------------------
920
- // Sync sub-domain (provider-agnostic task reconciliation)
921
- // ---------------------------------------------------------------------------
922
- /**
923
- * Reconcile external tasks with CLEO as SSoT.
924
- */
925
- export async function taskSyncReconcile(projectRoot, params) {
926
- try {
927
- const { reconcile } = await import('@cleocode/core/internal');
928
- const accessor = await getAccessor(projectRoot);
929
- const result = await reconcile(params.externalTasks, {
930
- providerId: params.providerId,
931
- cwd: projectRoot,
932
- dryRun: params.dryRun,
933
- conflictPolicy: params.conflictPolicy,
934
- defaultPhase: params.defaultPhase,
935
- defaultLabels: params.defaultLabels,
936
- }, accessor);
937
- return { success: true, data: result };
938
- }
939
- catch (err) {
940
- const message = err instanceof Error ? err.message : String(err);
941
- return engineError('E_INTERNAL', message);
942
- }
943
- }
944
- /**
945
- * List external task links by provider or task ID.
946
- */
947
- export async function taskSyncLinks(projectRoot, params) {
948
- try {
949
- const { getLinksByProvider, getLinksByTaskId } = await import('@cleocode/core/internal');
950
- if (params?.taskId) {
951
- const links = await getLinksByTaskId(params.taskId, projectRoot);
952
- return { success: true, data: { links, count: links.length } };
953
- }
954
- if (params?.providerId) {
955
- const links = await getLinksByProvider(params.providerId, projectRoot);
956
- return { success: true, data: { links, count: links.length } };
957
- }
958
- return engineError('E_INVALID_INPUT', 'Either providerId or taskId is required');
959
- }
960
- catch (err) {
961
- const message = err instanceof Error ? err.message : String(err);
962
- return engineError('E_INTERNAL', message);
963
- }
964
- }
965
- /**
966
- * Remove all external task links for a provider.
967
- */
968
- export async function taskSyncLinksRemove(projectRoot, providerId) {
969
- try {
970
- const { removeLinksByProvider } = await import('@cleocode/core/internal');
971
- const removed = await removeLinksByProvider(providerId, projectRoot);
972
- return { success: true, data: { providerId, removed } };
973
- }
974
- catch (err) {
975
- const message = err instanceof Error ? err.message : String(err);
976
- return engineError('E_INTERNAL', message);
977
- }
978
- }
979
- //# sourceMappingURL=task-engine.js.map