@absolutejs/absolute 0.19.0-beta.612 → 0.19.0-beta.614

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,7 +7,7 @@
7
7
  "import { mkdir, readFile, writeFile } from 'node:fs/promises';\nimport { dirname } from 'node:path';\nimport type { Database } from 'bun:sqlite';\nimport type {\n\tRAGAnswerGroundingCaseDifficultyDiffEntry,\n\tRAGAnswerGroundingCaseDifficultyHistory,\n\tRAGAnswerGroundingCaseDifficultyHistoryStore,\n\tRAGAnswerGroundingCaseDifficultyRun,\n\tRAGAnswerGroundingCaseDifficultyRunDiff,\n\tRAGAnswerGroundingEvaluationCaseDiff,\n\tRAGAnswerGroundingEvaluationCase,\n\tRAGAnswerGroundingEvaluationCaseDifficultyEntry,\n\tRAGAnswerGroundingEvaluationCaseSnapshot,\n\tRAGAnswerGroundingEvaluationCaseResult,\n\tRAGAnswerGroundingEvaluationHistory,\n\tRAGAnswerGroundingEvaluationLeaderboardEntry,\n\tRAGAnswerGroundingEvaluationHistoryStore,\n\tRAGAnswerGroundingEvaluationInput,\n\tRAGAnswerGroundingEvaluationResponse,\n\tRAGAnswerGroundingEvaluationRun,\n\tRAGAnswerGroundingEvaluationRunDiff,\n\tRAGCollection,\n\tRAGEvaluationCase,\n\tRAGEvaluationCaseDiff,\n\tRAGEvaluationCaseTraceSnapshot,\n\tRAGEvaluationCaseResult,\n\tRAGEvaluationHistory,\n\tRAGEvaluationHistoryStore,\n\tRAGEvaluationInput,\n\tRAGEvaluationLeaderboardEntry,\n\tRAGEvaluationResponse,\n\tRAGEvaluationRunDiff,\n\tRAGLabelValueRow,\n\tRAGComparisonPresentation,\n\tRAGComparisonOverviewPresentation,\n\tRAGGroundingProviderPresentation,\n\tRAGGroundingProviderOverviewPresentation,\n\tRAGGroundingProviderCaseComparisonPresentation,\n\tRAGGroundingOverviewPresentation,\n\tRAGQualityOverviewPresentation,\n\tRAGEvaluationSuite,\n\tRAGEvaluationSuiteRun,\n\tRAGRetrievalTraceSummaryRun,\n\tRAGHybridRetrievalMode,\n\tRAGSourceBalanceStrategy,\n\tRAGRetrievalCandidate,\n\tRAGRetrievalComparison,\n\tRAGRetrievalBaselineGatePolicy,\n\tRAGRetrievalBaselineGatePolicyHistoryRecord,\n\tRAGRetrievalBaselineGatePolicyHistoryStore,\n\tRAGRetrievalComparisonDecisionSummary,\n\tRAGRetrievalComparisonGateResult,\n\tRAGRetrievalReleaseVerdict,\n\tRAGRetrievalComparisonHistoryStore,\n\tRAGRetrievalBaselineRecord,\n\tRAGRetrievalBaselineStore,\n\tRAGRetrievalLaneHandoffDecisionRecord,\n\tRAGRetrievalLaneHandoffDecisionStore,\n\tRAGRetrievalLaneHandoffIncidentHistoryRecord,\n\tRAGRetrievalLaneHandoffIncidentHistoryStore,\n\tRAGRetrievalLaneHandoffAutoCompletePolicyHistoryRecord,\n\tRAGRetrievalLaneHandoffAutoCompletePolicyHistoryStore,\n\tRAGRetrievalLaneHandoffIncidentRecord,\n\tRAGRetrievalLaneHandoffIncidentStore,\n\tRAGRetrievalIncidentRemediationDecisionRecord,\n\tRAGRetrievalIncidentRemediationDecisionStore,\n\tRAGRetrievalIncidentRemediationExecutionHistoryRecord,\n\tRAGRetrievalIncidentRemediationExecutionHistoryStore,\n\tRAGRetrievalReleaseDecisionRecord,\n\tRAGRetrievalReleaseLanePolicyHistoryRecord,\n\tRAGRetrievalReleaseLanePolicyHistoryStore,\n\tRAGRetrievalReleaseLaneEscalationPolicyHistoryRecord,\n\tRAGRetrievalReleaseLaneEscalationPolicyHistoryStore,\n\tRAGRetrievalReleaseDecisionStore,\n\tRAGRetrievalReleaseIncidentRecord,\n\tRAGRetrievalReleaseIncidentStore,\n\tRAGRetrievalComparisonRun,\n\tRAGRetrievalComparisonEntry,\n\tRAGRetrievalTrace,\n\tRAGRetrievalTraceComparisonSummary,\n\tRAGRetrievalTraceComparisonSummaryDiff,\n\tRAGRetrievalTraceStep,\n\tRAGRetrievalTraceStage,\n\tRAGTraceSummaryListTrend,\n\tRAGTraceSummaryTrendDirection,\n\tRAGTraceSummaryNumericDelta,\n\tRAGTraceSummaryStageTrend,\n\tRAGTraceSummaryStageCountsDelta,\n\tRAGRetrievalComparisonSummary,\n\tRAGRetrievalTraceHistoryWindow,\n\tRAGRerankerCandidate,\n\tRAGRerankerComparison,\n\tRAGRerankerComparisonEntry,\n\tRAGRerankerComparisonSummary,\n\tRAGRerankerProviderLike,\n\tRAGRetrievalTraceTrend,\n\tRAGSearchTraceDiff,\n\tRAGSearchTraceGroupHistory,\n\tRAGSearchTraceGroupHistoryEntry,\n\tRAGSearchTraceHistory,\n\tRAGSearchTracePruneInput,\n\tRAGSearchTracePruneHistoryStore,\n\tRAGSearchTracePruneRun,\n\tRAGSearchTracePrunePreview,\n\tRAGSearchTracePruneResult,\n\tRAGSearchTraceRecord,\n\tRAGSearchTraceResultSnapshot,\n\tRAGSearchTraceStats,\n\tRAGSearchTraceStore,\n\tRAGRemediationAction,\n\tRAGSource,\n\tRAGCollectionSearchParams\n} from '../../../types/ai';\nimport { generateId } from '../protocol';\nimport { buildRAGGroundedAnswer } from './grounding';\n\nconst DEFAULT_TOP_K = 6;\nconst DEFAULT_HISTORY_LIMIT = 20;\nconst DEFAULT_SEARCH_TRACE_TABLE_NAME = 'rag_search_traces';\ntype BunSQLiteModule = {\n\tDatabase: new (path?: string) => Database;\n};\n\ntype ImportMetaWithRequire = ImportMeta & {\n\trequire?: (specifier: string) => unknown;\n};\n\nconst loadBunSQLiteModule = (): BunSQLiteModule => {\n\tconst runtimeRequire = (import.meta as ImportMetaWithRequire).require;\n\tif (typeof runtimeRequire !== 'function') {\n\t\tthrow new Error(\n\t\t\t'SQLite trace storage requires Bun runtime support for import.meta.require.'\n\t\t);\n\t}\n\n\treturn runtimeRequire('bun:sqlite') as BunSQLiteModule;\n};\n\nconst normalizeStringArray = (value: unknown) => {\n\tif (!Array.isArray(value)) {\n\t\treturn [];\n\t}\n\n\treturn value\n\t\t.filter((candidate) => typeof candidate === 'string')\n\t\t.map((candidate) => candidate.trim())\n\t\t.filter((candidate) => candidate.length > 0);\n};\n\nconst normalizeLabelFilter = (value?: string) => {\n\tif (typeof value !== 'string') {\n\t\treturn undefined;\n\t}\n\n\tconst normalized = value.trim().toLowerCase();\n\treturn normalized.length > 0 ? normalized : undefined;\n};\n\nconst normalizeRetrievalBaselineRecords = (\n\trecords: RAGRetrievalBaselineRecord[]\n) => [...records].sort((left, right) => right.promotedAt - left.promotedAt);\n\nconst normalizeRetrievalReleaseDecisionRecords = (\n\trecords: RAGRetrievalReleaseDecisionRecord[]\n) => [...records].sort((left, right) => right.decidedAt - left.decidedAt);\n\nconst normalizeRetrievalLaneHandoffDecisionRecords = (\n\trecords: RAGRetrievalLaneHandoffDecisionRecord[]\n) => [...records].sort((left, right) => right.decidedAt - left.decidedAt);\n\nconst normalizeRetrievalReleaseIncidentRecords = (\n\trecords: RAGRetrievalReleaseIncidentRecord[]\n) => [...records].sort((left, right) => right.triggeredAt - left.triggeredAt);\n\nconst normalizeRetrievalIncidentRemediationDecisionRecords = (\n\trecords: RAGRetrievalIncidentRemediationDecisionRecord[]\n) => [...records].sort((left, right) => right.decidedAt - left.decidedAt);\n\nconst normalizeRetrievalIncidentRemediationExecutionHistoryRecords = (\n\trecords: RAGRetrievalIncidentRemediationExecutionHistoryRecord[]\n) => [...records].sort((left, right) => right.executedAt - left.executedAt);\n\nconst matchesWinner = (run: RAGRetrievalComparisonRun, winnerId?: string) => {\n\tif (!winnerId) {\n\t\treturn true;\n\t}\n\n\treturn (\n\t\trun.comparison.summary.bestByPassingRate === winnerId ||\n\t\trun.decisionSummary?.winnerByPassingRate === winnerId\n\t);\n};\n\nconst findRetrievalComparisonEntry = (\n\tcomparison: RAGRetrievalComparison,\n\tretrievalId?: string\n) => {\n\tif (!retrievalId) {\n\t\treturn undefined;\n\t}\n\n\treturn comparison.entries.find(\n\t\t(entry) => entry.retrievalId === retrievalId\n\t);\n};\n\nconst evaluateRetrievalComparisonGate = ({\n\tdelta,\n\tpolicy\n}: {\n\tdelta?: {\n\t\tpassingRateDelta: number;\n\t\taverageF1Delta: number;\n\t\telapsedMsDelta: number;\n\t};\n\tpolicy?: RAGRetrievalBaselineGatePolicy;\n}): RAGRetrievalComparisonGateResult | undefined => {\n\tif (!delta || !policy) {\n\t\treturn undefined;\n\t}\n\n\tconst reasons: string[] = [];\n\tif (\n\t\ttypeof policy.minPassingRateDelta === 'number' &&\n\t\tdelta.passingRateDelta < policy.minPassingRateDelta\n\t) {\n\t\treasons.push(\n\t\t\t`passing rate delta ${delta.passingRateDelta} is below ${policy.minPassingRateDelta}`\n\t\t);\n\t}\n\tif (\n\t\ttypeof policy.minAverageF1Delta === 'number' &&\n\t\tdelta.averageF1Delta < policy.minAverageF1Delta\n\t) {\n\t\treasons.push(\n\t\t\t`average F1 delta ${delta.averageF1Delta} is below ${policy.minAverageF1Delta}`\n\t\t);\n\t}\n\tif (\n\t\ttypeof policy.maxElapsedMsDelta === 'number' &&\n\t\tdelta.elapsedMsDelta > policy.maxElapsedMsDelta\n\t) {\n\t\treasons.push(\n\t\t\t`elapsed ms delta ${delta.elapsedMsDelta} exceeds ${policy.maxElapsedMsDelta}`\n\t\t);\n\t}\n\n\tif (reasons.length === 0) {\n\t\treturn {\n\t\t\tpolicy,\n\t\t\treasons: [],\n\t\t\tstatus: 'pass'\n\t\t};\n\t}\n\n\treturn {\n\t\tpolicy,\n\t\treasons,\n\t\tstatus: policy.severity === 'warn' ? 'warn' : 'fail'\n\t};\n};\n\nexport const buildRAGRetrievalReleaseVerdict = ({\n\tgroupKey,\n\tdecisionSummary\n}: {\n\tgroupKey?: string;\n\tdecisionSummary?: RAGRetrievalComparisonDecisionSummary;\n}): RAGRetrievalReleaseVerdict | undefined => {\n\tif (!decisionSummary) {\n\t\treturn undefined;\n\t}\n\n\tconst gate = decisionSummary.gate;\n\tconst delta = decisionSummary.delta;\n\tconst baselineRetrievalId = decisionSummary.baselineRetrievalId;\n\tconst candidateRetrievalId = decisionSummary.candidateRetrievalId;\n\n\tif (gate) {\n\t\tif (gate.status === 'pass') {\n\t\t\treturn {\n\t\t\t\tbaselineGroupKey: groupKey,\n\t\t\t\tbaselineRetrievalId,\n\t\t\t\tcandidateRetrievalId,\n\t\t\t\tdelta,\n\t\t\t\tgate,\n\t\t\t\tstatus: 'pass',\n\t\t\t\tsummary: 'Candidate passed the active baseline gate.'\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tbaselineGroupKey: groupKey,\n\t\t\tbaselineRetrievalId,\n\t\t\tcandidateRetrievalId,\n\t\t\tdelta,\n\t\t\tgate,\n\t\t\tstatus: gate.status,\n\t\t\tsummary:\n\t\t\t\tgate.status === 'warn'\n\t\t\t\t\t? 'Candidate triggered a baseline gate warning.'\n\t\t\t\t\t: 'Candidate failed the active baseline gate.'\n\t\t};\n\t}\n\n\tif (delta) {\n\t\treturn {\n\t\t\tbaselineGroupKey: groupKey,\n\t\t\tbaselineRetrievalId,\n\t\t\tcandidateRetrievalId,\n\t\t\tdelta,\n\t\t\tstatus:\n\t\t\t\tdelta.passingRateDelta < 0 || delta.averageF1Delta < 0\n\t\t\t\t\t? 'needs_review'\n\t\t\t\t\t: 'pass',\n\t\t\tsummary:\n\t\t\t\tdelta.passingRateDelta < 0 || delta.averageF1Delta < 0\n\t\t\t\t\t? 'Candidate should be reviewed before promotion.'\n\t\t\t\t\t: 'Candidate improved or matched the baseline.'\n\t\t};\n\t}\n\n\treturn {\n\t\tbaselineGroupKey: groupKey,\n\t\tbaselineRetrievalId,\n\t\tcandidateRetrievalId,\n\t\tstatus: 'needs_review',\n\t\tsummary: 'No explicit baseline verdict could be determined.'\n\t};\n};\n\nconst isObjectRecord = (value: unknown): value is Record<string, unknown> =>\n\tBoolean(value) && typeof value === 'object';\n\nconst parseJSONRecord = (value: string | null) => {\n\tif (value === null) {\n\t\treturn undefined;\n\t}\n\n\ttry {\n\t\tconst parsed = JSON.parse(value);\n\n\t\treturn isObjectRecord(parsed) ? parsed : undefined;\n\t} catch {\n\t\treturn undefined;\n\t}\n};\n\nconst parseJSONArray = <T>(value: string | null, fallback: T[]): T[] => {\n\tif (value === null) {\n\t\treturn fallback;\n\t}\n\n\ttry {\n\t\tconst parsed = JSON.parse(value);\n\n\t\treturn Array.isArray(parsed) ? (parsed as T[]) : fallback;\n\t} catch {\n\t\treturn fallback;\n\t}\n};\n\nconst normalizeExpectedIds = (input: string[]) =>\n\tArray.from(new Set(input.map((item) => item.trim()).filter(Boolean)));\n\nconst resolveEvaluationMode = (caseInput: {\n\texpectedChunkIds?: string[];\n\texpectedSources?: string[];\n\texpectedDocumentIds?: string[];\n}): 'chunkId' | 'source' | 'documentId' => {\n\tif (normalizeStringArray(caseInput.expectedChunkIds).length > 0) {\n\t\treturn 'chunkId';\n\t}\n\tif (normalizeStringArray(caseInput.expectedSources).length > 0) {\n\t\treturn 'source';\n\t}\n\n\treturn 'documentId';\n};\n\nconst getDocumentId = (source: RAGSource): string => {\n\tconst metadataDocumentId =\n\t\ttypeof source.metadata?.documentId === 'string'\n\t\t\t? source.metadata.documentId\n\t\t\t: undefined;\n\tif (metadataDocumentId) {\n\t\treturn metadataDocumentId;\n\t}\n\tif (source.source) {\n\t\treturn source.source;\n\t}\n\n\tconst [documentId] = source.chunkId.split(':');\n\n\treturn documentId ?? source.chunkId;\n};\n\nconst extractExpectedId = (\n\tsource: RAGSource,\n\tmode: 'chunkId' | 'source' | 'documentId'\n): string =>\n\tmode === 'chunkId'\n\t\t? source.chunkId\n\t\t: mode === 'source'\n\t\t\t? (source.source ?? source.title ?? source.chunkId)\n\t\t\t: getDocumentId(source);\n\nconst buildSources = (\n\tresults: Array<{\n\t\tchunkId: string;\n\t\tchunkText: string;\n\t\tscore: number;\n\t\ttitle?: string;\n\t\tsource?: string;\n\t\tmetadata?: Record<string, unknown>;\n\t}>\n) =>\n\tresults.map((result) => ({\n\t\tchunkId: result.chunkId,\n\t\tmetadata: result.metadata,\n\t\tscore: Number.isFinite(result.score) ? result.score : 0,\n\t\tsource: result.source,\n\t\ttext: result.chunkText,\n\t\ttitle: result.title\n\t}));\n\nconst buildAnswerGroundingStatus = ({\n\tcoverage,\n\texpectedCount,\n\tmatchedCount,\n\tunresolvedCitationCount,\n\tresolvedCitationCount\n}: {\n\tcoverage: RAGAnswerGroundingEvaluationCaseResult['coverage'];\n\texpectedCount: number;\n\tmatchedCount: number;\n\tunresolvedCitationCount: number;\n\tresolvedCitationCount: number;\n}): RAGAnswerGroundingEvaluationCaseResult['status'] => {\n\tif (expectedCount > 0) {\n\t\tif (\n\t\t\tmatchedCount === expectedCount &&\n\t\t\tunresolvedCitationCount === 0 &&\n\t\t\tcoverage !== 'ungrounded'\n\t\t) {\n\t\t\treturn 'pass';\n\t\t}\n\n\t\tif (matchedCount > 0 || resolvedCitationCount > 0) {\n\t\t\treturn 'partial';\n\t\t}\n\n\t\treturn 'fail';\n\t}\n\n\tif (coverage === 'grounded' && unresolvedCitationCount === 0) {\n\t\treturn 'pass';\n\t}\n\n\tif (resolvedCitationCount > 0 || coverage === 'partial') {\n\t\treturn 'partial';\n\t}\n\n\treturn 'fail';\n};\n\nexport const buildRAGEvaluationLeaderboard = (\n\truns: RAGEvaluationSuiteRun[]\n) => {\n\tconst sorted = [...runs].sort((left, right) => {\n\t\tif (right.response.passingRate !== left.response.passingRate) {\n\t\t\treturn right.response.passingRate - left.response.passingRate;\n\t\t}\n\t\tif (\n\t\t\tright.response.summary.averageF1 !== left.response.summary.averageF1\n\t\t) {\n\t\t\treturn (\n\t\t\t\tright.response.summary.averageF1 -\n\t\t\t\tleft.response.summary.averageF1\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\tleft.response.summary.averageLatencyMs -\n\t\t\tright.response.summary.averageLatencyMs\n\t\t);\n\t});\n\n\treturn sorted.map<RAGEvaluationLeaderboardEntry>((run, index) => ({\n\t\taverageF1: run.response.summary.averageF1,\n\t\taverageLatencyMs: run.response.summary.averageLatencyMs,\n\t\tlabel: run.label,\n\t\tpassingRate: run.response.passingRate,\n\t\trank: index + 1,\n\t\trunId: run.id,\n\t\tsuiteId: run.suiteId,\n\t\ttotalCases: run.response.totalCases\n\t}));\n};\n\nexport const buildRAGAnswerGroundingEvaluationLeaderboard = (\n\truns: RAGAnswerGroundingEvaluationRun[]\n) => {\n\tconst sorted = [...runs].sort((left, right) => {\n\t\tif (right.response.passingRate !== left.response.passingRate) {\n\t\t\treturn right.response.passingRate - left.response.passingRate;\n\t\t}\n\t\tif (\n\t\t\tright.response.summary.averageCitationF1 !==\n\t\t\tleft.response.summary.averageCitationF1\n\t\t) {\n\t\t\treturn (\n\t\t\t\tright.response.summary.averageCitationF1 -\n\t\t\t\tleft.response.summary.averageCitationF1\n\t\t\t);\n\t\t}\n\t\tif (\n\t\t\tright.response.summary.averageResolvedCitationRate !==\n\t\t\tleft.response.summary.averageResolvedCitationRate\n\t\t) {\n\t\t\treturn (\n\t\t\t\tright.response.summary.averageResolvedCitationRate -\n\t\t\t\tleft.response.summary.averageResolvedCitationRate\n\t\t\t);\n\t\t}\n\n\t\treturn left.elapsedMs - right.elapsedMs;\n\t});\n\n\treturn sorted.map<RAGAnswerGroundingEvaluationLeaderboardEntry>(\n\t\t(run, index) => ({\n\t\t\taverageCitationF1: run.response.summary.averageCitationF1,\n\t\t\taverageResolvedCitationRate:\n\t\t\t\trun.response.summary.averageResolvedCitationRate,\n\t\t\tlabel: run.label,\n\t\t\tpassingRate: run.response.passingRate,\n\t\t\trank: index + 1,\n\t\t\trunId: run.id,\n\t\t\tsuiteId: run.suiteId,\n\t\t\ttotalCases: run.response.totalCases\n\t\t})\n\t);\n};\n\nconst buildTraceStageCounts = (traces: RAGRetrievalTrace[]) => {\n\tconst counts: Partial<\n\t\tRecord<RAGRetrievalTrace['steps'][number]['stage'], number>\n\t> = {};\n\n\tfor (const trace of traces) {\n\t\tfor (const step of trace.steps) {\n\t\t\tcounts[step.stage] = (counts[step.stage] ?? 0) + 1;\n\t\t}\n\t}\n\n\treturn counts;\n};\n\nconst diffTraceStageCounts = ({\n\tcurrent,\n\tprevious\n}: {\n\tcurrent: Partial<\n\t\tRecord<RAGRetrievalTrace['steps'][number]['stage'], number>\n\t>;\n\tprevious: Partial<\n\t\tRecord<RAGRetrievalTrace['steps'][number]['stage'], number>\n\t>;\n}) => {\n\tconst next: Partial<\n\t\tRecord<RAGRetrievalTrace['steps'][number]['stage'], number>\n\t> = {};\n\tconst stages = new Set([\n\t\t...Object.keys(current),\n\t\t...Object.keys(previous)\n\t] as RAGRetrievalTrace['steps'][number]['stage'][]);\n\n\tfor (const stage of stages) {\n\t\tconst delta = (current[stage] ?? 0) - (previous[stage] ?? 0);\n\t\tif (delta !== 0) {\n\t\t\tnext[stage] = delta;\n\t\t}\n\t}\n\n\treturn next;\n};\n\nconst normalizeSummaryList = <T extends string>(values: T[]) =>\n\tArray.from(new Set(values)).sort();\n\nconst buildSummaryListDelta = <T extends string>(\n\tcurrent: T[],\n\tprevious: T[]\n) => {\n\tconst currentSet = new Set(current);\n\tconst previousSet = new Set(previous);\n\tconst added = current.filter((value) => !previousSet.has(value));\n\tconst removed = previous.filter((value) => !currentSet.has(value));\n\n\treturn {\n\t\tadded: normalizeSummaryList(Array.from(new Set(added))),\n\t\tcurrent: normalizeSummaryList(current),\n\t\tprevious: normalizeSummaryList(previous),\n\t\tremoved: normalizeSummaryList(Array.from(new Set(removed)))\n\t};\n};\n\nfunction summarizeListTurnover<T extends string>(params: {\n\tcurrent: T[];\n\tprevious: T[];\n\thistory: T[][];\n}): RAGTraceSummaryListTrend<T> {\n\tconst { current, previous, history } = params;\n\tconst currentSet = new Set(current);\n\tconst previousSet = new Set(previous);\n\tconst frequency: Record<string, number> = {};\n\n\tfor (const entry of history) {\n\t\tfor (const value of entry) {\n\t\t\tfrequency[value] = (frequency[value] ?? 0) + 1;\n\t\t}\n\t}\n\n\treturn {\n\t\tappeared: normalizeSummaryList(\n\t\t\tArray.from(\n\t\t\t\tnew Set(current.filter((value) => !previousSet.has(value)))\n\t\t\t)\n\t\t),\n\t\tcurrent: normalizeSummaryList(current),\n\t\tdisappeared: normalizeSummaryList(\n\t\t\tArray.from(\n\t\t\t\tnew Set(previous.filter((value) => !currentSet.has(value)))\n\t\t\t)\n\t\t),\n\t\tfrequency,\n\t\tprevious: normalizeSummaryList(previous),\n\t\tstable: normalizeSummaryList(\n\t\t\tArray.from(\n\t\t\t\tnew Set(current.filter((value) => previousSet.has(value)))\n\t\t\t)\n\t\t)\n\t};\n}\n\nconst diffTraceSummaryStageCounts = ({\n\tcurrent,\n\tprevious\n}: {\n\tcurrent: RAGRetrievalTraceComparisonSummary['stageCounts'];\n\tprevious: RAGRetrievalTraceComparisonSummary['stageCounts'];\n}) => {\n\tconst stages = new Set([\n\t\t...Object.keys(current),\n\t\t...Object.keys(previous)\n\t]) as Set<RAGRetrievalTraceStep['stage']>;\n\tconst next: Partial<\n\t\tRecord<RAGRetrievalTraceStage, RAGTraceSummaryStageCountsDelta>\n\t> = {};\n\n\tfor (const stage of stages) {\n\t\tconst currentCount = current[stage] ?? 0;\n\t\tconst previousCount = previous[stage] ?? 0;\n\t\tconst delta = currentCount - previousCount;\n\t\tif (delta !== 0 || currentCount !== 0 || previousCount !== 0) {\n\t\t\tnext[stage] = {\n\t\t\t\tcurrent: currentCount,\n\t\t\t\tdelta,\n\t\t\t\tprevious: previousCount\n\t\t\t};\n\t\t}\n\t}\n\n\treturn next;\n};\n\nconst roundTraceAverage = (value: number, total: number) =>\n\ttotal > 0 ? Number((value / total).toFixed(2)) : 0;\n\nconst buildTraceSummaryDirection = (\n\tdelta: number\n): RAGTraceSummaryTrendDirection =>\n\tdelta > 0 ? 'up' : delta < 0 ? 'down' : 'flat';\n\nconst buildTraceSummaryAggregate = ({\n\tsummaries\n}: {\n\tsummaries: RAGRetrievalTraceComparisonSummary[];\n}): {\n\taggregate: RAGTraceSummaryNumericDelta[];\n\tbestMetric: RAGTraceSummaryNumericDelta | undefined;\n\tworstMetric: RAGTraceSummaryNumericDelta | undefined;\n} => {\n\tif (summaries.length === 0) {\n\t\tconst aggregate: RAGTraceSummaryNumericDelta[] = [\n\t\t\t{\n\t\t\t\tcurrent: 0,\n\t\t\t\tdelta: 0,\n\t\t\t\tdirection: 'flat',\n\t\t\t\tmetric: 'totalCases',\n\t\t\t\tprevious: 0\n\t\t\t},\n\t\t\t{\n\t\t\t\tcurrent: 0,\n\t\t\t\tdelta: 0,\n\t\t\t\tdirection: 'flat',\n\t\t\t\tmetric: 'averageFinalCount',\n\t\t\t\tprevious: 0\n\t\t\t},\n\t\t\t{\n\t\t\t\tcurrent: 0,\n\t\t\t\tdelta: 0,\n\t\t\t\tdirection: 'flat',\n\t\t\t\tmetric: 'averageVectorCount',\n\t\t\t\tprevious: 0\n\t\t\t},\n\t\t\t{\n\t\t\t\tcurrent: 0,\n\t\t\t\tdelta: 0,\n\t\t\t\tdirection: 'flat',\n\t\t\t\tmetric: 'averageLexicalCount',\n\t\t\t\tprevious: 0\n\t\t\t},\n\t\t\t{\n\t\t\t\tcurrent: 0,\n\t\t\t\tdelta: 0,\n\t\t\t\tdirection: 'flat',\n\t\t\t\tmetric: 'averageCandidateTopK',\n\t\t\t\tprevious: 0\n\t\t\t},\n\t\t\t{\n\t\t\t\tcurrent: 0,\n\t\t\t\tdelta: 0,\n\t\t\t\tdirection: 'flat',\n\t\t\t\tmetric: 'averageLexicalTopK',\n\t\t\t\tprevious: 0\n\t\t\t},\n\t\t\t{\n\t\t\t\tcurrent: 0,\n\t\t\t\tdelta: 0,\n\t\t\t\tdirection: 'flat',\n\t\t\t\tmetric: 'vectorCases',\n\t\t\t\tprevious: 0\n\t\t\t},\n\t\t\t{\n\t\t\t\tcurrent: 0,\n\t\t\t\tdelta: 0,\n\t\t\t\tdirection: 'flat',\n\t\t\t\tmetric: 'lexicalCases',\n\t\t\t\tprevious: 0\n\t\t\t},\n\t\t\t{\n\t\t\t\tcurrent: 0,\n\t\t\t\tdelta: 0,\n\t\t\t\tdirection: 'flat',\n\t\t\t\tmetric: 'balancedCases',\n\t\t\t\tprevious: 0\n\t\t\t},\n\t\t\t{\n\t\t\t\tcurrent: 0,\n\t\t\t\tdelta: 0,\n\t\t\t\tdirection: 'flat',\n\t\t\t\tmetric: 'roundRobinCases',\n\t\t\t\tprevious: 0\n\t\t\t},\n\t\t\t{\n\t\t\t\tcurrent: 0,\n\t\t\t\tdelta: 0,\n\t\t\t\tdirection: 'flat',\n\t\t\t\tmetric: 'transformedCases',\n\t\t\t\tprevious: 0\n\t\t\t},\n\t\t\t{\n\t\t\t\tcurrent: 0,\n\t\t\t\tdelta: 0,\n\t\t\t\tdirection: 'flat',\n\t\t\t\tmetric: 'variantCases',\n\t\t\t\tprevious: 0\n\t\t\t}\n\t\t];\n\n\t\treturn {\n\t\t\taggregate,\n\t\t\tbestMetric: undefined,\n\t\t\tworstMetric: undefined\n\t\t};\n\t}\n\n\tconst latest = summaries[0]!;\n\tconst previous = summaries[summaries.length - 1]!;\n\tconst aggregate: RAGTraceSummaryNumericDelta[] = [\n\t\t{\n\t\t\tcurrent: latest.totalCases,\n\t\t\tdelta: latest.totalCases - previous.totalCases,\n\t\t\tdirection: buildTraceSummaryDirection(\n\t\t\t\tlatest.totalCases - previous.totalCases\n\t\t\t),\n\t\t\tmetric: 'totalCases',\n\t\t\tprevious: previous.totalCases\n\t\t},\n\t\t{\n\t\t\tcurrent: latest.averageFinalCount,\n\t\t\tdelta: latest.averageFinalCount - previous.averageFinalCount,\n\t\t\tdirection: buildTraceSummaryDirection(\n\t\t\t\tlatest.averageFinalCount - previous.averageFinalCount\n\t\t\t),\n\t\t\tmetric: 'averageFinalCount',\n\t\t\tprevious: previous.averageFinalCount\n\t\t},\n\t\t{\n\t\t\tcurrent: latest.averageVectorCount,\n\t\t\tdelta: latest.averageVectorCount - previous.averageVectorCount,\n\t\t\tdirection: buildTraceSummaryDirection(\n\t\t\t\tlatest.averageVectorCount - previous.averageVectorCount\n\t\t\t),\n\t\t\tmetric: 'averageVectorCount',\n\t\t\tprevious: previous.averageVectorCount\n\t\t},\n\t\t{\n\t\t\tcurrent: latest.averageLexicalCount,\n\t\t\tdelta: latest.averageLexicalCount - previous.averageLexicalCount,\n\t\t\tdirection: buildTraceSummaryDirection(\n\t\t\t\tlatest.averageLexicalCount - previous.averageLexicalCount\n\t\t\t),\n\t\t\tmetric: 'averageLexicalCount',\n\t\t\tprevious: previous.averageLexicalCount\n\t\t},\n\t\t{\n\t\t\tcurrent: latest.averageCandidateTopK,\n\t\t\tdelta: latest.averageCandidateTopK - previous.averageCandidateTopK,\n\t\t\tdirection: buildTraceSummaryDirection(\n\t\t\t\tlatest.averageCandidateTopK - previous.averageCandidateTopK\n\t\t\t),\n\t\t\tmetric: 'averageCandidateTopK',\n\t\t\tprevious: previous.averageCandidateTopK\n\t\t},\n\t\t{\n\t\t\tcurrent: latest.averageLexicalTopK,\n\t\t\tdelta: latest.averageLexicalTopK - previous.averageLexicalTopK,\n\t\t\tdirection: buildTraceSummaryDirection(\n\t\t\t\tlatest.averageLexicalTopK - previous.averageLexicalTopK\n\t\t\t),\n\t\t\tmetric: 'averageLexicalTopK',\n\t\t\tprevious: previous.averageLexicalTopK\n\t\t},\n\t\t{\n\t\t\tcurrent: latest.vectorCases,\n\t\t\tdelta: latest.vectorCases - previous.vectorCases,\n\t\t\tdirection: buildTraceSummaryDirection(\n\t\t\t\tlatest.vectorCases - previous.vectorCases\n\t\t\t),\n\t\t\tmetric: 'vectorCases',\n\t\t\tprevious: previous.vectorCases\n\t\t},\n\t\t{\n\t\t\tcurrent: latest.lexicalCases,\n\t\t\tdelta: latest.lexicalCases - previous.lexicalCases,\n\t\t\tdirection: buildTraceSummaryDirection(\n\t\t\t\tlatest.lexicalCases - previous.lexicalCases\n\t\t\t),\n\t\t\tmetric: 'lexicalCases',\n\t\t\tprevious: previous.lexicalCases\n\t\t},\n\t\t{\n\t\t\tcurrent: latest.balancedCases,\n\t\t\tdelta: latest.balancedCases - previous.balancedCases,\n\t\t\tdirection: buildTraceSummaryDirection(\n\t\t\t\tlatest.balancedCases - previous.balancedCases\n\t\t\t),\n\t\t\tmetric: 'balancedCases',\n\t\t\tprevious: previous.balancedCases\n\t\t},\n\t\t{\n\t\t\tcurrent: latest.roundRobinCases,\n\t\t\tdelta: latest.roundRobinCases - previous.roundRobinCases,\n\t\t\tdirection: buildTraceSummaryDirection(\n\t\t\t\tlatest.roundRobinCases - previous.roundRobinCases\n\t\t\t),\n\t\t\tmetric: 'roundRobinCases',\n\t\t\tprevious: previous.roundRobinCases\n\t\t},\n\t\t{\n\t\t\tcurrent: latest.transformedCases,\n\t\t\tdelta: latest.transformedCases - previous.transformedCases,\n\t\t\tdirection: buildTraceSummaryDirection(\n\t\t\t\tlatest.transformedCases - previous.transformedCases\n\t\t\t),\n\t\t\tmetric: 'transformedCases',\n\t\t\tprevious: previous.transformedCases\n\t\t},\n\t\t{\n\t\t\tcurrent: latest.variantCases,\n\t\t\tdelta: latest.variantCases - previous.variantCases,\n\t\t\tdirection: buildTraceSummaryDirection(\n\t\t\t\tlatest.variantCases - previous.variantCases\n\t\t\t),\n\t\t\tmetric: 'variantCases',\n\t\t\tprevious: previous.variantCases\n\t\t}\n\t];\n\tconst absoluteSorted = [...aggregate].sort(\n\t\t(left, right) =>\n\t\t\tMath.abs(right.delta) - Math.abs(left.delta) ||\n\t\t\tleft.metric.localeCompare(right.metric)\n\t);\n\n\treturn {\n\t\taggregate,\n\t\tbestMetric: absoluteSorted[0],\n\t\tworstMetric: absoluteSorted[absoluteSorted.length - 1]\n\t};\n};\n\nconst buildRAGRetrievalTraceStageChurn = ({\n\twindows\n}: {\n\twindows: RAGRetrievalTraceHistoryWindow[];\n}): RAGTraceSummaryStageTrend[] => {\n\tconst stages = new Set<RAGRetrievalTraceStep['stage']>();\n\tfor (const window of windows) {\n\t\tfor (const stage of Object.keys(window.current.stageCounts) as Array<\n\t\t\tRAGRetrievalTraceStep['stage']\n\t\t>) {\n\t\t\tstages.add(stage);\n\t\t}\n\t\tfor (const stage of Object.keys(window.previous.stageCounts) as Array<\n\t\t\tRAGRetrievalTraceStep['stage']\n\t\t>) {\n\t\t\tstages.add(stage);\n\t\t}\n\t}\n\n\treturn [...stages]\n\t\t.map((stage) => {\n\t\t\tlet netDelta = 0;\n\t\t\tlet totalChanges = 0;\n\t\t\tfor (const window of windows) {\n\t\t\t\tconst delta = window.delta?.stageCountsDelta[stage]?.delta ?? 0;\n\t\t\t\tnetDelta += delta;\n\t\t\t\ttotalChanges += Math.abs(delta);\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tlatestDelta:\n\t\t\t\t\twindows[0]?.delta?.stageCountsDelta[stage]?.delta ?? 0,\n\t\t\t\tnetDelta,\n\t\t\t\tstage,\n\t\t\t\ttotalChanges\n\t\t\t};\n\t\t})\n\t\t.sort(\n\t\t\t(left, right) =>\n\t\t\t\tright.totalChanges - left.totalChanges ||\n\t\t\t\tleft.stage.localeCompare(right.stage)\n\t\t);\n};\n\nconst summarizeRetrievalTraces = (\n\ttraces: RAGRetrievalTrace[]\n): RAGRetrievalTraceComparisonSummary | undefined => {\n\tif (traces.length === 0) {\n\t\treturn undefined;\n\t}\n\n\tconst totalCases = traces.length;\n\tconst modeSet = new Set<RAGHybridRetrievalMode>();\n\tconst sourceBalanceStrategySet = new Set<RAGSourceBalanceStrategy>();\n\tlet vectorCases = 0;\n\tlet lexicalCases = 0;\n\tlet balancedCases = 0;\n\tlet roundRobinCases = 0;\n\tlet transformedCases = 0;\n\tlet variantCases = 0;\n\tlet finalCountSum = 0;\n\tlet vectorCountSum = 0;\n\tlet lexicalCountSum = 0;\n\tlet candidateTopKSum = 0;\n\tlet lexicalTopKSum = 0;\n\n\tfor (const trace of traces) {\n\t\tmodeSet.add(trace.mode);\n\t\tsourceBalanceStrategySet.add(trace.sourceBalanceStrategy ?? 'cap');\n\t\tif (trace.runVector) {\n\t\t\tvectorCases += 1;\n\t\t}\n\t\tif (trace.runLexical) {\n\t\t\tlexicalCases += 1;\n\t\t}\n\t\tif (typeof trace.maxResultsPerSource === 'number') {\n\t\t\tbalancedCases += 1;\n\t\t\tif (trace.sourceBalanceStrategy === 'round_robin') {\n\t\t\t\troundRobinCases += 1;\n\t\t\t}\n\t\t}\n\t\tif (trace.transformedQuery !== trace.query) {\n\t\t\ttransformedCases += 1;\n\t\t}\n\t\tif (trace.variantQueries.length > 0) {\n\t\t\tvariantCases += 1;\n\t\t}\n\t\tfinalCountSum += trace.resultCounts.final;\n\t\tvectorCountSum += trace.resultCounts.vector;\n\t\tlexicalCountSum += trace.resultCounts.lexical;\n\t\tcandidateTopKSum += trace.candidateTopK;\n\t\tlexicalTopKSum += trace.lexicalTopK;\n\t}\n\n\treturn {\n\t\taverageCandidateTopK: roundTraceAverage(candidateTopKSum, totalCases),\n\t\taverageFinalCount: roundTraceAverage(finalCountSum, totalCases),\n\t\taverageLexicalCount: roundTraceAverage(lexicalCountSum, totalCases),\n\t\taverageLexicalTopK: roundTraceAverage(lexicalTopKSum, totalCases),\n\t\tbalancedCases,\n\t\taverageVectorCount: roundTraceAverage(vectorCountSum, totalCases),\n\t\tlexicalCases,\n\t\tmodes: Array.from(modeSet),\n\t\troundRobinCases,\n\t\tsourceBalanceStrategies: Array.from(sourceBalanceStrategySet),\n\t\tstageCounts: buildTraceStageCounts(traces),\n\t\ttotalCases,\n\t\ttransformedCases,\n\t\tvariantCases,\n\t\tvectorCases\n\t};\n};\n\nconst evaluateRAGCollectionCases = async ({\n\tcollection,\n\tinput,\n\tdefaultTopK = DEFAULT_TOP_K,\n\trerank,\n\tincludeTrace = false\n}: {\n\tcollection: RAGCollection;\n\tinput: RAGEvaluationInput;\n\tdefaultTopK?: number;\n\trerank?: RAGRerankerProviderLike;\n\tincludeTrace?: boolean;\n}): Promise<\n\tArray<{\n\t\tcaseResult: RAGEvaluationCaseResult;\n\t\ttrace?: RAGRetrievalTrace;\n\t\tfilter?: Record<string, unknown>;\n\t\tretrieval?: RAGCollectionSearchParams['retrieval'];\n\t}>\n> => {\n\tif (input.dryRun) {\n\t\treturn executeDryRunRAGEvaluation(input, defaultTopK).map(\n\t\t\t(caseResult, caseIndex) => ({\n\t\t\t\tcaseResult,\n\t\t\t\tfilter:\n\t\t\t\t\ttypeof input.cases?.[caseIndex]?.filter === 'object'\n\t\t\t\t\t\t? input.cases[caseIndex]?.filter\n\t\t\t\t\t\t: input.filter,\n\t\t\t\tretrieval:\n\t\t\t\t\tinput.cases?.[caseIndex]?.retrieval ?? input.retrieval,\n\t\t\t\ttrace: undefined\n\t\t\t})\n\t\t);\n\t}\n\n\treturn Promise.all(\n\t\tinput.cases.map(async (caseInput, caseIndex) => {\n\t\t\tconst startedAt = Date.now();\n\t\t\tconst mode = resolveEvaluationMode(caseInput);\n\t\t\tconst query = caseInput.query.trim();\n\t\t\tconst expectedIds = normalizeExpectedIds(\n\t\t\t\tmode === 'chunkId'\n\t\t\t\t\t? (caseInput.expectedChunkIds ?? [])\n\t\t\t\t\t: mode === 'source'\n\t\t\t\t\t\t? (caseInput.expectedSources ?? [])\n\t\t\t\t\t\t: (caseInput.expectedDocumentIds ?? [])\n\t\t\t);\n\t\t\tconst topK =\n\t\t\t\ttypeof caseInput.topK === 'number'\n\t\t\t\t\t? caseInput.topK\n\t\t\t\t\t: typeof input.topK === 'number'\n\t\t\t\t\t\t? input.topK\n\t\t\t\t\t\t: defaultTopK;\n\t\t\tconst searchInput = {\n\t\t\t\tfilter:\n\t\t\t\t\ttypeof caseInput.filter === 'object'\n\t\t\t\t\t\t? caseInput.filter\n\t\t\t\t\t\t: input.filter,\n\t\t\t\tmodel: caseInput.model ?? input.model,\n\t\t\t\tquery,\n\t\t\t\trerank,\n\t\t\t\tscoreThreshold:\n\t\t\t\t\ttypeof caseInput.scoreThreshold === 'number'\n\t\t\t\t\t\t? caseInput.scoreThreshold\n\t\t\t\t\t\t: input.scoreThreshold,\n\t\t\t\tretrieval: caseInput.retrieval ?? input.retrieval,\n\t\t\t\ttopK\n\t\t\t};\n\t\t\tconst searchOutcome = includeTrace\n\t\t\t\t? await collection.searchWithTrace(searchInput)\n\t\t\t\t: {\n\t\t\t\t\t\tresults: await collection.search(searchInput),\n\t\t\t\t\t\ttrace: undefined\n\t\t\t\t\t};\n\t\t\tconst sources = buildSources(searchOutcome.results);\n\t\t\tconst elapsedMs = Date.now() - startedAt;\n\t\t\tconst retrievedIds = normalizeExpectedIds(\n\t\t\t\tsources.map((source) => extractExpectedId(source, mode))\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tcaseResult: summarizeRAGEvaluationCase({\n\t\t\t\t\tcaseIndex,\n\t\t\t\t\tcaseInput: { ...caseInput, topK },\n\t\t\t\t\telapsedMs,\n\t\t\t\t\texpectedIds,\n\t\t\t\t\tmode,\n\t\t\t\t\tquery,\n\t\t\t\t\tretrievedIds\n\t\t\t\t}),\n\t\t\t\ttrace: searchOutcome.trace,\n\t\t\t\tfilter: searchInput.filter,\n\t\t\t\tretrieval: searchInput.retrieval\n\t\t\t};\n\t\t})\n\t);\n};\n\nexport const buildRAGAnswerGroundingCaseDifficultyLeaderboard = (\n\tentries: Array<{\n\t\tlabel: string;\n\t\tresponse: RAGAnswerGroundingEvaluationResponse;\n\t}>\n) => {\n\tconst grouped = new Map<\n\t\tstring,\n\t\t{\n\t\t\tcaseId: string;\n\t\t\tlabel?: string;\n\t\t\tquery?: string;\n\t\t\tpassCount: number;\n\t\t\tpartialCount: number;\n\t\t\tfailCount: number;\n\t\t\tgroundedCount: number;\n\t\t\ttotalEvaluations: number;\n\t\t\ttotalCitationF1: number;\n\t\t\ttotalResolvedCitationRate: number;\n\t\t}\n\t>();\n\n\tfor (const entry of entries) {\n\t\tfor (const result of entry.response.cases) {\n\t\t\tconst current = grouped.get(result.caseId) ?? {\n\t\t\t\tcaseId: result.caseId,\n\t\t\t\tfailCount: 0,\n\t\t\t\tgroundedCount: 0,\n\t\t\t\tlabel: result.label,\n\t\t\t\tpassCount: 0,\n\t\t\t\tpartialCount: 0,\n\t\t\t\tquery: result.query,\n\t\t\t\ttotalCitationF1: 0,\n\t\t\t\ttotalEvaluations: 0,\n\t\t\t\ttotalResolvedCitationRate: 0\n\t\t\t};\n\t\t\tcurrent.label ??= result.label;\n\t\t\tcurrent.query ??= result.query;\n\t\t\tcurrent.totalEvaluations += 1;\n\t\t\tcurrent.totalCitationF1 += result.citationF1;\n\t\t\tcurrent.totalResolvedCitationRate += result.resolvedCitationRate;\n\t\t\tif (result.status === 'pass') {\n\t\t\t\tcurrent.passCount += 1;\n\t\t\t} else if (result.status === 'partial') {\n\t\t\t\tcurrent.partialCount += 1;\n\t\t\t} else {\n\t\t\t\tcurrent.failCount += 1;\n\t\t\t}\n\t\t\tif (result.coverage === 'grounded') {\n\t\t\t\tcurrent.groundedCount += 1;\n\t\t\t}\n\t\t\tgrouped.set(result.caseId, current);\n\t\t}\n\t}\n\n\tconst ranked = Array.from(grouped.values()).sort((left, right) => {\n\t\tconst leftPassRate = left.passCount / left.totalEvaluations;\n\t\tconst rightPassRate = right.passCount / right.totalEvaluations;\n\t\tif (leftPassRate !== rightPassRate) {\n\t\t\treturn leftPassRate - rightPassRate;\n\t\t}\n\t\tconst leftCitationF1 = left.totalCitationF1 / left.totalEvaluations;\n\t\tconst rightCitationF1 = right.totalCitationF1 / right.totalEvaluations;\n\t\tif (leftCitationF1 !== rightCitationF1) {\n\t\t\treturn leftCitationF1 - rightCitationF1;\n\t\t}\n\t\tconst leftResolved =\n\t\t\tleft.totalResolvedCitationRate / left.totalEvaluations;\n\t\tconst rightResolved =\n\t\t\tright.totalResolvedCitationRate / right.totalEvaluations;\n\t\tif (leftResolved !== rightResolved) {\n\t\t\treturn leftResolved - rightResolved;\n\t\t}\n\n\t\treturn left.caseId.localeCompare(right.caseId);\n\t});\n\n\treturn ranked.map<RAGAnswerGroundingEvaluationCaseDifficultyEntry>(\n\t\t(entry, index) => ({\n\t\t\taverageCitationF1: entry.totalCitationF1 / entry.totalEvaluations,\n\t\t\taverageResolvedCitationRate:\n\t\t\t\tentry.totalResolvedCitationRate / entry.totalEvaluations,\n\t\t\tcaseId: entry.caseId,\n\t\t\tfailRate: (entry.failCount / entry.totalEvaluations) * 100,\n\t\t\tgroundedRate: (entry.groundedCount / entry.totalEvaluations) * 100,\n\t\t\tlabel: entry.label,\n\t\t\tpassRate: (entry.passCount / entry.totalEvaluations) * 100,\n\t\t\tpartialRate: (entry.partialCount / entry.totalEvaluations) * 100,\n\t\t\tquery: entry.query,\n\t\t\trank: index + 1,\n\t\t\ttotalEvaluations: entry.totalEvaluations\n\t\t})\n\t);\n};\n\nconst buildGroundingDifficultyDiffEntry = (\n\tcurrent: RAGAnswerGroundingEvaluationCaseDifficultyEntry,\n\tprevious?: RAGAnswerGroundingEvaluationCaseDifficultyEntry\n): RAGAnswerGroundingCaseDifficultyDiffEntry => ({\n\tcaseId: current.caseId,\n\tcurrentAverageCitationF1: current.averageCitationF1,\n\tcurrentFailRate: current.failRate,\n\tcurrentPassRate: current.passRate,\n\tcurrentRank: current.rank,\n\tlabel: current.label,\n\tpreviousAverageCitationF1: previous?.averageCitationF1,\n\tpreviousFailRate: previous?.failRate,\n\tpreviousPassRate: previous?.passRate,\n\tpreviousRank: previous?.rank,\n\tquery: current.query\n});\n\nconst buildRAGAnswerGroundingCaseDifficultyTrends = ({\n\truns\n}: {\n\truns: RAGAnswerGroundingCaseDifficultyRun[];\n}) => {\n\tconst movementCounts = new Map<\n\t\tstring,\n\t\t{\n\t\t\tlabel?: string;\n\t\t\tharder: number;\n\t\t\teasier: number;\n\t\t\tunchanged: number;\n\t\t}\n\t>();\n\n\tfor (let index = 0; index < runs.length - 1; index += 1) {\n\t\tconst current = runs[index];\n\t\tconst previous = runs[index + 1];\n\t\tif (!current || !previous) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst diff = buildRAGAnswerGroundingCaseDifficultyRunDiff({\n\t\t\tcurrent,\n\t\t\tprevious\n\t\t});\n\n\t\tfor (const entry of diff.harderCases) {\n\t\t\tconst currentCounts = movementCounts.get(entry.caseId) ?? {\n\t\t\t\teasier: 0,\n\t\t\t\tharder: 0,\n\t\t\t\tlabel: entry.label,\n\t\t\t\tunchanged: 0\n\t\t\t};\n\t\t\tcurrentCounts.harder += 1;\n\t\t\tcurrentCounts.label ??= entry.label;\n\t\t\tmovementCounts.set(entry.caseId, currentCounts);\n\t\t}\n\n\t\tfor (const entry of diff.easierCases) {\n\t\t\tconst currentCounts = movementCounts.get(entry.caseId) ?? {\n\t\t\t\teasier: 0,\n\t\t\t\tharder: 0,\n\t\t\t\tlabel: entry.label,\n\t\t\t\tunchanged: 0\n\t\t\t};\n\t\t\tcurrentCounts.easier += 1;\n\t\t\tcurrentCounts.label ??= entry.label;\n\t\t\tmovementCounts.set(entry.caseId, currentCounts);\n\t\t}\n\n\t\tfor (const entry of diff.unchangedCases) {\n\t\t\tconst currentCounts = movementCounts.get(entry.caseId) ?? {\n\t\t\t\teasier: 0,\n\t\t\t\tharder: 0,\n\t\t\t\tlabel: entry.label,\n\t\t\t\tunchanged: 0\n\t\t\t};\n\t\t\tcurrentCounts.unchanged += 1;\n\t\t\tcurrentCounts.label ??= entry.label;\n\t\t\tmovementCounts.set(entry.caseId, currentCounts);\n\t\t}\n\t}\n\n\tconst movementEntries = [...movementCounts.entries()];\n\tconst mostOftenHarderCaseIds = movementEntries\n\t\t.filter(([, counts]) => counts.harder > 0)\n\t\t.sort((left, right) => {\n\t\t\tif (right[1].harder !== left[1].harder) {\n\t\t\t\treturn right[1].harder - left[1].harder;\n\t\t\t}\n\t\t\treturn left[0].localeCompare(right[0]);\n\t\t})\n\t\t.map(([caseId]) => caseId);\n\tconst mostOftenEasierCaseIds = movementEntries\n\t\t.filter(([, counts]) => counts.easier > 0)\n\t\t.sort((left, right) => {\n\t\t\tif (right[1].easier !== left[1].easier) {\n\t\t\t\treturn right[1].easier - left[1].easier;\n\t\t\t}\n\t\t\treturn left[0].localeCompare(right[0]);\n\t\t})\n\t\t.map(([caseId]) => caseId);\n\n\treturn {\n\t\teasiestCaseIds:\n\t\t\truns[runs.length - 1]?.entries\n\t\t\t\t.map((entry) => entry.caseId)\n\t\t\t\t.reverse() ?? [],\n\t\thardestCaseIds: runs[0]?.entries.map((entry) => entry.caseId) ?? [],\n\t\tmostOftenEasierCaseIds,\n\t\tmostOftenHarderCaseIds,\n\t\tmovementCounts: Object.fromEntries(\n\t\t\tmovementEntries.map(([caseId, counts]) => [\n\t\t\t\tcaseId,\n\t\t\t\t{\n\t\t\t\t\teasier: counts.easier,\n\t\t\t\t\tharder: counts.harder,\n\t\t\t\t\tunchanged: counts.unchanged\n\t\t\t\t}\n\t\t\t])\n\t\t)\n\t};\n};\n\nexport const buildRAGAnswerGroundingCaseDifficultyRunDiff = ({\n\tcurrent,\n\tprevious\n}: {\n\tcurrent: RAGAnswerGroundingCaseDifficultyRun;\n\tprevious?: RAGAnswerGroundingCaseDifficultyRun;\n}): RAGAnswerGroundingCaseDifficultyRunDiff => {\n\tconst previousEntries = new Map(\n\t\t(previous?.entries ?? []).map((entry) => [entry.caseId, entry])\n\t);\n\tconst diffs = current.entries.map((entry) =>\n\t\tbuildGroundingDifficultyDiffEntry(\n\t\t\tentry,\n\t\t\tpreviousEntries.get(entry.caseId)\n\t\t)\n\t);\n\n\treturn {\n\t\tcurrentRunId: current.id,\n\t\teasierCases: diffs.filter((entry) => {\n\t\t\tconst previousRank = entry.previousRank ?? entry.currentRank;\n\t\t\treturn entry.currentRank > previousRank;\n\t\t}),\n\t\tharderCases: diffs.filter((entry) => {\n\t\t\tconst previousRank = entry.previousRank ?? Number.MAX_SAFE_INTEGER;\n\t\t\treturn entry.currentRank < previousRank;\n\t\t}),\n\t\tpreviousRunId: previous?.id,\n\t\tsuiteId: current.suiteId,\n\t\tunchangedCases: diffs.filter((entry) => {\n\t\t\tconst previousRank = entry.previousRank ?? entry.currentRank;\n\t\t\treturn entry.currentRank === previousRank;\n\t\t})\n\t};\n};\n\nconst toHistorySortOrder = (\n\tleft: RAGEvaluationSuiteRun,\n\tright: RAGEvaluationSuiteRun\n) => right.finishedAt - left.finishedAt;\n\nconst normalizeHistoryRuns = (runs: RAGEvaluationSuiteRun[]) =>\n\t[...runs].sort(toHistorySortOrder);\n\nconst normalizeRetrievalComparisonRuns = (runs: RAGRetrievalComparisonRun[]) =>\n\t[...runs].sort((left, right) => right.finishedAt - left.finishedAt);\n\nconst toTraceSummaryRunSortOrder = (\n\tleft: RAGRetrievalTraceSummaryRun,\n\tright: RAGRetrievalTraceSummaryRun\n) => right.finishedAt - left.finishedAt;\n\nconst normalizeTraceSummaryRuns = <TRun extends RAGRetrievalTraceSummaryRun>(\n\truns: TRun[]\n) => [...runs].sort(toTraceSummaryRunSortOrder);\n\nconst applyRAGSearchTracePrunePolicy = ({\n\tinput,\n\ttraces\n}: {\n\tinput?: RAGSearchTracePruneInput;\n\ttraces: RAGSearchTraceRecord[];\n}) => {\n\tconst sorted = normalizeTraceSummaryRuns(traces);\n\tconst matchesTag = (trace: RAGSearchTraceRecord) =>\n\t\t!input?.tag || (trace.tags ?? []).includes(input.tag);\n\tconst targeted = sorted.filter(matchesTag);\n\tconst untouched = sorted.filter((trace) => !matchesTag(trace));\n\tconst now = input?.now ?? Date.now();\n\tlet kept = [...targeted];\n\n\tif (\n\t\ttypeof input?.maxAgeMs === 'number' &&\n\t\tNumber.isFinite(input.maxAgeMs)\n\t) {\n\t\tconst cutoff = now - input.maxAgeMs;\n\t\tkept = kept.filter((trace) => trace.finishedAt >= cutoff);\n\t}\n\n\tif (\n\t\ttypeof input?.maxRecordsPerQuery === 'number' &&\n\t\tNumber.isFinite(input.maxRecordsPerQuery) &&\n\t\tinput.maxRecordsPerQuery >= 0\n\t) {\n\t\tconst remainingByQuery = new Map<string, number>();\n\t\tkept = kept.filter((trace) => {\n\t\t\tconst current = remainingByQuery.get(trace.query) ?? 0;\n\t\t\tif (current >= input.maxRecordsPerQuery!) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tremainingByQuery.set(trace.query, current + 1);\n\t\t\treturn true;\n\t\t});\n\t}\n\n\tif (\n\t\ttypeof input?.maxRecordsPerGroup === 'number' &&\n\t\tNumber.isFinite(input.maxRecordsPerGroup) &&\n\t\tinput.maxRecordsPerGroup >= 0\n\t) {\n\t\tconst remainingByGroup = new Map<string, number>();\n\t\tkept = kept.filter((trace) => {\n\t\t\tif (!trace.groupKey) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst current = remainingByGroup.get(trace.groupKey) ?? 0;\n\t\t\tif (current >= input.maxRecordsPerGroup!) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tremainingByGroup.set(trace.groupKey, current + 1);\n\t\t\treturn true;\n\t\t});\n\t}\n\n\tconst keptIds = new Set(kept.map((trace) => trace.id));\n\tconst removed = targeted.filter((trace) => !keptIds.has(trace.id));\n\tconst next = normalizeTraceSummaryRuns([...untouched, ...kept]);\n\n\treturn {\n\t\tkeptCount: next.length,\n\t\tnext,\n\t\tremoved,\n\t\tremovedCount: removed.length\n\t};\n};\n\nconst buildRAGSearchTraceStatsFromTraces = (\n\ttraces: RAGSearchTraceRecord[]\n): RAGSearchTraceStats => {\n\tconst queryKeys = new Set<string>();\n\tconst groupKeys = new Set<string>();\n\tconst tagCounts = new Map<string, number>();\n\tlet oldestFinishedAt: number | undefined;\n\tlet newestFinishedAt: number | undefined;\n\n\tfor (const trace of traces) {\n\t\tqueryKeys.add(trace.query);\n\t\tif (trace.groupKey) {\n\t\t\tgroupKeys.add(trace.groupKey);\n\t\t}\n\t\tfor (const tag of trace.tags ?? []) {\n\t\t\ttagCounts.set(tag, (tagCounts.get(tag) ?? 0) + 1);\n\t\t}\n\t\toldestFinishedAt =\n\t\t\ttypeof oldestFinishedAt === 'number'\n\t\t\t\t? Math.min(oldestFinishedAt, trace.finishedAt)\n\t\t\t\t: trace.finishedAt;\n\t\tnewestFinishedAt =\n\t\t\ttypeof newestFinishedAt === 'number'\n\t\t\t\t? Math.max(newestFinishedAt, trace.finishedAt)\n\t\t\t\t: trace.finishedAt;\n\t}\n\n\treturn {\n\t\tgroupCount: groupKeys.size,\n\t\tnewestFinishedAt,\n\t\toldestFinishedAt,\n\t\tqueryCount: queryKeys.size,\n\t\ttagCounts: Object.fromEntries(tagCounts.entries()),\n\t\ttotalTraces: traces.length\n\t};\n};\n\nconst normalizeTraceTags = (tags?: string[]) =>\n\tArray.from(\n\t\tnew Set((tags ?? []).map((tag) => tag.trim()).filter(Boolean))\n\t).sort((left, right) => left.localeCompare(right));\n\nconst toGroundingHistorySortOrder = (\n\tleft: RAGAnswerGroundingEvaluationRun,\n\tright: RAGAnswerGroundingEvaluationRun\n) => right.finishedAt - left.finishedAt;\n\nconst normalizeGroundingHistoryRuns = (\n\truns: RAGAnswerGroundingEvaluationRun[]\n) => [...runs].sort(toGroundingHistorySortOrder);\n\nconst toSearchTracePruneRunSortOrder = (\n\tleft: RAGSearchTracePruneRun,\n\tright: RAGSearchTracePruneRun\n) => right.finishedAt - left.finishedAt;\n\nconst normalizeSearchTracePruneRuns = (runs: RAGSearchTracePruneRun[]) =>\n\t[...runs].sort(toSearchTracePruneRunSortOrder);\n\nconst toGroundingDifficultyHistorySortOrder = (\n\tleft: RAGAnswerGroundingCaseDifficultyRun,\n\tright: RAGAnswerGroundingCaseDifficultyRun\n) => right.finishedAt - left.finishedAt;\n\nconst normalizeGroundingDifficultyHistoryRuns = (\n\truns: RAGAnswerGroundingCaseDifficultyRun[]\n) => [...runs].sort(toGroundingDifficultyHistorySortOrder);\n\nconst buildCaseDiff = (\n\tcurrentCase: RAGEvaluationCaseResult,\n\tpreviousCase?: RAGEvaluationCaseResult\n): RAGEvaluationCaseDiff => ({\n\tcaseId: currentCase.caseId,\n\tcurrentF1: currentCase.f1,\n\tcurrentMatchedIds: currentCase.matchedIds,\n\tcurrentMissingIds: currentCase.missingIds,\n\tcurrentStatus: currentCase.status,\n\tlabel: currentCase.label,\n\tpreviousF1: previousCase?.f1,\n\tpreviousMatchedIds: previousCase?.matchedIds ?? [],\n\tpreviousMissingIds: previousCase?.missingIds ?? [],\n\tpreviousStatus: previousCase?.status,\n\tquery: currentCase.query\n});\n\nconst buildGroundingCaseDiff = (\n\tcurrentCase: RAGAnswerGroundingEvaluationCaseResult,\n\tpreviousCase?: RAGAnswerGroundingEvaluationCaseResult\n): RAGAnswerGroundingEvaluationCaseDiff => ({\n\tanswerChanged:\n\t\ttypeof previousCase?.answer === 'string'\n\t\t\t? previousCase.answer !== currentCase.answer\n\t\t\t: true,\n\tcaseId: currentCase.caseId,\n\tcurrentCitationF1: currentCase.citationF1,\n\tcurrentCitedIds: currentCase.citedIds,\n\tcurrentCoverage: currentCase.coverage,\n\tcurrentExtraIds: currentCase.extraIds,\n\tcurrentMatchedIds: currentCase.matchedIds,\n\tcurrentMissingIds: currentCase.missingIds,\n\tcurrentReferenceCount: currentCase.referenceCount,\n\tcurrentResolvedCitationCount: currentCase.resolvedCitationCount,\n\tcurrentAnswer: currentCase.answer,\n\tcurrentStatus: currentCase.status,\n\tcurrentUngroundedReferenceNumbers:\n\t\tcurrentCase.groundedAnswer.ungroundedReferenceNumbers,\n\tcurrentUnresolvedCitationCount: currentCase.unresolvedCitationCount,\n\tlabel: currentCase.label,\n\tpreviousAnswer: previousCase?.answer,\n\tpreviousCitationF1: previousCase?.citationF1,\n\tpreviousCitedIds: previousCase?.citedIds ?? [],\n\tpreviousCoverage: previousCase?.coverage,\n\tpreviousExtraIds: previousCase?.extraIds ?? [],\n\tpreviousMatchedIds: previousCase?.matchedIds ?? [],\n\tpreviousMissingIds: previousCase?.missingIds ?? [],\n\tpreviousReferenceCount: previousCase?.referenceCount,\n\tpreviousResolvedCitationCount: previousCase?.resolvedCitationCount,\n\tpreviousStatus: previousCase?.status,\n\tpreviousUngroundedReferenceNumbers:\n\t\tpreviousCase?.groundedAnswer.ungroundedReferenceNumbers ?? [],\n\tpreviousUnresolvedCitationCount: previousCase?.unresolvedCitationCount,\n\tquery: currentCase.query\n});\n\nconst buildGroundingCaseSnapshots = ({\n\tcurrent,\n\tprevious\n}: {\n\tcurrent?: RAGAnswerGroundingEvaluationRun;\n\tprevious?: RAGAnswerGroundingEvaluationRun;\n}): RAGAnswerGroundingEvaluationCaseSnapshot[] => {\n\tif (!current) {\n\t\treturn [];\n\t}\n\n\tconst previousCases = new Map(\n\t\t(previous?.response.cases ?? []).map((entry) => [entry.caseId, entry])\n\t);\n\n\treturn current.response.cases.map((entry) => {\n\t\tconst previousCase = previousCases.get(entry.caseId);\n\t\treturn {\n\t\t\tanswer: entry.answer,\n\t\t\tanswerChange:\n\t\t\t\ttypeof previousCase?.answer === 'string'\n\t\t\t\t\t? previousCase.answer === entry.answer\n\t\t\t\t\t\t? 'unchanged'\n\t\t\t\t\t\t: 'changed'\n\t\t\t\t\t: 'new',\n\t\t\tcaseId: entry.caseId,\n\t\t\tcitationCount: entry.citationCount,\n\t\t\tcitationF1: entry.citationF1,\n\t\t\tcitedIds: entry.citedIds,\n\t\t\tcoverage: entry.coverage,\n\t\t\textraIds: entry.extraIds,\n\t\t\tlabel: entry.label,\n\t\t\tmatchedIds: entry.matchedIds,\n\t\t\tmissingIds: entry.missingIds,\n\t\t\tpreviousAnswer: previousCase?.answer,\n\t\t\tquery: entry.query,\n\t\t\treferenceCount: entry.referenceCount,\n\t\t\tresolvedCitationCount: entry.resolvedCitationCount,\n\t\t\tresolvedCitationRate: entry.resolvedCitationRate,\n\t\t\tstatus: entry.status,\n\t\t\tungroundedReferenceNumbers:\n\t\t\t\tentry.groundedAnswer.ungroundedReferenceNumbers,\n\t\t\tunresolvedCitationCount: entry.unresolvedCitationCount\n\t\t};\n\t});\n};\n\nconst areStageCountsEqual = (\n\tleft: Partial<Record<RAGRetrievalTraceStage, number>>,\n\tright: Partial<Record<RAGRetrievalTraceStage, number>>\n) => {\n\tconst keys = new Set([\n\t\t...Object.keys(left),\n\t\t...Object.keys(right)\n\t]) as Set<RAGRetrievalTraceStage>;\n\n\tfor (const key of keys) {\n\t\tif ((left[key] ?? 0) !== (right[key] ?? 0)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n};\n\nconst buildEvaluationCaseTraceSnapshot = ({\n\tcaseResult,\n\tfilter,\n\tretrieval,\n\tcurrentTrace,\n\tpreviousTrace\n}: {\n\tcaseResult: RAGEvaluationCaseResult;\n\tfilter?: Record<string, unknown>;\n\tretrieval?: RAGCollectionSearchParams['retrieval'];\n\tcurrentTrace?: RAGRetrievalTrace;\n\tpreviousTrace?: RAGEvaluationCaseTraceSnapshot;\n}): RAGEvaluationCaseTraceSnapshot => {\n\tconst stageCounts = currentTrace\n\t\t? buildTraceStageCounts([currentTrace])\n\t\t: {};\n\tconst previousStageCounts = previousTrace?.stageCounts ?? {};\n\tconst currentFilterSignature = JSON.stringify(filter ?? undefined);\n\tconst previousFilterSignature = JSON.stringify(\n\t\tpreviousTrace?.inputFilter ?? undefined\n\t);\n\tconst currentRetrievalSignature = JSON.stringify(retrieval ?? undefined);\n\tconst previousRetrievalSignature = JSON.stringify(\n\t\tpreviousTrace?.inputRetrieval ?? undefined\n\t);\n\tconst traceChange = !previousTrace\n\t\t? currentTrace\n\t\t\t? 'new'\n\t\t\t: 'unchanged'\n\t\t: previousTrace.traceMode !== currentTrace?.mode ||\n\t\t\t previousFilterSignature !== currentFilterSignature ||\n\t\t\t previousRetrievalSignature !== currentRetrievalSignature ||\n\t\t\t previousTrace.sourceBalanceStrategy !==\n\t\t\t\t\tcurrentTrace?.sourceBalanceStrategy ||\n\t\t\t previousTrace.transformedQuery !==\n\t\t\t\t\t(currentTrace?.transformedQuery || undefined) ||\n\t\t\t previousTrace.variantQueries.join('|') !==\n\t\t\t\t\t(currentTrace?.variantQueries ?? []).join('|') ||\n\t\t\t previousTrace.finalCount !==\n\t\t\t\t\t(currentTrace?.resultCounts.final ?? 0) ||\n\t\t\t previousTrace.vectorCount !==\n\t\t\t\t\t(currentTrace?.resultCounts.vector ?? 0) ||\n\t\t\t previousTrace.lexicalCount !==\n\t\t\t\t\t(currentTrace?.resultCounts.lexical ?? 0) ||\n\t\t\t previousTrace.candidateTopK !==\n\t\t\t\t\t(currentTrace?.candidateTopK ?? 0) ||\n\t\t\t previousTrace.lexicalTopK !== (currentTrace?.lexicalTopK ?? 0) ||\n\t\t\t !areStageCountsEqual(previousStageCounts, stageCounts)\n\t\t\t? 'changed'\n\t\t\t: 'unchanged';\n\n\treturn {\n\t\tcandidateTopK: currentTrace?.candidateTopK ?? 0,\n\t\tcaseId: caseResult.caseId,\n\t\tinputFilter: filter,\n\t\tfinalCount: currentTrace?.resultCounts.final ?? 0,\n\t\tlabel: caseResult.label,\n\t\tlexicalCount: currentTrace?.resultCounts.lexical ?? 0,\n\t\tlexicalTopK: currentTrace?.lexicalTopK ?? 0,\n\t\tinputRetrieval: retrieval,\n\t\tpreviousCandidateTopK: previousTrace?.candidateTopK,\n\t\tpreviousFinalCount: previousTrace?.finalCount,\n\t\tpreviousLexicalCount: previousTrace?.lexicalCount,\n\t\tpreviousLexicalTopK: previousTrace?.lexicalTopK,\n\t\tpreviousInputFilter: previousTrace?.inputFilter,\n\t\tpreviousInputRetrieval: previousTrace?.inputRetrieval,\n\t\tpreviousSourceBalanceStrategy: previousTrace?.sourceBalanceStrategy,\n\t\tpreviousStageCounts,\n\t\tpreviousTraceMode: previousTrace?.traceMode,\n\t\tpreviousTransformedQuery: previousTrace?.transformedQuery,\n\t\tpreviousVariantQueries: previousTrace?.variantQueries ?? [],\n\t\tpreviousVectorCount: previousTrace?.vectorCount,\n\t\tquery: caseResult.query,\n\t\tstageCounts,\n\t\tstatus: caseResult.status,\n\t\tsourceBalanceStrategy: currentTrace?.sourceBalanceStrategy,\n\t\ttraceChange,\n\t\ttraceMode: currentTrace?.mode,\n\t\ttransformedQuery: currentTrace?.transformedQuery || undefined,\n\t\tvariantQueries: currentTrace?.variantQueries ?? [],\n\t\tvectorCount: currentTrace?.resultCounts.vector ?? 0\n\t};\n};\n\nconst buildEvaluationCaseTraceSnapshotsFromEvaluated = (\n\tevaluated: Array<{\n\t\tcaseResult: RAGEvaluationCaseResult;\n\t\ttrace?: RAGRetrievalTrace;\n\t\tfilter?: Record<string, unknown>;\n\t\tretrieval?: RAGCollectionSearchParams['retrieval'];\n\t}>\n): RAGEvaluationCaseTraceSnapshot[] =>\n\tevaluated.map(({ caseResult, filter, retrieval, trace }) =>\n\t\tbuildEvaluationCaseTraceSnapshot({\n\t\t\tcaseResult,\n\t\t\tfilter,\n\t\t\tretrieval,\n\t\t\tcurrentTrace: trace\n\t\t})\n\t);\n\nconst buildEvaluationCaseTraceSnapshots = ({\n\tcurrent,\n\tprevious\n}: {\n\tcurrent?: RAGEvaluationSuiteRun;\n\tprevious?: RAGEvaluationSuiteRun;\n}): RAGEvaluationCaseTraceSnapshot[] => {\n\tif (!current) {\n\t\treturn [];\n\t}\n\n\tconst currentTraces = new Map(\n\t\t(current.caseTraceSnapshots ?? []).map((entry) => [entry.caseId, entry])\n\t);\n\tconst previousTraces = new Map(\n\t\t(previous?.caseTraceSnapshots ?? []).map((entry) => [\n\t\t\tentry.caseId,\n\t\t\tentry\n\t\t])\n\t);\n\n\treturn current.response.cases.map((caseResult) =>\n\t\tbuildEvaluationCaseTraceSnapshot({\n\t\t\tcaseResult,\n\t\t\tcurrentTrace: (() => {\n\t\t\t\tconst currentSnapshot = currentTraces.get(caseResult.caseId);\n\t\t\t\tif (!currentSnapshot) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tcandidateTopK: currentSnapshot.candidateTopK,\n\t\t\t\t\tlexicalTopK: currentSnapshot.lexicalTopK,\n\t\t\t\t\tmode: currentSnapshot.traceMode ?? 'vector',\n\t\t\t\t\tquery: caseResult.query,\n\t\t\t\t\tresultCounts: {\n\t\t\t\t\t\tfinal: currentSnapshot.finalCount,\n\t\t\t\t\t\tfused: currentSnapshot.finalCount,\n\t\t\t\t\t\tlexical: currentSnapshot.lexicalCount,\n\t\t\t\t\t\treranked: currentSnapshot.finalCount,\n\t\t\t\t\t\tvector: currentSnapshot.vectorCount\n\t\t\t\t\t},\n\t\t\t\t\trunLexical: currentSnapshot.lexicalCount > 0,\n\t\t\t\t\trunVector: currentSnapshot.vectorCount > 0,\n\t\t\t\t\tsourceBalanceStrategy:\n\t\t\t\t\t\tcurrentSnapshot.sourceBalanceStrategy ?? 'cap',\n\t\t\t\t\tsteps: [],\n\t\t\t\t\ttopK: caseResult.topK,\n\t\t\t\t\ttransformedQuery:\n\t\t\t\t\t\tcurrentSnapshot.transformedQuery ?? caseResult.query,\n\t\t\t\t\tvariantQueries: currentSnapshot.variantQueries\n\t\t\t\t} satisfies RAGRetrievalTrace;\n\t\t\t})(),\n\t\t\tpreviousTrace: previousTraces.get(caseResult.caseId)\n\t\t})\n\t);\n};\n\nconst getStatusRank = (status: RAGEvaluationCaseResult['status']) =>\n\tstatus === 'pass' ? 2 : status === 'partial' ? 1 : 0;\n\nexport const buildRAGEvaluationRunDiff = ({\n\tcurrent,\n\tprevious\n}: {\n\tcurrent: RAGEvaluationSuiteRun;\n\tprevious?: RAGEvaluationSuiteRun;\n}): RAGEvaluationRunDiff => {\n\tconst previousCases = new Map(\n\t\t(previous?.response.cases ?? []).map((entry) => [entry.caseId, entry])\n\t);\n\tconst diffs = current.response.cases.map((entry) =>\n\t\tbuildCaseDiff(entry, previousCases.get(entry.caseId))\n\t);\n\tconst regressedCases = diffs.filter(\n\t\t(entry) =>\n\t\t\tgetStatusRank(entry.currentStatus) <\n\t\t\tgetStatusRank(entry.previousStatus ?? 'fail')\n\t);\n\tconst improvedCases = diffs.filter(\n\t\t(entry) =>\n\t\t\tgetStatusRank(entry.currentStatus) >\n\t\t\tgetStatusRank(entry.previousStatus ?? 'fail')\n\t);\n\tconst unchangedCases = diffs.filter(\n\t\t(entry) =>\n\t\t\tgetStatusRank(entry.currentStatus) ===\n\t\t\tgetStatusRank(entry.previousStatus ?? 'fail')\n\t);\n\n\treturn {\n\t\tcurrentRunId: current.id,\n\t\timprovedCases,\n\t\tpreviousRunId: previous?.id,\n\t\tregressedCases,\n\t\tsuiteId: current.suiteId,\n\t\tsummaryDelta: {\n\t\t\taverageF1:\n\t\t\t\tcurrent.response.summary.averageF1 -\n\t\t\t\t(previous?.response.summary.averageF1 ?? 0),\n\t\t\taverageLatencyMs:\n\t\t\t\tcurrent.response.summary.averageLatencyMs -\n\t\t\t\t(previous?.response.summary.averageLatencyMs ?? 0),\n\t\t\tfailedCases:\n\t\t\t\tcurrent.response.summary.failedCases -\n\t\t\t\t(previous?.response.summary.failedCases ?? 0),\n\t\t\tpassedCases:\n\t\t\t\tcurrent.response.summary.passedCases -\n\t\t\t\t(previous?.response.summary.passedCases ?? 0),\n\t\t\tpassingRate:\n\t\t\t\tcurrent.response.passingRate -\n\t\t\t\t(previous?.response.passingRate ?? 0),\n\t\t\tpartialCases:\n\t\t\t\tcurrent.response.summary.partialCases -\n\t\t\t\t(previous?.response.summary.partialCases ?? 0)\n\t\t},\n\t\ttraceSummaryDelta:\n\t\t\tcurrent.traceSummary || previous?.traceSummary\n\t\t\t\t? {\n\t\t\t\t\t\taverageCandidateTopK:\n\t\t\t\t\t\t\t(current.traceSummary?.averageCandidateTopK ?? 0) -\n\t\t\t\t\t\t\t(previous?.traceSummary?.averageCandidateTopK ?? 0),\n\t\t\t\t\t\taverageFinalCount:\n\t\t\t\t\t\t\t(current.traceSummary?.averageFinalCount ?? 0) -\n\t\t\t\t\t\t\t(previous?.traceSummary?.averageFinalCount ?? 0),\n\t\t\t\t\t\taverageLexicalCount:\n\t\t\t\t\t\t\t(current.traceSummary?.averageLexicalCount ?? 0) -\n\t\t\t\t\t\t\t(previous?.traceSummary?.averageLexicalCount ?? 0),\n\t\t\t\t\t\taverageLexicalTopK:\n\t\t\t\t\t\t\t(current.traceSummary?.averageLexicalTopK ?? 0) -\n\t\t\t\t\t\t\t(previous?.traceSummary?.averageLexicalTopK ?? 0),\n\t\t\t\t\t\taverageVectorCount:\n\t\t\t\t\t\t\t(current.traceSummary?.averageVectorCount ?? 0) -\n\t\t\t\t\t\t\t(previous?.traceSummary?.averageVectorCount ?? 0),\n\t\t\t\t\t\tbalancedCases:\n\t\t\t\t\t\t\t(current.traceSummary?.balancedCases ?? 0) -\n\t\t\t\t\t\t\t(previous?.traceSummary?.balancedCases ?? 0),\n\t\t\t\t\t\tlexicalCases:\n\t\t\t\t\t\t\t(current.traceSummary?.lexicalCases ?? 0) -\n\t\t\t\t\t\t\t(previous?.traceSummary?.lexicalCases ?? 0),\n\t\t\t\t\t\tmodesChanged:\n\t\t\t\t\t\t\t(current.traceSummary?.modes ?? []).join('|') !==\n\t\t\t\t\t\t\t(previous?.traceSummary?.modes ?? []).join('|'),\n\t\t\t\t\t\troundRobinCases:\n\t\t\t\t\t\t\t(current.traceSummary?.roundRobinCases ?? 0) -\n\t\t\t\t\t\t\t(previous?.traceSummary?.roundRobinCases ?? 0),\n\t\t\t\t\t\tstageCounts: diffTraceStageCounts({\n\t\t\t\t\t\t\tcurrent: current.traceSummary?.stageCounts ?? {},\n\t\t\t\t\t\t\tprevious: previous?.traceSummary?.stageCounts ?? {}\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tsourceBalanceStrategiesChanged:\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\tcurrent.traceSummary?.sourceBalanceStrategies ??\n\t\t\t\t\t\t\t\t[]\n\t\t\t\t\t\t\t).join('|') !==\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\tprevious?.traceSummary\n\t\t\t\t\t\t\t\t\t?.sourceBalanceStrategies ?? []\n\t\t\t\t\t\t\t).join('|'),\n\t\t\t\t\t\ttransformedCases:\n\t\t\t\t\t\t\t(current.traceSummary?.transformedCases ?? 0) -\n\t\t\t\t\t\t\t(previous?.traceSummary?.transformedCases ?? 0),\n\t\t\t\t\t\tvariantCases:\n\t\t\t\t\t\t\t(current.traceSummary?.variantCases ?? 0) -\n\t\t\t\t\t\t\t(previous?.traceSummary?.variantCases ?? 0),\n\t\t\t\t\t\tvectorCases:\n\t\t\t\t\t\t\t(current.traceSummary?.vectorCases ?? 0) -\n\t\t\t\t\t\t\t(previous?.traceSummary?.vectorCases ?? 0)\n\t\t\t\t\t}\n\t\t\t\t: undefined,\n\t\tunchangedCases\n\t};\n};\n\nexport const buildRAGAnswerGroundingEvaluationRunDiff = ({\n\tcurrent,\n\tprevious\n}: {\n\tcurrent: RAGAnswerGroundingEvaluationRun;\n\tprevious?: RAGAnswerGroundingEvaluationRun;\n}): RAGAnswerGroundingEvaluationRunDiff => {\n\tconst previousCases = new Map(\n\t\t(previous?.response.cases ?? []).map((entry) => [entry.caseId, entry])\n\t);\n\tconst diffs = current.response.cases.map((entry) =>\n\t\tbuildGroundingCaseDiff(entry, previousCases.get(entry.caseId))\n\t);\n\tconst regressedCases = diffs.filter(\n\t\t(entry) =>\n\t\t\tgetStatusRank(entry.currentStatus) <\n\t\t\tgetStatusRank(entry.previousStatus ?? 'fail')\n\t);\n\tconst improvedCases = diffs.filter(\n\t\t(entry) =>\n\t\t\tgetStatusRank(entry.currentStatus) >\n\t\t\tgetStatusRank(entry.previousStatus ?? 'fail')\n\t);\n\tconst unchangedCases = diffs.filter(\n\t\t(entry) =>\n\t\t\tgetStatusRank(entry.currentStatus) ===\n\t\t\tgetStatusRank(entry.previousStatus ?? 'fail')\n\t);\n\n\treturn {\n\t\tcurrentRunId: current.id,\n\t\timprovedCases,\n\t\tpreviousRunId: previous?.id,\n\t\tregressedCases,\n\t\tsuiteId: current.suiteId,\n\t\tsummaryDelta: {\n\t\t\taverageCitationF1:\n\t\t\t\tcurrent.response.summary.averageCitationF1 -\n\t\t\t\t(previous?.response.summary.averageCitationF1 ?? 0),\n\t\t\taverageResolvedCitationRate:\n\t\t\t\tcurrent.response.summary.averageResolvedCitationRate -\n\t\t\t\t(previous?.response.summary.averageResolvedCitationRate ?? 0),\n\t\t\tfailedCases:\n\t\t\t\tcurrent.response.summary.failedCases -\n\t\t\t\t(previous?.response.summary.failedCases ?? 0),\n\t\t\tpassedCases:\n\t\t\t\tcurrent.response.summary.passedCases -\n\t\t\t\t(previous?.response.summary.passedCases ?? 0),\n\t\t\tpassingRate:\n\t\t\t\tcurrent.response.passingRate -\n\t\t\t\t(previous?.response.passingRate ?? 0),\n\t\t\tpartialCases:\n\t\t\t\tcurrent.response.summary.partialCases -\n\t\t\t\t(previous?.response.summary.partialCases ?? 0)\n\t\t},\n\t\tunchangedCases\n\t};\n};\n\nexport const createRAGFileEvaluationHistoryStore = (\n\tpath: string\n): RAGEvaluationHistoryStore => ({\n\tlistRuns: async ({ limit, suiteId } = {}) => {\n\t\tlet parsed: RAGEvaluationSuiteRun[] = [];\n\t\ttry {\n\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\tconst value = JSON.parse(content);\n\t\t\tparsed = Array.isArray(value) ? value : [];\n\t\t} catch (error) {\n\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\tconst filtered = parsed.filter(\n\t\t\t(entry) => !suiteId || entry.suiteId === suiteId\n\t\t);\n\t\tconst sorted = normalizeHistoryRuns(filtered);\n\t\treturn typeof limit === 'number' ? sorted.slice(0, limit) : sorted;\n\t},\n\tsaveRun: async (run) => {\n\t\tconst existing = await (async () => {\n\t\t\ttry {\n\t\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\t\tconst value = JSON.parse(content);\n\t\t\t\treturn Array.isArray(value) ? value : [];\n\t\t\t} catch (error) {\n\t\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t})();\n\t\tconst next = normalizeHistoryRuns([\n\t\t\trun,\n\t\t\t...existing.filter(\n\t\t\t\t(entry: RAGEvaluationSuiteRun) => entry.id !== run.id\n\t\t\t)\n\t\t]);\n\t\tawait mkdir(dirname(path), { recursive: true });\n\t\tawait writeFile(path, JSON.stringify(next, null, '\\t') + '\\n', 'utf8');\n\t}\n});\n\nexport const createRAGFileRetrievalComparisonHistoryStore = (\n\tpath: string\n): RAGRetrievalComparisonHistoryStore => ({\n\tlistRuns: async ({\n\t\tgroupKey,\n\t\tlabel,\n\t\tlimit,\n\t\tsuiteId,\n\t\ttag,\n\t\twinnerId\n\t} = {}) => {\n\t\tlet parsed: RAGRetrievalComparisonRun[] = [];\n\t\ttry {\n\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\tconst value = JSON.parse(content);\n\t\t\tparsed = Array.isArray(value) ? value : [];\n\t\t} catch (error) {\n\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\tconst normalizedLabel = normalizeLabelFilter(label);\n\t\tconst filtered = parsed.filter(\n\t\t\t(entry) =>\n\t\t\t\t(!suiteId || entry.suiteId === suiteId) &&\n\t\t\t\t(!groupKey || entry.groupKey === groupKey) &&\n\t\t\t\t(!tag || (entry.tags ?? []).includes(tag)) &&\n\t\t\t\t(!normalizedLabel ||\n\t\t\t\t\tentry.label.toLowerCase().includes(normalizedLabel) ||\n\t\t\t\t\tentry.suiteLabel.toLowerCase().includes(normalizedLabel)) &&\n\t\t\t\tmatchesWinner(entry, winnerId)\n\t\t);\n\t\tconst sorted = normalizeRetrievalComparisonRuns(filtered);\n\t\treturn typeof limit === 'number' ? sorted.slice(0, limit) : sorted;\n\t},\n\tsaveRun: async (run) => {\n\t\tconst existing = await (async () => {\n\t\t\ttry {\n\t\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\t\tconst value = JSON.parse(content);\n\t\t\t\treturn Array.isArray(value) ? value : [];\n\t\t\t} catch (error) {\n\t\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t})();\n\t\tconst next = normalizeRetrievalComparisonRuns([\n\t\t\trun,\n\t\t\t...existing.filter(\n\t\t\t\t(entry: RAGRetrievalComparisonRun) => entry.id !== run.id\n\t\t\t)\n\t\t]);\n\t\tawait mkdir(dirname(path), { recursive: true });\n\t\tawait writeFile(path, JSON.stringify(next, null, '\\t') + '\\n', 'utf8');\n\t}\n});\n\nexport const createRAGFileRetrievalBaselineStore = (\n\tpath: string\n): RAGRetrievalBaselineStore => {\n\tconst listBaselines: RAGRetrievalBaselineStore['listBaselines'] = async ({\n\t\tgroupKey,\n\t\tlimit,\n\t\ttag,\n\t\tstatus\n\t} = {}) => {\n\t\tlet parsed: RAGRetrievalBaselineRecord[] = [];\n\t\ttry {\n\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\tconst value = JSON.parse(content);\n\t\t\tparsed = Array.isArray(value) ? value : [];\n\t\t} catch (error) {\n\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\tconst filtered = parsed.filter(\n\t\t\t(entry) =>\n\t\t\t\t(!groupKey || entry.groupKey === groupKey) &&\n\t\t\t\t(!tag || (entry.tags ?? []).includes(tag)) &&\n\t\t\t\t(!status || entry.status === status)\n\t\t);\n\t\tconst sorted = normalizeRetrievalBaselineRecords(filtered);\n\t\treturn typeof limit === 'number' ? sorted.slice(0, limit) : sorted;\n\t};\n\n\treturn {\n\t\tgetBaseline: async (groupKey) => {\n\t\t\tconst baselines = await Promise.resolve(\n\t\t\t\tlistBaselines({ groupKey, limit: 1 })\n\t\t\t);\n\t\t\treturn baselines[0] ?? null;\n\t\t},\n\t\tlistBaselines,\n\t\tsaveBaseline: async (record) => {\n\t\t\tconst existing = await (async () => {\n\t\t\t\ttry {\n\t\t\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\t\t\tconst value = JSON.parse(content);\n\t\t\t\t\treturn Array.isArray(value) ? value : [];\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t}\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\t\t\t})();\n\t\t\tconst currentVersion =\n\t\t\t\texisting\n\t\t\t\t\t.filter(\n\t\t\t\t\t\t(entry: RAGRetrievalBaselineRecord) =>\n\t\t\t\t\t\t\tentry.groupKey === record.groupKey\n\t\t\t\t\t)\n\t\t\t\t\t.reduce(\n\t\t\t\t\t\t(max, entry) => Math.max(max, entry.version ?? 0),\n\t\t\t\t\t\t0\n\t\t\t\t\t) ?? 0;\n\t\t\tconst next = normalizeRetrievalBaselineRecords([\n\t\t\t\t{\n\t\t\t\t\t...record,\n\t\t\t\t\tstatus: 'active',\n\t\t\t\t\tversion:\n\t\t\t\t\t\ttypeof record.version === 'number'\n\t\t\t\t\t\t\t? record.version\n\t\t\t\t\t\t\t: currentVersion + 1\n\t\t\t\t},\n\t\t\t\t...existing.map((entry: RAGRetrievalBaselineRecord) =>\n\t\t\t\t\tentry.groupKey === record.groupKey &&\n\t\t\t\t\t(entry.rolloutLabel ?? undefined) ===\n\t\t\t\t\t\t(record.rolloutLabel ?? undefined)\n\t\t\t\t\t\t? { ...entry, status: 'superseded' as const }\n\t\t\t\t\t\t: entry\n\t\t\t\t)\n\t\t\t]);\n\t\t\tawait mkdir(dirname(path), { recursive: true });\n\t\t\tawait writeFile(\n\t\t\t\tpath,\n\t\t\t\tJSON.stringify(next, null, '\\t') + '\\n',\n\t\t\t\t'utf8'\n\t\t\t);\n\t\t}\n\t};\n};\n\nexport const createRAGFileRetrievalReleaseDecisionStore = (\n\tpath: string\n): RAGRetrievalReleaseDecisionStore => ({\n\tlistDecisions: async ({ groupKey, kind, limit } = {}) => {\n\t\tlet parsed: RAGRetrievalReleaseDecisionRecord[] = [];\n\t\ttry {\n\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\tconst value = JSON.parse(content);\n\t\t\tparsed = Array.isArray(value) ? value : [];\n\t\t} catch (error) {\n\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\tconst filtered = parsed.filter(\n\t\t\t(entry) =>\n\t\t\t\t(!groupKey || entry.groupKey === groupKey) &&\n\t\t\t\t(!kind || entry.kind === kind)\n\t\t);\n\t\tconst sorted = normalizeRetrievalReleaseDecisionRecords(filtered);\n\t\treturn typeof limit === 'number' ? sorted.slice(0, limit) : sorted;\n\t},\n\tsaveDecision: async (record) => {\n\t\tconst existing = await (async () => {\n\t\t\ttry {\n\t\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\t\tconst value = JSON.parse(content);\n\t\t\t\treturn Array.isArray(value) ? value : [];\n\t\t\t} catch (error) {\n\t\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t})();\n\t\tconst next = normalizeRetrievalReleaseDecisionRecords([\n\t\t\trecord,\n\t\t\t...existing.filter(\n\t\t\t\t(entry: RAGRetrievalReleaseDecisionRecord) =>\n\t\t\t\t\tentry.id !== record.id\n\t\t\t)\n\t\t]);\n\t\tawait mkdir(dirname(path), { recursive: true });\n\t\tawait writeFile(path, JSON.stringify(next, null, '\\t') + '\\n', 'utf8');\n\t}\n});\n\nexport const createRAGFileRetrievalLaneHandoffDecisionStore = (\n\tpath: string\n): RAGRetrievalLaneHandoffDecisionStore => ({\n\tlistDecisions: async ({\n\t\tgroupKey,\n\t\tkind,\n\t\tlimit,\n\t\tsourceRolloutLabel,\n\t\ttargetRolloutLabel\n\t} = {}) => {\n\t\tlet parsed: RAGRetrievalLaneHandoffDecisionRecord[] = [];\n\t\ttry {\n\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\tconst value = JSON.parse(content);\n\t\t\tparsed = Array.isArray(value) ? value : [];\n\t\t} catch (error) {\n\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\tconst filtered = parsed.filter(\n\t\t\t(entry) =>\n\t\t\t\t(!groupKey || entry.groupKey === groupKey) &&\n\t\t\t\t(!kind || entry.kind === kind) &&\n\t\t\t\t(!sourceRolloutLabel ||\n\t\t\t\t\tentry.sourceRolloutLabel === sourceRolloutLabel) &&\n\t\t\t\t(!targetRolloutLabel ||\n\t\t\t\t\tentry.targetRolloutLabel === targetRolloutLabel)\n\t\t);\n\t\tconst sorted = normalizeRetrievalLaneHandoffDecisionRecords(filtered);\n\t\treturn typeof limit === 'number' ? sorted.slice(0, limit) : sorted;\n\t},\n\tsaveDecision: async (record) => {\n\t\tconst existing = await (async () => {\n\t\t\ttry {\n\t\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\t\tconst value = JSON.parse(content);\n\t\t\t\treturn Array.isArray(value) ? value : [];\n\t\t\t} catch (error) {\n\t\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t})();\n\t\tconst next = normalizeRetrievalLaneHandoffDecisionRecords([\n\t\t\trecord,\n\t\t\t...existing.filter(\n\t\t\t\t(entry: RAGRetrievalLaneHandoffDecisionRecord) =>\n\t\t\t\t\tentry.id !== record.id\n\t\t\t)\n\t\t]);\n\t\tawait mkdir(dirname(path), { recursive: true });\n\t\tawait writeFile(path, JSON.stringify(next, null, '\\t') + '\\n', 'utf8');\n\t}\n});\n\nexport const createRAGFileRetrievalReleaseIncidentStore = (\n\tpath: string\n): RAGRetrievalReleaseIncidentStore => ({\n\tlistIncidents: async ({\n\t\tgroupKey,\n\t\tlimit,\n\t\tseverity,\n\t\tstatus,\n\t\ttargetRolloutLabel\n\t} = {}) => {\n\t\tlet parsed: RAGRetrievalReleaseIncidentRecord[] = [];\n\t\ttry {\n\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\tconst value = JSON.parse(content);\n\t\t\tparsed = Array.isArray(value) ? value : [];\n\t\t} catch (error) {\n\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\tconst filtered = parsed.filter(\n\t\t\t(entry) =>\n\t\t\t\t(!groupKey || entry.groupKey === groupKey) &&\n\t\t\t\t(!targetRolloutLabel ||\n\t\t\t\t\tentry.targetRolloutLabel === targetRolloutLabel) &&\n\t\t\t\t(!severity || entry.severity === severity) &&\n\t\t\t\t(!status || entry.status === status)\n\t\t);\n\t\tconst sorted = normalizeRetrievalReleaseIncidentRecords(filtered);\n\t\treturn typeof limit === 'number' ? sorted.slice(0, limit) : sorted;\n\t},\n\tsaveIncident: async (record) => {\n\t\tconst existing = await (async () => {\n\t\t\ttry {\n\t\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\t\tconst value = JSON.parse(content);\n\t\t\t\treturn Array.isArray(value) ? value : [];\n\t\t\t} catch (error) {\n\t\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t})();\n\t\tconst next = normalizeRetrievalReleaseIncidentRecords([\n\t\t\trecord,\n\t\t\t...existing.filter(\n\t\t\t\t(entry: RAGRetrievalReleaseIncidentRecord) =>\n\t\t\t\t\tentry.id !== record.id\n\t\t\t)\n\t\t]);\n\t\tawait mkdir(dirname(path), { recursive: true });\n\t\tawait writeFile(path, JSON.stringify(next, null, '\\t') + '\\n', 'utf8');\n\t}\n});\n\nexport const createRAGFileRetrievalLaneHandoffIncidentStore = (\n\tpath: string\n): RAGRetrievalLaneHandoffIncidentStore => ({\n\tlistIncidents: async ({\n\t\tgroupKey,\n\t\tlimit,\n\t\tseverity,\n\t\tstatus,\n\t\ttargetRolloutLabel\n\t} = {}) => {\n\t\tlet parsed: RAGRetrievalLaneHandoffIncidentRecord[] = [];\n\t\ttry {\n\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\tconst value = JSON.parse(content);\n\t\t\tparsed = Array.isArray(value) ? value : [];\n\t\t} catch (error) {\n\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\tconst filtered = parsed.filter(\n\t\t\t(entry) =>\n\t\t\t\t(!groupKey || entry.groupKey === groupKey) &&\n\t\t\t\t(!targetRolloutLabel ||\n\t\t\t\t\tentry.targetRolloutLabel === targetRolloutLabel) &&\n\t\t\t\t(!severity || entry.severity === severity) &&\n\t\t\t\t(!status || entry.status === status)\n\t\t);\n\t\tconst sorted = normalizeRetrievalReleaseIncidentRecords(\n\t\t\tfiltered as RAGRetrievalReleaseIncidentRecord[]\n\t\t) as RAGRetrievalLaneHandoffIncidentRecord[];\n\t\treturn typeof limit === 'number' ? sorted.slice(0, limit) : sorted;\n\t},\n\tsaveIncident: async (record) => {\n\t\tconst existing = await (async () => {\n\t\t\ttry {\n\t\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\t\tconst value = JSON.parse(content);\n\t\t\t\treturn Array.isArray(value) ? value : [];\n\t\t\t} catch (error) {\n\t\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t})();\n\t\tconst next = normalizeRetrievalReleaseIncidentRecords([\n\t\t\trecord as RAGRetrievalReleaseIncidentRecord,\n\t\t\t...existing.filter(\n\t\t\t\t(entry: RAGRetrievalLaneHandoffIncidentRecord) =>\n\t\t\t\t\tentry.id !== record.id\n\t\t\t)\n\t\t]) as RAGRetrievalLaneHandoffIncidentRecord[];\n\t\tawait mkdir(dirname(path), { recursive: true });\n\t\tawait writeFile(path, JSON.stringify(next, null, '\\t') + '\\n', 'utf8');\n\t}\n});\n\nexport const createRAGFileRetrievalLaneHandoffIncidentHistoryStore = (\n\tpath: string\n): RAGRetrievalLaneHandoffIncidentHistoryStore => ({\n\tlistRecords: async ({\n\t\taction,\n\t\tgroupKey,\n\t\tincidentId,\n\t\tlimit,\n\t\ttargetRolloutLabel\n\t} = {}) => {\n\t\tlet parsed: RAGRetrievalLaneHandoffIncidentHistoryRecord[] = [];\n\t\ttry {\n\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\tconst value = JSON.parse(content);\n\t\t\tparsed = Array.isArray(value) ? value : [];\n\t\t} catch (error) {\n\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\tconst filtered = parsed\n\t\t\t.filter(\n\t\t\t\t(entry) =>\n\t\t\t\t\t(!action || entry.action === action) &&\n\t\t\t\t\t(!groupKey || entry.groupKey === groupKey) &&\n\t\t\t\t\t(!incidentId || entry.incidentId === incidentId) &&\n\t\t\t\t\t(!targetRolloutLabel ||\n\t\t\t\t\t\tentry.targetRolloutLabel === targetRolloutLabel)\n\t\t\t)\n\t\t\t.sort((left, right) => right.recordedAt - left.recordedAt);\n\t\treturn typeof limit === 'number' ? filtered.slice(0, limit) : filtered;\n\t},\n\tsaveRecord: async (record) => {\n\t\tconst existing = await (async () => {\n\t\t\ttry {\n\t\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\t\tconst value = JSON.parse(content);\n\t\t\t\treturn Array.isArray(value) ? value : [];\n\t\t\t} catch (error) {\n\t\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t})();\n\t\tconst next = [record, ...existing].sort(\n\t\t\t(\n\t\t\t\tleft: RAGRetrievalLaneHandoffIncidentHistoryRecord,\n\t\t\t\tright: RAGRetrievalLaneHandoffIncidentHistoryRecord\n\t\t\t) => right.recordedAt - left.recordedAt\n\t\t);\n\t\tawait mkdir(dirname(path), { recursive: true });\n\t\tawait writeFile(path, JSON.stringify(next, null, '\\t') + '\\n', 'utf8');\n\t}\n});\n\nexport const createRAGFileRetrievalIncidentRemediationDecisionStore = (\n\tpath: string\n): RAGRetrievalIncidentRemediationDecisionStore => ({\n\tlistRecords: async ({\n\t\tgroupKey,\n\t\tincidentId,\n\t\tlimit,\n\t\tremediationKind,\n\t\tstatus,\n\t\ttargetRolloutLabel\n\t} = {}) => {\n\t\tlet parsed: RAGRetrievalIncidentRemediationDecisionRecord[] = [];\n\t\ttry {\n\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\tconst value = JSON.parse(content);\n\t\t\tparsed = Array.isArray(value) ? value : [];\n\t\t} catch (error) {\n\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\t\tconst filtered = normalizeRetrievalIncidentRemediationDecisionRecords(\n\t\t\tparsed\n\t\t).filter(\n\t\t\t(entry) =>\n\t\t\t\t(!groupKey || entry.groupKey === groupKey) &&\n\t\t\t\t(!incidentId || entry.incidentId === incidentId) &&\n\t\t\t\t(!remediationKind ||\n\t\t\t\t\tentry.remediationKind === remediationKind) &&\n\t\t\t\t(!status || entry.status === status) &&\n\t\t\t\t(!targetRolloutLabel ||\n\t\t\t\t\tentry.targetRolloutLabel === targetRolloutLabel)\n\t\t);\n\t\treturn typeof limit === 'number' ? filtered.slice(0, limit) : filtered;\n\t},\n\tsaveRecord: async (record) => {\n\t\tconst existing = await (async () => {\n\t\t\ttry {\n\t\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\t\tconst value = JSON.parse(content);\n\t\t\t\treturn Array.isArray(value) ? value : [];\n\t\t\t} catch (error) {\n\t\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t})();\n\t\tconst next = normalizeRetrievalIncidentRemediationDecisionRecords([\n\t\t\trecord,\n\t\t\t...existing\n\t\t]);\n\t\tawait mkdir(dirname(path), { recursive: true });\n\t\tawait writeFile(path, JSON.stringify(next, null, '\\t') + '\\n', 'utf8');\n\t}\n});\n\nexport const createRAGFileRetrievalIncidentRemediationExecutionHistoryStore = (\n\tpath: string\n): RAGRetrievalIncidentRemediationExecutionHistoryStore => ({\n\tlistRecords: async ({\n\t\tactionKind,\n\t\tblockedByGuardrail,\n\t\tcode,\n\t\tgroupKey,\n\t\tidempotentReplay,\n\t\tincidentId,\n\t\tlimit,\n\t\ttargetRolloutLabel\n\t} = {}) => {\n\t\tlet parsed: RAGRetrievalIncidentRemediationExecutionHistoryRecord[] =\n\t\t\t[];\n\t\ttry {\n\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\tconst value = JSON.parse(content);\n\t\t\tparsed = Array.isArray(value) ? value : [];\n\t\t} catch (error) {\n\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\t\tconst filtered =\n\t\t\tnormalizeRetrievalIncidentRemediationExecutionHistoryRecords(\n\t\t\t\tparsed\n\t\t\t).filter(\n\t\t\t\t(entry) =>\n\t\t\t\t\t(!groupKey || entry.groupKey === groupKey) &&\n\t\t\t\t\t(!incidentId || entry.incidentId === incidentId) &&\n\t\t\t\t\t(!actionKind || entry.action.kind === actionKind) &&\n\t\t\t\t\t(!code || entry.code === code) &&\n\t\t\t\t\t(typeof blockedByGuardrail !== 'boolean' ||\n\t\t\t\t\t\tentry.blockedByGuardrail === blockedByGuardrail) &&\n\t\t\t\t\t(typeof idempotentReplay !== 'boolean' ||\n\t\t\t\t\t\tentry.idempotentReplay === idempotentReplay) &&\n\t\t\t\t\t(!targetRolloutLabel ||\n\t\t\t\t\t\tentry.targetRolloutLabel === targetRolloutLabel)\n\t\t\t);\n\t\treturn typeof limit === 'number' ? filtered.slice(0, limit) : filtered;\n\t},\n\tsaveRecord: async (record) => {\n\t\tconst existing = await (async () => {\n\t\t\ttry {\n\t\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\t\tconst value = JSON.parse(content);\n\t\t\t\treturn Array.isArray(value) ? value : [];\n\t\t\t} catch (error) {\n\t\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t})();\n\t\tconst next =\n\t\t\tnormalizeRetrievalIncidentRemediationExecutionHistoryRecords([\n\t\t\t\trecord,\n\t\t\t\t...existing\n\t\t\t]);\n\t\tawait mkdir(dirname(path), { recursive: true });\n\t\tawait writeFile(path, JSON.stringify(next, null, '\\t') + '\\n', 'utf8');\n\t}\n});\n\nexport const createRAGFileRetrievalLaneHandoffAutoCompletePolicyHistoryStore = (\n\tpath: string\n): RAGRetrievalLaneHandoffAutoCompletePolicyHistoryStore => ({\n\tlistRecords: async ({ groupKey, limit, targetRolloutLabel } = {}) => {\n\t\tlet parsed: RAGRetrievalLaneHandoffAutoCompletePolicyHistoryRecord[] =\n\t\t\t[];\n\t\ttry {\n\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\tconst value = JSON.parse(content);\n\t\t\tparsed = Array.isArray(value) ? value : [];\n\t\t} catch (error) {\n\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\t\tconst filtered = parsed\n\t\t\t.filter(\n\t\t\t\t(entry) =>\n\t\t\t\t\t(!groupKey || entry.groupKey === groupKey) &&\n\t\t\t\t\t(!targetRolloutLabel ||\n\t\t\t\t\t\tentry.targetRolloutLabel === targetRolloutLabel)\n\t\t\t)\n\t\t\t.sort((left, right) => right.recordedAt - left.recordedAt);\n\t\treturn typeof limit === 'number' ? filtered.slice(0, limit) : filtered;\n\t},\n\tsaveRecord: async (record) => {\n\t\tconst existing = await (async () => {\n\t\t\ttry {\n\t\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\t\tconst value = JSON.parse(content);\n\t\t\t\treturn Array.isArray(value) ? value : [];\n\t\t\t} catch (error) {\n\t\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t})();\n\t\tconst next = [record, ...existing].sort(\n\t\t\t(\n\t\t\t\tleft: RAGRetrievalLaneHandoffAutoCompletePolicyHistoryRecord,\n\t\t\t\tright: RAGRetrievalLaneHandoffAutoCompletePolicyHistoryRecord\n\t\t\t) => right.recordedAt - left.recordedAt\n\t\t);\n\t\tawait mkdir(dirname(path), { recursive: true });\n\t\tawait writeFile(path, JSON.stringify(next, null, '\\t') + '\\n', 'utf8');\n\t}\n});\n\nexport const createRAGFileRetrievalReleaseLanePolicyHistoryStore = (\n\tpath: string\n): RAGRetrievalReleaseLanePolicyHistoryStore => ({\n\tlistRecords: async ({ groupKey, limit, rolloutLabel, scope } = {}) => {\n\t\tlet parsed: RAGRetrievalReleaseLanePolicyHistoryRecord[] = [];\n\t\ttry {\n\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\tconst value = JSON.parse(content);\n\t\t\tparsed = Array.isArray(value) ? value : [];\n\t\t} catch (error) {\n\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\t\tconst filtered = parsed\n\t\t\t.filter(\n\t\t\t\t(entry) =>\n\t\t\t\t\t(!groupKey || entry.groupKey === groupKey) &&\n\t\t\t\t\t(!rolloutLabel || entry.rolloutLabel === rolloutLabel) &&\n\t\t\t\t\t(!scope || entry.scope === scope)\n\t\t\t)\n\t\t\t.sort((left, right) => right.recordedAt - left.recordedAt);\n\t\treturn typeof limit === 'number' ? filtered.slice(0, limit) : filtered;\n\t},\n\tsaveRecord: async (record) => {\n\t\tconst existing = await (async () => {\n\t\t\ttry {\n\t\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\t\tconst value = JSON.parse(content);\n\t\t\t\treturn Array.isArray(value) ? value : [];\n\t\t\t} catch (error) {\n\t\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t})();\n\t\tconst next = [record, ...existing].sort(\n\t\t\t(\n\t\t\t\tleft: RAGRetrievalReleaseLanePolicyHistoryRecord,\n\t\t\t\tright: RAGRetrievalReleaseLanePolicyHistoryRecord\n\t\t\t) => right.recordedAt - left.recordedAt\n\t\t);\n\t\tawait mkdir(dirname(path), { recursive: true });\n\t\tawait writeFile(path, JSON.stringify(next, null, '\\t') + '\\n', 'utf8');\n\t}\n});\n\nexport const createRAGFileRetrievalBaselineGatePolicyHistoryStore = (\n\tpath: string\n): RAGRetrievalBaselineGatePolicyHistoryStore => ({\n\tlistRecords: async ({ groupKey, limit, rolloutLabel, scope } = {}) => {\n\t\tlet parsed: RAGRetrievalBaselineGatePolicyHistoryRecord[] = [];\n\t\ttry {\n\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\tconst value = JSON.parse(content);\n\t\t\tparsed = Array.isArray(value) ? value : [];\n\t\t} catch (error) {\n\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\t\tconst filtered = parsed\n\t\t\t.filter(\n\t\t\t\t(entry) =>\n\t\t\t\t\t(!groupKey || entry.groupKey === groupKey) &&\n\t\t\t\t\t(!rolloutLabel || entry.rolloutLabel === rolloutLabel) &&\n\t\t\t\t\t(!scope || entry.scope === scope)\n\t\t\t)\n\t\t\t.sort((left, right) => right.recordedAt - left.recordedAt);\n\t\treturn typeof limit === 'number' ? filtered.slice(0, limit) : filtered;\n\t},\n\tsaveRecord: async (record) => {\n\t\tconst existing = await (async () => {\n\t\t\ttry {\n\t\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\t\tconst value = JSON.parse(content);\n\t\t\t\treturn Array.isArray(value) ? value : [];\n\t\t\t} catch (error) {\n\t\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t})();\n\t\tconst next = [record, ...existing].sort(\n\t\t\t(\n\t\t\t\tleft: RAGRetrievalBaselineGatePolicyHistoryRecord,\n\t\t\t\tright: RAGRetrievalBaselineGatePolicyHistoryRecord\n\t\t\t) => right.recordedAt - left.recordedAt\n\t\t);\n\t\tawait mkdir(dirname(path), { recursive: true });\n\t\tawait writeFile(path, JSON.stringify(next, null, '\\t') + '\\n', 'utf8');\n\t}\n});\n\nexport const createRAGFileRetrievalReleaseLaneEscalationPolicyHistoryStore = (\n\tpath: string\n): RAGRetrievalReleaseLaneEscalationPolicyHistoryStore => ({\n\tlistRecords: async ({ groupKey, limit, targetRolloutLabel } = {}) => {\n\t\tlet parsed: RAGRetrievalReleaseLaneEscalationPolicyHistoryRecord[] = [];\n\t\ttry {\n\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\tconst value = JSON.parse(content);\n\t\t\tparsed = Array.isArray(value) ? value : [];\n\t\t} catch (error) {\n\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\t\tconst filtered = parsed\n\t\t\t.filter(\n\t\t\t\t(entry) =>\n\t\t\t\t\t(!groupKey || entry.groupKey === groupKey) &&\n\t\t\t\t\t(!targetRolloutLabel ||\n\t\t\t\t\t\tentry.targetRolloutLabel === targetRolloutLabel)\n\t\t\t)\n\t\t\t.sort((left, right) => right.recordedAt - left.recordedAt);\n\t\treturn typeof limit === 'number' ? filtered.slice(0, limit) : filtered;\n\t},\n\tsaveRecord: async (record) => {\n\t\tconst existing = await (async () => {\n\t\t\ttry {\n\t\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\t\tconst value = JSON.parse(content);\n\t\t\t\treturn Array.isArray(value) ? value : [];\n\t\t\t} catch (error) {\n\t\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t})();\n\t\tconst next = [record, ...existing].sort(\n\t\t\t(\n\t\t\t\tleft: RAGRetrievalReleaseLaneEscalationPolicyHistoryRecord,\n\t\t\t\tright: RAGRetrievalReleaseLaneEscalationPolicyHistoryRecord\n\t\t\t) => right.recordedAt - left.recordedAt\n\t\t);\n\t\tawait mkdir(dirname(path), { recursive: true });\n\t\tawait writeFile(path, JSON.stringify(next, null, '\\t') + '\\n', 'utf8');\n\t}\n});\n\nexport const createRAGFileSearchTraceStore = (\n\tpath: string\n): RAGSearchTraceStore => ({\n\tasync listTraces(input) {\n\t\ttry {\n\t\t\tconst raw = await readFile(path, 'utf8');\n\t\t\tconst data = JSON.parse(raw) as {\n\t\t\t\ttraces?: RAGSearchTraceRecord[];\n\t\t\t};\n\t\t\tconst traces = Array.isArray(data.traces) ? data.traces : [];\n\t\t\tconst filtered = traces.filter((trace) => {\n\t\t\t\tif (input?.query && trace.query !== input.query) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (input?.groupKey && trace.groupKey !== input.groupKey) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (input?.tag && !(trace.tags ?? []).includes(input.tag)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t});\n\n\t\t\treturn normalizeTraceSummaryRuns(filtered).slice(\n\t\t\t\t0,\n\t\t\t\tinput?.limit ?? DEFAULT_HISTORY_LIMIT\n\t\t\t);\n\t\t} catch (error) {\n\t\t\tif (\n\t\t\t\terror &&\n\t\t\t\ttypeof error === 'object' &&\n\t\t\t\t'code' in error &&\n\t\t\t\terror.code === 'ENOENT'\n\t\t\t) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tthrow error;\n\t\t}\n\t},\n\tasync saveTrace(trace) {\n\t\tlet traces: RAGSearchTraceRecord[] = [];\n\t\ttry {\n\t\t\tconst raw = await readFile(path, 'utf8');\n\t\t\tconst data = JSON.parse(raw) as {\n\t\t\t\ttraces?: RAGSearchTraceRecord[];\n\t\t\t};\n\t\t\ttraces = Array.isArray(data.traces) ? data.traces : [];\n\t\t} catch (error) {\n\t\t\tif (\n\t\t\t\t!error ||\n\t\t\t\ttypeof error !== 'object' ||\n\t\t\t\t!('code' in error) ||\n\t\t\t\terror.code !== 'ENOENT'\n\t\t\t) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\tconst nextTraces = normalizeTraceSummaryRuns([\n\t\t\ttrace,\n\t\t\t...traces.filter((entry) => entry.id !== trace.id)\n\t\t]);\n\t\tawait mkdir(dirname(path), { recursive: true });\n\t\tawait writeFile(\n\t\t\tpath,\n\t\t\tJSON.stringify(\n\t\t\t\t{\n\t\t\t\t\ttraces: nextTraces\n\t\t\t\t},\n\t\t\t\tnull,\n\t\t\t\t2\n\t\t\t)\n\t\t);\n\t},\n\tasync pruneTraces(input) {\n\t\tlet traces: RAGSearchTraceRecord[] = [];\n\t\ttry {\n\t\t\tconst raw = await readFile(path, 'utf8');\n\t\t\tconst data = JSON.parse(raw) as {\n\t\t\t\ttraces?: RAGSearchTraceRecord[];\n\t\t\t};\n\t\t\ttraces = Array.isArray(data.traces) ? data.traces : [];\n\t\t} catch (error) {\n\t\t\tif (\n\t\t\t\t!error ||\n\t\t\t\ttypeof error !== 'object' ||\n\t\t\t\t!('code' in error) ||\n\t\t\t\terror.code !== 'ENOENT'\n\t\t\t) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\tconst pruned = applyRAGSearchTracePrunePolicy({\n\t\t\tinput,\n\t\t\ttraces\n\t\t});\n\t\tawait mkdir(dirname(path), { recursive: true });\n\t\tawait writeFile(\n\t\t\tpath,\n\t\t\tJSON.stringify(\n\t\t\t\t{\n\t\t\t\t\ttraces: pruned.next\n\t\t\t\t},\n\t\t\t\tnull,\n\t\t\t\t2\n\t\t\t)\n\t\t);\n\n\t\treturn {\n\t\t\tkeptCount: pruned.keptCount,\n\t\t\tremovedCount: pruned.removedCount\n\t\t};\n\t}\n});\n\nexport const createRAGFileSearchTracePruneHistoryStore = (\n\tpath: string\n): RAGSearchTracePruneHistoryStore => ({\n\tlistRuns: async (input) => {\n\t\tlet parsed: RAGSearchTracePruneRun[] = [];\n\t\ttry {\n\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\tconst value = JSON.parse(content);\n\t\t\tparsed = Array.isArray(value) ? value : [];\n\t\t} catch (error) {\n\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\tconst filtered = parsed.filter(\n\t\t\t(entry) => !input?.trigger || entry.trigger === input.trigger\n\t\t);\n\t\tconst sorted = normalizeSearchTracePruneRuns(filtered);\n\t\treturn typeof input?.limit === 'number'\n\t\t\t? sorted.slice(0, input.limit)\n\t\t\t: sorted;\n\t},\n\tsaveRun: async (run) => {\n\t\tconst existing = await (async () => {\n\t\t\ttry {\n\t\t\t\tconst content = await readFile(path, 'utf8');\n\t\t\t\tconst value = JSON.parse(content);\n\t\t\t\treturn Array.isArray(value) ? value : [];\n\t\t\t} catch (error) {\n\t\t\t\tif ((error as NodeJS.ErrnoException).code !== 'ENOENT') {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t})();\n\t\tconst next = normalizeSearchTracePruneRuns([\n\t\t\trun,\n\t\t\t...existing.filter(\n\t\t\t\t(entry: RAGSearchTracePruneRun) => entry.id !== run.id\n\t\t\t)\n\t\t]);\n\t\tawait mkdir(dirname(path), { recursive: true });\n\t\tawait writeFile(path, JSON.stringify(next, null, '\\t') + '\\n', 'utf8');\n\t}\n});\n\nexport type SQLiteRAGSearchTraceStoreOptions = {\n\tdb?: Database;\n\tpath?: string;\n\ttableName?: string;\n};\n\ntype SQLiteSearchTraceRow = {\n\tid: string;\n\tquery: string;\n\tlabel: string;\n\tgroup_key: string | null;\n\ttags_json: string | null;\n\tstarted_at: number;\n\tfinished_at: number;\n\telapsed_ms: number;\n\ttrace_json: string;\n\tsummary_json: string;\n\tresults_json: string;\n\tmetadata_json: string | null;\n};\n\nconst isSQLiteSearchTraceRow = (\n\tvalue: unknown\n): value is SQLiteSearchTraceRow =>\n\tisObjectRecord(value) &&\n\ttypeof value.id === 'string' &&\n\ttypeof value.query === 'string' &&\n\ttypeof value.label === 'string' &&\n\t(typeof value.group_key === 'string' || value.group_key === null) &&\n\t(typeof value.tags_json === 'string' || value.tags_json === null) &&\n\ttypeof value.started_at === 'number' &&\n\ttypeof value.finished_at === 'number' &&\n\ttypeof value.elapsed_ms === 'number' &&\n\ttypeof value.trace_json === 'string' &&\n\ttypeof value.summary_json === 'string' &&\n\ttypeof value.results_json === 'string' &&\n\t(typeof value.metadata_json === 'string' || value.metadata_json === null);\n\nconst assertSupportedIdentifier = (name: string) => {\n\tif (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(name)) {\n\t\tthrow new Error(\n\t\t\t`Invalid SQLite search trace table name \"${name}\". Only alphanumeric and underscore names are allowed.`\n\t\t);\n\t}\n};\n\nconst mapSQLiteSearchTraceRow = (\n\trow: SQLiteSearchTraceRow\n): RAGSearchTraceRecord => ({\n\telapsedMs: row.elapsed_ms,\n\tfinishedAt: row.finished_at,\n\tgroupKey: row.group_key ?? undefined,\n\tid: row.id,\n\tlabel: row.label,\n\tmetadata: parseJSONRecord(row.metadata_json),\n\tquery: row.query,\n\tresults: parseJSONArray(row.results_json, []),\n\tstartedAt: row.started_at,\n\tsummary: JSON.parse(row.summary_json),\n\ttags: normalizeStringArray(parseJSONArray(row.tags_json, [])),\n\ttrace: JSON.parse(row.trace_json)\n});\n\nexport const createRAGSQLiteSearchTraceStore = (\n\toptions: SQLiteRAGSearchTraceStoreOptions\n): RAGSearchTraceStore => {\n\tconst tableName = options.tableName ?? DEFAULT_SEARCH_TRACE_TABLE_NAME;\n\tassertSupportedIdentifier(tableName);\n\n\tconst db =\n\t\toptions.db ??\n\t\tnew (loadBunSQLiteModule().Database)(options.path ?? ':memory:');\n\n\tdb.exec(`\n\t\tCREATE TABLE IF NOT EXISTS ${tableName} (\n\t\t\tid TEXT PRIMARY KEY,\n\t\t\tquery TEXT NOT NULL,\n\t\t\tlabel TEXT NOT NULL,\n\t\t\tgroup_key TEXT,\n\t\t\ttags_json TEXT,\n\t\t\tstarted_at INTEGER NOT NULL,\n\t\t\tfinished_at INTEGER NOT NULL,\n\t\t\telapsed_ms INTEGER NOT NULL,\n\t\t\ttrace_json TEXT NOT NULL,\n\t\t\tsummary_json TEXT NOT NULL,\n\t\t\tresults_json TEXT NOT NULL,\n\t\t\tmetadata_json TEXT\n\t\t)\n\t`);\n\tdb.exec(\n\t\t`CREATE INDEX IF NOT EXISTS ${tableName}_query_finished_at_idx ON ${tableName} (query, finished_at DESC)`\n\t);\n\tdb.exec(\n\t\t`CREATE INDEX IF NOT EXISTS ${tableName}_group_finished_at_idx ON ${tableName} (group_key, finished_at DESC)`\n\t);\n\tdb.exec(\n\t\t`CREATE INDEX IF NOT EXISTS ${tableName}_finished_at_idx ON ${tableName} (finished_at DESC)`\n\t);\n\n\tconst listBase = `\n\t\tSELECT\n\t\t\tid,\n\t\t\tquery,\n\t\t\tlabel,\n\t\t\tgroup_key,\n\t\t\ttags_json,\n\t\t\tstarted_at,\n\t\t\tfinished_at,\n\t\t\telapsed_ms,\n\t\t\ttrace_json,\n\t\t\tsummary_json,\n\t\t\tresults_json,\n\t\t\tmetadata_json\n\t\tFROM ${tableName}\n\t`;\n\tconst insert = db.prepare(`\n\t\tINSERT INTO ${tableName} (\n\t\t\tid,\n\t\t\tquery,\n\t\t\tlabel,\n\t\t\tgroup_key,\n\t\t\ttags_json,\n\t\t\tstarted_at,\n\t\t\tfinished_at,\n\t\t\telapsed_ms,\n\t\t\ttrace_json,\n\t\t\tsummary_json,\n\t\t\tresults_json,\n\t\t\tmetadata_json\n\t\t) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n\t\tON CONFLICT(id) DO UPDATE SET\n\t\t\tquery = excluded.query,\n\t\t\tlabel = excluded.label,\n\t\t\tgroup_key = excluded.group_key,\n\t\t\ttags_json = excluded.tags_json,\n\t\t\tstarted_at = excluded.started_at,\n\t\t\tfinished_at = excluded.finished_at,\n\t\t\telapsed_ms = excluded.elapsed_ms,\n\t\t\ttrace_json = excluded.trace_json,\n\t\t\tsummary_json = excluded.summary_json,\n\t\t\tresults_json = excluded.results_json,\n\t\t\tmetadata_json = excluded.metadata_json\n\t`);\n\tconst remove = db.prepare(`DELETE FROM ${tableName} WHERE id = ?`);\n\n\treturn {\n\t\tlistTraces(input) {\n\t\t\tconst where: string[] = [];\n\t\t\tconst params: Array<string | number> = [];\n\n\t\t\tif (input?.query) {\n\t\t\t\twhere.push('query = ?');\n\t\t\t\tparams.push(input.query);\n\t\t\t}\n\n\t\t\tif (input?.groupKey) {\n\t\t\t\twhere.push('group_key = ?');\n\t\t\t\tparams.push(input.groupKey);\n\t\t\t}\n\n\t\t\tconst sql =\n\t\t\t\t`${listBase}${where.length > 0 ? ` WHERE ${where.join(' AND ')}` : ''} ` +\n\t\t\t\t'ORDER BY finished_at DESC';\n\t\t\tconst rows = db.prepare(sql).all(...params);\n\t\t\tconst traces = Array.isArray(rows)\n\t\t\t\t? rows\n\t\t\t\t\t\t.filter(isSQLiteSearchTraceRow)\n\t\t\t\t\t\t.map(mapSQLiteSearchTraceRow)\n\t\t\t\t: [];\n\t\t\tconst filtered = input?.tag\n\t\t\t\t? traces.filter((trace) =>\n\t\t\t\t\t\t(trace.tags ?? []).includes(input.tag as string)\n\t\t\t\t\t)\n\t\t\t\t: traces;\n\n\t\t\treturn normalizeTraceSummaryRuns(filtered).slice(\n\t\t\t\t0,\n\t\t\t\tinput?.limit ?? DEFAULT_HISTORY_LIMIT\n\t\t\t);\n\t\t},\n\t\tsaveTrace(trace) {\n\t\t\tinsert.run(\n\t\t\t\ttrace.id,\n\t\t\t\ttrace.query,\n\t\t\t\ttrace.label,\n\t\t\t\ttrace.groupKey ?? null,\n\t\t\t\tJSON.stringify(trace.tags ?? []),\n\t\t\t\ttrace.startedAt,\n\t\t\t\ttrace.finishedAt,\n\t\t\t\ttrace.elapsedMs,\n\t\t\t\tJSON.stringify(trace.trace),\n\t\t\t\tJSON.stringify(trace.summary),\n\t\t\t\tJSON.stringify(trace.results),\n\t\t\t\ttrace.metadata === undefined\n\t\t\t\t\t? null\n\t\t\t\t\t: JSON.stringify(trace.metadata)\n\t\t\t);\n\t\t},\n\t\tpruneTraces(input) {\n\t\t\tconst rows = db\n\t\t\t\t.prepare(`${listBase} ORDER BY finished_at DESC`)\n\t\t\t\t.all();\n\t\t\tconst traces = Array.isArray(rows)\n\t\t\t\t? rows\n\t\t\t\t\t\t.filter(isSQLiteSearchTraceRow)\n\t\t\t\t\t\t.map(mapSQLiteSearchTraceRow)\n\t\t\t\t: [];\n\t\t\tconst pruned = applyRAGSearchTracePrunePolicy({\n\t\t\t\tinput,\n\t\t\t\ttraces\n\t\t\t});\n\n\t\t\tfor (const trace of pruned.removed) {\n\t\t\t\tremove.run(trace.id);\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tkeptCount: pruned.keptCount,\n\t\t\t\tremovedCount: pruned.removedCount\n\t\t\t};\n\t\t}\n\t};\n};\n\nexport const createRAGFileAnswerGroundingEvaluationHistoryStore = (\n\tpath: string\n): RAGAnswerGroundingEvaluationHistoryStore => ({\n\tasync listRuns(input) {\n\t\ttry {\n\t\t\tconst raw = await readFile(path, 'utf8');\n\t\t\tconst data = JSON.parse(raw) as {\n\t\t\t\truns?: RAGAnswerGroundingEvaluationRun[];\n\t\t\t};\n\t\t\tconst runs = Array.isArray(data.runs) ? data.runs : [];\n\t\t\tconst filtered = input?.suiteId\n\t\t\t\t? runs.filter((run) => run.suiteId === input.suiteId)\n\t\t\t\t: runs;\n\n\t\t\treturn filtered\n\t\t\t\t.sort(toGroundingHistorySortOrder)\n\t\t\t\t.slice(0, input?.limit ?? DEFAULT_HISTORY_LIMIT);\n\t\t} catch (error) {\n\t\t\tif (\n\t\t\t\terror &&\n\t\t\t\ttypeof error === 'object' &&\n\t\t\t\t'code' in error &&\n\t\t\t\terror.code === 'ENOENT'\n\t\t\t) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tthrow error;\n\t\t}\n\t},\n\tasync saveRun(run) {\n\t\tlet runs: RAGAnswerGroundingEvaluationRun[] = [];\n\t\ttry {\n\t\t\tconst raw = await readFile(path, 'utf8');\n\t\t\tconst data = JSON.parse(raw) as {\n\t\t\t\truns?: RAGAnswerGroundingEvaluationRun[];\n\t\t\t};\n\t\t\truns = Array.isArray(data.runs) ? data.runs : [];\n\t\t} catch (error) {\n\t\t\tif (\n\t\t\t\t!error ||\n\t\t\t\ttypeof error !== 'object' ||\n\t\t\t\t!('code' in error) ||\n\t\t\t\terror.code !== 'ENOENT'\n\t\t\t) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\tconst nextRuns = normalizeGroundingHistoryRuns([\n\t\t\trun,\n\t\t\t...runs.filter((entry) => entry.id !== run.id)\n\t\t]);\n\t\tawait mkdir(dirname(path), { recursive: true });\n\t\tawait writeFile(\n\t\t\tpath,\n\t\t\tJSON.stringify(\n\t\t\t\t{\n\t\t\t\t\truns: nextRuns\n\t\t\t\t},\n\t\t\t\tnull,\n\t\t\t\t2\n\t\t\t)\n\t\t);\n\t}\n});\n\nexport const createRAGFileAnswerGroundingCaseDifficultyHistoryStore = (\n\tpath: string\n): RAGAnswerGroundingCaseDifficultyHistoryStore => ({\n\tasync listRuns(input) {\n\t\ttry {\n\t\t\tconst raw = await readFile(path, 'utf8');\n\t\t\tconst data = JSON.parse(raw) as {\n\t\t\t\truns?: RAGAnswerGroundingCaseDifficultyRun[];\n\t\t\t};\n\t\t\tconst runs = Array.isArray(data.runs) ? data.runs : [];\n\t\t\tconst filtered = input?.suiteId\n\t\t\t\t? runs.filter((run) => run.suiteId === input.suiteId)\n\t\t\t\t: runs;\n\n\t\t\treturn normalizeGroundingDifficultyHistoryRuns(filtered).slice(\n\t\t\t\t0,\n\t\t\t\tinput?.limit ?? DEFAULT_HISTORY_LIMIT\n\t\t\t);\n\t\t} catch (error) {\n\t\t\tif (\n\t\t\t\terror &&\n\t\t\t\ttypeof error === 'object' &&\n\t\t\t\t'code' in error &&\n\t\t\t\terror.code === 'ENOENT'\n\t\t\t) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tthrow error;\n\t\t}\n\t},\n\tasync saveRun(run) {\n\t\tlet runs: RAGAnswerGroundingCaseDifficultyRun[] = [];\n\t\ttry {\n\t\t\tconst raw = await readFile(path, 'utf8');\n\t\t\tconst data = JSON.parse(raw) as {\n\t\t\t\truns?: RAGAnswerGroundingCaseDifficultyRun[];\n\t\t\t};\n\t\t\truns = Array.isArray(data.runs) ? data.runs : [];\n\t\t} catch (error) {\n\t\t\tif (\n\t\t\t\t!error ||\n\t\t\t\ttypeof error !== 'object' ||\n\t\t\t\t!('code' in error) ||\n\t\t\t\terror.code !== 'ENOENT'\n\t\t\t) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\tconst nextRuns = normalizeGroundingDifficultyHistoryRuns([\n\t\t\trun,\n\t\t\t...runs.filter((entry) => entry.id !== run.id)\n\t\t]);\n\t\tawait mkdir(dirname(path), { recursive: true });\n\t\tawait writeFile(\n\t\t\tpath,\n\t\t\tJSON.stringify(\n\t\t\t\t{\n\t\t\t\t\truns: nextRuns\n\t\t\t\t},\n\t\t\t\tnull,\n\t\t\t\t2\n\t\t\t)\n\t\t);\n\t}\n});\n\nexport const loadRAGEvaluationHistory = async ({\n\tstore,\n\tsuite,\n\tlimit = DEFAULT_HISTORY_LIMIT\n}: {\n\tstore: RAGEvaluationHistoryStore;\n\tsuite: RAGEvaluationSuite;\n\tlimit?: number;\n}): Promise<RAGEvaluationHistory> => {\n\tconst runs = normalizeHistoryRuns(\n\t\tawait Promise.resolve(store.listRuns({ limit, suiteId: suite.id }))\n\t);\n\tconst latestRun = runs[0];\n\tconst previousRun = runs[1];\n\n\treturn {\n\t\tcaseTraceSnapshots: buildEvaluationCaseTraceSnapshots({\n\t\t\tcurrent: latestRun,\n\t\t\tprevious: previousRun\n\t\t}),\n\t\tretrievalTraceTrend: buildRAGRetrievalTraceHistoryTrend({\n\t\t\truns\n\t\t}),\n\t\tdiff:\n\t\t\tlatestRun && previousRun\n\t\t\t\t? buildRAGEvaluationRunDiff({\n\t\t\t\t\t\tcurrent: latestRun,\n\t\t\t\t\t\tprevious: previousRun\n\t\t\t\t\t})\n\t\t\t\t: undefined,\n\t\tlatestRun,\n\t\tleaderboard: buildRAGEvaluationLeaderboard(runs),\n\t\tpreviousRun,\n\t\truns,\n\t\tsuiteId: suite.id,\n\t\tsuiteLabel: suite.label ?? suite.id\n\t};\n};\n\nexport const loadRAGSearchTraceHistory = async ({\n\tstore,\n\tquery,\n\tgroupKey,\n\ttag,\n\tlimit = DEFAULT_HISTORY_LIMIT\n}: {\n\tstore: RAGSearchTraceStore;\n\tquery?: string;\n\tgroupKey?: string;\n\ttag?: string;\n\tlimit?: number;\n}): Promise<RAGSearchTraceHistory> => {\n\tconst traces = normalizeTraceSummaryRuns(\n\t\tawait Promise.resolve(store.listTraces({ groupKey, limit, query, tag }))\n\t);\n\tconst latestTrace = traces[0];\n\tconst previousTrace = traces[1];\n\n\treturn {\n\t\tdiff:\n\t\t\tlatestTrace && previousTrace\n\t\t\t\t? buildRAGSearchTraceDiff({\n\t\t\t\t\t\tcurrent: latestTrace,\n\t\t\t\t\t\tprevious: previousTrace\n\t\t\t\t\t})\n\t\t\t\t: undefined,\n\t\tlatestTrace,\n\t\tpreviousTrace,\n\t\tgroupKey,\n\t\tquery,\n\t\ttag,\n\t\tretrievalTraceTrend: buildRAGRetrievalTraceHistoryTrend({\n\t\t\truns: traces.map((trace) => ({\n\t\t\t\tfinishedAt: trace.finishedAt,\n\t\t\t\tid: trace.id,\n\t\t\t\tlabel: trace.label,\n\t\t\t\ttraceSummary: trace.summary\n\t\t\t}))\n\t\t}),\n\t\ttraces\n\t};\n};\n\nexport const loadRAGSearchTraceGroupHistory = async ({\n\tstore,\n\ttag,\n\tlimit = DEFAULT_HISTORY_LIMIT\n}: {\n\tstore: RAGSearchTraceStore;\n\ttag?: string;\n\tlimit?: number;\n}): Promise<RAGSearchTraceGroupHistory> => {\n\tconst traces = normalizeTraceSummaryRuns(\n\t\tawait Promise.resolve(store.listTraces({ limit, tag }))\n\t);\n\tconst grouped = new Map<string, RAGSearchTraceRecord[]>();\n\n\tfor (const trace of traces) {\n\t\tconst groupKey = trace.groupKey ?? trace.query;\n\t\tconst existing = grouped.get(groupKey);\n\t\tif (existing) {\n\t\t\texisting.push(trace);\n\t\t\tcontinue;\n\t\t}\n\t\tgrouped.set(groupKey, [trace]);\n\t}\n\n\tconst groups = Array.from(grouped.entries())\n\t\t.map(([groupKey, entries]): RAGSearchTraceGroupHistoryEntry => {\n\t\t\tconst normalizedEntries = normalizeTraceSummaryRuns(entries);\n\t\t\tconst latestTrace = normalizedEntries[0];\n\t\t\tconst previousTrace = normalizedEntries[1];\n\n\t\t\treturn {\n\t\t\t\tdiff:\n\t\t\t\t\tlatestTrace && previousTrace\n\t\t\t\t\t\t? buildRAGSearchTraceDiff({\n\t\t\t\t\t\t\t\tcurrent: latestTrace,\n\t\t\t\t\t\t\t\tprevious: previousTrace\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t: undefined,\n\t\t\t\tgroupKey,\n\t\t\t\tlatestTrace,\n\t\t\t\tpreviousTrace,\n\t\t\t\tretrievalTraceTrend: buildRAGRetrievalTraceHistoryTrend({\n\t\t\t\t\truns: normalizedEntries.map((trace) => ({\n\t\t\t\t\t\tfinishedAt: trace.finishedAt,\n\t\t\t\t\t\tid: trace.id,\n\t\t\t\t\t\tlabel: trace.label,\n\t\t\t\t\t\ttraceSummary: trace.summary\n\t\t\t\t\t}))\n\t\t\t\t}),\n\t\t\t\ttraceCount: normalizedEntries.length\n\t\t\t};\n\t\t})\n\t\t.sort((left, right) => {\n\t\t\tconst leftFinishedAt = left.latestTrace?.finishedAt ?? 0;\n\t\t\tconst rightFinishedAt = right.latestTrace?.finishedAt ?? 0;\n\t\t\treturn rightFinishedAt - leftFinishedAt;\n\t\t});\n\n\treturn {\n\t\tgroups,\n\t\ttag\n\t};\n};\n\nexport const summarizeRAGSearchTraceStore = async ({\n\tstore,\n\ttag\n}: {\n\tstore: RAGSearchTraceStore;\n\ttag?: string;\n}): Promise<RAGSearchTraceStats> => {\n\tconst traces = normalizeTraceSummaryRuns(\n\t\tawait Promise.resolve(store.listTraces({ tag }))\n\t);\n\n\treturn buildRAGSearchTraceStatsFromTraces(traces);\n};\n\nexport const previewRAGSearchTraceStorePrune = async ({\n\tstore,\n\tinput\n}: {\n\tstore: RAGSearchTraceStore;\n\tinput?: RAGSearchTracePruneInput;\n}): Promise<RAGSearchTracePrunePreview> => {\n\tconst traces = normalizeTraceSummaryRuns(\n\t\tawait Promise.resolve(store.listTraces({ tag: input?.tag }))\n\t);\n\tconst pruned = applyRAGSearchTracePrunePolicy({\n\t\tinput,\n\t\ttraces\n\t});\n\n\treturn {\n\t\tinput,\n\t\tresult: {\n\t\t\tkeptCount: pruned.keptCount,\n\t\t\tremovedCount: pruned.removedCount\n\t\t},\n\t\tstatsAfter: buildRAGSearchTraceStatsFromTraces(pruned.next),\n\t\tstatsBefore: buildRAGSearchTraceStatsFromTraces(traces)\n\t};\n};\n\nexport const loadRAGAnswerGroundingEvaluationHistory = async ({\n\tstore,\n\tsuite,\n\tlimit = DEFAULT_HISTORY_LIMIT\n}: {\n\tstore: RAGAnswerGroundingEvaluationHistoryStore;\n\tsuite: Pick<RAGEvaluationSuite, 'id' | 'label'>;\n\tlimit?: number;\n}): Promise<RAGAnswerGroundingEvaluationHistory> => {\n\tconst runs = normalizeGroundingHistoryRuns(\n\t\tawait Promise.resolve(\n\t\t\tstore.listRuns({\n\t\t\t\tlimit,\n\t\t\t\tsuiteId: suite.id\n\t\t\t})\n\t\t)\n\t);\n\tconst latestRun = runs[0];\n\tconst previousRun = runs[1];\n\n\treturn {\n\t\tcaseSnapshots: buildGroundingCaseSnapshots({\n\t\t\tcurrent: latestRun,\n\t\t\tprevious: previousRun\n\t\t}),\n\t\tdiff:\n\t\t\tlatestRun && previousRun\n\t\t\t\t? buildRAGAnswerGroundingEvaluationRunDiff({\n\t\t\t\t\t\tcurrent: latestRun,\n\t\t\t\t\t\tprevious: previousRun\n\t\t\t\t\t})\n\t\t\t\t: undefined,\n\t\tlatestRun,\n\t\tleaderboard: buildRAGAnswerGroundingEvaluationLeaderboard(runs),\n\t\tpreviousRun,\n\t\truns,\n\t\tsuiteId: suite.id,\n\t\tsuiteLabel: suite.label ?? suite.id\n\t};\n};\n\nexport const loadRAGAnswerGroundingCaseDifficultyHistory = async ({\n\tstore,\n\tsuite,\n\tlimit = DEFAULT_HISTORY_LIMIT\n}: {\n\tstore: RAGAnswerGroundingCaseDifficultyHistoryStore;\n\tsuite: Pick<RAGEvaluationSuite, 'id' | 'label'>;\n\tlimit?: number;\n}): Promise<RAGAnswerGroundingCaseDifficultyHistory> => {\n\tconst runs = normalizeGroundingDifficultyHistoryRuns(\n\t\tawait Promise.resolve(\n\t\t\tstore.listRuns({\n\t\t\t\tlimit,\n\t\t\t\tsuiteId: suite.id\n\t\t\t})\n\t\t)\n\t);\n\tconst latestRun = runs[0];\n\tconst previousRun = runs[1];\n\n\treturn {\n\t\tdiff:\n\t\t\tlatestRun && previousRun\n\t\t\t\t? buildRAGAnswerGroundingCaseDifficultyRunDiff({\n\t\t\t\t\t\tcurrent: latestRun,\n\t\t\t\t\t\tprevious: previousRun\n\t\t\t\t\t})\n\t\t\t\t: undefined,\n\t\tlatestRun,\n\t\tpreviousRun,\n\t\truns,\n\t\tsuiteId: suite.id,\n\t\tsuiteLabel: suite.label ?? suite.id,\n\t\ttrends: buildRAGAnswerGroundingCaseDifficultyTrends({ runs })\n\t};\n};\n\nexport const persistRAGEvaluationSuiteRun = async ({\n\tstore,\n\trun\n}: {\n\tstore: RAGEvaluationHistoryStore;\n\trun: RAGEvaluationSuiteRun;\n}) => {\n\tawait Promise.resolve(store.saveRun(run));\n\treturn run;\n};\n\nexport const persistRAGAnswerGroundingEvaluationRun = async ({\n\tstore,\n\trun\n}: {\n\tstore: RAGAnswerGroundingEvaluationHistoryStore;\n\trun: RAGAnswerGroundingEvaluationRun;\n}) => {\n\tawait Promise.resolve(store.saveRun(run));\n\treturn run;\n};\n\nexport const persistRAGAnswerGroundingCaseDifficultyRun = async ({\n\tstore,\n\trun\n}: {\n\tstore: RAGAnswerGroundingCaseDifficultyHistoryStore;\n\trun: RAGAnswerGroundingCaseDifficultyRun;\n}) => {\n\tawait Promise.resolve(store.saveRun(run));\n\treturn run;\n};\n\nexport const persistRAGSearchTraceRecord = async ({\n\tstore,\n\trecord\n}: {\n\tstore: RAGSearchTraceStore;\n\trecord: RAGSearchTraceRecord;\n}) => {\n\tawait Promise.resolve(store.saveTrace(record));\n\treturn record;\n};\n\nexport const pruneRAGSearchTraceStore = async ({\n\tstore,\n\tinput\n}: {\n\tstore: RAGSearchTraceStore;\n\tinput?: RAGSearchTracePruneInput;\n}): Promise<RAGSearchTracePruneResult> =>\n\tPromise.resolve(store.pruneTraces(input));\n\nexport const persistRAGSearchTracePruneRun = async ({\n\tstore,\n\trun\n}: {\n\tstore: RAGSearchTracePruneHistoryStore;\n\trun: RAGSearchTracePruneRun;\n}) => {\n\tawait Promise.resolve(store.saveRun(run));\n\treturn run;\n};\n\nexport const persistRAGRetrievalComparisonRun = async ({\n\tstore,\n\trun\n}: {\n\tstore: RAGRetrievalComparisonHistoryStore;\n\trun: RAGRetrievalComparisonRun;\n}) => {\n\tawait Promise.resolve(store.saveRun(run));\n\treturn run;\n};\n\nexport const buildRAGRetrievalComparisonDecisionSummary = ({\n\tcomparison,\n\tbaselineRetrievalId,\n\tcandidateRetrievalId,\n\tpolicy\n}: {\n\tcomparison: RAGRetrievalComparison;\n\tbaselineRetrievalId?: string;\n\tcandidateRetrievalId?: string;\n\tpolicy?: RAGRetrievalBaselineGatePolicy;\n}): RAGRetrievalComparisonDecisionSummary | undefined => {\n\tconst baselineEntry =\n\t\tfindRetrievalComparisonEntry(comparison, baselineRetrievalId) ??\n\t\tcomparison.entries[0];\n\tconst candidateEntry =\n\t\tfindRetrievalComparisonEntry(comparison, candidateRetrievalId) ??\n\t\tcomparison.entries.find(\n\t\t\t(entry) => entry.retrievalId !== baselineEntry?.retrievalId\n\t\t) ??\n\t\tcomparison.entries[1];\n\n\tif (!baselineEntry && !candidateEntry) {\n\t\treturn undefined;\n\t}\n\n\tconst delta =\n\t\tbaselineEntry && candidateEntry\n\t\t\t? {\n\t\t\t\t\taverageF1Delta:\n\t\t\t\t\t\tcandidateEntry.response.summary.averageF1 -\n\t\t\t\t\t\tbaselineEntry.response.summary.averageF1,\n\t\t\t\t\telapsedMsDelta:\n\t\t\t\t\t\tcandidateEntry.response.elapsedMs -\n\t\t\t\t\t\tbaselineEntry.response.elapsedMs,\n\t\t\t\t\tpassingRateDelta:\n\t\t\t\t\t\tcandidateEntry.response.passingRate -\n\t\t\t\t\t\tbaselineEntry.response.passingRate\n\t\t\t\t}\n\t\t\t: undefined;\n\n\treturn {\n\t\tbaseline: baselineEntry\n\t\t\t? {\n\t\t\t\t\taverageF1: baselineEntry.response.summary.averageF1,\n\t\t\t\t\telapsedMs: baselineEntry.response.elapsedMs,\n\t\t\t\t\tlabel: baselineEntry.label,\n\t\t\t\t\tpassingRate: baselineEntry.response.passingRate,\n\t\t\t\t\tretrievalId: baselineEntry.retrievalId\n\t\t\t\t}\n\t\t\t: undefined,\n\t\tbaselineRetrievalId: baselineEntry?.retrievalId,\n\t\tcandidate: candidateEntry\n\t\t\t? {\n\t\t\t\t\taverageF1: candidateEntry.response.summary.averageF1,\n\t\t\t\t\telapsedMs: candidateEntry.response.elapsedMs,\n\t\t\t\t\tlabel: candidateEntry.label,\n\t\t\t\t\tpassingRate: candidateEntry.response.passingRate,\n\t\t\t\t\tretrievalId: candidateEntry.retrievalId\n\t\t\t\t}\n\t\t\t: undefined,\n\t\tcandidateRetrievalId: candidateEntry?.retrievalId,\n\t\tdelta,\n\t\tfastest: comparison.summary.fastest,\n\t\tgate: evaluateRetrievalComparisonGate({ delta, policy }),\n\t\twinnerByAverageF1: comparison.summary.bestByAverageF1,\n\t\twinnerByPassingRate: comparison.summary.bestByPassingRate\n\t};\n};\n\nexport const loadRAGSearchTracePruneHistory = async ({\n\tstore,\n\tlimit,\n\ttrigger\n}: {\n\tstore: RAGSearchTracePruneHistoryStore;\n\tlimit?: number;\n\ttrigger?: RAGSearchTracePruneRun['trigger'];\n}) =>\n\tnormalizeSearchTracePruneRuns(\n\t\tawait Promise.resolve(store.listRuns({ limit, trigger }))\n\t);\n\nexport const loadRAGRetrievalComparisonHistory = async ({\n\tstore,\n\tlimit,\n\tsuiteId,\n\tlabel,\n\twinnerId,\n\tgroupKey,\n\ttag\n}: {\n\tstore: RAGRetrievalComparisonHistoryStore;\n\tlimit?: number;\n\tsuiteId?: string;\n\tlabel?: string;\n\twinnerId?: string;\n\tgroupKey?: string;\n\ttag?: string;\n}) =>\n\tnormalizeRetrievalComparisonRuns(\n\t\tawait Promise.resolve(\n\t\t\tstore.listRuns({ groupKey, label, limit, suiteId, tag, winnerId })\n\t\t)\n\t);\n\nexport const loadRAGRetrievalBaselines = async ({\n\tstore,\n\tgroupKey,\n\ttag,\n\tlimit,\n\tstatus\n}: {\n\tstore: RAGRetrievalBaselineStore;\n\tgroupKey?: string;\n\ttag?: string;\n\tlimit?: number;\n\tstatus?: RAGRetrievalBaselineRecord['status'];\n}) =>\n\tnormalizeRetrievalBaselineRecords(\n\t\tawait Promise.resolve(\n\t\t\tstore.listBaselines({ groupKey, limit, status, tag })\n\t\t)\n\t);\n\nexport const persistRAGRetrievalBaseline = async ({\n\tstore,\n\trecord\n}: {\n\tstore: RAGRetrievalBaselineStore;\n\trecord: RAGRetrievalBaselineRecord;\n}) => {\n\tawait Promise.resolve(store.saveBaseline(record));\n\treturn record;\n};\n\nexport const loadRAGRetrievalReleaseDecisions = async ({\n\tstore,\n\tgroupKey,\n\tlimit,\n\tkind\n}: {\n\tstore: RAGRetrievalReleaseDecisionStore;\n\tgroupKey?: string;\n\tlimit?: number;\n\tkind?: RAGRetrievalReleaseDecisionRecord['kind'];\n}) =>\n\tnormalizeRetrievalReleaseDecisionRecords(\n\t\tawait Promise.resolve(store.listDecisions({ groupKey, kind, limit }))\n\t);\n\nexport const loadRAGRetrievalLaneHandoffDecisions = async ({\n\tstore,\n\tgroupKey,\n\tlimit,\n\tkind,\n\tsourceRolloutLabel,\n\ttargetRolloutLabel\n}: {\n\tstore: RAGRetrievalLaneHandoffDecisionStore;\n\tgroupKey?: string;\n\tlimit?: number;\n\tkind?: RAGRetrievalLaneHandoffDecisionRecord['kind'];\n\tsourceRolloutLabel?: RAGRetrievalLaneHandoffDecisionRecord['sourceRolloutLabel'];\n\ttargetRolloutLabel?: RAGRetrievalLaneHandoffDecisionRecord['targetRolloutLabel'];\n}) =>\n\tnormalizeRetrievalLaneHandoffDecisionRecords(\n\t\tawait Promise.resolve(\n\t\t\tstore.listDecisions({\n\t\t\t\tgroupKey,\n\t\t\t\tkind,\n\t\t\t\tlimit,\n\t\t\t\tsourceRolloutLabel,\n\t\t\t\ttargetRolloutLabel\n\t\t\t})\n\t\t)\n\t);\n\nexport const loadRAGRetrievalReleaseIncidents = async ({\n\tstore,\n\tgroupKey,\n\tlimit,\n\ttargetRolloutLabel,\n\tstatus,\n\tseverity\n}: {\n\tstore: RAGRetrievalReleaseIncidentStore;\n\tgroupKey?: string;\n\tlimit?: number;\n\ttargetRolloutLabel?: RAGRetrievalReleaseIncidentRecord['targetRolloutLabel'];\n\tstatus?: RAGRetrievalReleaseIncidentRecord['status'];\n\tseverity?: RAGRetrievalReleaseIncidentRecord['severity'];\n}) =>\n\tnormalizeRetrievalReleaseIncidentRecords(\n\t\tawait Promise.resolve(\n\t\t\tstore.listIncidents({\n\t\t\t\tgroupKey,\n\t\t\t\tlimit,\n\t\t\t\tseverity,\n\t\t\t\tstatus,\n\t\t\t\ttargetRolloutLabel\n\t\t\t})\n\t\t)\n\t);\n\nexport const loadRAGRetrievalLaneHandoffIncidents = async ({\n\tstore,\n\tgroupKey,\n\tlimit,\n\ttargetRolloutLabel,\n\tstatus,\n\tseverity\n}: {\n\tstore: RAGRetrievalLaneHandoffIncidentStore;\n\tgroupKey?: string;\n\tlimit?: number;\n\ttargetRolloutLabel?: RAGRetrievalLaneHandoffIncidentRecord['targetRolloutLabel'];\n\tstatus?: RAGRetrievalLaneHandoffIncidentRecord['status'];\n\tseverity?: RAGRetrievalLaneHandoffIncidentRecord['severity'];\n}) =>\n\tnormalizeRetrievalReleaseIncidentRecords(\n\t\t(await Promise.resolve(\n\t\t\tstore.listIncidents({\n\t\t\t\tgroupKey,\n\t\t\t\tlimit,\n\t\t\t\tseverity,\n\t\t\t\tstatus,\n\t\t\t\ttargetRolloutLabel\n\t\t\t})\n\t\t)) as RAGRetrievalReleaseIncidentRecord[]\n\t) as RAGRetrievalLaneHandoffIncidentRecord[];\n\nexport const loadRAGRetrievalLaneHandoffIncidentHistory = async ({\n\tstore,\n\taction,\n\tgroupKey,\n\tincidentId,\n\tlimit,\n\ttargetRolloutLabel\n}: {\n\tstore: RAGRetrievalLaneHandoffIncidentHistoryStore;\n\taction?: RAGRetrievalLaneHandoffIncidentHistoryRecord['action'];\n\tgroupKey?: string;\n\tincidentId?: string;\n\tlimit?: number;\n\ttargetRolloutLabel?: RAGRetrievalLaneHandoffIncidentRecord['targetRolloutLabel'];\n}) =>\n\t(await Promise.resolve(\n\t\tstore.listRecords({\n\t\t\taction,\n\t\t\tgroupKey,\n\t\t\tincidentId,\n\t\t\tlimit,\n\t\t\ttargetRolloutLabel\n\t\t})\n\t)) as RAGRetrievalLaneHandoffIncidentHistoryRecord[];\n\nexport const loadRAGRetrievalIncidentRemediationDecisions = async ({\n\tstore,\n\tgroupKey,\n\tincidentId,\n\tlimit,\n\tremediationKind,\n\tstatus,\n\ttargetRolloutLabel\n}: {\n\tstore: RAGRetrievalIncidentRemediationDecisionStore;\n\tgroupKey?: string;\n\tincidentId?: string;\n\tlimit?: number;\n\tremediationKind?: RAGRetrievalIncidentRemediationDecisionRecord['remediationKind'];\n\tstatus?: RAGRetrievalIncidentRemediationDecisionRecord['status'];\n\ttargetRolloutLabel?: RAGRetrievalIncidentRemediationDecisionRecord['targetRolloutLabel'];\n}) =>\n\tnormalizeRetrievalIncidentRemediationDecisionRecords(\n\t\tawait Promise.resolve(\n\t\t\tstore.listRecords({\n\t\t\t\tgroupKey,\n\t\t\t\tincidentId,\n\t\t\t\tlimit,\n\t\t\t\tremediationKind,\n\t\t\t\tstatus,\n\t\t\t\ttargetRolloutLabel\n\t\t\t})\n\t\t)\n\t);\n\nexport const loadRAGRetrievalIncidentRemediationExecutionHistory = async ({\n\tstore,\n\tactionKind,\n\tblockedByGuardrail,\n\tcode,\n\tgroupKey,\n\tidempotentReplay,\n\tincidentId,\n\tlimit,\n\ttargetRolloutLabel\n}: {\n\tstore: RAGRetrievalIncidentRemediationExecutionHistoryStore;\n\tactionKind?: RAGRemediationAction['kind'];\n\tblockedByGuardrail?: boolean;\n\tcode?: RAGRetrievalIncidentRemediationExecutionHistoryRecord['code'];\n\tgroupKey?: string;\n\tidempotentReplay?: boolean;\n\tincidentId?: string;\n\tlimit?: number;\n\ttargetRolloutLabel?: RAGRetrievalIncidentRemediationExecutionHistoryRecord['targetRolloutLabel'];\n}) =>\n\tnormalizeRetrievalIncidentRemediationExecutionHistoryRecords(\n\t\tawait Promise.resolve(\n\t\t\tstore.listRecords({\n\t\t\t\tactionKind,\n\t\t\t\tblockedByGuardrail,\n\t\t\t\tcode,\n\t\t\t\tgroupKey,\n\t\t\t\tidempotentReplay,\n\t\t\t\tincidentId,\n\t\t\t\tlimit,\n\t\t\t\ttargetRolloutLabel\n\t\t\t})\n\t\t)\n\t);\n\nexport const loadRAGRetrievalLaneHandoffAutoCompletePolicyHistory = async ({\n\tstore,\n\tgroupKey,\n\tlimit,\n\ttargetRolloutLabel\n}: {\n\tstore: RAGRetrievalLaneHandoffAutoCompletePolicyHistoryStore;\n\tgroupKey?: string;\n\tlimit?: number;\n\ttargetRolloutLabel?: RAGRetrievalLaneHandoffAutoCompletePolicyHistoryRecord['targetRolloutLabel'];\n}) =>\n\t(await Promise.resolve(\n\t\tstore.listRecords({\n\t\t\tgroupKey,\n\t\t\tlimit,\n\t\t\ttargetRolloutLabel\n\t\t})\n\t)) as RAGRetrievalLaneHandoffAutoCompletePolicyHistoryRecord[];\n\nexport const loadRAGRetrievalReleaseLanePolicyHistory = async ({\n\tstore,\n\tgroupKey,\n\tlimit,\n\trolloutLabel,\n\tscope\n}: {\n\tstore: RAGRetrievalReleaseLanePolicyHistoryStore;\n\tgroupKey?: string;\n\tlimit?: number;\n\trolloutLabel?: RAGRetrievalReleaseLanePolicyHistoryRecord['rolloutLabel'];\n\tscope?: RAGRetrievalReleaseLanePolicyHistoryRecord['scope'];\n}) =>\n\t(await Promise.resolve(\n\t\tstore.listRecords({\n\t\t\tgroupKey,\n\t\t\tlimit,\n\t\t\trolloutLabel,\n\t\t\tscope\n\t\t})\n\t)) as RAGRetrievalReleaseLanePolicyHistoryRecord[];\n\nexport const loadRAGRetrievalBaselineGatePolicyHistory = async ({\n\tstore,\n\tgroupKey,\n\tlimit,\n\trolloutLabel,\n\tscope\n}: {\n\tstore: RAGRetrievalBaselineGatePolicyHistoryStore;\n\tgroupKey?: string;\n\tlimit?: number;\n\trolloutLabel?: RAGRetrievalBaselineGatePolicyHistoryRecord['rolloutLabel'];\n\tscope?: RAGRetrievalBaselineGatePolicyHistoryRecord['scope'];\n}) =>\n\t(await Promise.resolve(\n\t\tstore.listRecords({\n\t\t\tgroupKey,\n\t\t\tlimit,\n\t\t\trolloutLabel,\n\t\t\tscope\n\t\t})\n\t)) as RAGRetrievalBaselineGatePolicyHistoryRecord[];\n\nexport const loadRAGRetrievalReleaseLaneEscalationPolicyHistory = async ({\n\tstore,\n\tgroupKey,\n\tlimit,\n\ttargetRolloutLabel\n}: {\n\tstore: RAGRetrievalReleaseLaneEscalationPolicyHistoryStore;\n\tgroupKey?: string;\n\tlimit?: number;\n\ttargetRolloutLabel?: RAGRetrievalReleaseLaneEscalationPolicyHistoryRecord['targetRolloutLabel'];\n}) =>\n\t(await Promise.resolve(\n\t\tstore.listRecords({\n\t\t\tgroupKey,\n\t\t\tlimit,\n\t\t\ttargetRolloutLabel\n\t\t})\n\t)) as RAGRetrievalReleaseLaneEscalationPolicyHistoryRecord[];\n\nexport const persistRAGRetrievalReleaseDecision = async ({\n\tstore,\n\trecord\n}: {\n\tstore: RAGRetrievalReleaseDecisionStore;\n\trecord: RAGRetrievalReleaseDecisionRecord;\n}) => {\n\tawait Promise.resolve(store.saveDecision(record));\n\treturn record;\n};\n\nexport const persistRAGRetrievalLaneHandoffDecision = async ({\n\tstore,\n\trecord\n}: {\n\tstore: RAGRetrievalLaneHandoffDecisionStore;\n\trecord: RAGRetrievalLaneHandoffDecisionRecord;\n}) => {\n\tawait Promise.resolve(store.saveDecision(record));\n\treturn record;\n};\n\nexport const persistRAGRetrievalReleaseIncident = async ({\n\tstore,\n\trecord\n}: {\n\tstore: RAGRetrievalReleaseIncidentStore;\n\trecord: RAGRetrievalReleaseIncidentRecord;\n}) => {\n\tawait Promise.resolve(store.saveIncident(record));\n\treturn record;\n};\n\nexport const persistRAGRetrievalLaneHandoffIncident = async ({\n\tstore,\n\trecord\n}: {\n\tstore: RAGRetrievalLaneHandoffIncidentStore;\n\trecord: RAGRetrievalLaneHandoffIncidentRecord;\n}) => {\n\tawait Promise.resolve(store.saveIncident(record));\n\treturn record;\n};\n\nexport const persistRAGRetrievalIncidentRemediationDecision = async ({\n\tstore,\n\trecord\n}: {\n\tstore: RAGRetrievalIncidentRemediationDecisionStore;\n\trecord: RAGRetrievalIncidentRemediationDecisionRecord;\n}) => {\n\tawait Promise.resolve(store.saveRecord(record));\n\treturn record;\n};\n\nexport const persistRAGRetrievalIncidentRemediationExecutionHistory = async ({\n\tstore,\n\trecord\n}: {\n\tstore: RAGRetrievalIncidentRemediationExecutionHistoryStore;\n\trecord: RAGRetrievalIncidentRemediationExecutionHistoryRecord;\n}) => {\n\tawait Promise.resolve(store.saveRecord(record));\n\treturn record;\n};\n\nexport const persistRAGRetrievalLaneHandoffIncidentHistory = async ({\n\tstore,\n\trecord\n}: {\n\tstore: RAGRetrievalLaneHandoffIncidentHistoryStore;\n\trecord: RAGRetrievalLaneHandoffIncidentHistoryRecord;\n}) => {\n\tawait Promise.resolve(store.saveRecord(record));\n\treturn record;\n};\n\nexport const persistRAGRetrievalLaneHandoffAutoCompletePolicyHistory = async ({\n\tstore,\n\trecord\n}: {\n\tstore: RAGRetrievalLaneHandoffAutoCompletePolicyHistoryStore;\n\trecord: RAGRetrievalLaneHandoffAutoCompletePolicyHistoryRecord;\n}) => {\n\tawait Promise.resolve(store.saveRecord(record));\n\treturn record;\n};\n\nexport const persistRAGRetrievalReleaseLanePolicyHistory = async ({\n\tstore,\n\trecord\n}: {\n\tstore: RAGRetrievalReleaseLanePolicyHistoryStore;\n\trecord: RAGRetrievalReleaseLanePolicyHistoryRecord;\n}) => {\n\tawait Promise.resolve(store.saveRecord(record));\n\treturn record;\n};\n\nexport const persistRAGRetrievalBaselineGatePolicyHistory = async ({\n\tstore,\n\trecord\n}: {\n\tstore: RAGRetrievalBaselineGatePolicyHistoryStore;\n\trecord: RAGRetrievalBaselineGatePolicyHistoryRecord;\n}) => {\n\tawait Promise.resolve(store.saveRecord(record));\n\treturn record;\n};\n\nexport const persistRAGRetrievalReleaseLaneEscalationPolicyHistory = async ({\n\tstore,\n\trecord\n}: {\n\tstore: RAGRetrievalReleaseLaneEscalationPolicyHistoryStore;\n\trecord: RAGRetrievalReleaseLaneEscalationPolicyHistoryRecord;\n}) => {\n\tawait Promise.resolve(store.saveRecord(record));\n\treturn record;\n};\n\nexport const buildRAGEvaluationResponse = (\n\tcases: RAGEvaluationCaseResult[]\n): RAGEvaluationResponse => {\n\tconst totalCases = cases.length;\n\tconst passedCases = cases.filter((entry) => entry.status === 'pass').length;\n\tconst partialCases = cases.filter(\n\t\t(entry) => entry.status === 'partial'\n\t).length;\n\tconst failedCases = cases.filter((entry) => entry.status === 'fail').length;\n\n\treturn {\n\t\tcases,\n\t\telapsedMs: cases.reduce((sum, result) => sum + result.elapsedMs, 0),\n\t\tok: true,\n\t\tpassingRate: totalCases > 0 ? (passedCases / totalCases) * 100 : 0,\n\t\tsummary: {\n\t\t\taverageF1:\n\t\t\t\tcases.reduce((sum, result) => sum + result.f1, 0) /\n\t\t\t\t(totalCases || 1),\n\t\t\taverageLatencyMs:\n\t\t\t\tcases.reduce((sum, result) => sum + result.elapsedMs, 0) /\n\t\t\t\t(totalCases || 1),\n\t\t\taveragePrecision:\n\t\t\t\tcases.reduce((sum, result) => sum + result.precision, 0) /\n\t\t\t\t(totalCases || 1),\n\t\t\taverageRecall:\n\t\t\t\tcases.reduce((sum, result) => sum + result.recall, 0) /\n\t\t\t\t(totalCases || 1),\n\t\t\tfailedCases,\n\t\t\tpartialCases,\n\t\t\tpassedCases,\n\t\t\ttotalCases\n\t\t},\n\t\ttotalCases\n\t};\n};\n\nexport const evaluateRAGAnswerGroundingCase = ({\n\tcaseIndex,\n\tcaseInput\n}: {\n\tcaseIndex: number;\n\tcaseInput: RAGAnswerGroundingEvaluationCase;\n}): RAGAnswerGroundingEvaluationCaseResult => {\n\tconst mode = resolveEvaluationMode(caseInput);\n\tconst expectedIds = normalizeExpectedIds(\n\t\tmode === 'chunkId'\n\t\t\t? (caseInput.expectedChunkIds ?? [])\n\t\t\t: mode === 'source'\n\t\t\t\t? (caseInput.expectedSources ?? [])\n\t\t\t\t: (caseInput.expectedDocumentIds ?? [])\n\t);\n\tconst groundedAnswer = buildRAGGroundedAnswer(\n\t\tcaseInput.answer,\n\t\tcaseInput.sources\n\t);\n\tconst citedReferences = groundedAnswer.parts.flatMap((part) =>\n\t\tpart.type === 'citation' ? part.references : []\n\t);\n\tconst citedIds = normalizeExpectedIds(\n\t\tcitedReferences.map((reference) => extractExpectedId(reference, mode))\n\t);\n\tconst expectedSet = new Set(expectedIds);\n\tconst citedSet = new Set(citedIds);\n\tconst matchedIds = normalizeExpectedIds(\n\t\t[...expectedSet].filter((id) => citedSet.has(id))\n\t);\n\tconst missingIds = normalizeExpectedIds(\n\t\t[...expectedSet].filter((id) => !citedSet.has(id))\n\t);\n\tconst extraIds = normalizeExpectedIds(\n\t\t[...citedSet].filter((id) => !expectedSet.has(id))\n\t);\n\tconst matchedCount = matchedIds.length;\n\tconst expectedCount = expectedIds.length;\n\tconst citedCount = citedIds.length;\n\tconst precision = citedCount > 0 ? matchedCount / citedCount : 0;\n\tconst recall = expectedCount > 0 ? matchedCount / expectedCount : 0;\n\tconst citationF1 =\n\t\tprecision + recall > 0\n\t\t\t? (2 * precision * recall) / (precision + recall)\n\t\t\t: 0;\n\tconst citationCount = groundedAnswer.parts.filter(\n\t\t(part) => part.type === 'citation'\n\t).length;\n\tconst unresolvedCitationCount = new Set(\n\t\tgroundedAnswer.ungroundedReferenceNumbers\n\t).size;\n\tconst resolvedCitationCount = citedReferences.length;\n\tconst resolvedCitationRate =\n\t\tcitationCount > 0\n\t\t\t? Math.min(1, resolvedCitationCount / citationCount)\n\t\t\t: 0;\n\n\treturn {\n\t\tanswer: caseInput.answer,\n\t\tcaseId: caseInput.id ?? `case-${caseIndex + 1}`,\n\t\tcitationCount,\n\t\tcitationF1,\n\t\tcitationPrecision: precision,\n\t\tcitationRecall: recall,\n\t\tcitedIds,\n\t\tcoverage: groundedAnswer.coverage,\n\t\texpectedCount,\n\t\texpectedIds,\n\t\textraIds,\n\t\tgroundedAnswer,\n\t\thasCitations: groundedAnswer.hasCitations,\n\t\tlabel: caseInput.label,\n\t\tmatchedCount,\n\t\tmatchedIds,\n\t\tmetadata: caseInput.metadata,\n\t\tmissingIds,\n\t\tmode,\n\t\tquery: caseInput.query,\n\t\treferenceCount: groundedAnswer.references.length,\n\t\tresolvedCitationCount,\n\t\tresolvedCitationRate,\n\t\tstatus: buildAnswerGroundingStatus({\n\t\t\tcoverage: groundedAnswer.coverage,\n\t\t\texpectedCount,\n\t\t\tmatchedCount,\n\t\t\tresolvedCitationCount,\n\t\t\tunresolvedCitationCount\n\t\t}),\n\t\tunresolvedCitationCount\n\t};\n};\n\nexport const buildRAGAnswerGroundingEvaluationResponse = (\n\tcases: RAGAnswerGroundingEvaluationCaseResult[]\n): RAGAnswerGroundingEvaluationResponse => {\n\tconst totalCases = cases.length;\n\tconst passedCases = cases.filter((entry) => entry.status === 'pass').length;\n\tconst partialCases = cases.filter(\n\t\t(entry) => entry.status === 'partial'\n\t).length;\n\tconst failedCases = cases.filter((entry) => entry.status === 'fail').length;\n\tconst groundedCases = cases.filter(\n\t\t(entry) => entry.coverage === 'grounded'\n\t).length;\n\tconst partiallyGroundedCases = cases.filter(\n\t\t(entry) => entry.coverage === 'partial'\n\t).length;\n\tconst ungroundedCases = cases.filter(\n\t\t(entry) => entry.coverage === 'ungrounded'\n\t).length;\n\n\treturn {\n\t\tcases,\n\t\tok: true,\n\t\tpassingRate: totalCases > 0 ? (passedCases / totalCases) * 100 : 0,\n\t\tsummary: {\n\t\t\taverageCitationF1:\n\t\t\t\tcases.reduce((sum, result) => sum + result.citationF1, 0) /\n\t\t\t\t(totalCases || 1),\n\t\t\taverageCitationPrecision:\n\t\t\t\tcases.reduce(\n\t\t\t\t\t(sum, result) => sum + result.citationPrecision,\n\t\t\t\t\t0\n\t\t\t\t) / (totalCases || 1),\n\t\t\taverageCitationRecall:\n\t\t\t\tcases.reduce((sum, result) => sum + result.citationRecall, 0) /\n\t\t\t\t(totalCases || 1),\n\t\t\taverageResolvedCitationRate:\n\t\t\t\tcases.reduce(\n\t\t\t\t\t(sum, result) => sum + result.resolvedCitationRate,\n\t\t\t\t\t0\n\t\t\t\t) / (totalCases || 1),\n\t\t\tfailedCases,\n\t\t\tgroundedCases,\n\t\t\tpartiallyGroundedCases,\n\t\t\tpassedCases,\n\t\t\tpartialCases,\n\t\t\ttotalCases,\n\t\t\tungroundedCases\n\t\t},\n\t\ttotalCases\n\t};\n};\n\nexport const evaluateRAGAnswerGrounding = (\n\tinput: RAGAnswerGroundingEvaluationInput\n): RAGAnswerGroundingEvaluationResponse =>\n\tbuildRAGAnswerGroundingEvaluationResponse(\n\t\tinput.cases.map((caseInput, caseIndex) =>\n\t\t\tevaluateRAGAnswerGroundingCase({ caseIndex, caseInput })\n\t\t)\n\t);\nexport const compareRAGRerankers = async ({\n\tcollection,\n\tsuite,\n\trerankers,\n\tdefaultTopK = DEFAULT_TOP_K\n}: {\n\tcollection: RAGCollection;\n\tsuite: RAGEvaluationSuite;\n\trerankers: RAGRerankerCandidate[];\n\tdefaultTopK?: number;\n}): Promise<RAGRerankerComparison> => {\n\tconst entries = await Promise.all(\n\t\trerankers.map(async (candidate) => {\n\t\t\tconst evaluated = await evaluateRAGCollectionCases({\n\t\t\t\tcollection,\n\t\t\t\tdefaultTopK,\n\t\t\t\tinput: suite.input,\n\t\t\t\tincludeTrace: true,\n\t\t\t\trerank: candidate.rerank\n\t\t\t});\n\t\t\tconst response = buildRAGEvaluationResponse(\n\t\t\t\tevaluated.map((entry) => entry.caseResult)\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tcaseTraceSnapshots:\n\t\t\t\t\tbuildEvaluationCaseTraceSnapshotsFromEvaluated(evaluated),\n\t\t\t\tlabel: candidate.label ?? candidate.id,\n\t\t\t\tproviderName:\n\t\t\t\t\ttypeof candidate.rerank === 'function'\n\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t: candidate.rerank?.providerName,\n\t\t\t\tresponse,\n\t\t\t\trerankerId: candidate.id,\n\t\t\t\ttraceSummary: summarizeRetrievalTraces(\n\t\t\t\t\tevaluated\n\t\t\t\t\t\t.map((entry) => entry.trace)\n\t\t\t\t\t\t.filter((trace): trace is RAGRetrievalTrace =>\n\t\t\t\t\t\t\tBoolean(trace)\n\t\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t} satisfies RAGRerankerComparisonEntry;\n\t\t})\n\t);\n\n\tconst leaderboard = buildRAGEvaluationLeaderboard(\n\t\tentries.map((entry) => ({\n\t\t\telapsedMs: entry.response.elapsedMs,\n\t\t\tfinishedAt: 0,\n\t\t\tid: entry.rerankerId,\n\t\t\tlabel: entry.label,\n\t\t\tresponse: entry.response,\n\t\t\tstartedAt: 0,\n\t\t\tsuiteId: suite.id,\n\t\t\ttraceSummary: entry.traceSummary\n\t\t}))\n\t);\n\n\treturn {\n\t\tentries,\n\t\tleaderboard,\n\t\tsummary: summarizeRAGRerankerComparison(entries),\n\t\tsuiteId: suite.id,\n\t\tsuiteLabel: suite.label ?? suite.id\n\t};\n};\nconst summarizeEvaluationResponseComparison = <\n\tTEntry extends {\n\t\tresponse: RAGEvaluationResponse;\n\t\t[key: string]: unknown;\n\t}\n>(\n\tentries: TEntry[],\n\tidKey: keyof TEntry\n) => {\n\tif (entries.length === 0) {\n\t\treturn {};\n\t}\n\n\tconst byPassingRate = [...entries].sort((left, right) => {\n\t\tif (right.response.passingRate !== left.response.passingRate) {\n\t\t\treturn right.response.passingRate - left.response.passingRate;\n\t\t}\n\t\tif (\n\t\t\tright.response.summary.averageF1 !== left.response.summary.averageF1\n\t\t) {\n\t\t\treturn (\n\t\t\t\tright.response.summary.averageF1 -\n\t\t\t\tleft.response.summary.averageF1\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\tleft.response.summary.averageLatencyMs -\n\t\t\tright.response.summary.averageLatencyMs\n\t\t);\n\t});\n\tconst byAverageF1 = [...entries].sort(\n\t\t(left, right) =>\n\t\t\tright.response.summary.averageF1 - left.response.summary.averageF1\n\t);\n\tconst byLatency = [...entries].sort(\n\t\t(left, right) =>\n\t\t\tleft.response.summary.averageLatencyMs -\n\t\t\tright.response.summary.averageLatencyMs\n\t);\n\tconst getId = (entry: TEntry) =>\n\t\ttypeof entry[idKey] === 'string' ? (entry[idKey] as string) : undefined;\n\n\treturn {\n\t\tbestByAverageF1: getId(byAverageF1[0] as TEntry),\n\t\tbestByPassingRate: getId(byPassingRate[0] as TEntry),\n\t\tfastest: getId(byLatency[0] as TEntry)\n\t};\n};\nconst resolveRetrievalMode = (\n\tcandidate: RAGRetrievalCandidate\n): RAGHybridRetrievalMode => {\n\tif (!candidate.retrieval) {\n\t\treturn 'vector';\n\t}\n\n\treturn typeof candidate.retrieval === 'string'\n\t\t? candidate.retrieval\n\t\t: (candidate.retrieval.mode ?? 'vector');\n};\nexport const compareRAGRetrievalStrategies = async ({\n\tcollection,\n\tsuite,\n\tretrievals,\n\tdefaultTopK = DEFAULT_TOP_K\n}: {\n\tcollection: RAGCollection;\n\tsuite: RAGEvaluationSuite;\n\tretrievals: RAGRetrievalCandidate[];\n\tdefaultTopK?: number;\n}): Promise<RAGRetrievalComparison> => {\n\tconst entries = await Promise.all(\n\t\tretrievals.map(async (candidate) => {\n\t\t\tconst tracedCollection = {\n\t\t\t\t...collection,\n\t\t\t\tsearch: (input) =>\n\t\t\t\t\tcollection.search({\n\t\t\t\t\t\t...input,\n\t\t\t\t\t\tqueryTransform:\n\t\t\t\t\t\t\tcandidate.queryTransform ?? input.queryTransform,\n\t\t\t\t\t\trerank: candidate.rerank ?? input.rerank,\n\t\t\t\t\t\tretrieval: candidate.retrieval ?? input.retrieval\n\t\t\t\t\t}),\n\t\t\t\tsearchWithTrace: (input) =>\n\t\t\t\t\tcollection.searchWithTrace({\n\t\t\t\t\t\t...input,\n\t\t\t\t\t\tqueryTransform:\n\t\t\t\t\t\t\tcandidate.queryTransform ?? input.queryTransform,\n\t\t\t\t\t\trerank: candidate.rerank ?? input.rerank,\n\t\t\t\t\t\tretrieval: candidate.retrieval ?? input.retrieval\n\t\t\t\t\t})\n\t\t\t} satisfies RAGCollection;\n\t\t\tconst evaluated = await evaluateRAGCollectionCases({\n\t\t\t\tcollection: {\n\t\t\t\t\t...tracedCollection\n\t\t\t\t},\n\t\t\t\tdefaultTopK,\n\t\t\t\tinput: suite.input,\n\t\t\t\tincludeTrace: true,\n\t\t\t\trerank: candidate.rerank\n\t\t\t});\n\t\t\tconst response = buildRAGEvaluationResponse(\n\t\t\t\tevaluated.map((entry) => entry.caseResult)\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tcaseTraceSnapshots:\n\t\t\t\t\tbuildEvaluationCaseTraceSnapshotsFromEvaluated(evaluated),\n\t\t\t\tlabel: candidate.label ?? candidate.id,\n\t\t\t\tresponse,\n\t\t\t\tretrievalId: candidate.id,\n\t\t\t\tretrievalMode: resolveRetrievalMode(candidate),\n\t\t\t\ttraceSummary: summarizeRetrievalTraces(\n\t\t\t\t\tevaluated\n\t\t\t\t\t\t.map((entry) => entry.trace)\n\t\t\t\t\t\t.filter((trace): trace is RAGRetrievalTrace =>\n\t\t\t\t\t\t\tBoolean(trace)\n\t\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t} satisfies RAGRetrievalComparisonEntry;\n\t\t})\n\t);\n\n\tconst leaderboard = buildRAGEvaluationLeaderboard(\n\t\tentries.map((entry) => ({\n\t\t\telapsedMs: entry.response.elapsedMs,\n\t\t\tfinishedAt: 0,\n\t\t\tid: entry.retrievalId,\n\t\t\tlabel: entry.label,\n\t\t\tresponse: entry.response,\n\t\t\tstartedAt: 0,\n\t\t\tsuiteId: suite.id,\n\t\t\ttraceSummary: entry.traceSummary\n\t\t}))\n\t);\n\n\treturn {\n\t\tentries,\n\t\tleaderboard,\n\t\tsummary: summarizeRAGRetrievalComparison(entries),\n\t\tsuiteId: suite.id,\n\t\tsuiteLabel: suite.label ?? suite.id\n\t};\n};\n\nexport const summarizeRAGRetrievalTraces = (\n\ttraces: RAGRetrievalTrace[]\n): RAGRetrievalTraceComparisonSummary | undefined =>\n\tsummarizeRetrievalTraces(traces);\n\nexport const compareRAGRetrievalTraceSummaries = (\n\tcurrent: RAGRetrievalTraceComparisonSummary,\n\tprevious: RAGRetrievalTraceComparisonSummary\n): RAGRetrievalTraceComparisonSummaryDiff => ({\n\taverageCandidateTopKDelta:\n\t\tcurrent.averageCandidateTopK - previous.averageCandidateTopK,\n\taverageFinalCountDelta:\n\t\tcurrent.averageFinalCount - previous.averageFinalCount,\n\taverageLexicalCountDelta:\n\t\tcurrent.averageLexicalCount - previous.averageLexicalCount,\n\taverageLexicalTopKDelta:\n\t\tcurrent.averageLexicalTopK - previous.averageLexicalTopK,\n\taverageVectorCountDelta:\n\t\tcurrent.averageVectorCount - previous.averageVectorCount,\n\tbalancedCasesDelta: current.balancedCases - previous.balancedCases,\n\tcurrent,\n\tlexicalCasesDelta: current.lexicalCases - previous.lexicalCases,\n\tmodeDelta: buildSummaryListDelta(current.modes, previous.modes),\n\tprevious,\n\troundRobinCasesDelta: current.roundRobinCases - previous.roundRobinCases,\n\tsourceBalanceStrategyDelta: buildSummaryListDelta(\n\t\tcurrent.sourceBalanceStrategies,\n\t\tprevious.sourceBalanceStrategies\n\t),\n\tstageCountsDelta: diffTraceSummaryStageCounts({\n\t\tcurrent: current.stageCounts,\n\t\tprevious: previous.stageCounts\n\t}),\n\ttotalCasesDelta: current.totalCases - previous.totalCases,\n\ttransformedCasesDelta: current.transformedCases - previous.transformedCases,\n\tvectorCasesDelta: current.vectorCases - previous.vectorCases,\n\tvariantCasesDelta: current.variantCases - previous.variantCases\n});\n\nconst buildSearchTraceResultSnapshots = (\n\tresults: Array<{\n\t\tchunkId: string;\n\t\tscore: number;\n\t\tsource?: string;\n\t\ttitle?: string;\n\t\tmetadata?: Record<string, unknown>;\n\t}>\n): RAGSearchTraceResultSnapshot[] =>\n\tresults.map((result) => ({\n\t\tchunkId: result.chunkId,\n\t\tdocumentId:\n\t\t\ttypeof result.metadata?.documentId === 'string'\n\t\t\t\t? result.metadata.documentId\n\t\t\t\t: undefined,\n\t\tscore: result.score,\n\t\tsource: result.source,\n\t\ttitle: result.title\n\t}));\n\nexport const buildRAGSearchTraceRecord = (input: {\n\ttrace: RAGRetrievalTrace;\n\tresults?: Array<{\n\t\tchunkId: string;\n\t\tscore: number;\n\t\tsource?: string;\n\t\ttitle?: string;\n\t\tmetadata?: Record<string, unknown>;\n\t}>;\n\tid?: string;\n\tlabel?: string;\n\tgroupKey?: string;\n\ttags?: string[];\n\tstartedAt?: number;\n\tfinishedAt?: number;\n\telapsedMs?: number;\n\tmetadata?: Record<string, unknown>;\n}): RAGSearchTraceRecord => {\n\tconst startedAt = input.startedAt ?? Date.now();\n\tconst finishedAt = input.finishedAt ?? startedAt;\n\tconst elapsedMs = input.elapsedMs ?? Math.max(0, finishedAt - startedAt);\n\tconst summary =\n\t\tsummarizeRetrievalTraces([input.trace]) ??\n\t\tsummarizeRetrievalTraces([\n\t\t\t{\n\t\t\t\t...input.trace,\n\t\t\t\tsteps: [...input.trace.steps]\n\t\t\t}\n\t\t]);\n\n\tif (!summary) {\n\t\tthrow new Error('Failed to summarize retrieval trace');\n\t}\n\n\treturn {\n\t\telapsedMs,\n\t\tfinishedAt,\n\t\tgroupKey: input.groupKey,\n\t\tid: input.id ?? generateId(),\n\t\tlabel: input.label ?? input.trace.query,\n\t\tmetadata: input.metadata,\n\t\tquery: input.trace.query,\n\t\tresults: buildSearchTraceResultSnapshots(input.results ?? []),\n\t\tstartedAt,\n\t\tsummary,\n\t\ttags: normalizeTraceTags(input.tags),\n\t\ttrace: input.trace\n\t};\n};\n\nexport const buildRAGSearchTraceDiff = ({\n\tcurrent,\n\tprevious\n}: {\n\tcurrent: RAGSearchTraceRecord;\n\tprevious?: RAGSearchTraceRecord;\n}): RAGSearchTraceDiff => {\n\tconst currentChunkIds = current.results.map((entry) => entry.chunkId);\n\tconst previousChunkIds =\n\t\tprevious?.results.map((entry) => entry.chunkId) ?? [];\n\tconst previousSet = new Set(previousChunkIds);\n\tconst currentSet = new Set(currentChunkIds);\n\n\treturn {\n\t\taddedChunkIds: currentChunkIds.filter(\n\t\t\t(chunkId) => !previousSet.has(chunkId)\n\t\t),\n\t\tcurrentTraceId: current.id,\n\t\tpreviousTraceId: previous?.id,\n\t\tremovedChunkIds: previousChunkIds.filter(\n\t\t\t(chunkId) => !currentSet.has(chunkId)\n\t\t),\n\t\tretainedChunkIds: currentChunkIds.filter((chunkId) =>\n\t\t\tpreviousSet.has(chunkId)\n\t\t),\n\t\tsummaryDelta: previous?.summary\n\t\t\t? compareRAGRetrievalTraceSummaries(\n\t\t\t\t\tcurrent.summary,\n\t\t\t\t\tprevious.summary\n\t\t\t\t)\n\t\t\t: undefined,\n\t\ttopResultChanged:\n\t\t\t(current.results[0]?.chunkId ?? undefined) !==\n\t\t\t(previous?.results[0]?.chunkId ?? undefined)\n\t};\n};\n\nexport const buildRAGRetrievalTraceHistoryTrend = ({\n\truns\n}: {\n\truns: RAGRetrievalTraceSummaryRun[];\n}): RAGRetrievalTraceTrend => {\n\tconst sortedRuns = normalizeTraceSummaryRuns(runs);\n\tconst runsWithSummary = sortedRuns.filter(\n\t\t(run) => run.traceSummary && run.label\n\t);\n\tconst traceSummaries = runsWithSummary\n\t\t.map((run) => run.traceSummary)\n\t\t.filter((summary): summary is RAGRetrievalTraceComparisonSummary =>\n\t\t\tBoolean(summary)\n\t\t);\n\tconst summaryTrendWindows: RAGRetrievalTraceHistoryWindow[] = [];\n\n\tfor (let index = 0; index < runsWithSummary.length - 1; index += 1) {\n\t\tconst currentRun = runsWithSummary[index]!;\n\t\tconst previousRun = runsWithSummary[index + 1]!;\n\t\tif (!currentRun.traceSummary || !previousRun.traceSummary) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst current = currentRun.traceSummary;\n\t\tconst previous = previousRun.traceSummary;\n\t\tconst delta = compareRAGRetrievalTraceSummaries(current, previous);\n\t\tsummaryTrendWindows.push({\n\t\t\tcurrent,\n\t\t\tcurrentRunId: currentRun.id,\n\t\t\tcurrentRunLabel: currentRun.label,\n\t\t\tdelta,\n\t\t\tprevious,\n\t\t\tpreviousRunId: previousRun.id,\n\t\t\tpreviousRunLabel: previousRun.label\n\t\t});\n\t}\n\n\tconst latest = runsWithSummary[0]?.traceSummary;\n\tconst previous = runsWithSummary[1]?.traceSummary;\n\tconst latestToPrevious =\n\t\tlatest && previous\n\t\t\t? compareRAGRetrievalTraceSummaries(latest, previous)\n\t\t\t: undefined;\n\tconst listHistoryModes = traceSummaries.map((summary) => summary.modes);\n\tconst listHistorySourceStrategies = traceSummaries.map(\n\t\t(summary) => summary.sourceBalanceStrategies\n\t);\n\tconst modes = summarizeListTurnover<RAGHybridRetrievalMode>({\n\t\tcurrent: normalizeSummaryList(latest?.modes ?? []),\n\t\thistory: listHistoryModes,\n\t\tprevious: normalizeSummaryList(previous?.modes ?? [])\n\t});\n\tconst sourceBalanceStrategies =\n\t\tsummarizeListTurnover<RAGSourceBalanceStrategy>({\n\t\t\tcurrent: normalizeSummaryList(\n\t\t\t\tlatest?.sourceBalanceStrategies ?? []\n\t\t\t),\n\t\t\thistory: listHistorySourceStrategies,\n\t\t\tprevious: normalizeSummaryList(\n\t\t\t\tprevious?.sourceBalanceStrategies ?? []\n\t\t\t)\n\t\t});\n\tconst { aggregate, bestMetric, worstMetric } = buildTraceSummaryAggregate({\n\t\tsummaries: traceSummaries\n\t});\n\tconst stageChurn = buildRAGRetrievalTraceStageChurn({\n\t\twindows: summaryTrendWindows\n\t});\n\n\treturn {\n\t\taggregate,\n\t\tbestMetric,\n\t\tmodeTurnover: modes,\n\t\trunsWithTraceSummary: traceSummaries.length,\n\t\tsourceBalanceStrategyTurnover: sourceBalanceStrategies,\n\t\tstageChurn,\n\t\tsummaryTrendWindows,\n\t\tworstMetric,\n\t\tworstVolatileStage: stageChurn.find((entry) => entry.totalChanges > 0),\n\t\tlatestToPrevious\n\t};\n};\nexport const createRAGEvaluationSuite = (\n\tsuite: RAGEvaluationSuite\n): RAGEvaluationSuite => suite;\nexport const evaluateRAGCollection = async ({\n\tcollection,\n\tinput,\n\tdefaultTopK = DEFAULT_TOP_K,\n\trerank\n}: {\n\tcollection: RAGCollection;\n\tinput: RAGEvaluationInput;\n\tdefaultTopK?: number;\n\trerank?: RAGRerankerProviderLike;\n}) => {\n\tconst evaluated = await evaluateRAGCollectionCases({\n\t\tcollection,\n\t\tdefaultTopK,\n\t\tincludeTrace: false,\n\t\tinput,\n\t\trerank\n\t});\n\n\treturn buildRAGEvaluationResponse(\n\t\tevaluated.map((entry) => entry.caseResult)\n\t);\n};\nexport const executeDryRunRAGEvaluation = (\n\tinput: RAGEvaluationInput,\n\tdefaultTopK = DEFAULT_TOP_K\n): RAGEvaluationCaseResult[] =>\n\tinput.cases.map((caseInput, caseIndex) => {\n\t\tconst mode = resolveEvaluationMode(caseInput);\n\t\tconst expectedIds = normalizeExpectedIds(\n\t\t\tmode === 'chunkId'\n\t\t\t\t? (caseInput.expectedChunkIds ?? [])\n\t\t\t\t: mode === 'source'\n\t\t\t\t\t? (caseInput.expectedSources ?? [])\n\t\t\t\t\t: (caseInput.expectedDocumentIds ?? [])\n\t\t);\n\t\tconst effectiveTopK =\n\t\t\ttypeof caseInput.topK === 'number'\n\t\t\t\t? caseInput.topK\n\t\t\t\t: typeof input.topK === 'number'\n\t\t\t\t\t? input.topK\n\t\t\t\t\t: defaultTopK;\n\n\t\treturn {\n\t\t\tcaseId: caseInput.id ?? `case-${caseIndex + 1}`,\n\t\t\telapsedMs: 0,\n\t\t\texpectedCount: expectedIds.length,\n\t\t\texpectedIds,\n\t\t\tf1: 0,\n\t\t\tlabel: caseInput.label,\n\t\t\tmatchedCount: 0,\n\t\t\tmatchedIds: [],\n\t\t\tmissingIds: expectedIds,\n\t\t\tmode,\n\t\t\tprecision: 0,\n\t\t\tquery: caseInput.query,\n\t\t\trecall: 0,\n\t\t\tretrievedCount: 0,\n\t\t\tretrievedIds: [],\n\t\t\tstatus: expectedIds.length === 0 ? 'partial' : 'fail',\n\t\t\ttopK: effectiveTopK\n\t\t};\n\t});\nexport const runRAGEvaluationSuite = async ({\n\tsuite,\n\tevaluate,\n\toverrides,\n\tartifacts\n}: {\n\tsuite: RAGEvaluationSuite;\n\tevaluate: (input: RAGEvaluationInput) => Promise<RAGEvaluationResponse>;\n\toverrides?: Partial<RAGEvaluationInput>;\n\tartifacts?: Pick<\n\t\tRAGEvaluationSuiteRun,\n\t\t'traceSummary' | 'caseTraceSnapshots'\n\t>;\n}) => {\n\tconst startedAt = Date.now();\n\tconst response = await evaluate({\n\t\t...suite.input,\n\t\t...overrides,\n\t\tcases: overrides?.cases ?? suite.input.cases\n\t});\n\tconst finishedAt = Date.now();\n\n\treturn {\n\t\tcaseTraceSnapshots: artifacts?.caseTraceSnapshots,\n\t\telapsedMs: finishedAt - startedAt,\n\t\tfinishedAt,\n\t\tid: generateId(),\n\t\tlabel: suite.label ?? suite.id,\n\t\tmetadata: suite.metadata,\n\t\tresponse,\n\t\tstartedAt,\n\t\tsuiteId: suite.id,\n\t\ttraceSummary: artifacts?.traceSummary\n\t} satisfies RAGEvaluationSuiteRun;\n};\nexport const summarizeRAGEvaluationCase = ({\n\tcaseIndex,\n\tcaseInput,\n\tquery,\n\tmode,\n\tretrievedIds,\n\texpectedIds,\n\telapsedMs\n}: {\n\tcaseIndex: number;\n\tcaseInput: RAGEvaluationCase;\n\tmode: 'chunkId' | 'source' | 'documentId';\n\tquery: string;\n\tretrievedIds: string[];\n\texpectedIds: string[];\n\telapsedMs: number;\n}): RAGEvaluationCaseResult => {\n\tconst expectedSet = new Set(expectedIds);\n\tconst retrievedSet = new Set(retrievedIds);\n\tconst matchedIds = normalizeExpectedIds(\n\t\t[...expectedSet].filter((id) => retrievedSet.has(id))\n\t);\n\tconst missingIds = normalizeExpectedIds(\n\t\t[...expectedSet].filter((id) => !retrievedSet.has(id))\n\t);\n\tconst matchedCount = matchedIds.length;\n\tconst retrievedCount = retrievedIds.length;\n\tconst expectedCount = expectedIds.length;\n\tconst precision = retrievedCount > 0 ? matchedCount / retrievedCount : 0;\n\tconst recall = expectedCount > 0 ? matchedCount / expectedCount : 0;\n\tconst f1 =\n\t\tprecision + recall > 0\n\t\t\t? (2 * precision * recall) / (precision + recall)\n\t\t\t: 0;\n\tconst status: RAGEvaluationCaseResult['status'] =\n\t\texpectedCount === 0\n\t\t\t? 'partial'\n\t\t\t: matchedCount === expectedCount\n\t\t\t\t? 'pass'\n\t\t\t\t: matchedCount > 0\n\t\t\t\t\t? 'partial'\n\t\t\t\t\t: 'fail';\n\n\treturn {\n\t\tcaseId: caseInput.id ?? `case-${caseIndex + 1}`,\n\t\telapsedMs,\n\t\texpectedCount,\n\t\texpectedIds,\n\t\tf1,\n\t\tlabel: caseInput.label,\n\t\tmatchedCount,\n\t\tmatchedIds,\n\t\tmetadata: caseInput.metadata,\n\t\tmissingIds,\n\t\tmode,\n\t\tprecision,\n\t\tquery,\n\t\trecall,\n\t\tretrievedCount,\n\t\tretrievedIds,\n\t\tstatus,\n\t\ttopK:\n\t\t\ttypeof caseInput.topK === 'number' ? caseInput.topK : DEFAULT_TOP_K\n\t};\n};\nexport const summarizeRAGRerankerComparison = (\n\tentries: RAGRerankerComparisonEntry[]\n): RAGRerankerComparisonSummary => {\n\treturn summarizeEvaluationResponseComparison(\n\t\tentries,\n\t\t'rerankerId'\n\t) satisfies RAGRerankerComparisonSummary;\n};\nexport const summarizeRAGRetrievalComparison = (\n\tentries: RAGRetrievalComparisonEntry[]\n): RAGRetrievalComparisonSummary =>\n\tsummarizeEvaluationResponseComparison(\n\t\tentries,\n\t\t'retrievalId'\n\t) satisfies RAGRetrievalComparisonSummary;\n",
8
8
  "import type { AIServerMessage } from '../../types/ai';\nimport { isValidAIClientMessage } from '../../types/typeGuards';\n\nexport const generateId = () => crypto.randomUUID();\n\nexport const parseAIMessage = (raw: unknown) => {\n\tif (raw === null || raw === undefined) {\n\t\treturn null;\n\t}\n\n\tlet text: string;\n\n\tif (typeof raw === 'string') {\n\t\ttext = raw;\n\t} else if (raw instanceof ArrayBuffer) {\n\t\ttext = new TextDecoder().decode(raw);\n\t} else if (ArrayBuffer.isView(raw)) {\n\t\ttext = new TextDecoder().decode(raw);\n\t} else if (typeof raw === 'object') {\n\t\tif (isValidAIClientMessage(raw)) {\n\t\t\treturn raw;\n\t\t}\n\n\t\treturn null;\n\t} else {\n\t\treturn null;\n\t}\n\n\ttry {\n\t\tconst parsed: unknown = JSON.parse(text);\n\n\t\tif (isValidAIClientMessage(parsed)) {\n\t\t\treturn parsed;\n\t\t}\n\n\t\treturn null;\n\t} catch {\n\t\treturn null;\n\t}\n};\n\nexport const serializeAIMessage = (msg: AIServerMessage) => JSON.stringify(msg);\n",
9
9
  "import type {\n\tRAGCitation,\n\tRAGCitationReferenceMap,\n\tRAGExcerptModeCounts,\n\tRAGGroundedAnswer,\n\tRAGGroundedAnswerCitationDetail,\n\tRAGGroundedAnswerSectionSummary,\n\tRAGGroundingReference,\n\tRAGSource\n} from '../../../types/ai';\n\nconst getContextString = (value: unknown) =>\n\ttypeof value === 'string' && value.trim().length > 0\n\t\t? value.trim()\n\t\t: undefined;\n\nconst getContextNumber = (value: unknown) =>\n\ttypeof value === 'number' && Number.isFinite(value) ? value : undefined;\n\nconst getAttachmentName = (source?: string, title?: string) => {\n\tconst sourceAttachment = source?.split('/').at(-1);\n\tif (sourceAttachment && sourceAttachment.includes('.')) {\n\t\treturn sourceAttachment;\n\t}\n\n\tconst titleAttachment = title?.split(' · ').at(-1);\n\tif (titleAttachment && titleAttachment.includes('.')) {\n\t\treturn titleAttachment;\n\t}\n\n\treturn undefined;\n};\n\nconst buildContextLabel = (metadata?: Record<string, unknown>) => {\n\tif (!metadata) {\n\t\treturn undefined;\n\t}\n\n\tconst emailKind = getContextString(metadata.emailKind);\n\tif (emailKind === 'attachment') {\n\t\treturn 'Attachment evidence';\n\t}\n\n\tif (emailKind === 'message') {\n\t\tconst from = getContextString(metadata.from);\n\t\treturn from ? `Message from ${from}` : 'Message evidence';\n\t}\n\n\tconst page =\n\t\tgetContextNumber(metadata.page) ??\n\t\tgetContextNumber(metadata.pageNumber) ??\n\t\t(typeof metadata.pageIndex === 'number'\n\t\t\t? metadata.pageIndex + 1\n\t\t\t: undefined);\n\tconst region =\n\t\tgetContextNumber(metadata.regionNumber) ??\n\t\t(typeof metadata.regionIndex === 'number'\n\t\t\t? metadata.regionIndex + 1\n\t\t\t: undefined);\n\tif (page && region) {\n\t\treturn `Page ${page} region ${region}`;\n\t}\n\tif (page) {\n\t\treturn `Page ${page}`;\n\t}\n\n\tconst sheet =\n\t\tgetContextString(metadata.sheetName) ??\n\t\t(Array.isArray(metadata.sheetNames)\n\t\t\t? getContextString(metadata.sheetNames[0])\n\t\t\t: undefined);\n\tif (sheet) {\n\t\treturn `Sheet ${sheet}`;\n\t}\n\n\tconst slide =\n\t\tgetContextNumber(metadata.slide) ??\n\t\tgetContextNumber(metadata.slideNumber) ??\n\t\t(typeof metadata.slideIndex === 'number'\n\t\t\t? metadata.slideIndex + 1\n\t\t\t: undefined);\n\tif (slide) {\n\t\treturn `Slide ${slide}`;\n\t}\n\n\tconst archiveEntry =\n\t\tgetContextString(metadata.archiveEntryPath) ??\n\t\tgetContextString(metadata.entryPath);\n\tif (archiveEntry) {\n\t\treturn `Archive entry ${archiveEntry}`;\n\t}\n\n\tconst threadTopic = getContextString(metadata.threadTopic);\n\tif (threadTopic) {\n\t\treturn `Thread ${threadTopic}`;\n\t}\n\n\tconst speaker = getContextString(metadata.speaker);\n\tif (speaker) {\n\t\treturn `Speaker ${speaker}`;\n\t}\n\n\tconst sectionPath = Array.isArray(metadata.sectionPath)\n\t\t? metadata.sectionPath\n\t\t\t\t.map((value) => getContextString(value))\n\t\t\t\t.filter((value): value is string => typeof value === 'string')\n\t\t: [];\n\tconst sectionTitle =\n\t\tgetContextString(metadata.sectionTitle) ?? sectionPath.at(-1);\n\tif (sectionTitle) {\n\t\treturn `Section ${sectionTitle}`;\n\t}\n\n\treturn undefined;\n};\n\nconst formatMediaTimestamp = (value: unknown) => {\n\tif (typeof value !== 'number' || !Number.isFinite(value) || value < 0) {\n\t\treturn undefined;\n\t}\n\n\tconst totalSeconds = Math.floor(value / 1000);\n\tconst minutes = Math.floor(totalSeconds / 60);\n\tconst seconds = totalSeconds % 60;\n\tconst milliseconds = Math.floor(value % 1000);\n\n\treturn `${String(minutes).padStart(2, '0')}:${String(seconds).padStart(\n\t\t2,\n\t\t'0'\n\t)}.${String(milliseconds).padStart(3, '0')}`;\n};\n\nconst buildLocatorLabel = (\n\tmetadata?: Record<string, unknown>,\n\tsource?: string,\n\ttitle?: string\n) => {\n\tif (!metadata) {\n\t\treturn undefined;\n\t}\n\n\tconst page =\n\t\tgetContextNumber(metadata.page) ??\n\t\tgetContextNumber(metadata.pageNumber) ??\n\t\t(typeof metadata.pageIndex === 'number'\n\t\t\t? metadata.pageIndex + 1\n\t\t\t: undefined);\n\tconst region =\n\t\tgetContextNumber(metadata.regionNumber) ??\n\t\t(typeof metadata.regionIndex === 'number'\n\t\t\t? metadata.regionIndex + 1\n\t\t\t: undefined);\n\tif (page && region) {\n\t\treturn `Page ${page} · Region ${region}`;\n\t}\n\tif (page) {\n\t\treturn `Page ${page}`;\n\t}\n\n\tconst sheet =\n\t\tgetContextString(metadata.sheetName) ??\n\t\t(Array.isArray(metadata.sheetNames)\n\t\t\t? getContextString(metadata.sheetNames[0])\n\t\t\t: undefined);\n\tif (sheet) {\n\t\treturn `Sheet ${sheet}`;\n\t}\n\n\tconst slide =\n\t\tgetContextNumber(metadata.slide) ??\n\t\tgetContextNumber(metadata.slideNumber) ??\n\t\t(typeof metadata.slideIndex === 'number'\n\t\t\t? metadata.slideIndex + 1\n\t\t\t: undefined);\n\tif (slide) {\n\t\treturn `Slide ${slide}`;\n\t}\n\n\tconst archiveEntry =\n\t\tgetContextString(metadata.archiveEntryPath) ??\n\t\tgetContextString(metadata.entryPath);\n\tif (archiveEntry) {\n\t\treturn `Archive entry ${archiveEntry}`;\n\t}\n\n\tconst emailKind = getContextString(metadata.emailKind);\n\tif (emailKind === 'attachment') {\n\t\tconst attachmentName =\n\t\t\tgetContextString(metadata.attachmentName) ??\n\t\t\tgetAttachmentName(source, title);\n\t\treturn attachmentName ? `Attachment ${attachmentName}` : 'Attachment';\n\t}\n\n\tconst mediaStart = formatMediaTimestamp(metadata.startMs);\n\tconst mediaEnd = formatMediaTimestamp(metadata.endMs);\n\tif (mediaStart && mediaEnd) {\n\t\treturn `Timestamp ${mediaStart} - ${mediaEnd}`;\n\t}\n\n\tif (mediaStart) {\n\t\treturn `Timestamp ${mediaStart}`;\n\t}\n\n\tconst sectionPath = Array.isArray(metadata.sectionPath)\n\t\t? metadata.sectionPath\n\t\t\t\t.map((value) => getContextString(value))\n\t\t\t\t.filter((value): value is string => typeof value === 'string')\n\t\t: [];\n\tif (sectionPath.length > 0) {\n\t\treturn `Section ${sectionPath.join(' > ')}`;\n\t}\n\n\treturn undefined;\n};\n\nconst formatTimestampLabel = (value: unknown) => {\n\tconst timestamp =\n\t\ttypeof value === 'number' && Number.isFinite(value)\n\t\t\t? value\n\t\t\t: typeof value === 'string'\n\t\t\t\t? Date.parse(value)\n\t\t\t\t: Number.NaN;\n\tif (!Number.isFinite(timestamp)) {\n\t\treturn undefined;\n\t}\n\n\treturn new Date(timestamp).toLocaleString('en-US', {\n\t\tdateStyle: 'medium',\n\t\ttimeStyle: 'short'\n\t});\n};\n\nconst buildProvenanceLabel = (metadata?: Record<string, unknown>) => {\n\tif (!metadata) {\n\t\treturn undefined;\n\t}\n\n\tconst threadTopic = getContextString(metadata.threadTopic);\n\tconst from = getContextString(metadata.from);\n\tconst sentAt =\n\t\tformatTimestampLabel(metadata.sentAt) ??\n\t\tformatTimestampLabel(metadata.receivedAt);\n\tconst speaker = getContextString(metadata.speaker);\n\tconst mediaKind = getContextString(metadata.mediaKind);\n\tconst transcriptSource = getContextString(metadata.transcriptSource);\n\tconst pdfTextMode = getContextString(metadata.pdfTextMode);\n\tconst ocrEngine = getContextString(metadata.ocrEngine);\n\tconst ocrConfidence =\n\t\tgetContextNumber(metadata.ocrRegionConfidence) ??\n\t\tgetContextNumber(metadata.ocrConfidence);\n\n\tconst labels = [\n\t\tpdfTextMode ? `PDF ${pdfTextMode}` : '',\n\t\tocrEngine ? `OCR ${ocrEngine}` : '',\n\t\ttypeof ocrConfidence === 'number'\n\t\t\t? `Confidence ${ocrConfidence.toFixed(2)}`\n\t\t\t: '',\n\t\tmediaKind ? `Media ${mediaKind}` : '',\n\t\ttranscriptSource ? `Transcript ${transcriptSource}` : '',\n\t\tthreadTopic ? `Thread ${threadTopic}` : '',\n\t\tspeaker ? `Speaker ${speaker}` : '',\n\t\tfrom ? `Sender ${from}` : '',\n\t\tsentAt ? `Sent ${sentAt}` : ''\n\t].filter((value) => value.length > 0);\n\n\treturn labels.length > 0 ? labels.join(' · ') : undefined;\n};\n\nconst buildSourceLabel = (source: RAGSource) =>\n\tsource.source ?? source.title ?? source.chunkId;\n\nconst buildExcerpt = (text: string, maxLength = 160) => {\n\tconst normalized = text.replaceAll(/\\s+/g, ' ').trim();\n\tif (normalized.length <= maxLength) {\n\t\treturn normalized;\n\t}\n\n\treturn `${normalized.slice(0, Math.max(0, maxLength - 1)).trimEnd()}…`;\n};\n\nconst selectPreferredExcerpt = (\n\texcerpts?: {\n\t\tchunkExcerpt?: string;\n\t\twindowExcerpt?: string;\n\t\tsectionExcerpt?: string;\n\t},\n\tsectionChunkCount?: number\n) => {\n\tif (!excerpts) {\n\t\treturn {\n\t\t\texcerpt: '',\n\t\t\tmode: 'chunk' as const,\n\t\t\treason: 'single_chunk' as const\n\t\t};\n\t}\n\n\tconst chunkExcerpt = excerpts.chunkExcerpt?.trim() ?? '';\n\tconst windowExcerpt = excerpts.windowExcerpt?.trim() ?? '';\n\tconst sectionExcerpt = excerpts.sectionExcerpt?.trim() ?? '';\n\tif (\n\t\tsectionChunkCount &&\n\t\tsectionChunkCount > 1 &&\n\t\tchunkExcerpt.length > 0 &&\n\t\tchunkExcerpt.length < 72\n\t) {\n\t\tif (sectionChunkCount <= 3 && sectionExcerpt) {\n\t\t\treturn {\n\t\t\t\texcerpt: sectionExcerpt,\n\t\t\t\tmode: 'section' as const,\n\t\t\t\treason: 'section_small_enough' as const\n\t\t\t};\n\t\t}\n\t\tif (windowExcerpt) {\n\t\t\treturn {\n\t\t\t\texcerpt: windowExcerpt,\n\t\t\t\tmode: 'window' as const,\n\t\t\t\treason: 'section_too_large_use_window' as const\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\texcerpt: chunkExcerpt,\n\t\t\tmode: 'chunk' as const,\n\t\t\treason: 'chunk_too_narrow' as const\n\t\t};\n\t}\n\n\treturn {\n\t\texcerpt: chunkExcerpt || windowExcerpt || sectionExcerpt,\n\t\tmode: 'chunk' as const,\n\t\treason:\n\t\t\t(sectionChunkCount ?? 0) > 1\n\t\t\t\t? ('chunk_too_narrow' as const)\n\t\t\t\t: ('single_chunk' as const)\n\t};\n};\n\nconst buildExcerptModeCounts = (\n\treferences: Array<\n\t\t| { excerptSelection?: { mode: 'chunk' | 'window' | 'section' } }\n\t\t| undefined\n\t>\n): RAGExcerptModeCounts =>\n\treferences.reduce<RAGExcerptModeCounts>(\n\t\t(counts, reference) => {\n\t\t\tif (reference?.excerptSelection) {\n\t\t\t\tcounts[reference.excerptSelection.mode] += 1;\n\t\t\t}\n\t\t\treturn counts;\n\t\t},\n\t\t{ chunk: 0, section: 0, window: 0 }\n\t);\n\nconst buildGroundingChunkExcerpts = (\n\tsources: RAGSource[],\n\tactiveChunkId?: string\n) => {\n\tif (sources.length === 0) {\n\t\treturn undefined;\n\t}\n\n\tconst activeSource =\n\t\t(activeChunkId\n\t\t\t? sources.find((source) => source.chunkId === activeChunkId)\n\t\t\t: undefined) ?? sources[0];\n\tif (!activeSource) {\n\t\treturn undefined;\n\t}\n\n\tconst chunkMap = new Map(sources.map((source) => [source.chunkId, source]));\n\tconst activeMetadata = activeSource.metadata ?? {};\n\tconst previousChunkId = getContextString(activeMetadata.previousChunkId);\n\tconst nextChunkId = getContextString(activeMetadata.nextChunkId);\n\tconst sectionChunkId = getContextString(activeMetadata.sectionChunkId);\n\tconst sectionSources = sectionChunkId\n\t\t? sources\n\t\t\t\t.filter(\n\t\t\t\t\t(source) =>\n\t\t\t\t\t\tgetContextString(source.metadata?.sectionChunkId) ===\n\t\t\t\t\t\tsectionChunkId\n\t\t\t\t)\n\t\t\t\t.sort((left, right) => {\n\t\t\t\t\tconst leftIndex =\n\t\t\t\t\t\tgetContextNumber(left.metadata?.sectionChunkIndex) ??\n\t\t\t\t\t\tNumber.MAX_SAFE_INTEGER;\n\t\t\t\t\tconst rightIndex =\n\t\t\t\t\t\tgetContextNumber(right.metadata?.sectionChunkIndex) ??\n\t\t\t\t\t\tNumber.MAX_SAFE_INTEGER;\n\t\t\t\t\tif (leftIndex !== rightIndex) {\n\t\t\t\t\t\treturn leftIndex - rightIndex;\n\t\t\t\t\t}\n\t\t\t\t\treturn left.chunkId.localeCompare(right.chunkId);\n\t\t\t\t})\n\t\t: [activeSource];\n\tconst collectText = (chunkIds: string[]) =>\n\t\tchunkIds\n\t\t\t.map((chunkId) => chunkMap.get(chunkId)?.text)\n\t\t\t.filter((text): text is string => typeof text === 'string')\n\t\t\t.join('\\n\\n');\n\tconst orderedWindowIds = [\n\t\tpreviousChunkId,\n\t\tactiveSource.chunkId,\n\t\tnextChunkId\n\t].filter(\n\t\t(chunkId, index, values): chunkId is string =>\n\t\t\tBoolean(chunkId) && values.indexOf(chunkId) === index\n\t);\n\n\treturn {\n\t\tchunkExcerpt: buildExcerpt(activeSource.text, 160),\n\t\tsectionExcerpt: buildExcerpt(\n\t\t\tsectionSources.map((source) => source.text).join('\\n\\n'),\n\t\t\t320\n\t\t),\n\t\twindowExcerpt: buildExcerpt(collectText(orderedWindowIds), 240)\n\t};\n};\n\nconst buildGroundingReferenceEvidenceLabel = (\n\treference: RAGGroundingReference\n) =>\n\t[reference.label, reference.locatorLabel, reference.contextLabel]\n\t\t.filter((value): value is string => Boolean(value && value.length > 0))\n\t\t.filter(\n\t\t\t(value, index, values) =>\n\t\t\t\tvalues.findIndex((entry) => entry === value) === index\n\t\t)\n\t\t.join(' · ');\n\nconst buildGroundingReferenceEvidenceSummary = (\n\treference: RAGGroundingReference\n) =>\n\t[\n\t\treference.source ?? reference.title ?? reference.chunkId,\n\t\treference.locatorLabel,\n\t\treference.contextLabel,\n\t\treference.provenanceLabel\n\t]\n\t\t.filter((value): value is string => Boolean(value && value.length > 0))\n\t\t.filter(\n\t\t\t(value, index, values) =>\n\t\t\t\tvalues.findIndex((entry) => entry === value) === index\n\t\t)\n\t\t.join(' · ');\n\nconst buildGroundingSectionKey = (reference: RAGGroundingReference) =>\n\treference.contextLabel ??\n\treference.locatorLabel ??\n\treference.label ??\n\treference.source ??\n\treference.chunkId;\n\nconst buildGroundingSectionSummaryLine = (reference: RAGGroundingReference) =>\n\t[\n\t\treference.source ?? reference.title ?? reference.chunkId,\n\t\treference.locatorLabel,\n\t\treference.contextLabel,\n\t\treference.provenanceLabel\n\t]\n\t\t.filter((value): value is string => Boolean(value && value.length > 0))\n\t\t.filter(\n\t\t\t(value, index, values) =>\n\t\t\t\tvalues.findIndex((entry) => entry === value) === index\n\t\t)\n\t\t.join(' · ');\n\nconst buildGroundedAnswerCitationDetail = (\n\treference: RAGGroundingReference\n): RAGGroundedAnswerCitationDetail => ({\n\tcontextLabel: reference.contextLabel,\n\tevidenceLabel: buildGroundingReferenceEvidenceLabel(reference),\n\tevidenceSummary: buildGroundingReferenceEvidenceSummary(reference),\n\texcerpt:\n\t\tselectPreferredExcerpt(\n\t\t\treference.excerpts,\n\t\t\tgetContextNumber(reference.metadata?.sectionChunkCount)\n\t\t).excerpt || reference.excerpt,\n\texcerpts: reference.excerpts,\n\texcerptSelection: reference.excerptSelection,\n\tlabel: reference.label,\n\tlocatorLabel: reference.locatorLabel,\n\tnumber: reference.number,\n\tprovenanceLabel: reference.provenanceLabel,\n\tsource: reference.source,\n\ttitle: reference.title\n});\n\nexport const buildRAGCitationReferenceMap = (\n\tcitations: RAGCitation[]\n): RAGCitationReferenceMap =>\n\tObject.fromEntries(\n\t\tcitations.map((citation, index) => [citation.chunkId, index + 1])\n\t);\n\nexport const buildRAGCitations = (sources: RAGSource[]) => {\n\tconst unique = new Map<string, RAGCitation>();\n\n\tfor (const source of sources) {\n\t\tconst key = source.chunkId;\n\t\tconst existing = unique.get(key);\n\t\tconst hasBetterExisting =\n\t\t\texisting !== undefined && existing.score >= source.score;\n\t\tif (hasBetterExisting) continue;\n\t\tconst excerpts = buildGroundingChunkExcerpts(sources, source.chunkId);\n\t\tconst excerptSelection = selectPreferredExcerpt(\n\t\t\texcerpts,\n\t\t\tgetContextNumber(source.metadata?.sectionChunkCount)\n\t\t);\n\n\t\tunique.set(key, {\n\t\t\tchunkId: source.chunkId,\n\t\t\tcontextLabel:\n\t\t\t\tsource.labels?.contextLabel ??\n\t\t\t\tbuildContextLabel(source.metadata),\n\t\t\texcerpt: excerptSelection.excerpt || buildExcerpt(source.text),\n\t\t\texcerpts,\n\t\t\texcerptSelection,\n\t\t\tkey,\n\t\t\tlabel: buildSourceLabel(source),\n\t\t\tlocatorLabel:\n\t\t\t\tsource.labels?.locatorLabel ??\n\t\t\t\tbuildLocatorLabel(source.metadata, source.source, source.title),\n\t\t\tmetadata: source.metadata,\n\t\t\tprovenanceLabel:\n\t\t\t\tsource.labels?.provenanceLabel ??\n\t\t\t\tbuildProvenanceLabel(source.metadata),\n\t\t\tscore: source.score,\n\t\t\tsource: source.source,\n\t\t\ttext: source.text,\n\t\t\ttitle: source.title\n\t\t});\n\t}\n\n\treturn [...unique.values()].sort((left, right) => {\n\t\tif (right.score !== left.score) {\n\t\t\treturn right.score - left.score;\n\t\t}\n\n\t\treturn left.label.localeCompare(right.label);\n\t});\n};\n\nexport const buildRAGGroundedAnswer = (\n\tcontent: string,\n\tsources: RAGSource[]\n): RAGGroundedAnswer => {\n\tconst references = buildRAGGroundingReferences(sources);\n\tconst sectionSummaries = buildRAGGroundedAnswerSectionSummaries(references);\n\tconst referenceMap = new Map(\n\t\treferences.map((reference) => [reference.number, reference])\n\t);\n\tconst parts: RAGGroundedAnswer['parts'] = [];\n\tconst ungroundedReferenceNumbers = new Set<number>();\n\tconst citationPattern = /\\[(\\d+(?:\\s*,\\s*\\d+)*)\\]/g;\n\tlet cursor = 0;\n\n\tfor (const match of content.matchAll(citationPattern)) {\n\t\tconst raw = match[0];\n\t\tconst numbers = (match[1] ?? '')\n\t\t\t.split(',')\n\t\t\t.map((value) => Number.parseInt(value.trim(), 10))\n\t\t\t.filter((value) => Number.isInteger(value) && value > 0);\n\t\tconst start = match.index ?? cursor;\n\t\tif (start > cursor) {\n\t\t\tparts.push({\n\t\t\t\ttext: content.slice(cursor, start),\n\t\t\t\ttype: 'text'\n\t\t\t});\n\t\t}\n\n\t\tconst resolvedReferences = numbers\n\t\t\t.map((number) => referenceMap.get(number))\n\t\t\t.filter((reference): reference is RAGGroundingReference =>\n\t\t\t\tBoolean(reference)\n\t\t\t);\n\t\tfor (const number of numbers) {\n\t\t\tif (!referenceMap.has(number)) {\n\t\t\t\tungroundedReferenceNumbers.add(number);\n\t\t\t}\n\t\t}\n\t\tconst unresolvedNumbers = numbers.filter(\n\t\t\t(number) => !referenceMap.has(number)\n\t\t);\n\n\t\tparts.push({\n\t\t\treferenceNumbers: numbers,\n\t\t\treferenceDetails: resolvedReferences.map(\n\t\t\t\tbuildGroundedAnswerCitationDetail\n\t\t\t),\n\t\t\treferences: resolvedReferences,\n\t\t\ttext: raw,\n\t\t\ttype: 'citation',\n\t\t\tunresolvedReferenceNumbers: unresolvedNumbers\n\t\t});\n\t\tcursor = start + raw.length;\n\t}\n\n\tif (cursor < content.length || parts.length === 0) {\n\t\tparts.push({\n\t\t\ttext: content.slice(cursor),\n\t\t\ttype: 'text'\n\t\t});\n\t}\n\n\tconst hasCitations = parts.some((part) => part.type === 'citation');\n\tconst coverage: RAGGroundedAnswer['coverage'] = !hasCitations\n\t\t? 'ungrounded'\n\t\t: ungroundedReferenceNumbers.size === 0\n\t\t\t? 'grounded'\n\t\t\t: references.length > 0\n\t\t\t\t? 'partial'\n\t\t\t\t: 'ungrounded';\n\n\treturn {\n\t\tcontent,\n\t\tcoverage,\n\t\texcerptModeCounts: buildExcerptModeCounts([\n\t\t\t...references,\n\t\t\t...sectionSummaries\n\t\t]),\n\t\thasCitations,\n\t\tparts,\n\t\treferences,\n\t\tsectionSummaries,\n\t\tungroundedReferenceNumbers: [...ungroundedReferenceNumbers].sort(\n\t\t\t(left, right) => left - right\n\t\t)\n\t};\n};\n\nexport const buildRAGGroundedAnswerSectionSummaries = (\n\treferences: RAGGroundingReference[]\n): RAGGroundedAnswerSectionSummary[] => {\n\tconst groups = new Map<string, RAGGroundedAnswerSectionSummary>();\n\n\tfor (const reference of references) {\n\t\tconst key = buildGroundingSectionKey(reference);\n\t\tconst existing = groups.get(key);\n\t\tif (!existing) {\n\t\t\tconst excerpts = reference.excerpts\n\t\t\t\t? {\n\t\t\t\t\t\tchunkExcerpt: reference.excerpts.chunkExcerpt,\n\t\t\t\t\t\tsectionExcerpt: reference.excerpts.sectionExcerpt,\n\t\t\t\t\t\twindowExcerpt: reference.excerpts.windowExcerpt\n\t\t\t\t\t}\n\t\t\t\t: undefined;\n\t\t\tgroups.set(key, {\n\t\t\t\tchunkIds: [reference.chunkId],\n\t\t\t\tcontextLabel: reference.contextLabel,\n\t\t\t\tcount: 1,\n\t\t\t\texcerpt:\n\t\t\t\t\tselectPreferredExcerpt(\n\t\t\t\t\t\texcerpts,\n\t\t\t\t\t\tgetContextNumber(reference.metadata?.sectionChunkCount)\n\t\t\t\t\t).excerpt ||\n\t\t\t\t\texcerpts?.sectionExcerpt ||\n\t\t\t\t\treference.excerpt,\n\t\t\t\texcerpts,\n\t\t\t\texcerptSelection: reference.excerptSelection,\n\t\t\t\tkey,\n\t\t\t\tlabel: key,\n\t\t\t\tlocatorLabel: reference.locatorLabel,\n\t\t\t\tprovenanceLabel: reference.provenanceLabel,\n\t\t\t\treferenceNumbers: [reference.number],\n\t\t\t\treferences: [reference],\n\t\t\t\tsummary:\n\t\t\t\t\tbuildGroundingSectionSummaryLine(reference) ||\n\t\t\t\t\treference.label ||\n\t\t\t\t\treference.chunkId\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\n\t\texisting.count += 1;\n\t\tif (!existing.chunkIds.includes(reference.chunkId)) {\n\t\t\texisting.chunkIds.push(reference.chunkId);\n\t\t}\n\t\tif (!existing.referenceNumbers.includes(reference.number)) {\n\t\t\texisting.referenceNumbers.push(reference.number);\n\t\t}\n\t\texisting.references.push(reference);\n\t\tif (!existing.contextLabel && reference.contextLabel) {\n\t\t\texisting.contextLabel = reference.contextLabel;\n\t\t}\n\t\tif (!existing.locatorLabel && reference.locatorLabel) {\n\t\t\texisting.locatorLabel = reference.locatorLabel;\n\t\t}\n\t\tif (!existing.provenanceLabel && reference.provenanceLabel) {\n\t\t\texisting.provenanceLabel = reference.provenanceLabel;\n\t\t}\n\t\tif (!existing.excerpts && reference.excerpts) {\n\t\t\texisting.excerpts = {\n\t\t\t\tchunkExcerpt: reference.excerpts.chunkExcerpt,\n\t\t\t\tsectionExcerpt: reference.excerpts.sectionExcerpt,\n\t\t\t\twindowExcerpt: reference.excerpts.windowExcerpt\n\t\t\t};\n\t\t\texisting.excerpt = reference.excerpts.sectionExcerpt;\n\t\t}\n\t\tif (!existing.excerptSelection && reference.excerptSelection) {\n\t\t\texisting.excerptSelection = reference.excerptSelection;\n\t\t}\n\t}\n\n\treturn [...groups.values()]\n\t\t.map((group) => ({\n\t\t\t...group,\n\t\t\treferenceNumbers: [...group.referenceNumbers].sort(\n\t\t\t\t(left, right) => left - right\n\t\t\t),\n\t\t\treferences: group.references\n\t\t\t\t.slice()\n\t\t\t\t.sort((left, right) => left.number - right.number)\n\t\t}))\n\t\t.sort((left, right) => {\n\t\t\tconst leftFirst =\n\t\t\t\tleft.referenceNumbers[0] ?? Number.POSITIVE_INFINITY;\n\t\t\tconst rightFirst =\n\t\t\t\tright.referenceNumbers[0] ?? Number.POSITIVE_INFINITY;\n\t\t\tif (leftFirst !== rightFirst) {\n\t\t\t\treturn leftFirst - rightFirst;\n\t\t\t}\n\t\t\treturn left.label.localeCompare(right.label);\n\t\t});\n};\n\nexport const buildRAGGroundingReferences = (sources: RAGSource[]) => {\n\tconst citations = buildRAGCitations(sources);\n\tconst citationReferenceMap = buildRAGCitationReferenceMap(citations);\n\n\treturn citations.map<RAGGroundingReference>((citation) => {\n\t\tconst excerpts = buildGroundingChunkExcerpts(sources, citation.chunkId);\n\t\tconst excerptSelection = selectPreferredExcerpt(\n\t\t\texcerpts,\n\t\t\tgetContextNumber(citation.metadata?.sectionChunkCount)\n\t\t);\n\t\treturn {\n\t\t\tchunkId: citation.chunkId,\n\t\t\tcontextLabel:\n\t\t\t\tcitation.contextLabel ?? buildContextLabel(citation.metadata),\n\t\t\texcerpt:\n\t\t\t\texcerptSelection.excerpt ||\n\t\t\t\texcerpts?.chunkExcerpt ||\n\t\t\t\tbuildExcerpt(citation.text),\n\t\t\texcerpts,\n\t\t\texcerptSelection,\n\t\t\tlabel: citation.label,\n\t\t\tlocatorLabel:\n\t\t\t\tcitation.locatorLabel ??\n\t\t\t\tbuildLocatorLabel(\n\t\t\t\t\tcitation.metadata,\n\t\t\t\t\tcitation.source,\n\t\t\t\t\tcitation.title\n\t\t\t\t),\n\t\t\tmetadata: citation.metadata,\n\t\t\tnumber: citationReferenceMap[citation.chunkId] ?? 0,\n\t\t\tprovenanceLabel:\n\t\t\t\tcitation.provenanceLabel ??\n\t\t\t\tbuildProvenanceLabel(citation.metadata),\n\t\t\tscore: citation.score,\n\t\t\tsource: citation.source,\n\t\t\ttext: citation.text,\n\t\t\ttitle: citation.title\n\t\t};\n\t});\n};\n",
10
- "import type {\n\tRAGAdminActionPresentation,\n\tRAGAdminActionRecord,\n\tRAGAdminJobPresentation,\n\tRAGAdminJobRecord,\n\tAIMessage,\n\tRAGAnswerGroundingCaseSnapshotPresentation,\n\tRAGAnswerGroundingEvaluationCaseDiff,\n\tRAGAnswerGroundingEvaluationHistory,\n\tRAGAnswerGroundingEvaluationResponse,\n\tRAGCorpusHealth,\n\tRAGCorpusHealthPresentation,\n\tRAGExtractorReadiness,\n\tRAGReadinessPresentation,\n\tRAGGroundingOverviewPresentation,\n\tRAGGroundingProviderCaseComparisonPresentation,\n\tRAGGroundingProviderOverviewPresentation,\n\tRAGGroundingProviderPresentation,\n\tRAGComparisonOverviewPresentation,\n\tRAGComparisonPresentation,\n\tRAGChunkGraph,\n\tRAGChunkExcerpts,\n\tRAGExcerptModeCounts,\n\tRAGExcerptPromotionReason,\n\tRAGExcerptSelection,\n\tRAGChunkGraphEdge,\n\tRAGChunkGraphNavigation,\n\tRAGChunkGraphNode,\n\tRAGChunkGraphSectionGroup,\n\tRAGChunkStructure,\n\tRAGDocumentChunkPreview,\n\tRAGLabelValueRow,\n\tRAGRerankerComparisonEntry,\n\tRAGRetrievalComparison,\n\tRAGRetrievalComparisonEntry,\n\tRAGRetrievalTraceHistoryWindow,\n\tRAGRetrievalTraceStep,\n\tRAGRetrievalTrace,\n\tRAGHybridRetrievalMode,\n\tRAGSourceBalanceStrategy,\n\tRAGQualityOverviewPresentation,\n\tRAGSectionRetrievalDiagnostic,\n\tRAGEvaluationCaseDiff,\n\tRAGEvaluationCaseTracePresentation,\n\tRAGEvaluationHistory,\n\tRAGAnswerGroundingHistoryPresentation,\n\tRAGEvaluationResponse,\n\tRAGEvaluationHistoryPresentation,\n\tRAGEvaluationHistoryStore,\n\tRAGRerankerComparison,\n\tRAGAnswerWorkflowState,\n\tRAGRetrievalTracePresentation,\n\tRAGSource,\n\tRAGSourceLabels,\n\tRAGSourceGroup,\n\tRAGSourceSummary,\n\tRAGStreamStage,\n\tRAGSyncOverviewPresentation,\n\tRAGSyncSourcePresentation,\n\tRAGSyncSourceRecord,\n\tRAGSyncSourceRunPresentation\n} from '../../../types/ai';\nimport {\n\tbuildRAGCitationReferenceMap,\n\tbuildRAGCitations,\n\tbuildRAGGroundedAnswer,\n\tbuildRAGGroundedAnswerSectionSummaries,\n\tbuildRAGGroundingReferences\n} from './grounding';\n\nexport {\n\tbuildRAGCitationReferenceMap,\n\tbuildRAGCitations,\n\tbuildRAGGroundedAnswer,\n\tbuildRAGGroundedAnswerSectionSummaries,\n\tbuildRAGGroundingReferences\n};\n\nconst buildSourceGroupKey = (source: RAGSource) =>\n\tsource.source ?? source.title ?? source.chunkId;\n\nconst buildSourceLabel = (source: RAGSource) =>\n\tsource.source ?? source.title ?? source.chunkId;\n\nconst getContextNumber = (value: unknown) =>\n\ttypeof value === 'number' && Number.isFinite(value) ? value : undefined;\n\nconst getContextString = (value: unknown) =>\n\ttypeof value === 'string' && value.trim().length > 0\n\t\t? value.trim()\n\t\t: undefined;\n\nconst isRAGRetrievalTrace = (value: unknown): value is RAGRetrievalTrace => {\n\tif (!value || typeof value !== 'object') {\n\t\treturn false;\n\t}\n\n\tconst candidate = value as Record<string, unknown>;\n\n\treturn (\n\t\ttypeof candidate.query === 'string' &&\n\t\ttypeof candidate.transformedQuery === 'string' &&\n\t\tArray.isArray(candidate.variantQueries) &&\n\t\tArray.isArray(candidate.steps)\n\t);\n};\n\nconst formatTimestampLabel = (value: unknown) => {\n\tconst timestamp =\n\t\ttypeof value === 'number' && Number.isFinite(value)\n\t\t\t? value\n\t\t\t: typeof value === 'string'\n\t\t\t\t? Date.parse(value)\n\t\t\t\t: Number.NaN;\n\tif (!Number.isFinite(timestamp)) {\n\t\treturn undefined;\n\t}\n\n\treturn new Date(timestamp).toLocaleString('en-US', {\n\t\tdateStyle: 'medium',\n\t\ttimeStyle: 'short'\n\t});\n};\n\nconst formatRAGTraceValue = (value: unknown): string => {\n\tif (typeof value === 'string') return value;\n\tif (typeof value === 'number' || typeof value === 'boolean') {\n\t\treturn String(value);\n\t}\n\tif (Array.isArray(value)) {\n\t\treturn value.join(', ');\n\t}\n\tif (value && typeof value === 'object') {\n\t\treturn JSON.stringify(value);\n\t}\n\treturn 'n/a';\n};\n\nexport const buildRAGRetrievalTracePresentation = (\n\ttrace?: RAGRetrievalTrace\n): RAGRetrievalTracePresentation => {\n\tif (!trace) {\n\t\treturn {\n\t\t\tdetails: [],\n\t\t\tstats: [],\n\t\t\tsteps: []\n\t\t};\n\t}\n\n\tconst stats: RAGLabelValueRow[] = [\n\t\t{ label: 'Mode', value: trace.mode },\n\t\t{ label: 'Final Results', value: String(trace.resultCounts.final) },\n\t\t{\n\t\t\tlabel: 'Vector Candidates',\n\t\t\tvalue: String(trace.resultCounts.vector)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Lexical Candidates',\n\t\t\tvalue: String(trace.resultCounts.lexical)\n\t\t}\n\t];\n\tconst details: RAGLabelValueRow[] = [\n\t\t{ label: 'Transformed query', value: trace.transformedQuery },\n\t\t{\n\t\t\tlabel: 'Variant queries',\n\t\t\tvalue:\n\t\t\t\ttrace.variantQueries.length > 0\n\t\t\t\t\t? trace.variantQueries.join(' · ')\n\t\t\t\t\t: 'none'\n\t\t},\n\t\t{ label: 'Candidate topK', value: String(trace.candidateTopK) },\n\t\t{ label: 'Lexical topK', value: String(trace.lexicalTopK) }\n\t];\n\tconst steps = trace.steps.map((step) => ({\n\t\tcount: step.count,\n\t\tlabel: step.label,\n\t\trows: [\n\t\t\t{ label: 'stage', value: step.stage },\n\t\t\t...(typeof step.count === 'number'\n\t\t\t\t? [{ label: 'count', value: String(step.count) }]\n\t\t\t\t: []),\n\t\t\t...(typeof step.durationMs === 'number'\n\t\t\t\t? [{ label: 'durationMs', value: String(step.durationMs) }]\n\t\t\t\t: []),\n\t\t\t...Object.entries(step.metadata ?? {}).map(([key, value]) => ({\n\t\t\t\tlabel: key,\n\t\t\t\tvalue: formatRAGTraceValue(value)\n\t\t\t}))\n\t\t],\n\t\tstage: step.stage\n\t}));\n\n\treturn {\n\t\tdetails,\n\t\tstats,\n\t\tsteps\n\t};\n};\n\nconst formatCompactList = (values?: string[]) =>\n\tvalues && values.length > 0 ? values.join(', ') : 'none';\n\nconst formatCoverageMap = (entries?: Record<string, number>) => {\n\tif (!entries) {\n\t\treturn 'none';\n\t}\n\n\tconst values = Object.entries(entries);\n\treturn values.length > 0\n\t\t? values.map(([key, value]) => `${key} ${value}`).join(' · ')\n\t\t: 'none';\n};\n\nconst formatDurationLabel = (value?: number) => {\n\tif (typeof value !== 'number' || !Number.isFinite(value)) {\n\t\treturn 'n/a';\n\t}\n\n\tif (value < 1000) {\n\t\treturn `${value}ms`;\n\t}\n\n\tif (value < 60000) {\n\t\treturn `${(value / 1000).toFixed(value >= 10000 ? 0 : 1)}s`;\n\t}\n\n\tif (value < 3600000) {\n\t\treturn `${(value / 60000).toFixed(value >= 600000 ? 0 : 1)}m`;\n\t}\n\n\treturn `${(value / 3600000).toFixed(value >= 36000000 ? 0 : 1)}h`;\n};\n\nconst formatDateLabel = (value?: number) =>\n\ttypeof value === 'number' && Number.isFinite(value)\n\t\t? new Date(value).toLocaleString('en-US')\n\t\t: 'n/a';\n\nconst formatAgeLabel = (value?: number) => {\n\tif (typeof value !== 'number' || !Number.isFinite(value)) {\n\t\treturn 'n/a';\n\t}\n\n\tif (value < 1000) {\n\t\treturn `${Math.round(value)}ms`;\n\t}\n\n\tif (value < 60000) {\n\t\treturn `${(value / 1000).toFixed(value >= 10000 ? 0 : 1)}s`;\n\t}\n\n\tif (value < 3600000) {\n\t\treturn `${(value / 60000).toFixed(value >= 600000 ? 0 : 1)}m`;\n\t}\n\n\tif (value < 86400000) {\n\t\treturn `${(value / 3600000).toFixed(value >= 36000000 ? 0 : 1)}h`;\n\t}\n\n\treturn `${(value / 86400000).toFixed(value >= 864000000 ? 0 : 1)}d`;\n};\n\nconst buildSyncOverviewLatestRow = (sources: RAGSyncSourceRecord[]) => {\n\tconst latest = [...sources]\n\t\t.filter(\n\t\t\t(record) =>\n\t\t\t\ttypeof record.lastSuccessfulSyncAt === 'number' ||\n\t\t\t\ttypeof record.lastSyncedAt === 'number'\n\t\t)\n\t\t.sort(\n\t\t\t(left, right) =>\n\t\t\t\t(right.lastSuccessfulSyncAt ?? right.lastSyncedAt ?? 0) -\n\t\t\t\t(left.lastSuccessfulSyncAt ?? left.lastSyncedAt ?? 0)\n\t\t)[0];\n\n\tif (!latest) {\n\t\treturn {\n\t\t\tlabel: 'Latest sync',\n\t\t\tvalue: 'No completed run yet'\n\t\t};\n\t}\n\n\treturn {\n\t\tlabel: 'Latest sync',\n\t\tvalue: [\n\t\t\tlatest.label,\n\t\t\ttypeof latest.documentCount === 'number'\n\t\t\t\t? `${latest.documentCount} docs`\n\t\t\t\t: '',\n\t\t\ttypeof latest.chunkCount === 'number'\n\t\t\t\t? `${latest.chunkCount} chunks`\n\t\t\t\t: '',\n\t\t\ttypeof latest.lastSyncDurationMs === 'number'\n\t\t\t\t? formatDurationLabel(latest.lastSyncDurationMs)\n\t\t\t\t: '',\n\t\t\ttypeof latest.lastSuccessfulSyncAt === 'number'\n\t\t\t\t? formatDateLabel(latest.lastSuccessfulSyncAt)\n\t\t\t\t: typeof latest.lastSyncedAt === 'number'\n\t\t\t\t\t? formatDateLabel(latest.lastSyncedAt)\n\t\t\t\t\t: ''\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' · ')\n\t};\n};\n\nconst formatAdminActionLabel = (\n\tvalue: RAGAdminActionRecord['action'] | RAGAdminJobRecord['action']\n) => value.replaceAll('_', ' ');\n\nconst buildAdminTimingLabel = (input: {\n\telapsedMs?: number;\n\tstartedAt: number;\n}) =>\n\ttypeof input.elapsedMs === 'number'\n\t\t? formatDurationLabel(input.elapsedMs)\n\t\t: formatDateLabel(input.startedAt);\n\nexport const buildRAGAdminJobPresentation = (\n\tjob: RAGAdminJobRecord\n): RAGAdminJobPresentation => ({\n\tid: job.id,\n\taction: job.action,\n\tstatus: job.status,\n\tsummary: [\n\t\tjob.status.toUpperCase(),\n\t\tformatAdminActionLabel(job.action),\n\t\tjob.target,\n\t\tbuildAdminTimingLabel(job)\n\t]\n\t\t.filter(Boolean)\n\t\t.join(' · '),\n\trows: [\n\t\t{ label: 'Action', value: formatAdminActionLabel(job.action) },\n\t\t{ label: 'Status', value: job.status },\n\t\t...(job.target ? [{ label: 'Target', value: job.target }] : []),\n\t\t{ label: 'Timing', value: buildAdminTimingLabel(job) },\n\t\t...(job.error ? [{ label: 'Error', value: job.error }] : [])\n\t]\n});\n\nexport const buildRAGAdminJobPresentations = (\n\tjobs?: RAGAdminJobRecord[]\n): RAGAdminJobPresentation[] =>\n\t(jobs ?? []).slice(0, 3).map(buildRAGAdminJobPresentation);\n\nexport const buildRAGAdminActionPresentation = (\n\taction: RAGAdminActionRecord\n): RAGAdminActionPresentation => ({\n\tid: action.id,\n\taction: action.action,\n\tstatus: action.status,\n\tsummary: [\n\t\taction.status.toUpperCase(),\n\t\tformatAdminActionLabel(action.action),\n\t\taction.documentId ?? action.target,\n\t\tbuildAdminTimingLabel(action)\n\t]\n\t\t.filter(Boolean)\n\t\t.join(' · '),\n\trows: [\n\t\t{ label: 'Action', value: formatAdminActionLabel(action.action) },\n\t\t{ label: 'Status', value: action.status },\n\t\t...(action.documentId\n\t\t\t? [{ label: 'Document', value: action.documentId }]\n\t\t\t: action.target\n\t\t\t\t? [{ label: 'Target', value: action.target }]\n\t\t\t\t: []),\n\t\t{ label: 'Timing', value: buildAdminTimingLabel(action) },\n\t\t...(action.error ? [{ label: 'Error', value: action.error }] : [])\n\t]\n});\n\nexport const buildRAGAdminActionPresentations = (\n\tactions?: RAGAdminActionRecord[]\n): RAGAdminActionPresentation[] =>\n\t(actions ?? []).slice(0, 3).map(buildRAGAdminActionPresentation);\n\nconst buildRAGSyncSourceRunPresentations = (\n\tsource: RAGSyncSourceRecord\n): RAGSyncSourceRunPresentation[] => {\n\tif (!Array.isArray(source.metadata?.recentRuns)) {\n\t\treturn [];\n\t}\n\n\treturn (source.metadata.recentRuns as Array<Record<string, unknown>>)\n\t\t.slice(0, 3)\n\t\t.map((entry, index) => {\n\t\t\tconst trigger =\n\t\t\t\ttypeof entry.trigger === 'string' ? entry.trigger : 'sync';\n\t\t\tconst status =\n\t\t\t\ttypeof entry.status === 'string' ? entry.status : 'unknown';\n\t\t\tconst finishedAt =\n\t\t\t\ttypeof entry.finishedAt === 'number'\n\t\t\t\t\t? formatDateLabel(entry.finishedAt)\n\t\t\t\t\t: 'n/a';\n\t\t\tconst duration =\n\t\t\t\ttypeof entry.durationMs === 'number'\n\t\t\t\t\t? formatDurationLabel(entry.durationMs)\n\t\t\t\t\t: 'n/a';\n\t\t\tconst docs =\n\t\t\t\ttypeof entry.documentCount === 'number'\n\t\t\t\t\t? `${entry.documentCount} docs`\n\t\t\t\t\t: 'n/a';\n\t\t\tconst chunks =\n\t\t\t\ttypeof entry.chunkCount === 'number'\n\t\t\t\t\t? `${entry.chunkCount} chunks`\n\t\t\t\t\t: 'n/a';\n\t\t\tconst error =\n\t\t\t\ttypeof entry.error === 'string' && entry.error.length > 0\n\t\t\t\t\t? entry.error\n\t\t\t\t\t: undefined;\n\n\t\t\treturn {\n\t\t\t\tlabel: `Run ${index + 1}`,\n\t\t\t\tstatus,\n\t\t\t\tsummary: `${trigger} · ${status} · ${docs} · ${chunks} · ${duration} · ${finishedAt}`,\n\t\t\t\trows: [\n\t\t\t\t\t{ label: 'Trigger', value: trigger },\n\t\t\t\t\t{ label: 'Status', value: status },\n\t\t\t\t\t{ label: 'Output', value: `${docs} · ${chunks}` },\n\t\t\t\t\t{ label: 'Duration', value: duration },\n\t\t\t\t\t{ label: 'Finished', value: finishedAt },\n\t\t\t\t\t...(error ? [{ label: 'Error', value: error }] : [])\n\t\t\t\t]\n\t\t\t};\n\t\t});\n};\n\nexport const buildRAGSyncSourcePresentation = (\n\tsource: RAGSyncSourceRecord\n): RAGSyncSourcePresentation => {\n\tconst provider =\n\t\ttypeof source.metadata?.provider === 'string'\n\t\t\t? source.metadata.provider\n\t\t\t: undefined;\n\tconst accountMode =\n\t\ttypeof source.metadata?.accountMode === 'string'\n\t\t\t? source.metadata.accountMode\n\t\t\t: undefined;\n\tconst schedule =\n\t\ttypeof source.metadata?.schedule === 'string'\n\t\t\t? source.metadata.schedule\n\t\t\t: undefined;\n\tconst lastTrigger =\n\t\ttypeof source.metadata?.lastTrigger === 'string'\n\t\t\t? source.metadata.lastTrigger\n\t\t\t: undefined;\n\tconst liveReady =\n\t\ttypeof source.metadata?.liveReady === 'string'\n\t\t\t? source.metadata.liveReady\n\t\t\t: undefined;\n\n\treturn {\n\t\tid: source.id,\n\t\tlabel: source.label,\n\t\tkind: source.kind,\n\t\tstatus: source.status,\n\t\tsummary: [\n\t\t\tsource.kind,\n\t\t\tsource.status,\n\t\t\ttypeof source.documentCount === 'number'\n\t\t\t\t? `${source.documentCount} docs`\n\t\t\t\t: '',\n\t\t\ttypeof source.chunkCount === 'number'\n\t\t\t\t? `${source.chunkCount} chunks`\n\t\t\t\t: '',\n\t\t\ttypeof source.lastSyncDurationMs === 'number'\n\t\t\t\t? formatDurationLabel(source.lastSyncDurationMs)\n\t\t\t\t: '',\n\t\t\ttypeof source.lastSuccessfulSyncAt === 'number'\n\t\t\t\t? `last success ${formatDateLabel(source.lastSuccessfulSyncAt)}`\n\t\t\t\t: typeof source.lastSyncedAt === 'number'\n\t\t\t\t\t? `last sync ${formatDateLabel(source.lastSyncedAt)}`\n\t\t\t\t\t: ''\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' · '),\n\t\trows: [\n\t\t\t...(source.target\n\t\t\t\t? [{ label: 'Target', value: source.target }]\n\t\t\t\t: []),\n\t\t\t...(provider ? [{ label: 'Provider', value: provider }] : []),\n\t\t\t...(accountMode\n\t\t\t\t? [{ label: 'Account mode', value: accountMode }]\n\t\t\t\t: []),\n\t\t\t...(schedule ? [{ label: 'Schedule', value: schedule }] : []),\n\t\t\t...(lastTrigger\n\t\t\t\t? [{ label: 'Last trigger', value: lastTrigger }]\n\t\t\t\t: []),\n\t\t\t...(typeof source.lastSuccessfulSyncAt === 'number'\n\t\t\t\t? [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: 'Last success',\n\t\t\t\t\t\t\tvalue: formatDateLabel(source.lastSuccessfulSyncAt)\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t: []),\n\t\t\t...(typeof source.nextRetryAt === 'number'\n\t\t\t\t? [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: 'Next retry',\n\t\t\t\t\t\t\tvalue: formatDateLabel(source.nextRetryAt)\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t: []),\n\t\t\t...(source.lastError\n\t\t\t\t? [{ label: 'Last error', value: source.lastError }]\n\t\t\t\t: [])\n\t\t],\n\t\ttags: [\n\t\t\tprovider,\n\t\t\taccountMode ? `mode ${accountMode}` : undefined,\n\t\t\tliveReady\n\t\t].filter((value): value is string => Boolean(value)),\n\t\textendedSummary: source.description ?? liveReady,\n\t\truns: buildRAGSyncSourceRunPresentations(source)\n\t};\n};\n\nexport const buildRAGSyncSourcePresentations = (\n\tsources?: RAGSyncSourceRecord[]\n): RAGSyncSourcePresentation[] =>\n\t(sources ?? []).map(buildRAGSyncSourcePresentation);\n\nexport const buildRAGReadinessPresentation = (\n\treadiness?: RAGExtractorReadiness\n): RAGReadinessPresentation => {\n\tif (!readiness) {\n\t\treturn {\n\t\t\tsections: [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Provider',\n\t\t\t\t\ttitle: 'Unavailable',\n\t\t\t\t\tsummary: 'Readiness data is not available yet.'\n\t\t\t\t}\n\t\t\t]\n\t\t};\n\t}\n\n\treturn {\n\t\tsections: [\n\t\t\t{\n\t\t\t\tlabel: 'Provider',\n\t\t\t\ttitle: readiness.providerConfigured\n\t\t\t\t\t? (readiness.providerName ?? 'Runtime provider routing')\n\t\t\t\t\t: 'Not configured',\n\t\t\t\tsummary: readiness.providerConfigured\n\t\t\t\t\t? readiness.model\n\t\t\t\t\t\t? `Requests route through ${readiness.providerName ?? 'the runtime provider registry'} with default model ${readiness.model}.`\n\t\t\t\t\t\t: `Requests route through ${readiness.providerName ?? 'the runtime provider registry'}.`\n\t\t\t\t\t: 'Provider-backed retrieval is not configured yet.'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Embeddings',\n\t\t\t\ttitle: readiness.embeddingConfigured\n\t\t\t\t\t? readiness.embeddingModel ===\n\t\t\t\t\t\t'collection-managed embeddings'\n\t\t\t\t\t\t? 'Collection-managed'\n\t\t\t\t\t\t: 'Configured'\n\t\t\t\t\t: 'Missing',\n\t\t\t\tsummary: readiness.embeddingConfigured\n\t\t\t\t\t? readiness.embeddingModel ===\n\t\t\t\t\t\t'collection-managed embeddings'\n\t\t\t\t\t\t? 'Embeddings come from the collection and vector store layer, so retrieval stays vector-backed without a separate top-level embedding provider.'\n\t\t\t\t\t\t: (readiness.embeddingModel ??\n\t\t\t\t\t\t\t'Embedding model configured.')\n\t\t\t\t\t: 'Embeddings are not configured yet.'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Retrieval Stack',\n\t\t\t\ttitle: readiness.rerankerConfigured\n\t\t\t\t\t? 'Reranker ready'\n\t\t\t\t\t: 'Vector only',\n\t\t\t\tsummary: readiness.indexManagerConfigured\n\t\t\t\t\t? 'Index manager configured.'\n\t\t\t\t\t: 'Index manager not configured.'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Extractors',\n\t\t\t\ttitle: readiness.extractorsConfigured\n\t\t\t\t\t? `${readiness.extractorNames.length} configured`\n\t\t\t\t\t: 'None configured',\n\t\t\t\tsummary: readiness.extractorsConfigured\n\t\t\t\t\t? `Configured extractors: ${formatCompactList(readiness.extractorNames)}`\n\t\t\t\t\t: 'No extractors configured.',\n\t\t\t\ttags:\n\t\t\t\t\treadiness.extractorNames.length > 0\n\t\t\t\t\t\t? readiness.extractorNames\n\t\t\t\t\t\t: ['No extractors configured']\n\t\t\t}\n\t\t]\n\t};\n};\n\nexport const buildRAGCorpusHealthPresentation = (\n\thealth?: RAGCorpusHealth\n): RAGCorpusHealthPresentation => {\n\tif (!health) {\n\t\treturn {\n\t\t\tsections: [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Corpus health',\n\t\t\t\t\ttitle: 'Unavailable',\n\t\t\t\t\tsummary: 'Corpus health is not available yet.'\n\t\t\t\t}\n\t\t\t]\n\t\t};\n\t}\n\n\treturn {\n\t\tsections: [\n\t\t\t{\n\t\t\t\tlabel: 'Corpus coverage',\n\t\t\t\ttitle: `Formats: ${formatCoverageMap(health.coverageByFormat)}`,\n\t\t\t\tsummary: `Kinds: ${formatCoverageMap(health.coverageByKind)}`,\n\t\t\t\trows: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Average chunks per document',\n\t\t\t\t\t\tvalue: health.averageChunksPerDocument.toFixed(2)\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Chunk quality',\n\t\t\t\ttitle: `${health.averageChunksPerDocument.toFixed(2)} avg chunks/doc`,\n\t\t\t\tsummary: `Empty docs ${health.emptyDocuments} · empty chunks ${health.emptyChunks} · low signal ${health.lowSignalChunks}`,\n\t\t\t\trows: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Missing source',\n\t\t\t\t\t\tvalue: String(health.documentsMissingSource)\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Missing title',\n\t\t\t\t\t\tvalue: String(health.documentsMissingTitle)\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Missing metadata',\n\t\t\t\t\t\tvalue: String(health.documentsMissingMetadata)\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Freshness',\n\t\t\t\ttitle: `${health.staleDocuments.length} stale docs`,\n\t\t\t\tsummary: `Stale threshold ${formatAgeLabel(health.staleAfterMs)}`,\n\t\t\t\trows: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Oldest age',\n\t\t\t\t\t\tvalue: formatAgeLabel(health.oldestDocumentAgeMs)\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Newest age',\n\t\t\t\t\t\tvalue: formatAgeLabel(health.newestDocumentAgeMs)\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Failures',\n\t\t\t\ttitle: `${health.failedIngestJobs} ingest · ${health.failedAdminJobs} admin`,\n\t\t\t\tsummary: `Duplicate sources ${health.duplicateSourceGroups.length} · duplicate ids ${health.duplicateDocumentIdGroups.length}`,\n\t\t\t\trows: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Failures by input',\n\t\t\t\t\t\tvalue: formatCoverageMap(health.failuresByInputKind)\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Failures by extractor',\n\t\t\t\t\t\tvalue: formatCoverageMap(health.failuresByExtractor)\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Failures by admin action',\n\t\t\t\t\t\tvalue: formatCoverageMap(health.failuresByAdminAction)\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n};\n\nexport const buildRAGSyncOverviewPresentation = (\n\tsources?: RAGSyncSourceRecord[]\n): RAGSyncOverviewPresentation => {\n\tconst records = sources ?? [];\n\tif (records.length === 0) {\n\t\treturn {\n\t\t\trows: [\n\t\t\t\t{ label: 'Configured sync sources', value: '0' },\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Latest sync',\n\t\t\t\t\tvalue: 'No sync sources configured yet.'\n\t\t\t\t}\n\t\t\t],\n\t\t\tsections: [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Sync overview',\n\t\t\t\t\ttitle: 'No sync sources configured',\n\t\t\t\t\tsummary:\n\t\t\t\t\t\t'Add sync sources to monitor directories, URLs, storage, or mailboxes.'\n\t\t\t\t}\n\t\t\t]\n\t\t};\n\t}\n\n\tconst countByStatus = (status: RAGSyncSourceRecord['status']) =>\n\t\trecords.filter((record) => record.status === status).length;\n\n\treturn {\n\t\trows: [\n\t\t\t{ label: 'Configured sync sources', value: String(records.length) },\n\t\t\t{ label: 'Completed', value: String(countByStatus('completed')) },\n\t\t\t{ label: 'Running', value: String(countByStatus('running')) },\n\t\t\t{\n\t\t\t\tlabel: 'Failed',\n\t\t\t\tvalue: String(countByStatus('failed'))\n\t\t\t},\n\t\t\tbuildSyncOverviewLatestRow(records)\n\t\t],\n\t\tsections: [\n\t\t\t{\n\t\t\t\tlabel: 'Sync overview',\n\t\t\t\ttitle: `${records.length} configured`,\n\t\t\t\tsummary: `${countByStatus('completed')} completed · ${countByStatus('running')} running · ${countByStatus('failed')} failed`\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Latest sync',\n\t\t\t\ttitle: buildSyncOverviewLatestRow(records).value,\n\t\t\t\tsummary: 'Most recent completed or last-known sync activity.'\n\t\t\t}\n\t\t]\n\t};\n};\n\nconst formatMediaTimestamp = (value: unknown) => {\n\tif (typeof value !== 'number' || !Number.isFinite(value) || value < 0) {\n\t\treturn undefined;\n\t}\n\n\tconst totalSeconds = Math.floor(value / 1000);\n\tconst minutes = Math.floor(totalSeconds / 60);\n\tconst seconds = totalSeconds % 60;\n\tconst milliseconds = Math.floor(value % 1000);\n\n\treturn `${String(minutes).padStart(2, '0')}:${String(seconds).padStart(\n\t\t2,\n\t\t'0'\n\t)}.${String(milliseconds).padStart(3, '0')}`;\n};\n\nconst getAttachmentName = (source?: string, title?: string) => {\n\tconst sourceAttachment = source?.split('/').at(-1);\n\tif (sourceAttachment && sourceAttachment.includes('.')) {\n\t\treturn sourceAttachment;\n\t}\n\n\tconst titleAttachment = title?.split(' · ').at(-1);\n\tif (titleAttachment && titleAttachment.includes('.')) {\n\t\treturn titleAttachment;\n\t}\n\n\treturn undefined;\n};\n\nconst buildContextLabel = (metadata?: Record<string, unknown>) => {\n\tif (!metadata) {\n\t\treturn undefined;\n\t}\n\n\tconst emailKind = getContextString(metadata.emailKind);\n\tif (emailKind === 'attachment') {\n\t\treturn 'Attachment evidence';\n\t}\n\n\tif (emailKind === 'message') {\n\t\tconst from = getContextString(metadata.from);\n\t\treturn from ? `Message from ${from}` : 'Message evidence';\n\t}\n\n\tconst page =\n\t\tgetContextNumber(metadata.page) ??\n\t\tgetContextNumber(metadata.pageNumber) ??\n\t\t(typeof metadata.pageIndex === 'number'\n\t\t\t? metadata.pageIndex + 1\n\t\t\t: undefined);\n\tconst region =\n\t\tgetContextNumber(metadata.regionNumber) ??\n\t\t(typeof metadata.regionIndex === 'number'\n\t\t\t? metadata.regionIndex + 1\n\t\t\t: undefined);\n\tif (page && region) {\n\t\treturn `Page ${page} region ${region}`;\n\t}\n\tif (page) {\n\t\treturn `Page ${page}`;\n\t}\n\n\tconst sheet =\n\t\tgetContextString(metadata.sheetName) ??\n\t\t(Array.isArray(metadata.sheetNames)\n\t\t\t? getContextString(metadata.sheetNames[0])\n\t\t\t: undefined);\n\tif (sheet) {\n\t\treturn `Sheet ${sheet}`;\n\t}\n\n\tconst slide =\n\t\tgetContextNumber(metadata.slide) ??\n\t\tgetContextNumber(metadata.slideNumber) ??\n\t\t(typeof metadata.slideIndex === 'number'\n\t\t\t? metadata.slideIndex + 1\n\t\t\t: undefined);\n\tif (slide) {\n\t\treturn `Slide ${slide}`;\n\t}\n\n\tconst archiveEntry =\n\t\tgetContextString(metadata.archiveEntryPath) ??\n\t\tgetContextString(metadata.entryPath);\n\tif (archiveEntry) {\n\t\treturn `Archive entry ${archiveEntry}`;\n\t}\n\n\tconst threadTopic = getContextString(metadata.threadTopic);\n\tif (threadTopic) {\n\t\treturn `Thread ${threadTopic}`;\n\t}\n\n\tconst speaker = getContextString(metadata.speaker);\n\tif (speaker) {\n\t\treturn `Speaker ${speaker}`;\n\t}\n\n\tconst sectionPath = Array.isArray(metadata.sectionPath)\n\t\t? metadata.sectionPath\n\t\t\t\t.map((value) => getContextString(value))\n\t\t\t\t.filter((value): value is string => typeof value === 'string')\n\t\t: [];\n\tconst sectionTitle =\n\t\tgetContextString(metadata.sectionTitle) ?? sectionPath.at(-1);\n\tif (sectionTitle) {\n\t\treturn `Section ${sectionTitle}`;\n\t}\n\n\treturn undefined;\n};\n\nconst buildLocatorLabel = (\n\tmetadata?: Record<string, unknown>,\n\tsource?: string,\n\ttitle?: string\n) => {\n\tif (!metadata) {\n\t\treturn undefined;\n\t}\n\n\tconst page =\n\t\tgetContextNumber(metadata.page) ??\n\t\tgetContextNumber(metadata.pageNumber) ??\n\t\t(typeof metadata.pageIndex === 'number'\n\t\t\t? metadata.pageIndex + 1\n\t\t\t: undefined);\n\tconst region =\n\t\tgetContextNumber(metadata.regionNumber) ??\n\t\t(typeof metadata.regionIndex === 'number'\n\t\t\t? metadata.regionIndex + 1\n\t\t\t: undefined);\n\tif (page && region) {\n\t\treturn `Page ${page} · Region ${region}`;\n\t}\n\tif (page) {\n\t\treturn `Page ${page}`;\n\t}\n\n\tconst sheet =\n\t\tgetContextString(metadata.sheetName) ??\n\t\t(Array.isArray(metadata.sheetNames)\n\t\t\t? getContextString(metadata.sheetNames[0])\n\t\t\t: undefined);\n\tif (sheet) {\n\t\treturn `Sheet ${sheet}`;\n\t}\n\n\tconst slide =\n\t\tgetContextNumber(metadata.slide) ??\n\t\tgetContextNumber(metadata.slideNumber) ??\n\t\t(typeof metadata.slideIndex === 'number'\n\t\t\t? metadata.slideIndex + 1\n\t\t\t: undefined);\n\tif (slide) {\n\t\treturn `Slide ${slide}`;\n\t}\n\n\tconst archiveEntry =\n\t\tgetContextString(metadata.archiveEntryPath) ??\n\t\tgetContextString(metadata.entryPath);\n\tif (archiveEntry) {\n\t\treturn `Archive entry ${archiveEntry}`;\n\t}\n\n\tconst emailKind = getContextString(metadata.emailKind);\n\tif (emailKind === 'attachment') {\n\t\tconst attachmentName =\n\t\t\tgetContextString(metadata.attachmentName) ??\n\t\t\tgetAttachmentName(source, title);\n\t\treturn attachmentName ? `Attachment ${attachmentName}` : 'Attachment';\n\t}\n\n\tconst mediaStart = formatMediaTimestamp(metadata.startMs);\n\tconst mediaEnd = formatMediaTimestamp(metadata.endMs);\n\tif (mediaStart && mediaEnd) {\n\t\treturn `Timestamp ${mediaStart} - ${mediaEnd}`;\n\t}\n\n\tif (mediaStart) {\n\t\treturn `Timestamp ${mediaStart}`;\n\t}\n\n\tconst sectionPath = Array.isArray(metadata.sectionPath)\n\t\t? metadata.sectionPath\n\t\t\t\t.map((value) => getContextString(value))\n\t\t\t\t.filter((value): value is string => typeof value === 'string')\n\t\t: [];\n\tif (sectionPath.length > 0) {\n\t\treturn `Section ${sectionPath.join(' > ')}`;\n\t}\n\n\treturn undefined;\n};\n\nconst buildProvenanceLabel = (metadata?: Record<string, unknown>) => {\n\tif (!metadata) {\n\t\treturn undefined;\n\t}\n\n\tconst threadTopic = getContextString(metadata.threadTopic);\n\tconst from = getContextString(metadata.from);\n\tconst sentAt =\n\t\tformatTimestampLabel(metadata.sentAt) ??\n\t\tformatTimestampLabel(metadata.receivedAt);\n\tconst speaker = getContextString(metadata.speaker);\n\tconst mediaKind = getContextString(metadata.mediaKind);\n\tconst transcriptSource = getContextString(metadata.transcriptSource);\n\tconst pdfTextMode = getContextString(metadata.pdfTextMode);\n\tconst ocrEngine = getContextString(metadata.ocrEngine);\n\tconst ocrConfidence =\n\t\tgetContextNumber(metadata.ocrRegionConfidence) ??\n\t\tgetContextNumber(metadata.ocrConfidence);\n\n\tconst labels = [\n\t\tpdfTextMode ? `PDF ${pdfTextMode}` : '',\n\t\tocrEngine ? `OCR ${ocrEngine}` : '',\n\t\ttypeof ocrConfidence === 'number'\n\t\t\t? `Confidence ${ocrConfidence.toFixed(2)}`\n\t\t\t: '',\n\t\tmediaKind ? `Media ${mediaKind}` : '',\n\t\ttranscriptSource ? `Transcript ${transcriptSource}` : '',\n\t\tthreadTopic ? `Thread ${threadTopic}` : '',\n\t\tspeaker ? `Speaker ${speaker}` : '',\n\t\tfrom ? `Sender ${from}` : '',\n\t\tsentAt ? `Sent ${sentAt}` : ''\n\t].filter((value) => value.length > 0);\n\n\treturn labels.length > 0 ? labels.join(' · ') : undefined;\n};\n\nexport const buildRAGSourceLabels = ({\n\tmetadata,\n\tsource,\n\ttitle\n}: {\n\tmetadata?: Record<string, unknown>;\n\tsource?: string;\n\ttitle?: string;\n}): RAGSourceLabels | undefined => {\n\tconst contextLabel = buildContextLabel(metadata);\n\tconst locatorLabel = buildLocatorLabel(metadata, source, title);\n\tconst provenanceLabel = buildProvenanceLabel(metadata);\n\n\tif (!contextLabel && !locatorLabel && !provenanceLabel) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\tcontextLabel,\n\t\tlocatorLabel,\n\t\tprovenanceLabel\n\t};\n};\n\nexport const buildRAGChunkStructure = (\n\tmetadata?: Record<string, unknown>\n): RAGChunkStructure | undefined => {\n\tif (!metadata) {\n\t\treturn undefined;\n\t}\n\n\tconst sectionPath = Array.isArray(metadata.sectionPath)\n\t\t? metadata.sectionPath.filter(\n\t\t\t\t(value): value is string =>\n\t\t\t\t\ttypeof value === 'string' && value.trim().length > 0\n\t\t\t)\n\t\t: undefined;\n\tconst sectionKind =\n\t\tmetadata.sectionKind === 'markdown_heading' ||\n\t\tmetadata.sectionKind === 'html_heading' ||\n\t\tmetadata.sectionKind === 'office_heading' ||\n\t\tmetadata.sectionKind === 'spreadsheet_rows' ||\n\t\tmetadata.sectionKind === 'presentation_slide'\n\t\t\t? metadata.sectionKind\n\t\t\t: undefined;\n\tconst section: NonNullable<RAGChunkStructure['section']> = {\n\t\tdepth: getContextNumber(metadata.sectionDepth),\n\t\tkind: sectionKind,\n\t\tpath: sectionPath && sectionPath.length > 0 ? sectionPath : undefined,\n\t\ttitle: getContextString(metadata.sectionTitle)\n\t};\n\tconst sequence: NonNullable<RAGChunkStructure['sequence']> = {\n\t\tnextChunkId: getContextString(metadata.nextChunkId),\n\t\tpreviousChunkId: getContextString(metadata.previousChunkId),\n\t\tsectionChunkCount: getContextNumber(metadata.sectionChunkCount),\n\t\tsectionChunkId: getContextString(metadata.sectionChunkId),\n\t\tsectionChunkIndex: getContextNumber(metadata.sectionChunkIndex)\n\t};\n\n\tif (\n\t\t!section.title &&\n\t\t(!section.path || section.path.length === 0) &&\n\t\ttypeof section.depth !== 'number' &&\n\t\t!section.kind &&\n\t\t!sequence.nextChunkId &&\n\t\t!sequence.previousChunkId &&\n\t\ttypeof sequence.sectionChunkCount !== 'number' &&\n\t\t!sequence.sectionChunkId &&\n\t\ttypeof sequence.sectionChunkIndex !== 'number'\n\t) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\tsection:\n\t\t\tsection.title ||\n\t\t\t(section.path && section.path.length > 0) ||\n\t\t\ttypeof section.depth === 'number' ||\n\t\t\tsection.kind\n\t\t\t\t? section\n\t\t\t\t: undefined,\n\t\tsequence:\n\t\t\tsequence.nextChunkId ||\n\t\t\tsequence.previousChunkId ||\n\t\t\ttypeof sequence.sectionChunkCount === 'number' ||\n\t\t\tsequence.sectionChunkId ||\n\t\t\ttypeof sequence.sectionChunkIndex === 'number'\n\t\t\t\t? sequence\n\t\t\t\t: undefined\n\t};\n};\n\nconst buildExcerpt = (text: string, maxLength = 160) => {\n\tconst normalized = text.replaceAll(/\\s+/g, ' ').trim();\n\tif (normalized.length <= maxLength) {\n\t\treturn normalized;\n\t}\n\n\treturn `${normalized.slice(0, Math.max(0, maxLength - 1)).trimEnd()}…`;\n};\n\ntype ExcerptChunkInput = Pick<\n\tRAGSource,\n\t'chunkId' | 'metadata' | 'structure' | 'text'\n>;\n\nexport const buildRAGChunkExcerpts = (\n\tchunks: ExcerptChunkInput[],\n\tactiveChunkId?: string\n): RAGChunkExcerpts | undefined => {\n\tif (chunks.length === 0) {\n\t\treturn undefined;\n\t}\n\n\tconst graph = buildRAGChunkGraph(\n\t\tchunks.map((chunk) => ({\n\t\t\tchunkId: chunk.chunkId,\n\t\t\tmetadata: chunk.metadata,\n\t\t\tstructure: chunk.structure\n\t\t}))\n\t);\n\tconst navigation = buildRAGChunkGraphNavigation(graph, activeChunkId);\n\tconst activeChunk =\n\t\tchunks.find((chunk) => chunk.chunkId === navigation.activeChunkId) ??\n\t\tchunks[0];\n\tif (!activeChunk) {\n\t\treturn undefined;\n\t}\n\n\tconst chunkMap = new Map(chunks.map((chunk) => [chunk.chunkId, chunk]));\n\tconst orderedWindowIds = [\n\t\tnavigation.previousNode?.chunkId,\n\t\tactiveChunk.chunkId,\n\t\tnavigation.nextNode?.chunkId\n\t].filter(\n\t\t(chunkId, index, ids): chunkId is string =>\n\t\t\tBoolean(chunkId) && ids.indexOf(chunkId) === index\n\t);\n\tconst orderedSectionIds =\n\t\tnavigation.sectionNodes.length > 0\n\t\t\t? navigation.sectionNodes.map((node) => node.chunkId)\n\t\t\t: [activeChunk.chunkId];\n\n\tconst collectText = (chunkIds: string[]) =>\n\t\tchunkIds\n\t\t\t.map((chunkId) => chunkMap.get(chunkId)?.text)\n\t\t\t.filter((text): text is string => typeof text === 'string')\n\t\t\t.join('\\n\\n');\n\n\treturn {\n\t\tchunkExcerpt: buildExcerpt(activeChunk.text, 160),\n\t\tsectionExcerpt: buildExcerpt(collectText(orderedSectionIds), 320),\n\t\twindowExcerpt: buildExcerpt(collectText(orderedWindowIds), 240)\n\t};\n};\n\nexport const buildRAGPreferredExcerpt = (\n\texcerpts?: RAGChunkExcerpts,\n\tstructure?: RAGChunkStructure\n) => {\n\tconst selection = buildRAGExcerptSelection(excerpts, structure);\n\treturn selection.excerpt;\n};\n\nexport const buildRAGExcerptSelection = (\n\texcerpts?: RAGChunkExcerpts,\n\tstructure?: RAGChunkStructure\n): RAGExcerptSelection & { excerpt: string } => {\n\tif (!excerpts) {\n\t\treturn {\n\t\t\texcerpt: '',\n\t\t\tmode: 'chunk',\n\t\t\treason: 'single_chunk'\n\t\t};\n\t}\n\n\tconst chunkLength = excerpts.chunkExcerpt.trim().length;\n\tconst sectionChunkCount = structure?.sequence?.sectionChunkCount ?? 1;\n\tif (sectionChunkCount > 1 && chunkLength > 0 && chunkLength < 72) {\n\t\tif (\n\t\t\tsectionChunkCount <= 3 &&\n\t\t\texcerpts.sectionExcerpt.trim().length > 0\n\t\t) {\n\t\t\treturn {\n\t\t\t\texcerpt: excerpts.sectionExcerpt,\n\t\t\t\tmode: 'section',\n\t\t\t\treason: 'section_small_enough'\n\t\t\t};\n\t\t}\n\t\tif (excerpts.windowExcerpt.trim().length > 0) {\n\t\t\treturn {\n\t\t\t\texcerpt: excerpts.windowExcerpt,\n\t\t\t\tmode: 'window',\n\t\t\t\treason: 'section_too_large_use_window'\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\texcerpt: excerpts.chunkExcerpt,\n\t\t\tmode: 'chunk',\n\t\t\treason: 'chunk_too_narrow'\n\t\t};\n\t}\n\n\treturn {\n\t\texcerpt: excerpts.chunkExcerpt,\n\t\tmode: 'chunk',\n\t\treason: sectionChunkCount > 1 ? 'chunk_too_narrow' : 'single_chunk'\n\t};\n};\n\nexport const buildRAGExcerptModeCounts = (\n\tselections: Array<RAGExcerptSelection | undefined>\n): RAGExcerptModeCounts =>\n\tselections.reduce<RAGExcerptModeCounts>(\n\t\t(counts, selection) => {\n\t\t\tif (selection) {\n\t\t\t\tcounts[selection.mode] += 1;\n\t\t\t}\n\t\t\treturn counts;\n\t\t},\n\t\t{ chunk: 0, section: 0, window: 0 }\n\t);\n\ntype GraphChunkInput = Pick<\n\tRAGSource,\n\t'chunkId' | 'metadata' | 'source' | 'title' | 'labels' | 'structure'\n> &\n\tPartial<Pick<RAGSource, 'score'>>;\n\nexport const buildRAGChunkGraph = (\n\tchunks: GraphChunkInput[]\n): RAGChunkGraph => {\n\tconst nodes: RAGChunkGraphNode[] = [];\n\tconst edges: RAGChunkGraphEdge[] = [];\n\tconst edgeKeys = new Set<string>();\n\tconst sections = new Map<string, RAGChunkGraphSectionGroup>();\n\n\tfor (const chunk of chunks) {\n\t\tconst labels =\n\t\t\tchunk.labels ??\n\t\t\tbuildRAGSourceLabels({\n\t\t\t\tmetadata: chunk.metadata,\n\t\t\t\tsource: chunk.source,\n\t\t\t\ttitle: chunk.title\n\t\t\t});\n\t\tconst structure =\n\t\t\tchunk.structure ?? buildRAGChunkStructure(chunk.metadata);\n\n\t\tnodes.push({\n\t\t\tchunkId: chunk.chunkId,\n\t\t\tcontextLabel: labels?.contextLabel,\n\t\t\tlabel: chunk.source ?? chunk.title ?? chunk.chunkId,\n\t\t\tlocatorLabel: labels?.locatorLabel,\n\t\t\tprovenanceLabel: labels?.provenanceLabel,\n\t\t\tscore: chunk.score,\n\t\t\tsource: chunk.source,\n\t\t\tstructure,\n\t\t\ttitle: chunk.title\n\t\t});\n\n\t\tconst previousChunkId = structure?.sequence?.previousChunkId;\n\t\tif (previousChunkId) {\n\t\t\tconst key = `previous:${previousChunkId}:${chunk.chunkId}`;\n\t\t\tif (!edgeKeys.has(key)) {\n\t\t\t\tedgeKeys.add(key);\n\t\t\t\tedges.push({\n\t\t\t\t\tfromChunkId: previousChunkId,\n\t\t\t\t\trelation: 'previous',\n\t\t\t\t\ttoChunkId: chunk.chunkId\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tconst nextChunkId = structure?.sequence?.nextChunkId;\n\t\tif (nextChunkId) {\n\t\t\tconst key = `next:${chunk.chunkId}:${nextChunkId}`;\n\t\t\tif (!edgeKeys.has(key)) {\n\t\t\t\tedgeKeys.add(key);\n\t\t\t\tedges.push({\n\t\t\t\t\tfromChunkId: chunk.chunkId,\n\t\t\t\t\trelation: 'next',\n\t\t\t\t\ttoChunkId: nextChunkId\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tconst sectionId = structure?.sequence?.sectionChunkId;\n\t\tif (sectionId) {\n\t\t\tconst existing = sections.get(sectionId);\n\t\t\tif (!existing) {\n\t\t\t\tsections.set(sectionId, {\n\t\t\t\t\tchildSectionIds: [],\n\t\t\t\t\tchunkCount: structure.sequence?.sectionChunkCount ?? 1,\n\t\t\t\t\tchunkIds: [chunk.chunkId],\n\t\t\t\t\tdepth: structure.section?.depth,\n\t\t\t\t\tid: sectionId,\n\t\t\t\t\tkind: structure.section?.kind,\n\t\t\t\t\tleadChunkId: chunk.chunkId,\n\t\t\t\t\tpath: structure.section?.path,\n\t\t\t\t\ttitle: structure.section?.title\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (!existing.chunkIds.includes(chunk.chunkId)) {\n\t\t\t\texisting.chunkIds.push(chunk.chunkId);\n\t\t\t}\n\t\t\texisting.chunkCount = Math.max(\n\t\t\t\texisting.chunkCount,\n\t\t\t\tstructure.sequence?.sectionChunkCount ?? existing.chunkCount\n\t\t\t);\n\t\t}\n\t}\n\n\tfor (const section of sections.values()) {\n\t\tsection.chunkIds.sort((left, right) => {\n\t\t\tconst leftNode = nodes.find((node) => node.chunkId === left);\n\t\t\tconst rightNode = nodes.find((node) => node.chunkId === right);\n\t\t\tconst leftIndex =\n\t\t\t\tleftNode?.structure?.sequence?.sectionChunkIndex ??\n\t\t\t\tNumber.MAX_SAFE_INTEGER;\n\t\t\tconst rightIndex =\n\t\t\t\trightNode?.structure?.sequence?.sectionChunkIndex ??\n\t\t\t\tNumber.MAX_SAFE_INTEGER;\n\t\t\tif (leftIndex !== rightIndex) {\n\t\t\t\treturn leftIndex - rightIndex;\n\t\t\t}\n\n\t\t\treturn left.localeCompare(right);\n\t\t});\n\t\tsection.leadChunkId = section.chunkIds[0];\n\t}\n\n\tconst sectionPathIndex = new Map<string, RAGChunkGraphSectionGroup>();\n\tfor (const section of sections.values()) {\n\t\tconst path =\n\t\t\tsection.path && section.path.length > 0\n\t\t\t\t? section.path\n\t\t\t\t: section.title\n\t\t\t\t\t? [section.title]\n\t\t\t\t\t: undefined;\n\t\tif (path && path.length > 0) {\n\t\t\tsectionPathIndex.set(path.join('\\u0000'), section);\n\t\t}\n\t}\n\n\tfor (const section of sections.values()) {\n\t\tconst path =\n\t\t\tsection.path && section.path.length > 0\n\t\t\t\t? section.path\n\t\t\t\t: section.title\n\t\t\t\t\t? [section.title]\n\t\t\t\t\t: undefined;\n\t\tif (!path || path.length < 2) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst parent = sectionPathIndex.get(path.slice(0, -1).join('\\u0000'));\n\t\tif (!parent || parent.id === section.id) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tsection.parentSectionId = parent.id;\n\t\tif (!parent.childSectionIds.includes(section.id)) {\n\t\t\tparent.childSectionIds.push(section.id);\n\t\t}\n\n\t\tif (parent.leadChunkId && section.leadChunkId) {\n\t\t\tconst parentKey = `section_parent:${section.leadChunkId}:${parent.leadChunkId}`;\n\t\t\tif (!edgeKeys.has(parentKey)) {\n\t\t\t\tedgeKeys.add(parentKey);\n\t\t\t\tedges.push({\n\t\t\t\t\tfromChunkId: section.leadChunkId,\n\t\t\t\t\trelation: 'section_parent',\n\t\t\t\t\ttoChunkId: parent.leadChunkId\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst childKey = `section_child:${parent.leadChunkId}:${section.leadChunkId}`;\n\t\t\tif (!edgeKeys.has(childKey)) {\n\t\t\t\tedgeKeys.add(childKey);\n\t\t\t\tedges.push({\n\t\t\t\t\tfromChunkId: parent.leadChunkId,\n\t\t\t\t\trelation: 'section_child',\n\t\t\t\t\ttoChunkId: section.leadChunkId\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tnodes.sort((left, right) => {\n\t\tconst leftSection =\n\t\t\tleft.structure?.sequence?.sectionChunkIndex ??\n\t\t\tNumber.MAX_SAFE_INTEGER;\n\t\tconst rightSection =\n\t\t\tright.structure?.sequence?.sectionChunkIndex ??\n\t\t\tNumber.MAX_SAFE_INTEGER;\n\t\tif (leftSection !== rightSection) {\n\t\t\treturn leftSection - rightSection;\n\t\t}\n\n\t\tconst leftScore = left.score ?? Number.NEGATIVE_INFINITY;\n\t\tconst rightScore = right.score ?? Number.NEGATIVE_INFINITY;\n\t\tif (leftScore !== rightScore) {\n\t\t\treturn rightScore - leftScore;\n\t\t}\n\n\t\treturn left.label.localeCompare(right.label);\n\t});\n\n\treturn {\n\t\tedges,\n\t\tnodes,\n\t\tsections: [...sections.values()].sort((left, right) =>\n\t\t\t(left.title ?? left.id).localeCompare(right.title ?? right.id)\n\t\t)\n\t};\n};\n\nexport const buildRAGChunkPreviewGraph = (\n\tpreview: Pick<RAGDocumentChunkPreview, 'chunks' | 'document'>\n): RAGChunkGraph =>\n\tbuildRAGChunkGraph(\n\t\tpreview.chunks.map((chunk) => ({\n\t\t\tchunkId: chunk.chunkId,\n\t\t\tlabels: chunk.labels,\n\t\t\tmetadata: chunk.metadata,\n\t\t\tsource: chunk.source ?? preview.document.source,\n\t\t\tstructure: chunk.structure,\n\t\t\ttitle: chunk.title ?? preview.document.title\n\t\t}))\n\t);\n\nexport const buildRAGChunkPreviewNavigation = (\n\tpreview: Pick<RAGDocumentChunkPreview, 'chunks' | 'document'>,\n\tactiveChunkId?: string\n): RAGChunkGraphNavigation =>\n\tbuildRAGChunkGraphNavigation(\n\t\tbuildRAGChunkPreviewGraph(preview),\n\t\tactiveChunkId\n\t);\n\nexport const buildRAGChunkGraphNavigation = (\n\tgraph: RAGChunkGraph,\n\tactiveChunkId?: string\n): RAGChunkGraphNavigation => {\n\tif (graph.nodes.length === 0) {\n\t\treturn {\n\t\t\tactiveChunkId,\n\t\t\tchildSections: [],\n\t\t\tsiblingSections: [],\n\t\t\tsectionNodes: []\n\t\t};\n\t}\n\n\tconst activeNode =\n\t\t(activeChunkId\n\t\t\t? graph.nodes.find((node) => node.chunkId === activeChunkId)\n\t\t\t: undefined) ?? graph.nodes[0];\n\tconst resolvedActiveChunkId = activeNode?.chunkId;\n\tconst previousNode = activeNode?.structure?.sequence?.previousChunkId\n\t\t? graph.nodes.find(\n\t\t\t\t(node) =>\n\t\t\t\t\tnode.chunkId ===\n\t\t\t\t\tactiveNode.structure?.sequence?.previousChunkId\n\t\t\t)\n\t\t: undefined;\n\tconst nextNode = activeNode?.structure?.sequence?.nextChunkId\n\t\t? graph.nodes.find(\n\t\t\t\t(node) =>\n\t\t\t\t\tnode.chunkId === activeNode.structure?.sequence?.nextChunkId\n\t\t\t)\n\t\t: undefined;\n\tconst section = activeNode?.structure?.sequence?.sectionChunkId\n\t\t? graph.sections.find(\n\t\t\t\t(entry) =>\n\t\t\t\t\tentry.id === activeNode.structure?.sequence?.sectionChunkId\n\t\t\t)\n\t\t: undefined;\n\tconst parentSection = section?.parentSectionId\n\t\t? graph.sections.find((entry) => entry.id === section.parentSectionId)\n\t\t: undefined;\n\tconst childSections = section\n\t\t? section.childSectionIds\n\t\t\t\t.map((sectionId) =>\n\t\t\t\t\tgraph.sections.find((entry) => entry.id === sectionId)\n\t\t\t\t)\n\t\t\t\t.filter((entry): entry is RAGChunkGraphSectionGroup =>\n\t\t\t\t\tBoolean(entry)\n\t\t\t\t)\n\t\t: [];\n\tconst siblingSections = section?.parentSectionId\n\t\t? graph.sections.filter(\n\t\t\t\t(entry) =>\n\t\t\t\t\tentry.parentSectionId === section.parentSectionId &&\n\t\t\t\t\tentry.id !== section.id\n\t\t\t)\n\t\t: [];\n\tconst sectionNodes = section\n\t\t? section.chunkIds\n\t\t\t\t.map((chunkId) =>\n\t\t\t\t\tgraph.nodes.find((node) => node.chunkId === chunkId)\n\t\t\t\t)\n\t\t\t\t.filter((node): node is RAGChunkGraphNode => Boolean(node))\n\t\t: activeNode\n\t\t\t? [activeNode]\n\t\t\t: [];\n\n\treturn {\n\t\tactiveChunkId: resolvedActiveChunkId,\n\t\tactiveNode,\n\t\tchildSections,\n\t\tnextNode,\n\t\tparentSection,\n\t\tpreviousNode,\n\t\tsection,\n\t\tsiblingSections,\n\t\tsectionNodes\n\t};\n};\nexport const buildRAGRetrievedState = (messages: AIMessage[]) => {\n\tconst message = getLatestRetrievedMessage(messages);\n\n\tif (!message) {\n\t\treturn null;\n\t}\n\n\tconst sources = message.sources ?? [];\n\tconst citations = buildRAGCitations(sources);\n\tconst sectionDiagnostics = buildRAGSectionRetrievalDiagnostics(\n\t\tsources,\n\t\tisRAGRetrievalTrace(message.retrievalTrace)\n\t\t\t? message.retrievalTrace\n\t\t\t: undefined\n\t);\n\tconst sourceSummaries = buildRAGSourceSummaries(sources);\n\tconst groundedAnswer = buildRAGGroundedAnswer(message.content, sources);\n\n\treturn {\n\t\tcitationReferenceMap: buildRAGCitationReferenceMap(citations),\n\t\tcitations,\n\t\tconversationId: message.conversationId,\n\t\texcerptModeCounts: buildRAGExcerptModeCounts([\n\t\t\t...citations.map((citation) => citation.excerptSelection),\n\t\t\t...sourceSummaries.map((summary) => summary.excerptSelection)\n\t\t]),\n\t\tgroundedAnswer,\n\t\tmessageId: message.id,\n\t\tretrievalDurationMs: message.retrievalDurationMs,\n\t\tretrievalStartedAt: message.retrievalStartedAt,\n\t\tretrievedAt: message.retrievedAt,\n\t\ttrace: isRAGRetrievalTrace(message.retrievalTrace)\n\t\t\t? message.retrievalTrace\n\t\t\t: undefined,\n\t\tsectionDiagnostics,\n\t\tsourceGroups: buildRAGSourceGroups(sources),\n\t\tsourceSummaries,\n\t\tsources\n\t};\n};\nexport const buildRAGSourceSummaries = (sources: RAGSource[]) => {\n\tconst sourceGroups = buildRAGSourceGroups(sources);\n\tconst citations = buildRAGCitations(sources);\n\tconst citationReferenceMap = buildRAGCitationReferenceMap(citations);\n\n\treturn sourceGroups.map<RAGSourceSummary>((group) => {\n\t\tconst groupCitations = citations.filter((citation) =>\n\t\t\tgroup.chunks.some((chunk) => chunk.chunkId === citation.chunkId)\n\t\t);\n\t\tconst leadChunk = group.chunks\n\t\t\t.slice()\n\t\t\t.sort((left, right) => right.score - left.score)[0];\n\t\tconst excerpts = leadChunk\n\t\t\t? buildRAGChunkExcerpts(group.chunks, leadChunk.chunkId)\n\t\t\t: undefined;\n\t\tconst structure =\n\t\t\tleadChunk?.structure ?? buildRAGChunkStructure(leadChunk?.metadata);\n\t\tconst excerptSelection = buildRAGExcerptSelection(excerpts, structure);\n\n\t\treturn {\n\t\t\tbestScore: group.bestScore,\n\t\t\tcitationNumbers: groupCitations.map(\n\t\t\t\t(citation) => citationReferenceMap[citation.chunkId] ?? 0\n\t\t\t),\n\t\t\tcitations: groupCitations,\n\t\t\tchunkIds: group.chunks.map((chunk) => chunk.chunkId),\n\t\t\tcontextLabel:\n\t\t\t\tleadChunk?.labels?.contextLabel ??\n\t\t\t\tbuildContextLabel(leadChunk?.metadata),\n\t\t\tcount: group.count,\n\t\t\texcerpt:\n\t\t\t\texcerptSelection.excerpt || buildExcerpt(leadChunk?.text ?? ''),\n\t\t\texcerpts,\n\t\t\texcerptSelection,\n\t\t\tkey: group.key,\n\t\t\tlabel: group.label,\n\t\t\tlocatorLabel:\n\t\t\t\tleadChunk?.labels?.locatorLabel ??\n\t\t\t\tbuildLocatorLabel(\n\t\t\t\t\tleadChunk?.metadata,\n\t\t\t\t\tleadChunk?.source,\n\t\t\t\t\tleadChunk?.title\n\t\t\t\t),\n\t\t\tprovenanceLabel:\n\t\t\t\tleadChunk?.labels?.provenanceLabel ??\n\t\t\t\tbuildProvenanceLabel(leadChunk?.metadata),\n\t\t\tstructure,\n\t\t\tsource: group.source,\n\t\t\ttitle: group.title\n\t\t};\n\t});\n};\n\nconst getSectionPathFromSource = (source: RAGSource) => {\n\tconst path =\n\t\tsource.structure?.section?.path ??\n\t\t(Array.isArray(source.metadata?.sectionPath)\n\t\t\t? source.metadata.sectionPath\n\t\t\t\t\t.map((value) => getContextString(value))\n\t\t\t\t\t.filter(\n\t\t\t\t\t\t(value): value is string => typeof value === 'string'\n\t\t\t\t\t)\n\t\t\t: []);\n\n\treturn path.length > 0 ? path : undefined;\n};\n\nexport const buildRAGSectionRetrievalDiagnostics = (\n\tsources: RAGSource[],\n\ttrace?: RAGRetrievalTrace\n): RAGSectionRetrievalDiagnostic[] => {\n\tconst totalScore = sources.reduce((sum, source) => sum + source.score, 0);\n\tif (sources.length === 0 || totalScore <= 0) {\n\t\treturn [];\n\t}\n\n\tconst sections = new Map<\n\t\tstring,\n\t\t{\n\t\t\tkey: string;\n\t\t\tlabel: string;\n\t\t\tpath?: string[];\n\t\t\tparentLabel?: string;\n\t\t\tcount: number;\n\t\t\tbestScore: number;\n\t\t\ttotalScore: number;\n\t\t\ttopChunkId?: string;\n\t\t\ttopSource?: string;\n\t\t\tvectorHits: number;\n\t\t\tlexicalHits: number;\n\t\t\thybridHits: number;\n\t\t\tsourceSet: Set<string>;\n\t\t}\n\t>();\n\n\tfor (const source of sources) {\n\t\tconst path = getSectionPathFromSource(source);\n\t\tif (!path) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst key = path.join(' > ');\n\t\tconst label = path.at(-1) ?? key;\n\t\tconst parentLabel =\n\t\t\tpath.length > 1 ? path.slice(0, -1).join(' > ') : undefined;\n\t\tconst existing = sections.get(key);\n\t\tconst channels = Array.isArray(source.metadata?.retrievalChannels)\n\t\t\t? source.metadata.retrievalChannels.filter(\n\t\t\t\t\t(value): value is 'vector' | 'lexical' =>\n\t\t\t\t\t\tvalue === 'vector' || value === 'lexical'\n\t\t\t\t)\n\t\t\t: [];\n\t\tconst isHybrid =\n\t\t\tchannels.includes('vector') && channels.includes('lexical');\n\t\tconst vectorHits = channels.includes('vector') ? 1 : 0;\n\t\tconst lexicalHits = channels.includes('lexical') ? 1 : 0;\n\t\tconst hybridHits = isHybrid ? 1 : 0;\n\t\tif (!existing) {\n\t\t\tsections.set(key, {\n\t\t\t\tbestScore: source.score,\n\t\t\t\tcount: 1,\n\t\t\t\thybridHits,\n\t\t\t\tkey,\n\t\t\t\tlabel,\n\t\t\t\tlexicalHits,\n\t\t\t\tparentLabel,\n\t\t\t\tpath,\n\t\t\t\tsourceSet: new Set(source.source ? [source.source] : []),\n\t\t\t\ttopChunkId: source.chunkId,\n\t\t\t\ttopSource: source.source,\n\t\t\t\ttotalScore: source.score,\n\t\t\t\tvectorHits\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\n\t\texisting.count += 1;\n\t\texisting.totalScore += source.score;\n\t\tif (source.source) {\n\t\t\texisting.sourceSet.add(source.source);\n\t\t}\n\t\texisting.vectorHits += vectorHits;\n\t\texisting.lexicalHits += lexicalHits;\n\t\texisting.hybridHits += hybridHits;\n\t\tif (source.score > existing.bestScore) {\n\t\t\texisting.bestScore = source.score;\n\t\t\texisting.topChunkId = source.chunkId;\n\t\t\texisting.topSource = source.source;\n\t\t}\n\t}\n\n\tconst diagnostics = [...sections.values()];\n\tconst strongestBestHit = diagnostics.reduce(\n\t\t(highest, section) => Math.max(highest, section.bestScore),\n\t\t0\n\t);\n\tconst parentLabelByKey = new Map(\n\t\tdiagnostics.map(\n\t\t\t(section) => [section.key, section.parentLabel] as const\n\t\t)\n\t);\n\tconst stageSectionCounts = new Map(\n\t\t(trace?.steps ?? [])\n\t\t\t.filter(\n\t\t\t\t(step) =>\n\t\t\t\t\tArray.isArray(step.sectionCounts) &&\n\t\t\t\t\tstep.sectionCounts.length > 0\n\t\t\t)\n\t\t\t.map((step) => [step.stage, step.sectionCounts ?? []] as const)\n\t);\n\n\treturn diagnostics\n\t\t.map<RAGSectionRetrievalDiagnostic>((section) => {\n\t\t\tconst siblingPool = diagnostics.filter(\n\t\t\t\t(entry) => entry.parentLabel === section.parentLabel\n\t\t\t);\n\t\t\tconst siblings = siblingPool.filter(\n\t\t\t\t(entry) => entry.key !== section.key\n\t\t\t);\n\t\t\tconst strongestSibling = siblings\n\t\t\t\t.slice()\n\t\t\t\t.sort((left, right) => right.totalScore - left.totalScore)[0];\n\t\t\tconst parentTotal = siblingPool.reduce(\n\t\t\t\t(sum, entry) => sum + entry.totalScore,\n\t\t\t\t0\n\t\t\t);\n\t\t\tconst scoreShare = section.totalScore / totalScore;\n\t\t\tconst parentShare =\n\t\t\t\tparentTotal > 0 ? section.totalScore / parentTotal : undefined;\n\t\t\tconst parentDistribution =\n\t\t\t\tparentTotal > 0\n\t\t\t\t\t? siblingPool\n\t\t\t\t\t\t\t.map((entry) => ({\n\t\t\t\t\t\t\t\tcount: entry.count,\n\t\t\t\t\t\t\t\tisActive: entry.key === section.key,\n\t\t\t\t\t\t\t\tkey: entry.key,\n\t\t\t\t\t\t\t\tlabel: entry.label,\n\t\t\t\t\t\t\t\tparentShare: entry.totalScore / parentTotal,\n\t\t\t\t\t\t\t\ttotalScore: entry.totalScore\n\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t\t.sort(\n\t\t\t\t\t\t\t\t(left, right) =>\n\t\t\t\t\t\t\t\t\tright.totalScore - left.totalScore\n\t\t\t\t\t\t\t)\n\t\t\t\t\t: [];\n\t\t\tconst reasons: RAGSectionRetrievalDiagnostic['reasons'] = [];\n\t\t\tconst stageCounts =\n\t\t\t\ttrace?.steps\n\t\t\t\t\t.map((step) => ({\n\t\t\t\t\t\tcount:\n\t\t\t\t\t\t\tstep.sectionCounts?.find(\n\t\t\t\t\t\t\t\t(entry) => entry.key === section.key\n\t\t\t\t\t\t\t)?.count ?? 0,\n\t\t\t\t\t\tstage: step.stage\n\t\t\t\t\t}))\n\t\t\t\t\t.filter((entry) => entry.count > 0) ?? [];\n\t\t\tconst stageWeights = stageCounts.map((entry) => {\n\t\t\t\tconst stageEntries =\n\t\t\t\t\tstageSectionCounts\n\t\t\t\t\t\t.get(entry.stage)\n\t\t\t\t\t\t?.filter((candidate) => candidate.count > 0) ?? [];\n\t\t\t\tconst stageTotal = stageEntries.reduce(\n\t\t\t\t\t(sum, candidate) => sum + candidate.count,\n\t\t\t\t\t0\n\t\t\t\t);\n\t\t\t\tconst siblingStageEntries = stageEntries.filter(\n\t\t\t\t\t(candidate) =>\n\t\t\t\t\t\tcandidate.key !== section.key &&\n\t\t\t\t\t\tparentLabelByKey.get(candidate.key) ===\n\t\t\t\t\t\t\tsection.parentLabel\n\t\t\t\t);\n\t\t\t\tconst parentStageEntries = stageEntries.filter(\n\t\t\t\t\t(candidate) =>\n\t\t\t\t\t\tparentLabelByKey.get(candidate.key) ===\n\t\t\t\t\t\tsection.parentLabel\n\t\t\t\t);\n\t\t\t\tconst strongestStageSibling = siblingStageEntries\n\t\t\t\t\t.slice()\n\t\t\t\t\t.sort((left, right) => right.count - left.count)[0];\n\t\t\t\tconst parentStageTotal = parentStageEntries.reduce(\n\t\t\t\t\t(sum, candidate) => sum + candidate.count,\n\t\t\t\t\t0\n\t\t\t\t);\n\t\t\t\tconst stageShare =\n\t\t\t\t\tstageTotal > 0 ? entry.count / stageTotal : 0;\n\t\t\t\tconst parentStageShare =\n\t\t\t\t\tparentStageTotal > 0\n\t\t\t\t\t\t? entry.count / parentStageTotal\n\t\t\t\t\t\t: undefined;\n\t\t\t\tconst stageShareGap =\n\t\t\t\t\tstageTotal > 0 && strongestStageSibling\n\t\t\t\t\t\t? entry.count / stageTotal -\n\t\t\t\t\t\t\tstrongestStageSibling.count / stageTotal\n\t\t\t\t\t\t: undefined;\n\t\t\t\tconst parentStageShareGap =\n\t\t\t\t\tparentStageTotal > 0 && strongestStageSibling\n\t\t\t\t\t\t? entry.count / parentStageTotal -\n\t\t\t\t\t\t\tstrongestStageSibling.count / parentStageTotal\n\t\t\t\t\t\t: undefined;\n\t\t\t\tconst reasons: RAGSectionRetrievalDiagnostic['stageWeights'][number]['reasons'] =\n\t\t\t\t\t[];\n\t\t\t\tif (\n\t\t\t\t\tentry.stage === 'rerank' &&\n\t\t\t\t\tstageShare > 0.5 &&\n\t\t\t\t\t(typeof stageShareGap !== 'number' || stageShareGap > 0)\n\t\t\t\t) {\n\t\t\t\t\treasons.push('rerank_preserved_lead');\n\t\t\t\t}\n\t\t\t\tif (entry.stage === 'finalize' && stageShare >= 0.5) {\n\t\t\t\t\treasons.push('final_stage_concentration');\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\tentry.stage === 'finalize' &&\n\t\t\t\t\ttypeof parentStageShare === 'number' &&\n\t\t\t\t\tparentStageShare >= 0.6 &&\n\t\t\t\t\t(typeof parentStageShareGap !== 'number' ||\n\t\t\t\t\t\tparentStageShareGap > 0)\n\t\t\t\t) {\n\t\t\t\t\treasons.push('final_stage_dominant_within_parent');\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\tstrongestStageSibling &&\n\t\t\t\t\t((typeof stageShareGap === 'number' &&\n\t\t\t\t\t\tstageShareGap <= 0.1) ||\n\t\t\t\t\t\t(typeof parentStageShareGap === 'number' &&\n\t\t\t\t\t\t\tparentStageShareGap <= 0.1))\n\t\t\t\t) {\n\t\t\t\t\treasons.push('stage_runner_up_pressure');\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tcount: entry.count,\n\t\t\t\t\tparentStageShare,\n\t\t\t\t\tparentStageShareGap,\n\t\t\t\t\treasons,\n\t\t\t\t\tstage: entry.stage,\n\t\t\t\t\tstageShare,\n\t\t\t\t\tstageShareGap,\n\t\t\t\t\tstrongestSiblingCount: strongestStageSibling?.count,\n\t\t\t\t\tstrongestSiblingLabel: strongestStageSibling\n\t\t\t\t\t\t? (diagnostics.find(\n\t\t\t\t\t\t\t\t(candidate) =>\n\t\t\t\t\t\t\t\t\tcandidate.key === strongestStageSibling.key\n\t\t\t\t\t\t\t)?.label ?? strongestStageSibling.key)\n\t\t\t\t\t\t: undefined\n\t\t\t\t};\n\t\t\t});\n\t\t\tconst firstSeenStage = stageCounts[0]?.stage;\n\t\t\tconst lastSeenStage = stageCounts.at(-1)?.stage;\n\n\t\t\tif (section.bestScore >= strongestBestHit) {\n\t\t\t\treasons.push('best_hit');\n\t\t\t}\n\t\t\tif (section.count > 1) {\n\t\t\t\treasons.push('multi_hit_section');\n\t\t\t}\n\t\t\tif (siblings.length === 0) {\n\t\t\t\treasons.push('only_section_in_parent');\n\t\t\t} else if (\n\t\t\t\t!strongestSibling ||\n\t\t\t\tsection.totalScore >= strongestSibling.totalScore\n\t\t\t) {\n\t\t\t\treasons.push('dominant_within_parent');\n\t\t\t}\n\t\t\tif (scoreShare >= 0.5 || (parentShare ?? 0) >= 0.6) {\n\t\t\t\treasons.push('concentrated_evidence');\n\t\t\t}\n\n\t\t\tconst summaryParts = [\n\t\t\t\t`${section.count} hit${section.count === 1 ? '' : 's'}`,\n\t\t\t\t`${(scoreShare * 100).toFixed(0)}% score share`,\n\t\t\t\t`vector ${section.vectorHits} · lexical ${section.lexicalHits} · hybrid ${section.hybridHits}`,\n\t\t\t\ttypeof parentShare === 'number'\n\t\t\t\t\t? `${(parentShare * 100).toFixed(0)}% of parent section set`\n\t\t\t\t\t: '',\n\t\t\t\tstrongestSibling\n\t\t\t\t\t? `ahead of ${strongestSibling.label} by ${(section.totalScore - strongestSibling.totalScore).toFixed(2)}`\n\t\t\t\t\t: 'no sibling competition'\n\t\t\t].filter(Boolean);\n\n\t\t\treturn {\n\t\t\t\taverageScore: section.totalScore / section.count,\n\t\t\t\tbestScore: section.bestScore,\n\t\t\t\tcount: section.count,\n\t\t\t\tkey: section.key,\n\t\t\t\tlabel: section.label,\n\t\t\t\tparentLabel: section.parentLabel,\n\t\t\t\tparentDistribution,\n\t\t\t\tparentShare,\n\t\t\t\tparentShareGap:\n\t\t\t\t\ttypeof parentShare === 'number' &&\n\t\t\t\t\tstrongestSibling &&\n\t\t\t\t\tparentTotal > 0\n\t\t\t\t\t\t? parentShare -\n\t\t\t\t\t\t\tstrongestSibling.totalScore / parentTotal\n\t\t\t\t\t\t: undefined,\n\t\t\t\tpath: section.path,\n\t\t\t\tfirstSeenStage,\n\t\t\t\tlastSeenStage,\n\t\t\t\tretrievalMode: trace?.mode,\n\t\t\t\treasons,\n\t\t\t\trerankApplied: trace?.steps.some(\n\t\t\t\t\t(step) =>\n\t\t\t\t\t\tstep.stage === 'rerank' &&\n\t\t\t\t\t\tstep.metadata?.applied === true\n\t\t\t\t),\n\t\t\t\tscoreShare,\n\t\t\t\tscoreThresholdApplied: trace?.steps.some(\n\t\t\t\t\t(step) => step.stage === 'score_filter'\n\t\t\t\t),\n\t\t\t\tstageCounts,\n\t\t\t\tstageWeights,\n\t\t\t\tsiblingCount: siblings.length,\n\t\t\t\tsiblingScoreGap: strongestSibling\n\t\t\t\t\t? section.totalScore - strongestSibling.totalScore\n\t\t\t\t\t: undefined,\n\t\t\t\tsourceCount: section.sourceSet.size,\n\t\t\t\tsourceBalanceApplied: trace?.steps.some(\n\t\t\t\t\t(step) => step.stage === 'source_balance'\n\t\t\t\t),\n\t\t\t\tstrongestSiblingLabel: strongestSibling?.label,\n\t\t\t\tstrongestSiblingScore: strongestSibling?.totalScore,\n\t\t\t\tsummary: summaryParts.join(' · '),\n\t\t\t\ttopChunkId: section.topChunkId,\n\t\t\t\ttopSource: section.topSource,\n\t\t\t\ttotalScore: section.totalScore,\n\t\t\t\thybridHits: section.hybridHits,\n\t\t\t\tlexicalHits: section.lexicalHits,\n\t\t\t\tvectorHits: section.vectorHits\n\t\t\t};\n\t\t})\n\t\t.sort((left, right) => {\n\t\t\tif (right.totalScore !== left.totalScore) {\n\t\t\t\treturn right.totalScore - left.totalScore;\n\t\t\t}\n\t\t\tif (right.bestScore !== left.bestScore) {\n\t\t\t\treturn right.bestScore - left.bestScore;\n\t\t\t}\n\t\t\treturn left.label.localeCompare(right.label);\n\t\t});\n};\n\nexport type RAGStreamProgress = {\n\tstage: RAGStreamStage;\n\tconversationId?: string;\n\tmessageId?: string;\n\tretrievalStartedAt?: number;\n\tretrievedAt?: number;\n\tretrievalDurationMs?: number;\n\thasContent: boolean;\n\thasRetrieved: boolean;\n\thasSources: boolean;\n\thasThinking: boolean;\n\thasToolCalls: boolean;\n\tisComplete: boolean;\n\tisError: boolean;\n\tisIdle: boolean;\n\tisRetrieving: boolean;\n\tisRetrieved: boolean;\n\tisStreaming: boolean;\n\tisSubmitting: boolean;\n\tsourceCount: number;\n\tlatestMessage: AIMessage | undefined;\n};\n\nconst buildStreamProgressState = (messages: AIMessage[]) => {\n\tconst latestMessage = getLatestAssistantMessage(messages);\n\tconst retrieved = latestMessage\n\t\t? buildRAGRetrievedState(messages)\n\t\t: undefined;\n\n\treturn {\n\t\tconversationId: latestMessage?.conversationId,\n\t\tlatestMessage,\n\t\tmessageId: latestMessage?.id,\n\t\tretrieved,\n\t\tsourceCount:\n\t\t\tretrieved?.sources.length ?? latestMessage?.sources?.length ?? 0\n\t};\n};\n\nexport const buildRAGStreamProgress = ({\n\terror,\n\tisStreaming,\n\tmessages\n}: {\n\terror: string | null;\n\tisStreaming: boolean;\n\tmessages: AIMessage[];\n}): RAGStreamProgress => {\n\tconst stage = resolveRAGStreamStage({\n\t\terror,\n\t\tisStreaming,\n\t\tmessages\n\t});\n\tconst state = buildStreamProgressState(messages);\n\tconst hasSources = state.sourceCount > 0;\n\tconst hasRetrieved =\n\t\tstage === 'retrieved' ||\n\t\tstate.retrieved !== undefined ||\n\t\tstate.latestMessage?.retrievedAt !== undefined;\n\tconst hasThinking =\n\t\ttypeof state.latestMessage?.thinking === 'string' &&\n\t\tstate.latestMessage.thinking.length > 0;\n\tconst hasToolCalls = (state.latestMessage?.toolCalls?.length ?? 0) > 0;\n\n\treturn {\n\t\tconversationId: state.conversationId,\n\t\thasContent:\n\t\t\ttypeof state.latestMessage?.content === 'string' &&\n\t\t\tstate.latestMessage.content.length > 0,\n\t\thasRetrieved,\n\t\thasSources,\n\t\thasThinking,\n\t\thasToolCalls,\n\t\tisComplete: stage === 'complete',\n\t\tisError: stage === 'error',\n\t\tisIdle: stage === 'idle',\n\t\tisRetrieved: stage === 'retrieved',\n\t\tisRetrieving: stage === 'submitting' || stage === 'retrieving',\n\t\tisStreaming: stage === 'streaming',\n\t\tisSubmitting: stage === 'submitting',\n\t\tlatestMessage: state.latestMessage,\n\t\tmessageId: state.messageId,\n\t\tretrievalDurationMs: state.retrieved?.retrievalDurationMs,\n\t\tretrievalStartedAt: state.retrieved?.retrievalStartedAt,\n\t\tretrievedAt: state.retrieved?.retrievedAt,\n\t\tsourceCount: state.sourceCount,\n\t\tstage\n\t};\n};\n\nexport type RAGStreamProgressState = ReturnType<typeof buildRAGStreamProgress>;\nexport const buildRAGAnswerWorkflowState = ({\n\terror,\n\tisStreaming,\n\tmessages\n}: {\n\terror: string | null;\n\tisStreaming: boolean;\n\tmessages: AIMessage[];\n}): RAGAnswerWorkflowState => {\n\tconst latestAssistantMessage = getLatestAssistantMessage(messages);\n\tconst sources = getLatestRAGSources(messages);\n\tconst sourceGroups = buildRAGSourceGroups(sources);\n\tconst citations = buildRAGCitations(sources);\n\tconst citationReferenceMap = buildRAGCitationReferenceMap(citations);\n\tconst sourceSummaries = buildRAGSourceSummaries(sources);\n\tconst groundingReferences = buildRAGGroundingReferences(sources);\n\tconst groundedAnswer = buildRAGGroundedAnswer(\n\t\tlatestAssistantMessage?.content ?? '',\n\t\tsources\n\t);\n\tconst retrieval = buildRAGRetrievedState(messages);\n\tconst sectionDiagnostics = buildRAGSectionRetrievalDiagnostics(\n\t\tsources,\n\t\tretrieval?.trace\n\t);\n\tconst progress = buildRAGStreamProgress({\n\t\terror,\n\t\tisStreaming,\n\t\tmessages\n\t});\n\n\treturn {\n\t\texcerptModeCounts: buildRAGExcerptModeCounts([\n\t\t\t...citations.map((citation) => citation.excerptSelection),\n\t\t\t...sourceSummaries.map((summary) => summary.excerptSelection),\n\t\t\t...groundingReferences.map(\n\t\t\t\t(reference) => reference.excerptSelection\n\t\t\t),\n\t\t\t...groundedAnswer.sectionSummaries.map(\n\t\t\t\t(summary) => summary.excerptSelection\n\t\t\t)\n\t\t]),\n\t\tcitationReferenceMap,\n\t\tcitations,\n\t\tcoverage: groundedAnswer.coverage,\n\t\terror,\n\t\tgroundedAnswer,\n\t\tgroundingReferences,\n\t\thasCitations: groundedAnswer.hasCitations,\n\t\thasGrounding: groundingReferences.length > 0,\n\t\thasRetrieved: progress.hasRetrieved,\n\t\thasSources: sources.length > 0,\n\t\tisAnswerStreaming: progress.isStreaming,\n\t\tisComplete: progress.isComplete,\n\t\tisError: progress.isError,\n\t\tisIdle: progress.isIdle,\n\t\tisRetrieved: progress.isRetrieved,\n\t\tisRetrieving: progress.isRetrieving,\n\t\tisRunning:\n\t\t\tprogress.isSubmitting ||\n\t\t\tprogress.isRetrieving ||\n\t\t\tprogress.isStreaming,\n\t\tisSubmitting: progress.isSubmitting,\n\t\tlatestAssistantMessage,\n\t\tmessages,\n\t\tretrieval,\n\t\tretrievalDurationMs: retrieval?.retrievalDurationMs,\n\t\tretrievalStartedAt: retrieval?.retrievalStartedAt,\n\t\tretrievedAt: retrieval?.retrievedAt,\n\t\tsectionDiagnostics,\n\t\tsourceGroups,\n\t\tsourceSummaries,\n\t\tsources,\n\t\tstage: progress.stage,\n\t\tungroundedReferenceNumbers: groundedAnswer.ungroundedReferenceNumbers\n\t};\n};\n\nexport const buildRAGSourceGroups = (sources: RAGSource[]) => {\n\tconst groups = new Map<string, RAGSourceGroup>();\n\n\tfor (const source of sources) {\n\t\tupdateSourceGroup(groups, source);\n\t}\n\n\treturn [...groups.values()].sort((left, right) => {\n\t\tif (right.bestScore !== left.bestScore) {\n\t\t\treturn right.bestScore - left.bestScore;\n\t\t}\n\n\t\treturn left.label.localeCompare(right.label);\n\t});\n};\n\nconst buildSourceGroup = (source: RAGSource, key: string): RAGSourceGroup => ({\n\tbestScore: source.score,\n\tchunks: [source],\n\tcount: 1,\n\tkey,\n\tlabel: buildSourceLabel(source),\n\tlabels:\n\t\tsource.labels ??\n\t\tbuildRAGSourceLabels({\n\t\t\tmetadata: source.metadata,\n\t\t\tsource: source.source,\n\t\t\ttitle: source.title\n\t\t}),\n\tstructure: source.structure ?? buildRAGChunkStructure(source.metadata),\n\tsource: source.source,\n\ttitle: source.title\n});\n\nconst updateSourceGroup = (\n\tgroups: Map<string, RAGSourceGroup>,\n\tsource: RAGSource\n) => {\n\tconst key = buildSourceGroupKey(source);\n\tconst existing = groups.get(key);\n\tif (!existing) {\n\t\tgroups.set(key, buildSourceGroup(source, key));\n\n\t\treturn;\n\t}\n\n\tif (source.score > existing.bestScore) {\n\t\texisting.bestScore = source.score;\n\t\texisting.label = buildSourceLabel(source);\n\t\texisting.labels =\n\t\t\tsource.labels ??\n\t\t\tbuildRAGSourceLabels({\n\t\t\t\tmetadata: source.metadata,\n\t\t\t\tsource: source.source,\n\t\t\t\ttitle: source.title\n\t\t\t});\n\t\texisting.structure =\n\t\t\tsource.structure ?? buildRAGChunkStructure(source.metadata);\n\t\texisting.source = source.source;\n\t\texisting.title = source.title;\n\t} else {\n\t\texisting.bestScore = Math.max(existing.bestScore, source.score);\n\t}\n\texisting.count += 1;\n\texisting.chunks.push(source);\n};\nexport const getLatestAssistantMessage = (messages: AIMessage[]) => {\n\tfor (let index = messages.length - 1; index >= 0; index -= 1) {\n\t\tconst message = messages[index];\n\t\tif (message?.role === 'assistant') {\n\t\t\treturn message;\n\t\t}\n\t}\n\n\treturn undefined;\n};\nexport const getLatestRAGSources = (messages: AIMessage[]) =>\n\tgetLatestAssistantMessage(messages)?.sources ?? [];\nexport const getLatestRetrievedMessage = (messages: AIMessage[]) => {\n\tfor (let index = messages.length - 1; index >= 0; index -= 1) {\n\t\tconst message = messages[index];\n\t\tif (\n\t\t\tmessage?.role === 'assistant' &&\n\t\t\t(typeof message.retrievedAt === 'number' ||\n\t\t\t\t(message.sources?.length ?? 0) > 0)\n\t\t) {\n\t\t\treturn message;\n\t\t}\n\t}\n\n\treturn undefined;\n};\nexport const resolveRAGStreamStage = ({\n\terror,\n\tisStreaming,\n\tmessages\n}: {\n\terror: string | null;\n\tisStreaming: boolean;\n\tmessages: AIMessage[];\n}) => {\n\tif (error) {\n\t\treturn 'error';\n\t}\n\n\tconst assistantMessage = getLatestAssistantMessage(messages);\n\tif (!assistantMessage) {\n\t\treturn isStreaming ? 'submitting' : 'idle';\n\t}\n\n\tconst isRetrieving =\n\t\ttypeof assistantMessage.retrievalStartedAt === 'number' &&\n\t\ttypeof assistantMessage.retrievedAt !== 'number';\n\n\tif (isRetrieving) {\n\t\treturn 'retrieving';\n\t}\n\n\tif (!isStreaming) {\n\t\treturn 'complete';\n\t}\n\n\tconst hasRetrieved = typeof assistantMessage.retrievedAt === 'number';\n\tconst hasContent =\n\t\tassistantMessage.content.trim().length > 0 ||\n\t\tassistantMessage.thinking?.trim().length ||\n\t\t(assistantMessage.toolCalls?.length ?? 0) > 0 ||\n\t\t(assistantMessage.images?.length ?? 0) > 0;\n\n\tif (hasRetrieved && !hasContent) {\n\t\treturn 'retrieved';\n\t}\n\n\treturn 'streaming';\n};\n\nconst formatSignedDelta = (value: number, decimals = 0, suffix = '') =>\n\t`${value >= 0 ? '+' : ''}${value.toFixed(decimals)}${suffix}`;\n\nconst formatEvaluationPassingRate = (value: number) => `${value.toFixed(1)}%`;\n\nconst formatEvaluationSummary = (response: RAGEvaluationResponse) =>\n\t`${response.summary.totalCases} total · f1 ${response.summary.averageF1.toFixed(\n\t\t3\n\t)} · latency ${response.summary.averageLatencyMs.toFixed(1)}ms`;\n\nconst formatGroundingHistorySummaryValue = (response: {\n\tsummary: {\n\t\tpassedCases: number;\n\t\ttotalCases: number;\n\t\tgroundedCases: number;\n\t\tpartialCases: number;\n\t\tungroundedCases: number;\n\t\taverageResolvedCitationRate: number;\n\t\taverageCitationF1: number;\n\t};\n}) =>\n\t`${response.summary.passedCases}/${response.summary.totalCases} pass · grounded ${response.summary.groundedCases} · partial ${response.summary.partialCases} · ungrounded ${response.summary.ungroundedCases} · resolved citations ${(response.summary.averageResolvedCitationRate * 100).toFixed(1)}% · citation f1 ${response.summary.averageCitationF1.toFixed(3)}`;\n\nconst formatHistoryCaseLabels = (cases: RAGEvaluationCaseDiff[]) =>\n\tcases.length > 0\n\t\t? cases.map((entry) => entry.label ?? entry.caseId).join(', ')\n\t\t: 'none';\n\nconst formatGroundingHistoryCaseLabels = (\n\tcases: RAGAnswerGroundingEvaluationCaseDiff[]\n) =>\n\tcases.length > 0\n\t\t? cases.map((entry) => entry.label ?? entry.caseId).join(', ')\n\t\t: 'none';\n\nconst formatRerankerComparisonHeadline = (entry: RAGRerankerComparisonEntry) =>\n\t[\n\t\tentry.label,\n\t\t`passing ${formatEvaluationPassingRate(entry.response.passingRate)}`,\n\t\t`f1 ${entry.response.summary.averageF1.toFixed(3)}`,\n\t\t`latency ${entry.response.summary.averageLatencyMs.toFixed(1)}ms`\n\t].join(' · ');\n\nconst formatRetrievalComparisonHeadline = (\n\tentry: RAGRetrievalComparisonEntry\n) =>\n\t[\n\t\tentry.label,\n\t\t`mode ${entry.retrievalMode}`,\n\t\t`passing ${formatEvaluationPassingRate(entry.response.passingRate)}`,\n\t\t`f1 ${entry.response.summary.averageF1.toFixed(3)}`,\n\t\t`latency ${entry.response.summary.averageLatencyMs.toFixed(1)}ms`\n\t].join(' · ');\n\nconst formatTraceModes = (modes: RAGHybridRetrievalMode[]) =>\n\tmodes.length > 0 ? modes.join(' / ') : 'n/a';\n\nconst formatSourceBalanceStrategies = (\n\tstrategies: RAGSourceBalanceStrategy[]\n) => (strategies.length > 0 ? strategies.join(' / ') : 'n/a');\n\nconst formatTraceStageSummary = (\n\tstageCounts: Partial<\n\t\tRecord<RAGRetrievalTrace['steps'][number]['stage'], number>\n\t>\n) => {\n\tconst topStages = Object.entries(stageCounts)\n\t\t.sort((left, right) => right[1] - left[1])\n\t\t.slice(0, 3);\n\n\treturn topStages.length > 0\n\t\t? topStages.map(([stage, count]) => `${stage} ${count}`).join(' · ')\n\t\t: 'n/a';\n};\n\nconst formatTraceRatio = (count: number, total: number) => `${count}/${total}`;\n\nconst formatTraceCountDelta = (value: number) =>\n\t`${value >= 0 ? '+' : ''}${value}`;\n\nconst buildComparisonOverviewPresentation = <\n\tTEntry extends {\n\t\tlabel: string;\n\t\tresponse: {\n\t\t\tpassingRate: number;\n\t\t\tsummary: {\n\t\t\t\taverageF1: number;\n\t\t\t\taverageLatencyMs: number;\n\t\t\t};\n\t\t};\n\t}\n>(input: {\n\tentries: TEntry[];\n\tsummary: {\n\t\tbestByPassingRate?: string;\n\t\tbestByAverageF1?: string;\n\t\tfastest?: string;\n\t};\n\tresolveLabel: (id?: string) => string;\n\tresolveEntry: (id?: string) => TEntry | undefined;\n}): RAGComparisonOverviewPresentation => {\n\tconst winnerLabel = input.resolveLabel(input.summary.bestByPassingRate);\n\tconst winnerEntry = input.resolveEntry(input.summary.bestByPassingRate);\n\n\treturn {\n\t\trows: [\n\t\t\t{\n\t\t\t\tlabel: 'Best passing rate',\n\t\t\t\tvalue: input.resolveLabel(input.summary.bestByPassingRate)\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Best average F1',\n\t\t\t\tvalue: input.resolveLabel(input.summary.bestByAverageF1)\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Fastest',\n\t\t\t\tvalue: input.resolveLabel(input.summary.fastest)\n\t\t\t}\n\t\t],\n\t\twinnerLabel,\n\t\tsummary: winnerEntry\n\t\t\t? `passing ${formatEvaluationPassingRate(winnerEntry.response.passingRate)} · f1 ${winnerEntry.response.summary.averageF1.toFixed(3)} · latency ${winnerEntry.response.summary.averageLatencyMs.toFixed(1)}ms`\n\t\t\t: 'Stored benchmark comparison'\n\t};\n};\n\nexport const buildRAGComparisonTraceSummaryRows = (\n\tentry: RAGRerankerComparisonEntry | RAGRetrievalComparisonEntry\n): RAGLabelValueRow[] => {\n\tconst trace = entry.traceSummary;\n\n\tif (!trace) {\n\t\treturn [{ label: 'Trace', value: 'Unavailable' }];\n\t}\n\n\treturn [\n\t\t{ label: 'Modes', value: formatTraceModes(trace.modes) },\n\t\t{\n\t\t\tlabel: 'Balance',\n\t\t\tvalue: formatSourceBalanceStrategies(trace.sourceBalanceStrategies)\n\t\t},\n\t\t{ label: 'Avg final', value: trace.averageFinalCount.toFixed(1) },\n\t\t{ label: 'Avg vector', value: trace.averageVectorCount.toFixed(1) },\n\t\t{ label: 'Avg lexical', value: trace.averageLexicalCount.toFixed(1) },\n\t\t{\n\t\t\tlabel: 'Balanced',\n\t\t\tvalue: formatTraceRatio(trace.balancedCases, trace.totalCases)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Round robin',\n\t\t\tvalue: formatTraceRatio(trace.roundRobinCases, trace.totalCases)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Transforms',\n\t\t\tvalue: formatTraceRatio(trace.transformedCases, trace.totalCases)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Variants',\n\t\t\tvalue: formatTraceRatio(trace.variantCases, trace.totalCases)\n\t\t},\n\t\t{\n\t\t\tlabel: 'TopK',\n\t\t\tvalue: `${trace.averageCandidateTopK.toFixed(\n\t\t\t\t1\n\t\t\t)} / ${trace.averageLexicalTopK.toFixed(1)}`\n\t\t},\n\t\t{\n\t\t\tlabel: 'Stages',\n\t\t\tvalue: formatTraceStageSummary(trace.stageCounts)\n\t\t}\n\t];\n};\n\nexport const buildRAGComparisonTraceDiffRows = (\n\tentry: RAGRerankerComparisonEntry | RAGRetrievalComparisonEntry,\n\tleader?: RAGRerankerComparisonEntry | RAGRetrievalComparisonEntry\n): RAGLabelValueRow[] => {\n\tconst trace = entry.traceSummary;\n\n\tif (!trace) {\n\t\treturn [{ label: 'Trace', value: 'Unavailable for comparison' }];\n\t}\n\n\tconst leaderTrace = leader?.traceSummary;\n\tif (!leaderTrace) {\n\t\treturn [{ label: 'Baseline', value: 'Leader trace unavailable' }];\n\t}\n\n\tif (entry === leader) {\n\t\treturn [{ label: 'Baseline', value: 'Leader strategy' }];\n\t}\n\n\tconst stageDelta = Object.keys({\n\t\t...leaderTrace.stageCounts,\n\t\t...trace.stageCounts\n\t})\n\t\t.map((stage) => {\n\t\t\tconst typedStage = stage as RAGRetrievalTraceStep['stage'];\n\t\t\tconst delta =\n\t\t\t\t(trace.stageCounts[typedStage] ?? 0) -\n\t\t\t\t(leaderTrace.stageCounts[typedStage] ?? 0);\n\t\t\treturn delta === 0\n\t\t\t\t? null\n\t\t\t\t: `${typedStage} ${formatTraceCountDelta(delta)}`;\n\t\t})\n\t\t.filter((value): value is string => Boolean(value))\n\t\t.slice(0, 3)\n\t\t.join(' · ');\n\n\tconst rows: RAGLabelValueRow[] = [\n\t\t{ label: 'Baseline', value: leader.label }\n\t];\n\n\tif (formatTraceModes(trace.modes) !== formatTraceModes(leaderTrace.modes)) {\n\t\trows.push({\n\t\t\tlabel: 'Modes vs leader',\n\t\t\tvalue: `${formatTraceModes(trace.modes)} vs ${formatTraceModes(\n\t\t\t\tleaderTrace.modes\n\t\t\t)}`\n\t\t});\n\t}\n\n\tif (\n\t\tformatSourceBalanceStrategies(trace.sourceBalanceStrategies) !==\n\t\tformatSourceBalanceStrategies(leaderTrace.sourceBalanceStrategies)\n\t) {\n\t\trows.push({\n\t\t\tlabel: 'Balance vs leader',\n\t\t\tvalue: `${formatSourceBalanceStrategies(\n\t\t\t\ttrace.sourceBalanceStrategies\n\t\t\t)} vs ${formatSourceBalanceStrategies(\n\t\t\t\tleaderTrace.sourceBalanceStrategies\n\t\t\t)}`\n\t\t});\n\t}\n\n\trows.push(\n\t\t{\n\t\t\tlabel: 'Final delta',\n\t\t\tvalue: formatSignedDelta(\n\t\t\t\ttrace.averageFinalCount - leaderTrace.averageFinalCount,\n\t\t\t\t1\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Vector delta',\n\t\t\tvalue: formatSignedDelta(\n\t\t\t\ttrace.averageVectorCount - leaderTrace.averageVectorCount,\n\t\t\t\t1\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Lexical delta',\n\t\t\tvalue: formatSignedDelta(\n\t\t\t\ttrace.averageLexicalCount - leaderTrace.averageLexicalCount,\n\t\t\t\t1\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Transform delta',\n\t\t\tvalue: formatTraceCountDelta(\n\t\t\t\ttrace.transformedCases - leaderTrace.transformedCases\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Balanced delta',\n\t\t\tvalue: formatTraceCountDelta(\n\t\t\t\ttrace.balancedCases - leaderTrace.balancedCases\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Round robin delta',\n\t\t\tvalue: formatTraceCountDelta(\n\t\t\t\ttrace.roundRobinCases - leaderTrace.roundRobinCases\n\t\t\t)\n\t\t}\n\t);\n\n\tif (stageDelta) {\n\t\trows.push({ label: 'Stage delta', value: stageDelta });\n\t}\n\n\treturn rows;\n};\n\nexport const buildRAGRetrievalComparisonPresentations = (\n\tcomparison: RAGRetrievalComparison\n): RAGComparisonPresentation[] => {\n\tconst leader = comparison.entries[0];\n\treturn comparison.entries.map((entry) => ({\n\t\tdiffLabel: leader?.label ?? 'Leader',\n\t\tdiffRows: buildRAGComparisonTraceDiffRows(entry, leader),\n\t\tsummary: formatRetrievalComparisonHeadline(entry),\n\t\tid: entry.retrievalId,\n\t\tlabel: entry.label,\n\t\ttraceSummaryRows: buildRAGComparisonTraceSummaryRows(entry)\n\t}));\n};\n\nexport const buildRAGRetrievalComparisonOverviewPresentation = (\n\tcomparison: RAGRetrievalComparison\n): RAGComparisonOverviewPresentation =>\n\tbuildComparisonOverviewPresentation({\n\t\tentries: comparison.entries,\n\t\tresolveEntry: (id?: string) =>\n\t\t\tcomparison.entries.find((entry) => entry.retrievalId === id),\n\t\tresolveLabel: (id?: string) =>\n\t\t\tcomparison.entries.find((entry) => entry.retrievalId === id)\n\t\t\t\t?.label ??\n\t\t\tid ??\n\t\t\t'n/a',\n\t\tsummary: comparison.summary\n\t});\n\nexport const buildRAGRerankerComparisonPresentations = (\n\tcomparison: RAGRerankerComparison\n): RAGComparisonPresentation[] => {\n\tconst leader = comparison.entries[0];\n\treturn comparison.entries.map((entry) => ({\n\t\tdiffLabel: leader?.label ?? 'Leader',\n\t\tdiffRows: buildRAGComparisonTraceDiffRows(entry, leader),\n\t\tsummary: formatRerankerComparisonHeadline(entry),\n\t\tid: entry.rerankerId,\n\t\tlabel: entry.label,\n\t\ttraceSummaryRows: buildRAGComparisonTraceSummaryRows(entry)\n\t}));\n};\n\nexport const buildRAGRerankerComparisonOverviewPresentation = (\n\tcomparison: RAGRerankerComparison\n): RAGComparisonOverviewPresentation =>\n\tbuildComparisonOverviewPresentation({\n\t\tentries: comparison.entries,\n\t\tresolveEntry: (id?: string) =>\n\t\t\tcomparison.entries.find((entry) => entry.rerankerId === id),\n\t\tresolveLabel: (id?: string) =>\n\t\t\tcomparison.entries.find((entry) => entry.rerankerId === id)\n\t\t\t\t?.label ??\n\t\t\tid ??\n\t\t\t'n/a',\n\t\tsummary: comparison.summary\n\t});\n\nexport const buildRAGGroundingProviderPresentations = (\n\tentries: Array<{\n\t\tproviderKey: string;\n\t\tlabel: string;\n\t\telapsedMs: number;\n\t\tresponse: RAGAnswerGroundingEvaluationResponse;\n\t}>\n): RAGGroundingProviderPresentation[] =>\n\tentries.map((entry) => ({\n\t\tsummary: [\n\t\t\tentry.label,\n\t\t\t`passing ${formatEvaluationPassingRate(entry.response.passingRate)}`,\n\t\t\t`citation f1 ${entry.response.summary.averageCitationF1.toFixed(3)}`,\n\t\t\t`resolved ${formatEvaluationPassingRate(\n\t\t\t\tentry.response.summary.averageResolvedCitationRate\n\t\t\t)}`,\n\t\t\t`latency ${entry.elapsedMs.toFixed(1)}ms`\n\t\t].join(' · '),\n\t\tid: entry.providerKey,\n\t\tlabel: entry.label\n\t}));\n\nexport const buildRAGGroundingProviderOverviewPresentation = (input: {\n\tentries: Array<{\n\t\tproviderKey: string;\n\t\tlabel: string;\n\t\telapsedMs: number;\n\t\tresponse: RAGAnswerGroundingEvaluationResponse;\n\t}>;\n\tsummary: {\n\t\tbestByPassingRate?: string;\n\t\tbestByAverageCitationF1?: string;\n\t\tbestByResolvedCitationRate?: string;\n\t\tfastest?: string;\n\t};\n}): RAGGroundingProviderOverviewPresentation => {\n\tconst resolveLabel = (key?: string) =>\n\t\tinput.entries.find((entry) => entry.providerKey === key)?.label ??\n\t\tkey ??\n\t\t'n/a';\n\tconst winnerLabel = resolveLabel(input.summary.bestByPassingRate);\n\tconst winnerEntry = input.entries.find(\n\t\t(entry) => entry.providerKey === input.summary.bestByPassingRate\n\t);\n\n\treturn {\n\t\trows: [\n\t\t\t{\n\t\t\t\tlabel: 'Best passing rate',\n\t\t\t\tvalue: resolveLabel(input.summary.bestByPassingRate)\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Best citation F1',\n\t\t\t\tvalue: resolveLabel(input.summary.bestByAverageCitationF1)\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Best resolved citations',\n\t\t\t\tvalue: resolveLabel(input.summary.bestByResolvedCitationRate)\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Fastest',\n\t\t\t\tvalue: resolveLabel(input.summary.fastest)\n\t\t\t}\n\t\t],\n\t\twinnerLabel,\n\t\tsummary: winnerEntry\n\t\t\t? `passing ${formatEvaluationPassingRate(winnerEntry.response.passingRate)} · citation f1 ${winnerEntry.response.summary.averageCitationF1.toFixed(3)} · resolved ${formatEvaluationPassingRate(winnerEntry.response.summary.averageResolvedCitationRate)}`\n\t\t\t: 'Stored workflow evaluation'\n\t};\n};\n\nexport const buildRAGRetrievalOverviewPresentation = (\n\tcomparison: RAGRetrievalComparison\n): RAGQualityOverviewPresentation => ({\n\trows: buildRAGRetrievalComparisonOverviewPresentation(comparison).rows\n});\n\nexport const buildRAGRerankerOverviewPresentation = (\n\tcomparison: RAGRerankerComparison\n): RAGQualityOverviewPresentation => ({\n\trows: buildRAGRerankerComparisonOverviewPresentation(comparison).rows\n});\n\nexport const buildRAGGroundingOverviewPresentation = (input: {\n\tgroundingEvaluation: RAGAnswerGroundingEvaluationResponse;\n\tgroundingProviderOverview?: RAGGroundingProviderOverviewPresentation | null;\n}): RAGGroundingOverviewPresentation => ({\n\trows: [\n\t\t{\n\t\t\tlabel: 'Grounding',\n\t\t\tvalue: formatGroundingHistorySummaryValue(input.groundingEvaluation)\n\t\t},\n\t\t...(input.groundingProviderOverview?.rows ?? [\n\t\t\t{\n\t\t\t\tlabel: 'Grounding providers',\n\t\t\t\tvalue: 'Configure an AI provider to compare grounded answers.'\n\t\t\t}\n\t\t])\n\t]\n});\n\nexport const buildRAGQualityOverviewPresentation = (input: {\n\tretrievalComparison: RAGRetrievalComparison;\n\trerankerComparison: RAGRerankerComparison;\n\tgroundingEvaluation: RAGAnswerGroundingEvaluationResponse;\n\tgroundingProviderOverview?: RAGGroundingProviderOverviewPresentation | null;\n}): RAGQualityOverviewPresentation => ({\n\trows: [\n\t\t...buildRAGRetrievalOverviewPresentation(input.retrievalComparison)\n\t\t\t.rows,\n\t\t...buildRAGRerankerOverviewPresentation(input.rerankerComparison).rows,\n\t\t...buildRAGGroundingOverviewPresentation({\n\t\t\tgroundingEvaluation: input.groundingEvaluation,\n\t\t\tgroundingProviderOverview: input.groundingProviderOverview\n\t\t}).rows\n\t]\n});\n\nexport const buildRAGGroundingProviderCaseComparisonPresentations = (\n\tcomparisons: Array<{\n\t\tcaseId: string;\n\t\tlabel: string;\n\t\tentries: Array<{\n\t\t\tproviderKey: string;\n\t\t\tlabel: string;\n\t\t\tstatus: string;\n\t\t\tcoverage: string;\n\t\t\tcitationF1: number;\n\t\t\tresolvedCitationRate: number;\n\t\t\tmatchedIds: string[];\n\t\t\tmissingIds: string[];\n\t\t\textraIds: string[];\n\t\t\tanswerExcerpt: string;\n\t\t}>;\n\t\tsummary: {\n\t\t\tbestByStatus?: string;\n\t\t\tbestByCitationF1?: string;\n\t\t\tbestByResolvedCitationRate?: string;\n\t\t};\n\t}>\n): RAGGroundingProviderCaseComparisonPresentation[] =>\n\tcomparisons.map((comparison) => {\n\t\tconst resolveLabel = (key?: string) =>\n\t\t\tcomparison.entries.find((entry) => entry.providerKey === key)\n\t\t\t\t?.label ??\n\t\t\tkey ??\n\t\t\t'n/a';\n\n\t\treturn {\n\t\t\tcaseId: comparison.caseId,\n\t\t\tlabel: comparison.label,\n\t\t\trows: [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Best grounded',\n\t\t\t\t\tvalue: resolveLabel(comparison.summary.bestByStatus)\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Best citation F1',\n\t\t\t\t\tvalue: resolveLabel(comparison.summary.bestByCitationF1)\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Best resolved citations',\n\t\t\t\t\tvalue: resolveLabel(\n\t\t\t\t\t\tcomparison.summary.bestByResolvedCitationRate\n\t\t\t\t\t)\n\t\t\t\t},\n\t\t\t\t...comparison.entries.map((entry) => ({\n\t\t\t\t\tlabel: entry.label,\n\t\t\t\t\tvalue: [\n\t\t\t\t\t\tentry.status.toUpperCase(),\n\t\t\t\t\t\t`coverage ${entry.coverage}`,\n\t\t\t\t\t\t`f1 ${entry.citationF1.toFixed(3)}`,\n\t\t\t\t\t\t`resolved ${formatEvaluationPassingRate(\n\t\t\t\t\t\t\tentry.resolvedCitationRate\n\t\t\t\t\t\t)}`,\n\t\t\t\t\t\t`matched ${entry.matchedIds.join(', ') || 'none'}`,\n\t\t\t\t\t\t`missing ${entry.missingIds.join(', ') || 'none'}`,\n\t\t\t\t\t\t`extra ${entry.extraIds.join(', ') || 'none'}`,\n\t\t\t\t\t\t`answer ${entry.answerExcerpt || 'n/a'}`\n\t\t\t\t\t].join(' · ')\n\t\t\t\t}))\n\t\t\t],\n\t\t\tsummary: [\n\t\t\t\t`Best grounded: ${resolveLabel(comparison.summary.bestByStatus)}`,\n\t\t\t\t`Best citation F1: ${resolveLabel(\n\t\t\t\t\tcomparison.summary.bestByCitationF1\n\t\t\t\t)}`,\n\t\t\t\t`Best resolved citations: ${resolveLabel(\n\t\t\t\t\tcomparison.summary.bestByResolvedCitationRate\n\t\t\t\t)}`\n\t\t\t].join(' · ')\n\t\t};\n\t});\n\nexport const buildRAGEvaluationHistoryRows = (\n\thistory?: RAGEvaluationHistory\n): RAGLabelValueRow[] => {\n\tif (!history?.latestRun) {\n\t\treturn [\n\t\t\t{ label: 'History', value: 'No persisted benchmark runs yet.' }\n\t\t];\n\t}\n\n\tconst rows: RAGLabelValueRow[] = [\n\t\t{ label: 'Runs recorded', value: String(history.runs.length) },\n\t\t{\n\t\t\tlabel: 'Latest',\n\t\t\tvalue: `${history.latestRun.label} · ${formatEvaluationSummary(\n\t\t\t\thistory.latestRun.response\n\t\t\t)}`\n\t\t}\n\t];\n\n\tif (history.latestRun.traceSummary) {\n\t\trows.push({\n\t\t\tlabel: 'Latest trace',\n\t\t\tvalue: `${formatTraceModes(\n\t\t\t\thistory.latestRun.traceSummary.modes\n\t\t\t)} · balance ${formatSourceBalanceStrategies(\n\t\t\t\thistory.latestRun.traceSummary.sourceBalanceStrategies\n\t\t\t)} · final ${history.latestRun.traceSummary.averageFinalCount.toFixed(\n\t\t\t\t1\n\t\t\t)} · vector ${history.latestRun.traceSummary.averageVectorCount.toFixed(\n\t\t\t\t1\n\t\t\t)} · lexical ${history.latestRun.traceSummary.averageLexicalCount.toFixed(\n\t\t\t\t1\n\t\t\t)}`\n\t\t});\n\t}\n\n\tif (history.previousRun) {\n\t\trows.push({\n\t\t\tlabel: 'Previous',\n\t\t\tvalue: `${history.previousRun.label} · ${formatEvaluationSummary(\n\t\t\t\thistory.previousRun.response\n\t\t\t)}`\n\t\t});\n\t}\n\n\tif (!history.diff) {\n\t\trows.push({\n\t\t\tlabel: 'History diff',\n\t\t\tvalue: 'Run the benchmark again to diff regressions over time.'\n\t\t});\n\t\treturn rows;\n\t}\n\n\trows.push(\n\t\t{\n\t\t\tlabel: 'Passing delta',\n\t\t\tvalue: formatSignedDelta(\n\t\t\t\thistory.diff.summaryDelta.passingRate,\n\t\t\t\t1,\n\t\t\t\t'%'\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Average F1 delta',\n\t\t\tvalue: formatSignedDelta(history.diff.summaryDelta.averageF1, 3)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Latency delta',\n\t\t\tvalue: formatSignedDelta(\n\t\t\t\thistory.diff.summaryDelta.averageLatencyMs,\n\t\t\t\t1,\n\t\t\t\t'ms'\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Improved',\n\t\t\tvalue: formatHistoryCaseLabels(history.diff.improvedCases)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Regressed',\n\t\t\tvalue: formatHistoryCaseLabels(history.diff.regressedCases)\n\t\t}\n\t);\n\n\tif (history.diff.traceSummaryDelta) {\n\t\trows.push(\n\t\t\t{\n\t\t\t\tlabel: 'Trace mode shift',\n\t\t\t\tvalue: history.diff.traceSummaryDelta.modesChanged\n\t\t\t\t\t? 'changed'\n\t\t\t\t\t: 'stable'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Trace balance shift',\n\t\t\t\tvalue: history.diff.traceSummaryDelta\n\t\t\t\t\t.sourceBalanceStrategiesChanged\n\t\t\t\t\t? 'changed'\n\t\t\t\t\t: 'stable'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Trace final delta',\n\t\t\t\tvalue: formatSignedDelta(\n\t\t\t\t\thistory.diff.traceSummaryDelta.averageFinalCount,\n\t\t\t\t\t1\n\t\t\t\t)\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Trace vector delta',\n\t\t\t\tvalue: formatSignedDelta(\n\t\t\t\t\thistory.diff.traceSummaryDelta.averageVectorCount,\n\t\t\t\t\t1\n\t\t\t\t)\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Trace lexical delta',\n\t\t\t\tvalue: formatSignedDelta(\n\t\t\t\t\thistory.diff.traceSummaryDelta.averageLexicalCount,\n\t\t\t\t\t1\n\t\t\t\t)\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Trace balanced delta',\n\t\t\t\tvalue: formatTraceCountDelta(\n\t\t\t\t\thistory.diff.traceSummaryDelta.balancedCases\n\t\t\t\t)\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Trace round robin delta',\n\t\t\t\tvalue: formatTraceCountDelta(\n\t\t\t\t\thistory.diff.traceSummaryDelta.roundRobinCases\n\t\t\t\t)\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Trace transform delta',\n\t\t\t\tvalue: formatTraceCountDelta(\n\t\t\t\t\thistory.diff.traceSummaryDelta.transformedCases\n\t\t\t\t)\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Trace variant delta',\n\t\t\t\tvalue: formatTraceCountDelta(\n\t\t\t\t\thistory.diff.traceSummaryDelta.variantCases\n\t\t\t\t)\n\t\t\t}\n\t\t);\n\n\t\tconst stageDelta = Object.entries(\n\t\t\thistory.diff.traceSummaryDelta.stageCounts ?? {}\n\t\t)\n\t\t\t.map(([stage, count]) => `${stage} ${formatTraceCountDelta(count)}`)\n\t\t\t.join(', ');\n\n\t\tif (stageDelta) {\n\t\t\trows.push({ label: 'Trace stage delta', value: stageDelta });\n\t\t}\n\t}\n\n\tif (history.caseTraceSnapshots.length > 0) {\n\t\tconst changedCases = history.caseTraceSnapshots.filter(\n\t\t\t(entry) => entry.traceChange === 'changed'\n\t\t);\n\t\trows.push({\n\t\t\tlabel: 'Trace drift cases',\n\t\t\tvalue:\n\t\t\t\tchangedCases.length > 0\n\t\t\t\t\t? changedCases\n\t\t\t\t\t\t\t.map((entry) => entry.label ?? entry.caseId)\n\t\t\t\t\t\t\t.slice(0, 4)\n\t\t\t\t\t\t\t.join(', ')\n\t\t\t\t\t: 'none'\n\t\t});\n\t}\n\n\treturn rows;\n};\n\nexport const buildRAGEvaluationCaseTracePresentations = (\n\thistory?: RAGEvaluationHistory\n): RAGEvaluationCaseTracePresentation[] => {\n\tif (!history?.caseTraceSnapshots.length) {\n\t\treturn [];\n\t}\n\n\treturn history.caseTraceSnapshots.map((entry) => {\n\t\tconst label = entry.label ?? entry.caseId;\n\t\tconst currentMode = entry.traceMode ?? 'no-trace';\n\t\tconst previousMode = entry.previousTraceMode ?? 'n/a';\n\t\tconst currentBalance = entry.sourceBalanceStrategy ?? 'cap';\n\t\tconst previousBalance = entry.previousSourceBalanceStrategy ?? 'n/a';\n\t\tconst currentVariants =\n\t\t\tentry.variantQueries.length > 0\n\t\t\t\t? entry.variantQueries.join(', ')\n\t\t\t\t: 'none';\n\t\tconst previousVariants =\n\t\t\tentry.previousVariantQueries.length > 0\n\t\t\t\t? entry.previousVariantQueries.join(', ')\n\t\t\t\t: 'none';\n\t\tconst currentStages =\n\t\t\tObject.keys(entry.stageCounts).length > 0\n\t\t\t\t? Object.entries(entry.stageCounts)\n\t\t\t\t\t\t.map(([stage, count]) => `${stage} ${count}`)\n\t\t\t\t\t\t.join(', ')\n\t\t\t\t: 'none';\n\t\tconst previousStages =\n\t\t\tObject.keys(entry.previousStageCounts).length > 0\n\t\t\t\t? Object.entries(entry.previousStageCounts)\n\t\t\t\t\t\t.map(([stage, count]) => `${stage} ${count}`)\n\t\t\t\t\t\t.join(', ')\n\t\t\t\t: 'none';\n\n\t\treturn {\n\t\t\tcaseId: entry.caseId,\n\t\t\tlabel,\n\t\t\tsummary: `${entry.traceChange} · ${previousMode}→${currentMode} · ${previousBalance}→${currentBalance} · final ${\n\t\t\t\tentry.previousFinalCount ?? 0\n\t\t\t}→${entry.finalCount}`,\n\t\t\ttraceChange: entry.traceChange,\n\t\t\trows: [\n\t\t\t\t{ label: 'Query', value: entry.query },\n\t\t\t\t{ label: 'Trace change', value: entry.traceChange },\n\t\t\t\t{ label: 'Mode', value: `${previousMode}→${currentMode}` },\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Balance',\n\t\t\t\t\tvalue: `${previousBalance}→${currentBalance}`\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Transformed query',\n\t\t\t\t\tvalue: `${\n\t\t\t\t\t\tentry.previousTransformedQuery?.trim() || 'n/a'\n\t\t\t\t\t}→${entry.transformedQuery?.trim() || 'n/a'}`\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Final',\n\t\t\t\t\tvalue: `${entry.previousFinalCount ?? 0}→${entry.finalCount}`\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Vector',\n\t\t\t\t\tvalue: `${entry.previousVectorCount ?? 0}→${entry.vectorCount}`\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Lexical',\n\t\t\t\t\tvalue: `${entry.previousLexicalCount ?? 0}→${entry.lexicalCount}`\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Candidate topK',\n\t\t\t\t\tvalue: `${entry.previousCandidateTopK ?? 0}→${entry.candidateTopK}`\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Lexical topK',\n\t\t\t\t\tvalue: `${entry.previousLexicalTopK ?? 0}→${entry.lexicalTopK}`\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Variants',\n\t\t\t\t\tvalue: `${previousVariants}→${currentVariants}`\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Stages',\n\t\t\t\t\tvalue: `${previousStages}→${currentStages}`\n\t\t\t\t},\n\t\t\t\t{ label: 'Status', value: entry.status }\n\t\t\t]\n\t\t};\n\t});\n};\n\nexport const buildRAGEvaluationHistoryPresentation = (\n\thistory?: RAGEvaluationHistory\n): RAGEvaluationHistoryPresentation => ({\n\tcaseTraces: buildRAGEvaluationCaseTracePresentations(history),\n\trows: buildRAGEvaluationHistoryRows(history),\n\tsummary: history?.latestRun\n\t\t? history.latestRun.label\n\t\t: 'No persisted benchmark runs yet.'\n});\n\nexport const buildRAGAnswerGroundingCaseSnapshotPresentations = (\n\thistory?: RAGAnswerGroundingEvaluationHistory\n): RAGAnswerGroundingCaseSnapshotPresentation[] => {\n\tif (!history?.caseSnapshots.length) {\n\t\treturn [];\n\t}\n\n\treturn history.caseSnapshots.map((entry) => {\n\t\tconst label = entry.label ?? entry.caseId;\n\t\treturn {\n\t\t\tanswerChange: entry.answerChange,\n\t\t\tcaseId: entry.caseId,\n\t\t\tlabel,\n\t\t\trows: [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Query',\n\t\t\t\t\tvalue: entry.query?.trim().length ? entry.query : 'n/a'\n\t\t\t\t},\n\t\t\t\t{ label: 'Answer change', value: entry.answerChange },\n\t\t\t\t{ label: 'Coverage', value: entry.coverage },\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Resolved citations',\n\t\t\t\t\tvalue: `${entry.resolvedCitationCount}/${entry.citationCount}`\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Resolved citation rate',\n\t\t\t\t\tvalue: entry.resolvedCitationRate.toFixed(3)\n\t\t\t\t},\n\t\t\t\t{ label: 'Citation F1', value: entry.citationF1.toFixed(3) },\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Reference count',\n\t\t\t\t\tvalue: String(entry.referenceCount)\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Cited IDs',\n\t\t\t\t\tvalue:\n\t\t\t\t\t\tentry.citedIds.length > 0\n\t\t\t\t\t\t\t? entry.citedIds.join(', ')\n\t\t\t\t\t\t\t: 'none'\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Matched IDs',\n\t\t\t\t\tvalue:\n\t\t\t\t\t\tentry.matchedIds.length > 0\n\t\t\t\t\t\t\t? entry.matchedIds.join(', ')\n\t\t\t\t\t\t\t: 'none'\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Missing IDs',\n\t\t\t\t\tvalue:\n\t\t\t\t\t\tentry.missingIds.length > 0\n\t\t\t\t\t\t\t? entry.missingIds.join(', ')\n\t\t\t\t\t\t\t: 'none'\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Extra IDs',\n\t\t\t\t\tvalue:\n\t\t\t\t\t\tentry.extraIds.length > 0\n\t\t\t\t\t\t\t? entry.extraIds.join(', ')\n\t\t\t\t\t\t\t: 'none'\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Unresolved refs',\n\t\t\t\t\tvalue:\n\t\t\t\t\t\tentry.ungroundedReferenceNumbers.length > 0\n\t\t\t\t\t\t\t? entry.ungroundedReferenceNumbers.join(', ')\n\t\t\t\t\t\t\t: 'none'\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Answer',\n\t\t\t\t\tvalue: entry.answer.trim().length > 0 ? entry.answer : 'n/a'\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Previous answer',\n\t\t\t\t\tvalue:\n\t\t\t\t\t\tentry.previousAnswer &&\n\t\t\t\t\t\tentry.previousAnswer.trim().length > 0\n\t\t\t\t\t\t\t? entry.previousAnswer\n\t\t\t\t\t\t\t: 'n/a'\n\t\t\t\t}\n\t\t\t],\n\t\t\tsummary: `${entry.answerChange} · ${entry.coverage} · resolved ${entry.resolvedCitationCount}/${entry.citationCount} · refs ${entry.referenceCount}`\n\t\t};\n\t});\n};\n\nexport const buildRAGAnswerGroundingHistoryRows = (\n\thistory?: RAGAnswerGroundingEvaluationHistory\n): RAGLabelValueRow[] => {\n\tif (!history?.latestRun) {\n\t\treturn [{ label: 'History', value: 'No persisted provider runs yet.' }];\n\t}\n\n\tconst rows: RAGLabelValueRow[] = [\n\t\t{ label: 'Runs recorded', value: String(history.runs.length) },\n\t\t{\n\t\t\tlabel: 'Latest',\n\t\t\tvalue: `${history.latestRun.label} · ${formatGroundingHistorySummaryValue(\n\t\t\t\thistory.latestRun.response\n\t\t\t)}`\n\t\t}\n\t];\n\n\tif (history.previousRun) {\n\t\trows.push({\n\t\t\tlabel: 'Previous',\n\t\t\tvalue: `${history.previousRun.label} · ${formatGroundingHistorySummaryValue(\n\t\t\t\thistory.previousRun.response\n\t\t\t)}`\n\t\t});\n\t}\n\n\tif (history.leaderboard[0]) {\n\t\trows.push({\n\t\t\tlabel: 'Best recorded',\n\t\t\tvalue: `#${history.leaderboard[0].rank} · ${history.leaderboard[0].label} · passing ${formatEvaluationPassingRate(\n\t\t\t\thistory.leaderboard[0].passingRate\n\t\t\t)} · citation f1 ${history.leaderboard[0].averageCitationF1.toFixed(\n\t\t\t\t3\n\t\t\t)} · resolved ${formatEvaluationPassingRate(\n\t\t\t\thistory.leaderboard[0].averageResolvedCitationRate\n\t\t\t)}`\n\t\t});\n\t}\n\n\tif (history.caseSnapshots.length > 0) {\n\t\tconst changedAnswers = history.caseSnapshots.filter(\n\t\t\t(entry) => entry.answerChange === 'changed'\n\t\t).length;\n\t\trows.push({\n\t\t\tlabel: 'Answer drift',\n\t\t\tvalue: `${changedAnswers}/${history.caseSnapshots.length} changed`\n\t\t});\n\t}\n\n\tif (!history.diff) {\n\t\trows.push({\n\t\t\tlabel: 'History diff',\n\t\t\tvalue: 'Run the provider comparison again to diff grounding regressions over time.'\n\t\t});\n\t\treturn rows;\n\t}\n\n\trows.push(\n\t\t{\n\t\t\tlabel: 'Passing delta',\n\t\t\tvalue: formatSignedDelta(\n\t\t\t\thistory.diff.summaryDelta.passingRate,\n\t\t\t\t1,\n\t\t\t\t'%'\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Citation F1 delta',\n\t\t\tvalue: formatSignedDelta(\n\t\t\t\thistory.diff.summaryDelta.averageCitationF1,\n\t\t\t\t3\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Resolved citation delta',\n\t\t\tvalue: formatSignedDelta(\n\t\t\t\thistory.diff.summaryDelta.averageResolvedCitationRate * 100,\n\t\t\t\t1,\n\t\t\t\t'%'\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Improved',\n\t\t\tvalue: formatGroundingHistoryCaseLabels(history.diff.improvedCases)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Regressed',\n\t\t\tvalue: formatGroundingHistoryCaseLabels(history.diff.regressedCases)\n\t\t}\n\t);\n\n\treturn rows;\n};\n\nexport const buildRAGAnswerGroundingHistoryPresentation = (\n\thistory?: RAGAnswerGroundingEvaluationHistory\n): RAGAnswerGroundingHistoryPresentation => ({\n\tcaseSnapshots: buildRAGAnswerGroundingCaseSnapshotPresentations(history),\n\trows: buildRAGAnswerGroundingHistoryRows(history),\n\tsummary: history?.latestRun\n\t\t? history.latestRun.label\n\t\t: 'No persisted provider runs yet.'\n});\n",
10
+ "import type {\n\tRAGAdminActionPresentation,\n\tRAGAdminActionRecord,\n\tRAGAdminJobPresentation,\n\tRAGAdminJobRecord,\n\tAIMessage,\n\tRAGAnswerGroundingCaseSnapshotPresentation,\n\tRAGAnswerGroundingEvaluationCaseDiff,\n\tRAGAnswerGroundingEvaluationHistory,\n\tRAGAnswerGroundingEvaluationResponse,\n\tRAGCorpusHealth,\n\tRAGCorpusHealthPresentation,\n\tRAGExtractorReadiness,\n\tRAGReadinessPresentation,\n\tRAGGroundingOverviewPresentation,\n\tRAGGroundingProviderCaseComparisonPresentation,\n\tRAGGroundingProviderOverviewPresentation,\n\tRAGGroundingProviderPresentation,\n\tRAGComparisonOverviewPresentation,\n\tRAGComparisonPresentation,\n\tRAGChunkGraph,\n\tRAGChunkExcerpts,\n\tRAGExcerptModeCounts,\n\tRAGExcerptPromotionReason,\n\tRAGExcerptSelection,\n\tRAGChunkGraphEdge,\n\tRAGChunkGraphNavigation,\n\tRAGChunkGraphNode,\n\tRAGChunkGraphSectionGroup,\n\tRAGChunkStructure,\n\tRAGDocumentChunkPreview,\n\tRAGLabelValueRow,\n\tRAGRerankerComparisonEntry,\n\tRAGRetrievalComparison,\n\tRAGRetrievalComparisonEntry,\n\tRAGRetrievalTraceHistoryWindow,\n\tRAGRetrievalTraceStep,\n\tRAGRetrievalTrace,\n\tRAGHybridRetrievalMode,\n\tRAGSourceBalanceStrategy,\n\tRAGQualityOverviewPresentation,\n\tRAGSectionRetrievalDiagnostic,\n\tRAGEvaluationCaseDiff,\n\tRAGEvaluationCaseTracePresentation,\n\tRAGEvaluationHistory,\n\tRAGAnswerGroundingHistoryPresentation,\n\tRAGEvaluationResponse,\n\tRAGEvaluationHistoryPresentation,\n\tRAGEvaluationHistoryStore,\n\tRAGRerankerComparison,\n\tRAGAnswerWorkflowState,\n\tRAGRetrievalTracePresentation,\n\tRAGSource,\n\tRAGSourceLabels,\n\tRAGSourceGroup,\n\tRAGSourceSummary,\n\tRAGStreamStage,\n\tRAGSyncOverviewPresentation,\n\tRAGSyncSourcePresentation,\n\tRAGSyncSourceRecord,\n\tRAGSyncSourceRunPresentation\n} from '../../../types/ai';\nimport {\n\tbuildRAGCitationReferenceMap,\n\tbuildRAGCitations,\n\tbuildRAGGroundedAnswer,\n\tbuildRAGGroundedAnswerSectionSummaries,\n\tbuildRAGGroundingReferences\n} from './grounding';\n\nexport {\n\tbuildRAGCitationReferenceMap,\n\tbuildRAGCitations,\n\tbuildRAGGroundedAnswer,\n\tbuildRAGGroundedAnswerSectionSummaries,\n\tbuildRAGGroundingReferences\n};\n\nconst buildSourceGroupKey = (source: RAGSource) =>\n\tsource.source ?? source.title ?? source.chunkId;\n\nconst buildSourceLabel = (source: RAGSource) =>\n\tsource.source ?? source.title ?? source.chunkId;\n\nconst getContextNumber = (value: unknown) =>\n\ttypeof value === 'number' && Number.isFinite(value) ? value : undefined;\n\nconst getContextString = (value: unknown) =>\n\ttypeof value === 'string' && value.trim().length > 0\n\t\t? value.trim()\n\t\t: undefined;\n\nconst isRAGRetrievalTrace = (value: unknown): value is RAGRetrievalTrace => {\n\tif (!value || typeof value !== 'object') {\n\t\treturn false;\n\t}\n\n\tconst candidate = value as Record<string, unknown>;\n\n\treturn (\n\t\ttypeof candidate.query === 'string' &&\n\t\ttypeof candidate.transformedQuery === 'string' &&\n\t\tArray.isArray(candidate.variantQueries) &&\n\t\tArray.isArray(candidate.steps)\n\t);\n};\n\nconst formatTimestampLabel = (value: unknown) => {\n\tconst timestamp =\n\t\ttypeof value === 'number' && Number.isFinite(value)\n\t\t\t? value\n\t\t\t: typeof value === 'string'\n\t\t\t\t? Date.parse(value)\n\t\t\t\t: Number.NaN;\n\tif (!Number.isFinite(timestamp)) {\n\t\treturn undefined;\n\t}\n\n\treturn new Date(timestamp).toLocaleString('en-US', {\n\t\tdateStyle: 'medium',\n\t\ttimeStyle: 'short'\n\t});\n};\n\nconst formatRAGTraceValue = (value: unknown): string => {\n\tif (typeof value === 'string') return value;\n\tif (typeof value === 'number' || typeof value === 'boolean') {\n\t\treturn String(value);\n\t}\n\tif (Array.isArray(value)) {\n\t\treturn value.join(', ');\n\t}\n\tif (value && typeof value === 'object') {\n\t\treturn JSON.stringify(value);\n\t}\n\treturn 'n/a';\n};\n\nexport const buildRAGRetrievalTracePresentation = (\n\ttrace?: RAGRetrievalTrace\n): RAGRetrievalTracePresentation => {\n\tif (!trace) {\n\t\treturn {\n\t\t\tdetails: [],\n\t\t\tstats: [],\n\t\t\tsteps: []\n\t\t};\n\t}\n\n\tconst stats: RAGLabelValueRow[] = [\n\t\t{ label: 'Mode', value: trace.mode },\n\t\t{ label: 'Final Results', value: String(trace.resultCounts.final) },\n\t\t{\n\t\t\tlabel: 'Vector Candidates',\n\t\t\tvalue: String(trace.resultCounts.vector)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Lexical Candidates',\n\t\t\tvalue: String(trace.resultCounts.lexical)\n\t\t}\n\t];\n\tconst details: RAGLabelValueRow[] = [\n\t\t{ label: 'Transformed query', value: trace.transformedQuery },\n\t\t{\n\t\t\tlabel: 'Variant queries',\n\t\t\tvalue:\n\t\t\t\ttrace.variantQueries.length > 0\n\t\t\t\t\t? trace.variantQueries.join(' · ')\n\t\t\t\t\t: 'none'\n\t\t},\n\t\t{ label: 'Candidate topK', value: String(trace.candidateTopK) },\n\t\t{ label: 'Lexical topK', value: String(trace.lexicalTopK) }\n\t];\n\tconst steps = trace.steps.map((step) => ({\n\t\tcount: step.count,\n\t\tlabel: step.label,\n\t\trows: [\n\t\t\t{ label: 'stage', value: step.stage },\n\t\t\t...(typeof step.count === 'number'\n\t\t\t\t? [{ label: 'count', value: String(step.count) }]\n\t\t\t\t: []),\n\t\t\t...(typeof step.durationMs === 'number'\n\t\t\t\t? [{ label: 'durationMs', value: String(step.durationMs) }]\n\t\t\t\t: []),\n\t\t\t...Object.entries(step.metadata ?? {}).map(([key, value]) => ({\n\t\t\t\tlabel: key,\n\t\t\t\tvalue: formatRAGTraceValue(value)\n\t\t\t}))\n\t\t],\n\t\tstage: step.stage\n\t}));\n\n\treturn {\n\t\tdetails,\n\t\tstats,\n\t\tsteps\n\t};\n};\n\nconst formatCompactList = (values?: string[]) =>\n\tvalues && values.length > 0 ? values.join(', ') : 'none';\n\nconst formatCoverageMap = (entries?: Record<string, number>) => {\n\tif (!entries) {\n\t\treturn 'none';\n\t}\n\n\tconst values = Object.entries(entries);\n\treturn values.length > 0\n\t\t? values.map(([key, value]) => `${key} ${value}`).join(' · ')\n\t\t: 'none';\n};\n\nconst formatDurationLabel = (value?: number) => {\n\tif (typeof value !== 'number' || !Number.isFinite(value)) {\n\t\treturn 'n/a';\n\t}\n\n\tif (value < 1000) {\n\t\treturn `${value}ms`;\n\t}\n\n\tif (value < 60000) {\n\t\treturn `${(value / 1000).toFixed(value >= 10000 ? 0 : 1)}s`;\n\t}\n\n\tif (value < 3600000) {\n\t\treturn `${(value / 60000).toFixed(value >= 600000 ? 0 : 1)}m`;\n\t}\n\n\treturn `${(value / 3600000).toFixed(value >= 36000000 ? 0 : 1)}h`;\n};\n\nconst formatDateLabel = (value?: number) =>\n\ttypeof value === 'number' && Number.isFinite(value)\n\t\t? new Date(value).toLocaleString('en-US')\n\t\t: 'n/a';\n\nconst formatAgeLabel = (value?: number) => {\n\tif (typeof value !== 'number' || !Number.isFinite(value)) {\n\t\treturn 'n/a';\n\t}\n\n\tif (value < 1000) {\n\t\treturn `${Math.round(value)}ms`;\n\t}\n\n\tif (value < 60000) {\n\t\treturn `${(value / 1000).toFixed(value >= 10000 ? 0 : 1)}s`;\n\t}\n\n\tif (value < 3600000) {\n\t\treturn `${(value / 60000).toFixed(value >= 600000 ? 0 : 1)}m`;\n\t}\n\n\tif (value < 86400000) {\n\t\treturn `${(value / 3600000).toFixed(value >= 36000000 ? 0 : 1)}h`;\n\t}\n\n\treturn `${(value / 86400000).toFixed(value >= 864000000 ? 0 : 1)}d`;\n};\n\nconst buildSyncOverviewLatestRow = (sources: RAGSyncSourceRecord[]) => {\n\tconst latest = [...sources]\n\t\t.filter(\n\t\t\t(record) =>\n\t\t\t\ttypeof record.lastSuccessfulSyncAt === 'number' ||\n\t\t\t\ttypeof record.lastSyncedAt === 'number'\n\t\t)\n\t\t.sort(\n\t\t\t(left, right) =>\n\t\t\t\t(right.lastSuccessfulSyncAt ?? right.lastSyncedAt ?? 0) -\n\t\t\t\t(left.lastSuccessfulSyncAt ?? left.lastSyncedAt ?? 0)\n\t\t)[0];\n\n\tif (!latest) {\n\t\treturn {\n\t\t\tlabel: 'Latest sync',\n\t\t\tvalue: 'No completed run yet'\n\t\t};\n\t}\n\n\treturn {\n\t\tlabel: 'Latest sync',\n\t\tvalue: [\n\t\t\tlatest.label,\n\t\t\ttypeof latest.documentCount === 'number'\n\t\t\t\t? `${latest.documentCount} docs`\n\t\t\t\t: '',\n\t\t\ttypeof latest.chunkCount === 'number'\n\t\t\t\t? `${latest.chunkCount} chunks`\n\t\t\t\t: '',\n\t\t\ttypeof latest.lastSyncDurationMs === 'number'\n\t\t\t\t? formatDurationLabel(latest.lastSyncDurationMs)\n\t\t\t\t: '',\n\t\t\ttypeof latest.lastSuccessfulSyncAt === 'number'\n\t\t\t\t? formatDateLabel(latest.lastSuccessfulSyncAt)\n\t\t\t\t: typeof latest.lastSyncedAt === 'number'\n\t\t\t\t\t? formatDateLabel(latest.lastSyncedAt)\n\t\t\t\t\t: ''\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' · ')\n\t};\n};\n\nconst formatAdminActionLabel = (\n\tvalue: RAGAdminActionRecord['action'] | RAGAdminJobRecord['action']\n) => value.replaceAll('_', ' ');\n\nconst buildAdminTimingLabel = (input: {\n\telapsedMs?: number;\n\tstartedAt: number;\n}) =>\n\ttypeof input.elapsedMs === 'number'\n\t\t? formatDurationLabel(input.elapsedMs)\n\t\t: formatDateLabel(input.startedAt);\n\nexport const buildRAGAdminJobPresentation = (\n\tjob: RAGAdminJobRecord\n): RAGAdminJobPresentation => ({\n\tid: job.id,\n\taction: job.action,\n\tstatus: job.status,\n\tsummary: [\n\t\tjob.status.toUpperCase(),\n\t\tformatAdminActionLabel(job.action),\n\t\tjob.target,\n\t\tbuildAdminTimingLabel(job)\n\t]\n\t\t.filter(Boolean)\n\t\t.join(' · '),\n\trows: [\n\t\t{ label: 'Action', value: formatAdminActionLabel(job.action) },\n\t\t{ label: 'Status', value: job.status },\n\t\t...(job.target ? [{ label: 'Target', value: job.target }] : []),\n\t\t{ label: 'Timing', value: buildAdminTimingLabel(job) },\n\t\t...(job.error ? [{ label: 'Error', value: job.error }] : [])\n\t]\n});\n\nexport const buildRAGAdminJobPresentations = (\n\tjobs?: RAGAdminJobRecord[]\n): RAGAdminJobPresentation[] =>\n\t(jobs ?? []).slice(0, 3).map(buildRAGAdminJobPresentation);\n\nexport const buildRAGAdminActionPresentation = (\n\taction: RAGAdminActionRecord\n): RAGAdminActionPresentation => ({\n\tid: action.id,\n\taction: action.action,\n\tstatus: action.status,\n\tsummary: [\n\t\taction.status.toUpperCase(),\n\t\tformatAdminActionLabel(action.action),\n\t\taction.documentId ?? action.target,\n\t\tbuildAdminTimingLabel(action)\n\t]\n\t\t.filter(Boolean)\n\t\t.join(' · '),\n\trows: [\n\t\t{ label: 'Action', value: formatAdminActionLabel(action.action) },\n\t\t{ label: 'Status', value: action.status },\n\t\t...(action.documentId\n\t\t\t? [{ label: 'Document', value: action.documentId }]\n\t\t\t: action.target\n\t\t\t\t? [{ label: 'Target', value: action.target }]\n\t\t\t\t: []),\n\t\t{ label: 'Timing', value: buildAdminTimingLabel(action) },\n\t\t...(action.error ? [{ label: 'Error', value: action.error }] : [])\n\t]\n});\n\nexport const buildRAGAdminActionPresentations = (\n\tactions?: RAGAdminActionRecord[]\n): RAGAdminActionPresentation[] =>\n\t(actions ?? []).slice(0, 3).map(buildRAGAdminActionPresentation);\n\nconst buildRAGSyncSourceRunPresentations = (\n\tsource: RAGSyncSourceRecord\n): RAGSyncSourceRunPresentation[] => {\n\tif (!Array.isArray(source.metadata?.recentRuns)) {\n\t\treturn [];\n\t}\n\n\treturn (source.metadata.recentRuns as Array<Record<string, unknown>>)\n\t\t.slice(0, 3)\n\t\t.map((entry, index) => {\n\t\t\tconst trigger =\n\t\t\t\ttypeof entry.trigger === 'string' ? entry.trigger : 'sync';\n\t\t\tconst status =\n\t\t\t\ttypeof entry.status === 'string' ? entry.status : 'unknown';\n\t\t\tconst finishedAt =\n\t\t\t\ttypeof entry.finishedAt === 'number'\n\t\t\t\t\t? formatDateLabel(entry.finishedAt)\n\t\t\t\t\t: 'n/a';\n\t\t\tconst duration =\n\t\t\t\ttypeof entry.durationMs === 'number'\n\t\t\t\t\t? formatDurationLabel(entry.durationMs)\n\t\t\t\t\t: 'n/a';\n\t\t\tconst docs =\n\t\t\t\ttypeof entry.documentCount === 'number'\n\t\t\t\t\t? `${entry.documentCount} docs`\n\t\t\t\t\t: 'n/a';\n\t\t\tconst chunks =\n\t\t\t\ttypeof entry.chunkCount === 'number'\n\t\t\t\t\t? `${entry.chunkCount} chunks`\n\t\t\t\t\t: 'n/a';\n\t\t\tconst error =\n\t\t\t\ttypeof entry.error === 'string' && entry.error.length > 0\n\t\t\t\t\t? entry.error\n\t\t\t\t\t: undefined;\n\n\t\t\treturn {\n\t\t\t\tlabel: `Run ${index + 1}`,\n\t\t\t\tstatus,\n\t\t\t\tsummary: `${trigger} · ${status} · ${docs} · ${chunks} · ${duration} · ${finishedAt}`,\n\t\t\t\trows: [\n\t\t\t\t\t{ label: 'Trigger', value: trigger },\n\t\t\t\t\t{ label: 'Status', value: status },\n\t\t\t\t\t{ label: 'Output', value: `${docs} · ${chunks}` },\n\t\t\t\t\t{ label: 'Duration', value: duration },\n\t\t\t\t\t{ label: 'Finished', value: finishedAt },\n\t\t\t\t\t...(error ? [{ label: 'Error', value: error }] : [])\n\t\t\t\t]\n\t\t\t};\n\t\t});\n};\n\nexport const buildRAGSyncSourcePresentation = (\n\tsource: RAGSyncSourceRecord\n): RAGSyncSourcePresentation => {\n\tconst provider =\n\t\ttypeof source.metadata?.provider === 'string'\n\t\t\t? source.metadata.provider\n\t\t\t: undefined;\n\tconst accountMode =\n\t\ttypeof source.metadata?.accountMode === 'string'\n\t\t\t? source.metadata.accountMode\n\t\t\t: undefined;\n\tconst schedule =\n\t\ttypeof source.metadata?.schedule === 'string'\n\t\t\t? source.metadata.schedule\n\t\t\t: undefined;\n\tconst lastTrigger =\n\t\ttypeof source.metadata?.lastTrigger === 'string'\n\t\t\t? source.metadata.lastTrigger\n\t\t\t: undefined;\n\tconst liveReady =\n\t\ttypeof source.metadata?.liveReady === 'string'\n\t\t\t? source.metadata.liveReady\n\t\t\t: undefined;\n\n\treturn {\n\t\tid: source.id,\n\t\tlabel: source.label,\n\t\tkind: source.kind,\n\t\tstatus: source.status,\n\t\tsummary: [\n\t\t\tsource.kind,\n\t\t\tsource.status,\n\t\t\ttypeof source.documentCount === 'number'\n\t\t\t\t? `${source.documentCount} docs`\n\t\t\t\t: '',\n\t\t\ttypeof source.chunkCount === 'number'\n\t\t\t\t? `${source.chunkCount} chunks`\n\t\t\t\t: '',\n\t\t\ttypeof source.lastSyncDurationMs === 'number'\n\t\t\t\t? formatDurationLabel(source.lastSyncDurationMs)\n\t\t\t\t: '',\n\t\t\ttypeof source.lastSuccessfulSyncAt === 'number'\n\t\t\t\t? `last success ${formatDateLabel(source.lastSuccessfulSyncAt)}`\n\t\t\t\t: typeof source.lastSyncedAt === 'number'\n\t\t\t\t\t? `last sync ${formatDateLabel(source.lastSyncedAt)}`\n\t\t\t\t\t: ''\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' · '),\n\t\trows: [\n\t\t\t...(source.target\n\t\t\t\t? [{ label: 'Target', value: source.target }]\n\t\t\t\t: []),\n\t\t\t...(provider ? [{ label: 'Provider', value: provider }] : []),\n\t\t\t...(accountMode\n\t\t\t\t? [{ label: 'Account mode', value: accountMode }]\n\t\t\t\t: []),\n\t\t\t...(schedule ? [{ label: 'Schedule', value: schedule }] : []),\n\t\t\t...(lastTrigger\n\t\t\t\t? [{ label: 'Last trigger', value: lastTrigger }]\n\t\t\t\t: []),\n\t\t\t...(typeof source.lastSuccessfulSyncAt === 'number'\n\t\t\t\t? [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: 'Last success',\n\t\t\t\t\t\t\tvalue: formatDateLabel(source.lastSuccessfulSyncAt)\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t: []),\n\t\t\t...(typeof source.nextRetryAt === 'number'\n\t\t\t\t? [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: 'Next retry',\n\t\t\t\t\t\t\tvalue: formatDateLabel(source.nextRetryAt)\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t: []),\n\t\t\t...(source.lastError\n\t\t\t\t? [{ label: 'Last error', value: source.lastError }]\n\t\t\t\t: [])\n\t\t],\n\t\ttags: [\n\t\t\tprovider,\n\t\t\taccountMode ? `mode ${accountMode}` : undefined,\n\t\t\tliveReady\n\t\t].filter((value): value is string => Boolean(value)),\n\t\textendedSummary: source.description ?? liveReady,\n\t\truns: buildRAGSyncSourceRunPresentations(source)\n\t};\n};\n\nexport const buildRAGSyncSourcePresentations = (\n\tsources?: RAGSyncSourceRecord[]\n): RAGSyncSourcePresentation[] =>\n\t(sources ?? []).map(buildRAGSyncSourcePresentation);\n\nexport const buildRAGReadinessPresentation = (\n\treadiness?: RAGExtractorReadiness\n): RAGReadinessPresentation => {\n\tif (!readiness) {\n\t\treturn {\n\t\t\tsections: [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Provider',\n\t\t\t\t\ttitle: 'Unavailable',\n\t\t\t\t\tsummary: 'Readiness data is not available yet.'\n\t\t\t\t}\n\t\t\t]\n\t\t};\n\t}\n\n\treturn {\n\t\tsections: [\n\t\t\t{\n\t\t\t\tlabel: 'Provider',\n\t\t\t\ttitle: readiness.providerConfigured\n\t\t\t\t\t? (readiness.providerName ?? 'Runtime provider routing')\n\t\t\t\t\t: 'Not configured',\n\t\t\t\tsummary: readiness.providerConfigured\n\t\t\t\t\t? readiness.model\n\t\t\t\t\t\t? `Requests route through ${readiness.providerName ?? 'the runtime provider registry'} with default model ${readiness.model}.`\n\t\t\t\t\t\t: `Requests route through ${readiness.providerName ?? 'the runtime provider registry'}.`\n\t\t\t\t\t: 'Provider-backed retrieval is not configured yet.'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Embeddings',\n\t\t\t\ttitle: readiness.embeddingConfigured\n\t\t\t\t\t? readiness.embeddingModel ===\n\t\t\t\t\t\t'collection-managed embeddings'\n\t\t\t\t\t\t? 'Collection-managed'\n\t\t\t\t\t\t: 'Configured'\n\t\t\t\t\t: 'Missing',\n\t\t\t\tsummary: readiness.embeddingConfigured\n\t\t\t\t\t? readiness.embeddingModel ===\n\t\t\t\t\t\t'collection-managed embeddings'\n\t\t\t\t\t\t? 'Embeddings come from the collection and vector store layer, so retrieval stays vector-backed without a separate top-level embedding provider.'\n\t\t\t\t\t\t: (readiness.embeddingModel ??\n\t\t\t\t\t\t\t'Embedding model configured.')\n\t\t\t\t\t: 'Embeddings are not configured yet.'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Retrieval Stack',\n\t\t\t\ttitle: readiness.rerankerConfigured\n\t\t\t\t\t? 'Reranker ready'\n\t\t\t\t\t: 'Vector only',\n\t\t\t\tsummary: readiness.indexManagerConfigured\n\t\t\t\t\t? 'Index manager configured.'\n\t\t\t\t\t: 'Index manager not configured.'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Extractors',\n\t\t\t\ttitle: readiness.extractorsConfigured\n\t\t\t\t\t? `${readiness.extractorNames.length} configured`\n\t\t\t\t\t: 'None configured',\n\t\t\t\tsummary: readiness.extractorsConfigured\n\t\t\t\t\t? `Configured extractors: ${formatCompactList(readiness.extractorNames)}`\n\t\t\t\t\t: 'No extractors configured.',\n\t\t\t\ttags:\n\t\t\t\t\treadiness.extractorNames.length > 0\n\t\t\t\t\t\t? readiness.extractorNames\n\t\t\t\t\t\t: ['No extractors configured']\n\t\t\t}\n\t\t]\n\t};\n};\n\nexport const buildRAGCorpusHealthPresentation = (\n\thealth?: RAGCorpusHealth\n): RAGCorpusHealthPresentation => {\n\tif (!health) {\n\t\treturn {\n\t\t\tsections: [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Corpus health',\n\t\t\t\t\ttitle: 'Unavailable',\n\t\t\t\t\tsummary: 'Corpus health is not available yet.'\n\t\t\t\t}\n\t\t\t]\n\t\t};\n\t}\n\n\treturn {\n\t\tsections: [\n\t\t\t{\n\t\t\t\tlabel: 'Corpus coverage',\n\t\t\t\ttitle: `Formats: ${formatCoverageMap(health.coverageByFormat)}`,\n\t\t\t\tsummary: `Kinds: ${formatCoverageMap(health.coverageByKind)}`,\n\t\t\t\trows: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Average chunks per document',\n\t\t\t\t\t\tvalue: health.averageChunksPerDocument.toFixed(2)\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Chunk quality',\n\t\t\t\ttitle: `${health.averageChunksPerDocument.toFixed(2)} avg chunks/doc`,\n\t\t\t\tsummary: `Empty docs ${health.emptyDocuments} · empty chunks ${health.emptyChunks} · low signal ${health.lowSignalChunks}`,\n\t\t\t\trows: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Missing source',\n\t\t\t\t\t\tvalue: String(health.documentsMissingSource)\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Missing title',\n\t\t\t\t\t\tvalue: String(health.documentsMissingTitle)\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Missing metadata',\n\t\t\t\t\t\tvalue: String(health.documentsMissingMetadata)\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Freshness',\n\t\t\t\ttitle: `${health.staleDocuments.length} stale docs`,\n\t\t\t\tsummary: `Stale threshold ${formatAgeLabel(health.staleAfterMs)}`,\n\t\t\t\trows: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Oldest age',\n\t\t\t\t\t\tvalue: formatAgeLabel(health.oldestDocumentAgeMs)\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Newest age',\n\t\t\t\t\t\tvalue: formatAgeLabel(health.newestDocumentAgeMs)\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Failures',\n\t\t\t\ttitle: `${health.failedIngestJobs} ingest · ${health.failedAdminJobs} admin`,\n\t\t\t\tsummary: `Duplicate sources ${health.duplicateSourceGroups.length} · duplicate ids ${health.duplicateDocumentIdGroups.length}`,\n\t\t\t\trows: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Failures by input',\n\t\t\t\t\t\tvalue: formatCoverageMap(health.failuresByInputKind)\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Failures by extractor',\n\t\t\t\t\t\tvalue: formatCoverageMap(health.failuresByExtractor)\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Failures by admin action',\n\t\t\t\t\t\tvalue: formatCoverageMap(health.failuresByAdminAction)\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t};\n};\n\nexport const buildRAGSyncOverviewPresentation = (\n\tsources?: RAGSyncSourceRecord[]\n): RAGSyncOverviewPresentation => {\n\tconst records = sources ?? [];\n\tif (records.length === 0) {\n\t\treturn {\n\t\t\trows: [\n\t\t\t\t{ label: 'Configured sync sources', value: '0' },\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Latest sync',\n\t\t\t\t\tvalue: 'No sync sources configured yet.'\n\t\t\t\t}\n\t\t\t],\n\t\t\tsections: [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Sync overview',\n\t\t\t\t\ttitle: 'No sync sources configured',\n\t\t\t\t\tsummary:\n\t\t\t\t\t\t'Add sync sources to monitor directories, URLs, storage, or mailboxes.'\n\t\t\t\t}\n\t\t\t]\n\t\t};\n\t}\n\n\tconst countByStatus = (status: RAGSyncSourceRecord['status']) =>\n\t\trecords.filter((record) => record.status === status).length;\n\n\treturn {\n\t\trows: [\n\t\t\t{ label: 'Configured sync sources', value: String(records.length) },\n\t\t\t{ label: 'Completed', value: String(countByStatus('completed')) },\n\t\t\t{ label: 'Running', value: String(countByStatus('running')) },\n\t\t\t{\n\t\t\t\tlabel: 'Failed',\n\t\t\t\tvalue: String(countByStatus('failed'))\n\t\t\t},\n\t\t\tbuildSyncOverviewLatestRow(records)\n\t\t],\n\t\tsections: [\n\t\t\t{\n\t\t\t\tlabel: 'Sync overview',\n\t\t\t\ttitle: `${records.length} configured`,\n\t\t\t\tsummary: `${countByStatus('completed')} completed · ${countByStatus('running')} running · ${countByStatus('failed')} failed`\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Latest sync',\n\t\t\t\ttitle: buildSyncOverviewLatestRow(records).value,\n\t\t\t\tsummary: 'Most recent completed or last-known sync activity.'\n\t\t\t}\n\t\t]\n\t};\n};\n\nconst formatMediaTimestamp = (value: unknown) => {\n\tif (typeof value !== 'number' || !Number.isFinite(value) || value < 0) {\n\t\treturn undefined;\n\t}\n\n\tconst totalSeconds = Math.floor(value / 1000);\n\tconst minutes = Math.floor(totalSeconds / 60);\n\tconst seconds = totalSeconds % 60;\n\tconst milliseconds = Math.floor(value % 1000);\n\n\treturn `${String(minutes).padStart(2, '0')}:${String(seconds).padStart(\n\t\t2,\n\t\t'0'\n\t)}.${String(milliseconds).padStart(3, '0')}`;\n};\n\nconst getAttachmentName = (source?: string, title?: string) => {\n\tconst sourceAttachment = source?.split('/').at(-1);\n\tif (sourceAttachment && sourceAttachment.includes('.')) {\n\t\treturn sourceAttachment;\n\t}\n\n\tconst titleAttachment = title?.split(' · ').at(-1);\n\tif (titleAttachment && titleAttachment.includes('.')) {\n\t\treturn titleAttachment;\n\t}\n\n\treturn undefined;\n};\n\nconst buildContextLabel = (metadata?: Record<string, unknown>) => {\n\tif (!metadata) {\n\t\treturn undefined;\n\t}\n\n\tconst emailKind = getContextString(metadata.emailKind);\n\tif (emailKind === 'attachment') {\n\t\treturn 'Attachment evidence';\n\t}\n\n\tif (emailKind === 'message') {\n\t\tconst from = getContextString(metadata.from);\n\t\treturn from ? `Message from ${from}` : 'Message evidence';\n\t}\n\n\tconst page =\n\t\tgetContextNumber(metadata.page) ??\n\t\tgetContextNumber(metadata.pageNumber) ??\n\t\t(typeof metadata.pageIndex === 'number'\n\t\t\t? metadata.pageIndex + 1\n\t\t\t: undefined);\n\tconst region =\n\t\tgetContextNumber(metadata.regionNumber) ??\n\t\t(typeof metadata.regionIndex === 'number'\n\t\t\t? metadata.regionIndex + 1\n\t\t\t: undefined);\n\tif (page && region) {\n\t\treturn `Page ${page} region ${region}`;\n\t}\n\tif (page) {\n\t\treturn `Page ${page}`;\n\t}\n\n\tconst sheet =\n\t\tgetContextString(metadata.sheetName) ??\n\t\t(Array.isArray(metadata.sheetNames)\n\t\t\t? getContextString(metadata.sheetNames[0])\n\t\t\t: undefined);\n\tif (sheet) {\n\t\treturn `Sheet ${sheet}`;\n\t}\n\n\tconst slide =\n\t\tgetContextNumber(metadata.slide) ??\n\t\tgetContextNumber(metadata.slideNumber) ??\n\t\t(typeof metadata.slideIndex === 'number'\n\t\t\t? metadata.slideIndex + 1\n\t\t\t: undefined);\n\tif (slide) {\n\t\treturn `Slide ${slide}`;\n\t}\n\n\tconst archiveEntry =\n\t\tgetContextString(metadata.archiveEntryPath) ??\n\t\tgetContextString(metadata.entryPath);\n\tif (archiveEntry) {\n\t\treturn `Archive entry ${archiveEntry}`;\n\t}\n\n\tconst threadTopic = getContextString(metadata.threadTopic);\n\tif (threadTopic) {\n\t\treturn `Thread ${threadTopic}`;\n\t}\n\n\tconst speaker = getContextString(metadata.speaker);\n\tif (speaker) {\n\t\treturn `Speaker ${speaker}`;\n\t}\n\n\tconst sectionPath = Array.isArray(metadata.sectionPath)\n\t\t? metadata.sectionPath\n\t\t\t\t.map((value) => getContextString(value))\n\t\t\t\t.filter((value): value is string => typeof value === 'string')\n\t\t: [];\n\tconst sectionTitle =\n\t\tgetContextString(metadata.sectionTitle) ?? sectionPath.at(-1);\n\tif (sectionTitle) {\n\t\treturn `Section ${sectionTitle}`;\n\t}\n\n\treturn undefined;\n};\n\nconst buildLocatorLabel = (\n\tmetadata?: Record<string, unknown>,\n\tsource?: string,\n\ttitle?: string\n) => {\n\tif (!metadata) {\n\t\treturn undefined;\n\t}\n\n\tconst page =\n\t\tgetContextNumber(metadata.page) ??\n\t\tgetContextNumber(metadata.pageNumber) ??\n\t\t(typeof metadata.pageIndex === 'number'\n\t\t\t? metadata.pageIndex + 1\n\t\t\t: undefined);\n\tconst region =\n\t\tgetContextNumber(metadata.regionNumber) ??\n\t\t(typeof metadata.regionIndex === 'number'\n\t\t\t? metadata.regionIndex + 1\n\t\t\t: undefined);\n\tif (page && region) {\n\t\treturn `Page ${page} · Region ${region}`;\n\t}\n\tif (page) {\n\t\treturn `Page ${page}`;\n\t}\n\n\tconst sheet =\n\t\tgetContextString(metadata.sheetName) ??\n\t\t(Array.isArray(metadata.sheetNames)\n\t\t\t? getContextString(metadata.sheetNames[0])\n\t\t\t: undefined);\n\tif (sheet) {\n\t\treturn `Sheet ${sheet}`;\n\t}\n\n\tconst slide =\n\t\tgetContextNumber(metadata.slide) ??\n\t\tgetContextNumber(metadata.slideNumber) ??\n\t\t(typeof metadata.slideIndex === 'number'\n\t\t\t? metadata.slideIndex + 1\n\t\t\t: undefined);\n\tif (slide) {\n\t\treturn `Slide ${slide}`;\n\t}\n\n\tconst archiveEntry =\n\t\tgetContextString(metadata.archiveEntryPath) ??\n\t\tgetContextString(metadata.entryPath);\n\tif (archiveEntry) {\n\t\treturn `Archive entry ${archiveEntry}`;\n\t}\n\n\tconst emailKind = getContextString(metadata.emailKind);\n\tif (emailKind === 'attachment') {\n\t\tconst attachmentName =\n\t\t\tgetContextString(metadata.attachmentName) ??\n\t\t\tgetAttachmentName(source, title);\n\t\treturn attachmentName ? `Attachment ${attachmentName}` : 'Attachment';\n\t}\n\n\tconst mediaStart = formatMediaTimestamp(metadata.startMs);\n\tconst mediaEnd = formatMediaTimestamp(metadata.endMs);\n\tif (mediaStart && mediaEnd) {\n\t\treturn `Timestamp ${mediaStart} - ${mediaEnd}`;\n\t}\n\n\tif (mediaStart) {\n\t\treturn `Timestamp ${mediaStart}`;\n\t}\n\n\tconst sectionPath = Array.isArray(metadata.sectionPath)\n\t\t? metadata.sectionPath\n\t\t\t\t.map((value) => getContextString(value))\n\t\t\t\t.filter((value): value is string => typeof value === 'string')\n\t\t: [];\n\tif (sectionPath.length > 0) {\n\t\treturn `Section ${sectionPath.join(' > ')}`;\n\t}\n\n\treturn undefined;\n};\n\nconst buildProvenanceLabel = (metadata?: Record<string, unknown>) => {\n\tif (!metadata) {\n\t\treturn undefined;\n\t}\n\n\tconst threadTopic = getContextString(metadata.threadTopic);\n\tconst from = getContextString(metadata.from);\n\tconst sentAt =\n\t\tformatTimestampLabel(metadata.sentAt) ??\n\t\tformatTimestampLabel(metadata.receivedAt);\n\tconst speaker = getContextString(metadata.speaker);\n\tconst mediaKind = getContextString(metadata.mediaKind);\n\tconst transcriptSource = getContextString(metadata.transcriptSource);\n\tconst pdfTextMode = getContextString(metadata.pdfTextMode);\n\tconst ocrEngine = getContextString(metadata.ocrEngine);\n\tconst ocrConfidence =\n\t\tgetContextNumber(metadata.ocrRegionConfidence) ??\n\t\tgetContextNumber(metadata.ocrConfidence);\n\n\tconst labels = [\n\t\tpdfTextMode ? `PDF ${pdfTextMode}` : '',\n\t\tocrEngine ? `OCR ${ocrEngine}` : '',\n\t\ttypeof ocrConfidence === 'number'\n\t\t\t? `Confidence ${ocrConfidence.toFixed(2)}`\n\t\t\t: '',\n\t\tmediaKind ? `Media ${mediaKind}` : '',\n\t\ttranscriptSource ? `Transcript ${transcriptSource}` : '',\n\t\tthreadTopic ? `Thread ${threadTopic}` : '',\n\t\tspeaker ? `Speaker ${speaker}` : '',\n\t\tfrom ? `Sender ${from}` : '',\n\t\tsentAt ? `Sent ${sentAt}` : ''\n\t].filter((value) => value.length > 0);\n\n\treturn labels.length > 0 ? labels.join(' · ') : undefined;\n};\n\nexport const buildRAGSourceLabels = ({\n\tmetadata,\n\tsource,\n\ttitle\n}: {\n\tmetadata?: Record<string, unknown>;\n\tsource?: string;\n\ttitle?: string;\n}): RAGSourceLabels | undefined => {\n\tconst contextLabel = buildContextLabel(metadata);\n\tconst locatorLabel = buildLocatorLabel(metadata, source, title);\n\tconst provenanceLabel = buildProvenanceLabel(metadata);\n\n\tif (!contextLabel && !locatorLabel && !provenanceLabel) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\tcontextLabel,\n\t\tlocatorLabel,\n\t\tprovenanceLabel\n\t};\n};\n\nexport const buildRAGChunkStructure = (\n\tmetadata?: Record<string, unknown>\n): RAGChunkStructure | undefined => {\n\tif (!metadata) {\n\t\treturn undefined;\n\t}\n\n\tconst sectionPath = Array.isArray(metadata.sectionPath)\n\t\t? metadata.sectionPath.filter(\n\t\t\t\t(value): value is string =>\n\t\t\t\t\ttypeof value === 'string' && value.trim().length > 0\n\t\t\t)\n\t\t: undefined;\n\tconst sectionKind =\n\t\tmetadata.sectionKind === 'markdown_heading' ||\n\t\tmetadata.sectionKind === 'html_heading' ||\n\t\tmetadata.sectionKind === 'office_heading' ||\n\t\tmetadata.sectionKind === 'spreadsheet_rows' ||\n\t\tmetadata.sectionKind === 'presentation_slide'\n\t\t\t? metadata.sectionKind\n\t\t\t: undefined;\n\tconst section: NonNullable<RAGChunkStructure['section']> = {\n\t\tdepth: getContextNumber(metadata.sectionDepth),\n\t\tkind: sectionKind,\n\t\tpath: sectionPath && sectionPath.length > 0 ? sectionPath : undefined,\n\t\ttitle: getContextString(metadata.sectionTitle)\n\t};\n\tconst sequence: NonNullable<RAGChunkStructure['sequence']> = {\n\t\tnextChunkId: getContextString(metadata.nextChunkId),\n\t\tpreviousChunkId: getContextString(metadata.previousChunkId),\n\t\tsectionChunkCount: getContextNumber(metadata.sectionChunkCount),\n\t\tsectionChunkId: getContextString(metadata.sectionChunkId),\n\t\tsectionChunkIndex: getContextNumber(metadata.sectionChunkIndex)\n\t};\n\n\tif (\n\t\t!section.title &&\n\t\t(!section.path || section.path.length === 0) &&\n\t\ttypeof section.depth !== 'number' &&\n\t\t!section.kind &&\n\t\t!sequence.nextChunkId &&\n\t\t!sequence.previousChunkId &&\n\t\ttypeof sequence.sectionChunkCount !== 'number' &&\n\t\t!sequence.sectionChunkId &&\n\t\ttypeof sequence.sectionChunkIndex !== 'number'\n\t) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\tsection:\n\t\t\tsection.title ||\n\t\t\t(section.path && section.path.length > 0) ||\n\t\t\ttypeof section.depth === 'number' ||\n\t\t\tsection.kind\n\t\t\t\t? section\n\t\t\t\t: undefined,\n\t\tsequence:\n\t\t\tsequence.nextChunkId ||\n\t\t\tsequence.previousChunkId ||\n\t\t\ttypeof sequence.sectionChunkCount === 'number' ||\n\t\t\tsequence.sectionChunkId ||\n\t\t\ttypeof sequence.sectionChunkIndex === 'number'\n\t\t\t\t? sequence\n\t\t\t\t: undefined\n\t};\n};\n\nconst buildExcerpt = (text: string, maxLength = 160) => {\n\tconst normalized = text.replaceAll(/\\s+/g, ' ').trim();\n\tif (normalized.length <= maxLength) {\n\t\treturn normalized;\n\t}\n\n\treturn `${normalized.slice(0, Math.max(0, maxLength - 1)).trimEnd()}…`;\n};\n\ntype ExcerptChunkInput = Pick<\n\tRAGSource,\n\t'chunkId' | 'metadata' | 'structure' | 'text'\n>;\n\nexport const buildRAGChunkExcerpts = (\n\tchunks: ExcerptChunkInput[],\n\tactiveChunkId?: string\n): RAGChunkExcerpts | undefined => {\n\tif (chunks.length === 0) {\n\t\treturn undefined;\n\t}\n\n\tconst graph = buildRAGChunkGraph(\n\t\tchunks.map((chunk) => ({\n\t\t\tchunkId: chunk.chunkId,\n\t\t\tmetadata: chunk.metadata,\n\t\t\tstructure: chunk.structure\n\t\t}))\n\t);\n\tconst navigation = buildRAGChunkGraphNavigation(graph, activeChunkId);\n\tconst activeChunk =\n\t\tchunks.find((chunk) => chunk.chunkId === navigation.activeChunkId) ??\n\t\tchunks[0];\n\tif (!activeChunk) {\n\t\treturn undefined;\n\t}\n\n\tconst chunkMap = new Map(chunks.map((chunk) => [chunk.chunkId, chunk]));\n\tconst orderedWindowIds = [\n\t\tnavigation.previousNode?.chunkId,\n\t\tactiveChunk.chunkId,\n\t\tnavigation.nextNode?.chunkId\n\t].filter(\n\t\t(chunkId, index, ids): chunkId is string =>\n\t\t\tBoolean(chunkId) && ids.indexOf(chunkId) === index\n\t);\n\tconst orderedSectionIds =\n\t\tnavigation.sectionNodes.length > 0\n\t\t\t? navigation.sectionNodes.map((node) => node.chunkId)\n\t\t\t: [activeChunk.chunkId];\n\n\tconst collectText = (chunkIds: string[]) =>\n\t\tchunkIds\n\t\t\t.map((chunkId) => chunkMap.get(chunkId)?.text)\n\t\t\t.filter((text): text is string => typeof text === 'string')\n\t\t\t.join('\\n\\n');\n\n\treturn {\n\t\tchunkExcerpt: buildExcerpt(activeChunk.text, 160),\n\t\tsectionExcerpt: buildExcerpt(collectText(orderedSectionIds), 320),\n\t\twindowExcerpt: buildExcerpt(collectText(orderedWindowIds), 240)\n\t};\n};\n\nexport const buildRAGPreferredExcerpt = (\n\texcerpts?: RAGChunkExcerpts,\n\tstructure?: RAGChunkStructure\n) => {\n\tconst selection = buildRAGExcerptSelection(excerpts, structure);\n\treturn selection.excerpt;\n};\n\nexport const buildRAGExcerptSelection = (\n\texcerpts?: RAGChunkExcerpts,\n\tstructure?: RAGChunkStructure\n): RAGExcerptSelection & { excerpt: string } => {\n\tif (!excerpts) {\n\t\treturn {\n\t\t\texcerpt: '',\n\t\t\tmode: 'chunk',\n\t\t\treason: 'single_chunk'\n\t\t};\n\t}\n\n\tconst chunkLength = excerpts.chunkExcerpt.trim().length;\n\tconst sectionChunkCount = structure?.sequence?.sectionChunkCount ?? 1;\n\tif (sectionChunkCount > 1 && chunkLength > 0 && chunkLength < 72) {\n\t\tif (\n\t\t\tsectionChunkCount <= 3 &&\n\t\t\texcerpts.sectionExcerpt.trim().length > 0\n\t\t) {\n\t\t\treturn {\n\t\t\t\texcerpt: excerpts.sectionExcerpt,\n\t\t\t\tmode: 'section',\n\t\t\t\treason: 'section_small_enough'\n\t\t\t};\n\t\t}\n\t\tif (excerpts.windowExcerpt.trim().length > 0) {\n\t\t\treturn {\n\t\t\t\texcerpt: excerpts.windowExcerpt,\n\t\t\t\tmode: 'window',\n\t\t\t\treason: 'section_too_large_use_window'\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\texcerpt: excerpts.chunkExcerpt,\n\t\t\tmode: 'chunk',\n\t\t\treason: 'chunk_too_narrow'\n\t\t};\n\t}\n\n\treturn {\n\t\texcerpt: excerpts.chunkExcerpt,\n\t\tmode: 'chunk',\n\t\treason: sectionChunkCount > 1 ? 'chunk_too_narrow' : 'single_chunk'\n\t};\n};\n\nexport const buildRAGExcerptModeCounts = (\n\tselections: Array<RAGExcerptSelection | undefined>\n): RAGExcerptModeCounts =>\n\tselections.reduce<RAGExcerptModeCounts>(\n\t\t(counts, selection) => {\n\t\t\tif (selection) {\n\t\t\t\tcounts[selection.mode] += 1;\n\t\t\t}\n\t\t\treturn counts;\n\t\t},\n\t\t{ chunk: 0, section: 0, window: 0 }\n\t);\n\ntype GraphChunkInput = Pick<\n\tRAGSource,\n\t'chunkId' | 'metadata' | 'source' | 'title' | 'labels' | 'structure'\n> &\n\tPartial<Pick<RAGSource, 'score'>>;\n\nexport const buildRAGChunkGraph = (\n\tchunks: GraphChunkInput[]\n): RAGChunkGraph => {\n\tconst nodes: RAGChunkGraphNode[] = [];\n\tconst edges: RAGChunkGraphEdge[] = [];\n\tconst edgeKeys = new Set<string>();\n\tconst sections = new Map<string, RAGChunkGraphSectionGroup>();\n\n\tfor (const chunk of chunks) {\n\t\tconst labels =\n\t\t\tchunk.labels ??\n\t\t\tbuildRAGSourceLabels({\n\t\t\t\tmetadata: chunk.metadata,\n\t\t\t\tsource: chunk.source,\n\t\t\t\ttitle: chunk.title\n\t\t\t});\n\t\tconst structure =\n\t\t\tchunk.structure ?? buildRAGChunkStructure(chunk.metadata);\n\n\t\tnodes.push({\n\t\t\tchunkId: chunk.chunkId,\n\t\t\tcontextLabel: labels?.contextLabel,\n\t\t\tlabel: chunk.source ?? chunk.title ?? chunk.chunkId,\n\t\t\tlocatorLabel: labels?.locatorLabel,\n\t\t\tprovenanceLabel: labels?.provenanceLabel,\n\t\t\tscore: chunk.score,\n\t\t\tsource: chunk.source,\n\t\t\tstructure,\n\t\t\ttitle: chunk.title\n\t\t});\n\n\t\tconst previousChunkId = structure?.sequence?.previousChunkId;\n\t\tif (previousChunkId) {\n\t\t\tconst key = `previous:${previousChunkId}:${chunk.chunkId}`;\n\t\t\tif (!edgeKeys.has(key)) {\n\t\t\t\tedgeKeys.add(key);\n\t\t\t\tedges.push({\n\t\t\t\t\tfromChunkId: previousChunkId,\n\t\t\t\t\trelation: 'previous',\n\t\t\t\t\ttoChunkId: chunk.chunkId\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tconst nextChunkId = structure?.sequence?.nextChunkId;\n\t\tif (nextChunkId) {\n\t\t\tconst key = `next:${chunk.chunkId}:${nextChunkId}`;\n\t\t\tif (!edgeKeys.has(key)) {\n\t\t\t\tedgeKeys.add(key);\n\t\t\t\tedges.push({\n\t\t\t\t\tfromChunkId: chunk.chunkId,\n\t\t\t\t\trelation: 'next',\n\t\t\t\t\ttoChunkId: nextChunkId\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tconst sectionId = structure?.sequence?.sectionChunkId;\n\t\tif (sectionId) {\n\t\t\tconst existing = sections.get(sectionId);\n\t\t\tif (!existing) {\n\t\t\t\tsections.set(sectionId, {\n\t\t\t\t\tchildSectionIds: [],\n\t\t\t\t\tchunkCount: structure.sequence?.sectionChunkCount ?? 1,\n\t\t\t\t\tchunkIds: [chunk.chunkId],\n\t\t\t\t\tdepth: structure.section?.depth,\n\t\t\t\t\tid: sectionId,\n\t\t\t\t\tkind: structure.section?.kind,\n\t\t\t\t\tleadChunkId: chunk.chunkId,\n\t\t\t\t\tpath: structure.section?.path,\n\t\t\t\t\ttitle: structure.section?.title\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (!existing.chunkIds.includes(chunk.chunkId)) {\n\t\t\t\texisting.chunkIds.push(chunk.chunkId);\n\t\t\t}\n\t\t\texisting.chunkCount = Math.max(\n\t\t\t\texisting.chunkCount,\n\t\t\t\tstructure.sequence?.sectionChunkCount ?? existing.chunkCount\n\t\t\t);\n\t\t}\n\t}\n\n\tfor (const section of sections.values()) {\n\t\tsection.chunkIds.sort((left, right) => {\n\t\t\tconst leftNode = nodes.find((node) => node.chunkId === left);\n\t\t\tconst rightNode = nodes.find((node) => node.chunkId === right);\n\t\t\tconst leftIndex =\n\t\t\t\tleftNode?.structure?.sequence?.sectionChunkIndex ??\n\t\t\t\tNumber.MAX_SAFE_INTEGER;\n\t\t\tconst rightIndex =\n\t\t\t\trightNode?.structure?.sequence?.sectionChunkIndex ??\n\t\t\t\tNumber.MAX_SAFE_INTEGER;\n\t\t\tif (leftIndex !== rightIndex) {\n\t\t\t\treturn leftIndex - rightIndex;\n\t\t\t}\n\n\t\t\treturn left.localeCompare(right);\n\t\t});\n\t\tsection.leadChunkId = section.chunkIds[0];\n\t}\n\n\tconst sectionPathIndex = new Map<string, RAGChunkGraphSectionGroup>();\n\tfor (const section of sections.values()) {\n\t\tconst path =\n\t\t\tsection.path && section.path.length > 0\n\t\t\t\t? section.path\n\t\t\t\t: section.title\n\t\t\t\t\t? [section.title]\n\t\t\t\t\t: undefined;\n\t\tif (path && path.length > 0) {\n\t\t\tsectionPathIndex.set(path.join('\\u0000'), section);\n\t\t}\n\t}\n\n\tfor (const section of sections.values()) {\n\t\tconst path =\n\t\t\tsection.path && section.path.length > 0\n\t\t\t\t? section.path\n\t\t\t\t: section.title\n\t\t\t\t\t? [section.title]\n\t\t\t\t\t: undefined;\n\t\tif (!path || path.length < 2) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst parent = sectionPathIndex.get(path.slice(0, -1).join('\\u0000'));\n\t\tif (!parent || parent.id === section.id) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tsection.parentSectionId = parent.id;\n\t\tif (!parent.childSectionIds.includes(section.id)) {\n\t\t\tparent.childSectionIds.push(section.id);\n\t\t}\n\n\t\tif (parent.leadChunkId && section.leadChunkId) {\n\t\t\tconst parentKey = `section_parent:${section.leadChunkId}:${parent.leadChunkId}`;\n\t\t\tif (!edgeKeys.has(parentKey)) {\n\t\t\t\tedgeKeys.add(parentKey);\n\t\t\t\tedges.push({\n\t\t\t\t\tfromChunkId: section.leadChunkId,\n\t\t\t\t\trelation: 'section_parent',\n\t\t\t\t\ttoChunkId: parent.leadChunkId\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst childKey = `section_child:${parent.leadChunkId}:${section.leadChunkId}`;\n\t\t\tif (!edgeKeys.has(childKey)) {\n\t\t\t\tedgeKeys.add(childKey);\n\t\t\t\tedges.push({\n\t\t\t\t\tfromChunkId: parent.leadChunkId,\n\t\t\t\t\trelation: 'section_child',\n\t\t\t\t\ttoChunkId: section.leadChunkId\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tnodes.sort((left, right) => {\n\t\tconst leftSection =\n\t\t\tleft.structure?.sequence?.sectionChunkIndex ??\n\t\t\tNumber.MAX_SAFE_INTEGER;\n\t\tconst rightSection =\n\t\t\tright.structure?.sequence?.sectionChunkIndex ??\n\t\t\tNumber.MAX_SAFE_INTEGER;\n\t\tif (leftSection !== rightSection) {\n\t\t\treturn leftSection - rightSection;\n\t\t}\n\n\t\tconst leftScore = left.score ?? Number.NEGATIVE_INFINITY;\n\t\tconst rightScore = right.score ?? Number.NEGATIVE_INFINITY;\n\t\tif (leftScore !== rightScore) {\n\t\t\treturn rightScore - leftScore;\n\t\t}\n\n\t\treturn left.label.localeCompare(right.label);\n\t});\n\n\treturn {\n\t\tedges,\n\t\tnodes,\n\t\tsections: [...sections.values()].sort((left, right) =>\n\t\t\t(left.title ?? left.id).localeCompare(right.title ?? right.id)\n\t\t)\n\t};\n};\n\nexport const buildRAGChunkPreviewGraph = (\n\tpreview: Pick<RAGDocumentChunkPreview, 'chunks' | 'document'>\n): RAGChunkGraph =>\n\tbuildRAGChunkGraph(\n\t\tpreview.chunks.map((chunk) => ({\n\t\t\tchunkId: chunk.chunkId,\n\t\t\tlabels: chunk.labels,\n\t\t\tmetadata: chunk.metadata,\n\t\t\tsource: chunk.source ?? preview.document.source,\n\t\t\tstructure: chunk.structure,\n\t\t\ttitle: chunk.title ?? preview.document.title\n\t\t}))\n\t);\n\nexport const buildRAGChunkPreviewNavigation = (\n\tpreview: Pick<RAGDocumentChunkPreview, 'chunks' | 'document'>,\n\tactiveChunkId?: string\n): RAGChunkGraphNavigation =>\n\tbuildRAGChunkGraphNavigation(\n\t\tbuildRAGChunkPreviewGraph(preview),\n\t\tactiveChunkId\n\t);\n\nexport const buildRAGChunkGraphNavigation = (\n\tgraph: RAGChunkGraph,\n\tactiveChunkId?: string\n): RAGChunkGraphNavigation => {\n\tif (graph.nodes.length === 0) {\n\t\treturn {\n\t\t\tactiveChunkId,\n\t\t\tchildSections: [],\n\t\t\tsiblingSections: [],\n\t\t\tsectionNodes: []\n\t\t};\n\t}\n\n\tconst activeNode =\n\t\t(activeChunkId\n\t\t\t? graph.nodes.find((node) => node.chunkId === activeChunkId)\n\t\t\t: undefined) ?? graph.nodes[0];\n\tconst resolvedActiveChunkId = activeNode?.chunkId;\n\tconst previousNode = activeNode?.structure?.sequence?.previousChunkId\n\t\t? graph.nodes.find(\n\t\t\t\t(node) =>\n\t\t\t\t\tnode.chunkId ===\n\t\t\t\t\tactiveNode.structure?.sequence?.previousChunkId\n\t\t\t)\n\t\t: undefined;\n\tconst nextNode = activeNode?.structure?.sequence?.nextChunkId\n\t\t? graph.nodes.find(\n\t\t\t\t(node) =>\n\t\t\t\t\tnode.chunkId === activeNode.structure?.sequence?.nextChunkId\n\t\t\t)\n\t\t: undefined;\n\tconst section = activeNode?.structure?.sequence?.sectionChunkId\n\t\t? graph.sections.find(\n\t\t\t\t(entry) =>\n\t\t\t\t\tentry.id === activeNode.structure?.sequence?.sectionChunkId\n\t\t\t)\n\t\t: undefined;\n\tconst parentSection = section?.parentSectionId\n\t\t? graph.sections.find((entry) => entry.id === section.parentSectionId)\n\t\t: undefined;\n\tconst childSections = section\n\t\t? section.childSectionIds\n\t\t\t\t.map((sectionId) =>\n\t\t\t\t\tgraph.sections.find((entry) => entry.id === sectionId)\n\t\t\t\t)\n\t\t\t\t.filter((entry): entry is RAGChunkGraphSectionGroup =>\n\t\t\t\t\tBoolean(entry)\n\t\t\t\t)\n\t\t: [];\n\tconst siblingSections = section?.parentSectionId\n\t\t? graph.sections.filter(\n\t\t\t\t(entry) =>\n\t\t\t\t\tentry.parentSectionId === section.parentSectionId &&\n\t\t\t\t\tentry.id !== section.id\n\t\t\t)\n\t\t: [];\n\tconst sectionNodes = section\n\t\t? section.chunkIds\n\t\t\t\t.map((chunkId) =>\n\t\t\t\t\tgraph.nodes.find((node) => node.chunkId === chunkId)\n\t\t\t\t)\n\t\t\t\t.filter((node): node is RAGChunkGraphNode => Boolean(node))\n\t\t: activeNode\n\t\t\t? [activeNode]\n\t\t\t: [];\n\n\treturn {\n\t\tactiveChunkId: resolvedActiveChunkId,\n\t\tactiveNode,\n\t\tchildSections,\n\t\tnextNode,\n\t\tparentSection,\n\t\tpreviousNode,\n\t\tsection,\n\t\tsiblingSections,\n\t\tsectionNodes\n\t};\n};\nexport const buildRAGRetrievedState = (messages: AIMessage[]) => {\n\tconst message = getLatestRetrievedMessage(messages);\n\n\tif (!message) {\n\t\treturn null;\n\t}\n\n\tconst sources = message.sources ?? [];\n\tconst citations = buildRAGCitations(sources);\n\tconst sectionDiagnostics = buildRAGSectionRetrievalDiagnostics(\n\t\tsources,\n\t\tisRAGRetrievalTrace(message.retrievalTrace)\n\t\t\t? message.retrievalTrace\n\t\t\t: undefined\n\t);\n\tconst sourceSummaries = buildRAGSourceSummaries(sources);\n\tconst groundedAnswer = buildRAGGroundedAnswer(message.content, sources);\n\n\treturn {\n\t\tcitationReferenceMap: buildRAGCitationReferenceMap(citations),\n\t\tcitations,\n\t\tconversationId: message.conversationId,\n\t\texcerptModeCounts: buildRAGExcerptModeCounts([\n\t\t\t...citations.map((citation) => citation.excerptSelection),\n\t\t\t...sourceSummaries.map((summary) => summary.excerptSelection)\n\t\t]),\n\t\tgroundedAnswer,\n\t\tmessageId: message.id,\n\t\tretrievalDurationMs: message.retrievalDurationMs,\n\t\tretrievalStartedAt: message.retrievalStartedAt,\n\t\tretrievedAt: message.retrievedAt,\n\t\ttrace: isRAGRetrievalTrace(message.retrievalTrace)\n\t\t\t? message.retrievalTrace\n\t\t\t: undefined,\n\t\tsectionDiagnostics,\n\t\tsourceGroups: buildRAGSourceGroups(sources),\n\t\tsourceSummaries,\n\t\tsources\n\t};\n};\nexport const buildRAGSourceSummaries = (sources: RAGSource[]) => {\n\tconst sourceGroups = buildRAGSourceGroups(sources);\n\tconst citations = buildRAGCitations(sources);\n\tconst citationReferenceMap = buildRAGCitationReferenceMap(citations);\n\n\treturn sourceGroups.map<RAGSourceSummary>((group) => {\n\t\tconst groupCitations = citations.filter((citation) =>\n\t\t\tgroup.chunks.some((chunk) => chunk.chunkId === citation.chunkId)\n\t\t);\n\t\tconst leadChunk = group.chunks\n\t\t\t.slice()\n\t\t\t.sort((left, right) => right.score - left.score)[0];\n\t\tconst excerpts = leadChunk\n\t\t\t? buildRAGChunkExcerpts(group.chunks, leadChunk.chunkId)\n\t\t\t: undefined;\n\t\tconst structure =\n\t\t\tleadChunk?.structure ?? buildRAGChunkStructure(leadChunk?.metadata);\n\t\tconst excerptSelection = buildRAGExcerptSelection(excerpts, structure);\n\n\t\treturn {\n\t\t\tbestScore: group.bestScore,\n\t\t\tcitationNumbers: groupCitations.map(\n\t\t\t\t(citation) => citationReferenceMap[citation.chunkId] ?? 0\n\t\t\t),\n\t\t\tcitations: groupCitations,\n\t\t\tchunkIds: group.chunks.map((chunk) => chunk.chunkId),\n\t\t\tcontextLabel:\n\t\t\t\tleadChunk?.labels?.contextLabel ??\n\t\t\t\tbuildContextLabel(leadChunk?.metadata),\n\t\t\tcount: group.count,\n\t\t\texcerpt:\n\t\t\t\texcerptSelection.excerpt || buildExcerpt(leadChunk?.text ?? ''),\n\t\t\texcerpts,\n\t\t\texcerptSelection,\n\t\t\tkey: group.key,\n\t\t\tlabel: group.label,\n\t\t\tlocatorLabel:\n\t\t\t\tleadChunk?.labels?.locatorLabel ??\n\t\t\t\tbuildLocatorLabel(\n\t\t\t\t\tleadChunk?.metadata,\n\t\t\t\t\tleadChunk?.source,\n\t\t\t\t\tleadChunk?.title\n\t\t\t\t),\n\t\t\tprovenanceLabel:\n\t\t\t\tleadChunk?.labels?.provenanceLabel ??\n\t\t\t\tbuildProvenanceLabel(leadChunk?.metadata),\n\t\t\tstructure,\n\t\t\tsource: group.source,\n\t\t\ttitle: group.title\n\t\t};\n\t});\n};\n\nconst getSectionPathFromSource = (source: RAGSource) => {\n\tconst path =\n\t\tsource.structure?.section?.path ??\n\t\t(Array.isArray(source.metadata?.sectionPath)\n\t\t\t? source.metadata.sectionPath\n\t\t\t\t\t.map((value) => getContextString(value))\n\t\t\t\t\t.filter(\n\t\t\t\t\t\t(value): value is string => typeof value === 'string'\n\t\t\t\t\t)\n\t\t\t: []);\n\n\treturn path.length > 0 ? path : undefined;\n};\n\nexport const buildRAGSectionRetrievalDiagnostics = (\n\tsources: RAGSource[],\n\ttrace?: RAGRetrievalTrace\n): RAGSectionRetrievalDiagnostic[] => {\n\tconst totalScore = sources.reduce((sum, source) => sum + source.score, 0);\n\tif (sources.length === 0 || totalScore <= 0) {\n\t\treturn [];\n\t}\n\n\tconst sections = new Map<\n\t\tstring,\n\t\t{\n\t\t\tkey: string;\n\t\t\tlabel: string;\n\t\t\tpath?: string[];\n\t\t\tparentLabel?: string;\n\t\t\tcount: number;\n\t\t\tbestScore: number;\n\t\t\ttotalScore: number;\n\t\t\ttopChunkId?: string;\n\t\t\ttopSource?: string;\n\t\t\tvectorHits: number;\n\t\t\tlexicalHits: number;\n\t\t\thybridHits: number;\n\t\t\tprimaryHits: number;\n\t\t\ttransformedHits: number;\n\t\t\tvariantHits: number;\n\t\t\tsourceSet: Set<string>;\n\t\t}\n\t>();\n\n\tfor (const source of sources) {\n\t\tconst path = getSectionPathFromSource(source);\n\t\tif (!path) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst key = path.join(' > ');\n\t\tconst label = path.at(-1) ?? key;\n\t\tconst parentLabel =\n\t\t\tpath.length > 1 ? path.slice(0, -1).join(' > ') : undefined;\n\t\tconst existing = sections.get(key);\n\t\tconst channels = Array.isArray(source.metadata?.retrievalChannels)\n\t\t\t? source.metadata.retrievalChannels.filter(\n\t\t\t\t\t(value): value is 'vector' | 'lexical' =>\n\t\t\t\t\t\tvalue === 'vector' || value === 'lexical'\n\t\t\t\t)\n\t\t\t: [];\n\t\tconst isHybrid =\n\t\t\tchannels.includes('vector') && channels.includes('lexical');\n\t\tconst vectorHits = channels.includes('vector') ? 1 : 0;\n\t\tconst lexicalHits = channels.includes('lexical') ? 1 : 0;\n\t\tconst hybridHits = isHybrid ? 1 : 0;\n\t\tconst queryOrigins = Array.isArray(source.metadata?.retrievalQueryOrigins)\n\t\t\t? source.metadata.retrievalQueryOrigins.filter(\n\t\t\t\t\t(value): value is 'primary' | 'transformed' | 'variant' =>\n\t\t\t\t\t\tvalue === 'primary' ||\n\t\t\t\t\t\tvalue === 'transformed' ||\n\t\t\t\t\t\tvalue === 'variant'\n\t\t\t\t)\n\t\t\t: source.metadata?.retrievalQueryOrigin === 'primary' ||\n\t\t\t\t source.metadata?.retrievalQueryOrigin === 'transformed' ||\n\t\t\t\t source.metadata?.retrievalQueryOrigin === 'variant'\n\t\t\t\t? [source.metadata.retrievalQueryOrigin]\n\t\t\t\t: [];\n\t\tconst primaryHits = queryOrigins.includes('primary') ? 1 : 0;\n\t\tconst transformedHits = queryOrigins.includes('transformed') ? 1 : 0;\n\t\tconst variantHits = queryOrigins.includes('variant') ? 1 : 0;\n\t\tif (!existing) {\n\t\t\tsections.set(key, {\n\t\t\t\tbestScore: source.score,\n\t\t\t\tcount: 1,\n\t\t\t\thybridHits,\n\t\t\t\tkey,\n\t\t\t\tlabel,\n\t\t\t\tlexicalHits,\n\t\t\t\tparentLabel,\n\t\t\t\tpath,\n\t\t\t\tprimaryHits,\n\t\t\t\tsourceSet: new Set(source.source ? [source.source] : []),\n\t\t\t\ttopChunkId: source.chunkId,\n\t\t\t\ttopSource: source.source,\n\t\t\t\ttotalScore: source.score,\n\t\t\t\ttransformedHits,\n\t\t\t\tvariantHits,\n\t\t\t\tvectorHits\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\n\t\texisting.count += 1;\n\t\texisting.totalScore += source.score;\n\t\tif (source.source) {\n\t\t\texisting.sourceSet.add(source.source);\n\t\t}\n\t\texisting.vectorHits += vectorHits;\n\t\texisting.lexicalHits += lexicalHits;\n\t\texisting.hybridHits += hybridHits;\n\t\texisting.primaryHits += primaryHits;\n\t\texisting.transformedHits += transformedHits;\n\t\texisting.variantHits += variantHits;\n\t\tif (source.score > existing.bestScore) {\n\t\t\texisting.bestScore = source.score;\n\t\t\texisting.topChunkId = source.chunkId;\n\t\t\texisting.topSource = source.source;\n\t\t}\n\t}\n\n\tconst diagnostics = [...sections.values()];\n\tconst strongestBestHit = diagnostics.reduce(\n\t\t(highest, section) => Math.max(highest, section.bestScore),\n\t\t0\n\t);\n\tconst parentLabelByKey = new Map(\n\t\tdiagnostics.map(\n\t\t\t(section) => [section.key, section.parentLabel] as const\n\t\t)\n\t);\n\tconst stageSectionCounts = new Map(\n\t\t(trace?.steps ?? [])\n\t\t\t.filter(\n\t\t\t\t(step) =>\n\t\t\t\t\tArray.isArray(step.sectionCounts) &&\n\t\t\t\t\tstep.sectionCounts.length > 0\n\t\t\t)\n\t\t\t.map((step) => [step.stage, step.sectionCounts ?? []] as const)\n\t);\n\tconst stageSectionScores = new Map(\n\t\t(trace?.steps ?? [])\n\t\t\t.filter(\n\t\t\t\t(step) =>\n\t\t\t\t\tArray.isArray(step.sectionScores) &&\n\t\t\t\t\tstep.sectionScores.length > 0\n\t\t\t)\n\t\t\t.map((step) => [step.stage, step.sectionScores ?? []] as const)\n\t);\n\n\treturn diagnostics\n\t\t.map<RAGSectionRetrievalDiagnostic>((section) => {\n\t\t\tconst siblingPool = diagnostics.filter(\n\t\t\t\t(entry) => entry.parentLabel === section.parentLabel\n\t\t\t);\n\t\t\tconst siblings = siblingPool.filter(\n\t\t\t\t(entry) => entry.key !== section.key\n\t\t\t);\n\t\t\tconst strongestSibling = siblings\n\t\t\t\t.slice()\n\t\t\t\t.sort((left, right) => right.totalScore - left.totalScore)[0];\n\t\t\tconst parentTotal = siblingPool.reduce(\n\t\t\t\t(sum, entry) => sum + entry.totalScore,\n\t\t\t\t0\n\t\t\t);\n\t\t\tconst scoreShare = section.totalScore / totalScore;\n\t\t\tconst parentShare =\n\t\t\t\tparentTotal > 0 ? section.totalScore / parentTotal : undefined;\n\t\t\tconst parentDistribution =\n\t\t\t\tparentTotal > 0\n\t\t\t\t\t? siblingPool\n\t\t\t\t\t\t\t.map((entry) => ({\n\t\t\t\t\t\t\t\tcount: entry.count,\n\t\t\t\t\t\t\t\tisActive: entry.key === section.key,\n\t\t\t\t\t\t\t\tkey: entry.key,\n\t\t\t\t\t\t\t\tlabel: entry.label,\n\t\t\t\t\t\t\t\tparentShare: entry.totalScore / parentTotal,\n\t\t\t\t\t\t\t\ttotalScore: entry.totalScore\n\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t\t.sort(\n\t\t\t\t\t\t\t\t(left, right) =>\n\t\t\t\t\t\t\t\t\tright.totalScore - left.totalScore\n\t\t\t\t\t\t\t)\n\t\t\t\t\t: [];\n\t\t\tconst reasons: RAGSectionRetrievalDiagnostic['reasons'] = [];\n\t\t\tconst stageCounts =\n\t\t\t\ttrace?.steps\n\t\t\t\t\t.map((step) => ({\n\t\t\t\t\t\tcount:\n\t\t\t\t\t\t\tstep.sectionCounts?.find(\n\t\t\t\t\t\t\t\t(entry) => entry.key === section.key\n\t\t\t\t\t\t\t)?.count ?? 0,\n\t\t\t\t\t\tstage: step.stage\n\t\t\t\t\t}))\n\t\t\t\t\t.filter((entry) => entry.count > 0) ?? [];\n\t\t\tconst stageWeights = stageCounts.map((entry) => {\n\t\t\t\tconst previousStageEntry =\n\t\t\t\t\tstageCounts[\n\t\t\t\t\t\tstageCounts.findIndex(\n\t\t\t\t\t\t\t(candidate) => candidate.stage === entry.stage\n\t\t\t\t\t\t) - 1\n\t\t\t\t\t];\n\t\t\t\tconst stageEntries =\n\t\t\t\t\tstageSectionCounts\n\t\t\t\t\t\t.get(entry.stage)\n\t\t\t\t\t\t?.filter((candidate) => candidate.count > 0) ?? [];\n\t\t\t\tconst stageScoreEntries =\n\t\t\t\t\tstageSectionScores\n\t\t\t\t\t\t.get(entry.stage)\n\t\t\t\t\t\t?.filter((candidate) => candidate.totalScore > 0) ?? [];\n\t\t\t\tconst stageTotal = stageEntries.reduce(\n\t\t\t\t\t(sum, candidate) => sum + candidate.count,\n\t\t\t\t\t0\n\t\t\t\t);\n\t\t\t\tconst stageScoreTotal = stageScoreEntries.reduce(\n\t\t\t\t\t(sum, candidate) => sum + candidate.totalScore,\n\t\t\t\t\t0\n\t\t\t\t);\n\t\t\t\tconst siblingStageEntries = stageEntries.filter(\n\t\t\t\t\t(candidate) =>\n\t\t\t\t\t\tcandidate.key !== section.key &&\n\t\t\t\t\t\tparentLabelByKey.get(candidate.key) ===\n\t\t\t\t\t\t\tsection.parentLabel\n\t\t\t\t);\n\t\t\t\tconst parentStageEntries = stageEntries.filter(\n\t\t\t\t\t(candidate) =>\n\t\t\t\t\t\tparentLabelByKey.get(candidate.key) ===\n\t\t\t\t\t\tsection.parentLabel\n\t\t\t\t);\n\t\t\t\tconst siblingStageScoreEntries = stageScoreEntries.filter(\n\t\t\t\t\t(candidate) =>\n\t\t\t\t\t\tcandidate.key !== section.key &&\n\t\t\t\t\t\tparentLabelByKey.get(candidate.key) ===\n\t\t\t\t\t\t\tsection.parentLabel\n\t\t\t\t);\n\t\t\t\tconst parentStageScoreEntries = stageScoreEntries.filter(\n\t\t\t\t\t(candidate) =>\n\t\t\t\t\t\tparentLabelByKey.get(candidate.key) ===\n\t\t\t\t\t\tsection.parentLabel\n\t\t\t\t);\n\t\t\t\tconst strongestStageSibling = siblingStageEntries\n\t\t\t\t\t.slice()\n\t\t\t\t\t.sort((left, right) => right.count - left.count)[0];\n\t\t\t\tconst parentStageTotal = parentStageEntries.reduce(\n\t\t\t\t\t(sum, candidate) => sum + candidate.count,\n\t\t\t\t\t0\n\t\t\t\t);\n\t\t\t\tconst activeStageScore = stageScoreEntries.find(\n\t\t\t\t\t(candidate) => candidate.key === section.key\n\t\t\t\t)?.totalScore;\n\t\t\t\tconst strongestStageScoreSibling = siblingStageScoreEntries\n\t\t\t\t\t.slice()\n\t\t\t\t\t.sort(\n\t\t\t\t\t\t(left, right) => right.totalScore - left.totalScore\n\t\t\t\t\t)[0];\n\t\t\t\tconst parentStageScoreTotal = parentStageScoreEntries.reduce(\n\t\t\t\t\t(sum, candidate) => sum + candidate.totalScore,\n\t\t\t\t\t0\n\t\t\t\t);\n\t\t\t\tconst stageShare =\n\t\t\t\t\tstageTotal > 0 ? entry.count / stageTotal : 0;\n\t\t\t\tconst retentionRate =\n\t\t\t\t\ttypeof previousStageEntry?.count === 'number' &&\n\t\t\t\t\tpreviousStageEntry.count > 0\n\t\t\t\t\t\t? entry.count / previousStageEntry.count\n\t\t\t\t\t\t: undefined;\n\t\t\t\tconst countDelta =\n\t\t\t\t\ttypeof previousStageEntry?.count === 'number'\n\t\t\t\t\t\t? entry.count - previousStageEntry.count\n\t\t\t\t\t\t: undefined;\n\t\t\t\tconst parentStageShare =\n\t\t\t\t\tparentStageTotal > 0\n\t\t\t\t\t\t? entry.count / parentStageTotal\n\t\t\t\t\t\t: undefined;\n\t\t\t\tconst stageScoreShare =\n\t\t\t\t\ttypeof activeStageScore === 'number' && stageScoreTotal > 0\n\t\t\t\t\t\t? activeStageScore / stageScoreTotal\n\t\t\t\t\t\t: undefined;\n\t\t\t\tconst parentStageScoreShare =\n\t\t\t\t\ttypeof activeStageScore === 'number' &&\n\t\t\t\t\tparentStageScoreTotal > 0\n\t\t\t\t\t\t? activeStageScore / parentStageScoreTotal\n\t\t\t\t\t\t: undefined;\n\t\t\t\tconst stageShareGap =\n\t\t\t\t\tstageTotal > 0 && strongestStageSibling\n\t\t\t\t\t\t? entry.count / stageTotal -\n\t\t\t\t\t\t\tstrongestStageSibling.count / stageTotal\n\t\t\t\t\t\t: undefined;\n\t\t\t\tconst parentStageShareGap =\n\t\t\t\t\tparentStageTotal > 0 && strongestStageSibling\n\t\t\t\t\t\t? entry.count / parentStageTotal -\n\t\t\t\t\t\t\tstrongestStageSibling.count / parentStageTotal\n\t\t\t\t\t\t: undefined;\n\t\t\t\tconst stageScoreShareGap =\n\t\t\t\t\ttypeof activeStageScore === 'number' &&\n\t\t\t\t\tstageScoreTotal > 0 &&\n\t\t\t\t\tstrongestStageScoreSibling\n\t\t\t\t\t\t? activeStageScore / stageScoreTotal -\n\t\t\t\t\t\t\tstrongestStageScoreSibling.totalScore /\n\t\t\t\t\t\t\t\tstageScoreTotal\n\t\t\t\t\t\t: undefined;\n\t\t\t\tconst parentStageScoreShareGap =\n\t\t\t\t\ttypeof activeStageScore === 'number' &&\n\t\t\t\t\tparentStageScoreTotal > 0 &&\n\t\t\t\t\tstrongestStageScoreSibling\n\t\t\t\t\t\t? activeStageScore / parentStageScoreTotal -\n\t\t\t\t\t\t\tstrongestStageScoreSibling.totalScore /\n\t\t\t\t\t\t\t\tparentStageScoreTotal\n\t\t\t\t\t\t: undefined;\n\t\t\t\tconst reasons: RAGSectionRetrievalDiagnostic['stageWeights'][number]['reasons'] =\n\t\t\t\t\t[];\n\t\t\t\tif (\n\t\t\t\t\tentry.stage === 'rerank' &&\n\t\t\t\t\tstageShare > 0.5 &&\n\t\t\t\t\t(typeof stageShareGap !== 'number' || stageShareGap > 0)\n\t\t\t\t) {\n\t\t\t\t\treasons.push('rerank_preserved_lead');\n\t\t\t\t}\n\t\t\t\tif (entry.stage === 'finalize' && stageShare >= 0.5) {\n\t\t\t\t\treasons.push('final_stage_concentration');\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\tentry.stage === 'finalize' &&\n\t\t\t\t\ttypeof parentStageShare === 'number' &&\n\t\t\t\t\tparentStageShare >= 0.6 &&\n\t\t\t\t\t(typeof parentStageShareGap !== 'number' ||\n\t\t\t\t\t\tparentStageShareGap > 0)\n\t\t\t\t) {\n\t\t\t\t\treasons.push('final_stage_dominant_within_parent');\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\tstrongestStageSibling &&\n\t\t\t\t\t((typeof stageShareGap === 'number' &&\n\t\t\t\t\t\tstageShareGap <= 0.1) ||\n\t\t\t\t\t\t(typeof parentStageShareGap === 'number' &&\n\t\t\t\t\t\t\tparentStageShareGap <= 0.1))\n\t\t\t\t) {\n\t\t\t\t\treasons.push('stage_runner_up_pressure');\n\t\t\t\t}\n\t\t\t\tif (typeof countDelta === 'number') {\n\t\t\t\t\tif (countDelta > 0) {\n\t\t\t\t\t\treasons.push('stage_expanded');\n\t\t\t\t\t} else if (countDelta < 0) {\n\t\t\t\t\t\treasons.push('stage_narrowed');\n\t\t\t\t\t} else {\n\t\t\t\t\t\treasons.push('stage_held');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tcount: entry.count,\n\t\t\t\t\tcountDelta,\n\t\t\t\t\tparentStageScoreShare,\n\t\t\t\t\tparentStageShare,\n\t\t\t\t\tparentStageShareGap,\n\t\t\t\t\tpreviousCount: previousStageEntry?.count,\n\t\t\t\t\tpreviousStage: previousStageEntry?.stage,\n\t\t\t\t\treasons,\n\t\t\t\t\tretentionRate,\n\t\t\t\t\tstage: entry.stage,\n\t\t\t\t\tstageScoreShare,\n\t\t\t\t\tstageScoreShareGap,\n\t\t\t\t\tstageShare,\n\t\t\t\t\tstageShareGap,\n\t\t\t\t\ttotalScore: activeStageScore,\n\t\t\t\t\tstrongestSiblingCount: strongestStageSibling?.count,\n\t\t\t\t\tstrongestSiblingLabel: strongestStageSibling\n\t\t\t\t\t\t? (diagnostics.find(\n\t\t\t\t\t\t\t\t(candidate) =>\n\t\t\t\t\t\t\t\t\tcandidate.key === strongestStageSibling.key\n\t\t\t\t\t\t\t)?.label ?? strongestStageSibling.key)\n\t\t\t\t\t\t: undefined\n\t\t\t\t};\n\t\t\t});\n\t\t\tconst firstSeenStage = stageCounts[0]?.stage;\n\t\t\tconst lastSeenStage = stageCounts.at(-1)?.stage;\n\t\t\tconst peakStageEntry = stageCounts.reduce<\n\t\t\t\t(typeof stageCounts)[number] | undefined\n\t\t\t>(\n\t\t\t\t(highest, entry) =>\n\t\t\t\t\t!highest || entry.count > highest.count ? entry : highest,\n\t\t\t\tundefined\n\t\t\t);\n\t\t\tconst finalStageEntry = stageCounts.at(-1);\n\t\t\tconst peakCount = peakStageEntry?.count ?? section.count;\n\t\t\tconst finalCount = finalStageEntry?.count;\n\t\t\tconst finalRetentionRate =\n\t\t\t\ttypeof finalCount === 'number' && peakCount > 0\n\t\t\t\t\t? finalCount / peakCount\n\t\t\t\t\t: undefined;\n\t\t\tconst dropFromPeak =\n\t\t\t\ttypeof finalCount === 'number'\n\t\t\t\t\t? peakCount - finalCount\n\t\t\t\t\t: undefined;\n\t\t\tconst queryAttributionReasons: RAGSectionRetrievalDiagnostic['queryAttribution']['reasons'] =\n\t\t\t\t[];\n\t\t\tconst queryAttributionMode =\n\t\t\t\tsection.primaryHits > 0 &&\n\t\t\t\tsection.transformedHits === 0 &&\n\t\t\t\tsection.variantHits === 0\n\t\t\t\t\t? 'primary'\n\t\t\t\t\t: section.transformedHits > 0 &&\n\t\t\t\t\t\t section.primaryHits === 0 &&\n\t\t\t\t\t\t section.variantHits === 0\n\t\t\t\t\t\t? 'transformed'\n\t\t\t\t\t\t: section.variantHits > 0 &&\n\t\t\t\t\t\t\t section.primaryHits === 0 &&\n\t\t\t\t\t\t\t section.transformedHits === 0\n\t\t\t\t\t\t\t? 'variant'\n\t\t\t\t\t\t\t: 'mixed';\n\t\t\tif (queryAttributionMode === 'primary') {\n\t\t\t\tqueryAttributionReasons.push('base_query_only');\n\t\t\t}\n\t\t\tif (queryAttributionMode === 'transformed') {\n\t\t\t\tqueryAttributionReasons.push('transformed_query_only');\n\t\t\t\tqueryAttributionReasons.push('transform_introduced');\n\t\t\t}\n\t\t\tif (queryAttributionMode === 'variant') {\n\t\t\t\tqueryAttributionReasons.push('variant_only');\n\t\t\t\tqueryAttributionReasons.push('variant_supported');\n\t\t\t}\n\t\t\tif (queryAttributionMode === 'mixed') {\n\t\t\t\tqueryAttributionReasons.push('mixed_query_sources');\n\t\t\t\tif (section.variantHits > 0) {\n\t\t\t\t\tqueryAttributionReasons.push('variant_supported');\n\t\t\t\t}\n\t\t\t\tif (section.transformedHits > 0 && section.primaryHits === 0) {\n\t\t\t\t\tqueryAttributionReasons.push('transform_introduced');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (section.bestScore >= strongestBestHit) {\n\t\t\t\treasons.push('best_hit');\n\t\t\t}\n\t\t\tif (section.count > 1) {\n\t\t\t\treasons.push('multi_hit_section');\n\t\t\t}\n\t\t\tif (siblings.length === 0) {\n\t\t\t\treasons.push('only_section_in_parent');\n\t\t\t} else if (\n\t\t\t\t!strongestSibling ||\n\t\t\t\tsection.totalScore >= strongestSibling.totalScore\n\t\t\t) {\n\t\t\t\treasons.push('dominant_within_parent');\n\t\t\t}\n\t\t\tif (scoreShare >= 0.5 || (parentShare ?? 0) >= 0.6) {\n\t\t\t\treasons.push('concentrated_evidence');\n\t\t\t}\n\n\t\t\tconst summaryParts = [\n\t\t\t\t`${section.count} hit${section.count === 1 ? '' : 's'}`,\n\t\t\t\t`${(scoreShare * 100).toFixed(0)}% score share`,\n\t\t\t\t`vector ${section.vectorHits} · lexical ${section.lexicalHits} · hybrid ${section.hybridHits}`,\n\t\t\t\ttypeof parentShare === 'number'\n\t\t\t\t\t? `${(parentShare * 100).toFixed(0)}% of parent section set`\n\t\t\t\t\t: '',\n\t\t\t\tstrongestSibling\n\t\t\t\t\t? `ahead of ${strongestSibling.label} by ${(section.totalScore - strongestSibling.totalScore).toFixed(2)}`\n\t\t\t\t\t: 'no sibling competition'\n\t\t\t].filter(Boolean);\n\n\t\t\treturn {\n\t\t\t\taverageScore: section.totalScore / section.count,\n\t\t\t\tbestScore: section.bestScore,\n\t\t\t\tcount: section.count,\n\t\t\t\tkey: section.key,\n\t\t\t\tlabel: section.label,\n\t\t\t\tparentLabel: section.parentLabel,\n\t\t\t\tparentDistribution,\n\t\t\t\tparentShare,\n\t\t\t\tparentShareGap:\n\t\t\t\t\ttypeof parentShare === 'number' &&\n\t\t\t\t\tstrongestSibling &&\n\t\t\t\t\tparentTotal > 0\n\t\t\t\t\t\t? parentShare -\n\t\t\t\t\t\t\tstrongestSibling.totalScore / parentTotal\n\t\t\t\t\t\t: undefined,\n\t\t\t\tpath: section.path,\n\t\t\t\tfirstSeenStage,\n\t\t\t\tfinalCount,\n\t\t\t\tfinalRetentionRate,\n\t\t\t\tlastSeenStage,\n\t\t\t\tdropFromPeak,\n\t\t\t\tpeakCount,\n\t\t\t\tpeakStage: peakStageEntry?.stage,\n\t\t\t\tqueryAttribution: {\n\t\t\t\t\tmode: queryAttributionMode,\n\t\t\t\t\tprimaryHits: section.primaryHits,\n\t\t\t\t\treasons: queryAttributionReasons,\n\t\t\t\t\ttransformedHits: section.transformedHits,\n\t\t\t\t\tvariantHits: section.variantHits\n\t\t\t\t},\n\t\t\t\tretrievalMode: trace?.mode,\n\t\t\t\treasons,\n\t\t\t\trerankApplied: trace?.steps.some(\n\t\t\t\t\t(step) =>\n\t\t\t\t\t\tstep.stage === 'rerank' &&\n\t\t\t\t\t\tstep.metadata?.applied === true\n\t\t\t\t),\n\t\t\t\tscoreShare,\n\t\t\t\tscoreThresholdApplied: trace?.steps.some(\n\t\t\t\t\t(step) => step.stage === 'score_filter'\n\t\t\t\t),\n\t\t\t\tstageCounts,\n\t\t\t\tstageWeights,\n\t\t\t\tsiblingCount: siblings.length,\n\t\t\t\tsiblingScoreGap: strongestSibling\n\t\t\t\t\t? section.totalScore - strongestSibling.totalScore\n\t\t\t\t\t: undefined,\n\t\t\t\tsourceCount: section.sourceSet.size,\n\t\t\t\tsourceBalanceApplied: trace?.steps.some(\n\t\t\t\t\t(step) => step.stage === 'source_balance'\n\t\t\t\t),\n\t\t\t\tstrongestSiblingLabel: strongestSibling?.label,\n\t\t\t\tstrongestSiblingScore: strongestSibling?.totalScore,\n\t\t\t\tsummary: summaryParts.join(' · '),\n\t\t\t\ttopChunkId: section.topChunkId,\n\t\t\t\ttopSource: section.topSource,\n\t\t\t\ttotalScore: section.totalScore,\n\t\t\t\thybridHits: section.hybridHits,\n\t\t\t\tlexicalHits: section.lexicalHits,\n\t\t\t\tvectorHits: section.vectorHits\n\t\t\t};\n\t\t})\n\t\t.sort((left, right) => {\n\t\t\tif (right.totalScore !== left.totalScore) {\n\t\t\t\treturn right.totalScore - left.totalScore;\n\t\t\t}\n\t\t\tif (right.bestScore !== left.bestScore) {\n\t\t\t\treturn right.bestScore - left.bestScore;\n\t\t\t}\n\t\t\treturn left.label.localeCompare(right.label);\n\t\t});\n};\n\nexport type RAGStreamProgress = {\n\tstage: RAGStreamStage;\n\tconversationId?: string;\n\tmessageId?: string;\n\tretrievalStartedAt?: number;\n\tretrievedAt?: number;\n\tretrievalDurationMs?: number;\n\thasContent: boolean;\n\thasRetrieved: boolean;\n\thasSources: boolean;\n\thasThinking: boolean;\n\thasToolCalls: boolean;\n\tisComplete: boolean;\n\tisError: boolean;\n\tisIdle: boolean;\n\tisRetrieving: boolean;\n\tisRetrieved: boolean;\n\tisStreaming: boolean;\n\tisSubmitting: boolean;\n\tsourceCount: number;\n\tlatestMessage: AIMessage | undefined;\n};\n\nconst buildStreamProgressState = (messages: AIMessage[]) => {\n\tconst latestMessage = getLatestAssistantMessage(messages);\n\tconst retrieved = latestMessage\n\t\t? buildRAGRetrievedState(messages)\n\t\t: undefined;\n\n\treturn {\n\t\tconversationId: latestMessage?.conversationId,\n\t\tlatestMessage,\n\t\tmessageId: latestMessage?.id,\n\t\tretrieved,\n\t\tsourceCount:\n\t\t\tretrieved?.sources.length ?? latestMessage?.sources?.length ?? 0\n\t};\n};\n\nexport const buildRAGStreamProgress = ({\n\terror,\n\tisStreaming,\n\tmessages\n}: {\n\terror: string | null;\n\tisStreaming: boolean;\n\tmessages: AIMessage[];\n}): RAGStreamProgress => {\n\tconst stage = resolveRAGStreamStage({\n\t\terror,\n\t\tisStreaming,\n\t\tmessages\n\t});\n\tconst state = buildStreamProgressState(messages);\n\tconst hasSources = state.sourceCount > 0;\n\tconst hasRetrieved =\n\t\tstage === 'retrieved' ||\n\t\tstate.retrieved !== undefined ||\n\t\tstate.latestMessage?.retrievedAt !== undefined;\n\tconst hasThinking =\n\t\ttypeof state.latestMessage?.thinking === 'string' &&\n\t\tstate.latestMessage.thinking.length > 0;\n\tconst hasToolCalls = (state.latestMessage?.toolCalls?.length ?? 0) > 0;\n\n\treturn {\n\t\tconversationId: state.conversationId,\n\t\thasContent:\n\t\t\ttypeof state.latestMessage?.content === 'string' &&\n\t\t\tstate.latestMessage.content.length > 0,\n\t\thasRetrieved,\n\t\thasSources,\n\t\thasThinking,\n\t\thasToolCalls,\n\t\tisComplete: stage === 'complete',\n\t\tisError: stage === 'error',\n\t\tisIdle: stage === 'idle',\n\t\tisRetrieved: stage === 'retrieved',\n\t\tisRetrieving: stage === 'submitting' || stage === 'retrieving',\n\t\tisStreaming: stage === 'streaming',\n\t\tisSubmitting: stage === 'submitting',\n\t\tlatestMessage: state.latestMessage,\n\t\tmessageId: state.messageId,\n\t\tretrievalDurationMs: state.retrieved?.retrievalDurationMs,\n\t\tretrievalStartedAt: state.retrieved?.retrievalStartedAt,\n\t\tretrievedAt: state.retrieved?.retrievedAt,\n\t\tsourceCount: state.sourceCount,\n\t\tstage\n\t};\n};\n\nexport type RAGStreamProgressState = ReturnType<typeof buildRAGStreamProgress>;\nexport const buildRAGAnswerWorkflowState = ({\n\terror,\n\tisStreaming,\n\tmessages\n}: {\n\terror: string | null;\n\tisStreaming: boolean;\n\tmessages: AIMessage[];\n}): RAGAnswerWorkflowState => {\n\tconst latestAssistantMessage = getLatestAssistantMessage(messages);\n\tconst sources = getLatestRAGSources(messages);\n\tconst sourceGroups = buildRAGSourceGroups(sources);\n\tconst citations = buildRAGCitations(sources);\n\tconst citationReferenceMap = buildRAGCitationReferenceMap(citations);\n\tconst sourceSummaries = buildRAGSourceSummaries(sources);\n\tconst groundingReferences = buildRAGGroundingReferences(sources);\n\tconst groundedAnswer = buildRAGGroundedAnswer(\n\t\tlatestAssistantMessage?.content ?? '',\n\t\tsources\n\t);\n\tconst retrieval = buildRAGRetrievedState(messages);\n\tconst sectionDiagnostics = buildRAGSectionRetrievalDiagnostics(\n\t\tsources,\n\t\tretrieval?.trace\n\t);\n\tconst progress = buildRAGStreamProgress({\n\t\terror,\n\t\tisStreaming,\n\t\tmessages\n\t});\n\n\treturn {\n\t\texcerptModeCounts: buildRAGExcerptModeCounts([\n\t\t\t...citations.map((citation) => citation.excerptSelection),\n\t\t\t...sourceSummaries.map((summary) => summary.excerptSelection),\n\t\t\t...groundingReferences.map(\n\t\t\t\t(reference) => reference.excerptSelection\n\t\t\t),\n\t\t\t...groundedAnswer.sectionSummaries.map(\n\t\t\t\t(summary) => summary.excerptSelection\n\t\t\t)\n\t\t]),\n\t\tcitationReferenceMap,\n\t\tcitations,\n\t\tcoverage: groundedAnswer.coverage,\n\t\terror,\n\t\tgroundedAnswer,\n\t\tgroundingReferences,\n\t\thasCitations: groundedAnswer.hasCitations,\n\t\thasGrounding: groundingReferences.length > 0,\n\t\thasRetrieved: progress.hasRetrieved,\n\t\thasSources: sources.length > 0,\n\t\tisAnswerStreaming: progress.isStreaming,\n\t\tisComplete: progress.isComplete,\n\t\tisError: progress.isError,\n\t\tisIdle: progress.isIdle,\n\t\tisRetrieved: progress.isRetrieved,\n\t\tisRetrieving: progress.isRetrieving,\n\t\tisRunning:\n\t\t\tprogress.isSubmitting ||\n\t\t\tprogress.isRetrieving ||\n\t\t\tprogress.isStreaming,\n\t\tisSubmitting: progress.isSubmitting,\n\t\tlatestAssistantMessage,\n\t\tmessages,\n\t\tretrieval,\n\t\tretrievalDurationMs: retrieval?.retrievalDurationMs,\n\t\tretrievalStartedAt: retrieval?.retrievalStartedAt,\n\t\tretrievedAt: retrieval?.retrievedAt,\n\t\tsectionDiagnostics,\n\t\tsourceGroups,\n\t\tsourceSummaries,\n\t\tsources,\n\t\tstage: progress.stage,\n\t\tungroundedReferenceNumbers: groundedAnswer.ungroundedReferenceNumbers\n\t};\n};\n\nexport const buildRAGSourceGroups = (sources: RAGSource[]) => {\n\tconst groups = new Map<string, RAGSourceGroup>();\n\n\tfor (const source of sources) {\n\t\tupdateSourceGroup(groups, source);\n\t}\n\n\treturn [...groups.values()].sort((left, right) => {\n\t\tif (right.bestScore !== left.bestScore) {\n\t\t\treturn right.bestScore - left.bestScore;\n\t\t}\n\n\t\treturn left.label.localeCompare(right.label);\n\t});\n};\n\nconst buildSourceGroup = (source: RAGSource, key: string): RAGSourceGroup => ({\n\tbestScore: source.score,\n\tchunks: [source],\n\tcount: 1,\n\tkey,\n\tlabel: buildSourceLabel(source),\n\tlabels:\n\t\tsource.labels ??\n\t\tbuildRAGSourceLabels({\n\t\t\tmetadata: source.metadata,\n\t\t\tsource: source.source,\n\t\t\ttitle: source.title\n\t\t}),\n\tstructure: source.structure ?? buildRAGChunkStructure(source.metadata),\n\tsource: source.source,\n\ttitle: source.title\n});\n\nconst updateSourceGroup = (\n\tgroups: Map<string, RAGSourceGroup>,\n\tsource: RAGSource\n) => {\n\tconst key = buildSourceGroupKey(source);\n\tconst existing = groups.get(key);\n\tif (!existing) {\n\t\tgroups.set(key, buildSourceGroup(source, key));\n\n\t\treturn;\n\t}\n\n\tif (source.score > existing.bestScore) {\n\t\texisting.bestScore = source.score;\n\t\texisting.label = buildSourceLabel(source);\n\t\texisting.labels =\n\t\t\tsource.labels ??\n\t\t\tbuildRAGSourceLabels({\n\t\t\t\tmetadata: source.metadata,\n\t\t\t\tsource: source.source,\n\t\t\t\ttitle: source.title\n\t\t\t});\n\t\texisting.structure =\n\t\t\tsource.structure ?? buildRAGChunkStructure(source.metadata);\n\t\texisting.source = source.source;\n\t\texisting.title = source.title;\n\t} else {\n\t\texisting.bestScore = Math.max(existing.bestScore, source.score);\n\t}\n\texisting.count += 1;\n\texisting.chunks.push(source);\n};\nexport const getLatestAssistantMessage = (messages: AIMessage[]) => {\n\tfor (let index = messages.length - 1; index >= 0; index -= 1) {\n\t\tconst message = messages[index];\n\t\tif (message?.role === 'assistant') {\n\t\t\treturn message;\n\t\t}\n\t}\n\n\treturn undefined;\n};\nexport const getLatestRAGSources = (messages: AIMessage[]) =>\n\tgetLatestAssistantMessage(messages)?.sources ?? [];\nexport const getLatestRetrievedMessage = (messages: AIMessage[]) => {\n\tfor (let index = messages.length - 1; index >= 0; index -= 1) {\n\t\tconst message = messages[index];\n\t\tif (\n\t\t\tmessage?.role === 'assistant' &&\n\t\t\t(typeof message.retrievedAt === 'number' ||\n\t\t\t\t(message.sources?.length ?? 0) > 0)\n\t\t) {\n\t\t\treturn message;\n\t\t}\n\t}\n\n\treturn undefined;\n};\nexport const resolveRAGStreamStage = ({\n\terror,\n\tisStreaming,\n\tmessages\n}: {\n\terror: string | null;\n\tisStreaming: boolean;\n\tmessages: AIMessage[];\n}) => {\n\tif (error) {\n\t\treturn 'error';\n\t}\n\n\tconst assistantMessage = getLatestAssistantMessage(messages);\n\tif (!assistantMessage) {\n\t\treturn isStreaming ? 'submitting' : 'idle';\n\t}\n\n\tconst isRetrieving =\n\t\ttypeof assistantMessage.retrievalStartedAt === 'number' &&\n\t\ttypeof assistantMessage.retrievedAt !== 'number';\n\n\tif (isRetrieving) {\n\t\treturn 'retrieving';\n\t}\n\n\tif (!isStreaming) {\n\t\treturn 'complete';\n\t}\n\n\tconst hasRetrieved = typeof assistantMessage.retrievedAt === 'number';\n\tconst hasContent =\n\t\tassistantMessage.content.trim().length > 0 ||\n\t\tassistantMessage.thinking?.trim().length ||\n\t\t(assistantMessage.toolCalls?.length ?? 0) > 0 ||\n\t\t(assistantMessage.images?.length ?? 0) > 0;\n\n\tif (hasRetrieved && !hasContent) {\n\t\treturn 'retrieved';\n\t}\n\n\treturn 'streaming';\n};\n\nconst formatSignedDelta = (value: number, decimals = 0, suffix = '') =>\n\t`${value >= 0 ? '+' : ''}${value.toFixed(decimals)}${suffix}`;\n\nconst formatEvaluationPassingRate = (value: number) => `${value.toFixed(1)}%`;\n\nconst formatEvaluationSummary = (response: RAGEvaluationResponse) =>\n\t`${response.summary.totalCases} total · f1 ${response.summary.averageF1.toFixed(\n\t\t3\n\t)} · latency ${response.summary.averageLatencyMs.toFixed(1)}ms`;\n\nconst formatGroundingHistorySummaryValue = (response: {\n\tsummary: {\n\t\tpassedCases: number;\n\t\ttotalCases: number;\n\t\tgroundedCases: number;\n\t\tpartialCases: number;\n\t\tungroundedCases: number;\n\t\taverageResolvedCitationRate: number;\n\t\taverageCitationF1: number;\n\t};\n}) =>\n\t`${response.summary.passedCases}/${response.summary.totalCases} pass · grounded ${response.summary.groundedCases} · partial ${response.summary.partialCases} · ungrounded ${response.summary.ungroundedCases} · resolved citations ${(response.summary.averageResolvedCitationRate * 100).toFixed(1)}% · citation f1 ${response.summary.averageCitationF1.toFixed(3)}`;\n\nconst formatHistoryCaseLabels = (cases: RAGEvaluationCaseDiff[]) =>\n\tcases.length > 0\n\t\t? cases.map((entry) => entry.label ?? entry.caseId).join(', ')\n\t\t: 'none';\n\nconst formatGroundingHistoryCaseLabels = (\n\tcases: RAGAnswerGroundingEvaluationCaseDiff[]\n) =>\n\tcases.length > 0\n\t\t? cases.map((entry) => entry.label ?? entry.caseId).join(', ')\n\t\t: 'none';\n\nconst formatRerankerComparisonHeadline = (entry: RAGRerankerComparisonEntry) =>\n\t[\n\t\tentry.label,\n\t\t`passing ${formatEvaluationPassingRate(entry.response.passingRate)}`,\n\t\t`f1 ${entry.response.summary.averageF1.toFixed(3)}`,\n\t\t`latency ${entry.response.summary.averageLatencyMs.toFixed(1)}ms`\n\t].join(' · ');\n\nconst formatRetrievalComparisonHeadline = (\n\tentry: RAGRetrievalComparisonEntry\n) =>\n\t[\n\t\tentry.label,\n\t\t`mode ${entry.retrievalMode}`,\n\t\t`passing ${formatEvaluationPassingRate(entry.response.passingRate)}`,\n\t\t`f1 ${entry.response.summary.averageF1.toFixed(3)}`,\n\t\t`latency ${entry.response.summary.averageLatencyMs.toFixed(1)}ms`\n\t].join(' · ');\n\nconst formatTraceModes = (modes: RAGHybridRetrievalMode[]) =>\n\tmodes.length > 0 ? modes.join(' / ') : 'n/a';\n\nconst formatSourceBalanceStrategies = (\n\tstrategies: RAGSourceBalanceStrategy[]\n) => (strategies.length > 0 ? strategies.join(' / ') : 'n/a');\n\nconst formatTraceStageSummary = (\n\tstageCounts: Partial<\n\t\tRecord<RAGRetrievalTrace['steps'][number]['stage'], number>\n\t>\n) => {\n\tconst topStages = Object.entries(stageCounts)\n\t\t.sort((left, right) => right[1] - left[1])\n\t\t.slice(0, 3);\n\n\treturn topStages.length > 0\n\t\t? topStages.map(([stage, count]) => `${stage} ${count}`).join(' · ')\n\t\t: 'n/a';\n};\n\nconst formatTraceRatio = (count: number, total: number) => `${count}/${total}`;\n\nconst formatTraceCountDelta = (value: number) =>\n\t`${value >= 0 ? '+' : ''}${value}`;\n\nconst buildComparisonOverviewPresentation = <\n\tTEntry extends {\n\t\tlabel: string;\n\t\tresponse: {\n\t\t\tpassingRate: number;\n\t\t\tsummary: {\n\t\t\t\taverageF1: number;\n\t\t\t\taverageLatencyMs: number;\n\t\t\t};\n\t\t};\n\t}\n>(input: {\n\tentries: TEntry[];\n\tsummary: {\n\t\tbestByPassingRate?: string;\n\t\tbestByAverageF1?: string;\n\t\tfastest?: string;\n\t};\n\tresolveLabel: (id?: string) => string;\n\tresolveEntry: (id?: string) => TEntry | undefined;\n}): RAGComparisonOverviewPresentation => {\n\tconst winnerLabel = input.resolveLabel(input.summary.bestByPassingRate);\n\tconst winnerEntry = input.resolveEntry(input.summary.bestByPassingRate);\n\n\treturn {\n\t\trows: [\n\t\t\t{\n\t\t\t\tlabel: 'Best passing rate',\n\t\t\t\tvalue: input.resolveLabel(input.summary.bestByPassingRate)\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Best average F1',\n\t\t\t\tvalue: input.resolveLabel(input.summary.bestByAverageF1)\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Fastest',\n\t\t\t\tvalue: input.resolveLabel(input.summary.fastest)\n\t\t\t}\n\t\t],\n\t\twinnerLabel,\n\t\tsummary: winnerEntry\n\t\t\t? `passing ${formatEvaluationPassingRate(winnerEntry.response.passingRate)} · f1 ${winnerEntry.response.summary.averageF1.toFixed(3)} · latency ${winnerEntry.response.summary.averageLatencyMs.toFixed(1)}ms`\n\t\t\t: 'Stored benchmark comparison'\n\t};\n};\n\nexport const buildRAGComparisonTraceSummaryRows = (\n\tentry: RAGRerankerComparisonEntry | RAGRetrievalComparisonEntry\n): RAGLabelValueRow[] => {\n\tconst trace = entry.traceSummary;\n\n\tif (!trace) {\n\t\treturn [{ label: 'Trace', value: 'Unavailable' }];\n\t}\n\n\treturn [\n\t\t{ label: 'Modes', value: formatTraceModes(trace.modes) },\n\t\t{\n\t\t\tlabel: 'Balance',\n\t\t\tvalue: formatSourceBalanceStrategies(trace.sourceBalanceStrategies)\n\t\t},\n\t\t{ label: 'Avg final', value: trace.averageFinalCount.toFixed(1) },\n\t\t{ label: 'Avg vector', value: trace.averageVectorCount.toFixed(1) },\n\t\t{ label: 'Avg lexical', value: trace.averageLexicalCount.toFixed(1) },\n\t\t{\n\t\t\tlabel: 'Balanced',\n\t\t\tvalue: formatTraceRatio(trace.balancedCases, trace.totalCases)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Round robin',\n\t\t\tvalue: formatTraceRatio(trace.roundRobinCases, trace.totalCases)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Transforms',\n\t\t\tvalue: formatTraceRatio(trace.transformedCases, trace.totalCases)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Variants',\n\t\t\tvalue: formatTraceRatio(trace.variantCases, trace.totalCases)\n\t\t},\n\t\t{\n\t\t\tlabel: 'TopK',\n\t\t\tvalue: `${trace.averageCandidateTopK.toFixed(\n\t\t\t\t1\n\t\t\t)} / ${trace.averageLexicalTopK.toFixed(1)}`\n\t\t},\n\t\t{\n\t\t\tlabel: 'Stages',\n\t\t\tvalue: formatTraceStageSummary(trace.stageCounts)\n\t\t}\n\t];\n};\n\nexport const buildRAGComparisonTraceDiffRows = (\n\tentry: RAGRerankerComparisonEntry | RAGRetrievalComparisonEntry,\n\tleader?: RAGRerankerComparisonEntry | RAGRetrievalComparisonEntry\n): RAGLabelValueRow[] => {\n\tconst trace = entry.traceSummary;\n\n\tif (!trace) {\n\t\treturn [{ label: 'Trace', value: 'Unavailable for comparison' }];\n\t}\n\n\tconst leaderTrace = leader?.traceSummary;\n\tif (!leaderTrace) {\n\t\treturn [{ label: 'Baseline', value: 'Leader trace unavailable' }];\n\t}\n\n\tif (entry === leader) {\n\t\treturn [{ label: 'Baseline', value: 'Leader strategy' }];\n\t}\n\n\tconst stageDelta = Object.keys({\n\t\t...leaderTrace.stageCounts,\n\t\t...trace.stageCounts\n\t})\n\t\t.map((stage) => {\n\t\t\tconst typedStage = stage as RAGRetrievalTraceStep['stage'];\n\t\t\tconst delta =\n\t\t\t\t(trace.stageCounts[typedStage] ?? 0) -\n\t\t\t\t(leaderTrace.stageCounts[typedStage] ?? 0);\n\t\t\treturn delta === 0\n\t\t\t\t? null\n\t\t\t\t: `${typedStage} ${formatTraceCountDelta(delta)}`;\n\t\t})\n\t\t.filter((value): value is string => Boolean(value))\n\t\t.slice(0, 3)\n\t\t.join(' · ');\n\n\tconst rows: RAGLabelValueRow[] = [\n\t\t{ label: 'Baseline', value: leader.label }\n\t];\n\n\tif (formatTraceModes(trace.modes) !== formatTraceModes(leaderTrace.modes)) {\n\t\trows.push({\n\t\t\tlabel: 'Modes vs leader',\n\t\t\tvalue: `${formatTraceModes(trace.modes)} vs ${formatTraceModes(\n\t\t\t\tleaderTrace.modes\n\t\t\t)}`\n\t\t});\n\t}\n\n\tif (\n\t\tformatSourceBalanceStrategies(trace.sourceBalanceStrategies) !==\n\t\tformatSourceBalanceStrategies(leaderTrace.sourceBalanceStrategies)\n\t) {\n\t\trows.push({\n\t\t\tlabel: 'Balance vs leader',\n\t\t\tvalue: `${formatSourceBalanceStrategies(\n\t\t\t\ttrace.sourceBalanceStrategies\n\t\t\t)} vs ${formatSourceBalanceStrategies(\n\t\t\t\tleaderTrace.sourceBalanceStrategies\n\t\t\t)}`\n\t\t});\n\t}\n\n\trows.push(\n\t\t{\n\t\t\tlabel: 'Final delta',\n\t\t\tvalue: formatSignedDelta(\n\t\t\t\ttrace.averageFinalCount - leaderTrace.averageFinalCount,\n\t\t\t\t1\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Vector delta',\n\t\t\tvalue: formatSignedDelta(\n\t\t\t\ttrace.averageVectorCount - leaderTrace.averageVectorCount,\n\t\t\t\t1\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Lexical delta',\n\t\t\tvalue: formatSignedDelta(\n\t\t\t\ttrace.averageLexicalCount - leaderTrace.averageLexicalCount,\n\t\t\t\t1\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Transform delta',\n\t\t\tvalue: formatTraceCountDelta(\n\t\t\t\ttrace.transformedCases - leaderTrace.transformedCases\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Balanced delta',\n\t\t\tvalue: formatTraceCountDelta(\n\t\t\t\ttrace.balancedCases - leaderTrace.balancedCases\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Round robin delta',\n\t\t\tvalue: formatTraceCountDelta(\n\t\t\t\ttrace.roundRobinCases - leaderTrace.roundRobinCases\n\t\t\t)\n\t\t}\n\t);\n\n\tif (stageDelta) {\n\t\trows.push({ label: 'Stage delta', value: stageDelta });\n\t}\n\n\treturn rows;\n};\n\nexport const buildRAGRetrievalComparisonPresentations = (\n\tcomparison: RAGRetrievalComparison\n): RAGComparisonPresentation[] => {\n\tconst leader = comparison.entries[0];\n\treturn comparison.entries.map((entry) => ({\n\t\tdiffLabel: leader?.label ?? 'Leader',\n\t\tdiffRows: buildRAGComparisonTraceDiffRows(entry, leader),\n\t\tsummary: formatRetrievalComparisonHeadline(entry),\n\t\tid: entry.retrievalId,\n\t\tlabel: entry.label,\n\t\ttraceSummaryRows: buildRAGComparisonTraceSummaryRows(entry)\n\t}));\n};\n\nexport const buildRAGRetrievalComparisonOverviewPresentation = (\n\tcomparison: RAGRetrievalComparison\n): RAGComparisonOverviewPresentation =>\n\tbuildComparisonOverviewPresentation({\n\t\tentries: comparison.entries,\n\t\tresolveEntry: (id?: string) =>\n\t\t\tcomparison.entries.find((entry) => entry.retrievalId === id),\n\t\tresolveLabel: (id?: string) =>\n\t\t\tcomparison.entries.find((entry) => entry.retrievalId === id)\n\t\t\t\t?.label ??\n\t\t\tid ??\n\t\t\t'n/a',\n\t\tsummary: comparison.summary\n\t});\n\nexport const buildRAGRerankerComparisonPresentations = (\n\tcomparison: RAGRerankerComparison\n): RAGComparisonPresentation[] => {\n\tconst leader = comparison.entries[0];\n\treturn comparison.entries.map((entry) => ({\n\t\tdiffLabel: leader?.label ?? 'Leader',\n\t\tdiffRows: buildRAGComparisonTraceDiffRows(entry, leader),\n\t\tsummary: formatRerankerComparisonHeadline(entry),\n\t\tid: entry.rerankerId,\n\t\tlabel: entry.label,\n\t\ttraceSummaryRows: buildRAGComparisonTraceSummaryRows(entry)\n\t}));\n};\n\nexport const buildRAGRerankerComparisonOverviewPresentation = (\n\tcomparison: RAGRerankerComparison\n): RAGComparisonOverviewPresentation =>\n\tbuildComparisonOverviewPresentation({\n\t\tentries: comparison.entries,\n\t\tresolveEntry: (id?: string) =>\n\t\t\tcomparison.entries.find((entry) => entry.rerankerId === id),\n\t\tresolveLabel: (id?: string) =>\n\t\t\tcomparison.entries.find((entry) => entry.rerankerId === id)\n\t\t\t\t?.label ??\n\t\t\tid ??\n\t\t\t'n/a',\n\t\tsummary: comparison.summary\n\t});\n\nexport const buildRAGGroundingProviderPresentations = (\n\tentries: Array<{\n\t\tproviderKey: string;\n\t\tlabel: string;\n\t\telapsedMs: number;\n\t\tresponse: RAGAnswerGroundingEvaluationResponse;\n\t}>\n): RAGGroundingProviderPresentation[] =>\n\tentries.map((entry) => ({\n\t\tsummary: [\n\t\t\tentry.label,\n\t\t\t`passing ${formatEvaluationPassingRate(entry.response.passingRate)}`,\n\t\t\t`citation f1 ${entry.response.summary.averageCitationF1.toFixed(3)}`,\n\t\t\t`resolved ${formatEvaluationPassingRate(\n\t\t\t\tentry.response.summary.averageResolvedCitationRate\n\t\t\t)}`,\n\t\t\t`latency ${entry.elapsedMs.toFixed(1)}ms`\n\t\t].join(' · '),\n\t\tid: entry.providerKey,\n\t\tlabel: entry.label\n\t}));\n\nexport const buildRAGGroundingProviderOverviewPresentation = (input: {\n\tentries: Array<{\n\t\tproviderKey: string;\n\t\tlabel: string;\n\t\telapsedMs: number;\n\t\tresponse: RAGAnswerGroundingEvaluationResponse;\n\t}>;\n\tsummary: {\n\t\tbestByPassingRate?: string;\n\t\tbestByAverageCitationF1?: string;\n\t\tbestByResolvedCitationRate?: string;\n\t\tfastest?: string;\n\t};\n}): RAGGroundingProviderOverviewPresentation => {\n\tconst resolveLabel = (key?: string) =>\n\t\tinput.entries.find((entry) => entry.providerKey === key)?.label ??\n\t\tkey ??\n\t\t'n/a';\n\tconst winnerLabel = resolveLabel(input.summary.bestByPassingRate);\n\tconst winnerEntry = input.entries.find(\n\t\t(entry) => entry.providerKey === input.summary.bestByPassingRate\n\t);\n\n\treturn {\n\t\trows: [\n\t\t\t{\n\t\t\t\tlabel: 'Best passing rate',\n\t\t\t\tvalue: resolveLabel(input.summary.bestByPassingRate)\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Best citation F1',\n\t\t\t\tvalue: resolveLabel(input.summary.bestByAverageCitationF1)\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Best resolved citations',\n\t\t\t\tvalue: resolveLabel(input.summary.bestByResolvedCitationRate)\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Fastest',\n\t\t\t\tvalue: resolveLabel(input.summary.fastest)\n\t\t\t}\n\t\t],\n\t\twinnerLabel,\n\t\tsummary: winnerEntry\n\t\t\t? `passing ${formatEvaluationPassingRate(winnerEntry.response.passingRate)} · citation f1 ${winnerEntry.response.summary.averageCitationF1.toFixed(3)} · resolved ${formatEvaluationPassingRate(winnerEntry.response.summary.averageResolvedCitationRate)}`\n\t\t\t: 'Stored workflow evaluation'\n\t};\n};\n\nexport const buildRAGRetrievalOverviewPresentation = (\n\tcomparison: RAGRetrievalComparison\n): RAGQualityOverviewPresentation => ({\n\trows: buildRAGRetrievalComparisonOverviewPresentation(comparison).rows\n});\n\nexport const buildRAGRerankerOverviewPresentation = (\n\tcomparison: RAGRerankerComparison\n): RAGQualityOverviewPresentation => ({\n\trows: buildRAGRerankerComparisonOverviewPresentation(comparison).rows\n});\n\nexport const buildRAGGroundingOverviewPresentation = (input: {\n\tgroundingEvaluation: RAGAnswerGroundingEvaluationResponse;\n\tgroundingProviderOverview?: RAGGroundingProviderOverviewPresentation | null;\n}): RAGGroundingOverviewPresentation => ({\n\trows: [\n\t\t{\n\t\t\tlabel: 'Grounding',\n\t\t\tvalue: formatGroundingHistorySummaryValue(input.groundingEvaluation)\n\t\t},\n\t\t...(input.groundingProviderOverview?.rows ?? [\n\t\t\t{\n\t\t\t\tlabel: 'Grounding providers',\n\t\t\t\tvalue: 'Configure an AI provider to compare grounded answers.'\n\t\t\t}\n\t\t])\n\t]\n});\n\nexport const buildRAGQualityOverviewPresentation = (input: {\n\tretrievalComparison: RAGRetrievalComparison;\n\trerankerComparison: RAGRerankerComparison;\n\tgroundingEvaluation: RAGAnswerGroundingEvaluationResponse;\n\tgroundingProviderOverview?: RAGGroundingProviderOverviewPresentation | null;\n}): RAGQualityOverviewPresentation => ({\n\trows: [\n\t\t...buildRAGRetrievalOverviewPresentation(input.retrievalComparison)\n\t\t\t.rows,\n\t\t...buildRAGRerankerOverviewPresentation(input.rerankerComparison).rows,\n\t\t...buildRAGGroundingOverviewPresentation({\n\t\t\tgroundingEvaluation: input.groundingEvaluation,\n\t\t\tgroundingProviderOverview: input.groundingProviderOverview\n\t\t}).rows\n\t]\n});\n\nexport const buildRAGGroundingProviderCaseComparisonPresentations = (\n\tcomparisons: Array<{\n\t\tcaseId: string;\n\t\tlabel: string;\n\t\tentries: Array<{\n\t\t\tproviderKey: string;\n\t\t\tlabel: string;\n\t\t\tstatus: string;\n\t\t\tcoverage: string;\n\t\t\tcitationF1: number;\n\t\t\tresolvedCitationRate: number;\n\t\t\tmatchedIds: string[];\n\t\t\tmissingIds: string[];\n\t\t\textraIds: string[];\n\t\t\tanswerExcerpt: string;\n\t\t}>;\n\t\tsummary: {\n\t\t\tbestByStatus?: string;\n\t\t\tbestByCitationF1?: string;\n\t\t\tbestByResolvedCitationRate?: string;\n\t\t};\n\t}>\n): RAGGroundingProviderCaseComparisonPresentation[] =>\n\tcomparisons.map((comparison) => {\n\t\tconst resolveLabel = (key?: string) =>\n\t\t\tcomparison.entries.find((entry) => entry.providerKey === key)\n\t\t\t\t?.label ??\n\t\t\tkey ??\n\t\t\t'n/a';\n\n\t\treturn {\n\t\t\tcaseId: comparison.caseId,\n\t\t\tlabel: comparison.label,\n\t\t\trows: [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Best grounded',\n\t\t\t\t\tvalue: resolveLabel(comparison.summary.bestByStatus)\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Best citation F1',\n\t\t\t\t\tvalue: resolveLabel(comparison.summary.bestByCitationF1)\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Best resolved citations',\n\t\t\t\t\tvalue: resolveLabel(\n\t\t\t\t\t\tcomparison.summary.bestByResolvedCitationRate\n\t\t\t\t\t)\n\t\t\t\t},\n\t\t\t\t...comparison.entries.map((entry) => ({\n\t\t\t\t\tlabel: entry.label,\n\t\t\t\t\tvalue: [\n\t\t\t\t\t\tentry.status.toUpperCase(),\n\t\t\t\t\t\t`coverage ${entry.coverage}`,\n\t\t\t\t\t\t`f1 ${entry.citationF1.toFixed(3)}`,\n\t\t\t\t\t\t`resolved ${formatEvaluationPassingRate(\n\t\t\t\t\t\t\tentry.resolvedCitationRate\n\t\t\t\t\t\t)}`,\n\t\t\t\t\t\t`matched ${entry.matchedIds.join(', ') || 'none'}`,\n\t\t\t\t\t\t`missing ${entry.missingIds.join(', ') || 'none'}`,\n\t\t\t\t\t\t`extra ${entry.extraIds.join(', ') || 'none'}`,\n\t\t\t\t\t\t`answer ${entry.answerExcerpt || 'n/a'}`\n\t\t\t\t\t].join(' · ')\n\t\t\t\t}))\n\t\t\t],\n\t\t\tsummary: [\n\t\t\t\t`Best grounded: ${resolveLabel(comparison.summary.bestByStatus)}`,\n\t\t\t\t`Best citation F1: ${resolveLabel(\n\t\t\t\t\tcomparison.summary.bestByCitationF1\n\t\t\t\t)}`,\n\t\t\t\t`Best resolved citations: ${resolveLabel(\n\t\t\t\t\tcomparison.summary.bestByResolvedCitationRate\n\t\t\t\t)}`\n\t\t\t].join(' · ')\n\t\t};\n\t});\n\nexport const buildRAGEvaluationHistoryRows = (\n\thistory?: RAGEvaluationHistory\n): RAGLabelValueRow[] => {\n\tif (!history?.latestRun) {\n\t\treturn [\n\t\t\t{ label: 'History', value: 'No persisted benchmark runs yet.' }\n\t\t];\n\t}\n\n\tconst rows: RAGLabelValueRow[] = [\n\t\t{ label: 'Runs recorded', value: String(history.runs.length) },\n\t\t{\n\t\t\tlabel: 'Latest',\n\t\t\tvalue: `${history.latestRun.label} · ${formatEvaluationSummary(\n\t\t\t\thistory.latestRun.response\n\t\t\t)}`\n\t\t}\n\t];\n\n\tif (history.latestRun.traceSummary) {\n\t\trows.push({\n\t\t\tlabel: 'Latest trace',\n\t\t\tvalue: `${formatTraceModes(\n\t\t\t\thistory.latestRun.traceSummary.modes\n\t\t\t)} · balance ${formatSourceBalanceStrategies(\n\t\t\t\thistory.latestRun.traceSummary.sourceBalanceStrategies\n\t\t\t)} · final ${history.latestRun.traceSummary.averageFinalCount.toFixed(\n\t\t\t\t1\n\t\t\t)} · vector ${history.latestRun.traceSummary.averageVectorCount.toFixed(\n\t\t\t\t1\n\t\t\t)} · lexical ${history.latestRun.traceSummary.averageLexicalCount.toFixed(\n\t\t\t\t1\n\t\t\t)}`\n\t\t});\n\t}\n\n\tif (history.previousRun) {\n\t\trows.push({\n\t\t\tlabel: 'Previous',\n\t\t\tvalue: `${history.previousRun.label} · ${formatEvaluationSummary(\n\t\t\t\thistory.previousRun.response\n\t\t\t)}`\n\t\t});\n\t}\n\n\tif (!history.diff) {\n\t\trows.push({\n\t\t\tlabel: 'History diff',\n\t\t\tvalue: 'Run the benchmark again to diff regressions over time.'\n\t\t});\n\t\treturn rows;\n\t}\n\n\trows.push(\n\t\t{\n\t\t\tlabel: 'Passing delta',\n\t\t\tvalue: formatSignedDelta(\n\t\t\t\thistory.diff.summaryDelta.passingRate,\n\t\t\t\t1,\n\t\t\t\t'%'\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Average F1 delta',\n\t\t\tvalue: formatSignedDelta(history.diff.summaryDelta.averageF1, 3)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Latency delta',\n\t\t\tvalue: formatSignedDelta(\n\t\t\t\thistory.diff.summaryDelta.averageLatencyMs,\n\t\t\t\t1,\n\t\t\t\t'ms'\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Improved',\n\t\t\tvalue: formatHistoryCaseLabels(history.diff.improvedCases)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Regressed',\n\t\t\tvalue: formatHistoryCaseLabels(history.diff.regressedCases)\n\t\t}\n\t);\n\n\tif (history.diff.traceSummaryDelta) {\n\t\trows.push(\n\t\t\t{\n\t\t\t\tlabel: 'Trace mode shift',\n\t\t\t\tvalue: history.diff.traceSummaryDelta.modesChanged\n\t\t\t\t\t? 'changed'\n\t\t\t\t\t: 'stable'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Trace balance shift',\n\t\t\t\tvalue: history.diff.traceSummaryDelta\n\t\t\t\t\t.sourceBalanceStrategiesChanged\n\t\t\t\t\t? 'changed'\n\t\t\t\t\t: 'stable'\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Trace final delta',\n\t\t\t\tvalue: formatSignedDelta(\n\t\t\t\t\thistory.diff.traceSummaryDelta.averageFinalCount,\n\t\t\t\t\t1\n\t\t\t\t)\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Trace vector delta',\n\t\t\t\tvalue: formatSignedDelta(\n\t\t\t\t\thistory.diff.traceSummaryDelta.averageVectorCount,\n\t\t\t\t\t1\n\t\t\t\t)\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Trace lexical delta',\n\t\t\t\tvalue: formatSignedDelta(\n\t\t\t\t\thistory.diff.traceSummaryDelta.averageLexicalCount,\n\t\t\t\t\t1\n\t\t\t\t)\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Trace balanced delta',\n\t\t\t\tvalue: formatTraceCountDelta(\n\t\t\t\t\thistory.diff.traceSummaryDelta.balancedCases\n\t\t\t\t)\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Trace round robin delta',\n\t\t\t\tvalue: formatTraceCountDelta(\n\t\t\t\t\thistory.diff.traceSummaryDelta.roundRobinCases\n\t\t\t\t)\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Trace transform delta',\n\t\t\t\tvalue: formatTraceCountDelta(\n\t\t\t\t\thistory.diff.traceSummaryDelta.transformedCases\n\t\t\t\t)\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Trace variant delta',\n\t\t\t\tvalue: formatTraceCountDelta(\n\t\t\t\t\thistory.diff.traceSummaryDelta.variantCases\n\t\t\t\t)\n\t\t\t}\n\t\t);\n\n\t\tconst stageDelta = Object.entries(\n\t\t\thistory.diff.traceSummaryDelta.stageCounts ?? {}\n\t\t)\n\t\t\t.map(([stage, count]) => `${stage} ${formatTraceCountDelta(count)}`)\n\t\t\t.join(', ');\n\n\t\tif (stageDelta) {\n\t\t\trows.push({ label: 'Trace stage delta', value: stageDelta });\n\t\t}\n\t}\n\n\tif (history.caseTraceSnapshots.length > 0) {\n\t\tconst changedCases = history.caseTraceSnapshots.filter(\n\t\t\t(entry) => entry.traceChange === 'changed'\n\t\t);\n\t\trows.push({\n\t\t\tlabel: 'Trace drift cases',\n\t\t\tvalue:\n\t\t\t\tchangedCases.length > 0\n\t\t\t\t\t? changedCases\n\t\t\t\t\t\t\t.map((entry) => entry.label ?? entry.caseId)\n\t\t\t\t\t\t\t.slice(0, 4)\n\t\t\t\t\t\t\t.join(', ')\n\t\t\t\t\t: 'none'\n\t\t});\n\t}\n\n\treturn rows;\n};\n\nexport const buildRAGEvaluationCaseTracePresentations = (\n\thistory?: RAGEvaluationHistory\n): RAGEvaluationCaseTracePresentation[] => {\n\tif (!history?.caseTraceSnapshots.length) {\n\t\treturn [];\n\t}\n\n\treturn history.caseTraceSnapshots.map((entry) => {\n\t\tconst label = entry.label ?? entry.caseId;\n\t\tconst currentMode = entry.traceMode ?? 'no-trace';\n\t\tconst previousMode = entry.previousTraceMode ?? 'n/a';\n\t\tconst currentBalance = entry.sourceBalanceStrategy ?? 'cap';\n\t\tconst previousBalance = entry.previousSourceBalanceStrategy ?? 'n/a';\n\t\tconst currentVariants =\n\t\t\tentry.variantQueries.length > 0\n\t\t\t\t? entry.variantQueries.join(', ')\n\t\t\t\t: 'none';\n\t\tconst previousVariants =\n\t\t\tentry.previousVariantQueries.length > 0\n\t\t\t\t? entry.previousVariantQueries.join(', ')\n\t\t\t\t: 'none';\n\t\tconst currentStages =\n\t\t\tObject.keys(entry.stageCounts).length > 0\n\t\t\t\t? Object.entries(entry.stageCounts)\n\t\t\t\t\t\t.map(([stage, count]) => `${stage} ${count}`)\n\t\t\t\t\t\t.join(', ')\n\t\t\t\t: 'none';\n\t\tconst previousStages =\n\t\t\tObject.keys(entry.previousStageCounts).length > 0\n\t\t\t\t? Object.entries(entry.previousStageCounts)\n\t\t\t\t\t\t.map(([stage, count]) => `${stage} ${count}`)\n\t\t\t\t\t\t.join(', ')\n\t\t\t\t: 'none';\n\n\t\treturn {\n\t\t\tcaseId: entry.caseId,\n\t\t\tlabel,\n\t\t\tsummary: `${entry.traceChange} · ${previousMode}→${currentMode} · ${previousBalance}→${currentBalance} · final ${\n\t\t\t\tentry.previousFinalCount ?? 0\n\t\t\t}→${entry.finalCount}`,\n\t\t\ttraceChange: entry.traceChange,\n\t\t\trows: [\n\t\t\t\t{ label: 'Query', value: entry.query },\n\t\t\t\t{ label: 'Trace change', value: entry.traceChange },\n\t\t\t\t{ label: 'Mode', value: `${previousMode}→${currentMode}` },\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Balance',\n\t\t\t\t\tvalue: `${previousBalance}→${currentBalance}`\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Transformed query',\n\t\t\t\t\tvalue: `${\n\t\t\t\t\t\tentry.previousTransformedQuery?.trim() || 'n/a'\n\t\t\t\t\t}→${entry.transformedQuery?.trim() || 'n/a'}`\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Final',\n\t\t\t\t\tvalue: `${entry.previousFinalCount ?? 0}→${entry.finalCount}`\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Vector',\n\t\t\t\t\tvalue: `${entry.previousVectorCount ?? 0}→${entry.vectorCount}`\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Lexical',\n\t\t\t\t\tvalue: `${entry.previousLexicalCount ?? 0}→${entry.lexicalCount}`\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Candidate topK',\n\t\t\t\t\tvalue: `${entry.previousCandidateTopK ?? 0}→${entry.candidateTopK}`\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Lexical topK',\n\t\t\t\t\tvalue: `${entry.previousLexicalTopK ?? 0}→${entry.lexicalTopK}`\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Variants',\n\t\t\t\t\tvalue: `${previousVariants}→${currentVariants}`\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Stages',\n\t\t\t\t\tvalue: `${previousStages}→${currentStages}`\n\t\t\t\t},\n\t\t\t\t{ label: 'Status', value: entry.status }\n\t\t\t]\n\t\t};\n\t});\n};\n\nexport const buildRAGEvaluationHistoryPresentation = (\n\thistory?: RAGEvaluationHistory\n): RAGEvaluationHistoryPresentation => ({\n\tcaseTraces: buildRAGEvaluationCaseTracePresentations(history),\n\trows: buildRAGEvaluationHistoryRows(history),\n\tsummary: history?.latestRun\n\t\t? history.latestRun.label\n\t\t: 'No persisted benchmark runs yet.'\n});\n\nexport const buildRAGAnswerGroundingCaseSnapshotPresentations = (\n\thistory?: RAGAnswerGroundingEvaluationHistory\n): RAGAnswerGroundingCaseSnapshotPresentation[] => {\n\tif (!history?.caseSnapshots.length) {\n\t\treturn [];\n\t}\n\n\treturn history.caseSnapshots.map((entry) => {\n\t\tconst label = entry.label ?? entry.caseId;\n\t\treturn {\n\t\t\tanswerChange: entry.answerChange,\n\t\t\tcaseId: entry.caseId,\n\t\t\tlabel,\n\t\t\trows: [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Query',\n\t\t\t\t\tvalue: entry.query?.trim().length ? entry.query : 'n/a'\n\t\t\t\t},\n\t\t\t\t{ label: 'Answer change', value: entry.answerChange },\n\t\t\t\t{ label: 'Coverage', value: entry.coverage },\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Resolved citations',\n\t\t\t\t\tvalue: `${entry.resolvedCitationCount}/${entry.citationCount}`\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Resolved citation rate',\n\t\t\t\t\tvalue: entry.resolvedCitationRate.toFixed(3)\n\t\t\t\t},\n\t\t\t\t{ label: 'Citation F1', value: entry.citationF1.toFixed(3) },\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Reference count',\n\t\t\t\t\tvalue: String(entry.referenceCount)\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Cited IDs',\n\t\t\t\t\tvalue:\n\t\t\t\t\t\tentry.citedIds.length > 0\n\t\t\t\t\t\t\t? entry.citedIds.join(', ')\n\t\t\t\t\t\t\t: 'none'\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Matched IDs',\n\t\t\t\t\tvalue:\n\t\t\t\t\t\tentry.matchedIds.length > 0\n\t\t\t\t\t\t\t? entry.matchedIds.join(', ')\n\t\t\t\t\t\t\t: 'none'\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Missing IDs',\n\t\t\t\t\tvalue:\n\t\t\t\t\t\tentry.missingIds.length > 0\n\t\t\t\t\t\t\t? entry.missingIds.join(', ')\n\t\t\t\t\t\t\t: 'none'\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Extra IDs',\n\t\t\t\t\tvalue:\n\t\t\t\t\t\tentry.extraIds.length > 0\n\t\t\t\t\t\t\t? entry.extraIds.join(', ')\n\t\t\t\t\t\t\t: 'none'\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Unresolved refs',\n\t\t\t\t\tvalue:\n\t\t\t\t\t\tentry.ungroundedReferenceNumbers.length > 0\n\t\t\t\t\t\t\t? entry.ungroundedReferenceNumbers.join(', ')\n\t\t\t\t\t\t\t: 'none'\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Answer',\n\t\t\t\t\tvalue: entry.answer.trim().length > 0 ? entry.answer : 'n/a'\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Previous answer',\n\t\t\t\t\tvalue:\n\t\t\t\t\t\tentry.previousAnswer &&\n\t\t\t\t\t\tentry.previousAnswer.trim().length > 0\n\t\t\t\t\t\t\t? entry.previousAnswer\n\t\t\t\t\t\t\t: 'n/a'\n\t\t\t\t}\n\t\t\t],\n\t\t\tsummary: `${entry.answerChange} · ${entry.coverage} · resolved ${entry.resolvedCitationCount}/${entry.citationCount} · refs ${entry.referenceCount}`\n\t\t};\n\t});\n};\n\nexport const buildRAGAnswerGroundingHistoryRows = (\n\thistory?: RAGAnswerGroundingEvaluationHistory\n): RAGLabelValueRow[] => {\n\tif (!history?.latestRun) {\n\t\treturn [{ label: 'History', value: 'No persisted provider runs yet.' }];\n\t}\n\n\tconst rows: RAGLabelValueRow[] = [\n\t\t{ label: 'Runs recorded', value: String(history.runs.length) },\n\t\t{\n\t\t\tlabel: 'Latest',\n\t\t\tvalue: `${history.latestRun.label} · ${formatGroundingHistorySummaryValue(\n\t\t\t\thistory.latestRun.response\n\t\t\t)}`\n\t\t}\n\t];\n\n\tif (history.previousRun) {\n\t\trows.push({\n\t\t\tlabel: 'Previous',\n\t\t\tvalue: `${history.previousRun.label} · ${formatGroundingHistorySummaryValue(\n\t\t\t\thistory.previousRun.response\n\t\t\t)}`\n\t\t});\n\t}\n\n\tif (history.leaderboard[0]) {\n\t\trows.push({\n\t\t\tlabel: 'Best recorded',\n\t\t\tvalue: `#${history.leaderboard[0].rank} · ${history.leaderboard[0].label} · passing ${formatEvaluationPassingRate(\n\t\t\t\thistory.leaderboard[0].passingRate\n\t\t\t)} · citation f1 ${history.leaderboard[0].averageCitationF1.toFixed(\n\t\t\t\t3\n\t\t\t)} · resolved ${formatEvaluationPassingRate(\n\t\t\t\thistory.leaderboard[0].averageResolvedCitationRate\n\t\t\t)}`\n\t\t});\n\t}\n\n\tif (history.caseSnapshots.length > 0) {\n\t\tconst changedAnswers = history.caseSnapshots.filter(\n\t\t\t(entry) => entry.answerChange === 'changed'\n\t\t).length;\n\t\trows.push({\n\t\t\tlabel: 'Answer drift',\n\t\t\tvalue: `${changedAnswers}/${history.caseSnapshots.length} changed`\n\t\t});\n\t}\n\n\tif (!history.diff) {\n\t\trows.push({\n\t\t\tlabel: 'History diff',\n\t\t\tvalue: 'Run the provider comparison again to diff grounding regressions over time.'\n\t\t});\n\t\treturn rows;\n\t}\n\n\trows.push(\n\t\t{\n\t\t\tlabel: 'Passing delta',\n\t\t\tvalue: formatSignedDelta(\n\t\t\t\thistory.diff.summaryDelta.passingRate,\n\t\t\t\t1,\n\t\t\t\t'%'\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Citation F1 delta',\n\t\t\tvalue: formatSignedDelta(\n\t\t\t\thistory.diff.summaryDelta.averageCitationF1,\n\t\t\t\t3\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Resolved citation delta',\n\t\t\tvalue: formatSignedDelta(\n\t\t\t\thistory.diff.summaryDelta.averageResolvedCitationRate * 100,\n\t\t\t\t1,\n\t\t\t\t'%'\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Improved',\n\t\t\tvalue: formatGroundingHistoryCaseLabels(history.diff.improvedCases)\n\t\t},\n\t\t{\n\t\t\tlabel: 'Regressed',\n\t\t\tvalue: formatGroundingHistoryCaseLabels(history.diff.regressedCases)\n\t\t}\n\t);\n\n\treturn rows;\n};\n\nexport const buildRAGAnswerGroundingHistoryPresentation = (\n\thistory?: RAGAnswerGroundingEvaluationHistory\n): RAGAnswerGroundingHistoryPresentation => ({\n\tcaseSnapshots: buildRAGAnswerGroundingCaseSnapshotPresentations(history),\n\trows: buildRAGAnswerGroundingHistoryRows(history),\n\tsummary: history?.latestRun\n\t\t? history.latestRun.label\n\t\t: 'No persisted provider runs yet.'\n});\n",
11
11
  "import type {\n\tAIProviderConfig,\n\tAIProviderContentBlock,\n\tAIProviderMessage,\n\tAIProviderStreamParams,\n\tAIProviderToolDefinition,\n\tAIUsage\n} from '../../../types/ai';\n\ntype OpenAIConfig = {\n\tapiKey: string;\n\tbaseUrl?: string;\n};\n\ntype OpenAIMessage = {\n\tcontent: string | Array<Record<string, unknown>> | null;\n\trole: 'user' | 'assistant' | 'system' | 'tool';\n\ttool_call_id?: string;\n\ttool_calls?: Array<{\n\t\tfunction: { arguments: string; name: string };\n\t\tid: string;\n\t\ttype: 'function';\n\t}>;\n};\n\ntype PendingToolCall = {\n\targuments: string;\n\tid: string;\n\tname: string;\n};\n\ntype UsageRef = {\n\tcurrent: AIUsage | undefined;\n};\n\ntype StreamState = {\n\tbuffer: string;\n\tpendingToolCalls: Map<number, PendingToolCall>;\n\tusageRef: UsageRef;\n};\n\nconst DEFAULT_BASE_URL = 'https://api.openai.com';\nconst SSE_DATA_PREFIX_LENGTH = 6;\nconst DONE_SENTINEL = '[DONE]';\nconst NOT_FOUND = -1;\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null;\n\nconst isRecordArray = (\n\tvalue: unknown\n): value is Array<Record<string, unknown>> =>\n\tArray.isArray(value) && value.length > 0 && isRecord(value[0]);\n\nconst hasArrayContent = (\n\tmsg: AIProviderMessage\n): msg is AIProviderMessage & { content: AIProviderContentBlock[] } =>\n\ttypeof msg.content !== 'string' && Array.isArray(msg.content);\n\nconst buildToolMessages = (blocks: AIProviderContentBlock[]) => {\n\tconst toolUseBlocks = blocks.filter((block) => block.type === 'tool_use');\n\tconst toolResultBlocks = blocks.filter(\n\t\t(block) => block.type === 'tool_result'\n\t);\n\tconst messages: OpenAIMessage[] = [];\n\n\tif (toolUseBlocks.length > 0) {\n\t\tmessages.push({\n\t\t\tcontent: null,\n\t\t\trole: 'assistant',\n\t\t\ttool_calls: toolUseBlocks.map((block) => ({\n\t\t\t\tfunction: {\n\t\t\t\t\targuments:\n\t\t\t\t\t\ttypeof block.input === 'string'\n\t\t\t\t\t\t\t? block.input\n\t\t\t\t\t\t\t: JSON.stringify(block.input),\n\t\t\t\t\tname: block.name\n\t\t\t\t},\n\t\t\t\tid: block.id,\n\t\t\t\ttype: 'function' as const\n\t\t\t}))\n\t\t});\n\t}\n\n\tfor (const result of toolResultBlocks) {\n\t\tmessages.push({\n\t\t\tcontent: typeof result.content === 'string' ? result.content : '',\n\t\t\trole: 'tool',\n\t\t\ttool_call_id: result.tool_use_id\n\t\t});\n\t}\n\n\treturn messages;\n};\n\nconst processMessageAtIndex = (\n\tresult: OpenAIMessage[],\n\tmsg: AIProviderMessage,\n\tidx: number\n) => {\n\tif (!hasArrayContent(msg)) {\n\t\treturn;\n\t}\n\n\tconst hasToolBlocks = msg.content.some(\n\t\t(block) => block.type === 'tool_use' || block.type === 'tool_result'\n\t);\n\n\tif (!hasToolBlocks) {\n\t\treturn;\n\t}\n\n\tconst toolMessages = buildToolMessages(msg.content);\n\tresult.splice(idx, 1, ...toolMessages);\n};\n\nconst convertSingleMessage = (\n\tresult: OpenAIMessage[],\n\tmsg: AIProviderMessage | undefined,\n\tidx: number\n) => {\n\tif (!msg) {\n\t\treturn;\n\t}\n\n\tprocessMessageAtIndex(result, msg, idx);\n};\n\nconst convertToolResultMessages = (\n\tmessages: OpenAIMessage[],\n\tparams: AIProviderStreamParams\n) => {\n\tconst result = [...messages];\n\n\tfor (let idx = 0; idx < params.messages.length; idx++) {\n\t\tconvertSingleMessage(result, params.messages[idx], idx);\n\t}\n\n\treturn result;\n};\n\nconst mapToolDefinitions = (tools: AIProviderToolDefinition[]) =>\n\ttools.map((tool) => ({\n\t\tfunction: {\n\t\t\tdescription: tool.description,\n\t\t\tname: tool.name,\n\t\t\tparameters: tool.input_schema\n\t\t},\n\t\ttype: 'function'\n\t}));\n\nconst mapContentBlockToOpenAI = (block: AIProviderContentBlock) => {\n\tif (block.type === 'image') {\n\t\treturn {\n\t\t\timage_url: {\n\t\t\t\turl: `data:${block.source.media_type};base64,${block.source.data}`\n\t\t\t},\n\t\t\ttype: 'image_url'\n\t\t};\n\t}\n\n\tif (block.type === 'document') {\n\t\treturn {\n\t\t\tfile: {\n\t\t\t\tfile_data: `data:${block.source.media_type};base64,${block.source.data}`,\n\t\t\t\tfilename: block.name ?? 'document.pdf'\n\t\t\t},\n\t\t\ttype: 'file'\n\t\t};\n\t}\n\n\tif (block.type === 'text') {\n\t\treturn { text: block.content, type: 'text' };\n\t}\n\n\treturn null;\n};\n\nconst mapOpenAIContent = (msg: AIProviderStreamParams['messages'][number]) => {\n\tif (typeof msg.content === 'string') {\n\t\treturn msg.content;\n\t}\n\n\tconst hasMedia = msg.content.some(\n\t\t(block) => block.type === 'image' || block.type === 'document'\n\t);\n\n\tif (!hasMedia) {\n\t\treturn null;\n\t}\n\n\treturn msg.content\n\t\t.map(mapContentBlockToOpenAI)\n\t\t.filter((mapped) => mapped !== null);\n};\n\nconst buildRequestBody = (params: AIProviderStreamParams) => {\n\tconst messages = convertToolResultMessages(\n\t\tparams.messages.map((msg) => ({\n\t\t\tcontent: mapOpenAIContent(msg),\n\t\t\trole: msg.role\n\t\t})),\n\t\tparams\n\t);\n\n\tconst body: Record<string, unknown> = {\n\t\tmessages,\n\t\tmodel: params.model,\n\t\tstream: true,\n\t\tstream_options: { include_usage: true }\n\t};\n\n\tif (params.tools && params.tools.length > 0) {\n\t\tbody.tools = mapToolDefinitions(params.tools);\n\t}\n\n\treturn body;\n};\n\nconst parseToolInput = (rawArguments: string) => {\n\ttry {\n\t\treturn JSON.parse(rawArguments);\n\t} catch {\n\t\treturn rawArguments;\n\t}\n};\n\nconst flushPendingToolCalls = function* (\n\tpendingToolCalls: Map<number, PendingToolCall>\n) {\n\tfor (const [, tool] of pendingToolCalls) {\n\t\tconst input = parseToolInput(tool.arguments);\n\t\tyield {\n\t\t\tid: tool.id,\n\t\t\tinput,\n\t\t\tname: tool.name,\n\t\t\ttype: 'tool_use' as const\n\t\t};\n\t}\n\n\tpendingToolCalls.clear();\n};\n\nconst extractUsage = (parsedUsage: Record<string, number>) => ({\n\tinputTokens: parsedUsage.prompt_tokens ?? 0,\n\toutputTokens: parsedUsage.completion_tokens ?? 0\n});\n\nconst resolveToolCallIndex = (toolCall: Record<string, unknown>) => {\n\tconst raw = typeof toolCall.index === 'number' ? toolCall.index : NOT_FOUND;\n\n\treturn raw < 0 ? undefined : raw;\n};\n\nconst initPendingToolCall = (\n\ttoolCall: Record<string, unknown>,\n\tfunc: Record<string, unknown> | null,\n\tindex: number,\n\tpendingToolCalls: Map<number, PendingToolCall>\n) => {\n\tif (pendingToolCalls.has(index)) {\n\t\treturn;\n\t}\n\n\tconst toolId = typeof toolCall.id === 'string' ? toolCall.id : '';\n\tconst toolName = func && typeof func.name === 'string' ? func.name : '';\n\n\tpendingToolCalls.set(index, {\n\t\targuments: '',\n\t\tid: toolId,\n\t\tname: toolName\n\t});\n};\n\nconst updatePendingToolCall = (\n\ttoolCall: Record<string, unknown>,\n\tfunc: Record<string, unknown> | null,\n\tpending: PendingToolCall\n) => {\n\tif (typeof toolCall.id === 'string') {\n\t\tpending.id = toolCall.id;\n\t}\n\n\tif (func && typeof func.name === 'string') {\n\t\tpending.name = func.name;\n\t}\n\n\tif (func && typeof func.arguments === 'string') {\n\t\tpending.arguments += func.arguments;\n\t}\n};\n\nconst processToolCallDelta = (\n\ttoolCall: Record<string, unknown>,\n\tpendingToolCalls: Map<number, PendingToolCall>\n) => {\n\tconst index = resolveToolCallIndex(toolCall);\n\tif (index === undefined) {\n\t\treturn;\n\t}\n\n\tconst func = isRecord(toolCall.function) ? toolCall.function : null;\n\tinitPendingToolCall(toolCall, func, index, pendingToolCalls);\n\n\tconst pending = pendingToolCalls.get(index);\n\tif (!pending) {\n\t\treturn;\n\t}\n\n\tupdatePendingToolCall(toolCall, func, pending);\n};\n\nconst processToolCallDeltas = (\n\ttoolCalls: Array<Record<string, unknown>>,\n\tpendingToolCalls: Map<number, PendingToolCall>\n) => {\n\tfor (const toolCall of toolCalls) {\n\t\tprocessToolCallDelta(toolCall, pendingToolCalls);\n\t}\n};\n\nconst processDelta = function* (\n\tdelta: Record<string, unknown>,\n\tpendingToolCalls: Map<number, PendingToolCall>\n) {\n\tif (typeof delta.content === 'string') {\n\t\tyield { content: delta.content, type: 'text' as const };\n\t}\n\n\tif (isRecordArray(delta.tool_calls)) {\n\t\tprocessToolCallDeltas(delta.tool_calls, pendingToolCalls);\n\t}\n};\n\nconst processChoice = function* (\n\tchoice: Record<string, unknown>,\n\tpendingToolCalls: Map<number, PendingToolCall>\n) {\n\tconst delta = isRecord(choice.delta) ? choice.delta : null;\n\tif (delta) {\n\t\tyield* processDelta(delta, pendingToolCalls);\n\t}\n\n\tif (choice.finish_reason === 'tool_calls') {\n\t\tyield* flushPendingToolCalls(pendingToolCalls);\n\t}\n};\n\nconst narrowUsageRecord = (parsed: Record<string, unknown>) => {\n\tif (!isRecord(parsed.usage)) {\n\t\treturn undefined;\n\t}\n\n\tconst { usage } = parsed;\n\tconst promptTokens =\n\t\ttypeof usage.prompt_tokens === 'number' ? usage.prompt_tokens : 0;\n\tconst completionTokens =\n\t\ttypeof usage.completion_tokens === 'number'\n\t\t\t? usage.completion_tokens\n\t\t\t: 0;\n\n\treturn extractUsage({\n\t\tcompletion_tokens: completionTokens,\n\t\tprompt_tokens: promptTokens\n\t});\n};\n\nconst processSSELine = function* (\n\tline: string,\n\tpendingToolCalls: Map<number, PendingToolCall>,\n\tcurrentUsage: AIUsage | undefined\n) {\n\tconst trimmed = line.trim();\n\tif (!trimmed || !trimmed.startsWith('data: ')) {\n\t\treturn;\n\t}\n\n\tconst data = trimmed.slice(SSE_DATA_PREFIX_LENGTH);\n\tif (data === DONE_SENTINEL) {\n\t\tyield* flushPendingToolCalls(pendingToolCalls);\n\t\tyield { type: 'done' as const, usage: currentUsage };\n\n\t\treturn;\n\t}\n\n\tlet parsed: Record<string, unknown>;\n\ttry {\n\t\tparsed = JSON.parse(data);\n\t} catch {\n\t\treturn;\n\t}\n\n\tconst usageUpdate = narrowUsageRecord(parsed);\n\tif (usageUpdate) {\n\t\tyield { type: 'usage_update' as const, usage: usageUpdate };\n\t}\n\n\tconst { choices } = parsed;\n\tif (!isRecordArray(choices)) {\n\t\treturn;\n\t}\n\n\tconst [firstChoice] = choices;\n\tif (!firstChoice) {\n\t\treturn;\n\t}\n\n\tyield* processChoice(firstChoice, pendingToolCalls);\n};\n\nconst isUsageUpdate = (chunk: {\n\ttype: string;\n\tusage?: AIUsage;\n}): chunk is { type: 'usage_update'; usage: AIUsage } =>\n\tchunk.type === 'usage_update';\n\nconst collectYieldableChunks = (\n\tline: string,\n\tpendingToolCalls: Map<number, PendingToolCall>,\n\tusageRef: UsageRef\n) => {\n\tconst allChunks = Array.from(\n\t\tprocessSSELine(line, pendingToolCalls, usageRef.current)\n\t);\n\tconst usageChunks = allChunks.filter(isUsageUpdate);\n\tconst lastUsage = usageChunks.at(NOT_FOUND);\n\n\tif (lastUsage) {\n\t\tusageRef.current = lastUsage.usage;\n\t}\n\n\treturn allChunks.filter((chunk) => !isUsageUpdate(chunk));\n};\n\nconst processSSELines = function* (\n\tlines: string[],\n\tpendingToolCalls: Map<number, PendingToolCall>,\n\tusageRef: UsageRef\n) {\n\tfor (const line of lines) {\n\t\tyield* collectYieldableChunks(line, pendingToolCalls, usageRef);\n\t}\n};\n\nconst processStreamValue = (\n\tvalue: Uint8Array,\n\tdecoder: TextDecoder,\n\tstate: StreamState\n) => {\n\tstate.buffer += decoder.decode(value, { stream: true });\n\tconst lines = state.buffer.split('\\n');\n\tstate.buffer = lines.pop() ?? '';\n\n\treturn lines;\n};\n\nconst drainReader = async function* (\n\treader: ReadableStreamDefaultReader<Uint8Array>,\n\tdecoder: TextDecoder,\n\tstate: StreamState,\n\tsignal?: AbortSignal\n) {\n\t/* eslint-disable no-await-in-loop */\n\tfor (\n\t\tlet result = await reader.read();\n\t\t!result.done && !signal?.aborted;\n\t\tresult = await reader.read()\n\t) {\n\t\t/* eslint-enable no-await-in-loop */\n\t\tconst lines = processStreamValue(result.value, decoder, state);\n\t\tyield* processSSELines(lines, state.pendingToolCalls, state.usageRef);\n\t}\n};\n\nconst parseSSEStream = async function* (\n\tbody: ReadableStream<Uint8Array>,\n\tsignal?: AbortSignal\n) {\n\tconst reader = body.getReader();\n\tconst decoder = new TextDecoder();\n\tconst state: StreamState = {\n\t\tbuffer: '',\n\t\tpendingToolCalls: new Map<number, PendingToolCall>(),\n\t\tusageRef: { current: undefined }\n\t};\n\n\ttry {\n\t\tyield* drainReader(reader, decoder, state, signal);\n\t\tyield { type: 'done' as const, usage: state.usageRef.current };\n\t} finally {\n\t\treader.releaseLock();\n\t}\n};\n\nconst fetchOpenAIStream = async function* (\n\tbaseUrl: string,\n\tapiKey: string,\n\tbody: Record<string, unknown>,\n\tsignal?: AbortSignal\n) {\n\tconst response = await fetch(`${baseUrl}/v1/chat/completions`, {\n\t\tbody: JSON.stringify(body),\n\t\theaders: {\n\t\t\tAuthorization: `Bearer ${apiKey}`,\n\t\t\t'Content-Type': 'application/json'\n\t\t},\n\t\tmethod: 'POST',\n\t\tsignal\n\t});\n\n\tif (!response.ok) {\n\t\tconst errorText = await response.text();\n\t\tthrow new Error(`OpenAI API error ${response.status}: ${errorText}`);\n\t}\n\n\tif (!response.body) {\n\t\tthrow new Error('OpenAI API returned no response body');\n\t}\n\n\tyield* parseSSEStream(response.body, signal);\n};\n\nexport const openai = (config: OpenAIConfig): AIProviderConfig => {\n\tconst baseUrl = config.baseUrl ?? DEFAULT_BASE_URL;\n\n\treturn {\n\t\tstream: (params: AIProviderStreamParams) => {\n\t\t\tconst body = buildRequestBody(params);\n\n\t\t\treturn fetchOpenAIStream(\n\t\t\t\tbaseUrl,\n\t\t\t\tconfig.apiKey,\n\t\t\t\tbody,\n\t\t\t\tparams.signal\n\t\t\t);\n\t\t}\n\t};\n};\n",
12
12
  "import { openai } from './openai';\n\n/**\n * Creates a provider for any OpenAI-compatible API.\n * Many providers (Google, xAI, DeepSeek, Mistral, etc.)\n * expose OpenAI-compatible chat completion endpoints.\n */\nexport const alibaba = (config: { apiKey: string }) =>\n\topenaiCompatible({\n\t\tapiKey: config.apiKey,\n\t\tbaseUrl: 'https://dashscope-intl.aliyuncs.com/compatible-mode'\n\t});\nexport const deepseek = (config: { apiKey: string }) =>\n\topenaiCompatible({\n\t\tapiKey: config.apiKey,\n\t\tbaseUrl: 'https://api.deepseek.com'\n\t});\nexport const google = (config: { apiKey: string }) =>\n\topenaiCompatible({\n\t\tapiKey: config.apiKey,\n\t\tbaseUrl: 'https://generativelanguage.googleapis.com/v1beta/openai'\n\t});\nexport const meta = (config: { apiKey: string }) =>\n\topenaiCompatible({\n\t\tapiKey: config.apiKey,\n\t\tbaseUrl: 'https://api.llama.com/compat/v1'\n\t});\nexport const mistralai = (config: { apiKey: string }) =>\n\topenaiCompatible({\n\t\tapiKey: config.apiKey,\n\t\tbaseUrl: 'https://api.mistral.ai'\n\t});\nexport const moonshot = (config: { apiKey: string }) =>\n\topenaiCompatible({\n\t\tapiKey: config.apiKey,\n\t\tbaseUrl: 'https://api.moonshot.ai'\n\t});\nexport const openaiCompatible = (config: { apiKey: string; baseUrl: string }) =>\n\topenai({ apiKey: config.apiKey, baseUrl: config.baseUrl });\nexport const xai = (config: { apiKey: string }) =>\n\topenaiCompatible({\n\t\tapiKey: config.apiKey,\n\t\tbaseUrl: 'https://api.x.ai'\n\t});\n",
13
13
  "import type {\n\tAIProviderConfig,\n\tAIProviderContentBlock,\n\tAIProviderMessage,\n\tAIProviderStreamParams,\n\tAIProviderToolDefinition,\n\tAIUsage\n} from '../../../types/ai';\n\ntype OpenAIResponsesConfig = {\n\tapiKey: string;\n\tbaseUrl?: string;\n\timageModels?: Set<string> | string[];\n};\n\ntype PendingFunctionCall = {\n\tcallId: string;\n\tname: string;\n\targuments: string;\n};\n\ntype StreamState = {\n\tbuffer: string;\n\tcurrentEvent: string;\n\tpendingCalls: Map<string, PendingFunctionCall>;\n\tusage: AIUsage | undefined;\n};\n\nconst DEFAULT_BASE_URL = 'https://api.openai.com';\nconst EVENT_PREFIX_LENGTH = 7;\nconst DATA_PREFIX_LENGTH = 6;\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null;\n\nconst isRecordArray = (\n\tvalue: unknown\n): value is Array<Record<string, unknown>> =>\n\tArray.isArray(value) && value.length > 0 && isRecord(value[0]);\n\n/* ─── Message conversion ─── */\n\nconst mapBlockToResponsesFormat = (block: AIProviderContentBlock) => {\n\tif (block.type === 'text') {\n\t\treturn { text: block.content, type: 'input_text' };\n\t}\n\n\tif (block.type === 'image') {\n\t\treturn {\n\t\t\timage_url: {\n\t\t\t\turl: `data:${block.source.media_type};base64,${block.source.data}`\n\t\t\t},\n\t\t\ttype: 'input_image'\n\t\t};\n\t}\n\n\tif (block.type === 'document') {\n\t\treturn {\n\t\t\tfile: {\n\t\t\t\tfile_data: `data:${block.source.media_type};base64,${block.source.data}`,\n\t\t\t\tfilename: block.name ?? 'document.pdf'\n\t\t\t},\n\t\t\ttype: 'input_file'\n\t\t};\n\t}\n\n\treturn null;\n};\n\nconst mapContentToResponsesFormat = (\n\tcontent: string | AIProviderContentBlock[]\n) => {\n\tif (typeof content === 'string') {\n\t\treturn content;\n\t}\n\n\tconst parts = content\n\t\t.map(mapBlockToResponsesFormat)\n\t\t.filter((mapped) => mapped !== null);\n\n\treturn parts.length > 0 ? parts : '';\n};\n\nconst hasToolBlocks = (content: AIProviderContentBlock[]) =>\n\tcontent.some(\n\t\t(block) => block.type === 'tool_use' || block.type === 'tool_result'\n\t);\n\nconst convertToolBlock = (block: AIProviderContentBlock) => {\n\tif (block.type === 'tool_use') {\n\t\treturn {\n\t\t\targuments:\n\t\t\t\ttypeof block.input === 'string'\n\t\t\t\t\t? block.input\n\t\t\t\t\t: JSON.stringify(block.input),\n\t\t\tcall_id: block.id,\n\t\t\tname: block.name,\n\t\t\ttype: 'function_call'\n\t\t};\n\t}\n\n\tif (block.type === 'tool_result') {\n\t\treturn {\n\t\t\tcall_id: block.tool_use_id,\n\t\t\toutput: typeof block.content === 'string' ? block.content : '',\n\t\t\ttype: 'function_call_output'\n\t\t};\n\t}\n\n\treturn null;\n};\n\nconst convertToolBlocks = (content: AIProviderContentBlock[]) =>\n\tcontent.map(convertToolBlock).filter((converted) => converted !== null);\n\nconst convertMessage = (msg: AIProviderMessage) => {\n\tif (\n\t\ttypeof msg.content !== 'string' &&\n\t\tArray.isArray(msg.content) &&\n\t\thasToolBlocks(msg.content)\n\t) {\n\t\treturn convertToolBlocks(msg.content);\n\t}\n\n\tconst content = mapContentToResponsesFormat(msg.content);\n\n\treturn [\n\t\t{\n\t\t\tcontent,\n\t\t\trole: msg.role === 'system' ? 'developer' : msg.role,\n\t\t\ttype: 'message'\n\t\t}\n\t];\n};\n\nconst buildInput = (messages: AIProviderMessage[]) => {\n\tconst input: Array<Record<string, unknown>> = [];\n\n\tfor (const msg of messages) {\n\t\tinput.push(...convertMessage(msg));\n\t}\n\n\treturn input;\n};\n\nconst mapToolDefinition = (tool: AIProviderToolDefinition) => ({\n\tdescription: tool.description,\n\tname: tool.name,\n\tparameters: tool.input_schema,\n\ttype: 'function'\n});\n\nconst buildTools = (\n\ttools: AIProviderToolDefinition[] | undefined,\n\tisImageModel: boolean\n) => {\n\tconst mapped = tools ? tools.map(mapToolDefinition) : [];\n\tconst result: Array<Record<string, unknown>> = [...mapped];\n\n\tif (isImageModel) {\n\t\tresult.push({ type: 'image_generation' });\n\t}\n\n\treturn result.length > 0 ? result : undefined;\n};\n\nconst buildRequestBody = (\n\tparams: AIProviderStreamParams,\n\tisImageModel: boolean\n) => {\n\tconst body: Record<string, unknown> = {\n\t\tinput: buildInput(params.messages),\n\t\tmodel: params.model,\n\t\tstream: true\n\t};\n\n\tif (params.systemPrompt) {\n\t\tbody.instructions = params.systemPrompt;\n\t}\n\n\tconst tools = buildTools(params.tools, isImageModel);\n\n\tif (tools) {\n\t\tbody.tools = tools;\n\t}\n\n\t// Enable reasoning summary for models that support thinking/reasoning\n\tif (params.thinking) {\n\t\tbody.reasoning = {\n\t\t\teffort: 'high',\n\t\t\tsummary: 'auto'\n\t\t};\n\t}\n\n\treturn body;\n};\n\n/* ─── SSE parsing ─── */\n\nconst parseJSON = (data: string) => {\n\ttry {\n\t\treturn JSON.parse(data);\n\t} catch {\n\t\treturn null;\n\t}\n};\n\nconst parseToolInput = (rawArguments: string) => {\n\ttry {\n\t\treturn JSON.parse(rawArguments);\n\t} catch {\n\t\treturn rawArguments;\n\t}\n};\n\nconst extractUsage = (response: Record<string, unknown>) => {\n\tif (!isRecord(response.usage)) {\n\t\treturn undefined;\n\t}\n\n\tconst { usage } = response;\n\n\treturn {\n\t\tinputTokens:\n\t\t\ttypeof usage.input_tokens === 'number' ? usage.input_tokens : 0,\n\t\toutputTokens:\n\t\t\ttypeof usage.output_tokens === 'number' ? usage.output_tokens : 0\n\t};\n};\n\nconst extractMimeFormat = (mimeType: unknown) => {\n\tif (typeof mimeType !== 'string') {\n\t\treturn 'png';\n\t}\n\n\tif (mimeType.includes('jpeg')) return 'jpeg';\n\tif (mimeType.includes('webp')) return 'webp';\n\n\treturn 'png';\n};\n\nconst processTextDelta = function* (parsed: Record<string, unknown>) {\n\tif (typeof parsed.delta === 'string') {\n\t\tyield { content: parsed.delta, type: 'text' as const };\n\t}\n};\n\nconst processPartialImage = function* (parsed: Record<string, unknown>) {\n\tconst itemId =\n\t\ttypeof parsed.item_id === 'string' ? parsed.item_id : undefined;\n\tconst b64 =\n\t\ttypeof parsed.partial_image_b64 === 'string'\n\t\t\t? parsed.partial_image_b64\n\t\t\t: undefined;\n\n\tif (b64) {\n\t\tyield {\n\t\t\tdata: b64,\n\t\t\tformat: 'png',\n\t\t\timageId: itemId,\n\t\t\tisPartial: true,\n\t\t\ttype: 'image' as const\n\t\t};\n\t}\n};\n\nconst processFunctionCallArgumentsDelta = (\n\tparsed: Record<string, unknown>,\n\tpendingCalls: Map<string, PendingFunctionCall>\n) => {\n\tconst itemId = typeof parsed.item_id === 'string' ? parsed.item_id : '';\n\tconst callId = typeof parsed.call_id === 'string' ? parsed.call_id : '';\n\tconst delta =\n\t\ttypeof parsed.arguments_delta === 'string'\n\t\t\t? parsed.arguments_delta\n\t\t\t: '';\n\n\tconst existing = pendingCalls.get(itemId);\n\n\tif (existing) {\n\t\texisting.arguments += delta;\n\t} else {\n\t\tpendingCalls.set(itemId, {\n\t\t\targuments: delta,\n\t\t\tcallId,\n\t\t\tname: ''\n\t\t});\n\t}\n};\n\nconst processFunctionCallArgumentsDone = function* (\n\tparsed: Record<string, unknown>,\n\tpendingCalls: Map<string, PendingFunctionCall>\n) {\n\tconst itemId = typeof parsed.item_id === 'string' ? parsed.item_id : '';\n\tconst callId = typeof parsed.call_id === 'string' ? parsed.call_id : '';\n\tconst fullArgs =\n\t\ttypeof parsed.arguments === 'string' ? parsed.arguments : '';\n\n\tconst pending = pendingCalls.get(itemId);\n\tconst name = pending?.name ?? '';\n\tconst args = fullArgs || pending?.arguments || '';\n\n\tpendingCalls.delete(itemId);\n\n\tyield {\n\t\tid: callId || pending?.callId || itemId,\n\t\tinput: parseToolInput(args),\n\t\tname,\n\t\ttype: 'tool_use' as const\n\t};\n};\n\nconst processOutputItemAdded = (\n\tparsed: Record<string, unknown>,\n\tpendingCalls: Map<string, PendingFunctionCall>\n) => {\n\tif (!isRecord(parsed.item)) {\n\t\treturn;\n\t}\n\n\tconst { item } = parsed;\n\tconst itemId = typeof item.id === 'string' ? item.id : '';\n\tconst itemType = typeof item.type === 'string' ? item.type : '';\n\n\tif (itemType !== 'function_call') {\n\t\treturn;\n\t}\n\n\tconst callId = typeof item.call_id === 'string' ? item.call_id : '';\n\tconst name = typeof item.name === 'string' ? item.name : '';\n\n\tpendingCalls.set(itemId, {\n\t\targuments: '',\n\t\tcallId,\n\t\tname\n\t});\n};\n\nconst isCompletedImageGeneration = (item: Record<string, unknown>) =>\n\titem.type === 'image_generation_call' &&\n\titem.status === 'completed' &&\n\ttypeof item.result === 'string' &&\n\titem.result !== '';\n\nconst buildImageChunk = (item: Record<string, unknown>) => ({\n\tdata: typeof item.result === 'string' ? item.result : '',\n\tformat: extractMimeFormat(item.output_format),\n\timageId: typeof item.id === 'string' ? item.id : undefined,\n\tisPartial: false,\n\trevisedPrompt:\n\t\ttypeof item.revised_prompt === 'string'\n\t\t\t? item.revised_prompt\n\t\t\t: undefined,\n\ttype: 'image' as const\n});\n\nconst extractImageFromOutput = function* (\n\toutput: Array<Record<string, unknown>>\n) {\n\tconst completedImages = output.filter(isCompletedImageGeneration);\n\n\tfor (const item of completedImages) {\n\t\tyield buildImageChunk(item);\n\t}\n};\n\nconst processCompleted = function* (parsed: Record<string, unknown>) {\n\tif (!isRecord(parsed.response)) {\n\t\tyield { type: 'done' as const, usage: undefined };\n\n\t\treturn;\n\t}\n\n\tconst { response } = parsed;\n\tconst usage = extractUsage(response);\n\n\tif (isRecordArray(response.output)) {\n\t\tyield* extractImageFromOutput(response.output);\n\t}\n\n\tyield { type: 'done' as const, usage };\n};\n\nconst processSSEEvent = function* (\n\teventType: string,\n\tparsed: Record<string, unknown>,\n\tpendingCalls: Map<string, PendingFunctionCall>\n) {\n\tswitch (eventType) {\n\t\tcase 'response.reasoning_summary_text.delta': {\n\t\t\tconst delta = typeof parsed.delta === 'string' ? parsed.delta : '';\n\t\t\tif (!delta) break;\n\n\t\t\tyield {\n\t\t\t\tcontent: delta,\n\t\t\t\ttype: 'thinking' as const\n\t\t\t};\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase 'response.output_text.delta':\n\t\t\tyield* processTextDelta(parsed);\n\t\t\tbreak;\n\n\t\tcase 'response.image_generation_call.partial_image':\n\t\t\tyield* processPartialImage(parsed);\n\t\t\tbreak;\n\n\t\tcase 'response.output_item.added':\n\t\t\tprocessOutputItemAdded(parsed, pendingCalls);\n\t\t\tbreak;\n\n\t\tcase 'response.function_call_arguments.delta':\n\t\t\tprocessFunctionCallArgumentsDelta(parsed, pendingCalls);\n\t\t\tbreak;\n\n\t\tcase 'response.function_call_arguments.done':\n\t\t\tyield* processFunctionCallArgumentsDone(parsed, pendingCalls);\n\t\t\tbreak;\n\n\t\tcase 'response.completed':\n\t\t\tyield* processCompleted(parsed);\n\t\t\tbreak;\n\n\t\tcase 'response.failed':\n\t\tcase 'response.incomplete': {\n\t\t\tconst respObj = isRecord(parsed.response)\n\t\t\t\t? parsed.response\n\t\t\t\t: parsed;\n\t\t\tconst errMsg =\n\t\t\t\tisRecord(respObj.error) &&\n\t\t\t\ttypeof respObj.error.message === 'string'\n\t\t\t\t\t? respObj.error.message\n\t\t\t\t\t: `OpenAI Responses API: ${eventType}`;\n\t\t\tthrow new Error(errMsg);\n\t\t}\n\t}\n};\n\nconst flushSSEBuffer = function* (state: StreamState) {\n\tif (!state.currentEvent || !state.buffer) {\n\t\treturn;\n\t}\n\n\tconst parsed = parseJSON(state.buffer);\n\n\tif (parsed) {\n\t\tyield* processSSEEvent(state.currentEvent, parsed, state.pendingCalls);\n\t}\n\n\tstate.currentEvent = '';\n\tstate.buffer = '';\n};\n\nconst parseSSELine = (trimmed: string, state: StreamState) => {\n\tif (trimmed.startsWith('event: ')) {\n\t\tstate.currentEvent = trimmed.slice(EVENT_PREFIX_LENGTH);\n\t} else if (trimmed.startsWith('data: ')) {\n\t\tstate.buffer = trimmed.slice(DATA_PREFIX_LENGTH);\n\t}\n};\n\nconst processSSELine = function* (line: string, state: StreamState) {\n\tconst trimmed = line.trim();\n\n\tif (trimmed) {\n\t\tparseSSELine(trimmed, state);\n\n\t\treturn;\n\t}\n\n\tyield* flushSSEBuffer(state);\n};\n\nconst processSSELines = function* (lines: string[], state: StreamState) {\n\tfor (const line of lines) {\n\t\tyield* processSSELine(line, state);\n\t}\n};\n\nconst drainReader = async function* (\n\treader: ReadableStreamDefaultReader<Uint8Array>,\n\tdecoder: TextDecoder,\n\tstate: StreamState,\n\tsignal?: AbortSignal\n) {\n\tlet textBuffer = '';\n\n\tfor (\n\t\tlet result = await reader.read();\n\t\t!result.done && !signal?.aborted;\n\t\t// eslint-disable-next-line no-await-in-loop\n\t\tresult = await reader.read()\n\t) {\n\t\ttextBuffer += decoder.decode(result.value, { stream: true });\n\t\tconst lines = textBuffer.split('\\n');\n\t\ttextBuffer = lines.pop() ?? '';\n\n\t\tyield* processSSELines(lines, state);\n\t}\n\n\tif (textBuffer.trim()) {\n\t\tyield* processSSELines([textBuffer, ''], state);\n\t}\n};\n\nconst parseSSEStream = async function* (\n\tbody: ReadableStream<Uint8Array>,\n\tsignal?: AbortSignal\n) {\n\tconst reader = body.getReader();\n\tconst decoder = new TextDecoder();\n\tconst state: StreamState = {\n\t\tbuffer: '',\n\t\tcurrentEvent: '',\n\t\tpendingCalls: new Map(),\n\t\tusage: undefined\n\t};\n\n\ttry {\n\t\tyield* drainReader(reader, decoder, state, signal);\n\t} finally {\n\t\treader.releaseLock();\n\t}\n};\n\nconst fetchResponsesStream = async function* (\n\tbaseUrl: string,\n\tapiKey: string,\n\tbody: Record<string, unknown>,\n\tsignal?: AbortSignal\n) {\n\tconst response = await fetch(`${baseUrl}/v1/responses`, {\n\t\tbody: JSON.stringify(body),\n\t\theaders: {\n\t\t\tAuthorization: `Bearer ${apiKey}`,\n\t\t\t'Content-Type': 'application/json'\n\t\t},\n\t\tmethod: 'POST',\n\t\tsignal\n\t});\n\n\tif (!response.ok) {\n\t\tconst errorText = await response.text();\n\t\tthrow new Error(\n\t\t\t`OpenAI Responses API error ${response.status}: ${errorText}`\n\t\t);\n\t}\n\n\tif (!response.body) {\n\t\tthrow new Error('OpenAI Responses API returned no response body');\n\t}\n\n\tyield* parseSSEStream(response.body, signal);\n};\n\nconst resolveImageModels = (\n\timageModels: Set<string> | string[] | undefined\n) => {\n\tif (!imageModels) {\n\t\treturn new Set<string>();\n\t}\n\n\tif (imageModels instanceof Set) {\n\t\treturn imageModels;\n\t}\n\n\treturn new Set(imageModels);\n};\n\nexport const openaiResponses = (config: OpenAIResponsesConfig) => {\n\tconst baseUrl = config.baseUrl ?? DEFAULT_BASE_URL;\n\tconst imageModels = resolveImageModels(config.imageModels);\n\n\treturn {\n\t\tstream: (params: AIProviderStreamParams) => {\n\t\t\tconst isImageModel = imageModels.has(params.model);\n\t\t\tconst body = buildRequestBody(params, isImageModel);\n\n\t\t\treturn fetchResponsesStream(\n\t\t\t\tbaseUrl,\n\t\t\t\tconfig.apiKey,\n\t\t\t\tbody,\n\t\t\t\tparams.signal\n\t\t\t);\n\t\t}\n\t} satisfies AIProviderConfig;\n};\n",
@@ -23,8 +23,8 @@
23
23
  "import type {\n\tRAGQueryResult,\n\tRAGReranker,\n\tRAGRerankerInput,\n\tRAGRerankerProvider,\n\tRAGRerankerProviderLike\n} from '../../../types/ai';\n\nexport type CreateRAGRerankerOptions = {\n\trerank: RAGReranker;\n\tdefaultModel?: string;\n\tproviderName?: string;\n};\n\nexport type HeuristicRAGRerankerOptions = {\n\tdefaultModel?: string;\n\tproviderName?: string;\n};\n\nconst tokenize = (value: string) =>\n\tvalue\n\t\t.toLowerCase()\n\t\t.split(/[^a-z0-9]+/i)\n\t\t.map((token) => token.trim())\n\t\t.filter((token) => !STOP_WORDS.has(token))\n\t\t.map((token) =>\n\t\t\ttoken.endsWith('ies') && token.length > 3\n\t\t\t\t? `${token.slice(0, -3)}y`\n\t\t\t\t: token.endsWith('ing') && token.length > 5\n\t\t\t\t\t? token.slice(0, -3)\n\t\t\t\t\t: token.endsWith('ed') && token.length > 4\n\t\t\t\t\t\t? token.slice(0, -2)\n\t\t\t\t\t\t: token.endsWith('es') && token.length > 4\n\t\t\t\t\t\t\t? token.slice(0, -2)\n\t\t\t\t\t\t\t: token.endsWith('s') && token.length > 3\n\t\t\t\t\t\t\t\t? token.slice(0, -1)\n\t\t\t\t\t\t\t\t: token\n\t\t)\n\t\t.map((token) =>\n\t\t\ttoken.endsWith('ck') && token.length > 4\n\t\t\t\t? token.slice(0, -1)\n\t\t\t\t: token\n\t\t)\n\t\t.map((token) =>\n\t\t\ttoken.endsWith('ay') && token.length > 4\n\t\t\t\t? `${token.slice(0, -2)}i`\n\t\t\t\t: token\n\t\t)\n\t\t.filter((token) => token.length > 1);\n\nconst STOP_WORDS = new Set([\n\t'a',\n\t'an',\n\t'and',\n\t'are',\n\t'as',\n\t'at',\n\t'be',\n\t'by',\n\t'does',\n\t'every',\n\t'explain',\n\t'explains',\n\t'for',\n\t'how',\n\t'in',\n\t'is',\n\t'it',\n\t'of',\n\t'on',\n\t'or',\n\t'say',\n\t'says',\n\t'should',\n\t'stay',\n\t'the',\n\t'this',\n\t'to',\n\t'track',\n\t'what',\n\t'which',\n\t'why'\n]);\n\nconst collectMetadataStrings = (value: unknown): string[] => {\n\tif (typeof value === 'string' || typeof value === 'number') {\n\t\treturn [String(value)];\n\t}\n\tif (Array.isArray(value)) {\n\t\treturn value.flatMap((entry) => collectMetadataStrings(entry));\n\t}\n\tif (value && typeof value === 'object') {\n\t\treturn Object.values(value).flatMap((entry) =>\n\t\t\tcollectMetadataStrings(entry)\n\t\t);\n\t}\n\n\treturn [];\n};\n\nconst normalizeLooseText = (value: string) =>\n\tvalue\n\t\t.toLowerCase()\n\t\t.replace(/[^a-z0-9]+/g, ' ')\n\t\t.trim()\n\t\t.replace(/\\s+/g, ' ');\n\nconst scoreLoosePhraseMatch = (query: string, text: string) => {\n\tconst normalizedQuery = normalizeLooseText(query);\n\tconst normalizedText = normalizeLooseText(text);\n\tif (normalizedQuery.length === 0 || normalizedText.length === 0) {\n\t\treturn 0;\n\t}\n\n\tif (normalizedText.includes(normalizedQuery)) {\n\t\treturn 1;\n\t}\n\n\tconst words = normalizedQuery.split(' ').filter(Boolean);\n\tfor (let size = Math.min(5, words.length); size >= 2; size -= 1) {\n\t\tfor (let index = 0; index <= words.length - size; index += 1) {\n\t\t\tconst phraseWords = words.slice(index, index + size);\n\t\t\tif (phraseWords.every((word) => STOP_WORDS.has(word))) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst phrase = phraseWords.join(' ');\n\t\t\tif (normalizedText.includes(phrase)) {\n\t\t\t\treturn Math.min(1, size / 4);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn 0;\n};\n\nconst scoreHeuristicMatch = ({\n\tquery,\n\tqueryTokens,\n\tresult\n}: {\n\tquery: string;\n\tqueryTokens: string[];\n\tresult: RAGQueryResult;\n}) => {\n\tif (queryTokens.length === 0) {\n\t\treturn result.score;\n\t}\n\n\tconst metadataValues = collectMetadataStrings(result.metadata);\n\tconst haystack = tokenize(\n\t\t[result.title, result.source, result.chunkText, ...metadataValues]\n\t\t\t.filter(Boolean)\n\t\t\t.join(' ')\n\t);\n\tconst haystackSet = new Set(haystack);\n\tconst overlap = queryTokens.filter((token) =>\n\t\thaystackSet.has(token)\n\t).length;\n\tconst overlapBoost = overlap / queryTokens.length;\n\tconst exactPhraseBoost = Math.max(\n\t\tnormalizeText(\n\t\t\t[result.title, result.source, result.chunkText, ...metadataValues]\n\t\t\t\t.filter(Boolean)\n\t\t\t\t.join(' ')\n\t\t).includes(queryTokens.join(' '))\n\t\t\t? 1\n\t\t\t: 0,\n\t\tscoreLoosePhraseMatch(\n\t\t\tquery,\n\t\t\t[result.title, result.source, result.chunkText, ...metadataValues]\n\t\t\t\t.filter(Boolean)\n\t\t\t\t.join(' ')\n\t\t)\n\t);\n\tconst sourcePathBoost =\n\t\ttypeof result.source === 'string' &&\n\t\tqueryTokens.some((token) =>\n\t\t\tresult.source?.toLowerCase().includes(token)\n\t\t)\n\t\t\t? 0.5\n\t\t\t: 0;\n\tconst metadataBoost =\n\t\tmetadataValues.length > 0\n\t\t\t? queryTokens.filter((token) =>\n\t\t\t\t\tmetadataValues.some((value) =>\n\t\t\t\t\t\tvalue.toLowerCase().includes(token)\n\t\t\t\t\t)\n\t\t\t\t).length / queryTokens.length\n\t\t\t: 0;\n\n\treturn (\n\t\tresult.score +\n\t\toverlapBoost +\n\t\texactPhraseBoost +\n\t\tsourcePathBoost +\n\t\tmetadataBoost\n\t);\n};\n\nconst normalizeText = (value: string) => tokenize(value).join(' ');\n\nexport const applyRAGReranking = async ({\n\tinput,\n\treranker\n}: {\n\tinput: RAGRerankerInput;\n\treranker?: RAGRerankerProviderLike;\n}) => {\n\tconst resolved = resolveRAGReranker(reranker);\n\tif (!resolved) {\n\t\treturn input.results;\n\t}\n\n\tconst effectiveModel = input.model ?? resolved.defaultModel;\n\n\treturn Promise.resolve(\n\t\tresolved.rerank({\n\t\t\t...input,\n\t\t\tmodel: effectiveModel\n\t\t})\n\t);\n};\nexport const createHeuristicRAGReranker = (\n\toptions: HeuristicRAGRerankerOptions = {}\n) =>\n\tcreateRAGReranker({\n\t\tdefaultModel: options.defaultModel ?? 'absolute-heuristic-reranker',\n\t\tproviderName: options.providerName ?? 'absolute_heuristic',\n\t\trerank: ({ query, results }) => {\n\t\t\tconst queryTokens = tokenize(query);\n\n\t\t\treturn [...results]\n\t\t\t\t.map((result, index) => ({\n\t\t\t\t\tindex,\n\t\t\t\t\tresult,\n\t\t\t\t\tscore: scoreHeuristicMatch({\n\t\t\t\t\t\tquery,\n\t\t\t\t\t\tqueryTokens,\n\t\t\t\t\t\tresult\n\t\t\t\t\t})\n\t\t\t\t}))\n\t\t\t\t.sort((left, right) => {\n\t\t\t\t\tif (right.score !== left.score) {\n\t\t\t\t\t\treturn right.score - left.score;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn left.index - right.index;\n\t\t\t\t})\n\t\t\t\t.map(({ result, score }) => ({\n\t\t\t\t\t...result,\n\t\t\t\t\tscore\n\t\t\t\t}));\n\t\t}\n\t});\nexport const createRAGReranker = (\n\toptions: CreateRAGRerankerOptions\n): RAGRerankerProvider => ({\n\tdefaultModel: options.defaultModel,\n\tproviderName: options.providerName,\n\trerank: options.rerank\n});\nexport const resolveRAGReranker = (\n\treranker: RAGRerankerProviderLike | undefined\n) => {\n\tif (!reranker) {\n\t\treturn null;\n\t}\n\n\tif (typeof reranker === 'function') {\n\t\treturn {\n\t\t\tdefaultModel: undefined,\n\t\t\tproviderName: undefined,\n\t\t\trerank: reranker\n\t\t} satisfies RAGRerankerProvider;\n\t}\n\n\treturn reranker;\n};\n",
24
24
  "import type {\n\tRAGEmbeddingFunction,\n\tRAGEmbeddingInput,\n\tRAGEmbeddingProvider,\n\tRAGEmbeddingProviderLike\n} from '../../../types/ai';\n\nexport type CreateRAGEmbeddingProviderOptions = {\n\tembed: RAGEmbeddingFunction;\n\tdimensions?: number;\n\tdefaultModel?: string;\n};\n\nconst isEmbeddingProvider = (\n\tvalue: RAGEmbeddingProviderLike | undefined\n): value is RAGEmbeddingProvider =>\n\ttypeof value === 'object' &&\n\tvalue !== null &&\n\ttypeof value.embed === 'function';\n\nexport const createRAGEmbeddingProvider = (\n\toptions: CreateRAGEmbeddingProviderOptions\n): RAGEmbeddingProvider => options;\n\nexport const resolveRAGEmbeddingProvider = (\n\tproviderLike: RAGEmbeddingProviderLike | undefined,\n\tfallbackEmbed?: RAGEmbeddingFunction,\n\tdefaultModel?: string\n): RAGEmbeddingProvider => {\n\tconst provider = isEmbeddingProvider(providerLike)\n\t\t? providerLike\n\t\t: typeof providerLike === 'function'\n\t\t\t? { embed: providerLike }\n\t\t\t: fallbackEmbed\n\t\t\t\t? { embed: fallbackEmbed }\n\t\t\t\t: null;\n\n\tif (!provider) {\n\t\tthrow new Error(\n\t\t\t'No RAG embedding provider is configured. Pass collection.embedding or use a store that provides embed().'\n\t\t);\n\t}\n\n\tconst resolvedDefaultModel = provider.defaultModel ?? defaultModel;\n\n\treturn {\n\t\tdefaultModel: resolvedDefaultModel,\n\t\tdimensions: provider.dimensions,\n\t\tembed: (input: RAGEmbeddingInput) =>\n\t\t\tprovider.embed({\n\t\t\t\t...input,\n\t\t\t\tmodel: input.model ?? resolvedDefaultModel\n\t\t\t})\n\t};\n};\n\nexport const validateRAGEmbeddingDimensions = (\n\tvector: number[],\n\texpectedDimensions: number | undefined,\n\tcontext: 'query' | 'chunk'\n) => {\n\tif (\n\t\ttypeof expectedDimensions === 'number' &&\n\t\tvector.length !== expectedDimensions\n\t) {\n\t\tthrow new Error(\n\t\t\t`RAG ${context} embedding dimension mismatch. Expected ${expectedDimensions}, received ${vector.length}.`\n\t\t);\n\t}\n};\n",
25
25
  "import { readdir, readFile } from 'node:fs/promises';\nimport { basename, extname, join, relative, resolve } from 'node:path';\nimport { gunzipSync, inflateRawSync } from 'node:zlib';\nimport type {\n\tRAGChunkingOptions,\n\tRAGContentFormat,\n\tRAGArchiveExpander,\n\tRAGArchiveEntry,\n\tRAGDirectoryIngestInput,\n\tRAGDocumentChunk,\n\tRAGDocumentFileInput,\n\tRAGDocumentIngestInput,\n\tRAGDocumentUploadIngestInput,\n\tRAGDocumentUploadInput,\n\tRAGDocumentUrlInput,\n\tRAGDocumentUrlIngestInput,\n\tRAGExtractedFileDocument,\n\tRAGFileExtractionInput,\n\tRAGFileExtractor,\n\tRAGIngestDocument,\n\tRAGMediaTranscriber,\n\tRAGOCRResult,\n\tRAGPDFOCRExtractorOptions,\n\tRAGOCRProvider,\n\tRAGPreparedDocument\n} from '../../../types/ai';\nimport {\n\tEXCLUDE_LAST_OFFSET,\n\tRAG_CHUNK_ID_PAD_LENGTH,\n\tRAG_DOCUMENT_ID_PREVIEW_LENGTH,\n\tRAG_DOCUMENT_SLUG_MAX_LENGTH,\n\tRAG_MIN_CHUNK_LENGTH_FLOOR\n} from '../../constants';\n\nconst DEFAULT_MAX_CHUNK_LENGTH = 900;\nconst DEFAULT_CHUNK_OVERLAP = 120;\nconst DEFAULT_MIN_CHUNK_LENGTH = 80;\nconst DEFAULT_STRATEGY = 'paragraphs';\nconst DEFAULT_BINARY_NAME = 'document';\n\nconst TEXT_FILE_EXTENSIONS = new Set([\n\t'.txt',\n\t'.md',\n\t'.mdx',\n\t'.html',\n\t'.htm',\n\t'.json',\n\t'.csv',\n\t'.xml',\n\t'.yaml',\n\t'.yml',\n\t'.log',\n\t'.ts',\n\t'.tsx',\n\t'.js',\n\t'.jsx'\n]);\nconst OFFICE_FILE_EXTENSIONS = new Set([\n\t'.docx',\n\t'.xlsx',\n\t'.pptx',\n\t'.odt',\n\t'.ods',\n\t'.odp'\n]);\nconst LEGACY_DOCUMENT_FILE_EXTENSIONS = new Set([\n\t'.rtf',\n\t'.doc',\n\t'.xls',\n\t'.ppt',\n\t'.msg'\n]);\nconst EMAIL_FILE_EXTENSIONS = new Set(['.eml']);\nconst EPUB_FILE_EXTENSIONS = new Set(['.epub']);\n\nconst PDF_FILE_EXTENSIONS = new Set(['.pdf']);\nconst AUDIO_FILE_EXTENSIONS = new Set([\n\t'.mp3',\n\t'.wav',\n\t'.m4a',\n\t'.aac',\n\t'.flac',\n\t'.ogg',\n\t'.opus'\n]);\nconst VIDEO_FILE_EXTENSIONS = new Set([\n\t'.mp4',\n\t'.mov',\n\t'.mkv',\n\t'.webm',\n\t'.avi',\n\t'.m4v'\n]);\nconst IMAGE_FILE_EXTENSIONS = new Set([\n\t'.png',\n\t'.jpg',\n\t'.jpeg',\n\t'.webp',\n\t'.tiff',\n\t'.tif',\n\t'.bmp',\n\t'.gif',\n\t'.heic'\n]);\nconst ARCHIVE_FILE_EXTENSIONS = new Set([\n\t'.zip',\n\t'.tar',\n\t'.gz',\n\t'.tgz',\n\t'.bz2',\n\t'.xz'\n]);\nconst TAR_FILE_EXTENSIONS = new Set(['.tar']);\nconst GZIP_FILE_EXTENSIONS = new Set(['.gz', '.tgz']);\n\nconst HTML_ENTITY_REPLACEMENTS = [\n\t[/&nbsp;/gi, ' '],\n\t[/&amp;/gi, '&'],\n\t[/&lt;/gi, '<'],\n\t[/&gt;/gi, '>'],\n\t[/&quot;/gi, '\"'],\n\t[/&#39;/gi, \"'\"],\n\t[/&#x27;/gi, \"'\"],\n\t[/&#x2f;/gi, '/']\n] as const;\n\nconst normalizeWhitespace = (value: string) =>\n\tvalue\n\t\t.replace(/\\r\\n?/g, '\\n')\n\t\t.replace(/[ \\t\\f\\v]+/g, ' ')\n\t\t.replace(/ *\\n */g, '\\n')\n\t\t.replace(/\\n{3,}/g, '\\n\\n')\n\t\t.trim();\n\nconst formatMediaTimestampForIngest = (value: number | undefined) => {\n\tif (typeof value !== 'number' || !Number.isFinite(value) || value < 0) {\n\t\treturn undefined;\n\t}\n\n\tconst totalSeconds = Math.floor(value / 1000);\n\tconst minutes = Math.floor(totalSeconds / 60);\n\tconst seconds = totalSeconds % 60;\n\tconst milliseconds = Math.floor(value % 1000);\n\n\treturn `${String(minutes).padStart(2, '0')}:${String(seconds).padStart(\n\t\t2,\n\t\t'0'\n\t)}.${String(milliseconds).padStart(3, '0')}`;\n};\n\nconst decodeHtmlEntities = (value: string) => {\n\tlet output = value;\n\tfor (const [pattern, replacement] of HTML_ENTITY_REPLACEMENTS) {\n\t\toutput = output.replace(pattern, replacement);\n\t}\n\n\toutput = output.replace(/&#(\\d+);/g, (_, code) =>\n\t\tString.fromCodePoint(Number(code))\n\t);\n\n\treturn output.replace(/&#x([0-9a-f]+);/gi, (_, code) =>\n\t\tString.fromCodePoint(parseInt(code, 16))\n\t);\n};\n\nconst formatHtmlLinkContext = (href: string) => {\n\tconst decoded = decodeHtmlEntities(href.trim());\n\tif (!decoded) {\n\t\treturn undefined;\n\t}\n\n\tif (decoded.startsWith('#')) {\n\t\treturn decoded;\n\t}\n\n\tif (/^[a-z]+:/i.test(decoded)) {\n\t\ttry {\n\t\t\tconst url = new URL(decoded);\n\t\t\tconst path = url.pathname === '/' ? '' : url.pathname;\n\t\t\treturn `${url.hostname}${path}`;\n\t\t} catch {\n\t\t\treturn decoded;\n\t\t}\n\t}\n\n\treturn decoded;\n};\n\nconst stripHtmlTags = (value: string) => {\n\tconst withoutTags = value\n\t\t.replace(/<script\\b[^>]*>[\\s\\S]*?<\\/script>/gi, ' ')\n\t\t.replace(/<style\\b[^>]*>[\\s\\S]*?<\\/style>/gi, ' ')\n\t\t.replace(\n\t\t\t/<a\\b[^>]*href=(['\"])(.*?)\\1[^>]*>([\\s\\S]*?)<\\/a>/gi,\n\t\t\t(_match, _quote: string, href: string, inner: string) => {\n\t\t\t\tconst label = normalizeWhitespace(stripHtmlTags(inner));\n\t\t\t\tconst context = formatHtmlLinkContext(href);\n\t\t\t\tif (!label) {\n\t\t\t\t\treturn context ?? ' ';\n\t\t\t\t}\n\t\t\t\tif (!context || context === label) {\n\t\t\t\t\treturn label;\n\t\t\t\t}\n\n\t\t\t\treturn `${label} (${context})`;\n\t\t\t}\n\t\t)\n\t\t.replace(/<br\\s*\\/?>/gi, '\\n')\n\t\t.replace(/<\\/(p|div|section|article|li|ul|ol|h[1-6]|table|tr)>/gi, '\\n')\n\t\t.replace(/<li\\b[^>]*>/gi, '- ')\n\t\t.replace(/<[^>]+>/g, ' ');\n\n\treturn decodeHtmlEntities(withoutTags);\n};\n\nconst extractMainHtmlContent = (value: string) => {\n\tconst trimmed = value.trim();\n\tif (!/<html\\b|<body\\b|<main\\b|<article\\b/i.test(trimmed)) {\n\t\treturn value;\n\t}\n\n\tconst boilerplateStripped = trimmed\n\t\t.replace(/<script\\b[^>]*>[\\s\\S]*?<\\/script>/gi, ' ')\n\t\t.replace(/<style\\b[^>]*>[\\s\\S]*?<\\/style>/gi, ' ')\n\t\t.replace(\n\t\t\t/<(nav|footer|header|aside|form)\\b[^>]*>[\\s\\S]*?<\\/\\1>/gi,\n\t\t\t' '\n\t\t);\n\n\tconst mainMatch = boilerplateStripped.match(\n\t\t/<main\\b[^>]*>([\\s\\S]*?)<\\/main>/i\n\t);\n\tif (mainMatch?.[1]) {\n\t\treturn mainMatch[1];\n\t}\n\n\tconst articleMatches = [\n\t\t...boilerplateStripped.matchAll(\n\t\t\t/<article\\b[^>]*>([\\s\\S]*?)<\\/article>/gi\n\t\t)\n\t]\n\t\t.map((match) => match[1]?.trim())\n\t\t.filter(Boolean);\n\tif (articleMatches.length > 0) {\n\t\treturn articleMatches.join('\\n');\n\t}\n\n\tconst roleMainMatch = boilerplateStripped.match(\n\t\t/<([a-z0-9:_-]+)\\b[^>]*\\brole=(['\"])main\\2[^>]*>([\\s\\S]*?)<\\/\\1>/i\n\t);\n\tif (roleMainMatch?.[3]) {\n\t\treturn roleMainMatch[3];\n\t}\n\n\tconst bodyMatch = boilerplateStripped.match(\n\t\t/<body\\b[^>]*>([\\s\\S]*?)<\\/body>/i\n\t);\n\tif (bodyMatch?.[1]) {\n\t\treturn bodyMatch[1];\n\t}\n\n\treturn boilerplateStripped;\n};\n\nconst stripHtml = (value: string) => {\n\tconst focused = extractMainHtmlContent(value);\n\n\treturn normalizeWhitespace(stripHtmlTags(focused));\n};\n\nconst stripMarkdown = (value: string) => {\n\tconst withoutCodeBlocks = value.replace(/```[\\s\\S]*?```/g, (block) => {\n\t\tconst lines = block.split('\\n').slice(1, EXCLUDE_LAST_OFFSET);\n\n\t\treturn lines.join('\\n');\n\t});\n\n\tconst stripped = withoutCodeBlocks\n\t\t.replace(/`([^`]+)`/g, '$1')\n\t\t.replace(/!\\[([^\\]]*)\\]\\([^)]+\\)/g, '$1')\n\t\t.replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, '$1')\n\t\t.replace(/^>\\s?/gm, '')\n\t\t.replace(/^#{1,6}\\s+/gm, '')\n\t\t.replace(/^[-*+]\\s+/gm, '')\n\t\t.replace(/^\\d+\\.\\s+/gm, '')\n\t\t.replace(/\\*\\*([^*]+)\\*\\*/g, '$1')\n\t\t.replace(/__([^_]+)__/g, '$1')\n\t\t.replace(/\\*([^*]+)\\*/g, '$1')\n\t\t.replace(/_([^_]+)_/g, '$1')\n\t\t.replace(/^---+$/gm, '\\n')\n\t\t.replace(/^===+$/gm, '\\n');\n\n\treturn normalizeWhitespace(stripped);\n};\n\ntype StructuredChunkUnit = {\n\ttext: string;\n\tsectionTitle?: string;\n\tsectionPath?: string[];\n\tsectionDepth?: number;\n\tsectionKind?:\n\t\t| 'markdown_heading'\n\t\t| 'html_heading'\n\t\t| 'office_heading'\n\t\t| 'spreadsheet_rows'\n\t\t| 'presentation_slide';\n\tpreferredChunkUnits?: string[];\n};\n\nconst markdownStructureUnits = (value: string): StructuredChunkUnit[] => {\n\tconst lines = value.replace(/\\r\\n?/g, '\\n').split('\\n');\n\tconst sections: Array<{ lines: string[]; sectionPath: string[] }> = [];\n\tlet current: string[] = [];\n\tlet currentPath: string[] = [];\n\tconst headingStack: string[] = [];\n\tconst flushCurrentSection = () => {\n\t\tif (current.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tsections.push({\n\t\t\tlines: current,\n\t\t\tsectionPath: [...currentPath]\n\t\t});\n\t\tcurrent = [];\n\t};\n\n\tfor (const line of lines) {\n\t\tconst headingMatch = line.match(/^\\s*(#{1,6})\\s+(.+)$/);\n\t\tif (headingMatch) {\n\t\t\tif (current.length > 0) {\n\t\t\t\tflushCurrentSection();\n\t\t\t}\n\t\t\tconst depth = headingMatch[1]?.length ?? 1;\n\t\t\tconst headingText = normalizeWhitespace(headingMatch[2] ?? '');\n\t\t\tif (headingText) {\n\t\t\t\theadingStack[depth - 1] = headingText;\n\t\t\t\theadingStack.length = depth;\n\t\t\t\tcurrentPath = [...headingStack];\n\t\t\t}\n\t\t}\n\n\t\tcurrent.push(line);\n\t}\n\n\tflushCurrentSection();\n\n\treturn sections\n\t\t.map(({ lines: sectionLines, sectionPath }) => ({\n\t\t\tsectionDepth:\n\t\t\t\tsectionPath.length > 0 ? sectionPath.length : undefined,\n\t\t\tsectionKind:\n\t\t\t\tsectionPath.length > 0\n\t\t\t\t\t? ('markdown_heading' as const)\n\t\t\t\t\t: undefined,\n\t\t\tsectionPath: sectionPath.length > 0 ? sectionPath : undefined,\n\t\t\tsectionTitle: sectionPath.at(-1),\n\t\t\ttext: normalizeWhitespace(stripMarkdown(sectionLines.join('\\n')))\n\t\t}))\n\t\t.filter((section) => Boolean(section.text));\n};\n\nconst joinHtmlHeadingSection = (headings: string[], content: string) => {\n\tconst normalizedHeadings = headings.map((heading) =>\n\t\tnormalizeWhitespace(heading)\n\t);\n\tconst combined = [...normalizedHeadings, content]\n\t\t.filter(Boolean)\n\t\t.join('\\n');\n\n\treturn normalizeWhitespace(combined);\n};\n\nconst htmlStructureUnits = (value: string): StructuredChunkUnit[] => {\n\tconst focused = extractMainHtmlContent(value);\n\tconst headingPattern = /<h([1-6])\\b[^>]*>([\\s\\S]*?)<\\/h\\1>/gi;\n\tconst sections: StructuredChunkUnit[] = [];\n\tconst headingStack: string[] = [];\n\tlet cursor = 0;\n\tlet currentContentStart = 0;\n\tlet activeHeadings: string[] = [];\n\n\tconst flushSection = (end: number) => {\n\t\tconst content = normalizeWhitespace(\n\t\t\tstripHtmlTags(focused.slice(currentContentStart, end))\n\t\t);\n\t\tif (!content) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst section = joinHtmlHeadingSection(activeHeadings, content);\n\t\tif (section) {\n\t\t\tsections.push({\n\t\t\t\tsectionDepth:\n\t\t\t\t\tactiveHeadings.length > 0\n\t\t\t\t\t\t? activeHeadings.length\n\t\t\t\t\t\t: undefined,\n\t\t\t\tsectionKind:\n\t\t\t\t\tactiveHeadings.length > 0 ? 'html_heading' : undefined,\n\t\t\t\tsectionPath:\n\t\t\t\t\tactiveHeadings.length > 0 ? [...activeHeadings] : undefined,\n\t\t\t\tsectionTitle: activeHeadings.at(-1),\n\t\t\t\ttext: section\n\t\t\t});\n\t\t}\n\t};\n\n\tfor (const match of focused.matchAll(headingPattern)) {\n\t\tconst fullMatch = match[0];\n\t\tconst start = match.index ?? cursor;\n\t\tflushSection(start);\n\n\t\tconst level = Number.parseInt(match[1] ?? '1', 10);\n\t\tconst headingText = normalizeWhitespace(stripHtmlTags(match[2] ?? ''));\n\t\tif (headingText) {\n\t\t\theadingStack[level - 1] = headingText;\n\t\t\theadingStack.length = level;\n\t\t\tactiveHeadings = [...headingStack];\n\t\t}\n\n\t\tcursor = start + fullMatch.length;\n\t\tcurrentContentStart = cursor;\n\t}\n\n\tflushSection(focused.length);\n\n\tif (sections.length > 0) {\n\t\treturn sections;\n\t}\n\n\treturn [{ text: normalizeWhitespace(stripHtmlTags(focused)) }].filter(\n\t\t(section) => Boolean(section.text)\n\t);\n};\n\nconst isLikelyOfficeHeadingParagraph = (value: string) => {\n\tconst normalized = normalizeWhitespace(value);\n\tif (!normalized || normalized.length > 80) {\n\t\treturn false;\n\t}\n\n\tif (/[.!?]$/.test(normalized)) {\n\t\treturn false;\n\t}\n\n\tconst words = normalized.split(/\\s+/);\n\tif (words.length > 8) {\n\t\treturn false;\n\t}\n\n\tconst headingLikeWords = words.filter((word) => {\n\t\tconst stripped = word.replace(/^[^A-Za-z0-9]+|[^A-Za-z0-9]+$/g, '');\n\t\tif (!stripped) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn /^[A-Z0-9]/.test(stripped);\n\t}).length;\n\n\treturn headingLikeWords / words.length >= 0.6;\n};\n\nconst officeHeadingStructureUnits = (value: string): StructuredChunkUnit[] => {\n\tconst paragraphs = paragraphUnits(value);\n\tconst sections: StructuredChunkUnit[] = [];\n\tlet currentHeading: string | undefined;\n\tlet currentParagraphs: string[] = [];\n\n\tconst flush = () => {\n\t\tif (!currentHeading && currentParagraphs.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst text = normalizeWhitespace(\n\t\t\t[currentHeading, ...currentParagraphs].filter(Boolean).join('\\n\\n')\n\t\t);\n\t\tif (!text) {\n\t\t\tcurrentHeading = undefined;\n\t\t\tcurrentParagraphs = [];\n\t\t\treturn;\n\t\t}\n\n\t\tsections.push({\n\t\t\tsectionDepth: currentHeading ? 1 : undefined,\n\t\t\tsectionKind: currentHeading ? 'office_heading' : undefined,\n\t\t\tsectionPath: currentHeading ? [currentHeading] : undefined,\n\t\t\tsectionTitle: currentHeading,\n\t\t\ttext\n\t\t});\n\t\tcurrentHeading = undefined;\n\t\tcurrentParagraphs = [];\n\t};\n\n\tfor (const paragraph of paragraphs) {\n\t\tif (isLikelyOfficeHeadingParagraph(paragraph)) {\n\t\t\tflush();\n\t\t\tcurrentHeading = paragraph;\n\t\t\tcontinue;\n\t\t}\n\n\t\tcurrentParagraphs.push(paragraph);\n\t}\n\n\tflush();\n\n\treturn sections.length > 0\n\t\t? sections\n\t\t: [{ text: normalizeWhitespace(value) }];\n};\n\nconst spreadsheetStructureUnits = (\n\tvalue: string,\n\tmetadata?: Record<string, unknown>\n): StructuredChunkUnit[] => {\n\tconst lines = value\n\t\t.replace(/\\r\\n?/g, '\\n')\n\t\t.split('\\n')\n\t\t.map((line) => normalizeWhitespace(line))\n\t\t.filter(Boolean);\n\tif (lines.length === 0) {\n\t\treturn [];\n\t}\n\n\tconst sheetName =\n\t\t(typeof metadata?.sheetName === 'string' && metadata.sheetName) ||\n\t\tlines[0]!.replace(/^Sheet\\s+/i, '');\n\tconst rowLines = lines.filter((line) => /^Row \\d+\\./.test(line));\n\tif (rowLines.length === 0) {\n\t\treturn [\n\t\t\t{\n\t\t\t\tsectionDepth: 1,\n\t\t\t\tsectionKind: 'spreadsheet_rows',\n\t\t\t\tsectionPath: [sheetName],\n\t\t\t\tsectionTitle: sheetName,\n\t\t\t\ttext: normalizeWhitespace(lines.join('\\n'))\n\t\t\t}\n\t\t];\n\t}\n\n\tconst groups: string[][] = [];\n\tlet current: string[] = [];\n\tfor (const row of rowLines) {\n\t\tconst candidate = [...current, row].join('\\n');\n\t\tif (current.length > 0 && candidate.length > DEFAULT_MAX_CHUNK_LENGTH) {\n\t\t\tgroups.push(current);\n\t\t\tcurrent = [row];\n\t\t\tcontinue;\n\t\t}\n\n\t\tcurrent.push(row);\n\t}\n\tif (current.length > 0) {\n\t\tgroups.push(current);\n\t}\n\n\treturn groups.map((rows) => ({\n\t\tpreferredChunkUnits: rows,\n\t\tsectionDepth: 1,\n\t\tsectionKind: 'spreadsheet_rows' as const,\n\t\tsectionPath: [sheetName],\n\t\tsectionTitle: sheetName,\n\t\ttext: normalizeWhitespace([`Sheet ${sheetName}`, ...rows].join('\\n'))\n\t}));\n};\n\nconst presentationStructureUnits = (\n\tvalue: string,\n\tmetadata?: Record<string, unknown>\n): StructuredChunkUnit[] => {\n\tconst slideNumber =\n\t\ttypeof metadata?.slideNumber === 'number'\n\t\t\t? metadata.slideNumber\n\t\t\t: typeof metadata?.slideIndex === 'number'\n\t\t\t\t? metadata.slideIndex + 1\n\t\t\t\t: undefined;\n\tconst slideLabel = slideNumber ? `Slide ${slideNumber}` : 'Slide';\n\tconst paragraphs = paragraphUnits(value);\n\n\treturn [\n\t\t{\n\t\t\tpreferredChunkUnits: paragraphs,\n\t\t\tsectionDepth: 1,\n\t\t\tsectionKind: 'presentation_slide',\n\t\t\tsectionPath: [slideLabel],\n\t\t\tsectionTitle: slideLabel,\n\t\t\ttext: normalizeWhitespace([slideLabel, ...paragraphs].join('\\n\\n'))\n\t\t}\n\t];\n};\n\nconst inferFormat = (document: RAGIngestDocument) => {\n\tif (document.format) {\n\t\treturn document.format;\n\t}\n\n\tconst source = document.source?.toLowerCase() ?? '';\n\tif (source.endsWith('.md') || source.endsWith('.mdx')) {\n\t\treturn 'markdown';\n\t}\n\tif (source.endsWith('.html') || source.endsWith('.htm')) {\n\t\treturn 'html';\n\t}\n\n\treturn 'text';\n};\n\nconst normalizeDocumentText = (text: string, format: RAGContentFormat) => {\n\tswitch (format) {\n\t\tcase 'html':\n\t\t\treturn stripHtml(text);\n\t\tcase 'markdown':\n\t\t\treturn stripMarkdown(text);\n\t\tcase 'text':\n\t\tdefault:\n\t\t\treturn normalizeWhitespace(text);\n\t}\n};\n\nconst slugify = (value: string) =>\n\tvalue\n\t\t.toLowerCase()\n\t\t.replace(/[^a-z0-9]+/g, '-')\n\t\t.replace(/^-+|-+$/g, '')\n\t\t.slice(0, RAG_DOCUMENT_SLUG_MAX_LENGTH) || 'document';\n\nconst inferFormatFromPath = (path: string) => {\n\tconst extension = extname(path).toLowerCase();\n\tif (extension === '.md' || extension === '.mdx') {\n\t\treturn 'markdown';\n\t}\n\tif (extension === '.html' || extension === '.htm') {\n\t\treturn 'html';\n\t}\n\n\treturn 'text';\n};\n\nconst inferFormatFromUrl = (input: string) => {\n\ttry {\n\t\treturn inferFormatFromPath(new URL(input).pathname);\n\t} catch {\n\t\treturn 'text';\n\t}\n};\n\nconst inferFormatFromName = (value: string | undefined) => {\n\tif (!value) {\n\t\treturn 'text';\n\t}\n\n\treturn inferFormatFromPath(value);\n};\n\nconst inferFormatFromContentType = (contentType: string | null) => {\n\tconst normalizedType = (contentType || '').toLowerCase();\n\tif (normalizedType.includes('text/markdown')) {\n\t\treturn 'markdown';\n\t}\n\tif (normalizedType.includes('text/html')) {\n\t\treturn 'html';\n\t}\n\tif (\n\t\tnormalizedType.startsWith('text/') ||\n\t\tnormalizedType.includes('json') ||\n\t\tnormalizedType.includes('xml') ||\n\t\tnormalizedType.includes('yaml')\n\t) {\n\t\treturn 'text';\n\t}\n\n\treturn undefined;\n};\n\nconst decodeUploadContent = (input: RAGDocumentUploadInput) => {\n\tif (input.encoding === 'base64') {\n\t\treturn Buffer.from(input.content, 'base64');\n\t}\n\n\treturn Buffer.from(input.content, 'utf8');\n};\n\nconst inferNameFromInput = (input: {\n\tpath?: string;\n\tname?: string;\n\tsource?: string;\n\ttitle?: string;\n}) =>\n\tinput.name ??\n\tinput.path?.split(/[\\\\/]/).at(-1) ??\n\tinput.source?.split('/').at(-1) ??\n\tinput.title ??\n\tDEFAULT_BINARY_NAME;\n\nconst inferExtensionFromInput = (input: {\n\tpath?: string;\n\tname?: string;\n\tsource?: string;\n}) => {\n\tconst candidate = input.path ?? input.name ?? input.source ?? '';\n\n\treturn extname(candidate).toLowerCase();\n};\n\nconst isLikelyTextData = (data: Uint8Array) => {\n\tif (data.length === 0) {\n\t\treturn true;\n\t}\n\n\tconst sample = data.subarray(0, Math.min(512, data.length));\n\tlet suspicious = 0;\n\tfor (const byte of sample) {\n\t\tif (byte === 9 || byte === 10 || byte === 13) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (byte < 32 || byte === 127) {\n\t\t\tsuspicious += 1;\n\t\t}\n\t}\n\n\treturn suspicious / sample.length < 0.1;\n};\n\nconst decodePdfLiteral = (value: string) =>\n\tvalue\n\t\t.replace(/\\\\([\\\\()])/g, '$1')\n\t\t.replace(/\\\\n/g, '\\n')\n\t\t.replace(/\\\\r/g, '\\r')\n\t\t.replace(/\\\\t/g, '\\t')\n\t\t.replace(/\\\\b/g, '\\b')\n\t\t.replace(/\\\\f/g, '\\f')\n\t\t.replace(/\\\\([0-7]{1,3})/g, (_match, octal: string) =>\n\t\t\tString.fromCharCode(parseInt(octal, 8))\n\t\t);\n\nconst PDF_TABLE_GAP_THRESHOLD = 120;\n\nconst extractPdfArrayText = (value: string) => {\n\tconst parts: string[] = [];\n\tconst tokenPattern = /\\(((?:\\\\.|[^\\\\)])*)\\)|([-+]?\\d*\\.?\\d+)/g;\n\tlet pendingColumnGap = false;\n\n\tfor (const match of value.matchAll(tokenPattern)) {\n\t\tif (match[1] !== undefined) {\n\t\t\tconst decoded = decodePdfLiteral(match[1]);\n\t\t\tif (\n\t\t\t\tpendingColumnGap &&\n\t\t\t\tdecoded &&\n\t\t\t\t!/^\\s/.test(decoded) &&\n\t\t\t\tparts.at(-1) !== ' | '\n\t\t\t) {\n\t\t\t\tparts.push(' | ');\n\t\t\t}\n\n\t\t\tparts.push(decoded);\n\t\t\tpendingColumnGap = false;\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst gap = Number(match[2]);\n\t\tif (Number.isFinite(gap) && gap >= PDF_TABLE_GAP_THRESHOLD) {\n\t\t\tpendingColumnGap = true;\n\t\t}\n\t}\n\n\treturn normalizeWhitespace(parts.join(''))\n\t\t.replace(/\\s+\\|\\s+/g, ' | ')\n\t\t.trim();\n};\n\nconst appendPdfText = (parts: string[], value: string) => {\n\tif (!value) {\n\t\treturn;\n\t}\n\n\tparts.push(value);\n};\n\nconst appendPdfLineBreak = (parts: string[]) => {\n\tconst last = parts.at(-1);\n\tif (!last || last.endsWith('\\n')) {\n\t\treturn;\n\t}\n\n\tparts.push('\\n');\n};\n\nconst PDF_TEXT_OPERATOR_PATTERN =\n\t/(\\[((?:\\\\.|[^\\]])*)\\]\\s*TJ)|(\\(((?:\\\\.|[^\\\\)])*)\\)\\s*Tj)|([-+]?\\d*\\.?\\d+\\s+[-+]?\\d*\\.?\\d+\\s+\\(((?:\\\\.|[^\\\\)])*)\\)\\s*\")|(\\(((?:\\\\.|[^\\\\)])*)\\)\\s*')|((?:[-+]?\\d*\\.?\\d+\\s+){2}(?:Td|TD))|(T\\*)|((?:[-+]?\\d*\\.?\\d+\\s+){6}Tm)/g;\n\nconst extractTextFromPDFTextObject = (value: string) => {\n\tconst parts: string[] = [];\n\n\tfor (const match of value.matchAll(PDF_TEXT_OPERATOR_PATTERN)) {\n\t\tif (match[2] !== undefined) {\n\t\t\tappendPdfText(parts, extractPdfArrayText(match[2]));\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (match[4] !== undefined) {\n\t\t\tappendPdfText(parts, decodePdfLiteral(match[4]));\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (match[6] !== undefined) {\n\t\t\tappendPdfLineBreak(parts);\n\t\t\tappendPdfText(parts, decodePdfLiteral(match[6]));\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (match[8] !== undefined) {\n\t\t\tappendPdfLineBreak(parts);\n\t\t\tappendPdfText(parts, decodePdfLiteral(match[8]));\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (\n\t\t\tmatch[9] !== undefined ||\n\t\t\tmatch[10] !== undefined ||\n\t\t\tmatch[11] !== undefined\n\t\t) {\n\t\t\tappendPdfLineBreak(parts);\n\t\t}\n\t}\n\n\treturn parts.join('');\n};\n\nconst extractTextFromPDFBytes = (data: Uint8Array) => {\n\tconst raw = Buffer.from(data).toString('latin1');\n\tconst textObjects = [...raw.matchAll(/BT([\\s\\S]*?)ET/g)]\n\t\t.map((match) => extractTextFromPDFTextObject(match[1] ?? ''))\n\t\t.filter(Boolean);\n\tconst combined =\n\t\ttextObjects.length > 0\n\t\t\t? textObjects.join('\\n\\n')\n\t\t\t: [...raw.matchAll(/\\(((?:\\\\.|[^\\\\)])*)\\)\\s*Tj/g)]\n\t\t\t\t\t.map((match) => decodePdfLiteral(match[1] ?? ''))\n\t\t\t\t\t.join('\\n');\n\n\treturn normalizeWhitespace(combined);\n};\n\nconst estimatePDFPageCount = (data: Uint8Array) => {\n\tconst raw = Buffer.from(data).toString('latin1');\n\tconst count = [...raw.matchAll(/\\/Type\\s*\\/Page\\b/g)].length;\n\n\treturn count > 0 ? count : 1;\n};\n\nconst readUInt16LE = (data: Uint8Array, offset: number) =>\n\tdata[offset]! | (data[offset + 1]! << 8);\n\nconst readUInt32LE = (data: Uint8Array, offset: number) =>\n\t(data[offset]! |\n\t\t(data[offset + 1]! << 8) |\n\t\t(data[offset + 2]! << 16) |\n\t\t(data[offset + 3]! << 24)) >>>\n\t0;\n\nconst decodeUtf8 = (data: Uint8Array) => Buffer.from(data).toString('utf8');\n\nconst isZipData = (data: Uint8Array) =>\n\tdata.length >= 4 &&\n\tdata[0] === 0x50 &&\n\tdata[1] === 0x4b &&\n\tdata[2] === 0x03 &&\n\tdata[3] === 0x04;\n\nconst unzipEntries = (data: Uint8Array): RAGArchiveEntry[] => {\n\tconst entries: RAGArchiveEntry[] = [];\n\tlet offset = 0;\n\n\twhile (offset + 30 <= data.length) {\n\t\tconst signature = readUInt32LE(data, offset);\n\t\tif (signature !== 0x04034b50) {\n\t\t\tbreak;\n\t\t}\n\n\t\tconst compressionMethod = readUInt16LE(data, offset + 8);\n\t\tconst compressedSize = readUInt32LE(data, offset + 18);\n\t\tconst fileNameLength = readUInt16LE(data, offset + 26);\n\t\tconst extraFieldLength = readUInt16LE(data, offset + 28);\n\t\tconst fileNameStart = offset + 30;\n\t\tconst fileNameEnd = fileNameStart + fileNameLength;\n\t\tconst fileName = decodeUtf8(data.subarray(fileNameStart, fileNameEnd));\n\t\tconst dataStart = fileNameEnd + extraFieldLength;\n\t\tconst dataEnd = dataStart + compressedSize;\n\t\tconst raw = data.subarray(dataStart, dataEnd);\n\t\tlet entryData: Uint8Array;\n\n\t\tif (compressionMethod === 0) {\n\t\t\tentryData = raw;\n\t\t} else if (compressionMethod === 8) {\n\t\t\tentryData = inflateRawSync(Buffer.from(raw));\n\t\t} else {\n\t\t\tthrow new Error(\n\t\t\t\t`Unsupported ZIP compression method ${compressionMethod} for ${fileName}`\n\t\t\t);\n\t\t}\n\n\t\tif (!fileName.endsWith('/')) {\n\t\t\tentries.push({\n\t\t\t\tdata: entryData,\n\t\t\t\tpath: fileName\n\t\t\t});\n\t\t}\n\n\t\toffset = dataEnd;\n\t}\n\n\treturn entries;\n};\n\nconst untarEntries = (data: Uint8Array): RAGArchiveEntry[] => {\n\tconst entries: RAGArchiveEntry[] = [];\n\tlet offset = 0;\n\n\twhile (offset + 512 <= data.length) {\n\t\tconst header = data.subarray(offset, offset + 512);\n\t\tif (header.every((byte) => byte === 0)) {\n\t\t\tbreak;\n\t\t}\n\n\t\tconst name = decodeUtf8(header.subarray(0, 100)).replace(/\\0.*$/, '');\n\t\tconst sizeText = decodeUtf8(header.subarray(124, 136))\n\t\t\t.replace(/\\0.*$/, '')\n\t\t\t.trim();\n\t\tconst size = sizeText ? parseInt(sizeText, 8) : 0;\n\t\tconst typeFlag = header[156];\n\t\tconst dataStart = offset + 512;\n\t\tconst dataEnd = dataStart + size;\n\n\t\tif (typeFlag !== 53 && typeFlag !== 0 && typeFlag !== 48) {\n\t\t\toffset = dataStart + Math.ceil(size / 512) * 512;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (name) {\n\t\t\tentries.push({\n\t\t\t\tdata: data.subarray(dataStart, dataEnd),\n\t\t\t\tpath: name\n\t\t\t});\n\t\t}\n\n\t\toffset = dataStart + Math.ceil(size / 512) * 512;\n\t}\n\n\treturn entries;\n};\n\nconst decodeGzipEntries = (\n\tdata: Uint8Array,\n\tinput: RAGFileExtractionInput\n): RAGArchiveEntry[] => {\n\tconst ungzipped = gunzipSync(Buffer.from(data));\n\tconst sourceName = inferNameFromInput(input);\n\tconst stripped = sourceName.replace(/\\.t?gz$/i, '').replace(/\\.gz$/i, '');\n\n\tif (\n\t\tsourceName.toLowerCase().endsWith('.tgz') ||\n\t\tsourceName.toLowerCase().endsWith('.tar.gz')\n\t) {\n\t\treturn untarEntries(ungzipped);\n\t}\n\n\treturn [\n\t\t{\n\t\t\tdata: ungzipped,\n\t\t\tpath: stripped || 'archive-entry'\n\t\t}\n\t];\n};\n\nconst extractXmlText = (value: string) =>\n\tnormalizeWhitespace(\n\t\tdecodeHtmlEntities(value.replace(/<[^>]+>/g, ' ').replace(/\\s+/g, ' '))\n\t);\n\nconst extractOfficeParagraphText = (value: string) =>\n\tnormalizeWhitespace(\n\t\tdecodeHtmlEntities(\n\t\t\tvalue\n\t\t\t\t.replace(/<w:tab\\b[^>]*\\/>/gi, '\\t')\n\t\t\t\t.replace(/<w:br\\b[^>]*\\/>/gi, '\\n')\n\t\t\t\t.replace(/<[^>]+>/g, ' ')\n\t\t)\n\t);\n\nconst officeDocumentParagraphs = (entries: RAGArchiveEntry[]) => {\n\tconst documentEntry = entries.find(\n\t\t(entry) => entry.path === 'word/document.xml'\n\t);\n\tif (!documentEntry) {\n\t\treturn [];\n\t}\n\n\tconst xml = decodeUtf8(documentEntry.data);\n\tconst paragraphs = [...xml.matchAll(/<w:p\\b[\\s\\S]*?<\\/w:p>/g)];\n\n\treturn paragraphs\n\t\t.map((match) => {\n\t\t\tconst paragraphXml = match[0] ?? '';\n\t\t\tconst text = extractOfficeParagraphText(paragraphXml);\n\t\t\tif (!text) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tconst styleMatch = paragraphXml.match(\n\t\t\t\t/<w:pStyle\\b[^>]*w:val=\"([^\"]+)\"[^>]*\\/?>/i\n\t\t\t);\n\t\t\tconst style = (styleMatch?.[1] ?? '').toLowerCase();\n\t\t\tif (style === 'title') {\n\t\t\t\treturn text;\n\t\t\t}\n\n\t\t\tconst headingMatch = style.match(/^heading([1-6])$/);\n\t\t\tif (headingMatch) {\n\t\t\t\treturn text;\n\t\t\t}\n\n\t\t\treturn text;\n\t\t})\n\t\t.filter(Boolean);\n};\n\nconst officeDocumentText = (entries: RAGArchiveEntry[]) => {\n\tconst paragraphs = officeDocumentParagraphs(entries);\n\tif (paragraphs.length > 0) {\n\t\treturn normalizeWhitespace(paragraphs.join('\\n\\n'));\n\t}\n\n\tconst documentEntry = entries.find(\n\t\t(entry) => entry.path === 'word/document.xml'\n\t);\n\tif (!documentEntry) {\n\t\treturn '';\n\t}\n\n\treturn extractXmlText(decodeUtf8(documentEntry.data));\n};\n\nconst officeDocumentSectionCount = (entries: RAGArchiveEntry[]) => {\n\tconst documentEntry = entries.find(\n\t\t(entry) => entry.path === 'word/document.xml'\n\t);\n\tif (!documentEntry) {\n\t\treturn undefined;\n\t}\n\n\tconst count = [...decodeUtf8(documentEntry.data).matchAll(/<w:p\\b/g)]\n\t\t.length;\n\n\treturn count > 0 ? count : undefined;\n};\n\nconst spreadsheetSharedStrings = (entries: RAGArchiveEntry[]) =>\n\tentries\n\t\t.filter((entry) => entry.path === 'xl/sharedStrings.xml')\n\t\t.flatMap((entry) =>\n\t\t\t[\n\t\t\t\t...decodeUtf8(entry.data).matchAll(/<t[^>]*>([\\s\\S]*?)<\\/t>/g)\n\t\t\t].map((match) => decodeHtmlEntities(match[1] ?? ''))\n\t\t);\n\nconst spreadsheetColumnLabel = (reference: string | undefined) => {\n\tconst match = reference?.match(/([A-Z]+)/i);\n\treturn match?.[1]?.toUpperCase() ?? '';\n};\n\nconst spreadsheetResolveCellValue = (\n\tcellXml: string,\n\tsharedStrings: string[]\n) => {\n\tconst inlineMatch = cellXml.match(\n\t\t/<is\\b[^>]*>[\\s\\S]*?<t[^>]*>([\\s\\S]*?)<\\/t>[\\s\\S]*?<\\/is>/i\n\t);\n\tif (inlineMatch?.[1]) {\n\t\treturn normalizeWhitespace(decodeHtmlEntities(inlineMatch[1]));\n\t}\n\n\tconst valueMatch = cellXml.match(/<v>([\\s\\S]*?)<\\/v>/i);\n\tif (!valueMatch?.[1]) {\n\t\treturn '';\n\t}\n\n\tconst rawValue = decodeHtmlEntities(valueMatch[1]);\n\tconst typeMatch = cellXml.match(/\\bt=\"([^\"]+)\"/i);\n\tif (typeMatch?.[1] === 's') {\n\t\tconst index = Number(rawValue);\n\t\treturn Number.isInteger(index) && sharedStrings[index]\n\t\t\t? sharedStrings[index]!\n\t\t\t: rawValue;\n\t}\n\n\treturn normalizeWhitespace(rawValue);\n};\n\nconst spreadsheetWorksheetRows = (\n\tworksheetXml: string,\n\tsharedStrings: string[]\n) =>\n\t[...worksheetXml.matchAll(/<row\\b[^>]*>([\\s\\S]*?)<\\/row>/gi)]\n\t\t.map((rowMatch) => {\n\t\t\tconst rowXml = rowMatch[1] ?? '';\n\t\t\tconst cells = [...rowXml.matchAll(/<c\\b([^>]*)>([\\s\\S]*?)<\\/c>/gi)]\n\t\t\t\t.map((cellMatch) => {\n\t\t\t\t\tconst attributes = cellMatch[1] ?? '';\n\t\t\t\t\tconst cellBody = cellMatch[2] ?? '';\n\t\t\t\t\tconst referenceMatch = attributes.match(/\\br=\"([^\"]+)\"/i);\n\t\t\t\t\tconst reference = referenceMatch?.[1];\n\t\t\t\t\tconst value = spreadsheetResolveCellValue(\n\t\t\t\t\t\t`<c${attributes}>${cellBody}</c>`,\n\t\t\t\t\t\tsharedStrings\n\t\t\t\t\t);\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcolumn: spreadsheetColumnLabel(reference),\n\t\t\t\t\t\treference,\n\t\t\t\t\t\tvalue\n\t\t\t\t\t};\n\t\t\t\t})\n\t\t\t\t.filter((cell) => cell.value);\n\n\t\t\treturn cells;\n\t\t})\n\t\t.filter((row) => row.length > 0);\n\nconst spreadsheetRowText = (\n\trow: { column: string; reference?: string; value: string }[],\n\theaders: string[]\n) => {\n\tconst entries = row.map((cell, index) => {\n\t\tconst header = headers[index];\n\t\tif (header) {\n\t\t\treturn `${header}: ${cell.value}`;\n\t\t}\n\n\t\treturn cell.column ? `${cell.column}: ${cell.value}` : cell.value;\n\t});\n\n\treturn normalizeWhitespace(entries.join(' | '));\n};\n\nconst spreadsheetSheetTexts = (entries: RAGArchiveEntry[]) => {\n\tconst sharedStrings = spreadsheetSharedStrings(entries);\n\tconst sheetNames = spreadsheetSheetNames(entries);\n\tconst sheetEntries = entries\n\t\t.filter(\n\t\t\t(entry) =>\n\t\t\t\tentry.path.startsWith('xl/worksheets/') &&\n\t\t\t\tentry.path.endsWith('.xml')\n\t\t)\n\t\t.sort((left, right) => left.path.localeCompare(right.path));\n\n\treturn sheetEntries\n\t\t.map((entry, index) => {\n\t\t\tconst rows = spreadsheetWorksheetRows(\n\t\t\t\tdecodeUtf8(entry.data),\n\t\t\t\tsharedStrings\n\t\t\t);\n\t\t\tif (rows.length === 0) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst headers = rows[0]!.map((cell) => cell.value);\n\t\t\tconst rowTexts = rows.map((row, rowIndex) =>\n\t\t\t\tnormalizeWhitespace(\n\t\t\t\t\t`Row ${rowIndex + 1}. ${spreadsheetRowText(\n\t\t\t\t\t\trow,\n\t\t\t\t\t\trowIndex === 0 ? [] : headers\n\t\t\t\t\t)}`\n\t\t\t\t)\n\t\t\t);\n\t\t\tconst text = normalizeWhitespace(rowTexts.join('\\n'));\n\t\t\tif (!text) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tname: sheetNames[index] ?? `Sheet ${index + 1}`,\n\t\t\t\ttext\n\t\t\t};\n\t\t})\n\t\t.filter((entry): entry is { name: string; text: string } =>\n\t\t\tBoolean(entry)\n\t\t);\n};\n\nconst spreadsheetText = (entries: RAGArchiveEntry[]) =>\n\tnormalizeWhitespace(\n\t\tspreadsheetSheetTexts(entries)\n\t\t\t.map((sheet) => `Sheet ${sheet.name}\\n${sheet.text}`)\n\t\t\t.join('\\n\\n')\n\t);\n\nconst spreadsheetSheetNames = (entries: RAGArchiveEntry[]) =>\n\tentries\n\t\t.filter((entry) => entry.path === 'xl/workbook.xml')\n\t\t.flatMap((entry) =>\n\t\t\t[\n\t\t\t\t...decodeUtf8(entry.data).matchAll(/<sheet[^>]*name=\"([^\"]+)\"/g)\n\t\t\t].map((match) => match[1] ?? '')\n\t\t)\n\t\t.filter(Boolean);\n\nconst presentationNotesByIndex = (entries: RAGArchiveEntry[]) =>\n\tnew Map(\n\t\tentries\n\t\t\t.filter(\n\t\t\t\t(entry) =>\n\t\t\t\t\tentry.path.startsWith('ppt/notesSlides/') &&\n\t\t\t\t\tentry.path.endsWith('.xml')\n\t\t\t)\n\t\t\t.sort((left, right) => left.path.localeCompare(right.path))\n\t\t\t.map((entry) => {\n\t\t\t\tconst indexMatch = entry.path.match(/notesSlide(\\d+)\\.xml$/i);\n\t\t\t\tconst index = Number(indexMatch?.[1] ?? '0') - 1;\n\t\t\t\treturn [\n\t\t\t\t\tindex,\n\t\t\t\t\tnormalizeWhitespace(extractXmlText(decodeUtf8(entry.data)))\n\t\t\t\t] as const;\n\t\t\t})\n\t\t\t.filter((entry) => entry[0] >= 0 && Boolean(entry[1]))\n\t);\n\nconst presentationSlides = (entries: RAGArchiveEntry[]) => {\n\tconst notesByIndex = presentationNotesByIndex(entries);\n\n\treturn entries\n\t\t.filter(\n\t\t\t(entry) =>\n\t\t\t\tentry.path.startsWith('ppt/slides/') &&\n\t\t\t\tentry.path.endsWith('.xml')\n\t\t)\n\t\t.sort((left, right) => left.path.localeCompare(right.path))\n\t\t.map((entry, index) => {\n\t\t\tconst slideText = normalizeWhitespace(\n\t\t\t\textractXmlText(decodeUtf8(entry.data))\n\t\t\t);\n\t\t\tconst notesText = notesByIndex.get(index);\n\t\t\tconst text = normalizeWhitespace(\n\t\t\t\t[slideText, notesText ? `Speaker notes: ${notesText}` : '']\n\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t.join('\\n')\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tindex,\n\t\t\t\tnotesText,\n\t\t\t\ttext\n\t\t\t};\n\t\t})\n\t\t.filter((slide) => Boolean(slide.text));\n};\n\nconst presentationText = (entries: RAGArchiveEntry[]) =>\n\tnormalizeWhitespace(\n\t\tpresentationSlides(entries)\n\t\t\t.map((slide) => slide.text)\n\t\t\t.join('\\n\\n')\n\t);\n\nconst presentationSlideCount = (entries: RAGArchiveEntry[]) =>\n\tentries.filter(\n\t\t(entry) =>\n\t\t\tentry.path.startsWith('ppt/slides/') && entry.path.endsWith('.xml')\n\t).length;\n\nconst epubText = (entries: RAGArchiveEntry[]) => {\n\tconst htmlEntries = entries.filter((entry) =>\n\t\t/\\.(xhtml|html|htm)$/i.test(entry.path)\n\t);\n\n\treturn normalizeWhitespace(\n\t\thtmlEntries\n\t\t\t.map((entry) => stripHtml(decodeUtf8(entry.data)))\n\t\t\t.join('\\n\\n')\n\t);\n};\n\nconst splitEmailMessage = (raw: string) => {\n\tconst normalized = raw.replace(/\\r\\n?/g, '\\n');\n\tconst separator = normalized.indexOf('\\n\\n');\n\tif (separator < 0) {\n\t\treturn {\n\t\t\tbody: '',\n\t\t\theaderBlock: normalized\n\t\t};\n\t}\n\n\treturn {\n\t\tbody: normalized.slice(separator + 2),\n\t\theaderBlock: normalized.slice(0, separator)\n\t};\n};\n\nconst parseHeaderBlock = (headerBlock: string) => {\n\tconst unfolded = headerBlock.replace(/\\n[ \\t]+/g, ' ');\n\tconst headers = new Map<string, string>();\n\n\tfor (const line of unfolded.split('\\n')) {\n\t\tconst separator = line.indexOf(':');\n\t\tif (separator < 0) {\n\t\t\tcontinue;\n\t\t}\n\n\t\theaders.set(\n\t\t\tline.slice(0, separator).trim().toLowerCase(),\n\t\t\tline.slice(separator + 1).trim()\n\t\t);\n\t}\n\n\treturn headers;\n};\n\nconst decodeQuotedPrintable = (value: string) =>\n\tvalue\n\t\t.replace(/=\\r?\\n/g, '')\n\t\t.replace(/=([0-9A-F]{2})/gi, (_match, hex: string) =>\n\t\t\tString.fromCharCode(parseInt(hex, 16))\n\t\t);\n\nconst decodeEmailPartBody = (body: string, encoding: string | undefined) => {\n\tconst normalizedEncoding = encoding?.toLowerCase();\n\tconst trimmed = body.trim();\n\n\tif (normalizedEncoding === 'base64') {\n\t\treturn new Uint8Array(\n\t\t\tBuffer.from(trimmed.replace(/\\s+/g, ''), 'base64')\n\t\t);\n\t}\n\n\tif (normalizedEncoding === 'quoted-printable') {\n\t\treturn new Uint8Array(Buffer.from(decodeQuotedPrintable(body), 'utf8'));\n\t}\n\n\treturn new Uint8Array(Buffer.from(body, 'utf8'));\n};\n\nconst parseMimeBoundary = (contentType: string | undefined) => {\n\tconst match = contentType?.match(/boundary=\"?([^\";]+)\"?/i);\n\treturn match?.[1];\n};\n\nconst parseEmailMimeParts = (\n\tbody: string,\n\tcontentType: string | undefined\n): {\n\tbodyHtml?: string;\n\tbodyText?: string;\n\tattachments: {\n\t\tcontentType?: string;\n\t\tdata: Uint8Array;\n\t\tfileName: string;\n\t}[];\n} => {\n\tconst boundary = parseMimeBoundary(contentType);\n\tif (!boundary) {\n\t\tconst htmlMatch = body.match(/<html[\\s\\S]*<\\/html>/i);\n\t\treturn {\n\t\t\tattachments: [],\n\t\t\tbodyHtml: htmlMatch?.[0],\n\t\t\tbodyText: htmlMatch ? undefined : body\n\t\t};\n\t}\n\n\tconst attachments: {\n\t\tcontentType?: string;\n\t\tdata: Uint8Array;\n\t\tfileName: string;\n\t}[] = [];\n\tlet bodyText: string | undefined;\n\tlet bodyHtml: string | undefined;\n\tconst parts = body.split(`--${boundary}`);\n\n\tfor (const rawPart of parts) {\n\t\tconst trimmed = rawPart.trim();\n\t\tif (!trimmed || trimmed === '--') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst { body: partBody, headerBlock } = splitEmailMessage(trimmed);\n\t\tconst headers = parseHeaderBlock(headerBlock);\n\t\tconst partContentType = headers.get('content-type');\n\t\tconst disposition = headers.get('content-disposition');\n\t\tconst transferEncoding = headers.get('content-transfer-encoding');\n\t\tconst filename =\n\t\t\tdisposition?.match(/filename=\"?([^\";]+)\"?/i)?.[1] ??\n\t\t\tpartContentType?.match(/name=\"?([^\";]+)\"?/i)?.[1];\n\n\t\tif (filename) {\n\t\t\tattachments.push({\n\t\t\t\tcontentType: partContentType,\n\t\t\t\tdata: decodeEmailPartBody(partBody, transferEncoding),\n\t\t\t\tfileName: filename\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst decoded = Buffer.from(\n\t\t\tdecodeEmailPartBody(partBody, transferEncoding)\n\t\t).toString('utf8');\n\t\tif (partContentType?.toLowerCase().includes('text/html')) {\n\t\t\tbodyHtml = decoded;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (partContentType?.toLowerCase().includes('text/plain')) {\n\t\t\tbodyText = decoded;\n\t\t}\n\t}\n\n\treturn {\n\t\tattachments,\n\t\tbodyHtml,\n\t\tbodyText\n\t};\n};\n\nconst extractEmailText = (raw: string) => {\n\tconst { body, headerBlock } = splitEmailMessage(raw);\n\tconst headers = parseHeaderBlock(headerBlock);\n\tconst parsed = parseEmailMimeParts(body, headers.get('content-type'));\n\tif (parsed.bodyHtml) {\n\t\treturn stripHtml(parsed.bodyHtml);\n\t}\n\tif (parsed.bodyText) {\n\t\treturn normalizeWhitespace(parsed.bodyText);\n\t}\n\tif (!body) {\n\t\treturn normalizeWhitespace(raw.replace(/\\r\\n?/g, '\\n'));\n\t}\n\n\tconst htmlMatch = body.match(/<html[\\s\\S]*<\\/html>/i);\n\tif (htmlMatch) {\n\t\treturn stripHtml(htmlMatch[0]);\n\t}\n\n\treturn normalizeWhitespace(body);\n};\n\nconst parseEmailHeaders = (raw: string) => {\n\tconst { headerBlock } = splitEmailMessage(raw);\n\tconst headers = parseHeaderBlock(headerBlock);\n\tconst getHeader = (name: string) => headers.get(name.toLowerCase());\n\n\treturn {\n\t\tcontentType: getHeader('Content-Type'),\n\t\tfrom: getHeader('From'),\n\t\tinReplyTo: getHeader('In-Reply-To'),\n\t\tmessageId: getHeader('Message-ID'),\n\t\treferences: getHeader('References'),\n\t\tsubject: getHeader('Subject'),\n\t\tthreadTopic: getHeader('Thread-Topic') ?? getHeader('Subject'),\n\t\tto: getHeader('To')\n\t};\n};\n\nconst stripRTF = (value: string) => {\n\tconst withoutBinary = value.replace(/\\\\bin\\d+ [\\s\\S]*?(?=[\\\\}])/g, ' ');\n\tconst withoutControls = withoutBinary\n\t\t.replace(/\\\\par[d]?/g, '\\n')\n\t\t.replace(/\\\\tab/g, '\\t')\n\t\t.replace(/\\\\'[0-9a-fA-F]{2}/g, (match) =>\n\t\t\tString.fromCharCode(parseInt(match.slice(2), 16))\n\t\t)\n\t\t.replace(/\\\\[a-zA-Z]+\\d* ?/g, ' ')\n\t\t.replace(/[{}]/g, ' ');\n\n\treturn normalizeWhitespace(withoutControls);\n};\n\nconst extractPrintableStrings = (data: Uint8Array) => {\n\tconst text = Buffer.from(data).toString('latin1');\n\tconst asciiMatches =\n\t\ttext.match(\n\t\t\t/[A-Za-z0-9][A-Za-z0-9 ,.;:!?@#$%^&*()[\\]_\\-+/\\\\'\"`~|=<>]{3,}/g\n\t\t) ?? [];\n\tconst utf16Matches =\n\t\tBuffer.from(data)\n\t\t\t.toString('utf16le')\n\t\t\t.match(\n\t\t\t\t/[A-Za-z0-9][A-Za-z0-9 ,.;:!?@#$%^&*()[\\]_\\-+/\\\\'\"`~|=<>]{3,}/g\n\t\t\t) ?? [];\n\n\tconst values = [...asciiMatches, ...utf16Matches].map((entry) =>\n\t\tnormalizeWhitespace(entry)\n\t);\n\tconst unique = [...new Set(values)].filter((entry) => entry.length >= 4);\n\n\treturn unique.join('\\n');\n};\n\nconst ocrMetadata = (result: RAGOCRResult) => {\n\tconst regions = result.regions?.filter(\n\t\t(region) => normalizeWhitespace(region.text ?? '').length > 0\n\t);\n\tconst confidenceValues = [\n\t\ttypeof result.confidence === 'number' ? result.confidence : undefined,\n\t\t...(regions ?? []).map((region) =>\n\t\t\ttypeof region.confidence === 'number'\n\t\t\t\t? region.confidence\n\t\t\t\t: undefined\n\t\t)\n\t].filter((value): value is number => value !== undefined);\n\n\tconst averageConfidence =\n\t\tconfidenceValues.length > 0\n\t\t\t? confidenceValues.reduce((sum, value) => sum + value, 0) /\n\t\t\t\tconfidenceValues.length\n\t\t\t: undefined;\n\n\treturn {\n\t\t...(result.metadata ?? {}),\n\t\tocrConfidence: result.confidence,\n\t\tocrRegionCount: regions?.length,\n\t\tocrRegions: regions,\n\t\tocrAverageConfidence: averageConfidence\n\t};\n};\n\nconst ocrPageDocuments = (\n\tresult: RAGOCRResult,\n\tinput: RAGFileExtractionInput,\n\tbaseMetadata: Record<string, unknown>\n): RAGExtractedFileDocument[] => {\n\tconst grouped = new Map<number, NonNullable<RAGOCRResult['regions']>>();\n\tfor (const region of result.regions ?? []) {\n\t\tconst text = normalizeWhitespace(region.text ?? '');\n\t\tif (!text || typeof region.page !== 'number' || region.page < 1) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst bucket = grouped.get(region.page) ?? [];\n\t\tbucket.push({ ...region, text });\n\t\tgrouped.set(region.page, bucket);\n\t}\n\n\treturn [...grouped.entries()]\n\t\t.sort((left, right) => left[0] - right[0])\n\t\t.map(([pageNumber, regions]) => ({\n\t\t\tchunking: input.chunking,\n\t\t\tcontentType: input.contentType,\n\t\t\tformat: 'text',\n\t\t\tmetadata: {\n\t\t\t\t...(input.metadata ?? {}),\n\t\t\t\t...baseMetadata,\n\t\t\t\tocrRegionCount: regions.length,\n\t\t\t\tocrRegions: regions,\n\t\t\t\tpageNumber,\n\t\t\t\tpageIndex: pageNumber - 1,\n\t\t\t\tsourceNativeKind: 'pdf_page'\n\t\t\t},\n\t\t\tsource:\n\t\t\t\tinput.source ??\n\t\t\t\tinput.path ??\n\t\t\t\tinput.name ??\n\t\t\t\t`${slugify(input.title ?? DEFAULT_BINARY_NAME)}.pdf`,\n\t\t\ttext: normalizeWhitespace(\n\t\t\t\t`PDF page ${pageNumber} from ${\n\t\t\t\t\tinput.title ??\n\t\t\t\t\tinput.name ??\n\t\t\t\t\tinput.path ??\n\t\t\t\t\tDEFAULT_BINARY_NAME\n\t\t\t\t}.\\n${regions.map((region) => region.text).join('\\n')}`\n\t\t\t),\n\t\t\ttitle: input.title\n\t\t\t\t? `${input.title} · Page ${pageNumber}`\n\t\t\t\t: `Page ${pageNumber}`\n\t\t}));\n};\n\nconst ocrRegionDocuments = (\n\tresult: RAGOCRResult,\n\tinput: RAGFileExtractionInput,\n\tbaseMetadata: Record<string, unknown>\n): RAGExtractedFileDocument[] => {\n\tconst documents: RAGExtractedFileDocument[] = [];\n\n\tfor (const [index, region] of (result.regions ?? []).entries()) {\n\t\tconst text = normalizeWhitespace(region.text ?? '');\n\t\tif (!text || typeof region.page !== 'number' || region.page < 1) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst pageNumber = region.page;\n\t\tconst regionNumber = index + 1;\n\n\t\tdocuments.push({\n\t\t\tchunking: input.chunking,\n\t\t\tcontentType: input.contentType,\n\t\t\tformat: 'text',\n\t\t\tmetadata: {\n\t\t\t\t...(input.metadata ?? {}),\n\t\t\t\t...baseMetadata,\n\t\t\t\tocrRegionConfidence: region.confidence,\n\t\t\t\tocrRegionHeight: region.height,\n\t\t\t\tocrRegionWidth: region.width,\n\t\t\t\tocrRegionX: region.x,\n\t\t\t\tocrRegionY: region.y,\n\t\t\t\tpageNumber,\n\t\t\t\tpageIndex: pageNumber - 1,\n\t\t\t\tregionIndex: index,\n\t\t\t\tregionNumber,\n\t\t\t\tsourceNativeKind: 'pdf_region'\n\t\t\t},\n\t\t\tsource:\n\t\t\t\tinput.source ??\n\t\t\t\tinput.path ??\n\t\t\t\tinput.name ??\n\t\t\t\t`${slugify(input.title ?? DEFAULT_BINARY_NAME)}.pdf`,\n\t\t\ttext: normalizeWhitespace(\n\t\t\t\t`PDF page ${pageNumber} region ${regionNumber} from ${\n\t\t\t\t\tinput.title ??\n\t\t\t\t\tinput.name ??\n\t\t\t\t\tinput.path ??\n\t\t\t\t\tDEFAULT_BINARY_NAME\n\t\t\t\t}.\\n${text}`\n\t\t\t),\n\t\t\ttitle: input.title\n\t\t\t\t? `${input.title} · Page ${pageNumber} Region ${regionNumber}`\n\t\t\t\t: `Page ${pageNumber} Region ${regionNumber}`\n\t\t});\n\t}\n\n\treturn documents;\n};\n\nconst textExtractorSupports = (input: RAGFileExtractionInput) => {\n\tif (input.format) {\n\t\treturn true;\n\t}\n\n\tconst contentType = (input.contentType ?? '').toLowerCase();\n\tif (\n\t\tcontentType.startsWith('text/') ||\n\t\tcontentType.includes('json') ||\n\t\tcontentType.includes('xml') ||\n\t\tcontentType.includes('yaml') ||\n\t\tcontentType.includes('javascript')\n\t) {\n\t\treturn true;\n\t}\n\n\tif (TEXT_FILE_EXTENSIONS.has(inferExtensionFromInput(input))) {\n\t\treturn true;\n\t}\n\n\treturn isLikelyTextData(input.data);\n};\n\nconst pdfExtractorSupports = (input: RAGFileExtractionInput) => {\n\tconst contentType = (input.contentType ?? '').toLowerCase();\n\tif (contentType.includes('application/pdf')) {\n\t\treturn true;\n\t}\n\n\treturn PDF_FILE_EXTENSIONS.has(inferExtensionFromInput(input));\n};\n\nconst mediaExtractorSupports = (input: RAGFileExtractionInput) => {\n\tconst contentType = (input.contentType ?? '').toLowerCase();\n\tif (contentType.startsWith('audio/') || contentType.startsWith('video/')) {\n\t\treturn true;\n\t}\n\n\tconst extension = inferExtensionFromInput(input);\n\n\treturn (\n\t\tAUDIO_FILE_EXTENSIONS.has(extension) ||\n\t\tVIDEO_FILE_EXTENSIONS.has(extension)\n\t);\n};\n\nconst officeExtractorSupports = (input: RAGFileExtractionInput) => {\n\tconst extension = inferExtensionFromInput(input);\n\n\treturn OFFICE_FILE_EXTENSIONS.has(extension);\n};\n\nconst legacyExtractorSupports = (input: RAGFileExtractionInput) =>\n\tLEGACY_DOCUMENT_FILE_EXTENSIONS.has(inferExtensionFromInput(input));\n\nconst epubExtractorSupports = (input: RAGFileExtractionInput) =>\n\tEPUB_FILE_EXTENSIONS.has(inferExtensionFromInput(input));\n\nconst emailExtractorSupports = (input: RAGFileExtractionInput) => {\n\tconst contentType = (input.contentType ?? '').toLowerCase();\n\tif (\n\t\tcontentType.includes('message/rfc822') ||\n\t\tcontentType.includes('application/eml')\n\t) {\n\t\treturn true;\n\t}\n\n\treturn EMAIL_FILE_EXTENSIONS.has(inferExtensionFromInput(input));\n};\n\nconst imageExtractorSupports = (input: RAGFileExtractionInput) => {\n\tconst contentType = (input.contentType ?? '').toLowerCase();\n\tif (contentType.startsWith('image/')) {\n\t\treturn true;\n\t}\n\n\treturn IMAGE_FILE_EXTENSIONS.has(inferExtensionFromInput(input));\n};\n\nconst archiveExtractorSupports = (input: RAGFileExtractionInput) => {\n\tconst contentType = (input.contentType ?? '').toLowerCase();\n\tif (\n\t\tcontentType.includes('zip') ||\n\t\tcontentType.includes('tar') ||\n\t\tcontentType.includes('gzip') ||\n\t\tcontentType.includes('x-gzip')\n\t) {\n\t\treturn true;\n\t}\n\n\treturn ARCHIVE_FILE_EXTENSIONS.has(inferExtensionFromInput(input));\n};\n\nexport const createBuiltinArchiveExpander = (): RAGArchiveExpander => ({\n\tname: 'builtin_archive',\n\texpand: (input) => {\n\t\tconst extension = inferExtensionFromInput(input);\n\t\tif (isZipData(input.data) || extension === '.zip') {\n\t\t\treturn {\n\t\t\t\tentries: unzipEntries(input.data),\n\t\t\t\tmetadata: { archiveType: 'zip' }\n\t\t\t};\n\t\t}\n\n\t\tif (TAR_FILE_EXTENSIONS.has(extension)) {\n\t\t\treturn {\n\t\t\t\tentries: untarEntries(input.data),\n\t\t\t\tmetadata: { archiveType: 'tar' }\n\t\t\t};\n\t\t}\n\n\t\tif (GZIP_FILE_EXTENSIONS.has(extension)) {\n\t\t\treturn {\n\t\t\t\tentries: decodeGzipEntries(input.data, input),\n\t\t\t\tmetadata: {\n\t\t\t\t\tarchiveType:\n\t\t\t\t\t\textension === '.tgz' ||\n\t\t\t\t\t\t(input.name ?? input.path ?? '')\n\t\t\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t\t\t.endsWith('.tar.gz')\n\t\t\t\t\t\t\t? 'tgz'\n\t\t\t\t\t\t\t: 'gzip'\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tthrow new Error(\n\t\t\t`Builtin archive expander does not support ${inferNameFromInput(input)}`\n\t\t);\n\t}\n});\nexport const createEmailExtractor = (): RAGFileExtractor => ({\n\tname: 'absolute_email',\n\tsupports: emailExtractorSupports,\n\textract: async (input) => {\n\t\tconst raw = decodeUtf8(input.data);\n\t\tconst headers = parseEmailHeaders(raw);\n\t\tconst { body } = splitEmailMessage(raw);\n\t\tconst parsed = parseEmailMimeParts(body, headers.contentType);\n\t\tconst source =\n\t\t\tinput.source ??\n\t\t\tinput.path ??\n\t\t\tinput.name ??\n\t\t\t`${slugify(input.title ?? DEFAULT_BINARY_NAME)}.eml`;\n\t\tconst messageMetadata = {\n\t\t\t...(input.metadata ?? {}),\n\t\t\temailKind: 'message',\n\t\t\tfileKind: 'email',\n\t\t\tfrom: headers.from,\n\t\t\tinReplyTo: headers.inReplyTo,\n\t\t\tmessageId: headers.messageId,\n\t\t\treferences: headers.references,\n\t\t\tthreadTopic: headers.subject,\n\t\t\tto: headers.to,\n\t\t\thasAttachments: parsed.attachments.length > 0\n\t\t};\n\t\tconst attachmentDocuments = await Promise.all(\n\t\t\tparsed.attachments.map(async (attachment, index) => {\n\t\t\t\tconst documents = await extractRAGFileDocuments({\n\t\t\t\t\tchunking: input.chunking,\n\t\t\t\t\tcontentType: attachment.contentType,\n\t\t\t\t\tdata: attachment.data,\n\t\t\t\t\tformat:\n\t\t\t\t\t\tinferFormatFromContentType(\n\t\t\t\t\t\t\tattachment.contentType ?? null\n\t\t\t\t\t\t) ?? inferFormatFromName(attachment.fileName),\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t...messageMetadata,\n\t\t\t\t\t\tattachmentIndex: index,\n\t\t\t\t\t\tattachmentName: attachment.fileName,\n\t\t\t\t\t\temailKind: 'attachment'\n\t\t\t\t\t},\n\t\t\t\t\tname: attachment.fileName,\n\t\t\t\t\tsource: `${source}#attachments/${attachment.fileName}`,\n\t\t\t\t\ttitle: headers.subject\n\t\t\t\t\t\t? `${headers.subject} · ${attachment.fileName}`\n\t\t\t\t\t\t: attachment.fileName\n\t\t\t\t});\n\n\t\t\t\treturn documents;\n\t\t\t})\n\t\t);\n\n\t\tconst messageDocument: RAGExtractedFileDocument = {\n\t\t\tchunking: input.chunking,\n\t\t\tcontentType: input.contentType,\n\t\t\tformat: 'text',\n\t\t\tmetadata: messageMetadata,\n\t\t\tsource,\n\t\t\ttext: extractEmailText(raw),\n\t\t\ttitle: input.title ?? headers.subject\n\t\t};\n\n\t\treturn [messageDocument, ...attachmentDocuments.flat()];\n\t}\n});\nexport const createEPUBExtractor = (): RAGFileExtractor => ({\n\tname: 'absolute_epub',\n\tsupports: epubExtractorSupports,\n\textract: (input) => {\n\t\tconst text = epubText(unzipEntries(input.data));\n\t\tif (!text) {\n\t\t\tthrow new Error(\n\t\t\t\t`AbsoluteJS could not extract readable text from ${inferNameFromInput(input)}`\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\tchunking: input.chunking,\n\t\t\tcontentType: input.contentType,\n\t\t\tformat: 'text',\n\t\t\tmetadata: {\n\t\t\t\t...(input.metadata ?? {}),\n\t\t\t\tfileKind: 'epub'\n\t\t\t},\n\t\t\tsource:\n\t\t\t\tinput.source ??\n\t\t\t\tinput.path ??\n\t\t\t\tinput.name ??\n\t\t\t\t`${slugify(input.title ?? DEFAULT_BINARY_NAME)}.epub`,\n\t\t\ttext,\n\t\t\ttitle: input.title\n\t\t};\n\t}\n});\nexport const createLegacyDocumentExtractor = (): RAGFileExtractor => ({\n\tname: 'absolute_legacy_document',\n\tsupports: legacyExtractorSupports,\n\textract: (input) => {\n\t\tconst extension = inferExtensionFromInput(input);\n\t\tconst raw =\n\t\t\textension === '.rtf'\n\t\t\t\t? stripRTF(Buffer.from(input.data).toString('latin1'))\n\t\t\t\t: extractPrintableStrings(input.data);\n\n\t\tif (!raw) {\n\t\t\tthrow new Error(\n\t\t\t\t`AbsoluteJS could not extract readable text from ${inferNameFromInput(input)}`\n\t\t\t);\n\t\t}\n\n\t\tconst fileKind =\n\t\t\textension === '.msg'\n\t\t\t\t? 'email'\n\t\t\t\t: extension === '.rtf'\n\t\t\t\t\t? 'rtf'\n\t\t\t\t\t: 'legacy_office';\n\n\t\treturn {\n\t\t\tchunking: input.chunking,\n\t\t\tcontentType: input.contentType,\n\t\t\tformat: 'text',\n\t\t\tmetadata: {\n\t\t\t\t...(input.metadata ?? {}),\n\t\t\t\tfileKind,\n\t\t\t\tlegacyFormat: extension.replace(/^\\./, '')\n\t\t\t},\n\t\t\tsource:\n\t\t\t\tinput.source ??\n\t\t\t\tinput.path ??\n\t\t\t\tinput.name ??\n\t\t\t\t`${slugify(input.title ?? DEFAULT_BINARY_NAME)}${extension || '.legacy'}`,\n\t\t\ttext: raw,\n\t\t\ttitle: input.title\n\t\t};\n\t}\n});\nexport const createOfficeDocumentExtractor = (): RAGFileExtractor => ({\n\tname: 'absolute_office_document',\n\tsupports: officeExtractorSupports,\n\textract: (input) => {\n\t\tconst extension = inferExtensionFromInput(input);\n\t\tconst entries = unzipEntries(input.data);\n\t\tlet text = '';\n\t\tlet officeMetadata: Record<string, unknown> = {};\n\t\tlet structuredDocuments: RAGExtractedFileDocument[] = [];\n\t\tif (extension === '.docx' || extension === '.odt') {\n\t\t\ttext = officeDocumentText(entries);\n\t\t\tofficeMetadata = {\n\t\t\t\tsectionCount: officeDocumentSectionCount(entries)\n\t\t\t};\n\t\t} else if (extension === '.xlsx' || extension === '.ods') {\n\t\t\ttext = spreadsheetText(entries);\n\t\t\tconst sheets = spreadsheetSheetTexts(entries);\n\t\t\tconst workbookLabel =\n\t\t\t\tinput.title ??\n\t\t\t\tinput.name ??\n\t\t\t\tinput.path ??\n\t\t\t\tinput.source ??\n\t\t\t\tDEFAULT_BINARY_NAME;\n\t\t\tofficeMetadata = {\n\t\t\t\tsheetNames: spreadsheetSheetNames(entries)\n\t\t\t};\n\t\t\tstructuredDocuments = sheets.map((sheet, index) => ({\n\t\t\t\tchunking: input.chunking,\n\t\t\t\tcontentType: input.contentType,\n\t\t\t\tformat: 'text',\n\t\t\t\tmetadata: {\n\t\t\t\t\t...(input.metadata ?? {}),\n\t\t\t\t\tfileKind: 'office',\n\t\t\t\t\t...officeMetadata,\n\t\t\t\t\tsourceNativeKind: 'spreadsheet_sheet',\n\t\t\t\t\tsheetIndex: index,\n\t\t\t\t\tsheetName: sheet.name\n\t\t\t\t},\n\t\t\t\tsource:\n\t\t\t\t\tinput.source ??\n\t\t\t\t\tinput.path ??\n\t\t\t\t\tinput.name ??\n\t\t\t\t\t`${slugify(input.title ?? DEFAULT_BINARY_NAME)}${extension || '.office'}`,\n\t\t\t\ttext: normalizeWhitespace(\n\t\t\t\t\t`Spreadsheet workbook ${workbookLabel}. ` +\n\t\t\t\t\t\t`Worksheet ${index + 1}. ` +\n\t\t\t\t\t\t`Workbook sheet named ${sheet.name}. ` +\n\t\t\t\t\t\t`Sheet ${sheet.name} from spreadsheet workbook ${workbookLabel}.` +\n\t\t\t\t\t\t`\\n${sheet.text}`\n\t\t\t\t),\n\t\t\t\ttitle: input.title\n\t\t\t\t\t? `${input.title} · Sheet ${sheet.name}`\n\t\t\t\t\t: `Sheet ${sheet.name}`\n\t\t\t}));\n\t\t} else if (extension === '.pptx' || extension === '.odp') {\n\t\t\ttext = presentationText(entries);\n\t\t\tconst slides = presentationSlides(entries);\n\t\t\tofficeMetadata = {\n\t\t\t\tslideCount: presentationSlideCount(entries)\n\t\t\t};\n\t\t\tstructuredDocuments = slides.map((slide) => ({\n\t\t\t\tchunking: input.chunking,\n\t\t\t\tcontentType: input.contentType,\n\t\t\t\tformat: 'text',\n\t\t\t\tmetadata: {\n\t\t\t\t\t...(input.metadata ?? {}),\n\t\t\t\t\tfileKind: 'office',\n\t\t\t\t\t...officeMetadata,\n\t\t\t\t\tsourceNativeKind: 'presentation_slide',\n\t\t\t\t\tslideIndex: slide.index,\n\t\t\t\t\tslideNumber: slide.index + 1\n\t\t\t\t},\n\t\t\t\tsource:\n\t\t\t\t\tinput.source ??\n\t\t\t\t\tinput.path ??\n\t\t\t\t\tinput.name ??\n\t\t\t\t\t`${slugify(input.title ?? DEFAULT_BINARY_NAME)}${extension || '.office'}`,\n\t\t\t\ttext: normalizeWhitespace(\n\t\t\t\t\t`Presentation slide ${slide.index + 1} from ${\n\t\t\t\t\t\tinput.title ??\n\t\t\t\t\t\tinput.name ??\n\t\t\t\t\t\tinput.path ??\n\t\t\t\t\t\tDEFAULT_BINARY_NAME\n\t\t\t\t\t}.\\n${slide.text}`\n\t\t\t\t),\n\t\t\t\ttitle: input.title\n\t\t\t\t\t? `${input.title} · Slide ${slide.index + 1}`\n\t\t\t\t\t: `Slide ${slide.index + 1}`\n\t\t\t}));\n\t\t}\n\n\t\tif (!text) {\n\t\t\tthrow new Error(\n\t\t\t\t`AbsoluteJS could not extract readable text from ${inferNameFromInput(input)}`\n\t\t\t);\n\t\t}\n\n\t\tconst summaryDocument: RAGExtractedFileDocument = {\n\t\t\tchunking: input.chunking,\n\t\t\tcontentType: input.contentType,\n\t\t\tformat: 'text',\n\t\t\tmetadata: {\n\t\t\t\t...(input.metadata ?? {}),\n\t\t\t\tfileKind: 'office',\n\t\t\t\t...officeMetadata\n\t\t\t},\n\t\t\tsource:\n\t\t\t\tinput.source ??\n\t\t\t\tinput.path ??\n\t\t\t\tinput.name ??\n\t\t\t\t`${slugify(input.title ?? DEFAULT_BINARY_NAME)}${extension || '.office'}`,\n\t\t\ttext,\n\t\t\ttitle: input.title\n\t\t};\n\n\t\treturn [summaryDocument, ...structuredDocuments];\n\t}\n});\nexport const createRAGArchiveExpander = (expander: RAGArchiveExpander) =>\n\texpander;\nexport const createRAGFileExtractor = (extractor: RAGFileExtractor) =>\n\textractor;\nexport const createRAGImageOCRExtractor = (\n\tprovider: RAGOCRProvider\n): RAGFileExtractor => ({\n\tname: `absolute_image_ocr:${provider.name}`,\n\tsupports: imageExtractorSupports,\n\textract: async (input) => {\n\t\tconst result = await provider.extractText(input);\n\n\t\treturn {\n\t\t\tchunking: input.chunking,\n\t\t\tcontentType: input.contentType,\n\t\t\tformat: 'text',\n\t\t\tmetadata: {\n\t\t\t\t...(input.metadata ?? {}),\n\t\t\t\t...ocrMetadata(result),\n\t\t\t\tfileKind: 'image'\n\t\t\t},\n\t\t\tsource:\n\t\t\t\tinput.source ??\n\t\t\t\tinput.path ??\n\t\t\t\tinput.name ??\n\t\t\t\t`${slugify(input.title ?? DEFAULT_BINARY_NAME)}.image.txt`,\n\t\t\ttext: result.text,\n\t\t\ttitle: result.title ?? input.title\n\t\t};\n\t}\n});\nexport const createRAGMediaFileExtractor = (\n\ttranscriber: RAGMediaTranscriber\n): RAGFileExtractor => ({\n\tname: `absolute_media:${transcriber.name}`,\n\tsupports: mediaExtractorSupports,\n\textract: async (input) => {\n\t\tconst result = await transcriber.transcribe(input);\n\t\tconst source =\n\t\t\tinput.source ??\n\t\t\tinput.path ??\n\t\t\tinput.name ??\n\t\t\t`${slugify(input.title ?? DEFAULT_BINARY_NAME)}.media.txt`;\n\t\tconst segmentDocuments: RAGExtractedFileDocument[] = [];\n\t\tfor (const [index, segment] of (result.segments ?? []).entries()) {\n\t\t\tconst text = normalizeWhitespace(segment.text ?? '');\n\t\t\tif (!text) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst startMs =\n\t\t\t\ttypeof segment.startMs === 'number'\n\t\t\t\t\t? segment.startMs\n\t\t\t\t\t: undefined;\n\t\t\tconst endMs =\n\t\t\t\ttypeof segment.endMs === 'number' ? segment.endMs : undefined;\n\t\t\tconst startLabel = formatMediaTimestampForIngest(startMs);\n\t\t\tconst endLabel = formatMediaTimestampForIngest(endMs);\n\t\t\tconst mediaKind =\n\t\t\t\ttypeof result.metadata?.mediaKind === 'string'\n\t\t\t\t\t? result.metadata.mediaKind\n\t\t\t\t\t: 'media';\n\n\t\t\tsegmentDocuments.push({\n\t\t\t\tchunking: input.chunking,\n\t\t\t\tcontentType: input.contentType,\n\t\t\t\tformat: 'text',\n\t\t\t\tmetadata: {\n\t\t\t\t\t...(input.metadata ?? {}),\n\t\t\t\t\t...(result.metadata ?? {}),\n\t\t\t\t\tfileKind: 'media',\n\t\t\t\t\tsourceNativeKind: 'media_segment',\n\t\t\t\t\tmediaSegmentIndex: index,\n\t\t\t\t\tmediaSegmentStartMs: startMs,\n\t\t\t\t\tmediaSegmentEndMs: endMs,\n\t\t\t\t\tmediaSegments: [segment],\n\t\t\t\t\tspeaker:\n\t\t\t\t\t\ttypeof segment.speaker === 'string'\n\t\t\t\t\t\t\t? segment.speaker\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t},\n\t\t\t\tsource,\n\t\t\t\ttext: normalizeWhitespace(\n\t\t\t\t\t`${mediaKind} transcript segment${\n\t\t\t\t\t\tstartLabel\n\t\t\t\t\t\t\t? ` at timestamp ${startLabel}${\n\t\t\t\t\t\t\t\t\tendLabel ? ` to ${endLabel}` : ''\n\t\t\t\t\t\t\t\t}`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t} from ${\n\t\t\t\t\t\tinput.title ??\n\t\t\t\t\t\tinput.name ??\n\t\t\t\t\t\tinput.path ??\n\t\t\t\t\t\tDEFAULT_BINARY_NAME\n\t\t\t\t\t}. ` +\n\t\t\t\t\t\t`${mediaKind} timestamp evidence${\n\t\t\t\t\t\t\tstartLabel\n\t\t\t\t\t\t\t\t? ` ${startLabel}${endLabel ? ` to ${endLabel}` : ''}`\n\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t}.` +\n\t\t\t\t\t\t`\\n${text}`\n\t\t\t\t),\n\t\t\t\ttitle: input.title\n\t\t\t\t\t? `${input.title} · ${\n\t\t\t\t\t\t\tmediaKind[0]?.toUpperCase() + mediaKind.slice(1)\n\t\t\t\t\t\t} segment ${index + 1}`\n\t\t\t\t\t: `${mediaKind[0]?.toUpperCase() + mediaKind.slice(1)} segment ${index + 1}`\n\t\t\t});\n\t\t}\n\n\t\tconst summaryDocument: RAGExtractedFileDocument = {\n\t\t\tchunking: input.chunking,\n\t\t\tcontentType: input.contentType,\n\t\t\tformat: 'text',\n\t\t\tmetadata: {\n\t\t\t\t...(input.metadata ?? {}),\n\t\t\t\t...(result.metadata ?? {}),\n\t\t\t\tfileKind: 'media',\n\t\t\t\tmediaSegments: result.segments\n\t\t\t},\n\t\t\tsource,\n\t\t\ttext: result.text,\n\t\t\ttitle: result.title ?? input.title\n\t\t};\n\n\t\treturn [summaryDocument, ...segmentDocuments];\n\t}\n});\nexport const createRAGMediaTranscriber = (transcriber: RAGMediaTranscriber) =>\n\ttranscriber;\nexport const createRAGOCRProvider = (provider: RAGOCRProvider) => provider;\nexport const createTextFileExtractor = (): RAGFileExtractor => ({\n\tname: 'absolute_text',\n\tsupports: textExtractorSupports,\n\textract: (input) => ({\n\t\tchunking: input.chunking,\n\t\tcontentType: input.contentType,\n\t\tformat:\n\t\t\tinput.format ??\n\t\t\tinferFormatFromContentType(input.contentType ?? null) ??\n\t\t\tinferFormatFromName(\n\t\t\t\tinput.path ?? input.source ?? input.name ?? input.title\n\t\t\t),\n\t\tmetadata: input.metadata,\n\t\tsource: input.source ?? input.path ?? input.name,\n\t\ttext: Buffer.from(input.data).toString('utf8'),\n\t\ttitle: input.title\n\t})\n});\n\nconst expandArchiveEntry = async (\n\tentry: RAGArchiveEntry,\n\tarchiveInput: RAGFileExtractionInput,\n\textractors?: RAGFileExtractor[]\n) => {\n\tconst documents = await extractRAGFileDocuments(\n\t\t{\n\t\t\tchunking: archiveInput.chunking,\n\t\t\tcontentType: entry.contentType,\n\t\t\tdata: entry.data,\n\t\t\tformat: entry.format,\n\t\t\tmetadata: {\n\t\t\t\t...(archiveInput.metadata ?? {}),\n\t\t\t\t...(entry.metadata ?? {}),\n\t\t\t\tarchiveEntryName: basename(entry.path),\n\t\t\t\tarchiveParentName:\n\t\t\t\t\tarchiveInput.name ??\n\t\t\t\t\tarchiveInput.path?.split(/[/\\\\]/).pop() ??\n\t\t\t\t\tarchiveInput.source,\n\t\t\t\tarchiveParentSource:\n\t\t\t\t\tarchiveInput.source ??\n\t\t\t\t\tarchiveInput.path ??\n\t\t\t\t\tarchiveInput.name,\n\t\t\t\tarchivePath: entry.path,\n\t\t\t\tfileKind: 'archive_entry'\n\t\t\t},\n\t\t\tname: basename(entry.path),\n\t\t\tsource:\n\t\t\t\tarchiveInput.source && !archiveInput.source.startsWith('http')\n\t\t\t\t\t? `${archiveInput.source}#${entry.path}`\n\t\t\t\t\t: entry.path,\n\t\t\ttitle: basename(entry.path)\n\t\t},\n\t\textractors\n\t);\n\n\treturn documents;\n};\n\nexport const createPDFFileExtractor = (): RAGFileExtractor => ({\n\tname: 'absolute_pdf',\n\tsupports: pdfExtractorSupports,\n\textract: (input) => {\n\t\tconst text = extractTextFromPDFBytes(input.data);\n\t\tif (!text) {\n\t\t\tthrow new Error(\n\t\t\t\t'AbsoluteJS could not extract readable text from this PDF. Supply a custom extractor for scanned or image-only PDFs.'\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\tchunking: input.chunking,\n\t\t\tcontentType: input.contentType ?? 'application/pdf',\n\t\t\tformat: 'text',\n\t\t\tmetadata: {\n\t\t\t\t...(input.metadata ?? {}),\n\t\t\t\tfileKind: 'pdf',\n\t\t\t\tpageCount: estimatePDFPageCount(input.data)\n\t\t\t},\n\t\t\tsource:\n\t\t\t\tinput.source ??\n\t\t\t\tinput.path ??\n\t\t\t\tinput.name ??\n\t\t\t\t`${slugify(input.title ?? DEFAULT_BINARY_NAME)}.pdf`,\n\t\t\ttext,\n\t\t\ttitle: input.title\n\t\t};\n\t}\n});\nexport const createRAGArchiveFileExtractor = (\n\texpander: RAGArchiveExpander,\n\toptions: {\n\t\tentryExtractors?: RAGFileExtractor[];\n\t} = {}\n): RAGFileExtractor => ({\n\tname: `absolute_archive:${expander.name}`,\n\tsupports: archiveExtractorSupports,\n\textract: async (input) => {\n\t\tconst expanded = await expander.expand(input);\n\t\tconst documents = await Promise.all(\n\t\t\texpanded.entries.map((entry) =>\n\t\t\t\texpandArchiveEntry(\n\t\t\t\t\tentry,\n\t\t\t\t\tinput,\n\t\t\t\t\toptions.entryExtractors ?? DEFAULT_FILE_EXTRACTORS\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\n\t\treturn documents.flat().map((document) => ({\n\t\t\t...document,\n\t\t\tmetadata: {\n\t\t\t\t...(expanded.metadata ?? {}),\n\t\t\t\t...(document.metadata ?? {}),\n\t\t\t\tfileKind: 'archive'\n\t\t\t}\n\t\t}));\n\t}\n});\nexport const createRAGPDFOCRExtractor = (\n\toptions: RAGPDFOCRExtractorOptions\n): RAGFileExtractor => ({\n\tname: `absolute_pdf_ocr:${options.provider.name}`,\n\tsupports: pdfExtractorSupports,\n\textract: async (input) => {\n\t\tconst nativeText = extractTextFromPDFBytes(input.data);\n\t\tconst minLength = options.minExtractedTextLength ?? 80;\n\t\tconst shouldUseNativeText =\n\t\t\t!options.alwaysOCR && nativeText.length >= minLength;\n\n\t\tif (shouldUseNativeText) {\n\t\t\treturn {\n\t\t\t\tchunking: input.chunking,\n\t\t\t\tcontentType: input.contentType ?? 'application/pdf',\n\t\t\t\tformat: 'text',\n\t\t\t\tmetadata: {\n\t\t\t\t\t...(input.metadata ?? {}),\n\t\t\t\t\tfileKind: 'pdf',\n\t\t\t\t\tpageCount: estimatePDFPageCount(input.data),\n\t\t\t\t\tpdfTextMode: 'native'\n\t\t\t\t},\n\t\t\t\tsource:\n\t\t\t\t\tinput.source ??\n\t\t\t\t\tinput.path ??\n\t\t\t\t\tinput.name ??\n\t\t\t\t\t`${slugify(input.title ?? DEFAULT_BINARY_NAME)}.pdf`,\n\t\t\t\ttext: nativeText,\n\t\t\t\ttitle: input.title\n\t\t\t};\n\t\t}\n\n\t\tconst ocr = await options.provider.extractText({\n\t\t\t...input,\n\t\t\tcontentType: input.contentType ?? 'application/pdf'\n\t\t});\n\t\tconst baseMetadata = {\n\t\t\t...ocrMetadata(ocr),\n\t\t\tfileKind: 'pdf',\n\t\t\tpageCount: estimatePDFPageCount(input.data),\n\t\t\tpdfTextMode: 'ocr'\n\t\t};\n\n\t\tconst summaryDocument: RAGExtractedFileDocument = {\n\t\t\tchunking: input.chunking,\n\t\t\tcontentType: input.contentType ?? 'application/pdf',\n\t\t\tformat: 'text',\n\t\t\tmetadata: {\n\t\t\t\t...(input.metadata ?? {}),\n\t\t\t\t...baseMetadata\n\t\t\t},\n\t\t\tsource:\n\t\t\t\tinput.source ??\n\t\t\t\tinput.path ??\n\t\t\t\tinput.name ??\n\t\t\t\t`${slugify(input.title ?? DEFAULT_BINARY_NAME)}.pdf`,\n\t\t\ttext: ocr.text,\n\t\t\ttitle: ocr.title ?? input.title\n\t\t};\n\t\tconst pageDocuments = ocrPageDocuments(ocr, input, baseMetadata);\n\t\tconst regionDocuments = ocrRegionDocuments(ocr, input, baseMetadata);\n\n\t\treturn [summaryDocument, ...pageDocuments, ...regionDocuments];\n\t}\n});\n\nconst DEFAULT_FILE_EXTRACTORS = [\n\tcreateOfficeDocumentExtractor(),\n\tcreateLegacyDocumentExtractor(),\n\tcreateEPUBExtractor(),\n\tcreateEmailExtractor(),\n\tcreateRAGArchiveFileExtractor(createBuiltinArchiveExpander()),\n\tcreatePDFFileExtractor(),\n\tcreateTextFileExtractor()\n] satisfies RAGFileExtractor[];\n\nconst resolveFileExtractors = (extractors?: RAGFileExtractor[]) =>\n\textractors && extractors.length > 0\n\t\t? [...extractors, ...DEFAULT_FILE_EXTRACTORS]\n\t\t: DEFAULT_FILE_EXTRACTORS;\n\nconst applyExtractorDefaults = (\n\tdocument: RAGExtractedFileDocument,\n\tinput: RAGFileExtractionInput,\n\textractorName: string\n): RAGIngestDocument => ({\n\tchunking: document.chunking ?? input.chunking,\n\tformat:\n\t\tdocument.format ??\n\t\tinput.format ??\n\t\tinferFormatFromContentType(\n\t\t\tdocument.contentType ?? input.contentType ?? null\n\t\t) ??\n\t\tinferFormatFromName(\n\t\t\tdocument.source ?? input.source ?? input.path ?? input.name\n\t\t),\n\tid: document.id,\n\tmetadata: {\n\t\t...(input.metadata ?? {}),\n\t\t...(document.metadata ?? {}),\n\t\tcontentType: document.contentType ?? input.contentType,\n\t\textractor: document.extractor ?? extractorName\n\t},\n\tsource: document.source ?? input.source ?? input.path ?? input.name,\n\ttext: document.text,\n\ttitle: document.title ?? input.title\n});\n\nconst extractRAGFileDocuments = async (\n\tinput: RAGFileExtractionInput,\n\textractors?: RAGFileExtractor[]\n) => {\n\tfor (const extractor of resolveFileExtractors(extractors)) {\n\t\tif (!(await extractor.supports(input))) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst extracted = await extractor.extract(input);\n\t\tconst documents = Array.isArray(extracted) ? extracted : [extracted];\n\n\t\treturn documents.map((document) =>\n\t\t\tapplyExtractorDefaults(document, input, extractor.name)\n\t\t);\n\t}\n\n\tthrow new Error(\n\t\t`No RAG file extractor matched ${inferNameFromInput(input)}. Register a custom extractor for this file type.`\n\t);\n};\n\nconst getFirstExtractedDocument = (\n\tdocuments: RAGIngestDocument[],\n\tlabel: string\n) => {\n\tconst document = documents[0];\n\tif (!document) {\n\t\tthrow new Error(`RAG extractor ${label} did not return a document`);\n\t}\n\n\treturn document;\n};\n\nconst loadExtractedDocuments = async (\n\tinput: RAGFileExtractionInput,\n\textractors?: RAGFileExtractor[]\n) => extractRAGFileDocuments(input, extractors);\n\nconst sentenceUnits = (text: string) => {\n\tconst matches = text.match(/[^.!?\\n]+(?:[.!?]+|$)/g);\n\tif (!matches) {\n\t\treturn [text];\n\t}\n\n\treturn matches.map((entry) => entry.trim()).filter(Boolean);\n};\n\nconst paragraphUnits = (text: string) => {\n\tconst paragraphs = text\n\t\t.split(/\\n\\n+/)\n\t\t.map((entry) => entry.trim())\n\t\t.filter(Boolean);\n\n\treturn paragraphs.length > 0 ? paragraphs : sentenceUnits(text);\n};\n\nconst fixedUnits = (text: string, maxChunkLength: number) => {\n\tconst units: string[] = [];\n\tlet index = 0;\n\twhile (index < text.length) {\n\t\tunits.push(text.slice(index, index + maxChunkLength));\n\t\tindex += maxChunkLength;\n\t}\n\n\treturn units;\n};\n\nconst sourceAwareUnits = (\n\tdocument: RAGIngestDocument,\n\tformat: RAGContentFormat,\n\tnormalizedText: string\n): StructuredChunkUnit[] => {\n\tconst resolveStructuredUnits = (sections: StructuredChunkUnit[]) =>\n\t\tsections.length > 0\n\t\t\t? sections\n\t\t\t: paragraphUnits(normalizedText).map((text) => ({ text }));\n\n\tswitch (format) {\n\t\tcase 'markdown': {\n\t\t\tconst sections = markdownStructureUnits(document.text);\n\n\t\t\treturn resolveStructuredUnits(sections);\n\t\t}\n\t\tcase 'html': {\n\t\t\tconst sections = htmlStructureUnits(document.text);\n\n\t\t\treturn resolveStructuredUnits(sections);\n\t\t}\n\t\tcase 'text':\n\t\tdefault:\n\t\t\tif (document.metadata?.sourceNativeKind === 'spreadsheet_sheet') {\n\t\t\t\treturn spreadsheetStructureUnits(\n\t\t\t\t\tnormalizedText,\n\t\t\t\t\tdocument.metadata\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (document.metadata?.sourceNativeKind === 'presentation_slide') {\n\t\t\t\treturn presentationStructureUnits(\n\t\t\t\t\tnormalizedText,\n\t\t\t\t\tdocument.metadata\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (\n\t\t\t\tdocument.source?.toLowerCase().endsWith('.docx') ||\n\t\t\t\tdocument.source?.toLowerCase().endsWith('.odt')\n\t\t\t) {\n\t\t\t\treturn officeHeadingStructureUnits(normalizedText);\n\t\t\t}\n\t\t\treturn paragraphUnits(normalizedText).map((text) => ({ text }));\n\t}\n};\n\nconst overlapTail = (value: string, overlap: number) => {\n\tif (overlap <= 0 || value.length <= overlap) {\n\t\treturn value;\n\t}\n\n\tconst candidate = value.slice(-overlap);\n\tconst boundary = candidate.search(/[\\s,.;:!?-]/);\n\n\treturn boundary > 0 ? candidate.slice(boundary).trim() : candidate.trim();\n};\n\nconst chunkFromUnits = (\n\tunits: string[],\n\tmaxChunkLength: number,\n\tchunkOverlap: number,\n\tminChunkLength: number\n) => {\n\tconst chunks: string[] = [];\n\tlet current = '';\n\tconst appendChunk = (chunk: string) => {\n\t\tchunks.push(chunk);\n\t};\n\tconst mergeSmallChunk = (merged: string[], chunk: string) => {\n\t\tconst last = merged[merged.length - 1];\n\t\tif (!(last && chunk.length < minChunkLength)) {\n\t\t\tmerged.push(chunk);\n\n\t\t\treturn;\n\t\t}\n\n\t\tmerged[merged.length - 1] = normalizeWhitespace(`${last} ${chunk}`);\n\t};\n\tconst appendUnitToChunk = (trimmed: string) => {\n\t\tif (!current) {\n\t\t\tcurrent = trimmed;\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst separator =\n\t\t\tcurrent.includes('\\n') || trimmed.includes('\\n') ? '\\n\\n' : ' ';\n\t\tconst candidate = `${current}${separator}${trimmed}`;\n\t\tif (candidate.length <= maxChunkLength) {\n\t\t\tcurrent = candidate;\n\n\t\t\treturn;\n\t\t}\n\n\t\tappendChunk(current);\n\t\tconst carry = overlapTail(current, chunkOverlap);\n\t\tcurrent = carry.length > 0 ? `${carry} ${trimmed}`.trim() : trimmed;\n\t};\n\n\tfor (const unit of units) {\n\t\tconst trimmed = unit.trim();\n\t\tif (!trimmed) continue;\n\t\tappendUnitToChunk(trimmed);\n\t}\n\n\tif (current) {\n\t\tappendChunk(current);\n\t}\n\n\tconst normalizedChunks = chunks\n\t\t.map((entry) => normalizeWhitespace(entry))\n\t\t.filter(Boolean);\n\n\tif (normalizedChunks.length <= 1) {\n\t\treturn normalizedChunks;\n\t}\n\n\tconst merged: string[] = [];\n\tfor (const chunk of normalizedChunks) {\n\t\tmergeSmallChunk(merged, chunk);\n\t}\n\n\treturn merged;\n};\n\nconst chunkSourceAwareUnit = (\n\tunit: StructuredChunkUnit,\n\toptions: Required<\n\t\tPick<\n\t\t\tRAGChunkingOptions,\n\t\t\t'chunkOverlap' | 'maxChunkLength' | 'minChunkLength' | 'strategy'\n\t\t>\n\t>\n) => {\n\tif (unit.text.length <= options.maxChunkLength) {\n\t\treturn [unit];\n\t}\n\n\tconst expandOversizedParagraph = (paragraph: string) => {\n\t\tif (paragraph.length <= options.maxChunkLength) {\n\t\t\treturn [paragraph];\n\t\t}\n\n\t\tconst sentenceChunks = chunkFromUnits(\n\t\t\tsentenceUnits(paragraph),\n\t\t\toptions.maxChunkLength,\n\t\t\t0,\n\t\t\toptions.minChunkLength\n\t\t);\n\t\tif (sentenceChunks.length > 1) {\n\t\t\treturn sentenceChunks;\n\t\t}\n\n\t\treturn chunkFromUnits(\n\t\t\tfixedUnits(paragraph, options.maxChunkLength),\n\t\t\toptions.maxChunkLength,\n\t\t\t0,\n\t\t\toptions.minChunkLength\n\t\t);\n\t};\n\n\tconst stableParagraphs = (\n\t\tunit.preferredChunkUnits ?? paragraphUnits(unit.text)\n\t).flatMap(expandOversizedParagraph);\n\tconst stableChunks: string[] = [];\n\tlet current = '';\n\n\tconst pushCurrent = () => {\n\t\tif (!current) {\n\t\t\treturn;\n\t\t}\n\n\t\tstableChunks.push(normalizeWhitespace(current));\n\t\tcurrent = '';\n\t};\n\n\tfor (const paragraph of stableParagraphs) {\n\t\tconst trimmed = paragraph.trim();\n\t\tif (!trimmed) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!current) {\n\t\t\tcurrent = trimmed;\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst candidate = `${current}\\n\\n${trimmed}`;\n\t\tif (candidate.length <= options.maxChunkLength) {\n\t\t\tcurrent = candidate;\n\t\t\tcontinue;\n\t\t}\n\n\t\tpushCurrent();\n\t\tcurrent = trimmed;\n\t}\n\n\tpushCurrent();\n\n\tconst merged: string[] = [];\n\tfor (const chunk of stableChunks) {\n\t\tconst last = merged.at(-1);\n\t\tif (\n\t\t\tlast &&\n\t\t\tchunk.length < options.minChunkLength &&\n\t\t\t`${last}\\n\\n${chunk}`.length <= options.maxChunkLength\n\t\t) {\n\t\t\tmerged[merged.length - 1] = normalizeWhitespace(\n\t\t\t\t`${last}\\n\\n${chunk}`\n\t\t\t);\n\t\t\tcontinue;\n\t\t}\n\n\t\tmerged.push(chunk);\n\t}\n\n\tconst decorateSourceAwareChunkText = (text: string) => {\n\t\tif (!unit.preferredChunkUnits || !unit.sectionTitle) {\n\t\t\treturn text;\n\t\t}\n\n\t\tif (unit.sectionKind === 'spreadsheet_rows') {\n\t\t\tif (text.includes(`Sheet ${unit.sectionTitle}`)) {\n\t\t\t\treturn text;\n\t\t\t}\n\t\t\treturn normalizeWhitespace(`Sheet ${unit.sectionTitle}\\n${text}`);\n\t\t}\n\n\t\tif (unit.sectionKind === 'presentation_slide') {\n\t\t\tif (text.includes(unit.sectionTitle)) {\n\t\t\t\treturn text;\n\t\t\t}\n\t\t\treturn normalizeWhitespace(`${unit.sectionTitle}\\n${text}`);\n\t\t}\n\n\t\treturn text;\n\t};\n\n\treturn merged.map((text) => ({\n\t\t...unit,\n\t\ttext: decorateSourceAwareChunkText(text)\n\t}));\n};\n\nconst resolveChunkingUnits = (\n\ttext: string,\n\toptions: Required<\n\t\tPick<\n\t\t\tRAGChunkingOptions,\n\t\t\t'chunkOverlap' | 'maxChunkLength' | 'minChunkLength' | 'strategy'\n\t\t>\n\t>\n) => {\n\tif (options.strategy === 'fixed') {\n\t\treturn fixedUnits(text, options.maxChunkLength);\n\t}\n\n\tif (options.strategy === 'sentences') {\n\t\treturn sentenceUnits(text);\n\t}\n\n\treturn paragraphUnits(text);\n};\n\nconst resolveChunkingOptions = (\n\tdocument: RAGIngestDocument,\n\tdefaults?: RAGChunkingOptions\n): Required<\n\tPick<\n\t\tRAGChunkingOptions,\n\t\t'chunkOverlap' | 'maxChunkLength' | 'minChunkLength' | 'strategy'\n\t>\n> => {\n\tconst maxChunkLength =\n\t\tdocument.chunking?.maxChunkLength ??\n\t\tdefaults?.maxChunkLength ??\n\t\tDEFAULT_MAX_CHUNK_LENGTH;\n\tconst chunkOverlap =\n\t\tdocument.chunking?.chunkOverlap ??\n\t\tdefaults?.chunkOverlap ??\n\t\tDEFAULT_CHUNK_OVERLAP;\n\tconst minChunkLength =\n\t\tdocument.chunking?.minChunkLength ??\n\t\tdefaults?.minChunkLength ??\n\t\tDEFAULT_MIN_CHUNK_LENGTH;\n\tconst strategy =\n\t\tdocument.chunking?.strategy ?? defaults?.strategy ?? DEFAULT_STRATEGY;\n\n\treturn {\n\t\tchunkOverlap: Math.max(0, Math.min(chunkOverlap, maxChunkLength - 1)),\n\t\tmaxChunkLength: Math.max(RAG_MIN_CHUNK_LENGTH_FLOOR, maxChunkLength),\n\t\tminChunkLength: Math.max(1, minChunkLength),\n\t\tstrategy\n\t};\n};\n\nconst createChunkEntries = (\n\tdocument: RAGIngestDocument,\n\tformat: RAGContentFormat,\n\ttext: string,\n\toptions: Required<\n\t\tPick<\n\t\t\tRAGChunkingOptions,\n\t\t\t'chunkOverlap' | 'maxChunkLength' | 'minChunkLength' | 'strategy'\n\t\t>\n\t>\n) => {\n\tif (\n\t\ttext.length <= options.maxChunkLength &&\n\t\toptions.strategy !== 'source_aware'\n\t) {\n\t\treturn [{ text }];\n\t}\n\n\tif (options.strategy === 'source_aware') {\n\t\treturn sourceAwareUnits(document, format, text).flatMap((unit) =>\n\t\t\tchunkSourceAwareUnit(unit, options)\n\t\t);\n\t}\n\n\tconst units = resolveChunkingUnits(text, options);\n\n\treturn chunkFromUnits(\n\t\tunits,\n\t\toptions.maxChunkLength,\n\t\toptions.chunkOverlap,\n\t\toptions.minChunkLength\n\t).map((entry) => ({ text: entry }));\n};\n\nexport const prepareRAGDocument = (\n\tdocument: RAGIngestDocument,\n\tdefaultChunking?: RAGChunkingOptions\n): RAGPreparedDocument => {\n\tconst format = inferFormat(document);\n\tconst normalizedText = normalizeDocumentText(document.text, format);\n\tconst chunking = resolveChunkingOptions(document, defaultChunking);\n\tconst documentId =\n\t\tdocument.id?.trim() ||\n\t\tslugify(\n\t\t\tdocument.source ||\n\t\t\t\tdocument.title ||\n\t\t\t\tnormalizedText.slice(0, RAG_DOCUMENT_ID_PREVIEW_LENGTH)\n\t\t);\n\tconst title = document.title?.trim() || documentId;\n\tlet sourceExtension = 'txt';\n\tif (format === 'markdown') {\n\t\tsourceExtension = 'md';\n\t} else if (format === 'html') {\n\t\tsourceExtension = 'html';\n\t}\n\n\tconst source =\n\t\tdocument.source?.trim() || `${documentId}.${sourceExtension}`;\n\tconst metadata: RAGPreparedDocument['metadata'] = {\n\t\t...(document.metadata ?? {}),\n\t\tdocumentId,\n\t\tformat,\n\t\tsource,\n\t\ttitle\n\t};\n\tconst chunkEntries = createChunkEntries(\n\t\tdocument,\n\t\tformat,\n\t\tnormalizedText,\n\t\tchunking\n\t);\n\tconst chunks: RAGDocumentChunk[] = chunkEntries.map((entry, index) => {\n\t\tconst sectionPath = Array.isArray(entry.sectionPath)\n\t\t\t? entry.sectionPath.filter(\n\t\t\t\t\t(value) => typeof value === 'string' && value.length > 0\n\t\t\t\t)\n\t\t\t: undefined;\n\t\tconst sectionTitle =\n\t\t\ttypeof entry.sectionTitle === 'string' &&\n\t\t\tentry.sectionTitle.length > 0\n\t\t\t\t? entry.sectionTitle\n\t\t\t\t: sectionPath?.at(-1);\n\t\tconst chunkTitle =\n\t\t\tsectionTitle && sectionTitle !== title\n\t\t\t\t? `${title} · ${sectionTitle}`\n\t\t\t\t: title;\n\t\tconst sectionChunkId =\n\t\t\tsectionPath && sectionPath.length > 0\n\t\t\t\t? `${documentId}:section:${slugify(sectionPath.join(' '))}`\n\t\t\t\t: undefined;\n\t\tconst sectionSiblingIndexes =\n\t\t\tsectionChunkId === undefined\n\t\t\t\t? [index]\n\t\t\t\t: chunkEntries.reduce<number[]>(\n\t\t\t\t\t\t(indexes, candidate, candidateIndex) => {\n\t\t\t\t\t\t\tconst candidatePath = Array.isArray(\n\t\t\t\t\t\t\t\tcandidate.sectionPath\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t? candidate.sectionPath.filter(\n\t\t\t\t\t\t\t\t\t\t(value) =>\n\t\t\t\t\t\t\t\t\t\t\ttypeof value === 'string' &&\n\t\t\t\t\t\t\t\t\t\t\tvalue.length > 0\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\t\tconst candidateSectionId =\n\t\t\t\t\t\t\t\tcandidatePath && candidatePath.length > 0\n\t\t\t\t\t\t\t\t\t? `${documentId}:section:${slugify(candidatePath.join(' '))}`\n\t\t\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\t\tif (candidateSectionId === sectionChunkId) {\n\t\t\t\t\t\t\t\tindexes.push(candidateIndex);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn indexes;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t[]\n\t\t\t\t\t);\n\t\tconst sectionChunkIndex = sectionSiblingIndexes.indexOf(index);\n\t\tconst previousChunkId =\n\t\t\tindex > 0\n\t\t\t\t? `${documentId}:${String(index).padStart(RAG_CHUNK_ID_PAD_LENGTH, '0')}`\n\t\t\t\t: undefined;\n\t\tconst nextChunkId =\n\t\t\tindex + 1 < chunkEntries.length\n\t\t\t\t? `${documentId}:${String(index + 2).padStart(RAG_CHUNK_ID_PAD_LENGTH, '0')}`\n\t\t\t\t: undefined;\n\n\t\treturn {\n\t\t\tchunkId: `${documentId}:${String(index + 1).padStart(RAG_CHUNK_ID_PAD_LENGTH, '0')}`,\n\t\t\tmetadata: {\n\t\t\t\t...metadata,\n\t\t\t\tchunkCount: chunkEntries.length,\n\t\t\t\tchunkIndex: index,\n\t\t\t\t...(sectionTitle ? { sectionTitle } : {}),\n\t\t\t\t...(sectionPath && sectionPath.length > 0\n\t\t\t\t\t? { sectionPath }\n\t\t\t\t\t: {}),\n\t\t\t\t...(typeof entry.sectionDepth === 'number'\n\t\t\t\t\t? { sectionDepth: entry.sectionDepth }\n\t\t\t\t\t: {}),\n\t\t\t\t...(entry.sectionKind\n\t\t\t\t\t? { sectionKind: entry.sectionKind }\n\t\t\t\t\t: {}),\n\t\t\t\t...(sectionChunkId ? { sectionChunkId } : {}),\n\t\t\t\t...(sectionChunkId && sectionChunkIndex >= 0\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tsectionChunkCount: sectionSiblingIndexes.length,\n\t\t\t\t\t\t\tsectionChunkIndex\n\t\t\t\t\t\t}\n\t\t\t\t\t: {}),\n\t\t\t\t...(previousChunkId ? { previousChunkId } : {}),\n\t\t\t\t...(nextChunkId ? { nextChunkId } : {})\n\t\t\t},\n\t\t\tsource,\n\t\t\ttext: entry.text,\n\t\t\ttitle: chunkTitle\n\t\t};\n\t});\n\n\treturn {\n\t\tchunks,\n\t\tdocumentId,\n\t\tformat,\n\t\tmetadata,\n\t\tnormalizedText,\n\t\tsource,\n\t\ttitle\n\t};\n};\n\nexport const prepareRAGDocuments = (input: RAGDocumentIngestInput) =>\n\tinput.documents.map((document) =>\n\t\tprepareRAGDocument(document, input.defaultChunking)\n\t);\n\nconst mergeMetadata = (\n\tinputMetadata: Record<string, unknown> | undefined,\n\textraMetadata: Record<string, unknown> | undefined,\n\tbaseMetadata: Record<string, unknown> | undefined\n) => ({\n\t...(baseMetadata ?? {}),\n\t...(inputMetadata ?? {}),\n\t...(extraMetadata ?? {})\n});\n\nexport const buildRAGUpsertInputFromURLs = async (\n\tinput: RAGDocumentUrlIngestInput\n) => ({\n\tchunks: prepareRAGDocuments(await loadRAGDocumentsFromURLs(input)).flatMap(\n\t\t(document) => document.chunks\n\t)\n});\nexport const loadRAGDocumentFile = async (input: RAGDocumentFileInput) => {\n\tconst data = await readFile(input.path);\n\tconst documents = await extractRAGFileDocuments(\n\t\t{\n\t\t\tchunking: input.chunking,\n\t\t\tcontentType: input.contentType,\n\t\t\tdata,\n\t\t\tformat: input.format,\n\t\t\tmetadata: input.metadata,\n\t\t\tpath: input.path,\n\t\t\tsource: input.source,\n\t\t\ttitle: input.title\n\t\t},\n\t\tinput.extractors\n\t);\n\n\treturn getFirstExtractedDocument(documents, 'for file input');\n};\nexport const loadRAGDocumentFromURL = async (input: RAGDocumentUrlInput) => {\n\tconst url = input.url.trim();\n\tif (!url) {\n\t\tthrow new Error('RAG URL is required');\n\t}\n\n\tconst response = await fetch(url);\n\tif (!response.ok) {\n\t\tthrow new Error(\n\t\t\t`Failed to fetch RAG URL ${url}: ${response.status} ${response.statusText}`\n\t\t);\n\t}\n\n\tconst data = new Uint8Array(await response.arrayBuffer());\n\tconst documents = await extractRAGFileDocuments(\n\t\t{\n\t\t\tchunking: input.chunking,\n\t\t\tcontentType:\n\t\t\t\tinput.contentType ??\n\t\t\t\tresponse.headers.get('content-type') ??\n\t\t\t\tundefined,\n\t\t\tdata,\n\t\t\tformat: input.format ?? inferFormatFromUrl(url),\n\t\t\tmetadata: input.metadata,\n\t\t\tname: basename(new URL(url).pathname),\n\t\t\tsource: input.source ?? url,\n\t\t\ttitle: input.title\n\t\t},\n\t\tinput.extractors\n\t);\n\n\treturn getFirstExtractedDocument(documents, 'for URL input');\n};\nexport const loadRAGDocumentsFromUploads = async (\n\tinput: RAGDocumentUploadIngestInput\n) => {\n\tconst documents = await Promise.all(\n\t\tinput.uploads.map(async (upload) => {\n\t\t\tconst loaded = await loadExtractedDocuments(\n\t\t\t\t{\n\t\t\t\t\tchunking: upload.chunking,\n\t\t\t\t\tcontentType: upload.contentType,\n\t\t\t\t\tdata: decodeUploadContent(upload),\n\t\t\t\t\tformat: upload.format,\n\t\t\t\t\tmetadata: upload.metadata,\n\t\t\t\t\tname: upload.name,\n\t\t\t\t\tsource: upload.source ?? upload.name,\n\t\t\t\t\ttitle: upload.title\n\t\t\t\t},\n\t\t\t\tinput.extractors\n\t\t\t);\n\n\t\t\treturn loaded.map((document) => ({\n\t\t\t\t...document,\n\t\t\t\tmetadata: mergeMetadata(\n\t\t\t\t\tdocument.metadata,\n\t\t\t\t\t{ uploadFile: upload.name },\n\t\t\t\t\tinput.baseMetadata\n\t\t\t\t)\n\t\t\t}));\n\t\t})\n\t);\n\n\treturn {\n\t\tdefaultChunking: input.defaultChunking,\n\t\tdocuments: documents.flat()\n\t};\n};\nexport const loadRAGDocumentsFromURLs = async (\n\tinput: RAGDocumentUrlIngestInput\n) => {\n\tconst documents = await Promise.all(\n\t\tinput.urls.map(async (urlInput) => {\n\t\t\tconst url = urlInput.url.trim();\n\t\t\tif (!url) {\n\t\t\t\tthrow new Error('RAG URL is required');\n\t\t\t}\n\n\t\t\tconst response = await fetch(url);\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Failed to fetch RAG URL ${url}: ${response.status} ${response.statusText}`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst data = new Uint8Array(await response.arrayBuffer());\n\t\t\tconst loaded = await loadExtractedDocuments(\n\t\t\t\t{\n\t\t\t\t\tchunking: urlInput.chunking,\n\t\t\t\t\tcontentType:\n\t\t\t\t\t\turlInput.contentType ??\n\t\t\t\t\t\tresponse.headers.get('content-type') ??\n\t\t\t\t\t\tundefined,\n\t\t\t\t\tdata,\n\t\t\t\t\tformat: urlInput.format ?? inferFormatFromUrl(url),\n\t\t\t\t\tmetadata: urlInput.metadata,\n\t\t\t\t\tname: basename(new URL(url).pathname),\n\t\t\t\t\tsource: urlInput.source ?? url,\n\t\t\t\t\ttitle: urlInput.title\n\t\t\t\t},\n\t\t\t\turlInput.extractors ?? input.extractors\n\t\t\t);\n\n\t\t\treturn loaded.map((document) => ({\n\t\t\t\t...document,\n\t\t\t\tmetadata: mergeMetadata(\n\t\t\t\t\tdocument.metadata,\n\t\t\t\t\t{ sourceUrl: urlInput.url },\n\t\t\t\t\tinput.baseMetadata\n\t\t\t\t)\n\t\t\t}));\n\t\t})\n\t);\n\n\treturn {\n\t\tdefaultChunking: input.defaultChunking,\n\t\tdocuments: documents.flat()\n\t};\n};\nexport const loadRAGDocumentUpload = async (\n\tinput: RAGDocumentUploadInput & { extractors?: RAGFileExtractor[] }\n) => {\n\tconst documents = await extractRAGFileDocuments(\n\t\t{\n\t\t\tchunking: input.chunking,\n\t\t\tcontentType: input.contentType,\n\t\t\tdata: decodeUploadContent(input),\n\t\t\tformat: input.format,\n\t\t\tmetadata: input.metadata,\n\t\t\tname: input.name,\n\t\t\tsource: input.source ?? input.name,\n\t\t\ttitle: input.title\n\t\t},\n\t\tinput.extractors\n\t);\n\n\treturn getFirstExtractedDocument(documents, 'for upload input');\n};\nexport const prepareRAGDocumentFile = async (\n\tinput: RAGDocumentFileInput,\n\tdefaultChunking?: RAGChunkingOptions\n) => prepareRAGDocument(await loadRAGDocumentFile(input), defaultChunking);\n\nconst DEFAULT_DIRECTORY_EXTENSIONS = [\n\t'.txt',\n\t'.md',\n\t'.mdx',\n\t'.html',\n\t'.htm',\n\t'.json',\n\t'.csv',\n\t'.xml',\n\t'.yaml',\n\t'.yml',\n\t'.pdf'\n];\n\nconst collectDirectoryFiles = async (\n\tdirectory: string,\n\trecursive: boolean,\n\tincludeExtensions: Set<string> | null\n) => {\n\tconst entries = await readdir(directory, { withFileTypes: true });\n\tconst files: string[] = [];\n\tconst collectNestedDirectoryFiles = (fullPath: string) =>\n\t\tcollectDirectoryFiles(fullPath, recursive, includeExtensions);\n\tconst shouldIncludeDirectoryFile = (entryName: string) => {\n\t\tif (includeExtensions === null) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst extension = extname(entryName).toLowerCase();\n\n\t\treturn includeExtensions.has(extension);\n\t};\n\tconst appendNestedDirectoryFiles = async (fullPath: string) => {\n\t\tif (!recursive) {\n\t\t\treturn;\n\t\t}\n\n\t\tfiles.push(...(await collectNestedDirectoryFiles(fullPath)));\n\t};\n\tconst processDirectoryEntry = async (\n\t\tentry: (typeof entries)[number],\n\t\tfullPath: string\n\t) => {\n\t\tif (entry.isDirectory()) {\n\t\t\tawait appendNestedDirectoryFiles(fullPath);\n\n\t\t\treturn true;\n\t\t}\n\n\t\tif (!entry.isFile()) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (!shouldIncludeDirectoryFile(entry.name)) {\n\t\t\treturn true;\n\t\t}\n\n\t\tfiles.push(fullPath);\n\n\t\treturn true;\n\t};\n\n\tawait Promise.all(\n\t\tentries.map(async (entry) => {\n\t\t\tconst fullPath = join(directory, entry.name);\n\t\t\tawait processDirectoryEntry(entry, fullPath);\n\t\t})\n\t);\n\n\treturn files.sort();\n};\n\nexport const buildRAGUpsertInputFromDirectory = async (\n\tinput: RAGDirectoryIngestInput\n) =>\n\tbuildRAGUpsertInputFromDocuments(\n\t\tawait loadRAGDocumentsFromDirectory(input)\n\t);\nexport const buildRAGUpsertInputFromDocuments = (\n\tinput: RAGDocumentIngestInput\n) => ({\n\tchunks: prepareRAGDocuments(input).flatMap((document) => document.chunks)\n});\n\nexport const buildRAGUpsertInputFromUploads = async (\n\tinput: RAGDocumentUploadIngestInput\n) => ({\n\tchunks: prepareRAGDocuments(\n\t\tawait loadRAGDocumentsFromUploads(input)\n\t).flatMap((document) => document.chunks)\n});\n\nexport const loadRAGDocumentsFromDirectory = async (\n\tinput: RAGDirectoryIngestInput\n) => {\n\tconst root = resolve(input.directory);\n\tconst includeExtensions =\n\t\tinput.includeExtensions === undefined && input.extractors?.length\n\t\t\t? null\n\t\t\t: new Set(\n\t\t\t\t\t(\n\t\t\t\t\t\tinput.includeExtensions ?? DEFAULT_DIRECTORY_EXTENSIONS\n\t\t\t\t\t).map((entry) =>\n\t\t\t\t\t\tentry.startsWith('.')\n\t\t\t\t\t\t\t? entry.toLowerCase()\n\t\t\t\t\t\t\t: `.${entry.toLowerCase()}`\n\t\t\t\t\t)\n\t\t\t\t);\n\tconst files = await collectDirectoryFiles(\n\t\troot,\n\t\tinput.recursive !== false,\n\t\tincludeExtensions\n\t);\n\n\tconst documents = await Promise.all(\n\t\tfiles.map(async (path) => {\n\t\t\tconst source = relative(root, path).replace(/\\\\/g, '/');\n\t\t\tconst data = await readFile(path);\n\t\t\tconst loaded = await loadExtractedDocuments(\n\t\t\t\t{\n\t\t\t\t\tchunking: input.defaultChunking,\n\t\t\t\t\tdata,\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tfileName: basename(path),\n\t\t\t\t\t\trelativePath: source\n\t\t\t\t\t},\n\t\t\t\t\tpath,\n\t\t\t\t\tsource\n\t\t\t\t},\n\t\t\t\tinput.extractors\n\t\t\t);\n\n\t\t\treturn loaded.map((document) => ({\n\t\t\t\t...document,\n\t\t\t\tmetadata: mergeMetadata(\n\t\t\t\t\tdocument.metadata,\n\t\t\t\t\tundefined,\n\t\t\t\t\tinput.baseMetadata\n\t\t\t\t)\n\t\t\t}));\n\t\t})\n\t);\n\n\treturn {\n\t\tdefaultChunking: input.defaultChunking,\n\t\tdocuments: documents.flat()\n\t};\n};\nexport const prepareRAGDirectoryDocuments = async (\n\tinput: RAGDirectoryIngestInput\n) => prepareRAGDocuments(await loadRAGDocumentsFromDirectory(input));\n",
26
- "import type {\n\tRAGCollection,\n\tRAGCollectionSearchResult,\n\tRAGHybridRetrievalMode,\n\tRAGCollectionSearchParams,\n\tRAGRerankerProviderLike,\n\tRAGDocumentIngestInput,\n\tRAGEmbeddingInput,\n\tRAGEmbeddingProviderLike,\n\tRAGQueryResult,\n\tRAGQueryTransformProviderLike,\n\tRAGUpsertInput,\n\tRAGVectorStore\n} from '../../../types/ai';\nimport { fuseRAGQueryResults, resolveRAGHybridSearchOptions } from './lexical';\nimport { applyRAGQueryTransform } from './queryTransforms';\nimport { applyRAGReranking } from './reranking';\nimport {\n\tresolveRAGEmbeddingProvider,\n\tvalidateRAGEmbeddingDimensions\n} from './embedding';\nimport { buildRAGUpsertInputFromDocuments } from './ingestion';\n\nconst DEFAULT_TOP_K = 6;\n\nexport type CreateRAGCollectionOptions = {\n\tstore: RAGVectorStore;\n\tembedding?: RAGEmbeddingProviderLike;\n\tdefaultTopK?: number;\n\tdefaultCandidateMultiplier?: number;\n\tdefaultModel?: string;\n\tqueryTransform?: RAGQueryTransformProviderLike;\n\trerank?: RAGRerankerProviderLike;\n};\n\nconst VARIANT_RESULT_WEIGHT = 0.92;\n\nconst mergeQueryResults = (results: RAGQueryResult[]) => {\n\tconst merged = new Map<string, RAGQueryResult>();\n\n\tfor (const result of results) {\n\t\tconst existing = merged.get(result.chunkId);\n\t\tif (!existing || result.score > existing.score) {\n\t\t\tmerged.set(result.chunkId, result);\n\t\t}\n\t}\n\n\treturn [...merged.values()].sort((left, right) => {\n\t\tif (right.score !== left.score) {\n\t\t\treturn right.score - left.score;\n\t\t}\n\n\t\treturn left.chunkId.localeCompare(right.chunkId);\n\t});\n};\n\nconst getRAGSourceDiversityKey = (result: RAGQueryResult) => {\n\tconst documentId =\n\t\ttypeof result.metadata?.documentId === 'string'\n\t\t\t? result.metadata.documentId\n\t\t\t: undefined;\n\treturn result.source ?? documentId ?? result.title ?? result.chunkId;\n};\n\nconst applyRAGSourceDiversity = (\n\tresults: RAGQueryResult[],\n\tmaxResultsPerSource?: number,\n\tstrategy: 'cap' | 'round_robin' = 'cap'\n) => {\n\tif (typeof maxResultsPerSource !== 'number') {\n\t\treturn results;\n\t}\n\n\tif (strategy === 'round_robin') {\n\t\tconst grouped = new Map<string, RAGQueryResult[]>();\n\t\tconst order: string[] = [];\n\n\t\tfor (const result of results) {\n\t\t\tconst key = getRAGSourceDiversityKey(result);\n\t\t\tconst entries = grouped.get(key);\n\t\t\tif (entries) {\n\t\t\t\tentries.push(result);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tgrouped.set(key, [result]);\n\t\t\torder.push(key);\n\t\t}\n\n\t\tconst counts = new Map<string, number>();\n\t\tconst balanced: RAGQueryResult[] = [];\n\t\tlet remaining = true;\n\n\t\twhile (remaining) {\n\t\t\tremaining = false;\n\t\t\tfor (const key of order) {\n\t\t\t\tconst entries = grouped.get(key);\n\t\t\t\tif (!entries || entries.length === 0) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif ((counts.get(key) ?? 0) >= maxResultsPerSource) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst next = entries.shift();\n\t\t\t\tif (!next) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tcounts.set(key, (counts.get(key) ?? 0) + 1);\n\t\t\t\tbalanced.push(next);\n\t\t\t\tremaining = true;\n\t\t\t}\n\t\t}\n\n\t\treturn balanced;\n\t}\n\n\tconst limited: RAGQueryResult[] = [];\n\tconst counts = new Map<string, number>();\n\n\tfor (const result of results) {\n\t\tconst key = getRAGSourceDiversityKey(result);\n\t\tconst count = counts.get(key) ?? 0;\n\t\tif (count >= maxResultsPerSource) {\n\t\t\tcontinue;\n\t\t}\n\t\tcounts.set(key, count + 1);\n\t\tlimited.push(result);\n\t}\n\n\treturn limited;\n};\n\nconst dotProduct = (left: number[], right: number[]) => {\n\tconst length = Math.min(left.length, right.length);\n\tlet total = 0;\n\tfor (let index = 0; index < length; index += 1) {\n\t\ttotal += (left[index] ?? 0) * (right[index] ?? 0);\n\t}\n\treturn total;\n};\n\nconst applyRAGMMRDiversity = (\n\tresults: RAGQueryResult[],\n\tqueryVector: number[],\n\tlambda: number\n) => {\n\tconst withEmbeddings = results.filter(\n\t\t(result): result is RAGQueryResult & { embedding: number[] } =>\n\t\t\tArray.isArray(result.embedding) && result.embedding.length > 0\n\t);\n\n\tif (withEmbeddings.length < 2 || queryVector.length === 0) {\n\t\treturn results;\n\t}\n\n\tconst selected: Array<RAGQueryResult & { embedding: number[] }> = [];\n\tconst remaining = [...withEmbeddings];\n\n\twhile (remaining.length > 0) {\n\t\tlet bestIndex = 0;\n\t\tlet bestScore = Number.NEGATIVE_INFINITY;\n\n\t\tfor (let index = 0; index < remaining.length; index += 1) {\n\t\t\tconst candidate = remaining[index];\n\t\t\tif (!candidate) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst relevance = dotProduct(queryVector, candidate.embedding);\n\t\t\tconst redundancy =\n\t\t\t\tselected.length > 0\n\t\t\t\t\t? Math.max(\n\t\t\t\t\t\t\t...selected.map((entry) =>\n\t\t\t\t\t\t\t\tdotProduct(entry.embedding, candidate.embedding)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t: 0;\n\t\t\tconst mmrScore = lambda * relevance - (1 - lambda) * redundancy;\n\t\t\tif (mmrScore > bestScore) {\n\t\t\t\tbestScore = mmrScore;\n\t\t\t\tbestIndex = index;\n\t\t\t}\n\t\t}\n\n\t\tconst next = remaining.splice(bestIndex, 1)[0];\n\t\tif (!next) {\n\t\t\tbreak;\n\t\t}\n\t\tselected.push(next);\n\t}\n\n\tconst selectedIds = new Set(selected.map((entry) => entry.chunkId));\n\tconst tail = results.filter((entry) => !selectedIds.has(entry.chunkId));\n\treturn [...selected, ...tail];\n};\n\nconst weightQueryResults = (results: RAGQueryResult[], queryIndex: number) => {\n\tif (queryIndex === 0) {\n\t\treturn results;\n\t}\n\n\tconst weight = Math.pow(VARIANT_RESULT_WEIGHT, queryIndex);\n\treturn results.map((result) => ({\n\t\t...result,\n\t\tscore: result.score * weight\n\t}));\n};\n\nconst annotateRetrievalChannels = (input: {\n\tresults: RAGQueryResult[];\n\tvectorResults: RAGQueryResult[];\n\tlexicalResults: RAGQueryResult[];\n}) => {\n\tconst vectorIds = new Set(\n\t\tinput.vectorResults.map((result) => result.chunkId)\n\t);\n\tconst lexicalIds = new Set(\n\t\tinput.lexicalResults.map((result) => result.chunkId)\n\t);\n\n\treturn input.results.map((result) => {\n\t\tconst channels: Array<'vector' | 'lexical'> = [];\n\t\tif (vectorIds.has(result.chunkId)) {\n\t\t\tchannels.push('vector');\n\t\t}\n\t\tif (lexicalIds.has(result.chunkId)) {\n\t\t\tchannels.push('lexical');\n\t\t}\n\n\t\treturn {\n\t\t\t...result,\n\t\t\tmetadata: {\n\t\t\t\t...(result.metadata ?? {}),\n\t\t\t\tretrievalChannels: channels\n\t\t\t}\n\t\t};\n\t});\n};\n\nconst buildTraceSectionCounts = (results: RAGQueryResult[]) => {\n\tconst sections = new Map<\n\t\tstring,\n\t\t{ key: string; label: string; count: number }\n\t>();\n\n\tfor (const result of results) {\n\t\tconst path = Array.isArray(result.metadata?.sectionPath)\n\t\t\t? result.metadata.sectionPath.filter(\n\t\t\t\t\t(value): value is string =>\n\t\t\t\t\t\ttypeof value === 'string' && value.trim().length > 0\n\t\t\t\t)\n\t\t\t: [];\n\t\tif (path.length === 0) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst key = path.join(' > ');\n\t\tconst existing = sections.get(key);\n\t\tif (existing) {\n\t\t\texisting.count += 1;\n\t\t\tcontinue;\n\t\t}\n\n\t\tsections.set(key, {\n\t\t\tcount: 1,\n\t\t\tkey,\n\t\t\tlabel: path.at(-1) ?? key\n\t\t});\n\t}\n\n\treturn [...sections.values()].sort((left, right) => {\n\t\tif (right.count !== left.count) {\n\t\t\treturn right.count - left.count;\n\t\t}\n\n\t\treturn left.key.localeCompare(right.key);\n\t});\n};\n\nconst shouldRunVectorRetrieval = (mode: RAGHybridRetrievalMode) =>\n\tmode === 'vector' || mode === 'hybrid';\n\nconst shouldRunLexicalRetrieval = (\n\tmode: RAGHybridRetrievalMode,\n\tstore: RAGVectorStore\n) => mode === 'lexical' || (mode === 'hybrid' && Boolean(store.queryLexical));\n\nexport const createRAGCollection = (\n\toptions: CreateRAGCollectionOptions\n): RAGCollection => {\n\tconst defaultTopK = options.defaultTopK ?? DEFAULT_TOP_K;\n\tconst defaultCandidateMultiplier = Math.max(\n\t\t1,\n\t\tMath.floor(options.defaultCandidateMultiplier ?? 4)\n\t);\n\tconst { getCapabilities } = options.store;\n\tconst { getStatus } = options.store;\n\tconst embeddingProvider = resolveRAGEmbeddingProvider(\n\t\toptions.embedding,\n\t\toptions.store.embed,\n\t\toptions.defaultModel\n\t);\n\tconst getExpectedDimensions = () =>\n\t\tembeddingProvider.dimensions ?? getStatus?.()?.dimensions;\n\n\tconst embed = async (\n\t\tinput: RAGEmbeddingInput,\n\t\tcontext: 'query' | 'chunk'\n\t) => {\n\t\tconst vector = await embeddingProvider.embed(input);\n\t\tvalidateRAGEmbeddingDimensions(\n\t\t\tvector,\n\t\t\tgetExpectedDimensions(),\n\t\t\tcontext\n\t\t);\n\n\t\treturn vector;\n\t};\n\n\tconst searchWithTrace = async (\n\t\tinput: RAGCollectionSearchParams\n\t): Promise<RAGCollectionSearchResult> => {\n\t\tconst model = input.model ?? options.defaultModel;\n\t\tconst topK = input.topK ?? defaultTopK;\n\t\tconst hasReranker = Boolean(input.rerank ?? options.rerank);\n\t\tconst retrieval = resolveRAGHybridSearchOptions(input.retrieval);\n\t\tconst hasQueryTransform = Boolean(\n\t\t\tinput.queryTransform ?? options.queryTransform\n\t\t);\n\t\tconst shouldExpandCandidates =\n\t\t\thasReranker || hasQueryTransform || retrieval.mode !== 'vector';\n\t\tconst candidateTopK = Math.max(\n\t\t\ttopK,\n\t\t\tMath.floor(\n\t\t\t\tinput.candidateTopK ??\n\t\t\t\t\t(shouldExpandCandidates\n\t\t\t\t\t\t? topK * defaultCandidateMultiplier\n\t\t\t\t\t\t: topK)\n\t\t\t)\n\t\t);\n\t\tconst transformed = await applyRAGQueryTransform({\n\t\t\tinput: {\n\t\t\t\tcandidateTopK,\n\t\t\t\tfilter: input.filter,\n\t\t\t\tmodel,\n\t\t\t\tquery: input.query,\n\t\t\t\tscoreThreshold: input.scoreThreshold,\n\t\t\t\ttopK\n\t\t\t},\n\t\t\tqueryTransform: input.queryTransform ?? options.queryTransform\n\t\t});\n\t\tconst searchQueries = Array.from(\n\t\t\tnew Set([transformed.query, ...(transformed.variants ?? [])])\n\t\t).filter(Boolean);\n\t\tconst runVector = shouldRunVectorRetrieval(retrieval.mode);\n\t\tconst runLexical = shouldRunLexicalRetrieval(\n\t\t\tretrieval.mode,\n\t\t\toptions.store\n\t\t);\n\t\tconst lexicalTopK = Math.max(\n\t\t\ttopK,\n\t\t\tMath.floor(retrieval.lexicalTopK ?? candidateTopK)\n\t\t);\n\t\tconst steps: RAGCollectionSearchResult['trace']['steps'] = [\n\t\t\t{\n\t\t\t\tcount: topK,\n\t\t\t\tlabel: 'Search input received',\n\t\t\t\tmetadata: {\n\t\t\t\t\tcandidateTopK,\n\t\t\t\t\thasQueryTransform,\n\t\t\t\t\thasReranker,\n\t\t\t\t\tmaxResultsPerSource: retrieval.maxResultsPerSource ?? null,\n\t\t\t\t\tmmrLambda: retrieval.mmrLambda,\n\t\t\t\t\tmode: retrieval.mode,\n\t\t\t\t\tdiversityStrategy: retrieval.diversityStrategy,\n\t\t\t\t\trunLexical,\n\t\t\t\t\trunVector,\n\t\t\t\t\tsourceBalanceStrategy: retrieval.sourceBalanceStrategy,\n\t\t\t\t\ttopK\n\t\t\t\t},\n\t\t\t\tstage: 'input'\n\t\t\t}\n\t\t];\n\t\tconst queryVector = runVector\n\t\t\t? await embed(\n\t\t\t\t\t{\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\tsignal: input.signal,\n\t\t\t\t\t\ttext: input.query\n\t\t\t\t\t},\n\t\t\t\t\t'query'\n\t\t\t\t)\n\t\t\t: [];\n\t\tif (runVector) {\n\t\t\tsteps.push({\n\t\t\t\tlabel: 'Embedded primary query',\n\t\t\t\tmetadata: {\n\t\t\t\t\tdimensions: queryVector.length,\n\t\t\t\t\tquery: input.query\n\t\t\t\t},\n\t\t\t\tstage: 'embed'\n\t\t\t});\n\t\t}\n\t\tif (transformed.query !== input.query || searchQueries.length > 1) {\n\t\t\tsteps.push({\n\t\t\t\tlabel: 'Expanded query variants',\n\t\t\t\tmetadata: {\n\t\t\t\t\ttransformedQuery: transformed.query,\n\t\t\t\t\tvariantCount: Math.max(0, searchQueries.length - 1)\n\t\t\t\t},\n\t\t\t\tstage: 'query_transform'\n\t\t\t});\n\t\t}\n\t\tconst resultGroups = await Promise.all(\n\t\t\tsearchQueries.map(async (query, queryIndex) => {\n\t\t\t\tconst [vectorResults, lexicalResults] = await Promise.all([\n\t\t\t\t\trunVector\n\t\t\t\t\t\t? embed(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\tsignal: input.signal,\n\t\t\t\t\t\t\t\t\ttext: query\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t'query'\n\t\t\t\t\t\t\t).then((nextQueryVector) =>\n\t\t\t\t\t\t\t\toptions.store.query({\n\t\t\t\t\t\t\t\t\tfilter: input.filter,\n\t\t\t\t\t\t\t\t\tqueryVector: nextQueryVector,\n\t\t\t\t\t\t\t\t\ttopK: candidateTopK\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t: Promise.resolve([]),\n\t\t\t\t\trunLexical\n\t\t\t\t\t\t? (options.store.queryLexical?.({\n\t\t\t\t\t\t\t\tfilter: input.filter,\n\t\t\t\t\t\t\t\tquery,\n\t\t\t\t\t\t\t\ttopK: lexicalTopK\n\t\t\t\t\t\t\t}) ?? Promise.resolve([]))\n\t\t\t\t\t\t: Promise.resolve([])\n\t\t\t\t]);\n\n\t\t\t\treturn {\n\t\t\t\t\tlexicalResults: weightQueryResults(\n\t\t\t\t\t\tlexicalResults,\n\t\t\t\t\t\tqueryIndex\n\t\t\t\t\t),\n\t\t\t\t\tvectorResults: weightQueryResults(vectorResults, queryIndex)\n\t\t\t\t};\n\t\t\t})\n\t\t);\n\t\tconst vectorResults = mergeQueryResults(\n\t\t\tresultGroups.flatMap((group) => group.vectorResults)\n\t\t);\n\t\tif (runVector) {\n\t\t\tsteps.push({\n\t\t\t\tcount: vectorResults.length,\n\t\t\t\tlabel: 'Collected vector candidates',\n\t\t\t\tmetadata: {\n\t\t\t\t\tqueryCount: searchQueries.length,\n\t\t\t\t\ttopK: candidateTopK\n\t\t\t\t},\n\t\t\t\tsectionCounts: buildTraceSectionCounts(vectorResults),\n\t\t\t\tstage: 'vector_search'\n\t\t\t});\n\t\t}\n\t\tconst lexicalResults = mergeQueryResults(\n\t\t\tresultGroups.flatMap((group) => group.lexicalResults)\n\t\t);\n\t\tif (runLexical) {\n\t\t\tsteps.push({\n\t\t\t\tcount: lexicalResults.length,\n\t\t\t\tlabel: 'Collected lexical candidates',\n\t\t\t\tmetadata: {\n\t\t\t\t\tqueryCount: searchQueries.length,\n\t\t\t\t\ttopK: lexicalTopK\n\t\t\t\t},\n\t\t\t\tsectionCounts: buildTraceSectionCounts(lexicalResults),\n\t\t\t\tstage: 'lexical_search'\n\t\t\t});\n\t\t}\n\t\tconst results =\n\t\t\tretrieval.mode === 'lexical'\n\t\t\t\t? lexicalResults\n\t\t\t\t: retrieval.mode === 'vector'\n\t\t\t\t\t? vectorResults\n\t\t\t\t\t: fuseRAGQueryResults({\n\t\t\t\t\t\t\tfusion: retrieval.fusion,\n\t\t\t\t\t\t\tfusionConstant: retrieval.fusionConstant,\n\t\t\t\t\t\t\tlexical: lexicalResults,\n\t\t\t\t\t\t\tlexicalWeight: retrieval.lexicalWeight,\n\t\t\t\t\t\t\tvector: vectorResults,\n\t\t\t\t\t\t\tvectorWeight: retrieval.vectorWeight\n\t\t\t\t\t\t});\n\t\tsteps.push({\n\t\t\tcount: results.length,\n\t\t\tlabel:\n\t\t\t\tretrieval.mode === 'hybrid'\n\t\t\t\t\t? 'Fused retrieval candidates'\n\t\t\t\t\t: 'Selected retrieval candidates',\n\t\t\tmetadata: {\n\t\t\t\tmode: retrieval.mode\n\t\t\t},\n\t\t\tsectionCounts: buildTraceSectionCounts(results),\n\t\t\tstage: 'fusion'\n\t\t});\n\t\tconst rerankInput = {\n\t\t\tcandidateTopK,\n\t\t\tfilter: input.filter,\n\t\t\tmodel,\n\t\t\tquery: transformed.query,\n\t\t\tqueryVector,\n\t\t\tresults,\n\t\t\tscoreThreshold: input.scoreThreshold,\n\t\t\ttopK\n\t\t};\n\t\tconst reranked = await applyRAGReranking({\n\t\t\tinput: rerankInput,\n\t\t\treranker: input.rerank ?? options.rerank\n\t\t});\n\t\tsteps.push({\n\t\t\tcount: reranked.length,\n\t\t\tlabel: hasReranker\n\t\t\t\t? 'Reranked retrieval candidates'\n\t\t\t\t: 'Skipped reranking and kept retrieval order',\n\t\t\tmetadata: {\n\t\t\t\tapplied: hasReranker\n\t\t\t},\n\t\t\tsectionCounts: buildTraceSectionCounts(reranked),\n\t\t\tstage: 'rerank'\n\t\t});\n\t\tconst diversityAdjusted =\n\t\t\tretrieval.diversityStrategy === 'mmr'\n\t\t\t\t? applyRAGMMRDiversity(\n\t\t\t\t\t\treranked,\n\t\t\t\t\t\tqueryVector,\n\t\t\t\t\t\tretrieval.mmrLambda\n\t\t\t\t\t)\n\t\t\t\t: reranked;\n\t\tif (retrieval.diversityStrategy === 'mmr') {\n\t\t\tsteps.push({\n\t\t\t\tcount: diversityAdjusted.length,\n\t\t\t\tlabel: 'Applied MMR diversity reordering',\n\t\t\t\tmetadata: {\n\t\t\t\t\tapplied:\n\t\t\t\t\t\tqueryVector.length > 0 &&\n\t\t\t\t\t\tdiversityAdjusted.some((entry) =>\n\t\t\t\t\t\t\tArray.isArray(entry.embedding)\n\t\t\t\t\t\t),\n\t\t\t\t\tmmrLambda: retrieval.mmrLambda\n\t\t\t\t},\n\t\t\t\tsectionCounts: buildTraceSectionCounts(diversityAdjusted),\n\t\t\t\tstage: 'diversity'\n\t\t\t});\n\t\t}\n\t\tconst diversified = applyRAGSourceDiversity(\n\t\t\tdiversityAdjusted,\n\t\t\tretrieval.maxResultsPerSource,\n\t\t\tretrieval.sourceBalanceStrategy\n\t\t);\n\t\tif (typeof retrieval.maxResultsPerSource === 'number') {\n\t\t\tsteps.push({\n\t\t\t\tcount: diversified.length,\n\t\t\t\tlabel: 'Balanced candidates across sources',\n\t\t\t\tmetadata: {\n\t\t\t\t\tmaxResultsPerSource: retrieval.maxResultsPerSource,\n\t\t\t\t\tstrategy: retrieval.sourceBalanceStrategy\n\t\t\t\t},\n\t\t\t\tsectionCounts: buildTraceSectionCounts(diversified),\n\t\t\t\tstage: 'source_balance'\n\t\t\t});\n\t\t}\n\t\tconst limited = annotateRetrievalChannels({\n\t\t\tlexicalResults,\n\t\t\tresults: diversified.slice(0, topK),\n\t\t\tvectorResults\n\t\t});\n\n\t\tif (typeof input.scoreThreshold !== 'number') {\n\t\t\tsteps.push({\n\t\t\t\tcount: limited.length,\n\t\t\t\tlabel: 'Finalized retrieval results',\n\t\t\t\tmetadata: {\n\t\t\t\t\tappliedScoreThreshold: false\n\t\t\t\t},\n\t\t\t\tsectionCounts: buildTraceSectionCounts(limited),\n\t\t\t\tstage: 'finalize'\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tresults: limited,\n\t\t\t\ttrace: {\n\t\t\t\t\tcandidateTopK,\n\t\t\t\t\tlexicalTopK,\n\t\t\t\t\tmaxResultsPerSource: retrieval.maxResultsPerSource,\n\t\t\t\t\tmmrLambda: retrieval.mmrLambda,\n\t\t\t\t\tmode: retrieval.mode,\n\t\t\t\t\tdiversityStrategy: retrieval.diversityStrategy,\n\t\t\t\t\tquery: input.query,\n\t\t\t\t\tresultCounts: {\n\t\t\t\t\t\tfinal: limited.length,\n\t\t\t\t\t\tfused: results.length,\n\t\t\t\t\t\tlexical: lexicalResults.length,\n\t\t\t\t\t\treranked: diversified.length,\n\t\t\t\t\t\tvector: vectorResults.length\n\t\t\t\t\t},\n\t\t\t\t\trunLexical,\n\t\t\t\t\trunVector,\n\t\t\t\t\tsourceBalanceStrategy: retrieval.sourceBalanceStrategy,\n\t\t\t\t\tsteps,\n\t\t\t\t\ttopK,\n\t\t\t\t\ttransformedQuery: transformed.query,\n\t\t\t\t\tvariantQueries: searchQueries.slice(1)\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tconst { scoreThreshold } = input;\n\t\tconst filtered = limited.filter(\n\t\t\t(entry) => entry.score >= scoreThreshold\n\t\t);\n\t\tsteps.push({\n\t\t\tcount: filtered.length,\n\t\t\tlabel: 'Applied score threshold',\n\t\t\tmetadata: {\n\t\t\t\tscoreThreshold\n\t\t\t},\n\t\t\tsectionCounts: buildTraceSectionCounts(filtered),\n\t\t\tstage: 'score_filter'\n\t\t});\n\t\tsteps.push({\n\t\t\tcount: filtered.length,\n\t\t\tlabel: 'Finalized retrieval results',\n\t\t\tmetadata: {\n\t\t\t\tappliedScoreThreshold: true\n\t\t\t},\n\t\t\tsectionCounts: buildTraceSectionCounts(filtered),\n\t\t\tstage: 'finalize'\n\t\t});\n\n\t\treturn {\n\t\t\tresults: filtered,\n\t\t\ttrace: {\n\t\t\t\tcandidateTopK,\n\t\t\t\tlexicalTopK,\n\t\t\t\tmaxResultsPerSource: retrieval.maxResultsPerSource,\n\t\t\t\tmmrLambda: retrieval.mmrLambda,\n\t\t\t\tmode: retrieval.mode,\n\t\t\t\tdiversityStrategy: retrieval.diversityStrategy,\n\t\t\t\tquery: input.query,\n\t\t\t\tresultCounts: {\n\t\t\t\t\tfinal: filtered.length,\n\t\t\t\t\tfused: results.length,\n\t\t\t\t\tlexical: lexicalResults.length,\n\t\t\t\t\treranked: diversified.length,\n\t\t\t\t\tvector: vectorResults.length\n\t\t\t\t},\n\t\t\t\trunLexical,\n\t\t\t\trunVector,\n\t\t\t\tscoreThreshold,\n\t\t\t\tsourceBalanceStrategy: retrieval.sourceBalanceStrategy,\n\t\t\t\tsteps,\n\t\t\t\ttopK,\n\t\t\t\ttransformedQuery: transformed.query,\n\t\t\t\tvariantQueries: searchQueries.slice(1)\n\t\t\t}\n\t\t};\n\t};\n\n\tconst search = async (input: RAGCollectionSearchParams) => {\n\t\tconst result = await searchWithTrace(input);\n\n\t\treturn result.results;\n\t};\n\n\tconst ingest = async (input: RAGUpsertInput) => {\n\t\tconst chunks = await Promise.all(\n\t\t\tinput.chunks.map(async (chunk) => {\n\t\t\t\tif (chunk.embedding) {\n\t\t\t\t\tvalidateRAGEmbeddingDimensions(\n\t\t\t\t\t\tchunk.embedding,\n\t\t\t\t\t\tgetExpectedDimensions(),\n\t\t\t\t\t\t'chunk'\n\t\t\t\t\t);\n\n\t\t\t\t\treturn chunk;\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\t...chunk,\n\t\t\t\t\tembedding: await embed(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmodel: options.defaultModel,\n\t\t\t\t\t\t\ttext: chunk.text\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'chunk'\n\t\t\t\t\t)\n\t\t\t\t};\n\t\t\t})\n\t\t);\n\n\t\tawait options.store.upsert({ chunks });\n\t};\n\n\treturn {\n\t\tclear:\n\t\t\ttypeof options.store.clear === 'function'\n\t\t\t\t? () => options.store.clear?.()\n\t\t\t\t: undefined,\n\t\tgetCapabilities:\n\t\t\ttypeof getCapabilities === 'function'\n\t\t\t\t? () => getCapabilities()\n\t\t\t\t: undefined,\n\t\tgetStatus:\n\t\t\ttypeof getStatus === 'function' ? () => getStatus() : undefined,\n\t\tsearchWithTrace,\n\t\tsearch,\n\t\tstore: options.store,\n\t\tingest\n\t};\n};\nexport const ingestDocuments = async (\n\tcollection: RAGCollection,\n\tinput: RAGUpsertInput\n) => collection.ingest(input);\nexport const ingestRAGDocuments = async (\n\tcollection: RAGCollection,\n\tinput: RAGDocumentIngestInput\n) => collection.ingest(buildRAGUpsertInputFromDocuments(input));\nexport const searchDocuments = async (\n\tcollection: RAGCollection,\n\tinput: RAGCollectionSearchParams\n) => collection.search(input);\n",
27
- "import type {\n\tRAGEvaluationCaseResult,\n\tRAGEvaluationSummary,\n\tRAGBackendCapabilities,\n\tRAGExcerptSelection,\n\tRAGChunkStructure,\n\tRAGDocumentChunkPreview,\n\tRAGDocumentSummary,\n\tRAGHTMXWorkflowRenderConfig,\n\tRAGIndexedDocument,\n\tRAGSectionRetrievalDiagnostic,\n\tRAGMutationResponse,\n\tRAGSearchResponse,\n\tRAGSource,\n\tRAGVectorStoreStatus\n} from '../../../types/ai';\nimport { RAG_SEARCH_SCORE_DECIMAL_PLACES } from '../../constants';\nimport {\n\tbuildRAGSectionRetrievalDiagnostics,\n\tbuildRAGChunkGraph,\n\tbuildRAGChunkGraphNavigation,\n\tbuildRAGChunkPreviewGraph\n} from './presentation';\n\nexport type ResolvedRAGWorkflowRenderers =\n\tRequired<RAGHTMXWorkflowRenderConfig>;\n\nconst escapeHtml = (text: string) =>\n\ttext\n\t\t.replace(/&/g, '&amp;')\n\t\t.replace(/</g, '&lt;')\n\t\t.replace(/>/g, '&gt;')\n\t\t.replace(/\"/g, '&quot;');\n\nconst renderSourceLabels = (input?: {\n\tcontextLabel?: string;\n\tlocatorLabel?: string;\n\tprovenanceLabel?: string;\n}) => {\n\tif (!input) {\n\t\treturn '';\n\t}\n\n\tconst rows = [\n\t\tinput.contextLabel\n\t\t\t? `<li><strong>Context</strong> ${escapeHtml(input.contextLabel)}</li>`\n\t\t\t: '',\n\t\tinput.locatorLabel\n\t\t\t? `<li><strong>Location</strong> ${escapeHtml(input.locatorLabel)}</li>`\n\t\t\t: '',\n\t\tinput.provenanceLabel\n\t\t\t? `<li><strong>Provenance</strong> ${escapeHtml(input.provenanceLabel)}</li>`\n\t\t\t: ''\n\t].filter((row) => row.length > 0);\n\n\treturn rows.length > 0\n\t\t? `<ul class=\"rag-source-labels\">${rows.join('')}</ul>`\n\t\t: '';\n};\n\nconst renderChunkStructure = (structure?: RAGChunkStructure) => {\n\tif (!structure) {\n\t\treturn '';\n\t}\n\n\tconst rows = [\n\t\tstructure.section?.title\n\t\t\t? `<li><strong>Section</strong> ${escapeHtml(structure.section.title)}</li>`\n\t\t\t: '',\n\t\tstructure.section?.path && structure.section.path.length > 1\n\t\t\t? `<li><strong>Section path</strong> ${escapeHtml(structure.section.path.join(' > '))}</li>`\n\t\t\t: '',\n\t\ttypeof structure.sequence?.sectionChunkIndex === 'number' &&\n\t\ttypeof structure.sequence?.sectionChunkCount === 'number'\n\t\t\t? `<li><strong>Section chunk</strong> ${structure.sequence.sectionChunkIndex + 1} of ${structure.sequence.sectionChunkCount}</li>`\n\t\t\t: '',\n\t\tstructure.sequence?.previousChunkId\n\t\t\t? `<li><strong>Previous</strong> ${escapeHtml(structure.sequence.previousChunkId)}</li>`\n\t\t\t: '',\n\t\tstructure.sequence?.nextChunkId\n\t\t\t? `<li><strong>Next</strong> ${escapeHtml(structure.sequence.nextChunkId)}</li>`\n\t\t\t: ''\n\t].filter((row) => row.length > 0);\n\n\treturn rows.length > 0\n\t\t? `<ul class=\"rag-chunk-structure\">${rows.join('')}</ul>`\n\t\t: '';\n};\n\nconst renderChunkExcerpts = (input?: {\n\tchunkExcerpt?: string;\n\twindowExcerpt?: string;\n\tsectionExcerpt?: string;\n}) => {\n\tif (!input) {\n\t\treturn '';\n\t}\n\n\tconst rows = [\n\t\tinput.chunkExcerpt\n\t\t\t? `<li><strong>Chunk excerpt</strong> ${escapeHtml(input.chunkExcerpt)}</li>`\n\t\t\t: '',\n\t\tinput.windowExcerpt\n\t\t\t? `<li><strong>Neighbor window</strong> ${escapeHtml(input.windowExcerpt)}</li>`\n\t\t\t: '',\n\t\tinput.sectionExcerpt\n\t\t\t? `<li><strong>Section excerpt</strong> ${escapeHtml(input.sectionExcerpt)}</li>`\n\t\t\t: ''\n\t].filter((row) => row.length > 0);\n\n\treturn rows.length > 0\n\t\t? `<ul class=\"rag-chunk-structure\">${rows.join('')}</ul>`\n\t\t: '';\n};\n\nconst renderExcerptSelection = (selection?: RAGExcerptSelection) => {\n\tif (!selection) {\n\t\treturn '';\n\t}\n\n\tconst modeLabel =\n\t\tselection.mode === 'chunk'\n\t\t\t? 'Chunk excerpt'\n\t\t\t: selection.mode === 'window'\n\t\t\t\t? 'Neighbor window'\n\t\t\t\t: 'Section excerpt';\n\tconst reasonLabel =\n\t\tselection.reason === 'single_chunk'\n\t\t\t? 'single chunk'\n\t\t\t: selection.reason === 'chunk_too_narrow'\n\t\t\t\t? 'chunk too narrow'\n\t\t\t\t: selection.reason === 'section_small_enough'\n\t\t\t\t\t? 'section small enough'\n\t\t\t\t\t: 'section too large, used window';\n\n\treturn `<ul class=\"rag-chunk-structure\"><li><strong>Preferred excerpt</strong> ${escapeHtml(modeLabel)}</li><li><strong>Promotion reason</strong> ${escapeHtml(reasonLabel)}</li></ul>`;\n};\n\nconst renderSectionJumpList = (\n\tlabel: string,\n\titems: Array<{\n\t\tlabel: string;\n\t\thref?: string;\n\t\tactive?: boolean;\n\t}>\n) => {\n\tconst rows = items\n\t\t.map((item) =>\n\t\t\titem.href\n\t\t\t\t? `<li><strong>${escapeHtml(label)}</strong> <a href=\"${escapeHtml(item.href)}\"${item.active ? ' aria-current=\"true\"' : ''}>${escapeHtml(item.label)}</a></li>`\n\t\t\t\t: `<li><strong>${escapeHtml(label)}</strong> ${escapeHtml(item.label)}</li>`\n\t\t)\n\t\t.join('');\n\treturn rows ? `<ul class=\"rag-chunk-structure\">${rows}</ul>` : '';\n};\n\nconst renderSectionDiagnostics = (\n\tdiagnostics: RAGSectionRetrievalDiagnostic[]\n) => {\n\tif (diagnostics.length === 0) {\n\t\treturn '';\n\t}\n\n\treturn (\n\t\t`<section class=\"rag-search-results\"><h3>Section diagnostics</h3>` +\n\t\tdiagnostics\n\t\t\t.map(\n\t\t\t\t(diagnostic) =>\n\t\t\t\t\t`<article class=\"rag-search-result\" id=\"rag-section-diagnostic-${escapeHtml(diagnostic.key)}\">` +\n\t\t\t\t\t`<h4>${escapeHtml(diagnostic.path?.join(' > ') ?? diagnostic.label)}</h4>` +\n\t\t\t\t\t`<p class=\"rag-search-source\">${escapeHtml(diagnostic.summary)}</p>` +\n\t\t\t\t\t`<ul class=\"rag-source-labels\">` +\n\t\t\t\t\t`<li><strong>Top hit</strong> ${diagnostic.bestScore.toFixed(RAG_SEARCH_SCORE_DECIMAL_PLACES)}</li>` +\n\t\t\t\t\t`<li><strong>Average</strong> ${diagnostic.averageScore.toFixed(RAG_SEARCH_SCORE_DECIMAL_PLACES)}</li>` +\n\t\t\t\t\t`<li><strong>Sources</strong> ${diagnostic.sourceCount}</li>` +\n\t\t\t\t\t`<li><strong>Channels</strong> vector ${diagnostic.vectorHits} · lexical ${diagnostic.lexicalHits} · hybrid ${diagnostic.hybridHits}</li>` +\n\t\t\t\t\t`${\n\t\t\t\t\t\tdiagnostic.stageCounts.length > 0\n\t\t\t\t\t\t\t? `<li><strong>Stage flow</strong> ${escapeHtml(\n\t\t\t\t\t\t\t\t\tdiagnostic.stageCounts\n\t\t\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t\t\t(entry) =>\n\t\t\t\t\t\t\t\t\t\t\t\t`${entry.stage} ${entry.count}`\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t.join(' → ')\n\t\t\t\t\t\t\t\t)}</li>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}` +\n\t\t\t\t\t`${\n\t\t\t\t\t\tdiagnostic.firstSeenStage\n\t\t\t\t\t\t\t? `<li><strong>First seen</strong> ${escapeHtml(diagnostic.firstSeenStage)}</li>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}` +\n\t\t\t\t\t`${\n\t\t\t\t\t\tdiagnostic.lastSeenStage\n\t\t\t\t\t\t\t? `<li><strong>Last seen</strong> ${escapeHtml(diagnostic.lastSeenStage)}</li>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}` +\n\t\t\t\t\t`${\n\t\t\t\t\t\tdiagnostic.retrievalMode\n\t\t\t\t\t\t\t? `<li><strong>Trace mode</strong> ${escapeHtml(diagnostic.retrievalMode)}</li>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}` +\n\t\t\t\t\t`${\n\t\t\t\t\t\tdiagnostic.rerankApplied !== undefined\n\t\t\t\t\t\t\t? `<li><strong>Rerank</strong> ${diagnostic.rerankApplied ? 'applied' : 'skipped'}</li>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}` +\n\t\t\t\t\t`${\n\t\t\t\t\t\tdiagnostic.sourceBalanceApplied\n\t\t\t\t\t\t\t? `<li><strong>Source balance</strong> applied</li>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}` +\n\t\t\t\t\t`${\n\t\t\t\t\t\tdiagnostic.scoreThresholdApplied\n\t\t\t\t\t\t\t? `<li><strong>Score threshold</strong> applied</li>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}` +\n\t\t\t\t\t`<li><strong>Reasons</strong> ${escapeHtml(diagnostic.reasons.join(', ') || 'none')}</li>` +\n\t\t\t\t\t`${\n\t\t\t\t\t\tdiagnostic.strongestSiblingLabel\n\t\t\t\t\t\t\t? `<li><strong>Strongest sibling</strong> ${escapeHtml(diagnostic.strongestSiblingLabel)} (${diagnostic.strongestSiblingScore?.toFixed(RAG_SEARCH_SCORE_DECIMAL_PLACES) ?? 'n/a'})</li>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}` +\n\t\t\t\t\t`${\n\t\t\t\t\t\ttypeof diagnostic.parentShareGap === 'number'\n\t\t\t\t\t\t\t? `<li><strong>Parent share gap</strong> ${(diagnostic.parentShareGap * 100).toFixed(0)}%</li>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}` +\n\t\t\t\t\t`</ul>` +\n\t\t\t\t\t`${\n\t\t\t\t\t\tdiagnostic.stageWeights.length > 0\n\t\t\t\t\t\t\t? `<ul class=\"rag-source-labels\">${diagnostic.stageWeights\n\t\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t\t(entry) =>\n\t\t\t\t\t\t\t\t\t\t\t`<li><strong>${escapeHtml(entry.stage)}</strong> ${(entry.stageShare * 100).toFixed(0)}% of stage` +\n\t\t\t\t\t\t\t\t\t\t\t`${\n\t\t\t\t\t\t\t\t\t\t\t\ttypeof entry.parentStageShare ===\n\t\t\t\t\t\t\t\t\t\t\t\t'number'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? ` · ${(entry.parentStageShare * 100).toFixed(0)}% of parent stage`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t\t\t\t}` +\n\t\t\t\t\t\t\t\t\t\t\t`${\n\t\t\t\t\t\t\t\t\t\t\t\ttypeof entry.stageShareGap ===\n\t\t\t\t\t\t\t\t\t\t\t\t'number'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? ` · gap ${(entry.stageShareGap * 100).toFixed(0)}%`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t\t\t\t}` +\n\t\t\t\t\t\t\t\t\t\t\t`${\n\t\t\t\t\t\t\t\t\t\t\t\tentry.strongestSiblingLabel\n\t\t\t\t\t\t\t\t\t\t\t\t\t? ` · runner-up ${escapeHtml(entry.strongestSiblingLabel)}`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t\t\t\t}` +\n\t\t\t\t\t\t\t\t\t\t\t`${\n\t\t\t\t\t\t\t\t\t\t\t\tentry.reasons.length > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t? ` · ${escapeHtml(entry.reasons.join(', '))}`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t\t\t\t}</li>`\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.join('')}</ul>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}` +\n\t\t\t\t\t`${\n\t\t\t\t\t\tdiagnostic.parentDistribution.length > 0\n\t\t\t\t\t\t\t? `<ul class=\"rag-source-labels\">${diagnostic.parentDistribution\n\t\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t\t(entry) =>\n\t\t\t\t\t\t\t\t\t\t\t`<li><strong>${entry.isActive ? 'Active section' : 'Peer section'}</strong> ${escapeHtml(entry.label)} · ${(entry.parentShare * 100).toFixed(0)}% · ${entry.count} hit${entry.count === 1 ? '' : 's'}</li>`\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.join('')}</ul>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}` +\n\t\t\t\t\t`</article>`\n\t\t\t)\n\t\t\t.join('') +\n\t\t`</section>`\n\t);\n};\n\nconst renderEmptyState = (\n\tkind:\n\t\t| 'documents'\n\t\t| 'searchResults'\n\t\t| 'chunkPreview'\n\t\t| 'status'\n\t\t| 'evaluation'\n) => {\n\tswitch (kind) {\n\t\tcase 'documents':\n\t\t\treturn '<p class=\"rag-empty\">No documents indexed.</p>';\n\t\tcase 'searchResults':\n\t\t\treturn '<p class=\"rag-empty\">No matching chunks.</p>';\n\t\tcase 'chunkPreview':\n\t\t\treturn '<p class=\"rag-empty\">No chunk preview available.</p>';\n\t\tcase 'status':\n\t\t\treturn '<p class=\"rag-empty\">No status available.</p>';\n\t\tcase 'evaluation':\n\t\t\treturn '<p class=\"rag-empty\">No evaluation results yet.</p>';\n\t\tdefault:\n\t\t\treturn '<p class=\"rag-empty\">No results available.</p>';\n\t}\n};\n\nconst renderCapabilityList = (capabilities?: RAGBackendCapabilities) => {\n\tif (!capabilities) {\n\t\treturn '';\n\t}\n\n\tconst items = [\n\t\t`backend=${capabilities.backend}`,\n\t\t`persistence=${capabilities.persistence}`,\n\t\t`nativeVectorSearch=${capabilities.nativeVectorSearch ? 'true' : 'false'}`,\n\t\t`serverSideFiltering=${capabilities.serverSideFiltering ? 'true' : 'false'}`,\n\t\t`streamingIngestStatus=${capabilities.streamingIngestStatus ? 'true' : 'false'}`\n\t];\n\n\treturn `<ul class=\"rag-status-capabilities\">${items\n\t\t.map((item) => `<li>${escapeHtml(item)}</li>`)\n\t\t.join('')}</ul>`;\n};\n\nconst defaultStatus = ({\n\tstatus,\n\tcapabilities,\n\tdocuments\n}: {\n\tstatus?: RAGVectorStoreStatus;\n\tcapabilities?: RAGBackendCapabilities;\n\tdocuments?: RAGDocumentSummary;\n}) => {\n\tif (!status) {\n\t\treturn renderEmptyState('status');\n\t}\n\n\treturn (\n\t\t`<dl class=\"rag-status\">` +\n\t\t`<div><dt>Backend</dt><dd>${escapeHtml(status.backend)}</dd></div>` +\n\t\t`<div><dt>Vector mode</dt><dd>${escapeHtml(status.vectorMode)}</dd></div>` +\n\t\t`<div><dt>Embedding dimensions</dt><dd>${status.dimensions ?? 'n/a'}</dd></div>` +\n\t\t`<div><dt>Vector acceleration</dt><dd>${status.native?.active ? 'active' : 'inactive'}</dd></div>` +\n\t\t`<div><dt>Documents</dt><dd>${documents?.total ?? 'n/a'}</dd></div>` +\n\t\t`<div><dt>Total chunks</dt><dd>${documents?.chunkCount ?? 'n/a'}</dd></div>` +\n\t\t`<div><dt>Seed docs</dt><dd>${documents?.byKind.seed ?? 0}</dd></div>` +\n\t\t`<div><dt>Custom docs</dt><dd>${documents?.byKind.custom ?? 0}</dd></div>` +\n\t\t`</dl>${renderCapabilityList(capabilities)}`\n\t);\n};\n\nconst defaultSearchResultItem = (\n\tsource: RAGSource,\n\tindex: number,\n\tsectionJumps = ''\n) =>\n\t`<article class=\"rag-search-result\" id=\"rag-search-result-${escapeHtml(source.chunkId)}\">` +\n\t`<h3>${escapeHtml(source.title ?? source.chunkId ?? `Result ${index + 1}`)}</h3>` +\n\t`<p class=\"rag-search-source\">${escapeHtml(source.source ?? 'unknown source')}</p>` +\n\trenderSourceLabels(source.labels) +\n\trenderChunkStructure(source.structure) +\n\tsectionJumps +\n\t`<p class=\"rag-search-score\">score ${source.score.toFixed(RAG_SEARCH_SCORE_DECIMAL_PLACES)}</p>` +\n\t`<p class=\"rag-search-text\">${escapeHtml(source.text)}</p>` +\n\t'</article>';\n\nconst defaultSearchResults = ({\n\tquery,\n\tresults,\n\ttrace\n}: {\n\tquery: string;\n\tresults: RAGSource[];\n\ttrace?: RAGSearchResponse['trace'];\n}) =>\n\tresults.length === 0\n\t\t? renderEmptyState('searchResults')\n\t\t: (() => {\n\t\t\t\tconst graph = buildRAGChunkGraph(results);\n\t\t\t\tconst sectionDiagnostics = buildRAGSectionRetrievalDiagnostics(\n\t\t\t\t\tresults,\n\t\t\t\t\ttrace\n\t\t\t\t);\n\t\t\t\tconst availableChunkIds = new Set(\n\t\t\t\t\tresults.map((result) => result.chunkId)\n\t\t\t\t);\n\t\t\t\treturn (\n\t\t\t\t\t`<section class=\"rag-search-results\">` +\n\t\t\t\t\t`<p class=\"rag-search-summary\">${results.length} results for ${escapeHtml(query)}</p>` +\n\t\t\t\t\t`<p class=\"rag-search-summary\">sections=${sectionDiagnostics.length}</p>` +\n\t\t\t\t\t(trace\n\t\t\t\t\t\t? `<p class=\"rag-search-summary\">mode=${escapeHtml(trace.mode)} · final=${trace.resultCounts.final} · vector=${trace.resultCounts.vector} · lexical=${trace.resultCounts.lexical}</p>`\n\t\t\t\t\t\t: '') +\n\t\t\t\t\trenderSectionDiagnostics(sectionDiagnostics) +\n\t\t\t\t\t`${results\n\t\t\t\t\t\t.map((result, index) => {\n\t\t\t\t\t\t\tconst navigation = buildRAGChunkGraphNavigation(\n\t\t\t\t\t\t\t\tgraph,\n\t\t\t\t\t\t\t\tresult.chunkId\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tconst sectionJumps = [\n\t\t\t\t\t\t\t\tnavigation.parentSection?.leadChunkId\n\t\t\t\t\t\t\t\t\t? renderSectionJumpList('Parent section', [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\thref: availableChunkIds.has(\n\t\t\t\t\t\t\t\t\t\t\t\t\tnavigation.parentSection\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.leadChunkId\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? `#rag-search-result-${navigation.parentSection.leadChunkId}`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\t\tlabel:\n\t\t\t\t\t\t\t\t\t\t\t\t\tnavigation.parentSection\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.title ??\n\t\t\t\t\t\t\t\t\t\t\t\t\tnavigation.parentSection.path?.join(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t' > '\n\t\t\t\t\t\t\t\t\t\t\t\t\t) ??\n\t\t\t\t\t\t\t\t\t\t\t\t\tnavigation.parentSection.id\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\t\tnavigation.siblingSections.length > 0\n\t\t\t\t\t\t\t\t\t? renderSectionJumpList(\n\t\t\t\t\t\t\t\t\t\t\t'Sibling section',\n\t\t\t\t\t\t\t\t\t\t\tnavigation.siblingSections.map(\n\t\t\t\t\t\t\t\t\t\t\t\t(section) => ({\n\t\t\t\t\t\t\t\t\t\t\t\t\tactive:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsection.id ===\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnavigation.section?.id,\n\t\t\t\t\t\t\t\t\t\t\t\t\thref:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsection.leadChunkId &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tavailableChunkIds.has(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsection.leadChunkId\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? `#rag-search-result-${section.leadChunkId}`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsection.title ??\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsection.path?.join(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t' > '\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) ??\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsection.id\n\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\t\tnavigation.childSections.length > 0\n\t\t\t\t\t\t\t\t\t? renderSectionJumpList(\n\t\t\t\t\t\t\t\t\t\t\t'Child section',\n\t\t\t\t\t\t\t\t\t\t\tnavigation.childSections.map(\n\t\t\t\t\t\t\t\t\t\t\t\t(section) => ({\n\t\t\t\t\t\t\t\t\t\t\t\t\thref:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsection.leadChunkId &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tavailableChunkIds.has(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsection.leadChunkId\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? `#rag-search-result-${section.leadChunkId}`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsection.title ??\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsection.path?.join(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t' > '\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) ??\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsection.id\n\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t].join('');\n\t\t\t\t\t\t\treturn defaultSearchResultItem(\n\t\t\t\t\t\t\t\tresult,\n\t\t\t\t\t\t\t\tindex,\n\t\t\t\t\t\t\t\tsectionJumps\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.join('')}</section>`\n\t\t\t\t);\n\t\t\t})();\n\nconst defaultDocumentItem = (document: RAGIndexedDocument, index: number) =>\n\t'<article class=\"rag-document\">' +\n\t`<h3>${escapeHtml(document.title || `Document ${index + 1}`)}</h3>` +\n\t`<p class=\"rag-document-id\">${escapeHtml(document.id)}</p>` +\n\t`<p class=\"rag-document-source\">${escapeHtml(document.source)}</p>` +\n\trenderSourceLabels(document.labels) +\n\t`<p class=\"rag-document-meta\">${escapeHtml(document.format ?? 'text')} · ${escapeHtml(document.chunkStrategy ?? 'paragraphs')} · ${document.chunkCount ?? 0} chunks</p>` +\n\t'</article>';\n\nconst defaultDocuments = ({\n\tdocuments\n}: {\n\tdocuments: RAGIndexedDocument[];\n}) =>\n\tdocuments.length === 0\n\t\t? renderEmptyState('documents')\n\t\t: `<section class=\"rag-documents\">${documents\n\t\t\t\t.map((document, index) => defaultDocumentItem(document, index))\n\t\t\t\t.join('')}</section>`;\n\nconst defaultChunkPreview = (input: RAGDocumentChunkPreview) => {\n\tconst graph = buildRAGChunkPreviewGraph(input);\n\tconst navigation = buildRAGChunkGraphNavigation(graph);\n\tconst groups = input.chunks.reduce<\n\t\tArray<{\n\t\t\tkey: string;\n\t\t\ttitle: string;\n\t\t\tchunks: typeof input.chunks;\n\t\t}>\n\t>((acc, chunk) => {\n\t\tconst metadata = chunk.metadata ?? {};\n\t\tconst kind =\n\t\t\ttypeof metadata.sourceNativeKind === 'string'\n\t\t\t\t? metadata.sourceNativeKind\n\t\t\t\t: 'document_chunk';\n\t\tconst locator = chunk.labels?.locatorLabel ?? '';\n\t\tconst title =\n\t\t\tkind === 'pdf_page'\n\t\t\t\t? locator || 'PDF pages'\n\t\t\t\t: kind === 'pdf_region'\n\t\t\t\t\t? locator || 'PDF regions'\n\t\t\t\t\t: kind === 'spreadsheet_sheet'\n\t\t\t\t\t\t? locator || 'Spreadsheet sheets'\n\t\t\t\t\t\t: kind === 'presentation_slide'\n\t\t\t\t\t\t\t? locator || 'Presentation slides'\n\t\t\t\t\t\t\t: kind === 'attachment'\n\t\t\t\t\t\t\t\t? locator || 'Attachments'\n\t\t\t\t\t\t\t\t: kind === 'archive_entry'\n\t\t\t\t\t\t\t\t\t? locator || 'Archive entries'\n\t\t\t\t\t\t\t\t\t: 'Chunks';\n\t\tconst key =\n\t\t\tkind === 'document_chunk' ? 'document_chunk' : `${kind}:${title}`;\n\t\tconst existing = acc.find((entry) => entry.key === key);\n\t\tif (existing) {\n\t\t\texisting.chunks.push(chunk);\n\t\t\treturn acc;\n\t\t}\n\t\tacc.push({\n\t\t\tchunks: [chunk],\n\t\t\tkey,\n\t\t\ttitle\n\t\t});\n\t\treturn acc;\n\t}, []);\n\tconst groupHtml = groups\n\t\t.map((group) => {\n\t\t\tconst chunkHtml = group.chunks\n\t\t\t\t.map(\n\t\t\t\t\t(chunk) =>\n\t\t\t\t\t\t'<article class=\"rag-chunk\">' +\n\t\t\t\t\t\t`<h5>${escapeHtml(chunk.chunkId)}</h5>` +\n\t\t\t\t\t\t`<p class=\"rag-chunk-meta\">chunk ${typeof chunk.metadata?.chunkIndex === 'number' ? chunk.metadata.chunkIndex : 0} of ${typeof chunk.metadata?.chunkCount === 'number' ? chunk.metadata.chunkCount : input.chunks.length}</p>` +\n\t\t\t\t\t\trenderSourceLabels(chunk.labels) +\n\t\t\t\t\t\trenderChunkStructure(chunk.structure) +\n\t\t\t\t\t\trenderChunkExcerpts(chunk.excerpts) +\n\t\t\t\t\t\trenderExcerptSelection(chunk.excerptSelection) +\n\t\t\t\t\t\t`<pre>${escapeHtml(chunk.text)}</pre>` +\n\t\t\t\t\t\t'</article>'\n\t\t\t\t)\n\t\t\t\t.join('');\n\t\t\treturn `<section class=\"rag-chunk-group\"><h4>${escapeHtml(group.title)}</h4>${chunkHtml}</section>`;\n\t\t})\n\t\t.join('');\n\n\treturn (\n\t\t`<section class=\"rag-chunk-preview\">` +\n\t\t`<h3>${escapeHtml(input.document.title)}</h3>` +\n\t\t`<p class=\"rag-chunk-preview-source\">${escapeHtml(input.document.source)}</p>` +\n\t\trenderSourceLabels(input.document.labels) +\n\t\t(navigation.parentSection\n\t\t\t? renderSectionJumpList('Parent section', [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel:\n\t\t\t\t\t\t\tnavigation.parentSection.title ??\n\t\t\t\t\t\t\tnavigation.parentSection.path?.join(' > ') ??\n\t\t\t\t\t\t\tnavigation.parentSection.id\n\t\t\t\t\t}\n\t\t\t\t])\n\t\t\t: '') +\n\t\t(navigation.siblingSections.length > 0\n\t\t\t? renderSectionJumpList(\n\t\t\t\t\t'Sibling section',\n\t\t\t\t\tnavigation.siblingSections.map((section) => ({\n\t\t\t\t\t\tlabel:\n\t\t\t\t\t\t\tsection.title ??\n\t\t\t\t\t\t\tsection.path?.join(' > ') ??\n\t\t\t\t\t\t\tsection.id\n\t\t\t\t\t}))\n\t\t\t\t)\n\t\t\t: '') +\n\t\t(navigation.childSections.length > 0\n\t\t\t? renderSectionJumpList(\n\t\t\t\t\t'Child section',\n\t\t\t\t\tnavigation.childSections.map((section) => ({\n\t\t\t\t\t\tlabel:\n\t\t\t\t\t\t\tsection.title ??\n\t\t\t\t\t\t\tsection.path?.join(' > ') ??\n\t\t\t\t\t\t\tsection.id\n\t\t\t\t\t}))\n\t\t\t\t)\n\t\t\t: '') +\n\t\t`<article class=\"rag-chunk-normalized\">` +\n\t\t`<h4>Normalized text</h4>` +\n\t\t`<pre>${escapeHtml(input.normalizedText)}</pre>` +\n\t\t`</article>${groupHtml}</section>`\n\t);\n};\n\nconst defaultMutationResult = (input: RAGMutationResponse) => {\n\tif (!input.ok) {\n\t\treturn `<div class=\"rag-mutation error\">${escapeHtml(input.error ?? 'Request failed')}</div>`;\n\t}\n\n\tconst details: string[] = [];\n\n\tif (input.status) {\n\t\tdetails.push(input.status);\n\t}\n\n\tif (input.inserted) {\n\t\tdetails.push(`inserted=${input.inserted}`);\n\t}\n\n\tif (input.deleted) {\n\t\tdetails.push(`deleted=${input.deleted}`);\n\t}\n\n\tif (typeof input.documents === 'number') {\n\t\tdetails.push(`documents=${input.documents}`);\n\t}\n\n\treturn `<div class=\"rag-mutation ok\">${escapeHtml(details.join(' · ') || 'ok')}</div>`;\n};\n\nconst defaultEvaluateResult = ({\n\tcases,\n\tsummary\n}: {\n\tcases: RAGEvaluationCaseResult[];\n\tsummary: RAGEvaluationSummary;\n}) => {\n\tif (cases.length === 0) {\n\t\treturn renderEmptyState('evaluation');\n\t}\n\n\tconst caseRows = cases\n\t\t.map(\n\t\t\t(entry) =>\n\t\t\t\t`<tr class=\"rag-eval-row rag-eval-${entry.status}\">` +\n\t\t\t\t`<td>${escapeHtml(entry.caseId)}</td>` +\n\t\t\t\t`<td>${escapeHtml(entry.mode)}</td>` +\n\t\t\t\t`<td>${escapeHtml(entry.status)}</td>` +\n\t\t\t\t`<td>${entry.elapsedMs}</td>` +\n\t\t\t\t`<td>${entry.retrievedCount}</td>` +\n\t\t\t\t`<td>${entry.expectedCount}</td>` +\n\t\t\t\t`<td>${entry.matchedCount}</td>` +\n\t\t\t\t`<td>${entry.precision.toFixed(4)}</td>` +\n\t\t\t\t`<td>${entry.recall.toFixed(4)}</td>` +\n\t\t\t\t`<td>${entry.f1.toFixed(4)}</td>` +\n\t\t\t\t`<td>${escapeHtml(entry.label ?? 'n/a')}</td>` +\n\t\t\t\t`<td>${escapeHtml(entry.missingIds.join(', ') || 'none')}</td>` +\n\t\t\t\t`</tr>`\n\t\t)\n\t\t.join('');\n\n\tconst passingRate =\n\t\tsummary.totalCases > 0\n\t\t\t? ((summary.passedCases / summary.totalCases) * 100).toFixed(1)\n\t\t\t: '0.0';\n\n\treturn (\n\t\t`<section class=\"rag-evaluation\">` +\n\t\t`<h3>Evaluation</h3>` +\n\t\t`<p>${summary.totalCases} cases · ${summary.passedCases} pass · ${summary.partialCases} partial · ${summary.failedCases} fail · passing ${passingRate}%</p>` +\n\t\t`<table class=\"rag-eval-table\"><thead><tr><th>Case</th><th>Mode</th><th>Status</th><th>ms</th><th>Retrieved</th><th>Expected</th><th>Matched</th><th>Precision</th><th>Recall</th><th>F1</th><th>Label</th><th>Missing</th></tr></thead><tbody>${caseRows}</tbody></table>` +\n\t\t`<dl class=\"rag-eval-summary\"><div><dt>Average precision</dt><dd>${summary.averagePrecision.toFixed(\n\t\t\t4\n\t\t)}</dd></div><div><dt>Average recall</dt><dd>${summary.averageRecall.toFixed(\n\t\t\t4\n\t\t)}</dd></div><div><dt>Average F1</dt><dd>${summary.averageF1.toFixed(\n\t\t\t4\n\t\t)}</dd></div><div><dt>Average latency</dt><dd>${summary.averageLatencyMs.toFixed(\n\t\t\t1\n\t\t)}ms</dd></div></dl>` +\n\t\t`</section>`\n\t);\n};\n\nconst defaultError = (message: string) =>\n\t`<div class=\"rag-error\">${escapeHtml(message)}</div>`;\n\nexport const resolveRAGWorkflowRenderers = (\n\tcustom?: RAGHTMXWorkflowRenderConfig\n): ResolvedRAGWorkflowRenderers => ({\n\tchunkPreview: custom?.chunkPreview ?? defaultChunkPreview,\n\tdocumentItem: custom?.documentItem ?? defaultDocumentItem,\n\tdocuments: custom?.documents ?? defaultDocuments,\n\temptyState: custom?.emptyState ?? renderEmptyState,\n\terror: custom?.error ?? defaultError,\n\tmutationResult: custom?.mutationResult ?? defaultMutationResult,\n\tevaluateResult: custom?.evaluateResult ?? defaultEvaluateResult,\n\tsearchResultItem: custom?.searchResultItem ?? defaultSearchResultItem,\n\tsearchResults: custom?.searchResults ?? defaultSearchResults,\n\tstatus: custom?.status ?? defaultStatus\n});\n",
26
+ "import type {\n\tRAGCollection,\n\tRAGCollectionSearchResult,\n\tRAGHybridRetrievalMode,\n\tRAGCollectionSearchParams,\n\tRAGRerankerProviderLike,\n\tRAGDocumentIngestInput,\n\tRAGEmbeddingInput,\n\tRAGEmbeddingProviderLike,\n\tRAGQueryResult,\n\tRAGQueryTransformProviderLike,\n\tRAGUpsertInput,\n\tRAGVectorStore\n} from '../../../types/ai';\nimport { fuseRAGQueryResults, resolveRAGHybridSearchOptions } from './lexical';\nimport { applyRAGQueryTransform } from './queryTransforms';\nimport { applyRAGReranking } from './reranking';\nimport {\n\tresolveRAGEmbeddingProvider,\n\tvalidateRAGEmbeddingDimensions\n} from './embedding';\nimport { buildRAGUpsertInputFromDocuments } from './ingestion';\n\nconst DEFAULT_TOP_K = 6;\n\nexport type CreateRAGCollectionOptions = {\n\tstore: RAGVectorStore;\n\tembedding?: RAGEmbeddingProviderLike;\n\tdefaultTopK?: number;\n\tdefaultCandidateMultiplier?: number;\n\tdefaultModel?: string;\n\tqueryTransform?: RAGQueryTransformProviderLike;\n\trerank?: RAGRerankerProviderLike;\n};\n\nconst VARIANT_RESULT_WEIGHT = 0.92;\n\nconst mergeQueryResults = (results: RAGQueryResult[]) => {\n\tconst merged = new Map<string, RAGQueryResult>();\n\n\tfor (const result of results) {\n\t\tconst existing = merged.get(result.chunkId);\n\t\tconst existingOrigins = Array.isArray(\n\t\t\texisting?.metadata?.retrievalQueryOrigins\n\t\t)\n\t\t\t? existing.metadata.retrievalQueryOrigins.filter(\n\t\t\t\t\t(value): value is string => typeof value === 'string'\n\t\t\t\t)\n\t\t\t: typeof existing?.metadata?.retrievalQueryOrigin === 'string'\n\t\t\t\t? [existing.metadata.retrievalQueryOrigin]\n\t\t\t\t: [];\n\t\tconst resultOrigins = Array.isArray(\n\t\t\tresult.metadata?.retrievalQueryOrigins\n\t\t)\n\t\t\t? result.metadata.retrievalQueryOrigins.filter(\n\t\t\t\t\t(value): value is string => typeof value === 'string'\n\t\t\t\t)\n\t\t\t: typeof result.metadata?.retrievalQueryOrigin === 'string'\n\t\t\t\t? [result.metadata.retrievalQueryOrigin]\n\t\t\t\t: [];\n\t\tconst mergedOrigins = Array.from(\n\t\t\tnew Set([...existingOrigins, ...resultOrigins])\n\t\t);\n\t\tconst preferred =\n\t\t\t!existing || result.score > existing.score ? result : existing;\n\t\tmerged.set(result.chunkId, {\n\t\t\t...preferred,\n\t\t\tmetadata: {\n\t\t\t\t...(preferred.metadata ?? {}),\n\t\t\t\tretrievalQueryOrigins: mergedOrigins\n\t\t\t}\n\t\t});\n\t}\n\n\treturn [...merged.values()].sort((left, right) => {\n\t\tif (right.score !== left.score) {\n\t\t\treturn right.score - left.score;\n\t\t}\n\n\t\treturn left.chunkId.localeCompare(right.chunkId);\n\t});\n};\n\nconst getRAGSourceDiversityKey = (result: RAGQueryResult) => {\n\tconst documentId =\n\t\ttypeof result.metadata?.documentId === 'string'\n\t\t\t? result.metadata.documentId\n\t\t\t: undefined;\n\treturn result.source ?? documentId ?? result.title ?? result.chunkId;\n};\n\nconst applyRAGSourceDiversity = (\n\tresults: RAGQueryResult[],\n\tmaxResultsPerSource?: number,\n\tstrategy: 'cap' | 'round_robin' = 'cap'\n) => {\n\tif (typeof maxResultsPerSource !== 'number') {\n\t\treturn results;\n\t}\n\n\tif (strategy === 'round_robin') {\n\t\tconst grouped = new Map<string, RAGQueryResult[]>();\n\t\tconst order: string[] = [];\n\n\t\tfor (const result of results) {\n\t\t\tconst key = getRAGSourceDiversityKey(result);\n\t\t\tconst entries = grouped.get(key);\n\t\t\tif (entries) {\n\t\t\t\tentries.push(result);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tgrouped.set(key, [result]);\n\t\t\torder.push(key);\n\t\t}\n\n\t\tconst counts = new Map<string, number>();\n\t\tconst balanced: RAGQueryResult[] = [];\n\t\tlet remaining = true;\n\n\t\twhile (remaining) {\n\t\t\tremaining = false;\n\t\t\tfor (const key of order) {\n\t\t\t\tconst entries = grouped.get(key);\n\t\t\t\tif (!entries || entries.length === 0) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif ((counts.get(key) ?? 0) >= maxResultsPerSource) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst next = entries.shift();\n\t\t\t\tif (!next) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tcounts.set(key, (counts.get(key) ?? 0) + 1);\n\t\t\t\tbalanced.push(next);\n\t\t\t\tremaining = true;\n\t\t\t}\n\t\t}\n\n\t\treturn balanced;\n\t}\n\n\tconst limited: RAGQueryResult[] = [];\n\tconst counts = new Map<string, number>();\n\n\tfor (const result of results) {\n\t\tconst key = getRAGSourceDiversityKey(result);\n\t\tconst count = counts.get(key) ?? 0;\n\t\tif (count >= maxResultsPerSource) {\n\t\t\tcontinue;\n\t\t}\n\t\tcounts.set(key, count + 1);\n\t\tlimited.push(result);\n\t}\n\n\treturn limited;\n};\n\nconst dotProduct = (left: number[], right: number[]) => {\n\tconst length = Math.min(left.length, right.length);\n\tlet total = 0;\n\tfor (let index = 0; index < length; index += 1) {\n\t\ttotal += (left[index] ?? 0) * (right[index] ?? 0);\n\t}\n\treturn total;\n};\n\nconst applyRAGMMRDiversity = (\n\tresults: RAGQueryResult[],\n\tqueryVector: number[],\n\tlambda: number\n) => {\n\tconst withEmbeddings = results.filter(\n\t\t(result): result is RAGQueryResult & { embedding: number[] } =>\n\t\t\tArray.isArray(result.embedding) && result.embedding.length > 0\n\t);\n\n\tif (withEmbeddings.length < 2 || queryVector.length === 0) {\n\t\treturn results;\n\t}\n\n\tconst selected: Array<RAGQueryResult & { embedding: number[] }> = [];\n\tconst remaining = [...withEmbeddings];\n\n\twhile (remaining.length > 0) {\n\t\tlet bestIndex = 0;\n\t\tlet bestScore = Number.NEGATIVE_INFINITY;\n\n\t\tfor (let index = 0; index < remaining.length; index += 1) {\n\t\t\tconst candidate = remaining[index];\n\t\t\tif (!candidate) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst relevance = dotProduct(queryVector, candidate.embedding);\n\t\t\tconst redundancy =\n\t\t\t\tselected.length > 0\n\t\t\t\t\t? Math.max(\n\t\t\t\t\t\t\t...selected.map((entry) =>\n\t\t\t\t\t\t\t\tdotProduct(entry.embedding, candidate.embedding)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t: 0;\n\t\t\tconst mmrScore = lambda * relevance - (1 - lambda) * redundancy;\n\t\t\tif (mmrScore > bestScore) {\n\t\t\t\tbestScore = mmrScore;\n\t\t\t\tbestIndex = index;\n\t\t\t}\n\t\t}\n\n\t\tconst next = remaining.splice(bestIndex, 1)[0];\n\t\tif (!next) {\n\t\t\tbreak;\n\t\t}\n\t\tselected.push(next);\n\t}\n\n\tconst selectedIds = new Set(selected.map((entry) => entry.chunkId));\n\tconst tail = results.filter((entry) => !selectedIds.has(entry.chunkId));\n\treturn [...selected, ...tail];\n};\n\nconst weightQueryResults = (results: RAGQueryResult[], queryIndex: number) => {\n\tconst weight =\n\t\tqueryIndex === 0 ? 1 : Math.pow(VARIANT_RESULT_WEIGHT, queryIndex);\n\treturn results.map((result) => ({\n\t\t...result,\n\t\tmetadata: {\n\t\t\t...(result.metadata ?? {}),\n\t\t\tretrievalQueryIndex: queryIndex\n\t\t},\n\t\tscore: result.score * weight\n\t}));\n};\n\nconst annotateRetrievalChannels = (input: {\n\tresults: RAGQueryResult[];\n\tvectorResults: RAGQueryResult[];\n\tlexicalResults: RAGQueryResult[];\n}) => {\n\tconst vectorIds = new Set(\n\t\tinput.vectorResults.map((result) => result.chunkId)\n\t);\n\tconst lexicalIds = new Set(\n\t\tinput.lexicalResults.map((result) => result.chunkId)\n\t);\n\n\treturn input.results.map((result) => {\n\t\tconst channels: Array<'vector' | 'lexical'> = [];\n\t\tif (vectorIds.has(result.chunkId)) {\n\t\t\tchannels.push('vector');\n\t\t}\n\t\tif (lexicalIds.has(result.chunkId)) {\n\t\t\tchannels.push('lexical');\n\t\t}\n\n\t\treturn {\n\t\t\t...result,\n\t\t\tmetadata: {\n\t\t\t\t...(result.metadata ?? {}),\n\t\t\t\tretrievalChannels: channels\n\t\t\t}\n\t\t};\n\t});\n};\n\nconst buildTraceSectionCounts = (results: RAGQueryResult[]) => {\n\tconst sections = new Map<\n\t\tstring,\n\t\t{ key: string; label: string; count: number }\n\t>();\n\n\tfor (const result of results) {\n\t\tconst path = Array.isArray(result.metadata?.sectionPath)\n\t\t\t? result.metadata.sectionPath.filter(\n\t\t\t\t\t(value): value is string =>\n\t\t\t\t\t\ttypeof value === 'string' && value.trim().length > 0\n\t\t\t\t)\n\t\t\t: [];\n\t\tif (path.length === 0) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst key = path.join(' > ');\n\t\tconst existing = sections.get(key);\n\t\tif (existing) {\n\t\t\texisting.count += 1;\n\t\t\tcontinue;\n\t\t}\n\n\t\tsections.set(key, {\n\t\t\tcount: 1,\n\t\t\tkey,\n\t\t\tlabel: path.at(-1) ?? key\n\t\t});\n\t}\n\n\treturn [...sections.values()].sort((left, right) => {\n\t\tif (right.count !== left.count) {\n\t\t\treturn right.count - left.count;\n\t\t}\n\n\t\treturn left.key.localeCompare(right.key);\n\t});\n};\n\nconst buildTraceSectionScores = (results: RAGQueryResult[]) => {\n\tconst sections = new Map<\n\t\tstring,\n\t\t{ key: string; label: string; totalScore: number }\n\t>();\n\n\tfor (const result of results) {\n\t\tconst path = Array.isArray(result.metadata?.sectionPath)\n\t\t\t? result.metadata.sectionPath.filter(\n\t\t\t\t\t(value): value is string =>\n\t\t\t\t\t\ttypeof value === 'string' && value.trim().length > 0\n\t\t\t\t)\n\t\t\t: [];\n\t\tif (path.length === 0) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst key = path.join(' > ');\n\t\tconst existing = sections.get(key);\n\t\tif (existing) {\n\t\t\texisting.totalScore += result.score;\n\t\t\tcontinue;\n\t\t}\n\n\t\tsections.set(key, {\n\t\t\tkey,\n\t\t\tlabel: path.at(-1) ?? key,\n\t\t\ttotalScore: result.score\n\t\t});\n\t}\n\n\treturn [...sections.values()].sort((left, right) => {\n\t\tif (right.totalScore !== left.totalScore) {\n\t\t\treturn right.totalScore - left.totalScore;\n\t\t}\n\n\t\treturn left.key.localeCompare(right.key);\n\t});\n};\n\nconst annotateRetrievalQueryOrigin = (input: {\n\tresults: RAGQueryResult[];\n\tquery: string;\n\tqueryIndex: number;\n\tinputQuery: string;\n\ttransformedQuery: string;\n}) => {\n\tconst origin =\n\t\tinput.queryIndex === 0\n\t\t\t? input.query === input.inputQuery\n\t\t\t\t? 'primary'\n\t\t\t\t: 'transformed'\n\t\t\t: 'variant';\n\n\treturn input.results.map((result) => ({\n\t\t...result,\n\t\tmetadata: {\n\t\t\t...(result.metadata ?? {}),\n\t\t\tretrievalQuery: input.query,\n\t\t\tretrievalQueryOrigin: origin\n\t\t}\n\t}));\n};\n\nconst shouldRunVectorRetrieval = (mode: RAGHybridRetrievalMode) =>\n\tmode === 'vector' || mode === 'hybrid';\n\nconst shouldRunLexicalRetrieval = (\n\tmode: RAGHybridRetrievalMode,\n\tstore: RAGVectorStore\n) => mode === 'lexical' || (mode === 'hybrid' && Boolean(store.queryLexical));\n\nexport const createRAGCollection = (\n\toptions: CreateRAGCollectionOptions\n): RAGCollection => {\n\tconst defaultTopK = options.defaultTopK ?? DEFAULT_TOP_K;\n\tconst defaultCandidateMultiplier = Math.max(\n\t\t1,\n\t\tMath.floor(options.defaultCandidateMultiplier ?? 4)\n\t);\n\tconst { getCapabilities } = options.store;\n\tconst { getStatus } = options.store;\n\tconst embeddingProvider = resolveRAGEmbeddingProvider(\n\t\toptions.embedding,\n\t\toptions.store.embed,\n\t\toptions.defaultModel\n\t);\n\tconst getExpectedDimensions = () =>\n\t\tembeddingProvider.dimensions ?? getStatus?.()?.dimensions;\n\n\tconst embed = async (\n\t\tinput: RAGEmbeddingInput,\n\t\tcontext: 'query' | 'chunk'\n\t) => {\n\t\tconst vector = await embeddingProvider.embed(input);\n\t\tvalidateRAGEmbeddingDimensions(\n\t\t\tvector,\n\t\t\tgetExpectedDimensions(),\n\t\t\tcontext\n\t\t);\n\n\t\treturn vector;\n\t};\n\n\tconst searchWithTrace = async (\n\t\tinput: RAGCollectionSearchParams\n\t): Promise<RAGCollectionSearchResult> => {\n\t\tconst model = input.model ?? options.defaultModel;\n\t\tconst topK = input.topK ?? defaultTopK;\n\t\tconst hasReranker = Boolean(input.rerank ?? options.rerank);\n\t\tconst retrieval = resolveRAGHybridSearchOptions(input.retrieval);\n\t\tconst hasQueryTransform = Boolean(\n\t\t\tinput.queryTransform ?? options.queryTransform\n\t\t);\n\t\tconst shouldExpandCandidates =\n\t\t\thasReranker || hasQueryTransform || retrieval.mode !== 'vector';\n\t\tconst candidateTopK = Math.max(\n\t\t\ttopK,\n\t\t\tMath.floor(\n\t\t\t\tinput.candidateTopK ??\n\t\t\t\t\t(shouldExpandCandidates\n\t\t\t\t\t\t? topK * defaultCandidateMultiplier\n\t\t\t\t\t\t: topK)\n\t\t\t)\n\t\t);\n\t\tconst transformed = await applyRAGQueryTransform({\n\t\t\tinput: {\n\t\t\t\tcandidateTopK,\n\t\t\t\tfilter: input.filter,\n\t\t\t\tmodel,\n\t\t\t\tquery: input.query,\n\t\t\t\tscoreThreshold: input.scoreThreshold,\n\t\t\t\ttopK\n\t\t\t},\n\t\t\tqueryTransform: input.queryTransform ?? options.queryTransform\n\t\t});\n\t\tconst searchQueries = Array.from(\n\t\t\tnew Set([transformed.query, ...(transformed.variants ?? [])])\n\t\t).filter(Boolean);\n\t\tconst runVector = shouldRunVectorRetrieval(retrieval.mode);\n\t\tconst runLexical = shouldRunLexicalRetrieval(\n\t\t\tretrieval.mode,\n\t\t\toptions.store\n\t\t);\n\t\tconst lexicalTopK = Math.max(\n\t\t\ttopK,\n\t\t\tMath.floor(retrieval.lexicalTopK ?? candidateTopK)\n\t\t);\n\t\tconst steps: RAGCollectionSearchResult['trace']['steps'] = [\n\t\t\t{\n\t\t\t\tcount: topK,\n\t\t\t\tlabel: 'Search input received',\n\t\t\t\tmetadata: {\n\t\t\t\t\tcandidateTopK,\n\t\t\t\t\thasQueryTransform,\n\t\t\t\t\thasReranker,\n\t\t\t\t\tmaxResultsPerSource: retrieval.maxResultsPerSource ?? null,\n\t\t\t\t\tmmrLambda: retrieval.mmrLambda,\n\t\t\t\t\tmode: retrieval.mode,\n\t\t\t\t\tdiversityStrategy: retrieval.diversityStrategy,\n\t\t\t\t\trunLexical,\n\t\t\t\t\trunVector,\n\t\t\t\t\tsourceBalanceStrategy: retrieval.sourceBalanceStrategy,\n\t\t\t\t\ttopK\n\t\t\t\t},\n\t\t\t\tstage: 'input'\n\t\t\t}\n\t\t];\n\t\tconst queryVector = runVector\n\t\t\t? await embed(\n\t\t\t\t\t{\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\tsignal: input.signal,\n\t\t\t\t\t\ttext: input.query\n\t\t\t\t\t},\n\t\t\t\t\t'query'\n\t\t\t\t)\n\t\t\t: [];\n\t\tif (runVector) {\n\t\t\tsteps.push({\n\t\t\t\tlabel: 'Embedded primary query',\n\t\t\t\tmetadata: {\n\t\t\t\t\tdimensions: queryVector.length,\n\t\t\t\t\tquery: input.query\n\t\t\t\t},\n\t\t\t\tstage: 'embed'\n\t\t\t});\n\t\t}\n\t\tif (transformed.query !== input.query || searchQueries.length > 1) {\n\t\t\tsteps.push({\n\t\t\t\tlabel: 'Expanded query variants',\n\t\t\t\tmetadata: {\n\t\t\t\t\ttransformedQuery: transformed.query,\n\t\t\t\t\tvariantCount: Math.max(0, searchQueries.length - 1)\n\t\t\t\t},\n\t\t\t\tstage: 'query_transform'\n\t\t\t});\n\t\t}\n\t\tconst resultGroups = await Promise.all(\n\t\t\tsearchQueries.map(async (query, queryIndex) => {\n\t\t\t\tconst [vectorResults, lexicalResults] = await Promise.all([\n\t\t\t\t\trunVector\n\t\t\t\t\t\t? embed(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\tsignal: input.signal,\n\t\t\t\t\t\t\t\t\ttext: query\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t'query'\n\t\t\t\t\t\t\t).then((nextQueryVector) =>\n\t\t\t\t\t\t\t\toptions.store.query({\n\t\t\t\t\t\t\t\t\tfilter: input.filter,\n\t\t\t\t\t\t\t\t\tqueryVector: nextQueryVector,\n\t\t\t\t\t\t\t\t\ttopK: candidateTopK\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t: Promise.resolve([]),\n\t\t\t\t\trunLexical\n\t\t\t\t\t\t? (options.store.queryLexical?.({\n\t\t\t\t\t\t\t\tfilter: input.filter,\n\t\t\t\t\t\t\t\tquery,\n\t\t\t\t\t\t\t\ttopK: lexicalTopK\n\t\t\t\t\t\t\t}) ?? Promise.resolve([]))\n\t\t\t\t\t\t: Promise.resolve([])\n\t\t\t\t]);\n\n\t\t\t\treturn {\n\t\t\t\t\tlexicalResults: annotateRetrievalQueryOrigin({\n\t\t\t\t\t\tinputQuery: input.query,\n\t\t\t\t\t\tquery,\n\t\t\t\t\t\tqueryIndex,\n\t\t\t\t\t\tresults: weightQueryResults(lexicalResults, queryIndex),\n\t\t\t\t\t\ttransformedQuery: transformed.query\n\t\t\t\t\t}),\n\t\t\t\t\tvectorResults: annotateRetrievalQueryOrigin({\n\t\t\t\t\t\tinputQuery: input.query,\n\t\t\t\t\t\tquery,\n\t\t\t\t\t\tqueryIndex,\n\t\t\t\t\t\tresults: weightQueryResults(vectorResults, queryIndex),\n\t\t\t\t\t\ttransformedQuery: transformed.query\n\t\t\t\t\t})\n\t\t\t\t};\n\t\t\t})\n\t\t);\n\t\tconst vectorResults = mergeQueryResults(\n\t\t\tresultGroups.flatMap((group) => group.vectorResults)\n\t\t);\n\t\tif (runVector) {\n\t\t\tsteps.push({\n\t\t\t\tcount: vectorResults.length,\n\t\t\t\tlabel: 'Collected vector candidates',\n\t\t\t\tmetadata: {\n\t\t\t\t\tqueryCount: searchQueries.length,\n\t\t\t\t\ttopK: candidateTopK\n\t\t\t\t},\n\t\t\t\tsectionCounts: buildTraceSectionCounts(vectorResults),\n\t\t\t\tsectionScores: buildTraceSectionScores(vectorResults),\n\t\t\t\tstage: 'vector_search'\n\t\t\t});\n\t\t}\n\t\tconst lexicalResults = mergeQueryResults(\n\t\t\tresultGroups.flatMap((group) => group.lexicalResults)\n\t\t);\n\t\tif (runLexical) {\n\t\t\tsteps.push({\n\t\t\t\tcount: lexicalResults.length,\n\t\t\t\tlabel: 'Collected lexical candidates',\n\t\t\t\tmetadata: {\n\t\t\t\t\tqueryCount: searchQueries.length,\n\t\t\t\t\ttopK: lexicalTopK\n\t\t\t\t},\n\t\t\t\tsectionCounts: buildTraceSectionCounts(lexicalResults),\n\t\t\t\tsectionScores: buildTraceSectionScores(lexicalResults),\n\t\t\t\tstage: 'lexical_search'\n\t\t\t});\n\t\t}\n\t\tconst results =\n\t\t\tretrieval.mode === 'lexical'\n\t\t\t\t? lexicalResults\n\t\t\t\t: retrieval.mode === 'vector'\n\t\t\t\t\t? vectorResults\n\t\t\t\t\t: fuseRAGQueryResults({\n\t\t\t\t\t\t\tfusion: retrieval.fusion,\n\t\t\t\t\t\t\tfusionConstant: retrieval.fusionConstant,\n\t\t\t\t\t\t\tlexical: lexicalResults,\n\t\t\t\t\t\t\tlexicalWeight: retrieval.lexicalWeight,\n\t\t\t\t\t\t\tvector: vectorResults,\n\t\t\t\t\t\t\tvectorWeight: retrieval.vectorWeight\n\t\t\t\t\t\t});\n\t\tsteps.push({\n\t\t\tcount: results.length,\n\t\t\tlabel:\n\t\t\t\tretrieval.mode === 'hybrid'\n\t\t\t\t\t? 'Fused retrieval candidates'\n\t\t\t\t\t: 'Selected retrieval candidates',\n\t\t\tmetadata: {\n\t\t\t\tmode: retrieval.mode\n\t\t\t},\n\t\t\tsectionCounts: buildTraceSectionCounts(results),\n\t\t\tsectionScores: buildTraceSectionScores(results),\n\t\t\tstage: 'fusion'\n\t\t});\n\t\tconst rerankInput = {\n\t\t\tcandidateTopK,\n\t\t\tfilter: input.filter,\n\t\t\tmodel,\n\t\t\tquery: transformed.query,\n\t\t\tqueryVector,\n\t\t\tresults,\n\t\t\tscoreThreshold: input.scoreThreshold,\n\t\t\ttopK\n\t\t};\n\t\tconst reranked = await applyRAGReranking({\n\t\t\tinput: rerankInput,\n\t\t\treranker: input.rerank ?? options.rerank\n\t\t});\n\t\tsteps.push({\n\t\t\tcount: reranked.length,\n\t\t\tlabel: hasReranker\n\t\t\t\t? 'Reranked retrieval candidates'\n\t\t\t\t: 'Skipped reranking and kept retrieval order',\n\t\t\tmetadata: {\n\t\t\t\tapplied: hasReranker\n\t\t\t},\n\t\t\tsectionCounts: buildTraceSectionCounts(reranked),\n\t\t\tsectionScores: buildTraceSectionScores(reranked),\n\t\t\tstage: 'rerank'\n\t\t});\n\t\tconst diversityAdjusted =\n\t\t\tretrieval.diversityStrategy === 'mmr'\n\t\t\t\t? applyRAGMMRDiversity(\n\t\t\t\t\t\treranked,\n\t\t\t\t\t\tqueryVector,\n\t\t\t\t\t\tretrieval.mmrLambda\n\t\t\t\t\t)\n\t\t\t\t: reranked;\n\t\tif (retrieval.diversityStrategy === 'mmr') {\n\t\t\tsteps.push({\n\t\t\t\tcount: diversityAdjusted.length,\n\t\t\t\tlabel: 'Applied MMR diversity reordering',\n\t\t\t\tmetadata: {\n\t\t\t\t\tapplied:\n\t\t\t\t\t\tqueryVector.length > 0 &&\n\t\t\t\t\t\tdiversityAdjusted.some((entry) =>\n\t\t\t\t\t\t\tArray.isArray(entry.embedding)\n\t\t\t\t\t\t),\n\t\t\t\t\tmmrLambda: retrieval.mmrLambda\n\t\t\t\t},\n\t\t\t\tsectionCounts: buildTraceSectionCounts(diversityAdjusted),\n\t\t\t\tsectionScores: buildTraceSectionScores(diversityAdjusted),\n\t\t\t\tstage: 'diversity'\n\t\t\t});\n\t\t}\n\t\tconst diversified = applyRAGSourceDiversity(\n\t\t\tdiversityAdjusted,\n\t\t\tretrieval.maxResultsPerSource,\n\t\t\tretrieval.sourceBalanceStrategy\n\t\t);\n\t\tif (typeof retrieval.maxResultsPerSource === 'number') {\n\t\t\tsteps.push({\n\t\t\t\tcount: diversified.length,\n\t\t\t\tlabel: 'Balanced candidates across sources',\n\t\t\t\tmetadata: {\n\t\t\t\t\tmaxResultsPerSource: retrieval.maxResultsPerSource,\n\t\t\t\t\tstrategy: retrieval.sourceBalanceStrategy\n\t\t\t\t},\n\t\t\t\tsectionCounts: buildTraceSectionCounts(diversified),\n\t\t\t\tsectionScores: buildTraceSectionScores(diversified),\n\t\t\t\tstage: 'source_balance'\n\t\t\t});\n\t\t}\n\t\tconst limited = annotateRetrievalChannels({\n\t\t\tlexicalResults,\n\t\t\tresults: diversified.slice(0, topK),\n\t\t\tvectorResults\n\t\t});\n\n\t\tif (typeof input.scoreThreshold !== 'number') {\n\t\t\tsteps.push({\n\t\t\t\tcount: limited.length,\n\t\t\t\tlabel: 'Finalized retrieval results',\n\t\t\t\tmetadata: {\n\t\t\t\t\tappliedScoreThreshold: false\n\t\t\t\t},\n\t\t\t\tsectionCounts: buildTraceSectionCounts(limited),\n\t\t\t\tsectionScores: buildTraceSectionScores(limited),\n\t\t\t\tstage: 'finalize'\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tresults: limited,\n\t\t\t\ttrace: {\n\t\t\t\t\tcandidateTopK,\n\t\t\t\t\tlexicalTopK,\n\t\t\t\t\tmaxResultsPerSource: retrieval.maxResultsPerSource,\n\t\t\t\t\tmmrLambda: retrieval.mmrLambda,\n\t\t\t\t\tmode: retrieval.mode,\n\t\t\t\t\tdiversityStrategy: retrieval.diversityStrategy,\n\t\t\t\t\tquery: input.query,\n\t\t\t\t\tresultCounts: {\n\t\t\t\t\t\tfinal: limited.length,\n\t\t\t\t\t\tfused: results.length,\n\t\t\t\t\t\tlexical: lexicalResults.length,\n\t\t\t\t\t\treranked: diversified.length,\n\t\t\t\t\t\tvector: vectorResults.length\n\t\t\t\t\t},\n\t\t\t\t\trunLexical,\n\t\t\t\t\trunVector,\n\t\t\t\t\tsourceBalanceStrategy: retrieval.sourceBalanceStrategy,\n\t\t\t\t\tsteps,\n\t\t\t\t\ttopK,\n\t\t\t\t\ttransformedQuery: transformed.query,\n\t\t\t\t\tvariantQueries: searchQueries.slice(1)\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tconst { scoreThreshold } = input;\n\t\tconst filtered = limited.filter(\n\t\t\t(entry) => entry.score >= scoreThreshold\n\t\t);\n\t\tsteps.push({\n\t\t\tcount: filtered.length,\n\t\t\tlabel: 'Applied score threshold',\n\t\t\tmetadata: {\n\t\t\t\tscoreThreshold\n\t\t\t},\n\t\t\tsectionCounts: buildTraceSectionCounts(filtered),\n\t\t\tsectionScores: buildTraceSectionScores(filtered),\n\t\t\tstage: 'score_filter'\n\t\t});\n\t\tsteps.push({\n\t\t\tcount: filtered.length,\n\t\t\tlabel: 'Finalized retrieval results',\n\t\t\tmetadata: {\n\t\t\t\tappliedScoreThreshold: true\n\t\t\t},\n\t\t\tsectionCounts: buildTraceSectionCounts(filtered),\n\t\t\tsectionScores: buildTraceSectionScores(filtered),\n\t\t\tstage: 'finalize'\n\t\t});\n\n\t\treturn {\n\t\t\tresults: filtered,\n\t\t\ttrace: {\n\t\t\t\tcandidateTopK,\n\t\t\t\tlexicalTopK,\n\t\t\t\tmaxResultsPerSource: retrieval.maxResultsPerSource,\n\t\t\t\tmmrLambda: retrieval.mmrLambda,\n\t\t\t\tmode: retrieval.mode,\n\t\t\t\tdiversityStrategy: retrieval.diversityStrategy,\n\t\t\t\tquery: input.query,\n\t\t\t\tresultCounts: {\n\t\t\t\t\tfinal: filtered.length,\n\t\t\t\t\tfused: results.length,\n\t\t\t\t\tlexical: lexicalResults.length,\n\t\t\t\t\treranked: diversified.length,\n\t\t\t\t\tvector: vectorResults.length\n\t\t\t\t},\n\t\t\t\trunLexical,\n\t\t\t\trunVector,\n\t\t\t\tscoreThreshold,\n\t\t\t\tsourceBalanceStrategy: retrieval.sourceBalanceStrategy,\n\t\t\t\tsteps,\n\t\t\t\ttopK,\n\t\t\t\ttransformedQuery: transformed.query,\n\t\t\t\tvariantQueries: searchQueries.slice(1)\n\t\t\t}\n\t\t};\n\t};\n\n\tconst search = async (input: RAGCollectionSearchParams) => {\n\t\tconst result = await searchWithTrace(input);\n\n\t\treturn result.results;\n\t};\n\n\tconst ingest = async (input: RAGUpsertInput) => {\n\t\tconst chunks = await Promise.all(\n\t\t\tinput.chunks.map(async (chunk) => {\n\t\t\t\tif (chunk.embedding) {\n\t\t\t\t\tvalidateRAGEmbeddingDimensions(\n\t\t\t\t\t\tchunk.embedding,\n\t\t\t\t\t\tgetExpectedDimensions(),\n\t\t\t\t\t\t'chunk'\n\t\t\t\t\t);\n\n\t\t\t\t\treturn chunk;\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\t...chunk,\n\t\t\t\t\tembedding: await embed(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmodel: options.defaultModel,\n\t\t\t\t\t\t\ttext: chunk.text\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'chunk'\n\t\t\t\t\t)\n\t\t\t\t};\n\t\t\t})\n\t\t);\n\n\t\tawait options.store.upsert({ chunks });\n\t};\n\n\treturn {\n\t\tclear:\n\t\t\ttypeof options.store.clear === 'function'\n\t\t\t\t? () => options.store.clear?.()\n\t\t\t\t: undefined,\n\t\tgetCapabilities:\n\t\t\ttypeof getCapabilities === 'function'\n\t\t\t\t? () => getCapabilities()\n\t\t\t\t: undefined,\n\t\tgetStatus:\n\t\t\ttypeof getStatus === 'function' ? () => getStatus() : undefined,\n\t\tsearchWithTrace,\n\t\tsearch,\n\t\tstore: options.store,\n\t\tingest\n\t};\n};\nexport const ingestDocuments = async (\n\tcollection: RAGCollection,\n\tinput: RAGUpsertInput\n) => collection.ingest(input);\nexport const ingestRAGDocuments = async (\n\tcollection: RAGCollection,\n\tinput: RAGDocumentIngestInput\n) => collection.ingest(buildRAGUpsertInputFromDocuments(input));\nexport const searchDocuments = async (\n\tcollection: RAGCollection,\n\tinput: RAGCollectionSearchParams\n) => collection.search(input);\n",
27
+ "import type {\n\tRAGEvaluationCaseResult,\n\tRAGEvaluationSummary,\n\tRAGBackendCapabilities,\n\tRAGExcerptSelection,\n\tRAGChunkStructure,\n\tRAGDocumentChunkPreview,\n\tRAGDocumentSummary,\n\tRAGHTMXWorkflowRenderConfig,\n\tRAGIndexedDocument,\n\tRAGSectionRetrievalDiagnostic,\n\tRAGMutationResponse,\n\tRAGSearchResponse,\n\tRAGSource,\n\tRAGVectorStoreStatus\n} from '../../../types/ai';\nimport { RAG_SEARCH_SCORE_DECIMAL_PLACES } from '../../constants';\nimport {\n\tbuildRAGSectionRetrievalDiagnostics,\n\tbuildRAGChunkGraph,\n\tbuildRAGChunkGraphNavigation,\n\tbuildRAGChunkPreviewGraph\n} from './presentation';\n\nexport type ResolvedRAGWorkflowRenderers =\n\tRequired<RAGHTMXWorkflowRenderConfig>;\n\nconst escapeHtml = (text: string) =>\n\ttext\n\t\t.replace(/&/g, '&amp;')\n\t\t.replace(/</g, '&lt;')\n\t\t.replace(/>/g, '&gt;')\n\t\t.replace(/\"/g, '&quot;');\n\nconst renderSourceLabels = (input?: {\n\tcontextLabel?: string;\n\tlocatorLabel?: string;\n\tprovenanceLabel?: string;\n}) => {\n\tif (!input) {\n\t\treturn '';\n\t}\n\n\tconst rows = [\n\t\tinput.contextLabel\n\t\t\t? `<li><strong>Context</strong> ${escapeHtml(input.contextLabel)}</li>`\n\t\t\t: '',\n\t\tinput.locatorLabel\n\t\t\t? `<li><strong>Location</strong> ${escapeHtml(input.locatorLabel)}</li>`\n\t\t\t: '',\n\t\tinput.provenanceLabel\n\t\t\t? `<li><strong>Provenance</strong> ${escapeHtml(input.provenanceLabel)}</li>`\n\t\t\t: ''\n\t].filter((row) => row.length > 0);\n\n\treturn rows.length > 0\n\t\t? `<ul class=\"rag-source-labels\">${rows.join('')}</ul>`\n\t\t: '';\n};\n\nconst renderChunkStructure = (structure?: RAGChunkStructure) => {\n\tif (!structure) {\n\t\treturn '';\n\t}\n\n\tconst rows = [\n\t\tstructure.section?.title\n\t\t\t? `<li><strong>Section</strong> ${escapeHtml(structure.section.title)}</li>`\n\t\t\t: '',\n\t\tstructure.section?.path && structure.section.path.length > 1\n\t\t\t? `<li><strong>Section path</strong> ${escapeHtml(structure.section.path.join(' > '))}</li>`\n\t\t\t: '',\n\t\ttypeof structure.sequence?.sectionChunkIndex === 'number' &&\n\t\ttypeof structure.sequence?.sectionChunkCount === 'number'\n\t\t\t? `<li><strong>Section chunk</strong> ${structure.sequence.sectionChunkIndex + 1} of ${structure.sequence.sectionChunkCount}</li>`\n\t\t\t: '',\n\t\tstructure.sequence?.previousChunkId\n\t\t\t? `<li><strong>Previous</strong> ${escapeHtml(structure.sequence.previousChunkId)}</li>`\n\t\t\t: '',\n\t\tstructure.sequence?.nextChunkId\n\t\t\t? `<li><strong>Next</strong> ${escapeHtml(structure.sequence.nextChunkId)}</li>`\n\t\t\t: ''\n\t].filter((row) => row.length > 0);\n\n\treturn rows.length > 0\n\t\t? `<ul class=\"rag-chunk-structure\">${rows.join('')}</ul>`\n\t\t: '';\n};\n\nconst renderChunkExcerpts = (input?: {\n\tchunkExcerpt?: string;\n\twindowExcerpt?: string;\n\tsectionExcerpt?: string;\n}) => {\n\tif (!input) {\n\t\treturn '';\n\t}\n\n\tconst rows = [\n\t\tinput.chunkExcerpt\n\t\t\t? `<li><strong>Chunk excerpt</strong> ${escapeHtml(input.chunkExcerpt)}</li>`\n\t\t\t: '',\n\t\tinput.windowExcerpt\n\t\t\t? `<li><strong>Neighbor window</strong> ${escapeHtml(input.windowExcerpt)}</li>`\n\t\t\t: '',\n\t\tinput.sectionExcerpt\n\t\t\t? `<li><strong>Section excerpt</strong> ${escapeHtml(input.sectionExcerpt)}</li>`\n\t\t\t: ''\n\t].filter((row) => row.length > 0);\n\n\treturn rows.length > 0\n\t\t? `<ul class=\"rag-chunk-structure\">${rows.join('')}</ul>`\n\t\t: '';\n};\n\nconst renderExcerptSelection = (selection?: RAGExcerptSelection) => {\n\tif (!selection) {\n\t\treturn '';\n\t}\n\n\tconst modeLabel =\n\t\tselection.mode === 'chunk'\n\t\t\t? 'Chunk excerpt'\n\t\t\t: selection.mode === 'window'\n\t\t\t\t? 'Neighbor window'\n\t\t\t\t: 'Section excerpt';\n\tconst reasonLabel =\n\t\tselection.reason === 'single_chunk'\n\t\t\t? 'single chunk'\n\t\t\t: selection.reason === 'chunk_too_narrow'\n\t\t\t\t? 'chunk too narrow'\n\t\t\t\t: selection.reason === 'section_small_enough'\n\t\t\t\t\t? 'section small enough'\n\t\t\t\t\t: 'section too large, used window';\n\n\treturn `<ul class=\"rag-chunk-structure\"><li><strong>Preferred excerpt</strong> ${escapeHtml(modeLabel)}</li><li><strong>Promotion reason</strong> ${escapeHtml(reasonLabel)}</li></ul>`;\n};\n\nconst renderSectionJumpList = (\n\tlabel: string,\n\titems: Array<{\n\t\tlabel: string;\n\t\thref?: string;\n\t\tactive?: boolean;\n\t}>\n) => {\n\tconst rows = items\n\t\t.map((item) =>\n\t\t\titem.href\n\t\t\t\t? `<li><strong>${escapeHtml(label)}</strong> <a href=\"${escapeHtml(item.href)}\"${item.active ? ' aria-current=\"true\"' : ''}>${escapeHtml(item.label)}</a></li>`\n\t\t\t\t: `<li><strong>${escapeHtml(label)}</strong> ${escapeHtml(item.label)}</li>`\n\t\t)\n\t\t.join('');\n\treturn rows ? `<ul class=\"rag-chunk-structure\">${rows}</ul>` : '';\n};\n\nconst renderSectionDiagnostics = (\n\tdiagnostics: RAGSectionRetrievalDiagnostic[]\n) => {\n\tif (diagnostics.length === 0) {\n\t\treturn '';\n\t}\n\n\treturn (\n\t\t`<section class=\"rag-search-results\"><h3>Section diagnostics</h3>` +\n\t\tdiagnostics\n\t\t\t.map(\n\t\t\t\t(diagnostic) =>\n\t\t\t\t\t`<article class=\"rag-search-result\" id=\"rag-section-diagnostic-${escapeHtml(diagnostic.key)}\">` +\n\t\t\t\t\t`<h4>${escapeHtml(diagnostic.path?.join(' > ') ?? diagnostic.label)}</h4>` +\n\t\t\t\t\t`<p class=\"rag-search-source\">${escapeHtml(diagnostic.summary)}</p>` +\n\t\t\t\t\t`<ul class=\"rag-source-labels\">` +\n\t\t\t\t\t`<li><strong>Top hit</strong> ${diagnostic.bestScore.toFixed(RAG_SEARCH_SCORE_DECIMAL_PLACES)}</li>` +\n\t\t\t\t\t`<li><strong>Average</strong> ${diagnostic.averageScore.toFixed(RAG_SEARCH_SCORE_DECIMAL_PLACES)}</li>` +\n\t\t\t\t\t`<li><strong>Sources</strong> ${diagnostic.sourceCount}</li>` +\n\t\t\t\t\t`<li><strong>Channels</strong> vector ${diagnostic.vectorHits} · lexical ${diagnostic.lexicalHits} · hybrid ${diagnostic.hybridHits}</li>` +\n\t\t\t\t\t`${\n\t\t\t\t\t\tdiagnostic.stageCounts.length > 0\n\t\t\t\t\t\t\t? `<li><strong>Stage flow</strong> ${escapeHtml(\n\t\t\t\t\t\t\t\t\tdiagnostic.stageCounts\n\t\t\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t\t\t(entry) =>\n\t\t\t\t\t\t\t\t\t\t\t\t`${entry.stage} ${entry.count}`\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t.join(' → ')\n\t\t\t\t\t\t\t\t)}</li>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}` +\n\t\t\t\t\t`${\n\t\t\t\t\t\tdiagnostic.firstSeenStage\n\t\t\t\t\t\t\t? `<li><strong>First seen</strong> ${escapeHtml(diagnostic.firstSeenStage)}</li>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}` +\n\t\t\t\t\t`${\n\t\t\t\t\t\tdiagnostic.lastSeenStage\n\t\t\t\t\t\t\t? `<li><strong>Last seen</strong> ${escapeHtml(diagnostic.lastSeenStage)}</li>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}` +\n\t\t\t\t\t`<li><strong>Query attribution</strong> ${escapeHtml(\n\t\t\t\t\t\t`${diagnostic.queryAttribution.mode} · primary ${diagnostic.queryAttribution.primaryHits} · transformed ${diagnostic.queryAttribution.transformedHits} · variant ${diagnostic.queryAttribution.variantHits}`\n\t\t\t\t\t)}</li>` +\n\t\t\t\t\t`${\n\t\t\t\t\t\tdiagnostic.queryAttribution.reasons.length > 0\n\t\t\t\t\t\t\t? `<li><strong>Query attribution reasons</strong> ${escapeHtml(\n\t\t\t\t\t\t\t\t\tdiagnostic.queryAttribution.reasons.join(\n\t\t\t\t\t\t\t\t\t\t', '\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)}</li>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}` +\n\t\t\t\t\t`${\n\t\t\t\t\t\tdiagnostic.peakStage\n\t\t\t\t\t\t\t? `<li><strong>Peak stage</strong> ${escapeHtml(diagnostic.peakStage)} (${diagnostic.peakCount})</li>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}` +\n\t\t\t\t\t`${\n\t\t\t\t\t\ttypeof diagnostic.finalRetentionRate === 'number'\n\t\t\t\t\t\t\t? `<li><strong>Final retention</strong> ${(diagnostic.finalRetentionRate * 100).toFixed(0)}%</li>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}` +\n\t\t\t\t\t`${\n\t\t\t\t\t\ttypeof diagnostic.dropFromPeak === 'number'\n\t\t\t\t\t\t\t? `<li><strong>Drop from peak</strong> ${diagnostic.dropFromPeak}</li>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}` +\n\t\t\t\t\t`${\n\t\t\t\t\t\tdiagnostic.retrievalMode\n\t\t\t\t\t\t\t? `<li><strong>Trace mode</strong> ${escapeHtml(diagnostic.retrievalMode)}</li>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}` +\n\t\t\t\t\t`${\n\t\t\t\t\t\tdiagnostic.rerankApplied !== undefined\n\t\t\t\t\t\t\t? `<li><strong>Rerank</strong> ${diagnostic.rerankApplied ? 'applied' : 'skipped'}</li>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}` +\n\t\t\t\t\t`${\n\t\t\t\t\t\tdiagnostic.sourceBalanceApplied\n\t\t\t\t\t\t\t? `<li><strong>Source balance</strong> applied</li>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}` +\n\t\t\t\t\t`${\n\t\t\t\t\t\tdiagnostic.scoreThresholdApplied\n\t\t\t\t\t\t\t? `<li><strong>Score threshold</strong> applied</li>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}` +\n\t\t\t\t\t`<li><strong>Reasons</strong> ${escapeHtml(diagnostic.reasons.join(', ') || 'none')}</li>` +\n\t\t\t\t\t`${\n\t\t\t\t\t\tdiagnostic.strongestSiblingLabel\n\t\t\t\t\t\t\t? `<li><strong>Strongest sibling</strong> ${escapeHtml(diagnostic.strongestSiblingLabel)} (${diagnostic.strongestSiblingScore?.toFixed(RAG_SEARCH_SCORE_DECIMAL_PLACES) ?? 'n/a'})</li>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}` +\n\t\t\t\t\t`${\n\t\t\t\t\t\ttypeof diagnostic.parentShareGap === 'number'\n\t\t\t\t\t\t\t? `<li><strong>Parent share gap</strong> ${(diagnostic.parentShareGap * 100).toFixed(0)}%</li>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}` +\n\t\t\t\t\t`</ul>` +\n\t\t\t\t\t`${\n\t\t\t\t\t\tdiagnostic.stageWeights.length > 0\n\t\t\t\t\t\t\t? `<ul class=\"rag-source-labels\">${diagnostic.stageWeights\n\t\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t\t(entry) =>\n\t\t\t\t\t\t\t\t\t\t\t`<li><strong>${escapeHtml(entry.stage)}</strong> ${(entry.stageShare * 100).toFixed(0)}% of stage` +\n\t\t\t\t\t\t\t\t\t\t\t`${\n\t\t\t\t\t\t\t\t\t\t\t\ttypeof entry.retentionRate ===\n\t\t\t\t\t\t\t\t\t\t\t\t'number'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? ` · ${(entry.retentionRate * 100).toFixed(0)}% retained from ${escapeHtml(entry.previousStage ?? 'previous')}`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t\t\t\t}` +\n\t\t\t\t\t\t\t\t\t\t\t`${\n\t\t\t\t\t\t\t\t\t\t\t\ttypeof entry.countDelta ===\n\t\t\t\t\t\t\t\t\t\t\t\t'number'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? ` · delta ${entry.countDelta >= 0 ? '+' : ''}${entry.countDelta}`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t\t\t\t}` +\n\t\t\t\t\t\t\t\t\t\t\t`${\n\t\t\t\t\t\t\t\t\t\t\t\ttypeof entry.stageScoreShare ===\n\t\t\t\t\t\t\t\t\t\t\t\t'number'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? ` · ${(entry.stageScoreShare * 100).toFixed(0)}% of stage score`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t\t\t\t}` +\n\t\t\t\t\t\t\t\t\t\t\t`${\n\t\t\t\t\t\t\t\t\t\t\t\ttypeof entry.parentStageScoreShare ===\n\t\t\t\t\t\t\t\t\t\t\t\t'number'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? ` · ${(entry.parentStageScoreShare * 100).toFixed(0)}% of parent stage score`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t\t\t\t}` +\n\t\t\t\t\t\t\t\t\t\t\t`${\n\t\t\t\t\t\t\t\t\t\t\t\ttypeof entry.stageScoreShareGap ===\n\t\t\t\t\t\t\t\t\t\t\t\t'number'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? ` · score gap ${(entry.stageScoreShareGap * 100).toFixed(0)}%`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t\t\t\t}` +\n\t\t\t\t\t\t\t\t\t\t\t`${\n\t\t\t\t\t\t\t\t\t\t\t\ttypeof entry.parentStageShare ===\n\t\t\t\t\t\t\t\t\t\t\t\t'number'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? ` · ${(entry.parentStageShare * 100).toFixed(0)}% of parent stage`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t\t\t\t}` +\n\t\t\t\t\t\t\t\t\t\t\t`${\n\t\t\t\t\t\t\t\t\t\t\t\ttypeof entry.stageShareGap ===\n\t\t\t\t\t\t\t\t\t\t\t\t'number'\n\t\t\t\t\t\t\t\t\t\t\t\t\t? ` · gap ${(entry.stageShareGap * 100).toFixed(0)}%`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t\t\t\t}` +\n\t\t\t\t\t\t\t\t\t\t\t`${\n\t\t\t\t\t\t\t\t\t\t\t\tentry.strongestSiblingLabel\n\t\t\t\t\t\t\t\t\t\t\t\t\t? ` · runner-up ${escapeHtml(entry.strongestSiblingLabel)}`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t\t\t\t}` +\n\t\t\t\t\t\t\t\t\t\t\t`${\n\t\t\t\t\t\t\t\t\t\t\t\tentry.reasons.length > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t? ` · ${escapeHtml(entry.reasons.join(', '))}`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t\t\t\t\t}</li>`\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.join('')}</ul>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}` +\n\t\t\t\t\t`${\n\t\t\t\t\t\tdiagnostic.parentDistribution.length > 0\n\t\t\t\t\t\t\t? `<ul class=\"rag-source-labels\">${diagnostic.parentDistribution\n\t\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t\t(entry) =>\n\t\t\t\t\t\t\t\t\t\t\t`<li><strong>${entry.isActive ? 'Active section' : 'Peer section'}</strong> ${escapeHtml(entry.label)} · ${(entry.parentShare * 100).toFixed(0)}% · ${entry.count} hit${entry.count === 1 ? '' : 's'}</li>`\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.join('')}</ul>`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}` +\n\t\t\t\t\t`</article>`\n\t\t\t)\n\t\t\t.join('') +\n\t\t`</section>`\n\t);\n};\n\nconst renderEmptyState = (\n\tkind:\n\t\t| 'documents'\n\t\t| 'searchResults'\n\t\t| 'chunkPreview'\n\t\t| 'status'\n\t\t| 'evaluation'\n) => {\n\tswitch (kind) {\n\t\tcase 'documents':\n\t\t\treturn '<p class=\"rag-empty\">No documents indexed.</p>';\n\t\tcase 'searchResults':\n\t\t\treturn '<p class=\"rag-empty\">No matching chunks.</p>';\n\t\tcase 'chunkPreview':\n\t\t\treturn '<p class=\"rag-empty\">No chunk preview available.</p>';\n\t\tcase 'status':\n\t\t\treturn '<p class=\"rag-empty\">No status available.</p>';\n\t\tcase 'evaluation':\n\t\t\treturn '<p class=\"rag-empty\">No evaluation results yet.</p>';\n\t\tdefault:\n\t\t\treturn '<p class=\"rag-empty\">No results available.</p>';\n\t}\n};\n\nconst renderCapabilityList = (capabilities?: RAGBackendCapabilities) => {\n\tif (!capabilities) {\n\t\treturn '';\n\t}\n\n\tconst items = [\n\t\t`backend=${capabilities.backend}`,\n\t\t`persistence=${capabilities.persistence}`,\n\t\t`nativeVectorSearch=${capabilities.nativeVectorSearch ? 'true' : 'false'}`,\n\t\t`serverSideFiltering=${capabilities.serverSideFiltering ? 'true' : 'false'}`,\n\t\t`streamingIngestStatus=${capabilities.streamingIngestStatus ? 'true' : 'false'}`\n\t];\n\n\treturn `<ul class=\"rag-status-capabilities\">${items\n\t\t.map((item) => `<li>${escapeHtml(item)}</li>`)\n\t\t.join('')}</ul>`;\n};\n\nconst defaultStatus = ({\n\tstatus,\n\tcapabilities,\n\tdocuments\n}: {\n\tstatus?: RAGVectorStoreStatus;\n\tcapabilities?: RAGBackendCapabilities;\n\tdocuments?: RAGDocumentSummary;\n}) => {\n\tif (!status) {\n\t\treturn renderEmptyState('status');\n\t}\n\n\treturn (\n\t\t`<dl class=\"rag-status\">` +\n\t\t`<div><dt>Backend</dt><dd>${escapeHtml(status.backend)}</dd></div>` +\n\t\t`<div><dt>Vector mode</dt><dd>${escapeHtml(status.vectorMode)}</dd></div>` +\n\t\t`<div><dt>Embedding dimensions</dt><dd>${status.dimensions ?? 'n/a'}</dd></div>` +\n\t\t`<div><dt>Vector acceleration</dt><dd>${status.native?.active ? 'active' : 'inactive'}</dd></div>` +\n\t\t`<div><dt>Documents</dt><dd>${documents?.total ?? 'n/a'}</dd></div>` +\n\t\t`<div><dt>Total chunks</dt><dd>${documents?.chunkCount ?? 'n/a'}</dd></div>` +\n\t\t`<div><dt>Seed docs</dt><dd>${documents?.byKind.seed ?? 0}</dd></div>` +\n\t\t`<div><dt>Custom docs</dt><dd>${documents?.byKind.custom ?? 0}</dd></div>` +\n\t\t`</dl>${renderCapabilityList(capabilities)}`\n\t);\n};\n\nconst defaultSearchResultItem = (\n\tsource: RAGSource,\n\tindex: number,\n\tsectionJumps = ''\n) =>\n\t`<article class=\"rag-search-result\" id=\"rag-search-result-${escapeHtml(source.chunkId)}\">` +\n\t`<h3>${escapeHtml(source.title ?? source.chunkId ?? `Result ${index + 1}`)}</h3>` +\n\t`<p class=\"rag-search-source\">${escapeHtml(source.source ?? 'unknown source')}</p>` +\n\trenderSourceLabels(source.labels) +\n\trenderChunkStructure(source.structure) +\n\tsectionJumps +\n\t`<p class=\"rag-search-score\">score ${source.score.toFixed(RAG_SEARCH_SCORE_DECIMAL_PLACES)}</p>` +\n\t`<p class=\"rag-search-text\">${escapeHtml(source.text)}</p>` +\n\t'</article>';\n\nconst defaultSearchResults = ({\n\tquery,\n\tresults,\n\ttrace\n}: {\n\tquery: string;\n\tresults: RAGSource[];\n\ttrace?: RAGSearchResponse['trace'];\n}) =>\n\tresults.length === 0\n\t\t? renderEmptyState('searchResults')\n\t\t: (() => {\n\t\t\t\tconst graph = buildRAGChunkGraph(results);\n\t\t\t\tconst sectionDiagnostics = buildRAGSectionRetrievalDiagnostics(\n\t\t\t\t\tresults,\n\t\t\t\t\ttrace\n\t\t\t\t);\n\t\t\t\tconst availableChunkIds = new Set(\n\t\t\t\t\tresults.map((result) => result.chunkId)\n\t\t\t\t);\n\t\t\t\treturn (\n\t\t\t\t\t`<section class=\"rag-search-results\">` +\n\t\t\t\t\t`<p class=\"rag-search-summary\">${results.length} results for ${escapeHtml(query)}</p>` +\n\t\t\t\t\t`<p class=\"rag-search-summary\">sections=${sectionDiagnostics.length}</p>` +\n\t\t\t\t\t(trace\n\t\t\t\t\t\t? `<p class=\"rag-search-summary\">mode=${escapeHtml(trace.mode)} · final=${trace.resultCounts.final} · vector=${trace.resultCounts.vector} · lexical=${trace.resultCounts.lexical}</p>`\n\t\t\t\t\t\t: '') +\n\t\t\t\t\trenderSectionDiagnostics(sectionDiagnostics) +\n\t\t\t\t\t`${results\n\t\t\t\t\t\t.map((result, index) => {\n\t\t\t\t\t\t\tconst navigation = buildRAGChunkGraphNavigation(\n\t\t\t\t\t\t\t\tgraph,\n\t\t\t\t\t\t\t\tresult.chunkId\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tconst sectionJumps = [\n\t\t\t\t\t\t\t\tnavigation.parentSection?.leadChunkId\n\t\t\t\t\t\t\t\t\t? renderSectionJumpList('Parent section', [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\thref: availableChunkIds.has(\n\t\t\t\t\t\t\t\t\t\t\t\t\tnavigation.parentSection\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.leadChunkId\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? `#rag-search-result-${navigation.parentSection.leadChunkId}`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\t\tlabel:\n\t\t\t\t\t\t\t\t\t\t\t\t\tnavigation.parentSection\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.title ??\n\t\t\t\t\t\t\t\t\t\t\t\t\tnavigation.parentSection.path?.join(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t' > '\n\t\t\t\t\t\t\t\t\t\t\t\t\t) ??\n\t\t\t\t\t\t\t\t\t\t\t\t\tnavigation.parentSection.id\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\t\tnavigation.siblingSections.length > 0\n\t\t\t\t\t\t\t\t\t? renderSectionJumpList(\n\t\t\t\t\t\t\t\t\t\t\t'Sibling section',\n\t\t\t\t\t\t\t\t\t\t\tnavigation.siblingSections.map(\n\t\t\t\t\t\t\t\t\t\t\t\t(section) => ({\n\t\t\t\t\t\t\t\t\t\t\t\t\tactive:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsection.id ===\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnavigation.section?.id,\n\t\t\t\t\t\t\t\t\t\t\t\t\thref:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsection.leadChunkId &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tavailableChunkIds.has(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsection.leadChunkId\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? `#rag-search-result-${section.leadChunkId}`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsection.title ??\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsection.path?.join(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t' > '\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) ??\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsection.id\n\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\t\tnavigation.childSections.length > 0\n\t\t\t\t\t\t\t\t\t? renderSectionJumpList(\n\t\t\t\t\t\t\t\t\t\t\t'Child section',\n\t\t\t\t\t\t\t\t\t\t\tnavigation.childSections.map(\n\t\t\t\t\t\t\t\t\t\t\t\t(section) => ({\n\t\t\t\t\t\t\t\t\t\t\t\t\thref:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsection.leadChunkId &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tavailableChunkIds.has(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsection.leadChunkId\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? `#rag-search-result-${section.leadChunkId}`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsection.title ??\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsection.path?.join(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t' > '\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) ??\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsection.id\n\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t].join('');\n\t\t\t\t\t\t\treturn defaultSearchResultItem(\n\t\t\t\t\t\t\t\tresult,\n\t\t\t\t\t\t\t\tindex,\n\t\t\t\t\t\t\t\tsectionJumps\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.join('')}</section>`\n\t\t\t\t);\n\t\t\t})();\n\nconst defaultDocumentItem = (document: RAGIndexedDocument, index: number) =>\n\t'<article class=\"rag-document\">' +\n\t`<h3>${escapeHtml(document.title || `Document ${index + 1}`)}</h3>` +\n\t`<p class=\"rag-document-id\">${escapeHtml(document.id)}</p>` +\n\t`<p class=\"rag-document-source\">${escapeHtml(document.source)}</p>` +\n\trenderSourceLabels(document.labels) +\n\t`<p class=\"rag-document-meta\">${escapeHtml(document.format ?? 'text')} · ${escapeHtml(document.chunkStrategy ?? 'paragraphs')} · ${document.chunkCount ?? 0} chunks</p>` +\n\t'</article>';\n\nconst defaultDocuments = ({\n\tdocuments\n}: {\n\tdocuments: RAGIndexedDocument[];\n}) =>\n\tdocuments.length === 0\n\t\t? renderEmptyState('documents')\n\t\t: `<section class=\"rag-documents\">${documents\n\t\t\t\t.map((document, index) => defaultDocumentItem(document, index))\n\t\t\t\t.join('')}</section>`;\n\nconst defaultChunkPreview = (input: RAGDocumentChunkPreview) => {\n\tconst graph = buildRAGChunkPreviewGraph(input);\n\tconst navigation = buildRAGChunkGraphNavigation(graph);\n\tconst groups = input.chunks.reduce<\n\t\tArray<{\n\t\t\tkey: string;\n\t\t\ttitle: string;\n\t\t\tchunks: typeof input.chunks;\n\t\t}>\n\t>((acc, chunk) => {\n\t\tconst metadata = chunk.metadata ?? {};\n\t\tconst kind =\n\t\t\ttypeof metadata.sourceNativeKind === 'string'\n\t\t\t\t? metadata.sourceNativeKind\n\t\t\t\t: 'document_chunk';\n\t\tconst locator = chunk.labels?.locatorLabel ?? '';\n\t\tconst title =\n\t\t\tkind === 'pdf_page'\n\t\t\t\t? locator || 'PDF pages'\n\t\t\t\t: kind === 'pdf_region'\n\t\t\t\t\t? locator || 'PDF regions'\n\t\t\t\t\t: kind === 'spreadsheet_sheet'\n\t\t\t\t\t\t? locator || 'Spreadsheet sheets'\n\t\t\t\t\t\t: kind === 'presentation_slide'\n\t\t\t\t\t\t\t? locator || 'Presentation slides'\n\t\t\t\t\t\t\t: kind === 'attachment'\n\t\t\t\t\t\t\t\t? locator || 'Attachments'\n\t\t\t\t\t\t\t\t: kind === 'archive_entry'\n\t\t\t\t\t\t\t\t\t? locator || 'Archive entries'\n\t\t\t\t\t\t\t\t\t: 'Chunks';\n\t\tconst key =\n\t\t\tkind === 'document_chunk' ? 'document_chunk' : `${kind}:${title}`;\n\t\tconst existing = acc.find((entry) => entry.key === key);\n\t\tif (existing) {\n\t\t\texisting.chunks.push(chunk);\n\t\t\treturn acc;\n\t\t}\n\t\tacc.push({\n\t\t\tchunks: [chunk],\n\t\t\tkey,\n\t\t\ttitle\n\t\t});\n\t\treturn acc;\n\t}, []);\n\tconst groupHtml = groups\n\t\t.map((group) => {\n\t\t\tconst chunkHtml = group.chunks\n\t\t\t\t.map(\n\t\t\t\t\t(chunk) =>\n\t\t\t\t\t\t'<article class=\"rag-chunk\">' +\n\t\t\t\t\t\t`<h5>${escapeHtml(chunk.chunkId)}</h5>` +\n\t\t\t\t\t\t`<p class=\"rag-chunk-meta\">chunk ${typeof chunk.metadata?.chunkIndex === 'number' ? chunk.metadata.chunkIndex : 0} of ${typeof chunk.metadata?.chunkCount === 'number' ? chunk.metadata.chunkCount : input.chunks.length}</p>` +\n\t\t\t\t\t\trenderSourceLabels(chunk.labels) +\n\t\t\t\t\t\trenderChunkStructure(chunk.structure) +\n\t\t\t\t\t\trenderChunkExcerpts(chunk.excerpts) +\n\t\t\t\t\t\trenderExcerptSelection(chunk.excerptSelection) +\n\t\t\t\t\t\t`<pre>${escapeHtml(chunk.text)}</pre>` +\n\t\t\t\t\t\t'</article>'\n\t\t\t\t)\n\t\t\t\t.join('');\n\t\t\treturn `<section class=\"rag-chunk-group\"><h4>${escapeHtml(group.title)}</h4>${chunkHtml}</section>`;\n\t\t})\n\t\t.join('');\n\n\treturn (\n\t\t`<section class=\"rag-chunk-preview\">` +\n\t\t`<h3>${escapeHtml(input.document.title)}</h3>` +\n\t\t`<p class=\"rag-chunk-preview-source\">${escapeHtml(input.document.source)}</p>` +\n\t\trenderSourceLabels(input.document.labels) +\n\t\t(navigation.parentSection\n\t\t\t? renderSectionJumpList('Parent section', [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel:\n\t\t\t\t\t\t\tnavigation.parentSection.title ??\n\t\t\t\t\t\t\tnavigation.parentSection.path?.join(' > ') ??\n\t\t\t\t\t\t\tnavigation.parentSection.id\n\t\t\t\t\t}\n\t\t\t\t])\n\t\t\t: '') +\n\t\t(navigation.siblingSections.length > 0\n\t\t\t? renderSectionJumpList(\n\t\t\t\t\t'Sibling section',\n\t\t\t\t\tnavigation.siblingSections.map((section) => ({\n\t\t\t\t\t\tlabel:\n\t\t\t\t\t\t\tsection.title ??\n\t\t\t\t\t\t\tsection.path?.join(' > ') ??\n\t\t\t\t\t\t\tsection.id\n\t\t\t\t\t}))\n\t\t\t\t)\n\t\t\t: '') +\n\t\t(navigation.childSections.length > 0\n\t\t\t? renderSectionJumpList(\n\t\t\t\t\t'Child section',\n\t\t\t\t\tnavigation.childSections.map((section) => ({\n\t\t\t\t\t\tlabel:\n\t\t\t\t\t\t\tsection.title ??\n\t\t\t\t\t\t\tsection.path?.join(' > ') ??\n\t\t\t\t\t\t\tsection.id\n\t\t\t\t\t}))\n\t\t\t\t)\n\t\t\t: '') +\n\t\t`<article class=\"rag-chunk-normalized\">` +\n\t\t`<h4>Normalized text</h4>` +\n\t\t`<pre>${escapeHtml(input.normalizedText)}</pre>` +\n\t\t`</article>${groupHtml}</section>`\n\t);\n};\n\nconst defaultMutationResult = (input: RAGMutationResponse) => {\n\tif (!input.ok) {\n\t\treturn `<div class=\"rag-mutation error\">${escapeHtml(input.error ?? 'Request failed')}</div>`;\n\t}\n\n\tconst details: string[] = [];\n\n\tif (input.status) {\n\t\tdetails.push(input.status);\n\t}\n\n\tif (input.inserted) {\n\t\tdetails.push(`inserted=${input.inserted}`);\n\t}\n\n\tif (input.deleted) {\n\t\tdetails.push(`deleted=${input.deleted}`);\n\t}\n\n\tif (typeof input.documents === 'number') {\n\t\tdetails.push(`documents=${input.documents}`);\n\t}\n\n\treturn `<div class=\"rag-mutation ok\">${escapeHtml(details.join(' · ') || 'ok')}</div>`;\n};\n\nconst defaultEvaluateResult = ({\n\tcases,\n\tsummary\n}: {\n\tcases: RAGEvaluationCaseResult[];\n\tsummary: RAGEvaluationSummary;\n}) => {\n\tif (cases.length === 0) {\n\t\treturn renderEmptyState('evaluation');\n\t}\n\n\tconst caseRows = cases\n\t\t.map(\n\t\t\t(entry) =>\n\t\t\t\t`<tr class=\"rag-eval-row rag-eval-${entry.status}\">` +\n\t\t\t\t`<td>${escapeHtml(entry.caseId)}</td>` +\n\t\t\t\t`<td>${escapeHtml(entry.mode)}</td>` +\n\t\t\t\t`<td>${escapeHtml(entry.status)}</td>` +\n\t\t\t\t`<td>${entry.elapsedMs}</td>` +\n\t\t\t\t`<td>${entry.retrievedCount}</td>` +\n\t\t\t\t`<td>${entry.expectedCount}</td>` +\n\t\t\t\t`<td>${entry.matchedCount}</td>` +\n\t\t\t\t`<td>${entry.precision.toFixed(4)}</td>` +\n\t\t\t\t`<td>${entry.recall.toFixed(4)}</td>` +\n\t\t\t\t`<td>${entry.f1.toFixed(4)}</td>` +\n\t\t\t\t`<td>${escapeHtml(entry.label ?? 'n/a')}</td>` +\n\t\t\t\t`<td>${escapeHtml(entry.missingIds.join(', ') || 'none')}</td>` +\n\t\t\t\t`</tr>`\n\t\t)\n\t\t.join('');\n\n\tconst passingRate =\n\t\tsummary.totalCases > 0\n\t\t\t? ((summary.passedCases / summary.totalCases) * 100).toFixed(1)\n\t\t\t: '0.0';\n\n\treturn (\n\t\t`<section class=\"rag-evaluation\">` +\n\t\t`<h3>Evaluation</h3>` +\n\t\t`<p>${summary.totalCases} cases · ${summary.passedCases} pass · ${summary.partialCases} partial · ${summary.failedCases} fail · passing ${passingRate}%</p>` +\n\t\t`<table class=\"rag-eval-table\"><thead><tr><th>Case</th><th>Mode</th><th>Status</th><th>ms</th><th>Retrieved</th><th>Expected</th><th>Matched</th><th>Precision</th><th>Recall</th><th>F1</th><th>Label</th><th>Missing</th></tr></thead><tbody>${caseRows}</tbody></table>` +\n\t\t`<dl class=\"rag-eval-summary\"><div><dt>Average precision</dt><dd>${summary.averagePrecision.toFixed(\n\t\t\t4\n\t\t)}</dd></div><div><dt>Average recall</dt><dd>${summary.averageRecall.toFixed(\n\t\t\t4\n\t\t)}</dd></div><div><dt>Average F1</dt><dd>${summary.averageF1.toFixed(\n\t\t\t4\n\t\t)}</dd></div><div><dt>Average latency</dt><dd>${summary.averageLatencyMs.toFixed(\n\t\t\t1\n\t\t)}ms</dd></div></dl>` +\n\t\t`</section>`\n\t);\n};\n\nconst defaultError = (message: string) =>\n\t`<div class=\"rag-error\">${escapeHtml(message)}</div>`;\n\nexport const resolveRAGWorkflowRenderers = (\n\tcustom?: RAGHTMXWorkflowRenderConfig\n): ResolvedRAGWorkflowRenderers => ({\n\tchunkPreview: custom?.chunkPreview ?? defaultChunkPreview,\n\tdocumentItem: custom?.documentItem ?? defaultDocumentItem,\n\tdocuments: custom?.documents ?? defaultDocuments,\n\temptyState: custom?.emptyState ?? renderEmptyState,\n\terror: custom?.error ?? defaultError,\n\tmutationResult: custom?.mutationResult ?? defaultMutationResult,\n\tevaluateResult: custom?.evaluateResult ?? defaultEvaluateResult,\n\tsearchResultItem: custom?.searchResultItem ?? defaultSearchResultItem,\n\tsearchResults: custom?.searchResults ?? defaultSearchResults,\n\tstatus: custom?.status ?? defaultStatus\n});\n",
28
28
  "import type {\n\tRAGDocumentChunk,\n\tRAGQueryInput,\n\tRAGQueryResult,\n\tRAGUpsertInput\n} from '../../../types/ai';\n\nexport type {\n\tAIHTMXRenderConfig,\n\tRAGAnswerWorkflowState,\n\tRAGBackendCapabilities,\n\tRAGCitation,\n\tRAGCitationReferenceMap,\n\tRAGGroundedAnswer,\n\tRAGGroundedAnswerPart,\n\tRAGGroundingReference,\n\tRAGChunkingOptions,\n\tRAGChunkingStrategy,\n\tRAGCollection,\n\tRAGCollectionSearchParams,\n\tRAGContentFormat,\n\tRAGHTMXConfig,\n\tRAGHybridFusionMode,\n\tRAGHybridRetrievalMode,\n\tRAGHybridSearchOptions,\n\tRAGDocumentChunk,\n\tRAGDocumentChunkPreview,\n\tRAGArchiveEntry,\n\tRAGArchiveExpander,\n\tRAGArchiveExpansionResult,\n\tRAGExtractedFileDocument,\n\tRAGFileExtractionInput,\n\tRAGFileExtractor,\n\tRAGPDFOCRExtractorOptions,\n\tRAGDirectoryIngestInput,\n\tRAGDirectorySyncSourceOptions,\n\tRAGDocumentFileInput,\n\tRAGDocumentIngestInput,\n\tRAGDocumentUploadIngestInput,\n\tRAGDocumentUploadInput,\n\tRAGEmbeddingFunction,\n\tRAGEmbeddingInput,\n\tRAGEmbeddingProvider,\n\tRAGEmbeddingProviderLike,\n\tRAGBackendDescriptor,\n\tRAGHTMXWorkflowRenderConfig,\n\tRAGIngestDocument,\n\tRAGIndexedDocument,\n\tRAGMediaTranscriber,\n\tRAGMediaTranscriptSegment,\n\tRAGMediaTranscriptionResult,\n\tRAGLexicalQueryInput,\n\tRAGDocumentUrlInput,\n\tRAGDocumentUrlIngestInput,\n\tRAGEmailSyncAttachment,\n\tRAGEmailSyncClient,\n\tRAGEmailSyncListInput,\n\tRAGEmailSyncListResult,\n\tRAGEmailSyncMessage,\n\tRAGEmailSyncSourceOptions,\n\tRAGStorageSyncClient,\n\tRAGStorageSyncFile,\n\tRAGStorageSyncListInput,\n\tRAGStorageSyncListResult,\n\tRAGStorageSyncObject,\n\tRAGStorageSyncSourceOptions,\n\tRAGOCRProvider,\n\tRAGOCRResult,\n\tRAGPreparedDocument,\n\tRAGSource,\n\tRAGSourceGroup,\n\tRAGSourceSummary,\n\tRAGIngestResponse,\n\tRAGMutationResponse,\n\tRAGPostgresNativeDiagnostics,\n\tRAGQueryInput,\n\tRAGQueryResult,\n\tRAGQueryTransformInput,\n\tRAGQueryTransformProvider,\n\tRAGQueryTransformProviderLike,\n\tRAGQueryTransformResult,\n\tRAGQueryTransformer,\n\tRAGSearchRequest,\n\tRAGSyncManager,\n\tRAGSyncRunOptions,\n\tRAGSyncSchedule,\n\tRAGSyncScheduler,\n\tRAGSyncResponse,\n\tRAGSyncStateStore,\n\tRAGSyncSourceContext,\n\tRAGSyncSourceDefinition,\n\tRAGSyncSourceRecord,\n\tRAGSyncSourceRunResult,\n\tRAGUrlSyncSourceOptions,\n\tRAGSQLiteNativeDiagnostics,\n\tRAGStatusResponse,\n\tRAGStreamStage,\n\tRAGAnswerGroundingEvaluationCase,\n\tRAGAnswerGroundingEvaluationCaseDifficultyEntry,\n\tRAGAnswerGroundingCaseDifficultyDiffEntry,\n\tRAGAnswerGroundingCaseDifficultyHistory,\n\tRAGAnswerGroundingCaseDifficultyHistoryStore,\n\tRAGAnswerGroundingCaseDifficultyRun,\n\tRAGAnswerGroundingCaseDifficultyRunDiff,\n\tRAGAnswerGroundingEvaluationCaseDiff,\n\tRAGAnswerGroundingEvaluationCaseResult,\n\tRAGAnswerGroundingEvaluationHistory,\n\tRAGAnswerGroundingEvaluationLeaderboardEntry,\n\tRAGAnswerGroundingEvaluationHistoryStore,\n\tRAGAnswerGroundingEvaluationInput,\n\tRAGAnswerGroundingEvaluationResponse,\n\tRAGAnswerGroundingEvaluationRun,\n\tRAGAnswerGroundingEvaluationRunDiff,\n\tRAGAnswerGroundingEvaluationSummary,\n\tRAGEvaluationCase,\n\tRAGEvaluationCaseDiff,\n\tRAGEvaluationHistory,\n\tRAGEvaluationHistoryStore,\n\tRAGEvaluationCaseResult,\n\tRAGEvaluationLeaderboardEntry,\n\tRAGEvaluationInput,\n\tRAGEvaluationResponse,\n\tRAGEvaluationRunDiff,\n\tRAGEvaluationSummary,\n\tRAGEvaluationSuite,\n\tRAGEvaluationSuiteRun,\n\tRAGRetrievalCandidate,\n\tRAGRetrievalComparison,\n\tRAGRetrievalComparisonEntry,\n\tRAGRetrievalComparisonSummary,\n\tRAGUpsertInput,\n\tRAGVectorStore,\n\tRAGVectorStoreStatus,\n\tSQLiteVecResolution\n} from '../../../types/ai';\n\nexport type InternalRAGStoredChunk = RAGDocumentChunk & {\n\tvector: number[];\n\tsourceId: string;\n};\n\nexport type { RAGUpsertInput as RAGDocumentBatch };\nexport type { RAGQueryInput as RAGQueryParams };\nexport type {\n\tGeminiEmbeddingsConfig,\n\tOllamaEmbeddingsConfig,\n\tOpenAICompatibleEmbeddingsConfig,\n\tOpenAIEmbeddingsConfig\n} from './embeddingProviders';\nexport type {\n\tRAGReranker,\n\tRAGRerankerCandidate,\n\tRAGRerankerComparison,\n\tRAGRerankerComparisonEntry,\n\tRAGRerankerComparisonSummary,\n\tRAGRerankerInput,\n\tRAGRerankerProvider,\n\tRAGRerankerProviderLike\n} from '../../../types/ai';\n\nconst getContextNumber = (value: unknown) =>\n\ttypeof value === 'number' && Number.isFinite(value) ? value : undefined;\n\nconst getContextString = (value: unknown) =>\n\ttypeof value === 'string' && value.trim().length > 0\n\t\t? value.trim()\n\t\t: undefined;\n\nconst formatMediaTimestamp = (value: unknown) => {\n\tif (typeof value !== 'number' || !Number.isFinite(value) || value < 0) {\n\t\treturn undefined;\n\t}\n\n\tconst totalSeconds = Math.floor(value / 1000);\n\tconst minutes = Math.floor(totalSeconds / 60);\n\tconst seconds = totalSeconds % 60;\n\tconst milliseconds = Math.floor(value % 1000);\n\n\treturn `${String(minutes).padStart(2, '0')}:${String(seconds).padStart(\n\t\t2,\n\t\t'0'\n\t)}.${String(milliseconds).padStart(3, '0')}`;\n};\n\nconst buildRAGContextLocatorLabel = (\n\tmetadata?: Record<string, unknown>,\n\tsource?: string,\n\ttitle?: string\n) => {\n\tif (!metadata) {\n\t\treturn undefined;\n\t}\n\n\tconst page =\n\t\tgetContextNumber(metadata.page) ??\n\t\tgetContextNumber(metadata.pageNumber) ??\n\t\t(typeof metadata.pageIndex === 'number'\n\t\t\t? metadata.pageIndex + 1\n\t\t\t: undefined);\n\tconst region =\n\t\tgetContextNumber(metadata.regionNumber) ??\n\t\t(typeof metadata.regionIndex === 'number'\n\t\t\t? metadata.regionIndex + 1\n\t\t\t: undefined);\n\tif (page && region) {\n\t\treturn `Page ${page} · Region ${region}`;\n\t}\n\tif (page) {\n\t\treturn `Page ${page}`;\n\t}\n\n\tconst sheet =\n\t\tgetContextString(metadata.sheetName) ??\n\t\t(Array.isArray(metadata.sheetNames)\n\t\t\t? getContextString(metadata.sheetNames[0])\n\t\t\t: undefined);\n\tif (sheet) {\n\t\treturn `Sheet ${sheet}`;\n\t}\n\n\tconst slide =\n\t\tgetContextNumber(metadata.slide) ??\n\t\tgetContextNumber(metadata.slideNumber) ??\n\t\t(typeof metadata.slideIndex === 'number'\n\t\t\t? metadata.slideIndex + 1\n\t\t\t: undefined);\n\tif (slide) {\n\t\treturn `Slide ${slide}`;\n\t}\n\n\tconst archiveEntry =\n\t\tgetContextString(metadata.archiveEntryPath) ??\n\t\tgetContextString(metadata.entryPath);\n\tif (archiveEntry) {\n\t\treturn `Archive entry ${archiveEntry}`;\n\t}\n\n\tconst emailKind = getContextString(metadata.emailKind);\n\tif (emailKind === 'attachment') {\n\t\tconst attachmentName =\n\t\t\tgetContextString(metadata.attachmentName) ??\n\t\t\tsource?.split('/').at(-1) ??\n\t\t\ttitle?.split(' · ').at(-1);\n\t\treturn attachmentName ? `Attachment ${attachmentName}` : 'Attachment';\n\t}\n\n\tconst mediaStart = formatMediaTimestamp(metadata.startMs);\n\tconst mediaEnd = formatMediaTimestamp(metadata.endMs);\n\tif (mediaStart && mediaEnd) {\n\t\treturn `Timestamp ${mediaStart} - ${mediaEnd}`;\n\t}\n\n\tif (mediaStart) {\n\t\treturn `Timestamp ${mediaStart}`;\n\t}\n\n\treturn undefined;\n};\n\nconst buildRAGContextProvenanceLabel = (metadata?: Record<string, unknown>) => {\n\tif (!metadata) {\n\t\treturn undefined;\n\t}\n\n\tconst pdfTextMode = getContextString(metadata.pdfTextMode);\n\tconst ocrEngine = getContextString(metadata.ocrEngine);\n\tconst mediaKind = getContextString(metadata.mediaKind);\n\tconst transcriptSource = getContextString(metadata.transcriptSource);\n\tconst threadTopic = getContextString(metadata.threadTopic);\n\tconst from = getContextString(metadata.from);\n\tconst speaker = getContextString(metadata.speaker);\n\tconst ocrConfidence =\n\t\tgetContextNumber(metadata.ocrRegionConfidence) ??\n\t\tgetContextNumber(metadata.ocrConfidence);\n\n\tconst labels = [\n\t\tpdfTextMode ? `PDF ${pdfTextMode}` : '',\n\t\tocrEngine ? `OCR ${ocrEngine}` : '',\n\t\ttypeof ocrConfidence === 'number'\n\t\t\t? `Confidence ${ocrConfidence.toFixed(2)}`\n\t\t\t: '',\n\t\tmediaKind ? `Media ${mediaKind}` : '',\n\t\ttranscriptSource ? `Transcript ${transcriptSource}` : '',\n\t\tthreadTopic ? `Thread ${threadTopic}` : '',\n\t\tspeaker ? `Speaker ${speaker}` : '',\n\t\tfrom ? `Sender ${from}` : ''\n\t].filter((value) => value.length > 0);\n\n\treturn labels.length > 0 ? labels.join(' · ') : undefined;\n};\n\nconst buildRAGContextCitationGuidance = (hits: RAGQueryResult[]) => {\n\tconst needsPageGuidance = hits.some((hit) => {\n\t\tconst metadata = hit.metadata;\n\t\tif (!metadata) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn (\n\t\t\tgetContextNumber(metadata.page) !== undefined ||\n\t\t\tgetContextNumber(metadata.pageNumber) !== undefined ||\n\t\t\ttypeof metadata.pageIndex === 'number'\n\t\t);\n\t});\n\tconst needsSheetGuidance = hits.some((hit) => {\n\t\tconst metadata = hit.metadata;\n\t\tif (!metadata) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn (\n\t\t\tgetContextString(metadata.sheetName) !== undefined ||\n\t\t\t(Array.isArray(metadata.sheetNames) &&\n\t\t\t\tgetContextString(metadata.sheetNames[0]) !== undefined)\n\t\t);\n\t});\n\tconst needsSlideGuidance = hits.some((hit) => {\n\t\tconst metadata = hit.metadata;\n\t\tif (!metadata) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn (\n\t\t\tgetContextNumber(metadata.slide) !== undefined ||\n\t\t\tgetContextNumber(metadata.slideNumber) !== undefined ||\n\t\t\ttypeof metadata.slideIndex === 'number'\n\t\t);\n\t});\n\tconst needsTimestampGuidance = hits.some((hit) => {\n\t\tconst metadata = hit.metadata;\n\t\tif (!metadata) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn (\n\t\t\ttypeof metadata.startMs === 'number' ||\n\t\t\ttypeof metadata.endMs === 'number'\n\t\t);\n\t});\n\tconst needsAttachmentGuidance = hits.some(\n\t\t(hit) => getContextString(hit.metadata?.emailKind) === 'attachment'\n\t);\n\tconst needsThreadGuidance = hits.some(\n\t\t(hit) =>\n\t\t\tgetContextString(hit.metadata?.threadTopic) !== undefined ||\n\t\t\tgetContextString(hit.metadata?.from) !== undefined\n\t);\n\tconst needsArchiveGuidance = hits.some((hit) => {\n\t\tconst metadata = hit.metadata;\n\t\treturn (\n\t\t\tgetContextString(metadata?.archiveEntryPath) !== undefined ||\n\t\t\tgetContextString(metadata?.entryPath) !== undefined\n\t\t);\n\t});\n\n\tconst guidanceLines = [\n\t\t'When you use retrieved context, cite it inline with [1], [2]. Prefer the most specific evidence available and preserve page, sheet, slide, timestamp, attachment, archive entry, or thread cues when the context provides them.',\n\t\tneedsPageGuidance\n\t\t\t? 'For PDF evidence, keep the cited page number in the answer when the context includes one.'\n\t\t\t: '',\n\t\tneedsSheetGuidance\n\t\t\t? 'For spreadsheet evidence, name the worksheet when the context identifies a sheet.'\n\t\t\t: '',\n\t\tneedsSlideGuidance\n\t\t\t? 'For presentation evidence, keep the slide number in the answer when the context provides it.'\n\t\t\t: '',\n\t\tneedsTimestampGuidance\n\t\t\t? 'For media evidence, preserve the cited timestamp range in the answer.'\n\t\t\t: '',\n\t\tneedsAttachmentGuidance\n\t\t\t? 'For email attachment evidence, distinguish the attachment from the parent message.'\n\t\t\t: '',\n\t\tneedsThreadGuidance\n\t\t\t? 'For email message evidence, preserve sender or thread cues when they matter to the claim.'\n\t\t\t: '',\n\t\tneedsArchiveGuidance\n\t\t\t? 'For archive evidence, identify the archive entry path instead of only naming the outer archive.'\n\t\t\t: ''\n\t].filter((value) => value.length > 0);\n\n\treturn guidanceLines.join('\\n');\n};\n\nexport const buildRAGContext = (hits: RAGQueryResult[]) => {\n\tif (hits.length === 0) {\n\t\treturn '';\n\t}\n\n\tconst sourceLines = hits.map((hit, index) => {\n\t\tconst source = hit.source ? ` (${hit.source})` : '';\n\t\tconst title = hit.title ? ` ${hit.title}` : '';\n\t\tconst locatorLabel = buildRAGContextLocatorLabel(\n\t\t\thit.metadata,\n\t\t\thit.source,\n\t\t\thit.title\n\t\t);\n\t\tconst provenanceLabel = buildRAGContextProvenanceLabel(hit.metadata);\n\t\tconst evidenceLines = [\n\t\t\t`[${index + 1}]${title}${source}`,\n\t\t\tlocatorLabel ? `Location: ${locatorLabel}` : '',\n\t\t\tprovenanceLabel ? `Provenance: ${provenanceLabel}` : '',\n\t\t\thit.chunkText.trim()\n\t\t].filter((value) => value.length > 0);\n\n\t\treturn evidenceLines.join('\\n');\n\t});\n\n\treturn `Use the following context for this question:\\n${sourceLines.join(\n\t\t'\\n\\n'\n\t)}\\n\\n${buildRAGContextCitationGuidance(hits)}`;\n};\n",
29
29
  "import type {\n\tRAGHTMXConfig,\n\tRAGHTMXWorkflowRenderConfig\n} from '../../../types/ai';\n\nexport const createRAGHTMXConfig = (config: RAGHTMXConfig) => config;\n\nexport const createRAGHTMXWorkflowRenderConfig = (\n\tconfig: RAGHTMXWorkflowRenderConfig\n) => config;\n",
30
30
  "import type { RAGEmbeddingProvider } from '../../../types/ai';\nimport { createRAGEmbeddingProvider } from './embedding';\n\ntype FetchLike = (\n\tinput: RequestInfo | URL,\n\tinit?: RequestInit | BunFetchRequestInit\n) => Promise<Response>;\n\nexport type OpenAIEmbeddingsConfig = {\n\tapiKey: string;\n\tbaseUrl?: string;\n\tdefaultModel?: string;\n\tdimensions?: number;\n\tfetch?: FetchLike;\n};\n\nexport type OpenAICompatibleEmbeddingsConfig = OpenAIEmbeddingsConfig & {\n\tbaseUrl: string;\n};\n\nexport type GeminiEmbeddingsConfig = {\n\tapiKey: string;\n\tbaseUrl?: string;\n\tdefaultModel?: string;\n\tdimensions?: number;\n\tfetch?: FetchLike;\n};\n\nexport type OllamaEmbeddingsConfig = {\n\tbaseUrl?: string;\n\tdefaultModel?: string;\n\tfetch?: FetchLike;\n};\n\nconst DEFAULT_OPENAI_BASE_URL = 'https://api.openai.com';\nconst DEFAULT_GEMINI_BASE_URL = 'https://generativelanguage.googleapis.com';\nconst DEFAULT_OLLAMA_BASE_URL = 'http://127.0.0.1:11434';\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n\ttypeof value === 'object' && value !== null;\n\nconst isNumberArray = (value: unknown): value is number[] =>\n\tArray.isArray(value) &&\n\tvalue.every((item) => typeof item === 'number' && Number.isFinite(item));\n\nconst parseJsonResponse = async (response: Response) => {\n\tconst text = await response.text();\n\n\ttry {\n\t\treturn JSON.parse(text);\n\t} catch {\n\t\tthrow new Error(`Embedding provider returned invalid JSON: ${text}`);\n\t}\n};\n\nconst toErrorMessage = async (response: Response) => {\n\tconst text = await response.text();\n\n\treturn text || `Request failed with status ${response.status}`;\n};\n\nconst readOpenAIEmbedding = (payload: unknown) => {\n\tif (!isRecord(payload) || !Array.isArray(payload.data)) {\n\t\tthrow new Error('OpenAI embeddings response is missing data.');\n\t}\n\n\tconst [first] = payload.data;\n\tif (!isRecord(first) || !isNumberArray(first.embedding)) {\n\t\tthrow new Error(\n\t\t\t'OpenAI embeddings response is missing embedding values.'\n\t\t);\n\t}\n\n\treturn first.embedding;\n};\n\nconst readGeminiEmbedding = (payload: unknown) => {\n\tif (\n\t\t!isRecord(payload) ||\n\t\t!isRecord(payload.embedding) ||\n\t\t!isNumberArray(payload.embedding.values)\n\t) {\n\t\tthrow new Error(\n\t\t\t'Gemini embeddings response is missing embedding values.'\n\t\t);\n\t}\n\n\treturn payload.embedding.values;\n};\n\nconst readOllamaEmbedding = (payload: unknown) => {\n\tif (!isRecord(payload) || !isNumberArray(payload.embedding)) {\n\t\tthrow new Error(\n\t\t\t'Ollama embeddings response is missing embedding values.'\n\t\t);\n\t}\n\n\treturn payload.embedding;\n};\n\nexport const alibabaEmbeddings = (config: {\n\tapiKey: string;\n}): RAGEmbeddingProvider =>\n\topenaiCompatibleEmbeddings({\n\t\tapiKey: config.apiKey,\n\t\tbaseUrl: 'https://dashscope-intl.aliyuncs.com/compatible-mode'\n\t});\nexport const deepseekEmbeddings = (config: {\n\tapiKey: string;\n}): RAGEmbeddingProvider =>\n\topenaiCompatibleEmbeddings({\n\t\tapiKey: config.apiKey,\n\t\tbaseUrl: 'https://api.deepseek.com'\n\t});\nexport const geminiEmbeddings = (\n\tconfig: GeminiEmbeddingsConfig\n): RAGEmbeddingProvider => {\n\tconst baseUrl = config.baseUrl ?? DEFAULT_GEMINI_BASE_URL;\n\tconst fetchImpl = config.fetch ?? fetch;\n\n\treturn createRAGEmbeddingProvider({\n\t\tdefaultModel: config.defaultModel,\n\t\tdimensions: config.dimensions,\n\t\tembed: async ({ model, signal, text }) => {\n\t\t\tconst resolvedModel = model ?? config.defaultModel;\n\t\t\tif (!resolvedModel) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'Gemini embeddings require a model. Pass embeddingModel or configure defaultModel.'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst body: Record<string, unknown> = {\n\t\t\t\tcontent: {\n\t\t\t\t\tparts: [{ text }]\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tif (typeof config.dimensions === 'number') {\n\t\t\t\tbody.outputDimensionality = config.dimensions;\n\t\t\t}\n\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${baseUrl}/v1beta/models/${resolvedModel}:embedContent?key=${config.apiKey}`,\n\t\t\t\t{\n\t\t\t\t\tbody: JSON.stringify(body),\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'Content-Type': 'application/json'\n\t\t\t\t\t},\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\tsignal\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Gemini embeddings API error ${response.status}: ${await toErrorMessage(response)}`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn readGeminiEmbedding(await parseJsonResponse(response));\n\t\t}\n\t});\n};\nexport const googleEmbeddings = (config: {\n\tapiKey: string;\n}): RAGEmbeddingProvider =>\n\topenaiCompatibleEmbeddings({\n\t\tapiKey: config.apiKey,\n\t\tbaseUrl: 'https://generativelanguage.googleapis.com/v1beta/openai'\n\t});\nexport const metaEmbeddings = (config: {\n\tapiKey: string;\n}): RAGEmbeddingProvider =>\n\topenaiCompatibleEmbeddings({\n\t\tapiKey: config.apiKey,\n\t\tbaseUrl: 'https://api.llama.com/compat/v1'\n\t});\nexport const mistralaiEmbeddings = (config: {\n\tapiKey: string;\n}): RAGEmbeddingProvider =>\n\topenaiCompatibleEmbeddings({\n\t\tapiKey: config.apiKey,\n\t\tbaseUrl: 'https://api.mistral.ai'\n\t});\nexport const moonshotEmbeddings = (config: {\n\tapiKey: string;\n}): RAGEmbeddingProvider =>\n\topenaiCompatibleEmbeddings({\n\t\tapiKey: config.apiKey,\n\t\tbaseUrl: 'https://api.moonshot.ai'\n\t});\nexport const ollamaEmbeddings = (\n\tconfig: OllamaEmbeddingsConfig = {}\n): RAGEmbeddingProvider => {\n\tconst baseUrl = config.baseUrl ?? DEFAULT_OLLAMA_BASE_URL;\n\tconst fetchImpl = config.fetch ?? fetch;\n\n\treturn createRAGEmbeddingProvider({\n\t\tdefaultModel: config.defaultModel,\n\t\tembed: async ({ model, signal, text }) => {\n\t\t\tconst resolvedModel = model ?? config.defaultModel;\n\t\t\tif (!resolvedModel) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'Ollama embeddings require a model. Pass embeddingModel or configure defaultModel.'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst response = await fetchImpl(`${baseUrl}/api/embeddings`, {\n\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\tmodel: resolvedModel,\n\t\t\t\t\tprompt: text\n\t\t\t\t}),\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/json'\n\t\t\t\t},\n\t\t\t\tmethod: 'POST',\n\t\t\t\tsignal\n\t\t\t});\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Ollama embeddings API error ${response.status}: ${await toErrorMessage(response)}`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn readOllamaEmbedding(await parseJsonResponse(response));\n\t\t}\n\t});\n};\nexport const openaiCompatibleEmbeddings = (\n\tconfig: OpenAICompatibleEmbeddingsConfig\n): RAGEmbeddingProvider =>\n\topenaiEmbeddings({\n\t\t...config,\n\t\tbaseUrl: config.baseUrl\n\t});\nexport const openaiEmbeddings = (\n\tconfig: OpenAIEmbeddingsConfig\n): RAGEmbeddingProvider => {\n\tconst baseUrl = config.baseUrl ?? DEFAULT_OPENAI_BASE_URL;\n\tconst fetchImpl = config.fetch ?? fetch;\n\n\treturn createRAGEmbeddingProvider({\n\t\tdefaultModel: config.defaultModel,\n\t\tdimensions: config.dimensions,\n\t\tembed: async ({ model, signal, text }) => {\n\t\t\tconst resolvedModel = model ?? config.defaultModel;\n\t\t\tif (!resolvedModel) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'OpenAI embeddings require a model. Pass embeddingModel or configure defaultModel.'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst body: Record<string, unknown> = {\n\t\t\t\tencoding_format: 'float',\n\t\t\t\tinput: text,\n\t\t\t\tmodel: resolvedModel\n\t\t\t};\n\n\t\t\tif (typeof config.dimensions === 'number') {\n\t\t\t\tbody.dimensions = config.dimensions;\n\t\t\t}\n\n\t\t\tconst response = await fetchImpl(`${baseUrl}/v1/embeddings`, {\n\t\t\t\tbody: JSON.stringify(body),\n\t\t\t\theaders: {\n\t\t\t\t\tAuthorization: `Bearer ${config.apiKey}`,\n\t\t\t\t\t'Content-Type': 'application/json'\n\t\t\t\t},\n\t\t\t\tmethod: 'POST',\n\t\t\t\tsignal\n\t\t\t});\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`OpenAI embeddings API error ${response.status}: ${await toErrorMessage(response)}`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn readOpenAIEmbedding(await parseJsonResponse(response));\n\t\t}\n\t});\n};\nexport const xaiEmbeddings = (config: {\n\tapiKey: string;\n}): RAGEmbeddingProvider =>\n\topenaiCompatibleEmbeddings({\n\t\tapiKey: config.apiKey,\n\t\tbaseUrl: 'https://api.x.ai'\n\t});\n",
@@ -43,7 +43,7 @@
43
43
  "import type { AIAttachment, RAGAnswerWorkflowState } from '../../../types/ai';\nimport { buildRAGAnswerWorkflowState } from '../rag/workflowState';\nimport { createAIStream } from './createAIStream';\n\nexport const createRAGAnswerWorkflow = (\n\tpath: string,\n\tconversationId?: string\n) => {\n\tconst stream = createAIStream(path, conversationId);\n\n\tconst getState = (): RAGAnswerWorkflowState =>\n\t\tbuildRAGAnswerWorkflowState({\n\t\t\terror: stream.error,\n\t\t\tisStreaming: stream.isStreaming,\n\t\t\tmessages: stream.messages\n\t\t});\n\n\tconst query = (content: string, attachments?: AIAttachment[]) => {\n\t\tstream.send(content, attachments);\n\t};\n\n\treturn {\n\t\t...stream,\n\t\tget state() {\n\t\t\treturn getState();\n\t\t},\n\t\tget latestAssistantMessage() {\n\t\t\treturn getState().latestAssistantMessage;\n\t\t},\n\t\tget retrieval() {\n\t\t\treturn getState().retrieval;\n\t\t},\n\t\tget sources() {\n\t\t\treturn getState().sources;\n\t\t},\n\t\tget sourceGroups() {\n\t\t\treturn getState().sourceGroups;\n\t\t},\n\t\tget sourceSummaries() {\n\t\t\treturn getState().sourceSummaries;\n\t\t},\n\t\tget citations() {\n\t\t\treturn getState().citations;\n\t\t},\n\t\tget citationReferenceMap() {\n\t\t\treturn getState().citationReferenceMap;\n\t\t},\n\t\tget groundingReferences() {\n\t\t\treturn getState().groundingReferences;\n\t\t},\n\t\tget groundedAnswer() {\n\t\t\treturn getState().groundedAnswer;\n\t\t},\n\t\tget stage() {\n\t\t\treturn getState().stage;\n\t\t},\n\t\tget isRunning() {\n\t\t\treturn getState().isRunning;\n\t\t},\n\t\tget isRetrieving() {\n\t\t\treturn getState().isRetrieving;\n\t\t},\n\t\tget isRetrieved() {\n\t\t\treturn getState().isRetrieved;\n\t\t},\n\t\tget isAnswerStreaming() {\n\t\t\treturn getState().isAnswerStreaming;\n\t\t},\n\t\tget isComplete() {\n\t\t\treturn getState().isComplete;\n\t\t},\n\t\tget isError() {\n\t\t\treturn getState().isError;\n\t\t},\n\t\tget hasSources() {\n\t\t\treturn getState().hasSources;\n\t\t},\n\t\tget hasRetrieved() {\n\t\t\treturn getState().hasRetrieved;\n\t\t},\n\t\tquery\n\t};\n};\n\nexport type RAGAnswerWorkflow = ReturnType<typeof createRAGAnswerWorkflow>;\n",
44
44
  "import type {\n\tRAGBackendsResponse,\n\tRAGDocumentChunksResponse,\n\tRAGEvaluationInput,\n\tRAGEvaluationResponse,\n\tRAGRetrievalBaselineListResponse,\n\tRAGRetrievalBaselinePromotionFromRunRequest,\n\tRAGRetrievalBaselinePromotionRequest,\n\tRAGRetrievalBaselineRevertRequest,\n\tRAGRetrievalReleaseIncidentAcknowledgeRequest,\n\tRAGRetrievalReleaseDecisionActionRequest,\n\tRAGRetrievalBaselineResponse,\n\tRAGRetrievalPromotionCandidateListResponse,\n\tRAGRetrievalReleaseDecisionListResponse,\n\tRAGRetrievalLaneHandoffDecisionListResponse,\n\tRAGRetrievalLaneHandoffDecisionRequest,\n\tRAGRetrievalLaneHandoffDecisionResponse,\n\tRAGRetrievalLaneHandoffAutoCompletePolicyHistoryResponse,\n\tRAGRetrievalReleaseLanePolicyHistoryResponse,\n\tRAGRetrievalBaselineGatePolicyHistoryResponse,\n\tRAGRetrievalReleaseLaneEscalationPolicyHistoryResponse,\n\tRAGRetrievalLaneHandoffIncidentHistoryResponse,\n\tRAGRetrievalLaneHandoffIncidentListResponse,\n\tRAGRetrievalLaneHandoffIncidentStatusResponse,\n\tRAGRetrievalLaneHandoffListResponse,\n\tRAGRetrievalLaneHandoffStatusResponse,\n\tRAGRetrievalIncidentRemediationDecisionListResponse,\n\tRAGRetrievalIncidentRemediationDecisionRequest,\n\tRAGRetrievalIncidentRemediationExecutionHistoryResponse,\n\tRAGRetrievalIncidentRemediationBulkExecutionRequest,\n\tRAGRetrievalIncidentRemediationBulkExecutionResponse,\n\tRAGRetrievalIncidentRemediationExecutionRequest,\n\tRAGRetrievalIncidentRemediationExecutionResponse,\n\tRAGRetrievalIncidentRemediationStatusResponse,\n\tRAGRetrievalReleaseGroupHistoryResponse,\n\tRAGRetrievalReleaseIncidentListResponse,\n\tRAGRetrievalReleaseIncidentStatusResponse,\n\tRAGRetrievalReleaseDriftStatusResponse,\n\tRAGRetrievalReleaseStatusResponse,\n\tRAGRetrievalComparisonHistoryResponse,\n\tRAGRetrievalComparisonRequest,\n\tRAGRetrievalComparisonResponse,\n\tRAGDocumentIngestInput,\n\tRAGDocumentChunk,\n\tRAGDocumentsResponse,\n\tRAGDocumentUrlIngestInput,\n\tRAGDocumentUploadIngestInput,\n\tRAGIngestResponse,\n\tRAGMutationResponse,\n\tRAGOperationsResponse,\n\tRAGSearchRequest,\n\tRAGSearchResponse,\n\tRAGSearchTracePrunePreviewResponse,\n\tRAGSearchTracePruneHistoryResponse,\n\tRAGSearchTracePruneResponse,\n\tRAGSearchTraceGroupHistoryResponse,\n\tRAGSearchTraceHistoryResponse,\n\tRAGSearchTraceStatsResponse,\n\tRAGSource,\n\tRAGStatusResponse,\n\tRAGSyncRunOptions,\n\tRAGSyncResponse\n} from '../../../types/ai';\nimport { UNFOUND_INDEX } from '../../constants';\n\ntype FetchLike = typeof fetch;\n\nexport type RAGClientOptions = {\n\tpath: string;\n\tfetch?: FetchLike;\n};\n\nexport type RAGDetailedSearchResponse = {\n\tresults: RAGSource[];\n\ttrace?: RAGSearchResponse['trace'];\n};\n\nconst jsonHeaders: { 'Content-Type': string } = {\n\t'Content-Type': 'application/json'\n};\n\nconst normalizeBasePath = (path: string) =>\n\tpath.endsWith('/') ? path.slice(0, UNFOUND_INDEX) : path;\n\nconst parseJson = async <T>(response: Response) => {\n\tconst payload: T = JSON.parse(await response.text());\n\n\treturn payload;\n};\n\nconst isErrorPayload = (value: unknown): value is { error?: string } => {\n\tif (!value || typeof value !== 'object') {\n\t\treturn false;\n\t}\n\n\treturn !('error' in value) || typeof value.error === 'string';\n};\n\nconst toErrorMessage = async (response: Response) => {\n\ttry {\n\t\tconst payload = JSON.parse(await response.text());\n\t\tif (\n\t\t\tisErrorPayload(payload) &&\n\t\t\ttypeof payload.error === 'string' &&\n\t\t\tpayload.error\n\t\t) {\n\t\t\treturn payload.error;\n\t\t}\n\t} catch {\n\t\t// fall through\n\t}\n\n\treturn `Request failed with status ${response.status}`;\n};\n\nexport const createRAGClient = (options: RAGClientOptions) => {\n\tconst basePath = normalizeBasePath(options.path);\n\tconst fetchImpl = options.fetch ?? fetch;\n\n\tconst search = async <IncludeTrace extends boolean | undefined = undefined>(\n\t\tinput: RAGSearchRequest & { includeTrace?: IncludeTrace }\n\t): Promise<\n\t\tIncludeTrace extends true ? RAGDetailedSearchResponse : RAGSource[]\n\t> => {\n\t\tconst response = await fetchImpl(`${basePath}/search`, {\n\t\t\tbody: JSON.stringify(input),\n\t\t\theaders: jsonHeaders,\n\t\t\tmethod: 'POST'\n\t\t});\n\n\t\tif (!response.ok) {\n\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t}\n\n\t\tconst payload = await parseJson<RAGSearchResponse>(response);\n\n\t\tif (!payload.ok) {\n\t\t\tthrow new Error(payload.error ?? 'RAG search failed');\n\t\t}\n\n\t\tif (input.includeTrace === true) {\n\t\t\treturn {\n\t\t\t\tresults: payload.results ?? [],\n\t\t\t\ttrace: payload.trace\n\t\t\t} as IncludeTrace extends true\n\t\t\t\t? RAGDetailedSearchResponse\n\t\t\t\t: RAGSource[];\n\t\t}\n\n\t\treturn (payload.results ?? []) as IncludeTrace extends true\n\t\t\t? RAGDetailedSearchResponse\n\t\t\t: RAGSource[];\n\t};\n\n\treturn {\n\t\tasync backends() {\n\t\t\tconst response = await fetchImpl(`${basePath}/backends`);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\treturn parseJson<RAGBackendsResponse>(response);\n\t\t},\n\t\tasync clearIndex() {\n\t\t\tconst response = await fetchImpl(`${basePath}/index`, {\n\t\t\t\tmethod: 'DELETE'\n\t\t\t});\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\treturn parseJson<{ ok: boolean }>(response);\n\t\t},\n\t\tasync createDocument(\n\t\t\tinput: RAGDocumentIngestInput['documents'][number]\n\t\t) {\n\t\t\tconst response = await fetchImpl(`${basePath}/documents`, {\n\t\t\t\tbody: JSON.stringify(input),\n\t\t\t\theaders: jsonHeaders,\n\t\t\t\tmethod: 'POST'\n\t\t\t});\n\n\t\t\tif (!response.ok) {\n\t\t\t\treturn {\n\t\t\t\t\terror: await toErrorMessage(response),\n\t\t\t\t\tok: false\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn parseJson<RAGMutationResponse>(response);\n\t\t},\n\t\tasync deleteDocument(id: string) {\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/documents/${encodeURIComponent(id)}`,\n\t\t\t\t{\n\t\t\t\t\tmethod: 'DELETE'\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\treturn {\n\t\t\t\t\terror: await toErrorMessage(response),\n\t\t\t\t\tok: false\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn parseJson<RAGMutationResponse>(response);\n\t\t},\n\t\tasync documentChunks(id: string) {\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/documents/${encodeURIComponent(id)}/chunks`\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tconst error = await toErrorMessage(response);\n\n\t\t\t\tconst errorResponse: RAGDocumentChunksResponse = {\n\t\t\t\t\terror,\n\t\t\t\t\tok: false\n\t\t\t\t};\n\n\t\t\t\treturn errorResponse;\n\t\t\t}\n\n\t\t\treturn parseJson<RAGDocumentChunksResponse>(response);\n\t\t},\n\t\tasync documents(kind?: string) {\n\t\t\tconst query = kind ? `?kind=${encodeURIComponent(kind)}` : '';\n\t\t\tconst response = await fetchImpl(`${basePath}/documents${query}`);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\treturn parseJson<RAGDocumentsResponse>(response);\n\t\t},\n\t\tasync evaluate(input: RAGEvaluationInput) {\n\t\t\tconst response = await fetchImpl(`${basePath}/evaluate`, {\n\t\t\t\tbody: JSON.stringify(input),\n\t\t\t\theaders: jsonHeaders,\n\t\t\t\tmethod: 'POST'\n\t\t\t});\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\treturn parseJson<RAGEvaluationResponse>(response);\n\t\t},\n\t\tasync compareRetrievals(input: RAGRetrievalComparisonRequest) {\n\t\t\tconst response = await fetchImpl(`${basePath}/compare/retrieval`, {\n\t\t\t\tbody: JSON.stringify(input),\n\t\t\t\theaders: jsonHeaders,\n\t\t\t\tmethod: 'POST'\n\t\t\t});\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalComparisonResponse>(response);\n\t\t\tif (!payload.ok || !payload.comparison) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ?? 'RAG retrieval comparison failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.comparison;\n\t\t},\n\t\tasync retrievalComparisonHistory(input?: {\n\t\t\tlimit?: number;\n\t\t\tsuiteId?: string;\n\t\t\tlabel?: string;\n\t\t\twinnerId?: string;\n\t\t\tgroupKey?: string;\n\t\t\ttag?: string;\n\t\t}) {\n\t\t\tconst searchParams = new URLSearchParams();\n\t\t\tif (typeof input?.limit === 'number') {\n\t\t\t\tsearchParams.set('limit', String(input.limit));\n\t\t\t}\n\t\t\tif (input?.suiteId) {\n\t\t\t\tsearchParams.set('suiteId', input.suiteId);\n\t\t\t}\n\t\t\tif (input?.label) {\n\t\t\t\tsearchParams.set('label', input.label);\n\t\t\t}\n\t\t\tif (input?.winnerId) {\n\t\t\t\tsearchParams.set('winnerId', input.winnerId);\n\t\t\t}\n\t\t\tif (input?.groupKey) {\n\t\t\t\tsearchParams.set('groupKey', input.groupKey);\n\t\t\t}\n\t\t\tif (input?.tag) {\n\t\t\t\tsearchParams.set('tag', input.tag);\n\t\t\t}\n\t\t\tconst suffix = searchParams.size > 0 ? `?${searchParams}` : '';\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/history${suffix}`\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalComparisonHistoryResponse>(\n\t\t\t\t\tresponse\n\t\t\t\t);\n\t\t\tif (!payload.ok || !payload.runs) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ?? 'RAG retrieval comparison history failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.runs;\n\t\t},\n\t\tasync retrievalBaselines(input?: {\n\t\t\tgroupKey?: string;\n\t\t\ttag?: string;\n\t\t\tlimit?: number;\n\t\t\tstatus?: 'active' | 'superseded';\n\t\t}) {\n\t\t\tconst searchParams = new URLSearchParams();\n\t\t\tif (input?.groupKey) {\n\t\t\t\tsearchParams.set('groupKey', input.groupKey);\n\t\t\t}\n\t\t\tif (input?.tag) {\n\t\t\t\tsearchParams.set('tag', input.tag);\n\t\t\t}\n\t\t\tif (typeof input?.limit === 'number') {\n\t\t\t\tsearchParams.set('limit', String(input.limit));\n\t\t\t}\n\t\t\tif (input?.status) {\n\t\t\t\tsearchParams.set('status', input.status);\n\t\t\t}\n\t\t\tconst suffix = searchParams.size > 0 ? `?${searchParams}` : '';\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/baselines${suffix}`\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalBaselineListResponse>(response);\n\t\t\tif (!payload.ok || !payload.baselines) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ?? 'RAG retrieval baseline list failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.baselines;\n\t\t},\n\t\tasync promoteRetrievalBaseline(\n\t\t\tinput: RAGRetrievalBaselinePromotionRequest\n\t\t) {\n\t\t\tconst payload = await this.promoteRetrievalBaselineDetailed(input);\n\t\t\treturn payload.baseline!;\n\t\t},\n\t\tasync promoteRetrievalBaselineDetailed(\n\t\t\tinput: RAGRetrievalBaselinePromotionRequest\n\t\t) {\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/baselines/promote`,\n\t\t\t\t{\n\t\t\t\t\tbody: JSON.stringify(input),\n\t\t\t\t\theaders: jsonHeaders,\n\t\t\t\t\tmethod: 'POST'\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalBaselineResponse>(response);\n\t\t\tif (!payload.ok || !payload.baseline) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ?? 'RAG retrieval baseline promotion failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload;\n\t\t},\n\t\tasync promoteRetrievalBaselineToLane(\n\t\t\tinput: RAGRetrievalBaselinePromotionRequest & {\n\t\t\t\trolloutLabel: 'canary' | 'stable' | 'rollback_target';\n\t\t\t}\n\t\t) {\n\t\t\tconst payload =\n\t\t\t\tawait this.promoteRetrievalBaselineToLaneDetailed(input);\n\t\t\treturn payload.baseline!;\n\t\t},\n\t\tasync promoteRetrievalBaselineToLaneDetailed(\n\t\t\tinput: RAGRetrievalBaselinePromotionRequest & {\n\t\t\t\trolloutLabel: 'canary' | 'stable' | 'rollback_target';\n\t\t\t}\n\t\t) {\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/baselines/promote-lane`,\n\t\t\t\t{\n\t\t\t\t\tbody: JSON.stringify(input),\n\t\t\t\t\theaders: jsonHeaders,\n\t\t\t\t\tmethod: 'POST'\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalBaselineResponse>(response);\n\t\t\tif (!payload.ok || !payload.baseline) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ??\n\t\t\t\t\t\t'RAG retrieval rollout-lane promotion failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload;\n\t\t},\n\t\tasync promoteRetrievalBaselineFromRun(\n\t\t\tinput: RAGRetrievalBaselinePromotionFromRunRequest\n\t\t) {\n\t\t\tconst payload =\n\t\t\t\tawait this.promoteRetrievalBaselineFromRunDetailed(input);\n\t\t\treturn payload.baseline!;\n\t\t},\n\t\tasync promoteRetrievalBaselineFromRunDetailed(\n\t\t\tinput: RAGRetrievalBaselinePromotionFromRunRequest\n\t\t) {\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/baselines/promote-run`,\n\t\t\t\t{\n\t\t\t\t\tbody: JSON.stringify(input),\n\t\t\t\t\theaders: jsonHeaders,\n\t\t\t\t\tmethod: 'POST'\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalBaselineResponse>(response);\n\t\t\tif (!payload.ok || !payload.baseline) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ??\n\t\t\t\t\t\t'RAG retrieval baseline promotion from run failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload;\n\t\t},\n\t\tasync revertRetrievalBaseline(\n\t\t\tinput: RAGRetrievalBaselineRevertRequest\n\t\t) {\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/baselines/revert`,\n\t\t\t\t{\n\t\t\t\t\tbody: JSON.stringify(input),\n\t\t\t\t\theaders: jsonHeaders,\n\t\t\t\t\tmethod: 'POST'\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalBaselineResponse>(response);\n\t\t\tif (!payload.ok || !payload.baseline) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ?? 'RAG retrieval baseline revert failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.baseline;\n\t\t},\n\t\tasync retrievalBaselineDecisions(input?: {\n\t\t\tgroupKey?: string;\n\t\t\tlimit?: number;\n\t\t\tkind?: 'approve' | 'promote' | 'reject' | 'revert';\n\t\t\tfreshnessStatus?: 'fresh' | 'expired' | 'not_applicable';\n\t\t\ttargetRolloutLabel?: 'canary' | 'stable' | 'rollback_target';\n\t\t}) {\n\t\t\tconst searchParams = new URLSearchParams();\n\t\t\tif (input?.groupKey) {\n\t\t\t\tsearchParams.set('groupKey', input.groupKey);\n\t\t\t}\n\t\t\tif (typeof input?.limit === 'number') {\n\t\t\t\tsearchParams.set('limit', String(input.limit));\n\t\t\t}\n\t\t\tif (input?.kind) {\n\t\t\t\tsearchParams.set('kind', input.kind);\n\t\t\t}\n\t\t\tif (input?.freshnessStatus) {\n\t\t\t\tsearchParams.set('freshnessStatus', input.freshnessStatus);\n\t\t\t}\n\t\t\tif (input?.targetRolloutLabel) {\n\t\t\t\tsearchParams.set(\n\t\t\t\t\t'targetRolloutLabel',\n\t\t\t\t\tinput.targetRolloutLabel\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst suffix = searchParams.size > 0 ? `?${searchParams}` : '';\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/baselines/decisions${suffix}`\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalReleaseDecisionListResponse>(\n\t\t\t\t\tresponse\n\t\t\t\t);\n\t\t\tif (!payload.ok || !payload.decisions) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ??\n\t\t\t\t\t\t'RAG retrieval release decision list failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.decisions;\n\t\t},\n\t\tasync retrievalReleaseGroupHistory(input: {\n\t\t\tgroupKey: string;\n\t\t\tdecisionLimit?: number;\n\t\t\tbaselineLimit?: number;\n\t\t\trunLimit?: number;\n\t\t\ttargetRolloutLabel?: 'canary' | 'stable' | 'rollback_target';\n\t\t}) {\n\t\t\tconst searchParams = new URLSearchParams();\n\t\t\tsearchParams.set('groupKey', input.groupKey);\n\t\t\tif (typeof input.decisionLimit === 'number') {\n\t\t\t\tsearchParams.set('decisionLimit', String(input.decisionLimit));\n\t\t\t}\n\t\t\tif (typeof input.baselineLimit === 'number') {\n\t\t\t\tsearchParams.set('baselineLimit', String(input.baselineLimit));\n\t\t\t}\n\t\t\tif (typeof input.runLimit === 'number') {\n\t\t\t\tsearchParams.set('runLimit', String(input.runLimit));\n\t\t\t}\n\t\t\tif (input.targetRolloutLabel) {\n\t\t\t\tsearchParams.set(\n\t\t\t\t\t'targetRolloutLabel',\n\t\t\t\t\tinput.targetRolloutLabel\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/release-history?${searchParams}`\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalReleaseGroupHistoryResponse>(\n\t\t\t\t\tresponse\n\t\t\t\t);\n\t\t\tif (!payload.ok) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ??\n\t\t\t\t\t\t'RAG retrieval release group history failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload;\n\t\t},\n\t\tasync retrievalLaneHandoffs(input?: {\n\t\t\tgroupKey?: string;\n\t\t\tsourceRolloutLabel?: 'canary' | 'stable' | 'rollback_target';\n\t\t\ttargetRolloutLabel?: 'canary' | 'stable' | 'rollback_target';\n\t\t\tlimit?: number;\n\t\t}) {\n\t\t\tconst searchParams = new URLSearchParams();\n\t\t\tif (input?.groupKey) {\n\t\t\t\tsearchParams.set('groupKey', input.groupKey);\n\t\t\t}\n\t\t\tif (input?.sourceRolloutLabel) {\n\t\t\t\tsearchParams.set(\n\t\t\t\t\t'sourceRolloutLabel',\n\t\t\t\t\tinput.sourceRolloutLabel\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (input?.targetRolloutLabel) {\n\t\t\t\tsearchParams.set(\n\t\t\t\t\t'targetRolloutLabel',\n\t\t\t\t\tinput.targetRolloutLabel\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (typeof input?.limit === 'number') {\n\t\t\t\tsearchParams.set('limit', String(input.limit));\n\t\t\t}\n\t\t\tconst suffix = searchParams.size > 0 ? `?${searchParams}` : '';\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/handoffs${suffix}`\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalLaneHandoffListResponse>(response);\n\t\t\tif (!payload.ok || !payload.handoffs) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ?? 'RAG retrieval lane handoff list failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.handoffs;\n\t\t},\n\t\tasync retrievalLaneHandoffDecisions(input?: {\n\t\t\tgroupKey?: string;\n\t\t\tsourceRolloutLabel?: 'canary' | 'stable' | 'rollback_target';\n\t\t\ttargetRolloutLabel?: 'canary' | 'stable' | 'rollback_target';\n\t\t\tkind?: 'approve' | 'reject' | 'complete';\n\t\t\tlimit?: number;\n\t\t}) {\n\t\t\tconst searchParams = new URLSearchParams();\n\t\t\tif (input?.groupKey) {\n\t\t\t\tsearchParams.set('groupKey', input.groupKey);\n\t\t\t}\n\t\t\tif (input?.sourceRolloutLabel) {\n\t\t\t\tsearchParams.set(\n\t\t\t\t\t'sourceRolloutLabel',\n\t\t\t\t\tinput.sourceRolloutLabel\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (input?.targetRolloutLabel) {\n\t\t\t\tsearchParams.set(\n\t\t\t\t\t'targetRolloutLabel',\n\t\t\t\t\tinput.targetRolloutLabel\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (input?.kind) {\n\t\t\t\tsearchParams.set('kind', input.kind);\n\t\t\t}\n\t\t\tif (typeof input?.limit === 'number') {\n\t\t\t\tsearchParams.set('limit', String(input.limit));\n\t\t\t}\n\t\t\tconst suffix = searchParams.size > 0 ? `?${searchParams}` : '';\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/handoffs/decisions${suffix}`\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalLaneHandoffDecisionListResponse>(\n\t\t\t\t\tresponse\n\t\t\t\t);\n\t\t\tif (!payload.ok || !payload.decisions) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ??\n\t\t\t\t\t\t'RAG retrieval lane handoff decision list failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.decisions;\n\t\t},\n\t\tasync retrievalLaneHandoffIncidents(input?: {\n\t\t\tgroupKey?: string;\n\t\t\tlimit?: number;\n\t\t\tstatus?: 'open' | 'resolved';\n\t\t\tseverity?: 'warning' | 'critical';\n\t\t\ttargetRolloutLabel?: 'canary' | 'stable' | 'rollback_target';\n\t\t}) {\n\t\t\tconst searchParams = new URLSearchParams();\n\t\t\tif (input?.groupKey) searchParams.set('groupKey', input.groupKey);\n\t\t\tif (typeof input?.limit === 'number')\n\t\t\t\tsearchParams.set('limit', String(input.limit));\n\t\t\tif (input?.status) searchParams.set('status', input.status);\n\t\t\tif (input?.severity) searchParams.set('severity', input.severity);\n\t\t\tif (input?.targetRolloutLabel) {\n\t\t\t\tsearchParams.set(\n\t\t\t\t\t'targetRolloutLabel',\n\t\t\t\t\tinput.targetRolloutLabel\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst suffix = searchParams.size > 0 ? `?${searchParams}` : '';\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/handoffs/incidents${suffix}`\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalLaneHandoffIncidentListResponse>(\n\t\t\t\t\tresponse\n\t\t\t\t);\n\t\t\tif (!payload.ok || !payload.incidents) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ??\n\t\t\t\t\t\t'RAG retrieval lane handoff incident list failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.incidents;\n\t\t},\n\t\tasync retrievalLaneHandoffIncidentHistory(input?: {\n\t\t\taction?: 'opened' | 'acknowledged' | 'unacknowledged' | 'resolved';\n\t\t\tgroupKey?: string;\n\t\t\tincidentId?: string;\n\t\t\tlimit?: number;\n\t\t\ttargetRolloutLabel?: 'canary' | 'stable' | 'rollback_target';\n\t\t}) {\n\t\t\tconst suffix = input\n\t\t\t\t? `?${new URLSearchParams(\n\t\t\t\t\t\tObject.entries(input)\n\t\t\t\t\t\t\t.filter(([, value]) => value !== undefined)\n\t\t\t\t\t\t\t.map(([key, value]) => [key, String(value)])\n\t\t\t\t\t).toString()}`\n\t\t\t\t: '';\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/handoffs/incidents/history${suffix}`\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalLaneHandoffIncidentHistoryResponse>(\n\t\t\t\t\tresponse\n\t\t\t\t);\n\t\t\tif (!payload.ok || !payload.records) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ??\n\t\t\t\t\t\t'RAG retrieval lane handoff incident history failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.records;\n\t\t},\n\t\tasync retrievalLaneHandoffAutoCompletePolicyHistory(input?: {\n\t\t\tgroupKey?: string;\n\t\t\tlimit?: number;\n\t\t\ttargetRolloutLabel?: 'canary' | 'stable' | 'rollback_target';\n\t\t}) {\n\t\t\tconst suffix = input\n\t\t\t\t? `?${new URLSearchParams(\n\t\t\t\t\t\tObject.entries(input)\n\t\t\t\t\t\t\t.filter(([, value]) => value !== undefined)\n\t\t\t\t\t\t\t.map(([key, value]) => [key, String(value)])\n\t\t\t\t\t).toString()}`\n\t\t\t\t: '';\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/handoffs/policies/history${suffix}`\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalLaneHandoffAutoCompletePolicyHistoryResponse>(\n\t\t\t\t\tresponse\n\t\t\t\t);\n\t\t\tif (!payload.ok || !payload.records) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ??\n\t\t\t\t\t\t'RAG retrieval lane handoff auto-complete policy history failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.records;\n\t\t},\n\t\tasync retrievalReleaseLanePolicyHistory(input?: {\n\t\t\tgroupKey?: string;\n\t\t\tlimit?: number;\n\t\t\trolloutLabel?: 'canary' | 'stable' | 'rollback_target';\n\t\t\tscope?: 'rollout_label' | 'group_rollout_label';\n\t\t}) {\n\t\t\tconst suffix = input\n\t\t\t\t? `?${new URLSearchParams(\n\t\t\t\t\t\tObject.entries(input)\n\t\t\t\t\t\t\t.filter(([, value]) => value !== undefined)\n\t\t\t\t\t\t\t.map(([key, value]) => [key, String(value)])\n\t\t\t\t\t).toString()}`\n\t\t\t\t: '';\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/release-policies/history${suffix}`\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalReleaseLanePolicyHistoryResponse>(\n\t\t\t\t\tresponse\n\t\t\t\t);\n\t\t\tif (!payload.ok || !payload.records) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ??\n\t\t\t\t\t\t'RAG retrieval release lane policy history failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.records;\n\t\t},\n\t\tasync retrievalBaselineGatePolicyHistory(input?: {\n\t\t\tgroupKey?: string;\n\t\t\tlimit?: number;\n\t\t\trolloutLabel?: 'canary' | 'stable' | 'rollback_target';\n\t\t\tscope?: 'rollout_label' | 'group_rollout_label';\n\t\t}) {\n\t\t\tconst suffix = input\n\t\t\t\t? `?${new URLSearchParams(\n\t\t\t\t\t\tObject.entries(input)\n\t\t\t\t\t\t\t.filter(([, value]) => value !== undefined)\n\t\t\t\t\t\t\t.map(([key, value]) => [key, String(value)])\n\t\t\t\t\t).toString()}`\n\t\t\t\t: '';\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/gate-policies/history${suffix}`\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalBaselineGatePolicyHistoryResponse>(\n\t\t\t\t\tresponse\n\t\t\t\t);\n\t\t\tif (!payload.ok || !payload.records) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ??\n\t\t\t\t\t\t'RAG retrieval baseline gate policy history failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.records;\n\t\t},\n\t\tasync retrievalReleaseLaneEscalationPolicyHistory(input?: {\n\t\t\tgroupKey?: string;\n\t\t\tlimit?: number;\n\t\t\ttargetRolloutLabel?: 'canary' | 'stable' | 'rollback_target';\n\t\t}) {\n\t\t\tconst suffix = input\n\t\t\t\t? `?${new URLSearchParams(\n\t\t\t\t\t\tObject.entries(input)\n\t\t\t\t\t\t\t.filter(([, value]) => value !== undefined)\n\t\t\t\t\t\t\t.map(([key, value]) => [key, String(value)])\n\t\t\t\t\t).toString()}`\n\t\t\t\t: '';\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/escalation-policies/history${suffix}`\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalReleaseLaneEscalationPolicyHistoryResponse>(\n\t\t\t\t\tresponse\n\t\t\t\t);\n\t\t\tif (!payload.ok || !payload.records) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ??\n\t\t\t\t\t\t'RAG retrieval release lane escalation policy history failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.records;\n\t\t},\n\t\tasync retrievalReleaseIncidentPolicyHistory(input?: {\n\t\t\tgroupKey?: string;\n\t\t\tlimit?: number;\n\t\t\ttargetRolloutLabel?: 'canary' | 'stable' | 'rollback_target';\n\t\t}) {\n\t\t\tconst suffix = input\n\t\t\t\t? `?${new URLSearchParams(\n\t\t\t\t\t\tObject.entries(input)\n\t\t\t\t\t\t\t.filter(([, value]) => value !== undefined)\n\t\t\t\t\t\t\t.map(([key, value]) => [key, String(value)])\n\t\t\t\t\t).toString()}`\n\t\t\t\t: '';\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/incident-policies/history${suffix}`\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalReleaseLaneEscalationPolicyHistoryResponse>(\n\t\t\t\t\tresponse\n\t\t\t\t);\n\t\t\tif (!payload.ok || !payload.records) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ??\n\t\t\t\t\t\t'RAG retrieval release incident policy history failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.records;\n\t\t},\n\t\tasync retrievalReleaseIncidentStatus() {\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/status/release/incidents`\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\treturn parseJson<RAGRetrievalReleaseIncidentStatusResponse>(\n\t\t\t\tresponse\n\t\t\t);\n\t\t},\n\t\tasync retrievalIncidentRemediationStatus() {\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/status/release/remediations`\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\treturn parseJson<RAGRetrievalIncidentRemediationStatusResponse>(\n\t\t\t\tresponse\n\t\t\t);\n\t\t},\n\t\tasync retrievalLaneHandoffIncidentStatus() {\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/status/handoffs/incidents`\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\treturn parseJson<RAGRetrievalLaneHandoffIncidentStatusResponse>(\n\t\t\t\tresponse\n\t\t\t);\n\t\t},\n\t\tasync acknowledgeRetrievalLaneHandoffIncident(\n\t\t\tinput: RAGRetrievalReleaseIncidentAcknowledgeRequest\n\t\t) {\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/handoffs/incidents/acknowledge`,\n\t\t\t\t{\n\t\t\t\t\tbody: JSON.stringify(input),\n\t\t\t\t\theaders: jsonHeaders,\n\t\t\t\t\tmethod: 'POST'\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalLaneHandoffIncidentListResponse>(\n\t\t\t\t\tresponse\n\t\t\t\t);\n\t\t\tif (!payload.ok || !payload.incidents) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ??\n\t\t\t\t\t\t'RAG retrieval lane handoff incident acknowledgement failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.incidents;\n\t\t},\n\t\tasync unacknowledgeRetrievalLaneHandoffIncident(input: {\n\t\t\tincidentId: string;\n\t\t}) {\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/handoffs/incidents/unacknowledge`,\n\t\t\t\t{\n\t\t\t\t\tbody: JSON.stringify(input),\n\t\t\t\t\theaders: jsonHeaders,\n\t\t\t\t\tmethod: 'POST'\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalLaneHandoffIncidentListResponse>(\n\t\t\t\t\tresponse\n\t\t\t\t);\n\t\t\tif (!payload.ok || !payload.incidents) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ??\n\t\t\t\t\t\t'RAG retrieval lane handoff incident unacknowledge failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.incidents;\n\t\t},\n\t\tasync resolveRetrievalLaneHandoffIncident(input: {\n\t\t\tincidentId: string;\n\t\t\tresolvedAt?: number;\n\t\t\tresolvedBy?: string;\n\t\t\tresolutionNotes?: string;\n\t\t}) {\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/handoffs/incidents/resolve`,\n\t\t\t\t{\n\t\t\t\t\tbody: JSON.stringify(input),\n\t\t\t\t\theaders: jsonHeaders,\n\t\t\t\t\tmethod: 'POST'\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalLaneHandoffIncidentListResponse>(\n\t\t\t\t\tresponse\n\t\t\t\t);\n\t\t\tif (!payload.ok || !payload.incidents) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ??\n\t\t\t\t\t\t'RAG retrieval lane handoff incident resolve failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.incidents;\n\t\t},\n\t\tasync decideRetrievalLaneHandoff(\n\t\t\tinput: RAGRetrievalLaneHandoffDecisionRequest\n\t\t) {\n\t\t\tconst payload =\n\t\t\t\tawait this.decideRetrievalLaneHandoffDetailed(input);\n\t\t\tif (!payload.decision) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ??\n\t\t\t\t\t\t'RAG retrieval lane handoff decision failed'\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn payload.decision;\n\t\t},\n\t\tasync decideRetrievalLaneHandoffDetailed(\n\t\t\tinput: RAGRetrievalLaneHandoffDecisionRequest\n\t\t) {\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/handoffs/decide`,\n\t\t\t\t{\n\t\t\t\t\tbody: JSON.stringify(input),\n\t\t\t\t\theaders: jsonHeaders,\n\t\t\t\t\tmethod: 'POST'\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\treturn parseJson<RAGRetrievalLaneHandoffDecisionResponse>(response);\n\t\t},\n\t\tasync retrievalReleaseIncidents(input?: {\n\t\t\tgroupKey?: string;\n\t\t\tlimit?: number;\n\t\t\tstatus?: 'open' | 'resolved';\n\t\t\tseverity?: 'warning' | 'critical';\n\t\t\tkind?:\n\t\t\t\t| 'approval_expired'\n\t\t\t\t| 'baseline_regression'\n\t\t\t\t| 'gate_failure'\n\t\t\t\t| 'handoff_stale';\n\t\t\tacknowledged?: boolean;\n\t\t\ttargetRolloutLabel?: 'canary' | 'stable' | 'rollback_target';\n\t\t}) {\n\t\t\tconst searchParams = new URLSearchParams();\n\t\t\tif (input?.groupKey) {\n\t\t\t\tsearchParams.set('groupKey', input.groupKey);\n\t\t\t}\n\t\t\tif (typeof input?.limit === 'number') {\n\t\t\t\tsearchParams.set('limit', String(input.limit));\n\t\t\t}\n\t\t\tif (input?.status) {\n\t\t\t\tsearchParams.set('status', input.status);\n\t\t\t}\n\t\t\tif (input?.severity) {\n\t\t\t\tsearchParams.set('severity', input.severity);\n\t\t\t}\n\t\t\tif (input?.kind) {\n\t\t\t\tsearchParams.set('kind', input.kind);\n\t\t\t}\n\t\t\tif (typeof input?.acknowledged === 'boolean') {\n\t\t\t\tsearchParams.set('acknowledged', String(input.acknowledged));\n\t\t\t}\n\t\t\tif (input?.targetRolloutLabel) {\n\t\t\t\tsearchParams.set(\n\t\t\t\t\t'targetRolloutLabel',\n\t\t\t\t\tinput.targetRolloutLabel\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst suffix = searchParams.size > 0 ? `?${searchParams}` : '';\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/incidents${suffix}`\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalReleaseIncidentListResponse>(\n\t\t\t\t\tresponse\n\t\t\t\t);\n\t\t\tif (!payload.ok || !payload.incidents) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ??\n\t\t\t\t\t\t'RAG retrieval release incident list failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.incidents;\n\t\t},\n\t\tasync retrievalIncidentRemediationDecisions(input?: {\n\t\t\tgroupKey?: string;\n\t\t\tincidentId?: string;\n\t\t\tlimit?: number;\n\t\t\tremediationKind?: RAGRetrievalIncidentRemediationDecisionRequest['remediationKind'];\n\t\t\tstatus?: 'planned' | 'applied' | 'dismissed';\n\t\t\ttargetRolloutLabel?: 'canary' | 'stable' | 'rollback_target';\n\t\t}) {\n\t\t\tconst suffix = input\n\t\t\t\t? `?${new URLSearchParams(\n\t\t\t\t\t\tObject.entries(input)\n\t\t\t\t\t\t\t.filter(([, value]) => value !== undefined)\n\t\t\t\t\t\t\t.map(([key, value]) => [key, String(value)])\n\t\t\t\t\t).toString()}`\n\t\t\t\t: '';\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/incidents/remediations${suffix}`\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalIncidentRemediationDecisionListResponse>(\n\t\t\t\t\tresponse\n\t\t\t\t);\n\t\t\tif (!payload.ok || !payload.records) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ??\n\t\t\t\t\t\t'RAG retrieval incident remediation decision list failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.records;\n\t\t},\n\t\tasync retrievalIncidentRemediationExecutions(input?: {\n\t\t\tgroupKey?: string;\n\t\t\tincidentId?: string;\n\t\t\tlimit?: number;\n\t\t\tactionKind?: RAGRetrievalIncidentRemediationExecutionRequest['action']['kind'];\n\t\t\tcode?: NonNullable<\n\t\t\t\tRAGRetrievalIncidentRemediationExecutionResponse['execution']\n\t\t\t>['code'];\n\t\t\tblockedByGuardrail?: boolean;\n\t\t\tidempotentReplay?: boolean;\n\t\t\ttargetRolloutLabel?: 'canary' | 'stable' | 'rollback_target';\n\t\t}) {\n\t\t\tconst suffix = input\n\t\t\t\t? `?${new URLSearchParams(\n\t\t\t\t\t\tObject.entries(input)\n\t\t\t\t\t\t\t.filter(([, value]) => value !== undefined)\n\t\t\t\t\t\t\t.map(([key, value]) => [key, String(value)])\n\t\t\t\t\t).toString()}`\n\t\t\t\t: '';\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/incidents/remediations/executions${suffix}`\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalIncidentRemediationExecutionHistoryResponse>(\n\t\t\t\t\tresponse\n\t\t\t\t);\n\t\t\tif (!payload.ok || !payload.records) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ??\n\t\t\t\t\t\t'RAG retrieval incident remediation execution history failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.records;\n\t\t},\n\t\tasync recordRetrievalIncidentRemediationDecision(\n\t\t\tinput: RAGRetrievalIncidentRemediationDecisionRequest\n\t\t) {\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/incidents/remediations`,\n\t\t\t\t{\n\t\t\t\t\tbody: JSON.stringify(input),\n\t\t\t\t\theaders: jsonHeaders,\n\t\t\t\t\tmethod: 'POST'\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalIncidentRemediationDecisionListResponse>(\n\t\t\t\t\tresponse\n\t\t\t\t);\n\t\t\tif (!payload.ok || !payload.records) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ??\n\t\t\t\t\t\t'RAG retrieval incident remediation decision record failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.records;\n\t\t},\n\t\tasync executeRetrievalIncidentRemediation(\n\t\t\tinput: RAGRetrievalIncidentRemediationExecutionRequest\n\t\t) {\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/incidents/remediations/execute`,\n\t\t\t\t{\n\t\t\t\t\tbody: JSON.stringify(input),\n\t\t\t\t\theaders: jsonHeaders,\n\t\t\t\t\tmethod: 'POST'\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalIncidentRemediationExecutionResponse>(\n\t\t\t\t\tresponse\n\t\t\t\t);\n\t\t\tif (!payload.ok || !payload.execution) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ??\n\t\t\t\t\t\t'RAG retrieval incident remediation execution failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload;\n\t\t},\n\t\tasync bulkExecuteRetrievalIncidentRemediations(\n\t\t\tinput: RAGRetrievalIncidentRemediationBulkExecutionRequest\n\t\t) {\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/incidents/remediations/execute/bulk`,\n\t\t\t\t{\n\t\t\t\t\tbody: JSON.stringify(input),\n\t\t\t\t\theaders: jsonHeaders,\n\t\t\t\t\tmethod: 'POST'\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalIncidentRemediationBulkExecutionResponse>(\n\t\t\t\t\tresponse\n\t\t\t\t);\n\t\t\tif (!payload.ok || !payload.results) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ??\n\t\t\t\t\t\t'Bulk RAG retrieval incident remediation execution failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.results;\n\t\t},\n\t\tasync acknowledgeRetrievalReleaseIncident(\n\t\t\tinput: RAGRetrievalReleaseIncidentAcknowledgeRequest\n\t\t) {\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/incidents/acknowledge`,\n\t\t\t\t{\n\t\t\t\t\tbody: JSON.stringify(input),\n\t\t\t\t\theaders: jsonHeaders,\n\t\t\t\t\tmethod: 'POST'\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalReleaseIncidentListResponse>(\n\t\t\t\t\tresponse\n\t\t\t\t);\n\t\t\tif (!payload.ok || !payload.incidents) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ??\n\t\t\t\t\t\t'RAG retrieval release incident acknowledgement failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.incidents;\n\t\t},\n\t\tasync unacknowledgeRetrievalReleaseIncident(input: {\n\t\t\tincidentId: string;\n\t\t}) {\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/incidents/unacknowledge`,\n\t\t\t\t{\n\t\t\t\t\tbody: JSON.stringify(input),\n\t\t\t\t\theaders: jsonHeaders,\n\t\t\t\t\tmethod: 'POST'\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalReleaseIncidentListResponse>(\n\t\t\t\t\tresponse\n\t\t\t\t);\n\t\t\tif (!payload.ok || !payload.incidents) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ??\n\t\t\t\t\t\t'RAG retrieval release incident unacknowledge failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.incidents;\n\t\t},\n\t\tasync resolveRetrievalReleaseIncident(input: {\n\t\t\tincidentId: string;\n\t\t\tresolvedAt?: number;\n\t\t\tresolvedBy?: string;\n\t\t\tresolutionNotes?: string;\n\t\t}) {\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/incidents/resolve`,\n\t\t\t\t{\n\t\t\t\t\tbody: JSON.stringify(input),\n\t\t\t\t\theaders: jsonHeaders,\n\t\t\t\t\tmethod: 'POST'\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalReleaseIncidentListResponse>(\n\t\t\t\t\tresponse\n\t\t\t\t);\n\t\t\tif (!payload.ok || !payload.incidents) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ??\n\t\t\t\t\t\t'RAG retrieval release incident resolve failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.incidents;\n\t\t},\n\t\tasync retrievalPromotionCandidates(input?: {\n\t\t\tgroupKey?: string;\n\t\t\tlimit?: number;\n\t\t\ttag?: string;\n\t\t\ttargetRolloutLabel?: 'canary' | 'stable' | 'rollback_target';\n\t\t\tapproved?: boolean;\n\t\t\tready?: boolean;\n\t\t\tblocked?: boolean;\n\t\t\treviewStatus?: 'approved' | 'blocked' | 'needs_review' | 'ready';\n\t\t\tfreshnessStatus?: 'fresh' | 'expired' | 'not_applicable';\n\t\t\tsortBy?:\n\t\t\t\t| 'approvalFreshness'\n\t\t\t\t| 'finishedAt'\n\t\t\t\t| 'gateSeverity'\n\t\t\t\t| 'priority';\n\t\t\tsortDirection?: 'asc' | 'desc';\n\t\t}) {\n\t\t\tconst searchParams = new URLSearchParams();\n\t\t\tif (input?.groupKey) {\n\t\t\t\tsearchParams.set('groupKey', input.groupKey);\n\t\t\t}\n\t\t\tif (typeof input?.limit === 'number') {\n\t\t\t\tsearchParams.set('limit', String(input.limit));\n\t\t\t}\n\t\t\tif (input?.tag) {\n\t\t\t\tsearchParams.set('tag', input.tag);\n\t\t\t}\n\t\t\tif (input?.targetRolloutLabel) {\n\t\t\t\tsearchParams.set(\n\t\t\t\t\t'targetRolloutLabel',\n\t\t\t\t\tinput.targetRolloutLabel\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (typeof input?.approved === 'boolean') {\n\t\t\t\tsearchParams.set('approved', String(input.approved));\n\t\t\t}\n\t\t\tif (typeof input?.ready === 'boolean') {\n\t\t\t\tsearchParams.set('ready', String(input.ready));\n\t\t\t}\n\t\t\tif (typeof input?.blocked === 'boolean') {\n\t\t\t\tsearchParams.set('blocked', String(input.blocked));\n\t\t\t}\n\t\t\tif (input?.reviewStatus) {\n\t\t\t\tsearchParams.set('reviewStatus', input.reviewStatus);\n\t\t\t}\n\t\t\tif (input?.freshnessStatus) {\n\t\t\t\tsearchParams.set('freshnessStatus', input.freshnessStatus);\n\t\t\t}\n\t\t\tif (input?.sortBy) {\n\t\t\t\tsearchParams.set('sortBy', input.sortBy);\n\t\t\t}\n\t\t\tif (input?.sortDirection) {\n\t\t\t\tsearchParams.set('sortDirection', input.sortDirection);\n\t\t\t}\n\t\t\tconst suffix = searchParams.size > 0 ? `?${searchParams}` : '';\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/candidates${suffix}`\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalPromotionCandidateListResponse>(\n\t\t\t\t\tresponse\n\t\t\t\t);\n\t\t\tif (!payload.ok || !payload.candidates) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ??\n\t\t\t\t\t\t'RAG retrieval promotion candidate list failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.candidates;\n\t\t},\n\t\tasync approveRetrievalCandidate(\n\t\t\tinput: RAGRetrievalReleaseDecisionActionRequest\n\t\t) {\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/baselines/approve`,\n\t\t\t\t{\n\t\t\t\t\tbody: JSON.stringify(input),\n\t\t\t\t\theaders: jsonHeaders,\n\t\t\t\t\tmethod: 'POST'\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalReleaseDecisionListResponse>(\n\t\t\t\t\tresponse\n\t\t\t\t);\n\t\t\tif (!payload.ok || !payload.decisions) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ?? 'RAG retrieval approval failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.decisions;\n\t\t},\n\t\tasync rejectRetrievalCandidate(\n\t\t\tinput: RAGRetrievalReleaseDecisionActionRequest\n\t\t) {\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/compare/retrieval/baselines/reject`,\n\t\t\t\t{\n\t\t\t\t\tbody: JSON.stringify(input),\n\t\t\t\t\theaders: jsonHeaders,\n\t\t\t\t\tmethod: 'POST'\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalReleaseDecisionListResponse>(\n\t\t\t\t\tresponse\n\t\t\t\t);\n\t\t\tif (!payload.ok || !payload.decisions) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ?? 'RAG retrieval rejection failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.decisions;\n\t\t},\n\t\tasync ingest(chunks: RAGDocumentChunk[]) {\n\t\t\tconst response = await fetchImpl(`${basePath}/ingest`, {\n\t\t\t\tbody: JSON.stringify({ chunks }),\n\t\t\t\theaders: jsonHeaders,\n\t\t\t\tmethod: 'POST'\n\t\t\t});\n\n\t\t\tif (!response.ok) {\n\t\t\t\treturn {\n\t\t\t\t\terror: await toErrorMessage(response),\n\t\t\t\t\tok: false\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn parseJson<RAGIngestResponse>(response);\n\t\t},\n\t\tasync ingestDocuments(input: RAGDocumentIngestInput) {\n\t\t\tconst response = await fetchImpl(`${basePath}/ingest`, {\n\t\t\t\tbody: JSON.stringify(input),\n\t\t\t\theaders: jsonHeaders,\n\t\t\t\tmethod: 'POST'\n\t\t\t});\n\n\t\t\tif (!response.ok) {\n\t\t\t\treturn {\n\t\t\t\t\terror: await toErrorMessage(response),\n\t\t\t\t\tok: false\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn parseJson<RAGIngestResponse>(response);\n\t\t},\n\t\tasync ingestUploads(input: RAGDocumentUploadIngestInput) {\n\t\t\tconst response = await fetchImpl(`${basePath}/ingest`, {\n\t\t\t\tbody: JSON.stringify(input),\n\t\t\t\theaders: jsonHeaders,\n\t\t\t\tmethod: 'POST'\n\t\t\t});\n\n\t\t\tif (!response.ok) {\n\t\t\t\treturn {\n\t\t\t\t\terror: await toErrorMessage(response),\n\t\t\t\t\tok: false\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn parseJson<RAGIngestResponse>(response);\n\t\t},\n\t\tasync ingestUrls(input: RAGDocumentUrlIngestInput) {\n\t\t\tconst response = await fetchImpl(`${basePath}/ingest`, {\n\t\t\t\tbody: JSON.stringify(input),\n\t\t\t\theaders: jsonHeaders,\n\t\t\t\tmethod: 'POST'\n\t\t\t});\n\n\t\t\tif (!response.ok) {\n\t\t\t\treturn {\n\t\t\t\t\terror: await toErrorMessage(response),\n\t\t\t\t\tok: false\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn parseJson<RAGIngestResponse>(response);\n\t\t},\n\t\tasync ops() {\n\t\t\tconst response = await fetchImpl(`${basePath}/ops`);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\treturn parseJson<RAGOperationsResponse>(response);\n\t\t},\n\t\tasync searchTraceHistory(input?: {\n\t\t\tquery?: string;\n\t\t\tgroupKey?: string;\n\t\t\ttag?: string;\n\t\t\tlimit?: number;\n\t\t}) {\n\t\t\tconst searchParams = new URLSearchParams();\n\t\t\tif (input?.query) {\n\t\t\t\tsearchParams.set('query', input.query);\n\t\t\t}\n\t\t\tif (input?.groupKey) {\n\t\t\t\tsearchParams.set('groupKey', input.groupKey);\n\t\t\t}\n\t\t\tif (input?.tag) {\n\t\t\t\tsearchParams.set('tag', input.tag);\n\t\t\t}\n\t\t\tif (typeof input?.limit === 'number') {\n\t\t\t\tsearchParams.set('limit', String(input.limit));\n\t\t\t}\n\t\t\tconst suffix = searchParams.size > 0 ? `?${searchParams}` : '';\n\t\t\tconst response = await fetchImpl(`${basePath}/traces${suffix}`);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGSearchTraceHistoryResponse>(response);\n\t\t\tif (!payload.ok || !payload.history) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ?? 'RAG search trace history failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.history;\n\t\t},\n\t\tasync searchTraceGroups(input?: { tag?: string; limit?: number }) {\n\t\t\tconst searchParams = new URLSearchParams();\n\t\t\tif (input?.tag) {\n\t\t\t\tsearchParams.set('tag', input.tag);\n\t\t\t}\n\t\t\tif (typeof input?.limit === 'number') {\n\t\t\t\tsearchParams.set('limit', String(input.limit));\n\t\t\t}\n\t\t\tconst suffix = searchParams.size > 0 ? `?${searchParams}` : '';\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/traces/groups${suffix}`\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGSearchTraceGroupHistoryResponse>(response);\n\t\t\tif (!payload.ok || !payload.history) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ?? 'RAG search trace group history failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.history;\n\t\t},\n\t\tasync searchTraceStats(input?: { tag?: string }) {\n\t\t\tconst searchParams = new URLSearchParams();\n\t\t\tif (input?.tag) {\n\t\t\t\tsearchParams.set('tag', input.tag);\n\t\t\t}\n\t\t\tconst suffix = searchParams.size > 0 ? `?${searchParams}` : '';\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/traces/stats${suffix}`\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGSearchTraceStatsResponse>(response);\n\t\t\tif (!payload.ok || !payload.stats) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ?? 'RAG search trace stats failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.stats;\n\t\t},\n\t\tasync previewSearchTracePrune(input?: {\n\t\t\tmaxAgeMs?: number;\n\t\t\tmaxRecordsPerQuery?: number;\n\t\t\tmaxRecordsPerGroup?: number;\n\t\t\tnow?: number;\n\t\t\ttag?: string;\n\t\t}) {\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/traces/prune/preview`,\n\t\t\t\t{\n\t\t\t\t\tbody: JSON.stringify(input ?? {}),\n\t\t\t\t\theaders: jsonHeaders,\n\t\t\t\t\tmethod: 'POST'\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGSearchTracePrunePreviewResponse>(response);\n\t\t\tif (!payload.ok || !payload.preview) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ?? 'RAG search trace prune preview failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.preview;\n\t\t},\n\t\tasync pruneSearchTraces(input?: {\n\t\t\tmaxAgeMs?: number;\n\t\t\tmaxRecordsPerQuery?: number;\n\t\t\tmaxRecordsPerGroup?: number;\n\t\t\tnow?: number;\n\t\t\ttag?: string;\n\t\t}) {\n\t\t\tconst response = await fetchImpl(`${basePath}/traces/prune`, {\n\t\t\t\tbody: JSON.stringify(input ?? {}),\n\t\t\t\theaders: jsonHeaders,\n\t\t\t\tmethod: 'POST'\n\t\t\t});\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGSearchTracePruneResponse>(response);\n\t\t\tif (!payload.ok || !payload.result) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ?? 'RAG search trace prune failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload;\n\t\t},\n\t\tasync searchTracePruneHistory(input?: {\n\t\t\tlimit?: number;\n\t\t\ttrigger?: 'manual' | 'write' | 'schedule';\n\t\t}) {\n\t\t\tconst searchParams = new URLSearchParams();\n\t\t\tif (typeof input?.limit === 'number') {\n\t\t\t\tsearchParams.set('limit', String(input.limit));\n\t\t\t}\n\t\t\tif (input?.trigger) {\n\t\t\t\tsearchParams.set('trigger', input.trigger);\n\t\t\t}\n\t\t\tconst suffix = searchParams.size > 0 ? `?${searchParams}` : '';\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/traces/prune/history${suffix}`\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGSearchTracePruneHistoryResponse>(response);\n\t\t\tif (!payload.ok || !payload.runs) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tpayload.error ?? 'RAG search trace prune history failed'\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn payload.runs;\n\t\t},\n\t\tasync syncSources() {\n\t\t\tconst response = await fetchImpl(`${basePath}/sync`);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\treturn parseJson<RAGSyncResponse>(response);\n\t\t},\n\t\tasync syncAllSources(options?: RAGSyncRunOptions) {\n\t\t\tconst response = await fetchImpl(`${basePath}/sync`, {\n\t\t\t\tbody:\n\t\t\t\t\toptions?.background === true\n\t\t\t\t\t\t? JSON.stringify({ background: true })\n\t\t\t\t\t\t: undefined,\n\t\t\t\theaders: options?.background === true ? jsonHeaders : undefined,\n\t\t\t\tmethod: 'POST'\n\t\t\t});\n\n\t\t\tif (!response.ok) {\n\t\t\t\treturn {\n\t\t\t\t\terror: await toErrorMessage(response),\n\t\t\t\t\tok: false\n\t\t\t\t} satisfies RAGSyncResponse;\n\t\t\t}\n\n\t\t\treturn parseJson<RAGSyncResponse>(response);\n\t\t},\n\t\tasync syncSource(id: string, options?: RAGSyncRunOptions) {\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/sync/${encodeURIComponent(id)}`,\n\t\t\t\t{\n\t\t\t\t\tbody:\n\t\t\t\t\t\toptions?.background === true\n\t\t\t\t\t\t\t? JSON.stringify({ background: true })\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\theaders:\n\t\t\t\t\t\toptions?.background === true ? jsonHeaders : undefined,\n\t\t\t\t\tmethod: 'POST'\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\treturn {\n\t\t\t\t\terror: await toErrorMessage(response),\n\t\t\t\t\tok: false\n\t\t\t\t} satisfies RAGSyncResponse;\n\t\t\t}\n\n\t\t\treturn parseJson<RAGSyncResponse>(response);\n\t\t},\n\t\tasync reindexDocument(id: string) {\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/reindex/documents/${encodeURIComponent(id)}`,\n\t\t\t\t{\n\t\t\t\t\tmethod: 'POST'\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\treturn {\n\t\t\t\t\terror: await toErrorMessage(response),\n\t\t\t\t\tok: false\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn parseJson<RAGMutationResponse>(response);\n\t\t},\n\t\tasync reindexSource(source: string) {\n\t\t\tconst response = await fetchImpl(`${basePath}/reindex/source`, {\n\t\t\t\tbody: JSON.stringify({ source }),\n\t\t\t\theaders: jsonHeaders,\n\t\t\t\tmethod: 'POST'\n\t\t\t});\n\n\t\t\tif (!response.ok) {\n\t\t\t\treturn {\n\t\t\t\t\terror: await toErrorMessage(response),\n\t\t\t\t\tok: false\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn parseJson<RAGMutationResponse>(response);\n\t\t},\n\t\tasync reseed() {\n\t\t\tconst response = await fetchImpl(`${basePath}/reseed`, {\n\t\t\t\tmethod: 'POST'\n\t\t\t});\n\n\t\t\tif (!response.ok) {\n\t\t\t\treturn {\n\t\t\t\t\terror: await toErrorMessage(response),\n\t\t\t\t\tok: false\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn parseJson<RAGMutationResponse>(response);\n\t\t},\n\t\tasync reset() {\n\t\t\tconst response = await fetchImpl(`${basePath}/reset`, {\n\t\t\t\tmethod: 'POST'\n\t\t\t});\n\n\t\t\tif (!response.ok) {\n\t\t\t\treturn {\n\t\t\t\t\terror: await toErrorMessage(response),\n\t\t\t\t\tok: false\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn parseJson<RAGMutationResponse>(response);\n\t\t},\n\t\tsearch,\n\t\tasync searchWithTrace(input: RAGSearchRequest) {\n\t\t\treturn search({ ...input, includeTrace: true });\n\t\t},\n\t\t/**\n\t\t * @deprecated Use `searchWithTrace` for trace-aware search responses.\n\t\t */\n\t\tasync searchDetailed(input: RAGSearchRequest) {\n\t\t\treturn search({ ...input, includeTrace: true });\n\t\t},\n\t\tasync status() {\n\t\t\tconst response = await fetchImpl(`${basePath}/status`);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\treturn parseJson<RAGStatusResponse>(response);\n\t\t},\n\t\tasync retrievalReleaseStatus() {\n\t\t\tconst response = await fetchImpl(`${basePath}/status/release`);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload =\n\t\t\t\tawait parseJson<RAGRetrievalReleaseStatusResponse>(response);\n\t\t\treturn payload.retrievalComparisons;\n\t\t},\n\t\tasync retrievalReleaseDriftStatus() {\n\t\t\tconst response = await fetchImpl(\n\t\t\t\t`${basePath}/status/release/drift`\n\t\t\t);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\treturn parseJson<RAGRetrievalReleaseDriftStatusResponse>(response);\n\t\t},\n\t\tasync retrievalLaneHandoffStatus() {\n\t\t\tconst response = await fetchImpl(`${basePath}/status/handoffs`);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\treturn parseJson<RAGRetrievalLaneHandoffStatusResponse>(response);\n\t\t}\n\t};\n};\n\nexport type RAGClient = ReturnType<typeof createRAGClient>;\n"
45
45
  ],
46
- "mappings": "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",
47
- "debugId": "1ADA1065B50387AC64756E2164756E21",
46
+ "mappings": "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",
47
+ "debugId": "593D26DEF70C96A364756E2164756E21",
48
48
  "names": []
49
49
  }