"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.executeAssistantDeepTurnRetrievalPlan = executeAssistantDeepTurnRetrievalPlan; const retrievalResultNormalizer_1 = require("./retrievalResultNormalizer"); function buildRouteExecutorErrorRawResult(route, message) { return { status: "error", result_type: "summary", items: [], summary: { route }, evidence: [], why_included: [], selection_reason: [], risk_factors: [], business_interpretation: [], confidence: "low", limitations: ["Route executor failed."], errors: [message] }; } async function executeAssistantDeepTurnRetrievalPlan(input) { const normalizeRetrievalResultSafe = input.normalizeRetrievalResultFn ?? retrievalResultNormalizer_1.normalizeRetrievalResult; const retrievalCalls = []; const retrievalResultsRaw = []; const retrievalResults = []; for (const planItem of input.executionPlan) { if (!planItem.should_execute) { retrievalCalls.push({ fragment_id: planItem.fragment_id, requirement_ids: planItem.requirement_ids, route: planItem.route, status: "skipped", query_text: planItem.fragment_text, reason: input.mapNoRouteReason(planItem.no_route_reason) }); retrievalResults.push(input.buildSkippedResult(planItem)); continue; } retrievalCalls.push({ fragment_id: planItem.fragment_id, requirement_ids: planItem.requirement_ids, route: planItem.route, status: "executed", query_text: planItem.fragment_text, reason: null }); try { const raw = await input.executeRouteRuntime(planItem.route, planItem.fragment_text, { temporalHint: input.liveTemporalHint }); retrievalResultsRaw.push({ fragment_id: planItem.fragment_id, route: planItem.route, raw_result: raw }); retrievalResults.push(normalizeRetrievalResultSafe(planItem.fragment_id, planItem.requirement_ids, planItem.route, raw)); } catch (error) { const message = error instanceof Error ? error.message : String(error); retrievalCalls[retrievalCalls.length - 1].status = "failed"; retrievalCalls[retrievalCalls.length - 1].reason = message; const rawError = buildRouteExecutorErrorRawResult(planItem.route, message); retrievalResultsRaw.push({ fragment_id: planItem.fragment_id, route: planItem.route, raw_result: rawError }); retrievalResults.push(normalizeRetrievalResultSafe(planItem.fragment_id, planItem.requirement_ids, planItem.route, rawError)); } } return { retrievalCalls, retrievalResultsRaw, retrievalResults }; }