Skip to main content

roder_usage_analytics/
lib.rs

1//! Local long-term usage analytics for Roder (roadmap phase 73).
2//!
3//! Projects selected runtime events into a queryable SQLite database under
4//! the Roder data directory (`<data-dir>/analytics/usage.sqlite3`).
5//! Analytics are local-only, passive, idempotent, and redacted by default:
6//! prompts, assistant text, tool output bodies, and secrets never reach the
7//! store. Raw thread-event JSONL remains the durable audit/backfill source.
8
9pub mod backfill;
10pub mod ingest;
11pub mod jsonl;
12pub mod model;
13pub mod query;
14pub mod rollup;
15mod schema;
16pub mod sink;
17pub mod store;
18
19pub use backfill::{BackfillOptions, BackfillParseError, BackfillReport, backfill_analytics};
20pub use ingest::AnalyticsIngestor;
21pub use jsonl::AnalyticsJsonlRecord;
22pub use model::{
23    ANALYTICS_JSONL_SCHEMA_VERSION, DailyRollupRow, SessionRecord, SessionSummary, StatsFilter,
24    TokenGroup, TokenSummaryRow, TokenUsageRecord, ToolCallRecord, ToolSummary, TurnRecord,
25    UsageSummary, WorkspaceLabelMode,
26};
27pub use query::{DEFAULT_LIMIT, MAX_LIMIT, sort_tool_summaries};
28pub use sink::{
29    ANALYTICS_EXTENSION_ID, ANALYTICS_SINK_ID, UsageAnalyticsExtension, UsageAnalyticsSink,
30};
31pub use store::{AnalyticsStore, StoreCounts};