@executioncontrolprotocol/cli 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/README.md +57 -2
  2. package/dist/commands/config/endpoints/add.d.ts +14 -0
  3. package/dist/commands/config/endpoints/add.d.ts.map +1 -0
  4. package/dist/commands/config/endpoints/add.js +29 -0
  5. package/dist/commands/config/endpoints/add.js.map +1 -0
  6. package/dist/commands/config/endpoints/get.d.ts +10 -0
  7. package/dist/commands/config/endpoints/get.d.ts.map +1 -0
  8. package/dist/commands/config/endpoints/get.js +35 -0
  9. package/dist/commands/config/endpoints/get.js.map +1 -0
  10. package/dist/commands/config/endpoints/remove.d.ts +13 -0
  11. package/dist/commands/config/endpoints/remove.d.ts.map +1 -0
  12. package/dist/commands/config/endpoints/remove.js +25 -0
  13. package/dist/commands/config/endpoints/remove.js.map +1 -0
  14. package/dist/commands/config/endpoints/update.d.ts +15 -0
  15. package/dist/commands/config/endpoints/update.d.ts.map +1 -0
  16. package/dist/commands/config/endpoints/update.js +36 -0
  17. package/dist/commands/config/endpoints/update.js.map +1 -0
  18. package/dist/commands/config/get.d.ts +11 -0
  19. package/dist/commands/config/get.d.ts.map +1 -0
  20. package/dist/commands/config/get.js +31 -0
  21. package/dist/commands/config/get.js.map +1 -0
  22. package/dist/commands/config/init.d.ts +13 -0
  23. package/dist/commands/config/init.d.ts.map +1 -0
  24. package/dist/commands/config/init.js +49 -0
  25. package/dist/commands/config/init.js.map +1 -0
  26. package/dist/commands/config/loggers/allow/add.d.ts +13 -0
  27. package/dist/commands/config/loggers/allow/add.d.ts.map +1 -0
  28. package/dist/commands/config/loggers/allow/add.js +25 -0
  29. package/dist/commands/config/loggers/allow/add.js.map +1 -0
  30. package/dist/commands/config/loggers/allow/remove.d.ts +13 -0
  31. package/dist/commands/config/loggers/allow/remove.d.ts.map +1 -0
  32. package/dist/commands/config/loggers/allow/remove.js +26 -0
  33. package/dist/commands/config/loggers/allow/remove.js.map +1 -0
  34. package/dist/commands/config/loggers/default/add.d.ts +13 -0
  35. package/dist/commands/config/loggers/default/add.d.ts.map +1 -0
  36. package/dist/commands/config/loggers/default/add.js +28 -0
  37. package/dist/commands/config/loggers/default/add.js.map +1 -0
  38. package/dist/commands/config/loggers/default/remove.d.ts +13 -0
  39. package/dist/commands/config/loggers/default/remove.d.ts.map +1 -0
  40. package/dist/commands/config/loggers/default/remove.js +25 -0
  41. package/dist/commands/config/loggers/default/remove.js.map +1 -0
  42. package/dist/commands/config/loggers/get.d.ts +10 -0
  43. package/dist/commands/config/loggers/get.d.ts.map +1 -0
  44. package/dist/commands/config/loggers/get.js +35 -0
  45. package/dist/commands/config/loggers/get.js.map +1 -0
  46. package/dist/commands/config/loggers/logger/add.d.ts +15 -0
  47. package/dist/commands/config/loggers/logger/add.d.ts.map +1 -0
  48. package/dist/commands/config/loggers/logger/add.js +55 -0
  49. package/dist/commands/config/loggers/logger/add.js.map +1 -0
  50. package/dist/commands/config/loggers/logger/get.d.ts +13 -0
  51. package/dist/commands/config/loggers/logger/get.d.ts.map +1 -0
  52. package/dist/commands/config/loggers/logger/get.js +30 -0
  53. package/dist/commands/config/loggers/logger/get.js.map +1 -0
  54. package/dist/commands/config/loggers/logger/remove.d.ts +13 -0
  55. package/dist/commands/config/loggers/logger/remove.d.ts.map +1 -0
  56. package/dist/commands/config/loggers/logger/remove.js +27 -0
  57. package/dist/commands/config/loggers/logger/remove.js.map +1 -0
  58. package/dist/commands/config/loggers/logger/update.d.ts +15 -0
  59. package/dist/commands/config/loggers/logger/update.d.ts.map +1 -0
  60. package/dist/commands/config/loggers/logger/update.js +55 -0
  61. package/dist/commands/config/loggers/logger/update.js.map +1 -0
  62. package/dist/commands/config/models/allow/add.d.ts +14 -0
  63. package/dist/commands/config/models/allow/add.d.ts.map +1 -0
  64. package/dist/commands/config/models/allow/add.js +36 -0
  65. package/dist/commands/config/models/allow/add.js.map +1 -0
  66. package/dist/commands/config/models/allow/remove.d.ts +14 -0
  67. package/dist/commands/config/models/allow/remove.d.ts.map +1 -0
  68. package/dist/commands/config/models/allow/remove.js +36 -0
  69. package/dist/commands/config/models/allow/remove.js.map +1 -0
  70. package/dist/commands/config/models/default/update.d.ts +14 -0
  71. package/dist/commands/config/models/default/update.d.ts.map +1 -0
  72. package/dist/commands/config/models/default/update.js +35 -0
  73. package/dist/commands/config/models/default/update.js.map +1 -0
  74. package/dist/commands/config/models/get.d.ts +10 -0
  75. package/dist/commands/config/models/get.d.ts.map +1 -0
  76. package/dist/commands/config/models/get.js +39 -0
  77. package/dist/commands/config/models/get.js.map +1 -0
  78. package/dist/commands/config/models/ollama/update.d.ts +13 -0
  79. package/dist/commands/config/models/ollama/update.d.ts.map +1 -0
  80. package/dist/commands/config/models/ollama/update.js +27 -0
  81. package/dist/commands/config/models/ollama/update.js.map +1 -0
  82. package/dist/commands/config/path.d.ts +12 -0
  83. package/dist/commands/config/path.d.ts.map +1 -0
  84. package/dist/commands/config/path.js +32 -0
  85. package/dist/commands/config/path.js.map +1 -0
  86. package/dist/commands/config/plugins/add.d.ts +16 -0
  87. package/dist/commands/config/plugins/add.d.ts.map +1 -0
  88. package/dist/commands/config/plugins/add.js +28 -0
  89. package/dist/commands/config/plugins/add.js.map +1 -0
  90. package/dist/commands/config/plugins/allow/add.d.ts +13 -0
  91. package/dist/commands/config/plugins/allow/add.d.ts.map +1 -0
  92. package/dist/commands/config/plugins/allow/add.js +25 -0
  93. package/dist/commands/config/plugins/allow/add.js.map +1 -0
  94. package/dist/commands/config/plugins/allow/remove.d.ts +13 -0
  95. package/dist/commands/config/plugins/allow/remove.d.ts.map +1 -0
  96. package/dist/commands/config/plugins/allow/remove.js +26 -0
  97. package/dist/commands/config/plugins/allow/remove.js.map +1 -0
  98. package/dist/commands/config/plugins/default/add.d.ts +13 -0
  99. package/dist/commands/config/plugins/default/add.d.ts.map +1 -0
  100. package/dist/commands/config/plugins/default/add.js +28 -0
  101. package/dist/commands/config/plugins/default/add.js.map +1 -0
  102. package/dist/commands/config/plugins/default/remove.d.ts +13 -0
  103. package/dist/commands/config/plugins/default/remove.d.ts.map +1 -0
  104. package/dist/commands/config/plugins/default/remove.js +25 -0
  105. package/dist/commands/config/plugins/default/remove.js.map +1 -0
  106. package/dist/commands/config/plugins/get.d.ts +10 -0
  107. package/dist/commands/config/plugins/get.d.ts.map +1 -0
  108. package/dist/commands/config/plugins/get.js +30 -0
  109. package/dist/commands/config/plugins/get.js.map +1 -0
  110. package/dist/commands/config/plugins/installs/add.d.ts +20 -0
  111. package/dist/commands/config/plugins/installs/add.d.ts.map +1 -0
  112. package/dist/commands/config/plugins/installs/add.js +51 -0
  113. package/dist/commands/config/plugins/installs/add.js.map +1 -0
  114. package/dist/commands/config/plugins/installs/list.d.ts +10 -0
  115. package/dist/commands/config/plugins/installs/list.d.ts.map +1 -0
  116. package/dist/commands/config/plugins/installs/list.js +29 -0
  117. package/dist/commands/config/plugins/installs/list.js.map +1 -0
  118. package/dist/commands/config/plugins/installs/remove.d.ts +13 -0
  119. package/dist/commands/config/plugins/installs/remove.d.ts.map +1 -0
  120. package/dist/commands/config/plugins/installs/remove.js +27 -0
  121. package/dist/commands/config/plugins/installs/remove.js.map +1 -0
  122. package/dist/commands/config/plugins/security/update.d.ts +5 -0
  123. package/dist/commands/config/plugins/security/update.d.ts.map +1 -0
  124. package/dist/commands/config/plugins/security/update.js +5 -0
  125. package/dist/commands/config/plugins/security/update.js.map +1 -0
  126. package/dist/commands/config/secrets/add.d.ts +14 -0
  127. package/dist/commands/config/secrets/add.d.ts.map +1 -0
  128. package/dist/commands/config/secrets/add.js +84 -0
  129. package/dist/commands/config/secrets/add.js.map +1 -0
  130. package/dist/commands/config/secrets/get.d.ts +13 -0
  131. package/dist/commands/config/secrets/get.d.ts.map +1 -0
  132. package/dist/commands/config/secrets/get.js +64 -0
  133. package/dist/commands/config/secrets/get.js.map +1 -0
  134. package/dist/commands/config/secrets/list.d.ts +11 -0
  135. package/dist/commands/config/secrets/list.d.ts.map +1 -0
  136. package/dist/commands/config/secrets/list.js +52 -0
  137. package/dist/commands/config/secrets/list.js.map +1 -0
  138. package/dist/commands/config/secrets/providers/doctor.d.ts +10 -0
  139. package/dist/commands/config/secrets/providers/doctor.d.ts.map +1 -0
  140. package/dist/commands/config/secrets/providers/doctor.js +40 -0
  141. package/dist/commands/config/secrets/providers/doctor.js.map +1 -0
  142. package/dist/commands/config/secrets/providers/list.d.ts +10 -0
  143. package/dist/commands/config/secrets/providers/list.d.ts.map +1 -0
  144. package/dist/commands/config/secrets/providers/list.js +31 -0
  145. package/dist/commands/config/secrets/providers/list.js.map +1 -0
  146. package/dist/commands/config/secrets/providers.d.ts +6 -0
  147. package/dist/commands/config/secrets/providers.d.ts.map +1 -0
  148. package/dist/commands/config/secrets/providers.js +9 -0
  149. package/dist/commands/config/secrets/providers.js.map +1 -0
  150. package/dist/commands/config/secrets/remove.d.ts +12 -0
  151. package/dist/commands/config/secrets/remove.d.ts.map +1 -0
  152. package/dist/commands/config/secrets/remove.js +51 -0
  153. package/dist/commands/config/secrets/remove.js.map +1 -0
  154. package/dist/commands/config/secrets/yaml/get.d.ts +11 -0
  155. package/dist/commands/config/secrets/yaml/get.d.ts.map +1 -0
  156. package/dist/commands/config/secrets/yaml/get.js +35 -0
  157. package/dist/commands/config/secrets/yaml/get.js.map +1 -0
  158. package/dist/commands/config/secrets/yaml/set-default-provider.d.ts +13 -0
  159. package/dist/commands/config/secrets/yaml/set-default-provider.d.ts.map +1 -0
  160. package/dist/commands/config/secrets/yaml/set-default-provider.js +24 -0
  161. package/dist/commands/config/secrets/yaml/set-default-provider.js.map +1 -0
  162. package/dist/commands/config/secrets/yaml/set-policy.d.ts +13 -0
  163. package/dist/commands/config/secrets/yaml/set-policy.d.ts.map +1 -0
  164. package/dist/commands/config/secrets/yaml/set-policy.js +29 -0
  165. package/dist/commands/config/secrets/yaml/set-policy.js.map +1 -0
  166. package/dist/commands/config/secrets.d.ts +8 -0
  167. package/dist/commands/config/secrets.d.ts.map +1 -0
  168. package/dist/commands/config/secrets.js +35 -0
  169. package/dist/commands/config/secrets.js.map +1 -0
  170. package/dist/commands/config/security/get.d.ts +11 -0
  171. package/dist/commands/config/security/get.d.ts.map +1 -0
  172. package/dist/commands/config/security/get.js +33 -0
  173. package/dist/commands/config/security/get.js.map +1 -0
  174. package/dist/commands/config/security/plugins/update.d.ts +13 -0
  175. package/dist/commands/config/security/plugins/update.d.ts.map +1 -0
  176. package/dist/commands/config/security/plugins/update.js +49 -0
  177. package/dist/commands/config/security/plugins/update.js.map +1 -0
  178. package/dist/commands/config/tools/add.d.ts +16 -0
  179. package/dist/commands/config/tools/add.d.ts.map +1 -0
  180. package/dist/commands/config/tools/add.js +60 -0
  181. package/dist/commands/config/tools/add.js.map +1 -0
  182. package/dist/commands/config/tools/get.d.ts +10 -0
  183. package/dist/commands/config/tools/get.d.ts.map +1 -0
  184. package/dist/commands/config/tools/get.js +29 -0
  185. package/dist/commands/config/tools/get.js.map +1 -0
  186. package/dist/commands/config/tools/remove.d.ts +13 -0
  187. package/dist/commands/config/tools/remove.d.ts.map +1 -0
  188. package/dist/commands/config/tools/remove.js +25 -0
  189. package/dist/commands/config/tools/remove.js.map +1 -0
  190. package/dist/commands/config/tools/update.d.ts +16 -0
  191. package/dist/commands/config/tools/update.d.ts.map +1 -0
  192. package/dist/commands/config/tools/update.js +59 -0
  193. package/dist/commands/config/tools/update.js.map +1 -0
  194. package/dist/commands/config.d.ts +8 -0
  195. package/dist/commands/config.d.ts.map +1 -0
  196. package/dist/commands/config.js +43 -0
  197. package/dist/commands/config.js.map +1 -0
  198. package/dist/commands/graph.d.ts +3 -2
  199. package/dist/commands/graph.d.ts.map +1 -1
  200. package/dist/commands/graph.js +5 -2
  201. package/dist/commands/graph.js.map +1 -1
  202. package/dist/commands/run.d.ts +6 -7
  203. package/dist/commands/run.d.ts.map +1 -1
  204. package/dist/commands/run.js +114 -100
  205. package/dist/commands/run.js.map +1 -1
  206. package/dist/commands/trace/list.d.ts +3 -2
  207. package/dist/commands/trace/list.d.ts.map +1 -1
  208. package/dist/commands/trace/list.js +8 -8
  209. package/dist/commands/trace/list.js.map +1 -1
  210. package/dist/commands/trace.d.ts +3 -2
  211. package/dist/commands/trace.d.ts.map +1 -1
  212. package/dist/commands/trace.js +5 -2
  213. package/dist/commands/trace.js.map +1 -1
  214. package/dist/commands/validate.d.ts +3 -2
  215. package/dist/commands/validate.d.ts.map +1 -1
  216. package/dist/commands/validate.js +7 -3
  217. package/dist/commands/validate.js.map +1 -1
  218. package/dist/lib/command-helpers.d.ts +16 -0
  219. package/dist/lib/command-helpers.d.ts.map +1 -0
  220. package/dist/lib/command-helpers.js +27 -0
  221. package/dist/lib/command-helpers.js.map +1 -0
  222. package/dist/lib/config-flags.d.ts +6 -0
  223. package/dist/lib/config-flags.d.ts.map +1 -0
  224. package/dist/lib/config-flags.js +14 -0
  225. package/dist/lib/config-flags.js.map +1 -0
  226. package/dist/lib/default-ecp-config.d.ts +5 -0
  227. package/dist/lib/default-ecp-config.d.ts.map +1 -0
  228. package/dist/lib/default-ecp-config.js +47 -0
  229. package/dist/lib/default-ecp-config.js.map +1 -0
  230. package/dist/lib/ecp-environment-command.d.ts +20 -0
  231. package/dist/lib/ecp-environment-command.d.ts.map +1 -0
  232. package/dist/lib/ecp-environment-command.js +33 -0
  233. package/dist/lib/ecp-environment-command.js.map +1 -0
  234. package/dist/lib/parsing.d.ts.map +1 -1
  235. package/dist/lib/parsing.js +2 -2
  236. package/dist/lib/parsing.js.map +1 -1
  237. package/dist/lib/progress.d.ts +1 -1
  238. package/dist/lib/secret-provider-ids.d.ts +3 -0
  239. package/dist/lib/secret-provider-ids.d.ts.map +1 -0
  240. package/dist/lib/secret-provider-ids.js +3 -0
  241. package/dist/lib/secret-provider-ids.js.map +1 -0
  242. package/dist/lib/secrets-config.d.ts +15 -0
  243. package/dist/lib/secrets-config.d.ts.map +1 -0
  244. package/dist/lib/secrets-config.js +12 -0
  245. package/dist/lib/secrets-config.js.map +1 -0
  246. package/dist/lib/system-config-cli.d.ts +50 -0
  247. package/dist/lib/system-config-cli.d.ts.map +1 -0
  248. package/dist/lib/system-config-cli.js +108 -0
  249. package/dist/lib/system-config-cli.js.map +1 -0
  250. package/package.json +4 -3
