- Added `cmd_explain_diagnostic` function to CLI for detailed diagnostic code explanation - Added `--list-diagnostics` and `--explain-diagnostic <code>` CLI commands - Verified all Phase 1.1-1.5 modules use unified DiagCode (lexer, parser, xref, stream, catalog, outline, pages) - DIAGNOSTIC_CATALOG provides metadata for all 61 diagnostic codes - Diagnostic struct size: 56 bytes (within 48-64 target range) - emit! macro provides ergonomic diagnostic emission - INV-8 maintained: no panics in error paths All diagnostic codes follow naming convention: - STRUCT_*: PDF structure errors - STREAM_*: Stream decoder errors - XREF_*: Cross-reference table errors - ENCRYPTION_*: Encryption-related errors - OCR_*: OCR pipeline errors - REMOTE_*: Remote source errors - PAGE_*: Page-level errors - FONT_*: Font pipeline errors - GSTATE_*: Graphics state errors - LAYOUT_*: Layout and reading order errors - MCP_*: MCP server errors - CACHE_*: Cache errors References: Phase 1.6 (error recovery), INV-8, Phase 0.4 (clippy enforces doc comments)
33 lines
778 B
TOML
33 lines
778 B
TOML
[package]
|
|
name = "pdftract-cli"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
publish = true
|
|
|
|
[[bin]]
|
|
name = "pdftract"
|
|
path = "src/main.rs"
|
|
|
|
[[bin]]
|
|
name = "generate_lzw_fixtures"
|
|
path = "../../tests/fixtures/generate_lzw_fixtures_main.rs"
|
|
|
|
default-run = "pdftract"
|
|
|
|
[dependencies]
|
|
anyhow = { workspace = true }
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
clap = { version = "4.5", features = ["derive"] }
|
|
lzw = { workspace = true }
|
|
pdftract-core = { path = "../pdftract-core" }
|
|
regex = "1.10"
|
|
secrecy = { workspace = true }
|
|
serde = { workspace = true, features = ["derive"] }
|
|
serde_json = "1.0"
|
|
tempfile = "3"
|
|
tera = "1"
|
|
tokio = { version = "1", features = ["full"] }
|
|
walkdir = "2"
|