content: [workspace]
  resolver = "3"
  members = [
      "crates/*",
      # "prototype/discovery/*",
      # "prototype/examples/*",
      # "prototype/particles/*",
      # "prototype/substance/*",
  ]
  exclude = [
      # "prototype/particles/app-web/ui",
      # "prototype/particles/app-web",
      # "prototype/examples",
  ]
  
  [workspace.package]
  version = "0.0.1"
  edition = "2024"
  license = "GPL-3.0"
  repository = "https://github.com/NethermindEth/nine"
  keywords = ["ai", "ai-agent", "ethereum"]
  
  [workspace.dependencies]
  anyhow = "1.0.98"
  async-trait = "0.1.88"
  bytes = "1.10.1"
  chrono = { version = "0.4.41", features = ["serde"] }
  console-subscriber = "0.4.1"
  clap = { version = "4.5.37", features = ["derive"] }
  crb = { version = "0.0.38", default-features = false }
  crb-system = { version = "0.0.38" }
  derive_more = { version = "2.0.1", features = ["full"] }
  dirs = "6.0.0"
  dotenvy = "0.15.7"
  eframe = "0.31.1"
  egui = "0.31.1"
  env_logger = "0.11.8"
  envy = "0.4.2"
  flexbuffers = "25.2.10"
  futures = "0.3.31"
  notify = "8.0.0"
  # n9-core = { version = "0.0.1", path = "substance/n9-core", default-features = false }
  # n9-app-tui = { version = "0.0.1", path = "particles/app-tui" }
  # n9-config-toml = { version = "0.0.1", path = "particles/config-toml" }
  # n9-control-chat = { version = "0.0.1", path = "particles/control-chat" }
  # n9-control-session = { version = "0.0.1", path = "particles/control-session" }
  # n9-control-task = { version = "0.0.1", path = "particles/control-task" }
  # n9-model-openai = { version = "0.0.1", path = "particles/model-openai" }
  # n9-system-info = { version = "0.0.1", path = "particles/system-info" }
  # n9-kit = { version = "0.0.1", path = "substance/n9-kit" }
  # n9-std = { version = "0.0.1", path = "substance/n9-std" }
  # n9-node = { version = "0.0.1", path = "discovery/n9-node", default-features = false }
  libp2p = { version = "0.55.0", default-features = false, features = ["gossipsub", "macros", "noise", "plaintext", "serde", "quic", "yamux"] }
  libp2p-stream = "0.3.0-alpha"
  nom = "8.0.0"
  futures-bounded = "0.3.0"
  log = "0.4.27"
  regex = "1.11.1"
  schemars = { version = "0.8.22", features = ["derive"] }
  serde = { version = "1.0.219", features = ["derive"] }
  serde_json = "1.0.140"
  strum = { version = "0.27.1", features = ["derive"] }
  smallvec = "1.15.0"
  thiserror = "2.0.12"
  tokio = "1.44.2"
  tokio-stream = "0.1.17"
  tokio-util = "0.7.15"
  toml = "0.8.22"
  tracing = "0.1.41"
  tracing-subscriber = "0.3.19"
  typed-slab = "0.2.1"
  walkdir = "2.5.0"
  # ui9 = { version = "0.0.1", path = "substance/ui9" }
  # ui9-app = { version = "0.0.1", path = "substance/ui9-app" }
  # ui9-dui = { version = "0.0.1", path = "substance/ui9-dui", default-features = false }
  # ui9-codec = { version = "0.0.1", path = "substance/ui9-codec", features = ["flex"] }
  # ui9-maker = { version = "0.0.1", path = "substance/ui9-maker" }
  # ui9-mesh = { version = "0.0.1", path = "substance/ui9-mesh", default-features = false }
  # ui9-net = { version = "0.0.1", path = "substance/ui9-net", default-features = false }
  # ui9-tracers = { version = "0.0.1", path = "substance/ui9-tracers", default-features = false }
  # ui9-tui = { version = "0.0.1", path = "substance/ui9-tui" }
  yew = "0.21.0"
  vectorize = "0.2.0"
  