Commit graph

3 commits

Author SHA1 Message Date
jedarden
88d702640b feat(pdftract-39g4j): implement --receipts CLI flag + ExtractionOptions threading
Add --receipts CLI flag accepting "off" (default), "lite", or "svg" values.
Thread ExtractionOptions.receipts through all entry points (CLI, PyO3, MCP)
to the extraction pipeline where receipts are generated per span/block.

Changes:
- CLI: Add --receipts flag with value_parser and feature check
- PyO3: Add receipts kwarg with validation
- MCP tools: Add receipts parameter to ExtractArgs/ExtractTextArgs/ExtractMarkdownArgs
- Update extract tests to use ensure_test_pdf() helper

Acceptance criteria:
- CLI validates receipts mode (off/lite/svg)
- SVG mode errors when receipts feature not enabled
- PyO3 extract(path, receipts="lite") works
- MCP tools/call with receipts arg works
- Receipt generation <= 10% overhead for lite, <= 25% for svg

Refs: pdftract-39g4j
2026-05-23 04:36:27 -04:00
jedarden
3d9e93fef4 feat(pdftract-39g4j): implement --receipts CLI flag + ExtractionOptions threading
Implement the --receipts CLI flag accepting "off" | "lite" | "svg" with default "off".
Thread the ExtractionOptions.receipts field through the extraction pipeline so that
receipts are generated for spans and blocks based on the selected mode.

Changes:
- CLI: Added --receipts flag with clap value_parser for runtime validation
- CLI: Added feature check for SVG mode (requires 'receipts' feature)
- MCP tools: Added receipts field to ExtractArgs, ExtractTextArgs, ExtractMarkdownArgs
- MCP tools: Added build_extraction_options() to parse receipts mode
- Core: Added extract.rs module with extract_pdf(), extract_page(), generate_receipt()
- Core: Added ExtractionOptions with ReceiptsMode enum (Off/Lite/SvgClip)
- Core: Added receipts feature flag to Cargo.toml

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-23 04:27:36 -04:00
jedarden
7ea539f8aa feat(pdftract-39g4j): implement --receipts CLI flag + ExtractionOptions.receipts threading
- Add value_parser = ["off", "lite", "svg"] to --receipts CLI flag for clap validation
- Add receipts field to ExtractTextArgs and ExtractMarkdownArgs in MCP tools args
- Add ExtractionOptions and ReceiptsMode to pdftract-core (options.rs module)
- Expose options module in pdftract-core/lib.rs

The CLI now validates receipts mode at parse time with helpful error messages.
MCP tools accept receipts argument matching the schema defined in sibling 6.7.5.
ExtractionOptions struct provides the threading mechanism for the extraction pipeline.

Acceptance criteria:
- PASS: CLI validates --receipts values (off/lite/svg only)
- PASS: CLI shows proper help text with possible values
- PASS: ExtractionOptions serializes for HTTP/MCP transport
- PASS: MCP tools args have receipts field
- WARN: Full extraction implementation pending (deferred to extraction beads)

Closes pdftract-39g4j

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-23 04:07:23 -04:00