@gluecharm-lab/easyspecs-cli 0.0.24 → 0.0.26
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 +1 -1
- package/commands.md +21 -2
- package/dist/main.cjs +960 -425
- package/dist/main.cjs.map +4 -4
- package/error-code.md +2 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -247,7 +247,7 @@ Every command the CLI accepts, with command-specific tokens. Global flags above
|
|
|
247
247
|
| ------- | ------------------------------- | ------------------ |
|
|
248
248
|
| `help` or first token `--help` | — | Prints usage (same as **`--help`** before the command). |
|
|
249
249
|
| `version` | — | Prints the CLI package version string. |
|
|
250
|
-
| `doctor` | **`--readiness`**, **`--inspect-config`** (optional; default if none → readiness-style check) | Does **not** create **`config.json`**. **`--readiness`**: repo root, API URL, OpenCode, agents dir. **`--inspect-config`**: redacted merged settings + config JSON. Both flags together runs both. |
|
|
250
|
+
| `doctor` | **`--readiness`**, **`--inspect-config`** (optional; default if none → readiness-style check) | Does **not** create **`config.json`**. **`--readiness`**: **`cliVersion=`** (same as **`version`**), repo root, API URL, OpenCode, agents dir; **`--json`** adds **`cliVersion`** on the envelope. **`--inspect-config`**: redacted merged settings + config JSON. Both flags together runs both. |
|
|
251
251
|
| `config init` | **`--overwrite`** (optional) | Writes **`.easyspecs/config.json`** with defaults; may import legacy **`.easyspecs/cli.json`** once if present. Existing file unchanged unless **`--overwrite`**. |
|
|
252
252
|
| `config set-project-id <easyspecsProjectId>` | — | Sets **`easyspecs.easyspecsProjectId`** (creates config with defaults if missing). |
|
|
253
253
|
| `config set-git-remote <url>` | — | Sets **`easyspecs.defaultGitRemoteUrl`** (same bootstrap-if-missing behaviour). |
|
package/commands.md
CHANGED
|
@@ -68,11 +68,30 @@ Environment (stderr styling): `**NO_COLOR`** (any non-empty value) disables ANSI
|
|
|
68
68
|
|
|
69
69
|
---
|
|
70
70
|
|
|
71
|
+
## Workstation host inventory (**SRS-64** / **SRS-62**)
|
|
72
|
+
|
|
73
|
+
`**easyspecs-cli workstation info**` prints the CPU count used for the **SRS-64 §4.1** heuristic, total installed RAM, **`N_sys`** (JSON key **`maxSystemConcurrentAiWorkstations`**), and **`hostHardMaxConcurrentAi`** = **`min(N_sys, 64)`** (product agent ceiling per **SRS-62**). **macOS** (`darwin`) and **Linux** only; on other platforms the CLI exits **non-zero**, writes a short message to stderr, and does **not** print JSON on stdout (even if **`--json`** was passed).
|
|
74
|
+
|
|
75
|
+
Use the **global** **`--json`** flag (before the subcommand) for one parseable summary line. JSON includes **`totalMemBytes`**, **`platform`**, **`cpusForCap`**, **`cpusForCapSource`**, **`physicalCpus`** (integer when physical cores are known, else **`null`**), **`maxSystemConcurrentAiWorkstations`**, and **`hostHardMaxConcurrentAi`**.
|
|
76
|
+
|
|
77
|
+
This command does **not** read or create **`.easyspecs/config.json`**.
|
|
78
|
+
|
|
79
|
+
### OpenCode **`run`** diagnostics (**SRS-65**)
|
|
80
|
+
|
|
81
|
+
When Analysis (or other callers) passes a **`diagnosticLog`** sink into the extension host’s **`runOpenCodeAgent`** helper, each successful **`opencode run`** **spawn** with a real child **PID** also emits:
|
|
82
|
+
|
|
83
|
+
- **`scope=host`** — machine-wide **RAM** (**total** / **free** / **used** bytes) plus **1-minute load average**, logical **CPU** count, and **load / CPUs** (not the same metric as the **SRS-62** runtime pool **CPU guard** — see **[SRS-65](../../.gluecharm/docs/srs/srs-65.md)**).
|
|
84
|
+
- **`scope=child`** — once per run: **child CPU time** (milliseconds) and **RSS** bytes for that **PID** (**Linux**: **`/proc`**, **macOS**: **`ps`**), or **`childRssBytes=unknown`** on unsupported platforms / read errors.
|
|
85
|
+
|
|
86
|
+
Tune concurrent agents with **`easyspecs.workstations.maxConcurrentAi`**, **`applyHostConcurrencyCap`**, and **`easyspecs-cli workstation info`** (**SRS-62** / **SRS-64**); these lines help interpret **live** pressure alongside that configuration.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
71
90
|
## Shared configuration (SRS-43)
|
|
72
91
|
|
|
73
92
|
### File: `<repoRoot>/.easyspecs/config.json`
|
|
74
93
|
|
|
75
|
-
Canonical JSON created on first need (except `**help`**, `**version**`, and `**doctor**` — no auto-create). Invalid JSON fails with a clear path (**R6**). Merged documents are also validated against **SRS-46** JSON Schema (`[srs-46-config.schema.json](../../.gluecharm/docs/srs/srs-46-config.schema.json)`) — see `[USER-MANUAL-SRS-46.md](../../.gluecharm/docs/srs/USER-MANUAL-SRS-46.md)`. If `**config.json`** is missing and `**.easyspecs/cli.json**` exists, settings are imported once (**§6 M2**) into the new file.
|
|
94
|
+
Canonical JSON created on first need (except `**help`**, `**version**`, `**workstation info**`, and `**doctor**` — no auto-create). Invalid JSON fails with a clear path (**R6**). Merged documents are also validated against **SRS-46** JSON Schema (`[srs-46-config.schema.json](../../.gluecharm/docs/srs/srs-46-config.schema.json)`) — see `[USER-MANUAL-SRS-46.md](../../.gluecharm/docs/srs/USER-MANUAL-SRS-46.md)`. If `**config.json`** is missing and `**.easyspecs/cli.json**` exists, settings are imported once (**§6 M2**) into the new file.
|
|
76
95
|
|
|
77
96
|
Merge uses **this file + global CLI flags only** — no `EASYSPECS_*` / `VITE_*` product overrides on `**easyspecs-cli`** (**R34**).
|
|
78
97
|
|
|
@@ -139,7 +158,7 @@ Each row lists **command-specific CLI tokens**, then **what configuration applie
|
|
|
139
158
|
| ---------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
140
159
|
| `help`, `--help` | — | Global options only; prints usage. |
|
|
141
160
|
| `version` | — | Prints `[PKG_VERSION](../../src/cli/main.ts)` from the bundle. |
|
|
142
|
-
| `doctor` | Optional `**--readiness`**, `**--inspect-config**` | **Does not** create `config.json`. Default (no flags) = `**--readiness`**: repo root, resolved API URL, OpenCode installed/credentials, agents dir. `**--inspect-config**` alone: redacted `**merged**` + `**easyspecsConfig
|
|
161
|
+
| `doctor` | Optional `**--readiness`**, `**--inspect-config**` | **Does not** create `config.json`. Default (no flags) = `**--readiness`**: first line `**cliVersion=**` (same as **`version`** / **`--version`**), then repo root, resolved API URL, OpenCode installed/credentials, agents dir. With **`--json`**, readiness adds top-level **`cliVersion`** (string) plus **`lines`**. `**--inspect-config**` alone: redacted `**merged**` + `**easyspecsConfig**` (no **`cliVersion`** line). `**--readiness --inspect-config**`: both. Global flags apply (`**--cwd**`, `**--ci**`, `**--api-base-url**`, `**--session-path**`, `**--environment**`, `**--promote**` / `**--no-promote**`). |
|
|
143
162
|
| `config init` | Optional `**--overwrite**` | Creates `**<repo>/.easyspecs/config.json**` with full defaults if missing; imports legacy `**cli.json**` / `**settings.json**` (ACE) when present, same as first-time bootstrap. If the file already exists, does nothing unless `**--overwrite**` (replaces with that bootstrap content). Does not run other commands. |
|
|
144
163
|
| `config set-project-id <id>` | — | Writes `**easyspecs.easyspecsProjectId**` to `**config.json**`, replacing any previous value. Creates `**config.json**` (defaults + legacy import) if missing. |
|
|
145
164
|
| `config set-git-remote <url>` | — | Writes `**easyspecs.defaultGitRemoteUrl**` to `**config.json**`, replacing any previous value. Same bootstrap-if-missing behaviour as `**set-project-id**`. |
|