@executioncontrolprotocol/cli 0.5.0 → 0.10.1

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 (335) hide show
  1. package/README.md +84 -47
  2. package/bin/dev.js +4 -5
  3. package/bin/ecp.js +7 -0
  4. package/bin/run.cmd +1 -1
  5. package/bin/run.js +2 -6
  6. package/dist/commands/compile.d.ts +15 -0
  7. package/dist/commands/compile.d.ts.map +1 -0
  8. package/dist/commands/compile.js +44 -0
  9. package/dist/commands/compile.js.map +1 -0
  10. package/dist/commands/config/secrets/add.d.ts +6 -5
  11. package/dist/commands/config/secrets/add.d.ts.map +1 -1
  12. package/dist/commands/config/secrets/add.js +30 -63
  13. package/dist/commands/config/secrets/add.js.map +1 -1
  14. package/dist/commands/config/secrets/get.d.ts +5 -5
  15. package/dist/commands/config/secrets/get.d.ts.map +1 -1
  16. package/dist/commands/config/secrets/get.js +21 -46
  17. package/dist/commands/config/secrets/get.js.map +1 -1
  18. package/dist/commands/config/secrets/list.d.ts +1 -5
  19. package/dist/commands/config/secrets/list.d.ts.map +1 -1
  20. package/dist/commands/config/secrets/list.js +11 -41
  21. package/dist/commands/config/secrets/list.js.map +1 -1
  22. package/dist/commands/config/secrets/remove.d.ts +3 -5
  23. package/dist/commands/config/secrets/remove.d.ts.map +1 -1
  24. package/dist/commands/config/secrets/remove.js +16 -42
  25. package/dist/commands/config/secrets/remove.js.map +1 -1
  26. package/dist/commands/config/secrets.d.ts +1 -0
  27. package/dist/commands/config/secrets.d.ts.map +1 -1
  28. package/dist/commands/config/secrets.js +14 -18
  29. package/dist/commands/config/secrets.js.map +1 -1
  30. package/dist/commands/decode.d.ts +18 -0
  31. package/dist/commands/decode.d.ts.map +1 -0
  32. package/dist/commands/decode.js +66 -0
  33. package/dist/commands/decode.js.map +1 -0
  34. package/dist/commands/describe.d.ts +13 -0
  35. package/dist/commands/describe.d.ts.map +1 -0
  36. package/dist/commands/describe.js +29 -0
  37. package/dist/commands/describe.js.map +1 -0
  38. package/dist/commands/encode.d.ts +18 -0
  39. package/dist/commands/encode.d.ts.map +1 -0
  40. package/dist/commands/encode.js +63 -0
  41. package/dist/commands/encode.js.map +1 -0
  42. package/dist/commands/run.d.ts +11 -17
  43. package/dist/commands/run.d.ts.map +1 -1
  44. package/dist/commands/run.js +39 -349
  45. package/dist/commands/run.js.map +1 -1
  46. package/dist/commands/search.d.ts +12 -0
  47. package/dist/commands/search.d.ts.map +1 -0
  48. package/dist/commands/search.js +26 -0
  49. package/dist/commands/search.js.map +1 -0
  50. package/dist/commands/up.d.ts +18 -0
  51. package/dist/commands/up.d.ts.map +1 -0
  52. package/dist/commands/up.js +95 -0
  53. package/dist/commands/up.js.map +1 -0
  54. package/dist/commands/validate.d.ts +6 -8
  55. package/dist/commands/validate.d.ts.map +1 -1
  56. package/dist/commands/validate.js +19 -86
  57. package/dist/commands/validate.js.map +1 -1
  58. package/dist/lib/command-helpers.d.ts +6 -8
  59. package/dist/lib/command-helpers.d.ts.map +1 -1
  60. package/dist/lib/command-helpers.js +21 -11
  61. package/dist/lib/command-helpers.js.map +1 -1
  62. package/dist/lib/env-module-command.d.ts +37 -0
  63. package/dist/lib/env-module-command.d.ts.map +1 -0
  64. package/dist/lib/env-module-command.js +59 -0
  65. package/dist/lib/env-module-command.js.map +1 -0
  66. package/dist/lib/format-cli.d.ts +13 -0
  67. package/dist/lib/format-cli.d.ts.map +1 -0
  68. package/dist/lib/format-cli.js +25 -0
  69. package/dist/lib/format-cli.js.map +1 -0
  70. package/dist/lib/secrets/store.d.ts +3 -0
  71. package/dist/lib/secrets/store.d.ts.map +1 -0
  72. package/dist/lib/secrets/store.js +6 -0
  73. package/dist/lib/secrets/store.js.map +1 -0
  74. package/dist/lib/up/constants.d.ts +15 -0
  75. package/dist/lib/up/constants.d.ts.map +1 -0
  76. package/dist/lib/up/constants.js +21 -0
  77. package/dist/lib/up/constants.js.map +1 -0
  78. package/dist/lib/up/cors.d.ts +12 -0
  79. package/dist/lib/up/cors.d.ts.map +1 -0
  80. package/dist/lib/up/cors.js +28 -0
  81. package/dist/lib/up/cors.js.map +1 -0
  82. package/dist/lib/up/create-daemon.d.ts +37 -0
  83. package/dist/lib/up/create-daemon.d.ts.map +1 -0
  84. package/dist/lib/up/create-daemon.js +63 -0
  85. package/dist/lib/up/create-daemon.js.map +1 -0
  86. package/dist/lib/up/handle-request.d.ts +19 -0
  87. package/dist/lib/up/handle-request.d.ts.map +1 -0
  88. package/dist/lib/up/handle-request.js +74 -0
  89. package/dist/lib/up/handle-request.js.map +1 -0
  90. package/dist/lib/up/open-browser.d.ts +19 -0
  91. package/dist/lib/up/open-browser.d.ts.map +1 -0
  92. package/dist/lib/up/open-browser.js +43 -0
  93. package/dist/lib/up/open-browser.js.map +1 -0
  94. package/dist/lib/up/read-body.d.ts +7 -0
  95. package/dist/lib/up/read-body.d.ts.map +1 -0
  96. package/dist/lib/up/read-body.js +12 -0
  97. package/dist/lib/up/read-body.js.map +1 -0
  98. package/package.json +18 -33
  99. package/bin/dev.cmd +0 -3
  100. package/dist/commands/config/endpoints/add.d.ts +0 -14
  101. package/dist/commands/config/endpoints/add.d.ts.map +0 -1
  102. package/dist/commands/config/endpoints/add.js +0 -29
  103. package/dist/commands/config/endpoints/add.js.map +0 -1
  104. package/dist/commands/config/endpoints/get.d.ts +0 -10
  105. package/dist/commands/config/endpoints/get.d.ts.map +0 -1
  106. package/dist/commands/config/endpoints/get.js +0 -35
  107. package/dist/commands/config/endpoints/get.js.map +0 -1
  108. package/dist/commands/config/endpoints/remove.d.ts +0 -13
  109. package/dist/commands/config/endpoints/remove.d.ts.map +0 -1
  110. package/dist/commands/config/endpoints/remove.js +0 -25
  111. package/dist/commands/config/endpoints/remove.js.map +0 -1
  112. package/dist/commands/config/endpoints/update.d.ts +0 -15
  113. package/dist/commands/config/endpoints/update.d.ts.map +0 -1
  114. package/dist/commands/config/endpoints/update.js +0 -36
  115. package/dist/commands/config/endpoints/update.js.map +0 -1
  116. package/dist/commands/config/get.d.ts +0 -11
  117. package/dist/commands/config/get.d.ts.map +0 -1
  118. package/dist/commands/config/get.js +0 -31
  119. package/dist/commands/config/get.js.map +0 -1
  120. package/dist/commands/config/init.d.ts +0 -13
  121. package/dist/commands/config/init.d.ts.map +0 -1
  122. package/dist/commands/config/init.js +0 -49
  123. package/dist/commands/config/init.js.map +0 -1
  124. package/dist/commands/config/loggers/allow/add.d.ts +0 -13
  125. package/dist/commands/config/loggers/allow/add.d.ts.map +0 -1
  126. package/dist/commands/config/loggers/allow/add.js +0 -25
  127. package/dist/commands/config/loggers/allow/add.js.map +0 -1
  128. package/dist/commands/config/loggers/allow/remove.d.ts +0 -13
  129. package/dist/commands/config/loggers/allow/remove.d.ts.map +0 -1
  130. package/dist/commands/config/loggers/allow/remove.js +0 -26
  131. package/dist/commands/config/loggers/allow/remove.js.map +0 -1
  132. package/dist/commands/config/loggers/default/add.d.ts +0 -13
  133. package/dist/commands/config/loggers/default/add.d.ts.map +0 -1
  134. package/dist/commands/config/loggers/default/add.js +0 -28
  135. package/dist/commands/config/loggers/default/add.js.map +0 -1
  136. package/dist/commands/config/loggers/default/remove.d.ts +0 -13
  137. package/dist/commands/config/loggers/default/remove.d.ts.map +0 -1
  138. package/dist/commands/config/loggers/default/remove.js +0 -25
  139. package/dist/commands/config/loggers/default/remove.js.map +0 -1
  140. package/dist/commands/config/loggers/get.d.ts +0 -10
  141. package/dist/commands/config/loggers/get.d.ts.map +0 -1
  142. package/dist/commands/config/loggers/get.js +0 -35
  143. package/dist/commands/config/loggers/get.js.map +0 -1
  144. package/dist/commands/config/loggers/logger/add.d.ts +0 -15
  145. package/dist/commands/config/loggers/logger/add.d.ts.map +0 -1
  146. package/dist/commands/config/loggers/logger/add.js +0 -55
  147. package/dist/commands/config/loggers/logger/add.js.map +0 -1
  148. package/dist/commands/config/loggers/logger/get.d.ts +0 -13
  149. package/dist/commands/config/loggers/logger/get.d.ts.map +0 -1
  150. package/dist/commands/config/loggers/logger/get.js +0 -30
  151. package/dist/commands/config/loggers/logger/get.js.map +0 -1
  152. package/dist/commands/config/loggers/logger/remove.d.ts +0 -13
  153. package/dist/commands/config/loggers/logger/remove.d.ts.map +0 -1
  154. package/dist/commands/config/loggers/logger/remove.js +0 -27
  155. package/dist/commands/config/loggers/logger/remove.js.map +0 -1
  156. package/dist/commands/config/loggers/logger/update.d.ts +0 -15
  157. package/dist/commands/config/loggers/logger/update.d.ts.map +0 -1
  158. package/dist/commands/config/loggers/logger/update.js +0 -55
  159. package/dist/commands/config/loggers/logger/update.js.map +0 -1
  160. package/dist/commands/config/models/allow/add.d.ts +0 -14
  161. package/dist/commands/config/models/allow/add.d.ts.map +0 -1
  162. package/dist/commands/config/models/allow/add.js +0 -36
  163. package/dist/commands/config/models/allow/add.js.map +0 -1
  164. package/dist/commands/config/models/allow/remove.d.ts +0 -14
  165. package/dist/commands/config/models/allow/remove.d.ts.map +0 -1
  166. package/dist/commands/config/models/allow/remove.js +0 -36
  167. package/dist/commands/config/models/allow/remove.js.map +0 -1
  168. package/dist/commands/config/models/default/update.d.ts +0 -14
  169. package/dist/commands/config/models/default/update.d.ts.map +0 -1
  170. package/dist/commands/config/models/default/update.js +0 -35
  171. package/dist/commands/config/models/default/update.js.map +0 -1
  172. package/dist/commands/config/models/get.d.ts +0 -10
  173. package/dist/commands/config/models/get.d.ts.map +0 -1
  174. package/dist/commands/config/models/get.js +0 -39
  175. package/dist/commands/config/models/get.js.map +0 -1
  176. package/dist/commands/config/models/ollama/update.d.ts +0 -13
  177. package/dist/commands/config/models/ollama/update.d.ts.map +0 -1
  178. package/dist/commands/config/models/ollama/update.js +0 -27
  179. package/dist/commands/config/models/ollama/update.js.map +0 -1
  180. package/dist/commands/config/path.d.ts +0 -12
  181. package/dist/commands/config/path.d.ts.map +0 -1
  182. package/dist/commands/config/path.js +0 -32
  183. package/dist/commands/config/path.js.map +0 -1
  184. package/dist/commands/config/plugins/add.d.ts +0 -16
  185. package/dist/commands/config/plugins/add.d.ts.map +0 -1
  186. package/dist/commands/config/plugins/add.js +0 -28
  187. package/dist/commands/config/plugins/add.js.map +0 -1
  188. package/dist/commands/config/plugins/allow/add.d.ts +0 -13
  189. package/dist/commands/config/plugins/allow/add.d.ts.map +0 -1
  190. package/dist/commands/config/plugins/allow/add.js +0 -25
  191. package/dist/commands/config/plugins/allow/add.js.map +0 -1
  192. package/dist/commands/config/plugins/allow/remove.d.ts +0 -13
  193. package/dist/commands/config/plugins/allow/remove.d.ts.map +0 -1
  194. package/dist/commands/config/plugins/allow/remove.js +0 -26
  195. package/dist/commands/config/plugins/allow/remove.js.map +0 -1
  196. package/dist/commands/config/plugins/default/add.d.ts +0 -13
  197. package/dist/commands/config/plugins/default/add.d.ts.map +0 -1
  198. package/dist/commands/config/plugins/default/add.js +0 -28
  199. package/dist/commands/config/plugins/default/add.js.map +0 -1
  200. package/dist/commands/config/plugins/default/remove.d.ts +0 -13
  201. package/dist/commands/config/plugins/default/remove.d.ts.map +0 -1
  202. package/dist/commands/config/plugins/default/remove.js +0 -25
  203. package/dist/commands/config/plugins/default/remove.js.map +0 -1
  204. package/dist/commands/config/plugins/get.d.ts +0 -10
  205. package/dist/commands/config/plugins/get.d.ts.map +0 -1
  206. package/dist/commands/config/plugins/get.js +0 -30
  207. package/dist/commands/config/plugins/get.js.map +0 -1
  208. package/dist/commands/config/plugins/installs/add.d.ts +0 -20
  209. package/dist/commands/config/plugins/installs/add.d.ts.map +0 -1
  210. package/dist/commands/config/plugins/installs/add.js +0 -51
  211. package/dist/commands/config/plugins/installs/add.js.map +0 -1
  212. package/dist/commands/config/plugins/installs/list.d.ts +0 -10
  213. package/dist/commands/config/plugins/installs/list.d.ts.map +0 -1
  214. package/dist/commands/config/plugins/installs/list.js +0 -29
  215. package/dist/commands/config/plugins/installs/list.js.map +0 -1
  216. package/dist/commands/config/plugins/installs/remove.d.ts +0 -13
  217. package/dist/commands/config/plugins/installs/remove.d.ts.map +0 -1
  218. package/dist/commands/config/plugins/installs/remove.js +0 -27
  219. package/dist/commands/config/plugins/installs/remove.js.map +0 -1
  220. package/dist/commands/config/plugins/security/update.d.ts +0 -5
  221. package/dist/commands/config/plugins/security/update.d.ts.map +0 -1
  222. package/dist/commands/config/plugins/security/update.js +0 -5
  223. package/dist/commands/config/plugins/security/update.js.map +0 -1
  224. package/dist/commands/config/secrets/providers/doctor.d.ts +0 -10
  225. package/dist/commands/config/secrets/providers/doctor.d.ts.map +0 -1
  226. package/dist/commands/config/secrets/providers/doctor.js +0 -40
  227. package/dist/commands/config/secrets/providers/doctor.js.map +0 -1
  228. package/dist/commands/config/secrets/providers/list.d.ts +0 -10
  229. package/dist/commands/config/secrets/providers/list.d.ts.map +0 -1
  230. package/dist/commands/config/secrets/providers/list.js +0 -31
  231. package/dist/commands/config/secrets/providers/list.js.map +0 -1
  232. package/dist/commands/config/secrets/providers.d.ts +0 -6
  233. package/dist/commands/config/secrets/providers.d.ts.map +0 -1
  234. package/dist/commands/config/secrets/providers.js +0 -9
  235. package/dist/commands/config/secrets/providers.js.map +0 -1
  236. package/dist/commands/config/secrets/yaml/get.d.ts +0 -11
  237. package/dist/commands/config/secrets/yaml/get.d.ts.map +0 -1
  238. package/dist/commands/config/secrets/yaml/get.js +0 -35
  239. package/dist/commands/config/secrets/yaml/get.js.map +0 -1
  240. package/dist/commands/config/secrets/yaml/set-default-provider.d.ts +0 -13
  241. package/dist/commands/config/secrets/yaml/set-default-provider.d.ts.map +0 -1
  242. package/dist/commands/config/secrets/yaml/set-default-provider.js +0 -24
  243. package/dist/commands/config/secrets/yaml/set-default-provider.js.map +0 -1
  244. package/dist/commands/config/secrets/yaml/set-policy.d.ts +0 -13
  245. package/dist/commands/config/secrets/yaml/set-policy.d.ts.map +0 -1
  246. package/dist/commands/config/secrets/yaml/set-policy.js +0 -29
  247. package/dist/commands/config/secrets/yaml/set-policy.js.map +0 -1
  248. package/dist/commands/config/security/get.d.ts +0 -11
  249. package/dist/commands/config/security/get.d.ts.map +0 -1
  250. package/dist/commands/config/security/get.js +0 -33
  251. package/dist/commands/config/security/get.js.map +0 -1
  252. package/dist/commands/config/security/plugins/update.d.ts +0 -13
  253. package/dist/commands/config/security/plugins/update.d.ts.map +0 -1
  254. package/dist/commands/config/security/plugins/update.js +0 -49
  255. package/dist/commands/config/security/plugins/update.js.map +0 -1
  256. package/dist/commands/config/tools/add.d.ts +0 -16
  257. package/dist/commands/config/tools/add.d.ts.map +0 -1
  258. package/dist/commands/config/tools/add.js +0 -60
  259. package/dist/commands/config/tools/add.js.map +0 -1
  260. package/dist/commands/config/tools/get.d.ts +0 -10
  261. package/dist/commands/config/tools/get.d.ts.map +0 -1
  262. package/dist/commands/config/tools/get.js +0 -29
  263. package/dist/commands/config/tools/get.js.map +0 -1
  264. package/dist/commands/config/tools/remove.d.ts +0 -13
  265. package/dist/commands/config/tools/remove.d.ts.map +0 -1
  266. package/dist/commands/config/tools/remove.js +0 -25
  267. package/dist/commands/config/tools/remove.js.map +0 -1
  268. package/dist/commands/config/tools/update.d.ts +0 -16
  269. package/dist/commands/config/tools/update.d.ts.map +0 -1
  270. package/dist/commands/config/tools/update.js +0 -59
  271. package/dist/commands/config/tools/update.js.map +0 -1
  272. package/dist/commands/config.d.ts +0 -8
  273. package/dist/commands/config.d.ts.map +0 -1
  274. package/dist/commands/config.js +0 -43
  275. package/dist/commands/config.js.map +0 -1
  276. package/dist/commands/graph.d.ts +0 -14
  277. package/dist/commands/graph.d.ts.map +0 -1
  278. package/dist/commands/graph.js +0 -39
  279. package/dist/commands/graph.js.map +0 -1
  280. package/dist/commands/trace/list.d.ts +0 -10
  281. package/dist/commands/trace/list.d.ts.map +0 -1
  282. package/dist/commands/trace/list.js +0 -32
  283. package/dist/commands/trace/list.js.map +0 -1
  284. package/dist/commands/trace.d.ts +0 -14
  285. package/dist/commands/trace.d.ts.map +0 -1
  286. package/dist/commands/trace.js +0 -43
  287. package/dist/commands/trace.js.map +0 -1
  288. package/dist/lib/config-flags.d.ts +0 -6
  289. package/dist/lib/config-flags.d.ts.map +0 -1
  290. package/dist/lib/config-flags.js +0 -14
  291. package/dist/lib/config-flags.js.map +0 -1
  292. package/dist/lib/default-ecp-config.d.ts +0 -5
  293. package/dist/lib/default-ecp-config.d.ts.map +0 -1
  294. package/dist/lib/default-ecp-config.js +0 -47
  295. package/dist/lib/default-ecp-config.js.map +0 -1
  296. package/dist/lib/ecp-environment-command.d.ts +0 -20
  297. package/dist/lib/ecp-environment-command.d.ts.map +0 -1
  298. package/dist/lib/ecp-environment-command.js +0 -33
  299. package/dist/lib/ecp-environment-command.js.map +0 -1
  300. package/dist/lib/ecp-home.d.ts +0 -3
  301. package/dist/lib/ecp-home.d.ts.map +0 -1
  302. package/dist/lib/ecp-home.js +0 -9
  303. package/dist/lib/ecp-home.js.map +0 -1
  304. package/dist/lib/inputs.d.ts +0 -3
  305. package/dist/lib/inputs.d.ts.map +0 -1
  306. package/dist/lib/inputs.js +0 -7
  307. package/dist/lib/inputs.js.map +0 -1
  308. package/dist/lib/parsing.d.ts +0 -12
  309. package/dist/lib/parsing.d.ts.map +0 -1
  310. package/dist/lib/parsing.js +0 -57
  311. package/dist/lib/parsing.js.map +0 -1
  312. package/dist/lib/progress.d.ts +0 -4
  313. package/dist/lib/progress.d.ts.map +0 -1
  314. package/dist/lib/progress.js +0 -111
  315. package/dist/lib/progress.js.map +0 -1
  316. package/dist/lib/secret-provider-ids.d.ts +0 -3
  317. package/dist/lib/secret-provider-ids.d.ts.map +0 -1
  318. package/dist/lib/secret-provider-ids.js +0 -3
  319. package/dist/lib/secret-provider-ids.js.map +0 -1
  320. package/dist/lib/secrets-config.d.ts +0 -15
  321. package/dist/lib/secrets-config.d.ts.map +0 -1
  322. package/dist/lib/secrets-config.js +0 -12
  323. package/dist/lib/secrets-config.js.map +0 -1
  324. package/dist/lib/system-config-cli.d.ts +0 -50
  325. package/dist/lib/system-config-cli.d.ts.map +0 -1
  326. package/dist/lib/system-config-cli.js +0 -108
  327. package/dist/lib/system-config-cli.js.map +0 -1
  328. package/dist/lib/trace-files.d.ts +0 -2
  329. package/dist/lib/trace-files.d.ts.map +0 -1
  330. package/dist/lib/trace-files.js +0 -14
  331. package/dist/lib/trace-files.js.map +0 -1
  332. package/dist/lib/trace-view.d.ts +0 -4
  333. package/dist/lib/trace-view.d.ts.map +0 -1
  334. package/dist/lib/trace-view.js +0 -8
  335. package/dist/lib/trace-view.js.map +0 -1
