@eigenpal/cli 0.12.2 → 0.13.1

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.
@@ -17,7 +17,10 @@ appear in user examples, but do not prefer them.
17
17
  ## Choose A Command
18
18
 
19
19
  - `eigenpal workflow` manages YAML workflow definitions, datasets, evaluators,
20
- experiments, versions, and step schemas.
20
+ experiments, versions, workspace templates, and step schemas.
21
+ - `eigenpal models list` inventories text, vision, and OCR models configured
22
+ for the current tenant environment (`--json` for scripting). Health is
23
+ `configured` or `unconfigured` from local credentials — not a live provider probe.
21
24
  - `eigenpal agents` manages Git-backed agent source packages, shared resources,
22
25
  releases, sync, secrets, datasets, and live file inspection.
23
26
  - `eigenpal run` starts a single workflow or agent run from a target. This is the
@@ -30,6 +33,8 @@ appear in user examples, but do not prefer them.
30
33
  Use stable ids in scripts:
31
34
 
32
35
  - Workflow id: `wf_...`
36
+ - Template id: `tmpl_...`
37
+ - Template revision id: `tmpr_...`
33
38
  - Workflow execution id: `evx_...`
34
39
  - Agent execution id: `aex_...`
35
40
  - Experiment batch id: `evb_...`
@@ -49,10 +54,13 @@ eigenpal workflow step-type get ai.extract --json | jq '.configSchema.properties
49
54
 
50
55
  # Validate and push.
51
56
  eigenpal workflow validate ./workflow.yaml
52
- # If the workflow has action.invoke-workflow steps, local validation cannot
53
- # resolve their targets (sibling workflows live in the server DB). Add --online
54
- # to check invoke targets, input types, and cycles before pushing.
57
+ # --online also checks action.invoke-workflow targets, transform.template
58
+ # tmpl_… ids, and explicitly selected OCR/vision/text models against live tenant
59
+ # catalog metadata. Local `template: ./file.xlsx` paths
60
+ # are inspected on disk with or without --online and must stay inside the
61
+ # workflow project unless you pass --allow-external-templates.
55
62
  eigenpal workflow validate ./workflow.yaml --online
63
+ eigenpal models list --json
56
64
  eigenpal workflow push --file workflow.yaml
57
65
 
58
66
  # Run with ad-hoc input and read the output (use this for API-triggered workflows).
@@ -80,6 +88,13 @@ eigenpal workflow evaluators push <workflow-id> --file ./evaluators.yaml
80
88
  eigenpal workflow experiment run <workflow-id>
81
89
  eigenpal workflow experiment watch <workflow-id> <batch-id>
82
90
  eigenpal workflow experiment results <workflow-id> <batch-id> --format csv --out results.csv
