[package]
edition = "2021"
rust-version = "1.88"
name = "framewatch"
version = "0.6.0"
build = false
exclude = [
"tests/fixtures/*.png",
"/.github",
"framewatch-spec.md",
"dist/framewatch.exe",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Event-driven, change-triggered window capture that emits timestamped screenshots + metadata for AI agents."
readme = "README.md"
keywords = [
"screen-capture",
"screenshot",
"windows",
"agent",
"automation",
]
categories = [
"multimedia",
"os::windows-apis",
"computer-vision",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/dmoore-dwmmholdings/framewatch"
[package.metadata.docs.rs]
default-target = "x86_64-pc-windows-msvc"
targets = ["x86_64-pc-windows-msvc"]
features = [
"gui",
"wgc",
"record",
]
[features]
cli = [
"dep:clap",
"dep:anyhow",
"dep:tracing-subscriber",
]
default = ["cli"]
gui = [
"dep:eframe",
"dep:egui",
"dep:dirs",
]
jpeg = ["image/jpeg"]
llm = []
record = [
"dep:cpal",
"dep:hound",
"dep:ctrlc",
"dep:dirs",
"dep:sha2",
"dep:ureq",
"dep:zip",
"wgc",
]
webp = ["dep:webp"]
wgc = [
"dep:windows-capture",
"dep:windows",
]
[lib]
name = "framewatch"
path = "src/lib.rs"
[[bin]]
name = "framewatch"
path = "src/bin/framewatch.rs"
required-features = ["cli"]
[[example]]
name = "embed"
path = "examples/embed.rs"
[[example]]
name = "record-test-app"
path = "examples/record_test_app.rs"
required-features = ["gui"]
[[test]]
name = "codex_integration"
path = "tests/codex_integration.rs"
[[test]]
name = "crop"
path = "tests/crop.rs"
[[test]]
name = "dedup"
path = "tests/dedup.rs"
[[test]]
name = "engine_auto_spinner"
path = "tests/engine_auto_spinner.rs"
[[test]]
name = "engine_dedup_session"
path = "tests/engine_dedup_session.rs"
[[test]]
name = "engine_extra"
path = "tests/engine_extra.rs"
[[test]]
name = "engine_fullscreen"
path = "tests/engine_fullscreen.rs"
[[test]]
name = "engine_spinner"
path = "tests/engine_spinner.rs"
[[test]]
name = "engine_static"
path = "tests/engine_static.rs"
[[test]]
name = "engine_value"
path = "tests/engine_value.rs"
[[test]]
name = "metadata_golden"
path = "tests/metadata_golden.rs"
[[test]]
name = "recording_package"
path = "tests/recording_package.rs"
[[test]]
name = "sink_directory"
path = "tests/sink_directory.rs"
[[test]]
name = "watch_driver"
path = "tests/watch_driver.rs"
[dependencies.anyhow]
version = "1"
optional = true
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.clap]
version = "4"
features = ["derive"]
optional = true
[dependencies.cpal]
version = "0.17"
optional = true
[dependencies.crossbeam-channel]
version = "0.5"
[dependencies.ctrlc]
version = "3"
optional = true
[dependencies.dirs]
version = "5"
optional = true
[dependencies.eframe]
version = "0.33"
optional = true
[dependencies.egui]
version = "0.33"
optional = true
[dependencies.hound]
version = "3.5"
optional = true
[dependencies.image]
version = "0.25"
features = ["png"]
default-features = false
[dependencies.image_hasher]
version = "3"
[dependencies.regex]
version = "1"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.sha2]
version = "0.10"
optional = true
[dependencies.smallvec]
version = "1"
[dependencies.thiserror]
version = "2"
[dependencies.toml]
version = "0.8"
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
optional = true
[dependencies.ureq]
version = "3"
optional = true
[dependencies.webp]
version = "0.3"
optional = true
[dependencies.zip]
version = "2.4"
features = ["deflate"]
optional = true
default-features = false
[dev-dependencies.tempfile]
version = "3"
[target."cfg(windows)".dependencies.windows]
version = "0.62"
features = [
"Win32_Foundation",
"Win32_UI_WindowsAndMessaging",
"Win32_UI_HiDpi",
"Win32_Graphics_Dwm",
"Win32_Graphics_Gdi",
"Win32_System_Threading",
]
optional = true
[target."cfg(windows)".dependencies.windows-capture]
version = "2"
optional = true