Skip to content

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs

Comment 1, line 1

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:1

//! Hermes Agent adapter; see architecture.md#adapter-layout.

Comment 2, line 2

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:2

//! - Stable entry point implements the shared interface and re-exports modules.

Comment 3, line 3

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:3

//! - detect checks state.db columns and the v22 primary-key shape before version selection.

Comment 4, line 4

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:4

//! - versions registers session_model_usage_v1 interval aggregates.

Comment 5, line 5

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:5

//! - common owns usage mapping, in-memory base_url normalization and read-only/staged source access.

Comment 6, line 6

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:6

//!

Comment 7, line 7

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:7

//! A24 references: source commit ef70b3661cbfcf57e583008ad91dd04d8ba46070

Comment 8, line 8

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:8

//! (hermes_state_common.py SCHEMA_SQL, hermes_state_usage.py and agent/turn_usage.py)

Comment 9, line 9

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:9

//! and official 0.21.5 image commit f97608f178d1ffeca59860195ab7da295f7c8e5f.

Comment 10, line 10

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:10

//! Real isolated local-model CLI/resumed-session samples checked normalized buckets; other paths remain unverified.

Comment 11, line 11

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:11

//! This implementation reads native local intervals per model/task.

Comment 12, line 12

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:12

//! Per-request agent-log details and exact daily attribution require separate verification.

Comment 13, line 22

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:22

/// Hermes-home environment override from hermes_constants.py get_hermes_home.

Comment 14, line 25

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:25

/// Stateless Hermes Agent adapter.

Comment 15, line 39

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:39

/// Find state.db under a candidate root, including named profiles.

Comment 16, line 40

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:40

/// Profile directories must match PROFILE_ID_RE: ^[a-z0-9][a-z0-9_-]{0,63}$

Comment 17, line 41

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:41

/// and contain config.yaml/.env/SOUL.md/profile.yaml/auth.json/state.db as an identity marker.

Comment 18, line 44

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:44

// Depth 3 includes root/profiles/<name>/state.db.

Comment 19, line 80

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:80

// Relative path depth 1 is root/state.db for the default home or HERMES_HOME.

Comment 20, line 81

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:81

// Depth 2 accepts a user/backup parent root; detect checks database identity.

Comment 21, line 82

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:82

// Depth 3 requires profiles/<name>/state.db and a valid profile name. state.db

Comment 22, line 83

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:83

// itself is a referenced identity marker, so no additional marker file is needed.

Comment 23, line 116

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:116

// Read HERMES_HOME; process-internal context overrides are invisible to collection.

Comment 24, line 125

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:125

// Platform defaults from _get_platform_default_hermes_home:

Comment 25, line 126

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:126

// Windows %LOCALAPPDATA%/hermes, falling back to ~/AppData/Local/hermes;

Comment 26, line 127

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:127

// macOS/Linux ~/.hermes.

Comment 27, line 151

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:151

// Manual roots can be a Hermes home, its parent or a user home.

Comment 28, line 152

desktop/src-tauri/crates/core/src/adapters/hermes/mod.rs:152

// Bounded enumeration uses depth 3 and accepts root/child state.db or named profiles at depth 3.