package/README.md CHANGED
@@ -1,6 +1,10 @@
1
1
  # `@executioncontrolprotocol/cli`
2
2
 
3
- Command-line interface for **Execution Control Protocol (ECP)**.
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.
4
+
5
+ **Learn more:** [executioncontrolprotocol.io](https://executioncontrolprotocol.io)
6
+
7
+ This package is the **command-line interface** for validating and running Contexts.
4
8
 
5
9
  ## Install
6
10
 
@@ -13,10 +17,61 @@ npm install -g @executioncontrolprotocol/cli
13
17
  ```bash
14
18
  ecp --help
15
19
  ecp validate path/to/context.yaml
16
- ecp run path/to/context.yaml --enable openai -i topic="Hello"
20
+ ecp run path/to/context.yaml -i topic="Hello"
21
+ ```
22
+
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
39
+ ```
40
+
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`**.
42
+
43
+ YAML and JSON are supported; defaults are searched in order: `./ecp.config.yaml`, `./ecp.config.json`, then `~/.ecp/`.
44
+
45
+ ## Secrets and environment files
46
+
47
+ ECP separates **where** a secret is loaded from using **provider ids** in `tools.servers.<name>.credentials.bindings[].source`:
48
+
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). |
54
+
55
+ Bindings use **plain keys** (e.g. `GITHUB_PAT`, `server/fetch.token`) in `source.key`. Values are never stored in Context YAML—only references.
56
+
57
+ ### `ecp config secrets`
58
+
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`).
60
+
61
+ ### `--environment` (runtime commands only)
62
+
63
+ On **`ecp run`**, **`ecp validate`**, **`ecp trace`**, **`ecp trace list`**, and **`ecp graph`**, you can pass:
64
+
65
+ ```bash
66
+ ecp run context.yaml --environment ./.env.local
17
67
  ```
18
68
 
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.
70
+
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.
72
+
19
73
  ## Links
20
74
 
75
+ - **Docs**: [executioncontrolprotocol.io](https://executioncontrolprotocol.io)
21
76
  - **Repo**: `https://github.com/executioncontrolprotocol/executioncontrolprotocol`
