@cleocode/cleo 2026.4.42 → 2026.4.44

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 (757) hide show
  1. package/dist/cli/index.js +176 -30
  2. package/dist/cli/index.js.map +3 -3
  3. package/package.json +12 -8
  4. package/dist/cli/commander-shim.d.ts +0 -112
  5. package/dist/cli/commander-shim.d.ts.map +0 -1
  6. package/dist/cli/commander-shim.js +0 -233
  7. package/dist/cli/commander-shim.js.map +0 -1
  8. package/dist/cli/commands/adapter.d.ts +0 -21
  9. package/dist/cli/commands/adapter.d.ts.map +0 -1
  10. package/dist/cli/commands/adapter.js +0 -73
  11. package/dist/cli/commands/adapter.js.map +0 -1
  12. package/dist/cli/commands/add-batch.d.ts +0 -16
  13. package/dist/cli/commands/add-batch.d.ts.map +0 -1
  14. package/dist/cli/commands/add-batch.js +0 -133
  15. package/dist/cli/commands/add-batch.js.map +0 -1
  16. package/dist/cli/commands/add.d.ts +0 -12
  17. package/dist/cli/commands/add.d.ts.map +0 -1
  18. package/dist/cli/commands/add.js +0 -238
  19. package/dist/cli/commands/add.js.map +0 -1
  20. package/dist/cli/commands/admin.d.ts +0 -15
  21. package/dist/cli/commands/admin.d.ts.map +0 -1
  22. package/dist/cli/commands/admin.js +0 -143
  23. package/dist/cli/commands/admin.js.map +0 -1
  24. package/dist/cli/commands/adr.d.ts +0 -27
  25. package/dist/cli/commands/adr.d.ts.map +0 -1
  26. package/dist/cli/commands/adr.js +0 -79
  27. package/dist/cli/commands/adr.js.map +0 -1
  28. package/dist/cli/commands/agent-profile-status.d.ts +0 -98
  29. package/dist/cli/commands/agent-profile-status.d.ts.map +0 -1
  30. package/dist/cli/commands/agent-profile-status.js +0 -71
  31. package/dist/cli/commands/agent-profile-status.js.map +0 -1
  32. package/dist/cli/commands/agent.d.ts +0 -41
  33. package/dist/cli/commands/agent.d.ts.map +0 -1
  34. package/dist/cli/commands/agent.js +0 -2270
  35. package/dist/cli/commands/agent.js.map +0 -1
  36. package/dist/cli/commands/agents.d.ts +0 -17
  37. package/dist/cli/commands/agents.d.ts.map +0 -1
  38. package/dist/cli/commands/agents.js +0 -20
  39. package/dist/cli/commands/agents.js.map +0 -1
  40. package/dist/cli/commands/analyze.d.ts +0 -12
  41. package/dist/cli/commands/analyze.d.ts.map +0 -1
  42. package/dist/cli/commands/analyze.js +0 -20
  43. package/dist/cli/commands/analyze.js.map +0 -1
  44. package/dist/cli/commands/archive-stats.d.ts +0 -18
  45. package/dist/cli/commands/archive-stats.d.ts.map +0 -1
  46. package/dist/cli/commands/archive-stats.js +0 -49
  47. package/dist/cli/commands/archive-stats.js.map +0 -1
  48. package/dist/cli/commands/archive.d.ts +0 -12
  49. package/dist/cli/commands/archive.d.ts.map +0 -1
  50. package/dist/cli/commands/archive.js +0 -32
  51. package/dist/cli/commands/archive.js.map +0 -1
  52. package/dist/cli/commands/backfill.d.ts +0 -38
  53. package/dist/cli/commands/backfill.d.ts.map +0 -1
  54. package/dist/cli/commands/backfill.js +0 -144
  55. package/dist/cli/commands/backfill.js.map +0 -1
  56. package/dist/cli/commands/backup-inspect.d.ts +0 -24
  57. package/dist/cli/commands/backup-inspect.d.ts.map +0 -1
  58. package/dist/cli/commands/backup-inspect.js +0 -417
  59. package/dist/cli/commands/backup-inspect.js.map +0 -1
  60. package/dist/cli/commands/backup.d.ts +0 -13
  61. package/dist/cli/commands/backup.d.ts.map +0 -1
  62. package/dist/cli/commands/backup.js +0 -479
  63. package/dist/cli/commands/backup.js.map +0 -1
  64. package/dist/cli/commands/blockers.d.ts +0 -7
  65. package/dist/cli/commands/blockers.d.ts.map +0 -1
  66. package/dist/cli/commands/blockers.js +0 -16
  67. package/dist/cli/commands/blockers.js.map +0 -1
  68. package/dist/cli/commands/brain.d.ts +0 -29
  69. package/dist/cli/commands/brain.d.ts.map +0 -1
  70. package/dist/cli/commands/brain.js +0 -252
  71. package/dist/cli/commands/brain.js.map +0 -1
  72. package/dist/cli/commands/briefing.d.ts +0 -22
  73. package/dist/cli/commands/briefing.d.ts.map +0 -1
  74. package/dist/cli/commands/briefing.js +0 -45
  75. package/dist/cli/commands/briefing.js.map +0 -1
  76. package/dist/cli/commands/bug.d.ts +0 -12
  77. package/dist/cli/commands/bug.d.ts.map +0 -1
  78. package/dist/cli/commands/bug.js +0 -81
  79. package/dist/cli/commands/bug.js.map +0 -1
  80. package/dist/cli/commands/cancel.d.ts +0 -17
  81. package/dist/cli/commands/cancel.d.ts.map +0 -1
  82. package/dist/cli/commands/cancel.js +0 -28
  83. package/dist/cli/commands/cancel.js.map +0 -1
  84. package/dist/cli/commands/cant.d.ts +0 -32
  85. package/dist/cli/commands/cant.d.ts.map +0 -1
  86. package/dist/cli/commands/cant.js +0 -264
  87. package/dist/cli/commands/cant.js.map +0 -1
  88. package/dist/cli/commands/chain.d.ts +0 -16
  89. package/dist/cli/commands/chain.d.ts.map +0 -1
  90. package/dist/cli/commands/chain.js +0 -52
  91. package/dist/cli/commands/chain.js.map +0 -1
  92. package/dist/cli/commands/check.d.ts +0 -25
  93. package/dist/cli/commands/check.d.ts.map +0 -1
  94. package/dist/cli/commands/check.js +0 -193
  95. package/dist/cli/commands/check.js.map +0 -1
  96. package/dist/cli/commands/checkpoint.d.ts +0 -15
  97. package/dist/cli/commands/checkpoint.d.ts.map +0 -1
  98. package/dist/cli/commands/checkpoint.js +0 -91
  99. package/dist/cli/commands/checkpoint.js.map +0 -1
  100. package/dist/cli/commands/claim.d.ts +0 -27
  101. package/dist/cli/commands/claim.d.ts.map +0 -1
  102. package/dist/cli/commands/claim.js +0 -45
  103. package/dist/cli/commands/claim.js.map +0 -1
  104. package/dist/cli/commands/code.d.ts +0 -11
  105. package/dist/cli/commands/code.d.ts.map +0 -1
  106. package/dist/cli/commands/code.js +0 -114
  107. package/dist/cli/commands/code.js.map +0 -1
  108. package/dist/cli/commands/commands.d.ts +0 -13
  109. package/dist/cli/commands/commands.d.ts.map +0 -1
  110. package/dist/cli/commands/commands.js +0 -29
  111. package/dist/cli/commands/commands.js.map +0 -1
  112. package/dist/cli/commands/complete.d.ts +0 -12
  113. package/dist/cli/commands/complete.d.ts.map +0 -1
  114. package/dist/cli/commands/complete.js +0 -92
  115. package/dist/cli/commands/complete.js.map +0 -1
  116. package/dist/cli/commands/complexity.d.ts +0 -17
  117. package/dist/cli/commands/complexity.d.ts.map +0 -1
  118. package/dist/cli/commands/complexity.js +0 -25
  119. package/dist/cli/commands/complexity.js.map +0 -1
  120. package/dist/cli/commands/compliance.d.ts +0 -9
  121. package/dist/cli/commands/compliance.d.ts.map +0 -1
  122. package/dist/cli/commands/compliance.js +0 -110
  123. package/dist/cli/commands/compliance.js.map +0 -1
  124. package/dist/cli/commands/config.d.ts +0 -10
  125. package/dist/cli/commands/config.d.ts.map +0 -1
  126. package/dist/cli/commands/config.js +0 -69
  127. package/dist/cli/commands/config.js.map +0 -1
  128. package/dist/cli/commands/consensus.d.ts +0 -13
  129. package/dist/cli/commands/consensus.d.ts.map +0 -1
  130. package/dist/cli/commands/consensus.js +0 -45
  131. package/dist/cli/commands/consensus.js.map +0 -1
  132. package/dist/cli/commands/context.d.ts +0 -15
  133. package/dist/cli/commands/context.d.ts.map +0 -1
  134. package/dist/cli/commands/context.js +0 -76
  135. package/dist/cli/commands/context.js.map +0 -1
  136. package/dist/cli/commands/contribution.d.ts +0 -13
  137. package/dist/cli/commands/contribution.d.ts.map +0 -1
  138. package/dist/cli/commands/contribution.js +0 -41
  139. package/dist/cli/commands/contribution.js.map +0 -1
  140. package/dist/cli/commands/current.d.ts +0 -13
  141. package/dist/cli/commands/current.d.ts.map +0 -1
  142. package/dist/cli/commands/current.js +0 -20
  143. package/dist/cli/commands/current.js.map +0 -1
  144. package/dist/cli/commands/dash.d.ts +0 -12
  145. package/dist/cli/commands/dash.d.ts.map +0 -1
  146. package/dist/cli/commands/dash.js +0 -20
  147. package/dist/cli/commands/dash.js.map +0 -1
  148. package/dist/cli/commands/decomposition.d.ts +0 -13
  149. package/dist/cli/commands/decomposition.d.ts.map +0 -1
  150. package/dist/cli/commands/decomposition.js +0 -45
  151. package/dist/cli/commands/decomposition.js.map +0 -1
  152. package/dist/cli/commands/delete.d.ts +0 -12
  153. package/dist/cli/commands/delete.d.ts.map +0 -1
  154. package/dist/cli/commands/delete.js +0 -37
  155. package/dist/cli/commands/delete.js.map +0 -1
  156. package/dist/cli/commands/deps.d.ts +0 -24
  157. package/dist/cli/commands/deps.d.ts.map +0 -1
  158. package/dist/cli/commands/deps.js +0 -98
  159. package/dist/cli/commands/deps.js.map +0 -1
  160. package/dist/cli/commands/detect-drift.d.ts +0 -15
  161. package/dist/cli/commands/detect-drift.d.ts.map +0 -1
  162. package/dist/cli/commands/detect-drift.js +0 -428
  163. package/dist/cli/commands/detect-drift.js.map +0 -1
  164. package/dist/cli/commands/detect.d.ts +0 -13
  165. package/dist/cli/commands/detect.d.ts.map +0 -1
  166. package/dist/cli/commands/detect.js +0 -20
  167. package/dist/cli/commands/detect.js.map +0 -1
  168. package/dist/cli/commands/docs.d.ts +0 -13
  169. package/dist/cli/commands/docs.d.ts.map +0 -1
  170. package/dist/cli/commands/docs.js +0 -169
  171. package/dist/cli/commands/docs.js.map +0 -1
  172. package/dist/cli/commands/doctor.d.ts +0 -15
  173. package/dist/cli/commands/doctor.d.ts.map +0 -1
  174. package/dist/cli/commands/doctor.js +0 -133
  175. package/dist/cli/commands/doctor.js.map +0 -1
  176. package/dist/cli/commands/dynamic.d.ts +0 -24
  177. package/dist/cli/commands/dynamic.d.ts.map +0 -1
  178. package/dist/cli/commands/dynamic.js +0 -27
  179. package/dist/cli/commands/dynamic.js.map +0 -1
  180. package/dist/cli/commands/env.d.ts +0 -12
  181. package/dist/cli/commands/env.d.ts.map +0 -1
  182. package/dist/cli/commands/env.js +0 -44
  183. package/dist/cli/commands/env.js.map +0 -1
  184. package/dist/cli/commands/exists.d.ts +0 -24
  185. package/dist/cli/commands/exists.d.ts.map +0 -1
  186. package/dist/cli/commands/exists.js +0 -53
  187. package/dist/cli/commands/exists.js.map +0 -1
  188. package/dist/cli/commands/export-tasks.d.ts +0 -10
  189. package/dist/cli/commands/export-tasks.d.ts.map +0 -1
  190. package/dist/cli/commands/export-tasks.js +0 -47
  191. package/dist/cli/commands/export-tasks.js.map +0 -1
  192. package/dist/cli/commands/export.d.ts +0 -9
  193. package/dist/cli/commands/export.d.ts.map +0 -1
  194. package/dist/cli/commands/export.js +0 -46
  195. package/dist/cli/commands/export.js.map +0 -1
  196. package/dist/cli/commands/find.d.ts +0 -14
  197. package/dist/cli/commands/find.d.ts.map +0 -1
  198. package/dist/cli/commands/find.js +0 -152
  199. package/dist/cli/commands/find.js.map +0 -1
  200. package/dist/cli/commands/generate-changelog.d.ts +0 -14
  201. package/dist/cli/commands/generate-changelog.d.ts.map +0 -1
  202. package/dist/cli/commands/generate-changelog.js +0 -252
  203. package/dist/cli/commands/generate-changelog.js.map +0 -1
  204. package/dist/cli/commands/grade.d.ts +0 -13
  205. package/dist/cli/commands/grade.d.ts.map +0 -1
  206. package/dist/cli/commands/grade.js +0 -26
  207. package/dist/cli/commands/grade.js.map +0 -1
  208. package/dist/cli/commands/history.d.ts +0 -9
  209. package/dist/cli/commands/history.d.ts.map +0 -1
  210. package/dist/cli/commands/history.js +0 -33
  211. package/dist/cli/commands/history.js.map +0 -1
  212. package/dist/cli/commands/implementation.d.ts +0 -13
  213. package/dist/cli/commands/implementation.d.ts.map +0 -1
  214. package/dist/cli/commands/implementation.js +0 -41
  215. package/dist/cli/commands/implementation.js.map +0 -1
  216. package/dist/cli/commands/import-tasks.d.ts +0 -10
  217. package/dist/cli/commands/import-tasks.d.ts.map +0 -1
  218. package/dist/cli/commands/import-tasks.js +0 -38
  219. package/dist/cli/commands/import-tasks.js.map +0 -1
  220. package/dist/cli/commands/import.d.ts +0 -9
  221. package/dist/cli/commands/import.d.ts.map +0 -1
  222. package/dist/cli/commands/import.js +0 -28
  223. package/dist/cli/commands/import.js.map +0 -1
  224. package/dist/cli/commands/init.d.ts +0 -34
  225. package/dist/cli/commands/init.d.ts.map +0 -1
  226. package/dist/cli/commands/init.js +0 -96
  227. package/dist/cli/commands/init.js.map +0 -1
  228. package/dist/cli/commands/inject.d.ts +0 -8
  229. package/dist/cli/commands/inject.d.ts.map +0 -1
  230. package/dist/cli/commands/inject.js +0 -28
  231. package/dist/cli/commands/inject.js.map +0 -1
  232. package/dist/cli/commands/intelligence.d.ts +0 -22
  233. package/dist/cli/commands/intelligence.d.ts.map +0 -1
  234. package/dist/cli/commands/intelligence.js +0 -72
  235. package/dist/cli/commands/intelligence.js.map +0 -1
  236. package/dist/cli/commands/issue.d.ts +0 -17
  237. package/dist/cli/commands/issue.d.ts.map +0 -1
  238. package/dist/cli/commands/issue.js +0 -107
  239. package/dist/cli/commands/issue.js.map +0 -1
  240. package/dist/cli/commands/labels.d.ts +0 -17
  241. package/dist/cli/commands/labels.d.ts.map +0 -1
  242. package/dist/cli/commands/labels.js +0 -48
  243. package/dist/cli/commands/labels.js.map +0 -1
  244. package/dist/cli/commands/lifecycle.d.ts +0 -8
  245. package/dist/cli/commands/lifecycle.d.ts.map +0 -1
  246. package/dist/cli/commands/lifecycle.js +0 -128
  247. package/dist/cli/commands/lifecycle.js.map +0 -1
  248. package/dist/cli/commands/list.d.ts +0 -14
  249. package/dist/cli/commands/list.d.ts.map +0 -1
  250. package/dist/cli/commands/list.js +0 -143
  251. package/dist/cli/commands/list.js.map +0 -1
  252. package/dist/cli/commands/log.d.ts +0 -12
  253. package/dist/cli/commands/log.d.ts.map +0 -1
  254. package/dist/cli/commands/log.js +0 -30
  255. package/dist/cli/commands/log.js.map +0 -1
  256. package/dist/cli/commands/map.d.ts +0 -10
  257. package/dist/cli/commands/map.d.ts.map +0 -1
  258. package/dist/cli/commands/map.js +0 -23
  259. package/dist/cli/commands/map.js.map +0 -1
  260. package/dist/cli/commands/memory-brain.d.ts +0 -14
  261. package/dist/cli/commands/memory-brain.d.ts.map +0 -1
  262. package/dist/cli/commands/memory-brain.js +0 -377
  263. package/dist/cli/commands/memory-brain.js.map +0 -1
  264. package/dist/cli/commands/migrate-claude-mem.d.ts +0 -23
  265. package/dist/cli/commands/migrate-claude-mem.d.ts.map +0 -1
  266. package/dist/cli/commands/migrate-claude-mem.js +0 -79
  267. package/dist/cli/commands/migrate-claude-mem.js.map +0 -1
  268. package/dist/cli/commands/next.d.ts +0 -9
  269. package/dist/cli/commands/next.d.ts.map +0 -1
  270. package/dist/cli/commands/next.js +0 -20
  271. package/dist/cli/commands/next.js.map +0 -1
  272. package/dist/cli/commands/nexus.d.ts +0 -20
  273. package/dist/cli/commands/nexus.d.ts.map +0 -1
  274. package/dist/cli/commands/nexus.js +0 -1163
  275. package/dist/cli/commands/nexus.js.map +0 -1
  276. package/dist/cli/commands/observe.d.ts +0 -13
  277. package/dist/cli/commands/observe.d.ts.map +0 -1
  278. package/dist/cli/commands/observe.js +0 -30
  279. package/dist/cli/commands/observe.js.map +0 -1
  280. package/dist/cli/commands/ops.d.ts +0 -10
  281. package/dist/cli/commands/ops.d.ts.map +0 -1
  282. package/dist/cli/commands/ops.js +0 -19
  283. package/dist/cli/commands/ops.js.map +0 -1
  284. package/dist/cli/commands/orchestrate.d.ts +0 -24
  285. package/dist/cli/commands/orchestrate.d.ts.map +0 -1
  286. package/dist/cli/commands/orchestrate.js +0 -254
  287. package/dist/cli/commands/orchestrate.js.map +0 -1
  288. package/dist/cli/commands/otel.d.ts +0 -12
  289. package/dist/cli/commands/otel.d.ts.map +0 -1
  290. package/dist/cli/commands/otel.js +0 -128
  291. package/dist/cli/commands/otel.js.map +0 -1
  292. package/dist/cli/commands/phase.d.ts +0 -12
  293. package/dist/cli/commands/phase.d.ts.map +0 -1
  294. package/dist/cli/commands/phase.js +0 -91
  295. package/dist/cli/commands/phase.js.map +0 -1
  296. package/dist/cli/commands/phases.d.ts +0 -14
  297. package/dist/cli/commands/phases.d.ts.map +0 -1
  298. package/dist/cli/commands/phases.js +0 -42
  299. package/dist/cli/commands/phases.js.map +0 -1
  300. package/dist/cli/commands/plan.d.ts +0 -8
  301. package/dist/cli/commands/plan.d.ts.map +0 -1
  302. package/dist/cli/commands/plan.js +0 -15
  303. package/dist/cli/commands/plan.js.map +0 -1
  304. package/dist/cli/commands/promote.d.ts +0 -11
  305. package/dist/cli/commands/promote.d.ts.map +0 -1
  306. package/dist/cli/commands/promote.js +0 -18
  307. package/dist/cli/commands/promote.js.map +0 -1
  308. package/dist/cli/commands/provider.d.ts +0 -21
  309. package/dist/cli/commands/provider.d.ts.map +0 -1
  310. package/dist/cli/commands/provider.js +0 -88
  311. package/dist/cli/commands/provider.js.map +0 -1
  312. package/dist/cli/commands/reason.d.ts +0 -36
  313. package/dist/cli/commands/reason.d.ts.map +0 -1
  314. package/dist/cli/commands/reason.js +0 -85
  315. package/dist/cli/commands/reason.js.map +0 -1
  316. package/dist/cli/commands/refresh-memory.d.ts +0 -9
  317. package/dist/cli/commands/refresh-memory.d.ts.map +0 -1
  318. package/dist/cli/commands/refresh-memory.js +0 -24
  319. package/dist/cli/commands/refresh-memory.js.map +0 -1
  320. package/dist/cli/commands/relates.d.ts +0 -12
  321. package/dist/cli/commands/relates.d.ts.map +0 -1
  322. package/dist/cli/commands/relates.js +0 -53
  323. package/dist/cli/commands/relates.js.map +0 -1
  324. package/dist/cli/commands/release.d.ts +0 -8
  325. package/dist/cli/commands/release.d.ts.map +0 -1
  326. package/dist/cli/commands/release.js +0 -82
  327. package/dist/cli/commands/release.js.map +0 -1
  328. package/dist/cli/commands/remote.d.ts +0 -12
  329. package/dist/cli/commands/remote.d.ts.map +0 -1
  330. package/dist/cli/commands/remote.js +0 -207
  331. package/dist/cli/commands/remote.js.map +0 -1
  332. package/dist/cli/commands/reorder.d.ts +0 -17
  333. package/dist/cli/commands/reorder.d.ts.map +0 -1
  334. package/dist/cli/commands/reorder.js +0 -41
  335. package/dist/cli/commands/reorder.js.map +0 -1
  336. package/dist/cli/commands/reparent.d.ts +0 -10
  337. package/dist/cli/commands/reparent.d.ts.map +0 -1
  338. package/dist/cli/commands/reparent.js +0 -19
  339. package/dist/cli/commands/reparent.js.map +0 -1
  340. package/dist/cli/commands/research.d.ts +0 -8
  341. package/dist/cli/commands/research.d.ts.map +0 -1
  342. package/dist/cli/commands/research.js +0 -164
  343. package/dist/cli/commands/research.js.map +0 -1
  344. package/dist/cli/commands/restore.d.ts +0 -54
  345. package/dist/cli/commands/restore.d.ts.map +0 -1
  346. package/dist/cli/commands/restore.js +0 -470
  347. package/dist/cli/commands/restore.js.map +0 -1
  348. package/dist/cli/commands/roadmap.d.ts +0 -14
  349. package/dist/cli/commands/roadmap.d.ts.map +0 -1
  350. package/dist/cli/commands/roadmap.js +0 -26
  351. package/dist/cli/commands/roadmap.js.map +0 -1
  352. package/dist/cli/commands/safestop.d.ts +0 -14
  353. package/dist/cli/commands/safestop.d.ts.map +0 -1
  354. package/dist/cli/commands/safestop.js +0 -32
  355. package/dist/cli/commands/safestop.js.map +0 -1
  356. package/dist/cli/commands/schema.d.ts +0 -27
  357. package/dist/cli/commands/schema.d.ts.map +0 -1
  358. package/dist/cli/commands/schema.js +0 -160
  359. package/dist/cli/commands/schema.js.map +0 -1
  360. package/dist/cli/commands/self-update.d.ts +0 -15
  361. package/dist/cli/commands/self-update.d.ts.map +0 -1
  362. package/dist/cli/commands/self-update.js +0 -363
  363. package/dist/cli/commands/self-update.js.map +0 -1
  364. package/dist/cli/commands/sequence.d.ts +0 -11
  365. package/dist/cli/commands/sequence.d.ts.map +0 -1
  366. package/dist/cli/commands/sequence.js +0 -40
  367. package/dist/cli/commands/sequence.js.map +0 -1
  368. package/dist/cli/commands/session.d.ts +0 -12
  369. package/dist/cli/commands/session.d.ts.map +0 -1
  370. package/dist/cli/commands/session.js +0 -219
  371. package/dist/cli/commands/session.js.map +0 -1
  372. package/dist/cli/commands/show.d.ts +0 -13
  373. package/dist/cli/commands/show.d.ts.map +0 -1
  374. package/dist/cli/commands/show.js +0 -40
  375. package/dist/cli/commands/show.js.map +0 -1
  376. package/dist/cli/commands/skills.d.ts +0 -13
  377. package/dist/cli/commands/skills.d.ts.map +0 -1
  378. package/dist/cli/commands/skills.js +0 -161
  379. package/dist/cli/commands/skills.js.map +0 -1
  380. package/dist/cli/commands/snapshot.d.ts +0 -9
  381. package/dist/cli/commands/snapshot.d.ts.map +0 -1
  382. package/dist/cli/commands/snapshot.js +0 -50
  383. package/dist/cli/commands/snapshot.js.map +0 -1
  384. package/dist/cli/commands/specification.d.ts +0 -13
  385. package/dist/cli/commands/specification.d.ts.map +0 -1
  386. package/dist/cli/commands/specification.js +0 -45
  387. package/dist/cli/commands/specification.js.map +0 -1
  388. package/dist/cli/commands/start.d.ts +0 -13
  389. package/dist/cli/commands/start.d.ts.map +0 -1
  390. package/dist/cli/commands/start.js +0 -20
  391. package/dist/cli/commands/start.js.map +0 -1
  392. package/dist/cli/commands/stats.d.ts +0 -12
  393. package/dist/cli/commands/stats.d.ts.map +0 -1
  394. package/dist/cli/commands/stats.js +0 -35
  395. package/dist/cli/commands/stats.js.map +0 -1
  396. package/dist/cli/commands/sticky.d.ts +0 -16
  397. package/dist/cli/commands/sticky.d.ts.map +0 -1
  398. package/dist/cli/commands/sticky.js +0 -218
  399. package/dist/cli/commands/sticky.js.map +0 -1
  400. package/dist/cli/commands/stop.d.ts +0 -13
  401. package/dist/cli/commands/stop.d.ts.map +0 -1
  402. package/dist/cli/commands/stop.js +0 -20
  403. package/dist/cli/commands/stop.js.map +0 -1
  404. package/dist/cli/commands/sync.d.ts +0 -26
  405. package/dist/cli/commands/sync.d.ts.map +0 -1
  406. package/dist/cli/commands/sync.js +0 -82
  407. package/dist/cli/commands/sync.js.map +0 -1
  408. package/dist/cli/commands/testing.d.ts +0 -13
  409. package/dist/cli/commands/testing.d.ts.map +0 -1
  410. package/dist/cli/commands/testing.js +0 -65
  411. package/dist/cli/commands/testing.js.map +0 -1
  412. package/dist/cli/commands/token.d.ts +0 -10
  413. package/dist/cli/commands/token.d.ts.map +0 -1
  414. package/dist/cli/commands/token.js +0 -135
  415. package/dist/cli/commands/token.js.map +0 -1
  416. package/dist/cli/commands/update.d.ts +0 -12
  417. package/dist/cli/commands/update.d.ts.map +0 -1
  418. package/dist/cli/commands/update.js +0 -83
  419. package/dist/cli/commands/update.js.map +0 -1
  420. package/dist/cli/commands/upgrade.d.ts +0 -18
  421. package/dist/cli/commands/upgrade.d.ts.map +0 -1
  422. package/dist/cli/commands/upgrade.js +0 -103
  423. package/dist/cli/commands/upgrade.js.map +0 -1
  424. package/dist/cli/commands/validate.d.ts +0 -12
  425. package/dist/cli/commands/validate.d.ts.map +0 -1
  426. package/dist/cli/commands/validate.js +0 -24
  427. package/dist/cli/commands/validate.js.map +0 -1
  428. package/dist/cli/commands/verify.d.ts +0 -8
  429. package/dist/cli/commands/verify.d.ts.map +0 -1
  430. package/dist/cli/commands/verify.js +0 -28
  431. package/dist/cli/commands/verify.js.map +0 -1
  432. package/dist/cli/commands/web.d.ts +0 -13
  433. package/dist/cli/commands/web.d.ts.map +0 -1
  434. package/dist/cli/commands/web.js +0 -277
  435. package/dist/cli/commands/web.js.map +0 -1
  436. package/dist/cli/field-context.d.ts +0 -32
  437. package/dist/cli/field-context.d.ts.map +0 -1
  438. package/dist/cli/field-context.js +0 -47
  439. package/dist/cli/field-context.js.map +0 -1
  440. package/dist/cli/format-context.d.ts +0 -32
  441. package/dist/cli/format-context.d.ts.map +0 -1
  442. package/dist/cli/format-context.js +0 -50
  443. package/dist/cli/format-context.js.map +0 -1
  444. package/dist/cli/help-generator.d.ts +0 -74
  445. package/dist/cli/help-generator.d.ts.map +0 -1
  446. package/dist/cli/help-generator.js +0 -229
  447. package/dist/cli/help-generator.js.map +0 -1
  448. package/dist/cli/help-renderer.d.ts +0 -28
  449. package/dist/cli/help-renderer.d.ts.map +0 -1
  450. package/dist/cli/help-renderer.js +0 -301
  451. package/dist/cli/help-renderer.js.map +0 -1
  452. package/dist/cli/index.d.ts +0 -9
  453. package/dist/cli/index.d.ts.map +0 -1
  454. package/dist/cli/logger-bootstrap.d.ts +0 -6
  455. package/dist/cli/logger-bootstrap.d.ts.map +0 -1
  456. package/dist/cli/logger-bootstrap.js +0 -10
  457. package/dist/cli/logger-bootstrap.js.map +0 -1
  458. package/dist/cli/middleware/output-format.d.ts +0 -30
  459. package/dist/cli/middleware/output-format.d.ts.map +0 -1
  460. package/dist/cli/middleware/output-format.js +0 -35
  461. package/dist/cli/middleware/output-format.js.map +0 -1
  462. package/dist/cli/progress.d.ts +0 -84
  463. package/dist/cli/progress.d.ts.map +0 -1
  464. package/dist/cli/progress.js +0 -169
  465. package/dist/cli/progress.js.map +0 -1
  466. package/dist/cli/renderers/colors.d.ts +0 -32
  467. package/dist/cli/renderers/colors.d.ts.map +0 -1
  468. package/dist/cli/renderers/colors.js +0 -141
  469. package/dist/cli/renderers/colors.js.map +0 -1
  470. package/dist/cli/renderers/error.d.ts +0 -13
  471. package/dist/cli/renderers/error.d.ts.map +0 -1
  472. package/dist/cli/renderers/error.js +0 -42
  473. package/dist/cli/renderers/error.js.map +0 -1
  474. package/dist/cli/renderers/index.d.ts +0 -87
  475. package/dist/cli/renderers/index.d.ts.map +0 -1
  476. package/dist/cli/renderers/index.js +0 -262
  477. package/dist/cli/renderers/index.js.map +0 -1
  478. package/dist/cli/renderers/lafs-validator.d.ts +0 -91
  479. package/dist/cli/renderers/lafs-validator.d.ts.map +0 -1
  480. package/dist/cli/renderers/lafs-validator.js +0 -176
  481. package/dist/cli/renderers/lafs-validator.js.map +0 -1
  482. package/dist/cli/renderers/normalizer.d.ts +0 -21
  483. package/dist/cli/renderers/normalizer.d.ts.map +0 -1
  484. package/dist/cli/renderers/normalizer.js +0 -106
  485. package/dist/cli/renderers/normalizer.js.map +0 -1
  486. package/dist/cli/renderers/system.d.ts +0 -25
  487. package/dist/cli/renderers/system.d.ts.map +0 -1
  488. package/dist/cli/renderers/system.js +0 -416
  489. package/dist/cli/renderers/system.js.map +0 -1
  490. package/dist/cli/renderers/tasks.d.ts +0 -28
  491. package/dist/cli/renderers/tasks.d.ts.map +0 -1
  492. package/dist/cli/renderers/tasks.js +0 -306
  493. package/dist/cli/renderers/tasks.js.map +0 -1
  494. package/dist/dispatch/adapters/cli.d.ts +0 -67
  495. package/dist/dispatch/adapters/cli.d.ts.map +0 -1
  496. package/dist/dispatch/adapters/cli.js +0 -329
  497. package/dist/dispatch/adapters/cli.js.map +0 -1
  498. package/dist/dispatch/context/session-context.d.ts +0 -54
  499. package/dist/dispatch/context/session-context.d.ts.map +0 -1
  500. package/dist/dispatch/context/session-context.js +0 -61
  501. package/dist/dispatch/context/session-context.js.map +0 -1
  502. package/dist/dispatch/dispatcher.d.ts +0 -23
  503. package/dist/dispatch/dispatcher.d.ts.map +0 -1
  504. package/dist/dispatch/dispatcher.js +0 -84
  505. package/dist/dispatch/dispatcher.js.map +0 -1
  506. package/dist/dispatch/domains/_base.d.ts +0 -59
  507. package/dist/dispatch/domains/_base.d.ts.map +0 -1
  508. package/dist/dispatch/domains/_base.js +0 -77
  509. package/dist/dispatch/domains/_base.js.map +0 -1
  510. package/dist/dispatch/domains/_meta.d.ts +0 -23
  511. package/dist/dispatch/domains/_meta.d.ts.map +0 -1
  512. package/dist/dispatch/domains/_meta.js +0 -25
  513. package/dist/dispatch/domains/_meta.js.map +0 -1
  514. package/dist/dispatch/domains/_routing.d.ts +0 -8
  515. package/dist/dispatch/domains/_routing.d.ts.map +0 -1
  516. package/dist/dispatch/domains/_routing.js +0 -20
  517. package/dist/dispatch/domains/_routing.js.map +0 -1
  518. package/dist/dispatch/domains/admin.d.ts +0 -25
  519. package/dist/dispatch/domains/admin.d.ts.map +0 -1
  520. package/dist/dispatch/domains/admin.js +0 -791
  521. package/dist/dispatch/domains/admin.js.map +0 -1
  522. package/dist/dispatch/domains/check.d.ts +0 -22
  523. package/dist/dispatch/domains/check.d.ts.map +0 -1
  524. package/dist/dispatch/domains/check.js +0 -381
  525. package/dist/dispatch/domains/check.js.map +0 -1
  526. package/dist/dispatch/domains/conduit.d.ts +0 -38
  527. package/dist/dispatch/domains/conduit.d.ts.map +0 -1
  528. package/dist/dispatch/domains/conduit.js +0 -247
  529. package/dist/dispatch/domains/conduit.js.map +0 -1
  530. package/dist/dispatch/domains/index.d.ts +0 -28
  531. package/dist/dispatch/domains/index.d.ts.map +0 -1
  532. package/dist/dispatch/domains/index.js +0 -43
  533. package/dist/dispatch/domains/index.js.map +0 -1
  534. package/dist/dispatch/domains/intelligence.d.ts +0 -26
  535. package/dist/dispatch/domains/intelligence.d.ts.map +0 -1
  536. package/dist/dispatch/domains/intelligence.js +0 -154
  537. package/dist/dispatch/domains/intelligence.js.map +0 -1
  538. package/dist/dispatch/domains/memory.d.ts +0 -22
  539. package/dist/dispatch/domains/memory.d.ts.map +0 -1
  540. package/dist/dispatch/domains/memory.js +0 -387
  541. package/dist/dispatch/domains/memory.js.map +0 -1
  542. package/dist/dispatch/domains/nexus.d.ts +0 -22
  543. package/dist/dispatch/domains/nexus.d.ts.map +0 -1
  544. package/dist/dispatch/domains/nexus.js +0 -286
  545. package/dist/dispatch/domains/nexus.js.map +0 -1
  546. package/dist/dispatch/domains/orchestrate.d.ts +0 -26
  547. package/dist/dispatch/domains/orchestrate.d.ts.map +0 -1
  548. package/dist/dispatch/domains/orchestrate.js +0 -691
  549. package/dist/dispatch/domains/orchestrate.js.map +0 -1
  550. package/dist/dispatch/domains/pipeline.d.ts +0 -35
  551. package/dist/dispatch/domains/pipeline.d.ts.map +0 -1
  552. package/dist/dispatch/domains/pipeline.js +0 -593
  553. package/dist/dispatch/domains/pipeline.js.map +0 -1
  554. package/dist/dispatch/domains/session.d.ts +0 -22
  555. package/dist/dispatch/domains/session.d.ts.map +0 -1
  556. package/dist/dispatch/domains/session.js +0 -267
  557. package/dist/dispatch/domains/session.js.map +0 -1
  558. package/dist/dispatch/domains/sticky.d.ts +0 -20
  559. package/dist/dispatch/domains/sticky.d.ts.map +0 -1
  560. package/dist/dispatch/domains/sticky.js +0 -167
  561. package/dist/dispatch/domains/sticky.js.map +0 -1
  562. package/dist/dispatch/domains/tasks.d.ts +0 -25
  563. package/dist/dispatch/domains/tasks.d.ts.map +0 -1
  564. package/dist/dispatch/domains/tasks.js +0 -368
  565. package/dist/dispatch/domains/tasks.js.map +0 -1
  566. package/dist/dispatch/domains/tools.d.ts +0 -37
  567. package/dist/dispatch/domains/tools.d.ts.map +0 -1
  568. package/dist/dispatch/domains/tools.js +0 -481
  569. package/dist/dispatch/domains/tools.js.map +0 -1
  570. package/dist/dispatch/engines/_error.d.ts +0 -119
  571. package/dist/dispatch/engines/_error.d.ts.map +0 -1
  572. package/dist/dispatch/engines/_error.js +0 -298
  573. package/dist/dispatch/engines/_error.js.map +0 -1
  574. package/dist/dispatch/engines/code-engine.d.ts +0 -18
  575. package/dist/dispatch/engines/code-engine.d.ts.map +0 -1
  576. package/dist/dispatch/engines/code-engine.js +0 -71
  577. package/dist/dispatch/engines/code-engine.js.map +0 -1
  578. package/dist/dispatch/engines/codebase-map-engine.d.ts +0 -31
  579. package/dist/dispatch/engines/codebase-map-engine.d.ts.map +0 -1
  580. package/dist/dispatch/engines/codebase-map-engine.js +0 -43
  581. package/dist/dispatch/engines/codebase-map-engine.js.map +0 -1
  582. package/dist/dispatch/engines/config-engine.d.ts +0 -32
  583. package/dist/dispatch/engines/config-engine.d.ts.map +0 -1
  584. package/dist/dispatch/engines/config-engine.js +0 -70
  585. package/dist/dispatch/engines/config-engine.js.map +0 -1
  586. package/dist/dispatch/engines/hooks-engine.d.ts +0 -96
  587. package/dist/dispatch/engines/hooks-engine.d.ts.map +0 -1
  588. package/dist/dispatch/engines/hooks-engine.js +0 -144
  589. package/dist/dispatch/engines/hooks-engine.js.map +0 -1
  590. package/dist/dispatch/engines/init-engine.d.ts +0 -56
  591. package/dist/dispatch/engines/init-engine.d.ts.map +0 -1
  592. package/dist/dispatch/engines/init-engine.js +0 -78
  593. package/dist/dispatch/engines/init-engine.js.map +0 -1
  594. package/dist/dispatch/engines/lifecycle-engine.d.ts +0 -66
  595. package/dist/dispatch/engines/lifecycle-engine.d.ts.map +0 -1
  596. package/dist/dispatch/engines/lifecycle-engine.js +0 -224
  597. package/dist/dispatch/engines/lifecycle-engine.js.map +0 -1
  598. package/dist/dispatch/engines/memory-engine.d.ts +0 -10
  599. package/dist/dispatch/engines/memory-engine.d.ts.map +0 -1
  600. package/dist/dispatch/engines/memory-engine.js +0 -10
  601. package/dist/dispatch/engines/memory-engine.js.map +0 -1
  602. package/dist/dispatch/engines/nexus-engine.d.ts +0 -167
  603. package/dist/dispatch/engines/nexus-engine.d.ts.map +0 -1
  604. package/dist/dispatch/engines/nexus-engine.js +0 -356
  605. package/dist/dispatch/engines/nexus-engine.js.map +0 -1
  606. package/dist/dispatch/engines/orchestrate-engine.d.ts +0 -141
  607. package/dist/dispatch/engines/orchestrate-engine.d.ts.map +0 -1
  608. package/dist/dispatch/engines/orchestrate-engine.js +0 -912
  609. package/dist/dispatch/engines/orchestrate-engine.js.map +0 -1
  610. package/dist/dispatch/engines/pipeline-engine.d.ts +0 -51
  611. package/dist/dispatch/engines/pipeline-engine.d.ts.map +0 -1
  612. package/dist/dispatch/engines/pipeline-engine.js +0 -191
  613. package/dist/dispatch/engines/pipeline-engine.js.map +0 -1
  614. package/dist/dispatch/engines/release-engine.d.ts +0 -94
  615. package/dist/dispatch/engines/release-engine.d.ts.map +0 -1
  616. package/dist/dispatch/engines/release-engine.js +0 -763
  617. package/dist/dispatch/engines/release-engine.js.map +0 -1
  618. package/dist/dispatch/engines/session-engine.d.ts +0 -387
  619. package/dist/dispatch/engines/session-engine.d.ts.map +0 -1
  620. package/dist/dispatch/engines/session-engine.js +0 -924
  621. package/dist/dispatch/engines/session-engine.js.map +0 -1
  622. package/dist/dispatch/engines/sticky-engine.d.ts +0 -100
  623. package/dist/dispatch/engines/sticky-engine.d.ts.map +0 -1
  624. package/dist/dispatch/engines/sticky-engine.js +0 -181
  625. package/dist/dispatch/engines/sticky-engine.js.map +0 -1
  626. package/dist/dispatch/engines/system-engine.d.ts +0 -543
  627. package/dist/dispatch/engines/system-engine.d.ts.map +0 -1
  628. package/dist/dispatch/engines/system-engine.js +0 -1273
  629. package/dist/dispatch/engines/system-engine.js.map +0 -1
  630. package/dist/dispatch/engines/task-engine.d.ts +0 -971
  631. package/dist/dispatch/engines/task-engine.d.ts.map +0 -1
  632. package/dist/dispatch/engines/task-engine.js +0 -1255
  633. package/dist/dispatch/engines/task-engine.js.map +0 -1
  634. package/dist/dispatch/engines/template-parser.d.ts +0 -85
  635. package/dist/dispatch/engines/template-parser.d.ts.map +0 -1
  636. package/dist/dispatch/engines/template-parser.js +0 -108
  637. package/dist/dispatch/engines/template-parser.js.map +0 -1
  638. package/dist/dispatch/engines/tools-engine.d.ts +0 -270
  639. package/dist/dispatch/engines/tools-engine.d.ts.map +0 -1
  640. package/dist/dispatch/engines/tools-engine.js +0 -663
  641. package/dist/dispatch/engines/tools-engine.js.map +0 -1
  642. package/dist/dispatch/engines/validate-engine.d.ts +0 -218
  643. package/dist/dispatch/engines/validate-engine.d.ts.map +0 -1
  644. package/dist/dispatch/engines/validate-engine.js +0 -737
  645. package/dist/dispatch/engines/validate-engine.js.map +0 -1
  646. package/dist/dispatch/index.d.ts +0 -20
  647. package/dist/dispatch/index.d.ts.map +0 -1
  648. package/dist/dispatch/index.js +0 -19
  649. package/dist/dispatch/index.js.map +0 -1
  650. package/dist/dispatch/lib/background-jobs.d.ts +0 -86
  651. package/dist/dispatch/lib/background-jobs.d.ts.map +0 -1
  652. package/dist/dispatch/lib/background-jobs.js +0 -183
  653. package/dist/dispatch/lib/background-jobs.js.map +0 -1
  654. package/dist/dispatch/lib/budget.d.ts +0 -36
  655. package/dist/dispatch/lib/budget.d.ts.map +0 -1
  656. package/dist/dispatch/lib/budget.js +0 -109
  657. package/dist/dispatch/lib/budget.js.map +0 -1
  658. package/dist/dispatch/lib/capability-matrix.d.ts +0 -11
  659. package/dist/dispatch/lib/capability-matrix.d.ts.map +0 -1
  660. package/dist/dispatch/lib/capability-matrix.js +0 -10
  661. package/dist/dispatch/lib/capability-matrix.js.map +0 -1
  662. package/dist/dispatch/lib/config-loader.d.ts +0 -42
  663. package/dist/dispatch/lib/config-loader.d.ts.map +0 -1
  664. package/dist/dispatch/lib/config-loader.js +0 -217
  665. package/dist/dispatch/lib/config-loader.js.map +0 -1
  666. package/dist/dispatch/lib/config.d.ts +0 -11
  667. package/dist/dispatch/lib/config.d.ts.map +0 -1
  668. package/dist/dispatch/lib/config.js +0 -10
  669. package/dist/dispatch/lib/config.js.map +0 -1
  670. package/dist/dispatch/lib/defaults.d.ts +0 -115
  671. package/dist/dispatch/lib/defaults.d.ts.map +0 -1
  672. package/dist/dispatch/lib/defaults.js +0 -61
  673. package/dist/dispatch/lib/defaults.js.map +0 -1
  674. package/dist/dispatch/lib/engine.d.ts +0 -26
  675. package/dist/dispatch/lib/engine.d.ts.map +0 -1
  676. package/dist/dispatch/lib/engine.js +0 -46
  677. package/dist/dispatch/lib/engine.js.map +0 -1
  678. package/dist/dispatch/lib/exit-codes.d.ts +0 -35
  679. package/dist/dispatch/lib/exit-codes.d.ts.map +0 -1
  680. package/dist/dispatch/lib/exit-codes.js +0 -60
  681. package/dist/dispatch/lib/exit-codes.js.map +0 -1
  682. package/dist/dispatch/lib/gateway-meta.d.ts +0 -37
  683. package/dist/dispatch/lib/gateway-meta.d.ts.map +0 -1
  684. package/dist/dispatch/lib/gateway-meta.js +0 -50
  685. package/dist/dispatch/lib/gateway-meta.js.map +0 -1
  686. package/dist/dispatch/lib/job-manager-accessor.d.ts +0 -9
  687. package/dist/dispatch/lib/job-manager-accessor.d.ts.map +0 -1
  688. package/dist/dispatch/lib/job-manager-accessor.js +0 -13
  689. package/dist/dispatch/lib/job-manager-accessor.js.map +0 -1
  690. package/dist/dispatch/lib/meta.d.ts +0 -26
  691. package/dist/dispatch/lib/meta.d.ts.map +0 -1
  692. package/dist/dispatch/lib/meta.js +0 -37
  693. package/dist/dispatch/lib/meta.js.map +0 -1
  694. package/dist/dispatch/lib/param-utils.d.ts +0 -11
  695. package/dist/dispatch/lib/param-utils.d.ts.map +0 -1
  696. package/dist/dispatch/lib/param-utils.js +0 -10
  697. package/dist/dispatch/lib/param-utils.js.map +0 -1
  698. package/dist/dispatch/lib/projections.d.ts +0 -56
  699. package/dist/dispatch/lib/projections.d.ts.map +0 -1
  700. package/dist/dispatch/lib/projections.js +0 -65
  701. package/dist/dispatch/lib/projections.js.map +0 -1
  702. package/dist/dispatch/lib/proto-envelope.d.ts +0 -56
  703. package/dist/dispatch/lib/proto-envelope.d.ts.map +0 -1
  704. package/dist/dispatch/lib/proto-envelope.js +0 -17
  705. package/dist/dispatch/lib/proto-envelope.js.map +0 -1
  706. package/dist/dispatch/lib/schema-utils.d.ts +0 -39
  707. package/dist/dispatch/lib/schema-utils.d.ts.map +0 -1
  708. package/dist/dispatch/lib/schema-utils.js +0 -88
  709. package/dist/dispatch/lib/schema-utils.js.map +0 -1
  710. package/dist/dispatch/lib/security.d.ts +0 -11
  711. package/dist/dispatch/lib/security.d.ts.map +0 -1
  712. package/dist/dispatch/lib/security.js +0 -10
  713. package/dist/dispatch/lib/security.js.map +0 -1
  714. package/dist/dispatch/middleware/audit.d.ts +0 -23
  715. package/dist/dispatch/middleware/audit.d.ts.map +0 -1
  716. package/dist/dispatch/middleware/audit.js +0 -169
  717. package/dist/dispatch/middleware/audit.js.map +0 -1
  718. package/dist/dispatch/middleware/field-filter.d.ts +0 -25
  719. package/dist/dispatch/middleware/field-filter.d.ts.map +0 -1
  720. package/dist/dispatch/middleware/field-filter.js +0 -70
  721. package/dist/dispatch/middleware/field-filter.js.map +0 -1
  722. package/dist/dispatch/middleware/pipeline.d.ts +0 -33
  723. package/dist/dispatch/middleware/pipeline.d.ts.map +0 -1
  724. package/dist/dispatch/middleware/pipeline.js +0 -60
  725. package/dist/dispatch/middleware/pipeline.js.map +0 -1
  726. package/dist/dispatch/middleware/projection.d.ts +0 -35
  727. package/dist/dispatch/middleware/projection.d.ts.map +0 -1
  728. package/dist/dispatch/middleware/projection.js +0 -146
  729. package/dist/dispatch/middleware/projection.js.map +0 -1
  730. package/dist/dispatch/middleware/protocol-enforcement.d.ts +0 -30
  731. package/dist/dispatch/middleware/protocol-enforcement.d.ts.map +0 -1
  732. package/dist/dispatch/middleware/protocol-enforcement.js +0 -56
  733. package/dist/dispatch/middleware/protocol-enforcement.js.map +0 -1
  734. package/dist/dispatch/middleware/rate-limiter.d.ts +0 -72
  735. package/dist/dispatch/middleware/rate-limiter.d.ts.map +0 -1
  736. package/dist/dispatch/middleware/rate-limiter.js +0 -127
  737. package/dist/dispatch/middleware/rate-limiter.js.map +0 -1
  738. package/dist/dispatch/middleware/sanitizer.d.ts +0 -24
  739. package/dist/dispatch/middleware/sanitizer.d.ts.map +0 -1
  740. package/dist/dispatch/middleware/sanitizer.js +0 -56
  741. package/dist/dispatch/middleware/sanitizer.js.map +0 -1
  742. package/dist/dispatch/middleware/session-resolver.d.ts +0 -26
  743. package/dist/dispatch/middleware/session-resolver.d.ts.map +0 -1
  744. package/dist/dispatch/middleware/session-resolver.js +0 -65
  745. package/dist/dispatch/middleware/session-resolver.js.map +0 -1
  746. package/dist/dispatch/middleware/verification-gates.d.ts +0 -22
  747. package/dist/dispatch/middleware/verification-gates.d.ts.map +0 -1
  748. package/dist/dispatch/middleware/verification-gates.js +0 -59
  749. package/dist/dispatch/middleware/verification-gates.js.map +0 -1
  750. package/dist/dispatch/registry.d.ts +0 -91
  751. package/dist/dispatch/registry.d.ts.map +0 -1
  752. package/dist/dispatch/registry.js +0 -3457
  753. package/dist/dispatch/registry.js.map +0 -1
  754. package/dist/dispatch/types.d.ts +0 -206
  755. package/dist/dispatch/types.d.ts.map +0 -1
  756. package/dist/dispatch/types.js +0 -26
  757. package/dist/dispatch/types.js.map +0 -1
