@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 +90 -0
- package/dist/main.cjs +1436 -723
- package/dist/main.cjs.map +4 -4
- package/package.json +3 -2
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.
|