@gluecharm-lab/easyspecs-cli 0.0.24 → 0.0.25

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/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