@eigenpal/cli 0.5.11 → 0.6.0

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.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: eigenpal
3
- description: Build, run, and iterate on Eigenpal workflows and agents from the command line. Use `eigenpal workflow` for YAML workflows, datasets, evaluators, executions, and experiments. Use `eigenpal agent` for agent workspaces, executions, feedback, traces, files, and expected artifacts.
3
+ description: Build, run, and iterate on Eigenpal workflows and agents from the command line. Use `eigenpal workflow` for YAML workflows, datasets, evaluators, executions, and experiments. Use `eigenpal agents` for agent workspaces, runs, feedback, traces, files, and expected artifacts.
4
4
  license: Apache-2.0
5
5
  compatibility: Requires eigenpal CLI.
6
6
  metadata:
@@ -16,16 +16,16 @@ Eigenpal has two major CLI surfaces:
16
16
  - `eigenpal workflow` — build and operate YAML workflows: definitions,
17
17
  datasets, evaluators, executions, experiments, versions, and schema
18
18
  introspection.
19
- - `eigenpal agent` — build and operate agent workspaces: agent files, triggers,
20
- executions, traces, feedback, expected artifacts, and reruns.
19
+ - `eigenpal agents` — build and operate agent workspaces: agent files, triggers,
20
+ runs, traces, feedback, expected artifacts, and reruns.
21
21
 
22
22
  Use long command names in generated commands and documentation. They are more
23
23
  readable and cost very little for agents to type. Some short aliases exist for
24
24
  interactive users; understand them if you see them, but do not prefer them:
25
25
 
26
- - `agent exec` = `agent execution`
27
- - `agent execution fb` = `agent execution feedback`
28
- - `agent execution artifact` = `agent execution artifacts`
26
+ - `agents exec` = `agents runs`
27
+ - `agents runs fb` = `agents runs feedback`
28
+ - `agents runs artifact` = `agents runs artifacts`
29
29
  - `workflow exec` = `workflow execution`
30
30
  - `workflow exp` = `workflow experiment`
31
31
  - `ls` = `list` anywhere in the CLI
@@ -34,14 +34,17 @@ interactive users; understand them if you see them, but do not prefer them:
34
34
  For exact flags and defaults, prefer the generated references:
35
35
 
36
36
  - [`reference/cli/workflow.md`](reference/cli/workflow.md)
37
- - [`reference/cli/agent.md`](reference/cli/agent.md)
37
+ - [`reference/cli/agents.md`](reference/cli/agents.md)
38
+ - [`reference/cli/git.md`](reference/cli/git.md)
39
+ - [`reference/cli/run.md`](reference/cli/run.md)
40
+ - [`reference/cli/runs.md`](reference/cli/runs.md)
38
41
 
39
42
  ## Pick The Surface
40
43
 
41
44
  Choose `workflow` when the work is about a workflow definition, dataset,
42
45
  evaluator, experiment, or workflow execution.
43
46
 
44
- Choose `agent` when the work is about an agent workspace, agent file, trigger,
47
+ Choose `agents` when the work is about an agent workspace, agent file, trigger,
45
48
  agent execution, trace, feedback entry, expected artifact, or rerun.
46
49
 
47
50
  Agents and workflows are related, but their iteration loops are different:
@@ -109,42 +112,94 @@ a folder unless the user specifically asks for that placement.
109
112
 
110
113
  ## Agent Iteration Loop
111
114
 
