
[workspace]
members = [
  "crates/typedialog-core",
  "crates/typedialog",
  "crates/typedialog-tui",
  "crates/typedialog-web",
  "crates/typedialog-ai",
  "crates/typedialog-prov-gen",
  "crates/typedialog-agent/typedialog-ag-core",
  "crates/typedialog-agent/typedialog-ag",
]
resolver = "2"

  [workspace.package]
  authors = ["Jesús Pérez <jpl@jesusperez.com>"]
  categories = ["command-line-utilities", "web-programming"]
  edition = "2021"
  keywords = ["forms", "cli", "tui", "web", "ai"]
  license = "MIT"
  repository = "https://github.com/jesusperezlorenzo/typedialog"
  rust-version = "1.75"
  version = "0.1.0"

  [workspace.dependencies]
  # Internal crates
  typedialog-ag-core = { path = "crates/typedialog-agent/typedialog-ag-core" }
  typedialog-core = { path = "crates/typedialog-core" }

  # Core serialization
  serde = { version = "1.0", features = ["derive"] }
  serde_json = "1.0"
  serde_yaml = "0.9"
  toml = "0.9"

  # Utility
  anyhow = "1.0"
  async-trait = "0.1"
  chrono = { version = "0.4", features = ["serde"] }
  clap = { version = "4.5", features = ["derive", "cargo"] }
  thiserror = "2.0"
  webbrowser = "1.0"

  # Async
  futures = "0.3"
  tokio = { version = "1", features = ["full"] }

  # Templates
  tera = "1.20"

  # i18n
  dirs = "6.0"
  fluent = "0.17"
  fluent-bundle = "0.16"
  sys-locale = "0.3"
  unic-langid = "0.9"

  # Nushell integration
  nu-plugin = "0.110.0"
  nu-protocol = "0.110.0"

  # CLI Backend (inquire)
  colored = "3"
  dialoguer = "0.12"
  inquire = { version = "0.9", features = ["editor", "date"] }
  rpassword = "7.4"

  # TUI Backend (ratatui)
  atty = "0.2"
  crossterm = "0.29"
  ratatui = "0.30"

  # Web Backend (axum)
  axum = { version = "0.8.8", features = ["multipart", "ws"] }
  tower = "0.5.3"
  tower-http = { version = "0.6.8", features = ["fs", "cors", "trace"] }
  tracing = "0.1"
  tracing-subscriber = { version = "0.3", features = ["env-filter"] }

  # AI/ML Backend
  instant-distance = "0.6"
  tantivy = "0.25"
  # this bincode can not be updated - Wait for tantivy/syntect to support 2.0
  # and Migrate 8 code locations to new API with explicit config
  bincode = "=1.3"
  petgraph = "0.8"
  rand = "0.9"
  serde_bytes = "0.11"
  surrealdb = { version = "2.4", features = ["kv-mem"] }

  # Misc
  tempfile = "3.24"

  # Testing & Benchmarking
  criterion = { version = "0.8", features = ["html_reports"] }
  proptest = "1.9"

  # TypeAgent dependencies
  console = "0.16"
  globset = "0.4"
  hex = "0.4"
  ignore = "0.4"
  indicatif = "0.18"
  lru = "0.16"
  nickel-lang-core = "0.16"
  nom = "8"
  notify = "8"
  reqwest = { version = "0.13", features = ["json", "rustls", "stream"] }
  sha2 = "0.10"
  uuid = { version = "1.19", features = ["v4", "serde"] }

  cargo_toml = "0.22"
  regex = "1.12"
  strum = { version = "0.27", features = ["derive"] }
  strum_macros = "0.27"

  [workspace.lints.rust]
  unsafe_code = "forbid"

  [workspace.lints.clippy]
  all = "warn"
