@eigenpal/cli 0.20.27 → 0.20.29

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.
@@ -115,6 +115,23 @@ Use stable ids in scripts:
115
115
  - Workflow dataset example id: `evx_...`
116
116
  - Agent dataset example id: `aeg_...`
117
117
 
118
+ ## Document Parsing
119
+
120
+ Use `ai.parse-v2` for new workflows. Start with only `input`: Eigenpal preserves native PDF text and recovers scanned/mixed pages through available, allowed OCR then vision. Text/Office parsing stays local. Do not add workflow-specific fallback branches.
121
+
122
+
123
+ For mixed spreadsheet date/identifier columns, use `ai.parse-v2` with `output.includeCellMetadata: true`, or `transform.xlsx-to-json` with `valueMode: displayed` and `includeCellMetadata: true`. V2 includes raw/displayed value, type, address, number format, workbook date system and optional date rendering in page evidence and text. JSON conversion puts evidence in `cellMetadata`, linked by `outputRowIndex` and `key`; pass the full output to the extraction LLM, not just `rows`. Recorded date formats control rendering; headers and numeric magnitude do not classify dates. Preserve ambiguous identifiers/strings and ask extraction to flag conflicting evidence. Never guess missing date formats or clean names during parsing. Conversion trims only implicit empty trailing extent; explicit ranges and real distant cells retain limits. Formulas use cached values and are never evaluated.
124
+
125
+ Before authoring, check the live server supports v2 with `eigenpal workflow step-type get ai.parse-v2`, then read `eigenpal docs read steps/ai/parse-v2`. Inspect `eigenpal models parser-readiness --json`; catalog readiness is not a live provider or worker-binary probe. Test native, scanned, and mixed inputs.
126
+
127
+ Figure enrichment is independently opt-in; it may call vision even with native-only text transcription. Leave enrichment disabled for fully local processing.
128
+
129
+ Configure `policy.native` (`prefer`, `require`, `skip`) and `policy.imageReading.order` only to express intentional restrictions/preferences. `providers.ocr` and `providers.vision` are exact pins. Deployment parsing defaults and provider boundaries apply; general text-generation defaults do not select the parser vision model.
130
+
131
+ Use `output.textFormat` for representation and `output.require` for required evidence. Vision cannot supply word coordinates. Native spatial whitespace requires plain text. Unresolved pages fail by default; if the user explicitly chooses `advanced.allowPartial`, inspect `completeness` before downstream extraction.
132
+
133
+ Legacy `ai.parse` remains supported. Never mix its flat `parseMode`/`nativeText` settings into v2. Migrate to a new file with `eigenpal workflow migrate-parser workflow.yaml --policy preserve --out workflow-v2.yaml` or `--policy auto` to adopt recommended defaults. Preserve mode retains OCR-only restrictions; automatic mode can broaden egress and costs. Review reported changes and representative outputs before publishing.
134
+
118
135
  ## Workflow Loop
119
136
 
120
137
  ```bash
@@ -8,12 +8,14 @@ Inspect models and providers configured for the current tenant environment (text
8
8
  - [Commands](#commands)
9
9
  - [Core](#core)
10
10
  - [Details](#details)
11
+ - [`eigenpal models parser-readiness [options]`](#eigenpal-models-parser-readiness-options)
11
12
  - [`eigenpal models list|ls [options]`](#eigenpal-models-listls-options)
12
13
 
13
14
  ## Surface
14
15
 
15
16
  ```
16
17
  models
18
+ ├── parser-readiness
17
19
  └── list|ls
18
20
  ```
19
21
 
@@ -21,12 +23,24 @@ models
21
23
 
22
24
  ### Core
23
25
 
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. |
26
+ | Command | Description |
27
+ | -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
28
+ | `eigenpal models parser-readiness [options]` | Inspect deployment-approved ai.parse-v2 defaults. Catalog state only; document smoke tests are required for live readiness. |
29
+ | `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
30
 
28
31
  ## Details
29
32
 
33
+ ### `eigenpal models parser-readiness [options]`
34
+
35
+ Inspect deployment-approved ai.parse-v2 defaults. Catalog state only; document smoke tests are required for live readiness.
36
+
37
+ ### Options
38
+
39
+ | Flag | Required | Default | Description |
40
+ | ------------------ | -------- | ------- | ------------------------------------ |
41
+ | `--base-url <url>` | no | | Server base URL |
42
+ | `--json` | no | | Emit machine-readable JSON on stdout |
43
+
30
44
  ### `eigenpal models list|ls [options]`
31
45
 
32
46
  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.
@@ -20,6 +20,7 @@ eigenpal
20
20
  │ ├── push
