feat: agent-to-agent communication, dynamic agent creation, self-modification tools
Agent-to-agent: host routes messages with channel_type='agent' to target agent's inbound.db, enriches with sender info, wakes target container. Bidirectional routing works via inherited routing context. Dynamic agents: create_agent MCP tool + system action handler creates agent groups, folders, and optional CLAUDE.md on the fly. Self-modification: install_packages (apt/npm, requires admin approval), add_mcp_server (no approval), request_rebuild (builds per-agent-group Docker image with approved packages). Approval flow reuses interactive card infrastructure with pending_approvals table. Also includes fixes from prior session: attachment download, reply context extraction, message editing (platform message ID tracking), delivery retry limits, and card update on button click. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -109,3 +109,14 @@ export function updateMessagingGroupAgent(
|
||||
export function deleteMessagingGroupAgent(id: string): void {
|
||||
getDb().prepare('DELETE FROM messaging_group_agents WHERE id = ?').run(id);
|
||||
}
|
||||
|
||||
/** Get all messaging groups wired to an agent group (reverse lookup). */
|
||||
export function getMessagingGroupsByAgentGroup(agentGroupId: string): MessagingGroup[] {
|
||||
return getDb()
|
||||
.prepare(
|
||||
`SELECT mg.* FROM messaging_groups mg
|
||||
JOIN messaging_group_agents mga ON mga.messaging_group_id = mg.id
|
||||
WHERE mga.agent_group_id = ?`,
|
||||
)
|
||||
.all(agentGroupId) as MessagingGroup[];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user