@xberg-io/opencode-xberg 1.3.11 → 1.4.0

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.
Files changed (150) hide show
  1. package/.opencode/ai-rulez-content.js +1 -1
  2. package/.opencode/commands/xberg-extract.md +1 -1
  3. package/.opencode/commands/xberg-ocr.md +1 -1
  4. package/.opencode/plugins/xberg.js +1 -1
  5. package/.opencode/skills/xberg/SKILL.md +6 -6
  6. package/.opencode/skills/xberg/index.md +3 -3
  7. package/.opencode/skills/xberg/references/advanced-features.md +1 -1
  8. package/.opencode/skills/xberg/references/cli-reference.md +5 -3
  9. package/.opencode/skills/xberg/references/configuration.md +4 -4
  10. package/.opencode/skills/xberg/references/nodejs-api.md +1 -1
  11. package/.opencode/skills/xberg/references/other-bindings.md +1 -1
  12. package/.opencode/skills/xberg/references/python-api.md +5 -5
  13. package/.opencode/skills/xberg/references/rust-api.md +1 -1
  14. package/.opencode/skills/xberg/references/supported-formats.md +1 -1
  15. package/.opencode/skills/xberg-batch-extraction/SKILL.md +1 -1
  16. package/.opencode/skills/xberg-batch-extraction/index.md +3 -3
  17. package/.opencode/skills/xberg-batch-extraction/references/advanced-features.md +1 -1
  18. package/.opencode/skills/xberg-batch-extraction/references/cli-reference.md +5 -3
  19. package/.opencode/skills/xberg-batch-extraction/references/configuration.md +4 -4
  20. package/.opencode/skills/xberg-batch-extraction/references/nodejs-api.md +1 -1
  21. package/.opencode/skills/xberg-batch-extraction/references/other-bindings.md +1 -1
  22. package/.opencode/skills/xberg-batch-extraction/references/python-api.md +5 -5
  23. package/.opencode/skills/xberg-batch-extraction/references/rust-api.md +1 -1
  24. package/.opencode/skills/xberg-batch-extraction/references/supported-formats.md +1 -1
  25. package/.opencode/skills/xberg-chunking/SKILL.md +1 -1
  26. package/.opencode/skills/xberg-chunking/index.md +3 -3
  27. package/.opencode/skills/xberg-chunking/references/advanced-features.md +1 -1
  28. package/.opencode/skills/xberg-chunking/references/cli-reference.md +5 -3
  29. package/.opencode/skills/xberg-chunking/references/configuration.md +4 -4
  30. package/.opencode/skills/xberg-chunking/references/nodejs-api.md +1 -1
  31. package/.opencode/skills/xberg-chunking/references/other-bindings.md +1 -1
  32. package/.opencode/skills/xberg-chunking/references/python-api.md +5 -5
  33. package/.opencode/skills/xberg-chunking/references/rust-api.md +1 -1
  34. package/.opencode/skills/xberg-chunking/references/supported-formats.md +1 -1
  35. package/.opencode/skills/xberg-extracting-keywords/SKILL.md +1 -1
  36. package/.opencode/skills/xberg-extracting-keywords/index.md +3 -3
  37. package/.opencode/skills/xberg-extracting-keywords/references/advanced-features.md +1 -1
  38. package/.opencode/skills/xberg-extracting-keywords/references/cli-reference.md +5 -3
  39. package/.opencode/skills/xberg-extracting-keywords/references/configuration.md +4 -4
  40. package/.opencode/skills/xberg-extracting-keywords/references/nodejs-api.md +1 -1
  41. package/.opencode/skills/xberg-extracting-keywords/references/other-bindings.md +1 -1
  42. package/.opencode/skills/xberg-extracting-keywords/references/python-api.md +5 -5
  43. package/.opencode/skills/xberg-extracting-keywords/references/rust-api.md +1 -1
  44. package/.opencode/skills/xberg-extracting-keywords/references/supported-formats.md +1 -1
  45. package/.opencode/skills/xberg-extracting-tables/SKILL.md +1 -1
  46. package/.opencode/skills/xberg-extracting-tables/index.md +3 -3
  47. package/.opencode/skills/xberg-extracting-tables/references/advanced-features.md +1 -1
  48. package/.opencode/skills/xberg-extracting-tables/references/cli-reference.md +5 -3
  49. package/.opencode/skills/xberg-extracting-tables/references/configuration.md +4 -4
  50. package/.opencode/skills/xberg-extracting-tables/references/nodejs-api.md +1 -1
  51. package/.opencode/skills/xberg-extracting-tables/references/other-bindings.md +1 -1
  52. package/.opencode/skills/xberg-extracting-tables/references/python-api.md +5 -5
  53. package/.opencode/skills/xberg-extracting-tables/references/rust-api.md +1 -1
  54. package/.opencode/skills/xberg-extracting-tables/references/supported-formats.md +1 -1
  55. package/.opencode/skills/xberg-extracting-with-ocr/SKILL.md +1 -1
  56. package/.opencode/skills/xberg-extracting-with-ocr/index.md +3 -3
  57. package/.opencode/skills/xberg-extracting-with-ocr/references/advanced-features.md +1 -1
  58. package/.opencode/skills/xberg-extracting-with-ocr/references/cli-reference.md +5 -3
  59. package/.opencode/skills/xberg-extracting-with-ocr/references/configuration.md +4 -4
  60. package/.opencode/skills/xberg-extracting-with-ocr/references/nodejs-api.md +1 -1
  61. package/.opencode/skills/xberg-extracting-with-ocr/references/other-bindings.md +1 -1
  62. package/.opencode/skills/xberg-extracting-with-ocr/references/python-api.md +5 -5
  63. package/.opencode/skills/xberg-extracting-with-ocr/references/rust-api.md +1 -1
  64. package/.opencode/skills/xberg-extracting-with-ocr/references/supported-formats.md +1 -1
  65. package/.opencode/skills/xberg-picking-a-format/SKILL.md +1 -1
  66. package/.opencode/skills/xberg-picking-a-format/index.md +3 -3
  67. package/.opencode/skills/xberg-picking-a-format/references/advanced-features.md +1 -1
  68. package/.opencode/skills/xberg-picking-a-format/references/cli-reference.md +5 -3
  69. package/.opencode/skills/xberg-picking-a-format/references/configuration.md +4 -4
  70. package/.opencode/skills/xberg-picking-a-format/references/nodejs-api.md +1 -1
  71. package/.opencode/skills/xberg-picking-a-format/references/other-bindings.md +1 -1
  72. package/.opencode/skills/xberg-picking-a-format/references/python-api.md +5 -5
  73. package/.opencode/skills/xberg-picking-a-format/references/rust-api.md +1 -1
  74. package/.opencode/skills/xberg-picking-a-format/references/supported-formats.md +1 -1
  75. package/.pi/prompts/xberg-extract.md +1 -1
  76. package/.pi/prompts/xberg-ocr.md +1 -1
  77. package/.pi/skills/xberg/SKILL.md +6 -6
  78. package/.pi/skills/xberg/index.md +3 -3
  79. package/.pi/skills/xberg/references/advanced-features.md +1 -1
  80. package/.pi/skills/xberg/references/cli-reference.md +5 -3
  81. package/.pi/skills/xberg/references/configuration.md +4 -4
  82. package/.pi/skills/xberg/references/nodejs-api.md +1 -1
  83. package/.pi/skills/xberg/references/other-bindings.md +1 -1
  84. package/.pi/skills/xberg/references/python-api.md +5 -5
  85. package/.pi/skills/xberg/references/rust-api.md +1 -1
  86. package/.pi/skills/xberg/references/supported-formats.md +1 -1
  87. package/.pi/skills/xberg-batch-extraction/SKILL.md +1 -1
  88. package/.pi/skills/xberg-batch-extraction/index.md +3 -3
  89. package/.pi/skills/xberg-batch-extraction/references/advanced-features.md +1 -1
  90. package/.pi/skills/xberg-batch-extraction/references/cli-reference.md +5 -3
  91. package/.pi/skills/xberg-batch-extraction/references/configuration.md +4 -4
  92. package/.pi/skills/xberg-batch-extraction/references/nodejs-api.md +1 -1
  93. package/.pi/skills/xberg-batch-extraction/references/other-bindings.md +1 -1
  94. package/.pi/skills/xberg-batch-extraction/references/python-api.md +5 -5
  95. package/.pi/skills/xberg-batch-extraction/references/rust-api.md +1 -1
  96. package/.pi/skills/xberg-batch-extraction/references/supported-formats.md +1 -1
  97. package/.pi/skills/xberg-chunking/SKILL.md +1 -1
  98. package/.pi/skills/xberg-chunking/index.md +3 -3
  99. package/.pi/skills/xberg-chunking/references/advanced-features.md +1 -1
  100. package/.pi/skills/xberg-chunking/references/cli-reference.md +5 -3
  101. package/.pi/skills/xberg-chunking/references/configuration.md +4 -4
  102. package/.pi/skills/xberg-chunking/references/nodejs-api.md +1 -1
  103. package/.pi/skills/xberg-chunking/references/other-bindings.md +1 -1
  104. package/.pi/skills/xberg-chunking/references/python-api.md +5 -5
  105. package/.pi/skills/xberg-chunking/references/rust-api.md +1 -1
  106. package/.pi/skills/xberg-chunking/references/supported-formats.md +1 -1
  107. package/.pi/skills/xberg-extracting-keywords/SKILL.md +1 -1
  108. package/.pi/skills/xberg-extracting-keywords/index.md +3 -3
  109. package/.pi/skills/xberg-extracting-keywords/references/advanced-features.md +1 -1
  110. package/.pi/skills/xberg-extracting-keywords/references/cli-reference.md +5 -3
  111. package/.pi/skills/xberg-extracting-keywords/references/configuration.md +4 -4
  112. package/.pi/skills/xberg-extracting-keywords/references/nodejs-api.md +1 -1
  113. package/.pi/skills/xberg-extracting-keywords/references/other-bindings.md +1 -1
  114. package/.pi/skills/xberg-extracting-keywords/references/python-api.md +5 -5
  115. package/.pi/skills/xberg-extracting-keywords/references/rust-api.md +1 -1
  116. package/.pi/skills/xberg-extracting-keywords/references/supported-formats.md +1 -1
  117. package/.pi/skills/xberg-extracting-tables/SKILL.md +1 -1
  118. package/.pi/skills/xberg-extracting-tables/index.md +3 -3
  119. package/.pi/skills/xberg-extracting-tables/references/advanced-features.md +1 -1
  120. package/.pi/skills/xberg-extracting-tables/references/cli-reference.md +5 -3
  121. package/.pi/skills/xberg-extracting-tables/references/configuration.md +4 -4
  122. package/.pi/skills/xberg-extracting-tables/references/nodejs-api.md +1 -1
  123. package/.pi/skills/xberg-extracting-tables/references/other-bindings.md +1 -1
  124. package/.pi/skills/xberg-extracting-tables/references/python-api.md +5 -5
  125. package/.pi/skills/xberg-extracting-tables/references/rust-api.md +1 -1
  126. package/.pi/skills/xberg-extracting-tables/references/supported-formats.md +1 -1
  127. package/.pi/skills/xberg-extracting-with-ocr/SKILL.md +1 -1
  128. package/.pi/skills/xberg-extracting-with-ocr/index.md +3 -3
  129. package/.pi/skills/xberg-extracting-with-ocr/references/advanced-features.md +1 -1
  130. package/.pi/skills/xberg-extracting-with-ocr/references/cli-reference.md +5 -3
  131. package/.pi/skills/xberg-extracting-with-ocr/references/configuration.md +4 -4
  132. package/.pi/skills/xberg-extracting-with-ocr/references/nodejs-api.md +1 -1
  133. package/.pi/skills/xberg-extracting-with-ocr/references/other-bindings.md +1 -1
  134. package/.pi/skills/xberg-extracting-with-ocr/references/python-api.md +5 -5
  135. package/.pi/skills/xberg-extracting-with-ocr/references/rust-api.md +1 -1
  136. package/.pi/skills/xberg-extracting-with-ocr/references/supported-formats.md +1 -1
  137. package/.pi/skills/xberg-picking-a-format/SKILL.md +1 -1
  138. package/.pi/skills/xberg-picking-a-format/index.md +3 -3
  139. package/.pi/skills/xberg-picking-a-format/references/advanced-features.md +1 -1
  140. package/.pi/skills/xberg-picking-a-format/references/cli-reference.md +5 -3
  141. package/.pi/skills/xberg-picking-a-format/references/configuration.md +4 -4
  142. package/.pi/skills/xberg-picking-a-format/references/nodejs-api.md +1 -1
  143. package/.pi/skills/xberg-picking-a-format/references/other-bindings.md +1 -1
  144. package/.pi/skills/xberg-picking-a-format/references/python-api.md +5 -5
  145. package/.pi/skills/xberg-picking-a-format/references/rust-api.md +1 -1
  146. package/.pi/skills/xberg-picking-a-format/references/supported-formats.md +1 -1
  147. package/README.md +9 -9
  148. package/assets/icon.svg +16 -9
  149. package/assets/logo.png +0 -0
  150. package/package.json +3 -3
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
- Content-Hash: blake3:025df7e4b6c9e1dd2a98b81236a46d427816da719521512e3b03bc2ae15ae065
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
3
+ Content-Hash: blake3:d9846749cb2b57685af6f077cfe2d16d5d7e58768437f14ee12f3c78a260106e
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -115,7 +115,7 @@ Nested sections (each `None`/unset by default unless noted): `ocr`, `xberg-chunk
115
115
  enabled = true
116
116
  backend = "tesseract"
117
117
  language = ["eng"]
118
- auto_rotate = false
118
+ auto_rotate = true
119
119
  ```
