@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,329 @@
1
+ /**
2
+ * CLI self-update command - check for and install updates.
3
+ *
4
+ * After updating, runs post-update diagnostics:
5
+ * - Pre-flight storage migration check
6
+ * - Auto-triggers upgrade if JSON data needs SQLite migration
7
+ *
8
+ * Designed for LLM agents: structured JSON output, actionable fix commands.
9
+ *
10
+ * @task T4699
11
+ * @epic T4454
12
+ */
13
+ import { execFile } from 'node:child_process';
14
+ import { readFile } from 'node:fs/promises';
15
+ import { join } from 'node:path';
16
+ import * as readline from 'node:readline';
17
+ import { promisify } from 'node:util';
18
+ import { ExitCode } from '@cleocode/contracts';
19
+ import { BUILD_CONFIG, CleoError, checkStorageMigration, formatError, getCleoHome, getRuntimeDiagnostics, runUpgrade, } from '@cleocode/core/internal';
20
+ import { createSelfUpdateProgress } from '../progress.js';
21
+ import { cliOutput } from '../renderers/index.js';
22
+ const execAsync = promisify(execFile);
23
+ const GITHUB_REPO = BUILD_CONFIG.repository.fullName;
24
+ async function getCurrentVersion() {
25
+ const cleoHome = getCleoHome();
26
+ try {
27
+ const content = await readFile(join(cleoHome, 'VERSION'), 'utf-8');
28
+ return (content.split('\n')[0] ?? 'unknown').trim();
29
+ }
30
+ catch {
31
+ return 'unknown';
32
+ }
33
+ }
34
+ async function getNpmInstalledVersion() {
35
+ try {
36
+ const { stdout } = await execAsync('npm', [
37
+ 'ls',
38
+ '-g',
39
+ '@cleocode/cleo',
40
+ '--depth=0',
41
+ '--json',
42
+ ]);
43
+ const data = JSON.parse(stdout);
44
+ return data.dependencies?.['@cleocode/cleo']?.version ?? null;
45
+ }
46
+ catch {
47
+ return null;
48
+ }
49
+ }
50
+ async function getDistTagVersion(tag) {
51
+ try {
52
+ const { stdout } = await execAsync('npm', ['view', `@cleocode/cleo@${tag}`, 'version']);
53
+ const v = stdout.trim();
54
+ return v || null;
55
+ }
56
+ catch {
57
+ // Fallback to GitHub latest for stable only
58
+ if (tag === 'latest') {
59
+ try {
60
+ const { stdout } = await execAsync('curl', [
61
+ '-sL',
62
+ '--max-time',
63
+ '10',
64
+ `https://api.github.com/repos/${GITHUB_REPO}/releases/latest`,
65
+ ]);
66
+ const data = JSON.parse(stdout);
67
+ return data.tag_name?.replace(/^v/, '') ?? null;
68
+ }
69
+ catch {
70
+ return null;
71
+ }
72
+ }
73
+ return null;
74
+ }
75
+ }
76
+ async function writeRuntimeVersionMetadata(mode, source, version) {
77
+ const cleoHome = getCleoHome();
78
+ const lines = [
79
+ version,
80
+ `mode=${mode}`,
81
+ `source=${source}`,
82
+ `installed=${new Date().toISOString()}`,
83
+ ];
84
+ await import('node:fs/promises').then(({ writeFile, mkdir }) => mkdir(cleoHome, { recursive: true }).then(() => writeFile(join(cleoHome, 'VERSION'), `${lines.join('\n')}\n`, 'utf-8')));
85
+ }
86
+ export function registerSelfUpdateCommand(program) {
87
+ program
88
+ .command('self-update')
89
+ .description('Check for and install CLEO updates, then run post-update diagnostics')
90
+ .option('--check', 'Only check if update is available')
91
+ .option('--status', 'Show current vs latest version')
92
+ .option('--version <ver>', 'Update to specific version')
93
+ .option('--channel <channel>', 'Update channel: stable|beta')
94
+ .option('--beta', 'Shortcut for --channel beta')
95
+ .option('--force', 'Force update even if same version')
96
+ .option('--post-update', 'Run post-update diagnostics and migration only')
97
+ .option('--no-auto-upgrade', 'Skip automatic upgrade after update')
98
+ .option('--auto-migrate', 'Automatically migrate storage without prompting')
99
+ .action(async (_opts, command) => {
100
+ const opts = command.optsWithGlobals ? command.optsWithGlobals() : command.opts();
101
+ const isHuman = opts['human'] === true || (!!process.stdout.isTTY && opts['json'] !== true);
102
+ const progress = createSelfUpdateProgress(isHuman);
103
+ try {
104
+ const noAutoUpgrade = opts['autoUpgrade'] === false; // Commander normalizes --no-auto-upgrade to autoUpgrade=false
105
+ // --post-update: skip version check, just run diagnostics + upgrade
106
+ if (opts['postUpdate']) {
107
+ progress.start();
108
+ progress.step(4, 'Running post-update diagnostics');
109
+ await runPostUpdateDiagnostics({
110
+ skipUpgrade: noAutoUpgrade,
111
+ autoMigrate: !!opts['autoMigrate'] || !!opts['force'],
112
+ });
113
+ progress.complete('Post-update diagnostics complete');
114
+ return;
115
+ }
116
+ progress.start();
117
+ progress.step(0, 'Detecting installation type');
118
+ const runtime = await getRuntimeDiagnostics();
119
+ const script = runtime.invocation.script;
120
+ const fromNodeModules = script.includes('/node_modules/@cleocode/cleo/') ||
121
+ script.includes('\\node_modules\\@cleocode\\cleo\\');
122
+ const isDev = runtime.channel === 'dev' && !fromNodeModules;
123
+ progress.step(1, 'Checking current version');
124
+ const currentVersion = isDev
125
+ ? await getCurrentVersion()
126
+ : ((await getNpmInstalledVersion()) ?? (await getCurrentVersion()));
127
+ const rawChannel = opts['channel']?.toLowerCase();
128
+ if (rawChannel && rawChannel !== 'stable' && rawChannel !== 'beta') {
129
+ throw new CleoError(ExitCode.VALIDATION_ERROR, `Invalid --channel '${rawChannel}'. Expected stable|beta`);
130
+ }
131
+ const requestedChannel = opts['beta']
132
+ ? 'beta'
133
+ : (rawChannel ??
134
+ (runtime.channel === 'beta' ? 'beta' : 'stable'));
135
+ if (isDev && !opts['force']) {
136
+ // For dev installs, still run post-update diagnostics
137
+ progress.step(4, 'Running post-update checks');
138
+ const preflight = checkStorageMigration();
139
+ cliOutput({
140
+ devMode: true,
141
+ channel: runtime.channel,
142
+ currentVersion,
143
+ message: 'Dev install detected. Use git pull to update.',
144
+ storagePreflight: {
145
+ migrationNeeded: preflight.migrationNeeded,
146
+ summary: preflight.summary,
147
+ fix: preflight.fix,
148
+ },
149
+ }, { command: 'self-update' });
150
+ if (preflight.migrationNeeded) {
151
+ progress.error(`Storage migration needed: ${preflight.summary}`);
152
+ process.stderr.write(`\n⚠ Storage migration needed: ${preflight.summary}\n` +
153
+ ` Fix: ${preflight.fix}\n` +
154
+ ` Or run: cleo upgrade\n\n`);
155
+ }
156
+ else {
157
+ progress.complete('Dev environment check complete');
158
+ }
159
+ process.exit(ExitCode.NO_DATA);
160
+ return;
161
+ }
162
+ if (opts['status'] || opts['check']) {
163
+ progress.step(2, 'Querying npm registry');
164
+ const latest = await getDistTagVersion(requestedChannel === 'beta' ? 'beta' : 'latest');
165
+ if (!latest) {
166
+ throw new CleoError(ExitCode.DEPENDENCY_ERROR, 'Failed to check latest version from GitHub');
167
+ }
168
+ progress.step(3, 'Comparing versions');
169
+ const updateAvailable = latest !== currentVersion;
170
+ const preflight = checkStorageMigration();
171
+ cliOutput({
172
+ currentVersion,
173
+ latestVersion: latest,
174
+ channel: requestedChannel,
175
+ updateAvailable,
176
+ storagePreflight: {
177
+ migrationNeeded: preflight.migrationNeeded,
178
+ summary: preflight.summary,
179
+ fix: preflight.fix,
180
+ },
181
+ }, { command: 'self-update' });
182
+ if (opts['check'] && updateAvailable) {
183
+ process.exit(1); // exit 1 means update available for scripting
184
+ }
185
+ return;
186
+ }
187
+ // Actual update - delegated to shell for file system operations
188
+ progress.step(2, 'Querying npm registry');
189
+ const latest = opts['version'] ??
190
+ (await getDistTagVersion(requestedChannel === 'beta' ? 'beta' : 'latest'));
191
+ if (!latest) {
192
+ throw new CleoError(ExitCode.DEPENDENCY_ERROR, 'Failed to check latest version from GitHub');
193
+ }
194
+ progress.step(3, 'Comparing versions');
195
+ if (latest === currentVersion && !opts['force']) {
196
+ // Up to date - still run post-update diagnostics
197
+ progress.step(4, 'Running post-update checks');
198
+ await runPostUpdateDiagnostics({
199
+ skipUpgrade: noAutoUpgrade,
200
+ autoMigrate: !!opts['autoMigrate'] || !!opts['force'],
201
+ });
202
+ progress.complete('Already up to date');
203
+ cliOutput({
204
+ currentVersion,
205
+ upToDate: true,
206
+ }, { command: 'self-update', message: 'Already up to date' });
207
+ return;
208
+ }
209
+ const spec = opts['version']
210
+ ? `@cleocode/cleo@${latest}`
211
+ : requestedChannel === 'beta'
212
+ ? '@cleocode/cleo@beta'
213
+ : '@cleocode/cleo@latest';
214
+ progress.step(4, `Installing ${spec}`);
215
+ await execAsync('npm', ['install', '-g', spec], { maxBuffer: 10 * 1024 * 1024 });
216
+ await writeRuntimeVersionMetadata('prod-npm', 'npm', latest);
217
+ progress.step(5, 'Finalizing');
218
+ cliOutput({
219
+ currentVersion,
220
+ targetVersion: latest,
221
+ channel: requestedChannel,
222
+ updated: true,
223
+ command: `npm install -g ${spec}`,
224
+ }, { command: 'self-update', message: `Updated to ${latest}` });
225
+ await runPostUpdateDiagnostics({
226
+ skipUpgrade: noAutoUpgrade,
227
+ autoMigrate: !!opts['autoMigrate'] || !!opts['force'],
228
+ });
229
+ progress.complete(`Updated to ${latest}`);
230
+ }
231
+ catch (err) {
232
+ if (err instanceof CleoError) {
233
+ progress.error(err.message);
234
+ console.error(formatError(err));
235
+ process.exit(err.code);
236
+ }
237
+ progress.error('Unexpected error during update');
238
+ throw err;
239
+ }
240
+ });
241
+ }
242
+ /**
243
+ * Run post-update diagnostics and auto-upgrade.
244
+ *
245
+ * Called after a version update to detect and fix:
246
+ * - JSON→SQLite storage migration
247
+ * - Schema version mismatches
248
+ * - Structural data repairs
249
+ *
250
+ * @task T4699
251
+ */
252
+ async function runPostUpdateDiagnostics(opts) {
253
+ const preflight = checkStorageMigration();
254
+ if (preflight.migrationNeeded) {
255
+ if (opts?.skipUpgrade) {
256
+ process.stderr.write(`\n⚠ Storage migration detected: ${preflight.summary}\n` +
257
+ ` Auto-upgrade skipped (--no-auto-upgrade).\n` +
258
+ ` Run manually: cleo upgrade\n\n`);
259
+ cliOutput({
260
+ postUpdate: true,
261
+ upgradeSkipped: true,
262
+ storagePreflight: {
263
+ migrationNeeded: true,
264
+ summary: preflight.summary,
265
+ fix: preflight.fix,
266
+ },
267
+ }, { command: 'self-update', message: 'Post-update upgrade skipped.' });
268
+ return;
269
+ }
270
+ process.stderr.write(`\n⚠ Storage migration detected: ${preflight.summary}\n`);
271
+ let shouldMigrate = !!opts?.autoMigrate;
272
+ if (!shouldMigrate) {
273
+ const rl = readline.createInterface({
274
+ input: process.stdin,
275
+ output: process.stdout,
276
+ });
277
+ shouldMigrate = await new Promise((resolve) => {
278
+ rl.question(' Do you want to run the upgrade now? [Y/n] ', (answer) => {
279
+ rl.close();
280
+ const clean = answer.trim().toLowerCase();
281
+ resolve(clean === '' || clean === 'y' || clean === 'yes');
282
+ });
283
+ });
284
+ }
285
+ if (!shouldMigrate) {
286
+ process.stderr.write(`\n Upgrade skipped. Run manually later: cleo upgrade\n\n`);
287
+ return;
288
+ }
289
+ process.stderr.write(` Running upgrade...\n\n`);
290
+ const result = await runUpgrade({ autoMigrate: true });
291
+ // Show structured output of each action taken
292
+ if (result.actions.length > 0) {
293
+ process.stderr.write('Upgrade actions:\n');
294
+ for (const action of result.actions) {
295
+ const icon = action.status === 'applied' ? ' ✓' : action.status === 'error' ? ' ✗' : ' -';
296
+ process.stderr.write(`${icon} ${action.action}: ${action.details}\n`);
297
+ }
298
+ process.stderr.write('\n');
299
+ }
300
+ cliOutput({
301
+ postUpdate: true,
302
+ upgrade: {
303
+ success: result.success,
304
+ applied: result.applied,
305
+ actions: result.actions,
306
+ storageMigration: result.storageMigration,
307
+ errors: result.errors.length > 0 ? result.errors : undefined,
308
+ },
309
+ }, {
310
+ command: 'self-update',
311
+ message: result.success
312
+ ? 'Post-update upgrade complete.'
313
+ : 'Post-update upgrade had errors.',
314
+ });
315
+ if (!result.success) {
316
+ process.stderr.write(`\n⚠ Some upgrade steps failed. Manual fix:\n` + ` ${preflight.fix}\n\n`);
317
+ }
318
+ }
319
+ else {
320
+ cliOutput({
321
+ postUpdate: true,
322
+ storagePreflight: {
323
+ migrationNeeded: false,
324
+ summary: preflight.summary,
325
+ },
326
+ }, { command: 'self-update', message: 'No post-update actions needed.' });
327
+ }
328
+ }
329
+ //# sourceMappingURL=self-update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"self-update.js","sourceRoot":"","sources":["../../../src/cli/commands/self-update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * CLI sequence command - task ID sequence management.
3
+ * @task T4538
4
+ * @epic T4454
5
+ */
6
+ import type { ShimCommand as Command } from '../commander-shim.js';
7
+ export declare function registerSequenceCommand(program: Command): void;
8
+ //# sourceMappingURL=sequence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequence.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/sequence.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,WAAW,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEnE,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2C9D"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * CLI sequence command - task ID sequence management.
3
+ * @task T4538
4
+ * @epic T4454
5
+ */
6
+ import { dispatchFromCli } from '../../dispatch/adapters/cli.js';
7
+ export function registerSequenceCommand(program) {
8
+ const sequence = program
9
+ .command('sequence')
10
+ .description('Inspect and manage task ID sequence (show/check/repair)');
11
+ sequence
12
+ .command('show')
13
+ .description('Display current sequence state')
14
+ .action(async () => {
15
+ await dispatchFromCli('query', 'admin', 'sequence', { action: 'show' }, { command: 'sequence' });
16
+ });
17
+ sequence
18
+ .command('check')
19
+ .description('Verify counter >= max(todo + archive)')
20
+ .action(async () => {
21
+ await dispatchFromCli('query', 'admin', 'sequence', { action: 'check' }, { command: 'sequence' });
22
+ });
23
+ sequence
24
+ .command('repair')
25
+ .description('Reset counter to max + 1 if behind')
26
+ .action(async () => {
27
+ await dispatchFromCli('mutate', 'admin', 'config.set', { key: 'sequence', value: 'repair' }, { command: 'sequence' });
28
+ });
29
+ }
30
+ //# sourceMappingURL=sequence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequence.js","sourceRoot":"","sources":["../../../src/cli/commands/sequence.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGjE,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,QAAQ,GAAG,OAAO;SACrB,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,yDAAyD,CAAC,CAAC;IAE1E,QAAQ;SACL,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,gCAAgC,CAAC;SAC7C,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,eAAe,CACnB,OAAO,EACP,OAAO,EACP,UAAU,EACV,EAAE,MAAM,EAAE,MAAM,EAAE,EAClB,EAAE,OAAO,EAAE,UAAU,EAAE,CACxB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEL,QAAQ;SACL,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,uCAAuC,CAAC;SACpD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,eAAe,CACnB,OAAO,EACP,OAAO,EACP,UAAU,EACV,EAAE,MAAM,EAAE,OAAO,EAAE,EACnB,EAAE,OAAO,EAAE,UAAU,EAAE,CACxB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEL,QAAQ;SACL,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,oCAAoC,CAAC;SACjD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,eAAe,CACnB,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,EACpC,EAAE,OAAO,EAAE,UAAU,EAAE,CACxB,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * CLI session command group.
3
+ * @task T4463
4
+ * @epic T4454
5
+ */
6
+ import type { ShimCommand as Command } from '../commander-shim.js';
7
+ /**
8
+ * Register the session command group.
9
+ * @task T4463
10
+ */
11
+ export declare function registerSessionCommand(program: Command): void;
12
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/session.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,WAAW,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGnE;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2O7D"}
@@ -0,0 +1,175 @@
1
+ /**
2
+ * CLI session command group.
3
+ * @task T4463
4
+ * @epic T4454
5
+ */
6
+ import { ExitCode } from '@cleocode/contracts';
7
+ import { dispatchFromCli, dispatchRaw, handleRawError } from '../../dispatch/adapters/cli.js';
8
+ import { cliOutput } from '../renderers/index.js';
9
+ /**
10
+ * Register the session command group.
11
+ * @task T4463
12
+ */
13
+ export function registerSessionCommand(program) {
14
+ const session = program.command('session').description('Manage work sessions');
15
+ session
16
+ .command('start')
17
+ .description('Start a new session')
18
+ .requiredOption('--scope <scope>', 'Session scope (epic:T### or global)')
19
+ .requiredOption('--name <name>', 'Session name')
20
+ .option('--auto-start', 'Auto-start on first available task')
21
+ .option('--auto-focus', 'Auto-focus on first available task (alias for --auto-start)')
22
+ .option('--focus <taskId>', 'Set initial task to work on')
23
+ .option('--agent <agent>', 'Agent identifier')
24
+ .option('--grade', 'Enable full query+mutation audit logging for behavioral grading')
25
+ .action(async (opts) => {
26
+ await dispatchFromCli('mutate', 'session', 'start', {
27
+ scope: opts['scope'],
28
+ name: opts['name'],
29
+ autoStart: (opts['autoStart'] || opts['autoFocus']),
30
+ focus: opts['focus'],
31
+ grade: opts['grade'],
32
+ }, { command: 'session', operation: 'session.start' });
33
+ });
34
+ session
35
+ .command('stop')
36
+ .alias('end')
37
+ .description('Stop the current session')
38
+ .option('--session <id>', 'Specific session ID to stop')
39
+ .option('--note <note>', 'Stop note')
40
+ .option('--next-action <action>', 'Suggested next action')
41
+ .action(async (opts) => {
42
+ await dispatchFromCli('mutate', 'session', 'end', {
43
+ note: opts['note'],
44
+ nextAction: opts['nextAction'],
45
+ }, { command: 'session', operation: 'session.end' });
46
+ });
47
+ session
48
+ .command('handoff')
49
+ .description('Show handoff data from the most recent ended session')
50
+ .option('--scope <scope>', 'Filter by scope (epic:T### or global)')
51
+ .action(async (opts) => {
52
+ const scope = opts['scope'];
53
+ const response = await dispatchRaw('query', 'session', 'handoff.show', {
54
+ scope,
55
+ });
56
+ if (!response.success) {
57
+ handleRawError(response, { command: 'session handoff', operation: 'session.handoff.show' });
58
+ }
59
+ const data = response.data;
60
+ if (!data || !data.handoff) {
61
+ cliOutput({ handoff: null }, {
62
+ command: 'session handoff',
63
+ message: 'No handoff data available',
64
+ operation: 'session.handoff.show',
65
+ });
66
+ process.exit(ExitCode.NO_DATA);
67
+ return;
68
+ }
69
+ const { sessionId, handoff } = data;
70
+ // Format the handoff data for display
71
+ const formattedHandoff = {
72
+ sessionId,
73
+ lastTask: handoff.lastTask ?? 'None',
74
+ tasksCompleted: handoff.tasksCompleted ?? [],
75
+ tasksCreated: handoff.tasksCreated ?? [],
76
+ decisionsRecorded: handoff.decisionsRecorded ?? 0,
77
+ nextSuggested: handoff.nextSuggested ?? [],
78
+ openBlockers: handoff.openBlockers ?? [],
79
+ openBugs: handoff.openBugs ?? [],
80
+ ...(handoff.note ? { note: handoff.note } : {}),
81
+ ...(handoff.nextAction ? { nextAction: handoff.nextAction } : {}),
82
+ };
83
+ cliOutput({ handoff: formattedHandoff }, { command: 'session handoff', operation: 'session.handoff.show' });
84
+ });
85
+ session
86
+ .command('status')
87
+ .description('Show current session status')
88
+ .action(async () => {
89
+ const response = await dispatchRaw('query', 'session', 'status');
90
+ if (!response.success) {
91
+ handleRawError(response, { command: 'session', operation: 'session.status' });
92
+ }
93
+ const data = response.data;
94
+ if (!data || data['session'] === null || (data['session'] === undefined && !data['id'])) {
95
+ cliOutput({ session: null }, { command: 'session', message: 'No active session', operation: 'session.status' });
96
+ process.exit(ExitCode.NO_DATA);
97
+ return;
98
+ }
99
+ cliOutput({ session: data }, { command: 'session', operation: 'session.status' });
100
+ });
101
+ session
102
+ .command('resume <sessionId>')
103
+ .description('Resume an existing session')
104
+ .action(async (sessionId) => {
105
+ await dispatchFromCli('mutate', 'session', 'resume', {
106
+ sessionId,
107
+ }, { command: 'session', operation: 'session.resume' });
108
+ });
109
+ session
110
+ .command('find')
111
+ .description('Find sessions (lightweight discovery — minimal fields, low context cost)')
112
+ .option('--status <status>', 'Filter by status (active|ended|orphaned)')
113
+ .option('--scope <scope>', 'Filter by scope (e.g. "epic:T001" or "global")')
114
+ .option('--query <query>', 'Fuzzy match on session name or ID')
115
+ .option('--limit <n>', 'Max results', parseInt)
116
+ .action(async (opts) => {
117
+ await dispatchFromCli('query', 'session', 'find', {
118
+ status: opts['status'],
119
+ scope: opts['scope'],
120
+ query: opts['query'],
121
+ limit: opts['limit'],
122
+ }, { command: 'session', operation: 'session.find' });
123
+ });
124
+ session
125
+ .command('list')
126
+ .description('List sessions')
127
+ .option('--status <status>', 'Filter by status (active|ended|orphaned)')
128
+ .option('--limit <n>', 'Max results', parseInt)
129
+ .option('--offset <n>', 'Skip first n results', parseInt)
130
+ .action(async (opts) => {
131
+ await dispatchFromCli('query', 'session', 'list', {
132
+ status: opts['status'],
133
+ limit: opts['limit'],
134
+ offset: opts['offset'],
135
+ }, { command: 'session', operation: 'session.list' });
136
+ });
137
+ session
138
+ .command('gc')
139
+ .description('Garbage collect old sessions')
140
+ .option('--max-age <days>', 'Max age in days for active sessions', parseInt)
141
+ .action(async (opts) => {
142
+ await dispatchFromCli('mutate', 'session', 'gc', {
143
+ maxAgeDays: opts['maxAge'],
144
+ }, { command: 'session', operation: 'session.gc' });
145
+ });
146
+ session
147
+ .command('record-decision')
148
+ .description('Record a decision made during the current session')
149
+ .requiredOption('--session-id <sessionId>', 'Session ID')
150
+ .requiredOption('--task-id <taskId>', 'Task ID the decision relates to')
151
+ .requiredOption('--decision <decision>', 'Decision text')
152
+ .requiredOption('--rationale <rationale>', 'Rationale for the decision')
153
+ .option('--alternatives <alternatives>', 'Alternatives considered')
154
+ .action(async (opts) => {
155
+ await dispatchFromCli('mutate', 'session', 'record.decision', {
156
+ sessionId: opts['sessionId'],
157
+ taskId: opts['taskId'],
158
+ decision: opts['decision'],
159
+ rationale: opts['rationale'],
160
+ alternatives: opts['alternatives'],
161
+ }, { command: 'session', operation: 'session.record.decision' });
162
+ });
163
+ session
164
+ .command('decision-log')
165
+ .description('Show decisions recorded in a session')
166
+ .option('--session-id <sessionId>', 'Session ID to filter by')
167
+ .option('--task-id <taskId>', 'Task ID to filter by')
168
+ .action(async (opts) => {
169
+ await dispatchFromCli('query', 'session', 'decision.log', {
170
+ sessionId: opts['sessionId'],
171
+ taskId: opts['taskId'],
172
+ }, { command: 'session', operation: 'session.decision.log' });
173
+ });
174
+ }
175
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/cli/commands/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * CLI show command.
3
+ * @task T4460
4
+ * @epic T4454
5
+ */
6
+ import type { ShimCommand as Command } from '../commander-shim.js';
7
+ /**
8
+ * Register the show command.
9
+ * @task T4460
10
+ * @task T4666
11
+ */
12
+ export declare function registerShowCommand(program: Command): void;
13
+ //# sourceMappingURL=show.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/show.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,WAAW,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEnE;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAO1D"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * CLI show command.
3
+ * @task T4460
4
+ * @epic T4454
5
+ */
6
+ import { dispatchFromCli } from '../../dispatch/adapters/cli.js';
7
+ /**
8
+ * Register the show command.
9
+ * @task T4460
10
+ * @task T4666
11
+ */
12
+ export function registerShowCommand(program) {
13
+ program
14
+ .command('show <taskId>')
15
+ .description('Show full task details by ID')
16
+ .action(async (taskId) => {
17
+ await dispatchFromCli('query', 'tasks', 'show', { taskId }, { command: 'show' });
18
+ });
19
+ }
20
+ //# sourceMappingURL=show.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show.js","sourceRoot":"","sources":["../../../src/cli/commands/show.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGjE;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;QAC/B,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;AACP,CAAC"}