@eigenpal/cli 0.20.40 → 0.20.42
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 +6 -0
- package/dist/cli.js +107 -71
- package/dist/docs-bundle.json +37 -16
- package/dist/skill/reference/step-types.md +162 -9
- package/dist/skill/reference/workflow-yaml.md +3 -2
- package/package.json +2 -2
|
@@ -317,7 +317,7 @@ the combined shape:
|
|
|
317
317
|
```yaml
|
|
318
318
|
steps:
|
|
319
319
|
- name: parse
|
|
320
|
-
type: ai.parse
|
|
320
|
+
type: ai.parse-v2
|
|
321
321
|
with: { ... }
|
|
322
322
|
- name: extract
|
|
323
323
|
type: ai.extract
|
|
@@ -422,7 +422,9 @@ the final shape in a trailing `transform.script` that handles both cases.
|
|
|
422
422
|
top-level keys under `steps.<this-step>.output`, with a `files` array alongside.
|
|
423
423
|
Invoked workflow steps run in an isolated scope inside the parent run.
|
|
424
424
|
|
|
425
|
-
For a separate child run
|
|
425
|
+
For a separate child run with lineage, set `execution: child`. Waiting for the
|
|
426
|
+
child releases worker capacity and resumes automatically when the child finishes.
|
|
427
|
+
Set `wait: false` for fire-and-forget execution.
|
|
426
428
|
|
|
427
429
|
## Classify-and-fail pattern
|
|
428
430
|
|
|
@@ -434,7 +436,7 @@ process.
|
|
|
434
436
|
|
|
435
437
|
```yaml
|
|
436
438
|
- name: parse
|
|
437
|
-
type: ai.parse
|
|
439
|
+
type: ai.parse-v2
|
|
438
440
|
with:
|
|
439
441
|
input: '{{ input.document }}'
|
|
440
442
|
|
|
@@ -1726,9 +1728,9 @@ Output schema:
|
|
|
1726
1728
|
```
|
|
1727
1729
|
|
|
1728
1730
|
|
|
1729
|
-
#### `ai.parse` — Parse Document
|
|
1731
|
+
#### `ai.parse` — Parse Document v1
|
|
1730
1732
|
|
|
1731
|
-
|
|
1733
|
+
Parse Document v1, the retired parser, kept only so existing workflows run unchanged. Do not add it to workflows: use ai.parse-v2 (Parse Document), which picks native text, OCR or vision per page.
|
|
1732
1734
|
|
|
1733
1735
|
**Behavior and examples:** `eigenpal docs read steps/ai/parse`
|
|
1734
1736
|
|
|
@@ -6992,6 +6994,157 @@ Output schema:
|
|
|
6992
6994
|
```
|
|
6993
6995
|
|
|
6994
6996
|
|
|
6997
|
+
#### `transform.merge-documents` — Merge Documents
|
|
6998
|
+
|
|
6999
|
+
Concatenate several files into one PDF run output, in order. Accepts PDFs, images (multi-page TIFF included) and Word, PowerPoint, OpenDocument or RTF documents. Use it when one logical document arrives as several uploads: pass {{ steps.merge.output.file }} into Parse so page labels, page ranges and vision page indices stay continuous across every source. Output sources[] maps each input file to its merged page range.
|
|
7000
|
+
|
|
7001
|
+
**Behavior and examples:** `eigenpal docs read steps/transform/merge-documents`
|
|
7002
|
+
|
|
7003
|
+
**Durable retry:** Transforms, including those that write files, are not durably retried.
|
|
7004
|
+
|
|
7005
|
+
**Config** (in `step.with`):
|
|
7006
|
+
|
|
7007
|
+
| Field | Type | Required | Default | Description |
|
|
7008
|
+
| --- | --- | --- | --- | --- |
|
|
7009
|
+
| `files` | string | yes | | Template expression resolving to the files to merge, in order: a file list input such as {{ input.documents }}, or a single file. PDF, images (JPEG, PNG, TIFF, WebP, GIF) and Word, PowerPoint, OpenDocument or RTF documents. |
|
|
7010
|
+
| `filename` | string | no | | Filename of the merged PDF. Defaults to merged.pdf; .pdf is appended when missing. |
|
|
7011
|
+
|
|
7012
|
+
**Output:** `object`
|
|
7013
|
+
|
|
7014
|
+
| Field | Type | Required | Default | Description |
|
|
7015
|
+
| --- | --- | --- | --- | --- |
|
|
7016
|
+
| `file` | object | yes | | The merged PDF. Pass {{ steps.<step>.output.file }} to Parse, Vision or any other file input. |
|
|
7017
|
+
| `pageCount` | integer | yes | | Total pages in the merged PDF |
|
|
7018
|
+
| `sources` | array<object> | yes | | One entry per input file, in merge order, with the merged page range it occupies. Use it to map a merged page index back to its source file. |
|
|
7019
|
+
|
|
7020
|
+
##### Complete machine-readable schemas
|
|
7021
|
+
|
|
7022
|
+
Config schema:
|
|
7023
|
+
|
|
7024
|
+
```json
|
|
7025
|
+
{
|
|
7026
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
7027
|
+
"type": "object",
|
|
7028
|
+
"properties": {
|
|
7029
|
+
"files": {
|
|
7030
|
+
"type": "string",
|
|
7031
|
+
"minLength": 1,
|
|
7032
|
+
"description": "Template expression resolving to the files to merge, in order: a file list input such as {{ input.documents }}, or a single file. PDF, images (JPEG, PNG, TIFF, WebP, GIF) and Word, PowerPoint, OpenDocument or RTF documents."
|
|
7033
|
+
},
|
|
7034
|
+
"filename": {
|
|
7035
|
+
"description": "Filename of the merged PDF. Defaults to merged.pdf; .pdf is appended when missing.",
|
|
7036
|
+
"type": "string"
|
|
7037
|
+
}
|
|
7038
|
+
},
|
|
7039
|
+
"required": [
|
|
7040
|
+
"files"
|
|
7041
|
+
],
|
|
7042
|
+
"additionalProperties": false
|
|
7043
|
+
}
|
|
7044
|
+
```
|
|
7045
|
+
|
|
7046
|
+
|
|
7047
|
+
Output schema:
|
|
7048
|
+
|
|
7049
|
+
```json
|
|
7050
|
+
{
|
|
7051
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
7052
|
+
"type": "object",
|
|
7053
|
+
"properties": {
|
|
7054
|
+
"file": {
|
|
7055
|
+
"type": "object",
|
|
7056
|
+
"properties": {
|
|
7057
|
+
"fileId": {
|
|
7058
|
+
"type": "string",
|
|
7059
|
+
"description": "File ID of the merged PDF"
|
|
7060
|
+
},
|
|
7061
|
+
"filename": {
|
|
7062
|
+
"type": "string",
|
|
7063
|
+
"description": "Filename of the merged PDF"
|
|
7064
|
+
},
|
|
7065
|
+
"mimeType": {
|
|
7066
|
+
"type": "string",
|
|
7067
|
+
"description": "Always application/pdf"
|
|
7068
|
+
},
|
|
7069
|
+
"size": {
|
|
7070
|
+
"type": "integer",
|
|
7071
|
+
"minimum": 0,
|
|
7072
|
+
"maximum": 9007199254740991,
|
|
7073
|
+
"description": "Size of the merged PDF in bytes"
|
|
7074
|
+
}
|
|
7075
|
+
},
|
|
7076
|
+
"required": [
|
|
7077
|
+
"fileId",
|
|
7078
|
+
"filename",
|
|
7079
|
+
"mimeType",
|
|
7080
|
+
"size"
|
|
7081
|
+
],
|
|
7082
|
+
"additionalProperties": false,
|
|
7083
|
+
"description": "The merged PDF. Pass {{ steps.<step>.output.file }} to Parse, Vision or any other file input."
|
|
7084
|
+
},
|
|
7085
|
+
"pageCount": {
|
|
7086
|
+
"type": "integer",
|
|
7087
|
+
"minimum": 0,
|
|
7088
|
+
"maximum": 9007199254740991,
|
|
7089
|
+
"description": "Total pages in the merged PDF"
|
|
7090
|
+
},
|
|
7091
|
+
"sources": {
|
|
7092
|
+
"type": "array",
|
|
7093
|
+
"items": {
|
|
7094
|
+
"type": "object",
|
|
7095
|
+
"properties": {
|
|
7096
|
+
"filename": {
|
|
7097
|
+
"type": "string",
|
|
7098
|
+
"description": "Filename of the source file"
|
|
7099
|
+
},
|
|
7100
|
+
"mimeType": {
|
|
7101
|
+
"type": "string",
|
|
7102
|
+
"description": "MIME type of the source file"
|
|
7103
|
+
},
|
|
7104
|
+
"pageCount": {
|
|
7105
|
+
"type": "integer",
|
|
7106
|
+
"minimum": 0,
|
|
7107
|
+
"maximum": 9007199254740991,
|
|
7108
|
+
"description": "Pages this source contributed"
|
|
7109
|
+
},
|
|
7110
|
+
"pageRange": {
|
|
7111
|
+
"type": "array",
|
|
7112
|
+
"items": [
|
|
7113
|
+
{
|
|
7114
|
+
"type": "integer",
|
|
7115
|
+
"minimum": -9007199254740991,
|
|
7116
|
+
"maximum": 9007199254740991
|
|
7117
|
+
},
|
|
7118
|
+
{
|
|
7119
|
+
"type": "integer",
|
|
7120
|
+
"minimum": -9007199254740991,
|
|
7121
|
+
"maximum": 9007199254740991
|
|
7122
|
+
}
|
|
7123
|
+
],
|
|
7124
|
+
"description": "[startIndex, endIndex] inclusive, 0-based page indices in the merged PDF"
|
|
7125
|
+
}
|
|
7126
|
+
},
|
|
7127
|
+
"required": [
|
|
7128
|
+
"filename",
|
|
7129
|
+
"mimeType",
|
|
7130
|
+
"pageCount",
|
|
7131
|
+
"pageRange"
|
|
7132
|
+
],
|
|
7133
|
+
"additionalProperties": false
|
|
7134
|
+
},
|
|
7135
|
+
"description": "One entry per input file, in merge order, with the merged page range it occupies. Use it to map a merged page index back to its source file."
|
|
7136
|
+
}
|
|
7137
|
+
},
|
|
7138
|
+
"required": [
|
|
7139
|
+
"file",
|
|
7140
|
+
"pageCount",
|
|
7141
|
+
"sources"
|
|
7142
|
+
],
|
|
7143
|
+
"additionalProperties": false
|
|
7144
|
+
}
|
|
7145
|
+
```
|
|
7146
|
+
|
|
7147
|
+
|
|
6995
7148
|
### Action steps — external side effects
|
|
6996
7149
|
|
|
6997
7150
|
#### `action.http` — HTTP Request
|
|
@@ -7143,8 +7296,8 @@ Execute another workflow and return its output
|
|
|
7143
7296
|
| `execution` | `"inline"` \| `"child"` | no | | inline: run target steps in this execution (default). child: spawn a separate run with lineage. |
|
|
7144
7297
|
| `input` | record<string, unknown> | no | | Input record keyed by the invoked workflow's declared inputs |
|
|
7145
7298
|
| `wait` | boolean | no | | Child mode only. Wait for the invoked workflow to complete and return its output (default: true). Set false for fire-and-forget. |
|
|
7146
|
-
| `timeout` | number | no | | Child mode only. Max wait time in ms while the child is queued or running (default: 300000). Once the child pauses for human review, the parent pauses durably instead of using this timeout. |
|
|
7147
|
-
| `pollInterval` | number | no | | Child mode only.
|
|
7299
|
+
| `timeout` | number | no | | Child mode only. Max wait time in ms while the child is queued or running (default: 300000). The deadline is stored with the invocation and survives worker restarts; expiry makes the parent eligible to resume and report the timeout. Once the child pauses for human review, the parent pauses durably instead of using this timeout. |
|
|
7300
|
+
| `pollInterval` | number | no | | Child mode only. Accepted for compatibility. Durable child waits no longer poll or occupy a worker slot. |
|
|
7148
7301
|
|
|
7149
7302
|
**Output:** `record<string, unknown>`
|
|
7150
7303
|
|
|
@@ -7207,11 +7360,11 @@ Config schema:
|
|
|
7207
7360
|
"type": "boolean"
|
|
7208
7361
|
},
|
|
7209
7362
|
"timeout": {
|
|
7210
|
-
"description": "Child mode only. Max wait time in ms while the child is queued or running (default: 300000). Once the child pauses for human review, the parent pauses durably instead of using this timeout.",
|
|
7363
|
+
"description": "Child mode only. Max wait time in ms while the child is queued or running (default: 300000). The deadline is stored with the invocation and survives worker restarts; expiry makes the parent eligible to resume and report the timeout. Once the child pauses for human review, the parent pauses durably instead of using this timeout.",
|
|
7211
7364
|
"type": "number"
|
|
7212
7365
|
},
|
|
7213
7366
|
"pollInterval": {
|
|
7214
|
-
"description": "Child mode only.
|
|
7367
|
+
"description": "Child mode only. Accepted for compatibility. Durable child waits no longer poll or occupy a worker slot.",
|
|
7215
7368
|
"type": "number"
|
|
7216
7369
|
}
|
|
7217
7370
|
},
|
|
@@ -377,7 +377,7 @@ Description-writing tips (mirrors Reducto's guidance):
|
|
|
377
377
|
|
|
378
378
|
```yaml
|
|
379
379
|
- name: parse
|
|
380
|
-
type: ai.parse
|
|
380
|
+
type: ai.parse-v2
|
|
381
381
|
with:
|
|
382
382
|
input: '{{ input.document }}'
|
|
383
383
|
|
|
@@ -1122,7 +1122,8 @@ This JSON Schema is generated from the same Zod schema used to parse workflow YA
|
|
|
1122
1122
|
"transform.text-chunker",
|
|
1123
1123
|
"transform.regex-extract",
|
|
1124
1124
|
"transform.archive-list",
|
|
1125
|
-
"transform.archive-extract"
|
|
1125
|
+
"transform.archive-extract",
|
|
1126
|
+
"transform.merge-documents"
|
|
1126
1127
|
]
|
|
1127
1128
|
},
|
|
1128
1129
|
"name": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eigenpal/cli",
|
|
3
|
-
"version": "0.20.
|
|
3
|
+
"version": "0.20.42",
|
|
4
4
|
"description": "Eigenpal CLI — author and run document workflows from your terminal. Agent-ready.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"eigenpal",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"generate:cli-docs:check": "bun scripts/generate-cli-docs.ts --check",
|
|
51
51
|
"generate:logo": "bun scripts/render-logo-ascii.ts --cells 20",
|
|
52
52
|
"test": "bun test src/ scripts/",
|
|
53
|
-
"typecheck": "
|
|
53
|
+
"typecheck": "bun check"
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {},
|
|
56
56
|
"devDependencies": {
|