[INFO] fetching crate url-preview 0.6.0...
[INFO] testing url-preview-0.6.0 against beta-2025-09-21 for beta-1.91-3
[INFO] extracting crate url-preview 0.6.0 into /workspace/builds/worker-4-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-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate url-preview 0.6.0 on toolchain beta-2025-09-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "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-09-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 265dab5a608d6b7449b990be2fc5028fe0716cf40054ff96e8546b834f75a1d4
[INFO] running `Command { std: "docker" "start" "-a" "265dab5a608d6b7449b990be2fc5028fe0716cf40054ff96e8546b834f75a1d4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "265dab5a608d6b7449b990be2fc5028fe0716cf40054ff96e8546b834f75a1d4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "265dab5a608d6b7449b990be2fc5028fe0716cf40054ff96e8546b834f75a1d4", kill_on_drop: false }`
[INFO] [stdout] 265dab5a608d6b7449b990be2fc5028fe0716cf40054ff96e8546b834f75a1d4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 70e956f15336c5faca7231276705cd91fac0fcc5634df8e2dba9a66f05400bd8
[INFO] running `Command { std: "docker" "start" "-a" "70e956f15336c5faca7231276705cd91fac0fcc5634df8e2dba9a66f05400bd8", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.174
[INFO] [stderr]    Compiling cc v1.2.30
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling log v0.4.27
[INFO] [stderr]    Compiling memchr v2.7.5
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling mio v1.0.4
[INFO] [stderr]    Compiling signal-hook-registry v1.4.5
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling futures-task v0.3.31
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling percent-encoding v2.3.1
[INFO] [stderr]    Compiling serde_json v1.0.141
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling parking_lot v0.12.4
[INFO] [stderr]    Compiling form_urlencoded v1.2.1
[INFO] [stderr]    Compiling getopts v0.2.23
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling openssl-sys v0.9.109
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling openssl v0.10.73
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling phf_generator v0.11.3
[INFO] [stderr]    Compiling phf_generator v0.10.0
[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 synstructure v0.13.2
[INFO] [stderr]    Compiling html5ever v0.26.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 phf_macros v0.11.3
[INFO] [stderr]    Compiling cssparser-macros v0.6.1
[INFO] [stderr]    Compiling derive_more v0.99.20
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling async-trait v0.1.88
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling phf v0.11.3
[INFO] [stderr]    Compiling tokio v1.46.1
[INFO] [stderr]    Compiling cssparser v0.31.2
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.0
[INFO] [stderr]    Compiling zerovec v0.11.2
[INFO] [stderr]    Compiling zerotrie v0.2.2
[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 icu_locale_core v2.0.0
[INFO] [stderr]    Compiling icu_provider v2.0.0
[INFO] [stderr]    Compiling icu_normalizer v2.0.0
[INFO] [stderr]    Compiling icu_properties v2.0.1
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling tokio-util v0.7.15
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.0.3
[INFO] [stderr]    Compiling h2 v0.3.27
[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 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 47.76s
[INFO] running `Command { std: "docker" "inspect" "70e956f15336c5faca7231276705cd91fac0fcc5634df8e2dba9a66f05400bd8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "70e956f15336c5faca7231276705cd91fac0fcc5634df8e2dba9a66f05400bd8", kill_on_drop: false }`
[INFO] [stdout] 70e956f15336c5faca7231276705cd91fac0fcc5634df8e2dba9a66f05400bd8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3a4a3e66b92a3c7ebdd7fbd0e7292310c0896bcc7df1cafd523d5c2fc4274bb8
[INFO] running `Command { std: "docker" "start" "-a" "3a4a3e66b92a3c7ebdd7fbd0e7292310c0896bcc7df1cafd523d5c2fc4274bb8", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling tokio v1.46.1
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling anstyle v1.0.11
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]    Compiling anstyle-query v1.1.3
[INFO] [stderr]    Compiling colorchoice v1.0.4
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.1
[INFO] [stderr]    Compiling half v2.6.0
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling clap_lex v0.7.5
[INFO] [stderr]    Compiling portable-atomic v1.11.1
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling is-terminal v0.4.16
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling anstream v0.6.19
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling number_prefix v0.4.0
[INFO] [stderr]    Compiling colored v2.2.0
[INFO] [stderr]    Compiling clap_builder v4.5.41
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling rayon v1.10.0
[INFO] [stderr]    Compiling indicatif v0.17.11
[INFO] [stderr]    Compiling criterion-plot v0.5.0
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling string_cache v0.8.9
[INFO] [stderr]    Compiling serde_json v1.0.141
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling markup5ever v0.11.0
[INFO] [stderr]    Compiling clap v4.5.41
[INFO] [stderr]    Compiling html5ever v0.26.0
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling regex v1.11.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] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> examples/test_mcp_complete.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prompt`
[INFO] [stdout]   --> examples/test_claude_code_sdk.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |         prompt: String,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prompt`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `url_preview::BrowserUsagePolicy`, `url_preview::ContentFormat`, `url_preview::LLMExtractor`, `url_preview::LLMExtractorConfig`, `url_preview::McpConfig`, `url_preview::MockProvider`
[INFO] [stdout]    --> examples/interactive_test.rs:10:5
[INFO] [stdout]     |
[INFO] [stdout]  10 |     BrowserUsagePolicy, ContentFormat, Fetcher, 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]     |     |                   no `ContentFormat` in the root
[INFO] [stdout]     |     no `BrowserUsagePolicy` in the root
[INFO] [stdout]  11 |     McpConfig, MockProvider, PreviewService, PreviewServiceConfig,
[INFO] [stdout]     |     ^^^^^^^^^  ^^^^^^^^^^^^ no `MockProvider` in the root
[INFO] [stdout]     |     |
[INFO] [stdout]     |     no `McpConfig` in the root
[INFO] [stdout]     |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:118:58
[INFO] [stdout]     |
[INFO] [stdout] 117 | #[cfg(feature = "browser")]
[INFO] [stdout]     |       ------------------- the item is gated behind the `browser` feature
[INFO] [stdout] 118 | pub use mcp_client::{McpClient, McpConfig, McpTransport, BrowserUsagePolicy};
[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: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:118:33
[INFO] [stdout]     |
[INFO] [stdout] 117 | #[cfg(feature = "browser")]
[INFO] [stdout]     |       ------------------- the item is gated behind the `browser` feature
[INFO] [stdout] 118 | pub use mcp_client::{McpClient, McpConfig, McpTransport, BrowserUsagePolicy};
[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] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `schemars`
[INFO] [stdout]   --> examples/interactive_test.rs:16:41
[INFO] [stdout]    |
[INFO] [stdout] 16 | #[derive(Debug, Serialize, Deserialize, schemars::JsonSchema)]
[INFO] [stdout]    |                                         ^^^^^^^^ use of unresolved module or unlinked crate `schemars`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `url_preview::LLMExtractor`, `url_preview::LLMExtractorConfig`, `url_preview::OpenAIProvider`, `url_preview::ContentFormat`
[INFO] [stdout]    --> examples/claude_api_working.rs:8:5
[INFO] [stdout]     |
[INFO] [stdout]   8 |     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]   9 |     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/claude_api_working.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | 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::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] warning: unused imports: `Fetcher` and `PreviewServiceConfig`
[INFO] [stdout]   --> examples/interactive_test.rs:10:40
[INFO] [stdout]    |
[INFO] [stdout] 10 |     BrowserUsagePolicy, ContentFormat, Fetcher, LLMExtractor, LLMExtractorConfig,
[INFO] [stdout]    |                                        ^^^^^^^
[INFO] [stdout] 11 |     McpConfig, MockProvider, PreviewService, PreviewServiceConfig,
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> examples/interactive_test.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `url_preview::LLMExtractor`, `url_preview::OpenAIProvider`, `url_preview::ContentFormat`, `url_preview::LLMExtractorConfig`
[INFO] [stdout]    --> examples/test_openai_extraction.rs:7:5
[INFO] [stdout]     |
[INFO] [stdout]   7 |     LLMExtractor, OpenAIProvider, Fetcher, 
[INFO] [stdout]     |     ^^^^^^^^^^^^  ^^^^^^^^^^^^^^ no `OpenAIProvider` 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]   8 |     PreviewError, ContentFormat, LLMExtractorConfig
[INFO] [stdout]     |                   ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^ no `LLMExtractorConfig` in the root
[INFO] [stdout]     |                   |
[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: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: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] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `schemars`
[INFO] [stdout]   --> examples/test_openai_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[E0433]: failed to resolve: use of unresolved module or unlinked crate `async_openai`
[INFO] [stdout]   --> examples/claude_api_working.rs:27:18
[INFO] [stdout]    |
[INFO] [stdout] 27 |     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[E0433]: failed to resolve: use of unresolved module or unlinked crate `async_openai`
[INFO] [stdout]   --> examples/claude_api_working.rs:61:17
[INFO] [stdout]    |
[INFO] [stdout] 61 |                 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[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] error[E0432]: unresolved imports `url_preview::LLMExtractor`, `url_preview::LLMExtractorConfig`, `url_preview::ClaudeCodeProvider`, `url_preview::LLMProvider`, `url_preview::ContentFormat`
[INFO] [stdout]    --> examples/test_claude_code_integration.rs:13:5
[INFO] [stdout]     |
[INFO] [stdout]  13 |     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]  14 |     ClaudeCodeProvider, LLMProvider,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^ no `LLMProvider` in the root
[INFO] [stdout]     |     |
[INFO] [stdout]     |     no `ClaudeCodeProvider` in the root
[INFO] [stdout]  15 |     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:133:37
[INFO] [stdout]     |
[INFO] [stdout] 132 | #[cfg(all(feature = "llm", feature = "cc-sdk"))]
[INFO] [stdout]     |           --------------- the item is gated behind the `llm` feature
[INFO] [stdout] 133 | pub use llm_providers::claude_code::ClaudeCodeProvider;
[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] warning: unused imports: `FetchResult`, `Fetcher`, and `PreviewService`
[INFO] [stdout]   --> examples/test_claude_code_integration.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     PreviewService, Fetcher, FetchResult, 
[INFO] [stdout]    |     ^^^^^^^^^^^^^^  ^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `url_preview::LLMExtractor`, `url_preview::OpenAIProvider`
[INFO] [stdout]    --> examples/simple_claude_api_test.rs:7:19
[INFO] [stdout]     |
[INFO] [stdout]   7 | use url_preview::{LLMExtractor, OpenAIProvider, Fetcher, PreviewError};
[INFO] [stdout]     |                   ^^^^^^^^^^^^  ^^^^^^^^^^^^^^ no `OpenAIProvider` 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]     |
[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: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] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `schemars`
[INFO] [stdout]  --> examples/simple_claude_api_test.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | 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/simple_claude_api_test.rs:25:18
[INFO] [stdout]    |
[INFO] [stdout] 25 |     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] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[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] [stderr] warning: build failed, waiting for other jobs to finish...
[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 "simple_claude_api_test") due to 3 previous errors
[INFO] [stderr] error: could not compile `url-preview` (example "claude_api_working") due to 4 previous errors
[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] [stdout] error[E0282]: type annotations needed for `Arc<_, _>`
[INFO] [stdout]    --> examples/test_claude_code_integration.rs:271:13
[INFO] [stdout]     |
[INFO] [stdout] 271 |         let extractor = Arc::clone(&extractor);
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |             let result = extractor.extract::<WebPageSummary>(&url).await;
[INFO] [stdout]     |                                    ------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `extractor` an explicit type, where the placeholders `_` are specified
[INFO] [stdout]     |
[INFO] [stdout] 271 |         let extractor: Arc<T, A> = Arc::clone(&extractor);
[INFO] [stdout]     |                      +++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `url-preview` (example "interactive_test") due to 2 previous errors; 2 warnings emitted
[INFO] [stdout] error[E0560]: struct `PreviewServiceConfig` has no field named `timeout`
[INFO] [stdout]   --> examples/test_browser_with_playwright.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |         timeout: Duration::from_secs(30),
[INFO] [stdout]    |         ^^^^^^^ `PreviewServiceConfig` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `cache_strategy`, `default_fetcher`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 0 arguments but 1 argument was supplied
[INFO] [stdout]   --> examples/test_browser_with_playwright.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let service = PreviewService::new(config)?;
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^ ------ unexpected argument of type `PreviewServiceConfig`
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> /opt/rustwide/workdir/src/preview_service.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]    |
[INFO] [stdout] 17 -     let service = PreviewService::new(config)?;
[INFO] [stdout] 17 +     let service = PreviewService::new()?;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be applied to values that implement `Try`
[INFO] [stdout]   --> examples/test_browser_with_playwright.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let service = PreviewService::new(config)?;
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the `?` operator cannot be applied to type `PreviewService`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `Try` is not implemented for `PreviewService`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0560.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `url-preview` (example "test_browser_with_playwright") due to 3 previous errors
[INFO] [stdout] error[E0432]: unresolved imports `url_preview::LLMExtractor`, `url_preview::LLMExtractorConfig`, `url_preview::ContentFormat`, `url_preview::OpenAIProvider`, `url_preview::LLMProvider`
[INFO] [stdout]    --> examples/test_llm_with_claude.rs:9:14
[INFO] [stdout]     |
[INFO] [stdout]   9 |     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]  10 |     OpenAIProvider, LLMProvider,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^  ^^^^^^^^^^^ no `LLMProvider` in the root
[INFO] [stdout]     |     |
[INFO] [stdout]     |     no `OpenAIProvider` 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: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/test_llm_with_claude.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[E0004]: non-exhaustive patterns: `Ok(FetchResult::OEmbed(_))` not covered
[INFO] [stdout]    --> examples/test_claude_code_sdk.rs:211:15
[INFO] [stdout]     |
[INFO] [stdout] 211 |         match fetcher.fetch(url).await {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^ pattern `Ok(FetchResult::OEmbed(_))` not covered
[INFO] [stdout]     |
[INFO] [stdout] note: `Result<FetchResult, PreviewError>` defined here
[INFO] [stdout]    --> /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/result.rs:550:1
[INFO] [stdout]    ::: /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/result.rs:554:5
[INFO] [stdout]     |
[INFO] [stdout]     = note: not covered
[INFO] [stdout]     = note: the matched value is of type `Result<FetchResult, PreviewError>`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 236 ~             Err(e) => println!("❌ Fetch error: {}", e),
[INFO] [stdout] 237 ~             Ok(FetchResult::OEmbed(_)) => todo!(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: `Ok(FetchResult::OEmbed(_))` not covered
[INFO] [stdout]    --> examples/test_claude_code_sdk.rs:247:11
[INFO] [stdout]     |
[INFO] [stdout] 247 |     match fetcher.fetch(product_url).await {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pattern `Ok(FetchResult::OEmbed(_))` not covered
[INFO] [stdout]     |
[INFO] [stdout] note: `Result<FetchResult, PreviewError>` defined here
[INFO] [stdout]    --> /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/result.rs:550:1
[INFO] [stdout]    ::: /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/result.rs:554:5
[INFO] [stdout]     |
[INFO] [stdout]     = note: not covered
[INFO] [stdout]     = note: the matched value is of type `Result<FetchResult, PreviewError>`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 269 ~         Err(e) => println!("❌ Fetch error: {}", e),
[INFO] [stdout] 270 ~         Ok(FetchResult::OEmbed(_)) => todo!(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: `Ok(FetchResult::OEmbed(_))` not covered
[INFO] [stdout]    --> examples/test_claude_code_sdk.rs:279:11
[INFO] [stdout]     |
[INFO] [stdout] 279 |     match fetcher.fetch(article_url).await {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pattern `Ok(FetchResult::OEmbed(_))` not covered
[INFO] [stdout]     |
[INFO] [stdout] note: `Result<FetchResult, PreviewError>` defined here
[INFO] [stdout]    --> /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/result.rs:550:1
[INFO] [stdout]    ::: /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/result.rs:554:5
[INFO] [stdout]     |
[INFO] [stdout]     = note: not covered
[INFO] [stdout]     = note: the matched value is of type `Result<FetchResult, PreviewError>`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 306 ~         Err(e) => println!("❌ Fetch error: {}", e),
[INFO] [stdout] 307 ~         Ok(FetchResult::OEmbed(_)) => todo!(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `url-preview` (example "test_llm_with_claude") due to 2 previous errors
[INFO] [stdout] For more information about this error, try `rustc --explain E0004`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `url-preview` (example "test_claude_code_sdk") due to 3 previous errors; 1 warning emitted
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `url-preview` (example "test_openai_extraction") due to 2 previous errors
[INFO] [stdout] Some errors have detailed explanations: E0282, E0432.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `url-preview` (example "test_claude_code_integration") due to 2 previous errors; 1 warning emitted
[INFO] running `Command { std: "docker" "inspect" "3a4a3e66b92a3c7ebdd7fbd0e7292310c0896bcc7df1cafd523d5c2fc4274bb8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3a4a3e66b92a3c7ebdd7fbd0e7292310c0896bcc7df1cafd523d5c2fc4274bb8", kill_on_drop: false }`
[INFO] [stdout] 3a4a3e66b92a3c7ebdd7fbd0e7292310c0896bcc7df1cafd523d5c2fc4274bb8
