import { crawl_run_record } from '../models/index.js'; import { safe_json_stringify } from './json_utils.js'; import { invoke_extension_action } from './puppeteer/puppeteer_runner.js'; export async function execute_action_and_record(params) { const { action_name, action_payload, source, keep_browser_open } = params; const request_payload = safe_json_stringify(action_payload || {}); let ok = false; let result_payload = null; let error_message = null; try { const result_obj = await invoke_extension_action(action_name, action_payload || {}, { keep_browser_open: keep_browser_open === true }); ok = true; result_payload = safe_json_stringify(result_obj); return result_obj.result; } catch (err) { ok = false; error_message = (err && err.message) || String(err); throw err; } finally { await crawl_run_record.create({ action_name, request_payload, ok, result_payload, error_message, source }); } }