kreuzberg 4.0.0.pre.rc.11 → 4.0.0.pre.rc.13
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.
- checksums.yaml +4 -4
- data/.gitignore +14 -14
- data/.rspec +3 -3
- data/.rubocop.yaml +1 -1
- data/.rubocop.yml +538 -538
- data/Gemfile +8 -8
- data/Gemfile.lock +2 -105
- data/README.md +454 -454
- data/Rakefile +25 -25
- data/Steepfile +47 -47
- data/examples/async_patterns.rb +341 -341
- data/ext/kreuzberg_rb/extconf.rb +45 -45
- data/ext/kreuzberg_rb/native/.cargo/config.toml +2 -2
- data/ext/kreuzberg_rb/native/Cargo.lock +6941 -6941
- data/ext/kreuzberg_rb/native/Cargo.toml +54 -54
- data/ext/kreuzberg_rb/native/README.md +425 -425
- data/ext/kreuzberg_rb/native/build.rs +15 -15
- data/ext/kreuzberg_rb/native/include/ieeefp.h +11 -11
- data/ext/kreuzberg_rb/native/include/msvc_compat/strings.h +14 -14
- data/ext/kreuzberg_rb/native/include/strings.h +20 -20
- data/ext/kreuzberg_rb/native/include/unistd.h +47 -47
- data/ext/kreuzberg_rb/native/src/lib.rs +3158 -3158
- data/extconf.rb +28 -28
- data/kreuzberg.gemspec +214 -214
- data/lib/kreuzberg/api_proxy.rb +142 -142
- data/lib/kreuzberg/cache_api.rb +81 -81
- data/lib/kreuzberg/cli.rb +55 -55
- data/lib/kreuzberg/cli_proxy.rb +127 -127
- data/lib/kreuzberg/config.rb +724 -724
- data/lib/kreuzberg/error_context.rb +80 -80
- data/lib/kreuzberg/errors.rb +118 -118
- data/lib/kreuzberg/extraction_api.rb +340 -340
- data/lib/kreuzberg/mcp_proxy.rb +186 -186
- data/lib/kreuzberg/ocr_backend_protocol.rb +113 -113
- data/lib/kreuzberg/post_processor_protocol.rb +86 -86
- data/lib/kreuzberg/result.rb +279 -279
- data/lib/kreuzberg/setup_lib_path.rb +80 -80
- data/lib/kreuzberg/validator_protocol.rb +89 -89
- data/lib/kreuzberg/version.rb +5 -5
- data/lib/kreuzberg.rb +109 -109
- data/lib/{libpdfium.dylib → pdfium.dll} +0 -0
- data/sig/kreuzberg/internal.rbs +184 -184
- data/sig/kreuzberg.rbs +546 -546
- data/spec/binding/cache_spec.rb +227 -227
- data/spec/binding/cli_proxy_spec.rb +85 -85
- data/spec/binding/cli_spec.rb +55 -55
- data/spec/binding/config_spec.rb +345 -345
- data/spec/binding/config_validation_spec.rb +283 -283
- data/spec/binding/error_handling_spec.rb +213 -213
- data/spec/binding/errors_spec.rb +66 -66
- data/spec/binding/plugins/ocr_backend_spec.rb +307 -307
- data/spec/binding/plugins/postprocessor_spec.rb +269 -269
- data/spec/binding/plugins/validator_spec.rb +274 -274
- data/spec/fixtures/config.toml +39 -39
- data/spec/fixtures/config.yaml +41 -41
- data/spec/fixtures/invalid_config.toml +4 -4
- data/spec/smoke/package_spec.rb +178 -178
- data/spec/spec_helper.rb +42 -42
- data/vendor/Cargo.toml +2 -1
- data/vendor/kreuzberg/Cargo.toml +2 -2
- data/vendor/kreuzberg/README.md +230 -230
- data/vendor/kreuzberg/benches/otel_overhead.rs +48 -48
- data/vendor/kreuzberg/build.rs +843 -843
- data/vendor/kreuzberg/src/api/error.rs +81 -81
- data/vendor/kreuzberg/src/api/handlers.rs +199 -199
- data/vendor/kreuzberg/src/api/mod.rs +79 -79
- data/vendor/kreuzberg/src/api/server.rs +353 -353
- data/vendor/kreuzberg/src/api/types.rs +170 -170
- data/vendor/kreuzberg/src/cache/mod.rs +1167 -1167
- data/vendor/kreuzberg/src/chunking/mod.rs +1877 -1877
- data/vendor/kreuzberg/src/chunking/processor.rs +220 -220
- data/vendor/kreuzberg/src/core/batch_mode.rs +95 -95
- data/vendor/kreuzberg/src/core/config.rs +1080 -1080
- data/vendor/kreuzberg/src/core/extractor.rs +1156 -1156
- data/vendor/kreuzberg/src/core/io.rs +329 -329
- data/vendor/kreuzberg/src/core/mime.rs +605 -605
- data/vendor/kreuzberg/src/core/mod.rs +47 -47
- data/vendor/kreuzberg/src/core/pipeline.rs +1184 -1184
- data/vendor/kreuzberg/src/embeddings.rs +500 -500
- data/vendor/kreuzberg/src/error.rs +431 -431
- data/vendor/kreuzberg/src/extraction/archive.rs +954 -954
- data/vendor/kreuzberg/src/extraction/docx.rs +398 -398
- data/vendor/kreuzberg/src/extraction/email.rs +854 -854
- data/vendor/kreuzberg/src/extraction/excel.rs +688 -688
- data/vendor/kreuzberg/src/extraction/html.rs +601 -601
- data/vendor/kreuzberg/src/extraction/image.rs +491 -491
- data/vendor/kreuzberg/src/extraction/libreoffice.rs +574 -562
- data/vendor/kreuzberg/src/extraction/markdown.rs +213 -213
- data/vendor/kreuzberg/src/extraction/mod.rs +81 -81
- data/vendor/kreuzberg/src/extraction/office_metadata/app_properties.rs +398 -398
- data/vendor/kreuzberg/src/extraction/office_metadata/core_properties.rs +247 -247
- data/vendor/kreuzberg/src/extraction/office_metadata/custom_properties.rs +240 -240
- data/vendor/kreuzberg/src/extraction/office_metadata/mod.rs +130 -130
- data/vendor/kreuzberg/src/extraction/office_metadata/odt_properties.rs +284 -284
- data/vendor/kreuzberg/src/extraction/pptx.rs +3100 -3100
- data/vendor/kreuzberg/src/extraction/structured.rs +490 -490
- data/vendor/kreuzberg/src/extraction/table.rs +328 -328
- data/vendor/kreuzberg/src/extraction/text.rs +269 -269
- data/vendor/kreuzberg/src/extraction/xml.rs +333 -333
- data/vendor/kreuzberg/src/extractors/archive.rs +447 -447
- data/vendor/kreuzberg/src/extractors/bibtex.rs +470 -470
- data/vendor/kreuzberg/src/extractors/docbook.rs +504 -504
- data/vendor/kreuzberg/src/extractors/docx.rs +400 -400
- data/vendor/kreuzberg/src/extractors/email.rs +157 -157
- data/vendor/kreuzberg/src/extractors/epub.rs +708 -708
- data/vendor/kreuzberg/src/extractors/excel.rs +345 -345
- data/vendor/kreuzberg/src/extractors/fictionbook.rs +492 -492
- data/vendor/kreuzberg/src/extractors/html.rs +407 -407
- data/vendor/kreuzberg/src/extractors/image.rs +219 -219
- data/vendor/kreuzberg/src/extractors/jats.rs +1054 -1054
- data/vendor/kreuzberg/src/extractors/jupyter.rs +368 -368
- data/vendor/kreuzberg/src/extractors/latex.rs +653 -653
- data/vendor/kreuzberg/src/extractors/markdown.rs +701 -701
- data/vendor/kreuzberg/src/extractors/mod.rs +429 -429
- data/vendor/kreuzberg/src/extractors/odt.rs +628 -628
- data/vendor/kreuzberg/src/extractors/opml.rs +635 -635
- data/vendor/kreuzberg/src/extractors/orgmode.rs +529 -529
- data/vendor/kreuzberg/src/extractors/pdf.rs +749 -722
- data/vendor/kreuzberg/src/extractors/pptx.rs +267 -267
- data/vendor/kreuzberg/src/extractors/rst.rs +577 -577
- data/vendor/kreuzberg/src/extractors/rtf.rs +809 -809
- data/vendor/kreuzberg/src/extractors/security.rs +484 -484
- data/vendor/kreuzberg/src/extractors/security_tests.rs +367 -367
- data/vendor/kreuzberg/src/extractors/structured.rs +142 -142
- data/vendor/kreuzberg/src/extractors/text.rs +265 -265
- data/vendor/kreuzberg/src/extractors/typst.rs +651 -651
- data/vendor/kreuzberg/src/extractors/xml.rs +147 -147
- data/vendor/kreuzberg/src/image/dpi.rs +164 -164
- data/vendor/kreuzberg/src/image/mod.rs +6 -6
- data/vendor/kreuzberg/src/image/preprocessing.rs +417 -417
- data/vendor/kreuzberg/src/image/resize.rs +89 -89
- data/vendor/kreuzberg/src/keywords/config.rs +154 -154
- data/vendor/kreuzberg/src/keywords/mod.rs +237 -237
- data/vendor/kreuzberg/src/keywords/processor.rs +275 -275
- data/vendor/kreuzberg/src/keywords/rake.rs +293 -293
- data/vendor/kreuzberg/src/keywords/types.rs +68 -68
- data/vendor/kreuzberg/src/keywords/yake.rs +163 -163
- data/vendor/kreuzberg/src/language_detection/mod.rs +985 -985
- data/vendor/kreuzberg/src/language_detection/processor.rs +219 -219
- data/vendor/kreuzberg/src/lib.rs +113 -113
- data/vendor/kreuzberg/src/mcp/mod.rs +35 -35
- data/vendor/kreuzberg/src/mcp/server.rs +2076 -2076
- data/vendor/kreuzberg/src/ocr/cache.rs +469 -469
- data/vendor/kreuzberg/src/ocr/error.rs +37 -37
- data/vendor/kreuzberg/src/ocr/hocr.rs +216 -216
- data/vendor/kreuzberg/src/ocr/mod.rs +58 -58
- data/vendor/kreuzberg/src/ocr/processor.rs +863 -863
- data/vendor/kreuzberg/src/ocr/table/mod.rs +4 -4
- data/vendor/kreuzberg/src/ocr/table/tsv_parser.rs +144 -144
- data/vendor/kreuzberg/src/ocr/tesseract_backend.rs +452 -452
- data/vendor/kreuzberg/src/ocr/types.rs +393 -393
- data/vendor/kreuzberg/src/ocr/utils.rs +47 -47
- data/vendor/kreuzberg/src/ocr/validation.rs +206 -206
- data/vendor/kreuzberg/src/panic_context.rs +154 -154
- data/vendor/kreuzberg/src/pdf/bindings.rs +44 -44
- data/vendor/kreuzberg/src/pdf/bundled.rs +346 -346
- data/vendor/kreuzberg/src/pdf/error.rs +130 -130
- data/vendor/kreuzberg/src/pdf/images.rs +139 -139
- data/vendor/kreuzberg/src/pdf/metadata.rs +489 -489
- data/vendor/kreuzberg/src/pdf/mod.rs +68 -68
- data/vendor/kreuzberg/src/pdf/rendering.rs +368 -368
- data/vendor/kreuzberg/src/pdf/table.rs +420 -420
- data/vendor/kreuzberg/src/pdf/text.rs +240 -240
- data/vendor/kreuzberg/src/plugins/extractor.rs +1044 -1044
- data/vendor/kreuzberg/src/plugins/mod.rs +212 -212
- data/vendor/kreuzberg/src/plugins/ocr.rs +639 -639
- data/vendor/kreuzberg/src/plugins/processor.rs +650 -650
- data/vendor/kreuzberg/src/plugins/registry.rs +1339 -1339
- data/vendor/kreuzberg/src/plugins/traits.rs +258 -258
- data/vendor/kreuzberg/src/plugins/validator.rs +967 -967
- data/vendor/kreuzberg/src/stopwords/mod.rs +1470 -1470
- data/vendor/kreuzberg/src/text/mod.rs +25 -25
- data/vendor/kreuzberg/src/text/quality.rs +697 -697
- data/vendor/kreuzberg/src/text/quality_processor.rs +219 -219
- data/vendor/kreuzberg/src/text/string_utils.rs +217 -217
- data/vendor/kreuzberg/src/text/token_reduction/cjk_utils.rs +164 -164
- data/vendor/kreuzberg/src/text/token_reduction/config.rs +100 -100
- data/vendor/kreuzberg/src/text/token_reduction/core.rs +796 -796
- data/vendor/kreuzberg/src/text/token_reduction/filters.rs +902 -902
- data/vendor/kreuzberg/src/text/token_reduction/mod.rs +160 -160
- data/vendor/kreuzberg/src/text/token_reduction/semantic.rs +619 -619
- data/vendor/kreuzberg/src/text/token_reduction/simd_text.rs +147 -147
- data/vendor/kreuzberg/src/types.rs +1055 -1055
- data/vendor/kreuzberg/src/utils/mod.rs +17 -17
- data/vendor/kreuzberg/src/utils/quality.rs +959 -959
- data/vendor/kreuzberg/src/utils/string_utils.rs +381 -381
- data/vendor/kreuzberg/stopwords/af_stopwords.json +53 -53
- data/vendor/kreuzberg/stopwords/ar_stopwords.json +482 -482
- data/vendor/kreuzberg/stopwords/bg_stopwords.json +261 -261
- data/vendor/kreuzberg/stopwords/bn_stopwords.json +400 -400
- data/vendor/kreuzberg/stopwords/br_stopwords.json +1205 -1205
- data/vendor/kreuzberg/stopwords/ca_stopwords.json +280 -280
- data/vendor/kreuzberg/stopwords/cs_stopwords.json +425 -425
- data/vendor/kreuzberg/stopwords/da_stopwords.json +172 -172
- data/vendor/kreuzberg/stopwords/de_stopwords.json +622 -622
- data/vendor/kreuzberg/stopwords/el_stopwords.json +849 -849
- data/vendor/kreuzberg/stopwords/en_stopwords.json +1300 -1300
- data/vendor/kreuzberg/stopwords/eo_stopwords.json +175 -175
- data/vendor/kreuzberg/stopwords/es_stopwords.json +734 -734
- data/vendor/kreuzberg/stopwords/et_stopwords.json +37 -37
- data/vendor/kreuzberg/stopwords/eu_stopwords.json +100 -100
- data/vendor/kreuzberg/stopwords/fa_stopwords.json +801 -801
- data/vendor/kreuzberg/stopwords/fi_stopwords.json +849 -849
- data/vendor/kreuzberg/stopwords/fr_stopwords.json +693 -693
- data/vendor/kreuzberg/stopwords/ga_stopwords.json +111 -111
- data/vendor/kreuzberg/stopwords/gl_stopwords.json +162 -162
- data/vendor/kreuzberg/stopwords/gu_stopwords.json +226 -226
- data/vendor/kreuzberg/stopwords/ha_stopwords.json +41 -41
- data/vendor/kreuzberg/stopwords/he_stopwords.json +196 -196
- data/vendor/kreuzberg/stopwords/hi_stopwords.json +227 -227
- data/vendor/kreuzberg/stopwords/hr_stopwords.json +181 -181
- data/vendor/kreuzberg/stopwords/hu_stopwords.json +791 -791
- data/vendor/kreuzberg/stopwords/hy_stopwords.json +47 -47
- data/vendor/kreuzberg/stopwords/id_stopwords.json +760 -760
- data/vendor/kreuzberg/stopwords/it_stopwords.json +634 -634
- data/vendor/kreuzberg/stopwords/ja_stopwords.json +136 -136
- data/vendor/kreuzberg/stopwords/kn_stopwords.json +84 -84
- data/vendor/kreuzberg/stopwords/ko_stopwords.json +681 -681
- data/vendor/kreuzberg/stopwords/ku_stopwords.json +64 -64
- data/vendor/kreuzberg/stopwords/la_stopwords.json +51 -51
- data/vendor/kreuzberg/stopwords/lt_stopwords.json +476 -476
- data/vendor/kreuzberg/stopwords/lv_stopwords.json +163 -163
- data/vendor/kreuzberg/stopwords/ml_stopwords.json +1 -1
- data/vendor/kreuzberg/stopwords/mr_stopwords.json +101 -101
- data/vendor/kreuzberg/stopwords/ms_stopwords.json +477 -477
- data/vendor/kreuzberg/stopwords/ne_stopwords.json +490 -490
- data/vendor/kreuzberg/stopwords/nl_stopwords.json +415 -415
- data/vendor/kreuzberg/stopwords/no_stopwords.json +223 -223
- data/vendor/kreuzberg/stopwords/pl_stopwords.json +331 -331
- data/vendor/kreuzberg/stopwords/pt_stopwords.json +562 -562
- data/vendor/kreuzberg/stopwords/ro_stopwords.json +436 -436
- data/vendor/kreuzberg/stopwords/ru_stopwords.json +561 -561
- data/vendor/kreuzberg/stopwords/si_stopwords.json +193 -193
- data/vendor/kreuzberg/stopwords/sk_stopwords.json +420 -420
- data/vendor/kreuzberg/stopwords/sl_stopwords.json +448 -448
- data/vendor/kreuzberg/stopwords/so_stopwords.json +32 -32
- data/vendor/kreuzberg/stopwords/st_stopwords.json +33 -33
- data/vendor/kreuzberg/stopwords/sv_stopwords.json +420 -420
- data/vendor/kreuzberg/stopwords/sw_stopwords.json +76 -76
- data/vendor/kreuzberg/stopwords/ta_stopwords.json +129 -129
- data/vendor/kreuzberg/stopwords/te_stopwords.json +54 -54
- data/vendor/kreuzberg/stopwords/th_stopwords.json +118 -118
- data/vendor/kreuzberg/stopwords/tl_stopwords.json +149 -149
- data/vendor/kreuzberg/stopwords/tr_stopwords.json +506 -506
- data/vendor/kreuzberg/stopwords/uk_stopwords.json +75 -75
- data/vendor/kreuzberg/stopwords/ur_stopwords.json +519 -519
- data/vendor/kreuzberg/stopwords/vi_stopwords.json +647 -647
- data/vendor/kreuzberg/stopwords/yo_stopwords.json +62 -62
- data/vendor/kreuzberg/stopwords/zh_stopwords.json +796 -796
- data/vendor/kreuzberg/stopwords/zu_stopwords.json +31 -31
- data/vendor/kreuzberg/tests/api_extract_multipart.rs +52 -52
- data/vendor/kreuzberg/tests/api_tests.rs +966 -966
- data/vendor/kreuzberg/tests/archive_integration.rs +545 -545
- data/vendor/kreuzberg/tests/batch_orchestration.rs +556 -556
- data/vendor/kreuzberg/tests/batch_processing.rs +318 -318
- data/vendor/kreuzberg/tests/bibtex_parity_test.rs +421 -421
- data/vendor/kreuzberg/tests/concurrency_stress.rs +533 -533
- data/vendor/kreuzberg/tests/config_features.rs +612 -612
- data/vendor/kreuzberg/tests/config_loading_tests.rs +416 -416
- data/vendor/kreuzberg/tests/core_integration.rs +510 -510
- data/vendor/kreuzberg/tests/csv_integration.rs +414 -414
- data/vendor/kreuzberg/tests/docbook_extractor_tests.rs +500 -500
- data/vendor/kreuzberg/tests/docx_metadata_extraction_test.rs +122 -122
- data/vendor/kreuzberg/tests/docx_vs_pandoc_comparison.rs +370 -370
- data/vendor/kreuzberg/tests/email_integration.rs +327 -327
- data/vendor/kreuzberg/tests/epub_native_extractor_tests.rs +275 -275
- data/vendor/kreuzberg/tests/error_handling.rs +402 -402
- data/vendor/kreuzberg/tests/fictionbook_extractor_tests.rs +228 -228
- data/vendor/kreuzberg/tests/format_integration.rs +164 -164
- data/vendor/kreuzberg/tests/helpers/mod.rs +142 -142
- data/vendor/kreuzberg/tests/html_table_test.rs +551 -551
- data/vendor/kreuzberg/tests/image_integration.rs +255 -255
- data/vendor/kreuzberg/tests/instrumentation_test.rs +139 -139
- data/vendor/kreuzberg/tests/jats_extractor_tests.rs +639 -639
- data/vendor/kreuzberg/tests/jupyter_extractor_tests.rs +704 -704
- data/vendor/kreuzberg/tests/keywords_integration.rs +479 -479
- data/vendor/kreuzberg/tests/keywords_quality.rs +509 -509
- data/vendor/kreuzberg/tests/latex_extractor_tests.rs +496 -496
- data/vendor/kreuzberg/tests/markdown_extractor_tests.rs +490 -490
- data/vendor/kreuzberg/tests/mime_detection.rs +429 -429
- data/vendor/kreuzberg/tests/ocr_configuration.rs +514 -514
- data/vendor/kreuzberg/tests/ocr_errors.rs +698 -698
- data/vendor/kreuzberg/tests/ocr_quality.rs +629 -629
- data/vendor/kreuzberg/tests/ocr_stress.rs +469 -469
- data/vendor/kreuzberg/tests/odt_extractor_tests.rs +674 -674
- data/vendor/kreuzberg/tests/opml_extractor_tests.rs +616 -616
- data/vendor/kreuzberg/tests/orgmode_extractor_tests.rs +822 -822
- data/vendor/kreuzberg/tests/pdf_integration.rs +45 -45
- data/vendor/kreuzberg/tests/pdfium_linking.rs +374 -374
- data/vendor/kreuzberg/tests/pipeline_integration.rs +1436 -1436
- data/vendor/kreuzberg/tests/plugin_ocr_backend_test.rs +776 -776
- data/vendor/kreuzberg/tests/plugin_postprocessor_test.rs +560 -560
- data/vendor/kreuzberg/tests/plugin_system.rs +927 -927
- data/vendor/kreuzberg/tests/plugin_validator_test.rs +783 -783
- data/vendor/kreuzberg/tests/registry_integration_tests.rs +587 -587
- data/vendor/kreuzberg/tests/rst_extractor_tests.rs +694 -694
- data/vendor/kreuzberg/tests/rtf_extractor_tests.rs +775 -775
- data/vendor/kreuzberg/tests/security_validation.rs +416 -416
- data/vendor/kreuzberg/tests/stopwords_integration_test.rs +888 -888
- data/vendor/kreuzberg/tests/test_fastembed.rs +631 -631
- data/vendor/kreuzberg/tests/typst_behavioral_tests.rs +1260 -1260
- data/vendor/kreuzberg/tests/typst_extractor_tests.rs +648 -648
- data/vendor/kreuzberg/tests/xlsx_metadata_extraction_test.rs +87 -87
- data/vendor/kreuzberg-ffi/Cargo.toml +3 -3
- data/vendor/kreuzberg-ffi/README.md +851 -851
- data/vendor/kreuzberg-ffi/build.rs +176 -176
- data/vendor/kreuzberg-ffi/cbindgen.toml +27 -27
- data/vendor/kreuzberg-ffi/kreuzberg-ffi-install.pc +12 -12
- data/vendor/kreuzberg-ffi/kreuzberg-ffi.pc.in +12 -12
- data/vendor/kreuzberg-ffi/kreuzberg.h +1087 -1087
- data/vendor/kreuzberg-ffi/src/lib.rs +3616 -3616
- data/vendor/kreuzberg-ffi/src/panic_shield.rs +247 -247
- data/vendor/kreuzberg-ffi/tests.disabled/README.md +48 -48
- data/vendor/kreuzberg-ffi/tests.disabled/config_loading_tests.rs +299 -299
- data/vendor/kreuzberg-ffi/tests.disabled/config_tests.rs +346 -346
- data/vendor/kreuzberg-ffi/tests.disabled/extractor_tests.rs +232 -232
- data/vendor/kreuzberg-ffi/tests.disabled/plugin_registration_tests.rs +470 -470
- data/vendor/kreuzberg-tesseract/.commitlintrc.json +13 -13
- data/vendor/kreuzberg-tesseract/.crate-ignore +2 -2
- data/vendor/kreuzberg-tesseract/Cargo.lock +2933 -2933
- data/vendor/kreuzberg-tesseract/Cargo.toml +2 -2
- data/vendor/kreuzberg-tesseract/LICENSE +22 -22
- data/vendor/kreuzberg-tesseract/README.md +399 -399
- data/vendor/kreuzberg-tesseract/build.rs +1354 -1354
- data/vendor/kreuzberg-tesseract/patches/README.md +71 -71
- data/vendor/kreuzberg-tesseract/patches/tesseract.diff +199 -199
- data/vendor/kreuzberg-tesseract/src/api.rs +1371 -1371
- data/vendor/kreuzberg-tesseract/src/choice_iterator.rs +77 -77
- data/vendor/kreuzberg-tesseract/src/enums.rs +297 -297
- data/vendor/kreuzberg-tesseract/src/error.rs +81 -81
- data/vendor/kreuzberg-tesseract/src/lib.rs +145 -145
- data/vendor/kreuzberg-tesseract/src/monitor.rs +57 -57
- data/vendor/kreuzberg-tesseract/src/mutable_iterator.rs +197 -197
- data/vendor/kreuzberg-tesseract/src/page_iterator.rs +253 -253
- data/vendor/kreuzberg-tesseract/src/result_iterator.rs +286 -286
- data/vendor/kreuzberg-tesseract/src/result_renderer.rs +183 -183
- data/vendor/kreuzberg-tesseract/tests/integration_test.rs +211 -211
- data/vendor/rb-sys/.cargo_vcs_info.json +5 -5
- data/vendor/rb-sys/Cargo.lock +393 -393
- data/vendor/rb-sys/Cargo.toml +70 -70
- data/vendor/rb-sys/Cargo.toml.orig +57 -57
- data/vendor/rb-sys/LICENSE-APACHE +190 -190
- data/vendor/rb-sys/LICENSE-MIT +21 -21
- data/vendor/rb-sys/build/features.rs +111 -111
- data/vendor/rb-sys/build/main.rs +286 -286
- data/vendor/rb-sys/build/stable_api_config.rs +155 -155
- data/vendor/rb-sys/build/version.rs +50 -50
- data/vendor/rb-sys/readme.md +36 -36
- data/vendor/rb-sys/src/bindings.rs +21 -21
- data/vendor/rb-sys/src/hidden.rs +11 -11
- data/vendor/rb-sys/src/lib.rs +35 -35
- data/vendor/rb-sys/src/macros.rs +371 -371
- data/vendor/rb-sys/src/memory.rs +53 -53
- data/vendor/rb-sys/src/ruby_abi_version.rs +38 -38
- data/vendor/rb-sys/src/special_consts.rs +31 -31
- data/vendor/rb-sys/src/stable_api/compiled.c +179 -179
- data/vendor/rb-sys/src/stable_api/compiled.rs +257 -257
- data/vendor/rb-sys/src/stable_api/ruby_2_7.rs +324 -324
- data/vendor/rb-sys/src/stable_api/ruby_3_0.rs +332 -332
- data/vendor/rb-sys/src/stable_api/ruby_3_1.rs +325 -325
- data/vendor/rb-sys/src/stable_api/ruby_3_2.rs +323 -323
- data/vendor/rb-sys/src/stable_api/ruby_3_3.rs +339 -339
- data/vendor/rb-sys/src/stable_api/ruby_3_4.rs +339 -339
- data/vendor/rb-sys/src/stable_api.rs +260 -260
- data/vendor/rb-sys/src/symbol.rs +31 -31
- data/vendor/rb-sys/src/tracking_allocator.rs +330 -330
- data/vendor/rb-sys/src/utils.rs +89 -89
- data/vendor/rb-sys/src/value_type.rs +7 -7
- metadata +7 -80
data/sig/kreuzberg.rbs
CHANGED
|
@@ -1,546 +1,546 @@
|
|
|
1
|
-
# Type signatures for Kreuzberg document intelligence framework
|
|
2
|
-
|
|
3
|
-
module Kreuzberg
|
|
4
|
-
VERSION: String
|
|
5
|
-
|
|
6
|
-
# Error code constants
|
|
7
|
-
ERROR_CODE_SUCCESS: Integer
|
|
8
|
-
ERROR_CODE_GENERIC: Integer
|
|
9
|
-
ERROR_CODE_PANIC: Integer
|
|
10
|
-
ERROR_CODE_INVALID_ARGUMENT: Integer
|
|
11
|
-
ERROR_CODE_IO: Integer
|
|
12
|
-
ERROR_CODE_PARSING: Integer
|
|
13
|
-
ERROR_CODE_OCR: Integer
|
|
14
|
-
ERROR_CODE_MISSING_DEPENDENCY: Integer
|
|
15
|
-
|
|
16
|
-
# Config namespace (defined in lib/kreuzberg/config.rb)
|
|
17
|
-
module Config
|
|
18
|
-
class OCR
|
|
19
|
-
attr_reader backend: String
|
|
20
|
-
attr_reader language: String
|
|
21
|
-
attr_reader tesseract_config: Tesseract?
|
|
22
|
-
|
|
23
|
-
def initialize: (?backend: String, ?language: String, ?tesseract_config: (Tesseract | Hash[Symbol, untyped])?) -> void
|
|
24
|
-
def to_h: () -> Hash[Symbol, untyped]
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
class Tesseract
|
|
28
|
-
def initialize: (**untyped options) -> void
|
|
29
|
-
def to_h: () -> Hash[Symbol, untyped]
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
class Chunking
|
|
33
|
-
attr_reader max_chars: Integer
|
|
34
|
-
attr_reader max_overlap: Integer
|
|
35
|
-
attr_reader preset: String?
|
|
36
|
-
attr_reader embedding: Embedding?
|
|
37
|
-
attr_reader enabled: bool?
|
|
38
|
-
|
|
39
|
-
def initialize: (
|
|
40
|
-
?max_chars: Integer?,
|
|
41
|
-
?max_overlap: Integer?,
|
|
42
|
-
?preset: String?,
|
|
43
|
-
?embedding: (Embedding | Hash[Symbol, untyped])?,
|
|
44
|
-
?chunk_size: Integer?,
|
|
45
|
-
?chunk_overlap: Integer?,
|
|
46
|
-
?enabled: bool
|
|
47
|
-
) -> void
|
|
48
|
-
def to_h: () -> Hash[Symbol, untyped]
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
class Embedding
|
|
52
|
-
attr_reader model: Hash[Symbol, untyped]
|
|
53
|
-
attr_reader normalize: bool?
|
|
54
|
-
attr_reader batch_size: Integer?
|
|
55
|
-
attr_reader show_download_progress: bool?
|
|
56
|
-
attr_reader cache_dir: String?
|
|
57
|
-
|
|
58
|
-
def initialize: (
|
|
59
|
-
?model: Hash[Symbol, untyped],
|
|
60
|
-
?normalize: bool?,
|
|
61
|
-
?batch_size: Integer?,
|
|
62
|
-
?show_download_progress: bool?,
|
|
63
|
-
?cache_dir: String?
|
|
64
|
-
) -> void
|
|
65
|
-
def to_h: () -> Hash[Symbol, untyped]
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
class LanguageDetection
|
|
69
|
-
attr_reader enabled: bool
|
|
70
|
-
attr_reader min_confidence: Float
|
|
71
|
-
attr_reader detect_multiple: bool
|
|
72
|
-
|
|
73
|
-
def initialize: (?enabled: bool, ?min_confidence: Float, ?detect_multiple: bool) -> void
|
|
74
|
-
def to_h: () -> Hash[Symbol, untyped]
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
class PDF
|
|
78
|
-
attr_reader extract_images: bool
|
|
79
|
-
attr_reader passwords: Array[String]?
|
|
80
|
-
attr_reader extract_metadata: bool
|
|
81
|
-
|
|
82
|
-
def initialize: (?extract_images: bool, ?passwords: (Array[String] | String)?, ?extract_metadata: bool) -> void
|
|
83
|
-
def to_h: () -> Hash[Symbol, untyped]
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
class ImageExtraction
|
|
87
|
-
attr_reader extract_images: bool
|
|
88
|
-
attr_reader target_dpi: Integer
|
|
89
|
-
attr_reader max_image_dimension: Integer
|
|
90
|
-
attr_reader auto_adjust_dpi: bool
|
|
91
|
-
attr_reader min_dpi: Integer
|
|
92
|
-
attr_reader max_dpi: Integer
|
|
93
|
-
|
|
94
|
-
def initialize: (
|
|
95
|
-
?extract_images: bool,
|
|
96
|
-
?target_dpi: Integer,
|
|
97
|
-
?max_image_dimension: Integer,
|
|
98
|
-
?auto_adjust_dpi: bool,
|
|
99
|
-
?min_dpi: Integer,
|
|
100
|
-
?max_dpi: Integer
|
|
101
|
-
) -> void
|
|
102
|
-
def to_h: () -> Hash[Symbol, untyped]
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
class ImagePreprocessing
|
|
106
|
-
attr_reader target_dpi: Integer
|
|
107
|
-
attr_reader auto_rotate: bool
|
|
108
|
-
attr_reader deskew: bool
|
|
109
|
-
attr_reader denoise: bool
|
|
110
|
-
attr_reader contrast_enhance: bool
|
|
111
|
-
attr_reader binarization_method: String
|
|
112
|
-
attr_reader invert_colors: bool
|
|
113
|
-
|
|
114
|
-
def initialize: (
|
|
115
|
-
?target_dpi: Integer,
|
|
116
|
-
?auto_rotate: bool,
|
|
117
|
-
?deskew: bool,
|
|
118
|
-
?denoise: bool,
|
|
119
|
-
?contrast_enhance: bool,
|
|
120
|
-
?binarization_method: String,
|
|
121
|
-
?invert_colors: bool
|
|
122
|
-
) -> void
|
|
123
|
-
def to_h: () -> Hash[Symbol, untyped]
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
class TokenReduction
|
|
127
|
-
attr_reader mode: String
|
|
128
|
-
attr_reader preserve_important_words: bool
|
|
129
|
-
|
|
130
|
-
def initialize: (?mode: String, ?preserve_important_words: bool) -> void
|
|
131
|
-
def to_h: () -> Hash[Symbol, untyped]
|
|
132
|
-
end
|
|
133
|
-
|
|
134
|
-
class PostProcessor
|
|
135
|
-
attr_reader enabled: bool
|
|
136
|
-
attr_reader enabled_processors: Array[String]?
|
|
137
|
-
attr_reader disabled_processors: Array[String]?
|
|
138
|
-
|
|
139
|
-
def initialize: (?enabled: bool, ?enabled_processors: Array[String]?, ?disabled_processors: Array[String]?) -> void
|
|
140
|
-
def to_h: () -> Hash[Symbol, untyped]
|
|
141
|
-
end
|
|
142
|
-
|
|
143
|
-
class HtmlPreprocessing
|
|
144
|
-
attr_reader enabled: bool?
|
|
145
|
-
attr_reader preset: Symbol?
|
|
146
|
-
attr_reader remove_navigation: bool?
|
|
147
|
-
attr_reader remove_forms: bool?
|
|
148
|
-
|
|
149
|
-
def initialize: (?enabled: bool?, ?preset: Symbol?, ?remove_navigation: bool?, ?remove_forms: bool?) -> void
|
|
150
|
-
def to_h: () -> Hash[Symbol, untyped]
|
|
151
|
-
end
|
|
152
|
-
|
|
153
|
-
class HtmlOptions
|
|
154
|
-
def initialize: (**untyped options) -> void
|
|
155
|
-
def to_h: () -> Hash[Symbol, untyped]
|
|
156
|
-
end
|
|
157
|
-
|
|
158
|
-
class Keywords
|
|
159
|
-
def initialize: (
|
|
160
|
-
?algorithm: Symbol?,
|
|
161
|
-
?max_keywords: Integer?,
|
|
162
|
-
?min_score: Float?,
|
|
163
|
-
?ngram_range: Array[Integer]?,
|
|
164
|
-
?language: Symbol?,
|
|
165
|
-
?yake_params: Hash[Symbol, untyped]?,
|
|
166
|
-
?rake_params: Hash[Symbol, untyped]?
|
|
167
|
-
) -> void
|
|
168
|
-
def to_h: () -> Hash[Symbol, untyped]
|
|
169
|
-
end
|
|
170
|
-
|
|
171
|
-
class PageConfig
|
|
172
|
-
attr_reader extract_pages: bool
|
|
173
|
-
attr_reader insert_page_markers: bool
|
|
174
|
-
attr_reader marker_format: String
|
|
175
|
-
|
|
176
|
-
def initialize: (?extract_pages: bool, ?insert_page_markers: bool, ?marker_format: String) -> void
|
|
177
|
-
def to_h: () -> Hash[Symbol, untyped]
|
|
178
|
-
end
|
|
179
|
-
|
|
180
|
-
class Extraction
|
|
181
|
-
attr_reader use_cache: bool
|
|
182
|
-
attr_reader enable_quality_processing: bool
|
|
183
|
-
attr_reader force_ocr: bool
|
|
184
|
-
attr_reader ocr: OCR?
|
|
185
|
-
attr_reader chunking: Chunking?
|
|
186
|
-
attr_reader language_detection: LanguageDetection?
|
|
187
|
-
attr_reader pdf_options: PDF?
|
|
188
|
-
attr_reader image_extraction: ImageExtraction?
|
|
189
|
-
attr_reader image_preprocessing: ImagePreprocessing?
|
|
190
|
-
attr_reader postprocessor: PostProcessor?
|
|
191
|
-
attr_reader token_reduction: TokenReduction?
|
|
192
|
-
attr_reader keywords: Keywords?
|
|
193
|
-
attr_reader html_options: HtmlOptions?
|
|
194
|
-
attr_reader pages: PageConfig?
|
|
195
|
-
attr_reader max_concurrent_extractions: Integer?
|
|
196
|
-
|
|
197
|
-
def self.from_file: (String path) -> Extraction
|
|
198
|
-
def initialize: (
|
|
199
|
-
?use_cache: bool,
|
|
200
|
-
?enable_quality_processing: bool,
|
|
201
|
-
?force_ocr: bool,
|
|
202
|
-
?ocr: (OCR | Hash[Symbol, untyped])?,
|
|
203
|
-
?chunking: (Chunking | Hash[Symbol, untyped])?,
|
|
204
|
-
?language_detection: (LanguageDetection | Hash[Symbol, untyped])?,
|
|
205
|
-
?pdf_options: (PDF | Hash[Symbol, untyped])?,
|
|
206
|
-
?image_extraction: (ImageExtraction | Hash[Symbol, untyped])?,
|
|
207
|
-
?image_preprocessing: (ImagePreprocessing | Hash[Symbol, untyped])?,
|
|
208
|
-
?postprocessor: (PostProcessor | Hash[Symbol, untyped])?,
|
|
209
|
-
?token_reduction: (TokenReduction | Hash[Symbol, untyped])?,
|
|
210
|
-
?keywords: (Keywords | Hash[Symbol, untyped])?,
|
|
211
|
-
?html_options: (HtmlOptions | Hash[Symbol, untyped])?,
|
|
212
|
-
?pages: (PageConfig | Hash[Symbol, untyped])?,
|
|
213
|
-
?max_concurrent_extractions: Integer?
|
|
214
|
-
) -> void
|
|
215
|
-
def to_h: () -> Hash[Symbol, untyped]
|
|
216
|
-
|
|
217
|
-
private
|
|
218
|
-
|
|
219
|
-
def normalize_config: [T] (T | Hash[Symbol, untyped] | nil value, Class klass) -> T?
|
|
220
|
-
end
|
|
221
|
-
|
|
222
|
-
# Backwards compatibility alias
|
|
223
|
-
Ocr: singleton(OCR)
|
|
224
|
-
end
|
|
225
|
-
|
|
226
|
-
# Alias for Config::Extraction (for API consistency with other language bindings)
|
|
227
|
-
ExtractionConfig: singleton(Config::Extraction)
|
|
228
|
-
|
|
229
|
-
# Alias for Config::PageConfig (for API consistency with other language bindings)
|
|
230
|
-
PageConfig: singleton(Config::PageConfig)
|
|
231
|
-
|
|
232
|
-
# Keyword algorithm constants
|
|
233
|
-
module KeywordAlgorithm
|
|
234
|
-
YAKE: Symbol
|
|
235
|
-
RAKE: Symbol
|
|
236
|
-
end
|
|
237
|
-
|
|
238
|
-
# Extraction result type
|
|
239
|
-
type extraction_result_hash = {
|
|
240
|
-
content: String,
|
|
241
|
-
mime_type: String,
|
|
242
|
-
metadata_json: String,
|
|
243
|
-
tables: Array[table_hash]?,
|
|
244
|
-
detected_languages: Array[String]?,
|
|
245
|
-
chunks: Array[chunk_hash]?,
|
|
246
|
-
images: Array[image_hash]?
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
type table_hash = {
|
|
250
|
-
cells: Array[Array[String]],
|
|
251
|
-
markdown: String,
|
|
252
|
-
page_number: Integer
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
type chunk_hash = {
|
|
256
|
-
content: String,
|
|
257
|
-
byte_start: Integer,
|
|
258
|
-
byte_end: Integer,
|
|
259
|
-
token_count: Integer?,
|
|
260
|
-
chunk_index: Integer?,
|
|
261
|
-
total_chunks: Integer?,
|
|
262
|
-
first_page: Integer?,
|
|
263
|
-
last_page: Integer?,
|
|
264
|
-
embedding: Array[Float]?
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
type image_hash = {
|
|
268
|
-
data: String,
|
|
269
|
-
format: String,
|
|
270
|
-
image_index: Integer,
|
|
271
|
-
page_number: Integer?,
|
|
272
|
-
width: Integer?,
|
|
273
|
-
height: Integer?,
|
|
274
|
-
colorspace: String?,
|
|
275
|
-
bits_per_component: Integer?,
|
|
276
|
-
is_mask: bool?,
|
|
277
|
-
description: String?,
|
|
278
|
-
ocr_result: extraction_result_hash?
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
type config_hash = Hash[Symbol, untyped]
|
|
282
|
-
type config_input = config_hash | _ToH
|
|
283
|
-
|
|
284
|
-
interface _ToH
|
|
285
|
-
def to_h: () -> config_hash
|
|
286
|
-
end
|
|
287
|
-
|
|
288
|
-
# Extraction result wrapper
|
|
289
|
-
class Result
|
|
290
|
-
# Table structure
|
|
291
|
-
class Table
|
|
292
|
-
attr_reader cells: Array[Array[String]]
|
|
293
|
-
attr_reader markdown: String
|
|
294
|
-
attr_reader page_number: Integer
|
|
295
|
-
|
|
296
|
-
def initialize: (cells: Array[Array[String]], markdown: String, page_number: Integer) -> void
|
|
297
|
-
def to_h: () -> table_hash
|
|
298
|
-
end
|
|
299
|
-
|
|
300
|
-
# Text chunk
|
|
301
|
-
class Chunk
|
|
302
|
-
attr_reader content: String
|
|
303
|
-
attr_reader byte_start: Integer
|
|
304
|
-
attr_reader byte_end: Integer
|
|
305
|
-
attr_reader token_count: Integer?
|
|
306
|
-
attr_reader chunk_index: Integer?
|
|
307
|
-
attr_reader total_chunks: Integer?
|
|
308
|
-
attr_reader first_page: Integer?
|
|
309
|
-
attr_reader last_page: Integer?
|
|
310
|
-
attr_reader embedding: Array[Float]?
|
|
311
|
-
|
|
312
|
-
def initialize: (
|
|
313
|
-
content: String,
|
|
314
|
-
byte_start: Integer,
|
|
315
|
-
byte_end: Integer,
|
|
316
|
-
token_count: Integer?,
|
|
317
|
-
chunk_index: Integer?,
|
|
318
|
-
total_chunks: Integer?,
|
|
319
|
-
first_page: Integer?,
|
|
320
|
-
last_page: Integer?,
|
|
321
|
-
embedding: Array[Float]?
|
|
322
|
-
) -> void
|
|
323
|
-
def to_h: () -> chunk_hash
|
|
324
|
-
end
|
|
325
|
-
|
|
326
|
-
class Image
|
|
327
|
-
attr_reader data: String
|
|
328
|
-
attr_reader format: String
|
|
329
|
-
attr_reader image_index: Integer
|
|
330
|
-
attr_reader page_number: Integer?
|
|
331
|
-
attr_reader width: Integer?
|
|
332
|
-
attr_reader height: Integer?
|
|
333
|
-
attr_reader colorspace: String?
|
|
334
|
-
attr_reader bits_per_component: Integer?
|
|
335
|
-
attr_reader is_mask: bool?
|
|
336
|
-
attr_reader description: String?
|
|
337
|
-
attr_reader ocr_result: Result?
|
|
338
|
-
|
|
339
|
-
def initialize: (
|
|
340
|
-
data: String,
|
|
341
|
-
format: String,
|
|
342
|
-
image_index: Integer,
|
|
343
|
-
page_number: Integer?,
|
|
344
|
-
width: Integer?,
|
|
345
|
-
height: Integer?,
|
|
346
|
-
colorspace: String?,
|
|
347
|
-
bits_per_component: Integer?,
|
|
348
|
-
is_mask: bool?,
|
|
349
|
-
description: String?,
|
|
350
|
-
ocr_result: Result?
|
|
351
|
-
) -> void
|
|
352
|
-
def to_h: () -> image_hash
|
|
353
|
-
end
|
|
354
|
-
|
|
355
|
-
attr_reader content: String
|
|
356
|
-
attr_reader mime_type: String
|
|
357
|
-
attr_reader metadata: Hash[untyped, untyped]
|
|
358
|
-
attr_reader metadata_json: String
|
|
359
|
-
attr_reader tables: Array[Table]
|
|
360
|
-
attr_reader detected_languages: Array[String]?
|
|
361
|
-
attr_reader chunks: Array[Chunk]?
|
|
362
|
-
attr_reader images: Array[Image]?
|
|
363
|
-
|
|
364
|
-
def initialize: (extraction_result_hash hash) -> void
|
|
365
|
-
def to_h: () -> Hash[Symbol, untyped]
|
|
366
|
-
def to_json: (*untyped) -> String
|
|
367
|
-
|
|
368
|
-
private
|
|
369
|
-
|
|
370
|
-
def parse_metadata: (String metadata_json) -> Hash[untyped, untyped]
|
|
371
|
-
def parse_tables: (Array[table_hash]? tables_data) -> Array[Table]
|
|
372
|
-
def parse_detected_languages: (Array[String]? langs_data) -> Array[String]?
|
|
373
|
-
def parse_chunks: (Array[chunk_hash]? chunks_data) -> Array[Chunk]?
|
|
374
|
-
end
|
|
375
|
-
|
|
376
|
-
# Module methods (extraction API)
|
|
377
|
-
def self.extract_file_sync: (
|
|
378
|
-
String | Pathname path,
|
|
379
|
-
?mime_type: String?,
|
|
380
|
-
?config: config_input?
|
|
381
|
-
) -> Result
|
|
382
|
-
|
|
383
|
-
def self.extract_bytes_sync: (
|
|
384
|
-
String data,
|
|
385
|
-
String mime_type,
|
|
386
|
-
?config: config_input?
|
|
387
|
-
) -> Result
|
|
388
|
-
|
|
389
|
-
def self.batch_extract_files_sync: (
|
|
390
|
-
Array[String | Pathname] paths,
|
|
391
|
-
?config: config_input?
|
|
392
|
-
) -> Array[Result]
|
|
393
|
-
|
|
394
|
-
def self.batch_extract_bytes_sync: (
|
|
395
|
-
Array[String] data_array,
|
|
396
|
-
Array[String] mime_types,
|
|
397
|
-
?config: config_input?
|
|
398
|
-
) -> Array[Result]
|
|
399
|
-
|
|
400
|
-
def self.extract_file: (
|
|
401
|
-
String | Pathname path,
|
|
402
|
-
?mime_type: String?,
|
|
403
|
-
?config: config_input?
|
|
404
|
-
) -> Result
|
|
405
|
-
|
|
406
|
-
def self.extract_bytes: (
|
|
407
|
-
String data,
|
|
408
|
-
String mime_type,
|
|
409
|
-
?config: config_input?
|
|
410
|
-
) -> Result
|
|
411
|
-
|
|
412
|
-
def self.batch_extract_files: (
|
|
413
|
-
Array[String | Pathname] paths,
|
|
414
|
-
?config: config_input?
|
|
415
|
-
) -> Array[Result]
|
|
416
|
-
|
|
417
|
-
def self.batch_extract_bytes: (
|
|
418
|
-
Array[String] data_array,
|
|
419
|
-
Array[String] mime_types,
|
|
420
|
-
?config: config_input?
|
|
421
|
-
) -> Array[Result]
|
|
422
|
-
|
|
423
|
-
# Cache API
|
|
424
|
-
def self.clear_cache: () -> void
|
|
425
|
-
def self.cache_stats: () -> Hash[Symbol | String, Integer]
|
|
426
|
-
|
|
427
|
-
# Config loading (native method)
|
|
428
|
-
def self._config_from_file_native: (String path) -> Hash[Symbol, untyped]
|
|
429
|
-
|
|
430
|
-
# Error introspection (native methods)
|
|
431
|
-
def self._last_error_code_native: () -> Integer
|
|
432
|
-
def self._last_panic_context_json_native: () -> String?
|
|
433
|
-
|
|
434
|
-
# Plugin registration
|
|
435
|
-
def self.register_post_processor: (String name, _PostProcessor processor, ?stage: Symbol?) -> void
|
|
436
|
-
def self.unregister_post_processor: (String name) -> void
|
|
437
|
-
def self.clear_post_processors: () -> void
|
|
438
|
-
def self.register_validator: (String name, _Validator validator, ?priority: Integer?) -> void
|
|
439
|
-
def self.unregister_validator: (String name) -> void
|
|
440
|
-
def self.clear_validators: () -> void
|
|
441
|
-
def self.register_ocr_backend: (_OcrBackend backend) -> void
|
|
442
|
-
|
|
443
|
-
interface _PostProcessor
|
|
444
|
-
def call: (extraction_result_hash result) -> extraction_result_hash
|
|
445
|
-
end
|
|
446
|
-
|
|
447
|
-
interface _Validator
|
|
448
|
-
def call: (extraction_result_hash result) -> void
|
|
449
|
-
end
|
|
450
|
-
|
|
451
|
-
interface _OcrBackend
|
|
452
|
-
def name: () -> String
|
|
453
|
-
def extract_text: (String file_path_or_bytes, Hash[Symbol, untyped] config) -> String
|
|
454
|
-
end
|
|
455
|
-
|
|
456
|
-
module ErrorContext
|
|
457
|
-
def self.last_error_code: () -> Integer
|
|
458
|
-
def self.last_panic_context: () -> Errors::PanicContext?
|
|
459
|
-
def self.last_panic_context_json: () -> String?
|
|
460
|
-
end
|
|
461
|
-
|
|
462
|
-
module Errors
|
|
463
|
-
# Panic context information from FFI error introspection
|
|
464
|
-
class PanicContext
|
|
465
|
-
attr_reader file: String
|
|
466
|
-
attr_reader line: Integer
|
|
467
|
-
attr_reader function: String
|
|
468
|
-
attr_reader message: String
|
|
469
|
-
attr_reader timestamp_secs: Integer
|
|
470
|
-
|
|
471
|
-
def initialize: (
|
|
472
|
-
file: String,
|
|
473
|
-
line: Integer,
|
|
474
|
-
function: String,
|
|
475
|
-
message: String,
|
|
476
|
-
timestamp_secs: Integer
|
|
477
|
-
) -> void
|
|
478
|
-
def to_s: () -> String
|
|
479
|
-
def to_h: () -> Hash[Symbol, String | Integer]
|
|
480
|
-
def self.from_json: (String) -> PanicContext?
|
|
481
|
-
|
|
482
|
-
private
|
|
483
|
-
|
|
484
|
-
def self.with_defaults: (Hash[Symbol, untyped] sliced) -> {file: String, line: Integer, function: String, message: String, timestamp_secs: Integer}
|
|
485
|
-
end
|
|
486
|
-
|
|
487
|
-
class Error < StandardError
|
|
488
|
-
attr_reader panic_context: PanicContext?
|
|
489
|
-
attr_reader error_code: Integer?
|
|
490
|
-
|
|
491
|
-
def initialize: (String message, ?panic_context: PanicContext?, ?error_code: Integer?) -> void
|
|
492
|
-
end
|
|
493
|
-
|
|
494
|
-
class ValidationError < Error
|
|
495
|
-
end
|
|
496
|
-
|
|
497
|
-
class ParsingError < Error
|
|
498
|
-
attr_reader context: Hash[untyped, untyped]?
|
|
499
|
-
|
|
500
|
-
def initialize: (String message, ?context: Hash[untyped, untyped]?, ?panic_context: PanicContext?, ?error_code: Integer?) -> void
|
|
501
|
-
end
|
|
502
|
-
|
|
503
|
-
class OCRError < Error
|
|
504
|
-
attr_reader context: Hash[untyped, untyped]?
|
|
505
|
-
|
|
506
|
-
def initialize: (String message, ?context: Hash[untyped, untyped]?, ?panic_context: PanicContext?, ?error_code: Integer?) -> void
|
|
507
|
-
end
|
|
508
|
-
|
|
509
|
-
class MissingDependencyError < Error
|
|
510
|
-
attr_reader dependency: String?
|
|
511
|
-
|
|
512
|
-
def initialize: (String message, ?dependency: String?, ?panic_context: PanicContext?, ?error_code: Integer?) -> void
|
|
513
|
-
end
|
|
514
|
-
|
|
515
|
-
class IOError < Error
|
|
516
|
-
end
|
|
517
|
-
|
|
518
|
-
class PluginError < Error
|
|
519
|
-
end
|
|
520
|
-
|
|
521
|
-
class UnsupportedFormatError < Error
|
|
522
|
-
end
|
|
523
|
-
end
|
|
524
|
-
|
|
525
|
-
# Internal modules (prepended to Kreuzberg singleton)
|
|
526
|
-
# These are not checked by steep - see Steepfile
|
|
527
|
-
module CacheAPI : Object
|
|
528
|
-
end
|
|
529
|
-
|
|
530
|
-
module ExtractionAPI : Object
|
|
531
|
-
end
|
|
532
|
-
|
|
533
|
-
module PostProcessorProtocol
|
|
534
|
-
def call: (extraction_result_hash result) -> extraction_result_hash
|
|
535
|
-
end
|
|
536
|
-
|
|
537
|
-
module ValidatorProtocol
|
|
538
|
-
def call: (extraction_result_hash result) -> void
|
|
539
|
-
end
|
|
540
|
-
|
|
541
|
-
module OcrBackendProtocol
|
|
542
|
-
def name: () -> String
|
|
543
|
-
def extract_text: (String file_path_or_bytes, Hash[Symbol, untyped] config) -> String
|
|
544
|
-
def process_image: (String file_path_or_bytes, Hash[Symbol, untyped] config) -> String
|
|
545
|
-
end
|
|
546
|
-
end
|
|
1
|
+
# Type signatures for Kreuzberg document intelligence framework
|
|
2
|
+
|
|
3
|
+
module Kreuzberg
|
|
4
|
+
VERSION: String
|
|
5
|
+
|
|
6
|
+
# Error code constants
|
|
7
|
+
ERROR_CODE_SUCCESS: Integer
|
|
8
|
+
ERROR_CODE_GENERIC: Integer
|
|
9
|
+
ERROR_CODE_PANIC: Integer
|
|
10
|
+
ERROR_CODE_INVALID_ARGUMENT: Integer
|
|
11
|
+
ERROR_CODE_IO: Integer
|
|
12
|
+
ERROR_CODE_PARSING: Integer
|
|
13
|
+
ERROR_CODE_OCR: Integer
|
|
14
|
+
ERROR_CODE_MISSING_DEPENDENCY: Integer
|
|
15
|
+
|
|
16
|
+
# Config namespace (defined in lib/kreuzberg/config.rb)
|
|
17
|
+
module Config
|
|
18
|
+
class OCR
|
|
19
|
+
attr_reader backend: String
|
|
20
|
+
attr_reader language: String
|
|
21
|
+
attr_reader tesseract_config: Tesseract?
|
|
22
|
+
|
|
23
|
+
def initialize: (?backend: String, ?language: String, ?tesseract_config: (Tesseract | Hash[Symbol, untyped])?) -> void
|
|
24
|
+
def to_h: () -> Hash[Symbol, untyped]
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
class Tesseract
|
|
28
|
+
def initialize: (**untyped options) -> void
|
|
29
|
+
def to_h: () -> Hash[Symbol, untyped]
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
class Chunking
|
|
33
|
+
attr_reader max_chars: Integer
|
|
34
|
+
attr_reader max_overlap: Integer
|
|
35
|
+
attr_reader preset: String?
|
|
36
|
+
attr_reader embedding: Embedding?
|
|
37
|
+
attr_reader enabled: bool?
|
|
38
|
+
|
|
39
|
+
def initialize: (
|
|
40
|
+
?max_chars: Integer?,
|
|
41
|
+
?max_overlap: Integer?,
|
|
42
|
+
?preset: String?,
|
|
43
|
+
?embedding: (Embedding | Hash[Symbol, untyped])?,
|
|
44
|
+
?chunk_size: Integer?,
|
|
45
|
+
?chunk_overlap: Integer?,
|
|
46
|
+
?enabled: bool
|
|
47
|
+
) -> void
|
|
48
|
+
def to_h: () -> Hash[Symbol, untyped]
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
class Embedding
|
|
52
|
+
attr_reader model: Hash[Symbol, untyped]
|
|
53
|
+
attr_reader normalize: bool?
|
|
54
|
+
attr_reader batch_size: Integer?
|
|
55
|
+
attr_reader show_download_progress: bool?
|
|
56
|
+
attr_reader cache_dir: String?
|
|
57
|
+
|
|
58
|
+
def initialize: (
|
|
59
|
+
?model: Hash[Symbol, untyped],
|
|
60
|
+
?normalize: bool?,
|
|
61
|
+
?batch_size: Integer?,
|
|
62
|
+
?show_download_progress: bool?,
|
|
63
|
+
?cache_dir: String?
|
|
64
|
+
) -> void
|
|
65
|
+
def to_h: () -> Hash[Symbol, untyped]
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
class LanguageDetection
|
|
69
|
+
attr_reader enabled: bool
|
|
70
|
+
attr_reader min_confidence: Float
|
|
71
|
+
attr_reader detect_multiple: bool
|
|
72
|
+
|
|
73
|
+
def initialize: (?enabled: bool, ?min_confidence: Float, ?detect_multiple: bool) -> void
|
|
74
|
+
def to_h: () -> Hash[Symbol, untyped]
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
class PDF
|
|
78
|
+
attr_reader extract_images: bool
|
|
79
|
+
attr_reader passwords: Array[String]?
|
|
80
|
+
attr_reader extract_metadata: bool
|
|
81
|
+
|
|
82
|
+
def initialize: (?extract_images: bool, ?passwords: (Array[String] | String)?, ?extract_metadata: bool) -> void
|
|
83
|
+
def to_h: () -> Hash[Symbol, untyped]
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
class ImageExtraction
|
|
87
|
+
attr_reader extract_images: bool
|
|
88
|
+
attr_reader target_dpi: Integer
|
|
89
|
+
attr_reader max_image_dimension: Integer
|
|
90
|
+
attr_reader auto_adjust_dpi: bool
|
|
91
|
+
attr_reader min_dpi: Integer
|
|
92
|
+
attr_reader max_dpi: Integer
|
|
93
|
+
|
|
94
|
+
def initialize: (
|
|
95
|
+
?extract_images: bool,
|
|
96
|
+
?target_dpi: Integer,
|
|
97
|
+
?max_image_dimension: Integer,
|
|
98
|
+
?auto_adjust_dpi: bool,
|
|
99
|
+
?min_dpi: Integer,
|
|
100
|
+
?max_dpi: Integer
|
|
101
|
+
) -> void
|
|
102
|
+
def to_h: () -> Hash[Symbol, untyped]
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
class ImagePreprocessing
|
|
106
|
+
attr_reader target_dpi: Integer
|
|
107
|
+
attr_reader auto_rotate: bool
|
|
108
|
+
attr_reader deskew: bool
|
|
109
|
+
attr_reader denoise: bool
|
|
110
|
+
attr_reader contrast_enhance: bool
|
|
111
|
+
attr_reader binarization_method: String
|
|
112
|
+
attr_reader invert_colors: bool
|
|
113
|
+
|
|
114
|
+
def initialize: (
|
|
115
|
+
?target_dpi: Integer,
|
|
116
|
+
?auto_rotate: bool,
|
|
117
|
+
?deskew: bool,
|
|
118
|
+
?denoise: bool,
|
|
119
|
+
?contrast_enhance: bool,
|
|
120
|
+
?binarization_method: String,
|
|
121
|
+
?invert_colors: bool
|
|
122
|
+
) -> void
|
|
123
|
+
def to_h: () -> Hash[Symbol, untyped]
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
class TokenReduction
|
|
127
|
+
attr_reader mode: String
|
|
128
|
+
attr_reader preserve_important_words: bool
|
|
129
|
+
|
|
130
|
+
def initialize: (?mode: String, ?preserve_important_words: bool) -> void
|
|
131
|
+
def to_h: () -> Hash[Symbol, untyped]
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
class PostProcessor
|
|
135
|
+
attr_reader enabled: bool
|
|
136
|
+
attr_reader enabled_processors: Array[String]?
|
|
137
|
+
attr_reader disabled_processors: Array[String]?
|
|
138
|
+
|
|
139
|
+
def initialize: (?enabled: bool, ?enabled_processors: Array[String]?, ?disabled_processors: Array[String]?) -> void
|
|
140
|
+
def to_h: () -> Hash[Symbol, untyped]
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
class HtmlPreprocessing
|
|
144
|
+
attr_reader enabled: bool?
|
|
145
|
+
attr_reader preset: Symbol?
|
|
146
|
+
attr_reader remove_navigation: bool?
|
|
147
|
+
attr_reader remove_forms: bool?
|
|
148
|
+
|
|
149
|
+
def initialize: (?enabled: bool?, ?preset: Symbol?, ?remove_navigation: bool?, ?remove_forms: bool?) -> void
|
|
150
|
+
def to_h: () -> Hash[Symbol, untyped]
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
class HtmlOptions
|
|
154
|
+
def initialize: (**untyped options) -> void
|
|
155
|
+
def to_h: () -> Hash[Symbol, untyped]
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
class Keywords
|
|
159
|
+
def initialize: (
|
|
160
|
+
?algorithm: Symbol?,
|
|
161
|
+
?max_keywords: Integer?,
|
|
162
|
+
?min_score: Float?,
|
|
163
|
+
?ngram_range: Array[Integer]?,
|
|
164
|
+
?language: Symbol?,
|
|
165
|
+
?yake_params: Hash[Symbol, untyped]?,
|
|
166
|
+
?rake_params: Hash[Symbol, untyped]?
|
|
167
|
+
) -> void
|
|
168
|
+
def to_h: () -> Hash[Symbol, untyped]
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
class PageConfig
|
|
172
|
+
attr_reader extract_pages: bool
|
|
173
|
+
attr_reader insert_page_markers: bool
|
|
174
|
+
attr_reader marker_format: String
|
|
175
|
+
|
|
176
|
+
def initialize: (?extract_pages: bool, ?insert_page_markers: bool, ?marker_format: String) -> void
|
|
177
|
+
def to_h: () -> Hash[Symbol, untyped]
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
class Extraction
|
|
181
|
+
attr_reader use_cache: bool
|
|
182
|
+
attr_reader enable_quality_processing: bool
|
|
183
|
+
attr_reader force_ocr: bool
|
|
184
|
+
attr_reader ocr: OCR?
|
|
185
|
+
attr_reader chunking: Chunking?
|
|
186
|
+
attr_reader language_detection: LanguageDetection?
|
|
187
|
+
attr_reader pdf_options: PDF?
|
|
188
|
+
attr_reader image_extraction: ImageExtraction?
|
|
189
|
+
attr_reader image_preprocessing: ImagePreprocessing?
|
|
190
|
+
attr_reader postprocessor: PostProcessor?
|
|
191
|
+
attr_reader token_reduction: TokenReduction?
|
|
192
|
+
attr_reader keywords: Keywords?
|
|
193
|
+
attr_reader html_options: HtmlOptions?
|
|
194
|
+
attr_reader pages: PageConfig?
|
|
195
|
+
attr_reader max_concurrent_extractions: Integer?
|
|
196
|
+
|
|
197
|
+
def self.from_file: (String path) -> Extraction
|
|
198
|
+
def initialize: (
|
|
199
|
+
?use_cache: bool,
|
|
200
|
+
?enable_quality_processing: bool,
|
|
201
|
+
?force_ocr: bool,
|
|
202
|
+
?ocr: (OCR | Hash[Symbol, untyped])?,
|
|
203
|
+
?chunking: (Chunking | Hash[Symbol, untyped])?,
|
|
204
|
+
?language_detection: (LanguageDetection | Hash[Symbol, untyped])?,
|
|
205
|
+
?pdf_options: (PDF | Hash[Symbol, untyped])?,
|
|
206
|
+
?image_extraction: (ImageExtraction | Hash[Symbol, untyped])?,
|
|
207
|
+
?image_preprocessing: (ImagePreprocessing | Hash[Symbol, untyped])?,
|
|
208
|
+
?postprocessor: (PostProcessor | Hash[Symbol, untyped])?,
|
|
209
|
+
?token_reduction: (TokenReduction | Hash[Symbol, untyped])?,
|
|
210
|
+
?keywords: (Keywords | Hash[Symbol, untyped])?,
|
|
211
|
+
?html_options: (HtmlOptions | Hash[Symbol, untyped])?,
|
|
212
|
+
?pages: (PageConfig | Hash[Symbol, untyped])?,
|
|
213
|
+
?max_concurrent_extractions: Integer?
|
|
214
|
+
) -> void
|
|
215
|
+
def to_h: () -> Hash[Symbol, untyped]
|
|
216
|
+
|
|
217
|
+
private
|
|
218
|
+
|
|
219
|
+
def normalize_config: [T] (T | Hash[Symbol, untyped] | nil value, Class klass) -> T?
|
|
220
|
+
end
|
|
221
|
+
|
|
222
|
+
# Backwards compatibility alias
|
|
223
|
+
Ocr: singleton(OCR)
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
# Alias for Config::Extraction (for API consistency with other language bindings)
|
|
227
|
+
ExtractionConfig: singleton(Config::Extraction)
|
|
228
|
+
|
|
229
|
+
# Alias for Config::PageConfig (for API consistency with other language bindings)
|
|
230
|
+
PageConfig: singleton(Config::PageConfig)
|
|
231
|
+
|
|
232
|
+
# Keyword algorithm constants
|
|
233
|
+
module KeywordAlgorithm
|
|
234
|
+
YAKE: Symbol
|
|
235
|
+
RAKE: Symbol
|
|
236
|
+
end
|
|
237
|
+
|
|
238
|
+
# Extraction result type
|
|
239
|
+
type extraction_result_hash = {
|
|
240
|
+
content: String,
|
|
241
|
+
mime_type: String,
|
|
242
|
+
metadata_json: String,
|
|
243
|
+
tables: Array[table_hash]?,
|
|
244
|
+
detected_languages: Array[String]?,
|
|
245
|
+
chunks: Array[chunk_hash]?,
|
|
246
|
+
images: Array[image_hash]?
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
type table_hash = {
|
|
250
|
+
cells: Array[Array[String]],
|
|
251
|
+
markdown: String,
|
|
252
|
+
page_number: Integer
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
type chunk_hash = {
|
|
256
|
+
content: String,
|
|
257
|
+
byte_start: Integer,
|
|
258
|
+
byte_end: Integer,
|
|
259
|
+
token_count: Integer?,
|
|
260
|
+
chunk_index: Integer?,
|
|
261
|
+
total_chunks: Integer?,
|
|
262
|
+
first_page: Integer?,
|
|
263
|
+
last_page: Integer?,
|
|
264
|
+
embedding: Array[Float]?
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
type image_hash = {
|
|
268
|
+
data: String,
|
|
269
|
+
format: String,
|
|
270
|
+
image_index: Integer,
|
|
271
|
+
page_number: Integer?,
|
|
272
|
+
width: Integer?,
|
|
273
|
+
height: Integer?,
|
|
274
|
+
colorspace: String?,
|
|
275
|
+
bits_per_component: Integer?,
|
|
276
|
+
is_mask: bool?,
|
|
277
|
+
description: String?,
|
|
278
|
+
ocr_result: extraction_result_hash?
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
type config_hash = Hash[Symbol, untyped]
|
|
282
|
+
type config_input = config_hash | _ToH
|
|
283
|
+
|
|
284
|
+
interface _ToH
|
|
285
|
+
def to_h: () -> config_hash
|
|
286
|
+
end
|
|
287
|
+
|
|
288
|
+
# Extraction result wrapper
|
|
289
|
+
class Result
|
|
290
|
+
# Table structure
|
|
291
|
+
class Table
|
|
292
|
+
attr_reader cells: Array[Array[String]]
|
|
293
|
+
attr_reader markdown: String
|
|
294
|
+
attr_reader page_number: Integer
|
|
295
|
+
|
|
296
|
+
def initialize: (cells: Array[Array[String]], markdown: String, page_number: Integer) -> void
|
|
297
|
+
def to_h: () -> table_hash
|
|
298
|
+
end
|
|
299
|
+
|
|
300
|
+
# Text chunk
|
|
301
|
+
class Chunk
|
|
302
|
+
attr_reader content: String
|
|
303
|
+
attr_reader byte_start: Integer
|
|
304
|
+
attr_reader byte_end: Integer
|
|
305
|
+
attr_reader token_count: Integer?
|
|
306
|
+
attr_reader chunk_index: Integer?
|
|
307
|
+
attr_reader total_chunks: Integer?
|
|
308
|
+
attr_reader first_page: Integer?
|
|
309
|
+
attr_reader last_page: Integer?
|
|
310
|
+
attr_reader embedding: Array[Float]?
|
|
311
|
+
|
|
312
|
+
def initialize: (
|
|
313
|
+
content: String,
|
|
314
|
+
byte_start: Integer,
|
|
315
|
+
byte_end: Integer,
|
|
316
|
+
token_count: Integer?,
|
|
317
|
+
chunk_index: Integer?,
|
|
318
|
+
total_chunks: Integer?,
|
|
319
|
+
first_page: Integer?,
|
|
320
|
+
last_page: Integer?,
|
|
321
|
+
embedding: Array[Float]?
|
|
322
|
+
) -> void
|
|
323
|
+
def to_h: () -> chunk_hash
|
|
324
|
+
end
|
|
325
|
+
|
|
326
|
+
class Image
|
|
327
|
+
attr_reader data: String
|
|
328
|
+
attr_reader format: String
|
|
329
|
+
attr_reader image_index: Integer
|
|
330
|
+
attr_reader page_number: Integer?
|
|
331
|
+
attr_reader width: Integer?
|
|
332
|
+
attr_reader height: Integer?
|
|
333
|
+
attr_reader colorspace: String?
|
|
334
|
+
attr_reader bits_per_component: Integer?
|
|
335
|
+
attr_reader is_mask: bool?
|
|
336
|
+
attr_reader description: String?
|
|
337
|
+
attr_reader ocr_result: Result?
|
|
338
|
+
|
|
339
|
+
def initialize: (
|
|
340
|
+
data: String,
|
|
341
|
+
format: String,
|
|
342
|
+
image_index: Integer,
|
|
343
|
+
page_number: Integer?,
|
|
344
|
+
width: Integer?,
|
|
345
|
+
height: Integer?,
|
|
346
|
+
colorspace: String?,
|
|
347
|
+
bits_per_component: Integer?,
|
|
348
|
+
is_mask: bool?,
|
|
349
|
+
description: String?,
|
|
350
|
+
ocr_result: Result?
|
|
351
|
+
) -> void
|
|
352
|
+
def to_h: () -> image_hash
|
|
353
|
+
end
|
|
354
|
+
|
|
355
|
+
attr_reader content: String
|
|
356
|
+
attr_reader mime_type: String
|
|
357
|
+
attr_reader metadata: Hash[untyped, untyped]
|
|
358
|
+
attr_reader metadata_json: String
|
|
359
|
+
attr_reader tables: Array[Table]
|
|
360
|
+
attr_reader detected_languages: Array[String]?
|
|
361
|
+
attr_reader chunks: Array[Chunk]?
|
|
362
|
+
attr_reader images: Array[Image]?
|
|
363
|
+
|
|
364
|
+
def initialize: (extraction_result_hash hash) -> void
|
|
365
|
+
def to_h: () -> Hash[Symbol, untyped]
|
|
366
|
+
def to_json: (*untyped) -> String
|
|
367
|
+
|
|
368
|
+
private
|
|
369
|
+
|
|
370
|
+
def parse_metadata: (String metadata_json) -> Hash[untyped, untyped]
|
|
371
|
+
def parse_tables: (Array[table_hash]? tables_data) -> Array[Table]
|
|
372
|
+
def parse_detected_languages: (Array[String]? langs_data) -> Array[String]?
|
|
373
|
+
def parse_chunks: (Array[chunk_hash]? chunks_data) -> Array[Chunk]?
|
|
374
|
+
end
|
|
375
|
+
|
|
376
|
+
# Module methods (extraction API)
|
|
377
|
+
def self.extract_file_sync: (
|
|
378
|
+
String | Pathname path,
|
|
379
|
+
?mime_type: String?,
|
|
380
|
+
?config: config_input?
|
|
381
|
+
) -> Result
|
|
382
|
+
|
|
383
|
+
def self.extract_bytes_sync: (
|
|
384
|
+
String data,
|
|
385
|
+
String mime_type,
|
|
386
|
+
?config: config_input?
|
|
387
|
+
) -> Result
|
|
388
|
+
|
|
389
|
+
def self.batch_extract_files_sync: (
|
|
390
|
+
Array[String | Pathname] paths,
|
|
391
|
+
?config: config_input?
|
|
392
|
+
) -> Array[Result]
|
|
393
|
+
|
|
394
|
+
def self.batch_extract_bytes_sync: (
|
|
395
|
+
Array[String] data_array,
|
|
396
|
+
Array[String] mime_types,
|
|
397
|
+
?config: config_input?
|
|
398
|
+
) -> Array[Result]
|
|
399
|
+
|
|
400
|
+
def self.extract_file: (
|
|
401
|
+
String | Pathname path,
|
|
402
|
+
?mime_type: String?,
|
|
403
|
+
?config: config_input?
|
|
404
|
+
) -> Result
|
|
405
|
+
|
|
406
|
+
def self.extract_bytes: (
|
|
407
|
+
String data,
|
|
408
|
+
String mime_type,
|
|
409
|
+
?config: config_input?
|
|
410
|
+
) -> Result
|
|
411
|
+
|
|
412
|
+
def self.batch_extract_files: (
|
|
413
|
+
Array[String | Pathname] paths,
|
|
414
|
+
?config: config_input?
|
|
415
|
+
) -> Array[Result]
|
|
416
|
+
|
|
417
|
+
def self.batch_extract_bytes: (
|
|
418
|
+
Array[String] data_array,
|
|
419
|
+
Array[String] mime_types,
|
|
420
|
+
?config: config_input?
|
|
421
|
+
) -> Array[Result]
|
|
422
|
+
|
|
423
|
+
# Cache API
|
|
424
|
+
def self.clear_cache: () -> void
|
|
425
|
+
def self.cache_stats: () -> Hash[Symbol | String, Integer]
|
|
426
|
+
|
|
427
|
+
# Config loading (native method)
|
|
428
|
+
def self._config_from_file_native: (String path) -> Hash[Symbol, untyped]
|
|
429
|
+
|
|
430
|
+
# Error introspection (native methods)
|
|
431
|
+
def self._last_error_code_native: () -> Integer
|
|
432
|
+
def self._last_panic_context_json_native: () -> String?
|
|
433
|
+
|
|
434
|
+
# Plugin registration
|
|
435
|
+
def self.register_post_processor: (String name, _PostProcessor processor, ?stage: Symbol?) -> void
|
|
436
|
+
def self.unregister_post_processor: (String name) -> void
|
|
437
|
+
def self.clear_post_processors: () -> void
|
|
438
|
+
def self.register_validator: (String name, _Validator validator, ?priority: Integer?) -> void
|
|
439
|
+
def self.unregister_validator: (String name) -> void
|
|
440
|
+
def self.clear_validators: () -> void
|
|
441
|
+
def self.register_ocr_backend: (_OcrBackend backend) -> void
|
|
442
|
+
|
|
443
|
+
interface _PostProcessor
|
|
444
|
+
def call: (extraction_result_hash result) -> extraction_result_hash
|
|
445
|
+
end
|
|
446
|
+
|
|
447
|
+
interface _Validator
|
|
448
|
+
def call: (extraction_result_hash result) -> void
|
|
449
|
+
end
|
|
450
|
+
|
|
451
|
+
interface _OcrBackend
|
|
452
|
+
def name: () -> String
|
|
453
|
+
def extract_text: (String file_path_or_bytes, Hash[Symbol, untyped] config) -> String
|
|
454
|
+
end
|
|
455
|
+
|
|
456
|
+
module ErrorContext
|
|
457
|
+
def self.last_error_code: () -> Integer
|
|
458
|
+
def self.last_panic_context: () -> Errors::PanicContext?
|
|
459
|
+
def self.last_panic_context_json: () -> String?
|
|
460
|
+
end
|
|
461
|
+
|
|
462
|
+
module Errors
|
|
463
|
+
# Panic context information from FFI error introspection
|
|
464
|
+
class PanicContext
|
|
465
|
+
attr_reader file: String
|
|
466
|
+
attr_reader line: Integer
|
|
467
|
+
attr_reader function: String
|
|
468
|
+
attr_reader message: String
|
|
469
|
+
attr_reader timestamp_secs: Integer
|
|
470
|
+
|
|
471
|
+
def initialize: (
|
|
472
|
+
file: String,
|
|
473
|
+
line: Integer,
|
|
474
|
+
function: String,
|
|
475
|
+
message: String,
|
|
476
|
+
timestamp_secs: Integer
|
|
477
|
+
) -> void
|
|
478
|
+
def to_s: () -> String
|
|
479
|
+
def to_h: () -> Hash[Symbol, String | Integer]
|
|
480
|
+
def self.from_json: (String) -> PanicContext?
|
|
481
|
+
|
|
482
|
+
private
|
|
483
|
+
|
|
484
|
+
def self.with_defaults: (Hash[Symbol, untyped] sliced) -> {file: String, line: Integer, function: String, message: String, timestamp_secs: Integer}
|
|
485
|
+
end
|
|
486
|
+
|
|
487
|
+
class Error < StandardError
|
|
488
|
+
attr_reader panic_context: PanicContext?
|
|
489
|
+
attr_reader error_code: Integer?
|
|
490
|
+
|
|
491
|
+
def initialize: (String message, ?panic_context: PanicContext?, ?error_code: Integer?) -> void
|
|
492
|
+
end
|
|
493
|
+
|
|
494
|
+
class ValidationError < Error
|
|
495
|
+
end
|
|
496
|
+
|
|
497
|
+
class ParsingError < Error
|
|
498
|
+
attr_reader context: Hash[untyped, untyped]?
|
|
499
|
+
|
|
500
|
+
def initialize: (String message, ?context: Hash[untyped, untyped]?, ?panic_context: PanicContext?, ?error_code: Integer?) -> void
|
|
501
|
+
end
|
|
502
|
+
|
|
503
|
+
class OCRError < Error
|
|
504
|
+
attr_reader context: Hash[untyped, untyped]?
|
|
505
|
+
|
|
506
|
+
def initialize: (String message, ?context: Hash[untyped, untyped]?, ?panic_context: PanicContext?, ?error_code: Integer?) -> void
|
|
507
|
+
end
|
|
508
|
+
|
|
509
|
+
class MissingDependencyError < Error
|
|
510
|
+
attr_reader dependency: String?
|
|
511
|
+
|
|
512
|
+
def initialize: (String message, ?dependency: String?, ?panic_context: PanicContext?, ?error_code: Integer?) -> void
|
|
513
|
+
end
|
|
514
|
+
|
|
515
|
+
class IOError < Error
|
|
516
|
+
end
|
|
517
|
+
|
|
518
|
+
class PluginError < Error
|
|
519
|
+
end
|
|
520
|
+
|
|
521
|
+
class UnsupportedFormatError < Error
|
|
522
|
+
end
|
|
523
|
+
end
|
|
524
|
+
|
|
525
|
+
# Internal modules (prepended to Kreuzberg singleton)
|
|
526
|
+
# These are not checked by steep - see Steepfile
|
|
527
|
+
module CacheAPI : Object
|
|
528
|
+
end
|
|
529
|
+
|
|
530
|
+
module ExtractionAPI : Object
|
|
531
|
+
end
|
|
532
|
+
|
|
533
|
+
module PostProcessorProtocol
|
|
534
|
+
def call: (extraction_result_hash result) -> extraction_result_hash
|
|
535
|
+
end
|
|
536
|
+
|
|
537
|
+
module ValidatorProtocol
|
|
538
|
+
def call: (extraction_result_hash result) -> void
|
|
539
|
+
end
|
|
540
|
+
|
|
541
|
+
module OcrBackendProtocol
|
|
542
|
+
def name: () -> String
|
|
543
|
+
def extract_text: (String file_path_or_bytes, Hash[Symbol, untyped] config) -> String
|
|
544
|
+
def process_image: (String file_path_or_bytes, Hash[Symbol, untyped] config) -> String
|
|
545
|
+
end
|
|
546
|
+
end
|