@cleocode/cleo 2026.3.37 → 2026.3.39

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 (724) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +565 -0
  3. package/bin/postinstall.js +0 -0
  4. package/completions/bash-completion.sh +0 -0
  5. package/completions/zsh-completion.zsh +0 -0
  6. package/dist/cli/index.js +3507 -3631
  7. package/dist/cli/index.js.map +4 -4
  8. package/dist/mcp/index.js +3311 -3215
  9. package/dist/mcp/index.js.map +4 -4
  10. package/migrations/drizzle-brain/20260318205549_initial/migration.sql +0 -0
  11. package/migrations/drizzle-brain/20260318205549_initial/snapshot.json +0 -0
  12. package/migrations/drizzle-nexus/20260318205558_initial/migration.sql +0 -0
  13. package/migrations/drizzle-nexus/20260318205558_initial/snapshot.json +0 -0
  14. package/migrations/drizzle-tasks/20260318205539_initial/migration.sql +0 -0
  15. package/migrations/drizzle-tasks/20260318205539_initial/snapshot.json +0 -0
  16. package/package.json +17 -12
  17. package/dist/cli/commander-shim.d.ts +0 -108
  18. package/dist/cli/commander-shim.d.ts.map +0 -1
  19. package/dist/cli/commander-shim.js +0 -229
  20. package/dist/cli/commander-shim.js.map +0 -1
  21. package/dist/cli/commands/add.d.ts +0 -12
  22. package/dist/cli/commands/add.d.ts.map +0 -1
  23. package/dist/cli/commands/add.js +0 -91
  24. package/dist/cli/commands/add.js.map +0 -1
  25. package/dist/cli/commands/adr.d.ts +0 -27
  26. package/dist/cli/commands/adr.d.ts.map +0 -1
  27. package/dist/cli/commands/adr.js +0 -79
  28. package/dist/cli/commands/adr.js.map +0 -1
  29. package/dist/cli/commands/analyze.d.ts +0 -12
  30. package/dist/cli/commands/analyze.d.ts.map +0 -1
  31. package/dist/cli/commands/analyze.js +0 -20
  32. package/dist/cli/commands/analyze.js.map +0 -1
  33. package/dist/cli/commands/archive-stats.d.ts +0 -18
  34. package/dist/cli/commands/archive-stats.d.ts.map +0 -1
  35. package/dist/cli/commands/archive-stats.js +0 -49
  36. package/dist/cli/commands/archive-stats.js.map +0 -1
  37. package/dist/cli/commands/archive.d.ts +0 -12
  38. package/dist/cli/commands/archive.d.ts.map +0 -1
  39. package/dist/cli/commands/archive.js +0 -32
  40. package/dist/cli/commands/archive.js.map +0 -1
  41. package/dist/cli/commands/backup.d.ts +0 -8
  42. package/dist/cli/commands/backup.d.ts.map +0 -1
  43. package/dist/cli/commands/backup.js +0 -35
  44. package/dist/cli/commands/backup.js.map +0 -1
  45. package/dist/cli/commands/blockers.d.ts +0 -7
  46. package/dist/cli/commands/blockers.d.ts.map +0 -1
  47. package/dist/cli/commands/blockers.js +0 -16
  48. package/dist/cli/commands/blockers.js.map +0 -1
  49. package/dist/cli/commands/briefing.d.ts +0 -22
  50. package/dist/cli/commands/briefing.d.ts.map +0 -1
  51. package/dist/cli/commands/briefing.js +0 -45
  52. package/dist/cli/commands/briefing.js.map +0 -1
  53. package/dist/cli/commands/bug.d.ts +0 -12
  54. package/dist/cli/commands/bug.d.ts.map +0 -1
  55. package/dist/cli/commands/bug.js +0 -81
  56. package/dist/cli/commands/bug.js.map +0 -1
  57. package/dist/cli/commands/checkpoint.d.ts +0 -15
  58. package/dist/cli/commands/checkpoint.d.ts.map +0 -1
  59. package/dist/cli/commands/checkpoint.js +0 -92
  60. package/dist/cli/commands/checkpoint.js.map +0 -1
  61. package/dist/cli/commands/commands.d.ts +0 -13
  62. package/dist/cli/commands/commands.d.ts.map +0 -1
  63. package/dist/cli/commands/commands.js +0 -30
  64. package/dist/cli/commands/commands.js.map +0 -1
  65. package/dist/cli/commands/complete.d.ts +0 -12
  66. package/dist/cli/commands/complete.d.ts.map +0 -1
  67. package/dist/cli/commands/complete.js +0 -43
  68. package/dist/cli/commands/complete.js.map +0 -1
  69. package/dist/cli/commands/compliance.d.ts +0 -8
  70. package/dist/cli/commands/compliance.d.ts.map +0 -1
  71. package/dist/cli/commands/compliance.js +0 -85
  72. package/dist/cli/commands/compliance.js.map +0 -1
  73. package/dist/cli/commands/config.d.ts +0 -9
  74. package/dist/cli/commands/config.d.ts.map +0 -1
  75. package/dist/cli/commands/config.js +0 -43
  76. package/dist/cli/commands/config.js.map +0 -1
  77. package/dist/cli/commands/consensus.d.ts +0 -13
  78. package/dist/cli/commands/consensus.d.ts.map +0 -1
  79. package/dist/cli/commands/consensus.js +0 -45
  80. package/dist/cli/commands/consensus.js.map +0 -1
  81. package/dist/cli/commands/context.d.ts +0 -8
  82. package/dist/cli/commands/context.d.ts.map +0 -1
  83. package/dist/cli/commands/context.js +0 -40
  84. package/dist/cli/commands/context.js.map +0 -1
  85. package/dist/cli/commands/contribution.d.ts +0 -13
  86. package/dist/cli/commands/contribution.d.ts.map +0 -1
  87. package/dist/cli/commands/contribution.js +0 -41
  88. package/dist/cli/commands/contribution.js.map +0 -1
  89. package/dist/cli/commands/current.d.ts +0 -13
  90. package/dist/cli/commands/current.d.ts.map +0 -1
  91. package/dist/cli/commands/current.js +0 -20
  92. package/dist/cli/commands/current.js.map +0 -1
  93. package/dist/cli/commands/dash.d.ts +0 -12
  94. package/dist/cli/commands/dash.d.ts.map +0 -1
  95. package/dist/cli/commands/dash.js +0 -24
  96. package/dist/cli/commands/dash.js.map +0 -1
  97. package/dist/cli/commands/decomposition.d.ts +0 -13
  98. package/dist/cli/commands/decomposition.d.ts.map +0 -1
  99. package/dist/cli/commands/decomposition.js +0 -45
  100. package/dist/cli/commands/decomposition.js.map +0 -1
  101. package/dist/cli/commands/delete.d.ts +0 -12
  102. package/dist/cli/commands/delete.d.ts.map +0 -1
  103. package/dist/cli/commands/delete.js +0 -37
  104. package/dist/cli/commands/delete.js.map +0 -1
  105. package/dist/cli/commands/deps.d.ts +0 -9
  106. package/dist/cli/commands/deps.d.ts.map +0 -1
  107. package/dist/cli/commands/deps.js +0 -73
  108. package/dist/cli/commands/deps.js.map +0 -1
  109. package/dist/cli/commands/detect-drift.d.ts +0 -15
  110. package/dist/cli/commands/detect-drift.d.ts.map +0 -1
  111. package/dist/cli/commands/detect-drift.js +0 -385
  112. package/dist/cli/commands/detect-drift.js.map +0 -1
  113. package/dist/cli/commands/docs.d.ts +0 -13
  114. package/dist/cli/commands/docs.d.ts.map +0 -1
  115. package/dist/cli/commands/docs.js +0 -170
  116. package/dist/cli/commands/docs.js.map +0 -1
  117. package/dist/cli/commands/doctor.d.ts +0 -11
  118. package/dist/cli/commands/doctor.d.ts.map +0 -1
  119. package/dist/cli/commands/doctor.js +0 -54
  120. package/dist/cli/commands/doctor.js.map +0 -1
  121. package/dist/cli/commands/dynamic.d.ts +0 -24
  122. package/dist/cli/commands/dynamic.d.ts.map +0 -1
  123. package/dist/cli/commands/dynamic.js +0 -27
  124. package/dist/cli/commands/dynamic.js.map +0 -1
  125. package/dist/cli/commands/env.d.ts +0 -12
  126. package/dist/cli/commands/env.d.ts.map +0 -1
  127. package/dist/cli/commands/env.js +0 -44
  128. package/dist/cli/commands/env.js.map +0 -1
  129. package/dist/cli/commands/exists.d.ts +0 -7
  130. package/dist/cli/commands/exists.d.ts.map +0 -1
  131. package/dist/cli/commands/exists.js +0 -33
  132. package/dist/cli/commands/exists.js.map +0 -1
  133. package/dist/cli/commands/export-tasks.d.ts +0 -10
  134. package/dist/cli/commands/export-tasks.d.ts.map +0 -1
  135. package/dist/cli/commands/export-tasks.js +0 -47
  136. package/dist/cli/commands/export-tasks.js.map +0 -1
  137. package/dist/cli/commands/export.d.ts +0 -9
  138. package/dist/cli/commands/export.d.ts.map +0 -1
  139. package/dist/cli/commands/export.js +0 -46
  140. package/dist/cli/commands/export.js.map +0 -1
  141. package/dist/cli/commands/extract.d.ts +0 -16
  142. package/dist/cli/commands/extract.d.ts.map +0 -1
  143. package/dist/cli/commands/extract.js +0 -43
  144. package/dist/cli/commands/extract.js.map +0 -1
  145. package/dist/cli/commands/find.d.ts +0 -14
  146. package/dist/cli/commands/find.d.ts.map +0 -1
  147. package/dist/cli/commands/find.js +0 -70
  148. package/dist/cli/commands/find.js.map +0 -1
  149. package/dist/cli/commands/generate-changelog.d.ts +0 -14
  150. package/dist/cli/commands/generate-changelog.d.ts.map +0 -1
  151. package/dist/cli/commands/generate-changelog.js +0 -252
  152. package/dist/cli/commands/generate-changelog.js.map +0 -1
  153. package/dist/cli/commands/grade.d.ts +0 -13
  154. package/dist/cli/commands/grade.d.ts.map +0 -1
  155. package/dist/cli/commands/grade.js +0 -16
  156. package/dist/cli/commands/grade.js.map +0 -1
  157. package/dist/cli/commands/history.d.ts +0 -9
  158. package/dist/cli/commands/history.d.ts.map +0 -1
  159. package/dist/cli/commands/history.js +0 -30
  160. package/dist/cli/commands/history.js.map +0 -1
  161. package/dist/cli/commands/implementation.d.ts +0 -13
  162. package/dist/cli/commands/implementation.d.ts.map +0 -1
  163. package/dist/cli/commands/implementation.js +0 -41
  164. package/dist/cli/commands/implementation.js.map +0 -1
  165. package/dist/cli/commands/import-tasks.d.ts +0 -10
  166. package/dist/cli/commands/import-tasks.d.ts.map +0 -1
  167. package/dist/cli/commands/import-tasks.js +0 -38
  168. package/dist/cli/commands/import-tasks.js.map +0 -1
  169. package/dist/cli/commands/import.d.ts +0 -9
  170. package/dist/cli/commands/import.d.ts.map +0 -1
  171. package/dist/cli/commands/import.js +0 -28
  172. package/dist/cli/commands/import.js.map +0 -1
  173. package/dist/cli/commands/init.d.ts +0 -34
  174. package/dist/cli/commands/init.d.ts.map +0 -1
  175. package/dist/cli/commands/init.js +0 -94
  176. package/dist/cli/commands/init.js.map +0 -1
  177. package/dist/cli/commands/inject.d.ts +0 -8
  178. package/dist/cli/commands/inject.d.ts.map +0 -1
  179. package/dist/cli/commands/inject.js +0 -28
  180. package/dist/cli/commands/inject.js.map +0 -1
  181. package/dist/cli/commands/install-global.d.ts +0 -19
  182. package/dist/cli/commands/install-global.d.ts.map +0 -1
  183. package/dist/cli/commands/install-global.js +0 -54
  184. package/dist/cli/commands/install-global.js.map +0 -1
  185. package/dist/cli/commands/issue.d.ts +0 -14
  186. package/dist/cli/commands/issue.d.ts.map +0 -1
  187. package/dist/cli/commands/issue.js +0 -105
  188. package/dist/cli/commands/issue.js.map +0 -1
  189. package/dist/cli/commands/labels.d.ts +0 -13
  190. package/dist/cli/commands/labels.d.ts.map +0 -1
  191. package/dist/cli/commands/labels.js +0 -44
  192. package/dist/cli/commands/labels.js.map +0 -1
  193. package/dist/cli/commands/lifecycle.d.ts +0 -8
  194. package/dist/cli/commands/lifecycle.d.ts.map +0 -1
  195. package/dist/cli/commands/lifecycle.js +0 -72
  196. package/dist/cli/commands/lifecycle.js.map +0 -1
  197. package/dist/cli/commands/list.d.ts +0 -14
  198. package/dist/cli/commands/list.d.ts.map +0 -1
  199. package/dist/cli/commands/list.js +0 -71
  200. package/dist/cli/commands/list.js.map +0 -1
  201. package/dist/cli/commands/log.d.ts +0 -12
  202. package/dist/cli/commands/log.d.ts.map +0 -1
  203. package/dist/cli/commands/log.js +0 -30
  204. package/dist/cli/commands/log.js.map +0 -1
  205. package/dist/cli/commands/map.d.ts +0 -10
  206. package/dist/cli/commands/map.d.ts.map +0 -1
  207. package/dist/cli/commands/map.js +0 -23
  208. package/dist/cli/commands/map.js.map +0 -1
  209. package/dist/cli/commands/mcp-install.d.ts +0 -17
  210. package/dist/cli/commands/mcp-install.d.ts.map +0 -1
  211. package/dist/cli/commands/mcp-install.js +0 -128
  212. package/dist/cli/commands/mcp-install.js.map +0 -1
  213. package/dist/cli/commands/memory-brain.d.ts +0 -14
  214. package/dist/cli/commands/memory-brain.d.ts.map +0 -1
  215. package/dist/cli/commands/memory-brain.js +0 -151
  216. package/dist/cli/commands/memory-brain.js.map +0 -1
  217. package/dist/cli/commands/migrate-claude-mem.d.ts +0 -18
  218. package/dist/cli/commands/migrate-claude-mem.d.ts.map +0 -1
  219. package/dist/cli/commands/migrate-claude-mem.js +0 -60
  220. package/dist/cli/commands/migrate-claude-mem.js.map +0 -1
  221. package/dist/cli/commands/next.d.ts +0 -9
  222. package/dist/cli/commands/next.d.ts.map +0 -1
  223. package/dist/cli/commands/next.js +0 -20
  224. package/dist/cli/commands/next.js.map +0 -1
  225. package/dist/cli/commands/nexus.d.ts +0 -16
  226. package/dist/cli/commands/nexus.d.ts.map +0 -1
  227. package/dist/cli/commands/nexus.js +0 -155
  228. package/dist/cli/commands/nexus.js.map +0 -1
  229. package/dist/cli/commands/observe.d.ts +0 -9
  230. package/dist/cli/commands/observe.d.ts.map +0 -1
  231. package/dist/cli/commands/observe.js +0 -39
  232. package/dist/cli/commands/observe.js.map +0 -1
  233. package/dist/cli/commands/ops.d.ts +0 -10
  234. package/dist/cli/commands/ops.d.ts.map +0 -1
  235. package/dist/cli/commands/ops.js +0 -19
  236. package/dist/cli/commands/ops.js.map +0 -1
  237. package/dist/cli/commands/orchestrate.d.ts +0 -8
  238. package/dist/cli/commands/orchestrate.d.ts.map +0 -1
  239. package/dist/cli/commands/orchestrate.js +0 -58
  240. package/dist/cli/commands/orchestrate.js.map +0 -1
  241. package/dist/cli/commands/otel.d.ts +0 -12
  242. package/dist/cli/commands/otel.d.ts.map +0 -1
  243. package/dist/cli/commands/otel.js +0 -128
  244. package/dist/cli/commands/otel.js.map +0 -1
  245. package/dist/cli/commands/phase.d.ts +0 -12
  246. package/dist/cli/commands/phase.d.ts.map +0 -1
  247. package/dist/cli/commands/phase.js +0 -88
  248. package/dist/cli/commands/phase.js.map +0 -1
  249. package/dist/cli/commands/phases.d.ts +0 -12
  250. package/dist/cli/commands/phases.d.ts.map +0 -1
  251. package/dist/cli/commands/phases.js +0 -37
  252. package/dist/cli/commands/phases.js.map +0 -1
  253. package/dist/cli/commands/plan.d.ts +0 -8
  254. package/dist/cli/commands/plan.d.ts.map +0 -1
  255. package/dist/cli/commands/plan.js +0 -15
  256. package/dist/cli/commands/plan.js.map +0 -1
  257. package/dist/cli/commands/promote.d.ts +0 -7
  258. package/dist/cli/commands/promote.d.ts.map +0 -1
  259. package/dist/cli/commands/promote.js +0 -15
  260. package/dist/cli/commands/promote.js.map +0 -1
  261. package/dist/cli/commands/refresh-memory.d.ts +0 -9
  262. package/dist/cli/commands/refresh-memory.d.ts.map +0 -1
  263. package/dist/cli/commands/refresh-memory.js +0 -24
  264. package/dist/cli/commands/refresh-memory.js.map +0 -1
  265. package/dist/cli/commands/relates.d.ts +0 -12
  266. package/dist/cli/commands/relates.d.ts.map +0 -1
  267. package/dist/cli/commands/relates.js +0 -53
  268. package/dist/cli/commands/relates.js.map +0 -1
  269. package/dist/cli/commands/release.d.ts +0 -8
  270. package/dist/cli/commands/release.d.ts.map +0 -1
  271. package/dist/cli/commands/release.js +0 -72
  272. package/dist/cli/commands/release.js.map +0 -1
  273. package/dist/cli/commands/remote.d.ts +0 -12
  274. package/dist/cli/commands/remote.d.ts.map +0 -1
  275. package/dist/cli/commands/remote.js +0 -207
  276. package/dist/cli/commands/remote.js.map +0 -1
  277. package/dist/cli/commands/reorder.d.ts +0 -7
  278. package/dist/cli/commands/reorder.d.ts.map +0 -1
  279. package/dist/cli/commands/reorder.js +0 -20
  280. package/dist/cli/commands/reorder.js.map +0 -1
  281. package/dist/cli/commands/reparent.d.ts +0 -10
  282. package/dist/cli/commands/reparent.d.ts.map +0 -1
  283. package/dist/cli/commands/reparent.js +0 -19
  284. package/dist/cli/commands/reparent.js.map +0 -1
  285. package/dist/cli/commands/research.d.ts +0 -8
  286. package/dist/cli/commands/research.d.ts.map +0 -1
  287. package/dist/cli/commands/research.js +0 -129
  288. package/dist/cli/commands/research.js.map +0 -1
  289. package/dist/cli/commands/restore.d.ts +0 -11
  290. package/dist/cli/commands/restore.d.ts.map +0 -1
  291. package/dist/cli/commands/restore.js +0 -225
  292. package/dist/cli/commands/restore.js.map +0 -1
  293. package/dist/cli/commands/roadmap.d.ts +0 -8
  294. package/dist/cli/commands/roadmap.d.ts.map +0 -1
  295. package/dist/cli/commands/roadmap.js +0 -21
  296. package/dist/cli/commands/roadmap.js.map +0 -1
  297. package/dist/cli/commands/safestop.d.ts +0 -14
  298. package/dist/cli/commands/safestop.d.ts.map +0 -1
  299. package/dist/cli/commands/safestop.js +0 -32
  300. package/dist/cli/commands/safestop.js.map +0 -1
  301. package/dist/cli/commands/self-update.d.ts +0 -15
  302. package/dist/cli/commands/self-update.d.ts.map +0 -1
  303. package/dist/cli/commands/self-update.js +0 -332
  304. package/dist/cli/commands/self-update.js.map +0 -1
  305. package/dist/cli/commands/sequence.d.ts +0 -8
  306. package/dist/cli/commands/sequence.d.ts.map +0 -1
  307. package/dist/cli/commands/sequence.js +0 -30
  308. package/dist/cli/commands/sequence.js.map +0 -1
  309. package/dist/cli/commands/session.d.ts +0 -12
  310. package/dist/cli/commands/session.d.ts.map +0 -1
  311. package/dist/cli/commands/session.js +0 -160
  312. package/dist/cli/commands/session.js.map +0 -1
  313. package/dist/cli/commands/show.d.ts +0 -13
  314. package/dist/cli/commands/show.d.ts.map +0 -1
  315. package/dist/cli/commands/show.js +0 -20
  316. package/dist/cli/commands/show.js.map +0 -1
  317. package/dist/cli/commands/skills.d.ts +0 -13
  318. package/dist/cli/commands/skills.d.ts.map +0 -1
  319. package/dist/cli/commands/skills.js +0 -131
  320. package/dist/cli/commands/skills.js.map +0 -1
  321. package/dist/cli/commands/snapshot.d.ts +0 -9
  322. package/dist/cli/commands/snapshot.d.ts.map +0 -1
  323. package/dist/cli/commands/snapshot.js +0 -50
  324. package/dist/cli/commands/snapshot.js.map +0 -1
  325. package/dist/cli/commands/specification.d.ts +0 -13
  326. package/dist/cli/commands/specification.d.ts.map +0 -1
  327. package/dist/cli/commands/specification.js +0 -45
  328. package/dist/cli/commands/specification.js.map +0 -1
  329. package/dist/cli/commands/start.d.ts +0 -13
  330. package/dist/cli/commands/start.d.ts.map +0 -1
  331. package/dist/cli/commands/start.js +0 -20
  332. package/dist/cli/commands/start.js.map +0 -1
  333. package/dist/cli/commands/stats.d.ts +0 -12
  334. package/dist/cli/commands/stats.d.ts.map +0 -1
  335. package/dist/cli/commands/stats.js +0 -23
  336. package/dist/cli/commands/stats.js.map +0 -1
  337. package/dist/cli/commands/sticky.d.ts +0 -16
  338. package/dist/cli/commands/sticky.d.ts.map +0 -1
  339. package/dist/cli/commands/sticky.js +0 -211
  340. package/dist/cli/commands/sticky.js.map +0 -1
  341. package/dist/cli/commands/stop.d.ts +0 -13
  342. package/dist/cli/commands/stop.d.ts.map +0 -1
  343. package/dist/cli/commands/stop.js +0 -20
  344. package/dist/cli/commands/stop.js.map +0 -1
  345. package/dist/cli/commands/sync.d.ts +0 -13
  346. package/dist/cli/commands/sync.d.ts.map +0 -1
  347. package/dist/cli/commands/sync.js +0 -48
  348. package/dist/cli/commands/sync.js.map +0 -1
  349. package/dist/cli/commands/testing.d.ts +0 -13
  350. package/dist/cli/commands/testing.d.ts.map +0 -1
  351. package/dist/cli/commands/testing.js +0 -64
  352. package/dist/cli/commands/testing.js.map +0 -1
  353. package/dist/cli/commands/token.d.ts +0 -10
  354. package/dist/cli/commands/token.d.ts.map +0 -1
  355. package/dist/cli/commands/token.js +0 -135
  356. package/dist/cli/commands/token.js.map +0 -1
  357. package/dist/cli/commands/update.d.ts +0 -12
  358. package/dist/cli/commands/update.d.ts.map +0 -1
  359. package/dist/cli/commands/update.js +0 -77
  360. package/dist/cli/commands/update.js.map +0 -1
  361. package/dist/cli/commands/upgrade.d.ts +0 -16
  362. package/dist/cli/commands/upgrade.d.ts.map +0 -1
  363. package/dist/cli/commands/upgrade.js +0 -74
  364. package/dist/cli/commands/upgrade.js.map +0 -1
  365. package/dist/cli/commands/validate.d.ts +0 -12
  366. package/dist/cli/commands/validate.d.ts.map +0 -1
  367. package/dist/cli/commands/validate.js +0 -23
  368. package/dist/cli/commands/validate.js.map +0 -1
  369. package/dist/cli/commands/verify.d.ts +0 -8
  370. package/dist/cli/commands/verify.d.ts.map +0 -1
  371. package/dist/cli/commands/verify.js +0 -28
  372. package/dist/cli/commands/verify.js.map +0 -1
  373. package/dist/cli/commands/web.d.ts +0 -13
  374. package/dist/cli/commands/web.d.ts.map +0 -1
  375. package/dist/cli/commands/web.js +0 -264
  376. package/dist/cli/commands/web.js.map +0 -1
  377. package/dist/cli/field-context.d.ts +0 -32
  378. package/dist/cli/field-context.d.ts.map +0 -1
  379. package/dist/cli/field-context.js +0 -47
  380. package/dist/cli/field-context.js.map +0 -1
  381. package/dist/cli/format-context.d.ts +0 -32
  382. package/dist/cli/format-context.d.ts.map +0 -1
  383. package/dist/cli/format-context.js +0 -50
  384. package/dist/cli/format-context.js.map +0 -1
  385. package/dist/cli/index.d.ts +0 -12
  386. package/dist/cli/index.d.ts.map +0 -1
  387. package/dist/cli/logger-bootstrap.d.ts +0 -6
  388. package/dist/cli/logger-bootstrap.d.ts.map +0 -1
  389. package/dist/cli/logger-bootstrap.js +0 -10
  390. package/dist/cli/logger-bootstrap.js.map +0 -1
  391. package/dist/cli/middleware/output-format.d.ts +0 -30
  392. package/dist/cli/middleware/output-format.d.ts.map +0 -1
  393. package/dist/cli/middleware/output-format.js +0 -35
  394. package/dist/cli/middleware/output-format.js.map +0 -1
  395. package/dist/cli/progress.d.ts +0 -84
  396. package/dist/cli/progress.d.ts.map +0 -1
  397. package/dist/cli/progress.js +0 -169
  398. package/dist/cli/progress.js.map +0 -1
  399. package/dist/cli/renderers/colors.d.ts +0 -32
  400. package/dist/cli/renderers/colors.d.ts.map +0 -1
  401. package/dist/cli/renderers/colors.js +0 -141
  402. package/dist/cli/renderers/colors.js.map +0 -1
  403. package/dist/cli/renderers/error.d.ts +0 -13
  404. package/dist/cli/renderers/error.d.ts.map +0 -1
  405. package/dist/cli/renderers/error.js +0 -42
  406. package/dist/cli/renderers/error.js.map +0 -1
  407. package/dist/cli/renderers/index.d.ts +0 -59
  408. package/dist/cli/renderers/index.d.ts.map +0 -1
  409. package/dist/cli/renderers/index.js +0 -184
  410. package/dist/cli/renderers/index.js.map +0 -1
  411. package/dist/cli/renderers/normalizer.d.ts +0 -21
  412. package/dist/cli/renderers/normalizer.d.ts.map +0 -1
  413. package/dist/cli/renderers/normalizer.js +0 -106
  414. package/dist/cli/renderers/normalizer.js.map +0 -1
  415. package/dist/cli/renderers/system.d.ts +0 -25
  416. package/dist/cli/renderers/system.d.ts.map +0 -1
  417. package/dist/cli/renderers/system.js +0 -416
  418. package/dist/cli/renderers/system.js.map +0 -1
  419. package/dist/cli/renderers/tasks.d.ts +0 -28
  420. package/dist/cli/renderers/tasks.d.ts.map +0 -1
  421. package/dist/cli/renderers/tasks.js +0 -308
  422. package/dist/cli/renderers/tasks.js.map +0 -1
  423. package/dist/dispatch/adapters/cli.d.ts +0 -67
  424. package/dist/dispatch/adapters/cli.d.ts.map +0 -1
  425. package/dist/dispatch/adapters/cli.js +0 -205
  426. package/dist/dispatch/adapters/cli.js.map +0 -1
  427. package/dist/dispatch/adapters/mcp.d.ts +0 -37
  428. package/dist/dispatch/adapters/mcp.d.ts.map +0 -1
  429. package/dist/dispatch/adapters/mcp.js +0 -122
  430. package/dist/dispatch/adapters/mcp.js.map +0 -1
  431. package/dist/dispatch/context/session-context.d.ts +0 -54
  432. package/dist/dispatch/context/session-context.d.ts.map +0 -1
  433. package/dist/dispatch/context/session-context.js +0 -61
  434. package/dist/dispatch/context/session-context.js.map +0 -1
  435. package/dist/dispatch/dispatcher.d.ts +0 -23
  436. package/dist/dispatch/dispatcher.d.ts.map +0 -1
  437. package/dist/dispatch/dispatcher.js +0 -84
  438. package/dist/dispatch/dispatcher.js.map +0 -1
  439. package/dist/dispatch/domains/_base.d.ts +0 -59
  440. package/dist/dispatch/domains/_base.d.ts.map +0 -1
  441. package/dist/dispatch/domains/_base.js +0 -77
  442. package/dist/dispatch/domains/_base.js.map +0 -1
  443. package/dist/dispatch/domains/_meta.d.ts +0 -23
  444. package/dist/dispatch/domains/_meta.d.ts.map +0 -1
  445. package/dist/dispatch/domains/_meta.js +0 -25
  446. package/dist/dispatch/domains/_meta.js.map +0 -1
  447. package/dist/dispatch/domains/_routing.d.ts +0 -8
  448. package/dist/dispatch/domains/_routing.d.ts.map +0 -1
  449. package/dist/dispatch/domains/_routing.js +0 -20
  450. package/dist/dispatch/domains/_routing.js.map +0 -1
  451. package/dist/dispatch/domains/admin.d.ts +0 -27
  452. package/dist/dispatch/domains/admin.d.ts.map +0 -1
  453. package/dist/dispatch/domains/admin.js +0 -672
  454. package/dist/dispatch/domains/admin.js.map +0 -1
  455. package/dist/dispatch/domains/check.d.ts +0 -24
  456. package/dist/dispatch/domains/check.d.ts.map +0 -1
  457. package/dist/dispatch/domains/check.js +0 -281
  458. package/dist/dispatch/domains/check.js.map +0 -1
  459. package/dist/dispatch/domains/index.d.ts +0 -26
  460. package/dist/dispatch/domains/index.d.ts.map +0 -1
  461. package/dist/dispatch/domains/index.js +0 -38
  462. package/dist/dispatch/domains/index.js.map +0 -1
  463. package/dist/dispatch/domains/memory.d.ts +0 -24
  464. package/dist/dispatch/domains/memory.d.ts.map +0 -1
  465. package/dist/dispatch/domains/memory.js +0 -305
  466. package/dist/dispatch/domains/memory.js.map +0 -1
  467. package/dist/dispatch/domains/nexus.d.ts +0 -24
  468. package/dist/dispatch/domains/nexus.d.ts.map +0 -1
  469. package/dist/dispatch/domains/nexus.js +0 -252
  470. package/dist/dispatch/domains/nexus.js.map +0 -1
  471. package/dist/dispatch/domains/orchestrate.d.ts +0 -21
  472. package/dist/dispatch/domains/orchestrate.d.ts.map +0 -1
  473. package/dist/dispatch/domains/orchestrate.js +0 -261
  474. package/dist/dispatch/domains/orchestrate.js.map +0 -1
  475. package/dist/dispatch/domains/pipeline.d.ts +0 -36
  476. package/dist/dispatch/domains/pipeline.d.ts.map +0 -1
  477. package/dist/dispatch/domains/pipeline.js +0 -554
  478. package/dist/dispatch/domains/pipeline.js.map +0 -1
  479. package/dist/dispatch/domains/session.d.ts +0 -24
  480. package/dist/dispatch/domains/session.d.ts.map +0 -1
  481. package/dist/dispatch/domains/session.js +0 -257
  482. package/dist/dispatch/domains/session.js.map +0 -1
  483. package/dist/dispatch/domains/sticky.d.ts +0 -22
  484. package/dist/dispatch/domains/sticky.d.ts.map +0 -1
  485. package/dist/dispatch/domains/sticky.js +0 -166
  486. package/dist/dispatch/domains/sticky.js.map +0 -1
  487. package/dist/dispatch/domains/tasks.d.ts +0 -26
  488. package/dist/dispatch/domains/tasks.d.ts.map +0 -1
  489. package/dist/dispatch/domains/tasks.js +0 -352
  490. package/dist/dispatch/domains/tasks.js.map +0 -1
  491. package/dist/dispatch/domains/tools.d.ts +0 -40
  492. package/dist/dispatch/domains/tools.d.ts.map +0 -1
  493. package/dist/dispatch/domains/tools.js +0 -497
  494. package/dist/dispatch/domains/tools.js.map +0 -1
  495. package/dist/dispatch/engines/_error.d.ts +0 -42
  496. package/dist/dispatch/engines/_error.d.ts.map +0 -1
  497. package/dist/dispatch/engines/_error.js +0 -201
  498. package/dist/dispatch/engines/_error.js.map +0 -1
  499. package/dist/dispatch/engines/codebase-map-engine.d.ts +0 -17
  500. package/dist/dispatch/engines/codebase-map-engine.d.ts.map +0 -1
  501. package/dist/dispatch/engines/codebase-map-engine.js +0 -29
  502. package/dist/dispatch/engines/codebase-map-engine.js.map +0 -1
  503. package/dist/dispatch/engines/config-engine.d.ts +0 -21
  504. package/dist/dispatch/engines/config-engine.d.ts.map +0 -1
  505. package/dist/dispatch/engines/config-engine.js +0 -45
  506. package/dist/dispatch/engines/config-engine.js.map +0 -1
  507. package/dist/dispatch/engines/hooks-engine.d.ts +0 -47
  508. package/dist/dispatch/engines/hooks-engine.d.ts.map +0 -1
  509. package/dist/dispatch/engines/hooks-engine.js +0 -57
  510. package/dist/dispatch/engines/hooks-engine.js.map +0 -1
  511. package/dist/dispatch/engines/init-engine.d.ts +0 -43
  512. package/dist/dispatch/engines/init-engine.d.ts.map +0 -1
  513. package/dist/dispatch/engines/init-engine.js +0 -73
  514. package/dist/dispatch/engines/init-engine.js.map +0 -1
  515. package/dist/dispatch/engines/lifecycle-engine.d.ts +0 -66
  516. package/dist/dispatch/engines/lifecycle-engine.d.ts.map +0 -1
  517. package/dist/dispatch/engines/lifecycle-engine.js +0 -213
  518. package/dist/dispatch/engines/lifecycle-engine.js.map +0 -1
  519. package/dist/dispatch/engines/memory-engine.d.ts +0 -10
  520. package/dist/dispatch/engines/memory-engine.d.ts.map +0 -1
  521. package/dist/dispatch/engines/memory-engine.js +0 -10
  522. package/dist/dispatch/engines/memory-engine.js.map +0 -1
  523. package/dist/dispatch/engines/nexus-engine.d.ts +0 -159
  524. package/dist/dispatch/engines/nexus-engine.d.ts.map +0 -1
  525. package/dist/dispatch/engines/nexus-engine.js +0 -329
  526. package/dist/dispatch/engines/nexus-engine.js.map +0 -1
  527. package/dist/dispatch/engines/orchestrate-engine.d.ts +0 -133
  528. package/dist/dispatch/engines/orchestrate-engine.d.ts.map +0 -1
  529. package/dist/dispatch/engines/orchestrate-engine.js +0 -770
  530. package/dist/dispatch/engines/orchestrate-engine.js.map +0 -1
  531. package/dist/dispatch/engines/pipeline-engine.d.ts +0 -51
  532. package/dist/dispatch/engines/pipeline-engine.d.ts.map +0 -1
  533. package/dist/dispatch/engines/pipeline-engine.js +0 -192
  534. package/dist/dispatch/engines/pipeline-engine.js.map +0 -1
  535. package/dist/dispatch/engines/release-engine.d.ts +0 -94
  536. package/dist/dispatch/engines/release-engine.d.ts.map +0 -1
  537. package/dist/dispatch/engines/release-engine.js +0 -670
  538. package/dist/dispatch/engines/release-engine.js.map +0 -1
  539. package/dist/dispatch/engines/session-engine.d.ts +0 -326
  540. package/dist/dispatch/engines/session-engine.d.ts.map +0 -1
  541. package/dist/dispatch/engines/session-engine.js +0 -869
  542. package/dist/dispatch/engines/session-engine.js.map +0 -1
  543. package/dist/dispatch/engines/sticky-engine.d.ts +0 -100
  544. package/dist/dispatch/engines/sticky-engine.d.ts.map +0 -1
  545. package/dist/dispatch/engines/sticky-engine.js +0 -181
  546. package/dist/dispatch/engines/sticky-engine.js.map +0 -1
  547. package/dist/dispatch/engines/system-engine.d.ts +0 -377
  548. package/dist/dispatch/engines/system-engine.d.ts.map +0 -1
  549. package/dist/dispatch/engines/system-engine.js +0 -980
  550. package/dist/dispatch/engines/system-engine.js.map +0 -1
  551. package/dist/dispatch/engines/task-engine.d.ts +0 -584
  552. package/dist/dispatch/engines/task-engine.d.ts.map +0 -1
  553. package/dist/dispatch/engines/task-engine.js +0 -881
  554. package/dist/dispatch/engines/task-engine.js.map +0 -1
  555. package/dist/dispatch/engines/template-parser.d.ts +0 -34
  556. package/dist/dispatch/engines/template-parser.d.ts.map +0 -1
  557. package/dist/dispatch/engines/template-parser.js +0 -57
  558. package/dist/dispatch/engines/template-parser.js.map +0 -1
  559. package/dist/dispatch/engines/tools-engine.d.ts +0 -285
  560. package/dist/dispatch/engines/tools-engine.d.ts.map +0 -1
  561. package/dist/dispatch/engines/tools-engine.js +0 -676
  562. package/dist/dispatch/engines/tools-engine.js.map +0 -1
  563. package/dist/dispatch/engines/validate-engine.d.ts +0 -154
  564. package/dist/dispatch/engines/validate-engine.d.ts.map +0 -1
  565. package/dist/dispatch/engines/validate-engine.js +0 -527
  566. package/dist/dispatch/engines/validate-engine.js.map +0 -1
  567. package/dist/dispatch/index.d.ts +0 -20
  568. package/dist/dispatch/index.d.ts.map +0 -1
  569. package/dist/dispatch/index.js +0 -19
  570. package/dist/dispatch/index.js.map +0 -1
  571. package/dist/dispatch/lib/capability-matrix.d.ts +0 -11
  572. package/dist/dispatch/lib/capability-matrix.d.ts.map +0 -1
  573. package/dist/dispatch/lib/capability-matrix.js +0 -10
  574. package/dist/dispatch/lib/capability-matrix.js.map +0 -1
  575. package/dist/dispatch/lib/config.d.ts +0 -16
  576. package/dist/dispatch/lib/config.d.ts.map +0 -1
  577. package/dist/dispatch/lib/config.js +0 -15
  578. package/dist/dispatch/lib/config.js.map +0 -1
  579. package/dist/dispatch/lib/engine.d.ts +0 -25
  580. package/dist/dispatch/lib/engine.d.ts.map +0 -1
  581. package/dist/dispatch/lib/engine.js +0 -44
  582. package/dist/dispatch/lib/engine.js.map +0 -1
  583. package/dist/dispatch/lib/meta.d.ts +0 -26
  584. package/dist/dispatch/lib/meta.d.ts.map +0 -1
  585. package/dist/dispatch/lib/meta.js +0 -37
  586. package/dist/dispatch/lib/meta.js.map +0 -1
  587. package/dist/dispatch/lib/param-utils.d.ts +0 -11
  588. package/dist/dispatch/lib/param-utils.d.ts.map +0 -1
  589. package/dist/dispatch/lib/param-utils.js +0 -10
  590. package/dist/dispatch/lib/param-utils.js.map +0 -1
  591. package/dist/dispatch/lib/projections.d.ts +0 -23
  592. package/dist/dispatch/lib/projections.d.ts.map +0 -1
  593. package/dist/dispatch/lib/projections.js +0 -48
  594. package/dist/dispatch/lib/projections.js.map +0 -1
  595. package/dist/dispatch/lib/schema-utils.d.ts +0 -42
  596. package/dist/dispatch/lib/schema-utils.d.ts.map +0 -1
  597. package/dist/dispatch/lib/schema-utils.js +0 -93
  598. package/dist/dispatch/lib/schema-utils.js.map +0 -1
  599. package/dist/dispatch/lib/security.d.ts +0 -12
  600. package/dist/dispatch/lib/security.d.ts.map +0 -1
  601. package/dist/dispatch/lib/security.js +0 -10
  602. package/dist/dispatch/lib/security.js.map +0 -1
  603. package/dist/dispatch/middleware/audit.d.ts +0 -23
  604. package/dist/dispatch/middleware/audit.d.ts.map +0 -1
  605. package/dist/dispatch/middleware/audit.js +0 -169
  606. package/dist/dispatch/middleware/audit.js.map +0 -1
  607. package/dist/dispatch/middleware/field-filter.d.ts +0 -24
  608. package/dist/dispatch/middleware/field-filter.d.ts.map +0 -1
  609. package/dist/dispatch/middleware/field-filter.js +0 -65
  610. package/dist/dispatch/middleware/field-filter.js.map +0 -1
  611. package/dist/dispatch/middleware/pipeline.d.ts +0 -20
  612. package/dist/dispatch/middleware/pipeline.d.ts.map +0 -1
  613. package/dist/dispatch/middleware/pipeline.js +0 -47
  614. package/dist/dispatch/middleware/pipeline.js.map +0 -1
  615. package/dist/dispatch/middleware/projection.d.ts +0 -35
  616. package/dist/dispatch/middleware/projection.d.ts.map +0 -1
  617. package/dist/dispatch/middleware/projection.js +0 -145
  618. package/dist/dispatch/middleware/projection.js.map +0 -1
  619. package/dist/dispatch/middleware/protocol-enforcement.d.ts +0 -12
  620. package/dist/dispatch/middleware/protocol-enforcement.d.ts.map +0 -1
  621. package/dist/dispatch/middleware/protocol-enforcement.js +0 -30
  622. package/dist/dispatch/middleware/protocol-enforcement.js.map +0 -1
  623. package/dist/dispatch/middleware/rate-limiter.d.ts +0 -30
  624. package/dist/dispatch/middleware/rate-limiter.d.ts.map +0 -1
  625. package/dist/dispatch/middleware/rate-limiter.js +0 -101
  626. package/dist/dispatch/middleware/rate-limiter.js.map +0 -1
  627. package/dist/dispatch/middleware/sanitizer.d.ts +0 -10
  628. package/dist/dispatch/middleware/sanitizer.d.ts.map +0 -1
  629. package/dist/dispatch/middleware/sanitizer.js +0 -42
  630. package/dist/dispatch/middleware/sanitizer.js.map +0 -1
  631. package/dist/dispatch/middleware/session-resolver.d.ts +0 -26
  632. package/dist/dispatch/middleware/session-resolver.d.ts.map +0 -1
  633. package/dist/dispatch/middleware/session-resolver.js +0 -65
  634. package/dist/dispatch/middleware/session-resolver.js.map +0 -1
  635. package/dist/dispatch/middleware/verification-gates.d.ts +0 -3
  636. package/dist/dispatch/middleware/verification-gates.d.ts.map +0 -1
  637. package/dist/dispatch/middleware/verification-gates.js +0 -40
  638. package/dist/dispatch/middleware/verification-gates.js.map +0 -1
  639. package/dist/dispatch/registry.d.ts +0 -91
  640. package/dist/dispatch/registry.d.ts.map +0 -1
  641. package/dist/dispatch/registry.js +0 -2693
  642. package/dist/dispatch/registry.js.map +0 -1
  643. package/dist/dispatch/types.d.ts +0 -218
  644. package/dist/dispatch/types.d.ts.map +0 -1
  645. package/dist/dispatch/types.js +0 -25
  646. package/dist/dispatch/types.js.map +0 -1
  647. package/dist/mcp/gateways/mutate.d.ts +0 -146
  648. package/dist/mcp/gateways/mutate.d.ts.map +0 -1
  649. package/dist/mcp/gateways/mutate.js +0 -1016
  650. package/dist/mcp/gateways/mutate.js.map +0 -1
  651. package/dist/mcp/gateways/query.d.ts +0 -138
  652. package/dist/mcp/gateways/query.d.ts.map +0 -1
  653. package/dist/mcp/gateways/query.js +0 -186
  654. package/dist/mcp/gateways/query.js.map +0 -1
  655. package/dist/mcp/index.d.ts +0 -16
  656. package/dist/mcp/index.d.ts.map +0 -1
  657. package/dist/mcp/lib/background-jobs.d.ts +0 -86
  658. package/dist/mcp/lib/background-jobs.d.ts.map +0 -1
  659. package/dist/mcp/lib/background-jobs.js +0 -183
  660. package/dist/mcp/lib/background-jobs.js.map +0 -1
  661. package/dist/mcp/lib/budget.d.ts +0 -35
  662. package/dist/mcp/lib/budget.d.ts.map +0 -1
  663. package/dist/mcp/lib/budget.js +0 -102
  664. package/dist/mcp/lib/budget.js.map +0 -1
  665. package/dist/mcp/lib/cache.d.ts +0 -78
  666. package/dist/mcp/lib/cache.d.ts.map +0 -1
  667. package/dist/mcp/lib/cache.js +0 -207
  668. package/dist/mcp/lib/cache.js.map +0 -1
  669. package/dist/mcp/lib/config.d.ts +0 -42
  670. package/dist/mcp/lib/config.d.ts.map +0 -1
  671. package/dist/mcp/lib/config.js +0 -241
  672. package/dist/mcp/lib/config.js.map +0 -1
  673. package/dist/mcp/lib/defaults.d.ts +0 -115
  674. package/dist/mcp/lib/defaults.d.ts.map +0 -1
  675. package/dist/mcp/lib/defaults.js +0 -61
  676. package/dist/mcp/lib/defaults.js.map +0 -1
  677. package/dist/mcp/lib/exit-codes.d.ts +0 -197
  678. package/dist/mcp/lib/exit-codes.d.ts.map +0 -1
  679. package/dist/mcp/lib/exit-codes.js +0 -1016
  680. package/dist/mcp/lib/exit-codes.js.map +0 -1
  681. package/dist/mcp/lib/gate-validators.d.ts +0 -13
  682. package/dist/mcp/lib/gate-validators.d.ts.map +0 -1
  683. package/dist/mcp/lib/gate-validators.js +0 -13
  684. package/dist/mcp/lib/gate-validators.js.map +0 -1
  685. package/dist/mcp/lib/gateway-meta.d.ts +0 -37
  686. package/dist/mcp/lib/gateway-meta.d.ts.map +0 -1
  687. package/dist/mcp/lib/gateway-meta.js +0 -50
  688. package/dist/mcp/lib/gateway-meta.js.map +0 -1
  689. package/dist/mcp/lib/job-manager-accessor.d.ts +0 -10
  690. package/dist/mcp/lib/job-manager-accessor.d.ts.map +0 -1
  691. package/dist/mcp/lib/job-manager-accessor.js +0 -14
  692. package/dist/mcp/lib/job-manager-accessor.js.map +0 -1
  693. package/dist/mcp/lib/protocol-enforcement.d.ts +0 -12
  694. package/dist/mcp/lib/protocol-enforcement.d.ts.map +0 -1
  695. package/dist/mcp/lib/protocol-enforcement.js +0 -12
  696. package/dist/mcp/lib/protocol-enforcement.js.map +0 -1
  697. package/dist/mcp/lib/protocol-rules.d.ts +0 -12
  698. package/dist/mcp/lib/protocol-rules.d.ts.map +0 -1
  699. package/dist/mcp/lib/protocol-rules.js +0 -12
  700. package/dist/mcp/lib/protocol-rules.js.map +0 -1
  701. package/dist/mcp/lib/rate-limiter.d.ts +0 -110
  702. package/dist/mcp/lib/rate-limiter.d.ts.map +0 -1
  703. package/dist/mcp/lib/rate-limiter.js +0 -208
  704. package/dist/mcp/lib/rate-limiter.js.map +0 -1
  705. package/dist/mcp/lib/router.d.ts +0 -58
  706. package/dist/mcp/lib/router.d.ts.map +0 -1
  707. package/dist/mcp/lib/router.js +0 -12
  708. package/dist/mcp/lib/router.js.map +0 -1
  709. package/dist/mcp/lib/security.d.ts +0 -161
  710. package/dist/mcp/lib/security.d.ts.map +0 -1
  711. package/dist/mcp/lib/security.js +0 -361
  712. package/dist/mcp/lib/security.js.map +0 -1
  713. package/dist/mcp/lib/verification-gates.d.ts +0 -13
  714. package/dist/mcp/lib/verification-gates.d.ts.map +0 -1
  715. package/dist/mcp/lib/verification-gates.js +0 -12
  716. package/dist/mcp/lib/verification-gates.js.map +0 -1
  717. package/dist/mcp/resources/budget.d.ts +0 -22
  718. package/dist/mcp/resources/budget.d.ts.map +0 -1
  719. package/dist/mcp/resources/budget.js +0 -46
  720. package/dist/mcp/resources/budget.js.map +0 -1
  721. package/dist/mcp/resources/index.d.ts +0 -53
  722. package/dist/mcp/resources/index.d.ts.map +0 -1
  723. package/dist/mcp/resources/index.js +0 -278
  724. package/dist/mcp/resources/index.js.map +0 -1