115
+ Git-backed agent source lives in the organization repository under `agents/<slug>/`.
116
+ Edit source in Git, save builder work with `eigenpal agents save`, and ship with
117
+ `eigenpal agents release` + `eigenpal agents sync`. Builder sessions usually work
118
+ on `builder/<agent>/<session>` branches. This is all Git under the hood, but use
119
+ the Eigenpal CLI whenever possible:
120
+
121
+ - `eigenpal agents save` = validate changed packages, commit if dirty, and push the current branch.
122
+ - `eigenpal agents release <version> agents/<slug>` = safely land the package onto the release/tag path. Treat this like the merge step.
123
+ - `eigenpal agents sync agents.<slug>` = apply the latest released manifest, including triggers, to the server DB.
124
+ - `eigenpal git -- <args>` = authenticated git passthrough. Use it for every git command, including nuanced/read-only commands (`status`, `diff`, `log`, `rev-parse HEAD`, `merge`) and conflict recovery. Do not call raw `git` directly in normal agent work.
125
+
126
+ Do not use `eigenpal agents push` or `agents file put` — those targeted the legacy
127
+ HTTP upload API. Configure triggers in `eigenpal.yaml`; `agents sync` applies the
128
+ latest release manifest to the DB.
129
+
112
130
  ```bash
113
- # 1. Find the agent and inspect its files.
114
- eigenpal agent list
115
- eigenpal agent file list <agent-id-or-slug>
116
- eigenpal agent file get <agent-id-or-slug> agent/instructions.md --out instructions.md
117
-
118
- # 2. Find executions that need attention.
119
- eigenpal agent execution list <agent-id-or-slug> \
120
- --feedback-status open \
121
- --feedback-rating fail \
122
- --since-last-resolved \
123
- --include feedback,expected \
124
- --compact
125
-
126
- # 3. Pull the execution context locally.
127
- eigenpal agent execution pull <agent-execution-id> --include all --out ./review/<agent-execution-id>
128
- eigenpal agent execution artifacts list <agent-execution-id>
129
- eigenpal agent execution trace <agent-execution-id> --out ./review/<agent-execution-id>/trace.jsonl
130
-
131
- # 4. Edit and preview agent files.
132
- $EDITOR instructions.md
133
- eigenpal agent file diff <agent-id-or-slug> agent/instructions.md instructions.md
134
- eigenpal agent file put <agent-id-or-slug> agent/instructions.md instructions.md --preview
135
- eigenpal agent file put <agent-id-or-slug> agent/instructions.md instructions.md
136
-
137
- # 5. Rerun and compare.
138
- eigenpal agent execution rerun <agent-execution-id> --wait
139
- eigenpal agent execution compare <new-agent-execution-id> \
140
- --expected-from <source-agent-execution-id> \
141
- --normalize-dates
142
- eigenpal agent execution compare <new-agent-execution-id> \
143
- --baseline-from <source-agent-execution-id> \
131
+ # 1. Clone org source and open the agent package.
132
+ eigenpal agents clone --out ./source
133
+ cd source/agents/<slug>
134
+ eigenpal agents install
135
+
136
+ # 2. Edit agent source.
137
+ # AGENT.md is the inference orchestrator. Schemas are plain JSON files.
138
+ $EDITOR AGENT.md eigenpal.yaml input-schema.json output-schema.json
139
+ $EDITOR skills/<skill>/SKILL.md skills/<skill>/run.py
140
+
141
+ # 3. Validate layout, manifest, and schema files; then save durable source changes on the current branch.
142
+ cd ../.. # repo root
143
+ eigenpal agents status
144
+ eigenpal agents validate agents/<slug>
145
+ eigenpal agents save -m "Improve invoice extraction prompts"
146
+
147
+ # 4. Run exactly what was saved.
148
+ SOURCE_REF="$(eigenpal git -- rev-parse HEAD)"
149
+ eigenpal agents run agents.<slug>@"$SOURCE_REF" --input-json '{"text":"hello"}' --wait
150
+ eigenpal agents run agents.<slug>@"$SOURCE_REF" --example example-name --wait
151
+ eigenpal agents runs get <agent-execution-id> --json
152
+ eigenpal agents runs trace <agent-execution-id> --out ./trace.jsonl
153
+
154
+ # 5. Release to main + tag when ready to ship (-m optional; defaults to "Release <packagePath>").
155
+ # Release tags are immutable — never move, delete, or force-update a published tag.
156
+ # If a release is wrong, ship a new patch (`eigenpal agents release patch`).
157
+ eigenpal agents release patch agents/<slug>
158
+ eigenpal agents sync agents.<slug>
159
+ ```
160
+
161
+ ### Agent Datasets And Examples
162
+
163
+ Agent eval examples are runtime data, not Git source. `eigenpal agents save`
164
+ does not persist them. Keep local examples in a dataset directory and use the
165
+ dataset CLI:
166
+
167
+ ```bash
168
+ # Builder sandboxes use /workspace/evals; local projects often use ./dataset.
169
+ eigenpal agents dataset validate /workspace/evals --agent-dir agents/<slug>
170
+ eigenpal agents dataset push agents.<slug> --file /workspace/evals
171
+ eigenpal agents dataset list agents.<slug>
172
+ eigenpal agents dataset pull agents.<slug> --out ./dataset
173
+ ```
174
+
175
+ Example shape:
176
+
177
+ ```text
178
+ evals/<name>/
179
+ input.json # scalar/object args
180
+ input/<field>.* # file input, when needed
181
+ expected.json # partial expected output: only stable fields
182
+ expected/<file> # golden file outputs
183
+ feedback.md # optional notes
184
+ ```
185
+
186
+ For `expected.json`, include only fields that must be identical on every correct
187
+ run. Omit non-deterministic values such as timestamps, random IDs, and free-form
188
+ LLM text. Validate the actual agent output with the output schema; validate the
189
+ expected file as a partial assertion.
190
+ Run a persisted example with `eigenpal agents run agents.<slug>@<ref> --example <name> --wait`.
191
+
192
+ ### Debug Agent Runs
193
+
194
+ ```bash
195
+ eigenpal agents runs list agents.<slug> --status failed --compact
196
+ eigenpal agents runs pull <agent-execution-id> --include all --out ./review/<agent-execution-id>
197
+ eigenpal agents runs trace <agent-execution-id> --out ./review/<agent-execution-id>/trace.jsonl
198
+ eigenpal agents runs rerun <agent-execution-id> --wait
199
+ eigenpal agents runs compare <source-agent-execution-id> <new-agent-execution-id> \
144
200
  --normalize-dates
145
201
 
146
- # 6. Resolve feedback once verified.
147
- eigenpal agent execution feedback resolve <source-agent-execution-id> \
202
+ eigenpal agents runs feedback resolve <source-agent-execution-id> \
148
203
  --message "Fixed and verified in <new-agent-execution-id>."
149
204
  ```