@@ -0,0 +1,74 @@
1
+ import { listOllamaModels } from "@executioncontrolprotocol/extension-ollama";
2
+ import { ECP_UP_VERSION, JSON_MIME } from "./constants.js";
3
+ import { readBearerToken, setCorsAndPna } from "./cors.js";
4
+ import { readRequestBody } from "./read-body.js";
5
+ /**
6
+ * Create the HTTP request handler for `ecp up`.
7
+ * @category CLI
8
+ */
9
+ export function createUpRequestHandler(options) {
10
+ const { ecp, allowOrigins, token, ollamaUrl } = options;
11
+ return async function handleUpRequest(req, res) {
12
+ setCorsAndPna(req, res, allowOrigins);
13
+ if (req.method === "OPTIONS") {
14
+ res.writeHead(204);
15
+ res.end();
16
+ return;
17
+ }
18
+ const url = new URL(req.url ?? "/", `http://${req.headers.host ?? "127.0.0.1"}`);
19
+ const pathname = url.pathname;
20
+ if (req.method === "GET" && pathname === "/health") {
21
+ let ollamaReachable = false;
22
+ try {
23
+ await listOllamaModels(ollamaUrl, { signal: AbortSignal.timeout(2000) });
24
+ ollamaReachable = true;
25
+ }
26
+ catch {
27
+ ollamaReachable = false;
28
+ }
29
+ writeJson(res, 200, {
30
+ ok: true,
31
+ version: ECP_UP_VERSION,
32
+ ollamaReachable,
33
+ });
34
+ return;
35
+ }
36
+ if (req.method === "POST" && pathname === "/v1/invoke") {
37
+ const presented = readBearerToken(req);
38
+ if (!presented || presented !== token) {
39
+ writeJson(res, 401, { error: "Unauthorized" });
40
+ return;
41
+ }
42
+ let body;
43
+ try {
44
+ const raw = await readRequestBody(req);
45
+ body = raw.trim() ? JSON.parse(raw) : {};
46
+ }
47
+ catch {
48
+ writeJson(res, 400, { error: "Invalid JSON body" });
49
+ return;
50
+ }
51
+ if (typeof body.capability !== "string" || !body.capability.trim()) {
52
+ writeJson(res, 400, { error: "capability is required" });
53
+ return;
54
+ }
55
+ try {
56
+ const builder = ecp.invoke(body.capability).with(body.input ?? {});
57
+ const result = await (body.provider ? builder.uses(body.provider) : builder).process();
58
+ writeJson(res, 200, result);
59
+ }
60
+ catch (err) {
61
+ const message = err instanceof Error ? err.message : String(err);
62
+ writeJson(res, 500, { error: message });
63
+ }
64
+ return;
65
+ }
66
+ writeJson(res, 404, { error: "Not found" });
67
+ };
68
+ }
69
+ function writeJson(res, status, body) {
70
+ const payload = JSON.stringify(body);
71
+ res.writeHead(status, { "Content-Type": JSON_MIME });
72
+ res.end(payload);
73
+ }
74
+ //# sourceMappingURL=handle-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handle-request.js","sourceRoot":"","sources":["../../../src/lib/up/handle-request.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Open a URL in the default browser (best-effort, fire-and-forget).
3
+ * @category CLI
4
+ */
5
+ export declare function openBrowserUrl(url: string): void;
6
+ /**
7
+ * Build the demo open URL with pairing token (and optional bridge base).
8
+ * @category CLI
9
+ */
10
+ export declare function buildDemoOpenUrl(openUrl: string, options: {
11
+ token: string;
12
+ bridgeBaseURL?: string;
13
+ }): string;
14
+ /**
15
+ * Origin (scheme + host + port) for CORS allowlisting from an open URL.
16
+ * @category CLI
17
+ */
18
+ export declare function originFromUrl(raw: string): string | undefined;
19
+ //# sourceMappingURL=open-browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-browser.d.ts","sourceRoot":"","sources":["../../../src/lib/up/open-browser.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAWhD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GACjD,MAAM,CAOR;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAO7D"}
@@ -0,0 +1,43 @@
1
+ import { spawn } from "node:child_process";
2
+ /**
3
+ * Open a URL in the default browser (best-effort, fire-and-forget).
4
+ * @category CLI
5
+ */
6
+ export function openBrowserUrl(url) {
7
+ const platform = process.platform;
8
+ if (platform === "win32") {
9
+ spawn("cmd", ["/c", "start", "", url], { detached: true, stdio: "ignore" }).unref();
10
+ return;
11
+ }
12
+ if (platform === "darwin") {
13
+ spawn("open", [url], { detached: true, stdio: "ignore" }).unref();
14
+ return;
15
+ }
16
+ spawn("xdg-open", [url], { detached: true, stdio: "ignore" }).unref();
17
+ }
18
+ /**
19
+ * Build the demo open URL with pairing token (and optional bridge base).
20
+ * @category CLI
21
+ */
22
+ export function buildDemoOpenUrl(openUrl, options) {
23
+ const url = new URL(openUrl);
24
+ url.searchParams.set("token", options.token);
25
+ if (options.bridgeBaseURL) {
26
+ url.searchParams.set("bridge", options.bridgeBaseURL);
27
+ }
28
+ return url.toString();
29
+ }
30
+ /**
31
+ * Origin (scheme + host + port) for CORS allowlisting from an open URL.
32
+ * @category CLI
33
+ */
34
+ export function originFromUrl(raw) {
35
+ try {
36
+ const url = new URL(raw);
37
+ return url.origin;
38
+ }
39
+ catch {
40
+ return undefined;
41
+ }
42
+ }
43
+ //# sourceMappingURL=open-browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-browser.js","sourceRoot":"","sources":["../../../src/lib/up/open-browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE1C;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;IACjC,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;QACnF,OAAM;IACR,CAAC;IACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;QACjE,OAAM;IACR,CAAC;IACD,KAAK,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;AACvE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAe,EACf,OAAkD;IAElD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;IAC5B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IAC5C,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IACvD,CAAC;IACD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAA;AACvB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;QACxB,OAAO,GAAG,CAAC,MAAM,CAAA;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { IncomingMessage } from "node:http";
2
+ /**
3
+ * Read the full request body as UTF-8 text.
4
+ * @category CLI
5
+ */
6
+ export declare function readRequestBody(req: IncomingMessage): Promise<string>;
7
+ //# sourceMappingURL=read-body.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-body.d.ts","sourceRoot":"","sources":["../../../src/lib/up/read-body.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAEhD;;;GAGG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAM3E"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Read the full request body as UTF-8 text.
3
+ * @category CLI
4
+ */
5
+ export async function readRequestBody(req) {
6
+ const chunks = [];
7
+ for await (const chunk of req) {
8
+ chunks.push(typeof chunk === "string" ? Buffer.from(chunk) : chunk);
9
+ }
10
+ return Buffer.concat(chunks).toString("utf8");
11
+ }
12
+ //# sourceMappingURL=read-body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-body.js","sourceRoot":"","sources":["../../../src/lib/up/read-body.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAoB;IACxD,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACrE,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AAC/C,CAAC"}
package/package.json CHANGED
@@ -1,54 +1,39 @@
1
1
  {
2
2
  "name": "@executioncontrolprotocol/cli",
3
- "version": "0.5.0",
4
- "description": "CLI for the ECP runtime engine — run Context manifests from the command line",
3
+ "version": "0.10.1",
4
+ "description": "ECP command-line interface",
5
5
  "license": "Apache-2.0",
6
- "homepage": "https://github.com/executioncontrolprotocol/executioncontrolprotocol",
7
- "repository": {
8
- "type": "git",
9
- "url": "git+https://github.com/executioncontrolprotocol/executioncontrolprotocol.git",
10
- "directory": "packages/cli"
11
- },
12
- "bugs": {
13
- "url": "https://github.com/executioncontrolprotocol/executioncontrolprotocol/issues"
14
- },
15
- "keywords": [
16
- "ecp",
17
- "execution-control-protocol",
18
- "mcp",
19
- "model-context-protocol",
20
- "agents",
21
- "cli"
22
- ],
23
- "private": false,
24
6
  "type": "module",
25
7
  "bin": {
26
- "ecp": "./bin/run.js"
8
+ "ecp": "./bin/ecp.js"
27
9
  },
28
10
  "files": [
11
+ "bin/ecp.js",
29
12
  "bin/run.js",
30
13
  "bin/run.cmd",
31
14
  "bin/dev.js",
32
- "bin/dev.cmd",
33
- "dist",
34
- "README.md"
15
+ "dist"
35
16
  ],
36
17
  "scripts": {
37
18
  "build": "tsc -b",
38
19
  "start": "node ./bin/dev.js"
39
20
  },
21
+ "peerDependencies": {
22
+ "@executioncontrolprotocol/core": "^0.10.1",
23
+ "@executioncontrolprotocol/types": "^0.10.1",
24
+ "zod": "^3.24.0"
25
+ },
40
26
  "dependencies": {
41
- "@executioncontrolprotocol/plugins": "^0.5.0",
42
- "@executioncontrolprotocol/runtime": "^0.5.0",
43
- "@oclif/core": "^4.10.0",
44
- "ora": "^8.1.1"
27
+ "@executioncontrolprotocol/node": "0.10.1",
28
+ "@executioncontrolprotocol/secrets": "0.10.1",
29
+ "@executioncontrolprotocol/extension-ollama": "0.10.1",
30
+ "@oclif/core": "^4.10.0"
45
31
  },
46
32
  "devDependencies": {
47
- "@executioncontrolprotocol/spec": "^0.5.0",
48
- "@types/node": "^25.3.3",
49
- "ts-node": "^10.9.2",
50
- "tsx": "^4.0.0",
51
- "typescript": "^5.7.0"
33
+ "@executioncontrolprotocol/core": "0.10.1",
34
+ "@executioncontrolprotocol/types": "0.10.1",
35
+ "typescript": "^5.7.0",
36
+ "zod": "^3.24.0"
52
37
  },
53
38
  "oclif": {
54
39
  "bin": "ecp",
package/bin/dev.cmd DELETED
@@ -1,3 +0,0 @@
1
- @echo off
2
-
3
- node --loader ts-node/esm --no-warnings=ExperimentalWarning "%~dp0\dev" %*
@@ -1,14 +0,0 @@
1
- import { Command } from "@oclif/core";
2
- export default class ConfigEndpointsAdd extends Command {
3
- static summary: string;
4
- static args: {
5
- name: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
6
- url: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
7
- };
8
- static flags: {
9
- global: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
- config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
- };
12
- run(): Promise<void>;
13
- }
14
- //# sourceMappingURL=add.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../../src/commands/config/endpoints/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAE,MAAM,aAAa,CAAC;AAK5C,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,OAAO;IACrD,MAAM,CAAC,OAAO,SAAmD;IAEjE,MAAM,CAAC,IAAI;;;MAGT;IAEF,MAAM,CAAC,KAAK;;;MAA2B;IAEjC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAsB3B"}
@@ -1,29 +0,0 @@
1
- import { Args, Command } from "@oclif/core";
2
- import { configScopeFlags } from "../../../lib/config-flags.js";
3
- import { persistConfig, readForMutation } from "../../../lib/system-config-cli.js";
4
- export default class ConfigEndpointsAdd extends Command {
5
- static summary = "Set agents.endpoints.<executorName>.url (A2A)";
6
- static args = {
7
- name: Args.string({ required: true, description: "Executor / specialist name" }),
8
- url: Args.string({ required: true, description: "A2A endpoint URL" }),
9
- };
10
- static flags = { ...configScopeFlags };
11
- async run() {
12
- const { args, flags } = await this.parse(ConfigEndpointsAdd);
13
- const cwd = process.cwd();
14
- const { path, config } = readForMutation({
15
- global: flags.global,
16
- cwd,
17
- explicit: flags.config,
18
- });
19
- config.agents ??= {};
20
- config.agents.endpoints ??= {};
21
- if (config.agents.endpoints[args.name] !== undefined) {
22
- this.error(`Endpoint "${args.name}" already exists. Use "ecp config endpoints update" to change the URL.`, { exit: 1 });
23
- }
24
- config.agents.endpoints[args.name] = { url: args.url };
25
- persistConfig(path, config);
26
- this.log(`Added agents.endpoints.${args.name}.url = ${args.url} (${path})`);
27
- }
28
- }
29
- //# sourceMappingURL=add.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../../src/commands/config/endpoints/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEnF,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,OAAO;IACrD,MAAM,CAAC,OAAO,GAAG,+CAA+C,CAAC;IAEjE,MAAM,CAAC,IAAI,GAAG;QACZ,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;QAChF,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;KACtE,CAAC;IAEF,MAAM,CAAC,KAAK,GAAG,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAEvC,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC7D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC;YACvC,MAAM,EAAE,KAAK,CAAC,MAAiB;YAC/B,GAAG;YACH,QAAQ,EAAE,KAAK,CAAC,MAA4B;SAC7C,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,KAAK,EAAE,CAAC;QACrB,MAAM,CAAC,MAAM,CAAC,SAAS,KAAK,EAAE,CAAC;QAC/B,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACrD,IAAI,CAAC,KAAK,CACR,aAAa,IAAI,CAAC,IAAI,wEAAwE,EAC9F,EAAE,IAAI,EAAE,CAAC,EAAE,CACZ,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvD,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,0BAA0B,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,GAAG,KAAK,IAAI,GAAG,CAAC,CAAC;IAC9E,CAAC"}
@@ -1,10 +0,0 @@
1
- import { Command } from "@oclif/core";
2
- export default class ConfigEndpointsGet extends Command {
3
- static summary: string;
4
- static flags: {
5
- global: import("@oclif/core/interfaces").BooleanFlag<boolean>;
6
- config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
- };
8
- run(): Promise<void>;
9
- }
10
- //# sourceMappingURL=get.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../src/commands/config/endpoints/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAMtC,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,OAAO;IACrD,MAAM,CAAC,OAAO,SAAgD;IAE9D,MAAM,CAAC,KAAK;;;MAA2B;IAEjC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA6B3B"}
@@ -1,35 +0,0 @@
1
- import { Command } from "@oclif/core";
2
- import { formatConfigFileHeaderLine, runWithCommandError } from "../../../lib/command-helpers.js";
3
- import { configScopeFlags } from "../../../lib/config-flags.js";
4
- import { loadConfigForDisplay } from "../../../lib/system-config-cli.js";
5
- export default class ConfigEndpointsGet extends Command {
6
- static summary = "Get A2A agent endpoints (agents.endpoints)";
7
- static flags = { ...configScopeFlags };
8
- async run() {
9
- const { flags } = await this.parse(ConfigEndpointsGet);
10
- const cwd = process.cwd();
11
- await runWithCommandError(this, async () => {
12
- const { path, exists, config } = loadConfigForDisplay({
13
- global: flags.global,
14
- cwd,
15
- explicit: flags.config,
16
- });
17
- this.log(formatConfigFileHeaderLine(path, exists));
18
- const ae = config.agents?.endpoints;
19
- if (!ae || Object.keys(ae).length === 0) {
20
- this.log("(no agent endpoints configured)");
21
- return;
22
- }
23
- for (const k of Object.keys(ae).sort()) {
24
- const v = ae[k];
25
- const url = typeof v === "string"
26
- ? v
27
- : v && typeof v === "object" && typeof v.url === "string"
28
- ? v.url
29
- : "(invalid entry)";
30
- this.log(`${k}: ${url}`);
31
- }
32
- });
33
- }
34
- }
35
- //# sourceMappingURL=get.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/commands/config/endpoints/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAClG,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEzE,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,OAAO;IACrD,MAAM,CAAC,OAAO,GAAG,4CAA4C,CAAC;IAE9D,MAAM,CAAC,KAAK,GAAG,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAEvC,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAE1B,MAAM,mBAAmB,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YACzC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAAC;gBACpD,MAAM,EAAE,KAAK,CAAC,MAAiB;gBAC/B,GAAG;gBACH,QAAQ,EAAE,KAAK,CAAC,MAA4B;aAC7C,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YACnD,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;YACpC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;gBAC5C,OAAO;YACT,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;gBACvC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBAChB,MAAM,GAAG,GACP,OAAO,CAAC,KAAK,QAAQ;oBACnB,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAQ,CAAsB,CAAC,GAAG,KAAK,QAAQ;wBAC7E,CAAC,CAAE,CAAqB,CAAC,GAAG;wBAC5B,CAAC,CAAC,iBAAiB,CAAC;gBAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC"}
@@ -1,13 +0,0 @@
1
- import { Command } from "@oclif/core";
2
- export default class ConfigEndpointsRemove extends Command {
3
- static summary: string;
4
- static args: {
5
- name: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
6
- };
7
- static flags: {
8
- global: import("@oclif/core/interfaces").BooleanFlag<boolean>;
9
- config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
- };
11
- run(): Promise<void>;
12
- }
13
- //# sourceMappingURL=remove.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../../src/commands/config/endpoints/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAE,MAAM,aAAa,CAAC;AAK5C,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,OAAO;IACxD,MAAM,CAAC,OAAO,SAAsC;IAEpD,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;MAA2B;IAEjC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgB3B"}
@@ -1,25 +0,0 @@
1
- import { Args, Command } from "@oclif/core";
2
- import { configScopeFlags } from "../../../lib/config-flags.js";
3
- import { persistConfig, readForMutation } from "../../../lib/system-config-cli.js";
4
- export default class ConfigEndpointsRemove extends Command {
5
- static summary = "Remove an agents.endpoints entry";
6
- static args = {
7
- name: Args.string({ required: true, description: "Executor / specialist name" }),
8
- };
9
- static flags = { ...configScopeFlags };
10
- async run() {
11
- const { args, flags } = await this.parse(ConfigEndpointsRemove);
12
- const cwd = process.cwd();
13
- const { path, config } = readForMutation({
14
- global: flags.global,
15
- cwd,
16
- explicit: flags.config,
17
- });
18
- if (config.agents?.endpoints && args.name in config.agents.endpoints) {
19
- delete config.agents.endpoints[args.name];
20
- }
21
- persistConfig(path, config);
22
- this.log(`Removed agents.endpoints.${args.name} (${path})`);
23
- }
24
- }
25
- //# sourceMappingURL=remove.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../../src/commands/config/endpoints/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEnF,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,OAAO;IACxD,MAAM,CAAC,OAAO,GAAG,kCAAkC,CAAC;IAEpD,MAAM,CAAC,IAAI,GAAG;QACZ,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;KACjF,CAAC;IAEF,MAAM,CAAC,KAAK,GAAG,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAEvC,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC;YACvC,MAAM,EAAE,KAAK,CAAC,MAAiB;YAC/B,GAAG;YACH,QAAQ,EAAE,KAAK,CAAC,MAA4B;SAC7C,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACrE,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QAED,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,4BAA4B,IAAI,CAAC,IAAI,KAAK,IAAI,GAAG,CAAC,CAAC;IAC9D,CAAC"}
@@ -1,15 +0,0 @@
1
- import { Command } from "@oclif/core";
2
- export default class ConfigEndpointsUpdate extends Command {
3
- static summary: string;
4
- static description: string;
5
- static args: {
6
- name: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
7
- url: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
8
- };
9
- static flags: {
10
- global: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
- config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
- };
13
- run(): Promise<void>;
14
- }
15
- //# sourceMappingURL=update.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../../src/commands/config/endpoints/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAE,MAAM,aAAa,CAAC;AAK5C,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,OAAO;IACxD,MAAM,CAAC,OAAO,SAAgD;IAE9D,MAAM,CAAC,WAAW,SAA6E;IAE/F,MAAM,CAAC,IAAI;;;MAGT;IAEF,MAAM,CAAC,KAAK;;;MAA2B;IAEjC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA2B3B"}
@@ -1,36 +0,0 @@
1
- import { Args, Command } from "@oclif/core";
2
- import { configScopeFlags } from "../../../lib/config-flags.js";
3
- import { persistConfig, readForMutation } from "../../../lib/system-config-cli.js";
4
- export default class ConfigEndpointsUpdate extends Command {
5
- static summary = "Update agents.endpoints.<executorName>.url";
6
- static description = "Same as add: sets the URL for an executor name (creates or overwrites).";
7
- static args = {
8
- name: Args.string({ required: true, description: "Executor / specialist name" }),
9
- url: Args.string({ required: true, description: "A2A endpoint URL" }),
10
- };
11
- static flags = { ...configScopeFlags };
12
- async run() {
13
- const { args, flags } = await this.parse(ConfigEndpointsUpdate);
14
- const cwd = process.cwd();
15
- const { path, config } = readForMutation({
16
- global: flags.global,
17
- cwd,
18
- explicit: flags.config,
19
- });
20
- config.agents ??= {};
21
- config.agents.endpoints ??= {};
22
- if (config.agents.endpoints[args.name] === undefined) {
23
- this.error(`No endpoint "${args.name}". Use "ecp config endpoints add" first.`, { exit: 1 });
24
- }
25
- const cur = config.agents.endpoints[args.name];
26
- if (typeof cur === "string") {
27
- config.agents.endpoints[args.name] = { url: args.url };
28
- }
29
- else if (cur && typeof cur === "object") {
30
- cur.url = args.url;
31
- }
32
- persistConfig(path, config);
33
- this.log(`Updated agents.endpoints.${args.name}.url = ${args.url} (${path})`);
34
- }
35
- }
36
- //# sourceMappingURL=update.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/commands/config/endpoints/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEnF,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,OAAO;IACxD,MAAM,CAAC,OAAO,GAAG,4CAA4C,CAAC;IAE9D,MAAM,CAAC,WAAW,GAAG,yEAAyE,CAAC;IAE/F,MAAM,CAAC,IAAI,GAAG;QACZ,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;QAChF,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;KACtE,CAAC;IAEF,MAAM,CAAC,KAAK,GAAG,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAEvC,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC;YACvC,MAAM,EAAE,KAAK,CAAC,MAAiB;YAC/B,GAAG;YACH,QAAQ,EAAE,KAAK,CAAC,MAA4B;SAC7C,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,KAAK,EAAE,CAAC;QACrB,MAAM,CAAC,MAAM,CAAC,SAAS,KAAK,EAAE,CAAC;QAC/B,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;YACrD,IAAI,CAAC,KAAK,CACR,gBAAgB,IAAI,CAAC,IAAI,0CAA0C,EACnE,EAAE,IAAI,EAAE,CAAC,EAAE,CACZ,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QACzD,CAAC;aAAM,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC1C,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,CAAC;QAED,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,4BAA4B,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,GAAG,KAAK,IAAI,GAAG,CAAC,CAAC;IAChF,CAAC"}
@@ -1,11 +0,0 @@
1
- import { Command } from "@oclif/core";
2
- export default class ConfigGet extends Command {
3
- static summary: string;
4
- static flags: {
5
- format: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
6
- global: import("@oclif/core/interfaces").BooleanFlag<boolean>;
7
- config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
- };
9
- run(): Promise<void>;
10
- }
11
- //# sourceMappingURL=get.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/commands/config/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAY7C,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,OAAO;IAC5C,MAAM,CAAC,OAAO,SAAmD;IAEjE,MAAM,CAAC,KAAK;;;;MAOV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgB3B"}
@@ -1,31 +0,0 @@
1
- import { Command, Flags } from "@oclif/core";
2
- import { stringifySystemConfig } from "@executioncontrolprotocol/runtime";
3
- import { CONFIG_DUMP_HEADER_WHEN_MISSING, formatConfigFileHeaderLine, runWithCommandError, } from "../../lib/command-helpers.js";
4
- import { configScopeFlags } from "../../lib/config-flags.js";
5
- import { loadConfigForDisplay } from "../../lib/system-config-cli.js";
6
- export default class ConfigGet extends Command {
7
- static summary = "Get the resolved system config (YAML or JSON)";
8
- static flags = {
9
- ...configScopeFlags,
10
- format: Flags.string({
11
- description: "Serialization format",
12
- options: ["yaml", "json"],
13
- default: "yaml",
14
- }),
15
- };
16
- async run() {
17
- const { flags } = await this.parse(ConfigGet);
18
- const cwd = process.cwd();
19
- await runWithCommandError(this, async () => {
20
- const { path, exists, config } = loadConfigForDisplay({
21
- global: flags.global,
22
- cwd,
23
- explicit: flags.config,
24
- });
25
- const fmt = flags.format;
26
- this.log(formatConfigFileHeaderLine(path, exists, CONFIG_DUMP_HEADER_WHEN_MISSING));
27
- this.log(stringifySystemConfig(config, fmt));
28
- });
29
- }
30
- }
31
- //# sourceMappingURL=get.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/config/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,OAAO,EACL,+BAA+B,EAC/B,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,OAAO;IAC5C,MAAM,CAAC,OAAO,GAAG,+CAA+C,CAAC;IAEjE,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,gBAAgB;QACnB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,sBAAsB;YACnC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAU;YAClC,OAAO,EAAE,MAAM;SAChB,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAE1B,MAAM,mBAAmB,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YACzC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAAC;gBACpD,MAAM,EAAE,KAAK,CAAC,MAAiB;gBAC/B,GAAG;gBACH,QAAQ,EAAE,KAAK,CAAC,MAA4B;aAC7C,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,KAAK,CAAC,MAAyB,CAAC;YAC5C,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,+BAA+B,CAAC,CAAC,CAAC;YACpF,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC"}
@@ -1,13 +0,0 @@
1
- import { Command } from "@oclif/core";
2
- export default class ConfigInit extends Command {
3
- static summary: string;
4
- static description: string;
5
- static flags: {
6
- force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
7
- format: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
8
- global: import("@oclif/core/interfaces").BooleanFlag<boolean>;
9
- config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
- };
11
- run(): Promise<void>;
12
- }
13
- //# sourceMappingURL=init.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/config/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAS7C,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAC7C,MAAM,CAAC,OAAO,SAAoD;IAElE,MAAM,CAAC,WAAW,SAEqB;IAEvC,MAAM,CAAC,KAAK;;;;;MAYV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA6B3B"}
@@ -1,49 +0,0 @@
1
- import { Command, Flags } from "@oclif/core";
2
- import { resolve } from "node:path";
3
- import { parseSystemConfigString, saveSystemConfig } from "@executioncontrolprotocol/runtime";
4
- import { DEFAULT_ECP_SYSTEM_CONFIG_YAML } from "../../lib/default-ecp-config.js";
5
- import { configScopeFlags } from "../../lib/config-flags.js";
6
- import { globalConfigJsonPath, globalConfigYamlPath, loadConfigAtPath } from "../../lib/system-config-cli.js";
7
- export default class ConfigInit extends Command {
8
- static summary = "Write best-practices default config if missing";
9
- static description = "Creates a new config file with a conservative allow-list (OpenAI + Ollama), model defaults, and extension security. " +
10
- "Does not overwrite unless --force.";
11
- static flags = {
12
- ...configScopeFlags,
13
- force: Flags.boolean({
14
- char: "f",
15
- description: "Overwrite existing config at the target path",
16
- default: false,
17
- }),
18
- format: Flags.string({
19
- description: "Output format for the new file",
20
- options: ["yaml", "json"],
21
- default: "yaml",
22
- }),
23
- };
24
- async run() {
25
- const { flags } = await this.parse(ConfigInit);
26
- const global = flags.global;
27
- const explicit = flags.config;
28
- const cwd = process.cwd();
29
- let target;
30
- if (explicit) {
31
- target = resolve(explicit);
32
- }
33
- else if (global) {
34
- target = flags.format === "json" ? globalConfigJsonPath() : globalConfigYamlPath();
35
- }
36
- else {
37
- target =
38
- flags.format === "json" ? resolve(cwd, "ecp.config.json") : resolve(cwd, "ecp.config.yaml");
39
- }
40
- const parsed = parseSystemConfigString(DEFAULT_ECP_SYSTEM_CONFIG_YAML, "yaml");
41
- const { exists } = loadConfigAtPath(target);
42
- if (exists && !flags.force) {
43
- this.error(`Config already exists: ${target}\nUse --force to overwrite, or edit the file directly.`, { exit: 1 });
44
- }
45
- saveSystemConfig(target, parsed);
46
- this.log(exists ? `Overwrote ${target}` : `Wrote ${target}`);
47
- }
48
- }
49
- //# sourceMappingURL=init.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/config/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAE9F,OAAO,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAE9G,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAC7C,MAAM,CAAC,OAAO,GAAG,gDAAgD,CAAC;IAElE,MAAM,CAAC,WAAW,GAChB,sHAAsH;QACtH,oCAAoC,CAAC;IAEvC,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,gBAAgB;QACnB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,8CAA8C;YAC3D,OAAO,EAAE,KAAK;SACf,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,gCAAgC;YAC7C,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAU;YAClC,OAAO,EAAE,MAAM;SAChB,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAiB,CAAC;QACvC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAA4B,CAAC;QACpD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAE1B,IAAI,MAAc,CAAC;QACnB,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;aAAM,IAAI,MAAM,EAAE,CAAC;YAClB,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC;QACrF,CAAC;aAAM,CAAC;YACN,MAAM;gBACJ,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;QAChG,CAAC;QAED,MAAM,MAAM,GAAG,uBAAuB,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC;QAC/E,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAE5C,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,CACR,0BAA0B,MAAM,wDAAwD,EACxF,EAAE,IAAI,EAAE,CAAC,EAAE,CACZ,CAAC;QACJ,CAAC;QAED,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC"}