@cleocode/mcp-server 0.86.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 (374) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +306 -0
  3. package/dist/domains/index.d.ts +16 -0
  4. package/dist/domains/index.d.ts.map +1 -0
  5. package/dist/domains/index.js +16 -0
  6. package/dist/domains/index.js.map +1 -0
  7. package/dist/domains/lifecycle.d.ts +147 -0
  8. package/dist/domains/lifecycle.d.ts.map +1 -0
  9. package/dist/domains/lifecycle.js +452 -0
  10. package/dist/domains/lifecycle.js.map +1 -0
  11. package/dist/domains/orchestrate.d.ts +133 -0
  12. package/dist/domains/orchestrate.d.ts.map +1 -0
  13. package/dist/domains/orchestrate.js +465 -0
  14. package/dist/domains/orchestrate.js.map +1 -0
  15. package/dist/domains/release.d.ts +109 -0
  16. package/dist/domains/release.d.ts.map +1 -0
  17. package/dist/domains/release.js +400 -0
  18. package/dist/domains/release.js.map +1 -0
  19. package/dist/domains/research.d.ts +139 -0
  20. package/dist/domains/research.d.ts.map +1 -0
  21. package/dist/domains/research.js +606 -0
  22. package/dist/domains/research.js.map +1 -0
  23. package/dist/domains/session.d.ts +129 -0
  24. package/dist/domains/session.d.ts.map +1 -0
  25. package/dist/domains/session.js +433 -0
  26. package/dist/domains/session.js.map +1 -0
  27. package/dist/domains/system.d.ts +92 -0
  28. package/dist/domains/system.d.ts.map +1 -0
  29. package/dist/domains/system.js +473 -0
  30. package/dist/domains/system.js.map +1 -0
  31. package/dist/domains/tasks.d.ts +180 -0
  32. package/dist/domains/tasks.d.ts.map +1 -0
  33. package/dist/domains/tasks.js +704 -0
  34. package/dist/domains/tasks.js.map +1 -0
  35. package/dist/domains/validate.d.ts +150 -0
  36. package/dist/domains/validate.d.ts.map +1 -0
  37. package/dist/domains/validate.js +568 -0
  38. package/dist/domains/validate.js.map +1 -0
  39. package/dist/gateways/mutate.d.ts +100 -0
  40. package/dist/gateways/mutate.d.ts.map +1 -0
  41. package/dist/gateways/mutate.js +937 -0
  42. package/dist/gateways/mutate.js.map +1 -0
  43. package/dist/gateways/query.d.ts +91 -0
  44. package/dist/gateways/query.d.ts.map +1 -0
  45. package/dist/gateways/query.js +245 -0
  46. package/dist/gateways/query.js.map +1 -0
  47. package/dist/index.d.ts +21 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +299 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/lib/audit.d.ts +118 -0
  52. package/dist/lib/audit.d.ts.map +1 -0
  53. package/dist/lib/audit.js +311 -0
  54. package/dist/lib/audit.js.map +1 -0
  55. package/dist/lib/background-jobs.d.ts +86 -0
  56. package/dist/lib/background-jobs.d.ts.map +1 -0
  57. package/dist/lib/background-jobs.js +183 -0
  58. package/dist/lib/background-jobs.js.map +1 -0
  59. package/dist/lib/cache.d.ts +78 -0
  60. package/dist/lib/cache.d.ts.map +1 -0
  61. package/dist/lib/cache.js +204 -0
  62. package/dist/lib/cache.js.map +1 -0
  63. package/dist/lib/command-builder.d.ts +52 -0
  64. package/dist/lib/command-builder.d.ts.map +1 -0
  65. package/dist/lib/command-builder.js +280 -0
  66. package/dist/lib/command-builder.js.map +1 -0
  67. package/dist/lib/config.d.ts +42 -0
  68. package/dist/lib/config.d.ts.map +1 -0
  69. package/dist/lib/config.js +248 -0
  70. package/dist/lib/config.js.map +1 -0
  71. package/dist/lib/defaults.d.ts +115 -0
  72. package/dist/lib/defaults.d.ts.map +1 -0
  73. package/dist/lib/defaults.js +61 -0
  74. package/dist/lib/defaults.js.map +1 -0
  75. package/dist/lib/error-handler.d.ts +101 -0
  76. package/dist/lib/error-handler.d.ts.map +1 -0
  77. package/dist/lib/error-handler.js +277 -0
  78. package/dist/lib/error-handler.js.map +1 -0
  79. package/dist/lib/executor.d.ts +110 -0
  80. package/dist/lib/executor.d.ts.map +1 -0
  81. package/dist/lib/executor.js +362 -0
  82. package/dist/lib/executor.js.map +1 -0
  83. package/dist/lib/exit-codes.d.ts +190 -0
  84. package/dist/lib/exit-codes.d.ts.map +1 -0
  85. package/dist/lib/exit-codes.js +1027 -0
  86. package/dist/lib/exit-codes.js.map +1 -0
  87. package/dist/lib/formatter.d.ts +196 -0
  88. package/dist/lib/formatter.d.ts.map +1 -0
  89. package/dist/lib/formatter.js +260 -0
  90. package/dist/lib/formatter.js.map +1 -0
  91. package/dist/lib/gate-validators.d.ts +103 -0
  92. package/dist/lib/gate-validators.d.ts.map +1 -0
  93. package/dist/lib/gate-validators.js +689 -0
  94. package/dist/lib/gate-validators.js.map +1 -0
  95. package/dist/lib/manifest-parser.d.ts +61 -0
  96. package/dist/lib/manifest-parser.d.ts.map +1 -0
  97. package/dist/lib/manifest-parser.js +338 -0
  98. package/dist/lib/manifest-parser.js.map +1 -0
  99. package/dist/lib/manifest.d.ts +177 -0
  100. package/dist/lib/manifest.d.ts.map +1 -0
  101. package/dist/lib/manifest.js +301 -0
  102. package/dist/lib/manifest.js.map +1 -0
  103. package/dist/lib/protocol-enforcement.d.ts +105 -0
  104. package/dist/lib/protocol-enforcement.d.ts.map +1 -0
  105. package/dist/lib/protocol-enforcement.js +331 -0
  106. package/dist/lib/protocol-enforcement.js.map +1 -0
  107. package/dist/lib/protocol-rules.d.ts +55 -0
  108. package/dist/lib/protocol-rules.d.ts.map +1 -0
  109. package/dist/lib/protocol-rules.js +760 -0
  110. package/dist/lib/protocol-rules.js.map +1 -0
  111. package/dist/lib/rate-limiter.d.ts +110 -0
  112. package/dist/lib/rate-limiter.d.ts.map +1 -0
  113. package/dist/lib/rate-limiter.js +208 -0
  114. package/dist/lib/rate-limiter.js.map +1 -0
  115. package/dist/lib/router.d.ts +126 -0
  116. package/dist/lib/router.d.ts.map +1 -0
  117. package/dist/lib/router.js +276 -0
  118. package/dist/lib/router.js.map +1 -0
  119. package/dist/lib/schema.d.ts +55 -0
  120. package/dist/lib/schema.d.ts.map +1 -0
  121. package/dist/lib/schema.js +70 -0
  122. package/dist/lib/schema.js.map +1 -0
  123. package/dist/lib/security.d.ts +156 -0
  124. package/dist/lib/security.d.ts.map +1 -0
  125. package/dist/lib/security.js +347 -0
  126. package/dist/lib/security.js.map +1 -0
  127. package/dist/lib/verification-gates.d.ts +287 -0
  128. package/dist/lib/verification-gates.d.ts.map +1 -0
  129. package/dist/lib/verification-gates.js +548 -0
  130. package/dist/lib/verification-gates.js.map +1 -0
  131. package/dist/types/domain.d.ts +29 -0
  132. package/dist/types/domain.d.ts.map +1 -0
  133. package/dist/types/domain.js +7 -0
  134. package/dist/types/domain.js.map +1 -0
  135. package/dist/types/error.d.ts +101 -0
  136. package/dist/types/error.d.ts.map +1 -0
  137. package/dist/types/error.js +61 -0
  138. package/dist/types/error.js.map +1 -0
  139. package/dist/types/gateway.d.ts +78 -0
  140. package/dist/types/gateway.d.ts.map +1 -0
  141. package/dist/types/gateway.js +7 -0
  142. package/dist/types/gateway.js.map +1 -0
  143. package/dist/types/index.d.ts +21 -0
  144. package/dist/types/index.d.ts.map +1 -0
  145. package/dist/types/index.js +11 -0
  146. package/dist/types/index.js.map +1 -0
  147. package/dist/types/operations/lifecycle.d.ts +140 -0
  148. package/dist/types/operations/lifecycle.d.ts.map +1 -0
  149. package/dist/types/operations/lifecycle.js +8 -0
  150. package/dist/types/operations/lifecycle.js.map +1 -0
  151. package/dist/types/operations/orchestrate.d.ts +140 -0
  152. package/dist/types/operations/orchestrate.d.ts.map +1 -0
  153. package/dist/types/operations/orchestrate.js +8 -0
  154. package/dist/types/operations/orchestrate.js.map +1 -0
  155. package/dist/types/operations/release.d.ts +97 -0
  156. package/dist/types/operations/release.d.ts.map +1 -0
  157. package/dist/types/operations/release.js +7 -0
  158. package/dist/types/operations/release.js.map +1 -0
  159. package/dist/types/operations/research.d.ts +122 -0
  160. package/dist/types/operations/research.d.ts.map +1 -0
  161. package/dist/types/operations/research.js +8 -0
  162. package/dist/types/operations/research.js.map +1 -0
  163. package/dist/types/operations/session.d.ts +108 -0
  164. package/dist/types/operations/session.d.ts.map +1 -0
  165. package/dist/types/operations/session.js +8 -0
  166. package/dist/types/operations/session.js.map +1 -0
  167. package/dist/types/operations/system.d.ts +147 -0
  168. package/dist/types/operations/system.d.ts.map +1 -0
  169. package/dist/types/operations/system.js +8 -0
  170. package/dist/types/operations/system.js.map +1 -0
  171. package/dist/types/operations/tasks.d.ts +186 -0
  172. package/dist/types/operations/tasks.d.ts.map +1 -0
  173. package/dist/types/operations/tasks.js +8 -0
  174. package/dist/types/operations/tasks.js.map +1 -0
  175. package/dist/types/operations/validate.d.ts +170 -0
  176. package/dist/types/operations/validate.d.ts.map +1 -0
  177. package/dist/types/operations/validate.js +8 -0
  178. package/dist/types/operations/validate.js.map +1 -0
  179. package/package.json +67 -0
  180. package/schemas/IMPLEMENTATION-SUMMARY.md +250 -0
  181. package/schemas/README.md +284 -0
  182. package/schemas/common/error.schema.json +54 -0
  183. package/schemas/common/meta.schema.json +39 -0
  184. package/schemas/common/pagination.schema.json +32 -0
  185. package/schemas/index.json +159 -0
  186. package/schemas/requests/lifecycle/check.schema.json +20 -0
  187. package/schemas/requests/lifecycle/gate.fail.schema.json +25 -0
  188. package/schemas/requests/lifecycle/gate.pass.schema.json +28 -0
  189. package/schemas/requests/lifecycle/gates.schema.json +15 -0
  190. package/schemas/requests/lifecycle/history.schema.json +15 -0
  191. package/schemas/requests/lifecycle/prerequisites.schema.json +15 -0
  192. package/schemas/requests/lifecycle/progress.schema.json +29 -0
  193. package/schemas/requests/lifecycle/reset.schema.json +25 -0
  194. package/schemas/requests/lifecycle/skip.schema.json +25 -0
  195. package/schemas/requests/lifecycle/status.schema.json +23 -0
  196. package/schemas/requests/orchestrate/analyze.schema.json +15 -0
  197. package/schemas/requests/orchestrate/context.schema.json +13 -0
  198. package/schemas/requests/orchestrate/next.schema.json +15 -0
  199. package/schemas/requests/orchestrate/parallel.end.schema.json +20 -0
  200. package/schemas/requests/orchestrate/parallel.start.schema.json +20 -0
  201. package/schemas/requests/orchestrate/ready.schema.json +15 -0
  202. package/schemas/requests/orchestrate/skill.list.schema.json +13 -0
  203. package/schemas/requests/orchestrate/spawn.schema.json +25 -0
  204. package/schemas/requests/orchestrate/startup.schema.json +15 -0
  205. package/schemas/requests/orchestrate/status.schema.json +15 -0
  206. package/schemas/requests/orchestrate/validate.schema.json +15 -0
  207. package/schemas/requests/orchestrate/waves.schema.json +15 -0
  208. package/schemas/requests/release/changelog.schema.json +23 -0
  209. package/schemas/requests/release/commit.schema.json +22 -0
  210. package/schemas/requests/release/gates.run.schema.json +17 -0
  211. package/schemas/requests/release/prepare.schema.json +20 -0
  212. package/schemas/requests/release/push.schema.json +20 -0
  213. package/schemas/requests/release/rollback.schema.json +20 -0
  214. package/schemas/requests/release/tag.schema.json +19 -0
  215. package/schemas/requests/research/inject.schema.json +24 -0
  216. package/schemas/requests/research/link.schema.json +25 -0
  217. package/schemas/requests/research/list.schema.json +19 -0
  218. package/schemas/requests/research/manifest.append.schema.json +20 -0
  219. package/schemas/requests/research/manifest.archive.schema.json +19 -0
  220. package/schemas/requests/research/manifest.read.schema.json +21 -0
  221. package/schemas/requests/research/pending.schema.json +14 -0
  222. package/schemas/requests/research/query.schema.json +21 -0
  223. package/schemas/requests/research/show.schema.json +14 -0
  224. package/schemas/requests/research/stats.schema.json +14 -0
  225. package/schemas/requests/session/end.schema.json +13 -0
  226. package/schemas/requests/session/focus.clear.schema.json +7 -0
  227. package/schemas/requests/session/focus.get.schema.json +7 -0
  228. package/schemas/requests/session/focus.set.schema.json +15 -0
  229. package/schemas/requests/session/gc.schema.json +14 -0
  230. package/schemas/requests/session/history.schema.json +16 -0
  231. package/schemas/requests/session/list.schema.json +13 -0
  232. package/schemas/requests/session/resume.schema.json +14 -0
  233. package/schemas/requests/session/show.schema.json +14 -0
  234. package/schemas/requests/session/start.schema.json +23 -0
  235. package/schemas/requests/session/status.schema.json +7 -0
  236. package/schemas/requests/session/suspend.schema.json +13 -0
  237. package/schemas/requests/system/backup.schema.json +19 -0
  238. package/schemas/requests/system/cleanup.schema.json +20 -0
  239. package/schemas/requests/system/config.get.schema.json +14 -0
  240. package/schemas/requests/system/config.set.schema.json +24 -0
  241. package/schemas/requests/system/context.schema.json +7 -0
  242. package/schemas/requests/system/doctor.schema.json +7 -0
  243. package/schemas/requests/system/init.schema.json +18 -0
  244. package/schemas/requests/system/migrate.schema.json +19 -0
  245. package/schemas/requests/system/restore.schema.json +14 -0
  246. package/schemas/requests/system/stats.schema.json +7 -0
  247. package/schemas/requests/system/sync.schema.json +15 -0
  248. package/schemas/requests/system/version.schema.json +7 -0
  249. package/schemas/requests/tasks/analyze.schema.json +14 -0
  250. package/schemas/requests/tasks/archive.schema.json +19 -0
  251. package/schemas/requests/tasks/blockers.schema.json +15 -0
  252. package/schemas/requests/tasks/complete.schema.json +24 -0
  253. package/schemas/requests/tasks/create.schema.json +48 -0
  254. package/schemas/requests/tasks/delete.schema.json +20 -0
  255. package/schemas/requests/tasks/deps.schema.json +21 -0
  256. package/schemas/requests/tasks/exists.schema.json +15 -0
  257. package/schemas/requests/tasks/find.schema.json +22 -0
  258. package/schemas/requests/tasks/get.schema.json +15 -0
  259. package/schemas/requests/tasks/list.schema.json +26 -0
  260. package/schemas/requests/tasks/next.schema.json +21 -0
  261. package/schemas/requests/tasks/promote.schema.json +15 -0
  262. package/schemas/requests/tasks/reopen.schema.json +15 -0
  263. package/schemas/requests/tasks/reorder.schema.json +20 -0
  264. package/schemas/requests/tasks/reparent.schema.json +20 -0
  265. package/schemas/requests/tasks/tree.schema.json +21 -0
  266. package/schemas/requests/tasks/unarchive.schema.json +15 -0
  267. package/schemas/requests/tasks/update.schema.json +41 -0
  268. package/schemas/requests/validate/compliance.record.schema.json +20 -0
  269. package/schemas/requests/validate/compliance.summary.schema.json +18 -0
  270. package/schemas/requests/validate/compliance.violations.schema.json +19 -0
  271. package/schemas/requests/validate/manifest.schema.json +23 -0
  272. package/schemas/requests/validate/output.schema.json +19 -0
  273. package/schemas/requests/validate/protocol.schema.json +20 -0
  274. package/schemas/requests/validate/schema.schema.json +19 -0
  275. package/schemas/requests/validate/task.schema.json +21 -0
  276. package/schemas/requests/validate/test.coverage.schema.json +14 -0
  277. package/schemas/requests/validate/test.run.schema.json +22 -0
  278. package/schemas/requests/validate/test.status.schema.json +14 -0
  279. package/schemas/responses/common-error.schema.json +20 -0
  280. package/schemas/responses/common-success.schema.json +21 -0
  281. package/schemas/responses/lifecycle/check.schema.json +18 -0
  282. package/schemas/responses/lifecycle/gate.fail.schema.json +18 -0
  283. package/schemas/responses/lifecycle/gate.pass.schema.json +18 -0
  284. package/schemas/responses/lifecycle/gates.schema.json +18 -0
  285. package/schemas/responses/lifecycle/history.schema.json +18 -0
  286. package/schemas/responses/lifecycle/prerequisites.schema.json +18 -0
  287. package/schemas/responses/lifecycle/progress.schema.json +18 -0
  288. package/schemas/responses/lifecycle/reset.schema.json +18 -0
  289. package/schemas/responses/lifecycle/skip.schema.json +18 -0
  290. package/schemas/responses/lifecycle/status.schema.json +18 -0
  291. package/schemas/responses/orchestrate/analyze.schema.json +18 -0
  292. package/schemas/responses/orchestrate/context.schema.json +18 -0
  293. package/schemas/responses/orchestrate/next.schema.json +18 -0
  294. package/schemas/responses/orchestrate/parallel.end.schema.json +18 -0
  295. package/schemas/responses/orchestrate/parallel.start.schema.json +18 -0
  296. package/schemas/responses/orchestrate/ready.schema.json +18 -0
  297. package/schemas/responses/orchestrate/skill.list.schema.json +18 -0
  298. package/schemas/responses/orchestrate/spawn.schema.json +18 -0
  299. package/schemas/responses/orchestrate/startup.schema.json +18 -0
  300. package/schemas/responses/orchestrate/status.schema.json +18 -0
  301. package/schemas/responses/orchestrate/validate.schema.json +18 -0
  302. package/schemas/responses/orchestrate/waves.schema.json +18 -0
  303. package/schemas/responses/release/changelog.schema.json +18 -0
  304. package/schemas/responses/release/commit.schema.json +18 -0
  305. package/schemas/responses/release/gates.run.schema.json +18 -0
  306. package/schemas/responses/release/prepare.schema.json +18 -0
  307. package/schemas/responses/release/push.schema.json +18 -0
  308. package/schemas/responses/release/rollback.schema.json +18 -0
  309. package/schemas/responses/release/tag.schema.json +18 -0
  310. package/schemas/responses/research/inject.schema.json +18 -0
  311. package/schemas/responses/research/link.schema.json +18 -0
  312. package/schemas/responses/research/list.schema.json +18 -0
  313. package/schemas/responses/research/manifest.append.schema.json +18 -0
  314. package/schemas/responses/research/manifest.archive.schema.json +18 -0
  315. package/schemas/responses/research/manifest.read.schema.json +18 -0
  316. package/schemas/responses/research/pending.schema.json +18 -0
  317. package/schemas/responses/research/query.schema.json +18 -0
  318. package/schemas/responses/research/show.schema.json +18 -0
  319. package/schemas/responses/research/stats.schema.json +18 -0
  320. package/schemas/responses/session/end.schema.json +18 -0
  321. package/schemas/responses/session/focus.clear.schema.json +18 -0
  322. package/schemas/responses/session/focus.get.schema.json +18 -0
  323. package/schemas/responses/session/focus.set.schema.json +18 -0
  324. package/schemas/responses/session/gc.schema.json +18 -0
  325. package/schemas/responses/session/history.schema.json +18 -0
  326. package/schemas/responses/session/list.schema.json +18 -0
  327. package/schemas/responses/session/resume.schema.json +18 -0
  328. package/schemas/responses/session/show.schema.json +18 -0
  329. package/schemas/responses/session/start.schema.json +18 -0
  330. package/schemas/responses/session/status.schema.json +18 -0
  331. package/schemas/responses/session/suspend.schema.json +18 -0
  332. package/schemas/responses/system/backup.schema.json +18 -0
  333. package/schemas/responses/system/cleanup.schema.json +18 -0
  334. package/schemas/responses/system/config.get.schema.json +18 -0
  335. package/schemas/responses/system/config.set.schema.json +18 -0
  336. package/schemas/responses/system/context.schema.json +18 -0
  337. package/schemas/responses/system/doctor.schema.json +18 -0
  338. package/schemas/responses/system/init.schema.json +18 -0
  339. package/schemas/responses/system/migrate.schema.json +18 -0
  340. package/schemas/responses/system/restore.schema.json +18 -0
  341. package/schemas/responses/system/stats.schema.json +18 -0
  342. package/schemas/responses/system/sync.schema.json +18 -0
  343. package/schemas/responses/system/version.schema.json +18 -0
  344. package/schemas/responses/tasks/analyze.schema.json +18 -0
  345. package/schemas/responses/tasks/archive.schema.json +18 -0
  346. package/schemas/responses/tasks/blockers.schema.json +18 -0
  347. package/schemas/responses/tasks/complete.schema.json +18 -0
  348. package/schemas/responses/tasks/create.schema.json +18 -0
  349. package/schemas/responses/tasks/delete.schema.json +18 -0
  350. package/schemas/responses/tasks/deps.schema.json +18 -0
  351. package/schemas/responses/tasks/exists.schema.json +18 -0
  352. package/schemas/responses/tasks/find.schema.json +18 -0
  353. package/schemas/responses/tasks/get.schema.json +87 -0
  354. package/schemas/responses/tasks/list.schema.json +18 -0
  355. package/schemas/responses/tasks/next.schema.json +18 -0
  356. package/schemas/responses/tasks/promote.schema.json +18 -0
  357. package/schemas/responses/tasks/reopen.schema.json +18 -0
  358. package/schemas/responses/tasks/reorder.schema.json +18 -0
  359. package/schemas/responses/tasks/reparent.schema.json +18 -0
  360. package/schemas/responses/tasks/tree.schema.json +18 -0
  361. package/schemas/responses/tasks/unarchive.schema.json +18 -0
  362. package/schemas/responses/tasks/update.schema.json +18 -0
  363. package/schemas/responses/validate/compliance.record.schema.json +18 -0
  364. package/schemas/responses/validate/compliance.summary.schema.json +18 -0
  365. package/schemas/responses/validate/compliance.violations.schema.json +18 -0
  366. package/schemas/responses/validate/manifest.schema.json +18 -0
  367. package/schemas/responses/validate/output.schema.json +18 -0
  368. package/schemas/responses/validate/protocol.schema.json +18 -0
  369. package/schemas/responses/validate/schema.schema.json +18 -0
  370. package/schemas/responses/validate/task.schema.json +18 -0
  371. package/schemas/responses/validate/test.coverage.schema.json +18 -0
  372. package/schemas/responses/validate/test.run.schema.json +18 -0
  373. package/schemas/responses/validate/test.status.schema.json +18 -0
  374. package/server.json +53 -0