150
205
 
@@ -152,6 +207,26 @@ Agent commands commonly accept `<agent-id-or-slug>`. Agent execution commands
152
207
  take an agent execution id. Execution pulls and comparisons write review
153
208
  artifacts under `.eigenpal/artifacts/...` by default.
154
209
 
210
+ Root `eigenpal run` / `eigenpal runs` and `eigenpal git <cmd>` (for moved subcommands) exit with a deprecation message — use `agents run`, `agents runs list`, and `agents <cmd>` instead.
211
+
212
+ Use source refs such as `latest`, `main`, exact versions/tags (`1.2.3`),
213
+ semver ranges (`1.2.x`, `1.x`), or exact commit SHAs when you need provenance.
214
+
215
+ ### Git-backed secrets
216
+
217
+ Set secrets with the authenticated CLI — plaintext goes to
218
+ `POST /api/v1/source/secrets/encrypt`; only ciphertext is written to
219
+ `secrets.enc.yaml`. Organization decrypt keys never leave the server.
220
+
221
+ ```bash
222
+ echo -n "$VALUE" | eigenpal agents secret set OPENAI_API_KEY --stdin
223
+ eigenpal agents secret import ./local.env
224
+ eigenpal agents save -m "Add API key"
225
+ ```
226
+
227
+ Runtime sandboxes decrypt via `eigenpal agents env pull` →
228
+ `POST /api/v1/source/secrets/decrypt` (same API key auth).
229
+
155
230
  ## Workflow Recipes
156
231
 
157
232
  ### Author And Validate A Workflow
@@ -227,13 +302,13 @@ both batches must belong to the same workflow.
227
302
  ### Inspect And Edit Agent Files
228
303
 