120
120
 
121
121
  | Option | Type | Default | Description |
@@ -123,7 +123,7 @@ auto_rotate = false
123
123
  | `enabled` | boolean | `true` | Whether OCR is enabled. Setting `false` is equivalent to `disable_ocr` |
124
124
  | `backend` | string | `"tesseract"` | OCR backend: `tesseract`, `paddleocr`/`paddle-ocr`, or `vlm` |
125
125
  | `language` | string or array | `["eng"]` | Language code(s). Accepts `"eng"` or `["eng", "deu"]`. Tesseract joins with `+` |
126
- | `auto_rotate` | boolean | `false` | Enable automatic page rotation based on orientation detection |
126
+ | `auto_rotate` | boolean \| null | `null` | `true` always rotates, `false` never rotates or retries, unset keeps the orientation retry |
127
127
  | `vlm_fallback` | string | `"disabled"` | VLM fallback policy |
128
128
  | `output_format`| string \| null | `null` | Optional OCR output format override |
129
129
 
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
3
  Content-Hash: blake3:5dd1dce4a7814ed37c2ea273dda3dd60d7caa18b08b0aff933ce3a8f7717d1a6
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
3
  Content-Hash: blake3:dacb4d7def21681b8b237603d2c7b89beaf18b8ee4110175b6ea5593022f3229
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
- Content-Hash: blake3:723cd2abd915f92766e2dec9c90922b94ef60ad5ce81c606bd680b055e5c4717
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
3
+ Content-Hash: blake3:9250a30997ec851cbb228ddcfd1f538e81e843f81e488e5f3d927ba94af93e4f
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -485,7 +485,7 @@ for table in result.results[0].tables:
485
485
 
