@cleocode/cleo 2026.4.158 → 2026.5.0

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 (859) hide show
  1. package/dist/backfill/audit-columns.d.ts +105 -0
  2. package/dist/backfill/audit-columns.d.ts.map +1 -0
  3. package/dist/backfill/audit-columns.js +258 -0
  4. package/dist/backfill/audit-columns.js.map +1 -0
  5. package/dist/cli/commands/adapter.d.ts +28 -0
  6. package/dist/cli/commands/adapter.d.ts.map +1 -0
  7. package/dist/cli/commands/adapter.js +119 -0
  8. package/dist/cli/commands/adapter.js.map +1 -0
  9. package/dist/cli/commands/add-batch.d.ts +33 -0
  10. package/dist/cli/commands/add-batch.d.ts.map +1 -0
  11. package/dist/cli/commands/add-batch.js +148 -0
  12. package/dist/cli/commands/add-batch.js.map +1 -0
  13. package/dist/cli/commands/add.d.ts +162 -0
  14. package/dist/cli/commands/add.d.ts.map +1 -0
  15. package/dist/cli/commands/add.js +279 -0
  16. package/dist/cli/commands/add.js.map +1 -0
  17. package/dist/cli/commands/admin.d.ts +24 -0
  18. package/dist/cli/commands/admin.d.ts.map +1 -0
  19. package/dist/cli/commands/admin.js +283 -0
  20. package/dist/cli/commands/admin.js.map +1 -0
  21. package/dist/cli/commands/adr.d.ts +33 -0
  22. package/dist/cli/commands/adr.d.ts.map +1 -0
  23. package/dist/cli/commands/adr.js +147 -0
  24. package/dist/cli/commands/adr.js.map +1 -0
  25. package/dist/cli/commands/agent-profile-status.d.ts +98 -0
  26. package/dist/cli/commands/agent-profile-status.d.ts.map +1 -0
  27. package/dist/cli/commands/agent-profile-status.js +71 -0
  28. package/dist/cli/commands/agent-profile-status.js.map +1 -0
  29. package/dist/cli/commands/agent.d.ts +47 -0
  30. package/dist/cli/commands/agent.d.ts.map +1 -0
  31. package/dist/cli/commands/agent.js +2976 -0
  32. package/dist/cli/commands/agent.js.map +1 -0
  33. package/dist/cli/commands/analyze.d.ts +21 -0
  34. package/dist/cli/commands/analyze.d.ts.map +1 -0
  35. package/dist/cli/commands/analyze.js +32 -0
  36. package/dist/cli/commands/analyze.js.map +1 -0
  37. package/dist/cli/commands/archive-stats.d.ts +66 -0
  38. package/dist/cli/commands/archive-stats.d.ts.map +1 -0
  39. package/dist/cli/commands/archive-stats.js +93 -0
  40. package/dist/cli/commands/archive-stats.js.map +1 -0
  41. package/dist/cli/commands/archive.d.ts +42 -0
  42. package/dist/cli/commands/archive.d.ts.map +1 -0
  43. package/dist/cli/commands/archive.js +59 -0
  44. package/dist/cli/commands/archive.js.map +1 -0
  45. package/dist/cli/commands/audit.d.ts +22 -0
  46. package/dist/cli/commands/audit.d.ts.map +1 -0
  47. package/dist/cli/commands/audit.js +137 -0
  48. package/dist/cli/commands/audit.js.map +1 -0
  49. package/dist/cli/commands/backfill.d.ts +56 -0
  50. package/dist/cli/commands/backfill.d.ts.map +1 -0
  51. package/dist/cli/commands/backfill.js +161 -0
  52. package/dist/cli/commands/backfill.js.map +1 -0
  53. package/dist/cli/commands/backup-inspect.d.ts +33 -0
  54. package/dist/cli/commands/backup-inspect.d.ts.map +1 -0
  55. package/dist/cli/commands/backup-inspect.js +430 -0
  56. package/dist/cli/commands/backup-inspect.js.map +1 -0
  57. package/dist/cli/commands/backup.d.ts +23 -0
  58. package/dist/cli/commands/backup.d.ts.map +1 -0
  59. package/dist/cli/commands/backup.js +564 -0
  60. package/dist/cli/commands/backup.js.map +1 -0
  61. package/dist/cli/commands/blockers.d.ts +20 -0
  62. package/dist/cli/commands/blockers.d.ts.map +1 -0
  63. package/dist/cli/commands/blockers.js +31 -0
  64. package/dist/cli/commands/blockers.js.map +1 -0
  65. package/dist/cli/commands/brain.d.ts +37 -0
  66. package/dist/cli/commands/brain.d.ts.map +1 -0
  67. package/dist/cli/commands/brain.js +445 -0
  68. package/dist/cli/commands/brain.js.map +1 -0
  69. package/dist/cli/commands/briefing.d.ts +52 -0
  70. package/dist/cli/commands/briefing.d.ts.map +1 -0
  71. package/dist/cli/commands/briefing.js +69 -0
  72. package/dist/cli/commands/briefing.js.map +1 -0
  73. package/dist/cli/commands/bug.d.ts +61 -0
  74. package/dist/cli/commands/bug.d.ts.map +1 -0
  75. package/dist/cli/commands/bug.js +198 -0
  76. package/dist/cli/commands/bug.js.map +1 -0
  77. package/dist/cli/commands/cancel.d.ts +26 -0
  78. package/dist/cli/commands/cancel.d.ts.map +1 -0
  79. package/dist/cli/commands/cancel.js +40 -0
  80. package/dist/cli/commands/cancel.js.map +1 -0
  81. package/dist/cli/commands/cant.d.ts +13 -0
  82. package/dist/cli/commands/cant.d.ts.map +1 -0
  83. package/dist/cli/commands/cant.js +245 -0
  84. package/dist/cli/commands/cant.js.map +1 -0
  85. package/dist/cli/commands/chain.d.ts +24 -0
  86. package/dist/cli/commands/chain.d.ts.map +1 -0
  87. package/dist/cli/commands/chain.js +116 -0
  88. package/dist/cli/commands/chain.js.map +1 -0
  89. package/dist/cli/commands/check.d.ts +18 -0
  90. package/dist/cli/commands/check.d.ts.map +1 -0
  91. package/dist/cli/commands/check.js +280 -0
  92. package/dist/cli/commands/check.js.map +1 -0
  93. package/dist/cli/commands/checkpoint.d.ts +27 -0
  94. package/dist/cli/commands/checkpoint.d.ts.map +1 -0
  95. package/dist/cli/commands/checkpoint.js +105 -0
  96. package/dist/cli/commands/checkpoint.js.map +1 -0
  97. package/dist/cli/commands/claim.d.ts +35 -0
  98. package/dist/cli/commands/claim.d.ts.map +1 -0
  99. package/dist/cli/commands/claim.js +35 -0
  100. package/dist/cli/commands/claim.js.map +1 -0
  101. package/dist/cli/commands/code.d.ts +22 -0
  102. package/dist/cli/commands/code.d.ts.map +1 -0
  103. package/dist/cli/commands/code.js +161 -0
  104. package/dist/cli/commands/code.js.map +1 -0
  105. package/dist/cli/commands/complete.d.ts +49 -0
  106. package/dist/cli/commands/complete.d.ts.map +1 -0
  107. package/dist/cli/commands/complete.js +83 -0
  108. package/dist/cli/commands/complete.js.map +1 -0
  109. package/dist/cli/commands/complexity.d.ts +13 -0
  110. package/dist/cli/commands/complexity.d.ts.map +1 -0
  111. package/dist/cli/commands/complexity.js +32 -0
  112. package/dist/cli/commands/complexity.js.map +1 -0
  113. package/dist/cli/commands/compliance.d.ts +27 -0
  114. package/dist/cli/commands/compliance.d.ts.map +1 -0
  115. package/dist/cli/commands/compliance.js +233 -0
  116. package/dist/cli/commands/compliance.js.map +1 -0
  117. package/dist/cli/commands/conduit.d.ts +28 -0
  118. package/dist/cli/commands/conduit.d.ts.map +1 -0
  119. package/dist/cli/commands/conduit.js +279 -0
  120. package/dist/cli/commands/conduit.js.map +1 -0
  121. package/dist/cli/commands/config.d.ts +25 -0
  122. package/dist/cli/commands/config.d.ts.map +1 -0
  123. package/dist/cli/commands/config.js +132 -0
  124. package/dist/cli/commands/config.js.map +1 -0
  125. package/dist/cli/commands/consensus.d.ts +21 -0
  126. package/dist/cli/commands/consensus.d.ts.map +1 -0
  127. package/dist/cli/commands/consensus.js +100 -0
  128. package/dist/cli/commands/consensus.js.map +1 -0
  129. package/dist/cli/commands/context.d.ts +19 -0
  130. package/dist/cli/commands/context.d.ts.map +1 -0
  131. package/dist/cli/commands/context.js +111 -0
  132. package/dist/cli/commands/context.js.map +1 -0
  133. package/dist/cli/commands/contribution.d.ts +21 -0
  134. package/dist/cli/commands/contribution.d.ts.map +1 -0
  135. package/dist/cli/commands/contribution.js +90 -0
  136. package/dist/cli/commands/contribution.js.map +1 -0
  137. package/dist/cli/commands/current.d.ts +18 -0
  138. package/dist/cli/commands/current.d.ts.map +1 -0
  139. package/dist/cli/commands/current.js +28 -0
  140. package/dist/cli/commands/current.js.map +1 -0
  141. package/dist/cli/commands/daemon.d.ts +36 -0
  142. package/dist/cli/commands/daemon.d.ts.map +1 -0
  143. package/dist/cli/commands/daemon.js +223 -0
  144. package/dist/cli/commands/daemon.js.map +1 -0
  145. package/dist/cli/commands/dash.d.ts +23 -0
  146. package/dist/cli/commands/dash.d.ts.map +1 -0
  147. package/dist/cli/commands/dash.js +38 -0
  148. package/dist/cli/commands/dash.js.map +1 -0
  149. package/dist/cli/commands/decomposition.d.ts +13 -0
  150. package/dist/cli/commands/decomposition.d.ts.map +1 -0
  151. package/dist/cli/commands/decomposition.js +92 -0
  152. package/dist/cli/commands/decomposition.js.map +1 -0
  153. package/dist/cli/commands/delete.d.ts +29 -0
  154. package/dist/cli/commands/delete.d.ts.map +1 -0
  155. package/dist/cli/commands/delete.js +55 -0
  156. package/dist/cli/commands/delete.js.map +1 -0
  157. package/dist/cli/commands/deps.d.ts +45 -0
  158. package/dist/cli/commands/deps.d.ts.map +1 -0
  159. package/dist/cli/commands/deps.js +170 -0
  160. package/dist/cli/commands/deps.js.map +1 -0
  161. package/dist/cli/commands/detect-drift.d.ts +23 -0
  162. package/dist/cli/commands/detect-drift.d.ts.map +1 -0
  163. package/dist/cli/commands/detect-drift.js +440 -0
  164. package/dist/cli/commands/detect-drift.js.map +1 -0
  165. package/dist/cli/commands/detect.d.ts +3 -0
  166. package/dist/cli/commands/detect.d.ts.map +1 -0
  167. package/dist/cli/commands/detect.js +14 -0
  168. package/dist/cli/commands/detect.js.map +1 -0
  169. package/dist/cli/commands/diagnostics.d.ts +19 -0
  170. package/dist/cli/commands/diagnostics.d.ts.map +1 -0
  171. package/dist/cli/commands/diagnostics.js +109 -0
  172. package/dist/cli/commands/diagnostics.js.map +1 -0
  173. package/dist/cli/commands/docs.d.ts +25 -0
  174. package/dist/cli/commands/docs.d.ts.map +1 -0
  175. package/dist/cli/commands/docs.js +798 -0
  176. package/dist/cli/commands/docs.js.map +1 -0
  177. package/dist/cli/commands/doctor-projects.d.ts +101 -0
  178. package/dist/cli/commands/doctor-projects.d.ts.map +1 -0
  179. package/dist/cli/commands/doctor-projects.js +188 -0
  180. package/dist/cli/commands/doctor-projects.js.map +1 -0
  181. package/dist/cli/commands/doctor.d.ts +66 -0
  182. package/dist/cli/commands/doctor.d.ts.map +1 -0
  183. package/dist/cli/commands/doctor.js +178 -0
  184. package/dist/cli/commands/doctor.js.map +1 -0
  185. package/dist/cli/commands/dynamic.d.ts +15 -0
  186. package/dist/cli/commands/dynamic.d.ts.map +1 -0
  187. package/dist/cli/commands/dynamic.js +21 -0
  188. package/dist/cli/commands/dynamic.js.map +1 -0
  189. package/dist/cli/commands/exists.d.ts +13 -0
  190. package/dist/cli/commands/exists.d.ts.map +1 -0
  191. package/dist/cli/commands/exists.js +40 -0
  192. package/dist/cli/commands/exists.js.map +1 -0
  193. package/dist/cli/commands/export-tasks.d.ts +46 -0
  194. package/dist/cli/commands/export-tasks.d.ts.map +1 -0
  195. package/dist/cli/commands/export-tasks.js +81 -0
  196. package/dist/cli/commands/export-tasks.js.map +1 -0
  197. package/dist/cli/commands/export.d.ts +35 -0
  198. package/dist/cli/commands/export.d.ts.map +1 -0
  199. package/dist/cli/commands/export.js +68 -0
  200. package/dist/cli/commands/export.js.map +1 -0
  201. package/dist/cli/commands/find.d.ts +54 -0
  202. package/dist/cli/commands/find.d.ts.map +1 -0
  203. package/dist/cli/commands/find.js +92 -0
  204. package/dist/cli/commands/find.js.map +1 -0
  205. package/dist/cli/commands/gc.d.ts +25 -0
  206. package/dist/cli/commands/gc.d.ts.map +1 -0
  207. package/dist/cli/commands/gc.js +165 -0
  208. package/dist/cli/commands/gc.js.map +1 -0
  209. package/dist/cli/commands/generate-changelog.d.ts +30 -0
  210. package/dist/cli/commands/generate-changelog.d.ts.map +1 -0
  211. package/dist/cli/commands/generate-changelog.js +270 -0
  212. package/dist/cli/commands/generate-changelog.js.map +1 -0
  213. package/dist/cli/commands/grade.d.ts +13 -0
  214. package/dist/cli/commands/grade.d.ts.map +1 -0
  215. package/dist/cli/commands/grade.js +27 -0
  216. package/dist/cli/commands/grade.js.map +1 -0
  217. package/dist/cli/commands/history.d.ts +13 -0
  218. package/dist/cli/commands/history.d.ts.map +1 -0
  219. package/dist/cli/commands/history.js +65 -0
  220. package/dist/cli/commands/history.js.map +1 -0
  221. package/dist/cli/commands/import-tasks.d.ts +60 -0
  222. package/dist/cli/commands/import-tasks.d.ts.map +1 -0
  223. package/dist/cli/commands/import-tasks.js +83 -0
  224. package/dist/cli/commands/import-tasks.js.map +1 -0
  225. package/dist/cli/commands/import.d.ts +42 -0
  226. package/dist/cli/commands/import.d.ts.map +1 -0
  227. package/dist/cli/commands/import.js +64 -0
  228. package/dist/cli/commands/import.js.map +1 -0
  229. package/dist/cli/commands/init.d.ts +65 -0
  230. package/dist/cli/commands/init.d.ts.map +1 -0
  231. package/dist/cli/commands/init.js +122 -0
  232. package/dist/cli/commands/init.js.map +1 -0
  233. package/dist/cli/commands/inject.d.ts +41 -0
  234. package/dist/cli/commands/inject.d.ts.map +1 -0
  235. package/dist/cli/commands/inject.js +56 -0
  236. package/dist/cli/commands/inject.js.map +1 -0
  237. package/dist/cli/commands/install-global.d.ts +48 -0
  238. package/dist/cli/commands/install-global.d.ts.map +1 -0
  239. package/dist/cli/commands/install-global.js +104 -0
  240. package/dist/cli/commands/install-global.js.map +1 -0
  241. package/dist/cli/commands/intelligence.d.ts +21 -0
  242. package/dist/cli/commands/intelligence.d.ts.map +1 -0
  243. package/dist/cli/commands/intelligence.js +145 -0
  244. package/dist/cli/commands/intelligence.js.map +1 -0
  245. package/dist/cli/commands/issue.d.ts +23 -0
  246. package/dist/cli/commands/issue.d.ts.map +1 -0
  247. package/dist/cli/commands/issue.js +152 -0
  248. package/dist/cli/commands/issue.js.map +1 -0
  249. package/dist/cli/commands/labels.d.ts +21 -0
  250. package/dist/cli/commands/labels.d.ts.map +1 -0
  251. package/dist/cli/commands/labels.js +65 -0
  252. package/dist/cli/commands/labels.js.map +1 -0
  253. package/dist/cli/commands/lifecycle.d.ts +25 -0
  254. package/dist/cli/commands/lifecycle.d.ts.map +1 -0
  255. package/dist/cli/commands/lifecycle.js +221 -0
  256. package/dist/cli/commands/lifecycle.js.map +1 -0
  257. package/dist/cli/commands/list.d.ts +28 -0
  258. package/dist/cli/commands/list.d.ts.map +1 -0
  259. package/dist/cli/commands/list.js +81 -0
  260. package/dist/cli/commands/list.js.map +1 -0
  261. package/dist/cli/commands/log.d.ts +36 -0
  262. package/dist/cli/commands/log.d.ts.map +1 -0
  263. package/dist/cli/commands/log.js +50 -0
  264. package/dist/cli/commands/log.js.map +1 -0
  265. package/dist/cli/commands/manifest.d.ts +15 -0
  266. package/dist/cli/commands/manifest.d.ts.map +1 -0
  267. package/dist/cli/commands/manifest.js +334 -0
  268. package/dist/cli/commands/manifest.js.map +1 -0
  269. package/dist/cli/commands/map.d.ts +25 -0
  270. package/dist/cli/commands/map.d.ts.map +1 -0
  271. package/dist/cli/commands/map.js +37 -0
  272. package/dist/cli/commands/map.js.map +1 -0
  273. package/dist/cli/commands/memory.d.ts +48 -0
  274. package/dist/cli/commands/memory.d.ts.map +1 -0
  275. package/dist/cli/commands/memory.js +2439 -0
  276. package/dist/cli/commands/memory.js.map +1 -0
  277. package/dist/cli/commands/migrate-claude-mem.d.ts +23 -0
  278. package/dist/cli/commands/migrate-claude-mem.d.ts.map +1 -0
  279. package/dist/cli/commands/migrate-claude-mem.js +181 -0
  280. package/dist/cli/commands/migrate-claude-mem.js.map +1 -0
  281. package/dist/cli/commands/next.d.ts +27 -0
  282. package/dist/cli/commands/next.d.ts.map +1 -0
  283. package/dist/cli/commands/next.js +40 -0
  284. package/dist/cli/commands/next.js.map +1 -0
  285. package/dist/cli/commands/nexus.d.ts +15 -0
  286. package/dist/cli/commands/nexus.d.ts.map +1 -0
  287. package/dist/cli/commands/nexus.js +3377 -0
  288. package/dist/cli/commands/nexus.js.map +1 -0
  289. package/dist/cli/commands/ops.d.ts +23 -0
  290. package/dist/cli/commands/ops.d.ts.map +1 -0
  291. package/dist/cli/commands/ops.js +35 -0
  292. package/dist/cli/commands/ops.js.map +1 -0
  293. package/dist/cli/commands/orchestrate.d.ts +48 -0
  294. package/dist/cli/commands/orchestrate.d.ts.map +1 -0
  295. package/dist/cli/commands/orchestrate.js +774 -0
  296. package/dist/cli/commands/orchestrate.js.map +1 -0
  297. package/dist/cli/commands/otel.d.ts +30 -0
  298. package/dist/cli/commands/otel.d.ts.map +1 -0
  299. package/dist/cli/commands/otel.js +193 -0
  300. package/dist/cli/commands/otel.js.map +1 -0
  301. package/dist/cli/commands/phase.d.ts +29 -0
  302. package/dist/cli/commands/phase.d.ts.map +1 -0
  303. package/dist/cli/commands/phase.js +189 -0
  304. package/dist/cli/commands/phase.js.map +1 -0
  305. package/dist/cli/commands/pivot.d.ts +34 -0
  306. package/dist/cli/commands/pivot.d.ts.map +1 -0
  307. package/dist/cli/commands/pivot.js +50 -0
  308. package/dist/cli/commands/pivot.js.map +1 -0
  309. package/dist/cli/commands/plan.d.ts +17 -0
  310. package/dist/cli/commands/plan.d.ts.map +1 -0
  311. package/dist/cli/commands/plan.js +27 -0
  312. package/dist/cli/commands/plan.js.map +1 -0
  313. package/dist/cli/commands/playbook.d.ts +26 -0
  314. package/dist/cli/commands/playbook.d.ts.map +1 -0
  315. package/dist/cli/commands/playbook.js +220 -0
  316. package/dist/cli/commands/playbook.js.map +1 -0
  317. package/dist/cli/commands/promote.d.ts +19 -0
  318. package/dist/cli/commands/promote.d.ts.map +1 -0
  319. package/dist/cli/commands/promote.js +27 -0
  320. package/dist/cli/commands/promote.js.map +1 -0
  321. package/dist/cli/commands/provider.d.ts +23 -0
  322. package/dist/cli/commands/provider.d.ts.map +1 -0
  323. package/dist/cli/commands/provider.js +168 -0
  324. package/dist/cli/commands/provider.js.map +1 -0
  325. package/dist/cli/commands/reason.d.ts +18 -0
  326. package/dist/cli/commands/reason.d.ts.map +1 -0
  327. package/dist/cli/commands/reason.js +102 -0
  328. package/dist/cli/commands/reason.js.map +1 -0
  329. package/dist/cli/commands/reconcile.d.ts +35 -0
  330. package/dist/cli/commands/reconcile.d.ts.map +1 -0
  331. package/dist/cli/commands/reconcile.js +102 -0
  332. package/dist/cli/commands/reconcile.js.map +1 -0
  333. package/dist/cli/commands/refresh-memory.d.ts +16 -0
  334. package/dist/cli/commands/refresh-memory.d.ts.map +1 -0
  335. package/dist/cli/commands/refresh-memory.js +34 -0
  336. package/dist/cli/commands/refresh-memory.js.map +1 -0
  337. package/dist/cli/commands/relates.d.ts +19 -0
  338. package/dist/cli/commands/relates.d.ts.map +1 -0
  339. package/dist/cli/commands/relates.js +129 -0
  340. package/dist/cli/commands/relates.js.map +1 -0
  341. package/dist/cli/commands/release.d.ts +27 -0
  342. package/dist/cli/commands/release.d.ts.map +1 -0
  343. package/dist/cli/commands/release.js +300 -0
  344. package/dist/cli/commands/release.js.map +1 -0
  345. package/dist/cli/commands/remote.d.ts +49 -0
  346. package/dist/cli/commands/remote.d.ts.map +1 -0
  347. package/dist/cli/commands/remote.js +265 -0
  348. package/dist/cli/commands/remote.js.map +1 -0
  349. package/dist/cli/commands/reorder.d.ts +31 -0
  350. package/dist/cli/commands/reorder.d.ts.map +1 -0
  351. package/dist/cli/commands/reorder.js +57 -0
  352. package/dist/cli/commands/reorder.js.map +1 -0
  353. package/dist/cli/commands/reparent.d.ts +27 -0
  354. package/dist/cli/commands/reparent.d.ts.map +1 -0
  355. package/dist/cli/commands/reparent.js +36 -0
  356. package/dist/cli/commands/reparent.js.map +1 -0
  357. package/dist/cli/commands/req.d.ts +37 -0
  358. package/dist/cli/commands/req.d.ts.map +1 -0
  359. package/dist/cli/commands/req.js +121 -0
  360. package/dist/cli/commands/req.js.map +1 -0
  361. package/dist/cli/commands/research.d.ts +25 -0
  362. package/dist/cli/commands/research.d.ts.map +1 -0
  363. package/dist/cli/commands/research.js +327 -0
  364. package/dist/cli/commands/research.js.map +1 -0
  365. package/dist/cli/commands/restore.d.ts +64 -0
  366. package/dist/cli/commands/restore.d.ts.map +1 -0
  367. package/dist/cli/commands/restore.js +539 -0
  368. package/dist/cli/commands/restore.js.map +1 -0
  369. package/dist/cli/commands/revert.d.ts +79 -0
  370. package/dist/cli/commands/revert.d.ts.map +1 -0
  371. package/dist/cli/commands/revert.js +300 -0
  372. package/dist/cli/commands/revert.js.map +1 -0
  373. package/dist/cli/commands/roadmap.d.ts +29 -0
  374. package/dist/cli/commands/roadmap.d.ts.map +1 -0
  375. package/dist/cli/commands/roadmap.js +43 -0
  376. package/dist/cli/commands/roadmap.js.map +1 -0
  377. package/dist/cli/commands/safestop.d.ts +41 -0
  378. package/dist/cli/commands/safestop.d.ts.map +1 -0
  379. package/dist/cli/commands/safestop.js +62 -0
  380. package/dist/cli/commands/safestop.js.map +1 -0
  381. package/dist/cli/commands/schema.d.ts +44 -0
  382. package/dist/cli/commands/schema.d.ts.map +1 -0
  383. package/dist/cli/commands/schema.js +177 -0
  384. package/dist/cli/commands/schema.js.map +1 -0
  385. package/dist/cli/commands/self-update.d.ts +81 -0
  386. package/dist/cli/commands/self-update.d.ts.map +1 -0
  387. package/dist/cli/commands/self-update.js +483 -0
  388. package/dist/cli/commands/self-update.js.map +1 -0
  389. package/dist/cli/commands/sentient.d.ts +44 -0
  390. package/dist/cli/commands/sentient.d.ts.map +1 -0
  391. package/dist/cli/commands/sentient.js +687 -0
  392. package/dist/cli/commands/sentient.js.map +1 -0
  393. package/dist/cli/commands/sequence.d.ts +15 -0
  394. package/dist/cli/commands/sequence.d.ts.map +1 -0
  395. package/dist/cli/commands/sequence.js +68 -0
  396. package/dist/cli/commands/sequence.js.map +1 -0
  397. package/dist/cli/commands/session.d.ts +32 -0
  398. package/dist/cli/commands/session.d.ts.map +1 -0
  399. package/dist/cli/commands/session.js +583 -0
  400. package/dist/cli/commands/session.js.map +1 -0
  401. package/dist/cli/commands/show.d.ts +21 -0
  402. package/dist/cli/commands/show.d.ts.map +1 -0
  403. package/dist/cli/commands/show.js +37 -0
  404. package/dist/cli/commands/show.js.map +1 -0
  405. package/dist/cli/commands/skills.d.ts +31 -0
  406. package/dist/cli/commands/skills.d.ts.map +1 -0
  407. package/dist/cli/commands/skills.js +303 -0
  408. package/dist/cli/commands/skills.js.map +1 -0
  409. package/dist/cli/commands/snapshot.d.ts +17 -0
  410. package/dist/cli/commands/snapshot.d.ts.map +1 -0
  411. package/dist/cli/commands/snapshot.js +95 -0
  412. package/dist/cli/commands/snapshot.js.map +1 -0
  413. package/dist/cli/commands/start.d.ts +21 -0
  414. package/dist/cli/commands/start.d.ts.map +1 -0
  415. package/dist/cli/commands/start.js +32 -0
  416. package/dist/cli/commands/start.js.map +1 -0
  417. package/dist/cli/commands/stats.d.ts +30 -0
  418. package/dist/cli/commands/stats.d.ts.map +1 -0
  419. package/dist/cli/commands/stats.js +71 -0
  420. package/dist/cli/commands/stats.js.map +1 -0
  421. package/dist/cli/commands/sticky.d.ts +23 -0
  422. package/dist/cli/commands/sticky.d.ts.map +1 -0
  423. package/dist/cli/commands/sticky.js +315 -0
  424. package/dist/cli/commands/sticky.js.map +1 -0
  425. package/dist/cli/commands/stop.d.ts +15 -0
  426. package/dist/cli/commands/stop.d.ts.map +1 -0
  427. package/dist/cli/commands/stop.js +25 -0
  428. package/dist/cli/commands/stop.js.map +1 -0
  429. package/dist/cli/commands/sync.d.ts +25 -0
  430. package/dist/cli/commands/sync.d.ts.map +1 -0
  431. package/dist/cli/commands/sync.js +125 -0
  432. package/dist/cli/commands/sync.js.map +1 -0
  433. package/dist/cli/commands/testing.d.ts +22 -0
  434. package/dist/cli/commands/testing.d.ts.map +1 -0
  435. package/dist/cli/commands/testing.js +111 -0
  436. package/dist/cli/commands/testing.js.map +1 -0
  437. package/dist/cli/commands/token.d.ts +22 -0
  438. package/dist/cli/commands/token.d.ts.map +1 -0
  439. package/dist/cli/commands/token.js +197 -0
  440. package/dist/cli/commands/token.js.map +1 -0
  441. package/dist/cli/commands/transcript.d.ts +32 -0
  442. package/dist/cli/commands/transcript.d.ts.map +1 -0
  443. package/dist/cli/commands/transcript.js +526 -0
  444. package/dist/cli/commands/transcript.js.map +1 -0
  445. package/dist/cli/commands/update.d.ts +164 -0
  446. package/dist/cli/commands/update.d.ts.map +1 -0
  447. package/dist/cli/commands/update.js +234 -0
  448. package/dist/cli/commands/update.js.map +1 -0
  449. package/dist/cli/commands/upgrade.d.ts +76 -0
  450. package/dist/cli/commands/upgrade.d.ts.map +1 -0
  451. package/dist/cli/commands/upgrade.js +154 -0
  452. package/dist/cli/commands/upgrade.js.map +1 -0
  453. package/dist/cli/commands/verify.d.ts +83 -0
  454. package/dist/cli/commands/verify.d.ts.map +1 -0
  455. package/dist/cli/commands/verify.js +108 -0
  456. package/dist/cli/commands/verify.js.map +1 -0
  457. package/dist/cli/commands/web.d.ts +27 -0
  458. package/dist/cli/commands/web.d.ts.map +1 -0
  459. package/dist/cli/commands/web.js +414 -0
  460. package/dist/cli/commands/web.js.map +1 -0
  461. package/dist/cli/field-context.d.ts +32 -0
  462. package/dist/cli/field-context.d.ts.map +1 -0
  463. package/dist/cli/field-context.js +47 -0
  464. package/dist/cli/field-context.js.map +1 -0
  465. package/dist/cli/format-context.d.ts +32 -0
  466. package/dist/cli/format-context.d.ts.map +1 -0
  467. package/dist/cli/format-context.js +50 -0
  468. package/dist/cli/format-context.js.map +1 -0
  469. package/dist/cli/help-renderer.d.ts +40 -0
  470. package/dist/cli/help-renderer.d.ts.map +1 -0
  471. package/dist/cli/help-renderer.js +325 -0
  472. package/dist/cli/help-renderer.js.map +1 -0
  473. package/dist/cli/index.d.ts +14 -0
  474. package/dist/cli/index.d.ts.map +1 -0
  475. package/dist/cli/index.js +1535 -9704
  476. package/dist/cli/index.js.map +4 -4
  477. package/dist/cli/infer-files-via-gitnexus.d.ts +12 -0
  478. package/dist/cli/infer-files-via-gitnexus.d.ts.map +1 -0
  479. package/dist/cli/infer-files-via-gitnexus.js +12 -0
  480. package/dist/cli/infer-files-via-gitnexus.js.map +1 -0
  481. package/dist/cli/lib/did-you-mean.d.ts +30 -0
  482. package/dist/cli/lib/did-you-mean.d.ts.map +1 -0
  483. package/dist/cli/lib/did-you-mean.js +63 -0
  484. package/dist/cli/lib/did-you-mean.js.map +1 -0
  485. package/dist/cli/lib/registry-args.d.ts +36 -0
  486. package/dist/cli/lib/registry-args.d.ts.map +1 -0
  487. package/dist/cli/lib/registry-args.js +37 -0
  488. package/dist/cli/lib/registry-args.js.map +1 -0
  489. package/dist/cli/lib/subcommand-guard.d.ts +45 -0
  490. package/dist/cli/lib/subcommand-guard.d.ts.map +1 -0
  491. package/dist/cli/lib/subcommand-guard.js +55 -0
  492. package/dist/cli/lib/subcommand-guard.js.map +1 -0
  493. package/dist/cli/logger-bootstrap.d.ts +6 -0
  494. package/dist/cli/logger-bootstrap.d.ts.map +1 -0
  495. package/dist/cli/logger-bootstrap.js +10 -0
  496. package/dist/cli/logger-bootstrap.js.map +1 -0
  497. package/dist/cli/middleware/output-format.d.ts +30 -0
  498. package/dist/cli/middleware/output-format.d.ts.map +1 -0
  499. package/dist/cli/middleware/output-format.js +35 -0
  500. package/dist/cli/middleware/output-format.js.map +1 -0
  501. package/dist/cli/paths.d.ts +85 -0
  502. package/dist/cli/paths.d.ts.map +1 -0
  503. package/dist/cli/paths.js +108 -0
  504. package/dist/cli/paths.js.map +1 -0
  505. package/dist/cli/progress.d.ts +89 -0
  506. package/dist/cli/progress.d.ts.map +1 -0
  507. package/dist/cli/progress.js +185 -0
  508. package/dist/cli/progress.js.map +1 -0
  509. package/dist/cli/renderers/colors.d.ts +32 -0
  510. package/dist/cli/renderers/colors.d.ts.map +1 -0
  511. package/dist/cli/renderers/colors.js +141 -0
  512. package/dist/cli/renderers/colors.js.map +1 -0
  513. package/dist/cli/renderers/error.d.ts +13 -0
  514. package/dist/cli/renderers/error.d.ts.map +1 -0
  515. package/dist/cli/renderers/error.js +42 -0
  516. package/dist/cli/renderers/error.js.map +1 -0
  517. package/dist/cli/renderers/index.d.ts +90 -0
  518. package/dist/cli/renderers/index.d.ts.map +1 -0
  519. package/dist/cli/renderers/index.js +268 -0
  520. package/dist/cli/renderers/index.js.map +1 -0
  521. package/dist/cli/renderers/lafs-validator.d.ts +91 -0
  522. package/dist/cli/renderers/lafs-validator.d.ts.map +1 -0
  523. package/dist/cli/renderers/lafs-validator.js +176 -0
  524. package/dist/cli/renderers/lafs-validator.js.map +1 -0
  525. package/dist/cli/renderers/normalizer.d.ts +21 -0
  526. package/dist/cli/renderers/normalizer.d.ts.map +1 -0
  527. package/dist/cli/renderers/normalizer.js +106 -0
  528. package/dist/cli/renderers/normalizer.js.map +1 -0
  529. package/dist/cli/renderers/system.d.ts +110 -0
  530. package/dist/cli/renderers/system.d.ts.map +1 -0
  531. package/dist/cli/renderers/system.js +662 -0
  532. package/dist/cli/renderers/system.js.map +1 -0
  533. package/dist/cli/renderers/tasks.d.ts +28 -0
  534. package/dist/cli/renderers/tasks.d.ts.map +1 -0
  535. package/dist/cli/renderers/tasks.js +306 -0
  536. package/dist/cli/renderers/tasks.js.map +1 -0
  537. package/dist/cli/tree-context.d.ts +53 -0
  538. package/dist/cli/tree-context.d.ts.map +1 -0
  539. package/dist/cli/tree-context.js +43 -0
  540. package/dist/cli/tree-context.js.map +1 -0
  541. package/dist/dispatch/adapters/cli.d.ts +67 -0
  542. package/dist/dispatch/adapters/cli.d.ts.map +1 -0
  543. package/dist/dispatch/adapters/cli.js +331 -0
  544. package/dist/dispatch/adapters/cli.js.map +1 -0
  545. package/dist/dispatch/adapters/typed.d.ts +362 -0
  546. package/dist/dispatch/adapters/typed.d.ts.map +1 -0
  547. package/dist/dispatch/adapters/typed.js +278 -0
  548. package/dist/dispatch/adapters/typed.js.map +1 -0
  549. package/dist/dispatch/context/session-context.d.ts +108 -0
  550. package/dist/dispatch/context/session-context.d.ts.map +1 -0
  551. package/dist/dispatch/context/session-context.js +111 -0
  552. package/dist/dispatch/context/session-context.js.map +1 -0
  553. package/dist/dispatch/dispatcher.d.ts +37 -0
  554. package/dist/dispatch/dispatcher.d.ts.map +1 -0
  555. package/dist/dispatch/dispatcher.js +172 -0
  556. package/dist/dispatch/dispatcher.js.map +1 -0
  557. package/dist/dispatch/domains/_base.d.ts +104 -0
  558. package/dist/dispatch/domains/_base.d.ts.map +1 -0
  559. package/dist/dispatch/domains/_base.js +147 -0
  560. package/dist/dispatch/domains/_base.js.map +1 -0
  561. package/dist/dispatch/domains/_meta.d.ts +23 -0
  562. package/dist/dispatch/domains/_meta.d.ts.map +1 -0
  563. package/dist/dispatch/domains/_meta.js +25 -0
  564. package/dist/dispatch/domains/_meta.js.map +1 -0
  565. package/dist/dispatch/domains/_routing.d.ts +8 -0
  566. package/dist/dispatch/domains/_routing.d.ts.map +1 -0
  567. package/dist/dispatch/domains/_routing.js +20 -0
  568. package/dist/dispatch/domains/_routing.js.map +1 -0
  569. package/dist/dispatch/domains/admin/smoke-provider.d.ts +54 -0
  570. package/dist/dispatch/domains/admin/smoke-provider.d.ts.map +1 -0
  571. package/dist/dispatch/domains/admin/smoke-provider.js +309 -0
  572. package/dist/dispatch/domains/admin/smoke-provider.js.map +1 -0
  573. package/dist/dispatch/domains/admin.d.ts +51 -0
  574. package/dist/dispatch/domains/admin.d.ts.map +1 -0
  575. package/dist/dispatch/domains/admin.js +1163 -0
  576. package/dist/dispatch/domains/admin.js.map +1 -0
  577. package/dist/dispatch/domains/check/canon.d.ts +65 -0
  578. package/dist/dispatch/domains/check/canon.d.ts.map +1 -0
  579. package/dist/dispatch/domains/check/canon.js +193 -0
  580. package/dist/dispatch/domains/check/canon.js.map +1 -0
  581. package/dist/dispatch/domains/check.d.ts +37 -0
  582. package/dist/dispatch/domains/check.d.ts.map +1 -0
  583. package/dist/dispatch/domains/check.js +562 -0
  584. package/dist/dispatch/domains/check.js.map +1 -0
  585. package/dist/dispatch/domains/conduit.d.ts +61 -0
  586. package/dist/dispatch/domains/conduit.d.ts.map +1 -0
  587. package/dist/dispatch/domains/conduit.js +609 -0
  588. package/dist/dispatch/domains/conduit.js.map +1 -0
  589. package/dist/dispatch/domains/diagnostics.d.ts +25 -0
  590. package/dist/dispatch/domains/diagnostics.d.ts.map +1 -0
  591. package/dist/dispatch/domains/diagnostics.js +82 -0
  592. package/dist/dispatch/domains/diagnostics.js.map +1 -0
  593. package/dist/dispatch/domains/docs.d.ts +63 -0
  594. package/dist/dispatch/domains/docs.d.ts.map +1 -0
  595. package/dist/dispatch/domains/docs.js +539 -0
  596. package/dist/dispatch/domains/docs.js.map +1 -0
  597. package/dist/dispatch/domains/index.d.ts +33 -0
  598. package/dist/dispatch/domains/index.d.ts.map +1 -0
  599. package/dist/dispatch/domains/index.js +58 -0
  600. package/dist/dispatch/domains/index.js.map +1 -0
  601. package/dist/dispatch/domains/intelligence.d.ts +26 -0
  602. package/dist/dispatch/domains/intelligence.d.ts.map +1 -0
  603. package/dist/dispatch/domains/intelligence.js +154 -0
  604. package/dist/dispatch/domains/intelligence.js.map +1 -0
  605. package/dist/dispatch/domains/ivtr.d.ts +182 -0
  606. package/dist/dispatch/domains/ivtr.d.ts.map +1 -0
  607. package/dist/dispatch/domains/ivtr.js +430 -0
  608. package/dist/dispatch/domains/ivtr.js.map +1 -0
  609. package/dist/dispatch/domains/memory.d.ts +22 -0
  610. package/dist/dispatch/domains/memory.d.ts.map +1 -0
  611. package/dist/dispatch/domains/memory.js +1281 -0
  612. package/dist/dispatch/domains/memory.js.map +1 -0
  613. package/dist/dispatch/domains/nexus.d.ts +78 -0
  614. package/dist/dispatch/domains/nexus.d.ts.map +1 -0
  615. package/dist/dispatch/domains/nexus.js +938 -0
  616. package/dist/dispatch/domains/nexus.js.map +1 -0
  617. package/dist/dispatch/domains/orchestrate.d.ts +307 -0
  618. package/dist/dispatch/domains/orchestrate.d.ts.map +1 -0
  619. package/dist/dispatch/domains/orchestrate.js +986 -0
  620. package/dist/dispatch/domains/orchestrate.js.map +1 -0
  621. package/dist/dispatch/domains/pipeline.d.ts +276 -0
  622. package/dist/dispatch/domains/pipeline.d.ts.map +1 -0
  623. package/dist/dispatch/domains/pipeline.js +689 -0
  624. package/dist/dispatch/domains/pipeline.js.map +1 -0
  625. package/dist/dispatch/domains/playbook.d.ts +131 -0
  626. package/dist/dispatch/domains/playbook.d.ts.map +1 -0
  627. package/dist/dispatch/domains/playbook.js +633 -0
  628. package/dist/dispatch/domains/playbook.js.map +1 -0
  629. package/dist/dispatch/domains/release.d.ts +97 -0
  630. package/dist/dispatch/domains/release.d.ts.map +1 -0
  631. package/dist/dispatch/domains/release.js +177 -0
  632. package/dist/dispatch/domains/release.js.map +1 -0
  633. package/dist/dispatch/domains/sentient.d.ts +60 -0
  634. package/dist/dispatch/domains/sentient.d.ts.map +1 -0
  635. package/dist/dispatch/domains/sentient.js +270 -0
  636. package/dist/dispatch/domains/sentient.js.map +1 -0
  637. package/dist/dispatch/domains/session.d.ts +49 -0
  638. package/dist/dispatch/domains/session.d.ts.map +1 -0
  639. package/dist/dispatch/domains/session.js +459 -0
  640. package/dist/dispatch/domains/session.js.map +1 -0
  641. package/dist/dispatch/domains/sticky.d.ts +82 -0
  642. package/dist/dispatch/domains/sticky.d.ts.map +1 -0
  643. package/dist/dispatch/domains/sticky.js +287 -0
  644. package/dist/dispatch/domains/sticky.js.map +1 -0
  645. package/dist/dispatch/domains/tasks.d.ts +58 -0
  646. package/dist/dispatch/domains/tasks.d.ts.map +1 -0
  647. package/dist/dispatch/domains/tasks.js +497 -0
  648. package/dist/dispatch/domains/tasks.js.map +1 -0
  649. package/dist/dispatch/domains/tools.d.ts +37 -0
  650. package/dist/dispatch/domains/tools.d.ts.map +1 -0
  651. package/dist/dispatch/domains/tools.js +481 -0
  652. package/dist/dispatch/domains/tools.js.map +1 -0
  653. package/dist/dispatch/engines/_error.d.ts +114 -0
  654. package/dist/dispatch/engines/_error.d.ts.map +1 -0
  655. package/dist/dispatch/engines/_error.js +290 -0
  656. package/dist/dispatch/engines/_error.js.map +1 -0
  657. package/dist/dispatch/engines/admin-engine.d.ts +386 -0
  658. package/dist/dispatch/engines/admin-engine.d.ts.map +1 -0
  659. package/dist/dispatch/engines/admin-engine.js +270 -0
  660. package/dist/dispatch/engines/admin-engine.js.map +1 -0
  661. package/dist/dispatch/engines/code-engine.d.ts +14 -0
  662. package/dist/dispatch/engines/code-engine.d.ts.map +1 -0
  663. package/dist/dispatch/engines/code-engine.js +14 -0
  664. package/dist/dispatch/engines/code-engine.js.map +1 -0
  665. package/dist/dispatch/engines/codebase-map-engine.d.ts +31 -0
  666. package/dist/dispatch/engines/codebase-map-engine.d.ts.map +1 -0
  667. package/dist/dispatch/engines/codebase-map-engine.js +43 -0
  668. package/dist/dispatch/engines/codebase-map-engine.js.map +1 -0
  669. package/dist/dispatch/engines/config-engine.d.ts +14 -0
  670. package/dist/dispatch/engines/config-engine.d.ts.map +1 -0
  671. package/dist/dispatch/engines/config-engine.js +14 -0
  672. package/dist/dispatch/engines/config-engine.js.map +1 -0
  673. package/dist/dispatch/engines/diagnostics-engine.d.ts +13 -0
  674. package/dist/dispatch/engines/diagnostics-engine.d.ts.map +1 -0
  675. package/dist/dispatch/engines/diagnostics-engine.js +12 -0
  676. package/dist/dispatch/engines/diagnostics-engine.js.map +1 -0
  677. package/dist/dispatch/engines/hooks-engine.d.ts +13 -0
  678. package/dist/dispatch/engines/hooks-engine.d.ts.map +1 -0
  679. package/dist/dispatch/engines/hooks-engine.js +12 -0
  680. package/dist/dispatch/engines/hooks-engine.js.map +1 -0
  681. package/dist/dispatch/engines/init-engine.d.ts +14 -0
  682. package/dist/dispatch/engines/init-engine.d.ts.map +1 -0
  683. package/dist/dispatch/engines/init-engine.js +14 -0
  684. package/dist/dispatch/engines/init-engine.js.map +1 -0
  685. package/dist/dispatch/engines/lifecycle-engine.d.ts +13 -0
  686. package/dist/dispatch/engines/lifecycle-engine.d.ts.map +1 -0
  687. package/dist/dispatch/engines/lifecycle-engine.js +12 -0
  688. package/dist/dispatch/engines/lifecycle-engine.js.map +1 -0
  689. package/dist/dispatch/engines/memory-engine.d.ts +10 -0
  690. package/dist/dispatch/engines/memory-engine.d.ts.map +1 -0
  691. package/dist/dispatch/engines/memory-engine.js +10 -0
  692. package/dist/dispatch/engines/memory-engine.js.map +1 -0
  693. package/dist/dispatch/engines/nexus-engine.d.ts +603 -0
  694. package/dist/dispatch/engines/nexus-engine.d.ts.map +1 -0
  695. package/dist/dispatch/engines/nexus-engine.js +1438 -0
  696. package/dist/dispatch/engines/nexus-engine.js.map +1 -0
  697. package/dist/dispatch/engines/orchestrate-engine.d.ts +252 -0
  698. package/dist/dispatch/engines/orchestrate-engine.d.ts.map +1 -0
  699. package/dist/dispatch/engines/orchestrate-engine.js +1526 -0
  700. package/dist/dispatch/engines/orchestrate-engine.js.map +1 -0
  701. package/dist/dispatch/engines/pipeline-engine.d.ts +13 -0
  702. package/dist/dispatch/engines/pipeline-engine.d.ts.map +1 -0
  703. package/dist/dispatch/engines/pipeline-engine.js +12 -0
  704. package/dist/dispatch/engines/pipeline-engine.js.map +1 -0
  705. package/dist/dispatch/engines/release-engine.d.ts +13 -0
  706. package/dist/dispatch/engines/release-engine.d.ts.map +1 -0
  707. package/dist/dispatch/engines/release-engine.js +13 -0
  708. package/dist/dispatch/engines/release-engine.js.map +1 -0
  709. package/dist/dispatch/engines/session-engine.d.ts +15 -0
  710. package/dist/dispatch/engines/session-engine.d.ts.map +1 -0
  711. package/dist/dispatch/engines/session-engine.js +12 -0
  712. package/dist/dispatch/engines/session-engine.js.map +1 -0
  713. package/dist/dispatch/engines/sticky-engine.d.ts +13 -0
  714. package/dist/dispatch/engines/sticky-engine.d.ts.map +1 -0
  715. package/dist/dispatch/engines/sticky-engine.js +12 -0
  716. package/dist/dispatch/engines/sticky-engine.js.map +1 -0
  717. package/dist/dispatch/engines/system-engine.d.ts +543 -0
  718. package/dist/dispatch/engines/system-engine.d.ts.map +1 -0
  719. package/dist/dispatch/engines/system-engine.js +1278 -0
  720. package/dist/dispatch/engines/system-engine.js.map +1 -0
  721. package/dist/dispatch/engines/task-engine.d.ts +1161 -0
  722. package/dist/dispatch/engines/task-engine.d.ts.map +1 -0
  723. package/dist/dispatch/engines/task-engine.js +1599 -0
  724. package/dist/dispatch/engines/task-engine.js.map +1 -0
  725. package/dist/dispatch/engines/template-parser.d.ts +85 -0
  726. package/dist/dispatch/engines/template-parser.d.ts.map +1 -0
  727. package/dist/dispatch/engines/template-parser.js +114 -0
  728. package/dist/dispatch/engines/template-parser.js.map +1 -0
  729. package/dist/dispatch/engines/tools-engine.d.ts +13 -0
  730. package/dist/dispatch/engines/tools-engine.d.ts.map +1 -0
  731. package/dist/dispatch/engines/tools-engine.js +12 -0
  732. package/dist/dispatch/engines/tools-engine.js.map +1 -0
  733. package/dist/dispatch/engines/validate-engine.d.ts +13 -0
  734. package/dist/dispatch/engines/validate-engine.d.ts.map +1 -0
  735. package/dist/dispatch/engines/validate-engine.js +13 -0
  736. package/dist/dispatch/engines/validate-engine.js.map +1 -0
  737. package/dist/dispatch/index.d.ts +20 -0
  738. package/dist/dispatch/index.d.ts.map +1 -0
  739. package/dist/dispatch/index.js +19 -0
  740. package/dist/dispatch/index.js.map +1 -0
  741. package/dist/dispatch/lib/background-jobs.d.ts +162 -0
  742. package/dist/dispatch/lib/background-jobs.d.ts.map +1 -0
  743. package/dist/dispatch/lib/background-jobs.js +360 -0
  744. package/dist/dispatch/lib/background-jobs.js.map +1 -0
  745. package/dist/dispatch/lib/budget.d.ts +36 -0
  746. package/dist/dispatch/lib/budget.d.ts.map +1 -0
  747. package/dist/dispatch/lib/budget.js +109 -0
  748. package/dist/dispatch/lib/budget.js.map +1 -0
  749. package/dist/dispatch/lib/capability-matrix.d.ts +11 -0
  750. package/dist/dispatch/lib/capability-matrix.d.ts.map +1 -0
  751. package/dist/dispatch/lib/capability-matrix.js +10 -0
  752. package/dist/dispatch/lib/capability-matrix.js.map +1 -0
  753. package/dist/dispatch/lib/config-loader.d.ts +42 -0
  754. package/dist/dispatch/lib/config-loader.d.ts.map +1 -0
  755. package/dist/dispatch/lib/config-loader.js +218 -0
  756. package/dist/dispatch/lib/config-loader.js.map +1 -0
  757. package/dist/dispatch/lib/config.d.ts +11 -0
  758. package/dist/dispatch/lib/config.d.ts.map +1 -0
  759. package/dist/dispatch/lib/config.js +10 -0
  760. package/dist/dispatch/lib/config.js.map +1 -0
  761. package/dist/dispatch/lib/defaults.d.ts +115 -0
  762. package/dist/dispatch/lib/defaults.d.ts.map +1 -0
  763. package/dist/dispatch/lib/defaults.js +61 -0
  764. package/dist/dispatch/lib/defaults.js.map +1 -0
  765. package/dist/dispatch/lib/engine.d.ts +17 -0
  766. package/dist/dispatch/lib/engine.d.ts.map +1 -0
  767. package/dist/dispatch/lib/engine.js +36 -0
  768. package/dist/dispatch/lib/engine.js.map +1 -0
  769. package/dist/dispatch/lib/exit-codes.d.ts +35 -0
  770. package/dist/dispatch/lib/exit-codes.d.ts.map +1 -0
  771. package/dist/dispatch/lib/exit-codes.js +60 -0
  772. package/dist/dispatch/lib/exit-codes.js.map +1 -0
  773. package/dist/dispatch/lib/gateway-meta.d.ts +37 -0
  774. package/dist/dispatch/lib/gateway-meta.d.ts.map +1 -0
  775. package/dist/dispatch/lib/gateway-meta.js +50 -0
  776. package/dist/dispatch/lib/gateway-meta.js.map +1 -0
  777. package/dist/dispatch/lib/job-manager-accessor.d.ts +9 -0
  778. package/dist/dispatch/lib/job-manager-accessor.d.ts.map +1 -0
  779. package/dist/dispatch/lib/job-manager-accessor.js +13 -0
  780. package/dist/dispatch/lib/job-manager-accessor.js.map +1 -0
  781. package/dist/dispatch/lib/meta.d.ts +26 -0
  782. package/dist/dispatch/lib/meta.d.ts.map +1 -0
  783. package/dist/dispatch/lib/meta.js +37 -0
  784. package/dist/dispatch/lib/meta.js.map +1 -0
  785. package/dist/dispatch/lib/param-utils.d.ts +11 -0
  786. package/dist/dispatch/lib/param-utils.d.ts.map +1 -0
  787. package/dist/dispatch/lib/param-utils.js +10 -0
  788. package/dist/dispatch/lib/param-utils.js.map +1 -0
  789. package/dist/dispatch/lib/projections.d.ts +56 -0
  790. package/dist/dispatch/lib/projections.d.ts.map +1 -0
  791. package/dist/dispatch/lib/projections.js +65 -0
  792. package/dist/dispatch/lib/projections.js.map +1 -0
  793. package/dist/dispatch/lib/proto-envelope.d.ts +56 -0
  794. package/dist/dispatch/lib/proto-envelope.d.ts.map +1 -0
  795. package/dist/dispatch/lib/proto-envelope.js +17 -0
  796. package/dist/dispatch/lib/proto-envelope.js.map +1 -0
  797. package/dist/dispatch/lib/schema-utils.d.ts +39 -0
  798. package/dist/dispatch/lib/schema-utils.d.ts.map +1 -0
  799. package/dist/dispatch/lib/schema-utils.js +88 -0
  800. package/dist/dispatch/lib/schema-utils.js.map +1 -0
  801. package/dist/dispatch/lib/security.d.ts +11 -0
  802. package/dist/dispatch/lib/security.d.ts.map +1 -0
  803. package/dist/dispatch/lib/security.js +10 -0
  804. package/dist/dispatch/lib/security.js.map +1 -0
  805. package/dist/dispatch/middleware/audit.d.ts +23 -0
  806. package/dist/dispatch/middleware/audit.d.ts.map +1 -0
  807. package/dist/dispatch/middleware/audit.js +169 -0
  808. package/dist/dispatch/middleware/audit.js.map +1 -0
  809. package/dist/dispatch/middleware/field-filter.d.ts +25 -0
  810. package/dist/dispatch/middleware/field-filter.d.ts.map +1 -0
  811. package/dist/dispatch/middleware/field-filter.js +70 -0
  812. package/dist/dispatch/middleware/field-filter.js.map +1 -0
  813. package/dist/dispatch/middleware/pipeline.d.ts +33 -0
  814. package/dist/dispatch/middleware/pipeline.d.ts.map +1 -0
  815. package/dist/dispatch/middleware/pipeline.js +60 -0
  816. package/dist/dispatch/middleware/pipeline.js.map +1 -0
  817. package/dist/dispatch/middleware/projection.d.ts +35 -0
  818. package/dist/dispatch/middleware/projection.d.ts.map +1 -0
  819. package/dist/dispatch/middleware/projection.js +146 -0
  820. package/dist/dispatch/middleware/projection.js.map +1 -0
  821. package/dist/dispatch/middleware/protocol-enforcement.d.ts +30 -0
  822. package/dist/dispatch/middleware/protocol-enforcement.d.ts.map +1 -0
  823. package/dist/dispatch/middleware/protocol-enforcement.js +56 -0
  824. package/dist/dispatch/middleware/protocol-enforcement.js.map +1 -0
  825. package/dist/dispatch/middleware/rate-limiter.d.ts +72 -0
  826. package/dist/dispatch/middleware/rate-limiter.d.ts.map +1 -0
  827. package/dist/dispatch/middleware/rate-limiter.js +127 -0
  828. package/dist/dispatch/middleware/rate-limiter.js.map +1 -0
  829. package/dist/dispatch/middleware/sanitizer.d.ts +24 -0
  830. package/dist/dispatch/middleware/sanitizer.d.ts.map +1 -0
  831. package/dist/dispatch/middleware/sanitizer.js +56 -0
  832. package/dist/dispatch/middleware/sanitizer.js.map +1 -0
  833. package/dist/dispatch/middleware/session-resolver.d.ts +26 -0
  834. package/dist/dispatch/middleware/session-resolver.d.ts.map +1 -0
  835. package/dist/dispatch/middleware/session-resolver.js +65 -0
  836. package/dist/dispatch/middleware/session-resolver.js.map +1 -0
  837. package/dist/dispatch/middleware/telemetry.d.ts +21 -0
  838. package/dist/dispatch/middleware/telemetry.d.ts.map +1 -0
  839. package/dist/dispatch/middleware/telemetry.js +50 -0
  840. package/dist/dispatch/middleware/telemetry.js.map +1 -0
  841. package/dist/dispatch/middleware/verification-gates.d.ts +22 -0
  842. package/dist/dispatch/middleware/verification-gates.d.ts.map +1 -0
  843. package/dist/dispatch/middleware/verification-gates.js +59 -0
  844. package/dist/dispatch/middleware/verification-gates.js.map +1 -0
  845. package/dist/dispatch/registry.d.ts +91 -0
  846. package/dist/dispatch/registry.d.ts.map +1 -0
  847. package/dist/dispatch/registry.js +6430 -0
  848. package/dist/dispatch/registry.js.map +1 -0
  849. package/dist/dispatch/types.d.ts +150 -0
  850. package/dist/dispatch/types.d.ts.map +1 -0
  851. package/dist/dispatch/types.js +38 -0
  852. package/dist/dispatch/types.js.map +1 -0
  853. package/dist/migrations/2026-04-25-t991-parent-link-repair.d.ts +88 -0
  854. package/dist/migrations/2026-04-25-t991-parent-link-repair.d.ts.map +1 -0
  855. package/dist/migrations/2026-04-25-t991-parent-link-repair.js +76 -0
  856. package/dist/migrations/2026-04-25-t991-parent-link-repair.js.map +1 -0
  857. package/package.json +9 -9
  858. package/templates/HANDOFF-REDIRECT-STUB.md +37 -0
  859. package/templates/hooks/commit-msg +146 -6
