[workspace]
members = ["crates/*"]
resolver = "2"

[workspace.package]
edition = "2021"
rust-version = "1.80"
license = "Apache-2.0"
version = "0.1.0"

[workspace.dependencies]
avante-tokenizers = { path = "crates/avante-tokenizers" }
avante-templates = { path = "crates/avante-templates" }
avante-repo-map = { path = "crates/avante-repo-map" }
avante-html2md = { path = "crates/avante-html2md" }
minijinja = { version = "2.4.0", features = [
  "loader",
  "json",
  "fuel",
  "unicode",
  "speedups",
  "custom_syntax",
  "loop_controls",
] }
mlua = { version = "0.10.0", features = ["module", "serialize"] }
tiktoken-rs = { version = "0.6.0" }
tokenizers = { version = "0.20.0", features = [
  "esaxx_fast",
  "http",
  "unstable_wasm",
  "onig",
], default-features = false }
serde = { version = "1.0.209", features = ["derive"] }

[workspace.lints.rust]
unsafe_code = "warn"
unreachable_pub = "warn"

[workspace.lints.clippy]
pedantic = { level = "warn", priority = -2 }
# Allowed pedantic lints
char_lit_as_u8 = "allow"
collapsible_else_if = "allow"
collapsible_if = "allow"
implicit_hasher = "allow"
map_unwrap_or = "allow"
match_same_arms = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
similar_names = "allow"
too_many_lines = "allow"
too_many_arguments = "allow"
# Disallowed restriction lints
print_stdout = "warn"
print_stderr = "warn"
dbg_macro = "warn"
empty_drop = "warn"
empty_structs_with_brackets = "warn"
exit = "warn"
get_unwrap = "warn"
rc_buffer = "warn"
rc_mutex = "warn"
rest_pat_in_fully_bound_structs = "warn"