@@ -0,0 +1,362 @@
1
+ /**
2
+ * CLI Executor Wrapper
3
+ *
4
+ * Executes CLEO CLI commands safely with timeout handling, retry logic,
5
+ * and proper error parsing. Captures stdout, stderr, and exit codes.
6
+ *
7
+ * @task T2914
8
+ */
9
+ import { exec } from 'child_process';
10
+ import { promisify } from 'util';
11
+ import { buildCLICommand } from './command-builder.js';
12
+ import { isRetryableError } from '../types/index.js';
13
+ const execAsync = promisify(exec);
14
+ /**
15
+ * CLI executor class
16
+ */
17
+ export class CLIExecutor {
18
+ cliPath;
19
+ defaultTimeout;
20
+ defaultMaxRetries;
21
+ constructor(cliPath, defaultTimeout = 30000, defaultMaxRetries = 3) {
22
+ this.cliPath = cliPath;
23
+ this.defaultTimeout = defaultTimeout;
24
+ this.defaultMaxRetries = defaultMaxRetries;
25
+ }
26
+ /**
27
+ * Execute CLI command with retry logic
28
+ */
29
+ async execute(options) {
30
+ const maxRetries = options.maxRetries ?? this.defaultMaxRetries;
31
+ let lastError = null;
32
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
33
+ const result = await this.executeOnce(options, attempt);
34
+ // Success - return immediately
35
+ if (result.success) {
36
+ return result;
37
+ }
38
+ // Non-retryable error - return immediately
39
+ if (!this.shouldRetry(result.exitCode, attempt, maxRetries)) {
40
+ return result;
41
+ }
42
+ // Store error for potential final return
43
+ lastError = result;
44
+ // Exponential backoff: 2^attempt seconds
45
+ const backoffMs = Math.pow(2, attempt) * 1000;
46
+ await this.sleep(backoffMs);
47
+ }
48
+ // All retries exhausted
49
+ return lastError;
50
+ }
51
+ /**
52
+ * Execute CLI command once (no retry)
53
+ */
54
+ async executeOnce(options, attempt) {
55
+ const startTime = Date.now();
56
+ const timeout = options.timeout ?? this.defaultTimeout;
57
+ try {
58
+ // Build command
59
+ const command = this.buildCommand(options);
60
+ // Prepare environment
61
+ const env = this.buildEnvironment(options);
62
+ // Execute with timeout
63
+ const { stdout, stderr } = await execAsync(command, {
64
+ timeout,
65
+ cwd: options.cwd || process.cwd(),
66
+ env: { ...process.env, ...env },
67
+ maxBuffer: 10 * 1024 * 1024, // 10MB buffer
68
+ });
69
+ const duration = Date.now() - startTime;
70
+ // Parse output
71
+ return this.parseOutput(stdout, stderr, 0, duration);
72
+ }
73
+ catch (error) {
74
+ const duration = Date.now() - startTime;
75
+ // Handle exec errors (exit code, timeout, etc.)
76
+ if (error.code === 'ERR_CHILD_PROCESS_STDIO_MAXBUFFER') {
77
+ return {
78
+ success: false,
79
+ error: {
80
+ code: 'E_OUTPUT_TOO_LARGE',
81
+ message: 'Command output exceeded buffer size',
82
+ fix: 'Add --limit flag to reduce output size',
83
+ },
84
+ exitCode: 1,
85
+ stdout: error.stdout || '',
86
+ stderr: error.stderr || '',
87
+ duration,
88
+ };
89
+ }
90
+ if (error.killed) {
91
+ return {
92
+ success: false,
93
+ error: {
94
+ code: 'E_TIMEOUT',
95
+ message: `Command timed out after ${timeout}ms`,
96
+ fix: `Increase timeout or optimize query`,
97
+ },
98
+ exitCode: 124,
99
+ stdout: error.stdout || '',
100
+ stderr: error.stderr || '',
101
+ duration,
102
+ };
103
+ }
104
+ // Command executed but returned non-zero exit code
105
+ const exitCode = error.code || 1;
106
+ return this.parseOutput(error.stdout || '', error.stderr || '', exitCode, duration);
107
+ }
108
+ }
109
+ /**
110
+ * Build CLI command string
111
+ */
112
+ buildCommand(options) {
113
+ // If customCommand is provided, use it directly
114
+ if (options.customCommand) {
115
+ return options.customCommand;
116
+ }
117
+ // Otherwise build from domain/operation
118
+ return buildCLICommand(this.cliPath, options.domain, options.operation, options.args || [], options.flags || {});
119
+ }
120
+ /**
121
+ * Build environment variables
122
+ */
123
+ buildEnvironment(options) {
124
+ const env = {};
125
+ // Bind to session if specified
126
+ if (options.sessionId) {
127
+ env.CLEO_SESSION = options.sessionId;
128
+ }
129
+ return env;
130
+ }
131
+ /**
132
+ * Parse command output
133
+ */
134
+ parseOutput(stdout, stderr, exitCode, duration) {
135
+ // Try to parse stdout as JSON, fall back to stderr if stdout is empty
136
+ // Some CLI commands (e.g., orchestrator context) output JSON to stderr
137
+ // with non-zero exit codes that still contain success:true
138
+ const rawOutput = stdout.trim() || stderr.trim();
139
+ try {
140
+ const trimmed = rawOutput;
141
+ if (!trimmed) {
142
+ // Empty output with zero exit = success
143
+ if (exitCode === 0) {
144
+ return {
145
+ success: true,
146
+ data: undefined,
147
+ exitCode,
148
+ stdout,
149
+ stderr,
150
+ duration,
151
+ };
152
+ }
153
+ // Empty output with non-zero exit = error
154
+ return {
155
+ success: false,
156
+ error: {
157
+ code: 'E_UNKNOWN',
158
+ exitCode,
159
+ message: stderr.trim() || 'Command failed with no output',
160
+ },
161
+ exitCode,
162
+ stdout,
163
+ stderr,
164
+ duration,
165
+ };
166
+ }
167
+ const parsed = JSON.parse(trimmed);
168
+ // CLI returned structured JSON response
169
+ if (typeof parsed === 'object' && parsed !== null) {
170
+ // Check for success field
171
+ if ('success' in parsed) {
172
+ if (parsed.success === true) {
173
+ // Extract payload data from CLI response.
174
+ // CLEO CLI returns payload fields directly on the response object
175
+ // (e.g., "task", "tasks", "session", "sessionId") rather than
176
+ // wrapping them in a "data" field. Extract by removing envelope fields.
177
+ let data;
178
+ if (parsed.data !== undefined) {
179
+ data = parsed.data;
180
+ }
181
+ else {
182
+ // CLEO CLI returns payload fields at the top level rather than
183
+ // wrapping in a "data" field. Look for well-known primary payload
184
+ // fields and unwrap them, falling back to the full parsed object.
185
+ const primaryPayloadFields = [
186
+ 'task', 'tasks', 'session', 'sessions', 'matches',
187
+ 'result', 'focus', 'entries', 'stages', 'summary',
188
+ ];
189
+ const found = primaryPayloadFields.find((f) => parsed[f] !== undefined);
190
+ if (found) {
191
+ data = parsed[found];
192
+ }
193
+ else {
194
+ // No recognized primary field - strip standard envelope
195
+ // and return remaining fields as data
196
+ const envelope = new Set([
197
+ '$schema', '_meta', 'success', 'error', 'warnings',
198
+ ]);
199
+ const payload = {};
200
+ for (const [key, value] of Object.entries(parsed)) {
201
+ if (!envelope.has(key)) {
202
+ payload[key] = value;
203
+ }
204
+ }
205
+ const payloadKeys = Object.keys(payload);
206
+ if (payloadKeys.length === 1) {
207
+ data = payload[payloadKeys[0]];
208
+ }
209
+ else if (payloadKeys.length === 0) {
210
+ data = parsed;
211
+ }
212
+ else {
213
+ data = payload;
214
+ }
215
+ }
216
+ }
217
+ return {
218
+ success: true,
219
+ data,
220
+ exitCode,
221
+ stdout,
222
+ stderr,
223
+ duration,
224
+ };
225
+ }
226
+ // Structured error response
227
+ return {
228
+ success: false,
229
+ error: {
230
+ code: parsed.error?.code || 'E_UNKNOWN',
231
+ exitCode: parsed.error?.exitCode || exitCode,
232
+ message: parsed.error?.message || 'Command failed',
233
+ details: parsed.error?.details,
234
+ fix: parsed.error?.fix,
235
+ alternatives: parsed.error?.alternatives,
236
+ },
237
+ exitCode,
238
+ stdout,
239
+ stderr,
240
+ duration,
241
+ };
242
+ }
243
+ // JSON without success field - treat as data
244
+ return {
245
+ success: exitCode === 0,
246
+ data: parsed,
247
+ exitCode,
248
+ stdout,
249
+ stderr,
250
+ duration,
251
+ };
252
+ }
253
+ }
254
+ catch (parseError) {
255
+ // Not valid JSON - treat as plain text
256
+ if (exitCode === 0) {
257
+ // Success with non-JSON output
258
+ return {
259
+ success: true,
260
+ data: stdout.trim(),
261
+ exitCode,
262
+ stdout,
263
+ stderr,
264
+ duration,
265
+ };
266
+ }
267
+ // Error with non-JSON output
268
+ return {
269
+ success: false,
270
+ error: {
271
+ code: 'E_UNKNOWN',
272
+ exitCode,
273
+ message: stderr.trim() || stdout.trim() || 'Command failed',
274
+ },
275
+ exitCode,
276
+ stdout,
277
+ stderr,
278
+ duration,
279
+ };
280
+ }
281
+ // Shouldn't reach here, but TypeScript needs it
282
+ return {
283
+ success: false,
284
+ error: {
285
+ code: 'E_UNKNOWN',
286
+ exitCode,
287
+ message: 'Unexpected execution result',
288
+ },
289
+ exitCode,
290
+ stdout,
291
+ stderr,
292
+ duration,
293
+ };
294
+ }
295
+ /**
296
+ * Determine if error is retryable
297
+ */
298
+ shouldRetry(exitCode, attempt, maxRetries) {
299
+ // Max retries exhausted
300
+ if (attempt >= maxRetries) {
301
+ return false;
302
+ }
303
+ // Check if error code is retryable
304
+ return isRetryableError(exitCode);
305
+ }
306
+ /**
307
+ * Sleep for specified milliseconds
308
+ */
309
+ sleep(ms) {
310
+ return new Promise((resolve) => setTimeout(resolve, ms));
311
+ }
312
+ /**
313
+ * Get CLI version
314
+ */
315
+ async getVersion() {
316
+ const result = await this.execute({
317
+ domain: 'system',
318
+ operation: 'version',
319
+ customCommand: `${this.cliPath} version --json`,
320
+ maxRetries: 1,
321
+ });
322
+ if (result.success) {
323
+ // Try data field first (already parsed by execute)
324
+ if (result.data && typeof result.data === 'object' && 'version' in result.data) {
325
+ return result.data.version;
326
+ }
327
+ // Fallback: parse version from raw stdout JSON
328
+ try {
329
+ const parsed = JSON.parse(result.stdout.trim());
330
+ if (parsed.version) {
331
+ return parsed.version;
332
+ }
333
+ if (parsed.data?.version) {
334
+ return parsed.data.version;
335
+ }
336
+ }
337
+ catch (e) {
338
+ // Not valid JSON, continue to error
339
+ }
340
+ }
341
+ throw new Error(`Failed to get CLI version: ${result.error?.message || 'Unknown error'}`);
342
+ }
343
+ /**
344
+ * Test CLI connection
345
+ */
346
+ async testConnection() {
347
+ try {
348
+ await this.getVersion();
349
+ return true;
350
+ }
351
+ catch {
352
+ return false;
353
+ }
354
+ }
355
+ }
356
+ /**
357
+ * Create executor instance from config
358
+ */
359
+ export function createExecutor(cliPath, timeout, maxRetries) {
360
+ return new CLIExecutor(cliPath, timeout, maxRetries);
361
+ }
362
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/lib/executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,190 @@
1
+ /**
2
+ * Exit code mapping for CLEO CLI operations
3
+ *
4
+ * @task T2913
5
+ * @epic T2908
6
+ *
7
+ * Maps all CLEO exit codes (1-100+) to error metadata with automatic
8
+ * fix command generation and contextual suggestions.
9
+ *
10
+ * Reference: lib/exit-codes.sh, lib/protocol-validation.sh
11
+ */
12
+ /**
13
+ * Exit code enumeration (complete mapping 0-100+)
14
+ */
15
+ export declare enum ExitCode {
16
+ SUCCESS = 0,
17
+ E_GENERAL_ERROR = 1,
18
+ E_INVALID_INPUT = 2,
19
+ E_FILE_ERROR = 3,
20
+ E_NOT_FOUND = 4,
21
+ E_DEPENDENCY_ERROR = 5,
22
+ E_VALIDATION_ERROR = 6,
23
+ E_LOCK_TIMEOUT = 7,
24
+ E_CONFIG_ERROR = 8,
25
+ E_PARENT_NOT_FOUND = 10,
26
+ E_DEPTH_EXCEEDED = 11,
27
+ E_SIBLING_LIMIT = 12,
28
+ E_INVALID_PARENT_TYPE = 13,
29
+ E_CIRCULAR_REFERENCE = 14,
30
+ E_ORPHAN_DETECTED = 15,
31
+ E_HAS_CHILDREN = 16,
32
+ E_TASK_COMPLETED = 17,
33
+ E_CASCADE_FAILED = 18,
34
+ E_HAS_DEPENDENTS = 19,
35
+ E_CHECKSUM_MISMATCH = 20,
36
+ E_CONCURRENT_MODIFICATION = 21,
37
+ E_ID_COLLISION = 22,
38
+ E_SESSION_EXISTS = 30,
39
+ E_SESSION_NOT_FOUND = 31,
40
+ E_SCOPE_CONFLICT = 32,
41
+ E_SCOPE_INVALID = 33,
42
+ E_TASK_NOT_IN_SCOPE = 34,
43
+ E_TASK_CLAIMED = 35,
44
+ E_SESSION_REQUIRED = 36,
45
+ E_SESSION_CLOSE_BLOCKED = 37,
46
+ E_FOCUS_REQUIRED = 38,
47
+ E_NOTES_REQUIRED = 39,
48
+ E_VERIFICATION_INIT_FAILED = 40,
49
+ E_GATE_UPDATE_FAILED = 41,
50
+ E_INVALID_GATE = 42,
51
+ E_INVALID_AGENT = 43,
52
+ E_MAX_ROUNDS_EXCEEDED = 44,
53
+ E_GATE_DEPENDENCY = 45,
54
+ E_VERIFICATION_LOCKED = 46,
55
+ E_ROUND_MISMATCH = 47,
56
+ E_CONTEXT_WARNING = 50,
57
+ E_CONTEXT_CAUTION = 51,
58
+ E_CONTEXT_CRITICAL = 52,
59
+ E_CONTEXT_EMERGENCY = 53,
60
+ E_CONTEXT_STALE = 54,
61
+ E_PROTOCOL_RESEARCH = 60,
62
+ E_PROTOCOL_CONSENSUS = 61,
63
+ E_PROTOCOL_SPECIFICATION = 62,
64
+ E_PROTOCOL_DECOMPOSITION = 63,
65
+ E_PROTOCOL_IMPLEMENTATION = 64,
66
+ E_PROTOCOL_CONTRIBUTION = 65,
67
+ E_PROTOCOL_RELEASE = 66,
68
+ E_PROTOCOL_GENERIC = 67,
69
+ E_PROTOCOL_VALIDATION = 68,
70
+ E_TESTS_SKIPPED = 69,
71
+ E_COVERAGE_INSUFFICIENT = 70,
72
+ E_NEXUS_NOT_INITIALIZED = 71,
73
+ E_NEXUS_PROJECT_NOT_FOUND = 72,
74
+ E_NEXUS_PERMISSION_DENIED = 73,
75
+ E_NEXUS_INVALID_SYNTAX = 74,
76
+ E_NEXUS_SYNC_FAILED = 75,
77
+ E_NEXUS_REGISTRY_CORRUPT = 76,
78
+ E_NEXUS_PROJECT_EXISTS = 77,
79
+ E_NEXUS_QUERY_FAILED = 78,
80
+ E_NEXUS_GRAPH_ERROR = 79,
81
+ E_LIFECYCLE_GATE_FAILED = 80,
82
+ E_AUDIT_MISSING = 81,
83
+ E_CIRCULAR_VALIDATION = 82,
84
+ E_LIFECYCLE_TRANSITION_INVALID = 83,
85
+ E_PROVENANCE_REQUIRED = 84,
86
+ E_NO_DATA = 100,
87
+ E_ALREADY_EXISTS = 101,
88
+ E_NO_CHANGE = 102
89
+ }
90
+ /**
91
+ * Error severity levels
92
+ */
93
+ export declare enum ErrorSeverity {
94
+ INFO = "info",
95
+ WARNING = "warning",
96
+ ERROR = "error",
97
+ CRITICAL = "critical"
98
+ }
99
+ /**
100
+ * Error category for grouping
101
+ */
102
+ export declare enum ErrorCategory {
103
+ GENERAL = "general",
104
+ HIERARCHY = "hierarchy",
105
+ CONCURRENCY = "concurrency",
106
+ SESSION = "session",
107
+ VERIFICATION = "verification",
108
+ CONTEXT = "context",
109
+ PROTOCOL = "protocol",
110
+ NEXUS = "nexus",
111
+ LIFECYCLE = "lifecycle",
112
+ SPECIAL = "special"
113
+ }
114
+ /**
115
+ * Alternative action suggestion
116
+ */
117
+ export interface ErrorAlternative {
118
+ action: string;
119
+ command: string;
120
+ }
121
+ /**
122
+ * Complete error metadata mapping
123
+ */
124
+ export interface ErrorMapping {
125
+ code: string;
126
+ name: string;
127
+ description: string;
128
+ category: ErrorCategory;
129
+ severity: ErrorSeverity;
130
+ retryable: boolean;
131
+ fixTemplate?: string;
132
+ alternatives?: ErrorAlternative[];
133
+ documentation?: string;
134
+ }
135
+ /**
136
+ * Complete exit code to error mapping
137
+ */
138
+ export declare const ERROR_MAP: Record<number, ErrorMapping>;
139
+ /**
140
+ * Get error mapping for exit code
141
+ */
142
+ export declare function getErrorMapping(exitCode: number): ErrorMapping;
143
+ /**
144
+ * Check if exit code represents an error
145
+ */
146
+ export declare function isError(exitCode: number): boolean;
147
+ /**
148
+ * Check if exit code is retryable
149
+ */
150
+ export declare function isRetryable(exitCode: number): boolean;
151
+ /**
152
+ * Check if exit code represents success
153
+ */
154
+ export declare function isSuccess(exitCode: number): boolean;
155
+ /**
156
+ * Generate fix command from template
157
+ */
158
+ export declare function generateFixCommand(exitCode: number, context: Record<string, string>): string | undefined;
159
+ /**
160
+ * Generate suggestions from alternatives
161
+ */
162
+ export declare function generateSuggestions(exitCode: number, context: Record<string, string>): ErrorAlternative[];
163
+ /**
164
+ * Exit codes that support automatic retry with exponential backoff.
165
+ * Per MCP-SERVER-SPECIFICATION Section 9.1.
166
+ *
167
+ * @task T3142
168
+ */
169
+ export declare const RETRYABLE_EXIT_CODES: ReadonlySet<number>;
170
+ /**
171
+ * Exit codes that require human intervention and must NEVER be retried.
172
+ * Per MCP-SERVER-SPECIFICATION Section 9.2.
173
+ *
174
+ * @task T3142
175
+ */
176
+ export declare const NON_RECOVERABLE_EXIT_CODES: ReadonlySet<number>;
177
+ /**
178
+ * Check if an exit code represents a non-recoverable error
179
+ * requiring human intervention. These must NEVER be retried.
180
+ *
181
+ * @task T3142
182
+ */
183
+ export declare function isNonRecoverable(exitCode: number): boolean;
184
+ /**
185
+ * Check if an exit code represents a recoverable error
186
+ * @param exitCode The exit code to check
187
+ * @returns true if the error is retryable
188
+ */
189
+ export declare function isRecoverable(exitCode: number): boolean;
190
+ //# sourceMappingURL=exit-codes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exit-codes.d.ts","sourceRoot":"","sources":["../../src/lib/exit-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;GAEG;AACH,oBAAY,QAAQ;IAElB,OAAO,IAAI;IAGX,eAAe,IAAI;IACnB,eAAe,IAAI;IACnB,YAAY,IAAI;IAChB,WAAW,IAAI;IACf,kBAAkB,IAAI;IACtB,kBAAkB,IAAI;IACtB,cAAc,IAAI;IAClB,cAAc,IAAI;IAGlB,kBAAkB,KAAK;IACvB,gBAAgB,KAAK;IACrB,eAAe,KAAK;IACpB,qBAAqB,KAAK;IAC1B,oBAAoB,KAAK;IACzB,iBAAiB,KAAK;IACtB,cAAc,KAAK;IACnB,gBAAgB,KAAK;IACrB,gBAAgB,KAAK;IACrB,gBAAgB,KAAK;IAGrB,mBAAmB,KAAK;IACxB,yBAAyB,KAAK;IAC9B,cAAc,KAAK;IAGnB,gBAAgB,KAAK;IACrB,mBAAmB,KAAK;IACxB,gBAAgB,KAAK;IACrB,eAAe,KAAK;IACpB,mBAAmB,KAAK;IACxB,cAAc,KAAK;IACnB,kBAAkB,KAAK;IACvB,uBAAuB,KAAK;IAC5B,gBAAgB,KAAK;IACrB,gBAAgB,KAAK;IAGrB,0BAA0B,KAAK;IAC/B,oBAAoB,KAAK;IACzB,cAAc,KAAK;IACnB,eAAe,KAAK;IACpB,qBAAqB,KAAK;IAC1B,iBAAiB,KAAK;IACtB,qBAAqB,KAAK;IAC1B,gBAAgB,KAAK;IAGrB,iBAAiB,KAAK;IACtB,iBAAiB,KAAK;IACtB,kBAAkB,KAAK;IACvB,mBAAmB,KAAK;IACxB,eAAe,KAAK;IAGpB,mBAAmB,KAAK;IACxB,oBAAoB,KAAK;IACzB,wBAAwB,KAAK;IAC7B,wBAAwB,KAAK;IAC7B,yBAAyB,KAAK;IAC9B,uBAAuB,KAAK;IAC5B,kBAAkB,KAAK;IACvB,kBAAkB,KAAK;IACvB,qBAAqB,KAAK;IAC1B,eAAe,KAAK;IACpB,uBAAuB,KAAK;IAG5B,uBAAuB,KAAK;IAC5B,yBAAyB,KAAK;IAC9B,yBAAyB,KAAK;IAC9B,sBAAsB,KAAK;IAC3B,mBAAmB,KAAK;IACxB,wBAAwB,KAAK;IAC7B,sBAAsB,KAAK;IAC3B,oBAAoB,KAAK;IACzB,mBAAmB,KAAK;IAGxB,uBAAuB,KAAK;IAC5B,eAAe,KAAK;IACpB,qBAAqB,KAAK;IAC1B,8BAA8B,KAAK;IACnC,qBAAqB,KAAK;IAG1B,SAAS,MAAM;IACf,gBAAgB,MAAM;IACtB,WAAW,MAAM;CAClB;AAED;;GAEG;AACH,oBAAY,aAAa;IACvB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,QAAQ,aAAa;CACtB;AAED;;GAEG;AACH,oBAAY,aAAa;IACvB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,YAAY,iBAAiB;IAC7B,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,aAAa,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAw1BlD,CAAC;AAEF;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAS9D;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGrD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,MAAM,GAAG,SAAS,CAYpB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,gBAAgB,EAAE,CAgBpB;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CASnD,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,MAAM,CAKzD,CAAC;AAEH;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGvD"}