486
486
  ## Error Classes
487
487
 
488
- The errors raised by `extract()` and `extract_batch()` are plain `RuntimeError` — the typed exception classes below are **not** raised by these entry points, so catch `RuntimeError` (or `Exception`) around an `extract()`/`extract_batch()` call.
488
+ `extract()` and `extract_batch()` raise the exported exception subclass for the underlying Rust error kind, including calls with `on_progress`. Catch `XbergError` for extraction failures, or a specific subclass such as `ParsingError`, `SecurityError`, or `ValidationError`.
489
489
 
490
490
  Xberg also defines a family of typed exception classes re-exported from `xberg`. The `XbergError`-rooted ones inherit from `XbergError` (base): `ParsingError`, `OcrError`, `ValidationError`, `MissingDependencyError`, `UnsupportedFormatError`, `CacheError`, `ImageProcessingError`, `SerializationError`, `PluginError`, `SecurityError`, `TranscriptionError`, `EmbeddingError`, `RerankingError`, `XbergTimeoutError`, `IoError`, and others. A few classes sit in separate hierarchies rooted at `Exception` rather than `XbergError` — e.g. `ConfigError`/`PdfAnalysisError` and `ParseError`/`SchemaValidationError`.
491
491
 
@@ -493,12 +493,12 @@ Xberg also defines a family of typed exception classes re-exported from `xberg`.
493
493
 
