version: "3"
tasks:
default:
desc: Show available tasks
cmds:
- task --list
install:typify:
desc: Install Typify CLI tool
cmds:
- cargo install cargo-typify
a2a:download-schema:
desc: Download the latest A2A schema and convert to YAML
cmds:
- curl -o schema.json https://raw.githubusercontent.com/inference-gateway/schemas/refs/heads/main/a2a/a2a-schema.json
- curl -o schema.yaml https://raw.githubusercontent.com/inference-gateway/schemas/refs/heads/main/a2a/a2a-schema.yaml
a2a:generate-types:
deps:
- install:typify
desc: Generate the Rust ADK types from the A2A schema
cmds:
- cargo typify schema.json -o src/a2a_types.rs
- |
sed -i '1i\#![allow(clippy::uninlined_format_args)]' src/a2a_types.rs
sed -i '1i\#![allow(clippy::derivable_impls)]' src/a2a_types.rs
sed -i '1i\#![allow(clippy::enum_variant_names)]' src/a2a_types.rs
sed -i '1i\#![allow(clippy::large_enum_variant)]' src/a2a_types.rs
sed -i '1i\#![allow(clippy::unit_arg)]' src/a2a_types.rs
sed -i '1i\#![allow(irrefutable_let_patterns)]' src/a2a_types.rs
- echo "A2A types generated successfully in src/a2a_types.rs"
- cargo fmt --all
lint:
desc: Run linter
cmds:
- cargo fmt --all -- --check
lint:fix:
desc: Run linter and fix issues
cmds:
- cargo fmt --all
analyse:
desc: Run static analysis
cmds:
- cargo clippy --all-targets --all-features -- -D warnings
test:
desc: Run tests
cmds:
- cargo test --all-targets --all-features
examples:minimal-server:
desc: Run the minimal A2A server example (requires Inference Gateway at localhost:8080)
cmds:
- cargo run --example minimal_server
examples:configured-server:
desc: Run the configured A2A server example (requires environment config and Inference Gateway)
cmds:
- cargo run --example configured_server
examples:server-with-toolbox:
desc: Run the A2A server example with tools (requires Inference Gateway at localhost:8080)
cmds:
- cargo run --example server_with_toolbox
examples:client:
desc: Run the A2A client example (requires A2A server running at localhost:8081)
cmds:
- cargo run --example client