@@ -1,1163 +0,0 @@
1
- /**
2
- * CLI nexus command group - Cross-project NEXUS operations.
3
- *
4
- * Thin CLI wrappers routing through the dispatch layer.
5
- * All business logic lives in src/dispatch/domains/nexus.ts.
6
- *
7
- * `nexus analyze` is implemented directly here because it requires
8
- * `@cleocode/nexus` pipeline access and `@cleocode/core` DB access together,
9
- * and routing through the dispatch layer would create awkward coupling.
10
- *
11
- * @task T4554, T5323, T5330, T481, T534
12
- * @epic T4545
13
- */
14
- import path from 'node:path';
15
- import { dispatchFromCli } from '../../dispatch/adapters/cli.js';
16
- /**
17
- * Priority score for nexus node kinds when ranking symbol search results.
18
- *
19
- * Callable symbols (function, method) rank highest so that `nexus context`
20
- * and `nexus impact` return meaningful callers/callees instead of
21
- * file/folder structural nodes which have zero `calls` relations.
22
- *
23
- * Lower score = higher priority (sort ascending).
24
- */
25
- const NODE_KIND_PRIORITY = {
26
- function: 0,
27
- method: 1,
28
- constructor: 2,
29
- class: 3,
30
- interface: 4,
31
- type_alias: 5,
32
- enum: 6,
33
- constant: 7,
34
- property: 8,
35
- variable: 9,
36
- static: 10,
37
- struct: 11,
38
- trait: 12,
39
- impl: 13,
40
- macro: 14,
41
- // Structural/module nodes come last — they have no `calls` relations
42
- module: 20,
43
- namespace: 21,
44
- record: 22,
45
- delegate: 23,
46
- union: 24,
47
- typedef: 25,
48
- annotation: 26,
49
- template: 27,
50
- route: 28,
51
- tool: 29,
52
- section: 30,
53
- import: 31,
54
- export: 32,
55
- type: 33,
56
- file: 40,
57
- folder: 41,
58
- };
59
- /**
60
- * Sort symbol search results so that callable nodes (function, method, class)
61
- * appear before structural nodes (file, folder). Within the same kind, prefer
62
- * exact name matches over partial matches.
63
- */
64
- function sortMatchingNodes(nodes, symbolName) {
65
- const lowerSymbol = symbolName.toLowerCase();
66
- return [...nodes].sort((a, b) => {
67
- const kindA = String(a['kind'] ?? '');
68
- const kindB = String(b['kind'] ?? '');
69
- const prioA = NODE_KIND_PRIORITY[kindA] ?? 15;
70
- const prioB = NODE_KIND_PRIORITY[kindB] ?? 15;
71
- if (prioA !== prioB)
72
- return prioA - prioB;
73
- // Within same kind: exact name matches before partial matches
74
- const nameA = String(a['name'] ?? '').toLowerCase();
75
- const nameB = String(b['name'] ?? '').toLowerCase();
76
- const exactA = nameA === lowerSymbol ? 0 : 1;
77
- const exactB = nameB === lowerSymbol ? 0 : 1;
78
- return exactA - exactB;
79
- });
80
- }
81
- /**
82
- * Register the nexus command group.
83
- * @task T4554
84
- */
85
- export function registerNexusCommand(program) {
86
- const nexus = program.command('nexus').description('Cross-project NEXUS operations');
87
- // ── nexus init ──────────────────────────────────────────────────────
88
- nexus
89
- .command('init')
90
- .description('Initialize NEXUS directory structure and registry')
91
- .action(async () => {
92
- await dispatchFromCli('mutate', 'nexus', 'init', {}, { command: 'nexus' });
93
- });
94
- // ── nexus register ──────────────────────────────────────────────────
95
- nexus
96
- .command('register <path>')
97
- .description('Register a project in the global registry')
98
- .option('--name <name>', 'Custom project name (default: directory name)')
99
- .option('--permissions <perms>', 'Permissions: read|write|execute', 'read')
100
- .action(async (projectPath, opts) => {
101
- await dispatchFromCli('mutate', 'nexus', 'register', {
102
- path: projectPath,
103
- name: opts['name'],
104
- permission: opts['permissions'],
105
- }, { command: 'nexus' });
106
- });
107
- // ── nexus unregister ────────────────────────────────────────────────
108
- nexus
109
- .command('unregister <nameOrHash>')
110
- .description('Remove a project from the registry')
111
- .action(async (nameOrHash) => {
112
- await dispatchFromCli('mutate', 'nexus', 'unregister', {
113
- name: nameOrHash,
114
- }, { command: 'nexus' });
115
- });
116
- // ── nexus list ──────────────────────────────────────────────────────
117
- nexus
118
- .command('list')
119
- .description('List all registered projects')
120
- .action(async () => {
121
- await dispatchFromCli('query', 'nexus', 'list', {}, { command: 'nexus' });
122
- });
123
- // ── nexus status ────────────────────────────────────────────────────
124
- // Shows both NEXUS registry status AND code intelligence index freshness.
125
- // When invoked with a path, shows index freshness for that project.
126
- nexus
127
- .command('status [path]')
128
- .description('Show code intelligence index freshness: file count, node/relation counts, last indexed time, stale files. Falls back to NEXUS registry status if code-intelligence index is unavailable.')
129
- .option('--project-id <id>', 'Override the project ID (default: auto-detected from path)')
130
- .option('--json', 'Output as JSON (LAFS envelope format)')
131
- .action(async (targetPath, opts) => {
132
- const jsonOutput = !!opts['json'];
133
- const projectIdOverride = opts['projectId'];
134
- const repoPath = targetPath ? path.resolve(targetPath) : process.cwd();
135
- const startTime = Date.now();
136
- try {
137
- const [{ getNexusDb, nexusSchema }, { getIndexStats }] = await Promise.all([
138
- import('@cleocode/core/store/nexus-sqlite'),
139
- import('@cleocode/nexus/pipeline'),
140
- ]);
141
- const projectId = projectIdOverride ?? Buffer.from(repoPath).toString('base64url').slice(0, 32);
142
- const db = await getNexusDb();
143
- const tables = {
144
- nexusNodes: nexusSchema.nexusNodes,
145
- nexusRelations: nexusSchema.nexusRelations,
146
- };
147
- const stats = await getIndexStats(projectId, repoPath, db, tables);
148
- const durationMs = Date.now() - startTime;
149
- if (jsonOutput) {
150
- const envelope = {
151
- success: true,
152
- data: { projectId, repoPath, ...stats },
153
- meta: {
154
- operation: 'nexus.status',
155
- duration_ms: durationMs,
156
- timestamp: new Date().toISOString(),
157
- },
158
- };
159
- process.stdout.write(JSON.stringify(envelope, null, 2) + '\n');
160
- }
161
- else if (!stats.indexed) {
162
- process.stdout.write(`[nexus] Index status for: ${repoPath}\n` +
163
- ` Status: NOT INDEXED\n` +
164
- ` Run 'cleo nexus analyze' to build the index.\n`);
165
- }
166
- else {
167
- const staleLabel = stats.staleFileCount < 0
168
- ? 'unknown'
169
- : stats.staleFileCount === 0
170
- ? 'up to date'
171
- : `${stats.staleFileCount} stale`;
172
- process.stdout.write(`[nexus] Index status for: ${repoPath}\n` +
173
- ` Project ID: ${projectId}\n` +
174
- ` Nodes: ${stats.nodeCount}\n` +
175
- ` Relations: ${stats.relationCount}\n` +
176
- ` Files: ${stats.fileCount}\n` +
177
- ` Last indexed: ${stats.lastIndexedAt ?? 'never'}\n` +
178
- ` Staleness: ${staleLabel}\n`);
179
- }
180
- }
181
- catch (err) {
182
- // Fall back to NEXUS registry status on error
183
- const msg = err instanceof Error ? err.message : String(err);
184
- if (jsonOutput) {
185
- process.stdout.write(JSON.stringify({
186
- success: false,
187
- error: { code: 'E_STATUS_FAILED', message: msg },
188
- meta: {
189
- operation: 'nexus.status',
190
- duration_ms: Date.now() - startTime,
191
- timestamp: new Date().toISOString(),
192
- },
193
- }, null, 2) + '\n');
194
- }
195
- else {
196
- process.stderr.write(`[nexus] Error: ${msg}\n`);
197
- await dispatchFromCli('query', 'nexus', 'status', {}, { command: 'nexus' });
198
- }
199
- process.exitCode = 1;
200
- }
201
- });
202
- // ── nexus show ─────────────────────────────────────────────────────
203
- nexus
204
- .command('show <name>')
205
- .description('Show details for a registered project by name')
206
- .action(async (name) => {
207
- await dispatchFromCli('query', 'nexus', 'show', {
208
- name,
209
- }, { command: 'nexus' });
210
- });
211
- // ── nexus resolve ───────────────────────────────────────────────────
212
- nexus
213
- .command('resolve <taskRef>')
214
- .alias('query')
215
- .description('Resolve a task reference across projects (project:T### or T###)')
216
- .action(async (taskRef) => {
217
- await dispatchFromCli('query', 'nexus', 'resolve', {
218
- query: taskRef,
219
- }, { command: 'nexus' });
220
- });
221
- // ── nexus discover ──────────────────────────────────────────────────
222
- nexus
223
- .command('discover <taskQuery>')
224
- .description('Find related tasks across projects')
225
- .option('--method <method>', 'Discovery method: labels|description|files|auto', 'auto')
226
- .option('--limit <n>', 'Max results', parseInt, 10)
227
- .action(async (taskQuery, opts) => {
228
- await dispatchFromCli('query', 'nexus', 'discover', {
229
- query: taskQuery,
230
- method: opts['method'],
231
- limit: opts['limit'],
232
- }, { command: 'nexus' });
233
- });
234
- // ── nexus search ────────────────────────────────────────────────────
235
- nexus
236
- .command('search <pattern>')
237
- .description('Search tasks across projects by pattern')
238
- .option('--project <name>', 'Limit search to specific project')
239
- .option('--limit <n>', 'Max results', parseInt, 20)
240
- .action(async (pattern, opts) => {
241
- await dispatchFromCli('query', 'nexus', 'search', {
242
- pattern,
243
- project: opts['project'],
244
- limit: opts['limit'],
245
- }, { command: 'nexus' });
246
- });
247
- // ── nexus deps ──────────────────────────────────────────────────────
248
- nexus
249
- .command('deps <taskQuery>')
250
- .description('Show cross-project dependencies')
251
- .option('--reverse', 'Show reverse dependencies (what depends on this)')
252
- .action(async (taskQuery, opts) => {
253
- await dispatchFromCli('query', 'nexus', 'deps', {
254
- query: taskQuery,
255
- direction: opts['reverse'] ? 'reverse' : 'forward',
256
- }, { command: 'nexus' });
257
- });
258
- // ── nexus critical-path ───────────────────────────────────────────
259
- nexus
260
- .command('critical-path')
261
- .description('Show global critical path across all registered projects')
262
- .action(async () => {
263
- await dispatchFromCli('query', 'nexus', 'path.show', {}, { command: 'nexus' });
264
- });
265
- // ── nexus blocking ────────────────────────────────────────────────
266
- nexus
267
- .command('blocking <taskQuery>')
268
- .description('Show blocking impact analysis for a task')
269
- .action(async (taskQuery) => {
270
- await dispatchFromCli('query', 'nexus', 'blockers.show', {
271
- query: taskQuery,
272
- }, { command: 'nexus' });
273
- });
274
- // ── nexus orphans ─────────────────────────────────────────────────
275
- nexus
276
- .command('orphans')
277
- .description('Detect broken cross-project dependency references')
278
- .action(async () => {
279
- await dispatchFromCli('query', 'nexus', 'orphans.list', {}, { command: 'nexus' });
280
- });
281
- // ── nexus sync ──────────────────────────────────────────────────────
282
- nexus
283
- .command('sync [project]')
284
- .description('Sync project metadata (task count, labels)')
285
- .action(async (project) => {
286
- if (project) {
287
- await dispatchFromCli('mutate', 'nexus', 'sync', {
288
- name: project,
289
- }, { command: 'nexus' });
290
- }
291
- else {
292
- await dispatchFromCli('mutate', 'nexus', 'sync', {}, { command: 'nexus' });
293
- }
294
- });
295
- // ── nexus reconcile ──────────────────────────────────────────────────
296
- nexus
297
- .command('reconcile')
298
- .description('Reconcile current project with NEXUS registry (auto-register if new, update path if moved)')
299
- .option('--path <path>', 'Project path (default: current directory)')
300
- .action(async (opts) => {
301
- await dispatchFromCli('mutate', 'nexus', 'reconcile', {
302
- projectRoot: opts['path'],
303
- }, { command: 'nexus' });
304
- });
305
- // ── nexus graph ───────────────────────────────────────────────────
306
- nexus
307
- .command('graph')
308
- .description('Show full dependency graph across all registered projects')
309
- .action(async () => {
310
- await dispatchFromCli('query', 'nexus', 'graph', {}, { command: 'nexus' });
311
- });
312
- // ── nexus share-status ────────────────────────────────────────────
313
- nexus
314
- .command('share-status')
315
- .description('Show multi-contributor sharing status for the current project')
316
- .action(async () => {
317
- await dispatchFromCli('query', 'nexus', 'share.status', {}, { command: 'nexus' });
318
- });
319
- // ── nexus transfer-preview ────────────────────────────────────────
320
- nexus
321
- .command('transfer-preview <taskIds...>')
322
- .description('Preview a task transfer between projects (dry-run, no changes made)')
323
- .requiredOption('--from <project>', 'Source project name')
324
- .requiredOption('--to <project>', 'Target project name')
325
- .option('--mode <mode>', 'Transfer mode: copy|move', 'copy')
326
- .option('--scope <scope>', 'Transfer scope: single|subtree', 'subtree')
327
- .action(async (taskIds, opts) => {
328
- await dispatchFromCli('query', 'nexus', 'transfer.preview', {
329
- taskIds,
330
- sourceProject: opts['from'],
331
- targetProject: opts['to'],
332
- mode: opts['mode'],
333
- scope: opts['scope'],
334
- }, { command: 'nexus' });
335
- });
336
- // ── nexus transfer ────────────────────────────────────────────────
337
- nexus
338
- .command('transfer <taskIds...>')
339
- .description('Transfer tasks from one project to another')
340
- .requiredOption('--from <project>', 'Source project name')
341
- .requiredOption('--to <project>', 'Target project name')
342
- .option('--mode <mode>', 'Transfer mode: copy|move', 'copy')
343
- .option('--scope <scope>', 'Transfer scope: single|subtree', 'subtree')
344
- .option('--on-conflict <strategy>', 'Conflict strategy: rename|skip|duplicate|fail', 'rename')
345
- .option('--transfer-brain', 'Also transfer associated brain memory entries', false)
346
- .action(async (taskIds, opts) => {
347
- await dispatchFromCli('mutate', 'nexus', 'transfer', {
348
- taskIds,
349
- sourceProject: opts['from'],
350
- targetProject: opts['to'],
351
- mode: opts['mode'],
352
- scope: opts['scope'],
353
- onConflict: opts['onConflict'],
354
- transferBrain: opts['transferBrain'],
355
- }, { command: 'nexus' });
356
- });
357
- // ── nexus permission ──────────────────────────────────────────────
358
- const permission = nexus
359
- .command('permission')
360
- .description('Manage permissions for registered projects');
361
- permission
362
- .command('set <name> <level>')
363
- .description('Set permission level for a registered project (read|write|execute)')
364
- .action(async (name, level) => {
365
- await dispatchFromCli('mutate', 'nexus', 'permission.set', {
366
- name,
367
- level,
368
- }, { command: 'nexus' });
369
- });
370
- // ── nexus share ───────────────────────────────────────────────────
371
- const share = nexus.command('share').description('Multi-contributor sharing operations');
372
- share
373
- .command('export')
374
- .description('Export a snapshot of current project state for sharing')
375
- .option('--output <path>', 'Output file path (default: auto-generated in current directory)')
376
- .action(async (opts) => {
377
- await dispatchFromCli('mutate', 'nexus', 'share.snapshot.export', {
378
- outputPath: opts['output'],
379
- }, { command: 'nexus' });
380
- });
381
- share
382
- .command('import <file>')
383
- .description('Import a shared project snapshot')
384
- .action(async (file) => {
385
- await dispatchFromCli('mutate', 'nexus', 'share.snapshot.import', {
386
- inputPath: file,
387
- }, { command: 'nexus' });
388
- });
389
- // ── nexus clusters ────────────────────────────────────────────────────────
390
- nexus
391
- .command('clusters [path]')
392
- .description('List all detected communities (Louvain clusters) from the last analysis')
393
- .option('--json', 'Output result as JSON (LAFS envelope format)')
394
- .option('--project-id <id>', 'Override the project ID (default: auto-detected from path)')
395
- .action(async (targetPath, opts) => {
396
- const startTime = Date.now();
397
- const jsonOutput = !!opts['json'];
398
- const projectIdOverride = opts['projectId'];
399
- const repoPath = targetPath ? path.resolve(targetPath) : process.cwd();
400
- const projectId = projectIdOverride ?? Buffer.from(repoPath).toString('base64url').slice(0, 32);
401
- try {
402
- const { getNexusDb, nexusSchema } = await import('@cleocode/core/store/nexus-sqlite');
403
- const db = await getNexusDb();
404
- // Query all nodes for this project, filter to community kind in-memory
405
- // (avoids complex Drizzle where clause on an enum column).
406
- // NodeSQLiteDatabase uses sync Drizzle — .all() returns a plain array,
407
- // not a Promise, so wrap in try-catch rather than using .catch().
408
- let rows = [];
409
- try {
410
- rows = db.select().from(nexusSchema.nexusNodes).all();
411
- }
412
- catch {
413
- rows = [];
414
- }
415
- const communities = rows.filter((r) => r['kind'] === 'community' && r['projectId'] === projectId);
416
- const durationMs = Date.now() - startTime;
417
- if (jsonOutput) {
418
- process.stdout.write(JSON.stringify({
419
- success: true,
420
- data: {
421
- projectId,
422
- repoPath,
423
- count: communities.length,
424
- communities: communities.map((c) => {
425
- const meta = typeof c['metaJson'] === 'string'
426
- ? JSON.parse(c['metaJson'])
427
- : {};
428
- return {
429
- id: c['id'],
430
- label: c['label'],
431
- symbolCount: meta['symbolCount'] ?? 0,
432
- cohesion: meta['cohesion'] ?? 0,
433
- };
434
- }),
435
- },
436
- meta: {
437
- operation: 'nexus.clusters',
438
- duration_ms: durationMs,
439
- timestamp: new Date().toISOString(),
440
- },
441
- }, null, 2) + '\n');
442
- }
443
- else {
444
- if (communities.length === 0) {
445
- process.stdout.write(`[nexus] No communities found for project ${projectId}.\n` +
446
- ` Run 'cleo nexus analyze' first.\n`);
447
- }
448
- else {
449
- process.stdout.write(`[nexus] Communities for project ${projectId} (${communities.length} total):\n`);
450
- for (const c of communities) {
451
- const meta = typeof c['metaJson'] === 'string'
452
- ? JSON.parse(c['metaJson'])
453
- : {};
454
- const symbolCount = meta['symbolCount'] ?? 0;
455
- const cohesion = typeof meta['cohesion'] === 'number'
456
- ? meta['cohesion'].toFixed(3)
457
- : '0.000';
458
- process.stdout.write(` ${String(c['id']).padEnd(16)} label=${String(c['label']).padEnd(24)} symbols=${String(symbolCount).padStart(5)} cohesion=${cohesion}\n`);
459
- }
460
- }
461
- }
462
- }
463
- catch (err) {
464
- const msg = err instanceof Error ? err.message : String(err);
465
- if (jsonOutput) {
466
- process.stdout.write(JSON.stringify({
467
- success: false,
468
- error: { code: 'E_CLUSTERS_FAILED', message: msg },
469
- meta: {
470
- operation: 'nexus.clusters',
471
- duration_ms: Date.now() - startTime,
472
- timestamp: new Date().toISOString(),
473
- },
474
- }, null, 2) + '\n');
475
- }
476
- else {
477
- process.stderr.write(`[nexus] Error: ${msg}\n`);
478
- }
479
- process.exitCode = 1;
480
- }
481
- });
482
- // ── nexus flows ───────────────────────────────────────────────────────────
483
- nexus
484
- .command('flows [path]')
485
- .description('List all detected execution flows (processes) from the last analysis')
486
- .option('--json', 'Output result as JSON (LAFS envelope format)')
487
- .option('--project-id <id>', 'Override the project ID (default: auto-detected from path)')
488
- .action(async (targetPath, opts) => {
489
- const startTime = Date.now();
490
- const jsonOutput = !!opts['json'];
491
- const projectIdOverride = opts['projectId'];
492
- const repoPath = targetPath ? path.resolve(targetPath) : process.cwd();
493
- const projectId = projectIdOverride ?? Buffer.from(repoPath).toString('base64url').slice(0, 32);
494
- try {
495
- const { getNexusDb, nexusSchema } = await import('@cleocode/core/store/nexus-sqlite');
496
- const db = await getNexusDb();
497
- // NodeSQLiteDatabase uses sync Drizzle — .all() returns a plain array,
498
- // not a Promise, so wrap in try-catch rather than using .catch().
499
- let rows = [];
500
- try {
501
- rows = db.select().from(nexusSchema.nexusNodes).all();
502
- }
503
- catch {
504
- rows = [];
505
- }
506
- const processes = rows.filter((r) => r['kind'] === 'process' && r['projectId'] === projectId);
507
- const durationMs = Date.now() - startTime;
508
- if (jsonOutput) {
509
- process.stdout.write(JSON.stringify({
510
- success: true,
511
- data: {
512
- projectId,
513
- repoPath,
514
- count: processes.length,
515
- flows: processes.map((p) => {
516
- const meta = typeof p['metaJson'] === 'string'
517
- ? JSON.parse(p['metaJson'])
518
- : {};
519
- return {
520
- id: p['id'],
521
- label: p['label'],
522
- stepCount: meta['stepCount'] ?? 0,
523
- processType: meta['processType'] ?? 'intra_community',
524
- entryPointId: meta['entryPointId'] ?? null,
525
- };
526
- }),
527
- },
528
- meta: {
529
- operation: 'nexus.flows',
530
- duration_ms: durationMs,
531
- timestamp: new Date().toISOString(),
532
- },
533
- }, null, 2) + '\n');
534
- }
535
- else {
536
- if (processes.length === 0) {
537
- process.stdout.write(`[nexus] No execution flows found for project ${projectId}.\n` +
538
- ` Run 'cleo nexus analyze' first.\n`);
539
- }
540
- else {
541
- process.stdout.write(`[nexus] Execution flows for project ${projectId} (${processes.length} total):\n`);
542
- for (const p of processes) {
543
- const meta = typeof p['metaJson'] === 'string'
544
- ? JSON.parse(p['metaJson'])
545
- : {};
546
- const stepCount = meta['stepCount'] ?? 0;
547
- const processType = String(meta['processType'] ?? 'intra').replace('_community', '');
548
- process.stdout.write(` ${String(p['id']).padEnd(30)} steps=${String(stepCount).padStart(3)} type=${processType.padEnd(12)} ${String(p['label'])}\n`);
549
- }
550
- }
551
- }
552
- }
553
- catch (err) {
554
- const msg = err instanceof Error ? err.message : String(err);
555
- if (jsonOutput) {
556
- process.stdout.write(JSON.stringify({
557
- success: false,
558
- error: { code: 'E_FLOWS_FAILED', message: msg },
559
- meta: {
560
- operation: 'nexus.flows',
561
- duration_ms: Date.now() - startTime,
562
- timestamp: new Date().toISOString(),
563
- },
564
- }, null, 2) + '\n');
565
- }
566
- else {
567
- process.stderr.write(`[nexus] Error: ${msg}\n`);
568
- }
569
- process.exitCode = 1;
570
- }
571
- });
572
- // ── nexus context ─────────────────────────────────────────────────────────
573
- nexus
574
- .command('context <symbol>')
575
- .description('Show callers, callees, community membership, and process participation for a code symbol')
576
- .option('--json', 'Output result as JSON (LAFS envelope format)')
577
- .option('--project-id <id>', 'Override the project ID (default: auto-detected from cwd)')
578
- .option('--limit <n>', 'Max callers/callees to show per side', parseInt, 20)
579
- .action(async (symbolName, opts) => {
580
- const startTime = Date.now();
581
- const jsonOutput = !!opts['json'];
582
- const projectIdOverride = opts['projectId'];
583
- const repoPath = process.cwd();
584
- const projectId = projectIdOverride ?? Buffer.from(repoPath).toString('base64url').slice(0, 32);
585
- const limit = opts['limit'] ?? 20;
586
- try {
587
- const { getNexusDb, nexusSchema } = await import('@cleocode/core/store/nexus-sqlite');
588
- const db = await getNexusDb();
589
- // Find nodes matching the symbol name (case-insensitive partial match).
590
- // NodeSQLiteDatabase uses sync Drizzle — .all() returns a plain array.
591
- let allNodes = [];
592
- try {
593
- allNodes = db.select().from(nexusSchema.nexusNodes).all();
594
- }
595
- catch {
596
- allNodes = [];
597
- }
598
- const lowerSymbol = symbolName.toLowerCase();
599
- const rawMatchingNodes = allNodes.filter((n) => n['projectId'] === projectId &&
600
- n['name'] != null &&
601
- String(n['name']).toLowerCase().includes(lowerSymbol) &&
602
- // Exclude synthetic graph-level nodes from symbol search
603
- n['kind'] !== 'community' &&
604
- n['kind'] !== 'process');
605
- // Sort so callable symbols (function, method, class) rank before
606
- // structural nodes (file, folder) — structural nodes have no `calls`
607
- // relations and would produce empty callers/callees lists.
608
- const matchingNodes = sortMatchingNodes(rawMatchingNodes, symbolName);
609
- if (matchingNodes.length === 0) {
610
- const durationMs = Date.now() - startTime;
611
- if (jsonOutput) {
612
- process.stdout.write(JSON.stringify({
613
- success: false,
614
- error: {
615
- code: 'E_NOT_FOUND',
616
- message: `No symbol found matching '${symbolName}' in project ${projectId}`,
617
- },
618
- meta: {
619
- operation: 'nexus.context',
620
- duration_ms: durationMs,
621
- timestamp: new Date().toISOString(),
622
- },
623
- }, null, 2) + '\n');
624
- }
625
- else {
626
- process.stdout.write(`[nexus] No symbol found matching '${symbolName}'.\n` +
627
- ` Run 'cleo nexus analyze' first, or check the symbol name.\n`);
628
- }
629
- process.exitCode = 4;
630
- return;
631
- }
632
- // Load all relations once — cheaper than N queries per node.
633
- let allRelations = [];
634
- try {
635
- allRelations = db.select().from(nexusSchema.nexusRelations).all();
636
- }
637
- catch {
638
- allRelations = [];
639
- }
640
- // Build a node-by-id index for fast lookups.
641
- const nodeById = new Map();
642
- for (const n of allNodes) {
643
- nodeById.set(String(n['id']), n);
644
- }
645
- // Build context for each matching node.
646
- const results = matchingNodes.slice(0, 5).map((node) => {
647
- const nodeId = String(node['id']);
648
- // Incoming: who calls/imports/references THIS node (target = nodeId)
649
- const incoming = allRelations
650
- .filter((r) => r['targetId'] === nodeId &&
651
- r['projectId'] === projectId &&
652
- (r['type'] === 'calls' || r['type'] === 'imports' || r['type'] === 'accesses'))
653
- .slice(0, limit)
654
- .map((r) => {
655
- const src = nodeById.get(String(r['sourceId']));
656
- return {
657
- relationType: r['type'],
658
- nodeId: r['sourceId'],
659
- name: src?.['name'] ?? r['sourceId'],
660
- kind: src?.['kind'] ?? 'unknown',
661
- filePath: src?.['filePath'] ?? null,
662
- };
663
- });
664
- // Outgoing: what THIS node calls/imports/accesses (source = nodeId)
665
- const outgoing = allRelations
666
- .filter((r) => r['sourceId'] === nodeId &&
667
- r['projectId'] === projectId &&
668
- (r['type'] === 'calls' || r['type'] === 'imports' || r['type'] === 'accesses'))
669
- .slice(0, limit)
670
- .map((r) => {
671
- const tgt = nodeById.get(String(r['targetId']));
672
- return {
673
- relationType: r['type'],
674
- nodeId: r['targetId'],
675
- name: tgt?.['name'] ?? r['targetId'],
676
- kind: tgt?.['kind'] ?? 'unknown',
677
- filePath: tgt?.['filePath'] ?? null,
678
- };
679
- });
680
- // Community membership
681
- const communityId = node['communityId'];
682
- const community = communityId ? nodeById.get(communityId) : null;
683
- // Process participation (step_in_process or entry_point_of relations)
684
- const processRelations = allRelations.filter((r) => r['sourceId'] === nodeId &&
685
- r['projectId'] === projectId &&
686
- (r['type'] === 'step_in_process' || r['type'] === 'entry_point_of'));
687
- const processes = processRelations
688
- .map((r) => {
689
- const proc = nodeById.get(String(r['targetId']));
690
- return {
691
- processId: r['targetId'],
692
- label: proc?.['label'] ?? r['targetId'],
693
- role: r['type'] === 'entry_point_of' ? 'entry_point' : 'step',
694
- step: r['step'] ?? null,
695
- };
696
- })
697
- .filter((p) => p.label !== p.processId); // filter unresolved
698
- return {
699
- nodeId,
700
- name: node['name'],
701
- kind: node['kind'],
702
- filePath: node['filePath'],
703
- startLine: node['startLine'],
704
- endLine: node['endLine'],
705
- isExported: node['isExported'],
706
- docSummary: node['docSummary'],
707
- community: community
708
- ? { id: communityId, label: community['label'] }
709
- : communityId
710
- ? { id: communityId, label: null }
711
- : null,
712
- callers: incoming,
713
- callees: outgoing,
714
- processes,
715
- };
716
- });
717
- const durationMs = Date.now() - startTime;
718
- const primary = results[0];
719
- if (jsonOutput) {
720
- process.stdout.write(JSON.stringify({
721
- success: true,
722
- data: {
723
- query: symbolName,
724
- projectId,
725
- matchCount: matchingNodes.length,
726
- results,
727
- },
728
- meta: {
729
- operation: 'nexus.context',
730
- duration_ms: durationMs,
731
- timestamp: new Date().toISOString(),
732
- },
733
- }, null, 2) + '\n');
734
- }
735
- else {
736
- process.stdout.write(`[nexus] Context for symbol '${symbolName}' (${matchingNodes.length} match${matchingNodes.length !== 1 ? 'es' : ''}):\n`);
737
- for (const r of results) {
738
- process.stdout.write(`\n Symbol: ${String(r.name)} (${String(r.kind)})\n` +
739
- ` File: ${r.filePath ? String(r.filePath) : 'n/a'}` +
740
- (r.startLine ? `:${String(r.startLine)}` : '') +
741
- '\n' +
742
- (r.docSummary ? ` Doc: ${String(r.docSummary)}\n` : '') +
743
- (r.community
744
- ? ` Community: ${String(r.community.label ?? r.community.id)}\n`
745
- : '') +
746
- ` Callers (${r.callers.length}): ${r.callers.length === 0
747
- ? 'none'
748
- : r.callers.map((c) => `${String(c.name)}[${String(c.kind)}]`).join(', ')}\n` +
749
- ` Callees (${r.callees.length}): ${r.callees.length === 0
750
- ? 'none'
751
- : r.callees.map((c) => `${String(c.name)}[${String(c.kind)}]`).join(', ')}\n` +
752
- (r.processes.length > 0
753
- ? ` Processes: ${r.processes.map((p) => `${String(p.label)}(${String(p.role)})`).join(', ')}\n`
754
- : ''));
755
- }
756
- if (matchingNodes.length > 5) {
757
- process.stdout.write(`\n (Showing 5 of ${matchingNodes.length} matches — use --json for full list)\n`);
758
- }
759
- }
760
- void primary; // referenced to satisfy lint
761
- }
762
- catch (err) {
763
- const msg = err instanceof Error ? err.message : String(err);
764
- if (jsonOutput) {
765
- process.stdout.write(JSON.stringify({
766
- success: false,
767
- error: { code: 'E_CONTEXT_FAILED', message: msg },
768
- meta: {
769
- operation: 'nexus.context',
770
- duration_ms: Date.now() - startTime,
771
- timestamp: new Date().toISOString(),
772
- },
773
- }, null, 2) + '\n');
774
- }
775
- else {
776
- process.stderr.write(`[nexus] Error: ${msg}\n`);
777
- }
778
- process.exitCode = 1;
779
- }
780
- });
781
- // ── nexus impact ──────────────────────────────────────────────────────────
782
- nexus
783
- .command('impact <symbol>')
784
- .description('Show blast radius for a code symbol — direct callers (d=1), indirect callers (d=2), transitive (d=3)')
785
- .option('--json', 'Output result as JSON (LAFS envelope format)')
786
- .option('--project-id <id>', 'Override the project ID (default: auto-detected from cwd)')
787
- .option('--depth <n>', 'Maximum traversal depth (default: 3)', parseInt, 3)
788
- .action(async (symbolName, opts) => {
789
- const startTime = Date.now();
790
- const jsonOutput = !!opts['json'];
791
- const projectIdOverride = opts['projectId'];
792
- const repoPath = process.cwd();
793
- const projectId = projectIdOverride ?? Buffer.from(repoPath).toString('base64url').slice(0, 32);
794
- const maxDepth = Math.min(opts['depth'] ?? 3, 5);
795
- try {
796
- const { getNexusDb, nexusSchema } = await import('@cleocode/core/store/nexus-sqlite');
797
- const db = await getNexusDb();
798
- // Load all nodes and relations for this project once.
799
- let allNodes = [];
800
- try {
801
- allNodes = db.select().from(nexusSchema.nexusNodes).all();
802
- }
803
- catch {
804
- allNodes = [];
805
- }
806
- const lowerSymbol = symbolName.toLowerCase();
807
- const rawMatchingNodes = allNodes.filter((n) => n['projectId'] === projectId &&
808
- n['name'] != null &&
809
- String(n['name']).toLowerCase().includes(lowerSymbol) &&
810
- n['kind'] !== 'community' &&
811
- n['kind'] !== 'process');
812
- // Sort so callable symbols (function, method, class) rank before
813
- // structural nodes (file, folder) — structural nodes have no `calls`
814
- // relations and would produce zero impact.
815
- const matchingNodes = sortMatchingNodes(rawMatchingNodes, symbolName);
816
- if (matchingNodes.length === 0) {
817
- const durationMs = Date.now() - startTime;
818
- if (jsonOutput) {
819
- process.stdout.write(JSON.stringify({
820
- success: false,
821
- error: {
822
- code: 'E_NOT_FOUND',
823
- message: `No symbol found matching '${symbolName}' in project ${projectId}`,
824
- },
825
- meta: {
826
- operation: 'nexus.impact',
827
- duration_ms: durationMs,
828
- timestamp: new Date().toISOString(),
829
- },
830
- }, null, 2) + '\n');
831
- }
832
- else {
833
- process.stdout.write(`[nexus] No symbol found matching '${symbolName}'.\n` +
834
- ` Run 'cleo nexus analyze' first, or check the symbol name.\n`);
835
- }
836
- process.exitCode = 4;
837
- return;
838
- }
839
- let allRelations = [];
840
- try {
841
- allRelations = db.select().from(nexusSchema.nexusRelations).all();
842
- }
843
- catch {
844
- allRelations = [];
845
- }
846
- // Build a node-by-id index for fast lookups.
847
- const nodeById = new Map();
848
- for (const n of allNodes) {
849
- nodeById.set(String(n['id']), n);
850
- }
851
- // BFS upstream: find all nodes that (transitively) call/import the target.
852
- const targetNode = matchingNodes[0];
853
- const targetId = String(targetNode['id']);
854
- // Build reverse adjacency: targetId → [sourceIds that call it]
855
- const reverseAdj = new Map();
856
- for (const r of allRelations) {
857
- if (r['projectId'] === projectId &&
858
- (r['type'] === 'calls' || r['type'] === 'imports' || r['type'] === 'accesses')) {
859
- const tid = String(r['targetId']);
860
- const sid = String(r['sourceId']);
861
- if (!reverseAdj.has(tid))
862
- reverseAdj.set(tid, []);
863
- reverseAdj.get(tid).push(sid);
864
- }
865
- }
866
- // BFS traversal up to maxDepth levels.
867
- const visited = new Set([targetId]);
868
- const depthMap = new Map(); // nodeId → depth
869
- const queue = [{ id: targetId, depth: 0 }];
870
- const impactByDepth = [];
871
- while (queue.length > 0) {
872
- const item = queue.shift();
873
- if (item.depth >= maxDepth)
874
- continue;
875
- const callers = reverseAdj.get(item.id) ?? [];
876
- for (const callerId of callers) {
877
- if (visited.has(callerId))
878
- continue;
879
- visited.add(callerId);
880
- const depth = item.depth + 1;
881
- depthMap.set(callerId, depth);
882
- const callerNode = nodeById.get(callerId);
883
- if (!impactByDepth[depth - 1])
884
- impactByDepth[depth - 1] = [];
885
- impactByDepth[depth - 1].push({
886
- nodeId: callerId,
887
- name: String(callerNode?.['name'] ?? callerId),
888
- kind: String(callerNode?.['kind'] ?? 'unknown'),
889
- filePath: callerNode?.['filePath'] ? String(callerNode['filePath']) : null,
890
- });
891
- queue.push({ id: callerId, depth });
892
- }
893
- }
894
- const totalImpact = visited.size - 1; // exclude the target itself
895
- const riskLevel = totalImpact === 0
896
- ? 'NONE'
897
- : totalImpact <= 3
898
- ? 'LOW'
899
- : totalImpact <= 10
900
- ? 'MEDIUM'
901
- : totalImpact <= 25
902
- ? 'HIGH'
903
- : 'CRITICAL';
904
- const durationMs = Date.now() - startTime;
905
- if (jsonOutput) {
906
- process.stdout.write(JSON.stringify({
907
- success: true,
908
- data: {
909
- query: symbolName,
910
- projectId,
911
- targetNodeId: targetId,
912
- targetName: targetNode['name'],
913
- targetKind: targetNode['kind'],
914
- targetFilePath: targetNode['filePath'],
915
- riskLevel,
916
- totalImpactedNodes: totalImpact,
917
- maxDepth,
918
- impactByDepth: impactByDepth.map((layer, i) => ({
919
- depth: i + 1,
920
- label: i === 0
921
- ? 'WILL BREAK (direct callers)'
922
- : i === 1
923
- ? 'LIKELY AFFECTED'
924
- : 'MAY NEED TESTING',
925
- nodes: layer,
926
- })),
927
- },
928
- meta: {
929
- operation: 'nexus.impact',
930
- duration_ms: durationMs,
931
- timestamp: new Date().toISOString(),
932
- },
933
- }, null, 2) + '\n');
934
- }
935
- else {
936
- process.stdout.write(`[nexus] Impact analysis for '${symbolName}'\n` +
937
- ` Target: ${String(targetNode['name'])} (${String(targetNode['kind'])})\n` +
938
- ` File: ${targetNode['filePath'] ? String(targetNode['filePath']) : 'n/a'}\n` +
939
- ` Risk: ${riskLevel} (${totalImpact} impacted node${totalImpact !== 1 ? 's' : ''})\n`);
940
- if (totalImpact === 0) {
941
- process.stdout.write(' No callers found — safe to modify.\n');
942
- }
943
- else {
944
- for (let i = 0; i < impactByDepth.length; i++) {
945
- const layer = impactByDepth[i];
946
- if (!layer || layer.length === 0)
947
- continue;
948
- const label = i === 0 ? 'WILL BREAK' : i === 1 ? 'LIKELY AFFECTED' : 'MAY NEED TESTING';
949
- process.stdout.write(`\n d=${i + 1} ${label} (${layer.length}):\n`);
950
- for (const node of layer.slice(0, 15)) {
951
- process.stdout.write(` ${String(node.name).padEnd(36)} ${String(node.kind).padEnd(12)} ${node.filePath ?? ''}\n`);
952
- }
953
- if (layer.length > 15) {
954
- process.stdout.write(` ... and ${layer.length - 15} more\n`);
955
- }
956
- }
957
- }
958
- if (matchingNodes.length > 1) {
959
- process.stdout.write(`\n (Showing analysis for first match — ${matchingNodes.length} total matches for '${symbolName}')\n`);
960
- }
961
- }
962
- }
963
- catch (err) {
964
- const msg = err instanceof Error ? err.message : String(err);
965
- if (jsonOutput) {
966
- process.stdout.write(JSON.stringify({
967
- success: false,
968
- error: { code: 'E_IMPACT_FAILED', message: msg },
969
- meta: {
970
- operation: 'nexus.impact',
971
- duration_ms: Date.now() - startTime,
972
- timestamp: new Date().toISOString(),
973
- },
974
- }, null, 2) + '\n');
975
- }
976
- else {
977
- process.stderr.write(`[nexus] Error: ${msg}\n`);
978
- }
979
- process.exitCode = 1;
980
- }
981
- });
982
- // ── nexus analyze ─────────────────────────────────────────────────────────
983
- nexus
984
- .command('analyze [path]')
985
- .description('Run code intelligence pipeline on a repository directory')
986
- .option('--json', 'Output result as JSON (LAFS envelope format)')
987
- .option('--project-id <id>', 'Override the project ID (default: auto-detected)')
988
- .option('--incremental', 'Only re-index files that have changed since the last run (faster)')
989
- .action(async (targetPath, opts) => {
990
- const startTime = Date.now();
991
- const jsonOutput = !!opts['json'];
992
- const projectIdOverride = opts['projectId'];
993
- const isIncremental = !!opts['incremental'];
994
- // Resolve target path
995
- const repoPath = targetPath ? path.resolve(targetPath) : process.cwd();
996
- if (!jsonOutput) {
997
- process.stderr.write(`[nexus] Analyzing: ${repoPath}${isIncremental ? ' (incremental)' : ''}\n`);
998
- }
999
- try {
1000
- // Lazy imports to avoid loading heavy dependencies until needed
1001
- const [{ getNexusDb, nexusSchema }, { runPipeline }, { getProjectRoot }, { eq }] = await Promise.all([
1002
- import('@cleocode/core/store/nexus-sqlite'),
1003
- import('@cleocode/nexus/pipeline'),
1004
- import('@cleocode/core/internal'),
1005
- import('drizzle-orm'),
1006
- ]);
1007
- // Determine project ID — use override or derive from path
1008
- const projectId = projectIdOverride ?? Buffer.from(repoPath).toString('base64url').slice(0, 32);
1009
- // Get DB and table references
1010
- const db = await getNexusDb();
1011
- const tables = {
1012
- nexusNodes: nexusSchema.nexusNodes,
1013
- nexusRelations: nexusSchema.nexusRelations,
1014
- };
1015
- // For full (non-incremental) runs: delete existing index first.
1016
- // NodeSQLiteDatabase uses sync Drizzle — no await, wrap in try-catch.
1017
- if (!isIncremental) {
1018
- if (!jsonOutput) {
1019
- process.stderr.write('[nexus] Clearing existing index for project...\n');
1020
- }
1021
- try {
1022
- db.delete(nexusSchema.nexusNodes)
1023
- .where(eq(nexusSchema.nexusNodes.projectId, projectId))
1024
- .run();
1025
- }
1026
- catch {
1027
- // Table may not have rows — ignore
1028
- }
1029
- try {
1030
- db.delete(nexusSchema.nexusRelations)
1031
- .where(eq(nexusSchema.nexusRelations.projectId, projectId))
1032
- .run();
1033
- }
1034
- catch {
1035
- // Table may not have rows — ignore
1036
- }
1037
- }
1038
- // Run the pipeline (full or incremental)
1039
- const result = await runPipeline(repoPath, projectId, db, tables, jsonOutput
1040
- ? undefined
1041
- : (current, total, filePath) => {
1042
- if (current % 50 === 0 || current === total) {
1043
- const pct = total > 0 ? Math.round((current / total) * 100) : 100;
1044
- process.stderr.write(`[nexus] Progress: ${current}/${total} files (${pct}%) — ${filePath}\n`);
1045
- }
1046
- }, { incremental: isIncremental });
1047
- const durationMs = Date.now() - startTime;
1048
- // Write nexus-bridge.md after a successful pipeline run (best-effort)
1049
- try {
1050
- const { refreshNexusBridge } = await import('@cleocode/core/internal');
1051
- await refreshNexusBridge(repoPath, projectId);
1052
- if (!jsonOutput) {
1053
- process.stderr.write(`[nexus] nexus-bridge.md refreshed at ${repoPath}/.cleo/nexus-bridge.md\n`);
1054
- }
1055
- }
1056
- catch {
1057
- // Non-fatal — bridge refresh failure should not fail the analyze command
1058
- }
1059
- if (jsonOutput) {
1060
- const envelope = {
1061
- success: true,
1062
- data: {
1063
- projectId,
1064
- repoPath,
1065
- incremental: isIncremental,
1066
- nodeCount: result.nodeCount,
1067
- relationCount: result.relationCount,
1068
- fileCount: result.fileCount,
1069
- durationMs,
1070
- },
1071
- meta: {
1072
- operation: 'nexus.analyze',
1073
- duration_ms: durationMs,
1074
- timestamp: new Date().toISOString(),
1075
- },
1076
- };
1077
- process.stdout.write(JSON.stringify(envelope, null, 2) + '\n');
1078
- }
1079
- else {
1080
- process.stdout.write(`[nexus] Analysis complete${isIncremental ? ' (incremental)' : ''}:\n` +
1081
- ` Project ID: ${projectId}\n` +
1082
- ` Files: ${result.fileCount}\n` +
1083
- ` Nodes: ${result.nodeCount}\n` +
1084
- ` Relations: ${result.relationCount}\n` +
1085
- ` Duration: ${durationMs}ms\n`);
1086
- }
1087
- void getProjectRoot; // referenced to satisfy import
1088
- }
1089
- catch (err) {
1090
- const msg = err instanceof Error ? err.message : String(err);
1091
- if (jsonOutput) {
1092
- const envelope = {
1093
- success: false,
1094
- error: { code: 'E_PIPELINE_FAILED', message: msg },
1095
- meta: {
1096
- operation: 'nexus.analyze',
1097
- duration_ms: Date.now() - startTime,
1098
- timestamp: new Date().toISOString(),
1099
- },
1100
- };
1101
- process.stdout.write(JSON.stringify(envelope, null, 2) + '\n');
1102
- }
1103
- else {
1104
- process.stderr.write(`[nexus] Error: ${msg}\n`);
1105
- }
1106
- process.exitCode = 1;
1107
- }
1108
- });
1109
- // ── nexus refresh-bridge ──────────────────────────────────────────────────
1110
- nexus
1111
- .command('refresh-bridge [path]')
1112
- .description('Regenerate .cleo/nexus-bridge.md from the existing nexus.db index (does not re-index)')
1113
- .option('--json', 'Output result as JSON (LAFS envelope format)')
1114
- .option('--project-id <id>', 'Override the project ID (default: auto-detected from path)')
1115
- .action(async (targetPath, opts) => {
1116
- const startTime = Date.now();
1117
- const jsonOutput = !!opts['json'];
1118
- const projectIdOverride = opts['projectId'];
1119
- const repoPath = targetPath ? path.resolve(targetPath) : process.cwd();
1120
- const projectId = projectIdOverride ?? Buffer.from(repoPath).toString('base64url').slice(0, 32);
1121
- try {
1122
- const { writeNexusBridge } = await import('@cleocode/core/internal');
1123
- const result = await writeNexusBridge(repoPath, projectId);
1124
- const durationMs = Date.now() - startTime;
1125
- if (jsonOutput) {
1126
- process.stdout.write(JSON.stringify({
1127
- success: true,
1128
- data: { path: result.path, written: result.written, projectId, repoPath },
1129
- meta: {
1130
- operation: 'nexus.refresh-bridge',
1131
- duration_ms: durationMs,
1132
- timestamp: new Date().toISOString(),
1133
- },
1134
- }, null, 2) + '\n');
1135
- }
1136
- else if (result.written) {
1137
- process.stdout.write(`[nexus] nexus-bridge.md refreshed at ${result.path}\n`);
1138
- }
1139
- else {
1140
- process.stdout.write(`[nexus] nexus-bridge.md unchanged at ${result.path}\n`);
1141
- }
1142
- }
1143
- catch (err) {
1144
- const msg = err instanceof Error ? err.message : String(err);
1145
- if (jsonOutput) {
1146
- process.stdout.write(JSON.stringify({
1147
- success: false,
1148
- error: { code: 'E_BRIDGE_FAILED', message: msg },
1149
- meta: {
1150
- operation: 'nexus.refresh-bridge',
1151
- duration_ms: Date.now() - startTime,
1152
- timestamp: new Date().toISOString(),
1153
- },
1154
- }, null, 2) + '\n');
1155
- }
1156
- else {
1157
- process.stderr.write(`[nexus] Error refreshing bridge: ${msg}\n`);
1158
- }
1159
- process.exitCode = 1;
1160
- }
1161
- });
1162
- }
1163
- //# sourceMappingURL=nexus.js.map