@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
package/README.md CHANGED
@@ -1,77 +1,114 @@
1
- # `@executioncontrolprotocol/cli`
1
+ # @executioncontrolprotocol/cli
2
2
 
3
- **Execution Control Protocol (ECP)** specifies portable **Context** manifests for agent orchestration: structured inputs and outputs, tool boundaries, per-executor policies, and host-level enforcement via system config—so runs stay least-privilege and auditable.
3
+ ECP command-line interface for running **workflows** (`@executioncontrolprotocol.workflow`) in configured
4
+ **environments** (runtime + extensions + policies).
4
5
 
5
- **Learn more:** [executioncontrolprotocol.io](https://executioncontrolprotocol.io)
6
+ This CLI is how you run ECP deterministically in a Node.js / TypeScript ecosystem:
6
7
 
7
- This package is the **command-line interface** for validating and running Contexts.
8
+ - Compile workflow source modules (`.ts` / `.js`) to portable JSON manifests
9
+ - Validate workflows against an environment’s registered capabilities
10
+ - Describe/search environment capabilities for agent/UI discovery
11
+ - Run workflows and print structured run results
12
+ - Encode/decode workflows using format extensions (TOON, Fluent, JSON)
13
+
14
+ For the architecture and monorepo package boundaries, start with
15
+ [`AGENTS.md`](../../AGENTS.md) and [`ecp-overhaul.md`](../../ecp-overhaul.md).
8
16
 
9
17
  ## Install
10
18
 
11
- ```bash
19
+ From npm (when published):
20
+
21
+ ```sh
12
22
  npm install -g @executioncontrolprotocol/cli
13
23
  ```
14
24
 
25
+ From this monorepo (recommended for development):
26
+
27
+ ```sh
28
+ npm install
29
+ npm run build
30
+ cd packages/cli
31
+ npm link
32
+ ```
33
+
15
34
  ## Usage
16
35
 
17
- ```bash
18
- ecp --help
19
- ecp validate path/to/context.yaml
20
- ecp run path/to/context.yaml -i topic="Hello"
36
+ All operational commands that need an environment accept:
37
+
38
+ - `--env <path>`: a module that exports the environment builder (`default export`)
39
+
40
+ ### Run
41
+
42
+ ```sh
43
+ ecp run examples/01-echo/workflow.ts --env examples/01-echo/environment.ts
44
+ ```
45
+
46
+ Provide workflow input (JSON file):
47
+
48
+ ```sh
49
+ ecp run workflow.json --env environment.ts --input input.json
50
+ ```
51
+
52
+ Dry run (validate + plan without invoking capabilities):
53
+
54
+ ```sh
55
+ ecp run workflow.ts --env environment.ts --dry-run
56
+ ```
57
+
58
+ ### Validate
59
+
60
+ ```sh
61
+ ecp validate examples/01-echo/workflow.ts --env examples/01-echo/environment.ts
21
62
  ```
22
63
 
23
- ### System config (`ecp.config.yaml` / `~/.ecp/config.yaml`)
24
-
25
- **v0.5 layout:** use top-level **`security`** for allow-lists and defaults (mirrors `models`, `tools`, `loggers`, …). Wiring lives under **`models.providers`**, **`tools.servers`**, **`loggers.config`**, **`agents.endpoints`**, **`plugins.installs`**, **`secrets`**. Set **`version: "0.5"`**.
26
-
27
- ```bash
28
- ecp config --help
29
- ecp config init # best-practices starter in current directory
30
- ecp config init --global # ~/.ecp/config.yaml
31
- ecp config path # resolved file path (use --for-write for mutation target)
32
- ecp config get --format json
33
- ecp config security get
34
- ecp config plugins get # plugins.installs + security.plugins summary
35
- ecp config models get
36
- ecp config tools get
37
- ecp config loggers get
38
- ecp config secrets yaml get
64
+ ### Compile (portable JSON)
65
+
66
+ ```sh
67
+ ecp compile examples/01-echo/workflow.ts -o dist/workflow.json
39
68
  ```
40
69
 
41
- `ecp run` accepts `--logger` / `-l` (e.g. `file`) to enable logger **plugins** (`kind: logger`); defaults and allow-lists are under **`security.loggers`**, per-logger options under **`loggers.config`**.
70
+ ### Describe / search environment capabilities
42
71
 
43
- YAML and JSON are supported; defaults are searched in order: `./ecp.config.yaml`, `./ecp.config.json`, then `~/.ecp/`.
72
+ ```sh
73
+ ecp describe --env examples/01-echo/environment.ts
74
+ ecp search "echo" --env examples/01-echo/environment.ts
75
+ ```
44
76
 
45
- ## Secrets and environment files
77
+ ### Local daemon (`ecp up`)
46
78
 
47
- ECP separates **where** a secret is loaded from using **provider ids** in `tools.servers.<name>.credentials.bindings[].source`:
79
+ Start a loopback HTTP daemon that bridges Ollama for the browser demo (CORS + Private Network Access), then open the demo with a pairing token:
48
80
 
49
- | Provider id | Meaning |
50
- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
51
- | `process.env` | Read from the current process environment (`process.env[<key>]`). |
52
- | `dot.env` | Read from a `.env`-style file on disk (path from config or `--environment`). |
53
- | `os.secrets` | Read from the OS credential manager / keychain; stored under an `ecp://<key>` target (same as default `SecretRef.id`; provider is only in `source.provider`, e.g. `os.secrets.MY_KEY` as shorthand in docs). |
81
+ ```sh
82
+ ecp up
83
+ # Opens https://executioncontrolprotocol.github.io/browser-demo/?token=<uuid>&bridge=http://127.0.0.1:3090
54
84
 
55
- Bindings use **plain keys** (e.g. `GITHUB_PAT`, `server/fetch.token`) in `source.key`. Values are never stored in Context YAML—only references.
85
+ ecp up --open-url http://localhost:5173/
86
+ ecp up --no-open
87
+ ```
56
88
 
57
- ### `ecp config secrets`
89
+ - `GET /health` `{ ok, version, ollamaReachable }` (no auth; used by the demo to enable Ollama)
90
+ - `POST /v1/invoke` — Bearer token required; body `{ capability, input?, provider? }`
58
91
 
59
- Use **`os.secrets`** for durable storage (e.g. `ecp config secrets add --provider os.secrets --key myapp/token --prompt`). The `ecp config` commands do **not** support `--environment`; they resolve `dot.env` only from `ecp.config.*` (`secrets.providers.dot.env.path`).
92
+ Default port **3090** (ECP leet). The demo reads `?token=` (and optional `?bridge=`) automatically. Hosted HTTPS demos need **Chromium** (Chrome/Edge) for Private Network Access. Add extra page origins with `--cors-origin`.
60
93
 
61
- ### `--environment` (runtime commands only)
94
+ ### Encode / decode formats
62
95
 
63
- On **`ecp run`**, **`ecp validate`**, **`ecp trace`**, **`ecp trace list`**, and **`ecp graph`**, you can pass:
96
+ Encoding and decoding uses **format extensions** bound in your environment.
64
97
 
65
- ```bash
66
- ecp run context.yaml --environment ./.env.local
98
+ ```sh
99
+ ecp encode workflow.json --format toon --env environment.ts -o workflow.toon
100
+ ecp encode workflow.json --format fluent --env environment.ts -o workflow.generated.ts
101
+ ecp decode workflow.toon --format toon --env environment.ts -o workflow.json
67
102
  ```
68
103
 
69
- This sets the **file** used by the **`dot.env`** provider for that process. It **does not** merge variables into `process.env`; use `source.provider: process.env` only for variables already in the shell/CI environment, and `source.provider: dot.env` for file-backed values.
104
+ Notes:
70
105
 
71
- If both `--environment` and `secrets.providers.dot.env.path` are set, **`--environment` wins** for that command. If the path does not exist, the CLI exits with an error.
106
+ - Fluent **decode** is not supported. Use `ecp compile` for TypeScript/Fluent source manifest.
107
+ - JSON is the canonical manifest format; other formats are optional extensions.
72
108
 
73
- ## Links
109
+ ## Related packages
74
110
 
75
- - **Docs**: [executioncontrolprotocol.io](https://executioncontrolprotocol.io)
76
- - **Repo**: `https://github.com/executioncontrolprotocol/executioncontrolprotocol`
77
- - **Issues**: `https://github.com/executioncontrolprotocol/executioncontrolprotocol/issues`
111
+ - [`@executioncontrolprotocol/core`](../core/README.md): runtime-agnostic core + fluent API
112
+ - [`@executioncontrolprotocol/node`](../runtimes/node/README.md): Node runtime host used by CLI examples
113
+ - [`@executioncontrolprotocol/types`](../types/README.md): protocol types + generated JSON Schemas
114
+ - [`@executioncontrolprotocol/mcp`](../mcp/): MCP server adapter exposing an environment to agents
package/bin/dev.js CHANGED
@@ -1,8 +1,7 @@
1
- #!/usr/bin/env -S node --loader ts-node/esm --disable-warning=ExperimentalWarning
1
+ #!/usr/bin/env node
2
2
 
3
- import {execute} from '@oclif/core'
3
+ import { execute } from "@oclif/core"
4
4
 
5
- // Suppress Node deprecation warnings (e.g. punycode -> DEP0040) so CLI output stays clean.
6
- process.noDeprecation = true;
5
+ process.noDeprecation = true
7
6
 
8
- await execute({development: true, dir: import.meta.url})
7
+ await execute({ development: true, dir: import.meta.url })
package/bin/ecp.js ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { execute } from "@oclif/core"
4
+
5
+ process.noDeprecation = true
6
+
7
+ await execute({ dir: import.meta.url })
package/bin/run.cmd CHANGED
@@ -1,3 +1,3 @@
1
1
  @echo off
2
2
 
3
- node "%~dp0\run" %*
3
+ node "%~dp0\ecp.js" %*
package/bin/run.js CHANGED
@@ -1,8 +1,4 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import {execute} from '@oclif/core'
4
-
5
- // Suppress Node deprecation warnings (e.g. punycode -> DEP0040) so CLI output stays clean.
6
- process.noDeprecation = true;
7
-
8
- await execute({dir: import.meta.url})
3
+ /** @deprecated Use `ecp.js`; kept for tests and `run.cmd`. */
4
+ import "./ecp.js"
@@ -0,0 +1,15 @@
1
+ import { Command } from "@oclif/core";
2
+ /** Compile a workflow source file to a portable JSON manifest. */
3
+ export default class Compile extends Command {
4
+ static summary: string;
5
+ static description: string;
6
+ static examples: string[];
7
+ static flags: {
8
+ output: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
+ };
10
+ static args: {
11
+ "workflow-path": import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
12
+ };
13
+ run(): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=compile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAKlD,kEAAkE;AAClE,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,MAAM,CAAC,OAAO,SAA+B;IAE7C,MAAM,CAAC,WAAW,SACoF;IAEtG,MAAM,CAAC,QAAQ,WAGd;IAED,MAAM,CAAC,KAAK;;MAMX;IAED,MAAM,CAAC,IAAI;;MAKV;IAEK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAe3B"}
@@ -0,0 +1,44 @@
1
+ import { Args, Command, Flags } from "@oclif/core";
2
+ import { compileWorkflowSource } from "@executioncontrolprotocol/core/compile";
3
+ import { readFile, writeFile } from "node:fs/promises";
4
+ import { runWithCommandError } from "../lib/command-helpers.js";
5
+ /** Compile a workflow source file to a portable JSON manifest. */
6
+ export default class Compile extends Command {
7
+ static summary = "Compile a workflow to JSON";
8
+ static description = "Bundle and evaluate a workflow module (.ts or .js), or load .json, and emit the workflow manifest.";
9
+ static examples = [
10
+ "<%= config.bin %> <%= command.id %> examples/01-echo/workflow.ts",
11
+ "<%= config.bin %> <%= command.id %> examples/01-echo/workflow.ts -o dist/workflow.json",
12
+ ];
13
+ static flags = {
14
+ ...Command.baseFlags,
15
+ output: Flags.string({
16
+ char: "o",
17
+ description: "Write manifest JSON to this file (stdout if omitted)",
18
+ }),
19
+ };
20
+ static args = {
21
+ "workflow-path": Args.string({
22
+ required: true,
23
+ description: "Workflow file (.ts, .js, or .json)",
24
+ }),
25
+ };
26
+ async run() {
27
+ const { args, flags } = await this.parse(Compile);
28
+ await runWithCommandError(this, async () => {
29
+ const input = args["workflow-path"];
30
+ const source = await readFile(input, "utf8");
31
+ const result = await compileWorkflowSource({ source, filename: input });
32
+ if (!result.ok) {
33
+ this.log(JSON.stringify(result, null, 2));
34
+ this.exit(1);
35
+ }
36
+ const json = JSON.stringify(result.manifest, null, 2);
37
+ if (flags.output)
38
+ await writeFile(flags.output, json, "utf8");
39
+ else
40
+ this.log(json);
41
+ });
42
+ }
43
+ }
44
+ //# sourceMappingURL=compile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAA;AAC9E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAE/D,kEAAkE;AAClE,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,MAAM,CAAC,OAAO,GAAG,4BAA4B,CAAA;IAE7C,MAAM,CAAC,WAAW,GAChB,oGAAoG,CAAA;IAEtG,MAAM,CAAC,QAAQ,GAAG;QAChB,kEAAkE;QAClE,wFAAwF;KACzF,CAAA;IAED,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,OAAO,CAAC,SAAS;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,sDAAsD;SACpE,CAAC;KACH,CAAA;IAED,MAAM,CAAC,IAAI,GAAG;QACZ,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC;YAC3B,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,oCAAoC;SAClD,CAAC;KACH,CAAA;IAED,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACjD,MAAM,mBAAmB,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,CAAA;YACnC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;YAC5C,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;YACvE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;gBACzC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACd,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;YACrD,IAAI,KAAK,CAAC,MAAM;gBAAE,MAAM,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;;gBACxD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC,CAAC,CAAA;IACJ,CAAC"}
@@ -1,13 +1,14 @@
1
1
  import { Command } from "@oclif/core";
2
+ /** Store an OS keychain secret. */
2
3
  export default class ConfigSecretsAdd extends Command {
3
4
  static summary: string;
5
+ static description: string;
6
+ static examples: string[];
7
+ static args: {
8
+ key: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
9
+ };
4
10
  static flags: {
5
- provider: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
6
- key: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
7
11
  value: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
- prompt: import("@oclif/core/interfaces").BooleanFlag<boolean>;
9
- global: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
- config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
12
  };
12
13
  run(): Promise<void>;
13
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../../src/commands/config/secrets/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAgB7C,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,OAAO;IACnD,MAAM,CAAC,OAAO,SAAoE;IAElF,MAAM,CAAC,KAAK;;;;;;;MAoBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAuD3B"}
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../../src/commands/config/secrets/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAUlD,mCAAmC;AACnC,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,OAAO;IACnD,MAAM,CAAC,OAAO,SAA+C;IAE7D,MAAM,CAAC,WAAW,SACsF;IAExG,MAAM,CAAC,QAAQ,WAGd;IAED,MAAM,CAAC,IAAI;;MAKV;IAED,MAAM,CAAC,KAAK;;MAKX;IAEK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA0B3B"}
@@ -1,84 +1,51 @@
1
- import { Command, Flags } from "@oclif/core";
1
+ import { Args, Command, Flags } from "@oclif/core";
2
2
  import { createInterface } from "node:readline/promises";
3
3
  import { stdin as input, stdout as output } from "node:process";
4
- import { configScopeFlags } from "../../../lib/config-flags.js";
5
- import { OS_PROVIDER_ID } from "../../../lib/secret-provider-ids.js";
6
- import { resolveDotenvPathFromConfig, resolveSecretPolicyFromConfig } from "../../../lib/secrets-config.js";
7
- import { loadConfigForDisplay } from "../../../lib/system-config-cli.js";
8
- import { canonicalSecretKeyForBinding, createDefaultSecretBroker, ECP_SECRET_REF_PROTOCOL_PREFIX, secretRefIdFromLogicalKey, } from "@executioncontrolprotocol/runtime";
4
+ import { canonicalSecretKey, ECP_SECRET_REF_PROTOCOL_PREFIX, secretRefIdFromLogicalKey, } from "@executioncontrolprotocol/secrets";
5
+ import { getCliSecretsStore } from "../../../lib/secrets/store.js";
6
+ /** Store an OS keychain secret. */
9
7
  export default class ConfigSecretsAdd extends Command {
10
- static summary = `Add or replace a secret in a provider (e.g. ${OS_PROVIDER_ID})`;
11
- static flags = {
12
- ...configScopeFlags,
13
- provider: Flags.string({
14
- char: "p",
15
- description: `Provider id (e.g. ${OS_PROVIDER_ID})`,
16
- required: true,
17
- }),
18
- key: Flags.string({
19
- char: "k",
20
- description: `Secret lookup key (e.g. GITHUB_API_KEY or server/fetch.token; ref id is ${ECP_SECRET_REF_PROTOCOL_PREFIX}<key>)`,
8
+ static summary = "Add or replace a secret in the OS keychain";
9
+ static description = "Prompts interactively for the secret value by default. Use --value for non-interactive inline input.";
10
+ static examples = [
11
+ "<%= config.bin %> <%= command.id %> server/fetch.token",
12
+ "<%= config.bin %> <%= command.id %> GITHUB_API_KEY --value ghp_xxx",
13
+ ];
14
+ static args = {
15
+ key: Args.string({
21
16
  required: true,
17
+ description: `Secret lookup key (ref id is ${ECP_SECRET_REF_PROTOCOL_PREFIX}<key>)`,
22
18
  }),
19
+ };
20
+ static flags = {
23
21
  value: Flags.string({
24
22
  char: "v",
25
- description: "Secret value (avoid in shell history; prefer --prompt)",
26
- }),
27
- prompt: Flags.boolean({
28
- description: "Read secret from stdin interactively (masked input not supported on all terminals)",
23
+ description: "Secret value inline (non-interactive; avoid in shell history)",
29
24
  }),
30
25
  };
31
26
  async run() {
32
- const { flags } = await this.parse(ConfigSecretsAdd);
33
- if (flags.value && flags.prompt) {
34
- this.error("Use only one of --value or --prompt.", { exit: 1 });
35
- }
36
- if (!flags.value && !flags.prompt) {
37
- this.error("Provide --value or --prompt.", { exit: 1 });
38
- }
39
- const cwd = process.cwd();
40
- const { config } = loadConfigForDisplay({
41
- global: flags.global,
42
- cwd,
43
- explicit: flags.config,
44
- });
45
- const dotenvPath = resolveDotenvPathFromConfig(cwd, config);
46
- const { registry } = createDefaultSecretBroker({
47
- policy: resolveSecretPolicyFromConfig(config),
48
- dotenvPath,
49
- cwd,
50
- });
51
- const provider = registry.get(flags.provider);
52
- if (!provider) {
53
- this.error(`Unknown provider "${flags.provider}".`, { exit: 1 });
54
- }
55
- if (!provider.store) {
56
- this.error(`Provider "${flags.provider}" does not support store (read-only).`, { exit: 1 });
57
- }
58
- const available = await provider.isAvailable();
27
+ const { args, flags } = await this.parse(ConfigSecretsAdd);
28
+ const store = getCliSecretsStore();
29
+ const available = await store.isAvailable();
59
30
  if (!available) {
60
- this.error(`Provider "${flags.provider}" is not available on this system.`, { exit: 1 });
31
+ this.error("OS keychain is not available on this system.", { exit: 1 });
61
32
  }
62
- let value = flags.value ?? "";
63
- if (flags.prompt) {
33
+ let value = flags.value;
34
+ if (value === undefined) {
64
35
  const rl = createInterface({ input, output });
65
36
  try {
66
- value = (await rl.question("Secret value: ")).trim();
37
+ value = (await rl.question("Paste secret value: ")).trim();
67
38
  }
68
39
  finally {
69
- await rl.close();
40
+ rl.close();
41
+ }
42
+ if (!value) {
43
+ this.error("Secret value cannot be empty.", { exit: 1 });
70
44
  }
71
45
  }
72
- if (!value) {
73
- this.error("Empty secret.", { exit: 1 });
74
- }
75
- const ref = {
76
- id: secretRefIdFromLogicalKey(flags.key),
77
- provider: flags.provider,
78
- key: canonicalSecretKeyForBinding(flags.key),
79
- };
80
- await provider.store({ ref, value });
81
- this.log(`Stored secret for provider "${flags.provider}" key "${flags.key}".`);
46
+ const key = canonicalSecretKey(args.key);
47
+ await store.set(key, value);
48
+ this.log(`Stored secret "${key}" (${secretRefIdFromLogicalKey(key)}).`);
82
49
  }
83
50
  }
84
51
  //# sourceMappingURL=add.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../../src/commands/config/secrets/add.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../../src/commands/config/secrets/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EACL,kBAAkB,EAClB,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAElE,mCAAmC;AACnC,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,OAAO;IACnD,MAAM,CAAC,OAAO,GAAG,4CAA4C,CAAA;IAE7D,MAAM,CAAC,WAAW,GAChB,sGAAsG,CAAA;IAExG,MAAM,CAAC,QAAQ,GAAG;QAChB,wDAAwD;QACxD,oEAAoE;KACrE,CAAA;IAED,MAAM,CAAC,IAAI,GAAG;QACZ,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC;YACf,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,gCAAgC,8BAA8B,QAAQ;SACpF,CAAC;KACH,CAAA;IAED,MAAM,CAAC,KAAK,GAAG;QACb,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;YAClB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,+DAA+D;SAC7E,CAAC;KACH,CAAA;IAED,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;QAE1D,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAA;QAClC,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAA;QAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,8CAA8C,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;QACzE,CAAC;QAED,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;QACvB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;YAC7C,IAAI,CAAC;gBACH,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YAC5D,CAAC;oBAAS,CAAC;gBACT,EAAE,CAAC,KAAK,EAAE,CAAA;YACZ,CAAC;YACD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,IAAI,CAAC,KAAK,CAAC,+BAA+B,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;YAC1D,CAAC;QACH,CAAC;QAED,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACxC,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAC3B,IAAI,CAAC,GAAG,CAAC,kBAAkB,GAAG,MAAM,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACzE,CAAC"}
@@ -1,12 +1,12 @@
1
1
  import { Command } from "@oclif/core";
2
+ /** Read an OS keychain secret. */
2
3
  export default class ConfigSecretsGet extends Command {
3
4
  static summary: string;
5
+ static args: {
6
+ key: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
7
+ };
4
8
  static flags: {
5
- provider: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
6
- key: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
7
- show: import("@oclif/core/interfaces").BooleanFlag<boolean>;
8
- global: import("@oclif/core/interfaces").BooleanFlag<boolean>;
9
- config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
+ reveal: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
10
  };
11
11
  run(): Promise<void>;
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../src/commands/config/secrets/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAY7C,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,OAAO;IACnD,MAAM,CAAC,OAAO,SAAyC;IAEvD,MAAM,CAAC,KAAK;;;;;;MAeV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAwC3B"}
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../src/commands/config/secrets/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAA;AAQlD,kCAAkC;AAClC,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,OAAO;IACnD,MAAM,CAAC,OAAO,SAAwC;IAEtD,MAAM,CAAC,IAAI;;MAKV;IAED,MAAM,CAAC,KAAK;;MAIX;IAEK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAoB3B"}
@@ -1,63 +1,38 @@
1
- import { Command, Flags } from "@oclif/core";
2
- import { configScopeFlags } from "../../../lib/config-flags.js";
3
- import { resolveDotenvPathFromConfig, resolveSecretPolicyFromConfig } from "../../../lib/secrets-config.js";
4
- import { loadConfigForDisplay } from "../../../lib/system-config-cli.js";
5
- import { canonicalSecretKeyForBinding, createDefaultSecretBroker, ECP_SECRET_REF_PROTOCOL_PREFIX, secretRefIdFromLogicalKey, } from "@executioncontrolprotocol/runtime";
1
+ import { Args, Command, Flags } from "@oclif/core";
2
+ import { canonicalSecretKey, ECP_SECRET_REF_PROTOCOL_PREFIX, redactSecret, } from "@executioncontrolprotocol/secrets";
3
+ import { getCliSecretsStore } from "../../../lib/secrets/store.js";
4
+ /** Read an OS keychain secret. */
6
5
  export default class ConfigSecretsGet extends Command {
7
6
  static summary = "Read a secret (redacted by default)";
8
- static flags = {
9
- ...configScopeFlags,
10
- provider: Flags.string({
11
- char: "p",
12
- description: "Provider id",
13
- required: true,
14
- }),
15
- key: Flags.string({
16
- char: "k",
17
- description: `Lookup key (same form as add; ref id is ${ECP_SECRET_REF_PROTOCOL_PREFIX}<key>)`,
7
+ static args = {
8
+ key: Args.string({
18
9
  required: true,
10
+ description: `Lookup key (ref id is ${ECP_SECRET_REF_PROTOCOL_PREFIX}<key>)`,
19
11
  }),
20
- show: Flags.boolean({
12
+ };
13
+ static flags = {
14
+ reveal: Flags.boolean({
21
15
  description: "Print full value (writes to stdout — avoid logs)",
22
16
  }),
23
17
  };
24
18
  async run() {
25
- const { flags } = await this.parse(ConfigSecretsGet);
26
- const cwd = process.cwd();
27
- const { config } = loadConfigForDisplay({
28
- global: flags.global,
29
- cwd,
30
- explicit: flags.config,
31
- });
32
- const dotenvPath = resolveDotenvPathFromConfig(cwd, config);
33
- const { registry } = createDefaultSecretBroker({
34
- policy: resolveSecretPolicyFromConfig(config),
35
- dotenvPath,
36
- cwd,
37
- });
38
- const provider = registry.get(flags.provider);
39
- if (!provider) {
40
- this.error(`Unknown provider "${flags.provider}".`, { exit: 1 });
41
- }
42
- const available = await provider.isAvailable();
19
+ const { args, flags } = await this.parse(ConfigSecretsGet);
20
+ const store = getCliSecretsStore();
21
+ const available = await store.isAvailable();
43
22
  if (!available) {
44
- this.error(`Provider "${flags.provider}" is not available.`, { exit: 1 });
23
+ this.error("OS keychain is not available on this system.", { exit: 1 });
45
24
  }
46
- const ref = {
47
- id: secretRefIdFromLogicalKey(flags.key),
48
- provider: flags.provider,
49
- key: canonicalSecretKeyForBinding(flags.key),
50
- };
51
- const result = await provider.load(ref);
52
- if (!result) {
53
- this.error(`No secret for key "${flags.key}".`, { exit: 1 });
25
+ const key = canonicalSecretKey(args.key);
26
+ const value = await store.get(key);
27
+ if (value == null) {
28
+ this.error(`No secret for key "${key}".`, { exit: 1 });
54
29
  }
55
- if (flags.show) {
30
+ if (flags.reveal) {
56
31
  this.warn("Printing full secret to stdout — ensure this is not logged or captured.");
57
- this.log(result.value);
32
+ this.log(value);
58
33
  }
59
34
  else {
60
- this.log(result.redactedPreview);
35
+ this.log(redactSecret(value));
61
36
  }
62
37
  }
63
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/commands/config/secrets/get.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/commands/config/secrets/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EACL,kBAAkB,EAClB,8BAA8B,EAC9B,YAAY,GACb,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAElE,kCAAkC;AAClC,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,OAAO;IACnD,MAAM,CAAC,OAAO,GAAG,qCAAqC,CAAA;IAEtD,MAAM,CAAC,IAAI,GAAG;QACZ,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC;YACf,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,yBAAyB,8BAA8B,QAAQ;SAC7E,CAAC;KACH,CAAA;IAED,MAAM,CAAC,KAAK,GAAG;QACb,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;YACpB,WAAW,EAAE,kDAAkD;SAChE,CAAC;KACH,CAAA;IAED,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;QAC1D,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAA;QAClC,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAA;QAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,8CAA8C,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;QACzE,CAAC;QAED,MAAM,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACxC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAClC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,sBAAsB,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;QACxD,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAA;YACpF,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACjB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC"}
@@ -1,11 +1,7 @@
1
1
  import { Command } from "@oclif/core";
2
+ /** List OS keychain secret keys. */
2
3
  export default class ConfigSecretsList extends Command {
3
4
  static summary: string;
4
- static flags: {
5
- provider: 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
5
  run(): Promise<void>;
10
6
  }
11
7
  //# sourceMappingURL=list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/commands/config/secrets/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAO7C,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,OAAO;IACpD,MAAM,CAAC,OAAO,SAAsD;IAEpE,MAAM,CAAC,KAAK;;;;MAOV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAoC3B"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/commands/config/secrets/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAGrC,oCAAoC;AACpC,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,OAAO;IACpD,MAAM,CAAC,OAAO,SAAwC;IAEhD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgB3B"}