91
+
92
+ # Create a tagged candidate without moving live traffic, then promote it.
93
+ eigenpal workflow versions create <workflow-id> --file workflow.yaml --set-version 1.4.0 --no-activate
94
+ eigenpal workflow versions list <workflow-id>
95
+ eigenpal workflow versions promote <workflow-id> <version-id>
96
+ # Restore copies a snapshot into a new untagged current HEAD.
97
+ eigenpal workflow versions restore <workflow-id> <version-id>
83
98
  ```
84
99
 
85
100
  Folders are server metadata, not `workflow.yaml` content:
@@ -154,6 +169,75 @@ eigenpal run agents.<slug> \
154
169
  `agents file list/get/diff` are read/compare commands only. Change agent files
155
170
  through Git source, then use `agents save`, `agents release`, and `agents sync`.
156
171
 
172
+ ## Agent templates (Git source)
173
+
174
+ DOCX/XLSX templates for **runtime agents** live in Git source, not in the
175
+ workspace Templates table. YAML workflows use workspace templates via
176
+ `transform.template` and `tmpl_...` instead — see `reference/step-types.md`.
177
+
178
+ Workspace DOCX/XLSX templates for YAML workflows:
179
+
180
+ ```bash
181
+ eigenpal workflow templates upload ./templates/roster.xlsx --json
182
+ eigenpal workflow templates smoke ./templates/roster.xlsx --data ./fixture.json --out ./filled.xlsx
183
+ # YAML may keep a source path; push uploads and sends tmpl_ + tmpr_ ids.
184
+ # template: ./templates/roster.xlsx
185
+ eigenpal workflow validate ./workflow.yaml --online
186
+ eigenpal workflow push --file workflow.yaml
187
+ ```
188
+
189
+ **Local template** (one agent):
190
+
191
+ ```text
192
+ agents/<slug>/templates/<template-slug>/
193
+ template.docx # or template.xlsx
194
+ TEMPLATE.md # frontmatter: name, description, type: docx|xlsx
195
+ ```
196
+
197
+ **Shared template package** (reused across agents):
198
+
199
+ ```text
200
+ resources/templates/<template-slug>/
201
+ eigenpal.yaml # required package manifest
202
+ template.docx # or template.xlsx
203
+ TEMPLATE.md # optional metadata
204
+ ```
205
+
206
+ At runtime the agent fills templates with the baked-in **fill-template**
207
+ platform skill (`vars`, then `fill`) — not `transform.template`. Local
208
+ templates resolve by slug under `agent/templates/<slug>/`. Shared dependencies
209
+ install under `agent/eigenpal_modules/resources/templates/<slug>/`; pass that
210
+ file path to fill-template when the template is not copied locally.
211
+
212
+ ```bash
213
+ # Add or update a local template, then validate and save.
214
+ cp ./invoice.docx agents/<slug>/templates/invoice/template.docx
215
+ $EDITOR agents/<slug>/templates/invoice/TEMPLATE.md
216
+ eigenpal agents validate agents/<slug>
217
+ eigenpal agents save -m "Add invoice template"
218
+ eigenpal agents release patch agents/<slug>
219
+ eigenpal agents sync agents.<slug>
220
+
221
+ # Shared template: validate, save, and release the package.
222
+ cp ./report.xlsx resources/templates/monthly-report/template.xlsx
223
+ $EDITOR resources/templates/monthly-report/eigenpal.yaml
224
+ eigenpal agents validate resources/templates/monthly-report
225
+ eigenpal agents save -m "Add monthly report template"
226
+ eigenpal agents release patch resources/templates/monthly-report
227
+
228
+ # Consuming agent: pin an exact dependency version, then release and sync.
229
+ $EDITOR agents/<slug>/eigenpal.yaml # workspace:resources.templates.monthly-report: "1.0.0"
230
+ eigenpal agents validate agents/<slug>
231
+ eigenpal agents save -m "Use monthly report template"
232
+ eigenpal agents release patch agents/<slug>
233
+ eigenpal agents sync agents.<slug>
234
+ ```
235
+
236
+ Updating a shared template does not auto-sync dependent agents. Release the
237
+ template package, bump each consumer's exact-version dependency, then release
238
+ and sync those agents. Workspace `tmpl_...` templates are a different system —
239
+ use `eigenpal workflow templates`, not `agents save`.
240
+
157
241
  ## Shared Resource Updates
158
242
 
159
243
  Do not move every dependent agent automatically. Find dependents, ask which ones
@@ -0,0 +1,40 @@
1
+ # eigenpal models
2
+
3
+ Inspect models and providers configured for the current tenant environment (text, vision, OCR).
4
+
5
+ ## Contents
6
+
7
+ - [Surface](#surface)
8
+ - [Commands](#commands)
9
+ - [Core](#core)
10
+ - [Details](#details)
11
+ - [`eigenpal models list|ls [options]`](#eigenpal-models-listls-options)
12
+
13
+ ## Surface
14
+
15
+ ```
16
+ models
17
+ └── list|ls
18
+ ```
19
+
20
+ ## Commands
21
+
22
+ ### Core
23
+
24
+ | Command | Description |
25
+ | ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
26
+ | `eigenpal models list\|ls [options]` | List configured text, vision, and OCR models. This is a catalog inventory from the server, not a live provider health probe. `health` is `configured` or `unconfigured` from local credentials. Pair with `--json` for scripting. |
27
+
28
+ ## Details
29
+
30
+ ### `eigenpal models list|ls [options]`
31
+
32
+ List configured text, vision, and OCR models. This is a catalog inventory from the server, not a live provider health probe. `health` is `configured` or `unconfigured` from local credentials. Pair with `--json` for scripting.
33
+
34
+ ### Options
35
+
36
+ | Flag | Required | Default | Description |
37
+ | --------------------- | -------- | ------- | -------------------------------------------------------------------------- |
38
+ | `--capability <kind>` | no | | Filter to `text`, `vision`, or `ocr` (matches the API `capability` query). |
39
+ | `--base-url <url>` | no | | Server base URL |
40
+ | `--json` | no | | Output the raw server response as JSON |
@@ -21,6 +21,7 @@ Inspect, watch, and manage workflow, agent, and eval runs.
21
21
  - [`eigenpal runs cancel [options] <run-id>`](#eigenpal-runs-cancel-options-run-id)
22
22
  - [`eigenpal runs artifacts|artifact list|ls [options] <run-id>`](#eigenpal-runs-artifactsartifact-listls-options-run-id)
23
23
  - [`eigenpal runs artifacts|artifact fetch [options] <run-id>`](#eigenpal-runs-artifactsartifact-fetch-options-run-id)
24
+ - [`eigenpal runs artifacts|artifact inspect [options] [run-id] [artifact-path]`](#eigenpal-runs-artifactsartifact-inspect-options-run-id-artifact-path)
24
25
  - [`eigenpal runs reviews|rv update [options] <run-id>`](#eigenpal-runs-reviewsrv-update-options-run-id)
25
26
  - [`eigenpal runs reviews|rv close [options] <run-id>`](#eigenpal-runs-reviewsrv-close-options-run-id)
26
27
  - [`eigenpal runs reviews|rv clear [options] <run-id>`](#eigenpal-runs-reviewsrv-clear-options-run-id)
@@ -42,7 +43,8 @@ runs
42
43
  ├── promote <run-id>
43
44
  ├── artifacts|artifact
44
45
  │ ├── list|ls <run-id>
45
- │ └── fetch <run-id>
46
+ │ ├── fetch <run-id>
47
+ │ └── inspect [run-id] [artifact-path]
46
48
  ├── trace <run-id>
47
49
  ├── reviews|rv
48
50
  │ ├── update <run-id>
@@ -63,23 +65,24 @@ runs
63
65
 
64
66
  ### Core
65
67
 
66
- | Command | Description |
67
- | ------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
68
- | `eigenpal runs list\|ls [options] [source]` | List runs across workflows and agents, optionally scoped to one source. |
69
- | `eigenpal runs get [options] <run-id>` | Get one run. |
70
- | `eigenpal runs compare\|diff [options] <reference-run-id> <run-id>` | Compare one run against another run. PDF/DOCX text comparison uses pdftotext/python3 and reports byte fallbacks. |
71
- | `eigenpal runs rerun [options] <run-id>` | Create a new run from a previous run's stored input snapshot. |
72
- | `eigenpal runs promote [options] <run-id>` | Promote a run into a dataset example on the run's automation. |
73
- | `eigenpal runs trace [options] <run-id>` | Print raw trace.jsonl for a run, or write it with --out. |
74
- | `eigenpal runs watch [options] <run-id>` | Watch a run until it reaches a terminal status. |
75
- | `eigenpal runs cancel [options] <run-id>` | Cancel a run. |
68
+ | Command | Description |
69
+ | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
70
+ | `eigenpal runs list\|ls [options] [source]` | List runs across workflows and agents, optionally scoped to one source. |
71
+ | `eigenpal runs get [options] <run-id>` | Get one run. |
72
+ | `eigenpal runs compare\|diff [options] <reference-run-id> <run-id>` | Compare one run against another run. PDF/DOCX use pdftotext/python3; XLSX compares structured workbook content (not ZIP bytes). |
73
+ | `eigenpal runs rerun [options] <run-id>` | Create a new run from a previous run's stored input snapshot. |
74
+ | `eigenpal runs promote [options] <run-id>` | Promote a run into a dataset example on the run's automation. |
75
+ | `eigenpal runs trace [options] <run-id>` | Print raw trace.jsonl for a run, or write it with --out. |
76
+ | `eigenpal runs watch [options] <run-id>` | Watch a run until it reaches a terminal status. |
77
+ | `eigenpal runs cancel [options] <run-id>` | Cancel a run. |
76
78
 
77
79
  ### Artifacts
78
80
 
79
- | Command | Description |
80
- | --------------------------------------------------------------- | ------------------------------------------------------ |
81
- | `eigenpal runs artifacts\|artifact list\|ls [options] <run-id>` | List available run artifacts without downloading them. |
82
- | `eigenpal runs artifacts\|artifact fetch [options] <run-id>` | Download run artifacts by canonical artifact path. |
81
+ | Command | Description |
82
+ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------- |
83
+ | `eigenpal runs artifacts\|artifact list\|ls [options] <run-id>` | List available run artifacts without downloading them. |
84
+ | `eigenpal runs artifacts\|artifact fetch [options] <run-id>` | Download run artifacts by canonical artifact path. |
85
+ | `eigenpal runs artifacts\|artifact inspect [options] [run-id] [artifact-path]` | Inspect a run XLSX artifact as structured JSON (sheet names, headers, typed rows). Use --file for a local workbook. |
83
86
 
84
87
  ### Reviews
85
88
 
@@ -158,7 +161,7 @@ Get one run.
158
161
 
159
162
  ### `eigenpal runs compare|diff [options] <reference-run-id> <run-id>`
160
163
 
161
- Compare one run against another run. PDF/DOCX text comparison uses pdftotext/python3 and reports byte fallbacks.
164
+ Compare one run against another run. PDF/DOCX use pdftotext/python3; XLSX compares structured workbook content (not ZIP bytes).
162
165
 
163
166
  ### Arguments
164
167
 
@@ -310,6 +313,30 @@ Download run artifacts by canonical artifact path.
310
313
  | `--path <path>` | no | `[]` | Fetch one exact artifact path from `artifacts list`; repeatable |
311
314
  | `--json` | no | | Output a JSON summary of written artifacts |
312
315
 
316
+ ### `eigenpal runs artifacts|artifact inspect [options] [run-id] [artifact-path]`
317
+
318
+ Inspect a run XLSX artifact as structured JSON (sheet names, headers, typed rows). Use --file for a local workbook.
319
+
320
+ ### Arguments
321
+
322
+ | Name | Required | Variadic | Description |
323
+ | --------------- | -------- | -------- | ----------- |
324
+ | `run-id` | no | no | |
325
+ | `artifact-path` | no | no | |
326
+
327
+ ### Options
328
+
329
+ | Flag | Required | Default | Description |
330
+ | ------------------ | -------- | ------- | ---------------------------------------------------------------------------------- |
331
+ | `--base-url <url>` | no | | Server base URL |
332
+ | `--json` | no | | Output the raw server response as JSON |
333
+ | `--file <path>` | no | | Inspect a local .xlsx/.xls file instead of downloading a run artifact |
334
+ | `--path <path>` | no | | Canonical artifact path from `artifacts list` (alias for positional artifact-path) |
335
+ | `--sheet <names>` | no | | Comma-separated sheet names or zero-based indices to include |
336
+ | `--max-sheets <n>` | no | | Maximum sheets to include (default 20) |
337
+ | `--max-rows <n>` | no | | Maximum data rows per sheet (default 500) |
338
+ | `--max-cols <n>` | no | | Maximum columns per sheet (default 50) |
339
+
313
340
  ### `eigenpal runs reviews|rv update [options] <run-id>`
314
341
 
315
342
  Edit review verdict, status, note, or corrected JSON for a run.
@@ -32,6 +32,14 @@ eigenpal
32
32
  │ │ │ ├── delete <workflow-id> <exampleId>
33
33
  │ │ │ └── get <workflow-id> <exampleId>
34
34
  │ │ └── validate [path]
35
+ │ ├── templates
36
+ │ │ ├── upload <file>
37
+ │ │ ├── list|ls
38
+ │ │ ├── get|inspect <template-id>
39
+ │ │ ├── download <template-id>
40
+ │ │ ├── replace <template-id> <file>
41
+ │ │ ├── delete <template-id>
42
+ │ │ └── smoke <template>
35
43
  │ ├── experiment|exp
36
44
  │ │ ├── list|ls <workflow-id>
37
45
  │ │ ├── run <workflow-id>
@@ -42,6 +50,8 @@ eigenpal
42
50
  │ │ └── watch <workflow-id> <batchId>
43
51
  │ ├── versions
44
52
  │ │ ├── list|ls <workflow-id>
53
+ │ │ ├── create <workflow-id>
54
+ │ │ ├── promote <workflow-id> <versionId>
45
55
  │ │ └── restore <workflow-id> <versionId>
46
56
  │ ├── step-type
47
57
  │ │ ├── list|ls
@@ -102,6 +112,8 @@ eigenpal
102
112
  │ │ └── stop <session-id>
103
113
  │ └── env
104
114
  │ └── pull [target]
115
+ ├── models
116
+ │ └── list|ls
105
117
  ├── run <target>
106
118
  ├── rerun <run-id>
107
119
  ├── runs
@@ -112,7 +124,8 @@ eigenpal
112
124
  │ ├── promote <run-id>
113
125
  │ ├── artifacts|artifact
114
126
  │ │ ├── list|ls <run-id>
115
- │ │ └── fetch <run-id>
127
+ │ │ ├── fetch <run-id>
128
+ │ │ └── inspect [run-id] [artifact-path]
116
129
  │ ├── trace <run-id>
117
130
  │ ├── reviews|rv
118
131
  │ │ ├── update <run-id>