@eigenpal/cli 0.10.19 → 0.10.20
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 +543 -2762
- package/dist/skill/reference/step-types.md +53 -1
- package/dist/skill/reference/workflow-yaml.md +38 -0
- package/package.json +1 -1
|
@@ -358,6 +358,8 @@ _Generated from `STEP_SCHEMAS` in `@eigenpal/types/src/workflow/step-configs.ts`
|
|
|
358
358
|
|
|
359
359
|
Extract text from documents (PDF, DOCX, images) using OCR or vision models
|
|
360
360
|
|
|
361
|
+
**Durable retry:** Provider request retries are separate; the workflow engine does not durably retry this step.
|
|
362
|
+
|
|
361
363
|
**Config** (in `step.with`):
|
|
362
364
|
|
|
363
365
|
| Field | Type | Required | Default | Description |
|
|
@@ -386,6 +388,8 @@ Extract text from documents (PDF, DOCX, images) using OCR or vision models
|
|
|
386
388
|
|
|
387
389
|
Extract structured data from text using AI with a JSON schema
|
|
388
390
|
|
|
391
|
+
**Durable retry:** Provider request retries are separate; the workflow engine does not durably retry this step.
|
|
392
|
+
|
|
389
393
|
**Config** (in `step.with`):
|
|
390
394
|
|
|
391
395
|
| Field | Type | Required | Default | Description |
|
|
@@ -409,6 +413,8 @@ Extract structured data from text using AI with a JSON schema
|
|
|
409
413
|
|
|
410
414
|
Split a parsed document into named sections using an LLM. Consumes ai.parse output; emits per-section page ranges and text ready for downstream ai.extract via control.parallel_map.
|
|
411
415
|
|
|
416
|
+
**Durable retry:** Provider request retries are separate; the workflow engine does not durably retry this step.
|
|
417
|
+
|
|
412
418
|
**Config** (in `step.with`):
|
|
413
419
|
|
|
414
420
|
| Field | Type | Required | Default | Description |
|
|
@@ -429,6 +435,8 @@ Split a parsed document into named sections using an LLM. Consumes ai.parse outp
|
|
|
429
435
|
|
|
430
436
|
Separate a concatenated batch (one big scan) into typed document instances using an LLM. Consumes ai.parse output and a type taxonomy; discovers an unknown number of documents in any order and emits per-document page ranges + text + type, ready for type-specific ai.extract via control.parallel_map. The inverse of ai.split.
|
|
431
437
|
|
|
438
|
+
**Durable retry:** Provider request retries are separate; the workflow engine does not durably retry this step.
|
|
439
|
+
|
|
432
440
|
**Config** (in `step.with`):
|
|
433
441
|
|
|
434
442
|
| Field | Type | Required | Default | Description |
|
|
@@ -450,6 +458,8 @@ Separate a concatenated batch (one big scan) into typed document instances using
|
|
|
450
458
|
|
|
451
459
|
Classify a document or text into one of a fixed label set using an LLM. Output exposes the picked label (constrained to the configured names), a coarse confidence, and a short justification. Pair with control.fail to reject documents that match an undesired label.
|
|
452
460
|
|
|
461
|
+
**Durable retry:** Provider request retries are separate; the workflow engine does not durably retry this step.
|
|
462
|
+
|
|
453
463
|
**Config** (in `step.with`):
|
|
454
464
|
|
|
455
465
|
| Field | Type | Required | Default | Description |
|
|
@@ -475,6 +485,8 @@ Classify a document or text into one of a fixed label set using an LLM. Output e
|
|
|
475
485
|
|
|
476
486
|
Set key-value pairs in the output object
|
|
477
487
|
|
|
488
|
+
**Durable retry:** Transforms, including those that write files, are not durably retried.
|
|
489
|
+
|
|
478
490
|
**Config** (in `step.with`):
|
|
479
491
|
|
|
480
492
|
| Field | Type | Required | Default | Description |
|
|
@@ -490,6 +502,8 @@ Set key-value pairs in the output object
|
|
|
490
502
|
|
|
491
503
|
Remove specified fields from an object
|
|
492
504
|
|
|
505
|
+
**Durable retry:** Transforms, including those that write files, are not durably retried.
|
|
506
|
+
|
|
493
507
|
**Config** (in `step.with`):
|
|
494
508
|
|
|
495
509
|
| Field | Type | Required | Default | Description |
|
|
@@ -505,6 +519,8 @@ Remove specified fields from an object
|
|
|
505
519
|
|
|
506
520
|
Merge multiple objects or concatenate arrays
|
|
507
521
|
|
|
522
|
+
**Durable retry:** Transforms, including those that write files, are not durably retried.
|
|
523
|
+
|
|
508
524
|
**Config** (in `step.with`):
|
|
509
525
|
|
|
510
526
|
| Field | Type | Required | Default | Description |
|
|
@@ -521,6 +537,8 @@ Merge multiple objects or concatenate arrays
|
|
|
521
537
|
|
|
522
538
|
Split a string by delimiter or extract keys from an object
|
|
523
539
|
|
|
540
|
+
**Durable retry:** Transforms, including those that write files, are not durably retried.
|
|
541
|
+
|
|
524
542
|
**Config** (in `step.with`):
|
|
525
543
|
|
|
526
544
|
| Field | Type | Required | Default | Description |
|
|
@@ -540,6 +558,8 @@ Split a string by delimiter or extract keys from an object
|
|
|
540
558
|
|
|
541
559
|
Merge multiple named inputs into a single output
|
|
542
560
|
|
|
561
|
+
**Durable retry:** Transforms, including those that write files, are not durably retried.
|
|
562
|
+
|
|
543
563
|
**Config** (in `step.with`):
|
|
544
564
|
|
|
545
565
|
| Field | Type | Required | Default | Description |
|
|
@@ -559,6 +579,8 @@ Merge multiple named inputs into a single output
|
|
|
559
579
|
|
|
560
580
|
Fill a DOCX template with data from previous steps. Select a template in the workflow builder or provide a template ID from your workspace.
|
|
561
581
|
|
|
582
|
+
**Durable retry:** Transforms, including those that write files, are not durably retried.
|
|
583
|
+
|
|
562
584
|
**Config** (in `step.with`):
|
|
563
585
|
|
|
564
586
|
| Field | Type | Required | Default | Description |
|
|
@@ -579,6 +601,8 @@ Fill a DOCX template with data from previous steps. Select a template in the wor
|
|
|
579
601
|
|
|
580
602
|
Embed OCR text layer into scanned PDFs/images to make them searchable
|
|
581
603
|
|
|
604
|
+
**Durable retry:** Transforms, including those that write files, are not durably retried.
|
|
605
|
+
|
|
582
606
|
**Config** (in `step.with`):
|
|
583
607
|
|
|
584
608
|
| Field | Type | Required | Default | Description |
|
|
@@ -601,6 +625,8 @@ Embed OCR text layer into scanned PDFs/images to make them searchable
|
|
|
601
625
|
|
|
602
626
|
Convert XLSX spreadsheet to JSON array of row objects for use in scripts or downstream steps
|
|
603
627
|
|
|
628
|
+
**Durable retry:** Transforms, including those that write files, are not durably retried.
|
|
629
|
+
|
|
604
630
|
**Config** (in `step.with`):
|
|
605
631
|
|
|
606
632
|
| Field | Type | Required | Default | Description |
|
|
@@ -621,6 +647,8 @@ Convert XLSX spreadsheet to JSON array of row objects for use in scripts or down
|
|
|
621
647
|
|
|
622
648
|
Execute a TypeScript function in a QuickJS sandbox. Input keys become the function's parameter list, in declaration order, and the required `: R` return-type annotation IS this step's output schema: `inputs: { items, taxRate }` ⇒ `function script(items: …, taxRate: …): R { … }`.
|
|
623
649
|
|
|
650
|
+
**Durable retry:** Transforms, including those that write files, are not durably retried.
|
|
651
|
+
|
|
624
652
|
**Config** (in `step.with`):
|
|
625
653
|
|
|
626
654
|
| Field | Type | Required | Default | Description |
|
|
@@ -638,6 +666,8 @@ Execute a TypeScript function in a QuickJS sandbox. Input keys become the functi
|
|
|
638
666
|
|
|
639
667
|
Split long text into chunks with regex-anchored boundaries, overlap, and header preservation. Accepts raw text or a parsed-document object; chunks carry source page indexes when pages are provided.
|
|
640
668
|
|
|
669
|
+
**Durable retry:** Transforms, including those that write files, are not durably retried.
|
|
670
|
+
|
|
641
671
|
**Config** (in `step.with`):
|
|
642
672
|
|
|
643
673
|
| Field | Type | Required | Default | Description |
|
|
@@ -661,6 +691,8 @@ Split long text into chunks with regex-anchored boundaries, overlap, and header
|
|
|
661
691
|
|
|
662
692
|
Pull named fields from text via regex patterns (deterministic counterpart to ai.extract). Accepts raw text or a parsed-document object; matches carry `_evidence.pageIndex` when pages are provided.
|
|
663
693
|
|
|
694
|
+
**Durable retry:** Transforms, including those that write files, are not durably retried.
|
|
695
|
+
|
|
664
696
|
**Config** (in `step.with`):
|
|
665
697
|
|
|
666
698
|
| Field | Type | Required | Default | Description |
|
|
@@ -680,12 +712,14 @@ Pull named fields from text via regex patterns (deterministic counterpart to ai.
|
|
|
680
712
|
|
|
681
713
|
Make an HTTP request to an external API
|
|
682
714
|
|
|
715
|
+
**Durable retry:** HTTP `GET` and `HEAD` can durably retry transient timeout, rate limits, selected retryable server failures failures. Other methods are not replayed.
|
|
716
|
+
|
|
683
717
|
**Config** (in `step.with`):
|
|
684
718
|
|
|
685
719
|
| Field | Type | Required | Default | Description |
|
|
686
720
|
| --- | --- | --- | --- | --- |
|
|
687
721
|
| `url` | string | yes | | Request URL (supports template expressions) |
|
|
688
|
-
| `method` | `"GET"` \| `"POST"` \| `"PUT"` \| `"PATCH"` \| `"DELETE"` | no | `"GET"` | |
|
|
722
|
+
| `method` | `"GET"` \| `"HEAD"` \| `"POST"` \| `"PUT"` \| `"PATCH"` \| `"DELETE"` | no | `"GET"` | |
|
|
689
723
|
| `headers` | record<string, string> | no | | HTTP headers |
|
|
690
724
|
| `body` | unknown | no | | Request body (JSON or string) |
|
|
691
725
|
| `timeout` | number | no | `30000` | Timeout in milliseconds |
|
|
@@ -705,6 +739,8 @@ Make an HTTP request to an external API
|
|
|
705
739
|
|
|
706
740
|
Execute another workflow and return its output
|
|
707
741
|
|
|
742
|
+
**Durable retry:** Invoked workflows are not replayed as durable leaf attempts.
|
|
743
|
+
|
|
708
744
|
**Config** (in `step.with`):
|
|
709
745
|
|
|
710
746
|
| Field | Type | Required | Default | Description |
|
|
@@ -725,6 +761,8 @@ Execute another workflow and return its output
|
|
|
725
761
|
|
|
726
762
|
Fetch a webpage and convert content to markdown
|
|
727
763
|
|
|
764
|
+
**Durable retry:** Supported for transient timeout, rate limits, selected retryable server failures failures.
|
|
765
|
+
|
|
728
766
|
**Config** (in `step.with`):
|
|
729
767
|
|
|
730
768
|
| Field | Type | Required | Default | Description |
|
|
@@ -751,6 +789,8 @@ Fetch a webpage and convert content to markdown
|
|
|
751
789
|
|
|
752
790
|
Branch execution based on a condition expression
|
|
753
791
|
|
|
792
|
+
**Durable retry:** The control container itself is not retried, but eligible leaves inside its sequential scope may retry durably.
|
|
793
|
+
|
|
754
794
|
**Config** (at step level):
|
|
755
795
|
|
|
756
796
|
| Field | Type | Required | Default | Description |
|
|
@@ -769,6 +809,8 @@ Branch execution based on a condition expression
|
|
|
769
809
|
|
|
770
810
|
Multi-way routing: resolve an expression and run the first case whose value matches (else default). Cleaner than a nested control.if chain for routing an item to one of N pipelines by a discriminator field like a document type.
|
|
771
811
|
|
|
812
|
+
**Durable retry:** The control container itself is not retried, but eligible leaves inside its sequential scope may retry durably.
|
|
813
|
+
|
|
772
814
|
**Config** (at step level):
|
|
773
815
|
|
|
774
816
|
| Field | Type | Required | Default | Description |
|
|
@@ -788,6 +830,8 @@ Multi-way routing: resolve an expression and run the first case whose value matc
|
|
|
788
830
|
|
|
789
831
|
Loop over an array and execute steps for each item
|
|
790
832
|
|
|
833
|
+
**Durable retry:** The control container itself is not retried, but eligible leaves inside its sequential scope may retry durably.
|
|
834
|
+
|
|
791
835
|
**Config** (at step level):
|
|
792
836
|
|
|
793
837
|
| Field | Type | Required | Default | Description |
|
|
@@ -808,6 +852,8 @@ Loop over an array and execute steps for each item
|
|
|
808
852
|
|
|
809
853
|
Iterate over an array with concurrent execution up to a limit
|
|
810
854
|
|
|
855
|
+
**Durable retry:** The control container and leaves inside its concurrent branches do not retry durably.
|
|
856
|
+
|
|
811
857
|
**Config** (at step level):
|
|
812
858
|
|
|
813
859
|
| Field | Type | Required | Default | Description |
|
|
@@ -829,6 +875,8 @@ Iterate over an array with concurrent execution up to a limit
|
|
|
829
875
|
|
|
830
876
|
Execute multiple branches concurrently
|
|
831
877
|
|
|
878
|
+
**Durable retry:** The control container and leaves inside its concurrent branches do not retry durably.
|
|
879
|
+
|
|
832
880
|
**Config** (at step level):
|
|
833
881
|
|
|
834
882
|
_No fields._
|
|
@@ -841,6 +889,8 @@ _No fields._
|
|
|
841
889
|
|
|
842
890
|
Pause workflow execution for a specified duration
|
|
843
891
|
|
|
892
|
+
**Durable retry:** This control step is not retried durably.
|
|
893
|
+
|
|
844
894
|
**Config** (at step level):
|
|
845
895
|
|
|
846
896
|
| Field | Type | Required | Default | Description |
|
|
@@ -857,6 +907,8 @@ Pause workflow execution for a specified duration
|
|
|
857
907
|
|
|
858
908
|
Terminate the workflow with a typed status code + message. With an optional condition, only fails when the condition is truthy; otherwise always fails when reached. Pair with ai.classify or any prior step to fail fast on bad inputs.
|
|
859
909
|
|
|
910
|
+
**Durable retry:** This control step is not retried durably.
|
|
911
|
+
|
|
860
912
|
**Config** (at step level):
|
|
861
913
|
|
|
862
914
|
| Field | Type | Required | Default | Description |
|
|
@@ -127,6 +127,44 @@ Step references resolve via Liquid template expressions:
|
|
|
127
127
|
`steps[].name` is the only handle into the step from later steps. Use
|
|
128
128
|
short, descriptive names (`parse`, `extract`, `score`).
|
|
129
129
|
|
|
130
|
+
<!-- GENERATED:RETRY_REFERENCE START -->
|
|
131
|
+
## Durable retry policies
|
|
132
|
+
|
|
133
|
+
_Policy syntax is generated from `WorkflowRetryPolicySchema` and `StepRetryPolicySchema`; step capability notes are generated from `STEP_RETRY_CAPABILITIES` in `@eigenpal/types`._
|
|
134
|
+
|
|
135
|
+
- Workflow policy values: `automatic`, `never` or an object with `mode` and `maxAttempts`.
|
|
136
|
+
- Step policy values: `inherit`, `automatic`, `never`. `automatic` supports object form with `mode` and `maxAttempts`; `never` supports `{ mode: 'never' }`; `inherit` is string-only.
|
|
137
|
+
- The schema accepts `maxAttempts` from 1 through 10. Studio offers 2-3 total attempts, and the current worker ceiling is 3.
|
|
138
|
+
- `maxAttempts` includes the first attempt. If no policy is set, durable retries are off.
|
|
139
|
+
|
|
140
|
+
```yaml
|
|
141
|
+
settings:
|
|
142
|
+
retry:
|
|
143
|
+
mode: automatic
|
|
144
|
+
maxAttempts: 3
|
|
145
|
+
|
|
146
|
+
steps:
|
|
147
|
+
- name: fetch-catalog
|
|
148
|
+
type: action.http
|
|
149
|
+
retry: inherit
|
|
150
|
+
with:
|
|
151
|
+
method: GET
|
|
152
|
+
url: 'https://api.example.com/catalog'
|
|
153
|
+
|
|
154
|
+
- name: read-product-page
|
|
155
|
+
type: action.website-reader
|
|
156
|
+
retry: never
|
|
157
|
+
with:
|
|
158
|
+
url: '{{ input.url }}'
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
`automatic` retries transient timeouts, rate limits, and selected retryable server failures. Delays use bounded exponential backoff, honor `Retry-After`, and stop after a five-minute elapsed budget.
|
|
162
|
+
|
|
163
|
+
Durable leaf retries are supported for Website Reader and HTTP `GET`/`HEAD`. Unsafe HTTP methods, Invoke Workflow, AI steps (which may have separate provider request retries), and transforms or file outputs are not durably replayed. Control containers are not attempts themselves; eligible leaves inside sequential If, Switch, and For Each scopes may retry, while concurrent Parallel and Parallel Map branches do not. See each generated step entry for its capability.
|
|
164
|
+
|
|
165
|
+
Legacy whole-run retry counts are accepted for compatibility but no longer restart failed runs. Move retry intent to the workflow retry default or an eligible step.
|
|
166
|
+
<!-- GENERATED:RETRY_REFERENCE END -->
|
|
167
|
+
|
|
130
168
|
### `output`
|
|
131
169
|
|
|
132
170
|
```yaml
|