22
77
  - **Issues**: `https://github.com/executioncontrolprotocol/executioncontrolprotocol/issues`
@@ -0,0 +1,14 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,29 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,10 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,35 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,13 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,25 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,15 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,36 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,11 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,31 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,13 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,49 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,13 @@
1
+ import { Command } from "@oclif/core";
2
+ export default class ConfigLoggersAllowAdd extends Command {
3
+ static summary: string;
4
+ static args: {
5
+ id: 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=add.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../../../src/commands/config/loggers/allow/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAE,MAAM,aAAa,CAAC;AAU5C,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,OAAO;IACxD,MAAM,CAAC,OAAO,SAAqD;IAEnE,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;MAA2B;IAEjC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgB3B"}
@@ -0,0 +1,25 @@
1
+ import { Args, Command } from "@oclif/core";
2
+ import { configScopeFlags } from "../../../../lib/config-flags.js";
3
+ import { addUnique, persistConfig, readForMutation, touchSecurity, } from "../../../../lib/system-config-cli.js";
4
+ export default class ConfigLoggersAllowAdd extends Command {
5
+ static summary = "Add a logger ID to security.loggers.allowEnable";
6
+ static args = {
7
+ id: Args.string({ required: true, description: "Logger ID" }),
8
+ };
9
+ static flags = { ...configScopeFlags };
10
+ async run() {
11
+ const { args, flags } = await this.parse(ConfigLoggersAllowAdd);
12
+ const cwd = process.cwd();
13
+ const { path, config } = readForMutation({
14
+ global: flags.global,
15
+ cwd,
16
+ explicit: flags.config,
17
+ });
18
+ const sec = touchSecurity(config);
19
+ sec.loggers ??= {};
20
+ sec.loggers.allowEnable = addUnique(sec.loggers.allowEnable, args.id);
21
+ persistConfig(path, config);
22
+ this.log(`Updated security.loggers.allowEnable (${path}): ${sec.loggers.allowEnable?.join(", ")}`);
23
+ }
24
+ }
25
+ //# sourceMappingURL=add.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../../../src/commands/config/loggers/allow/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EACL,SAAS,EACT,aAAa,EACb,eAAe,EACf,aAAa,GACd,MAAM,sCAAsC,CAAC;AAE9C,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,OAAO;IACxD,MAAM,CAAC,OAAO,GAAG,iDAAiD,CAAC;IAEnE,MAAM,CAAC,IAAI,GAAG;QACZ,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;KAC9D,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,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAClC,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC;QACnB,GAAG,CAAC,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAEtE,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,yCAAyC,IAAI,MAAM,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrG,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { Command } from "@oclif/core";
2
+ export default class ConfigLoggersAllowRemove extends Command {
3
+ static summary: string;
4
+ static args: {
5
+ id: 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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../../../src/commands/config/loggers/allow/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAE,MAAM,aAAa,CAAC;AAU5C,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,OAAO;IAC3D,MAAM,CAAC,OAAO,SAA0D;IAExE,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;MAA2B;IAEjC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAiB3B"}
@@ -0,0 +1,26 @@
1
+ import { Args, Command } from "@oclif/core";
2
+ import { configScopeFlags } from "../../../../lib/config-flags.js";
3
+ import { persistConfig, readForMutation, removeId, touchSecurity, } from "../../../../lib/system-config-cli.js";
4
+ export default class ConfigLoggersAllowRemove extends Command {
5
+ static summary = "Remove a logger ID from security.loggers.allowEnable";
6
+ static args = {
7
+ id: Args.string({ required: true, description: "Logger ID" }),
8
+ };
9
+ static flags = { ...configScopeFlags };
10
+ async run() {
11
+ const { args, flags } = await this.parse(ConfigLoggersAllowRemove);
12
+ const cwd = process.cwd();
13
+ const { path, config } = readForMutation({
14
+ global: flags.global,
15
+ cwd,
16
+ explicit: flags.config,
17
+ });
18
+ const sec = touchSecurity(config);
19
+ sec.loggers ??= {};
20
+ sec.loggers.allowEnable = removeId(sec.loggers.allowEnable, args.id);
21
+ sec.loggers.defaultEnable = removeId(sec.loggers.defaultEnable, args.id);
22
+ persistConfig(path, config);
23
+ this.log(`Removed "${args.id}" from logger allow/default lists. ${path}`);
24
+ }
25
+ }
26
+ //# sourceMappingURL=remove.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../../../src/commands/config/loggers/allow/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EACL,aAAa,EACb,eAAe,EACf,QAAQ,EACR,aAAa,GACd,MAAM,sCAAsC,CAAC;AAE9C,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,OAAO;IAC3D,MAAM,CAAC,OAAO,GAAG,sDAAsD,CAAC;IAExE,MAAM,CAAC,IAAI,GAAG;QACZ,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;KAC9D,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,wBAAwB,CAAC,CAAC;QACnE,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,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAClC,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC;QACnB,GAAG,CAAC,OAAO,CAAC,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACrE,GAAG,CAAC,OAAO,CAAC,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAEzE,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,EAAE,sCAAsC,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { Command } from "@oclif/core";
2
+ export default class ConfigLoggersDefaultAdd extends Command {
3
+ static summary: string;
4
+ static args: {
5
+ id: 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=add.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../../../src/commands/config/loggers/default/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAE,MAAM,aAAa,CAAC;AAU5C,MAAM,CAAC,OAAO,OAAO,uBAAwB,SAAQ,OAAO;IAC1D,MAAM,CAAC,OAAO,SAAuD;IAErE,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;MAA2B;IAEjC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAmB3B"}
@@ -0,0 +1,28 @@
1
+ import { Args, Command } from "@oclif/core";
2
+ import { configScopeFlags } from "../../../../lib/config-flags.js";
3
+ import { addUnique, persistConfig, readForMutation, touchSecurity, } from "../../../../lib/system-config-cli.js";
4
+ export default class ConfigLoggersDefaultAdd extends Command {
5
+ static summary = "Add a logger ID to security.loggers.defaultEnable";
6
+ static args = {
7
+ id: Args.string({ required: true, description: "Logger ID" }),
8
+ };
9
+ static flags = { ...configScopeFlags };
10
+ async run() {
11
+ const { args, flags } = await this.parse(ConfigLoggersDefaultAdd);
12
+ const cwd = process.cwd();
13
+ const { path, config } = readForMutation({
14
+ global: flags.global,
15
+ cwd,
16
+ explicit: flags.config,
17
+ });
18
+ const sec = touchSecurity(config);
19
+ sec.loggers ??= {};
20
+ sec.loggers.defaultEnable = addUnique(sec.loggers.defaultEnable, args.id);
21
+ if (sec.loggers.allowEnable && sec.loggers.allowEnable.length > 0) {
22
+ sec.loggers.allowEnable = addUnique(sec.loggers.allowEnable, args.id);
23
+ }
24
+ persistConfig(path, config);
25
+ this.log(`Updated security.loggers.defaultEnable (${path}): ${sec.loggers.defaultEnable?.join(", ")}`);
26
+ }
27
+ }
28
+ //# sourceMappingURL=add.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../../../src/commands/config/loggers/default/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EACL,SAAS,EACT,aAAa,EACb,eAAe,EACf,aAAa,GACd,MAAM,sCAAsC,CAAC;AAE9C,MAAM,CAAC,OAAO,OAAO,uBAAwB,SAAQ,OAAO;IAC1D,MAAM,CAAC,OAAO,GAAG,mDAAmD,CAAC;IAErE,MAAM,CAAC,IAAI,GAAG;QACZ,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;KAC9D,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,uBAAuB,CAAC,CAAC;QAClE,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,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAClC,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC;QACnB,GAAG,CAAC,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1E,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClE,GAAG,CAAC,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,2CAA2C,IAAI,MAAM,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzG,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { Command } from "@oclif/core";
2
+ export default class ConfigLoggersDefaultRemove extends Command {
3
+ static summary: string;
4
+ static args: {
5
+ id: 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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../../../src/commands/config/loggers/default/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAE,MAAM,aAAa,CAAC;AAU5C,MAAM,CAAC,OAAO,OAAO,0BAA2B,SAAQ,OAAO;IAC7D,MAAM,CAAC,OAAO,SAA4D;IAE1E,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,KAAK;;;MAA2B;IAEjC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAkB3B"}