[package] license = "Apache-2.0" name = "xai-grok-shared" edition.workspace = true [dependencies] agent-client-protocol = { workspace = true } anyhow = { workspace = true } base64 = { workspace = true } dirs = "6" dunce = { workspace = true } image = { workspace = true, features = ["png", "jpeg", "gif", "webp"] } parking_lot = { workspace = true } prod-mc-cli-chat-proxy-types = { path = "../../../prod/mc/cli-chat-proxy-types" } regex = { workspace = true } serde = { workspace = true } serde_json = { workspace = true, features = ["preserve_order"] } tempfile = { workspace = true } thiserror = { workspace = true } tracing = { workspace = true } urlencoding = { workspace = true } xai-grok-config-types = { workspace = true } xai-grok-models = { workspace = true } xai-grok-tools = { workspace = true } xai-tty-utils = { workspace = true } [dev-dependencies] uuid = { workspace = true, features = ["v4"] } [target.'cfg(unix)'.dependencies] libc = { workspace = true } # objc2 runtime messaging (links libobjc only, NOT AppKit) for the fast # NSPasteboard probes and the paste-time native image read in clipboard.rs. # AppKit itself is dlopen'd lazily at first probe so headless processes never # load it — preserving the no-AppKit-link rule in clipboard.rs. Version # matches the workspace lock. [target.'cfg(target_os = "macos")'.dependencies] objc2 = "0.6.3" # arboard for clipboard on non-macOS platforms. On macOS we use pbcopy/pbpaste # subprocesses to avoid linking AppKit, which causes ~2 GB IOAccelerator GPU # memory overhead in headless processes (see clipboard.rs). # `wayland-data-control` makes arboard set the Wayland selection through the # compositor-side data-control protocol (no surface, no focus) instead of the # focus-mediated XWayland bridge; no-op off Linux (target-gated inside arboard). [target.'cfg(not(target_os = "macos"))'.dependencies] arboard = { workspace = true, features = ["wayland-data-control"] } # Already in-graph via arboard's wayland-data-control; direct dep for the # data-control probe in clipboard.rs (`is_primary_selection_supported`). [target.'cfg(target_os = "linux")'.dependencies] wl-clipboard-rs = { workspace = true } [lints] workspace = true