229
304
  ```bash
230
- eigenpal agent list
231
- eigenpal agent file list <agent-id-or-slug>
232
- eigenpal agent file list <agent-id-or-slug> --prefix agent/knowledge
233
- eigenpal agent file get <agent-id-or-slug> agent/instructions.md --out instructions.md
234
- eigenpal agent file diff <agent-id-or-slug> agent/instructions.md instructions.md
235
- eigenpal agent file put <agent-id-or-slug> agent/instructions.md instructions.md --preview
236
- eigenpal agent file put <agent-id-or-slug> agent/instructions.md instructions.md
305
+ eigenpal agents list
306
+ eigenpal agents file list <agent-id-or-slug>
307
+ eigenpal agents file list <agent-id-or-slug> --prefix agent/knowledge
308
+ eigenpal agents file get <agent-id-or-slug> agent/instructions.md --out instructions.md
309
+ eigenpal agents file diff <agent-id-or-slug> agent/instructions.md instructions.md
310
+ eigenpal agents file put <agent-id-or-slug> agent/instructions.md instructions.md --preview
311
+ eigenpal agents file put <agent-id-or-slug> agent/instructions.md instructions.md
237
312
  ```
238
313
 
239
314
  Use `--preview` before writing substantial changes; it shows how the target file
@@ -242,11 +317,11 @@ would change.
242
317
  ### Inspect Agent Executions
243
318
 
244
319
  ```bash
245
- eigenpal agent execution list <agent-id-or-slug> --status failed --limit 10
246
- eigenpal agent execution list <agent-id-or-slug> --feedback-rating fail --include feedback,expected
247
- eigenpal agent execution get <agent-execution-id> --include feedback,expected,files,trace,issues --json
248
- eigenpal agent execution pull <agent-execution-id> --include all
249
- eigenpal agent execution artifacts list <agent-execution-id>
320
+ eigenpal agents runs list <agent-id-or-slug> --status failed --limit 10
321
+ eigenpal agents runs list <agent-id-or-slug> --feedback-rating fail --include feedback,expected
322
+ eigenpal agents runs get <agent-execution-id> --include feedback,expected,files,trace,issues --json
323
+ eigenpal agents runs pull <agent-execution-id> --include all
324
+ eigenpal agents runs artifacts list <agent-execution-id>
250
325
  ```
251
326
 
252
327
  Use `--compact` on execution lists when you only need triage rows.
@@ -254,9 +329,9 @@ Use `--compact` on execution lists when you only need triage rows.
254
329
  ### Download Agent Traces
255
330
 
256
331
  ```bash
257
- eigenpal agent execution trace <agent-execution-id> --out trace.jsonl
258
- eigenpal agent execution trace <agent-execution-id> | jq -r 'select(.toolName? or .tool_name? or .tool?)'
259
- eigenpal agent execution trace <agent-execution-id> | rg 'error|tool'
332
+ eigenpal agents runs trace <agent-execution-id> --out trace.jsonl
333
+ eigenpal agents runs trace <agent-execution-id> | jq -r 'select(.toolName? or .tool_name? or .tool?)'
334
+ eigenpal agents runs trace <agent-execution-id> | rg 'error|tool'
260
335
  ```
261
336
 
262
337
  `trace` streams the raw JSONL to stdout by default. Use shell tools such as
@@ -265,19 +340,18 @@ eigenpal agent execution trace <agent-execution-id> | rg 'error|tool'
265
340
  ### Manage Agent Feedback And Expected Artifacts
266
341
 
