[INFO] fetching crate ai-types-derive 0.1.0...
[INFO] testing ai-types-derive-0.1.0 against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-7
[INFO] extracting crate ai-types-derive 0.1.0 into /workspace/builds/worker-3-tc1/source
[INFO] started tweaking crates.io crate ai-types-derive 0.1.0
[INFO] finished tweaking crates.io crate ai-types-derive 0.1.0
[INFO] tweaked toml for crates.io crate ai-types-derive 0.1.0 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate ai-types-derive 0.1.0 on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate ai-types-derive 0.1.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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded convert_case v0.8.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c27ed9daa7219f08d692f7087cea19cd6c7525e36a9d5ccb197dc3796b9ac6c4
[INFO] running `Command { std: "docker" "start" "-a" "c27ed9daa7219f08d692f7087cea19cd6c7525e36a9d5ccb197dc3796b9ac6c4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c27ed9daa7219f08d692f7087cea19cd6c7525e36a9d5ccb197dc3796b9ac6c4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c27ed9daa7219f08d692f7087cea19cd6c7525e36a9d5ccb197dc3796b9ac6c4", kill_on_drop: false }`
[INFO] [stdout] c27ed9daa7219f08d692f7087cea19cd6c7525e36a9d5ccb197dc3796b9ac6c4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4052bad18dbc9e86a03a553fcd723cfa5fa5048d2967d51e37f0a0237ad5c694
[INFO] running `Command { std: "docker" "start" "-a" "4052bad18dbc9e86a03a553fcd723cfa5fa5048d2967d51e37f0a0237ad5c694", kill_on_drop: false }`
[INFO] [stderr]    Compiling convert_case v0.8.0
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]    Compiling ai-types-derive v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.87s
[INFO] running `Command { std: "docker" "inspect" "4052bad18dbc9e86a03a553fcd723cfa5fa5048d2967d51e37f0a0237ad5c694", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4052bad18dbc9e86a03a553fcd723cfa5fa5048d2967d51e37f0a0237ad5c694", kill_on_drop: false }`
[INFO] [stdout] 4052bad18dbc9e86a03a553fcd723cfa5fa5048d2967d51e37f0a0237ad5c694
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 97574f53fe60f72341cd624635006859e76c0b0e1db47e383cbaff35d19ab5d6
[INFO] running `Command { std: "docker" "start" "-a" "97574f53fe60f72341cd624635006859e76c0b0e1db47e383cbaff35d19ab5d6", kill_on_drop: false }`
[INFO] [stderr]    Compiling ai-types-derive v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.69s
[INFO] running `Command { std: "docker" "inspect" "97574f53fe60f72341cd624635006859e76c0b0e1db47e383cbaff35d19ab5d6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "97574f53fe60f72341cd624635006859e76c0b0e1db47e383cbaff35d19ab5d6", kill_on_drop: false }`
[INFO] [stdout] 97574f53fe60f72341cd624635006859e76c0b0e1db47e383cbaff35d19ab5d6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 802fac6c7537e2a7b16163269be709cfd0c2e3ffa470db055f5f3df3645b33f5
[INFO] running `Command { std: "docker" "start" "-a" "802fac6c7537e2a7b16163269be709cfd0c2e3ffa470db055f5f3df3645b33f5", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ai_types_derive-7ef97b0e411c514b)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests ai_types_derive
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test src/lib.rs - (line 53) ... FAILED
[INFO] [stdout] test src/lib.rs - (line 35) ... FAILED
[INFO] [stdout] test src/lib.rs - tool (line 202) ... FAILED
[INFO] [stdout] test src/lib.rs - (line 26) ... FAILED
[INFO] [stdout] test src/lib.rs - (line 12) ... FAILED
[INFO] [stdout] test src/lib.rs - tool (line 158) ... FAILED
[INFO] [stdout] test src/lib.rs - tool (line 170) ... FAILED
[INFO] [stdout] test src/lib.rs - tool (line 179) ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/lib.rs - (line 53) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `schemars`
[INFO] [stdout]   --> src/lib.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 54 | 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] error[E0432]: unresolved import `serde`
[INFO] [stdout]   --> src/lib.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | use serde::Deserialize;
[INFO] [stdout]    |     ^^^^^ use of unresolved module or unlinked crate `serde`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `serde`, use `cargo add serde` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `tool` in this scope
[INFO] [stdout]   --> src/lib.rs:72:3
[INFO] [stdout]    |
[INFO] [stdout] 72 | #[tool(description = "Generate an image from a text prompt")]
[INFO] [stdout]    |   ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this attribute macro
[INFO] [stdout]    |
[INFO] [stdout] 53 + use ai_types_derive::tool;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `serde` in this scope
[INFO] [stdout]   --> src/lib.rs:62:7
[INFO] [stdout]    |
[INFO] [stdout] 62 |     #[serde(default = "default_width")]
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `serde` in this scope
[INFO] [stdout]   --> src/lib.rs:65:7
[INFO] [stdout]    |
[INFO] [stdout] 65 |     #[serde(default = "default_height")]
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: enum takes 2 generic arguments but 1 generic argument was supplied
[INFO] [stdout]   --> src/lib.rs:73:49
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub async fn generate_image(args: ImageArgs) -> Result<String> {
[INFO] [stdout]    |                                                 ^^^^^^ ------ supplied 1 generic argument
[INFO] [stdout]    |                                                 |
[INFO] [stdout]    |                                                 expected 2 generic arguments
[INFO] [stdout]    |
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub async fn generate_image(args: ImageArgs) -> Result<String, E> {
[INFO] [stdout]    |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0107, E0432.
[INFO] [stdout] For more information about an error, try `rustc --explain E0107`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - (line 35) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `serde`
[INFO] [stdout]   --> src/lib.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | use serde::Serialize;
[INFO] [stdout]    |     ^^^^^ use of unresolved module or unlinked crate `serde`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `serde`, use `cargo add serde` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `tool` in this scope
[INFO] [stdout]   --> src/lib.rs:44:3
[INFO] [stdout]    |
[INFO] [stdout] 44 | #[tool(description = "Search the web for content")]
[INFO] [stdout]    |   ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this attribute macro
[INFO] [stdout]    |
[INFO] [stdout] 35 + use ai_types_derive::tool;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: enum takes 2 generic arguments but 1 generic argument was supplied
[INFO] [stdout]   --> src/lib.rs:45:59
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub async fn search(keywords: Vec<String>, limit: u32) -> Result<Vec<SearchResult>> {
[INFO] [stdout]    |                                                           ^^^^^^ ----------------- supplied 1 generic argument
[INFO] [stdout]    |                                                           |
[INFO] [stdout]    |                                                           expected 2 generic arguments
[INFO] [stdout]    |
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub async fn search(keywords: Vec<String>, limit: u32) -> Result<Vec<SearchResult>, E> {
[INFO] [stdout]    |                                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0107, E0432.
[INFO] [stdout] For more information about an error, try `rustc --explain E0107`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - tool (line 202) stdout ----
[INFO] [stdout] error: cannot find attribute `tool` in this scope
[INFO] [stdout]    --> src/lib.rs:203:3
[INFO] [stdout]     |
[INFO] [stdout] 203 | #[tool(
[INFO] [stdout]     |   ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this attribute macro
[INFO] [stdout]     |
[INFO] [stdout] 202 + use ai_types_derive::tool;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: enum takes 2 generic arguments but 1 generic argument was supplied
[INFO] [stdout]    --> src/lib.rs:207:59
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub async fn complex_math_function(expression: String) -> Result<f64> {
[INFO] [stdout]     |                                                           ^^^^^^ --- supplied 1 generic argument
[INFO] [stdout]     |                                                           |
[INFO] [stdout]     |                                                           expected 2 generic arguments
[INFO] [stdout]     |
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub async fn complex_math_function(expression: String) -> Result<f64, E> {
[INFO] [stdout]     |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0107`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - (line 26) stdout ----
[INFO] [stdout] error: cannot find attribute `tool` in this scope
[INFO] [stdout]   --> src/lib.rs:27:3
[INFO] [stdout]    |
[INFO] [stdout] 27 | #[tool(description = "Check service health status")]
[INFO] [stdout]    |   ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this attribute macro
[INFO] [stdout]    |
[INFO] [stdout] 26 + use ai_types_derive::tool;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: enum takes 2 generic arguments but 1 generic argument was supplied
[INFO] [stdout]   --> src/lib.rs:28:32
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub async fn health_check() -> Result<String> {
[INFO] [stdout]    |                                ^^^^^^ ------ supplied 1 generic argument
[INFO] [stdout]    |                                |
[INFO] [stdout]    |                                expected 2 generic arguments
[INFO] [stdout]    |
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub async fn health_check() -> Result<String, E> {
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0107`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - (line 12) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `ai_types`
[INFO] [stdout]   --> src/lib.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use ai_types::Result;
[INFO] [stdout]    |     ^^^^^^^^ use of unresolved module or unlinked crate `ai_types`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `ai_types`, use `cargo add ai_types` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `ai_types` in the list of imported crates
[INFO] [stdout]   --> src/lib.rs:17:1
[INFO] [stdout]    |
[INFO] [stdout] 17 | #[tool(description = "Get the current UTC time")]
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ could not find `ai_types` in the list of imported crates
[INFO] [stdout]    |
[INFO] [stdout]    = note: this error originates in the attribute macro `tool` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - tool (line 158) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `ai_types`
[INFO] [stdout]    --> src/lib.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 160 | use ai_types::Result;
[INFO] [stdout]     |     ^^^^^^^^ use of unresolved module or unlinked crate `ai_types`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `ai_types`, use `cargo add ai_types` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `chrono`
[INFO] [stdout]    --> src/lib.rs:165:8
[INFO] [stdout]     |
[INFO] [stdout] 165 |     Ok(chrono::Utc::now().to_rfc3339())
[INFO] [stdout]     |        ^^^^^^ use of unresolved module or unlinked crate `chrono`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `chrono`, use `cargo add chrono` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `ai_types` in the list of imported crates
[INFO] [stdout]    --> src/lib.rs:163:1
[INFO] [stdout]     |
[INFO] [stdout] 163 | #[tool(description = "Get the current system time")]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ could not find `ai_types` in the list of imported crates
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the attribute macro `tool` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - tool (line 170) stdout ----
[INFO] [stdout] error: cannot find attribute `tool` in this scope
[INFO] [stdout]    --> src/lib.rs:171:3
[INFO] [stdout]     |
[INFO] [stdout] 171 | #[tool(description = "Calculate the sum of two numbers")]
[INFO] [stdout]     |   ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this attribute macro
[INFO] [stdout]     |
[INFO] [stdout] 170 + use ai_types_derive::tool;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: enum takes 2 generic arguments but 1 generic argument was supplied
[INFO] [stdout]    --> src/lib.rs:172:37
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub async fn add(a: f64, b: f64) -> Result<f64> {
[INFO] [stdout]     |                                     ^^^^^^ --- supplied 1 generic argument
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     expected 2 generic arguments
[INFO] [stdout]     |
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub async fn add(a: f64, b: f64) -> Result<f64, E> {
[INFO] [stdout]     |                                               +++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0107`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - tool (line 179) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `schemars`
[INFO] [stdout]    --> src/lib.rs:180:5
[INFO] [stdout]     |
[INFO] [stdout] 180 | 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] error[E0432]: unresolved import `serde`
[INFO] [stdout]    --> src/lib.rs:181:5
[INFO] [stdout]     |
[INFO] [stdout] 181 | use serde::Deserialize;
[INFO] [stdout]     |     ^^^^^ use of unresolved module or unlinked crate `serde`
[INFO] [stdout]     |
[INFO] [stdout]     = help: if you wanted to use a crate named `serde`, use `cargo add serde` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] error: cannot find attribute `tool` in this scope
[INFO] [stdout]    --> src/lib.rs:193:3
[INFO] [stdout]     |
[INFO] [stdout] 193 | #[tool(description = "Send an email to a recipient")]
[INFO] [stdout]     |   ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this attribute macro
[INFO] [stdout]     |
[INFO] [stdout] 179 + use ai_types_derive::tool;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: enum takes 2 generic arguments but 1 generic argument was supplied
[INFO] [stdout]    --> src/lib.rs:194:51
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub async fn send_email(request: EmailRequest) -> Result<String> {
[INFO] [stdout]     |                                                   ^^^^^^ ------ supplied 1 generic argument
[INFO] [stdout]     |                                                   |
[INFO] [stdout]     |                                                   expected 2 generic arguments
[INFO] [stdout]     |
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub async fn send_email(request: EmailRequest) -> Result<String, E> {
[INFO] [stdout]     |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0107, E0432.
[INFO] [stdout] For more information about an error, try `rustc --explain E0107`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/lib.rs - (line 12)
[INFO] [stdout]     src/lib.rs - (line 26)
[INFO] [stdout]     src/lib.rs - (line 35)
[INFO] [stdout]     src/lib.rs - (line 53)
[INFO] [stdout]     src/lib.rs - tool (line 158)
[INFO] [stdout]     src/lib.rs - tool (line 170)
[INFO] [stdout]     src/lib.rs - tool (line 179)
[INFO] [stdout]     src/lib.rs - tool (line 202)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 8 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.54s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.77s; merged doctests compilation took 0.22s
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "802fac6c7537e2a7b16163269be709cfd0c2e3ffa470db055f5f3df3645b33f5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "802fac6c7537e2a7b16163269be709cfd0c2e3ffa470db055f5f3df3645b33f5", kill_on_drop: false }`
[INFO] [stdout] 802fac6c7537e2a7b16163269be709cfd0c2e3ffa470db055f5f3df3645b33f5
