import type { AssistantDebugPayload, UnifiedRetrievalResult } from "../types/assistant"; import { buildAssistantEvidenceBundleContractV1, type AssistantEvidenceBundleContractV1 } from "./assistantOrchestrationContracts"; import type { AssistantRetrievalCallRecord } from "./assistantDeepTurnRetrievalRuntimeAdapter"; type RetrievalStatusItem = AssistantDebugPayload["retrieval_status"][number]; export interface AssistantEvidenceBundleAssembly { evidenceBundleContractV1: AssistantEvidenceBundleContractV1; retrievalStatus: RetrievalStatusItem[]; } function buildRetrievalStatus(retrievalResults: UnifiedRetrievalResult[]): RetrievalStatusItem[] { return retrievalResults.map((item) => ({ fragment_id: item.fragment_id, requirement_ids: item.requirement_ids, route: item.route, status: item.status, result_type: item.result_type })); } export function assembleAssistantEvidenceBundle(input: { retrievalCalls: AssistantRetrievalCallRecord[]; retrievalResults: UnifiedRetrievalResult[]; }): AssistantEvidenceBundleAssembly { const retrievalResults = Array.isArray(input.retrievalResults) ? input.retrievalResults : []; return { evidenceBundleContractV1: buildAssistantEvidenceBundleContractV1({ retrievalCalls: Array.isArray(input.retrievalCalls) ? input.retrievalCalls : [], retrievalResults }), retrievalStatus: buildRetrievalStatus(retrievalResults) }; }