494
494
  ```python
495
495
  import asyncio
496
- from xberg import ExtractInput, extract, ExtractionConfig
496
+ from xberg import ExtractInput, extract, ExtractionConfig, XbergError
497
497
 
498
498
  async def main() -> None:
499
499
  try:
500
500
  result = await extract(ExtractInput(uri="document.pdf"), ExtractionConfig())
501
- except RuntimeError as e:
501
+ except XbergError as e:
502
502
  print(f"Extraction failed: {e}")
503
503
 
504
504
  asyncio.run(main())
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
3
  Content-Hash: blake3:a257c85add0ba02dd9ab63eecac13348152038919a09ba99964261256acf4ee4
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
3
  Content-Hash: blake3:e3c1dcb34a4784efc4f7fd868468061c3bd49d41e7e39792086633dcfe029d63
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -6,7 +6,7 @@ name: xberg-extracting-tables
6
6
  <!--
7
7
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
8
8
  Content-Hash: blake3:80d26904ff70da39df4ee2b35bcfc06a186b30c0d2566cf4b60832cd42e475ef
9
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
9
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
10
10
  Schema-Version: v1
11
11
  -->
12
12
 
@@ -1,10 +1,10 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
- Content-Hash: blake3:386ae93f69821b9e4a1d5b41d8e1e0999a592175f65263a67de5601249829887
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
3
+ Content-Hash: blake3:43dcdbf46004ae4879000b485fcfd507c98bd1d9588d0cec3e15c175b2523faf
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
8
8
  # Concepts
9
9
 
10
- * [Extracting Tables](SKILL.md) - Use when extracting tabular data from PDFs, spreadsheets, or images. Covers layout-aware table detection, table model selection, output formats (markdown / JSON cells), and known limits.
10
+ - [Extracting Tables](SKILL.md) - Use when extracting tabular data from PDFs, spreadsheets, or images. Covers layout-aware table detection, table model selection, output formats (markdown / JSON cells), and known limits.
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
3
  Content-Hash: blake3:353a7a05cbe84a2af1d053c8173d2154f418972a2bbfc2846dbb2c17a8a46197
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
- Content-Hash: blake3:b9281b07af57a10b362019da24d8545036e83015038e2f5902bfe167f165ecec
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
3
+ Content-Hash: blake3:70bcb43e649e885bb822d41efb7221b365fd6f1870d1e6a5bb4ab3ec10be6acc
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -11,11 +11,13 @@ Comprehensive command-line interface for the Xberg document intelligence library
11
11
 
12
12
  ## Installation
13
13
 
14
+ The pinned command below follows this source release (1.4.0); use it once that release is published.
15
+
14
16
  ```bash
