pub fn bind_agent_did(principal_did: &str, session_id: &str) -> StringExpand description
Derive the deterministic sub-agent DID under which an agent acts in a
session, scoped to principal_did + session_id.
A thin wrapper over crate::chat_agents::compile_sub_agent_did — the same
derivation the chat layer uses, so a roster agent and its in-session
sub-agent share one DID. Writing the session’s agent_config.json is the
caller’s responsibility; this only computes the DID.