1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
//! Network layer: WAF classification and session/fingerprint
//! management.
//!
//! # Why this module exists
//!
//! CORRECTED on 2026-09-04. This header used to open by saying the CLI
//! drives a real Chromium instance, and to list four submodules. Two of
//! them, `intercept` and `observe`, were deleted with the browser
//! subsystem on 2026-09-04 under GAP-2026-218, and the six intra-doc
//! links pointing at them turned `cargo doc` red under
//! `rustdoc::broken_intra_doc_links = "deny"`. The four local gates that
//! run on every change — `fmt`, `clippy`, `build`, `test` — do not build
//! documentation, so the breakage survived them all.
//!
//! Every provider in the chain now speaks plain HTTP. What remains here
//! are the two concerns that outlive the browser, because a protected
//! site answers an HTTP client the same way it answered a browser:
//!
//! - [`waf`] — classifies which protection vendor is in front of a
//! host, by header and by cookie, and decides when to stop retrying.
//! - [`session`] — a persistent cookie jar plus a Chrome-coherent
//! request-header fingerprint.
//!
//! # Testability
//!
//! Every classification, redaction and ordering decision in this module
//! is a pure function over plain data, and no test here opens a socket.
//! That property predates the removal: it was written when a browser
//! still existed, and it is the reason the removal cost this module
//! nothing but a header.
//!
//! # Stream contract
//!
//! `stdout` is reserved for the subtitle payload, and nothing in this
//! module ever writes to it.
/// Session cookie jar and Chrome-coherent header fingerprint.
/// Web-application-firewall classification and escalation policy.
pub use ;
pub use ;
/// User-Agent this crate sends when the operator sets none.
///
/// It is a compile-time string, so it can never drift from the version
/// in the manifest. Until 2026-08-31 the same `concat!` was written out
/// in four provider modules, and the `user_agent` config key that was
/// supposed to govern them reached none of them.
pub const DEFAULT_USER_AGENT: &str =
concat!;
/// Effective User-Agent for outbound HTTP.
///
/// Reads through the tuning registry, so it observes the documented
/// precedence: `--user-agent`, then the `user_agent` key of the XDG
/// file, then [`DEFAULT_USER_AGENT`]. The command dispatcher publishes
/// the merged flag value, which is what lets a provider that never sees
/// the parsed `Cli` still honour the command line.