@eigenpal/cli 0.4.3 → 0.4.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/CHANGELOG.md +3 -1
- package/dist/cli.js +38514 -29904
- package/dist/skill/SKILL.md +86 -43
- package/dist/skill/reference/cli/agent.md +0 -4
- package/dist/skill/reference/cli/auth.md +0 -4
- package/dist/skill/reference/cli/completion.md +0 -4
- package/dist/skill/reference/cli/init.md +0 -4
- package/dist/skill/reference/cli/skill.md +0 -4
- package/dist/skill/reference/cli/status.md +0 -4
- package/dist/skill/reference/cli/workflow.md +186 -191
- package/dist/skill/reference/dataset-format.md +10 -10
- package/dist/skill/reference/debugging.md +12 -9
- package/dist/skill/reference/evaluators.md +5 -5
- package/package.json +7 -7
package/dist/skill/SKILL.md
CHANGED
|
@@ -23,15 +23,57 @@ This skill is the schema reference. The CLI does the actual work.
|
|
|
23
23
|
1. eigenpal init workflow my-extraction --template pdf-extraction
|
|
24
24
|
2. edit workflow.yaml + evaluators.yaml + dataset/examples/*/expected/output.json
|
|
25
25
|
3. eigenpal workflow validate # local: all three checks, no server contact
|
|
26
|
-
4. eigenpal workflow
|
|
27
|
-
5. eigenpal workflow
|
|
28
|
-
6. eigenpal workflow evaluators push <
|
|
29
|
-
7. eigenpal workflow dataset push <
|
|
30
|
-
8. eigenpal workflow experiment run <
|
|
31
|
-
9. eigenpal workflow experiment status <
|
|
32
|
-
10. eigenpal workflow experiment results <
|
|
26
|
+
4. eigenpal workflow push --file workflow.yaml # creates wf_… on first push
|
|
27
|
+
5. eigenpal workflow execution run my-extraction sample-name # one-off run for debugging
|
|
28
|
+
6. eigenpal workflow evaluators push <workflow-id> --file evaluators.yaml
|
|
29
|
+
7. eigenpal workflow dataset push <workflow-id> --file dataset/ --mode replace
|
|
30
|
+
8. eigenpal workflow experiment run <workflow-id> # → { batchId, executionIds }
|
|
31
|
+
9. eigenpal workflow experiment status <workflow-id> <batch-id>
|
|
32
|
+
10. eigenpal workflow experiment results <workflow-id> <batch-id> --format csv --out r.csv
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
+
> **`push` BEFORE `execution run`.** The CLI no longer ships YAML at run
|
|
36
|
+
> time — only saved workflows execute. `execution run <workflow-id>` reads
|
|
37
|
+
> the definition from the server, so any local edit to `workflow.yaml`
|
|
38
|
+
> must be `push`ed first or the run will use the previous version. If
|
|
39
|
+
> the workflow has never been pushed, `execution run` exits with
|
|
40
|
+
> `Workflow "<arg>" not found on the server. Push it first.`
|
|
41
|
+
|
|
42
|
+
## Identifying a workflow
|
|
43
|
+
|
|
44
|
+
Every command that takes `<workflow-id>` expects a **`wf_xxx` id** — the
|
|
45
|
+
opaque, server-generated identifier printed by `workflow push` and
|
|
46
|
+
`workflow list`. Stable across renames; this is the form to use in
|
|
47
|
+
scripts and CI.
|
|
48
|
+
|
|
49
|
+
As a typing convenience the workflow's slug (the YAML's `name:` field)
|
|
50
|
+
is also accepted — the CLI resolves it server-side. The resolver
|
|
51
|
+
detects the form by the `wf_` prefix:
|
|
52
|
+
|
|
53
|
+
| Argument starts with… | Looked up via |
|
|
54
|
+
| --------------------- | ------------------------------------------------- |
|
|
55
|
+
| `wf_…` | `GET /api/v1/workflows/<id>` |
|
|
56
|
+
| anything else | `GET /api/v1/workflows?name=<slug>` (exact match) |
|
|
57
|
+
|
|
58
|
+
Workflow names are constrained to `[a-z0-9][a-z0-9_-]*` (lowercase
|
|
59
|
+
letters, digits, `_`, `-`; 1–64 chars), so every slug is terminal-safe
|
|
60
|
+
and url-safe by construction — no shell quoting required.
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# Both work; prefer the id form in scripts.
|
|
64
|
+
eigenpal workflow execution run wf_abc123 sample-1
|
|
65
|
+
eigenpal workflow execution run my-extraction sample-1
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
If the workflow hasn't been pushed yet, the resolver fails fast:
|
|
69
|
+
`Workflow "<arg>" not found on the server. Push it first, or run \`eigenpal workflow list\` to see what's available.`
|
|
70
|
+
|
|
71
|
+
**Other id types — not interchangeable with workflow id:**
|
|
72
|
+
|
|
73
|
+
- `workflow execution {get,watch,cancel,compare} <executionId>` — `exec_…`
|
|
74
|
+
- `workflow experiment compare <batchA> <batchB>` — batch ids (`evb_…`)
|
|
75
|
+
- `workflow dataset example {get,update,delete} <wf-id> <exampleId>` — second positional is the example id (`evx_…`)
|
|
76
|
+
|
|
35
77
|
## Common recipes
|
|
36
78
|
|
|
37
79
|
### From zero — new workflow from a template
|
|
@@ -103,7 +145,7 @@ to retry.
|
|
|
103
145
|
eigenpal workflow experiment compare evb_old evb_new --regression-threshold 0.05
|
|
104
146
|
```
|
|
105
147
|
|
|
106
|
-
Unlike its siblings, `compare` takes no `<
|
|
148
|
+
Unlike its siblings, `compare` takes no `<workflow-id>` — the server resolves
|
|
107
149
|
the owning workflow from each batch id. Both batches must live in the
|
|
108
150
|
same workflow within your tenant. See [`reference/debugging.md`](reference/debugging.md#6-compare-two-experiment-batches)
|
|
109
151
|
for sort flags + `--json` shape.
|
|
@@ -118,7 +160,7 @@ cat packages/cli/src/skill/reference/evaluators.md # or read this skill's `ref
|
|
|
118
160
|
eigenpal workflow evaluators validate ./evaluators.yaml
|
|
119
161
|
|
|
120
162
|
# Push (overwrites the workflow's evaluator config)
|
|
121
|
-
eigenpal workflow evaluators push <
|
|
163
|
+
eigenpal workflow evaluators push <workflow-id> --file evaluators.yaml
|
|
122
164
|
```
|
|
123
165
|
|
|
124
166
|
### Build + validate + upload a dataset
|
|
@@ -128,40 +170,40 @@ eigenpal workflow evaluators push <wf-id> --file evaluators.yaml
|
|
|
128
170
|
eigenpal workflow dataset validate ./dataset # rejects bad folder names, arg-name collisions, etc.
|
|
129
171
|
|
|
130
172
|
# Push. `replace` wipes server-side examples for this workflow first; `append` adds.
|
|
131
|
-
eigenpal workflow dataset push <
|
|
173
|
+
eigenpal workflow dataset push <workflow-id> --file ./dataset --mode replace
|
|
132
174
|
# Watch the `expectedSet` count in the final NDJSON `done` event — if 0, evals run un-graded.
|
|
133
175
|
```
|
|
134
176
|
|
|
135
177
|
To inspect or round-trip the server's current dataset:
|
|
136
178
|
|
|
137
179
|
```bash
|
|
138
|
-
eigenpal workflow dataset list <
|
|
139
|
-
eigenpal workflow dataset pull <
|
|
180
|
+
eigenpal workflow dataset list <workflow-id>
|
|
181
|
+
eigenpal workflow dataset pull <workflow-id> --out current.zip # round-trip back to local
|
|
140
182
|
```
|
|
141
183
|
|
|
142
184
|
### Edit one example without re-uploading the whole dataset
|
|
143
185
|
|
|
144
186
|
```bash
|
|
145
187
|
# Inspect one example end-to-end (triggerInput + expectedOutput + metadata):
|
|
146
|
-
eigenpal workflow dataset example get <
|
|
147
|
-
eigenpal workflow dataset example get <
|
|
188
|
+
eigenpal workflow dataset example get <workflow-id> <example-id>
|
|
189
|
+
eigenpal workflow dataset example get <workflow-id> <example-id> --json | jq '.expectedOutput'
|
|
148
190
|
|
|
149
191
|
# Capture a corrected output as the new ground truth (the most common one):
|
|
150
192
|
# 1. Look at what the workflow returned
|
|
151
193
|
eigenpal workflow execution get exec_… --json | jq '.output.data' > /tmp/correct.json
|
|
152
194
|
# 2. Patch that example's expected output in place
|
|
153
|
-
eigenpal workflow dataset example update <
|
|
195
|
+
eigenpal workflow dataset example update <workflow-id> <example-id> \
|
|
154
196
|
--expected-file /tmp/correct.json
|
|
155
197
|
|
|
156
198
|
# Add one new example to a known dataset:
|
|
157
|
-
eigenpal workflow dataset example create <
|
|
199
|
+
eigenpal workflow dataset example create <workflow-id> \
|
|
158
200
|
--name missing-required-field \
|
|
159
201
|
--input-json '{"language":"en"}' \
|
|
160
202
|
--expected-file /tmp/expected.json \
|
|
161
203
|
--annotation "edge case: required field absent from input"
|
|
162
204
|
|
|
163
205
|
# Drop a bad example by id (CI requires --yes):
|
|
164
|
-
eigenpal workflow dataset example delete <
|
|
206
|
+
eigenpal workflow dataset example delete <workflow-id> <example-id> --yes
|
|
165
207
|
```
|
|
166
208
|
|
|
167
209
|
`example update` is a partial PATCH — any flag you omit is left alone. Pass
|
|
@@ -172,27 +214,28 @@ dataset folder and re-push with `dataset push --mode replace`.
|
|
|
172
214
|
|
|
173
215
|
```bash
|
|
174
216
|
# Kick off — runs every example in the dataset against every evaluator.
|
|
175
|
-
eigenpal workflow experiment run <
|
|
217
|
+
eigenpal workflow experiment run <workflow-id> # → { batchId, executionIds }
|
|
176
218
|
|
|
177
219
|
# Or restrict to one example:
|
|
178
|
-
eigenpal workflow experiment run <
|
|
220
|
+
eigenpal workflow experiment run <workflow-id> --example-id evx_…
|
|
179
221
|
|
|
180
222
|
# Poll until done. `experiment status` auto-detaches after 30 min; just re-run.
|
|
181
|
-
eigenpal workflow experiment status <
|
|
223
|
+
eigenpal workflow experiment status <workflow-id> <batch-id>
|
|
182
224
|
|
|
183
225
|
# Pull results — `--out` writes the file directly from the server's signed-URL
|
|
184
226
|
# storage, so large CSVs don't go through the CLI process.
|
|
185
|
-
eigenpal workflow experiment results <
|
|
227
|
+
eigenpal workflow experiment results <workflow-id> <batch-id> --format csv --out r.csv
|
|
186
228
|
```
|
|
187
229
|
|
|
188
230
|
### Debug a failing workflow
|
|
189
231
|
|
|
190
232
|
```bash
|
|
191
|
-
# 1.
|
|
192
|
-
|
|
233
|
+
# 1. Re-run a single example against the saved workflow (must be pushed first).
|
|
234
|
+
# <workflow-id> accepts a `wf_…` id (preferred for scripts) or the slug.
|
|
235
|
+
eigenpal workflow execution run <workflow-id> <example-name>
|
|
193
236
|
|
|
194
237
|
# 2. Or pull a recorded failure from the server
|
|
195
|
-
eigenpal workflow execution list <
|
|
238
|
+
eigenpal workflow execution list <workflow-id> --status failed --limit 5
|
|
196
239
|
eigenpal workflow execution get exec_… # full payload, all steps
|
|
197
240
|
eigenpal workflow execution get exec_… --step extract --include input,output,error
|
|
198
241
|
|
|
@@ -299,24 +342,24 @@ eigenpal status # active tenant, user, key id, workflow count
|
|
|
299
342
|
|
|
300
343
|
# Definition
|
|
301
344
|
eigenpal workflow list
|
|
302
|
-
eigenpal workflow push --file workflow.yaml [--workflow-id <
|
|
303
|
-
eigenpal workflow pull <
|
|
345
|
+
eigenpal workflow push --file workflow.yaml [--workflow-id <workflow-id>]
|
|
346
|
+
eigenpal workflow pull <workflow-id>
|
|
304
347
|
eigenpal workflow validate [path]
|
|
305
348
|
|
|
306
349
|
# Evaluators
|
|
307
|
-
eigenpal workflow evaluators push <
|
|
308
|
-
eigenpal workflow evaluators pull <
|
|
350
|
+
eigenpal workflow evaluators push <workflow-id> --file evaluators.yaml
|
|
351
|
+
eigenpal workflow evaluators pull <workflow-id>
|
|
309
352
|
eigenpal workflow evaluators validate [path]
|
|
310
353
|
|
|
311
354
|
# Dataset
|
|
312
|
-
eigenpal workflow dataset push <
|
|
313
|
-
eigenpal workflow dataset pull <
|
|
314
|
-
eigenpal workflow dataset list <
|
|
355
|
+
eigenpal workflow dataset push <workflow-id> --file dataset/ [--mode {append|replace}] # default: append
|
|
356
|
+
eigenpal workflow dataset pull <workflow-id> --out dataset.zip
|
|
357
|
+
eigenpal workflow dataset list <workflow-id>
|
|
315
358
|
eigenpal workflow dataset validate [path]
|
|
316
|
-
eigenpal workflow dataset example create <
|
|
317
|
-
eigenpal workflow dataset example update <
|
|
318
|
-
eigenpal workflow dataset example delete <
|
|
319
|
-
eigenpal workflow dataset example get <
|
|
359
|
+
eigenpal workflow dataset example create <workflow-id> --name <n> [--input-file] [--expected-file] [--annotation]
|
|
360
|
+
eigenpal workflow dataset example update <workflow-id> <example-id> [--name] [--input-file] [--expected-file] [--annotation] [--row-order]
|
|
361
|
+
eigenpal workflow dataset example delete <workflow-id> <example-id> --yes
|
|
362
|
+
eigenpal workflow dataset example get <workflow-id> <example-id> # full row + metadata
|
|
320
363
|
|
|
321
364
|
# All-in-one validation against the templated project layout
|
|
322
365
|
eigenpal workflow validate # ./workflow.yaml + ./evaluators.yaml + ./dataset/
|
|
@@ -325,10 +368,10 @@ eigenpal workflow validate # ./workflow.yaml + ./evaluators.y
|
|
|
325
368
|
eigenpal workflow clear-local # delete local execution artifacts (no server impact)
|
|
326
369
|
|
|
327
370
|
# Experiments (batch eval runs)
|
|
328
|
-
eigenpal workflow experiment run <
|
|
329
|
-
eigenpal workflow experiment status <
|
|
330
|
-
eigenpal workflow experiment results <
|
|
331
|
-
eigenpal workflow experiment list <
|
|
371
|
+
eigenpal workflow experiment run <workflow-id> [--example-id <id> ...]
|
|
372
|
+
eigenpal workflow experiment status <workflow-id> <batch-id> [--watch] # exit 1 on terminal w/ failures, 2 on --max-wait
|
|
373
|
+
eigenpal workflow experiment results <workflow-id> [batch-id] --format {csv|json} --out r.csv
|
|
374
|
+
eigenpal workflow experiment list <workflow-id>
|
|
332
375
|
eigenpal workflow experiment compare <batch-a> <batch-b> [--regression-threshold] [--sort] # no --workflow-id
|
|
333
376
|
|
|
334
377
|
# Step-type / evaluator-type introspection
|
|
@@ -341,16 +384,16 @@ eigenpal workflow evaluator-type get <type>
|
|
|
341
384
|
eigenpal workflow step exec <type> [--config-json | --config-file] [--inputs k=v...] [--output-schema]
|
|
342
385
|
|
|
343
386
|
# Execution (one-off run + read-side debugging + cancellation)
|
|
344
|
-
eigenpal workflow execution run <workflow-
|
|
387
|
+
eigenpal workflow execution run <workflow-id> [examples...]
|
|
345
388
|
eigenpal workflow execution get <exec-id>
|
|
346
|
-
eigenpal workflow execution list <
|
|
389
|
+
eigenpal workflow execution list <workflow-id> [--status running|failed|completed]
|
|
347
390
|
eigenpal workflow execution watch <exec-id> # 2s/5s adaptive polling
|
|
348
391
|
eigenpal workflow execution compare <exec-a> <exec-b>
|
|
349
392
|
eigenpal workflow execution cancel <exec-id> # tells the worker to stop between steps; safe to retry
|
|
350
393
|
|
|
351
394
|
# Versions
|
|
352
|
-
eigenpal workflow versions list <
|
|
353
|
-
eigenpal workflow versions restore <
|
|
395
|
+
eigenpal workflow versions list <workflow-id> # pushed semver history (newest first)
|
|
396
|
+
eigenpal workflow versions restore <workflow-id> <version-id> # re-activate a prior version as the live one
|
|
354
397
|
|
|
355
398
|
# Tooling
|
|
356
399
|
eigenpal skill install # interactive multiselect for Claude Code, Cursor, …
|
|
@@ -1,7 +1,3 @@
|
|
|
1
1
|
# eigenpal agent
|
|
2
2
|
|
|
3
|
-
> **Auto-generated.** This file is regenerated from the live Commander tree in
|
|
4
|
-
> `packages/cli/src/cli.ts` by `bun run --cwd packages/cli generate:cli-docs`.
|
|
5
|
-
> Do not hand-edit — your changes will be overwritten on the next run.
|
|
6
|
-
|
|
7
3
|
Agent (agentic process) operations — coming soon. Agent workflows live on the server today; CLI surface is reserved for future commands.
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
# eigenpal auth
|
|
2
2
|
|
|
3
|
-
> **Auto-generated.** This file is regenerated from the live Commander tree in
|
|
4
|
-
> `packages/cli/src/cli.ts` by `bun run --cwd packages/cli generate:cli-docs`.
|
|
5
|
-
> Do not hand-edit — your changes will be overwritten on the next run.
|
|
6
|
-
|
|
7
3
|
Manage authentication. Credentials live in ~/.config/eigenpal/credentials.json as named profiles. Switch tenants with `auth use <name>` or set `EIGENPAL_PROFILE=<name>` for one shell.
|
|
8
4
|
|
|
9
5
|
## Contents
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
# eigenpal completion
|
|
2
2
|
|
|
3
|
-
> **Auto-generated.** This file is regenerated from the live Commander tree in
|
|
4
|
-
> `packages/cli/src/cli.ts` by `bun run --cwd packages/cli generate:cli-docs`.
|
|
5
|
-
> Do not hand-edit — your changes will be overwritten on the next run.
|
|
6
|
-
|
|
7
3
|
Print a shell completion script to stdout (supported shells: bash, zsh, fish). Pipe into the appropriate completion file for your shell — see the script header for install instructions.
|
|
8
4
|
|
|
9
5
|
### Arguments
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
# eigenpal init
|
|
2
2
|
|
|
3
|
-
> **Auto-generated.** This file is regenerated from the live Commander tree in
|
|
4
|
-
> `packages/cli/src/cli.ts` by `bun run --cwd packages/cli generate:cli-docs`.
|
|
5
|
-
> Do not hand-edit — your changes will be overwritten on the next run.
|
|
6
|
-
|
|
7
3
|
Scaffold a new workflow project. Without `[name]`, scaffolds into the current directory using the cwd basename as the workflow name. With `[name]`, creates `./<name>/` and uses that as the slug. The flat layout matches what `workflow execution run <slug>` already discovers — no manual file moves.
|
|
8
4
|
|
|
9
5
|
## Contents
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
# eigenpal skill
|
|
2
2
|
|
|
3
|
-
> **Auto-generated.** This file is regenerated from the live Commander tree in
|
|
4
|
-
> `packages/cli/src/cli.ts` by `bun run --cwd packages/cli generate:cli-docs`.
|
|
5
|
-
> Do not hand-edit — your changes will be overwritten on the next run.
|
|
6
|
-
|
|
7
3
|
Install / uninstall / list the Eigenpal agent skill in your project (Claude Code, Cursor, Codex, Gemini CLI, Antigravity, OpenCode, Pi, Windsurf, GitHub Copilot).
|
|
8
4
|
|
|
9
5
|
## Contents
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
# eigenpal status
|
|
2
2
|
|
|
3
|
-
> **Auto-generated.** This file is regenerated from the live Commander tree in
|
|
4
|
-
> `packages/cli/src/cli.ts` by `bun run --cwd packages/cli generate:cli-docs`.
|
|
5
|
-
> Do not hand-edit — your changes will be overwritten on the next run.
|
|
6
|
-
|
|
7
3
|
One-shot dashboard: server, active tenant, user, key id, workflow count. Pair with `--json` for scripting.
|
|
8
4
|
|
|
9
5
|
### Options
|