feat(orchestration): multi-agent communication, unified agents, env passthrough
- btmsg: admin role (tier 0), channel messaging (create/list/send/history), admin global feed, mark-read conversations - Rust btmsg module: admin bypass, channels, feed, 8 new Tauri commands - CommsTab: sidebar chat interface with activity feed, DMs, channels (Ctrl+M) - Agent unification: Tier 1 agents rendered as ProjectBoxes via agentToProject() converter, getAllWorkItems() combines agents + projects in ProjectGrid - GroupAgentsPanel: click-to-navigate agents to their ProjectBox - Agent system prompts: generateAgentPrompt() builds comprehensive introductory context (role, environment, team, btmsg/bttask docs, workflow instructions) - AgentSession passes group context to prompt generator via $derived.by() - BTMSG_AGENT_ID env var passthrough: extra_env field flows through full chain (agent-bridge → Rust AgentQueryOptions → NDJSON → sidecar runners → cleanEnv) - workspace store: updateAgent() for Tier 1 agent config persistence
This commit is contained in:
parent
1331d094b3
commit
a158ed9544
19 changed files with 1918 additions and 39 deletions
|
|
@ -31,6 +31,9 @@ pub struct AgentQueryOptions {
|
|||
/// Provider-specific configuration blob (passed through to sidecar as-is)
|
||||
#[serde(default)]
|
||||
pub provider_config: serde_json::Value,
|
||||
/// Extra environment variables injected into the agent process (e.g. BTMSG_AGENT_ID)
|
||||
#[serde(default)]
|
||||
pub extra_env: std::collections::HashMap<String, String>,
|
||||
}
|
||||
|
||||
fn default_provider() -> String {
|
||||
|
|
@ -220,6 +223,7 @@ impl SidecarManager {
|
|||
"additionalDirectories": options.additional_directories,
|
||||
"worktreeName": options.worktree_name,
|
||||
"providerConfig": options.provider_config,
|
||||
"extraEnv": options.extra_env,
|
||||
});
|
||||
|
||||
self.send_message(&msg)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue