content: [package]
  name = "terminator-rs"
  version = { workspace = true }
  edition = "2021"
  description = "A Playwright-style SDK for automating desktop GUI applications"
  authors = ["Mediar AI"]
  repository = "https://github.com/mediar-ai/terminator"
  homepage = "https://github.com/mediar-ai/terminator"
  documentation = "https://docs.rs/terminator"
  readme = "../README.md"
  keywords = ["automation", "gui", "desktop", "accessibility", "testing"]
  categories = ["accessibility", "api-bindings", "development-tools::testing"]
  license-file = { workspace = true }
  
  [dependencies]
  serde = { workspace = true }
  serde_json = { workspace = true }
  anyhow = { workspace = true }
  thiserror = { workspace = true }
  tracing = { workspace = true }
  tracing-subscriber = { workspace = true }
  tokio = { workspace = true }
  
  # OCR / Vision
  xcap = { workspace = true }
  image = { workspace = true }
  uni-ocr = { workspace = true }
  async-trait = { workspace = true }
  futures = "0.3"
  blake3 = "1.5.0"
  # Extension bridge (WebSocket)
  once_cell = "1.19"
  uuid = { version = "1", features = ["v4"] }
  futures-util = "0.3"
  tokio-tungstenite = { version = "0.23" }
  
  [lib]
  name = "terminator"
  path = "src/lib.rs"
  
  
  [features]
  # Define a no-op feature to satisfy objc macros that gate on `cfg(feature = "cargo-clippy")`.
  # Without this, Rust's `unexpected_cfgs` lint warns about unknown feature values during macro expansion.
  default = []
  cargo-clippy = []
  
  
  [target.'cfg(target_os = "linux")'.dependencies]
  atspi = { version = "0.26.3", features = [
      "tokio",
      "proxies-tokio",
      "zbus",
      "connection",
  ] }
  zbus = { version = "5.5", default-features = false }
  atspi-common = { version = "0.10.1", default-features = false }
  atspi-proxies = { version = "0.10.2", default-features = false }
  
  [target.'cfg(target_os = "macos")'.dependencies]
  accessibility-sys = { workspace = true }
  accessibility = { workspace = true }
  objc = { workspace = true }
  objc-foundation = { workspace = true }
  core-foundation = { workspace = true }
  core-graphics = { workspace = true }
  
  [target.'cfg(target_os = "windows")'.dependencies]
  windows = { workspace = true, features = [
      "Win32_Foundation",
      "Win32_System_Diagnostics_ToolHelp",
      "Win32_System_Com",
      "Win32_UI_Shell",
      "Win32_Security",
      "Win32_UI_WindowsAndMessaging",
      "Win32_System_ProcessStatus",
      "Win32_System_Registry",
      "Win32_System_Threading",
      "Win32_UI_Input",
      "Win32_UI_Input_KeyboardAndMouse",
      "Win32_Graphics_Gdi",
  ] }
  
  
  uiautomation = { workspace = true, features = [
      "clipboard",
      "input",
      "process",
  ] }
  # https://github.com/mediar-ai/uiautomation-rs 
  # uiautomation = { git = "https://github.com/mediar-ai/uiautomation-rs", branch = "main", features = [
  #     "clipboard",
  #     "input",
  #     "process",
  # ] }
  sysinfo = "0.36.1"
  regex = { workspace = true }
  reqwest = { version = "0.12.5", features = ["json", "blocking", "rustls-tls"] }
  
  [[example]]
  name = "benchmark_example"
  path = "examples/benchmark_example.rs"
  
  [dev-dependencies]
  criterion = { version = "0.5", features = ["html_reports"] }
  axum = "0.8.3"
  tower-http = { version = "0.6.2", features = ["cors", "limit"] }
  reqwest = { version = "0.12.5", features = ["json", "blocking"] }
  serde_json = "1"
  tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }
  anyhow = { workspace = true }
  tracing-subscriber = { workspace = true, features = ["env-filter"] }
  warp = "0.3.7"
  tiny_http = "0.12.0"
  urlencoding = "2.1.3"
  