21
21
  │ ├── move <workflow-id>
22
22
  │ ├── delete <workflow-id>
23
+ │ ├── migrate-parser <file>
23
24
  │ ├── folders
24
25
  │ │ ├── list|ls
25
26
  │ │ ├── create <path>
@@ -139,6 +140,7 @@ eigenpal
139
140
  │ └── env
140
141
  │ └── pull [target]
141
142
  ├── models
143
+ │ ├── parser-readiness
142
144
  │ └── list|ls
143
145
  ├── email-servers|email-server
144
146
  │ ├── list|ls
@@ -23,6 +23,7 @@ Manage workflows: push, pull, and evaluate.
23
23
  - [`eigenpal workflow push [options]`](#eigenpal-workflow-push-options)
24
24
  - [`eigenpal workflow move [options] <workflow-id>`](#eigenpal-workflow-move-options-workflow-id)
25
25
  - [`eigenpal workflow delete [options] <workflow-id>`](#eigenpal-workflow-delete-options-workflow-id)
26
+ - [`eigenpal workflow migrate-parser [options] <file>`](#eigenpal-workflow-migrate-parser-options-file)
26
27
  - [`eigenpal workflow validate [options] [path]`](#eigenpal-workflow-validate-options-path)
27
28
  - [`eigenpal workflow clear-local [options] [examples...]`](#eigenpal-workflow-clear-local-options-examples)
28
29
  - [`eigenpal workflow folders list|ls [options]`](#eigenpal-workflow-folders-listls-options)
@@ -82,6 +83,7 @@ workflow
82
83
  ├── push
83
84
  ├── move <workflow-id>
84
85
  ├── delete <workflow-id>
86
+ ├── migrate-parser <file>
85
87
  ├── folders
86
88
  │ ├── list|ls
87
89
  │ ├── create <path>
@@ -155,6 +157,7 @@ workflow
155
157
  | `eigenpal workflow push [options]` | Create or update a workflow from a YAML file. |
156
158
  | `eigenpal workflow move [options] <workflow-id>` | Move a workflow to a folder path, creating folders as needed |
157
159
  | `eigenpal workflow delete [options] <workflow-id>` | Delete a workflow definition while preserving past runs. |
160
+ | `eigenpal workflow migrate-parser [options] <file>` | Write a reviewable ai.parse-v2 workflow migration to a new file. Never pushes or changes the source. |
158
161
  | `eigenpal workflow validate [options] [path]` | Local-only validation. Without [path]: runs the templated three-way check (./workflow.yaml + ./evaluators.yaml + ./dataset/) in the project root. When the root has no workflow.yaml, discovers nested projects under eigenpal/workflows/<slug>/ or workflows/<slug>/ and validates each. With [path] pointing at a YAML file: validates that workflow.yaml only. For per-noun targeting use `evaluators validate` or `dataset validate`. |
159
162
  | `eigenpal workflow clear-local [options] [examples...]` | Delete local execution artifacts under ./dataset/examples/. Keeps the latest run per example by default. |
160
163
 
@@ -352,6 +355,24 @@ Delete a workflow definition while preserving past runs.
352
355
  | `--base-url <url>` | no | | Server base URL |
353
356
  | `--json` | no | | Emit machine-readable JSON on stdout |
354
357
 
358
+ ### `eigenpal workflow migrate-parser [options] <file>`
359
+
360
+ Write a reviewable ai.parse-v2 workflow migration to a new file. Never pushes or changes the source.
361
+
362
+ ### Arguments
363
+
364
+ | Name | Required | Variadic | Description |
365
+ | ------ | -------- | -------- | ----------- |
366
+ | `file` | yes | no | |
367
+
368
+ ### Options
369
+
370
+ | Flag | Required | Default | Description |
371
+ | ------------------- | -------- | ------- | ----------------------------------------------------------------------------------- |
372
+ | `--policy <policy>` | yes | | preserve backend restrictions, or auto to adopt automatic native/OCR/vision parsing |
373
+ | `--out <file>` | yes | | New YAML output file (must not already exist) |
374
+ | `--json` | no | | Emit migration summary as JSON |
375
+
355
376
  ### `eigenpal workflow validate [options] [path]`
356
377
 
357
378
  Local-only validation. Without [path]: runs the templated three-way check (./workflow.yaml + ./evaluators.yaml + ./dataset/) in the project root. When the root has no workflow.yaml, discovers nested projects under eigenpal/workflows/<slug>/ or workflows/<slug>/ and validates each. With [path] pointing at a YAML file: validates that workflow.yaml only. For per-noun targeting use `evaluators validate` or `dataset validate`.