@gluecharm-lab/easyspecs-cli 0.0.3 → 0.0.5

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 ADDED
@@ -0,0 +1,90 @@
1
+ # EasySpecs CLI
2
+
3
+ Headless **EasySpecs** command-line tool for **context analysis**, **diagnoses**, **macro pipelines**, **upload to EasySpecs**, **auth**, and **ACE** — the same orchestration logic as the [EasySpecs VS Code extension](https://easyspecs.ai), without an editor.
4
+
5
+ Published as **`@gluecharm-lab/easyspecs-cli`** (npm org **gluecharm-lab**; **EasySpecs** is the product). The executable on your `PATH` is **`easyspecs-cli`**.
6
+
7
+ ## Requirements
8
+
9
+ - **Node.js** ≥ 18
10
+ - **[OpenCode](https://opencode.ai)** on `PATH` for flows that run agents
11
+ - A **git repository** with **`.gluecharm/`** (SRS + context layout) when running analysis/diagnose/upload against a project
12
+
13
+ ## Install
14
+
15
+ ```bash
16
+ npm install -g @gluecharm-lab/easyspecs-cli
17
+ ```
18
+
19
+ Check:
20
+
21
+ ```bash
22
+ easyspecs-cli version
23
+ easyspecs-cli help
24
+ ```
25
+
26
+ Run without a global install:
27
+
28
+ ```bash
29
+ npx @gluecharm-lab/easyspecs-cli@latest help
30
+ ```
31
+
32
+ **Uninstall:** `npm uninstall -g @gluecharm-lab/easyspecs-cli`
33
+
34
+ ## Quick start
35
+
36
+ ```bash
37
+ cd /your/repo
38
+ easyspecs-cli doctor
39
+ easyspecs-cli doctor --inspect-config
40
+ easyspecs-cli help
41
+ ```
42
+
43
+ Use **`config init`** to create **`.easyspecs/config.json`** with defaults (add **`--overwrite`** to replace an existing file). Set **`easyspecs.easyspecsProjectId`** and **`easyspecs.defaultGitRemoteUrl`** from the shell with **`config set-project-id <id>`** and **`config set-git-remote <url>`** (each overwrites that field). Use **`--ci`** for non-interactive CI: no prompts, stricter defaults (e.g. macro outer-iteration cap). Tunables come from **`<repo>/.easyspecs/config.json`**, not `EASYSPECS_*` env overrides (**SRS-43**).
44
+
45
+ ```bash
46
+ easyspecs-cli diagnose coordination-duplicates --cwd /your/repo --ci --json
47
+ ```
48
+
49
+ ## Commands (overview)
50
+
51
+ | Area | Examples |
52
+ |------|-----------|
53
+ | **Health** | `doctor` (`--readiness`, `--inspect-config`), `version` |
54
+ | **Config** | `doctor --inspect-config` (inspect merged settings), `config init`, `config set-project-id`, `config set-git-remote` |
55
+ | **Auth** | `auth login --email … --password …`, `auth logout`, `auth status` |
56
+ | **Run synthesis** | `run synthesis`; **`run synthesis resume-missing`** / **`resume-synthesis`** |
57
+ | **Analysis** (full SRS-32 loop) | `analysis` (optional **`--upload`** after login; **`--synthesis-only`** stops after synthesis) |
58
+ | **Diagnose** | `diagnose reference-coverage`, `coordination-duplicates`, `coverage-report`, … |
59
+ | **Upload** | `upload context`, `upload republish` |
60
+ | **ACE** | `ace clear`, `ace learn`, `ace auto-learn` |
61
+
62
+ Run **`easyspecs-cli help`** and **`easyspecs-cli <command> --help`** for the full tree and flags.
63
+
64
+ ## Configuration
65
+
66
+ Primary configuration file: **`<repo>/.easyspecs/config.json`** (auto-created when needed). See **[`commands.md`](./commands.md)** for flags and merge rules. **`auth login --email … --password …`** stores tokens for upload commands (optional **`--session-path`** updates **`easyspecs.cliSessionPath`**); legacy **`--ci auth login`** can use env vars instead.
67
+
68
+ | Variable | Purpose |
69
+ |----------|---------|
70
+ | `EASYSPECS_EMAIL` / `EASYSPECS_PASSWORD` | Optional legacy with **`easyspecs-cli --ci auth login`** (when **`--email` / `--password`** omitted) |
71
+ | `EASYSPECS_EXTENSION_ROOT` | Path to an **easyspecs.ai-vsc-extension** clone (bundled resources) |
72
+ | `EASYSPECS_CLI_RESOURCES` | Override directory containing **`opencode-agents/`** (normally bundled) |
73
+ | `EASYSPECS_APPLICATION_ID` | Fallback when upload target JSON omits `application_id` |
74
+
75
+ After **`auth login`**, session data is stored at **`easyspecs.cliSessionPath`** in **`config.json`** when set (otherwise **`~/.easyspecs/cli-session.json`**). When the VS Code extension delegates with a temp session file, it passes global **`--session-path <file>`** on the spawned **`easyspecs-cli`** process.
76
+
77
+ ## Global flags
78
+
79
+ `--cwd`, `--ci`, `--json`, `--verbose`, `--api-base-url`, **`--session-path`**, `--environment`, `--promote` / `--no-promote` (see **`--help`**).
80
+
81
+ ## Source & full documentation
82
+
83
+ Built from the **easyspecs.ai-vsc-extension** monorepo:
84
+
85
+ - **Repository:** [gitlab.com/…/easyspecs.ai-vsc-extension](https://gitlab.com/glue-charm-extended/gluecharm-extended/easyspecs.ai-vsc-extension) — directory **`packages/cli`**
86
+ - **Full operator manual (install, CI examples, exit codes):** [USER-MANUAL-SRS-39.md](https://gitlab.com/glue-charm-extended/gluecharm-extended/easyspecs.ai-vsc-extension/-/blob/main/.gluecharm/docs/srs/USER-MANUAL-SRS-39.md) (same repo, `main` branch)
87
+
88
+ ## License
89
+
90
+ **MIT** — see the [extension repository](https://gitlab.com/glue-charm-extended/gluecharm-extended/easyspecs.ai-vsc-extension) for the full license file.