15
17
  brew install xberg-io/tap/xberg
16
18
  # or run without a persistent install (self-installs the binary):
17
19
  npx @xberg-io/xberg-cli --help
18
- uvx --from xberg-cli xberg --help
20
+ uvx --from xberg-cli==1.4.0 xberg --help
19
21
  ```
20
22
 
21
23
  Or download a pre-built binary from the [latest GitHub Release](https://github.com/xberg-io/xberg/releases/latest), or build from source:
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
- Content-Hash: blake3:025df7e4b6c9e1dd2a98b81236a46d427816da719521512e3b03bc2ae15ae065
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
3
+ Content-Hash: blake3:d9846749cb2b57685af6f077cfe2d16d5d7e58768437f14ee12f3c78a260106e
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -115,7 +115,7 @@ Nested sections (each `None`/unset by default unless noted): `ocr`, `xberg-chunk
115
115
  enabled = true
116
116
  backend = "tesseract"
117
117
  language = ["eng"]
118
- auto_rotate = false
118
+ auto_rotate = true
119
119
  ```
120
120
 
121
121
  | Option | Type | Default | Description |
@@ -123,7 +123,7 @@ auto_rotate = false
123
123
  | `enabled` | boolean | `true` | Whether OCR is enabled. Setting `false` is equivalent to `disable_ocr` |
124
124
  | `backend` | string | `"tesseract"` | OCR backend: `tesseract`, `paddleocr`/`paddle-ocr`, or `vlm` |
125
125
  | `language` | string or array | `["eng"]` | Language code(s). Accepts `"eng"` or `["eng", "deu"]`. Tesseract joins with `+` |
126
- | `auto_rotate` | boolean | `false` | Enable automatic page rotation based on orientation detection |
126
+ | `auto_rotate` | boolean \| null | `null` | `true` always rotates, `false` never rotates or retries, unset keeps the orientation retry |
127
127
  | `vlm_fallback` | string | `"disabled"` | VLM fallback policy |
128
128
  | `output_format`| string \| null | `null` | Optional OCR output format override |
129
129
 
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
3
  Content-Hash: blake3:5dd1dce4a7814ed37c2ea273dda3dd60d7caa18b08b0aff933ce3a8f7717d1a6
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
3
  Content-Hash: blake3:dacb4d7def21681b8b237603d2c7b89beaf18b8ee4110175b6ea5593022f3229
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
- Content-Hash: blake3:723cd2abd915f92766e2dec9c90922b94ef60ad5ce81c606bd680b055e5c4717
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
3
+ Content-Hash: blake3:9250a30997ec851cbb228ddcfd1f538e81e843f81e488e5f3d927ba94af93e4f
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -485,7 +485,7 @@ for table in result.results[0].tables:
485
485
 
486
486
  ## Error Classes
487
487
 
488
- The errors raised by `extract()` and `extract_batch()` are plain `RuntimeError` — the typed exception classes below are **not** raised by these entry points, so catch `RuntimeError` (or `Exception`) around an `extract()`/`extract_batch()` call.
488
+ `extract()` and `extract_batch()` raise the exported exception subclass for the underlying Rust error kind, including calls with `on_progress`. Catch `XbergError` for extraction failures, or a specific subclass such as `ParsingError`, `SecurityError`, or `ValidationError`.
489
489
 
490
490
  Xberg also defines a family of typed exception classes re-exported from `xberg`. The `XbergError`-rooted ones inherit from `XbergError` (base): `ParsingError`, `OcrError`, `ValidationError`, `MissingDependencyError`, `UnsupportedFormatError`, `CacheError`, `ImageProcessingError`, `SerializationError`, `PluginError`, `SecurityError`, `TranscriptionError`, `EmbeddingError`, `RerankingError`, `XbergTimeoutError`, `IoError`, and others. A few classes sit in separate hierarchies rooted at `Exception` rather than `XbergError` — e.g. `ConfigError`/`PdfAnalysisError` and `ParseError`/`SchemaValidationError`.
491
491
 
@@ -493,12 +493,12 @@ Xberg also defines a family of typed exception classes re-exported from `xberg`.
493
493
 
494
494
  ```python
495
495
  import asyncio
496
- from xberg import ExtractInput, extract, ExtractionConfig
496
+ from xberg import ExtractInput, extract, ExtractionConfig, XbergError
497
497
 
498
498
  async def main() -> None:
499
499
  try:
500
500
  result = await extract(ExtractInput(uri="document.pdf"), ExtractionConfig())
