vct_core/models/mod.rs
1//! Serde data models mirroring the supported assistants' on-disk session
2//! formats plus the analyzer's own aggregated result types.
3//!
4//! Each JSON/JSONL provider submodule (`claude`, `codex`, `copilot`, `gemini`,
5//! `grok`) defines the minimal subset of fields the analyzer reads from that
6//! provider's session logs; the SQLite providers (OpenCode / Cursor / Hermes)
7//! deserialize inline in their `session` readers and have no submodule here.
8//! `analysis` and `usage` hold the normalized, cross-provider output shapes;
9//! `provider` carries the [`Provider`] discriminator, `filter` the
10//! [`TimeRange`] session filter, and `aggregate` the per-provider totals
11//! container. All items are re-exported at the module root for convenience.
12
13pub mod aggregate;
14pub mod analysis;
15pub mod claude;
16pub mod codex;
17pub mod copilot;
18pub mod filter;
19pub mod gemini;
20pub mod grok;
21pub mod provider;
22pub mod quota;
23pub mod usage;
24
25pub use self::aggregate::*;
26pub use self::analysis::*;
27pub use self::claude::*;
28pub use self::codex::*;
29pub use self::copilot::*;
30pub use self::filter::*;
31pub use self::gemini::*;
32pub use self::grok::*;
33pub use self::provider::*;
34pub use self::quota::*;
35pub use self::usage::*;