saveRun method
Implementation
@override
Future<void> saveRun(Map<String, dynamic> run) async {
await _ensureTable();
final runId = run['id']?.toString();
if (runId == null || runId.isEmpty) {
throw ArgumentError('AI run must include an id.');
}
await DB.execute(
'DELETE FROM $_tableName WHERE run_id = ?',
positionalParams: [runId],
);
final now = DateTime.now().toIso8601String();
await DB.execute(
'INSERT INTO $_tableName (run_id, agent_name, user_id, tenant_id, thread_id, status, run_json, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)',
positionalParams: [
runId,
run['agentName']?.toString() ?? 'unknown',
run['userId']?.toString(),
run['tenantId']?.toString(),
run['threadId']?.toString(),
run['status']?.toString() ?? 'pending',
jsonEncode(run),
now,
now,
],
);
}