@cleocode/cleo 2026.3.66 → 2026.3.67

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 (728) hide show
  1. package/README.md +0 -0
  2. package/bin/postinstall.js +0 -0
  3. package/completions/bash-completion.sh +0 -0
  4. package/completions/zsh-completion.zsh +0 -0
  5. package/dist/cli/commander-shim.d.ts +112 -0
  6. package/dist/cli/commander-shim.d.ts.map +1 -0
  7. package/dist/cli/commander-shim.js +233 -0
  8. package/dist/cli/commander-shim.js.map +1 -0
  9. package/dist/cli/commands/add.d.ts +12 -0
  10. package/dist/cli/commands/add.d.ts.map +1 -0
  11. package/dist/cli/commands/add.js +94 -0
  12. package/dist/cli/commands/add.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/agents.d.ts +31 -0
  18. package/dist/cli/commands/agents.d.ts.map +1 -0
  19. package/dist/cli/commands/agents.js +104 -0
  20. package/dist/cli/commands/agents.js.map +1 -0
  21. package/dist/cli/commands/analyze.d.ts +12 -0
  22. package/dist/cli/commands/analyze.d.ts.map +1 -0
  23. package/dist/cli/commands/analyze.js +20 -0
  24. package/dist/cli/commands/analyze.js.map +1 -0
  25. package/dist/cli/commands/archive-stats.d.ts +18 -0
  26. package/dist/cli/commands/archive-stats.d.ts.map +1 -0
  27. package/dist/cli/commands/archive-stats.js +49 -0
  28. package/dist/cli/commands/archive-stats.js.map +1 -0
  29. package/dist/cli/commands/archive.d.ts +12 -0
  30. package/dist/cli/commands/archive.d.ts.map +1 -0
  31. package/dist/cli/commands/archive.js +32 -0
  32. package/dist/cli/commands/archive.js.map +1 -0
  33. package/dist/cli/commands/backfill.d.ts +32 -0
  34. package/dist/cli/commands/backfill.d.ts.map +1 -0
  35. package/dist/cli/commands/backfill.js +101 -0
  36. package/dist/cli/commands/backfill.js.map +1 -0
  37. package/dist/cli/commands/backup.d.ts +8 -0
  38. package/dist/cli/commands/backup.d.ts.map +1 -0
  39. package/dist/cli/commands/backup.js +35 -0
  40. package/dist/cli/commands/backup.js.map +1 -0
  41. package/dist/cli/commands/blockers.d.ts +7 -0
  42. package/dist/cli/commands/blockers.d.ts.map +1 -0
  43. package/dist/cli/commands/blockers.js +16 -0
  44. package/dist/cli/commands/blockers.js.map +1 -0
  45. package/dist/cli/commands/briefing.d.ts +22 -0
  46. package/dist/cli/commands/briefing.d.ts.map +1 -0
  47. package/dist/cli/commands/briefing.js +45 -0
  48. package/dist/cli/commands/briefing.js.map +1 -0
  49. package/dist/cli/commands/bug.d.ts +12 -0
  50. package/dist/cli/commands/bug.d.ts.map +1 -0
  51. package/dist/cli/commands/bug.js +81 -0
  52. package/dist/cli/commands/bug.js.map +1 -0
  53. package/dist/cli/commands/checkpoint.d.ts +15 -0
  54. package/dist/cli/commands/checkpoint.d.ts.map +1 -0
  55. package/dist/cli/commands/checkpoint.js +91 -0
  56. package/dist/cli/commands/checkpoint.js.map +1 -0
  57. package/dist/cli/commands/commands.d.ts +13 -0
  58. package/dist/cli/commands/commands.d.ts.map +1 -0
  59. package/dist/cli/commands/commands.js +30 -0
  60. package/dist/cli/commands/commands.js.map +1 -0
  61. package/dist/cli/commands/complete.d.ts +12 -0
  62. package/dist/cli/commands/complete.d.ts.map +1 -0
  63. package/dist/cli/commands/complete.js +43 -0
  64. package/dist/cli/commands/complete.js.map +1 -0
  65. package/dist/cli/commands/compliance.d.ts +8 -0
  66. package/dist/cli/commands/compliance.d.ts.map +1 -0
  67. package/dist/cli/commands/compliance.js +85 -0
  68. package/dist/cli/commands/compliance.js.map +1 -0
  69. package/dist/cli/commands/config.d.ts +10 -0
  70. package/dist/cli/commands/config.d.ts.map +1 -0
  71. package/dist/cli/commands/config.js +69 -0
  72. package/dist/cli/commands/config.js.map +1 -0
  73. package/dist/cli/commands/consensus.d.ts +13 -0
  74. package/dist/cli/commands/consensus.d.ts.map +1 -0
  75. package/dist/cli/commands/consensus.js +45 -0
  76. package/dist/cli/commands/consensus.js.map +1 -0
  77. package/dist/cli/commands/context.d.ts +8 -0
  78. package/dist/cli/commands/context.d.ts.map +1 -0
  79. package/dist/cli/commands/context.js +40 -0
  80. package/dist/cli/commands/context.js.map +1 -0
  81. package/dist/cli/commands/contribution.d.ts +13 -0
  82. package/dist/cli/commands/contribution.d.ts.map +1 -0
  83. package/dist/cli/commands/contribution.js +41 -0
  84. package/dist/cli/commands/contribution.js.map +1 -0
  85. package/dist/cli/commands/current.d.ts +13 -0
  86. package/dist/cli/commands/current.d.ts.map +1 -0
  87. package/dist/cli/commands/current.js +20 -0
  88. package/dist/cli/commands/current.js.map +1 -0
  89. package/dist/cli/commands/dash.d.ts +12 -0
  90. package/dist/cli/commands/dash.d.ts.map +1 -0
  91. package/dist/cli/commands/dash.js +24 -0
  92. package/dist/cli/commands/dash.js.map +1 -0
  93. package/dist/cli/commands/decomposition.d.ts +13 -0
  94. package/dist/cli/commands/decomposition.d.ts.map +1 -0
  95. package/dist/cli/commands/decomposition.js +45 -0
  96. package/dist/cli/commands/decomposition.js.map +1 -0
  97. package/dist/cli/commands/delete.d.ts +12 -0
  98. package/dist/cli/commands/delete.d.ts.map +1 -0
  99. package/dist/cli/commands/delete.js +37 -0
  100. package/dist/cli/commands/delete.js.map +1 -0
  101. package/dist/cli/commands/deps.d.ts +24 -0
  102. package/dist/cli/commands/deps.d.ts.map +1 -0
  103. package/dist/cli/commands/deps.js +98 -0
  104. package/dist/cli/commands/deps.js.map +1 -0
  105. package/dist/cli/commands/detect-drift.d.ts +15 -0
  106. package/dist/cli/commands/detect-drift.d.ts.map +1 -0
  107. package/dist/cli/commands/detect-drift.js +387 -0
  108. package/dist/cli/commands/detect-drift.js.map +1 -0
  109. package/dist/cli/commands/detect.d.ts +10 -0
  110. package/dist/cli/commands/detect.d.ts.map +1 -0
  111. package/dist/cli/commands/detect.js +24 -0
  112. package/dist/cli/commands/detect.js.map +1 -0
  113. package/dist/cli/commands/docs.d.ts +13 -0
  114. package/dist/cli/commands/docs.d.ts.map +1 -0
  115. package/dist/cli/commands/docs.js +169 -0
  116. package/dist/cli/commands/docs.js.map +1 -0
  117. package/dist/cli/commands/doctor.d.ts +11 -0
  118. package/dist/cli/commands/doctor.d.ts.map +1 -0
  119. package/dist/cli/commands/doctor.js +54 -0
  120. package/dist/cli/commands/doctor.js.map +1 -0
  121. package/dist/cli/commands/dynamic.d.ts +24 -0
  122. package/dist/cli/commands/dynamic.d.ts.map +1 -0
  123. package/dist/cli/commands/dynamic.js +27 -0
  124. package/dist/cli/commands/dynamic.js.map +1 -0
  125. package/dist/cli/commands/env.d.ts +12 -0
  126. package/dist/cli/commands/env.d.ts.map +1 -0
  127. package/dist/cli/commands/env.js +44 -0
  128. package/dist/cli/commands/env.js.map +1 -0
  129. package/dist/cli/commands/exists.d.ts +22 -0
  130. package/dist/cli/commands/exists.d.ts.map +1 -0
  131. package/dist/cli/commands/exists.js +51 -0
  132. package/dist/cli/commands/exists.js.map +1 -0
  133. package/dist/cli/commands/export-tasks.d.ts +10 -0
  134. package/dist/cli/commands/export-tasks.d.ts.map +1 -0
  135. package/dist/cli/commands/export-tasks.js +47 -0
  136. package/dist/cli/commands/export-tasks.js.map +1 -0
  137. package/dist/cli/commands/export.d.ts +9 -0
  138. package/dist/cli/commands/export.d.ts.map +1 -0
  139. package/dist/cli/commands/export.js +46 -0
  140. package/dist/cli/commands/export.js.map +1 -0
  141. package/dist/cli/commands/find.d.ts +14 -0
  142. package/dist/cli/commands/find.d.ts.map +1 -0
  143. package/dist/cli/commands/find.js +70 -0
  144. package/dist/cli/commands/find.js.map +1 -0
  145. package/dist/cli/commands/generate-changelog.d.ts +14 -0
  146. package/dist/cli/commands/generate-changelog.d.ts.map +1 -0
  147. package/dist/cli/commands/generate-changelog.js +252 -0
  148. package/dist/cli/commands/generate-changelog.js.map +1 -0
  149. package/dist/cli/commands/grade.d.ts +13 -0
  150. package/dist/cli/commands/grade.d.ts.map +1 -0
  151. package/dist/cli/commands/grade.js +26 -0
  152. package/dist/cli/commands/grade.js.map +1 -0
  153. package/dist/cli/commands/history.d.ts +9 -0
  154. package/dist/cli/commands/history.d.ts.map +1 -0
  155. package/dist/cli/commands/history.js +30 -0
  156. package/dist/cli/commands/history.js.map +1 -0
  157. package/dist/cli/commands/implementation.d.ts +13 -0
  158. package/dist/cli/commands/implementation.d.ts.map +1 -0
  159. package/dist/cli/commands/implementation.js +41 -0
  160. package/dist/cli/commands/implementation.js.map +1 -0
  161. package/dist/cli/commands/import-tasks.d.ts +10 -0
  162. package/dist/cli/commands/import-tasks.d.ts.map +1 -0
  163. package/dist/cli/commands/import-tasks.js +38 -0
  164. package/dist/cli/commands/import-tasks.js.map +1 -0
  165. package/dist/cli/commands/import.d.ts +9 -0
  166. package/dist/cli/commands/import.d.ts.map +1 -0
  167. package/dist/cli/commands/import.js +28 -0
  168. package/dist/cli/commands/import.js.map +1 -0
  169. package/dist/cli/commands/init.d.ts +34 -0
  170. package/dist/cli/commands/init.d.ts.map +1 -0
  171. package/dist/cli/commands/init.js +89 -0
  172. package/dist/cli/commands/init.js.map +1 -0
  173. package/dist/cli/commands/inject.d.ts +8 -0
  174. package/dist/cli/commands/inject.d.ts.map +1 -0
  175. package/dist/cli/commands/inject.js +28 -0
  176. package/dist/cli/commands/inject.js.map +1 -0
  177. package/dist/cli/commands/install-global.d.ts +19 -0
  178. package/dist/cli/commands/install-global.d.ts.map +1 -0
  179. package/dist/cli/commands/install-global.js +50 -0
  180. package/dist/cli/commands/install-global.js.map +1 -0
  181. package/dist/cli/commands/issue.d.ts +17 -0
  182. package/dist/cli/commands/issue.d.ts.map +1 -0
  183. package/dist/cli/commands/issue.js +107 -0
  184. package/dist/cli/commands/issue.js.map +1 -0
  185. package/dist/cli/commands/labels.d.ts +13 -0
  186. package/dist/cli/commands/labels.d.ts.map +1 -0
  187. package/dist/cli/commands/labels.js +44 -0
  188. package/dist/cli/commands/labels.js.map +1 -0
  189. package/dist/cli/commands/lifecycle.d.ts +8 -0
  190. package/dist/cli/commands/lifecycle.d.ts.map +1 -0
  191. package/dist/cli/commands/lifecycle.js +72 -0
  192. package/dist/cli/commands/lifecycle.js.map +1 -0
  193. package/dist/cli/commands/list.d.ts +14 -0
  194. package/dist/cli/commands/list.d.ts.map +1 -0
  195. package/dist/cli/commands/list.js +71 -0
  196. package/dist/cli/commands/list.js.map +1 -0
  197. package/dist/cli/commands/log.d.ts +12 -0
  198. package/dist/cli/commands/log.d.ts.map +1 -0
  199. package/dist/cli/commands/log.js +30 -0
  200. package/dist/cli/commands/log.js.map +1 -0
  201. package/dist/cli/commands/map.d.ts +10 -0
  202. package/dist/cli/commands/map.d.ts.map +1 -0
  203. package/dist/cli/commands/map.js +23 -0
  204. package/dist/cli/commands/map.js.map +1 -0
  205. package/dist/cli/commands/mcp-install.d.ts +17 -0
  206. package/dist/cli/commands/mcp-install.d.ts.map +1 -0
  207. package/dist/cli/commands/mcp-install.js +128 -0
  208. package/dist/cli/commands/mcp-install.js.map +1 -0
  209. package/dist/cli/commands/memory-brain.d.ts +14 -0
  210. package/dist/cli/commands/memory-brain.d.ts.map +1 -0
  211. package/dist/cli/commands/memory-brain.js +151 -0
  212. package/dist/cli/commands/memory-brain.js.map +1 -0
  213. package/dist/cli/commands/migrate-claude-mem.d.ts +18 -0
  214. package/dist/cli/commands/migrate-claude-mem.d.ts.map +1 -0
  215. package/dist/cli/commands/migrate-claude-mem.js +60 -0
  216. package/dist/cli/commands/migrate-claude-mem.js.map +1 -0
  217. package/dist/cli/commands/next.d.ts +9 -0
  218. package/dist/cli/commands/next.d.ts.map +1 -0
  219. package/dist/cli/commands/next.js +20 -0
  220. package/dist/cli/commands/next.js.map +1 -0
  221. package/dist/cli/commands/nexus.d.ts +16 -0
  222. package/dist/cli/commands/nexus.d.ts.map +1 -0
  223. package/dist/cli/commands/nexus.js +155 -0
  224. package/dist/cli/commands/nexus.js.map +1 -0
  225. package/dist/cli/commands/observe.d.ts +9 -0
  226. package/dist/cli/commands/observe.d.ts.map +1 -0
  227. package/dist/cli/commands/observe.js +39 -0
  228. package/dist/cli/commands/observe.js.map +1 -0
  229. package/dist/cli/commands/ops.d.ts +10 -0
  230. package/dist/cli/commands/ops.d.ts.map +1 -0
  231. package/dist/cli/commands/ops.js +19 -0
  232. package/dist/cli/commands/ops.js.map +1 -0
  233. package/dist/cli/commands/orchestrate.d.ts +8 -0
  234. package/dist/cli/commands/orchestrate.d.ts.map +1 -0
  235. package/dist/cli/commands/orchestrate.js +58 -0
  236. package/dist/cli/commands/orchestrate.js.map +1 -0
  237. package/dist/cli/commands/otel.d.ts +12 -0
  238. package/dist/cli/commands/otel.d.ts.map +1 -0
  239. package/dist/cli/commands/otel.js +128 -0
  240. package/dist/cli/commands/otel.js.map +1 -0
  241. package/dist/cli/commands/phase.d.ts +12 -0
  242. package/dist/cli/commands/phase.d.ts.map +1 -0
  243. package/dist/cli/commands/phase.js +88 -0
  244. package/dist/cli/commands/phase.js.map +1 -0
  245. package/dist/cli/commands/phases.d.ts +12 -0
  246. package/dist/cli/commands/phases.d.ts.map +1 -0
  247. package/dist/cli/commands/phases.js +37 -0
  248. package/dist/cli/commands/phases.js.map +1 -0
  249. package/dist/cli/commands/plan.d.ts +8 -0
  250. package/dist/cli/commands/plan.d.ts.map +1 -0
  251. package/dist/cli/commands/plan.js +15 -0
  252. package/dist/cli/commands/plan.js.map +1 -0
  253. package/dist/cli/commands/promote.d.ts +7 -0
  254. package/dist/cli/commands/promote.d.ts.map +1 -0
  255. package/dist/cli/commands/promote.js +15 -0
  256. package/dist/cli/commands/promote.js.map +1 -0
  257. package/dist/cli/commands/reason.d.ts +35 -0
  258. package/dist/cli/commands/reason.d.ts.map +1 -0
  259. package/dist/cli/commands/reason.js +104 -0
  260. package/dist/cli/commands/reason.js.map +1 -0
  261. package/dist/cli/commands/refresh-memory.d.ts +9 -0
  262. package/dist/cli/commands/refresh-memory.d.ts.map +1 -0
  263. package/dist/cli/commands/refresh-memory.js +24 -0
  264. package/dist/cli/commands/refresh-memory.js.map +1 -0
  265. package/dist/cli/commands/relates.d.ts +12 -0
  266. package/dist/cli/commands/relates.d.ts.map +1 -0
  267. package/dist/cli/commands/relates.js +53 -0
  268. package/dist/cli/commands/relates.js.map +1 -0
  269. package/dist/cli/commands/release.d.ts +8 -0
  270. package/dist/cli/commands/release.d.ts.map +1 -0
  271. package/dist/cli/commands/release.js +72 -0
  272. package/dist/cli/commands/release.js.map +1 -0
  273. package/dist/cli/commands/remote.d.ts +12 -0
  274. package/dist/cli/commands/remote.d.ts.map +1 -0
  275. package/dist/cli/commands/remote.js +207 -0
  276. package/dist/cli/commands/remote.js.map +1 -0
  277. package/dist/cli/commands/reorder.d.ts +7 -0
  278. package/dist/cli/commands/reorder.d.ts.map +1 -0
  279. package/dist/cli/commands/reorder.js +20 -0
  280. package/dist/cli/commands/reorder.js.map +1 -0
  281. package/dist/cli/commands/reparent.d.ts +10 -0
  282. package/dist/cli/commands/reparent.d.ts.map +1 -0
  283. package/dist/cli/commands/reparent.js +19 -0
  284. package/dist/cli/commands/reparent.js.map +1 -0
  285. package/dist/cli/commands/research.d.ts +8 -0
  286. package/dist/cli/commands/research.d.ts.map +1 -0
  287. package/dist/cli/commands/research.js +129 -0
  288. package/dist/cli/commands/research.js.map +1 -0
  289. package/dist/cli/commands/restore.d.ts +11 -0
  290. package/dist/cli/commands/restore.d.ts.map +1 -0
  291. package/dist/cli/commands/restore.js +224 -0
  292. package/dist/cli/commands/restore.js.map +1 -0
  293. package/dist/cli/commands/roadmap.d.ts +8 -0
  294. package/dist/cli/commands/roadmap.d.ts.map +1 -0
  295. package/dist/cli/commands/roadmap.js +21 -0
  296. package/dist/cli/commands/roadmap.js.map +1 -0
  297. package/dist/cli/commands/safestop.d.ts +14 -0
  298. package/dist/cli/commands/safestop.d.ts.map +1 -0
  299. package/dist/cli/commands/safestop.js +32 -0
  300. package/dist/cli/commands/safestop.js.map +1 -0
  301. package/dist/cli/commands/self-update.d.ts +15 -0
  302. package/dist/cli/commands/self-update.d.ts.map +1 -0
  303. package/dist/cli/commands/self-update.js +329 -0
  304. package/dist/cli/commands/self-update.js.map +1 -0
  305. package/dist/cli/commands/sequence.d.ts +8 -0
  306. package/dist/cli/commands/sequence.d.ts.map +1 -0
  307. package/dist/cli/commands/sequence.js +30 -0
  308. package/dist/cli/commands/sequence.js.map +1 -0
  309. package/dist/cli/commands/session.d.ts +12 -0
  310. package/dist/cli/commands/session.d.ts.map +1 -0
  311. package/dist/cli/commands/session.js +175 -0
  312. package/dist/cli/commands/session.js.map +1 -0
  313. package/dist/cli/commands/show.d.ts +13 -0
  314. package/dist/cli/commands/show.d.ts.map +1 -0
  315. package/dist/cli/commands/show.js +20 -0
  316. package/dist/cli/commands/show.js.map +1 -0
  317. package/dist/cli/commands/skills.d.ts +13 -0
  318. package/dist/cli/commands/skills.d.ts.map +1 -0
  319. package/dist/cli/commands/skills.js +131 -0
  320. package/dist/cli/commands/skills.js.map +1 -0
  321. package/dist/cli/commands/snapshot.d.ts +9 -0
  322. package/dist/cli/commands/snapshot.d.ts.map +1 -0
  323. package/dist/cli/commands/snapshot.js +50 -0
  324. package/dist/cli/commands/snapshot.js.map +1 -0
  325. package/dist/cli/commands/specification.d.ts +13 -0
  326. package/dist/cli/commands/specification.d.ts.map +1 -0
  327. package/dist/cli/commands/specification.js +45 -0
  328. package/dist/cli/commands/specification.js.map +1 -0
  329. package/dist/cli/commands/start.d.ts +13 -0
  330. package/dist/cli/commands/start.d.ts.map +1 -0
  331. package/dist/cli/commands/start.js +20 -0
  332. package/dist/cli/commands/start.js.map +1 -0
  333. package/dist/cli/commands/stats.d.ts +12 -0
  334. package/dist/cli/commands/stats.d.ts.map +1 -0
  335. package/dist/cli/commands/stats.js +35 -0
  336. package/dist/cli/commands/stats.js.map +1 -0
  337. package/dist/cli/commands/sticky.d.ts +16 -0
  338. package/dist/cli/commands/sticky.d.ts.map +1 -0
  339. package/dist/cli/commands/sticky.js +211 -0
  340. package/dist/cli/commands/sticky.js.map +1 -0
  341. package/dist/cli/commands/stop.d.ts +13 -0
  342. package/dist/cli/commands/stop.d.ts.map +1 -0
  343. package/dist/cli/commands/stop.js +20 -0
  344. package/dist/cli/commands/stop.js.map +1 -0
  345. package/dist/cli/commands/testing.d.ts +13 -0
  346. package/dist/cli/commands/testing.d.ts.map +1 -0
  347. package/dist/cli/commands/testing.js +64 -0
  348. package/dist/cli/commands/testing.js.map +1 -0
  349. package/dist/cli/commands/token.d.ts +10 -0
  350. package/dist/cli/commands/token.d.ts.map +1 -0
  351. package/dist/cli/commands/token.js +135 -0
  352. package/dist/cli/commands/token.js.map +1 -0
  353. package/dist/cli/commands/update.d.ts +12 -0
  354. package/dist/cli/commands/update.d.ts.map +1 -0
  355. package/dist/cli/commands/update.js +83 -0
  356. package/dist/cli/commands/update.js.map +1 -0
  357. package/dist/cli/commands/upgrade.d.ts +16 -0
  358. package/dist/cli/commands/upgrade.d.ts.map +1 -0
  359. package/dist/cli/commands/upgrade.js +83 -0
  360. package/dist/cli/commands/upgrade.js.map +1 -0
  361. package/dist/cli/commands/validate.d.ts +12 -0
  362. package/dist/cli/commands/validate.d.ts.map +1 -0
  363. package/dist/cli/commands/validate.js +23 -0
  364. package/dist/cli/commands/validate.js.map +1 -0
  365. package/dist/cli/commands/verify.d.ts +8 -0
  366. package/dist/cli/commands/verify.d.ts.map +1 -0
  367. package/dist/cli/commands/verify.js +28 -0
  368. package/dist/cli/commands/verify.js.map +1 -0
  369. package/dist/cli/commands/web.d.ts +13 -0
  370. package/dist/cli/commands/web.d.ts.map +1 -0
  371. package/dist/cli/commands/web.js +264 -0
  372. package/dist/cli/commands/web.js.map +1 -0
  373. package/dist/cli/field-context.d.ts +32 -0
  374. package/dist/cli/field-context.d.ts.map +1 -0
  375. package/dist/cli/field-context.js +47 -0
  376. package/dist/cli/field-context.js.map +1 -0
  377. package/dist/cli/format-context.d.ts +32 -0
  378. package/dist/cli/format-context.d.ts.map +1 -0
  379. package/dist/cli/format-context.js +50 -0
  380. package/dist/cli/format-context.js.map +1 -0
  381. package/dist/cli/index.d.ts +9 -0
  382. package/dist/cli/index.d.ts.map +1 -0
  383. package/dist/cli/index.js +12847 -12087
  384. package/dist/cli/index.js.map +4 -4
  385. package/dist/cli/logger-bootstrap.d.ts +6 -0
  386. package/dist/cli/logger-bootstrap.d.ts.map +1 -0
  387. package/dist/cli/logger-bootstrap.js +10 -0
  388. package/dist/cli/logger-bootstrap.js.map +1 -0
  389. package/dist/cli/middleware/output-format.d.ts +30 -0
  390. package/dist/cli/middleware/output-format.d.ts.map +1 -0
  391. package/dist/cli/middleware/output-format.js +35 -0
  392. package/dist/cli/middleware/output-format.js.map +1 -0
  393. package/dist/cli/progress.d.ts +84 -0
  394. package/dist/cli/progress.d.ts.map +1 -0
  395. package/dist/cli/progress.js +169 -0
  396. package/dist/cli/progress.js.map +1 -0
  397. package/dist/cli/renderers/colors.d.ts +32 -0
  398. package/dist/cli/renderers/colors.d.ts.map +1 -0
  399. package/dist/cli/renderers/colors.js +141 -0
  400. package/dist/cli/renderers/colors.js.map +1 -0
  401. package/dist/cli/renderers/error.d.ts +13 -0
  402. package/dist/cli/renderers/error.d.ts.map +1 -0
  403. package/dist/cli/renderers/error.js +42 -0
  404. package/dist/cli/renderers/error.js.map +1 -0
  405. package/dist/cli/renderers/index.d.ts +59 -0
  406. package/dist/cli/renderers/index.d.ts.map +1 -0
  407. package/dist/cli/renderers/index.js +184 -0
  408. package/dist/cli/renderers/index.js.map +1 -0
  409. package/dist/cli/renderers/normalizer.d.ts +21 -0
  410. package/dist/cli/renderers/normalizer.d.ts.map +1 -0
  411. package/dist/cli/renderers/normalizer.js +106 -0
  412. package/dist/cli/renderers/normalizer.js.map +1 -0
  413. package/dist/cli/renderers/system.d.ts +25 -0
  414. package/dist/cli/renderers/system.d.ts.map +1 -0
  415. package/dist/cli/renderers/system.js +416 -0
  416. package/dist/cli/renderers/system.js.map +1 -0
  417. package/dist/cli/renderers/tasks.d.ts +28 -0
  418. package/dist/cli/renderers/tasks.d.ts.map +1 -0
  419. package/dist/cli/renderers/tasks.js +306 -0
  420. package/dist/cli/renderers/tasks.js.map +1 -0
  421. package/dist/dispatch/adapters/cli.d.ts +67 -0
  422. package/dist/dispatch/adapters/cli.d.ts.map +1 -0
  423. package/dist/dispatch/adapters/cli.js +205 -0
  424. package/dist/dispatch/adapters/cli.js.map +1 -0
  425. package/dist/dispatch/adapters/mcp.d.ts +37 -0
  426. package/dist/dispatch/adapters/mcp.d.ts.map +1 -0
  427. package/dist/dispatch/adapters/mcp.js +122 -0
  428. package/dist/dispatch/adapters/mcp.js.map +1 -0
  429. package/dist/dispatch/context/session-context.d.ts +54 -0
  430. package/dist/dispatch/context/session-context.d.ts.map +1 -0
  431. package/dist/dispatch/context/session-context.js +61 -0
  432. package/dist/dispatch/context/session-context.js.map +1 -0
  433. package/dist/dispatch/dispatcher.d.ts +23 -0
  434. package/dist/dispatch/dispatcher.d.ts.map +1 -0
  435. package/dist/dispatch/dispatcher.js +84 -0
  436. package/dist/dispatch/dispatcher.js.map +1 -0
  437. package/dist/dispatch/domains/_base.d.ts +59 -0
  438. package/dist/dispatch/domains/_base.d.ts.map +1 -0
  439. package/dist/dispatch/domains/_base.js +77 -0
  440. package/dist/dispatch/domains/_base.js.map +1 -0
  441. package/dist/dispatch/domains/_meta.d.ts +23 -0
  442. package/dist/dispatch/domains/_meta.d.ts.map +1 -0
  443. package/dist/dispatch/domains/_meta.js +25 -0
  444. package/dist/dispatch/domains/_meta.js.map +1 -0
  445. package/dist/dispatch/domains/_routing.d.ts +8 -0
  446. package/dist/dispatch/domains/_routing.d.ts.map +1 -0
  447. package/dist/dispatch/domains/_routing.js +20 -0
  448. package/dist/dispatch/domains/_routing.js.map +1 -0
  449. package/dist/dispatch/domains/admin.d.ts +25 -0
  450. package/dist/dispatch/domains/admin.d.ts.map +1 -0
  451. package/dist/dispatch/domains/admin.js +694 -0
  452. package/dist/dispatch/domains/admin.js.map +1 -0
  453. package/dist/dispatch/domains/check.d.ts +22 -0
  454. package/dist/dispatch/domains/check.d.ts.map +1 -0
  455. package/dist/dispatch/domains/check.js +293 -0
  456. package/dist/dispatch/domains/check.js.map +1 -0
  457. package/dist/dispatch/domains/index.d.ts +26 -0
  458. package/dist/dispatch/domains/index.d.ts.map +1 -0
  459. package/dist/dispatch/domains/index.js +38 -0
  460. package/dist/dispatch/domains/index.js.map +1 -0
  461. package/dist/dispatch/domains/memory.d.ts +22 -0
  462. package/dist/dispatch/domains/memory.d.ts.map +1 -0
  463. package/dist/dispatch/domains/memory.js +303 -0
  464. package/dist/dispatch/domains/memory.js.map +1 -0
  465. package/dist/dispatch/domains/nexus.d.ts +22 -0
  466. package/dist/dispatch/domains/nexus.d.ts.map +1 -0
  467. package/dist/dispatch/domains/nexus.js +286 -0
  468. package/dist/dispatch/domains/nexus.js.map +1 -0
  469. package/dist/dispatch/domains/orchestrate.d.ts +19 -0
  470. package/dist/dispatch/domains/orchestrate.d.ts.map +1 -0
  471. package/dist/dispatch/domains/orchestrate.js +259 -0
  472. package/dist/dispatch/domains/orchestrate.js.map +1 -0
  473. package/dist/dispatch/domains/pipeline.d.ts +35 -0
  474. package/dist/dispatch/domains/pipeline.d.ts.map +1 -0
  475. package/dist/dispatch/domains/pipeline.js +553 -0
  476. package/dist/dispatch/domains/pipeline.js.map +1 -0
  477. package/dist/dispatch/domains/session.d.ts +22 -0
  478. package/dist/dispatch/domains/session.d.ts.map +1 -0
  479. package/dist/dispatch/domains/session.js +255 -0
  480. package/dist/dispatch/domains/session.js.map +1 -0
  481. package/dist/dispatch/domains/sticky.d.ts +20 -0
  482. package/dist/dispatch/domains/sticky.d.ts.map +1 -0
  483. package/dist/dispatch/domains/sticky.js +164 -0
  484. package/dist/dispatch/domains/sticky.js.map +1 -0
  485. package/dist/dispatch/domains/tasks.d.ts +25 -0
  486. package/dist/dispatch/domains/tasks.d.ts.map +1 -0
  487. package/dist/dispatch/domains/tasks.js +339 -0
  488. package/dist/dispatch/domains/tasks.js.map +1 -0
  489. package/dist/dispatch/domains/tools.d.ts +36 -0
  490. package/dist/dispatch/domains/tools.d.ts.map +1 -0
  491. package/dist/dispatch/domains/tools.js +451 -0
  492. package/dist/dispatch/domains/tools.js.map +1 -0
  493. package/dist/dispatch/engines/_error.d.ts +42 -0
  494. package/dist/dispatch/engines/_error.d.ts.map +1 -0
  495. package/dist/dispatch/engines/_error.js +201 -0
  496. package/dist/dispatch/engines/_error.js.map +1 -0
  497. package/dist/dispatch/engines/codebase-map-engine.d.ts +17 -0
  498. package/dist/dispatch/engines/codebase-map-engine.d.ts.map +1 -0
  499. package/dist/dispatch/engines/codebase-map-engine.js +29 -0
  500. package/dist/dispatch/engines/codebase-map-engine.js.map +1 -0
  501. package/dist/dispatch/engines/config-engine.d.ts +32 -0
  502. package/dist/dispatch/engines/config-engine.d.ts.map +1 -0
  503. package/dist/dispatch/engines/config-engine.js +70 -0
  504. package/dist/dispatch/engines/config-engine.js.map +1 -0
  505. package/dist/dispatch/engines/hooks-engine.d.ts +47 -0
  506. package/dist/dispatch/engines/hooks-engine.d.ts.map +1 -0
  507. package/dist/dispatch/engines/hooks-engine.js +57 -0
  508. package/dist/dispatch/engines/hooks-engine.js.map +1 -0
  509. package/dist/dispatch/engines/init-engine.d.ts +43 -0
  510. package/dist/dispatch/engines/init-engine.d.ts.map +1 -0
  511. package/dist/dispatch/engines/init-engine.js +73 -0
  512. package/dist/dispatch/engines/init-engine.js.map +1 -0
  513. package/dist/dispatch/engines/lifecycle-engine.d.ts +66 -0
  514. package/dist/dispatch/engines/lifecycle-engine.d.ts.map +1 -0
  515. package/dist/dispatch/engines/lifecycle-engine.js +213 -0
  516. package/dist/dispatch/engines/lifecycle-engine.js.map +1 -0
  517. package/dist/dispatch/engines/memory-engine.d.ts +10 -0
  518. package/dist/dispatch/engines/memory-engine.d.ts.map +1 -0
  519. package/dist/dispatch/engines/memory-engine.js +10 -0
  520. package/dist/dispatch/engines/memory-engine.js.map +1 -0
  521. package/dist/dispatch/engines/nexus-engine.d.ts +167 -0
  522. package/dist/dispatch/engines/nexus-engine.d.ts.map +1 -0
  523. package/dist/dispatch/engines/nexus-engine.js +356 -0
  524. package/dist/dispatch/engines/nexus-engine.js.map +1 -0
  525. package/dist/dispatch/engines/orchestrate-engine.d.ts +133 -0
  526. package/dist/dispatch/engines/orchestrate-engine.d.ts.map +1 -0
  527. package/dist/dispatch/engines/orchestrate-engine.js +769 -0
  528. package/dist/dispatch/engines/orchestrate-engine.js.map +1 -0
  529. package/dist/dispatch/engines/pipeline-engine.d.ts +51 -0
  530. package/dist/dispatch/engines/pipeline-engine.d.ts.map +1 -0
  531. package/dist/dispatch/engines/pipeline-engine.js +191 -0
  532. package/dist/dispatch/engines/pipeline-engine.js.map +1 -0
  533. package/dist/dispatch/engines/release-engine.d.ts +94 -0
  534. package/dist/dispatch/engines/release-engine.d.ts.map +1 -0
  535. package/dist/dispatch/engines/release-engine.js +669 -0
  536. package/dist/dispatch/engines/release-engine.js.map +1 -0
  537. package/dist/dispatch/engines/session-engine.d.ts +323 -0
  538. package/dist/dispatch/engines/session-engine.d.ts.map +1 -0
  539. package/dist/dispatch/engines/session-engine.js +869 -0
  540. package/dist/dispatch/engines/session-engine.js.map +1 -0
  541. package/dist/dispatch/engines/sticky-engine.d.ts +100 -0
  542. package/dist/dispatch/engines/sticky-engine.d.ts.map +1 -0
  543. package/dist/dispatch/engines/sticky-engine.js +181 -0
  544. package/dist/dispatch/engines/sticky-engine.js.map +1 -0
  545. package/dist/dispatch/engines/system-engine.d.ts +382 -0
  546. package/dist/dispatch/engines/system-engine.d.ts.map +1 -0
  547. package/dist/dispatch/engines/system-engine.js +992 -0
  548. package/dist/dispatch/engines/system-engine.js.map +1 -0
  549. package/dist/dispatch/engines/task-engine.d.ts +630 -0
  550. package/dist/dispatch/engines/task-engine.d.ts.map +1 -0
  551. package/dist/dispatch/engines/task-engine.js +979 -0
  552. package/dist/dispatch/engines/task-engine.js.map +1 -0
  553. package/dist/dispatch/engines/template-parser.d.ts +34 -0
  554. package/dist/dispatch/engines/template-parser.d.ts.map +1 -0
  555. package/dist/dispatch/engines/template-parser.js +57 -0
  556. package/dist/dispatch/engines/template-parser.js.map +1 -0
  557. package/dist/dispatch/engines/tools-engine.d.ts +270 -0
  558. package/dist/dispatch/engines/tools-engine.d.ts.map +1 -0
  559. package/dist/dispatch/engines/tools-engine.js +636 -0
  560. package/dist/dispatch/engines/tools-engine.js.map +1 -0
  561. package/dist/dispatch/engines/validate-engine.d.ts +154 -0
  562. package/dist/dispatch/engines/validate-engine.d.ts.map +1 -0
  563. package/dist/dispatch/engines/validate-engine.js +524 -0
  564. package/dist/dispatch/engines/validate-engine.js.map +1 -0
  565. package/dist/dispatch/index.d.ts +20 -0
  566. package/dist/dispatch/index.d.ts.map +1 -0
  567. package/dist/dispatch/index.js +19 -0
  568. package/dist/dispatch/index.js.map +1 -0
  569. package/dist/dispatch/lib/capability-matrix.d.ts +11 -0
  570. package/dist/dispatch/lib/capability-matrix.d.ts.map +1 -0
  571. package/dist/dispatch/lib/capability-matrix.js +10 -0
  572. package/dist/dispatch/lib/capability-matrix.js.map +1 -0
  573. package/dist/dispatch/lib/config.d.ts +16 -0
  574. package/dist/dispatch/lib/config.d.ts.map +1 -0
  575. package/dist/dispatch/lib/config.js +15 -0
  576. package/dist/dispatch/lib/config.js.map +1 -0
  577. package/dist/dispatch/lib/engine.d.ts +25 -0
  578. package/dist/dispatch/lib/engine.d.ts.map +1 -0
  579. package/dist/dispatch/lib/engine.js +44 -0
  580. package/dist/dispatch/lib/engine.js.map +1 -0
  581. package/dist/dispatch/lib/meta.d.ts +26 -0
  582. package/dist/dispatch/lib/meta.d.ts.map +1 -0
  583. package/dist/dispatch/lib/meta.js +37 -0
  584. package/dist/dispatch/lib/meta.js.map +1 -0
  585. package/dist/dispatch/lib/param-utils.d.ts +11 -0
  586. package/dist/dispatch/lib/param-utils.d.ts.map +1 -0
  587. package/dist/dispatch/lib/param-utils.js +10 -0
  588. package/dist/dispatch/lib/param-utils.js.map +1 -0
  589. package/dist/dispatch/lib/projections.d.ts +23 -0
  590. package/dist/dispatch/lib/projections.d.ts.map +1 -0
  591. package/dist/dispatch/lib/projections.js +48 -0
  592. package/dist/dispatch/lib/projections.js.map +1 -0
  593. package/dist/dispatch/lib/schema-utils.d.ts +42 -0
  594. package/dist/dispatch/lib/schema-utils.d.ts.map +1 -0
  595. package/dist/dispatch/lib/schema-utils.js +93 -0
  596. package/dist/dispatch/lib/schema-utils.js.map +1 -0
  597. package/dist/dispatch/lib/security.d.ts +11 -0
  598. package/dist/dispatch/lib/security.d.ts.map +1 -0
  599. package/dist/dispatch/lib/security.js +10 -0
  600. package/dist/dispatch/lib/security.js.map +1 -0
  601. package/dist/dispatch/middleware/audit.d.ts +23 -0
  602. package/dist/dispatch/middleware/audit.d.ts.map +1 -0
  603. package/dist/dispatch/middleware/audit.js +169 -0
  604. package/dist/dispatch/middleware/audit.js.map +1 -0
  605. package/dist/dispatch/middleware/field-filter.d.ts +24 -0
  606. package/dist/dispatch/middleware/field-filter.d.ts.map +1 -0
  607. package/dist/dispatch/middleware/field-filter.js +65 -0
  608. package/dist/dispatch/middleware/field-filter.js.map +1 -0
  609. package/dist/dispatch/middleware/pipeline.d.ts +20 -0
  610. package/dist/dispatch/middleware/pipeline.d.ts.map +1 -0
  611. package/dist/dispatch/middleware/pipeline.js +47 -0
  612. package/dist/dispatch/middleware/pipeline.js.map +1 -0
  613. package/dist/dispatch/middleware/projection.d.ts +35 -0
  614. package/dist/dispatch/middleware/projection.d.ts.map +1 -0
  615. package/dist/dispatch/middleware/projection.js +145 -0
  616. package/dist/dispatch/middleware/projection.js.map +1 -0
  617. package/dist/dispatch/middleware/protocol-enforcement.d.ts +12 -0
  618. package/dist/dispatch/middleware/protocol-enforcement.d.ts.map +1 -0
  619. package/dist/dispatch/middleware/protocol-enforcement.js +30 -0
  620. package/dist/dispatch/middleware/protocol-enforcement.js.map +1 -0
  621. package/dist/dispatch/middleware/rate-limiter.d.ts +30 -0
  622. package/dist/dispatch/middleware/rate-limiter.d.ts.map +1 -0
  623. package/dist/dispatch/middleware/rate-limiter.js +101 -0
  624. package/dist/dispatch/middleware/rate-limiter.js.map +1 -0
  625. package/dist/dispatch/middleware/sanitizer.d.ts +10 -0
  626. package/dist/dispatch/middleware/sanitizer.d.ts.map +1 -0
  627. package/dist/dispatch/middleware/sanitizer.js +42 -0
  628. package/dist/dispatch/middleware/sanitizer.js.map +1 -0
  629. package/dist/dispatch/middleware/session-resolver.d.ts +26 -0
  630. package/dist/dispatch/middleware/session-resolver.d.ts.map +1 -0
  631. package/dist/dispatch/middleware/session-resolver.js +65 -0
  632. package/dist/dispatch/middleware/session-resolver.js.map +1 -0
  633. package/dist/dispatch/middleware/verification-gates.d.ts +3 -0
  634. package/dist/dispatch/middleware/verification-gates.d.ts.map +1 -0
  635. package/dist/dispatch/middleware/verification-gates.js +40 -0
  636. package/dist/dispatch/middleware/verification-gates.js.map +1 -0
  637. package/dist/dispatch/registry.d.ts +91 -0
  638. package/dist/dispatch/registry.d.ts.map +1 -0
  639. package/dist/dispatch/registry.js +2914 -0
  640. package/dist/dispatch/registry.js.map +1 -0
  641. package/dist/dispatch/types.d.ts +218 -0
  642. package/dist/dispatch/types.d.ts.map +1 -0
  643. package/dist/dispatch/types.js +25 -0
  644. package/dist/dispatch/types.js.map +1 -0
  645. package/dist/mcp/gateways/mutate.d.ts +146 -0
  646. package/dist/mcp/gateways/mutate.d.ts.map +1 -0
  647. package/dist/mcp/gateways/mutate.js +1016 -0
  648. package/dist/mcp/gateways/mutate.js.map +1 -0
  649. package/dist/mcp/gateways/query.d.ts +138 -0
  650. package/dist/mcp/gateways/query.d.ts.map +1 -0
  651. package/dist/mcp/gateways/query.js +186 -0
  652. package/dist/mcp/gateways/query.js.map +1 -0
  653. package/dist/mcp/index.d.ts +16 -0
  654. package/dist/mcp/index.d.ts.map +1 -0
  655. package/dist/mcp/index.js +16947 -15211
  656. package/dist/mcp/index.js.map +4 -4
  657. package/dist/mcp/lib/background-jobs.d.ts +86 -0
  658. package/dist/mcp/lib/background-jobs.d.ts.map +1 -0
  659. package/dist/mcp/lib/background-jobs.js +183 -0
  660. package/dist/mcp/lib/background-jobs.js.map +1 -0
  661. package/dist/mcp/lib/budget.d.ts +35 -0
  662. package/dist/mcp/lib/budget.d.ts.map +1 -0
  663. package/dist/mcp/lib/budget.js +102 -0
  664. package/dist/mcp/lib/budget.js.map +1 -0
  665. package/dist/mcp/lib/cache.d.ts +78 -0
  666. package/dist/mcp/lib/cache.d.ts.map +1 -0
  667. package/dist/mcp/lib/cache.js +207 -0
  668. package/dist/mcp/lib/cache.js.map +1 -0
  669. package/dist/mcp/lib/config.d.ts +42 -0
  670. package/dist/mcp/lib/config.d.ts.map +1 -0
  671. package/dist/mcp/lib/config.js +241 -0
  672. package/dist/mcp/lib/config.js.map +1 -0
  673. package/dist/mcp/lib/defaults.d.ts +115 -0
  674. package/dist/mcp/lib/defaults.d.ts.map +1 -0
  675. package/dist/mcp/lib/defaults.js +61 -0
  676. package/dist/mcp/lib/defaults.js.map +1 -0
  677. package/dist/mcp/lib/gate-validators.d.ts +13 -0
  678. package/dist/mcp/lib/gate-validators.d.ts.map +1 -0
  679. package/dist/mcp/lib/gate-validators.js +13 -0
  680. package/dist/mcp/lib/gate-validators.js.map +1 -0
  681. package/dist/mcp/lib/gateway-meta.d.ts +37 -0
  682. package/dist/mcp/lib/gateway-meta.d.ts.map +1 -0
  683. package/dist/mcp/lib/gateway-meta.js +50 -0
  684. package/dist/mcp/lib/gateway-meta.js.map +1 -0
  685. package/dist/mcp/lib/job-manager-accessor.d.ts +10 -0
  686. package/dist/mcp/lib/job-manager-accessor.d.ts.map +1 -0
  687. package/dist/mcp/lib/job-manager-accessor.js +14 -0
  688. package/dist/mcp/lib/job-manager-accessor.js.map +1 -0
  689. package/dist/mcp/lib/protocol-enforcement.d.ts +12 -0
  690. package/dist/mcp/lib/protocol-enforcement.d.ts.map +1 -0
  691. package/dist/mcp/lib/protocol-enforcement.js +12 -0
  692. package/dist/mcp/lib/protocol-enforcement.js.map +1 -0
  693. package/dist/mcp/lib/protocol-rules.d.ts +12 -0
  694. package/dist/mcp/lib/protocol-rules.d.ts.map +1 -0
  695. package/dist/mcp/lib/protocol-rules.js +12 -0
  696. package/dist/mcp/lib/protocol-rules.js.map +1 -0
  697. package/dist/mcp/lib/rate-limiter.d.ts +110 -0
  698. package/dist/mcp/lib/rate-limiter.d.ts.map +1 -0
  699. package/dist/mcp/lib/rate-limiter.js +208 -0
  700. package/dist/mcp/lib/rate-limiter.js.map +1 -0
  701. package/dist/mcp/lib/router.d.ts +58 -0
  702. package/dist/mcp/lib/router.d.ts.map +1 -0
  703. package/dist/mcp/lib/router.js +12 -0
  704. package/dist/mcp/lib/router.js.map +1 -0
  705. package/dist/mcp/lib/security.d.ts +161 -0
  706. package/dist/mcp/lib/security.d.ts.map +1 -0
  707. package/dist/mcp/lib/security.js +360 -0
  708. package/dist/mcp/lib/security.js.map +1 -0
  709. package/dist/mcp/lib/verification-gates.d.ts +13 -0
  710. package/dist/mcp/lib/verification-gates.d.ts.map +1 -0
  711. package/dist/mcp/lib/verification-gates.js +12 -0
  712. package/dist/mcp/lib/verification-gates.js.map +1 -0
  713. package/dist/mcp/resources/budget.d.ts +22 -0
  714. package/dist/mcp/resources/budget.d.ts.map +1 -0
  715. package/dist/mcp/resources/budget.js +46 -0
  716. package/dist/mcp/resources/budget.js.map +1 -0
  717. package/dist/mcp/resources/index.d.ts +53 -0
  718. package/dist/mcp/resources/index.d.ts.map +1 -0
  719. package/dist/mcp/resources/index.js +278 -0
  720. package/dist/mcp/resources/index.js.map +1 -0
  721. package/migrations/drizzle-brain/20260318205549_initial/migration.sql +0 -0
  722. package/migrations/drizzle-brain/20260318205549_initial/snapshot.json +0 -0
  723. package/migrations/drizzle-nexus/20260318205558_initial/migration.sql +0 -0
  724. package/migrations/drizzle-nexus/20260318205558_initial/snapshot.json +0 -0
  725. package/migrations/drizzle-tasks/20260318205539_initial/migration.sql +0 -0
  726. package/migrations/drizzle-tasks/20260318205539_initial/snapshot.json +0 -0
  727. package/package.json +10 -10
  728. package/LICENSE +0 -21
