add network capture endpoint replay

This commit is contained in:
karolinnger 2026-05-16 22:22:18 -04:00
parent 72edb61881
commit cb31c70465
34 changed files with 5996 additions and 8 deletions

214
Cargo.lock generated
View file

@ -161,6 +161,23 @@ dependencies = [
"syn",
]
[[package]]
name = "async-tungstenite"
version = "0.32.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8acc405d38be14342132609f06f02acaf825ddccfe76c4824a69281e0458ebd4"
dependencies = [
"atomic-waker",
"futures-core",
"futures-io",
"futures-task",
"futures-util",
"log",
"pin-project-lite",
"tokio",
"tungstenite",
]
[[package]]
name = "atoi_simd"
version = "0.17.0"
@ -348,6 +365,9 @@ name = "bytes"
version = "1.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
dependencies = [
"serde",
]
[[package]]
name = "bzip2"
@ -418,6 +438,71 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
[[package]]
name = "chromiumoxide"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26ed067eb6c1f660bdb87c05efb964421d2ca262bae0296cdfe38cf0cd949a3e"
dependencies = [
"async-tungstenite",
"base64",
"bytes",
"chromiumoxide_cdp",
"chromiumoxide_types",
"dunce",
"fnv",
"futures",
"futures-timer",
"pin-project-lite",
"reqwest 0.13.3",
"serde",
"serde_json",
"thiserror",
"tokio",
"tracing",
"url",
"which",
"windows-registry",
]
[[package]]
name = "chromiumoxide_cdp"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68a6a03a7ebac4ea85308f285d6959a3e6b2ce32a0c9465dc7a7b1db0144eec7"
dependencies = [
"chromiumoxide_pdl",
"chromiumoxide_types",
"serde",
"serde_json",
]
[[package]]
name = "chromiumoxide_pdl"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c602dea92337bc4d824668d78c5b79c3b4ddb29b40dd7218282bbe8fd3fc2091"
dependencies = [
"chromiumoxide_types",
"either",
"heck",
"once_cell",
"proc-macro2",
"quote",
"regex",
"serde_json",
]
[[package]]
name = "chromiumoxide_types"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "678d5146e74f16fc4a41978b275af572cd913de1f10270d2b93b6c276bc57d80"
dependencies = [
"serde",
"serde_json",
]
[[package]]
name = "chrono"
version = "0.4.44"
@ -665,6 +750,12 @@ dependencies = [
"syn",
]
[[package]]
name = "data-encoding"
version = "2.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4ae5f15dda3c708c0ade84bfee31ccab44a3da4f88015ed22f63732abe300c8"
[[package]]
name = "debug_unsafe"
version = "0.1.4"
@ -772,6 +863,12 @@ dependencies = [
"dtoa",
]
[[package]]
name = "dunce"
version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813"
[[package]]
name = "dyn-clone"
version = "1.0.20"
@ -998,6 +1095,12 @@ version = "0.3.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393"
[[package]]
name = "futures-timer"
version = "3.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24"
[[package]]
name = "futures-util"
version = "0.3.32"
@ -1116,6 +1219,12 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
[[package]]
name = "hex"
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
[[package]]
name = "hmac"
version = "0.12.1"
@ -2207,6 +2316,35 @@ dependencies = [
"webpki-roots",
]
[[package]]
name = "reqwest"
version = "0.13.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62e0021ea2c22aed41653bc7e1419abb2c97e038ff2c33d0e1309e49a97deec0"
dependencies = [
"base64",
"bytes",
"futures-core",
"http",
"http-body",
"http-body-util",
"hyper",
"hyper-util",
"js-sys",
"log",
"percent-encoding",
"pin-project-lite",
"sync_wrapper",
"tokio",
"tower",
"tower-http",
"tower-service",
"url",
"wasm-bindgen",
"wasm-bindgen-futures",
"web-sys",
]
[[package]]
name = "ring"
version = "0.17.14"
@ -2529,6 +2667,17 @@ dependencies = [
"digest",
]
[[package]]
name = "sha2"
version = "0.10.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
dependencies = [
"cfg-if",
"cpufeatures",
"digest",
]
[[package]]
name = "sharded-slab"
version = "0.1.7"
@ -2958,6 +3107,23 @@ version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
[[package]]
name = "tungstenite"
version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8628dcc84e5a09eb3d8423d6cb682965dea9133204e8fb3efee74c2a0c259442"
dependencies = [
"bytes",
"data-encoding",
"http",
"httparse",
"log",
"rand 0.9.2",
"sha1",
"thiserror",
"utf-8",
]
[[package]]
name = "type1-encoding-parser"
version = "0.1.1"
@ -3217,6 +3383,25 @@ dependencies = [
"wasm-bindgen",
]
[[package]]
name = "webclaw-capture"
version = "0.6.1"
dependencies = [
"chromiumoxide",
"chrono",
"dirs",
"futures-util",
"hex",
"reqwest 0.12.28",
"serde",
"serde_json",
"sha2",
"thiserror",
"tokio",
"tracing",
"url",
]
[[package]]
name = "webclaw-cli"
version = "0.6.1"
@ -3225,13 +3410,14 @@ dependencies = [
"dotenvy",
"rand 0.8.5",
"regex",
"reqwest",
"reqwest 0.12.28",
"serde_json",
"shlex",
"tokio",
"tracing",
"tracing-subscriber",
"url",
"webclaw-capture",
"webclaw-core",
"webclaw-fetch",
"webclaw-llm",
@ -3267,7 +3453,7 @@ dependencies = [
"quick-xml 0.37.5",
"rand 0.8.5",
"regex",
"reqwest",
"reqwest 0.12.28",
"serde",
"serde_json",
"tempfile",
@ -3287,7 +3473,7 @@ name = "webclaw-llm"
version = "0.6.1"
dependencies = [
"async-trait",
"reqwest",
"reqwest 0.12.28",
"serde",
"serde_json",
"thiserror",
@ -3309,6 +3495,7 @@ dependencies = [
"tracing",
"tracing-subscriber",
"url",
"webclaw-capture",
"webclaw-core",
"webclaw-fetch",
"webclaw-llm",
@ -3339,6 +3526,7 @@ dependencies = [
"tower-http",
"tracing",
"tracing-subscriber",
"webclaw-capture",
"webclaw-core",
"webclaw-fetch",
"webclaw-llm",
@ -3369,6 +3557,15 @@ version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88"
[[package]]
name = "which"
version = "8.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81995fafaaaf6ae47a7d0cc83c67caf92aeb7e5331650ae6ff856f7c0c60c459"
dependencies = [
"libc",
]
[[package]]
name = "winapi"
version = "0.3.9"
@ -3432,6 +3629,17 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
[[package]]
name = "windows-registry"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720"
dependencies = [
"windows-link",
"windows-result",
"windows-strings",
]
[[package]]
name = "windows-result"
version = "0.4.1"