> ## Documentation Index
> Fetch the complete documentation index at: https://docs.eigenpal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 0.14.0

> EigenPal platform release 0.14.0

This release gives document teams more control over structured-data quality.
Exact-diff evaluators can express field-specific matching rules, PDF parsing can
preserve visual layout, and spreadsheet conversion can retain the rows, columns,
and displayed values that matter to downstream workflows.

CLI authoring guidance makes these capabilities easier to discover and safer to
automate, with non-interactive commands failing clearly instead of waiting on
unavailable prompts.

## Platform (Studio)

* `ai.parse` adds `outputFormat: layout` for native PDF extraction. It returns fixed-width plain text that preserves columns, spacing, and line breaks for multi-column forms and tables that lose meaning when flattened. This PDF-only format must be selected explicitly with `parseMode: native` or `parseMode: native-or-ocr`: native mode fails closed if layout extraction cannot complete, while hybrid mode keeps accepted layout pages and substitutes OCR markdown only for suspect or empty pages. Existing formats and defaults are unchanged.
* Spreadsheet to JSON now handles `.xls` and `.xlsx` workbooks with configurable headerless input or an explicit header row, named or positional column projection, rectangular ranges, and raw or displayed cell values. Displayed values preserve formatted text such as dates, leading zeros, punctuation, diacritics, and embedded newlines. Blank-cell and blank-row policies make sparse sheets predictable, while optional sheet metadata and diagnostics explain the selected range and non-fatal issues. Existing zero-config output remains `rows`, plus `fileId` when CSV output is enabled; zero-config CSV keeps the full selected sheet, and configured CSV follows the same projection. File, row, column, and cell limits reject unsafe workloads before conversion.
* Exact-diff evaluators add composable per-field rules for extraction outputs. Choose ordered or unordered comparison independently from `items: at-least | at-most | exactly`, set numeric tolerances, and reject unexpected object fields where strict output shapes matter. Ordered arrays retain prefix-compatible matching, while unordered arrays find the best one-to-one structural pairing instead of depending on row order. Unordered object arrays can also use typed `matchBy` identities such as `sku` or `[country, sku]` for predictable single- or composite-key matching. Studio now provides a rule editor with path-aware validation. Grounding metadata is excluded from scoring, oversized comparison workloads fail safely with bounded diagnostics, and existing evaluator configurations keep their historical behavior.

## Public API

* Template creation now accepts reusable file references correctly, restoring CLI template uploads and workflow pushes that use local DOCX or XLSX files.

## CLI

* CLI authoring guidance now covers the template lifecycle and file uploads, workflow creation and updates, dataset and evaluator `--file` usage, and discovery of evaluator types, step types, and models. Examples also use the correct workflow, agent, and execution IDs and clarify how to invoke runs, prepare expected artifacts, and review outputs.
* Commands that require confirmation now fail immediately in CI, piped sessions, and agent terminals instead of waiting for input that cannot arrive. Help text identifies the required `--yes` or `--force` override for destructive and replacement actions, while `eigenpal auth login` remains an explicitly interactive flow.
* CLI evaluator authoring now exposes exact-diff per-field rules for array cardinality and order, strict extra fields, numeric tolerance, and optional typed single- or composite-field `matchBy` identities. Generated guidance explains array and item paths, ordered prefix compatibility, bounded unordered matching, grounding metadata exclusion, and migration from legacy evaluator options.
* The generated step catalog now documents `ai.parse` `outputFormat: layout`, including its PDF-only requirement, compatible native modes, fail-closed native behavior, and page-level OCR fallback in hybrid mode. Workflow authors can discover and configure layout-preserving parsing without leaving the CLI authoring workflow.
* The generated step catalog now documents the complete Spreadsheet to JSON authoring surface: `.xls` and `.xlsx` input, header and column selection, ranges, raw or displayed values, blank handling, optional metadata and diagnostics, CSV projection compatibility, and configurable safety limits.

## Infrastructure & processing

* `ai.parse` adds `outputFormat: layout` for native PDF extraction. It returns fixed-width plain text that preserves columns, spacing, and line breaks for multi-column forms and tables that lose meaning when flattened. This PDF-only format must be selected explicitly with `parseMode: native` or `parseMode: native-or-ocr`: native mode fails closed if layout extraction cannot complete, while hybrid mode keeps accepted layout pages and substitutes OCR markdown only for suspect or empty pages. Existing formats and defaults are unchanged.
* Single-node deployments now apply the complete upgrade sequence before serving traffic and include operator commands to inspect, validate, plan, or apply upgrade steps manually.
* Spreadsheet to JSON now handles `.xls` and `.xlsx` workbooks with configurable headerless input or an explicit header row, named or positional column projection, rectangular ranges, and raw or displayed cell values. Displayed values preserve formatted text such as dates, leading zeros, punctuation, diacritics, and embedded newlines. Blank-cell and blank-row policies make sparse sheets predictable, while optional sheet metadata and diagnostics explain the selected range and non-fatal issues. Existing zero-config output remains `rows`, plus `fileId` when CSV output is enabled; zero-config CSV keeps the full selected sheet, and configured CSV follows the same projection. File, row, column, and cell limits reject unsafe workloads before conversion.
* Exact-diff evaluators add composable per-field rules for extraction outputs. Choose ordered or unordered comparison independently from `items: at-least | at-most | exactly`, set numeric tolerances, and reject unexpected object fields where strict output shapes matter. Ordered arrays retain prefix-compatible matching, while unordered arrays find the best one-to-one structural pairing instead of depending on row order. Unordered object arrays can also use typed `matchBy` identities such as `sku` or `[country, sku]` for predictable single- or composite-key matching. Studio now provides a rule editor with path-aware validation. Grounding metadata is excluded from scoring, oversized comparison workloads fail safely with bounded diagnostics, and existing evaluator configurations keep their historical behavior.