@@ -1,670 +0,0 @@
1
- /**
2
- * Release Engine
3
- *
4
- * Thin wrapper around core release manifest operations.
5
- * Business logic lives in src/core/release/release-manifest.ts.
6
- *
7
- * Note: Some operations (push, rollback) inherently require git CLI.
8
- * Those are handled as hybrid operations - native for data, CLI for git.
9
- *
10
- * @task T4788
11
- */
12
- import { execFileSync } from 'node:child_process';
13
- import { readFileSync } from 'node:fs';
14
- import { buildPRBody, bumpVersionFromConfig, cancelRelease, channelToDistTag, checkDoubleListing, checkEpicCompleteness, commitRelease, createPullRequest, generateReleaseChangelog, getGitFlowConfig, getPushMode, getVersionBumpConfig, isGhCliAvailable, listManifestReleases, loadReleaseConfig, markReleasePushed, prepareRelease, pushRelease, resolveChannelFromBranch, resolveProjectRoot, rollbackRelease, runReleaseGates, showManifestRelease, tagRelease, } from '@cleocode/core/internal';
15
- import { getAccessor } from '@cleocode/core/internal';
16
- import { engineError } from './_error.js';
17
- /**
18
- * Detect whether the current execution context is an AI agent.
19
- * Checks for CLEO_SESSION_ID or CLAUDE_AGENT_TYPE environment variables.
20
- * @task T4279
21
- */
22
- function isAgentContext() {
23
- return !!(process.env['CLEO_SESSION_ID'] || process.env['CLAUDE_AGENT_TYPE']);
24
- }
25
- /**
26
- * Verify that a release manifest entry exists for the given version.
27
- * Used as a protocol guard to ensure agents go through the proper
28
- * release.ship workflow rather than calling release.push directly.
29
- * @task T4279
30
- */
31
- async function hasManifestEntry(version, projectRoot) {
32
- try {
33
- await showManifestRelease(version, projectRoot);
34
- return true;
35
- }
36
- catch {
37
- return false;
38
- }
39
- }
40
- /**
41
- * Load tasks via DataAccessor (SQLite).
42
- */
43
- async function loadTasks(projectRoot) {
44
- const root = projectRoot ?? resolveProjectRoot();
45
- try {
46
- const accessor = await getAccessor(root);
47
- const result = await accessor.queryTasks({});
48
- return result?.tasks ?? [];
49
- }
50
- catch (error) {
51
- throw new Error(`Failed to load task data: ${error.message}`);
52
- }
53
- }
54
- /**
55
- * release.prepare - Prepare a release
56
- * @task T4788
57
- */
58
- export async function releasePrepare(version, tasks, notes, projectRoot) {
59
- try {
60
- const data = await prepareRelease(version, tasks, notes, () => loadTasks(projectRoot), projectRoot);
61
- return { success: true, data };
62
- }
63
- catch (err) {
64
- const message = err.message;
65
- let code = 'E_RELEASE_PREPARE_FAILED';
66
- if (message.includes('required'))
67
- code = 'E_INVALID_INPUT';
68
- else if (message.includes('Invalid version'))
69
- code = 'E_INVALID_VERSION';
70
- else if (message.includes('already exists'))
71
- code = 'E_VERSION_EXISTS';
72
- return engineError(code, message);
73
- }
74
- }
75
- /**
76
- * release.changelog - Generate changelog
77
- * @task T4788
78
- */
79
- export async function releaseChangelog(version, projectRoot) {
80
- try {
81
- const data = await generateReleaseChangelog(version, () => loadTasks(projectRoot), projectRoot);
82
- return { success: true, data };
83
- }
84
- catch (err) {
85
- const message = err.message;
86
- let code = 'E_CHANGELOG_FAILED';
87
- if (message.includes('required'))
88
- code = 'E_INVALID_INPUT';
89
- else if (message.includes('not found'))
90
- code = 'E_NOT_FOUND';
91
- return engineError(code, message);
92
- }
93
- }
94
- /**
95
- * release.list - List all releases (query operation via data read)
96
- * @task T4788
97
- */
98
- export async function releaseList(optionsOrProjectRoot, projectRoot) {
99
- try {
100
- const options = typeof optionsOrProjectRoot === 'string' || optionsOrProjectRoot === undefined
101
- ? {}
102
- : optionsOrProjectRoot;
103
- const effectiveProjectRoot = typeof optionsOrProjectRoot === 'string' ? optionsOrProjectRoot : projectRoot;
104
- const data = await listManifestReleases(options, effectiveProjectRoot);
105
- return {
106
- success: true,
107
- data: {
108
- releases: data.releases,
109
- total: data.total,
110
- filtered: data.filtered,
111
- latest: data.latest,
112
- },
113
- page: data.page,
114
- };
115
- }
116
- catch (err) {
117
- return engineError('E_LIST_FAILED', err.message);
118
- }
119
- }
120
- /**
121
- * release.show - Show release details (query operation via data read)
122
- * @task T4788
123
- */
124
- export async function releaseShow(version, projectRoot) {
125
- try {
126
- const data = await showManifestRelease(version, projectRoot);
127
- return { success: true, data };
128
- }
129
- catch (err) {
130
- const message = err.message;
131
- const code = message.includes('not found') ? 'E_NOT_FOUND' : 'E_SHOW_FAILED';
132
- return engineError(code, message);
133
- }
134
- }
135
- /**
136
- * release.commit - Mark release as committed (metadata only)
137
- * @task T4788
138
- */
139
- export async function releaseCommit(version, projectRoot) {
140
- try {
141
- const data = await commitRelease(version, projectRoot);
142
- return { success: true, data };
143
- }
144
- catch (err) {
145
- const message = err.message;
146
- let code = 'E_COMMIT_FAILED';
147
- if (message.includes('not found'))
148
- code = 'E_NOT_FOUND';
149
- else if (message.includes('expected'))
150
- code = 'E_INVALID_STATE';
151
- return engineError(code, message);
152
- }
153
- }
154
- /**
155
- * release.tag - Mark release as tagged (metadata only)
156
- * @task T4788
157
- */
158
- export async function releaseTag(version, projectRoot) {
159
- try {
160
- const data = await tagRelease(version, projectRoot);
161
- return { success: true, data };
162
- }
163
- catch (err) {
164
- const message = err.message;
165
- const code = message.includes('not found') ? 'E_NOT_FOUND' : 'E_TAG_FAILED';
166
- return engineError(code, message);
167
- }
168
- }
169
- /**
170
- * release.gates.run - Run release gates (validation checks)
171
- * @task T4788
172
- */
173
- export async function releaseGatesRun(version, projectRoot) {
174
- try {
175
- const data = await runReleaseGates(version, () => loadTasks(projectRoot), projectRoot);
176
- return { success: true, data };
177
- }
178
- catch (err) {
179
- const message = err.message;
180
- const code = message.includes('not found') ? 'E_NOT_FOUND' : 'E_GATES_FAILED';
181
- return engineError(code, message);
182
- }
183
- }
184
- /**
185
- * release.rollback - Rollback a release
186
- * @task T4788
187
- */
188
- export async function releaseRollback(version, reason, projectRoot) {
189
- try {
190
- const data = await rollbackRelease(version, reason, projectRoot);
191
- return { success: true, data };
192
- }
193
- catch (err) {
194
- const message = err.message;
195
- const code = message.includes('not found') ? 'E_NOT_FOUND' : 'E_ROLLBACK_FAILED';
196
- return engineError(code, message);
197
- }
198
- }
199
- /**
200
- * release.cancel - Cancel and remove a release in draft or prepared state
201
- * @task T5602
202
- */
203
- export async function releaseCancel(version, projectRoot) {
204
- if (!version) {
205
- return engineError('E_INVALID_INPUT', 'version is required');
206
- }
207
- try {
208
- const result = await cancelRelease(version, projectRoot);
209
- if (!result.success) {
210
- const code = result.message.includes('not found') ? 'E_NOT_FOUND' : 'E_INVALID_STATE';
211
- return engineError(code, result.message);
212
- }
213
- return { success: true, data: result };
214
- }
215
- catch (err) {
216
- const message = err.message;
217
- const code = message.includes('not found') ? 'E_NOT_FOUND' : 'E_CANCEL_FAILED';
218
- return engineError(code, message);
219
- }
220
- }
221
- /**
222
- * release.push - Push release to remote via git
223
- * Uses execFileSync (no shell) for safety.
224
- * Respects config.release.push policy.
225
- *
226
- * Agent protocol guard (T4279): When running in agent context
227
- * (detected via CLEO_SESSION_ID or CLAUDE_AGENT_TYPE env vars),
228
- * requires a release manifest entry for the version. This ensures
229
- * agents go through the proper release.ship workflow rather than
230
- * calling release.push directly, maintaining provenance tracking.
231
- *
232
- * @task T4788
233
- * @task T4276
234
- * @task T4279
235
- */
236
- export async function releasePush(version, remote, projectRoot, opts) {
237
- // Agent protocol guard: require manifest entry when in agent context
238
- if (isAgentContext()) {
239
- const hasEntry = await hasManifestEntry(version, projectRoot);
240
- if (!hasEntry) {
241
- return engineError('E_PROTOCOL_RELEASE', `Agent protocol violation: no release manifest entry for '${version}'. ` +
242
- 'Use the full release.ship workflow to ensure provenance tracking. ' +
243
- 'Direct release.push is not allowed in agent context without a manifest entry.', {
244
- fix: `ct release ship ${version} --epic T####`,
245
- alternatives: [
246
- {
247
- action: 'Use full ship workflow',
248
- command: `ct release ship ${version} --epic T####`,
249
- },
250
- ],
251
- });
252
- }
253
- }
254
- try {
255
- const result = await pushRelease(version, remote, projectRoot, opts);
256
- // Capture commit SHA for provenance and update the manifest
257
- let commitSha;
258
- try {
259
- commitSha = execFileSync('git', ['rev-parse', 'HEAD'], {
260
- cwd: projectRoot ?? process.cwd(),
261
- encoding: 'utf-8',
262
- stdio: 'pipe',
263
- })
264
- .toString()
265
- .trim();
266
- }
267
- catch {
268
- // Non-fatal: provenance capture is best-effort
269
- }
270
- const gitTag = `v${result.version.replace(/^v/, '')}`;
271
- await markReleasePushed(result.version, result.pushedAt, projectRoot, { commitSha, gitTag });
272
- return { success: true, data: result };
273
- }
274
- catch (err) {
275
- const execError = err;
276
- const message = (execError.stderr ?? execError.message ?? '').slice(0, 500);
277
- // Distinguish config policy errors from git errors
278
- if (execError.message?.includes('disabled by config') ||
279
- execError.message?.includes('not in allowed branches') ||
280
- execError.message?.includes('not clean')) {
281
- return engineError('E_VALIDATION', message);
282
- }
283
- return engineError('E_GENERAL', `Git push failed: ${message}`, {
284
- details: { exitCode: execError.status },
285
- });
286
- }
287
- }
288
- /**
289
- * release.ship - Composite release operation
290
- *
291
- * Sequence: validate gates → epic completeness → double-listing check →
292
- * write CHANGELOG → git commit/tag/push (or PR) → record provenance
293
- *
294
- * @task T5582
295
- * @task T5586
296
- * @epic T5576
297
- */
298
- export async function releaseShip(params, projectRoot) {
299
- const { version, epicId, remote, dryRun = false, bump = true } = params;
300
- if (!version) {
301
- return engineError('E_INVALID_INPUT', 'version is required');
302
- }
303
- if (!epicId) {
304
- return engineError('E_INVALID_INPUT', 'epicId is required');
305
- }
306
- const cwd = projectRoot ?? resolveProjectRoot();
307
- /** Collected step log messages, included in every return value for MCP visibility. */
308
- const steps = [];
309
- /** Emit a step line for each release stage. Pushes to steps[] and console.log for CLI. */
310
- const logStep = (n, total, label, done, error) => {
311
- let msg;
312
- if (done === undefined) {
313
- msg = `[Step ${n}/${total}] ${label}...`;
314
- }
315
- else if (done) {
316
- msg = ` ✓ ${label}`;
317
- }
318
- else {
319
- msg = ` ✗ ${label}: ${error ?? 'failed'}`;
320
- }
321
- steps.push(msg);
322
- console.log(msg);
323
- };
324
- const bumpTargets = getVersionBumpConfig(cwd);
325
- const shouldBump = bump && bumpTargets.length > 0;
326
- try {
327
- // Step 0: Bump version files (if configured and bump not disabled)
328
- if (shouldBump) {
329
- logStep(0, 8, 'Bump version files');
330
- if (!dryRun) {
331
- const bumpResults = bumpVersionFromConfig(version, { dryRun: false }, cwd);
332
- if (!bumpResults.allSuccess) {
333
- const failed = bumpResults.results.filter((r) => !r.success).map((r) => r.file);
334
- steps.push(` ! Version bump partial: failed for ${failed.join(', ')}`);
335
- }
336
- else {
337
- logStep(0, 8, 'Bump version files', true);
338
- }
339
- }
340
- else {
341
- logStep(0, 8, 'Bump version files', true);
342
- }
343
- }
344
- // Step 0.5: Ensure release record exists (auto-prepare if needed)
345
- // Since T5615 removed release.add/plan, ship must be self-contained
346
- try {
347
- await showManifestRelease(version, cwd);
348
- }
349
- catch {
350
- // Release record doesn't exist yet — create it
351
- logStep(0, 8, 'Auto-prepare release record');
352
- if (!dryRun) {
353
- await prepareRelease(version, undefined, `Auto-prepared by release.ship (${epicId})`, () => loadTasks(projectRoot), cwd);
354
- // Set epicId on the newly created record (prepareRelease doesn't accept it)
355
- const { getDb } = await import('@cleocode/core/internal');
356
- const { releaseManifests } = await import('@cleocode/core/internal');
357
- const { eq } = await import('drizzle-orm');
358
- const normalizedVer = version.startsWith('v') ? version : `v${version}`;
359
- const db = await getDb(cwd);
360
- await db
361
- .update(releaseManifests)
362
- .set({ epicId })
363
- .where(eq(releaseManifests.version, normalizedVer))
364
- .run();
365
- // Pre-generate changelog so has_changelog gate passes
366
- await generateReleaseChangelog(version, () => loadTasks(projectRoot), cwd);
367
- }
368
- logStep(0, 8, 'Auto-prepare release record', true);
369
- }
370
- // Step 1: Run release gates
371
- logStep(1, 8, 'Validate release gates');
372
- const gatesResult = await runReleaseGates(version, () => loadTasks(projectRoot), projectRoot, {
373
- dryRun,
374
- });
375
- if (gatesResult && !gatesResult.allPassed) {
376
- const failedGates = gatesResult.gates.filter((g) => g.status === 'failed');
377
- logStep(1, 8, 'Validate release gates', false, failedGates.map((g) => g.name).join(', '));
378
- return engineError('E_LIFECYCLE_GATE_FAILED', `Release gates failed for ${version}: ${failedGates.map((g) => g.name).join(', ')}`, {
379
- details: { gates: gatesResult.gates, failedCount: gatesResult.failedCount },
380
- });
381
- }
382
- logStep(1, 8, 'Validate release gates', true);
383
- // Resolve release channel from current branch (after gates, which read the branch)
384
- let resolvedChannel = 'latest';
385
- let currentBranchForPR = 'HEAD';
386
- try {
387
- const branchName = execFileSync('git', ['rev-parse', '--abbrev-ref', 'HEAD'], {
388
- cwd,
389
- encoding: 'utf-8',
390
- stdio: 'pipe',
391
- }).trim();
392
- currentBranchForPR = branchName;
393
- const channelEnum = resolveChannelFromBranch(branchName);
394
- resolvedChannel = channelToDistTag(channelEnum);
395
- }
396
- catch {
397
- // git unavailable — keep default
398
- }
399
- // Prefer metadata from gates result if available (B4 populates this)
400
- const gateMetadata = gatesResult.metadata;
401
- const requiresPRFromGates = gateMetadata?.requiresPR ?? false;
402
- const targetBranchFromGates = gateMetadata?.targetBranch;
403
- if (gateMetadata?.currentBranch) {
404
- currentBranchForPR = gateMetadata.currentBranch;
405
- }
406
- // Step 2: Check epic completeness — load release tasks from manifest
407
- logStep(2, 8, 'Check epic completeness');
408
- let releaseTaskIds = [];
409
- try {
410
- const manifest = await showManifestRelease(version, projectRoot);
411
- releaseTaskIds = manifest.tasks ?? [];
412
- }
413
- catch {
414
- // Manifest may not exist yet if prepare hasn't been called; proceed
415
- }
416
- const epicAccessor = await getAccessor(cwd);
417
- const epicCheck = await checkEpicCompleteness(releaseTaskIds, projectRoot, epicAccessor);
418
- if (epicCheck.hasIncomplete) {
419
- const incomplete = epicCheck.epics
420
- .filter((e) => e.missingChildren.length > 0)
421
- .map((e) => `${e.epicId}: missing ${e.missingChildren.map((c) => c.id).join(', ')}`)
422
- .join('; ');
423
- logStep(2, 8, 'Check epic completeness', false, incomplete);
424
- return engineError('E_LIFECYCLE_GATE_FAILED', `Epic completeness check failed: ${incomplete}`, {
425
- details: { epics: epicCheck.epics },
426
- });
427
- }
428
- logStep(2, 8, 'Check epic completeness', true);
429
- // Step 3: Check for double-listing
430
- logStep(3, 8, 'Check task double-listing');
431
- const allReleases = await listManifestReleases(projectRoot);
432
- const existingReleases = (allReleases.releases ?? []).filter((r) => r.version !== version);
433
- const doubleCheck = checkDoubleListing(releaseTaskIds, existingReleases.map((r) => ({ version: r.version, tasks: r.tasks ?? [] })));
434
- if (doubleCheck.hasDoubleListing) {
435
- const dupes = doubleCheck.duplicates
436
- .map((d) => `${d.taskId} (in ${d.releases.join(', ')})`)
437
- .join('; ');
438
- logStep(3, 8, 'Check task double-listing', false, dupes);
439
- return engineError('E_VALIDATION', `Double-listing detected: ${dupes}`, {
440
- details: { duplicates: doubleCheck.duplicates },
441
- });
442
- }
443
- logStep(3, 8, 'Check task double-listing', true);
444
- // Resolve push mode for dry-run and PR logic
445
- const loadedConfig = loadReleaseConfig(cwd);
446
- const pushMode = getPushMode(loadedConfig);
447
- const gitflowCfg = getGitFlowConfig(loadedConfig);
448
- const targetBranch = targetBranchFromGates ?? gitflowCfg.branches.main;
449
- if (dryRun) {
450
- // Step 4 (dry-run): Preview CHANGELOG generation without writing to disk
451
- logStep(4, 8, 'Generate CHANGELOG');
452
- logStep(4, 8, 'Generate CHANGELOG', true);
453
- const wouldCreatePR = requiresPRFromGates || pushMode === 'pr';
454
- const filesToStagePreview = [
455
- 'CHANGELOG.md',
456
- ...(shouldBump ? bumpTargets.map((t) => t.file) : []),
457
- ];
458
- const wouldDo = [];
459
- if (shouldBump) {
460
- wouldDo.push(`bump version files: ${bumpTargets.map((t) => t.file).join(', ')} → ${version}`);
461
- }
462
- wouldDo.push(`write CHANGELOG.md: ## [${version}] - ${new Date().toISOString().split('T')[0]} (preview only, not written in dry-run)`, `git add ${filesToStagePreview.join(' ')}`, `git commit -m "release: ship v${version} (${epicId})"`, `git tag -a v${version} -m "Release v${version}"`);
463
- const dryRunOutput = {
464
- version,
465
- epicId,
466
- dryRun: true,
467
- channel: resolvedChannel,
468
- pushMode,
469
- wouldDo,
470
- };
471
- if (wouldCreatePR) {
472
- const ghAvailable = isGhCliAvailable();
473
- dryRunOutput['wouldDo'].push(ghAvailable
474
- ? `gh pr create --base ${targetBranch} --head ${currentBranchForPR} --title "release: ship v${version}"`
475
- : `manual PR: ${currentBranchForPR} → ${targetBranch} (gh CLI not available)`);
476
- dryRunOutput['wouldCreatePR'] = true;
477
- dryRunOutput['prTitle'] = `release: ship v${version}`;
478
- dryRunOutput['prTargetBranch'] = targetBranch;
479
- }
480
- else {
481
- dryRunOutput['wouldDo'].push(`git push ${remote ?? 'origin'} --follow-tags`);
482
- dryRunOutput['wouldCreatePR'] = false;
483
- }
484
- dryRunOutput['wouldDo'].push('markReleasePushed(...)');
485
- return { success: true, data: { ...dryRunOutput, steps } };
486
- }
487
- // Step 4: Write CHANGELOG section (non-dry-run only)
488
- logStep(4, 8, 'Generate CHANGELOG');
489
- await generateReleaseChangelog(version, () => loadTasks(projectRoot), projectRoot);
490
- const changelogPath = `${cwd}/CHANGELOG.md`;
491
- // Verify CHANGELOG.md actually contains ## [VERSION] — CI will reject without it
492
- const cleanVersion = version.replace(/^v/, '');
493
- try {
494
- const changelogContent = readFileSync(changelogPath, 'utf8');
495
- if (!changelogContent.includes(`## [${cleanVersion}]`)) {
496
- logStep(4, 8, 'Generate CHANGELOG', false, `CHANGELOG.md missing ## [${cleanVersion}] section`);
497
- return engineError('E_VALIDATION', `CHANGELOG.md does not contain ## [${cleanVersion}] after generation. ` +
498
- `This will cause the release workflow to fail.`);
499
- }
500
- }
501
- catch (err) {
502
- const msg = err.message ?? String(err);
503
- logStep(4, 8, 'Generate CHANGELOG', false, `Cannot read CHANGELOG.md: ${msg}`);
504
- return engineError('E_GENERAL', `Cannot read CHANGELOG.md: ${msg}`);
505
- }
506
- logStep(4, 8, 'Generate CHANGELOG', true);
507
- // Step 4.5: Lint check — catch biome errors before committing
508
- try {
509
- execFileSync('npx', ['biome', 'check', '--no-errors-on-unmatched', cwd], {
510
- cwd,
511
- encoding: 'utf-8',
512
- stdio: 'pipe',
513
- timeout: 30_000,
514
- });
515
- }
516
- catch (err) {
517
- const execErr = err;
518
- if (execErr.status && execErr.status > 0) {
519
- const output = (execErr.stdout ?? execErr.stderr ?? '').slice(0, 1000);
520
- const errorMatch = output.match(/Found (\d+) error/);
521
- const errorCount = errorMatch ? errorMatch[1] : 'unknown';
522
- logStep(4, 8, 'Lint check', false, `${errorCount} biome error(s)`);
523
- return engineError('E_VALIDATION', `Biome lint check found ${errorCount} error(s). Fix them before releasing.\n${output}`);
524
- }
525
- }
526
- // Step 5: Git commit
527
- logStep(5, 8, 'Commit release');
528
- const gitCwd = { cwd, encoding: 'utf-8', stdio: 'pipe' };
529
- const filesToStage = ['CHANGELOG.md', ...(shouldBump ? bumpTargets.map((t) => t.file) : [])];
530
- try {
531
- execFileSync('git', ['add', ...filesToStage], gitCwd);
532
- }
533
- catch (err) {
534
- const msg = err.message ?? String(err);
535
- logStep(5, 8, 'Commit release', false, `git add failed: ${msg}`);
536
- return engineError('E_GENERAL', `git add failed: ${msg}`);
537
- }
538
- try {
539
- execFileSync('git', ['commit', '-m', `release: ship v${version} (${epicId})`], gitCwd);
540
- }
541
- catch (err) {
542
- const msg = err.stderr ??
543
- err.message ??
544
- String(err);
545
- logStep(5, 8, 'Commit release', false, `git commit failed: ${msg}`);
546
- return engineError('E_GENERAL', `git commit failed: ${msg}`);
547
- }
548
- logStep(5, 8, 'Commit release', true);
549
- let commitSha;
550
- try {
551
- commitSha = execFileSync('git', ['rev-parse', 'HEAD'], gitCwd).toString().trim();
552
- }
553
- catch {
554
- // Non-fatal
555
- }
556
- // Step 6: Tag release
557
- logStep(6, 8, 'Tag release');
558
- const gitTag = `v${version.replace(/^v/, '')}`;
559
- try {
560
- execFileSync('git', ['tag', '-a', gitTag, '-m', `Release ${gitTag}`], gitCwd);
561
- }
562
- catch (err) {
563
- const msg = err.stderr ??
564
- err.message ??
565
- String(err);
566
- logStep(6, 8, 'Tag release', false, `git tag failed: ${msg}`);
567
- return engineError('E_GENERAL', `git tag failed: ${msg}`);
568
- }
569
- logStep(6, 8, 'Tag release', true);
570
- // Step 7: Push or create PR
571
- logStep(7, 8, 'Push / create PR');
572
- let prResult = null;
573
- // First attempt the core pushRelease (which may signal requiresPR)
574
- const pushResult = await pushRelease(version, remote, projectRoot, {
575
- explicitPush: true,
576
- mode: pushMode,
577
- });
578
- if (pushResult.requiresPR || requiresPRFromGates) {
579
- // Branch is protected — create PR instead of direct push
580
- const prBody = buildPRBody({
581
- base: targetBranch,
582
- head: currentBranchForPR,
583
- title: `release: ship v${version}`,
584
- body: '',
585
- version,
586
- epicId,
587
- projectRoot: cwd,
588
- });
589
- prResult = await createPullRequest({
590
- base: targetBranch,
591
- head: currentBranchForPR,
592
- title: `release: ship v${version}`,
593
- body: prBody,
594
- labels: ['release', resolvedChannel],
595
- version,
596
- epicId,
597
- projectRoot: cwd,
598
- });
599
- if (prResult.mode === 'created') {
600
- const m1 = ` ✓ Push / create PR`;
601
- const m2 = ` PR created: ${prResult.prUrl}`;
602
- const m3 = ` → Next: merge the PR, then CI will publish to npm @${resolvedChannel}`;
603
- steps.push(m1, m2, m3);
604
- console.log(m1);
605
- console.log(m2);
606
- console.log(m3);
607
- }
608
- else if (prResult.mode === 'skipped') {
609
- const m1 = ` ✓ Push / create PR`;
610
- const m2 = ` PR already exists: ${prResult.prUrl}`;
611
- steps.push(m1, m2);
612
- console.log(m1);
613
- console.log(m2);
614
- }
615
- else {
616
- const m1 = ` ! Push / create PR — manual PR required:`;
617
- const m2 = prResult.instructions ?? '';
618
- steps.push(m1, m2);
619
- console.log(m1);
620
- console.log(m2);
621
- }
622
- }
623
- else {
624
- // Direct push path (pushRelease already ran, but it skips the actual push
625
- // when requiresPR is false — so we do the git push here directly)
626
- try {
627
- execFileSync('git', ['push', remote ?? 'origin', '--follow-tags'], gitCwd);
628
- logStep(7, 8, 'Push / create PR', true);
629
- }
630
- catch (err) {
631
- const execError = err;
632
- const msg = (execError.stderr ?? execError.message ?? '').slice(0, 500);
633
- logStep(7, 8, 'Push / create PR', false, `git push failed: ${msg}`);
634
- return engineError('E_GENERAL', `git push failed: ${msg}`, {
635
- details: { exitCode: execError.status },
636
- });
637
- }
638
- }
639
- // Step 8 (internal): Record provenance
640
- const pushedAt = new Date().toISOString();
641
- await markReleasePushed(version, pushedAt, projectRoot, { commitSha, gitTag });
642
- return {
643
- success: true,
644
- data: {
645
- version,
646
- epicId,
647
- commitSha,
648
- gitTag,
649
- pushedAt,
650
- changelog: changelogPath,
651
- channel: resolvedChannel,
652
- steps,
653
- ...(prResult
654
- ? {
655
- pr: {
656
- mode: prResult.mode,
657
- prUrl: prResult.prUrl,
658
- prNumber: prResult.prNumber,
659
- instructions: prResult.instructions,
660
- },
661
- }
662
- : {}),
663
- },
664
- };
665
- }
666
- catch (err) {
667
- return engineError('E_GENERAL', err.message ?? String(err));
668
- }
669
- }
670
- //# sourceMappingURL=release-engine.js.map