267
342
  ```bash
268
- eigenpal agent execution feedback get <agent-execution-id>
269
- eigenpal agent execution feedback update <agent-execution-id> \
343
+ eigenpal agents runs feedback update <agent-execution-id> \
270
344
  --status open \
271
345
  --rating fail \
272
346
  --message "Expected the filing date to be extracted."
273
- eigenpal agent execution feedback resolve <agent-execution-id> \
347
+ eigenpal agents runs feedback resolve <agent-execution-id> \
274
348
  --message "Fixed and verified."
275
- eigenpal agent execution feedback clear <agent-execution-id> --yes
349
+ eigenpal agents runs feedback clear <agent-execution-id> --yes
276
350
 
277
- eigenpal agent execution expected list <agent-execution-id>
278
- eigenpal agent execution expected upload <agent-execution-id> --file expected.json --name expected.json
279
- eigenpal agent execution expected copy-output <agent-execution-id> --output-file result.json --name expected.json
280
- eigenpal agent execution expected pull <agent-execution-id> --out expected/
351
+ eigenpal agents runs expected list <agent-execution-id>
352
+ eigenpal agents runs expected upload <agent-execution-id> expected.json --name expected.json
353
+ eigenpal agents runs expected copy-output <agent-execution-id> result.json --name expected.json
354
+ eigenpal agents runs expected pull <agent-execution-id> --out expected/
281
355
  ```
282
356
 
283
357
  Feedback is attached to one execution. Expected artifacts are the references
@@ -286,18 +360,16 @@ used when comparing future runs.
286
360
  ### Rerun And Compare Agent Executions
287
361
 
288
362
  ```bash
289
- eigenpal agent execution rerun <agent-execution-id> --wait
290
- eigenpal agent execution compare <new-agent-execution-id> --expected-from <source-agent-execution-id>
291
- eigenpal agent execution compare <new-agent-execution-id> --baseline-from <source-agent-execution-id>
292
- eigenpal agent execution compare <new-agent-execution-id> \
293
- --expected-from <source-agent-execution-id> \
363
+ eigenpal agents runs rerun <agent-execution-id> --wait
364
+ eigenpal agents runs compare <source-agent-execution-id> <new-agent-execution-id>
365
+ eigenpal agents runs compare <source-agent-execution-id> <new-agent-execution-id> \
366
+ --baseline \
294
367
  --normalize-dates \
295
368
  --fail-on-diff
296
369
  ```
297
370
 
298
- Use `--expected-from` to compare a new output against stored expected artifacts.
299
- Use `--baseline-from` to compare a new output against another execution's actual
300
- output.
371
+ By default, compare a new output against the reference execution's expected
372
+ artifacts. Use `--baseline` to compare actual outputs from both executions.
301
373
 
302
374
  ## Output And Exit Codes
303
375
 
@@ -306,7 +378,7 @@ script or agent needs to inspect the result with `jq`.
306
378
 
307
379
  ```bash
308
380
  eigenpal workflow execution list <workflow-id> --json | jq '.data[0].id'
309
- eigenpal agent execution list <agent-id-or-slug> --json | jq '.executions[0].id'
381
+ eigenpal agents runs list <agent-id-or-slug> --json | jq '.executions[0].id'
310
382
  ```
311
383
 
312
384
  General exit-code convention:
@@ -334,7 +406,9 @@ Workflow schemas:
334
406
  CLI command references:
335
407
 
336
408
  - [`reference/cli/workflow.md`](reference/cli/workflow.md)
337
- - [`reference/cli/agent.md`](reference/cli/agent.md)
409
+ - [`reference/cli/agents.md`](reference/cli/agents.md)
410
+ - [`reference/cli/run.md`](reference/cli/run.md)
411
+ - [`reference/cli/runs.md`](reference/cli/runs.md)
338
412
  - [`reference/cli/auth.md`](reference/cli/auth.md)
339
413
  - [`reference/cli/status.md`](reference/cli/status.md)
340
414
 
@@ -364,15 +438,17 @@ eigenpal
364
438
  │ ├── versions
365
439
  │ ├── step-type
366
440
  │ └── evaluator-type
367
- ├── agent
441
+ ├── agents
368
442
  │ ├── list
369
- │ ├── get
370
443
  │ ├── push
371
444
  │ ├── pull
445
+ │ ├── validate
372
446
  │ ├── file
373
447
  │ ├── trigger
374
448
  │ ├── execution
375
449
  │ └── experiment
450
+ ├── run
451
+ ├── runs
376
452
  └── skill
377
453
  ├── install
378
454
  ├── uninstall