@@ -0,0 +1,387 @@
1
+ /**
2
+ * detect-drift command - Documentation drift detection for LLM agents
3
+ * @epic T4698
4
+ * @task T4705
5
+ *
6
+ * Exit codes:
7
+ * 0 - No drift detected (all checks pass)
8
+ * 1 - Warnings only (documentation exists but needs attention)
9
+ * 2 - Errors detected (missing documentation or critical drift)
10
+ *
11
+ * Output: LAFS-compliant JSON envelope for agent consumption
12
+ */
13
+ // CLI-only: detect-drift runs local static analysis; session.context.drift is a different operation
14
+ import { existsSync, readdirSync, readFileSync } from 'node:fs';
15
+ import { dirname, join } from 'node:path';
16
+ import { getErrorMessage } from '@cleocode/contracts';
17
+ import { cliOutput } from '../renderers/index.js';
18
+ function findProjectRoot() {
19
+ // Start from CWD, not the CLI file location. When installed via npm,
20
+ // the CLI bundle is in node_modules — walking up from there finds the
21
+ // npm package dir instead of the user's project (#78).
22
+ let currentDir = process.cwd();
23
+ while (currentDir !== '/') {
24
+ if (existsSync(join(currentDir, 'package.json'))) {
25
+ return currentDir;
26
+ }
27
+ const parent = dirname(currentDir);
28
+ if (parent === currentDir)
29
+ break;
30
+ currentDir = parent;
31
+ }
32
+ return process.cwd();
33
+ }
34
+ export function registerDetectDriftCommand(program) {
35
+ program
36
+ .command('detect-drift')
37
+ .description('Detect documentation drift against TypeScript source of truth')
38
+ .action(async () => {
39
+ const projectRoot = findProjectRoot();
40
+ const result = {
41
+ summary: {
42
+ totalChecks: 0,
43
+ passed: 0,
44
+ warnings: 0,
45
+ errors: 0,
46
+ exitCode: 0,
47
+ },
48
+ checks: [],
49
+ recommendations: [],
50
+ };
51
+ const addCheck = (name, status, message, issues = []) => {
52
+ result.checks.push({ name, status, message, issues });
53
+ result.summary.totalChecks++;
54
+ if (status === 'pass')
55
+ result.summary.passed++;
56
+ if (status === 'warn') {
57
+ result.summary.warnings++;
58
+ result.summary.exitCode = Math.max(result.summary.exitCode, 1);
59
+ }
60
+ if (status === 'fail') {
61
+ result.summary.errors++;
62
+ result.summary.exitCode = 2;
63
+ }
64
+ };
65
+ const safeRead = (path) => {
66
+ try {
67
+ return readFileSync(path, 'utf-8');
68
+ }
69
+ catch {
70
+ return '';
71
+ }
72
+ };
73
+ // Check 1: Gateway-to-spec sync
74
+ try {
75
+ const specPath = join(projectRoot, 'docs', 'specs', 'CLEO-OPERATIONS-REFERENCE.md');
76
+ const queryPath = join(projectRoot, 'src', 'mcp', 'gateways', 'query.ts');
77
+ const mutatePath = join(projectRoot, 'src', 'mcp', 'gateways', 'mutate.ts');
78
+ if (!existsSync(specPath)) {
79
+ addCheck('Gateway-to-spec sync', 'fail', 'CLEO-OPERATIONS-REFERENCE.md missing', [
80
+ {
81
+ severity: 'error',
82
+ category: 'spec',
83
+ message: 'Operations reference specification not found',
84
+ file: specPath,
85
+ recommendation: 'Create docs/specs/CLEO-OPERATIONS-REFERENCE.md with canonical operation definitions',
86
+ },
87
+ ]);
88
+ }
89
+ else if (!existsSync(queryPath) || !existsSync(mutatePath)) {
90
+ addCheck('Gateway-to-spec sync', 'fail', 'MCP gateway files missing', [
91
+ {
92
+ severity: 'error',
93
+ category: 'implementation',
94
+ message: 'MCP gateway files not found',
95
+ file: queryPath,
96
+ recommendation: 'Verify src/mcp/gateways/query.ts and mutate.ts exist',
97
+ },
98
+ ]);
99
+ }
100
+ else {
101
+ const specContent = safeRead(specPath);
102
+ const queryContent = safeRead(queryPath);
103
+ const mutateContent = safeRead(mutatePath);
104
+ // Extract operations from spec
105
+ const specOpsMatch = specContent.match(/## `([a-z_]+)`/g) || [];
106
+ const specOps = specOpsMatch.map((m) => m.replace(/## `|`/g, ''));
107
+ // Extract operations from gateways
108
+ const queryOpsMatch = queryContent.match(/case '([a-z_]+)':/g) || [];
109
+ const mutateOpsMatch = mutateContent.match(/case '([a-z_]+)':/g) || [];
110
+ const gatewayOps = [
111
+ ...queryOpsMatch.map((m) => m.replace(/case '|':/g, '')),
112
+ ...mutateOpsMatch.map((m) => m.replace(/case '|':/g, '')),
113
+ ];
114
+ // Find mismatches
115
+ const specOnly = specOps.filter((op) => !gatewayOps.includes(op));
116
+ const gatewayOnly = gatewayOps.filter((op) => !specOps.includes(op));
117
+ if (specOnly.length === 0 && gatewayOnly.length === 0) {
118
+ addCheck('Gateway-to-spec sync', 'pass', `All ${specOps.length} operations synchronized`);
119
+ }
120
+ else {
121
+ const issues = [];
122
+ if (specOnly.length > 0) {
123
+ issues.push({
124
+ severity: 'warning',
125
+ category: 'spec-coverage',
126
+ message: `${specOnly.length} operations in spec but not in gateways: ${specOnly.join(', ')}`,
127
+ recommendation: 'Add missing operation handlers to MCP gateways or remove from spec',
128
+ });
129
+ }
130
+ if (gatewayOnly.length > 0) {
131
+ issues.push({
132
+ severity: 'warning',
133
+ category: 'implementation-coverage',
134
+ message: `${gatewayOnly.length} operations in gateways but not in spec: ${gatewayOnly.join(', ')}`,
135
+ recommendation: 'Document missing operations in CLEO-OPERATIONS-REFERENCE.md',
136
+ });
137
+ }
138
+ addCheck('Gateway-to-spec sync', 'warn', `Found ${specOnly.length + gatewayOnly.length} operation mismatches`, issues);
139
+ }
140
+ }
141
+ }
142
+ catch (e) {
143
+ addCheck('Gateway-to-spec sync', 'fail', `Error: ${getErrorMessage(e)}`, [
144
+ {
145
+ severity: 'error',
146
+ category: 'system',
147
+ message: getErrorMessage(e),
148
+ recommendation: 'Check file permissions and paths',
149
+ },
150
+ ]);
151
+ }
152
+ // Check 2: CLI-to-core sync
153
+ try {
154
+ const cliDir = join(projectRoot, 'src', 'cli', 'commands');
155
+ const coreDir = join(projectRoot, 'src', 'core');
156
+ if (!existsSync(cliDir)) {
157
+ addCheck('CLI-to-core sync', 'fail', 'CLI commands directory missing', [
158
+ {
159
+ severity: 'error',
160
+ category: 'structure',
161
+ message: 'src/cli/commands/ directory not found',
162
+ recommendation: 'Verify TypeScript source structure is intact',
163
+ },
164
+ ]);
165
+ }
166
+ else if (!existsSync(coreDir)) {
167
+ addCheck('CLI-to-core sync', 'fail', 'Core directory missing', [
168
+ {
169
+ severity: 'error',
170
+ category: 'structure',
171
+ message: 'src/core/ directory not found',
172
+ recommendation: 'Verify TypeScript source structure is intact',
173
+ },
174
+ ]);
175
+ }
176
+ else {
177
+ const files = readdirSync(cliDir).filter((f) => f.endsWith('.ts') && !f.includes('.test.'));
178
+ addCheck('CLI-to-core sync', 'pass', `Found ${files.length} CLI command implementations`);
179
+ }
180
+ }
181
+ catch (e) {
182
+ addCheck('CLI-to-core sync', 'fail', `Error: ${getErrorMessage(e)}`);
183
+ }
184
+ // Check 3: Domain handler coverage
185
+ try {
186
+ const domainsDir = join(projectRoot, 'src', 'mcp', 'domains');
187
+ if (!existsSync(domainsDir)) {
188
+ addCheck('Domain handler coverage', 'fail', 'MCP domains directory missing', [
189
+ {
190
+ severity: 'error',
191
+ category: 'structure',
192
+ message: 'src/mcp/domains/ not found',
193
+ recommendation: 'Verify MCP domain handlers are in place',
194
+ },
195
+ ]);
196
+ }
197
+ else {
198
+ const files = readdirSync(domainsDir).filter((f) => f.endsWith('.ts'));
199
+ addCheck('Domain handler coverage', 'pass', `Found ${files.length} domain handlers`);
200
+ }
201
+ }
202
+ catch (e) {
203
+ addCheck('Domain handler coverage', 'fail', `Error: ${getErrorMessage(e)}`);
204
+ }
205
+ // Check 4: Capability matrix
206
+ try {
207
+ const matrixPath = join(projectRoot, 'src', 'dispatch', 'lib', 'capability-matrix.ts');
208
+ if (!existsSync(matrixPath)) {
209
+ addCheck('Capability matrix', 'fail', 'Capability matrix missing', [
210
+ {
211
+ severity: 'error',
212
+ category: 'configuration',
213
+ message: 'src/dispatch/lib/capability-matrix.ts not found',
214
+ recommendation: 'Create capability matrix to document supported operations',
215
+ },
216
+ ]);
217
+ }
218
+ else {
219
+ addCheck('Capability matrix', 'pass', 'Capability matrix exists');
220
+ }
221
+ }
222
+ catch (e) {
223
+ addCheck('Capability matrix', 'fail', `Error: ${getErrorMessage(e)}`);
224
+ }
225
+ // Check 5: Schema validation
226
+ try {
227
+ const schemaPath = join(projectRoot, 'src', 'store', 'schema.ts');
228
+ if (!existsSync(schemaPath)) {
229
+ addCheck('Schema validation', 'fail', 'Schema definition missing', [
230
+ {
231
+ severity: 'error',
232
+ category: 'data-model',
233
+ message: 'src/store/schema.ts not found',
234
+ recommendation: 'Create schema definition for database tables',
235
+ },
236
+ ]);
237
+ }
238
+ else {
239
+ const content = safeRead(schemaPath);
240
+ const tableCount = (content.match(/CREATE TABLE/g) || []).length;
241
+ if (tableCount === 0) {
242
+ addCheck('Schema validation', 'warn', 'Schema file exists but no CREATE TABLE statements', [
243
+ {
244
+ severity: 'warning',
245
+ category: 'data-model',
246
+ message: 'No SQL table definitions found in schema.ts',
247
+ recommendation: 'Add CREATE TABLE statements for all database entities',
248
+ },
249
+ ]);
250
+ }
251
+ else {
252
+ addCheck('Schema validation', 'pass', `Schema defines ${tableCount} tables`);
253
+ }
254
+ }
255
+ }
256
+ catch (e) {
257
+ addCheck('Schema validation', 'fail', `Error: ${getErrorMessage(e)}`);
258
+ }
259
+ // Check 6: Canonical identity
260
+ try {
261
+ const visionPath = join(projectRoot, 'docs', 'concepts', 'CLEO-VISION.md');
262
+ const specPath = join(projectRoot, 'docs', 'specs', 'PORTABLE-BRAIN-SPEC.md');
263
+ const issues = [];
264
+ if (!existsSync(visionPath)) {
265
+ issues.push({
266
+ severity: 'error',
267
+ category: 'vision',
268
+ message: 'Vision document missing',
269
+ file: visionPath,
270
+ recommendation: 'Create docs/concepts/CLEO-VISION.md with project vision',
271
+ });
272
+ }
273
+ if (!existsSync(specPath)) {
274
+ issues.push({
275
+ severity: 'error',
276
+ category: 'spec',
277
+ message: 'Portable Brain spec missing',
278
+ file: specPath,
279
+ recommendation: 'Create docs/specs/PORTABLE-BRAIN-SPEC.md with canonical pillars',
280
+ });
281
+ }
282
+ if (issues.length > 0) {
283
+ addCheck('Canonical identity', 'fail', 'Canonical documents missing', issues);
284
+ }
285
+ else {
286
+ const specContent = safeRead(specPath);
287
+ const requiredPillars = [
288
+ 'Portable Memory',
289
+ 'Provenance by Default',
290
+ 'Interoperable Interfaces',
291
+ 'Deterministic Safety',
292
+ 'Cognitive Retrieval',
293
+ ];
294
+ const missingPillars = requiredPillars.filter((p) => !specContent.includes(p));
295
+ if (missingPillars.length > 0) {
296
+ addCheck('Canonical identity', 'fail', `Missing ${missingPillars.length} canonical pillars`, [
297
+ {
298
+ severity: 'error',
299
+ category: 'vision',
300
+ message: `Missing pillars: ${missingPillars.join(', ')}`,
301
+ file: specPath,
302
+ recommendation: 'Add all five canonical pillars to PORTABLE-BRAIN-SPEC.md',
303
+ },
304
+ ]);
305
+ }
306
+ else {
307
+ addCheck('Canonical identity', 'pass', 'All canonical pillars documented');
308
+ }
309
+ }
310
+ }
311
+ catch (e) {
312
+ addCheck('Canonical identity', 'fail', `Error: ${getErrorMessage(e)}`);
313
+ }
314
+ // Check 7: Agent injection template
315
+ try {
316
+ const injectionPath = join(projectRoot, '.cleo', 'templates', 'CLEO-INJECTION.md');
317
+ if (!existsSync(injectionPath)) {
318
+ addCheck('Agent injection', 'fail', 'Agent injection template missing', [
319
+ {
320
+ severity: 'error',
321
+ category: 'agent-support',
322
+ message: 'CLEO-INJECTION.md not found',
323
+ file: injectionPath,
324
+ recommendation: 'Create agent injection template or run cleo init',
325
+ },
326
+ ]);
327
+ }
328
+ else {
329
+ const content = safeRead(injectionPath);
330
+ if (content.length < 100) {
331
+ addCheck('Agent injection', 'warn', 'Agent injection template appears incomplete', [
332
+ {
333
+ severity: 'warning',
334
+ category: 'agent-support',
335
+ message: 'Template file is unusually short',
336
+ recommendation: 'Verify template contains required agent instructions',
337
+ },
338
+ ]);
339
+ }
340
+ else {
341
+ addCheck('Agent injection', 'pass', 'Agent injection template exists');
342
+ }
343
+ }
344
+ }
345
+ catch (e) {
346
+ addCheck('Agent injection', 'fail', `Error: ${getErrorMessage(e)}`);
347
+ }
348
+ // Check 8: Exit codes
349
+ try {
350
+ const exitCodesPath = join(projectRoot, 'src', 'types', 'exit-codes.ts');
351
+ if (!existsSync(exitCodesPath)) {
352
+ addCheck('Exit codes', 'fail', 'Exit codes definition missing', [
353
+ {
354
+ severity: 'error',
355
+ category: 'protocol',
356
+ message: 'src/types/exit-codes.ts not found',
357
+ recommendation: 'Create exit codes enum for CLI protocol compliance',
358
+ },
359
+ ]);
360
+ }
361
+ else {
362
+ const content = safeRead(exitCodesPath);
363
+ const codeCount = (content.match(/= \d+/g) || []).length;
364
+ addCheck('Exit codes', 'pass', `${codeCount} exit codes defined`);
365
+ }
366
+ }
367
+ catch (e) {
368
+ addCheck('Exit codes', 'fail', `Error: ${getErrorMessage(e)}`);
369
+ }
370
+ // Generate top-level recommendations based on findings
371
+ if (result.summary.errors > 0) {
372
+ result.recommendations.push('Address all ERROR-level issues before proceeding');
373
+ result.recommendations.push('Run cleo detect-drift --json for structured output');
374
+ }
375
+ if (result.summary.warnings > 0) {
376
+ result.recommendations.push('Review WARNING-level issues for documentation improvements');
377
+ }
378
+ if (result.summary.errors === 0 && result.summary.warnings === 0) {
379
+ result.recommendations.push('Documentation is synchronized with implementation');
380
+ }
381
+ // Output via LAFS-compliant cliOutput
382
+ cliOutput(result, { command: 'detect-drift' });
383
+ // Exit with appropriate code for scripting
384
+ process.exit(result.summary.exitCode);
385
+ });
386
+ }
387
+ //# sourceMappingURL=detect-drift.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect-drift.js","sourceRoot":"","sources":["../../../src/cli/commands/detect-drift.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * CLI detect command — re-detect project type and update project-context.json.
3
+ *
4
+ * Standalone lightweight command that runs project detection without
5
+ * the full init or upgrade flow. Updates .cleo/project-context.json
6
+ * with fresh detection results.
7
+ */
8
+ import type { ShimCommand as Command } from '../commander-shim.js';
9
+ export declare function registerDetectCommand(program: Command): void;
10
+ //# sourceMappingURL=detect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/detect.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,WAAW,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGnE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiB5D"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * CLI detect command — re-detect project type and update project-context.json.
3
+ *
4
+ * Standalone lightweight command that runs project detection without
5
+ * the full init or upgrade flow. Updates .cleo/project-context.json
6
+ * with fresh detection results.
7
+ */
8
+ import { ensureProjectContext, getProjectRoot } from '@cleocode/core/internal';
9
+ import { cliOutput } from '../renderers/index.js';
10
+ export function registerDetectCommand(program) {
11
+ program
12
+ .command('detect')
13
+ .description('Re-detect project type and update project-context.json')
14
+ .action(async () => {
15
+ const projectRoot = getProjectRoot();
16
+ const result = await ensureProjectContext(projectRoot, { staleDays: 0 });
17
+ cliOutput({
18
+ action: result.action,
19
+ path: result.path,
20
+ details: result.details,
21
+ }, { command: 'detect' });
22
+ });
23
+ }
24
+ //# sourceMappingURL=detect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect.js","sourceRoot":"","sources":["../../../src/cli/commands/detect.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE/E,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,wDAAwD,CAAC;SACrE,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QAEzE,SAAS,CACP;YACE,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,EACD,EAAE,OAAO,EAAE,QAAQ,EAAE,CACtB,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * CLI docs command - documentation management with drift detection and gap checking.
3
+ * Ported from scripts/docs.sh
4
+ * @task T4551
5
+ * @epic T4545
6
+ */
7
+ import type { ShimCommand as Command } from '../commander-shim.js';
8
+ /**
9
+ * Register the docs command.
10
+ * @task T4551
11
+ */
12
+ export declare function registerDocsCommand(program: Command): void;
13
+ //# sourceMappingURL=docs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/docs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,WAAW,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAwHnE;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4E1D"}
@@ -0,0 +1,169 @@
1
+ /**
2
+ * CLI docs command - documentation management with drift detection and gap checking.
3
+ * Ported from scripts/docs.sh
4
+ * @task T4551
5
+ * @epic T4545
6
+ */
7
+ import { readdir, readFile } from 'node:fs/promises';
8
+ import { join } from 'node:path';
9
+ import { CleoError, formatError, getAgentOutputsAbsolute, readJson } from '@cleocode/core/internal';
10
+ import { cliOutput } from '../renderers/index.js';
11
+ /**
12
+ * Get list of script files from scripts/ directory.
13
+ * @task T4551
14
+ */
15
+ async function getScriptNames(projectRoot) {
16
+ const scriptsDir = join(projectRoot, 'scripts');
17
+ try {
18
+ const files = await readdir(scriptsDir);
19
+ return files
20
+ .filter((f) => f.endsWith('.sh'))
21
+ .map((f) => f.replace('.sh', ''))
22
+ .sort();
23
+ }
24
+ catch {
25
+ return [];
26
+ }
27
+ }
28
+ /**
29
+ * Get command names from COMMANDS-INDEX.json.
30
+ * @task T4551
31
+ */
32
+ async function getIndexedCommands(projectRoot) {
33
+ const indexPath = join(projectRoot, 'docs', 'commands', 'COMMANDS-INDEX.json');
34
+ const index = await readJson(indexPath);
35
+ if (!index)
36
+ return [];
37
+ return index.commands.map((c) => c.name).sort();
38
+ }
39
+ /**
40
+ * Run drift detection between scripts and documentation index.
41
+ * @task T4551
42
+ */
43
+ async function detectDrift(projectRoot) {
44
+ const scripts = await getScriptNames(projectRoot);
45
+ const indexed = await getIndexedCommands(projectRoot);
46
+ const scriptSet = new Set(scripts);
47
+ const indexSet = new Set(indexed);
48
+ const missingFromIndex = scripts.filter((s) => !indexSet.has(s));
49
+ const missingFromScripts = indexed.filter((i) => !scriptSet.has(i));
50
+ const warnings = [];
51
+ if (missingFromIndex.length > 0) {
52
+ warnings.push(`${missingFromIndex.length} scripts not in COMMANDS-INDEX.json`);
53
+ }
54
+ if (missingFromScripts.length > 0) {
55
+ warnings.push(`${missingFromScripts.length} index entries without scripts`);
56
+ }
57
+ let status = 'clean';
58
+ if (missingFromIndex.length > 0 || missingFromScripts.length > 0) {
59
+ status = missingFromIndex.length > 5 ? 'error' : 'warning';
60
+ }
61
+ return { status, missingFromIndex, missingFromScripts, warnings };
62
+ }
63
+ /**
64
+ * Run gap-check validation for review docs.
65
+ * @task T4551
66
+ */
67
+ async function runGapCheck(_projectRoot, filterId) {
68
+ const reviewDir = getAgentOutputsAbsolute();
69
+ const results = [];
70
+ try {
71
+ const files = await readdir(reviewDir);
72
+ const reviewFiles = files.filter((f) => f.endsWith('.md'));
73
+ for (const file of reviewFiles) {
74
+ // Check filter
75
+ if (filterId && !file.includes(filterId))
76
+ continue;
77
+ const filePath = join(reviewDir, file);
78
+ const content = await readFile(filePath, 'utf-8');
79
+ // Extract task ID from filename (e.g., T2402-protocol-spec.md)
80
+ const taskMatch = file.match(/^(T\d+)/);
81
+ const taskId = taskMatch ? taskMatch[1] : 'UNKNOWN';
82
+ const gaps = [];
83
+ // Check for required sections
84
+ if (!content.includes('## Summary')) {
85
+ gaps.push('Missing ## Summary section');
86
+ }
87
+ if (!content.includes('**Task**:') && !content.includes('**Task:**')) {
88
+ gaps.push('Missing Task provenance header');
89
+ }
90
+ if (gaps.length > 0) {
91
+ results.push({ file, taskId, gaps });
92
+ }
93
+ }
94
+ }
95
+ catch {
96
+ // Review directory might not exist
97
+ }
98
+ return results;
99
+ }
100
+ /**
101
+ * Register the docs command.
102
+ * @task T4551
103
+ */
104
+ export function registerDocsCommand(program) {
105
+ const docsCmd = program
106
+ .command('docs')
107
+ .description('Documentation management: drift detection and gap validation');
108
+ docsCmd
109
+ .command('sync')
110
+ .description('Run drift detection between scripts and docs index')
111
+ .option('--quick', 'Quick check (commands only)')
112
+ .option('--strict', 'Exit with error on any drift')
113
+ .action(async (opts) => {
114
+ try {
115
+ const projectRoot = process.cwd();
116
+ const result = await detectDrift(projectRoot);
117
+ cliOutput({
118
+ status: result.status,
119
+ missingFromIndex: result.missingFromIndex,
120
+ missingFromScripts: result.missingFromScripts,
121
+ warnings: result.warnings,
122
+ }, {
123
+ command: 'docs',
124
+ message: result.status === 'clean'
125
+ ? 'Documentation is in sync'
126
+ : `Drift detected: ${result.warnings.join('; ')}`,
127
+ });
128
+ if (opts['strict'] && result.status !== 'clean') {
129
+ process.exit(result.status === 'error' ? 2 : 1);
130
+ }
131
+ }
132
+ catch (err) {
133
+ if (err instanceof CleoError) {
134
+ console.error(formatError(err));
135
+ process.exit(err.code);
136
+ }
137
+ throw err;
138
+ }
139
+ });
140
+ docsCmd
141
+ .command('gap-check')
142
+ .description('Validate knowledge transfer from review docs to canonical docs')
143
+ .option('--epic <id>', 'Filter by epic ID')
144
+ .option('--task <id>', 'Filter by task ID')
145
+ .action(async (opts) => {
146
+ try {
147
+ const projectRoot = process.cwd();
148
+ const filterId = opts['epic'] ?? opts['task'];
149
+ const gaps = await runGapCheck(projectRoot, filterId);
150
+ if (gaps.length === 0) {
151
+ cliOutput({ gapCount: 0, results: [] }, { command: 'docs', message: 'No documentation gaps found' });
152
+ }
153
+ else {
154
+ cliOutput({
155
+ gapCount: gaps.length,
156
+ results: gaps,
157
+ }, { command: 'docs', message: `Found ${gaps.length} document(s) with gaps` });
158
+ }
159
+ }
160
+ catch (err) {
161
+ if (err instanceof CleoError) {
162
+ console.error(formatError(err));
163
+ process.exit(err.code);
164
+ }
165
+ throw err;
166
+ }
167
+ });
168
+ }
169
+ //# sourceMappingURL=docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../../src/cli/commands/docs.ts"],"names":[],"mappings":"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"}