501
- except RuntimeError as e:
501
+ except XbergError as e:
502
502
  print(f"Extraction failed: {e}")
503
503
 
504
504
  asyncio.run(main())
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
3
  Content-Hash: blake3:a257c85add0ba02dd9ab63eecac13348152038919a09ba99964261256acf4ee4
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
3
  Content-Hash: blake3:e3c1dcb34a4784efc4f7fd868468061c3bd49d41e7e39792086633dcfe029d63
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -6,7 +6,7 @@ name: xberg-extracting-with-ocr
6
6
  <!--
7
7
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
8
8
  Content-Hash: blake3:b1718303d659167ff376b4e1d4baf546d3e74f8f0804698a3486c0a1d2e6c913
9
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
9
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
10
10
  Schema-Version: v1
11
11
  -->
12
12
 
@@ -1,10 +1,10 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
- Content-Hash: blake3:cfb8e2093079ae90ce0540c04d204828e6abd297aeabb5a30e4a3c2e31d39032
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
3
+ Content-Hash: blake3:d1d20cdd1b9e8121dfb95e3683881ca08aeac585ad203b562cfacbba24bdadde
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
8
8
  # Concepts
9
9
 
10
- * [Extracting With Ocr](SKILL.md) - Use when extracting text from scanned PDFs, photographed pages, or images that have no embedded text layer. Covers OCR backends, language packs, force-OCR, and performance tuning.
10
+ - [Extracting With Ocr](SKILL.md) - Use when extracting text from scanned PDFs, photographed pages, or images that have no embedded text layer. Covers OCR backends, language packs, force-OCR, and performance tuning.
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
3
  Content-Hash: blake3:353a7a05cbe84a2af1d053c8173d2154f418972a2bbfc2846dbb2c17a8a46197
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
- Content-Hash: blake3:b9281b07af57a10b362019da24d8545036e83015038e2f5902bfe167f165ecec
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
3
+ Content-Hash: blake3:70bcb43e649e885bb822d41efb7221b365fd6f1870d1e6a5bb4ab3ec10be6acc
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -11,11 +11,13 @@ Comprehensive command-line interface for the Xberg document intelligence library
11
11
 
12
12
  ## Installation
13
13
 
14
+ The pinned command below follows this source release (1.4.0); use it once that release is published.
15
+
14
16
  ```bash
15
17
  brew install xberg-io/tap/xberg
16
18
  # or run without a persistent install (self-installs the binary):
17
19
  npx @xberg-io/xberg-cli --help
18
- uvx --from xberg-cli xberg --help
20
+ uvx --from xberg-cli==1.4.0 xberg --help
19
21
  ```
20
22
 
