✨ Identity onboarding + Verbatim dialogue memory
- Added [identity] config section (agent_name, agent_role, user_name, user_role, setup_complete) to GyandootConfig and AgentConfig - Agent loop now injects identity into system prompt on startup - Agent loop injects past verbatim dialogue memory into system prompt - Added dialogue_append() / dialogue_read() to MemPalace - Word-by-word, line-by-line verbatim record in dialogue.md - No compression, no truncation — every message preserved - Agent loop writes to BOTH daily transcript AND verbatim dialogue on every turn - All config paths pass identity through (flat converter, subagents)
This commit is contained in:
@@ -29,6 +29,8 @@ pub struct GyandootConfig {
|
||||
pub gateway: GatewaySection,
|
||||
#[serde(default)]
|
||||
pub browser: BrowserSection,
|
||||
#[serde(default)]
|
||||
pub identity: IdentitySection,
|
||||
}
|
||||
|
||||
impl Default for GyandootConfig {
|
||||
@@ -40,6 +42,7 @@ impl Default for GyandootConfig {
|
||||
memory: MemorySection::default(),
|
||||
gateway: GatewaySection::default(),
|
||||
browser: BrowserSection::default(),
|
||||
identity: IdentitySection::default(),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -238,6 +241,38 @@ impl Default for BrowserSection {
|
||||
}
|
||||
}
|
||||
|
||||
/// `[identity]` section — agent and user identity for MemPalace onboarding.
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct IdentitySection {
|
||||
/// Agent's name (e.g. "GyanDoot", "Maya").
|
||||
#[serde(default)]
|
||||
pub agent_name: String,
|
||||
/// Agent's role / personality description.
|
||||
#[serde(default)]
|
||||
pub agent_role: String,
|
||||
/// User's name (the human operating the agent).
|
||||
#[serde(default)]
|
||||
pub user_name: String,
|
||||
/// User's role / relationship to the agent.
|
||||
#[serde(default)]
|
||||
pub user_role: String,
|
||||
/// Whether identity onboarding has been completed.
|
||||
#[serde(default)]
|
||||
pub setup_complete: bool,
|
||||
}
|
||||
|
||||
impl Default for IdentitySection {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
agent_name: String::new(),
|
||||
agent_role: String::new(),
|
||||
user_name: String::new(),
|
||||
user_role: String::new(),
|
||||
setup_complete: false,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ─── Legacy / backward-compatible config types ──────────────────────────
|
||||
// These are re-exported under their original names so downstream crates
|
||||
// (gyandoot-agent, gyandoot-providers, etc.) continue to compile unchanged.
|
||||
@@ -256,6 +291,7 @@ pub struct AgentConfig {
|
||||
pub security: SecurityRootConfig,
|
||||
pub kanban: KanbanRootConfig,
|
||||
pub skills: SkillsRootConfig,
|
||||
pub identity: IdentitySection,
|
||||
}
|
||||
|
||||
impl Default for AgentConfig {
|
||||
@@ -272,6 +308,7 @@ impl Default for AgentConfig {
|
||||
security: SecurityRootConfig::default(),
|
||||
kanban: KanbanRootConfig::default(),
|
||||
skills: SkillsRootConfig::default(),
|
||||
identity: IdentitySection::default(),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -310,6 +347,7 @@ impl From<GyandootConfig> for AgentConfig {
|
||||
security: SecurityRootConfig::default(),
|
||||
kanban: KanbanRootConfig::default(),
|
||||
skills: SkillsRootConfig::default(),
|
||||
identity: cfg.identity,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user