[INFO] fetching crate url-preview 0.6.0...
[INFO] testing url-preview-0.6.0 against 1.90.0 for beta-1.91-3
[INFO] extracting crate url-preview 0.6.0 into /workspace/builds/worker-4-tc1/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-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate url-preview 0.6.0 on toolchain 1.90.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "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" "+1.90.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded number_prefix v0.4.0
[INFO] [stderr]   Downloaded derive_builder_macro v0.20.2
[INFO] [stderr]   Downloaded jsonrpc-stdio-server v18.0.0
[INFO] [stderr]   Downloaded indicatif v0.17.11
[INFO] [stderr]   Downloaded eventsource-stream v0.2.3
[INFO] [stderr]   Downloaded jsonrpc-core v18.0.0
[INFO] [stderr]   Downloaded async-convert v1.0.0
[INFO] [stderr]   Downloaded mime_guess v2.0.5
[INFO] [stderr]   Downloaded async-openai v0.23.4
[INFO] [stderr]   Downloaded cc-sdk v0.1.5
[INFO] [stderr]   Downloaded hyper-util v0.1.16
[INFO] [stderr]   Downloaded serde_json v1.0.141
[INFO] [stderr]   Downloaded colored v2.2.0
[INFO] [stderr]   Downloaded cc v1.2.30
[INFO] [stderr]   Downloaded backoff v0.4.0
[INFO] [stderr]   Downloaded derive_builder_core v0.20.2
[INFO] [stderr]   Downloaded derive_builder v0.20.2
[INFO] [stderr]   Downloaded unicase v2.8.1
[INFO] [stderr]   Downloaded wasm-streams v0.4.2
[INFO] [stderr]   Downloaded reqwest-eventsource v0.6.0
[INFO] [stderr]   Downloaded which v6.0.3
[INFO] [stderr]   Downloaded getopts v0.2.23
[INFO] [stderr]   Downloaded libredox v0.1.6
[INFO] [stderr]   Downloaded winsafe v0.0.19
[INFO] [stderr]   Downloaded redox_syscall v0.5.15
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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" "+1.90.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] bbe7f3716af2677f7f6b1dc7468a6fbb1ddadcbed358e127ace469a0ec895ed2
[INFO] running `Command { std: "docker" "start" "-a" "bbe7f3716af2677f7f6b1dc7468a6fbb1ddadcbed358e127ace469a0ec895ed2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bbe7f3716af2677f7f6b1dc7468a6fbb1ddadcbed358e127ace469a0ec895ed2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bbe7f3716af2677f7f6b1dc7468a6fbb1ddadcbed358e127ace469a0ec895ed2", kill_on_drop: false }`
[INFO] [stdout] bbe7f3716af2677f7f6b1dc7468a6fbb1ddadcbed358e127ace469a0ec895ed2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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" "+1.90.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 353497a5157b3cb0a419671d067e25edf5aa27ab1604ba948ce7c68509abc756
[INFO] running `Command { std: "docker" "start" "-a" "353497a5157b3cb0a419671d067e25edf5aa27ab1604ba948ce7c68509abc756", 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-task 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 signal-hook-registry v1.4.5
[INFO] [stderr]    Compiling mio v1.0.4
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling percent-encoding v2.3.1
[INFO] [stderr]    Compiling form_urlencoded v1.2.1
[INFO] [stderr]    Compiling serde_json v1.0.141
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling getopts v0.2.23
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling parking_lot v0.12.4
[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 openssl-sys v0.9.109
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling openssl v0.10.73
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling phf_generator v0.11.3
[INFO] [stderr]    Compiling phf_generator v0.10.0
[INFO] [stderr]    Compiling string_cache_codegen v0.5.4
[INFO] [stderr]    Compiling phf_codegen v0.10.0
[INFO] [stderr]    Compiling selectors v0.25.0
[INFO] [stderr]    Compiling markup5ever v0.11.0
[INFO] [stderr]    Compiling html5ever v0.26.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[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 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 tokio v1.46.1
[INFO] [stderr]    Compiling phf v0.11.3
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling cssparser v0.31.2
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling thiserror v1.0.69
[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 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 scraper v0.17.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] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 43.45s
[INFO] running `Command { std: "docker" "inspect" "353497a5157b3cb0a419671d067e25edf5aa27ab1604ba948ce7c68509abc756", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "353497a5157b3cb0a419671d067e25edf5aa27ab1604ba948ce7c68509abc756", kill_on_drop: false }`
[INFO] [stdout] 353497a5157b3cb0a419671d067e25edf5aa27ab1604ba948ce7c68509abc756
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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" "+1.90.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 344c2ea6510756f45ea086bd98c5b9c75996c06e301dda8d7300e38fe8203996
[INFO] running `Command { std: "docker" "start" "-a" "344c2ea6510756f45ea086bd98c5b9c75996c06e301dda8d7300e38fe8203996", 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-query v1.1.3
[INFO] [stderr]    Compiling anstyle v1.0.11
[INFO] [stderr]    Compiling colorchoice v1.0.4
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.1
[INFO] [stderr]    Compiling half v2.6.0
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling portable-atomic v1.11.1
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling clap_lex v0.7.5
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling is-terminal v0.4.16
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling number_prefix v0.4.0
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling colored v2.2.0
[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 rayon v1.10.0
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling clap_builder v4.5.41
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling indicatif v0.17.11
[INFO] [stderr]    Compiling criterion-plot v0.5.0
[INFO] [stderr]    Compiling regex v1.11.1
[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 ciborium v0.2.2
[INFO] [stderr]    Compiling markup5ever v0.11.0
[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] 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)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[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] [stderr] warning: build failed, waiting for other jobs to finish...
[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] 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)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `url_preview::LLMExtractor`, `url_preview::LLMExtractorConfig`, `url_preview::ContentFormat`, `url_preview::AnthropicProvider`, `url_preview::MockProvider`, `url_preview::LLMProvider`
[INFO] [stdout]    --> examples/test_claude_api.rs:14:14
[INFO] [stdout]     |
[INFO] [stdout]  14 |     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]  15 |     AnthropicProvider, MockProvider, LLMProvider,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^ no `LLMProvider` in the root
[INFO] [stdout]     |     |                  |
[INFO] [stdout]     |     |                  no `MockProvider` in the root
[INFO] [stdout]     |     no `AnthropicProvider` 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: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: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: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_claude_api.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | 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::ContentFormat`, `url_preview::OpenAIProvider`, `url_preview::MockProvider`, `url_preview::LLMProvider`
[INFO] [stdout]    --> examples/test_llm_extraction.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, MockProvider, LLMProvider,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^ no `LLMProvider` in the root
[INFO] [stdout]     |     |               |
[INFO] [stdout]     |     |               no `MockProvider` in the root
[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: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: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_extraction.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] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `url_preview::LLMExtractor`, `url_preview::LLMExtractorConfig`, `url_preview::LLMProvider`, `url_preview::ContentFormat`
[INFO] [stdout]    --> examples/test_claude_code_mock.rs:9:5
[INFO] [stdout]     |
[INFO] [stdout]   9 |     LLMExtractor, LLMExtractorConfig, LLMProvider, 
[INFO] [stdout]     |     ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^ no `LLMProvider` 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, Fetcher,
[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: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_code_mock.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::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] [stderr] error: could not compile `url-preview` (example "test_llm_extraction") due to 2 previous errors
[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] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `url-preview` (example "test_claude_api") due to 2 previous errors
[INFO] [stdout] error[E0432]: unresolved imports `url_preview::LLMExtractor`, `url_preview::LLMExtractorConfig`, `url_preview::OpenAIProvider`, `url_preview::ContentFormat`
[INFO] [stdout]    --> examples/practical_extraction_demo.rs:10:5
[INFO] [stdout]     |
[INFO] [stdout]  10 |     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]  11 |     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/practical_extraction_demo.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | 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: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/practical_extraction_demo.rs:190:18
[INFO] [stdout]     |
[INFO] [stdout] 190 |     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] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `url-preview` (example "test_claude_code_mock") due to 2 previous errors
[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/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/result.rs:548:1
[INFO] [stdout]    ::: /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/result.rs:552: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/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/result.rs:548:1
[INFO] [stdout]    ::: /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/result.rs:552: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] 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/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/result.rs:548:1
[INFO] [stdout]    ::: /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/result.rs:552: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] [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] For more information about this error, try `rustc --explain E0004`.
[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_json_extraction") due to 3 previous errors
[INFO] [stderr] error: could not compile `url-preview` (example "claude_api_working") due to 4 previous errors
[INFO] [stderr] error: could not compile `url-preview` (example "test_claude_code_sdk") due to 3 previous errors; 1 warning emitted
[INFO] [stderr] error: could not compile `url-preview` (example "practical_extraction_demo") due to 3 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] running `Command { std: "docker" "inspect" "344c2ea6510756f45ea086bd98c5b9c75996c06e301dda8d7300e38fe8203996", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "344c2ea6510756f45ea086bd98c5b9c75996c06e301dda8d7300e38fe8203996", kill_on_drop: false }`
[INFO] [stdout] 344c2ea6510756f45ea086bd98c5b9c75996c06e301dda8d7300e38fe8203996