21
23
  Or download a pre-built binary from the [latest GitHub Release](https://github.com/xberg-io/xberg/releases/latest), or build from source:
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
- Content-Hash: blake3:025df7e4b6c9e1dd2a98b81236a46d427816da719521512e3b03bc2ae15ae065
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
3
+ Content-Hash: blake3:d9846749cb2b57685af6f077cfe2d16d5d7e58768437f14ee12f3c78a260106e
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -115,7 +115,7 @@ Nested sections (each `None`/unset by default unless noted): `ocr`, `xberg-chunk
115
115
  enabled = true
116
116
  backend = "tesseract"
117
117
  language = ["eng"]
118
- auto_rotate = false
118
+ auto_rotate = true
119
119
  ```
120
120
 
121
121
  | Option | Type | Default | Description |
@@ -123,7 +123,7 @@ auto_rotate = false
123
123
  | `enabled` | boolean | `true` | Whether OCR is enabled. Setting `false` is equivalent to `disable_ocr` |
124
124
  | `backend` | string | `"tesseract"` | OCR backend: `tesseract`, `paddleocr`/`paddle-ocr`, or `vlm` |
125
125
  | `language` | string or array | `["eng"]` | Language code(s). Accepts `"eng"` or `["eng", "deu"]`. Tesseract joins with `+` |
126
- | `auto_rotate` | boolean | `false` | Enable automatic page rotation based on orientation detection |
126
+ | `auto_rotate` | boolean \| null | `null` | `true` always rotates, `false` never rotates or retries, unset keeps the orientation retry |
127
127
  | `vlm_fallback` | string | `"disabled"` | VLM fallback policy |
128
128
  | `output_format`| string \| null | `null` | Optional OCR output format override |
129
129
 
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
3
  Content-Hash: blake3:5dd1dce4a7814ed37c2ea273dda3dd60d7caa18b08b0aff933ce3a8f7717d1a6
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
3
  Content-Hash: blake3:dacb4d7def21681b8b237603d2c7b89beaf18b8ee4110175b6ea5593022f3229
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
- Content-Hash: blake3:723cd2abd915f92766e2dec9c90922b94ef60ad5ce81c606bd680b055e5c4717
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
3
+ Content-Hash: blake3:9250a30997ec851cbb228ddcfd1f538e81e843f81e488e5f3d927ba94af93e4f
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -485,7 +485,7 @@ for table in result.results[0].tables:
485
485
 
486
486
  ## Error Classes
487
487
 
488
- The errors raised by `extract()` and `extract_batch()` are plain `RuntimeError` — the typed exception classes below are **not** raised by these entry points, so catch `RuntimeError` (or `Exception`) around an `extract()`/`extract_batch()` call.
488
+ `extract()` and `extract_batch()` raise the exported exception subclass for the underlying Rust error kind, including calls with `on_progress`. Catch `XbergError` for extraction failures, or a specific subclass such as `ParsingError`, `SecurityError`, or `ValidationError`.
489
489
 
490
490
  Xberg also defines a family of typed exception classes re-exported from `xberg`. The `XbergError`-rooted ones inherit from `XbergError` (base): `ParsingError`, `OcrError`, `ValidationError`, `MissingDependencyError`, `UnsupportedFormatError`, `CacheError`, `ImageProcessingError`, `SerializationError`, `PluginError`, `SecurityError`, `TranscriptionError`, `EmbeddingError`, `RerankingError`, `XbergTimeoutError`, `IoError`, and others. A few classes sit in separate hierarchies rooted at `Exception` rather than `XbergError` — e.g. `ConfigError`/`PdfAnalysisError` and `ParseError`/`SchemaValidationError`.
491
491
 
@@ -493,12 +493,12 @@ Xberg also defines a family of typed exception classes re-exported from `xberg`.
493
493
 
494
494
  ```python
495
495
  import asyncio
496
- from xberg import ExtractInput, extract, ExtractionConfig
496
+ from xberg import ExtractInput, extract, ExtractionConfig, XbergError
497
497
 
498
498
  async def main() -> None:
499
499
  try:
500
500
  result = await extract(ExtractInput(uri="document.pdf"), ExtractionConfig())
501
- except RuntimeError as e:
501
+ except XbergError as e:
502
502
  print(f"Extraction failed: {e}")
503
503
 
504
504
  asyncio.run(main())
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
3
  Content-Hash: blake3:a257c85add0ba02dd9ab63eecac13348152038919a09ba99964261256acf4ee4
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
3
  Content-Hash: blake3:e3c1dcb34a4784efc4f7fd868468061c3bd49d41e7e39792086633dcfe029d63
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -6,7 +6,7 @@ name: xberg-picking-a-format
6
6
  <!--
7
7
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
8
8
  Content-Hash: blake3:a2f204c34c2eb303812f0b7b0a9acf29c879edd1985b8cc3312555b347378e1e
9
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
9
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
10
10
  Schema-Version: v1
11
11
  -->
12
12
 
@@ -1,10 +1,10 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
- Content-Hash: blake3:d81bf6504823199be6d747c4b5e058732f6d6e5ee6f97aae83374eb2f0982d9a
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
3
+ Content-Hash: blake3:9068c82b2c04e3797f748f8d411beb9c7f4757910501844a8a8b40bac4331750
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
8
8
  # Concepts
9
9
 
10
- * [Picking A Format](SKILL.md) - Use when choosing an output format for extracted documents — plain text, markdown, djot, HTML, JSON, or DocTags. Maps consumer (LLM, parser, archive) to the right `--format` / `--content-format` pair.
10
+ - [Picking A Format](SKILL.md) - Use when choosing an output format for extracted documents — plain text, markdown, djot, HTML, JSON, or DocTags. Maps consumer (LLM, parser, archive) to the right `--format` / `--content-format` pair.
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
3
  Content-Hash: blake3:353a7a05cbe84a2af1d053c8173d2154f418972a2bbfc2846dbb2c17a8a46197
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
- Content-Hash: blake3:b9281b07af57a10b362019da24d8545036e83015038e2f5902bfe167f165ecec
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
3
+ Content-Hash: blake3:70bcb43e649e885bb822d41efb7221b365fd6f1870d1e6a5bb4ab3ec10be6acc
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -11,11 +11,13 @@ Comprehensive command-line interface for the Xberg document intelligence library
11
11
 
12
12
  ## Installation
13
13
 
14
+ The pinned command below follows this source release (1.4.0); use it once that release is published.
15
+
14
16
  ```bash
15
17
  brew install xberg-io/tap/xberg
16
18
  # or run without a persistent install (self-installs the binary):
17
19
  npx @xberg-io/xberg-cli --help
18
- uvx --from xberg-cli xberg --help
20
+ uvx --from xberg-cli==1.4.0 xberg --help
19
21
  ```
20
22
 
21
23
  Or download a pre-built binary from the [latest GitHub Release](https://github.com/xberg-io/xberg/releases/latest), or build from source:
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
- Content-Hash: blake3:025df7e4b6c9e1dd2a98b81236a46d427816da719521512e3b03bc2ae15ae065
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
3
+ Content-Hash: blake3:d9846749cb2b57685af6f077cfe2d16d5d7e58768437f14ee12f3c78a260106e
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -115,7 +115,7 @@ Nested sections (each `None`/unset by default unless noted): `ocr`, `xberg-chunk
115
115
  enabled = true
116
116
  backend = "tesseract"
117
117
  language = ["eng"]
118
- auto_rotate = false
118
+ auto_rotate = true
119
119
  ```
120
120
 
121
121
  | Option | Type | Default | Description |
@@ -123,7 +123,7 @@ auto_rotate = false
123
123
  | `enabled` | boolean | `true` | Whether OCR is enabled. Setting `false` is equivalent to `disable_ocr` |
124
124
  | `backend` | string | `"tesseract"` | OCR backend: `tesseract`, `paddleocr`/`paddle-ocr`, or `vlm` |
125
125
  | `language` | string or array | `["eng"]` | Language code(s). Accepts `"eng"` or `["eng", "deu"]`. Tesseract joins with `+` |
126
- | `auto_rotate` | boolean | `false` | Enable automatic page rotation based on orientation detection |
126
+ | `auto_rotate` | boolean \| null | `null` | `true` always rotates, `false` never rotates or retries, unset keeps the orientation retry |
127
127
  | `vlm_fallback` | string | `"disabled"` | VLM fallback policy |
128
128
  | `output_format`| string \| null | `null` | Optional OCR output format override |
129
129
 
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
3
  Content-Hash: blake3:5dd1dce4a7814ed37c2ea273dda3dd60d7caa18b08b0aff933ce3a8f7717d1a6
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
3
  Content-Hash: blake3:dacb4d7def21681b8b237603d2c7b89beaf18b8ee4110175b6ea5593022f3229
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
- Content-Hash: blake3:723cd2abd915f92766e2dec9c90922b94ef60ad5ce81c606bd680b055e5c4717
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
3
+ Content-Hash: blake3:9250a30997ec851cbb228ddcfd1f538e81e843f81e488e5f3d927ba94af93e4f
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -485,7 +485,7 @@ for table in result.results[0].tables:
485
485
 
486
486
  ## Error Classes
487
487
 
488
- The errors raised by `extract()` and `extract_batch()` are plain `RuntimeError` — the typed exception classes below are **not** raised by these entry points, so catch `RuntimeError` (or `Exception`) around an `extract()`/`extract_batch()` call.
488
+ `extract()` and `extract_batch()` raise the exported exception subclass for the underlying Rust error kind, including calls with `on_progress`. Catch `XbergError` for extraction failures, or a specific subclass such as `ParsingError`, `SecurityError`, or `ValidationError`.
489
489
 
490
490
  Xberg also defines a family of typed exception classes re-exported from `xberg`. The `XbergError`-rooted ones inherit from `XbergError` (base): `ParsingError`, `OcrError`, `ValidationError`, `MissingDependencyError`, `UnsupportedFormatError`, `CacheError`, `ImageProcessingError`, `SerializationError`, `PluginError`, `SecurityError`, `TranscriptionError`, `EmbeddingError`, `RerankingError`, `XbergTimeoutError`, `IoError`, and others. A few classes sit in separate hierarchies rooted at `Exception` rather than `XbergError` — e.g. `ConfigError`/`PdfAnalysisError` and `ParseError`/`SchemaValidationError`.
491
491
 
@@ -493,12 +493,12 @@ Xberg also defines a family of typed exception classes re-exported from `xberg`.
493
493
 
494
494
  ```python
495
495
  import asyncio
496
- from xberg import ExtractInput, extract, ExtractionConfig
496
+ from xberg import ExtractInput, extract, ExtractionConfig, XbergError
497
497
 
498
498
  async def main() -> None:
499
499
  try:
500
500
  result = await extract(ExtractInput(uri="document.pdf"), ExtractionConfig())
501
- except RuntimeError as e:
501
+ except XbergError as e:
502
502
  print(f"Extraction failed: {e}")
503
503
 
504
504
  asyncio.run(main())
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
3
  Content-Hash: blake3:a257c85add0ba02dd9ab63eecac13348152038919a09ba99964261256acf4ee4
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7
 
@@ -1,7 +1,7 @@
1
1
  <!--
2
2
  AI-RULEZ :: GENERATED FILE — DO NOT EDIT
3
3
  Content-Hash: blake3:e3c1dcb34a4784efc4f7fd868468061c3bd49d41e7e39792086633dcfe029d63
4
- Source-Hash: blake3:662aa704cf97ad20f02258c9dcd1c73822213a426e27ec7ebc292d3f599fb7c2
4
+ Source-Hash: blake3:ab2bcd453f9c2ded67752f6a9800186d42b6921f4be16f6ab3a773254a9fba00
5
5
  Schema-Version: v1
6
6
  -->
7
7