@eigenpal/cli 0.10.3 → 0.10.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.
@@ -15,6 +15,7 @@ eigenpal
15
15
  ├── workflow
16
16
  │ ├── list|ls
17
17
  │ ├── pull <workflow-id>
18
+ │ ├── schema <workflow-id>
18
19
  │ ├── push
19
20
  │ ├── move <workflow-id>
20
21
  │ ├── evaluators
@@ -17,6 +17,7 @@ Manage workflows: push, pull, and evaluate.
17
17
  - [Details](#details)
18
18
  - [`eigenpal workflow list|ls [options]`](#eigenpal-workflow-listls-options)
19
19
  - [`eigenpal workflow pull [options] <workflow-id>`](#eigenpal-workflow-pull-options-workflow-id)
20
+ - [`eigenpal workflow schema [options] <workflow-id>`](#eigenpal-workflow-schema-options-workflow-id)
20
21
  - [`eigenpal workflow push [options]`](#eigenpal-workflow-push-options)
21
22
  - [`eigenpal workflow move [options] <workflow-id>`](#eigenpal-workflow-move-options-workflow-id)
22
23
  - [`eigenpal workflow validate [options] [path]`](#eigenpal-workflow-validate-options-path)
@@ -53,6 +54,7 @@ Manage workflows: push, pull, and evaluate.
53
54
  workflow
54
55
  ├── list|ls
55
56
  ├── pull <workflow-id>
57
+ ├── schema <workflow-id>
56
58
  ├── push
57
59
  ├── move <workflow-id>
58
60
  ├── evaluators
@@ -100,6 +102,7 @@ workflow
100
102
  | ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
101
103
  | `eigenpal workflow list\|ls [options]` | List workflows the caller can read. |
102
104
  | `eigenpal workflow pull [options] <workflow-id>` | Download the YAML definition of the workflow at its current version. |
105
+ | `eigenpal workflow schema [options] <workflow-id>` | Show the inferred output schema for a workflow (what it returns). |
103
106
  | `eigenpal workflow push [options]` | Create or update a workflow from a YAML file. |
104
107
  | `eigenpal workflow move [options] <workflow-id>` | Move a workflow to a folder path, creating folders as needed |
105
108
  | `eigenpal workflow validate [options] [path]` | Local-only validation. Without [path]: runs the templated three-way check (./workflow.yaml + ./evaluators.yaml + ./dataset/). With [path] pointing at a YAML file: validates that workflow.yaml. For per-noun targeting use `evaluators validate` or `dataset validate`. |
@@ -198,6 +201,24 @@ Download the YAML definition of the workflow at its current version.
198
201
  | `--out <path>` | no | | Write YAML to file instead of stdout |
199
202
  | `--base-url <url>` | no | | Server base URL |
200
203
 
204
+ ### `eigenpal workflow schema [options] <workflow-id>`
205
+
206
+ Show the inferred output schema for a workflow (what it returns).
207
+
208
+ ### Arguments
209
+
210
+ | Name | Required | Variadic | Description |
211
+ | ------------- | -------- | -------- | ----------- |
212
+ | `workflow-id` | yes | no | |
213
+
214
+ ### Options
215
+
216
+ | Flag | Required | Default | Description |
217
+ | ------------------- | -------- | -------- | ------------------------------- |
218
+ | `--format <format>` | no | `"json"` | json \| typescript \| python |
219
+ | `--out <path>` | no | | Write to file instead of stdout |
220
+ | `--base-url <url>` | no | | Server base URL |
221
+
201
222
  ### `eigenpal workflow push [options]`
202
223
 
203
224
  Create or update a workflow from a YAML file.
@@ -243,9 +264,11 @@ Local-only validation. Without [path]: runs the templated three-way check (./wor
243
264
 
244
265
  ### Options
245
266
 
246
- | Flag | Required | Default | Description |
247
- | -------------- | -------- | ------- | -------------------------------------------------------------------------- |
248
- | `--dir <path>` | no | | Project root (defaults to cwd; resolves the three default paths from here) |
267
+ | Flag | Required | Default | Description |
268
+ | ------------------ | -------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
269
+ | `--dir <path>` | no | | Project root (defaults to cwd; resolves the three default paths from here) |
270
+ | `--online` | no | | Also validate cross-workflow action.invoke-workflow references against the server (needs auth). Catches target-not-found, input type mismatches, missing/unknown input keys, undeclared output, and invoke cycles that local validation cannot see. |
271
+ | `--base-url <url>` | no | | Server base URL |
249
272
 
250
273
  ### `eigenpal workflow clear-local [options] [examples...]`
251
274
 
@@ -574,7 +574,7 @@ Convert XLSX spreadsheet to JSON array of row objects for use in scripts or down
574
574
 
575
575
  | Field | Type | Required | Default | Description |
576
576
  | --- | --- | --- | --- | --- |
577
- | `input` | string | yes | | File input - template expression e.g. {{input.document}} resolving to fileId or file path descriptor |
577
+ | `input` | string | yes | | File input - template expression e.g. {{input.document}} resolving to a scoped $file artifact at runtime |
578
578
  | `sheet` | integer \| string | no | | Sheet to read: 0-based index or sheet name. Omit for first sheet. |
579
579
  | `outputCsv` | boolean | no | `false` | If true, also write CSV to storage and include fileId in output |
580
580
  | `outputFilename` | string | no | | Output CSV filename when outputCsv is true - supports LiquidJS e.g. {{filename}}.csv |
@@ -679,14 +679,14 @@ Execute another workflow and return its output
679
679
  | Field | Type | Required | Default | Description |
680
680
  | --- | --- | --- | --- | --- |
681
681
  | `workflowId` | string | yes | | ID of workflow to invoke |
682
- | `input` | record<string, unknown> | no | | Input to pass to workflow |
683
- | `wait` | boolean | no | | If true, wait for the invoked workflow to complete (default: false) |
684
- | `timeout` | number | no | | Max wait time in ms when wait=true (default: 300000) |
685
- | `pollInterval` | number | no | | How often to poll status in ms when wait=true (default: 1000) |
682
+ | `input` | record<string, unknown> | no | | Input record keyed by the invoked workflow's declared inputs |
683
+ | `wait` | boolean | no | | Wait for the invoked workflow to complete and return its output (default: true). Set false for fire-and-forget. |
684
+ | `timeout` | number | no | | Max wait time in ms when waiting (default: 300000) |
685
+ | `pollInterval` | number | no | | How often to poll status in ms when waiting (default: 1000) |
686
686
 
687
687
  **Output:** `record<string, unknown>`
688
688
 
689
- > Output from invoked workflow
689
+ > When wait is true, the invoked workflow's declared output fields are flattened to the top level alongside a `files` array — reference them as {{ steps.<invoke>.output.<field> }} (there is no `.data` or `.result` wrapper). When wait is false, execution metadata. Call get_workflow_output_schema to see the exact resolved fields.
690
690
 
691
691
  #### `action.website-reader` — Website Reader
692
692
 
@@ -79,10 +79,14 @@ The materialized shape on `triggerInput` is driven by the YAML, not by
79
79
  how many files the dataset uploaded. Get this wrong and the worker
80
80
  sees the opposite shape:
81
81
 
82
- | YAML | `triggerInput.<name>` | Template |
83
- | ------------------------------------------ | --------------------- | --------------------------------------- |
84
- | `type: file` | `{ fileId }` | `{{ input.<name> }}` |
85
- | `type: array`, `items: { type: file }` | `[{ fileId }, ...]` | `{{ input.<name>[0] }}` (or `forEach:`) |
82
+ | YAML | durable `triggerInput.<name>` | Template |
83
+ | ------------------------------------------ | ------------------------------ | --------------------------------------- |
84
+ | `type: file` | `{ "$file": "input/..." }` | `{{ input.<name> }}` |
85
+ | `type: array`, `items: { type: file }` | `[{ "$file": "input/..." }]` | `{{ input.<name>[0] }}` (or `forEach:`) |
86
+
87
+ API/SDK ingress can use `{ "$fileId": "file_..." }`, inline bytes via
88
+ `{ "$inline": { filename, mimeType, base64 } }`, or multipart file parts.
89
+ Eigenpal snapshots those into run-scoped artifacts before execution.
86
90
 
87
91
  If you see `Invalid input ... expected object, received array` from a
88
92
  step that takes a single file, the workflow input is `type: file` but
@@ -474,7 +478,7 @@ _Generated from `WorkflowDefinitionSchema` in `@eigenpal/types/src/workflow/work
474
478
  | `triggerMethods` | array<object> | no | `[{"type":"manual"}]` | |
475
479
  | `inputs` | array<object> | no | | |
476
480
  | `steps` | array<unknown> | yes | | |
477
- | `output` | record<string, string> | no | | |
481
+ | `output` | record<string, string> \| string | no | | |
478
482
  | `settings` | object | no | | |
479
483
  | `defaultModel` | string | no | | |
480
484
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eigenpal/cli",
3
- "version": "0.10.3",
3
+ "version": "0.10.5",
4
4
  "description": "Eigenpal CLI — author and run document workflows from your terminal. Agent-ready.",
5
5
  "keywords": [
6
6
  "eigenpal",