"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.assembleAssistantDeepTurnPackaging = assembleAssistantDeepTurnPackaging; const assistantEvidenceBundleAssembler_1 = require("./assistantEvidenceBundleAssembler"); const assistantContractsBundleAssembler_1 = require("./assistantContractsBundleAssembler"); const assistantDeepResponseAssembler_1 = require("./assistantDeepResponseAssembler"); const assistantDebugPayloadAssembler_1 = require("./assistantDebugPayloadAssembler"); const assistantMessageLogAssembler_1 = require("./assistantMessageLogAssembler"); function extractNormalizedFragments(normalized) { if (!normalized || typeof normalized !== "object") { return []; } const source = normalized; return Array.isArray(source.fragments) ? source.fragments : []; } function assembleAssistantDeepTurnPackaging(input) { const normalizedPayload = input.normalized.normalized ?? null; const normalizedFragments = extractNormalizedFragments(normalizedPayload); const evidenceBundleAssembly = (0, assistantEvidenceBundleAssembler_1.assembleAssistantEvidenceBundle)({ retrievalCalls: input.retrievalCalls, retrievalResults: input.retrievalResults }); const contractsBundleV1 = (0, assistantContractsBundleAssembler_1.assembleAssistantContractsBundleV1)({ userMessage: input.userMessage, normalizedQuestion: input.normalizedQuestion, normalized: input.normalized.normalized, routeSummary: input.routeSummary, droppedIntentSegments: input.droppedIntentSegments, analysisContext: input.analysisContextForContract, executionPlan: input.executionPlan, requirements: input.requirementExtractionRequirements, evidenceBundleContractV1: evidenceBundleAssembly.evidenceBundleContractV1, replyType: input.composition.reply_type, coverageReport: input.coverageReport, grounding: input.groundingCheck, retrievalResults: input.retrievalResults }); const deepAnswerArtifacts = (0, assistantDeepResponseAssembler_1.buildDeepAnswerArtifacts)({ safeAssistantReplyBase: input.safeAssistantReplyBase, featureContractsV11: input.featureContractsV11, featureAnswerPolicyV11: input.featureAnswerPolicyV11, compositionAnswerStructureV11: input.composition.answer_structure_v11 ?? null, coverageReport: input.coverageReport, groundingCheck: input.groundingCheck, retrievalResults: input.retrievalResults }); const debug = (0, assistantDebugPayloadAssembler_1.buildDeepAnalysisDebugPayload)({ traceId: input.normalized.trace_id, promptVersion: input.normalized.prompt_version, schemaVersion: input.normalized.schema_version, fallbackType: input.composition.fallback_type, routeSummary: input.routeSummary, fragments: normalizedFragments, requirementsExtracted: input.coverageEvaluationRequirements, coverageReport: input.coverageReport, routes: input.routesForDebug, retrievalStatus: evidenceBundleAssembly.retrievalStatus, retrievalResults: input.retrievalResults, groundingCheck: input.groundingCheck, droppedIntentSegments: input.droppedIntentSegments, questionTypeClass: input.questionTypeClass, companyAnchors: input.companyAnchors, runtimeAnalysisContext: input.runtimeAnalysisContext, businessScopeResolution: input.businessScopeResolution, temporalGuard: input.temporalGuard, polarityAudit: input.polarityAudit, claimAnchorAudit: input.claimAnchorAudit, targetedEvidenceAudit: input.targetedEvidenceAudit, evidenceAdmissibilityGateAudit: input.evidenceAdmissibilityGateAudit, rbpLiveRouteAudit: input.rbpLiveRouteAudit, faLiveRouteAudit: input.faLiveRouteAudit, groundedAnswerEligibilityGuard: input.groundedAnswerEligibilityGuard, followupStateUsage: input.followupStateUsage, compositionDebug: { problem_centric_answer_applied: input.composition.problem_centric_answer_applied ?? false, problem_units_used_count: input.composition.problem_units_used_count ?? 0, problem_answer_mode: input.composition.problem_answer_mode ?? "stage1_policy_v11", problem_unit_ids_used: Array.isArray(input.composition.problem_unit_ids_used) ? input.composition.problem_unit_ids_used : [] }, addressRuntimeMetaForDeep: input.addressRuntimeMetaForDeep, outcomeClassV1: contractsBundleV1.outcomeClassV1, assistantOrchestrationContractsV1: contractsBundleV1.assistantOrchestrationContractsV1, answerStructureV11: deepAnswerArtifacts.answerStructureV11, investigationStateSnapshot: input.investigationStateSnapshot, normalizedPayload: normalizedPayload }); const assistantItem = (0, assistantDeepResponseAssembler_1.buildAssistantConversationItem)({ messageId: input.messageId, sessionId: input.sessionId, text: deepAnswerArtifacts.safeAssistantReply, replyType: input.composition.reply_type, traceId: input.normalized.trace_id, debug }); const deepAnalysisLogDetails = (0, assistantMessageLogAssembler_1.buildDeepAnalysisProcessedLogDetails)({ sessionId: input.sessionId, messageId: input.messageId, userMessage: input.userMessage, normalizerOutput: input.normalized.normalized, executionPlan: input.executionPlan, resolvedExecutionState: input.resolvedExecutionState, routes: input.routesForDebug, retrievalCalls: input.retrievalCalls, retrievalResultsRaw: input.retrievalResultsRaw, retrievalResultsNormalized: input.retrievalResults, requirementsExtracted: input.coverageEvaluationRequirements, coverageReport: input.coverageReport, groundingCheck: input.groundingCheck, replyType: input.composition.reply_type, droppedIntentSegments: input.droppedIntentSegments, questionTypeClass: input.questionTypeClass, companyAnchors: input.companyAnchors, runtimeAnalysisContext: input.runtimeAnalysisContext, businessScopeResolution: input.businessScopeResolution, temporalGuard: input.temporalGuard, polarityAudit: input.polarityAudit, claimAnchorAudit: input.claimAnchorAudit, targetedEvidenceAudit: input.targetedEvidenceAudit, evidenceAdmissibilityGateAudit: input.evidenceAdmissibilityGateAudit, rbpLiveRouteAudit: input.rbpLiveRouteAudit, faLiveRouteAudit: input.faLiveRouteAudit, groundedAnswerEligibilityGuard: input.groundedAnswerEligibilityGuard, followupStateUsage: input.followupStateUsage, compositionDebug: { problem_centric_answer_applied: input.composition.problem_centric_answer_applied ?? false, problem_units_used_count: input.composition.problem_units_used_count ?? 0, problem_answer_mode: input.composition.problem_answer_mode ?? "stage1_policy_v11", problem_unit_ids_used: Array.isArray(input.composition.problem_unit_ids_used) ? input.composition.problem_unit_ids_used : [], fallback_type: input.composition.fallback_type }, outcomeClassV1: contractsBundleV1.outcomeClassV1, assistantOrchestrationContractsV1: contractsBundleV1.assistantOrchestrationContractsV1, answerStructureV11: deepAnswerArtifacts.answerStructureV11, investigationStateSnapshot: input.investigationStateSnapshot, assistantReply: deepAnswerArtifacts.safeAssistantReply, traceId: input.normalized.trace_id }); return { evidenceBundleAssembly, contractsBundleV1, deepAnswerArtifacts, debug, assistantItem, deepAnalysisLogDetails }; }