/** * Database module: AgentBridgeMappings * CRUD operations for agent_bridge_mappings table. */ import { getDbInstance } from "./core"; import type { AgentBridgeMappingRow } from "./_rowTypes"; export function getMappingsForAgent(agentId: string): AgentBridgeMappingRow[] { const db = getDbInstance(); const rows = db .prepare( "SELECT agent_id, source_model, target_model, updated_at FROM agent_bridge_mappings WHERE agent_id = ? ORDER BY source_model ASC" ) .all(agentId) as AgentBridgeMappingRow[]; return rows; } export function setMappings( agentId: string, mappings: Array<{ source: string; target: string }> ): void { const db = getDbInstance(); const now = new Date().toISOString(); const deleteStmt = db.prepare("DELETE FROM agent_bridge_mappings WHERE agent_id = ?"); const insertStmt = db.prepare( `INSERT INTO agent_bridge_mappings (agent_id, source_model, target_model, updated_at) VALUES (?, ?, ?, ?)` ); const runTransaction = db.transaction(() => { deleteStmt.run(agentId); for (const mapping of mappings) { insertStmt.run(agentId, mapping.source, mapping.target, now); } }); runTransaction(); } export function deleteMapping(agentId: string, source: string): void { const db = getDbInstance(); db.prepare( "DELETE FROM agent_bridge_mappings WHERE agent_id = ? AND source_model = ?" ).run(agentId, source); }