@@ -0,0 +1,798 @@
1
+ /**
2
+ * CLI docs command - attachment management + documentation drift detection.
3
+ *
4
+ * Subcommands (T797):
5
+ * cleo docs add <ownerId> <file|--url <url>> [--desc "..."] [--labels tag1,tag2]
6
+ * cleo docs list [--task T###] [--session ses_*] [--observation O###]
7
+ * cleo docs fetch <attachmentId|sha256>
8
+ * cleo docs remove <attachmentId|sha256> --from <ownerId>
9
+ *
10
+ * Legacy subcommands (T4551):
11
+ * cleo docs sync — drift detection between scripts and docs index
12
+ * cleo docs gap-check — validate knowledge transfer from review docs
13
+ *
14
+ * @task T4551 (sync/gap-check), T797 (add/list/fetch/remove)
15
+ * @epic T4545 (legacy), T760 (attachments)
16
+ */
17
+ import { mkdir, readdir, readFile, writeFile } from 'node:fs/promises';
18
+ import { dirname, isAbsolute, join, resolve } from 'node:path';
19
+ import { ExitCode } from '@cleocode/contracts';
20
+ import { buildDocsGraph, CleoError, exportDocument, formatError, getAgentOutputsAbsolute, getProjectRoot, listDocVersions, mergeDocs, publishDocs, rankDocs, readJson, searchDocs, } from '@cleocode/core/internal';
21
+ import { defineCommand, showUsage } from 'citty';
22
+ import { dispatchFromCli } from '../../dispatch/adapters/cli.js';
23
+ import { cliOutput } from '../renderers/index.js';
24
+ /**
25
+ * Get list of script files from scripts/ directory.
26
+ * @task T4551
27
+ */
28
+ async function getScriptNames(projectRoot) {
29
+ const scriptsDir = join(projectRoot, 'scripts');
30
+ try {
31
+ const files = await readdir(scriptsDir);
32
+ return files
33
+ .filter((f) => f.endsWith('.sh'))
34
+ .map((f) => f.replace('.sh', ''))
35
+ .sort();
36
+ }
37
+ catch {
38
+ return [];
39
+ }
40
+ }
41
+ /**
42
+ * Get command names from COMMANDS-INDEX.json.
43
+ * @task T4551
44
+ */
45
+ async function getIndexedCommands(projectRoot) {
46
+ const indexPath = join(projectRoot, 'docs', 'commands', 'COMMANDS-INDEX.json');
47
+ const index = await readJson(indexPath);
48
+ if (!index)
49
+ return [];
50
+ return index.commands.map((c) => c.name).sort();
51
+ }
52
+ /**
53
+ * Run drift detection between scripts and documentation index.
54
+ * @task T4551
55
+ */
56
+ async function detectDrift(projectRoot) {
57
+ const scripts = await getScriptNames(projectRoot);
58
+ const indexed = await getIndexedCommands(projectRoot);
59
+ const scriptSet = new Set(scripts);
60
+ const indexSet = new Set(indexed);
61
+ const missingFromIndex = scripts.filter((s) => !indexSet.has(s));
62
+ const missingFromScripts = indexed.filter((i) => !scriptSet.has(i));
63
+ const warnings = [];
64
+ if (missingFromIndex.length > 0) {
65
+ warnings.push(`${missingFromIndex.length} scripts not in COMMANDS-INDEX.json`);
66
+ }
67
+ if (missingFromScripts.length > 0) {
68
+ warnings.push(`${missingFromScripts.length} index entries without scripts`);
69
+ }
70
+ let status = 'clean';
71
+ if (missingFromIndex.length > 0 || missingFromScripts.length > 0) {
72
+ status = missingFromIndex.length > 5 ? 'error' : 'warning';
73
+ }
74
+ return { status, missingFromIndex, missingFromScripts, warnings };
75
+ }
76
+ /**
77
+ * Run gap-check validation for review docs.
78
+ * @task T4551
79
+ */
80
+ async function runGapCheck(_projectRoot, filterId) {
81
+ const reviewDir = getAgentOutputsAbsolute();
82
+ const results = [];
83
+ try {
84
+ const files = await readdir(reviewDir);
85
+ const reviewFiles = files.filter((f) => f.endsWith('.md'));
86
+ for (const file of reviewFiles) {
87
+ if (filterId && !file.includes(filterId))
88
+ continue;
89
+ const filePath = join(reviewDir, file);
90
+ const content = await readFile(filePath, 'utf-8');
91
+ const taskMatch = file.match(/^(T\d+)/);
92
+ const taskId = taskMatch ? taskMatch[1] : 'UNKNOWN';
93
+ const gaps = [];
94
+ if (!content.includes('## Summary')) {
95
+ gaps.push('Missing ## Summary section');
96
+ }
97
+ if (!content.includes('**Task**:') && !content.includes('**Task:**')) {
98
+ gaps.push('Missing Task provenance header');
99
+ }
100
+ if (gaps.length > 0) {
101
+ results.push({ file, taskId, gaps });
102
+ }
103
+ }
104
+ }
105
+ catch {
106
+ // Review directory might not exist
107
+ }
108
+ return results;
109
+ }
110
+ // ── cleo docs add ────────────────────────────────────────────────────────────
111
+ /**
112
+ * cleo docs add <ownerId> [<file>] [--url <url>] — attach a local file or remote URL.
113
+ */
114
+ const addCommand = defineCommand({
115
+ meta: {
116
+ name: 'add',
117
+ description: 'Attach a local file or remote URL to a CLEO entity (task, session, observation). ' +
118
+ 'Owner type is inferred from the ID prefix: T### → task, ses_* → session, O-* → observation.',
119
+ },
120
+ args: {
121
+ 'owner-id': {
122
+ type: 'positional',
123
+ description: 'Owner entity ID (T###, ses_*, O-*)',
124
+ required: true,
125
+ },
126
+ file: {
127
+ type: 'positional',
128
+ description: 'Local file path to attach',
129
+ required: false,
130
+ },
131
+ url: {
132
+ type: 'string',
133
+ description: 'Remote URL to attach (instead of a local file)',
134
+ },
135
+ desc: {
136
+ type: 'string',
137
+ description: 'Free-text description of this attachment',
138
+ },
139
+ labels: {
140
+ type: 'string',
141
+ description: 'Comma-separated labels (e.g. rfc,spec)',
142
+ },
143
+ 'attached-by': {
144
+ type: 'string',
145
+ description: 'Agent identity that created the attachment (default: "human")',
146
+ },
147
+ },
148
+ async run({ args }) {
149
+ const ownerId = args['owner-id'];
150
+ const fileArg = args.file ?? undefined;
151
+ const url = args.url ?? undefined;
152
+ if (!fileArg && !url) {
153
+ process.stderr.write('Error: provide a file path (positional argument) or --url <url>\n' +
154
+ 'Example: cleo docs add T123 docs/rfc.md --desc "RFC draft"\n' +
155
+ ' cleo docs add T123 --url https://example.com/spec\n');
156
+ process.exit(6);
157
+ }
158
+ await dispatchFromCli('mutate', 'docs', 'add', {
159
+ ownerId,
160
+ ...(fileArg ? { file: fileArg } : {}),
161
+ ...(url ? { url } : {}),
162
+ ...(args.desc ? { desc: args.desc } : {}),
163
+ ...(args.labels ? { labels: args.labels } : {}),
164
+ ...(args['attached-by'] ? { attachedBy: args['attached-by'] } : {}),
165
+ }, { command: 'docs add' });
166
+ },
167
+ });
168
+ // ── cleo docs list ───────────────────────────────────────────────────────────
169
+ /** cleo docs list [--task T###] [--session ses_*] [--observation O###] — list attachments. */
170
+ const listCommand = defineCommand({
171
+ meta: {
172
+ name: 'list',
173
+ description: 'List attachments for a CLEO entity. Provide exactly one of --task, --session, or --observation.',
174
+ },
175
+ args: {
176
+ task: {
177
+ type: 'string',
178
+ description: 'Filter by task ID (e.g. T123)',
179
+ },
180
+ session: {
181
+ type: 'string',
182
+ description: 'Filter by session ID (e.g. ses_abc123)',
183
+ },
184
+ observation: {
185
+ type: 'string',
186
+ description: 'Filter by observation ID (e.g. O-abc123)',
187
+ },
188
+ },
189
+ async run({ args }) {
190
+ const task = args.task ?? undefined;
191
+ const session = args.session ?? undefined;
192
+ const observation = args.observation ?? undefined;
193
+ if (!task && !session && !observation) {
194
+ process.stderr.write('Error: provide one of --task <id>, --session <id>, or --observation <id>\n');
195
+ process.exit(6);
196
+ }
197
+ await dispatchFromCli('query', 'docs', 'list', {
198
+ ...(task ? { task } : {}),
199
+ ...(session ? { session } : {}),
200
+ ...(observation ? { observation } : {}),
201
+ }, { command: 'docs list' });
202
+ },
203
+ });
204
+ // ── cleo docs fetch ──────────────────────────────────────────────────────────
205
+ /** cleo docs fetch <attachmentRef> — retrieve attachment metadata and bytes. */
206
+ const fetchCommand = defineCommand({
207
+ meta: {
208
+ name: 'fetch',
209
+ description: 'Retrieve attachment metadata and bytes by attachment ID (att_*) or SHA-256 hex. ' +
210
+ 'Files <= 1 MB are returned base64-encoded inline; larger files report the storage path only.',
211
+ },
212
+ args: {
213
+ 'attachment-ref': {
214
+ type: 'positional',
215
+ description: 'Attachment ID (att_*) or SHA-256 hex',
216
+ required: true,
217
+ },
218
+ },
219
+ async run({ args }) {
220
+ await dispatchFromCli('query', 'docs', 'fetch', { attachmentRef: args['attachment-ref'] }, { command: 'docs fetch' });
221
+ },
222
+ });
223
+ // ── cleo docs remove ─────────────────────────────────────────────────────────
224
+ /** cleo docs remove <attachmentRef> --from <ownerId> — remove an attachment ref. */
225
+ const removeCommand = defineCommand({
226
+ meta: {
227
+ name: 'remove',
228
+ description: 'Remove an attachment ref from an owner entity. ' +
229
+ 'When refCount reaches zero the blob file is purged from disk.',
230
+ },
231
+ args: {
232
+ 'attachment-ref': {
233
+ type: 'positional',
234
+ description: 'Attachment ID (att_*) or SHA-256 hex',
235
+ required: true,
236
+ },
237
+ from: {
238
+ type: 'string',
239
+ description: 'Owner entity ID to remove the attachment ref from (required)',
240
+ },
241
+ },
242
+ async run({ args }) {
243
+ const from = args.from ?? undefined;
244
+ if (!from) {
245
+ process.stderr.write('Error: --from <ownerId> is required\n');
246
+ process.exit(6);
247
+ }
248
+ await dispatchFromCli('mutate', 'docs', 'remove', { attachmentRef: args['attachment-ref'], from }, { command: 'docs remove' });
249
+ },
250
+ });
251
+ // ── cleo docs generate ───────────────────────────────────────────────────────
252
+ /** cleo docs generate --for <id> [--attach] — generate llms.txt document. */
253
+ const generateCommand = defineCommand({
254
+ meta: {
255
+ name: 'generate',
256
+ description: 'Generate an llms.txt-format document summarising all attachments on a CLEO entity. ' +
257
+ 'Internally uses the llmtxt npm package for structural section analysis; ' +
258
+ 'falls back to a built-in generator when unavailable. ' +
259
+ 'Use --attach to save the output back as an llms-txt attachment on the same entity.',
260
+ },
261
+ args: {
262
+ for: {
263
+ type: 'string',
264
+ description: 'Target entity ID (task, session, or observation)',
265
+ required: true,
266
+ },
267
+ attach: {
268
+ type: 'boolean',
269
+ description: 'Save the generated llms.txt content back as an attachment on the target entity',
270
+ },
271
+ },
272
+ async run({ args }) {
273
+ await dispatchFromCli('query', 'docs', 'generate', {
274
+ for: args.for,
275
+ ...(args.attach ? { attach: true } : {}),
276
+ }, { command: 'docs generate' });
277
+ },
278
+ });
279
+ // ── cleo docs export ──────────────────────────────────────────────────────────
280
+ /**
281
+ * cleo docs export — emit a rich Markdown export of a CLEO task.
282
+ *
283
+ * Uses {@link exportDocument} (llmtxt-backed) to serialise task frontmatter +
284
+ * description + acceptance criteria + optionally the attachment manifest
285
+ * (with content-address backlinks) and BRAIN memory references. The output is
286
+ * a single self-contained Markdown file suitable for publishing to git.
287
+ *
288
+ * @epic T947 (llmtxt v2026.4.9 adoption — this wires the CLI surface the
289
+ * earlier T947 worker claimed but never registered).
290
+ */
291
+ const exportCommand = defineCommand({
292
+ meta: {
293
+ name: 'export',
294
+ description: 'Generate a rich Markdown export of a CLEO task (frontmatter + body + attachments + memory refs). ' +
295
+ 'Uses llmtxt/export.formatMarkdown for canonical serialisation. ' +
296
+ 'Use --out <file> to write to disk; omit to print to stdout.',
297
+ },
298
+ args: {
299
+ task: {
300
+ type: 'string',
301
+ description: 'Task ID to export (e.g. T947)',
302
+ required: true,
303
+ },
304
+ out: {
305
+ type: 'string',
306
+ description: 'Output file path (absolute or relative to project root). Omit for stdout.',
307
+ },
308
+ 'include-attachments': {
309
+ type: 'boolean',
310
+ default: true,
311
+ description: 'Append attachment manifest section (default: true)',
312
+ },
313
+ 'include-memory-refs': {
314
+ type: 'boolean',
315
+ default: false,
316
+ description: 'Append BRAIN memory references section (default: false)',
317
+ },
318
+ json: {
319
+ type: 'boolean',
320
+ description: 'Emit result envelope as JSON instead of markdown (returns {markdown, pages, path?})',
321
+ },
322
+ },
323
+ async run({ args }) {
324
+ const taskId = String(args.task);
325
+ const includeAttachments = args['include-attachments'] !== false;
326
+ const includeMemoryRefs = args['include-memory-refs'] === true;
327
+ const projectRoot = getProjectRoot();
328
+ try {
329
+ const result = await exportDocument({
330
+ taskId,
331
+ includeAttachments,
332
+ includeMemoryRefs,
333
+ projectRoot,
334
+ });
335
+ let writtenPath;
336
+ if (typeof args.out === 'string' && args.out.length > 0) {
337
+ const outPath = isAbsolute(args.out) ? args.out : resolve(projectRoot, args.out);
338
+ await mkdir(dirname(outPath), { recursive: true });
339
+ await writeFile(outPath, result.markdown, 'utf8');
340
+ writtenPath = outPath;
341
+ }
342
+ if (args.json) {
343
+ cliOutput({ markdown: result.markdown, pages: result.pages, path: writtenPath ?? null }, { command: 'docs export', operation: 'docs.export' });
344
+ }
345
+ else {
346
+ // Human mode: print markdown to stdout, report path to stderr
347
+ if (writtenPath) {
348
+ process.stderr.write(`Wrote ${result.pages} page(s) to ${writtenPath}\n`);
349
+ }
350
+ else {
351
+ process.stdout.write(result.markdown);
352
+ if (!result.markdown.endsWith('\n'))
353
+ process.stdout.write('\n');
354
+ }
355
+ }
356
+ }
357
+ catch (err) {
358
+ const message = err instanceof Error ? err.message : String(err);
359
+ cliOutput(formatError(new CleoError(ExitCode.GENERAL_ERROR, `docs export failed: ${message}`)), { command: 'docs export', operation: 'docs.export' });
360
+ process.exit(ExitCode.GENERAL_ERROR);
361
+ }
362
+ },
363
+ });
364
+ // ── cleo docs search ─────────────────────────────────────────────────────────
365
+ /**
366
+ * cleo docs search <query> — semantic search over attachments via rankBySimilarity.
367
+ */
368
+ const searchCommand = defineCommand({
369
+ meta: {
370
+ name: 'search',
371
+ description: 'Search attachments by semantic similarity using llmtxt/similarity.rankBySimilarity. ' +
372
+ 'Pass --owner to scope the search to a specific entity (T###, ses_*, O-*).',
373
+ },
374
+ args: {
375
+ query: {
376
+ type: 'positional',
377
+ description: 'Free-text search query',
378
+ required: true,
379
+ },
380
+ owner: {
381
+ type: 'string',
382
+ description: 'Scope search to a specific owner entity ID',
383
+ },
384
+ limit: {
385
+ type: 'string',
386
+ description: 'Maximum number of results to return (default: 10)',
387
+ },
388
+ json: {
389
+ type: 'boolean',
390
+ description: 'Emit LAFS JSON envelope instead of human-readable output',
391
+ },
392
+ },
393
+ async run({ args }) {
394
+ const projectRoot = getProjectRoot();
395
+ try {
396
+ const result = await searchDocs(String(args.query), {
397
+ ownerId: args.owner ?? undefined,
398
+ limit: args.limit ? Number.parseInt(String(args.limit), 10) : 10,
399
+ projectRoot,
400
+ });
401
+ cliOutput(result, { command: 'docs search', operation: 'docs.search' });
402
+ }
403
+ catch (err) {
404
+ const message = err instanceof Error ? err.message : String(err);
405
+ cliOutput(formatError(new CleoError(ExitCode.GENERAL_ERROR, `docs search failed: ${message}`)), { command: 'docs search', operation: 'docs.search' });
406
+ process.exit(ExitCode.GENERAL_ERROR);
407
+ }
408
+ },
409
+ });
410
+ // ── cleo docs merge ───────────────────────────────────────────────────────────
411
+ /**
412
+ * cleo docs merge <attA> <attB> — merge two attachment contents via llmtxt/sdk.
413
+ */
414
+ const mergeCommand = defineCommand({
415
+ meta: {
416
+ name: 'merge',
417
+ description: 'Merge two attachment text contents using llmtxt/sdk diff primitives. ' +
418
+ 'Strategies: three-way (default), cherry-pick, multi-diff.',
419
+ },
420
+ args: {
421
+ attA: {
422
+ type: 'positional',
423
+ description: 'First attachment ID or text content',
424
+ required: true,
425
+ },
426
+ attB: {
427
+ type: 'positional',
428
+ description: 'Second attachment ID or text content',
429
+ required: true,
430
+ },
431
+ strategy: {
432
+ type: 'string',
433
+ description: 'Merge strategy: three-way | cherry-pick | multi-diff (default: three-way)',
434
+ },
435
+ base: {
436
+ type: 'string',
437
+ description: 'Base content for three-way merge',
438
+ },
439
+ out: {
440
+ type: 'string',
441
+ description: 'Write merged content to this file path',
442
+ },
443
+ json: {
444
+ type: 'boolean',
445
+ description: 'Emit LAFS JSON envelope',
446
+ },
447
+ },
448
+ async run({ args }) {
449
+ const projectRoot = getProjectRoot();
450
+ const rawStrategy = args.strategy ?? 'three-way';
451
+ const strategy = rawStrategy === 'cherry-pick' || rawStrategy === 'multi-diff' ? rawStrategy : 'three-way';
452
+ try {
453
+ const result = await mergeDocs(String(args.attA), String(args.attB), {
454
+ strategy,
455
+ base: args.base ?? undefined,
456
+ });
457
+ if (typeof args.out === 'string' && args.out.length > 0) {
458
+ const outPath = isAbsolute(args.out) ? args.out : resolve(projectRoot, args.out);
459
+ await mkdir(dirname(outPath), { recursive: true });
460
+ await writeFile(outPath, result.merged, 'utf8');
461
+ process.stderr.write(`Wrote merged content to ${outPath}\n`);
462
+ }
463
+ cliOutput(result, { command: 'docs merge', operation: 'docs.merge' });
464
+ }
465
+ catch (err) {
466
+ const message = err instanceof Error ? err.message : String(err);
467
+ cliOutput(formatError(new CleoError(ExitCode.GENERAL_ERROR, `docs merge failed: ${message}`)), { command: 'docs merge', operation: 'docs.merge' });
468
+ process.exit(ExitCode.GENERAL_ERROR);
469
+ }
470
+ },
471
+ });
472
+ // ── cleo docs graph ───────────────────────────────────────────────────────────
473
+ /**
474
+ * cleo docs graph --for <id> — build a document relationship graph via llmtxt/graph.
475
+ */
476
+ const graphCommand = defineCommand({
477
+ meta: {
478
+ name: 'graph',
479
+ description: 'Build a document relationship graph for an entity using llmtxt/graph.buildGraph. ' +
480
+ 'Output formats: mermaid (default), dot, json.',
481
+ },
482
+ args: {
483
+ for: {
484
+ type: 'string',
485
+ description: 'Owner entity ID (T###, ses_*, O-*)',
486
+ required: true,
487
+ },
488
+ format: {
489
+ type: 'string',
490
+ description: 'Output format: mermaid | dot | json (default: mermaid)',
491
+ },
492
+ out: {
493
+ type: 'string',
494
+ description: 'Write graph to this file path',
495
+ },
496
+ json: {
497
+ type: 'boolean',
498
+ description: 'Emit LAFS JSON envelope',
499
+ },
500
+ },
501
+ async run({ args }) {
502
+ const projectRoot = getProjectRoot();
503
+ const fmt = args.format ?? 'mermaid';
504
+ try {
505
+ const result = await buildDocsGraph({ ownerId: String(args.for), projectRoot });
506
+ let output;
507
+ if (fmt === 'dot') {
508
+ const dotLines = ['digraph docs {'];
509
+ for (const node of result.nodes) {
510
+ dotLines.push(` "${node.id}" [label="${node.label}"];`);
511
+ }
512
+ for (const edge of result.edges) {
513
+ dotLines.push(` "${edge.source}" -> "${edge.target}" [label="${edge.relation}"];`);
514
+ }
515
+ dotLines.push('}');
516
+ output = dotLines.join('\n');
517
+ }
518
+ else if (fmt === 'json') {
519
+ output = JSON.stringify(result, null, 2);
520
+ }
521
+ else {
522
+ // mermaid
523
+ const lines = ['graph LR'];
524
+ for (const edge of result.edges) {
525
+ lines.push(` ${edge.source} -->|${edge.relation}| ${edge.target}`);
526
+ }
527
+ if (result.edges.length === 0) {
528
+ for (const node of result.nodes) {
529
+ lines.push(` ${node.id}["${node.label}"]`);
530
+ }
531
+ }
532
+ output = lines.join('\n');
533
+ }
534
+ if (typeof args.out === 'string' && args.out.length > 0) {
535
+ const outPath = isAbsolute(args.out) ? args.out : resolve(projectRoot, args.out);
536
+ await mkdir(dirname(outPath), { recursive: true });
537
+ await writeFile(outPath, output, 'utf8');
538
+ process.stderr.write(`Wrote graph to ${outPath}\n`);
539
+ }
540
+ cliOutput({ format: fmt, nodeCount: result.nodes.length, edgeCount: result.edges.length, output }, { command: 'docs graph', operation: 'docs.graph' });
541
+ }
542
+ catch (err) {
543
+ const message = err instanceof Error ? err.message : String(err);
544
+ cliOutput(formatError(new CleoError(ExitCode.GENERAL_ERROR, `docs graph failed: ${message}`)), { command: 'docs graph', operation: 'docs.graph' });
545
+ process.exit(ExitCode.GENERAL_ERROR);
546
+ }
547
+ },
548
+ });
549
+ // ── cleo docs rank ────────────────────────────────────────────────────────────
550
+ /**
551
+ * cleo docs rank --for <id> — rank attachments by relevance via semanticConsensus.
552
+ */
553
+ const rankCommand = defineCommand({
554
+ meta: {
555
+ name: 'rank',
556
+ description: 'Rank attachments for an entity by relevance using llmtxt/similarity.rankBySimilarity. ' +
557
+ 'Pass --query to use a custom query; otherwise the entity ID anchors the ranking.',
558
+ },
559
+ args: {
560
+ for: {
561
+ type: 'string',
562
+ description: 'Owner entity ID (T###, ses_*, O-*)',
563
+ required: true,
564
+ },
565
+ query: {
566
+ type: 'string',
567
+ description: 'Optional free-text query to rank against (default: owner ID)',
568
+ },
569
+ json: {
570
+ type: 'boolean',
571
+ description: 'Emit LAFS JSON envelope',
572
+ },
573
+ },
574
+ async run({ args }) {
575
+ const projectRoot = getProjectRoot();
576
+ try {
577
+ const result = await rankDocs({
578
+ ownerId: String(args.for),
579
+ query: args.query ?? undefined,
580
+ projectRoot,
581
+ });
582
+ cliOutput(result, { command: 'docs rank', operation: 'docs.rank' });
583
+ }
584
+ catch (err) {
585
+ const message = err instanceof Error ? err.message : String(err);
586
+ cliOutput(formatError(new CleoError(ExitCode.GENERAL_ERROR, `docs rank failed: ${message}`)), { command: 'docs rank', operation: 'docs.rank' });
587
+ process.exit(ExitCode.GENERAL_ERROR);
588
+ }
589
+ },
590
+ });
591
+ // ── cleo docs versions ────────────────────────────────────────────────────────
592
+ /**
593
+ * cleo docs versions --for <id> — list all SHA versions of attachments.
594
+ */
595
+ const versionsCommand = defineCommand({
596
+ meta: {
597
+ name: 'versions',
598
+ description: 'List all SHA-256 content-address versions of attachments for an entity. ' +
599
+ 'Use --name to filter by a specific filename.',
600
+ },
601
+ args: {
602
+ for: {
603
+ type: 'string',
604
+ description: 'Owner entity ID (T###, ses_*, O-*)',
605
+ required: true,
606
+ },
607
+ name: {
608
+ type: 'string',
609
+ description: 'Optional filename filter (exact match)',
610
+ },
611
+ json: {
612
+ type: 'boolean',
613
+ description: 'Emit LAFS JSON envelope',
614
+ },
615
+ },
616
+ async run({ args }) {
617
+ const projectRoot = getProjectRoot();
618
+ try {
619
+ const result = await listDocVersions({
620
+ ownerId: String(args.for),
621
+ name: args.name ?? undefined,
622
+ projectRoot,
623
+ });
624
+ cliOutput(result, { command: 'docs versions', operation: 'docs.versions' });
625
+ }
626
+ catch (err) {
627
+ const message = err instanceof Error ? err.message : String(err);
628
+ cliOutput(formatError(new CleoError(ExitCode.GENERAL_ERROR, `docs versions failed: ${message}`)), { command: 'docs versions', operation: 'docs.versions' });
629
+ process.exit(ExitCode.GENERAL_ERROR);
630
+ }
631
+ },
632
+ });
633
+ // ── cleo docs publish ─────────────────────────────────────────────────────────
634
+ /**
635
+ * cleo docs publish --for <id> --to <path> — atomic publish from docs SSoT to git path.
636
+ */
637
+ const publishCommand = defineCommand({
638
+ meta: {
639
+ name: 'publish',
640
+ description: 'Atomically publish an attachment from the docs SSoT to a git-tracked file path. ' +
641
+ 'Uses tmp-then-rename for atomicity. The --to path may be absolute or relative to project root.',
642
+ },
643
+ args: {
644
+ for: {
645
+ type: 'string',
646
+ description: 'Owner entity ID whose attachment to publish (T###, ses_*, O-*)',
647
+ required: true,
648
+ },
649
+ to: {
650
+ type: 'string',
651
+ description: 'Destination file path (absolute or relative to project root)',
652
+ required: true,
653
+ },
654
+ attachment: {
655
+ type: 'string',
656
+ description: 'Specific attachment ID or SHA-256 to publish (default: latest)',
657
+ },
658
+ json: {
659
+ type: 'boolean',
660
+ description: 'Emit LAFS JSON envelope',
661
+ },
662
+ },
663
+ async run({ args }) {
664
+ const projectRoot = getProjectRoot();
665
+ try {
666
+ const result = await publishDocs({
667
+ ownerId: String(args.for),
668
+ toPath: String(args.to),
669
+ attachmentId: args.attachment ?? undefined,
670
+ projectRoot,
671
+ });
672
+ cliOutput(result, { command: 'docs publish', operation: 'docs.publish' });
673
+ }
674
+ catch (err) {
675
+ const message = err instanceof Error ? err.message : String(err);
676
+ cliOutput(formatError(new CleoError(ExitCode.GENERAL_ERROR, `docs publish failed: ${message}`)), { command: 'docs publish', operation: 'docs.publish' });
677
+ process.exit(ExitCode.GENERAL_ERROR);
678
+ }
679
+ },
680
+ });
681
+ // ── Legacy: cleo docs sync ────────────────────────────────────────────────────
682
+ /** cleo docs sync — drift detection between scripts and docs index */
683
+ const syncCommand = defineCommand({
684
+ meta: { name: 'sync', description: 'Run drift detection between scripts and docs index' },
685
+ args: {
686
+ quick: {
687
+ type: 'boolean',
688
+ description: 'Quick check (commands only)',
689
+ },
690
+ strict: {
691
+ type: 'boolean',
692
+ description: 'Exit with error on any drift',
693
+ },
694
+ },
695
+ async run({ args }) {
696
+ try {
697
+ const projectRoot = process.cwd();
698
+ const result = await detectDrift(projectRoot);
699
+ cliOutput({
700
+ status: result.status,
701
+ missingFromIndex: result.missingFromIndex,
702
+ missingFromScripts: result.missingFromScripts,
703
+ warnings: result.warnings,
704
+ }, {
705
+ command: 'docs',
706
+ message: result.status === 'clean'
707
+ ? 'Documentation is in sync'
708
+ : `Drift detected: ${result.warnings.join('; ')}`,
709
+ });
710
+ if (args.strict && result.status !== 'clean') {
711
+ process.exit(result.status === 'error' ? 2 : 1);
712
+ }
713
+ }
714
+ catch (err) {
715
+ if (err instanceof CleoError) {
716
+ console.error(formatError(err));
717
+ process.exit(err.code);
718
+ }
719
+ throw err;
720
+ }
721
+ },
722
+ });
723
+ // ── Legacy: cleo docs gap-check ───────────────────────────────────────────────
724
+ /** cleo docs gap-check — validate knowledge transfer from review docs */
725
+ const gapCheckCommand = defineCommand({
726
+ meta: {
727
+ name: 'gap-check',
728
+ description: 'Validate knowledge transfer from review docs to canonical docs',
729
+ },
730
+ args: {
731
+ epic: {
732
+ type: 'string',
733
+ description: 'Filter by epic ID',
734
+ },
735
+ task: {
736
+ type: 'string',
737
+ description: 'Filter by task ID',
738
+ },
739
+ },
740
+ async run({ args }) {
741
+ try {
742
+ const projectRoot = process.cwd();
743
+ const filterId = args.epic ?? args.task;
744
+ const gaps = await runGapCheck(projectRoot, filterId);
745
+ if (gaps.length === 0) {
746
+ cliOutput({ gapCount: 0, results: [] }, { command: 'docs', message: 'No documentation gaps found' });
747
+ }
748
+ else {
749
+ cliOutput({ gapCount: gaps.length, results: gaps }, { command: 'docs', message: `Found ${gaps.length} document(s) with gaps` });
750
+ }
751
+ }
752
+ catch (err) {
753
+ if (err instanceof CleoError) {
754
+ console.error(formatError(err));
755
+ process.exit(err.code);
756
+ }
757
+ throw err;
758
+ }
759
+ },
760
+ });
761
+ /**
762
+ * Root docs command group — attachment management, llmtxt primitives, and drift detection.
763
+ *
764
+ * Subcommands: add, list, fetch, remove, generate, export,
765
+ * search, merge, graph, rank, versions, publish,
766
+ * sync, gap-check.
767
+ */
768
+ export const docsCommand = defineCommand({
769
+ meta: {
770
+ name: 'docs',
771
+ description: 'Documentation attachment management (add/list/fetch/remove), ' +
772
+ 'llmtxt primitives (search/merge/graph/rank/versions/publish), ' +
773
+ 'and drift detection (sync/gap-check)',
774
+ },
775
+ subCommands: {
776
+ add: addCommand,
777
+ list: listCommand,
778
+ fetch: fetchCommand,
779
+ remove: removeCommand,
780
+ generate: generateCommand,
781
+ export: exportCommand,
782
+ search: searchCommand,
783
+ merge: mergeCommand,
784
+ graph: graphCommand,
785
+ rank: rankCommand,
786
+ versions: versionsCommand,
787
+ publish: publishCommand,
788
+ sync: syncCommand,
789
+ 'gap-check': gapCheckCommand,
790
+ },
791
+ async run({ cmd, rawArgs }) {
792
+ const firstArg = rawArgs?.find((a) => !a.startsWith('-'));
793
+ if (firstArg && cmd.subCommands && firstArg in cmd.subCommands)
794
+ return;
795
+ await showUsage(cmd);
796
+ },
797
+ });
798
+ //# sourceMappingURL=docs.js.map