@executioncontrolprotocol/cli 0.4.0 → 0.4.2
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.
- package/README.md +57 -2
- package/dist/commands/config/endpoints/add.d.ts +14 -0
- package/dist/commands/config/endpoints/add.d.ts.map +1 -0
- package/dist/commands/config/endpoints/add.js +29 -0
- package/dist/commands/config/endpoints/add.js.map +1 -0
- package/dist/commands/config/endpoints/get.d.ts +10 -0
- package/dist/commands/config/endpoints/get.d.ts.map +1 -0
- package/dist/commands/config/endpoints/get.js +35 -0
- package/dist/commands/config/endpoints/get.js.map +1 -0
- package/dist/commands/config/endpoints/remove.d.ts +13 -0
- package/dist/commands/config/endpoints/remove.d.ts.map +1 -0
- package/dist/commands/config/endpoints/remove.js +25 -0
- package/dist/commands/config/endpoints/remove.js.map +1 -0
- package/dist/commands/config/endpoints/update.d.ts +15 -0
- package/dist/commands/config/endpoints/update.d.ts.map +1 -0
- package/dist/commands/config/endpoints/update.js +36 -0
- package/dist/commands/config/endpoints/update.js.map +1 -0
- package/dist/commands/config/get.d.ts +11 -0
- package/dist/commands/config/get.d.ts.map +1 -0
- package/dist/commands/config/get.js +31 -0
- package/dist/commands/config/get.js.map +1 -0
- package/dist/commands/config/init.d.ts +13 -0
- package/dist/commands/config/init.d.ts.map +1 -0
- package/dist/commands/config/init.js +49 -0
- package/dist/commands/config/init.js.map +1 -0
- package/dist/commands/config/loggers/allow/add.d.ts +13 -0
- package/dist/commands/config/loggers/allow/add.d.ts.map +1 -0
- package/dist/commands/config/loggers/allow/add.js +25 -0
- package/dist/commands/config/loggers/allow/add.js.map +1 -0
- package/dist/commands/config/loggers/allow/remove.d.ts +13 -0
- package/dist/commands/config/loggers/allow/remove.d.ts.map +1 -0
- package/dist/commands/config/loggers/allow/remove.js +26 -0
- package/dist/commands/config/loggers/allow/remove.js.map +1 -0
- package/dist/commands/config/loggers/default/add.d.ts +13 -0
- package/dist/commands/config/loggers/default/add.d.ts.map +1 -0
- package/dist/commands/config/loggers/default/add.js +28 -0
- package/dist/commands/config/loggers/default/add.js.map +1 -0
- package/dist/commands/config/loggers/default/remove.d.ts +13 -0
- package/dist/commands/config/loggers/default/remove.d.ts.map +1 -0
- package/dist/commands/config/loggers/default/remove.js +25 -0
- package/dist/commands/config/loggers/default/remove.js.map +1 -0
- package/dist/commands/config/loggers/get.d.ts +10 -0
- package/dist/commands/config/loggers/get.d.ts.map +1 -0
- package/dist/commands/config/loggers/get.js +35 -0
- package/dist/commands/config/loggers/get.js.map +1 -0
- package/dist/commands/config/loggers/logger/add.d.ts +15 -0
- package/dist/commands/config/loggers/logger/add.d.ts.map +1 -0
- package/dist/commands/config/loggers/logger/add.js +55 -0
- package/dist/commands/config/loggers/logger/add.js.map +1 -0
- package/dist/commands/config/loggers/logger/get.d.ts +13 -0
- package/dist/commands/config/loggers/logger/get.d.ts.map +1 -0
- package/dist/commands/config/loggers/logger/get.js +30 -0
- package/dist/commands/config/loggers/logger/get.js.map +1 -0
- package/dist/commands/config/loggers/logger/remove.d.ts +13 -0
- package/dist/commands/config/loggers/logger/remove.d.ts.map +1 -0
- package/dist/commands/config/loggers/logger/remove.js +27 -0
- package/dist/commands/config/loggers/logger/remove.js.map +1 -0
- package/dist/commands/config/loggers/logger/update.d.ts +15 -0
- package/dist/commands/config/loggers/logger/update.d.ts.map +1 -0
- package/dist/commands/config/loggers/logger/update.js +55 -0
- package/dist/commands/config/loggers/logger/update.js.map +1 -0
- package/dist/commands/config/models/allow/add.d.ts +14 -0
- package/dist/commands/config/models/allow/add.d.ts.map +1 -0
- package/dist/commands/config/models/allow/add.js +36 -0
- package/dist/commands/config/models/allow/add.js.map +1 -0
- package/dist/commands/config/models/allow/remove.d.ts +14 -0
- package/dist/commands/config/models/allow/remove.d.ts.map +1 -0
- package/dist/commands/config/models/allow/remove.js +36 -0
- package/dist/commands/config/models/allow/remove.js.map +1 -0
- package/dist/commands/config/models/default/update.d.ts +14 -0
- package/dist/commands/config/models/default/update.d.ts.map +1 -0
- package/dist/commands/config/models/default/update.js +35 -0
- package/dist/commands/config/models/default/update.js.map +1 -0
- package/dist/commands/config/models/get.d.ts +10 -0
- package/dist/commands/config/models/get.d.ts.map +1 -0
- package/dist/commands/config/models/get.js +39 -0
- package/dist/commands/config/models/get.js.map +1 -0
- package/dist/commands/config/models/ollama/update.d.ts +13 -0
- package/dist/commands/config/models/ollama/update.d.ts.map +1 -0
- package/dist/commands/config/models/ollama/update.js +27 -0
- package/dist/commands/config/models/ollama/update.js.map +1 -0
- package/dist/commands/config/path.d.ts +12 -0
- package/dist/commands/config/path.d.ts.map +1 -0
- package/dist/commands/config/path.js +32 -0
- package/dist/commands/config/path.js.map +1 -0
- package/dist/commands/config/plugins/add.d.ts +16 -0
- package/dist/commands/config/plugins/add.d.ts.map +1 -0
- package/dist/commands/config/plugins/add.js +28 -0
- package/dist/commands/config/plugins/add.js.map +1 -0
- package/dist/commands/config/plugins/allow/add.d.ts +13 -0
- package/dist/commands/config/plugins/allow/add.d.ts.map +1 -0
- package/dist/commands/config/plugins/allow/add.js +25 -0
- package/dist/commands/config/plugins/allow/add.js.map +1 -0
- package/dist/commands/config/plugins/allow/remove.d.ts +13 -0
- package/dist/commands/config/plugins/allow/remove.d.ts.map +1 -0
- package/dist/commands/config/plugins/allow/remove.js +26 -0
- package/dist/commands/config/plugins/allow/remove.js.map +1 -0
- package/dist/commands/config/plugins/default/add.d.ts +13 -0
- package/dist/commands/config/plugins/default/add.d.ts.map +1 -0
- package/dist/commands/config/plugins/default/add.js +28 -0
- package/dist/commands/config/plugins/default/add.js.map +1 -0
- package/dist/commands/config/plugins/default/remove.d.ts +13 -0
- package/dist/commands/config/plugins/default/remove.d.ts.map +1 -0
- package/dist/commands/config/plugins/default/remove.js +25 -0
- package/dist/commands/config/plugins/default/remove.js.map +1 -0
- package/dist/commands/config/plugins/get.d.ts +10 -0
- package/dist/commands/config/plugins/get.d.ts.map +1 -0
- package/dist/commands/config/plugins/get.js +30 -0
- package/dist/commands/config/plugins/get.js.map +1 -0
- package/dist/commands/config/plugins/installs/add.d.ts +20 -0
- package/dist/commands/config/plugins/installs/add.d.ts.map +1 -0
- package/dist/commands/config/plugins/installs/add.js +51 -0
- package/dist/commands/config/plugins/installs/add.js.map +1 -0
- package/dist/commands/config/plugins/installs/list.d.ts +10 -0
- package/dist/commands/config/plugins/installs/list.d.ts.map +1 -0
- package/dist/commands/config/plugins/installs/list.js +29 -0
- package/dist/commands/config/plugins/installs/list.js.map +1 -0
- package/dist/commands/config/plugins/installs/remove.d.ts +13 -0
- package/dist/commands/config/plugins/installs/remove.d.ts.map +1 -0
- package/dist/commands/config/plugins/installs/remove.js +27 -0
- package/dist/commands/config/plugins/installs/remove.js.map +1 -0
- package/dist/commands/config/plugins/security/update.d.ts +5 -0
- package/dist/commands/config/plugins/security/update.d.ts.map +1 -0
- package/dist/commands/config/plugins/security/update.js +5 -0
- package/dist/commands/config/plugins/security/update.js.map +1 -0
- package/dist/commands/config/secrets/add.d.ts +14 -0
- package/dist/commands/config/secrets/add.d.ts.map +1 -0
- package/dist/commands/config/secrets/add.js +84 -0
- package/dist/commands/config/secrets/add.js.map +1 -0
- package/dist/commands/config/secrets/get.d.ts +13 -0
- package/dist/commands/config/secrets/get.d.ts.map +1 -0
- package/dist/commands/config/secrets/get.js +64 -0
- package/dist/commands/config/secrets/get.js.map +1 -0
- package/dist/commands/config/secrets/list.d.ts +11 -0
- package/dist/commands/config/secrets/list.d.ts.map +1 -0
- package/dist/commands/config/secrets/list.js +52 -0
- package/dist/commands/config/secrets/list.js.map +1 -0
- package/dist/commands/config/secrets/providers/doctor.d.ts +10 -0
- package/dist/commands/config/secrets/providers/doctor.d.ts.map +1 -0
- package/dist/commands/config/secrets/providers/doctor.js +40 -0
- package/dist/commands/config/secrets/providers/doctor.js.map +1 -0
- package/dist/commands/config/secrets/providers/list.d.ts +10 -0
- package/dist/commands/config/secrets/providers/list.d.ts.map +1 -0
- package/dist/commands/config/secrets/providers/list.js +31 -0
- package/dist/commands/config/secrets/providers/list.js.map +1 -0
- package/dist/commands/config/secrets/providers.d.ts +6 -0
- package/dist/commands/config/secrets/providers.d.ts.map +1 -0
- package/dist/commands/config/secrets/providers.js +9 -0
- package/dist/commands/config/secrets/providers.js.map +1 -0
- package/dist/commands/config/secrets/remove.d.ts +12 -0
- package/dist/commands/config/secrets/remove.d.ts.map +1 -0
- package/dist/commands/config/secrets/remove.js +51 -0
- package/dist/commands/config/secrets/remove.js.map +1 -0
- package/dist/commands/config/secrets/yaml/get.d.ts +11 -0
- package/dist/commands/config/secrets/yaml/get.d.ts.map +1 -0
- package/dist/commands/config/secrets/yaml/get.js +35 -0
- package/dist/commands/config/secrets/yaml/get.js.map +1 -0
- package/dist/commands/config/secrets/yaml/set-default-provider.d.ts +13 -0
- package/dist/commands/config/secrets/yaml/set-default-provider.d.ts.map +1 -0
- package/dist/commands/config/secrets/yaml/set-default-provider.js +24 -0
- package/dist/commands/config/secrets/yaml/set-default-provider.js.map +1 -0
- package/dist/commands/config/secrets/yaml/set-policy.d.ts +13 -0
- package/dist/commands/config/secrets/yaml/set-policy.d.ts.map +1 -0
- package/dist/commands/config/secrets/yaml/set-policy.js +29 -0
- package/dist/commands/config/secrets/yaml/set-policy.js.map +1 -0
- package/dist/commands/config/secrets.d.ts +8 -0
- package/dist/commands/config/secrets.d.ts.map +1 -0
- package/dist/commands/config/secrets.js +35 -0
- package/dist/commands/config/secrets.js.map +1 -0
- package/dist/commands/config/security/get.d.ts +11 -0
- package/dist/commands/config/security/get.d.ts.map +1 -0
- package/dist/commands/config/security/get.js +33 -0
- package/dist/commands/config/security/get.js.map +1 -0
- package/dist/commands/config/security/plugins/update.d.ts +13 -0
- package/dist/commands/config/security/plugins/update.d.ts.map +1 -0
- package/dist/commands/config/security/plugins/update.js +49 -0
- package/dist/commands/config/security/plugins/update.js.map +1 -0
- package/dist/commands/config/tools/add.d.ts +16 -0
- package/dist/commands/config/tools/add.d.ts.map +1 -0
- package/dist/commands/config/tools/add.js +60 -0
- package/dist/commands/config/tools/add.js.map +1 -0
- package/dist/commands/config/tools/get.d.ts +10 -0
- package/dist/commands/config/tools/get.d.ts.map +1 -0
- package/dist/commands/config/tools/get.js +29 -0
- package/dist/commands/config/tools/get.js.map +1 -0
- package/dist/commands/config/tools/remove.d.ts +13 -0
- package/dist/commands/config/tools/remove.d.ts.map +1 -0
- package/dist/commands/config/tools/remove.js +25 -0
- package/dist/commands/config/tools/remove.js.map +1 -0
- package/dist/commands/config/tools/update.d.ts +16 -0
- package/dist/commands/config/tools/update.d.ts.map +1 -0
- package/dist/commands/config/tools/update.js +59 -0
- package/dist/commands/config/tools/update.js.map +1 -0
- package/dist/commands/config.d.ts +8 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +43 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/graph.d.ts +3 -2
- package/dist/commands/graph.d.ts.map +1 -1
- package/dist/commands/graph.js +5 -2
- package/dist/commands/graph.js.map +1 -1
- package/dist/commands/run.d.ts +6 -7
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +114 -100
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/trace/list.d.ts +3 -2
- package/dist/commands/trace/list.d.ts.map +1 -1
- package/dist/commands/trace/list.js +8 -8
- package/dist/commands/trace/list.js.map +1 -1
- package/dist/commands/trace.d.ts +3 -2
- package/dist/commands/trace.d.ts.map +1 -1
- package/dist/commands/trace.js +5 -2
- package/dist/commands/trace.js.map +1 -1
- package/dist/commands/validate.d.ts +3 -2
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +7 -3
- package/dist/commands/validate.js.map +1 -1
- package/dist/lib/command-helpers.d.ts +16 -0
- package/dist/lib/command-helpers.d.ts.map +1 -0
- package/dist/lib/command-helpers.js +27 -0
- package/dist/lib/command-helpers.js.map +1 -0
- package/dist/lib/config-flags.d.ts +6 -0
- package/dist/lib/config-flags.d.ts.map +1 -0
- package/dist/lib/config-flags.js +14 -0
- package/dist/lib/config-flags.js.map +1 -0
- package/dist/lib/default-ecp-config.d.ts +5 -0
- package/dist/lib/default-ecp-config.d.ts.map +1 -0
- package/dist/lib/default-ecp-config.js +47 -0
- package/dist/lib/default-ecp-config.js.map +1 -0
- package/dist/lib/ecp-environment-command.d.ts +20 -0
- package/dist/lib/ecp-environment-command.d.ts.map +1 -0
- package/dist/lib/ecp-environment-command.js +33 -0
- package/dist/lib/ecp-environment-command.js.map +1 -0
- package/dist/lib/parsing.d.ts.map +1 -1
- package/dist/lib/parsing.js +2 -2
- package/dist/lib/parsing.js.map +1 -1
- package/dist/lib/progress.d.ts +1 -1
- package/dist/lib/secret-provider-ids.d.ts +3 -0
- package/dist/lib/secret-provider-ids.d.ts.map +1 -0
- package/dist/lib/secret-provider-ids.js +3 -0
- package/dist/lib/secret-provider-ids.js.map +1 -0
- package/dist/lib/secrets-config.d.ts +15 -0
- package/dist/lib/secrets-config.d.ts.map +1 -0
- package/dist/lib/secrets-config.js +12 -0
- package/dist/lib/secrets-config.js.map +1 -0
- package/dist/lib/system-config-cli.d.ts +50 -0
- package/dist/lib/system-config-cli.d.ts.map +1 -0
- package/dist/lib/system-config-cli.js +108 -0
- package/dist/lib/system-config-cli.js.map +1 -0
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
# `@executioncontrolprotocol/cli`
|
|
2
2
|
|
|
3
|
-
|
|
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
|
|
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"}
|