[INFO] fetching crate url-preview 0.6.0...
[INFO] testing url-preview-0.6.0 against beta-2025-10-28 for beta-1.92-2
[INFO] extracting crate url-preview 0.6.0 into /workspace/builds/worker-0-tc2/source
[INFO] started tweaking crates.io crate url-preview 0.6.0
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate url-preview 0.6.0
[INFO] tweaked toml for crates.io crate url-preview 0.6.0 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate url-preview 0.6.0 on toolchain beta-2025-10-28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-10-28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate url-preview 0.6.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-10-28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a783404ac4313ee5c4f56d98a6b08f9d3e9e2f716dfefc1d0eb1ad4b26c00531
[INFO] running `Command { std: "docker" "start" "-a" "a783404ac4313ee5c4f56d98a6b08f9d3e9e2f716dfefc1d0eb1ad4b26c00531", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a783404ac4313ee5c4f56d98a6b08f9d3e9e2f716dfefc1d0eb1ad4b26c00531", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a783404ac4313ee5c4f56d98a6b08f9d3e9e2f716dfefc1d0eb1ad4b26c00531", kill_on_drop: false }`
[INFO] [stdout] a783404ac4313ee5c4f56d98a6b08f9d3e9e2f716dfefc1d0eb1ad4b26c00531
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5f659b74d8f99c5e712ddc51e69d496413864a3af48f3ea8235a617970d0ff53
[INFO] running `Command { std: "docker" "start" "-a" "5f659b74d8f99c5e712ddc51e69d496413864a3af48f3ea8235a617970d0ff53", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.174
[INFO] [stderr]    Compiling zerocopy v0.8.26
[INFO] [stderr]    Compiling stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]    Compiling siphasher v0.3.11
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]    Compiling phf_shared v0.11.3
[INFO] [stderr]    Compiling cc v1.2.30
[INFO] [stderr]    Compiling phf_shared v0.10.0
[INFO] [stderr]    Compiling writeable v0.6.1
[INFO] [stderr]    Compiling log v0.4.27
[INFO] [stderr]    Compiling litemap v0.8.0
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling icu_normalizer_data v2.0.0
[INFO] [stderr]    Compiling icu_properties_data v2.0.1
[INFO] [stderr]    Compiling bitflags v2.9.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling mio v1.0.4
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling parking_lot v0.12.4
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling signal-hook-registry v1.4.5
[INFO] [stderr]    Compiling slab v0.4.10
[INFO] [stderr]    Compiling new_debug_unreachable v1.0.6
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling openssl v0.10.73
[INFO] [stderr]    Compiling http v0.2.12
[INFO] [stderr]    Compiling hashbrown v0.15.4
[INFO] [stderr]    Compiling mac v0.1.1
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling precomputed-hash v0.1.1
[INFO] [stderr]    Compiling openssl-sys v0.9.109
[INFO] [stderr]    Compiling phf v0.10.1
[INFO] [stderr]    Compiling futf v0.1.5
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling openssl-probe v0.1.6
[INFO] [stderr]    Compiling dtoa v1.0.10
[INFO] [stderr]    Compiling tendril v0.4.3
[INFO] [stderr]    Compiling dtoa-short v0.3.5
[INFO] [stderr]    Compiling indexmap v2.10.0
[INFO] [stderr]    Compiling http-body v0.4.6
[INFO] [stderr]    Compiling serde_json v1.0.141
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling fxhash v0.2.1
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling servo_arc v0.3.0
[INFO] [stderr]    Compiling unicode-width v0.2.1
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling getopts v0.2.23
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling ego-tree v0.6.3
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling ipnet v2.11.0
[INFO] [stderr]    Compiling phf_generator v0.11.3
[INFO] [stderr]    Compiling phf_generator v0.10.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling phf_codegen v0.10.0
[INFO] [stderr]    Compiling string_cache_codegen v0.5.4
[INFO] [stderr]    Compiling selectors v0.25.0
[INFO] [stderr]    Compiling markup5ever v0.11.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling tokio v1.46.1
[INFO] [stderr]    Compiling phf_macros v0.11.3
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.0
[INFO] [stderr]    Compiling cssparser-macros v0.6.1
[INFO] [stderr]    Compiling phf v0.11.3
[INFO] [stderr]    Compiling cssparser v0.31.2
[INFO] [stderr]    Compiling zerovec v0.11.2
[INFO] [stderr]    Compiling zerotrie v0.2.2
[INFO] [stderr]    Compiling derive_more v0.99.20
[INFO] [stderr]    Compiling tinystr v0.8.1
[INFO] [stderr]    Compiling potential_utf v0.1.2
[INFO] [stderr]    Compiling icu_collections v2.0.0
[INFO] [stderr]    Compiling html5ever v0.26.0
[INFO] [stderr]    Compiling icu_locale_core v2.0.0
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling icu_provider v2.0.0
[INFO] [stderr]    Compiling icu_properties v2.0.1
[INFO] [stderr]    Compiling icu_normalizer v2.0.0
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling async-trait v0.1.88
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.0.3
[INFO] [stderr]    Compiling url v2.5.4
[INFO] [stderr]    Compiling string_cache v0.8.9
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling tokio-util v0.7.15
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling h2 v0.3.27
[INFO] [stderr]    Compiling scraper v0.17.1
[INFO] [stderr]    Compiling hyper v0.14.32
[INFO] [stderr]    Compiling hyper-tls v0.5.0
[INFO] [stderr]    Compiling reqwest v0.11.27
[INFO] [stderr]    Compiling url-preview v0.6.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 34s
[INFO] running `Command { std: "docker" "inspect" "5f659b74d8f99c5e712ddc51e69d496413864a3af48f3ea8235a617970d0ff53", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5f659b74d8f99c5e712ddc51e69d496413864a3af48f3ea8235a617970d0ff53", kill_on_drop: false }`
[INFO] [stdout] 5f659b74d8f99c5e712ddc51e69d496413864a3af48f3ea8235a617970d0ff53
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b982073a4d48ee4ff890833267cb240d53be9e986de4b8aac232e71b20e3fbe9
[INFO] running `Command { std: "docker" "start" "-a" "b982073a4d48ee4ff890833267cb240d53be9e986de4b8aac232e71b20e3fbe9", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling tokio v1.46.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling half v2.6.0
[INFO] [stderr]    Compiling portable-atomic v1.11.1
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling clap_builder v4.5.41
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling is-terminal v0.4.16
[INFO] [stderr]    Compiling number_prefix v0.4.0
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling indicatif v0.17.11
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling clap v4.5.41
[INFO] [stderr]    Compiling serde_json v1.0.141
[INFO] [stderr]    Compiling string_cache v0.8.9
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling markup5ever v0.11.0
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling html5ever v0.26.0
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling scraper v0.17.1
[INFO] [stderr]    Compiling tokio-util v0.7.15
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stderr]    Compiling h2 v0.3.27
[INFO] [stderr]    Compiling hyper v0.14.32
[INFO] [stderr]    Compiling hyper-tls v0.5.0
[INFO] [stderr]    Compiling reqwest v0.11.27
[INFO] [stderr]    Compiling url-preview v0.6.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0432]: unresolved imports `url_preview::LLMExtractor`, `url_preview::LLMExtractorConfig`, `url_preview::OpenAIProvider`, `url_preview::ContentFormat`
[INFO] [stdout]    --> examples/test_json_extraction.rs:7:5
[INFO] [stdout]     |
[INFO] [stdout]   7 |     LLMExtractor, LLMExtractorConfig, OpenAIProvider, 
[INFO] [stdout]     |     ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^ no `OpenAIProvider` in the root
[INFO] [stdout]     |     |             |
[INFO] [stdout]     |     |             no `LLMExtractorConfig` in the root
[INFO] [stdout]     |     no `LLMExtractor` in the root
[INFO] [stdout]     |     help: a similar name exists in the module: `extractor`
[INFO] [stdout]   8 |     PreviewError, ContentFormat
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ no `ContentFormat` in the root
[INFO] [stdout]     |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:123:25
[INFO] [stdout]     |
[INFO] [stdout] 122 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 123 | pub use llm_extractor::{LLMExtractor, LLMExtractorConfig, ContentFormat, ProcessedContent, ExtractionResult, LLMProvider, TokenUsage};
[INFO] [stdout]     |                         ^^^^^^^^^^^^
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:123:39
[INFO] [stdout]     |
[INFO] [stdout] 122 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 123 | pub use llm_extractor::{LLMExtractor, LLMExtractorConfig, ContentFormat, ProcessedContent, ExtractionResult, LLMProvider, TokenUsage};
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:127:32
[INFO] [stdout]     |
[INFO] [stdout] 126 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 127 | pub use llm_providers::openai::OpenAIProvider;
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:123:59
[INFO] [stdout]     |
[INFO] [stdout] 122 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 123 | pub use llm_extractor::{LLMExtractor, LLMExtractorConfig, ContentFormat, ProcessedContent, ExtractionResult, LLMProvider, TokenUsage};
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `schemars`
[INFO] [stdout]   --> examples/test_json_extraction.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use schemars::JsonSchema;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `schemars`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `schemars`, use `cargo add schemars` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `url_preview::LLMExtractor`, `url_preview::LLMExtractorConfig`, `url_preview::ContentFormat`, `url_preview::LLMProvider`
[INFO] [stdout]    --> examples/claude_via_openrouter.rs:12:14
[INFO] [stdout]     |
[INFO] [stdout]  12 |     Fetcher, LLMExtractor, LLMExtractorConfig, ContentFormat,
[INFO] [stdout]     |              ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^ no `ContentFormat` in the root
[INFO] [stdout]     |              |             |
[INFO] [stdout]     |              |             no `LLMExtractorConfig` in the root
[INFO] [stdout]     |              no `LLMExtractor` in the root
[INFO] [stdout]     |              help: a similar name exists in the module: `extractor`
[INFO] [stdout]  13 |     LLMProvider, PreviewError,
[INFO] [stdout]     |     ^^^^^^^^^^^ no `LLMProvider` in the root
[INFO] [stdout]     |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:123:25
[INFO] [stdout]     |
[INFO] [stdout] 122 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 123 | pub use llm_extractor::{LLMExtractor, LLMExtractorConfig, ContentFormat, ProcessedContent, ExtractionResult, LLMProvider, TokenUsage};
[INFO] [stdout]     |                         ^^^^^^^^^^^^
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:123:39
[INFO] [stdout]     |
[INFO] [stdout] 122 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 123 | pub use llm_extractor::{LLMExtractor, LLMExtractorConfig, ContentFormat, ProcessedContent, ExtractionResult, LLMProvider, TokenUsage};
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:123:59
[INFO] [stdout]     |
[INFO] [stdout] 122 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 123 | pub use llm_extractor::{LLMExtractor, LLMExtractorConfig, ContentFormat, ProcessedContent, ExtractionResult, LLMProvider, TokenUsage};
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:123:110
[INFO] [stdout]     |
[INFO] [stdout] 122 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 123 | pub use llm_extractor::{LLMExtractor, LLMExtractorConfig, ContentFormat, ProcessedContent, ExtractionResult, LLMProvider, TokenUsage};
[INFO] [stdout]     |                                                                                                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `schemars`
[INFO] [stdout]   --> examples/claude_via_openrouter.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use schemars::JsonSchema;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `schemars`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `schemars`, use `cargo add schemars` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `async_openai`
[INFO] [stdout]   --> examples/test_json_extraction.rs:23:22
[INFO] [stdout]    |
[INFO] [stdout] 23 |         let config = async_openai::config::OpenAIConfig::new()
[INFO] [stdout]    |                      ^^^^^^^^^^^^ use of unresolved module or unlinked crate `async_openai`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `async_openai`, use `cargo add async_openai` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `url_preview::LLMExtractor`, `url_preview::LLMExtractorConfig`, `url_preview::OpenAIProvider`, `url_preview::ContentFormat`, `url_preview::LLMProvider`, `url_preview::ExtractionResult`
[INFO] [stdout]    --> examples/claude_text_response_handler.rs:9:5
[INFO] [stdout]     |
[INFO] [stdout]   9 |     LLMExtractor, LLMExtractorConfig, OpenAIProvider, Fetcher, 
[INFO] [stdout]     |     ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^ no `OpenAIProvider` in the root
[INFO] [stdout]     |     |             |
[INFO] [stdout]     |     |             no `LLMExtractorConfig` in the root
[INFO] [stdout]     |     no `LLMExtractor` in the root
[INFO] [stdout]     |     help: a similar name exists in the module: `extractor`
[INFO] [stdout]  10 |     PreviewError, ContentFormat, LLMProvider, ExtractionResult
[INFO] [stdout]     |                   ^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^ no `ExtractionResult` in the root
[INFO] [stdout]     |                   |              |
[INFO] [stdout]     |                   |              no `LLMProvider` in the root
[INFO] [stdout]     |                   no `ContentFormat` in the root
[INFO] [stdout]     |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:123:25
[INFO] [stdout]     |
[INFO] [stdout] 122 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 123 | pub use llm_extractor::{LLMExtractor, LLMExtractorConfig, ContentFormat, ProcessedContent, ExtractionResult, LLMProvider, TokenUsage};
[INFO] [stdout]     |                         ^^^^^^^^^^^^
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:123:39
[INFO] [stdout]     |
[INFO] [stdout] 122 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 123 | pub use llm_extractor::{LLMExtractor, LLMExtractorConfig, ContentFormat, ProcessedContent, ExtractionResult, LLMProvider, TokenUsage};
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:127:32
[INFO] [stdout]     |
[INFO] [stdout] 126 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 127 | pub use llm_providers::openai::OpenAIProvider;
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:123:59
[INFO] [stdout]     |
[INFO] [stdout] 122 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 123 | pub use llm_extractor::{LLMExtractor, LLMExtractorConfig, ContentFormat, ProcessedContent, ExtractionResult, LLMProvider, TokenUsage};
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:123:110
[INFO] [stdout]     |
[INFO] [stdout] 122 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 123 | pub use llm_extractor::{LLMExtractor, LLMExtractorConfig, ContentFormat, ProcessedContent, ExtractionResult, LLMProvider, TokenUsage};
[INFO] [stdout]     |                                                                                                              ^^^^^^^^^^^
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:123:92
[INFO] [stdout]     |
[INFO] [stdout] 122 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 123 | pub use llm_extractor::{LLMExtractor, LLMExtractorConfig, ContentFormat, ProcessedContent, ExtractionResult, LLMProvider, TokenUsage};
[INFO] [stdout]     |                                                                                            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `schemars`
[INFO] [stdout]   --> examples/claude_text_response_handler.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use schemars::JsonSchema;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `schemars`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `schemars`, use `cargo add schemars` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `url_preview::LLMExtractor`, `url_preview::LLMExtractorConfig`, `url_preview::ContentFormat`, `url_preview::OpenAIProvider`, `url_preview::AnthropicProvider`, `url_preview::LocalProvider`, `url_preview::MockProvider`, `url_preview::ApiKeyValidator`, `url_preview::LLMConfig`
[INFO] [stdout]    --> examples/comprehensive_llm_test.rs:16:5
[INFO] [stdout]     |
[INFO] [stdout]  16 |     LLMExtractor, LLMExtractorConfig, ContentFormat, Fetcher,
[INFO] [stdout]     |     ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^ no `ContentFormat` in the root
[INFO] [stdout]     |     |             |
[INFO] [stdout]     |     |             no `LLMExtractorConfig` in the root
[INFO] [stdout]     |     no `LLMExtractor` in the root
[INFO] [stdout]     |     help: a similar name exists in the module: `extractor`
[INFO] [stdout]  17 |     OpenAIProvider, AnthropicProvider, LocalProvider, MockProvider,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^ no `MockProvider` in the root
[INFO] [stdout]     |     |               |                  |
[INFO] [stdout]     |     |               |                  no `LocalProvider` in the root
[INFO] [stdout]     |     |               no `AnthropicProvider` in the root
[INFO] [stdout]     |     no `OpenAIProvider` in the root
[INFO] [stdout]  18 |     ApiKeyValidator, LLMConfig, PreviewError
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^  ^^^^^^^^^ no `LLMConfig` in the root
[INFO] [stdout]     |     |
[INFO] [stdout]     |     no `ApiKeyValidator` in the root
[INFO] [stdout]     |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:123:25
[INFO] [stdout]     |
[INFO] [stdout] 122 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 123 | pub use llm_extractor::{LLMExtractor, LLMExtractorConfig, ContentFormat, ProcessedContent, ExtractionResult, LLMProvider, TokenUsage};
[INFO] [stdout]     |                         ^^^^^^^^^^^^
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:123:39
[INFO] [stdout]     |
[INFO] [stdout] 122 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 123 | pub use llm_extractor::{LLMExtractor, LLMExtractorConfig, ContentFormat, ProcessedContent, ExtractionResult, LLMProvider, TokenUsage};
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:123:59
[INFO] [stdout]     |
[INFO] [stdout] 122 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 123 | pub use llm_extractor::{LLMExtractor, LLMExtractorConfig, ContentFormat, ProcessedContent, ExtractionResult, LLMProvider, TokenUsage};
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:127:32
[INFO] [stdout]     |
[INFO] [stdout] 126 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 127 | pub use llm_providers::openai::OpenAIProvider;
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:129:35
[INFO] [stdout]     |
[INFO] [stdout] 128 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 129 | pub use llm_providers::anthropic::AnthropicProvider;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:135:24
[INFO] [stdout]     |
[INFO] [stdout] 134 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 135 | pub use llm_providers::LocalProvider;
[INFO] [stdout]     |                        ^^^^^^^^^^^^^
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:125:24
[INFO] [stdout]     |
[INFO] [stdout] 124 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 125 | pub use llm_providers::MockProvider;
[INFO] [stdout]     |                        ^^^^^^^^^^^^
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:137:22
[INFO] [stdout]     |
[INFO] [stdout] 136 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 137 | pub use llm_config::{ApiKeyValidator, LLMConfig};
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:137:39
[INFO] [stdout]     |
[INFO] [stdout] 136 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 137 | pub use llm_config::{ApiKeyValidator, LLMConfig};
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `schemars`
[INFO] [stdout]   --> examples/comprehensive_llm_test.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use schemars::JsonSchema;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `schemars`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `schemars`, use `cargo add schemars` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `async_openai`
[INFO] [stdout]   --> examples/claude_text_response_handler.rs:31:22
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let config = async_openai::config::OpenAIConfig::new()
[INFO] [stdout]    |                      ^^^^^^^^^^^^ use of unresolved module or unlinked crate `async_openai`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `async_openai`, use `cargo add async_openai` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0405]: cannot find trait `LLMProvider` in crate `url_preview`
[INFO] [stdout]    --> examples/comprehensive_llm_test.rs:180:36
[INFO] [stdout]     |
[INFO] [stdout] 180 |     provider: Arc<dyn url_preview::LLMProvider>,
[INFO] [stdout]     |                                    ^^^^^^^^^^^ not found in `url_preview`
[INFO] [stdout]     |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:123:110
[INFO] [stdout]     |
[INFO] [stdout] 122 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 123 | pub use llm_extractor::{LLMExtractor, LLMExtractorConfig, ContentFormat, ProcessedContent, ExtractionResult, LLMProvider, TokenUsage};
[INFO] [stdout]     |                                                                                                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PreviewError`
[INFO] [stdout]   --> examples/comprehensive_llm_test.rs:18:33
[INFO] [stdout]    |
[INFO] [stdout] 18 |     ApiKeyValidator, LLMConfig, PreviewError
[INFO] [stdout]    |                                 ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `async_openai`
[INFO] [stdout]   --> examples/claude_text_response_handler.rs:85:18
[INFO] [stdout]    |
[INFO] [stdout] 85 |     let config = async_openai::config::OpenAIConfig::new()
[INFO] [stdout]    |                  ^^^^^^^^^^^^ use of unresolved module or unlinked crate `async_openai`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `async_openai`, use `cargo add async_openai` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `url-preview` (example "claude_via_openrouter") due to 2 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] Some errors have detailed explanations: E0405, E0432.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0405`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `url-preview` (example "claude_text_response_handler") due to 4 previous errors
[INFO] [stderr] error: could not compile `url-preview` (example "comprehensive_llm_test") due to 3 previous errors; 1 warning emitted
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `url-preview` (example "test_json_extraction") due to 3 previous errors
[INFO] [stdout] error[E0432]: unresolved imports `url_preview::LLMExtractor`, `url_preview::LLMExtractorConfig`, `url_preview::OpenAIProvider`, `url_preview::LLMProvider`, `url_preview::ContentFormat`
[INFO] [stdout]    --> examples/test_claude_api_extraction.rs:16:5
[INFO] [stdout]     |
[INFO] [stdout]  16 |     LLMExtractor, LLMExtractorConfig, 
[INFO] [stdout]     |     ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^ no `LLMExtractorConfig` in the root
[INFO] [stdout]     |     |
[INFO] [stdout]     |     no `LLMExtractor` in the root
[INFO] [stdout]     |     help: a similar name exists in the module: `extractor`
[INFO] [stdout]  17 |     OpenAIProvider, LLMProvider,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^  ^^^^^^^^^^^ no `LLMProvider` in the root
[INFO] [stdout]     |     |
[INFO] [stdout]     |     no `OpenAIProvider` in the root
[INFO] [stdout]  18 |     PreviewError, ContentFormat,
[INFO] [stdout]     |                   ^^^^^^^^^^^^^ no `ContentFormat` in the root
[INFO] [stdout]     |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:123:25
[INFO] [stdout]     |
[INFO] [stdout] 122 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 123 | pub use llm_extractor::{LLMExtractor, LLMExtractorConfig, ContentFormat, ProcessedContent, ExtractionResult, LLMProvider, TokenUsage};
[INFO] [stdout]     |                         ^^^^^^^^^^^^
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:123:39
[INFO] [stdout]     |
[INFO] [stdout] 122 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 123 | pub use llm_extractor::{LLMExtractor, LLMExtractorConfig, ContentFormat, ProcessedContent, ExtractionResult, LLMProvider, TokenUsage};
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:127:32
[INFO] [stdout]     |
[INFO] [stdout] 126 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 127 | pub use llm_providers::openai::OpenAIProvider;
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:123:110
[INFO] [stdout]     |
[INFO] [stdout] 122 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 123 | pub use llm_extractor::{LLMExtractor, LLMExtractorConfig, ContentFormat, ProcessedContent, ExtractionResult, LLMProvider, TokenUsage};
[INFO] [stdout]     |                                                                                                              ^^^^^^^^^^^
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:123:59
[INFO] [stdout]     |
[INFO] [stdout] 122 | #[cfg(feature = "llm")]
[INFO] [stdout]     |       --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 123 | pub use llm_extractor::{LLMExtractor, LLMExtractorConfig, ContentFormat, ProcessedContent, ExtractionResult, LLMProvider, TokenUsage};
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `schemars`
[INFO] [stdout]   --> examples/test_claude_api_extraction.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use schemars::JsonSchema;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `schemars`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `schemars`, use `cargo add schemars` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `async_openai`
[INFO] [stdout]    --> examples/test_claude_api_extraction.rs:125:18
[INFO] [stdout]     |
[INFO] [stdout] 125 |     let config = async_openai::config::OpenAIConfig::new()
[INFO] [stdout]     |                  ^^^^^^^^^^^^ use of unresolved module or unlinked crate `async_openai`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `async_openai`, use `cargo add async_openai` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PreviewService`
[INFO] [stdout]   --> examples/test_claude_api_extraction.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     PreviewService, Fetcher, 
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `url-preview` (example "test_claude_api_extraction") due to 3 previous errors; 1 warning emitted
[INFO] running `Command { std: "docker" "inspect" "b982073a4d48ee4ff890833267cb240d53be9e986de4b8aac232e71b20e3fbe9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b982073a4d48ee4ff890833267cb240d53be9e986de4b8aac232e71b20e3fbe9", kill_on_drop: false }`
[INFO] [stdout] b982073a4d48ee4ff890833267cb240d53be9e986de4b8aac232e71b20e3fbe9
