rigs 0.0.8

A orchestration framework for rig
Documentation
[package]
name = "rigs"
version = "0.0.8"
edition = "2024"
description = "A orchestration framework for rig"
license = "MIT"
readme = "README.md"
keywords = ["rig", "orchestration", "agent"]
repository = "https://github.com/M4n5ter/rigs"

[lints.clippy]
clone_on_ref_ptr = "deny"
str_to_string = "deny"
needless_for_each = "deny"

dbg_macro = "warn"
empty_enum = "warn"
enum_glob_use = "warn"
exit = "warn"
filter_map_next = "warn"
fn_params_excessive_bools = "warn"
# Stabilized: https://github.com/rust-lang/rust/issues/131154
# if_let_mutex = "warn"
imprecise_flops = "warn"
inefficient_to_string = "warn"
linkedlist = "warn"
lossy_float_literal = "warn"
macro_use_imports = "warn"
match_on_vec_items = "warn"
match_wildcard_for_single_variants = "warn"
mem_forget = "warn"
needless_collect = "warn"
needless_continue = "warn"
option_option = "warn"
rest_pat_in_fully_bound_structs = "warn"
suboptimal_flops = "warn"
todo = "warn"
uninlined_format_args = "warn"
unnested_or_patterns = "warn"
unused_self = "warn"
verbose_file_reads = "warn"

[lints.rust]
unsafe_code = "deny"

rust-2018-idioms = { level = "warn", priority = -1 }
rust-2021-compatibility = { level = "warn", priority = -1 }
rust-2024-compatibility = { level = "warn", priority = -1 }
# it can be noisy
# missing_docs = "warn"
unreachable_pub = "warn"

[dependencies]
chrono = { version = "0.4", features = ["serde"] } # A library for date and time
dashmap = { version = "6.1", features = ["serde"] } # A concurrent hashmap
futures = "0.3" # A library for asynchronous programming
paste = "1.0" # A library for macro
petgraph = { version = "0.7", default-features = false, features = [
    "stable_graph",
] } # A graph library
rig-core = "0.11" # rig-core, we need keep it newest version
rigs-macro = { version = "0.0.2", path = "./rigs-macro" }
schemars = "1.0.0-alpha.17" # Serialize Rust data structures to JSON Schema
serde = { version = "1.0", features = [
    "derive",
] } # serialization and deserialization
serde_json = "1.0" # JSON serialization and deserialization
thiserror = "2.0" # Define custom error types
tokio = { version = "1.44", features = ["sync", "time"] } # Asynchronous runtime
tracing = "0.1" # Logging and tracing
twox-hash = "2.1" # A fast hash algorithm
uuid = { version = "1.16", features = ["v4", "serde"] } # UUID
zstd = "0.13" # Zstandard compression algorithms

[dev-dependencies]
anyhow = "1.0" #  Error handling
dotenv = "0.15" # Load environment variables from .env file
mockall = "0.13" # Mocking library
tokio = { version = "1.44", features = [
    "macros",
    "rt",
    "rt-multi-thread",
    "test-util",
] } # tokio for testing
tracing-subscriber = { version = "0.3", features = [
    "env-filter",
] } # Tracing subscriber