import { crawl_run_record } from '../models/index.js'; import { safe_json_stringify } from './json_utils.js'; import { invoke_extension_action } from './puppeteer_runner.js'; import { persist_amazon_result } from './amazon_persist.js'; export async function execute_action_and_record(params) { const { action_name, action_payload, source } = params; const request_payload = safe_json_stringify(action_payload || {}); let ok = false; let result_payload = null; let error_message = null; try { const result = await invoke_extension_action(action_name, action_payload || {}); ok = true; result_payload = safe_json_stringify(result); // 按 stage 自动入库(不影响原始 run_record 记录) await persist_amazon_result(result); return 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 }); } }