@resolveio/server-lib 22.3.163 → 22.3.165
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/ai-run-evidence-adapters.ts"],"names":[],"mappings":"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","file":"ai-run-evidence-adapters.js","sourcesContent":["import {\n\tAIRun,\n\tAIRunCost,\n\tAIRunEvent,\n\tAIRunGateResult,\n\tAIQaArtifact,\n\tAIQaBusinessAssertion,\n\tAIQaCompileResult,\n\tAIQaInfraCheck,\n\tAIQaRun,\n\tAIQaRouteProbe,\n\tbuildAIRun,\n\tbuildAIRunCost,\n\tbuildAIQaRun,\n\tnormalizeOpenAIUsageRowsForCosting\n} from './ai-run-evidence';\nimport {\n\tevaluateResolveIOAICoderWorkflowProofReadiness,\n\tResolveIOAICoderWorkflowProofReadiness\n} from './aicoder-runner-v6';\nimport {\n\tdecideResolveIOAIManagerPolicy,\n\tResolveIOAIManagerFailureRecord,\n\tvalidateResolveIOAIManagerHotfixEvidence\n} from './ai-runner-manager-policy';\n\nexport interface SupportAIRunAdapterInput {\n\tticket?: Record<string, any>;\n\tjob?: Record<string, any>;\n\tversions?: Array<Record<string, any>>;\n\tbuildPlans?: Array<Record<string, any>>;\n\taiJobs?: Array<Record<string, any>>;\n\ttaskEvents?: Array<Record<string, any>>;\n\tusageLedger?: Array<Record<string, any>>;\n\tcommits?: Array<Record<string, any>>;\n\tqaEvidence?: Record<string, any>;\n\tnow?: Date | string;\n}\n\nexport interface AICoderAIRunAdapterInput {\n\tapp?: Record<string, any>;\n\tjob?: Record<string, any>;\n\tlogs?: Array<Record<string, any>>;\n\tusageLedger?: Array<Record<string, any>>;\n\tcommits?: Array<Record<string, any>>;\n\tqaEvidence?: Record<string, any>;\n\tnow?: Date | string;\n}\n\nexport interface AssistantAIRunAdapterInput {\n\trunId?: string;\n\trequestId?: string;\n\tmessageId?: string;\n\tconversation?: Record<string, any>;\n\tmessages?: Array<Record<string, any>>;\n\tissueReports?: Array<Record<string, any>>;\n\tusageLedger?: Array<Record<string, any>>;\n\tcorrectnessChecks?: Array<Record<string, any>>;\n\tanswerQuality?: Record<string, any>;\n\tnow?: Date | string;\n}\n\nexport type AssistantAnswerQualityStatus =\n\t| 'ready'\n\t| 'missing_data_source'\n\t| 'date_incorrect'\n\t| 'missing_date_window'\n\t| 'illegal_query_shape'\n\t| 'missing_query_proof'\n\t| 'query_error'\n\t| 'permission_error'\n\t| 'no_data_unverified'\n\t| 'missing_citations'\n\t| 'low_confidence'\n\t| 'missing_next_action'\n\t| 'incorrect'\n\t| 'blocked';\n\nexport interface AssistantAnswerQualityInput {\n\tanswerQuality?: Record<string, any>;\n\tcorrectnessChecks?: Array<Record<string, any>>;\n\tnow?: Date | string;\n}\n\nexport interface AssistantAnswerQualityDecision {\n\tready: boolean;\n\tstatus: AssistantAnswerQualityStatus;\n\treason: string;\n\tblockers: string[];\n\tqueryStatus: 'ok' | 'no_data' | 'query_error' | 'permission_error' | 'unknown';\n\tconfidenceLevel: 'high' | 'medium' | 'low' | 'unknown';\n\tdateBasis?: string;\n\texpectedCurrentDate?: string;\n\tdateWindowRequired: boolean;\n\tdateWindowPresent: boolean;\n\tdateWindow?: {\n\t\tstartDate?: string;\n\t\tendDate?: string;\n\t\tmode?: string;\n\t\tmonths?: number;\n\t};\n\tnoDataConfirmed: boolean;\n\tlegalQueryShape: boolean;\n\tcitationRefs: string[];\n\tqueryEvidenceRequired: boolean;\n\tqueryEvidencePresent: boolean;\n\tqueryEvidenceRefs: string[];\n\tqueryExecutionCount: number;\n\tnextActions: string[];\n\tevidenceRefs: string[];\n\tfailedChecks: string[];\n\trecordedAt: string;\n}\n\nfunction cleanText(value: any, max = 1000): string {\n\treturn String(value || '').replace(/\\s+/g, ' ').trim().slice(0, max);\n}\n\nfunction idText(value: any, max = 160): string | undefined {\n\tconst normalized = cleanText(value, max);\n\treturn normalized || undefined;\n}\n\nfunction asArray<T = any>(value: any): T[] {\n\treturn Array.isArray(value) ? value : [];\n}\n\nfunction cleanStringList(value: any, limit = 40, max = 500): string[] {\n\treturn asArray<any>(value)\n\t\t.map((entry) => cleanText(entry, max))\n\t\t.filter(Boolean)\n\t\t.slice(0, limit);\n}\n\nfunction plainObject(value: any): Record<string, any> {\n\treturn value && typeof value === 'object' && !Array.isArray(value) ? value : {};\n}\n\nfunction firstText(source: Record<string, any> | undefined, fields: string[], max = 1000): string | undefined {\n\tfor (const field of fields) {\n\t\tconst value = source?.[field];\n\t\tconst normalized = idText(value, max);\n\t\tif (normalized) {\n\t\t\treturn normalized;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction dateValue(source: Record<string, any> | undefined, fields: string[]): Date | string | undefined {\n\tfor (const field of fields) {\n\t\tconst value = source?.[field];\n\t\tif (value) {\n\t\t\treturn value;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction addSourceId(sourceIds: Record<string, string>, key: string, value: any): void {\n\tconst normalized = idText(value);\n\tif (normalized) {\n\t\tsourceIds[key] = normalized;\n\t}\n}\n\nfunction pushEvent(events: AIRunEvent[], event: AIRunEvent): void {\n\tconst message = cleanText(event.message, 1800);\n\tconst metadata = event.metadata || {};\n\tif (!message && !Object.keys(metadata).length && !event.artifactPaths?.length) {\n\t\treturn;\n\t}\n\tevents.push({\n\t\t...event,\n\t\tmessage,\n\t\tartifactPaths: asArray<string>(event.artifactPaths).filter(Boolean).slice(0, 20)\n\t});\n}\n\nfunction eventDate(record: Record<string, any>): Date | string | undefined {\n\treturn dateValue(record, ['recordedAt', 'createdAt', 'updatedAt', 'timestamp', 'time', 'date']);\n}\n\nfunction normalizeManagerFailureRecord(value: any, fallback: Partial<ResolveIOAIManagerFailureRecord> = {}): ResolveIOAIManagerFailureRecord | undefined {\n\tconst entry = plainObject(value);\n\tif (!Object.keys(entry).length && !Object.keys(fallback).length) {\n\t\treturn undefined;\n\t}\n\tconst blocker = cleanText(entry.blocker || entry.reason || entry.summary || entry.message || fallback.blocker || fallback.summary, 1200);\n\tconst failureClass = cleanText(entry.failureClass || entry.failure_class || entry.class || fallback.failureClass, 120);\n\tconst evidenceHash = cleanText(entry.evidenceHash || entry.evidence_hash || entry.hash || fallback.evidenceHash, 180);\n\tconst blockerFingerprint = cleanText(entry.blockerFingerprint || entry.blocker_fingerprint || fallback.blockerFingerprint, 180);\n\tconst lane = cleanText(entry.lane || fallback.lane || 'support', 80);\n\tconst stepType = cleanText(entry.stepType || entry.step_type || entry.type || fallback.stepType || 'support_step', 80);\n\tconst outcome = cleanText(entry.outcome || entry.status || entry.result || fallback.outcome || 'needs_repair', 80);\n\tif (!blocker && !failureClass && !evidenceHash && !blockerFingerprint) {\n\t\treturn undefined;\n\t}\n\treturn {\n\t\tlane,\n\t\tstepType,\n\t\toutcome,\n\t\tfailureClass: failureClass || undefined,\n\t\tblocker: blocker || undefined,\n\t\tsummary: cleanText(entry.summary || entry.message || fallback.summary, 1200) || undefined,\n\t\tblockerFingerprint: blockerFingerprint || undefined,\n\t\tevidenceHash: evidenceHash || undefined,\n\t\tchangedFiles: cleanStringList(entry.changedFiles || entry.changed_files || fallback.changedFiles, 80, 500),\n\t\tartifactPaths: cleanStringList(entry.artifactPaths || entry.artifact_paths || entry.artifacts || fallback.artifactPaths, 80, 500)\n\t};\n}\n\nfunction supportManagerFailureRecords(job: Record<string, any>, evidence: Record<string, any>): ResolveIOAIManagerFailureRecord[] {\n\tconst records: ResolveIOAIManagerFailureRecord[] = [];\n\tconst pushRecord = (value: any, fallback: Partial<ResolveIOAIManagerFailureRecord> = {}): void => {\n\t\tconst record = normalizeManagerFailureRecord(value, fallback);\n\t\tif (record) {\n\t\t\trecords.push(record);\n\t\t}\n\t};\n\tfor (const entry of asArray<any>(job.supportV5StepHistory || job.support_v5_step_history || evidence.supportV5StepHistory || evidence.support_v5_step_history)) {\n\t\tpushRecord(entry);\n\t}\n\tfor (const entry of asArray<any>(job.supportV5FailureFingerprints || job.support_v5_failure_fingerprints || evidence.supportV5FailureFingerprints || evidence.support_v5_failure_fingerprints)) {\n\t\tconst fingerprint = plainObject(entry);\n\t\tconst count = Math.max(1, Math.min(8, Number(fingerprint.count || fingerprint.repeatedCount || fingerprint.repeated_count || 1) || 1));\n\t\tconst fallback = {\n\t\t\tlane: cleanText(fingerprint.lane || 'support', 80),\n\t\t\tstepType: cleanText(fingerprint.stepType || fingerprint.step_type || 'support_step', 80),\n\t\t\toutcome: cleanText(fingerprint.outcome || 'needs_repair', 80),\n\t\t\tfailureClass: cleanText(fingerprint.failureClass || fingerprint.failure_class || fingerprint.class, 120),\n\t\t\tblocker: cleanText(fingerprint.blocker || fingerprint.reason || fingerprint.summary, 1200),\n\t\t\tblockerFingerprint: cleanText(fingerprint.blockerFingerprint || fingerprint.blocker_fingerprint, 180),\n\t\t\tevidenceHash: cleanText(fingerprint.evidenceHash || fingerprint.evidence_hash, 180)\n\t\t};\n\t\tfor (let index = 0; index < count; index += 1) {\n\t\t\tpushRecord(fingerprint, fallback);\n\t\t}\n\t}\n\tconst currentFailure = evidenceObject(\n\t\tjob.supportV5CurrentFailure,\n\t\tjob.support_v5_current_failure,\n\t\tjob.supportV5RecoveryCurrent,\n\t\tjob.support_v5_recovery_current,\n\t\tevidence.currentFailure,\n\t\tevidence.current_failure\n\t);\n\tpushRecord(currentFailure);\n\treturn records.slice(-80);\n}\n\nfunction supportManagerNoBlindLoopGate(\n\tjob: Record<string, any>,\n\tevidence: Record<string, any>,\n\tnow?: Date | string\n): AIRunGateResult | undefined {\n\tconst history = supportManagerFailureRecords(job, evidence);\n\tif (!history.length) {\n\t\treturn undefined;\n\t}\n\tconst budget = plainObject(job.supportV5Budget || job.support_v5_budget || evidence.supportV5Budget || evidence.support_v5_budget);\n\tconst maxSameFailureRepeats = Math.max(1, Number(budget.maxRepeatedNoProgress || budget.max_repeated_no_progress || budget.maxSameFailureRepeats || budget.max_same_failure_repeats || 3) || 3);\n\tconst decision = decideResolveIOAIManagerPolicy({\n\t\thistory,\n\t\tmaxSameFailureRepeats\n\t});\n\tconst parksRun = /^(park_repeated_failure|park_ping_pong|manual_handoff)$/.test(decision.action);\n\tconst status: AIRunGateResult['status'] = parksRun\n\t\t? 'blocked'\n\t\t: decision.action === 'retry_infra'\n\t\t\t? 'warn'\n\t\t\t: 'pass';\n\treturn {\n\t\tkey: 'manager_no_blind_loop_policy',\n\t\tlabel: 'No-blind-loop manager policy',\n\t\tstatus,\n\t\treason: decision.reason,\n\t\tevidenceRefs: cleanStringList(decision.recoveryAction.requiredArtifacts, 20, 500),\n\t\trecordedAt: isoNow(now),\n\t\tmetadata: {\n\t\t\taction: decision.action,\n\t\t\tfailureClass: decision.failureClass,\n\t\t\tblockerFingerprint: decision.blockerFingerprint,\n\t\t\tevidenceHash: decision.evidenceHash,\n\t\t\tsameFailureCount: decision.sameFailureCount,\n\t\t\tpingPongCount: decision.pingPongCount,\n\t\t\tnewEvidence: decision.newEvidence,\n\t\t\tmaterialEvidence: decision.materialEvidence,\n\t\t\tevidenceStrength: decision.evidenceStrength,\n\t\t\tevidenceSignals: decision.evidenceSignals,\n\t\t\tloopBudgetShouldReset: decision.loopBudgetShouldReset,\n\t\t\tproductRepairFailure: decision.productRepairFailure,\n\t\t\trecoveryClass: decision.recoveryPlan.recoveryClass,\n\t\t\tallowedAction: decision.recoveryPlan.allowedAction,\n\t\t\tdispatchAction: decision.recoveryAction.allowedDispatchAction,\n\t\t\tevidenceOnly: decision.recoveryAction.evidenceOnly,\n\t\t\tproductRepairAllowed: decision.recoveryAction.productRepairAllowed,\n\t\t\texpensiveModelAllowed: decision.recoveryAction.expensiveModelAllowed,\n\t\t\tcostCeilingUsd: decision.recoveryAction.costCeilingUsd,\n\t\t\trequiresNewEvidence: decision.recoveryAction.retryPolicy?.requireNewEvidence === true,\n\t\t\tnextCommands: decision.recoveryAction.nextCommands,\n\t\t\trequiredEvidence: decision.recoveryAction.requiredArtifacts,\n\t\t\tforbiddenActions: decision.recoveryPlan.forbiddenActions\n\t\t}\n\t};\n}\n\nfunction hotfixEvidenceCandidates(...sources: any[]): Record<string, any>[] {\n\tconst result: Record<string, any>[] = [];\n\tconst seen = new Set<string>();\n\tconst pushCandidate = (value: any): void => {\n\t\tif (Array.isArray(value)) {\n\t\t\tfor (const entry of value) {\n\t\t\t\tpushCandidate(entry);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn;\n\t\t}\n\t\tconst nestedValues = [\n\t\t\tvalue.hotfixEvidence,\n\t\t\tvalue.hotfix_evidence,\n\t\t\tvalue.releaseHotfixEvidence,\n\t\t\tvalue.release_hotfix_evidence,\n\t\t\tvalue.managerHotfixEvidence,\n\t\t\tvalue.manager_hotfix_evidence,\n\t\t\tvalue.backendHotfixEvidence,\n\t\t\tvalue.backend_hotfix_evidence\n\t\t].filter(Boolean);\n\t\tif (nestedValues.length) {\n\t\t\tfor (const nestedValue of nestedValues) {\n\t\t\t\tpushCandidate(nestedValue);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (!(value.channel || value.hotfixChannel || value.hotfix_channel)) {\n\t\t\treturn;\n\t\t}\n\t\tconst key = JSON.stringify({\n\t\t\tchannel: value.channel || value.hotfixChannel || value.hotfix_channel,\n\t\t\thost: value.target?.host || value.host,\n\t\t\tpath: value.target?.path || value.path || value.remotePath || value.remote_path,\n\t\t\tchecksum: value.remoteChecksumAfter || value.remote_checksum_after || value.remoteChecksum || value.remote_checksum\n\t\t});\n\t\tif (seen.has(key)) {\n\t\t\treturn;\n\t\t}\n\t\tseen.add(key);\n\t\tresult.push(value);\n\t};\n\tfor (const source of sources) {\n\t\tpushCandidate(source);\n\t}\n\treturn result;\n}\n\nfunction hotfixEvidenceArtifactPaths(evidence: Record<string, any>, normalized: Record<string, any> | undefined): string[] {\n\treturn [\n\t\tnormalized?.compiledArtifactPath,\n\t\tnormalized?.builtDistPath,\n\t\tnormalized?.target?.artifactPath,\n\t\tevidence.compiledArtifactPath,\n\t\tevidence.compiled_artifact_path,\n\t\tevidence.builtDistPath,\n\t\tevidence.built_dist_path,\n\t\tevidence.artifactPath,\n\t\tevidence.artifact_path\n\t].map((entry) => cleanText(entry, 500)).filter(Boolean).slice(0, 8);\n}\n\nfunction hotfixEvidenceGate(\n\tevidence: Record<string, any>,\n\tnow?: Date | string\n): AIRunGateResult | undefined {\n\tconst validation = validateResolveIOAIManagerHotfixEvidence(evidence);\n\tif (!validation.normalized && validation.status === 'missing') {\n\t\treturn undefined;\n\t}\n\tconst status: AIRunGateResult['status'] = validation.valid\n\t\t? (validation.fullDeployAllowed ? 'warn' : 'pass')\n\t\t: validation.status === 'blocked'\n\t\t\t? 'blocked'\n\t\t\t: 'fail';\n\tconst reason = validation.valid\n\t\t? validation.fullDeployAllowed\n\t\t\t? 'Hotfix evidence allows exactly one full deploy after force/new-artifact proof.'\n\t\t\t: 'Hotfix evidence is sufficient; rerun the smallest release gate before continuing.'\n\t\t: validation.blockers.join('; ');\n\treturn {\n\t\tkey: 'hotfix_evidence',\n\t\tlabel: 'Hotfix evidence',\n\t\tstatus,\n\t\treason,\n\t\tevidenceRefs: hotfixEvidenceArtifactPaths(evidence, validation.normalized as any),\n\t\trecordedAt: isoNow(now || validation.normalized?.recordedAt),\n\t\tmetadata: {\n\t\t\tchannel: validation.channel,\n\t\t\tnextAction: validation.nextAction,\n\t\t\tfullDeployAllowed: validation.fullDeployAllowed,\n\t\t\tfullDeployBlocked: validation.fullDeployBlocked,\n\t\t\thotfixSatisfied: validation.hotfixSatisfied,\n\t\t\tblockers: validation.blockers,\n\t\t\tgithubCommitGuard: validation.githubCommitGuard,\n\t\t\ttarget: validation.normalized?.target\n\t\t}\n\t};\n}\n\nfunction hotfixCommitProofGate(\n\tevidence: Record<string, any>,\n\tnow?: Date | string\n): AIRunGateResult | undefined {\n\tconst validation = validateResolveIOAIManagerHotfixEvidence(evidence);\n\tconst guard = validation.githubCommitGuard;\n\tif (!guard.required) {\n\t\treturn undefined;\n\t}\n\tconst status: AIRunGateResult['status'] = guard.passed\n\t\t? 'pass'\n\t\t: guard.status === 'invalid'\n\t\t\t? 'fail'\n\t\t\t: 'blocked';\n\treturn {\n\t\tkey: 'hotfix_commit_proof',\n\t\tlabel: 'Hotfix GitHub commit proof',\n\t\tstatus,\n\t\treason: guard.passed\n\t\t\t? 'Hotfix has matching sourceCommitSha, GitHub commit URL, and passed gitPushStatus/gitCommitStatus.'\n\t\t\t: (guard.blockers.join('; ') || 'Manager hotfix is blocked until sourceCommitSha, githubCommitUrl, and passed gitPushStatus prove the hotfix is pushed to GitHub.'),\n\t\tevidenceRefs: cleanStringList([guard.githubCommitUrl], 1, 500),\n\t\trecordedAt: isoNow(now || validation.normalized?.recordedAt),\n\t\tmetadata: {\n\t\t\tchannel: guard.channel || validation.channel,\n\t\t\tstatus: guard.status,\n\t\t\tpassed: guard.passed,\n\t\t\tmanagerMustCommitBeforeHotfix: guard.managerMustCommitBeforeHotfix,\n\t\t\tsourceCommitSha: guard.sourceCommitSha,\n\t\t\tgithubCommitUrl: guard.githubCommitUrl,\n\t\t\tgithubCommitSha: guard.githubCommitSha,\n\t\t\tgitCommitStatus: guard.gitCommitStatus,\n\t\t\tgitPushStatus: guard.gitPushStatus,\n\t\t\tblockers: guard.blockers,\n\t\t\tnextCommands: guard.nextCommands,\n\t\t\trequiredEvidence: guard.requiredEvidence\n\t\t}\n\t};\n}\n\nfunction collectHotfixEvidenceEvents(\n\tsources: any[],\n\tevents: AIRunEvent[],\n\tgates: AIRunGateResult[],\n\tnow?: Date | string\n): void {\n\tfor (const evidence of hotfixEvidenceCandidates(...sources)) {\n\t\tconst validation = validateResolveIOAIManagerHotfixEvidence(evidence);\n\t\tif (!validation.normalized && validation.status === 'missing') {\n\t\t\tcontinue;\n\t\t}\n\t\tconst artifactPaths = hotfixEvidenceArtifactPaths(evidence, validation.normalized as any);\n\t\tpushEvent(events, {\n\t\t\ttype: 'hotfix',\n\t\t\tcategory: validation.channel || 'hotfix',\n\t\t\tmessage: validation.valid\n\t\t\t\t? `Hotfix evidence recorded for ${validation.channel}.`\n\t\t\t\t: `Incomplete hotfix evidence for ${validation.channel || 'unknown channel'}.`,\n\t\t\tartifactPaths,\n\t\t\trecordedAt: validation.normalized?.recordedAt || eventDate(evidence),\n\t\t\tmetadata: {\n\t\t\t\tstatus: validation.status,\n\t\t\t\tnextAction: validation.nextAction,\n\t\t\t\tfullDeployAllowed: validation.fullDeployAllowed,\n\t\t\t\tfullDeployBlocked: validation.fullDeployBlocked,\n\t\t\t\thotfixSatisfied: validation.hotfixSatisfied,\n\t\t\t\tblockers: validation.blockers,\n\t\t\t\tgithubCommitGuard: validation.githubCommitGuard,\n\t\t\t\ttarget: validation.normalized?.target\n\t\t\t}\n\t\t});\n\t\tconst gate = hotfixEvidenceGate(evidence, now);\n\t\tif (gate) {\n\t\t\tgates.push(gate);\n\t\t}\n\t\tconst commitProofGate = hotfixCommitProofGate(evidence, now);\n\t\tif (commitProofGate) {\n\t\t\tgates.push(commitProofGate);\n\t\t\tpushEvent(events, {\n\t\t\t\ttype: 'log',\n\t\t\t\tcategory: 'hotfix_commit_proof',\n\t\t\t\tmessage: commitProofGate.reason,\n\t\t\t\tartifactPaths: commitProofGate.evidenceRefs,\n\t\t\t\trecordedAt: commitProofGate.recordedAt,\n\t\t\t\tmetadata: commitProofGate.metadata\n\t\t\t});\n\t\t}\n\t}\n}\n\nfunction collectUsageEvents(entries: Array<Record<string, any>>, events: AIRunEvent[]): AIRunCost | undefined {\n\tif (!entries.length) {\n\t\treturn undefined;\n\t}\n\tconst normalizedEntries = normalizeOpenAIUsageRowsForCosting(entries);\n\tfor (const entry of normalizedEntries) {\n\t\tpushEvent(events, {\n\t\t\ttype: 'usage',\n\t\t\tcategory: cleanText(entry.category || entry.kind || entry.phase, 160) || 'usage',\n\t\t\tmessage: cleanText(entry.summary || entry.description || entry.model || 'Model usage recorded.', 800),\n\t\t\trecordedAt: eventDate(entry),\n\t\t\tmetadata: {\n\t\t\t\tmodel: entry.model,\n\t\t\t\tinputTokens: entry.inputTokens ?? entry.input_tokens,\n\t\t\t\toutputTokens: entry.outputTokens ?? entry.output_tokens,\n\t\t\t\ttotalTokens: entry.totalTokens ?? entry.total_tokens,\n\t\t\t\testimatedUsd: entry.estimatedUsd ?? entry.cost_estimate,\n\t\t\t\tusageSource: entry.usage_source ?? entry.usageSource,\n\t\t\t\tusageSurface: entry.usage_surface ?? entry.usageSurface,\n\t\t\t\tusagePhase: entry.usage_phase ?? entry.usagePhase,\n\t\t\t\tcostBasis: entry.cost_basis ?? entry.costBasis,\n\t\t\t\tisManual: entry.is_manual ?? entry.isManual,\n\t\t\t\tisUntracked: entry.is_untracked ?? entry.isUntracked,\n\t\t\t\tuntrackedReason: entry.untracked_reason ?? entry.untrackedReason\n\t\t\t}\n\t\t});\n\t}\n\treturn buildAIRunCost(entries);\n}\n\nfunction collectCommitEvents(commits: Array<Record<string, any>>, events: AIRunEvent[]): void {\n\tfor (const commit of commits.slice(0, 80)) {\n\t\tpushEvent(events, {\n\t\t\ttype: 'git_commit',\n\t\t\tmessage: cleanText(commit.message || commit.subject || commit.title || commit.hash || commit.sha, 1200),\n\t\t\trecordedAt: eventDate(commit),\n\t\t\tmetadata: {\n\t\t\t\tsha: commit.sha || commit.hash,\n\t\t\t\tbranch: commit.branch,\n\t\t\t\tauthor: commit.author\n\t\t\t}\n\t\t});\n\t}\n}\n\nfunction statusFromBoolean(value: any, fallback?: string): string | undefined {\n\tif (value === true) {\n\t\treturn 'pass';\n\t}\n\tif (value === false) {\n\t\treturn 'fail';\n\t}\n\treturn fallback;\n}\n\nfunction collectArtifacts(evidence: Record<string, any> | undefined): AIQaArtifact[] {\n\tconst artifacts: AIQaArtifact[] = [];\n\tfor (const entry of asArray<any>(evidence?.artifacts)) {\n\t\tartifacts.push({\n\t\t\ttype: entry.type || 'other',\n\t\t\tpath: cleanText(entry.path || entry.file || entry.artifactPath, 500),\n\t\t\turl: cleanText(entry.url, 500),\n\t\t\ttitle: cleanText(entry.title || entry.name, 300),\n\t\t\tcaption: cleanText(entry.caption || entry.message, 800),\n\t\t\tmetadata: entry.metadata\n\t\t});\n\t}\n\tconst screenshots = asArray<any>(evidence?.screenshots || evidence?.qaScreenshots || evidence?.browserScreenshots);\n\tfor (const screenshot of screenshots.slice(0, 40)) {\n\t\tif (typeof screenshot === 'string') {\n\t\t\tartifacts.push({ type: 'screenshot', path: screenshot });\n\t\t} else {\n\t\t\tartifacts.push({\n\t\t\t\ttype: 'screenshot',\n\t\t\t\tpath: cleanText(screenshot.path || screenshot.file, 500),\n\t\t\t\turl: cleanText(screenshot.url, 500),\n\t\t\t\ttitle: cleanText(screenshot.title || screenshot.route, 300),\n\t\t\t\tcaption: cleanText(screenshot.caption || screenshot.message, 800),\n\t\t\t\tmetadata: screenshot.metadata\n\t\t\t});\n\t\t}\n\t}\n\tconst artifactRefs = [\n\t\t...asArray<any>(evidence?.artifactPaths),\n\t\t...asArray<any>(evidence?.artifact_paths),\n\t\t...asArray<any>(evidence?.runnerEvidenceArtifacts),\n\t\t...asArray<any>(evidence?.runner_evidence_artifacts),\n\t\t...asArray<any>(evidence?.supportQaArtifacts),\n\t\t...asArray<any>(evidence?.support_qa_artifacts),\n\t\t...asArray<any>(evidence?.qa_artifacts)\n\t];\n\tfor (const entry of artifactRefs.slice(0, 60)) {\n\t\tif (typeof entry === 'string') {\n\t\t\tartifacts.push({ type: 'other', path: cleanText(entry, 500) });\n\t\t}\n\t\telse if (entry && typeof entry === 'object') {\n\t\t\tartifacts.push({\n\t\t\t\ttype: entry.type || 'other',\n\t\t\t\tpath: cleanText(entry.path || entry.file || entry.artifactPath || entry.artifact_path, 500),\n\t\t\t\turl: cleanText(entry.url, 500),\n\t\t\t\ttitle: cleanText(entry.title || entry.name || entry.label, 300),\n\t\t\t\tcaption: cleanText(entry.caption || entry.message || entry.summary, 800),\n\t\t\t\tmetadata: entry.metadata\n\t\t\t});\n\t\t}\n\t}\n\treturn artifacts;\n}\n\nfunction collectInfraChecks(evidence: Record<string, any> | undefined): AIQaInfraCheck[] {\n\tconst checks: AIQaInfraCheck[] = [];\n\tfor (const entry of asArray<any>(evidence?.infraChecks || evidence?.preflightChecks)) {\n\t\tchecks.push({\n\t\t\tname: cleanText(entry.name || entry.check || entry.key, 160) || 'infra_check',\n\t\t\tstatus: entry.status || statusFromBoolean(entry.passed),\n\t\t\tmessage: cleanText(entry.message || entry.error || entry.reason, 1000),\n\t\t\tpath: cleanText(entry.path, 500),\n\t\t\tdurationMs: Number(entry.durationMs ?? entry.duration_ms) || undefined,\n\t\t\tmetadata: entry.metadata,\n\t\t\tcheckedAt: eventDate(entry)\n\t\t});\n\t}\n\tif (evidence?.preflightStatus) {\n\t\tchecks.push({\n\t\t\tname: 'qa_preflight',\n\t\t\tstatus: evidence.preflightStatus,\n\t\t\tmessage: cleanText(evidence.preflightMessage || evidence.preflightReason, 1000),\n\t\t\tpath: cleanText(evidence.preflightArtifactPath || evidence.preflightPath, 500)\n\t\t});\n\t}\n\treturn checks;\n}\n\nfunction collectCompileResult(evidence: Record<string, any> | undefined): AIQaCompileResult | undefined {\n\tconst build = evidence?.compile || evidence?.build || evidence?.buildEvidence || evidence?.buildResult;\n\tif (!build && evidence?.compileStatus === undefined && evidence?.buildStatus === undefined) {\n\t\treturn undefined;\n\t}\n\tconst status = build?.status\n\t\t|| evidence?.compileStatus\n\t\t|| evidence?.buildStatus\n\t\t|| statusFromBoolean(build?.passed ?? build?.allExpectedPassed ?? evidence?.buildPassed);\n\treturn {\n\t\tstatus,\n\t\tcommand: cleanText(build?.command || evidence?.buildCommand, 500),\n\t\tartifactPath: cleanText(build?.artifactPath || build?.logPath || evidence?.buildLogPath, 500),\n\t\tmessage: cleanText(build?.message || build?.error || evidence?.buildMessage, 1000),\n\t\tdurationMs: Number(build?.durationMs ?? build?.duration_ms) || undefined,\n\t\tstaleEvidence: build?.staleEvidence === true || evidence?.staleBuildEvidence === true,\n\t\trecordedAt: eventDate(build || evidence || {})\n\t};\n}\n\nfunction collectRouteProbes(evidence: Record<string, any> | undefined): AIQaRouteProbe[] {\n\tconst probes: AIQaRouteProbe[] = [];\n\tconst rows = [\n\t\t...asArray<any>(evidence?.routeProbes),\n\t\t...asArray<any>(evidence?.route_probes),\n\t\t...asArray<any>(evidence?.routes),\n\t\t...asArray<any>(evidence?.browserRoutes),\n\t\t...asArray<any>(evidence?.browser_routes),\n\t\t...asArray<any>(evidence?.workflowProbes),\n\t\t...asArray<any>(evidence?.workflow_probes)\n\t];\n\tconst directProbe = plainObject(evidence?.routeProbe || evidence?.route_probe || evidence?.workflowProbe || evidence?.workflow_probe);\n\tif (Object.keys(directProbe).length) {\n\t\trows.push(directProbe);\n\t}\n\tfor (const entry of rows) {\n\t\tprobes.push({\n\t\t\troute: cleanText(entry.route || entry.path || entry.url, 500) || '/',\n\t\t\tstatus: entry.status || statusFromBoolean(entry.passed),\n\t\t\tscreenshot: cleanText(entry.screenshot || entry.screenshotPath, 500),\n\t\t\tcaption: cleanText(entry.caption || entry.message, 1000),\n\t\t\tshellOnly: entry.shellOnly === true,\n\t\t\tauthenticated: entry.authenticated === true,\n\t\t\tconsoleErrors: asArray<string>(entry.consoleErrors),\n\t\t\tnetworkErrors: asArray<string>(entry.networkErrors),\n\t\t\tmessage: cleanText(entry.message || entry.error, 1000),\n\t\t\trecordedAt: eventDate(entry)\n\t\t});\n\t}\n\tconst screenshots = asArray<any>(evidence?.screenshots || evidence?.qaScreenshots || evidence?.browserScreenshots);\n\tfor (const screenshot of screenshots.slice(0, 20)) {\n\t\tif (typeof screenshot === 'string') {\n\t\t\tprobes.push({ route: '/', status: 'pass', screenshot, caption: 'Historical browser screenshot recorded.' });\n\t\t} else if (screenshot.route || screenshot.path || screenshot.url || screenshot.screenshot || screenshot.file) {\n\t\t\tprobes.push({\n\t\t\t\troute: cleanText(screenshot.route || screenshot.url || screenshot.path, 500) || '/',\n\t\t\t\tstatus: screenshot.status || statusFromBoolean(screenshot.passed, 'pass'),\n\t\t\t\tscreenshot: cleanText(screenshot.screenshot || screenshot.screenshotPath || screenshot.file || screenshot.path, 500),\n\t\t\t\tcaption: cleanText(screenshot.caption || screenshot.message, 1000),\n\t\t\t\tshellOnly: screenshot.shellOnly === true,\n\t\t\t\tauthenticated: screenshot.authenticated === true,\n\t\t\t\trecordedAt: eventDate(screenshot)\n\t\t\t});\n\t\t}\n\t}\n\treturn probes;\n}\n\nfunction collectBusinessAssertions(evidence: Record<string, any> | undefined): AIQaBusinessAssertion[] {\n\tconst assertions: AIQaBusinessAssertion[] = [];\n\tconst rows = [\n\t\t...asArray<any>(evidence?.businessAssertions),\n\t\t...asArray<any>(evidence?.business_assertions),\n\t\t...asArray<any>(evidence?.workflowAssertions),\n\t\t...asArray<any>(evidence?.workflow_assertions),\n\t\t...asArray<any>(evidence?.assertions),\n\t\t...asArray<any>(evidence?.qaRows),\n\t\t...asArray<any>(evidence?.qa_rows),\n\t\t...asArray<any>(evidence?.rows),\n\t\t...asArray<any>(evidence?.supportQaAssertions),\n\t\t...asArray<any>(evidence?.support_qa_assertions),\n\t\t...asArray<any>(evidence?.aiQaBusinessAssertions),\n\t\t...asArray<any>(evidence?.ai_qa_business_assertions)\n\t];\n\tfor (const entry of rows) {\n\t\tassertions.push({\n\t\t\tassertion: cleanText(entry.assertion || entry.name || entry.label || entry.workflow || entry.expected, 1000) || 'business assertion',\n\t\t\tstatus: entry.status || entry.outcome || entry.result || statusFromBoolean(entry.passed),\n\t\t\tworkflow: cleanText(entry.workflow || entry.workflowName || entry.workflow_name, 400),\n\t\t\troute: cleanText(entry.route || entry.url, 500),\n\t\t\taction: cleanText(entry.action || entry.action_under_test || entry.actionUnderTest, 500),\n\t\t\texpected: cleanText(entry.expected || entry.expected_business_state_change || entry.expectedBusinessStateChange, 1000),\n\t\t\tobserved: cleanText(entry.observed || entry.actual || entry.after || entry.after_state || entry.afterState, 1000),\n\t\t\tdataProof: cleanText(entry.dataProof || entry.data_proof || entry.domProof || entry.dom_proof || entry.proof || entry.summary, 1400),\n\t\t\tmongoDelta: plainObject(entry.mongoDelta || entry.mongo_delta),\n\t\t\tartifactPaths: cleanStringList(entry.artifactPaths || entry.artifact_paths || entry.artifacts || entry.screenshots || (entry.screenshot ? [entry.screenshot] : []), 30, 500),\n\t\t\tmessage: cleanText(entry.message || entry.error || entry.reason, 1000),\n\t\t\trecordedAt: eventDate(entry),\n\t\t\tmetadata: {\n\t\t\t\t...plainObject(entry.metadata),\n\t\t\t\t...(entry.acceptanceBlocked === true || entry.acceptance_blocked === true ? { acceptanceBlocked: true } : {}),\n\t\t\t\t...(entry.routeOnly === true || entry.route_only === true ? { routeOnly: true } : {})\n\t\t\t}\n\t\t});\n\t}\n\tif (!assertions.length && evidence?.qaRunOutcome === 'business_assertion_passed') {\n\t\tassertions.push({\n\t\t\tassertion: cleanText(evidence.aiRunOutcomeReason || evidence.reason || 'Historical business assertion passed.', 1000),\n\t\t\tstatus: 'pass',\n\t\t\tdataProof: cleanText(evidence.aiRunOutcomeReason || evidence.reason, 1400)\n\t\t});\n\t}\n\tif (!assertions.length && evidence?.qaRunOutcome === 'business_assertion_failed') {\n\t\tassertions.push({\n\t\t\tassertion: cleanText(evidence.aiRunOutcomeReason || evidence.reason || 'Historical business assertion failed.', 1000),\n\t\t\tstatus: 'fail',\n\t\t\tobserved: cleanText(evidence.aiRunOutcomeReason || evidence.reason, 1000)\n\t\t});\n\t}\n\treturn assertions;\n}\n\nfunction buildQaFromEvidence(evidence: Record<string, any> | undefined, now?: Date | string): AIQaRun {\n\treturn buildAIQaRun({\n\t\tinfraChecks: collectInfraChecks(evidence),\n\t\tcompile: collectCompileResult(evidence),\n\t\trouteProbes: collectRouteProbes(evidence),\n\t\tbusinessAssertions: collectBusinessAssertions(evidence),\n\t\tartifacts: collectArtifacts(evidence),\n\t\tnow\n\t});\n}\n\nfunction isoNow(value?: Date | string): string {\n\tif (value instanceof Date) {\n\t\treturn value.toISOString();\n\t}\n\tif (value) {\n\t\tconst parsed = new Date(value);\n\t\tif (!Number.isNaN(parsed.getTime())) {\n\t\t\treturn parsed.toISOString();\n\t\t}\n\t}\n\treturn new Date().toISOString();\n}\n\nfunction normalizeMatchText(value: any): string {\n\treturn cleanText(value, 3000)\n\t\t.toLowerCase()\n\t\t.replace(/[^a-z0-9]+/g, ' ')\n\t\t.replace(/\\s+/g, ' ')\n\t\t.trim();\n}\n\nfunction importantTokens(value: any): Set<string> {\n\tconst stopWords = new Set([\n\t\t'the', 'and', 'that', 'with', 'from', 'after', 'before', 'when', 'then', 'this', 'must',\n\t\t'should', 'will', 'only', 'into', 'have', 'has', 'are', 'was', 'were', 'been'\n\t]);\n\treturn new Set(normalizeMatchText(value).split(' ')\n\t\t.filter((token) => token.length >= 4 && !stopWords.has(token)));\n}\n\nfunction businessAssertionPassed(assertion: AIQaBusinessAssertion): boolean {\n\treturn /^(pass|passed|success|ok|done)$/i.test(cleanText(assertion.status, 40));\n}\n\nfunction supportAssertionMatchesDiagnosisProof(assertion: AIQaBusinessAssertion, proofPlan: Record<string, any>): boolean {\n\tconst metadata = assertion.metadata || {};\n\tif (metadata.diagnosisProofPlanMatched === true || metadata.proofPlanMatched === true || metadata.supportDiagnosisProof === true) {\n\t\treturn true;\n\t}\n\tconst requiredBusinessAssertion = proofPlan.business_assertion || proofPlan.businessAssertion;\n\tconst proofParts = [\n\t\trequiredBusinessAssertion,\n\t\tproofPlan.after,\n\t\tproofPlan.data_assertion || proofPlan.dataAssertion,\n\t\tproofPlan.artifact_expectation || proofPlan.artifactExpectation\n\t].map((part) => normalizeMatchText(part)).filter((part) => part.length >= 16);\n\tif (!proofParts.length) {\n\t\treturn true;\n\t}\n\tconst assertionText = normalizeMatchText([\n\t\tassertion.assertion,\n\t\tassertion.workflow,\n\t\tassertion.action,\n\t\tassertion.expected,\n\t\tassertion.observed,\n\t\tassertion.dataProof,\n\t\tassertion.message\n\t].filter(Boolean).join(' '));\n\tif (proofParts.some((part) => assertionText.includes(part))) {\n\t\treturn true;\n\t}\n\tconst proofTokens = importantTokens([\n\t\trequiredBusinessAssertion,\n\t\tproofPlan.after,\n\t\tproofPlan.data_assertion || proofPlan.dataAssertion\n\t].filter(Boolean).join(' '));\n\tconst assertionTokens = importantTokens(assertionText);\n\tif (!proofTokens.size) {\n\t\treturn true;\n\t}\n\tlet overlap = 0;\n\tfor (const token of proofTokens) {\n\t\tif (assertionTokens.has(token)) {\n\t\t\toverlap += 1;\n\t\t}\n\t}\n\treturn overlap >= Math.min(4, Math.max(3, Math.ceil(proofTokens.size * 0.45)));\n}\n\nfunction supportDiagnosisProofGateResult(diagnosisGate: Record<string, any>, now?: Date | string): AIRunGateResult {\n\tconst proofPlan = diagnosisGate.proof_plan || diagnosisGate.proofPlan || {};\n\treturn {\n\t\tkey: 'support_diagnosis_business_proof',\n\t\tlabel: 'Diagnosis proof plan',\n\t\tstatus: 'blocked',\n\t\treason: 'Support business assertion did not map to the diagnosis proof_plan. Route proof or generic workflow proof cannot accept the ticket.',\n\t\tevidenceRefs: [],\n\t\trecordedAt: isoNow(now),\n\t\tmetadata: {\n\t\t\tissueClass: cleanText(diagnosisGate.issue_class || diagnosisGate.issueClass, 120),\n\t\t\trequiredBusinessAssertion: cleanText(proofPlan.business_assertion || proofPlan.businessAssertion, 1000),\n\t\t\trequiredAfter: cleanText(proofPlan.after, 1000),\n\t\t\trequiredDataAssertion: cleanText(proofPlan.data_assertion || proofPlan.dataAssertion, 1000)\n\t\t}\n\t};\n}\n\nconst SUPPORT_ROOT_CAUSE_ENTRY_REQUIRED_FIELDS = [\n\t'issue_case',\n\t'issue_class',\n\t'accepted_hypothesis',\n\t'rejected_alternatives',\n\t'failing_path',\n\t'owner_files',\n\t'proof_plan',\n\t'evidence'\n];\n\nconst SUPPORT_ROOT_CAUSE_ENTRY_ISSUE_CLASSES = [\n\t'no_op_submit',\n\t'missing_wrong_data',\n\t'filter_query_mismatch',\n\t'invoice_pdf_export',\n\t'upload_import',\n\t'route_auth_hydration',\n\t'slow_query_performance'\n];\n\nfunction supportRootCauseEntryContractGate(contract: Record<string, any>, now?: Date | string): AIRunGateResult | undefined {\n\tif (!contract || !Object.keys(contract).length) {\n\t\treturn undefined;\n\t}\n\tconst requiredOutput = plainObject(contract.required_output || contract.requiredOutput);\n\tconst ownerPolicy = plainObject(contract.owner_file_policy || contract.ownerFilePolicy);\n\tconst businessProofPolicy = plainObject(contract.business_proof_policy || contract.businessProofPolicy);\n\tconst failurePolicy = plainObject(contract.failure_policy || contract.failurePolicy);\n\tconst probes = asArray<Record<string, any>>(contract.issue_class_probes || contract.issueClassProbes);\n\tconst requiredFields = cleanStringList(requiredOutput.required_fields || requiredOutput.requiredFields, 30, 160);\n\tconst issueClasses = probes.map((probe) => cleanText(probe.issue_class || probe.issueClass, 120)).filter(Boolean);\n\tconst missingRequiredFields = SUPPORT_ROOT_CAUSE_ENTRY_REQUIRED_FIELDS.filter((field) => !requiredFields.includes(field));\n\tconst missingIssueClasses = SUPPORT_ROOT_CAUSE_ENTRY_ISSUE_CLASSES.filter((issueClass) => !issueClasses.includes(issueClass));\n\tconst blockers: string[] = [];\n\tif (!cleanText(contract.contract_id || contract.contractId, 160)) {\n\t\tblockers.push('Root-cause entry contract is missing contract_id.');\n\t}\n\tif (cleanText(requiredOutput.object_key || requiredOutput.objectKey, 120) !== 'support_diagnosis_gate') {\n\t\tblockers.push('Root-cause entry contract must require support_diagnosis_gate output.');\n\t}\n\tif (missingRequiredFields.length) {\n\t\tblockers.push(`Root-cause entry contract missing required output fields: ${missingRequiredFields.join(', ')}.`);\n\t}\n\tconst ownerFileMax = Number(ownerPolicy.max_files || ownerPolicy.maxFiles || 0);\n\tif (!Number.isFinite(ownerFileMax) || ownerFileMax <= 0 || ownerFileMax > 12) {\n\t\tblockers.push('Root-cause entry contract must cap owner_files to a small exact file set.');\n\t}\n\tif (ownerPolicy.edits_outside_owner_files_require_revised_diagnosis !== true && ownerPolicy.editsOutsideOwnerFilesRequireRevisedDiagnosis !== true) {\n\t\tblockers.push('Root-cause entry contract must require revised diagnosis before edits outside owner_files.');\n\t}\n\tif (businessProofPolicy.requires_aiqa_business_assertion !== true && businessProofPolicy.requiresAiqaBusinessAssertion !== true) {\n\t\tblockers.push('Root-cause entry contract must require AIQaBusinessAssertion business proof.');\n\t}\n\tif (businessProofPolicy.route_load_screenshot_scorecard_model_claim_not_acceptance !== true && businessProofPolicy.routeLoadScreenshotScorecardModelClaimNotAcceptance !== true) {\n\t\tblockers.push('Root-cause entry contract must reject route-load/screenshot/scorecard/model-claim acceptance.');\n\t}\n\tif (failurePolicy.repeated_failure_without_new_evidence_parks_run !== true && failurePolicy.repeatedFailureWithoutNewEvidenceParksRun !== true) {\n\t\tblockers.push('Root-cause entry contract must park repeated failures without new evidence.');\n\t}\n\tif (missingIssueClasses.length) {\n\t\tblockers.push(`Root-cause entry contract missing issue-class probes: ${missingIssueClasses.join(', ')}.`);\n\t}\n\tconst status: AIRunGateResult['status'] = blockers.length ? 'fail' : 'pass';\n\treturn {\n\t\tkey: 'support_root_cause_entry_contract',\n\t\tlabel: 'Root-cause entry contract',\n\t\tstatus,\n\t\treason: blockers.length\n\t\t\t? blockers.join(' ')\n\t\t\t: 'Support run has a structured root-cause-first entry contract with issue-class probes, owner-file policy, and business-proof policy.',\n\t\tevidenceRefs: cleanStringList(businessProofPolicy.required_artifacts || businessProofPolicy.requiredArtifacts, 20, 500),\n\t\trecordedAt: isoNow(now),\n\t\tmetadata: {\n\t\t\tcontractId: cleanText(contract.contract_id || contract.contractId, 160),\n\t\t\tversion: cleanText(contract.version, 120),\n\t\t\tstatus: cleanText(contract.status, 120),\n\t\t\trequiredOutputKey: cleanText(requiredOutput.object_key || requiredOutput.objectKey, 120),\n\t\t\trequiredFields,\n\t\t\tmissingRequiredFields,\n\t\t\townerFileMax,\n\t\t\trequiresRevisedDiagnosisForOutOfScopeEdits: ownerPolicy.edits_outside_owner_files_require_revised_diagnosis === true || ownerPolicy.editsOutsideOwnerFilesRequireRevisedDiagnosis === true,\n\t\t\trequiresBusinessAssertion: businessProofPolicy.requires_aiqa_business_assertion === true || businessProofPolicy.requiresAiqaBusinessAssertion === true,\n\t\t\trouteOnlyAcceptanceRejected: businessProofPolicy.route_load_screenshot_scorecard_model_claim_not_acceptance === true || businessProofPolicy.routeLoadScreenshotScorecardModelClaimNotAcceptance === true,\n\t\t\tissueClassProbeCount: issueClasses.length,\n\t\t\tissueClasses,\n\t\t\tmissingIssueClasses\n\t\t}\n\t};\n}\n\nfunction applySupportDiagnosisProofGate(qa: AIQaRun, diagnosisGate: Record<string, any>, now?: Date | string): AIQaRun {\n\tconst proofPlan = diagnosisGate.proof_plan || diagnosisGate.proofPlan || {};\n\tconst requiredBusinessAssertion = cleanText(proofPlan.business_assertion || proofPlan.businessAssertion, 1000);\n\tconst requiredAfter = cleanText(proofPlan.after, 1000);\n\tif (!Object.keys(proofPlan).length || (!requiredBusinessAssertion && !requiredAfter)) {\n\t\treturn qa;\n\t}\n\tconst passedAssertions = qa.businessAssertions.filter(businessAssertionPassed);\n\tif (!passedAssertions.length) {\n\t\treturn qa;\n\t}\n\tif (passedAssertions.some((assertion) => supportAssertionMatchesDiagnosisProof(assertion, proofPlan))) {\n\t\treturn qa;\n\t}\n\tconst gate = supportDiagnosisProofGateResult(diagnosisGate, now);\n\treturn {\n\t\t...qa,\n\t\toutcome: qa.routeProbes.some((probe) => /^(pass|passed|success|ok|done)$/i.test(cleanText(probe.status, 40)))\n\t\t\t? 'route_only_pass'\n\t\t\t: 'incomplete',\n\t\tgateResults: [\n\t\t\t...qa.gateResults.filter((existing) => !(existing.key === 'qa_business_assertion' && existing.status === 'pass')),\n\t\t\tgate\n\t\t]\n\t};\n}\n\nfunction evidenceObject(...values: any[]): Record<string, any> {\n\tfor (const value of values) {\n\t\tif (value && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\treturn value;\n\t\t}\n\t}\n\treturn {};\n}\n\nfunction mergeEvidenceRecords(...values: any[]): Record<string, any> {\n\tconst merged: Record<string, any> = {};\n\tfor (const value of values) {\n\t\tconst source = plainObject(value);\n\t\tfor (const [key, entry] of Object.entries(source)) {\n\t\t\tif (entry === undefined || entry === null || entry === '') {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (Array.isArray(entry)) {\n\t\t\t\tmerged[key] = [...asArray(merged[key]), ...entry];\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (plainObject(entry) === entry && plainObject(merged[key]) === merged[key]) {\n\t\t\t\tmerged[key] = { ...merged[key], ...entry };\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tmerged[key] = entry;\n\t\t}\n\t}\n\treturn merged;\n}\n\nfunction buildSupportQaEvidence(input: SupportAIRunAdapterInput): Record<string, any> {\n\tconst job = input.job || {};\n\tconst ticket = input.ticket || {};\n\tconst qaCursor = plainObject(job.supportQaValidationCursor || job.support_qa_validation_cursor);\n\tconst autonomousDecision = plainObject(job.supportV5AutonomousDecision || job.support_v5_autonomous_decision);\n\tconst businessProofReadiness = plainObject(\n\t\tautonomousDecision.businessProofReadiness\n\t\t|| autonomousDecision.business_proof_readiness\n\t\t|| job.businessProofReadiness\n\t\t|| job.business_proof_readiness\n\t);\n\tconst customerReplyPolicy = plainObject(\n\t\tautonomousDecision.customerReplyPolicy\n\t\t|| autonomousDecision.customer_reply_policy\n\t\t|| job.customerReplyPolicy\n\t\t|| job.customer_reply_policy\n\t);\n\tconst humanReviewPacket = plainObject(\n\t\tautonomousDecision.humanReviewPacket\n\t\t|| autonomousDecision.human_review_packet\n\t\t|| customerReplyPolicy.humanReviewPacket\n\t\t|| customerReplyPolicy.human_review_packet\n\t\t|| job.humanReviewPacket\n\t\t|| job.human_review_packet\n\t);\n\tconst evidence = mergeEvidenceRecords(\n\t\tqaCursor,\n\t\tjob.qaEvidence,\n\t\tjob.qa_evidence,\n\t\tticket.qaEvidence,\n\t\tticket.qa_evidence,\n\t\tinput.qaEvidence\n\t);\n\tevidence.supportQaAssertions = [\n\t\t...asArray(job.supportQaAssertions),\n\t\t...asArray(job.support_qa_assertions),\n\t\t...asArray(evidence.supportQaAssertions)\n\t];\n\tevidence.aiQaBusinessAssertions = [\n\t\t...asArray(job.aiQaBusinessAssertions),\n\t\t...asArray(job.ai_qa_business_assertions),\n\t\t...asArray(evidence.aiQaBusinessAssertions)\n\t];\n\tevidence.runnerEvidenceArtifacts = [\n\t\t...asArray(job.runnerEvidenceArtifacts),\n\t\t...asArray(job.runner_evidence_artifacts),\n\t\t...asArray(evidence.runnerEvidenceArtifacts)\n\t];\n\tevidence.supportQaArtifacts = [\n\t\t...asArray(job.supportQaArtifacts),\n\t\t...asArray(job.support_qa_artifacts),\n\t\t...asArray(job.qa_artifacts),\n\t\t...asArray(evidence.supportQaArtifacts)\n\t];\n\tif (Object.keys(businessProofReadiness).length) {\n\t\tevidence.businessProofReadiness = businessProofReadiness;\n\t}\n\tif (Object.keys(customerReplyPolicy).length) {\n\t\tevidence.customerReplyPolicy = {\n\t\t\t...customerReplyPolicy,\n\t\t\t...(Object.keys(humanReviewPacket).length ? { humanReviewPacket } : {})\n\t\t};\n\t}\n\telse if (Object.keys(humanReviewPacket).length) {\n\t\tevidence.customerReplyPolicy = { humanReviewPacket };\n\t}\n\treturn evidence;\n}\n\nfunction supportBusinessProofReadinessGate(\n\treadiness: Record<string, any>,\n\tnow?: Date | string\n): AIRunGateResult | undefined {\n\tif (!readiness || !Object.keys(readiness).length) {\n\t\treturn undefined;\n\t}\n\tconst ready = readiness.ready === true;\n\tconst readinessStatus = cleanText(readiness.status, 120).toLowerCase();\n\tconst blockers = cleanStringList(readiness.blockers, 20, 500);\n\tconst artifactPaths = cleanStringList(readiness.artifactPaths || readiness.artifact_paths, 40, 500);\n\tconst proofFingerprint = cleanText(readiness.proofFingerprint || readiness.proof_fingerprint, 160);\n\tconst artifactFingerprint = cleanText(readiness.artifactFingerprint || readiness.artifact_fingerprint, 160);\n\tconst proofFreshness = cleanText(readiness.proofFreshness || readiness.proof_freshness, 120);\n\tconst status: AIRunGateResult['status'] = ready\n\t\t? 'pass'\n\t\t: /fail|failed/.test(readinessStatus)\n\t\t\t? 'fail'\n\t\t\t: /missing|route_only|blocked|weak|stale|incomplete/.test(readinessStatus)\n\t\t\t\t? 'blocked'\n\t\t\t\t: 'warn';\n\treturn {\n\t\tkey: 'support_business_proof_readiness',\n\t\tlabel: 'Support business proof readiness',\n\t\tstatus,\n\t\treason: cleanText(readiness.reason || blockers.join('; ') || readinessStatus || 'Support business proof readiness recorded.', 1200),\n\t\tevidenceRefs: artifactPaths,\n\t\trecordedAt: isoNow(now || readiness.recordedAt || readiness.recorded_at),\n\t\tmetadata: {\n\t\t\tready,\n\t\t\tstatus: readinessStatus,\n\t\t\tblockers,\n\t\t\trequiredEvidence: cleanStringList(readiness.requiredEvidence || readiness.required_evidence, 20, 500),\n\t\t\tproofFingerprint,\n\t\t\tartifactFingerprint,\n\t\t\tproofFreshness\n\t\t}\n\t};\n}\n\nfunction supportCustomerReplyPolicyGate(\n\tpolicy: Record<string, any>,\n\tnow?: Date | string\n): AIRunGateResult | undefined {\n\tif (!policy || !Object.keys(policy).length) {\n\t\treturn undefined;\n\t}\n\tconst action = cleanText(policy.action, 120);\n\tconst safety = cleanText(policy.safety, 120);\n\tconst reason = cleanText(policy.reason, 1200);\n\tconst canDraft = policy.canDraftCustomerReply === true || policy.can_draft_customer_reply === true;\n\tconst canSend = policy.canSendCustomerReply === true || policy.can_send_customer_reply === true;\n\tconst reviewPacket = plainObject(policy.humanReviewPacket || policy.human_review_packet);\n\tconst reviewType = cleanText(reviewPacket.reviewType || reviewPacket.review_type, 160);\n\tconst evidenceRefs = cleanStringList(reviewPacket.evidenceRefs || reviewPacket.evidence_refs, 40, 500);\n\tconst blockers = cleanStringList(policy.blockers || reviewPacket.blockers, 20, 500);\n\tconst gateStatus: AIRunGateResult['status'] = canSend\n\t\t? 'blocked'\n\t\t: action === 'draft_resolution_reply' && canDraft\n\t\t\t? 'warn'\n\t\t\t: action === 'ask_clarification' && canDraft\n\t\t\t\t? 'warn'\n\t\t\t\t: 'blocked';\n\treturn {\n\t\tkey: 'support_customer_reply_policy',\n\t\tlabel: 'Support customer reply policy',\n\t\tstatus: gateStatus,\n\t\treason: reason || action || 'Support customer reply policy recorded.',\n\t\tevidenceRefs,\n\t\trecordedAt: isoNow(now || policy.recordedAt || policy.recorded_at || reviewPacket.createdAt || reviewPacket.created_at),\n\t\tmetadata: {\n\t\t\taction,\n\t\t\tsafety,\n\t\t\tcanDraftCustomerReply: canDraft,\n\t\t\tcanSendCustomerReply: canSend,\n\t\t\tconfidenceLevel: cleanText(policy.confidenceLevel || policy.confidence_level, 120),\n\t\t\treviewType,\n\t\t\tprimaryAction: cleanText(reviewPacket.primaryAction || reviewPacket.primary_action, 160),\n\t\t\trequiresHumanApproval: reviewPacket.requiresHumanApproval !== false && reviewPacket.requires_human_approval !== false,\n\t\t\tquestionPresent: !!cleanText(policy.clarificationQuestion || policy.clarification_question || reviewPacket.question, 1000),\n\t\t\tblockers\n\t\t}\n\t};\n}\n\nfunction firstNonEmptyText(values: any[], max = 1000): string | undefined {\n\tfor (const value of values) {\n\t\tconst normalized = idText(value, max);\n\t\tif (normalized) {\n\t\t\treturn normalized;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction buildAICoderQaEvidence(input: AICoderAIRunAdapterInput): Record<string, any> {\n\tconst app = input.app || {};\n\tconst job = input.job || {};\n\tconst workflowMemory = plainObject(\n\t\tjob.aiCoderV6WorkflowMemory\n\t\t|| job.ai_coder_v6_workflow_memory\n\t\t|| app.aiCoderV6WorkflowMemory\n\t\t|| app.ai_coder_v6_workflow_memory\n\t);\n\tconst evidence = mergeEvidenceRecords(\n\t\tjob.qaEvidence,\n\t\tjob.qa_evidence,\n\t\tapp.qaEvidence,\n\t\tapp.qa_evidence,\n\t\tinput.qaEvidence\n\t);\n\tevidence.workflowQaRows = [\n\t\t...asArray(workflowMemory.workflowQaRows),\n\t\t...asArray(workflowMemory.workflow_qa_rows),\n\t\t...asArray(job.workflowQaRows),\n\t\t...asArray(job.workflow_qa_rows),\n\t\t...asArray(app.workflowQaRows),\n\t\t...asArray(app.workflow_qa_rows),\n\t\t...asArray(evidence.workflowQaRows),\n\t\t...asArray(evidence.workflow_qa_rows)\n\t];\n\tevidence.businessAssertions = [\n\t\t...asArray(job.aiQaBusinessAssertions),\n\t\t...asArray(job.ai_qa_business_assertions),\n\t\t...asArray(job.businessAssertions),\n\t\t...asArray(job.business_assertions),\n\t\t...asArray(app.businessAssertions),\n\t\t...asArray(app.business_assertions),\n\t\t...asArray(evidence.businessAssertions),\n\t\t...asArray(evidence.business_assertions)\n\t];\n\tevidence.routeProbes = [\n\t\t...asArray(job.workflowProbes),\n\t\t...asArray(job.workflow_probes),\n\t\t...asArray(evidence.routeProbes),\n\t\t...asArray(evidence.route_probes)\n\t];\n\tevidence.artifactPaths = [\n\t\t...asArray(workflowMemory.businessProofArtifacts),\n\t\t...asArray(workflowMemory.business_proof_artifacts),\n\t\t...asArray(job.artifactPaths),\n\t\t...asArray(job.artifact_paths),\n\t\t...asArray(app.artifactPaths),\n\t\t...asArray(app.artifact_paths),\n\t\t...asArray(evidence.artifactPaths),\n\t\t...asArray(evidence.artifact_paths)\n\t];\n\tevidence.journeyContract = evidence.journeyContract\n\t\t|| evidence.journey_contract\n\t\t|| job.journeyContract\n\t\t|| job.journey_contract\n\t\t|| app.journeyContract\n\t\t|| app.journey_contract\n\t\t|| workflowMemory.journeyContract\n\t\t|| workflowMemory.journey_contract;\n\tevidence.journeyContractMarkdown = evidence.journeyContractMarkdown\n\t\t|| evidence.journey_contract_markdown\n\t\t|| job.journeyContractMarkdown\n\t\t|| job.journey_contract_markdown\n\t\t|| app.journeyContractMarkdown\n\t\t|| app.journey_contract_markdown;\n\tevidence.deployStatus = firstNonEmptyText([\n\t\tevidence.deployStatus,\n\t\tevidence.deploy_status,\n\t\tjob.deployStatus,\n\t\tjob.deploy_status,\n\t\tjob.testDeployStatus,\n\t\tjob.test_deploy_status,\n\t\tapp.deployStatus,\n\t\tapp.deploy_status\n\t], 160);\n\tevidence.publishStatus = firstNonEmptyText([\n\t\tevidence.publishStatus,\n\t\tevidence.publish_status,\n\t\tevidence.pullRequestStatus,\n\t\tevidence.pull_request_status,\n\t\tjob.publishStatus,\n\t\tjob.publish_status,\n\t\tjob.pullRequestStatus,\n\t\tjob.pull_request_status,\n\t\tapp.publishStatus,\n\t\tapp.publish_status\n\t], 160);\n\tevidence.sampleDataStatus = firstNonEmptyText([\n\t\tevidence.sampleDataStatus,\n\t\tevidence.sample_data_status,\n\t\tjob.sampleDataStatus,\n\t\tjob.sample_data_status,\n\t\tapp.sampleDataStatus,\n\t\tapp.sample_data_status\n\t], 160) || statusFromBoolean(evidence.sampleDataReady ?? evidence.hasSampleData ?? job.sampleDataReady ?? app.sampleDataReady);\n\treturn evidence;\n}\n\nfunction normalizeAICoderWorkflowProofReadiness(\n\tvalue: Record<string, any>,\n\tnow?: Date | string\n): ResolveIOAICoderWorkflowProofReadiness | undefined {\n\tif (!value || !Object.keys(value).length) {\n\t\treturn undefined;\n\t}\n\tconst ready = value.ready === true;\n\tconst status = cleanText(value.status, 120) || (ready ? 'ready' : 'blocked');\n\treturn {\n\t\tready,\n\t\tstatus: status as ResolveIOAICoderWorkflowProofReadiness['status'],\n\t\treason: cleanText(value.reason || value.summary || status, 1200),\n\t\tblockers: cleanStringList(value.blockers, 40, 500),\n\t\tjourneyContractValid: value.journeyContractValid === true || value.journey_contract_valid === true,\n\t\tprimaryWorkflowId: cleanText(value.primaryWorkflowId || value.primary_workflow_id, 200),\n\t\tpassedWorkflowRows: cleanStringList(value.passedWorkflowRows || value.passed_workflow_rows, 80, 300),\n\t\tmissingWorkflowRows: cleanStringList(value.missingWorkflowRows || value.missing_workflow_rows, 80, 300),\n\t\tfailedWorkflowRows: cleanStringList(value.failedWorkflowRows || value.failed_workflow_rows, 80, 300),\n\t\tpassedBusinessAssertions: cleanStringList(value.passedBusinessAssertions || value.passed_business_assertions, 80, 500),\n\t\trouteOnly: value.routeOnly === true || value.route_only === true,\n\t\tscorecardOnly: value.scorecardOnly === true || value.scorecard_only === true,\n\t\tsampleDataReady: value.sampleDataReady === true || value.sample_data_ready === true,\n\t\treleaseBlockers: cleanStringList(value.releaseBlockers || value.release_blockers, 40, 500),\n\t\tartifactPaths: cleanStringList(value.artifactPaths || value.artifact_paths, 80, 500),\n\t\tworkflowProofFingerprint: cleanText(value.workflowProofFingerprint || value.workflow_proof_fingerprint, 200),\n\t\tartifactFingerprint: cleanText(value.artifactFingerprint || value.artifact_fingerprint, 200),\n\t\tproofFreshness: cleanText(value.proofFreshness || value.proof_freshness, 80) as ResolveIOAICoderWorkflowProofReadiness['proofFreshness'],\n\t\tnextAction: cleanText(value.nextAction || value.next_action, 1000),\n\t\tevaluatedAt: isoNow(now || value.evaluatedAt || value.evaluated_at || value.recordedAt || value.recorded_at)\n\t};\n}\n\nfunction aicoderWorkflowProofReadinessGate(\n\treadiness: ResolveIOAICoderWorkflowProofReadiness,\n\tnow?: Date | string\n): AIRunGateResult {\n\tconst status: AIRunGateResult['status'] = readiness.ready\n\t\t? 'pass'\n\t\t: readiness.status === 'release_blocked' || readiness.status === 'journey_invalid' || readiness.status === 'sample_data_missing'\n\t\t\t? 'fail'\n\t\t\t: 'blocked';\n\treturn {\n\t\tkey: 'aicoder_workflow_proof_readiness',\n\t\tlabel: 'AICoder workflow proof readiness',\n\t\tstatus,\n\t\treason: readiness.reason || readiness.blockers.join('; ') || readiness.status,\n\t\tevidenceRefs: readiness.artifactPaths,\n\t\trecordedAt: isoNow(now || readiness.evaluatedAt),\n\t\tmetadata: {\n\t\t\tready: readiness.ready,\n\t\t\tstatus: readiness.status,\n\t\t\tprimaryWorkflowId: readiness.primaryWorkflowId,\n\t\t\tjourneyContractValid: readiness.journeyContractValid,\n\t\t\tblockers: readiness.blockers,\n\t\t\tpassedWorkflowRows: readiness.passedWorkflowRows,\n\t\t\tmissingWorkflowRows: readiness.missingWorkflowRows,\n\t\t\tfailedWorkflowRows: readiness.failedWorkflowRows,\n\t\t\tpassedBusinessAssertions: readiness.passedBusinessAssertions,\n\t\t\trouteOnly: readiness.routeOnly,\n\t\t\tscorecardOnly: readiness.scorecardOnly,\n\t\t\tsampleDataReady: readiness.sampleDataReady,\n\t\t\treleaseBlockers: readiness.releaseBlockers,\n\t\t\tworkflowProofFingerprint: readiness.workflowProofFingerprint,\n\t\t\tartifactFingerprint: readiness.artifactFingerprint,\n\t\t\tproofFreshness: readiness.proofFreshness,\n\t\t\tnextAction: readiness.nextAction\n\t\t}\n\t};\n}\n\nfunction adapterStatusPassed(value: any): boolean {\n\tconst normalized = cleanText(value, 120).toLowerCase();\n\treturn !!normalized && /(pass|passed|success|succeeded|ok|done|complete|completed|ready|saved|published|deployed)/i.test(normalized);\n}\n\nfunction applyAICoderWorkflowProofGate(\n\tqa: AIQaRun,\n\treadiness: ResolveIOAICoderWorkflowProofReadiness,\n\tnow?: Date | string\n): AIQaRun {\n\tif (readiness.ready || readiness.status === 'release_blocked') {\n\t\treturn qa;\n\t}\n\tconst gate = aicoderWorkflowProofReadinessGate(readiness, now);\n\treturn {\n\t\t...qa,\n\t\toutcome: qa.routeProbes.some((probe) => adapterStatusPassed(probe.status))\n\t\t\t? 'route_only_pass'\n\t\t\t: 'incomplete',\n\t\tgateResults: [\n\t\t\t...qa.gateResults.filter((existing) => !(existing.key === 'qa_business_assertion' && existing.status === 'pass')),\n\t\t\tgate\n\t\t]\n\t};\n}\n\nfunction assistantQualityObject(input: AssistantAIRunAdapterInput): Record<string, any> {\n\tconst conversation = input.conversation || {};\n\tconst latestAssistantMessage = [...asArray<Record<string, any>>(input.messages)]\n\t\t.reverse()\n\t\t.find((message) => /assistant/i.test(cleanText(message.role || message.authorRole || message.type, 80)));\n\treturn plainObject(\n\t\tinput.answerQuality\n\t\t|| conversation.answerQuality\n\t\t|| conversation.answer_quality\n\t\t|| conversation.assistantAnswerQuality\n\t\t|| conversation.assistant_answer_quality\n\t\t|| latestAssistantMessage?.answerQuality\n\t\t|| latestAssistantMessage?.answer_quality\n\t\t|| latestAssistantMessage?.metadata?.answerQuality\n\t\t|| latestAssistantMessage?.metadata?.answer_quality\n\t);\n}\n\nfunction assistantConfidenceLevel(value: any): AssistantAnswerQualityDecision['confidenceLevel'] {\n\tconst normalized = cleanText(value?.level || value?.confidenceLevel || value?.confidence_level || value, 80).toLowerCase();\n\tif (/^high$/.test(normalized)) {\n\t\treturn 'high';\n\t}\n\tif (/^medium$/.test(normalized)) {\n\t\treturn 'medium';\n\t}\n\tif (/^low$/.test(normalized)) {\n\t\treturn 'low';\n\t}\n\treturn 'unknown';\n}\n\nfunction assistantQueryStatus(value: any): AssistantAnswerQualityDecision['queryStatus'] {\n\tconst normalized = cleanText(value?.status || value?.queryStatus || value?.query_status || value, 120).toLowerCase().replace(/[\\s-]+/g, '_');\n\tif (/^(ok|success|answered|data_found|data)$/.test(normalized)) {\n\t\treturn 'ok';\n\t}\n\tif (/^(no_data|no_results|empty|not_found)$/.test(normalized)) {\n\t\treturn 'no_data';\n\t}\n\tif (/^(query_error|mongo_error|error|failed)$/.test(normalized)) {\n\t\treturn 'query_error';\n\t}\n\tif (/^(permission_error|permission_denied|forbidden|unauthorized)$/.test(normalized)) {\n\t\treturn 'permission_error';\n\t}\n\treturn 'unknown';\n}\n\nfunction asObjectList(value: any): Record<string, any>[] {\n\treturn asArray<Record<string, any>>(value).filter((entry) => entry && typeof entry === 'object' && !Array.isArray(entry));\n}\n\nfunction assistantEvidenceRefs(quality: Record<string, any>): string[] {\n\treturn cleanStringList([\n\t\t...asArray(quality.evidenceRefs),\n\t\t...asArray(quality.evidence_refs),\n\t\t...asArray(quality.citationRefs),\n\t\t...asArray(quality.citation_refs),\n\t\t...asArray(quality.artifactPaths),\n\t\t...asArray(quality.artifact_paths),\n\t\t...asObjectList(quality.citations).map((citation) => citation.path || citation.url || citation.id || citation.ref),\n\t\t...asObjectList(quality.evidence).map((entry) => entry.path || entry.url || entry.id || entry.ref)\n\t], 80, 500);\n}\n\nfunction assistantCitationRefs(quality: Record<string, any>): string[] {\n\treturn cleanStringList([\n\t\t...asArray(quality.citationRefs),\n\t\t...asArray(quality.citation_refs),\n\t\t...asObjectList(quality.citations).map((citation) => citation.path || citation.url || citation.id || citation.ref),\n\t\t...asObjectList(quality.evidence).map((entry) => entry.citation || entry.ref || entry.path || entry.url)\n\t], 80, 500);\n}\n\nfunction assistantQueryExecutions(quality: Record<string, any>): Record<string, any>[] {\n\tconst queryExecution = plainObject(quality.queryExecution || quality.query_execution);\n\tconst toolResult = plainObject(quality.toolResult || quality.tool_result);\n\treturn [\n\t\t...asObjectList(quality.queryExecutions),\n\t\t...asObjectList(quality.query_executions),\n\t\t...asObjectList(quality.dataQueries),\n\t\t...asObjectList(quality.data_queries),\n\t\t...asObjectList(quality.toolResults),\n\t\t...asObjectList(quality.tool_results),\n\t\t...asObjectList(quality.mongoReads),\n\t\t...asObjectList(quality.mongo_reads),\n\t\t...asObjectList(quality.mongoAggregations),\n\t\t...asObjectList(quality.mongo_aggregations),\n\t\t...(Object.keys(queryExecution).length ? [queryExecution] : []),\n\t\t...(Object.keys(toolResult).length ? [toolResult] : [])\n\t].filter((entry) => Object.keys(entry).length);\n}\n\nfunction assistantQueryEvidenceRefs(quality: Record<string, any>, executions = assistantQueryExecutions(quality)): string[] {\n\treturn cleanStringList([\n\t\t...asArray(quality.queryEvidenceRefs),\n\t\t...asArray(quality.query_evidence_refs),\n\t\t...asArray(quality.toolResultRefs),\n\t\t...asArray(quality.tool_result_refs),\n\t\t...asArray(quality.queryResultRefs),\n\t\t...asArray(quality.query_result_refs),\n\t\t...executions.map((execution) => {\n\t\t\treturn execution.id\n\t\t\t\t|| execution._id\n\t\t\t\t|| execution.ref\n\t\t\t\t|| execution.toolResultId\n\t\t\t\t|| execution.tool_result_id\n\t\t\t\t|| execution.toolCallId\n\t\t\t\t|| execution.tool_call_id\n\t\t\t\t|| execution.artifactPath\n\t\t\t\t|| execution.artifact_path\n\t\t\t\t|| execution.path\n\t\t\t\t|| execution.url;\n\t\t})\n\t], 80, 500);\n}\n\nfunction assistantNextActions(quality: Record<string, any>): string[] {\n\treturn cleanStringList([\n\t\t...asArray(quality.nextActions),\n\t\t...asArray(quality.next_actions),\n\t\t...asArray(quality.recommendedActions),\n\t\t...asArray(quality.recommended_actions)\n\t], 20, 500);\n}\n\nfunction normalizedIsoDay(value: any): string {\n\tif (!value) {\n\t\treturn '';\n\t}\n\tconst date = value instanceof Date ? value : new Date(value);\n\tif (!Number.isFinite(date.getTime())) {\n\t\treturn cleanText(value, 40).slice(0, 10);\n\t}\n\treturn date.toISOString().slice(0, 10);\n}\n\nfunction assistantDateWindowObject(quality: Record<string, any>): Record<string, any> {\n\tconst dateWindow = plainObject(quality.dateWindow || quality.date_window);\n\tconst nestedWindow = plainObject(quality.verification?.metrics?.window || quality.metrics?.window);\n\treturn Object.keys(dateWindow).length ? dateWindow : nestedWindow;\n}\n\nfunction collectMongoProjectionObjects(value: any, result: Record<string, any>[] = []): Record<string, any>[] {\n\tif (!value || typeof value !== 'object') {\n\t\treturn result;\n\t}\n\tif (Array.isArray(value)) {\n\t\tfor (const entry of value) {\n\t\t\tcollectMongoProjectionObjects(entry, result);\n\t\t}\n\t\treturn result;\n\t}\n\tif (value.projection && typeof value.projection === 'object' && !Array.isArray(value.projection)) {\n\t\tresult.push(value.projection);\n\t}\n\tif (value.options && typeof value.options === 'object' && !Array.isArray(value.options) && value.options.projection) {\n\t\tcollectMongoProjectionObjects({ projection: value.options.projection }, result);\n\t}\n\tif (value.query && typeof value.query === 'object') {\n\t\tcollectMongoProjectionObjects(value.query, result);\n\t}\n\tif (value.mongoQuery && typeof value.mongoQuery === 'object') {\n\t\tcollectMongoProjectionObjects(value.mongoQuery, result);\n\t}\n\tif (value.mongo_query && typeof value.mongo_query === 'object') {\n\t\tcollectMongoProjectionObjects(value.mongo_query, result);\n\t}\n\treturn result;\n}\n\nfunction projectionHasPositionalOperator(projection: Record<string, any>): boolean {\n\treturn Object.keys(projection || {}).some((key) => /\\.(?:\\$|\\$\\[)|\\.\\$$/.test(key));\n}\n\nfunction assistantQueryShapeLegal(quality: Record<string, any>): boolean {\n\tif (quality.legalQueryShape === true || quality.legal_query_shape === true) {\n\t\treturn true;\n\t}\n\tif (quality.legalQueryShape === false || quality.legal_query_shape === false || quality.illegalQueryShape === true || quality.illegal_query_shape === true) {\n\t\treturn false;\n\t}\n\tconst queryShape = plainObject(quality.queryShape || quality.query_shape);\n\tif (queryShape.legal === true || queryShape.status === 'pass') {\n\t\treturn true;\n\t}\n\tif (queryShape.legal === false || queryShape.status === 'fail') {\n\t\treturn false;\n\t}\n\tconst projections = collectMongoProjectionObjects(quality);\n\tif (projections.some(projectionHasPositionalOperator)) {\n\t\treturn false;\n\t}\n\treturn true;\n}\n\nfunction assistantCorrectnessFailed(checks: Array<Record<string, any>>): string[] {\n\treturn checks\n\t\t.filter((check) => {\n\t\t\tconst status = cleanText(check.status || (check.passed === true ? 'pass' : check.passed === false ? 'fail' : ''), 80).toLowerCase();\n\t\t\treturn /^(fail|failed|blocked|incorrect|wrong|error)$/.test(status);\n\t\t})\n\t\t.map((check) => cleanText(check.assertion || check.name || check.case || check.reason || 'assistant correctness check failed', 300))\n\t\t.slice(0, 20);\n}\n\nexport function evaluateAssistantAnswerQuality(input: AssistantAnswerQualityInput = {}): AssistantAnswerQualityDecision {\n\tconst quality = plainObject(input.answerQuality);\n\tconst now = isoNow(input.now);\n\tconst correctnessChecks = asArray<Record<string, any>>(input.correctnessChecks);\n\tconst failedChecks = assistantCorrectnessFailed(correctnessChecks);\n\tconst queryStatus = assistantQueryStatus(quality.queryStatus || quality.query_status || quality.queryResult || quality.query_result);\n\tconst confidenceLevel = assistantConfidenceLevel(quality.confidence || quality.confidenceLevel || quality.confidence_level);\n\tconst evidenceRefs = assistantEvidenceRefs(quality);\n\tconst citationRefs = assistantCitationRefs(quality);\n\tconst queryExecutions = assistantQueryExecutions(quality);\n\tconst queryEvidenceRefs = assistantQueryEvidenceRefs(quality, queryExecutions);\n\tconst nextActions = assistantNextActions(quality);\n\tconst requiresCurrentDate = quality.requiresCurrentDate === true || quality.requires_current_date === true;\n\tconst dateWindowRequired = quality.requiresDateWindow === true\n\t\t|| quality.requires_date_window === true\n\t\t|| quality.dateWindowRequired === true\n\t\t|| quality.date_window_required === true;\n\tconst requiresCitations = quality.requiresCitations !== false && quality.requires_citations !== false;\n\tconst requiresNextAction = quality.requiresNextAction !== false && quality.requires_next_action !== false;\n\tconst dateWindow = assistantDateWindowObject(quality);\n\tconst dateWindowStart = cleanText(dateWindow.startDate || dateWindow.start_date || dateWindow.start, 80);\n\tconst dateWindowEnd = cleanText(dateWindow.endDate || dateWindow.end_date || dateWindow.end, 80);\n\tconst dateWindowPresent = !!dateWindowStart && !!dateWindowEnd;\n\tconst dateBasis = cleanText(\n\t\tquality.currentDateUsed\n\t\t|| quality.current_date_used\n\t\t|| quality.dateBasis\n\t\t|| quality.date_basis\n\t\t|| quality.dateWindow?.basisDate\n\t\t|| quality.date_window?.basis_date,\n\t\t80\n\t);\n\tconst expectedCurrentDate = cleanText(quality.expectedCurrentDate || quality.expected_current_date, 80)\n\t\t|| normalizedIsoDay(input.now);\n\tconst noDataConfirmed = quality.noDataConfirmed === true\n\t\t|| quality.no_data_confirmed === true\n\t\t|| quality.confirmedNoData === true\n\t\t|| quality.confirmed_no_data === true;\n\tconst legalQueryShape = assistantQueryShapeLegal(quality);\n\tconst queryEvidenceRequired = quality.requiresQueryEvidence !== false\n\t\t&& quality.requires_query_evidence !== false\n\t\t&& (queryStatus === 'ok' || queryStatus === 'no_data');\n\tconst queryEvidencePresent = queryExecutions.length > 0 || queryEvidenceRefs.length > 0;\n\tconst blockers: string[] = [];\n\tlet status: AssistantAnswerQualityStatus = 'ready';\n\tlet reason = 'Assistant answer has structured data evidence, legal query shape, citations, confidence, and next action.';\n\tif (!Object.keys(quality).length) {\n\t\tstatus = 'missing_data_source';\n\t\tblockers.push('Assistant answerQuality evidence is missing.');\n\t\treason = 'Assistant answer cannot be accepted without structured answerQuality evidence.';\n\t}\n\telse if (failedChecks.length) {\n\t\tstatus = 'incorrect';\n\t\tblockers.push(...failedChecks);\n\t\treason = 'Assistant correctness checks failed.';\n\t}\n\telse if (queryStatus === 'permission_error') {\n\t\tstatus = 'permission_error';\n\t\tblockers.push('Assistant data query was blocked by permission or authorization.');\n\t\treason = 'Assistant must report permission-error state and avoid claiming no data or success.';\n\t}\n\telse if (queryStatus === 'query_error') {\n\t\tstatus = 'query_error';\n\t\tblockers.push('Assistant data query failed.');\n\t\treason = 'Assistant must report query-error state and avoid claiming no data or success.';\n\t}\n\telse if (!legalQueryShape) {\n\t\tstatus = 'illegal_query_shape';\n\t\tblockers.push('Assistant query shape is illegal or uses an unsafe Mongo projection shape.');\n\t\treason = 'Assistant must use legal Mongo query/projection shapes before answering.';\n\t}\n\telse if (requiresCurrentDate && (!dateBasis || normalizedIsoDay(dateBasis) !== normalizedIsoDay(expectedCurrentDate))) {\n\t\tstatus = 'date_incorrect';\n\t\tblockers.push(`Expected current date ${normalizedIsoDay(expectedCurrentDate) || expectedCurrentDate}, got ${dateBasis || 'missing date basis'}.`);\n\t\treason = 'Assistant answer did not prove it used the actual current date.';\n\t}\n\telse if (dateWindowRequired && !dateWindowPresent) {\n\t\tstatus = 'missing_date_window';\n\t\tblockers.push('Assistant dated answer did not record concrete date-window start and end evidence.');\n\t\treason = 'Assistant dated answers must record the exact query date window used.';\n\t}\n\telse if (queryStatus === 'unknown') {\n\t\tstatus = 'missing_data_source';\n\t\tblockers.push('Assistant answer did not record queryStatus ok/no_data/query_error/permission_error.');\n\t\treason = 'Assistant answer must classify data access result before acceptance.';\n\t}\n\telse if (queryStatus === 'no_data' && !noDataConfirmed) {\n\t\tstatus = 'no_data_unverified';\n\t\tblockers.push('No-data answer was not confirmed by a probe or query evidence.');\n\t\treason = 'Assistant no-data answers require explicit noDataConfirmed evidence.';\n\t}\n\telse if (queryEvidenceRequired && !queryEvidencePresent) {\n\t\tstatus = 'missing_query_proof';\n\t\tblockers.push('Assistant data answer did not record a structured query execution, tool result, or query evidence reference.');\n\t\treason = 'Assistant answers from system data require structured query/tool execution proof before acceptance.';\n\t}\n\telse if (requiresCitations && !citationRefs.length && !evidenceRefs.length) {\n\t\tstatus = 'missing_citations';\n\t\tblockers.push('Assistant answer has no cited evidence or artifact reference.');\n\t\treason = 'Assistant answer must cite system data evidence.';\n\t}\n\telse if (confidenceLevel === 'low' || confidenceLevel === 'unknown') {\n\t\tstatus = 'low_confidence';\n\t\tblockers.push('Assistant answer confidence is low or unknown.');\n\t\treason = 'Assistant answer requires recorded medium/high confidence.';\n\t}\n\telse if (requiresNextAction && !nextActions.length) {\n\t\tstatus = 'missing_next_action';\n\t\tblockers.push('Assistant answer did not record next actions.');\n\t\treason = 'Assistant answer must provide a next action or explicit no-action state.';\n\t}\n\treturn {\n\t\tready: status === 'ready',\n\t\tstatus,\n\t\treason,\n\t\tblockers,\n\t\tqueryStatus,\n\t\tconfidenceLevel,\n\t\tdateBasis: dateBasis || undefined,\n\t\texpectedCurrentDate: expectedCurrentDate || undefined,\n\t\tdateWindowRequired,\n\t\tdateWindowPresent,\n\t\tdateWindow: dateWindowPresent ? {\n\t\t\tstartDate: dateWindowStart,\n\t\t\tendDate: dateWindowEnd,\n\t\t\tmode: cleanText(dateWindow.mode || dateWindow.type, 80) || undefined,\n\t\t\tmonths: typeof dateWindow.months === 'number' ? dateWindow.months : undefined\n\t\t} : undefined,\n\t\tnoDataConfirmed,\n\t\tlegalQueryShape,\n\t\tcitationRefs,\n\t\tqueryEvidenceRequired,\n\t\tqueryEvidencePresent,\n\t\tqueryEvidenceRefs,\n\t\tqueryExecutionCount: queryExecutions.length,\n\t\tnextActions,\n\t\tevidenceRefs,\n\t\tfailedChecks,\n\t\trecordedAt: now\n\t};\n}\n\nfunction assistantAnswerQualityGate(\n\tdecision: AssistantAnswerQualityDecision,\n\tnow?: Date | string\n): AIRunGateResult {\n\tconst status: AIRunGateResult['status'] = decision.ready\n\t\t? 'pass'\n\t\t: /incorrect|date_incorrect|missing_date_window|illegal_query_shape/.test(decision.status)\n\t\t\t? 'fail'\n\t\t\t: 'blocked';\n\treturn {\n\t\tkey: 'assistant_answer_quality',\n\t\tlabel: 'Assistant answer quality',\n\t\tstatus,\n\t\treason: decision.reason,\n\t\tevidenceRefs: decision.evidenceRefs.length ? decision.evidenceRefs : decision.citationRefs,\n\t\trecordedAt: isoNow(now || decision.recordedAt),\n\t\tmetadata: {\n\t\t\tready: decision.ready,\n\t\t\tstatus: decision.status,\n\t\t\tqueryStatus: decision.queryStatus,\n\t\t\tconfidenceLevel: decision.confidenceLevel,\n\t\t\tdateBasis: decision.dateBasis,\n\t\t\texpectedCurrentDate: decision.expectedCurrentDate,\n\t\t\tdateWindowRequired: decision.dateWindowRequired,\n\t\t\tdateWindowPresent: decision.dateWindowPresent,\n\t\t\tdateWindow: decision.dateWindow,\n\t\t\tnoDataConfirmed: decision.noDataConfirmed,\n\t\t\tlegalQueryShape: decision.legalQueryShape,\n\t\t\tcitationRefs: decision.citationRefs,\n\t\t\tqueryEvidenceRequired: decision.queryEvidenceRequired,\n\t\t\tqueryEvidencePresent: decision.queryEvidencePresent,\n\t\t\tqueryEvidenceRefs: decision.queryEvidenceRefs,\n\t\t\tqueryExecutionCount: decision.queryExecutionCount,\n\t\t\tnextActions: decision.nextActions,\n\t\t\tblockers: decision.blockers,\n\t\t\tfailedChecks: decision.failedChecks\n\t\t}\n\t};\n}\n\nfunction applyAssistantAnswerQualityGate(\n\tqa: AIQaRun,\n\tdecision: AssistantAnswerQualityDecision,\n\tnow?: Date | string\n): AIQaRun {\n\tconst gate = assistantAnswerQualityGate(decision, now);\n\tif (decision.ready) {\n\t\treturn {\n\t\t\t...qa,\n\t\t\tgateResults: [...qa.gateResults, gate]\n\t\t};\n\t}\n\treturn {\n\t\t...qa,\n\t\toutcome: /incorrect|date_incorrect|missing_date_window|illegal_query_shape/.test(decision.status)\n\t\t\t? 'business_assertion_failed'\n\t\t\t: 'incomplete',\n\t\tgateResults: [\n\t\t\t...qa.gateResults.filter((existing) => !(existing.key === 'qa_business_assertion' && existing.status === 'pass')),\n\t\t\tgate\n\t\t]\n\t};\n}\n\nexport function buildSupportAIRunFromEvidence(input: SupportAIRunAdapterInput): AIRun {\n\tconst ticket = input.ticket || {};\n\tconst job = input.job || {};\n\tconst evidence = buildSupportQaEvidence(input);\n\tconst events: AIRunEvent[] = [];\n\tconst gates: AIRunGateResult[] = [];\n\tconst sourceIds: Record<string, string> = {};\n\taddSourceId(sourceIds, 'ticketId', ticket._id || ticket.id || job.ticketId || job.supportTicketId);\n\taddSourceId(sourceIds, 'ticketNumber', ticket.ticketNumber || ticket.number || job.ticketNumber);\n\taddSourceId(sourceIds, 'jobId', job._id || job.id || job.jobId);\n\taddSourceId(sourceIds, 'buildPlanId', job.buildPlanId || ticket.buildPlanId);\n\n\tfor (const event of asArray<Record<string, any>>(input.taskEvents)) {\n\t\tpushEvent(events, {\n\t\t\ttype: event.type === 'human_intervention' ? 'human_intervention' : 'log',\n\t\t\tcategory: cleanText(event.category || event.phase || event.type, 160),\n\t\t\tmessage: cleanText(event.message || event.summary || event.text || event.title, 1800),\n\t\t\trecordedAt: eventDate(event),\n\t\t\tmetadata: {\n\t\t\t\tstatus: event.status,\n\t\t\t\tphase: event.phase,\n\t\t\t\ttaskId: event.taskId || event._id || event.id\n\t\t\t}\n\t\t});\n\t}\n\tfor (const aiJob of asArray<Record<string, any>>(input.aiJobs)) {\n\t\tpushEvent(events, {\n\t\t\ttype: aiJob.model ? 'model_call' : 'log',\n\t\t\tcategory: cleanText(aiJob.category || aiJob.phase || aiJob.runner, 160),\n\t\t\tmessage: cleanText(aiJob.summary || aiJob.promptSummary || aiJob.status || aiJob.phase, 1800),\n\t\t\trecordedAt: eventDate(aiJob),\n\t\t\tmetadata: {\n\t\t\t\tid: aiJob._id || aiJob.id,\n\t\t\t\tmodel: aiJob.model,\n\t\t\t\tstatus: aiJob.status,\n\t\t\t\tphase: aiJob.phase\n\t\t\t}\n\t\t});\n\t}\n\tcollectCommitEvents(asArray<Record<string, any>>(input.commits), events);\n\tcollectHotfixEvidenceEvents([job, ticket, evidence, input.qaEvidence], events, gates, input.now);\n\tconst noBlindLoopGate = supportManagerNoBlindLoopGate(job, evidence, input.now);\n\tif (noBlindLoopGate) {\n\t\tgates.push(noBlindLoopGate);\n\t\tpushEvent(events, {\n\t\t\ttype: 'log',\n\t\t\tcategory: 'manager_no_blind_loop_policy',\n\t\t\tmessage: noBlindLoopGate.reason,\n\t\t\tartifactPaths: noBlindLoopGate.evidenceRefs,\n\t\t\trecordedAt: noBlindLoopGate.recordedAt,\n\t\t\tmetadata: noBlindLoopGate.metadata\n\t\t});\n\t}\n\tconst businessProofReadiness = plainObject(evidence.businessProofReadiness || evidence.business_proof_readiness);\n\tconst businessProofReadinessGate = supportBusinessProofReadinessGate(businessProofReadiness, input.now);\n\tif (businessProofReadinessGate) {\n\t\tgates.push(businessProofReadinessGate);\n\t\tpushEvent(events, {\n\t\t\ttype: 'qa_business_assertion',\n\t\t\tcategory: 'support_business_proof_readiness',\n\t\t\tmessage: businessProofReadinessGate.reason,\n\t\t\tartifactPaths: businessProofReadinessGate.evidenceRefs,\n\t\t\trecordedAt: businessProofReadinessGate.recordedAt,\n\t\t\tmetadata: businessProofReadinessGate.metadata\n\t\t});\n\t}\n\tconst customerReplyPolicy = plainObject(evidence.customerReplyPolicy || evidence.customer_reply_policy);\n\tconst customerReplyPolicyGate = supportCustomerReplyPolicyGate(customerReplyPolicy, input.now);\n\tif (customerReplyPolicyGate) {\n\t\tgates.push(customerReplyPolicyGate);\n\t\tpushEvent(events, {\n\t\t\ttype: 'human_intervention',\n\t\t\tcategory: 'support_customer_reply_policy',\n\t\t\tmessage: customerReplyPolicyGate.reason,\n\t\t\tartifactPaths: customerReplyPolicyGate.evidenceRefs,\n\t\t\trecordedAt: customerReplyPolicyGate.recordedAt,\n\t\t\tmetadata: customerReplyPolicyGate.metadata\n\t\t});\n\t}\n\tconst ticketAutomation = plainObject(ticket.automation);\n\tconst ticketManagerState = plainObject(ticketAutomation.manager || ticket.manager);\n\tconst rootCauseEntryContract = evidenceObject(\n\t\tjob.supportRootCauseEntryContract,\n\t\tjob.support_root_cause_entry_contract,\n\t\tjob.rootCauseEntryContract,\n\t\tticket.supportRootCauseEntryContract,\n\t\tticket.rootCauseEntryContract,\n\t\tticketManagerState.root_cause_entry_contract,\n\t\tticketManagerState.rootCauseEntryContract,\n\t\tevidence.rootCauseEntryContract,\n\t\tevidence.root_cause_entry_contract\n\t);\n\tconst rootCauseEntryContractGate = supportRootCauseEntryContractGate(rootCauseEntryContract, input.now);\n\tif (rootCauseEntryContractGate) {\n\t\tgates.push(rootCauseEntryContractGate);\n\t\tpushEvent(events, {\n\t\t\ttype: 'log',\n\t\t\tcategory: 'support_root_cause_entry_contract',\n\t\t\tmessage: rootCauseEntryContractGate.reason,\n\t\t\tartifactPaths: rootCauseEntryContractGate.evidenceRefs,\n\t\t\trecordedAt: rootCauseEntryContractGate.recordedAt,\n\t\t\tmetadata: rootCauseEntryContractGate.metadata\n\t\t});\n\t}\n\tconst cost = collectUsageEvents(asArray<Record<string, any>>(input.usageLedger), events);\n\n\tconst diagnosisGate = evidenceObject(\n\t\tjob.supportV5DiagnosisGate,\n\t\tjob.support_v5_diagnosis_gate,\n\t\tjob.diagnosisGate,\n\t\tticket.supportV5DiagnosisGate,\n\t\tticket.diagnosisGate,\n\t\tevidence.diagnosisGate,\n\t\tevidence.supportV5DiagnosisGate\n\t);\n\tconst qa = applySupportDiagnosisProofGate(buildQaFromEvidence(evidence, input.now), diagnosisGate, input.now);\n\tconst diagnosisOwnerFiles = asArray<string>(diagnosisGate.owner_files || diagnosisGate.ownerFiles);\n\tconst diagnosisIssueClass = cleanText(diagnosisGate.issue_class || diagnosisGate.issueClass, 120);\n\tif (Object.keys(diagnosisGate).length) {\n\t\tpushEvent(events, {\n\t\t\ttype: 'log',\n\t\t\tcategory: 'diagnosis_gate',\n\t\t\tmessage: cleanText(diagnosisGate.accepted_hypothesis?.statement || diagnosisGate.acceptedHypothesis?.statement || diagnosisGate.summary || 'Support diagnosis gate recorded.', 1800),\n\t\t\tmetadata: {\n\t\t\t\tstatus: diagnosisGate.status,\n\t\t\t\tissueClass: diagnosisIssueClass,\n\t\t\t\townerFiles: diagnosisOwnerFiles\n\t\t\t}\n\t\t});\n\t}\n\treturn buildAIRun({\n\t\tsource: 'support_ticket',\n\t\tsourceIds,\n\t\ttitle: firstText(ticket, ['title', 'subject', 'summary']) || firstText(job, ['title', 'summary']),\n\t\tstatus: firstText(job, ['status', 'state']) || firstText(ticket, ['status', 'state']),\n\t\tphase: firstText(job, ['phase', 'runnerPhase']),\n\t\tstartedAt: dateValue(job, ['startedAt', 'createdAt']) || dateValue(ticket, ['createdAt']),\n\t\tcompletedAt: dateValue(job, ['completedAt', 'finishedAt', 'updatedAt']),\n\t\tevents,\n\t\tgates,\n\t\tqa,\n\t\tcost,\n\t\tscorecardPassed: evidence.scorecardPassed === true || evidence.scorecardStatus === 'pass',\n\t\tdeployStatus: evidence.deployStatus,\n\t\tpublishStatus: evidence.publishStatus,\n\t\tsampleDataStatus: evidence.sampleDataStatus,\n\t\tmanualHandoff: evidence.manualHandoff === true || job.manualHandoff === true,\n\t\tstopped: evidence.stopped === true || job.stopped === true,\n\t\trejected: evidence.rejected === true,\n\t\texplicitAccepted: evidence.explicitAccepted === true || ticket.accepted === true,\n\t\tterminal: /complete|closed|resolved|done|failed|rejected/i.test(`${job.status || ''} ${ticket.status || ''}`),\n\t\tnow: input.now,\n\t\tmetadata: {\n\t\t\tversionCount: asArray(input.versions).length,\n\t\t\tbuildPlanCount: asArray(input.buildPlans).length,\n\t\t\tmanagerNoBlindLoopPolicy: noBlindLoopGate ? {\n\t\t\t\taction: cleanText(noBlindLoopGate.metadata?.action, 120),\n\t\t\t\tstatus: noBlindLoopGate.status,\n\t\t\t\tfailureClass: cleanText(noBlindLoopGate.metadata?.failureClass, 120),\n\t\t\t\tsameFailureCount: Number(noBlindLoopGate.metadata?.sameFailureCount || 0),\n\t\t\t\tpingPongCount: Number(noBlindLoopGate.metadata?.pingPongCount || 0),\n\t\t\t\tnewEvidence: noBlindLoopGate.metadata?.newEvidence === true,\n\t\t\t\tmaterialEvidence: noBlindLoopGate.metadata?.materialEvidence === true,\n\t\t\t\tevidenceStrength: cleanText(noBlindLoopGate.metadata?.evidenceStrength, 120),\n\t\t\t\tloopBudgetShouldReset: noBlindLoopGate.metadata?.loopBudgetShouldReset === true,\n\t\t\t\tdispatchAction: cleanText(noBlindLoopGate.metadata?.dispatchAction, 160),\n\t\t\t\trequiresNewEvidence: noBlindLoopGate.metadata?.requiresNewEvidence === true\n\t\t\t} : undefined,\n\t\t\trootCauseEntryContract: Object.keys(rootCauseEntryContract).length ? {\n\t\t\t\tcontractId: cleanText(rootCauseEntryContract.contract_id || rootCauseEntryContract.contractId, 160),\n\t\t\t\tversion: cleanText(rootCauseEntryContract.version, 120),\n\t\t\t\tstatus: cleanText(rootCauseEntryContract.status, 120),\n\t\t\t\tissueClassProbeCount: asArray(rootCauseEntryContract.issue_class_probes || rootCauseEntryContract.issueClassProbes).length,\n\t\t\t\townerFileMax: Number(rootCauseEntryContract.owner_file_policy?.max_files || rootCauseEntryContract.ownerFilePolicy?.maxFiles || 0) || 0,\n\t\t\t\trequiresBusinessAssertion: rootCauseEntryContract.business_proof_policy?.requires_aiqa_business_assertion === true\n\t\t\t\t\t|| rootCauseEntryContract.businessProofPolicy?.requiresAiqaBusinessAssertion === true\n\t\t\t} : undefined,\n\t\t\tdiagnosis: Object.keys(diagnosisGate).length ? {\n\t\t\t\tstatus: cleanText(diagnosisGate.status, 80),\n\t\t\t\tissueClass: diagnosisIssueClass,\n\t\t\t\townerFiles: diagnosisOwnerFiles,\n\t\t\t\tacceptedHypothesis: cleanText(diagnosisGate.accepted_hypothesis?.statement || diagnosisGate.acceptedHypothesis?.statement, 1000),\n\t\t\t\tproofPlan: diagnosisGate.proof_plan || diagnosisGate.proofPlan\n\t\t\t} : undefined,\n\t\t\tbusinessProofReadiness: Object.keys(businessProofReadiness).length ? {\n\t\t\t\tready: businessProofReadiness.ready === true,\n\t\t\t\tstatus: cleanText(businessProofReadiness.status, 120),\n\t\t\t\treason: cleanText(businessProofReadiness.reason, 1000),\n\t\t\t\tblockers: cleanStringList(businessProofReadiness.blockers, 20, 500)\n\t\t\t} : undefined,\n\t\t\tcustomerReplyPolicy: Object.keys(customerReplyPolicy).length ? {\n\t\t\t\taction: cleanText(customerReplyPolicy.action, 120),\n\t\t\t\tsafety: cleanText(customerReplyPolicy.safety, 120),\n\t\t\t\tcanDraftCustomerReply: customerReplyPolicy.canDraftCustomerReply === true || customerReplyPolicy.can_draft_customer_reply === true,\n\t\t\t\tcanSendCustomerReply: customerReplyPolicy.canSendCustomerReply === true || customerReplyPolicy.can_send_customer_reply === true,\n\t\t\t\treason: cleanText(customerReplyPolicy.reason, 1000),\n\t\t\t\treviewType: cleanText(\n\t\t\t\t\tcustomerReplyPolicy.humanReviewPacket?.reviewType\n\t\t\t\t\t|| customerReplyPolicy.human_review_packet?.review_type\n\t\t\t\t\t|| customerReplyPolicy.human_review_packet?.reviewType,\n\t\t\t\t\t160\n\t\t\t\t),\n\t\t\t\tprimaryAction: cleanText(\n\t\t\t\t\tcustomerReplyPolicy.humanReviewPacket?.primaryAction\n\t\t\t\t\t|| customerReplyPolicy.human_review_packet?.primary_action\n\t\t\t\t\t|| customerReplyPolicy.human_review_packet?.primaryAction,\n\t\t\t\t\t160\n\t\t\t\t)\n\t\t\t} : undefined\n\t\t}\n\t});\n}\n\nexport function buildAICoderAIRunFromEvidence(input: AICoderAIRunAdapterInput): AIRun {\n\tconst app = input.app || {};\n\tconst job = input.job || {};\n\tconst evidence = buildAICoderQaEvidence(input);\n\tconst events: AIRunEvent[] = [];\n\tconst gates: AIRunGateResult[] = [];\n\tconst sourceIds: Record<string, string> = {};\n\taddSourceId(sourceIds, 'appId', app._id || app.id || job.appId || job.aicoderAppId);\n\taddSourceId(sourceIds, 'jobId', job._id || job.id || job.jobId);\n\taddSourceId(sourceIds, 'domain', app.domain || app.customDomain || job.domain);\n\n\tfor (const log of asArray<Record<string, any>>(input.logs)) {\n\t\tpushEvent(events, {\n\t\t\ttype: log.type === 'scorecard' ? 'scorecard' : 'log',\n\t\t\tcategory: cleanText(log.category || log.phase || log.level, 160),\n\t\t\tmessage: cleanText(log.message || log.summary || log.text || log.title, 1800),\n\t\t\tartifactPaths: asArray<string>(log.artifactPaths || log.artifacts),\n\t\t\trecordedAt: eventDate(log),\n\t\t\tmetadata: {\n\t\t\t\tstatus: log.status,\n\t\t\t\tlevel: log.level,\n\t\t\t\tscore: log.score\n\t\t\t}\n\t\t});\n\t}\n\tcollectCommitEvents(asArray<Record<string, any>>(input.commits), events);\n\tcollectHotfixEvidenceEvents([job, app, evidence, input.qaEvidence], events, gates, input.now);\n\tconst cost = collectUsageEvents(asArray<Record<string, any>>(input.usageLedger), events);\n\tconst scorecardPassed = evidence.scorecardPassed === true\n\t\t|| evidence.scorecardStatus === 'pass'\n\t\t|| (Number(evidence.score ?? evidence.qualityScore ?? 0) >= Number(evidence.scoreThreshold ?? job.scoreThreshold ?? 90));\n\tconst explicitWorkflowReadiness = normalizeAICoderWorkflowProofReadiness(plainObject(\n\t\tevidence.workflowProofReadiness\n\t\t|| evidence.workflow_proof_readiness\n\t\t|| evidence.aicoderWorkflowProofReadiness\n\t\t|| evidence.aicoder_workflow_proof_readiness\n\t\t|| job.workflowProofReadiness\n\t\t|| job.workflow_proof_readiness\n\t\t|| job.aicoderWorkflowProofReadiness\n\t\t|| job.aicoder_workflow_proof_readiness\n\t), input.now);\n\tconst workflowReadiness = explicitWorkflowReadiness || evaluateResolveIOAICoderWorkflowProofReadiness({\n\t\tjourneyContract: evidence.journeyContract,\n\t\tjourneyContractMarkdown: evidence.journeyContractMarkdown,\n\t\tworkflowQaRows: asArray(evidence.workflowQaRows || evidence.workflow_qa_rows),\n\t\tbusinessAssertions: [\n\t\t\t...asArray(evidence.businessAssertions),\n\t\t\t...asArray(evidence.business_assertions),\n\t\t\t...asArray(evidence.workflowAssertions),\n\t\t\t...asArray(evidence.workflow_assertions)\n\t\t],\n\t\trouteProbes: [\n\t\t\t...asArray(evidence.routeProbes),\n\t\t\t...asArray(evidence.route_probes),\n\t\t\t...asArray(evidence.workflowProbes),\n\t\t\t...asArray(evidence.workflow_probes)\n\t\t],\n\t\tartifactPaths: [\n\t\t\t...asArray(evidence.artifactPaths),\n\t\t\t...asArray(evidence.artifact_paths)\n\t\t],\n\t\tscorecardPassed,\n\t\tdeployStatus: evidence.deployStatus,\n\t\tpublishStatus: evidence.publishStatus,\n\t\tsampleDataStatus: evidence.sampleDataStatus,\n\t\tpreviousWorkflowProofFingerprint: firstNonEmptyText([\n\t\t\tevidence.previousWorkflowProofFingerprint,\n\t\t\tevidence.previous_workflow_proof_fingerprint,\n\t\t\tjob.previousWorkflowProofFingerprint,\n\t\t\tjob.previous_workflow_proof_fingerprint,\n\t\t\tapp.previousWorkflowProofFingerprint,\n\t\t\tapp.previous_workflow_proof_fingerprint\n\t\t], 200),\n\t\tpreviousArtifactFingerprint: firstNonEmptyText([\n\t\t\tevidence.previousArtifactFingerprint,\n\t\t\tevidence.previous_artifact_fingerprint,\n\t\t\tjob.previousArtifactFingerprint,\n\t\t\tjob.previous_artifact_fingerprint,\n\t\t\tapp.previousArtifactFingerprint,\n\t\t\tapp.previous_artifact_fingerprint\n\t\t], 200),\n\t\tpreviousWorkflowProofFingerprints: [\n\t\t\t...asArray(evidence.previousWorkflowProofFingerprints),\n\t\t\t...asArray(evidence.previous_workflow_proof_fingerprints),\n\t\t\t...asArray(job.previousWorkflowProofFingerprints),\n\t\t\t...asArray(job.previous_workflow_proof_fingerprints),\n\t\t\t...asArray(app.previousWorkflowProofFingerprints),\n\t\t\t...asArray(app.previous_workflow_proof_fingerprints)\n\t\t],\n\t\tpreviousArtifactFingerprints: [\n\t\t\t...asArray(evidence.previousArtifactFingerprints),\n\t\t\t...asArray(evidence.previous_artifact_fingerprints),\n\t\t\t...asArray(job.previousArtifactFingerprints),\n\t\t\t...asArray(job.previous_artifact_fingerprints),\n\t\t\t...asArray(app.previousArtifactFingerprints),\n\t\t\t...asArray(app.previous_artifact_fingerprints)\n\t\t],\n\t\tnow: input.now\n\t});\n\tconst workflowReadinessGate = aicoderWorkflowProofReadinessGate(workflowReadiness, input.now);\n\tgates.push(workflowReadinessGate);\n\tpushEvent(events, {\n\t\ttype: 'qa_business_assertion',\n\t\tcategory: 'aicoder_workflow_proof_readiness',\n\t\tmessage: workflowReadinessGate.reason,\n\t\tartifactPaths: workflowReadinessGate.evidenceRefs,\n\t\trecordedAt: workflowReadinessGate.recordedAt,\n\t\tmetadata: workflowReadinessGate.metadata\n\t});\n\tconst qa = applyAICoderWorkflowProofGate(buildQaFromEvidence(evidence, input.now), workflowReadiness, input.now);\n\n\treturn buildAIRun({\n\t\tsource: 'aicoder_app',\n\t\tsourceIds,\n\t\ttitle: firstText(app, ['name', 'title']) || firstText(job, ['appName', 'title', 'goal']),\n\t\tstatus: firstText(job, ['status', 'state']) || firstText(app, ['status', 'state']),\n\t\tphase: firstText(job, ['phase', 'runnerPhase']),\n\t\tstartedAt: dateValue(job, ['startedAt', 'createdAt']) || dateValue(app, ['createdAt']),\n\t\tcompletedAt: dateValue(job, ['completedAt', 'finishedAt', 'updatedAt']),\n\t\tevents,\n\t\tgates,\n\t\tqa,\n\t\tcost,\n\t\tscorecardPassed,\n\t\tdeployStatus: evidence.deployStatus || statusFromBoolean(evidence.deployReady),\n\t\tpublishStatus: evidence.publishStatus || evidence.pullRequestStatus,\n\t\tsampleDataStatus: evidence.sampleDataStatus || statusFromBoolean(evidence.sampleDataReady ?? evidence.hasSampleData),\n\t\tmanualHandoff: evidence.manualHandoff === true || job.manualHandoff === true,\n\t\tstopped: evidence.stopped === true || job.stopped === true,\n\t\trejected: evidence.rejected === true,\n\t\texplicitAccepted: evidence.explicitAccepted === true || app.accepted === true,\n\t\tterminal: /complete|closed|resolved|done|failed|rejected/i.test(`${job.status || ''} ${job.phase || ''}`),\n\t\tnow: input.now,\n\t\tmetadata: {\n\t\t\tdomain: app.domain || app.customDomain || job.domain,\n\t\t\twowScore: evidence.wowScore ?? job.wowScore,\n\t\t\tscore: evidence.score ?? evidence.qualityScore,\n\t\t\tworkflowProofReadiness: {\n\t\t\t\tready: workflowReadiness.ready,\n\t\t\t\tstatus: workflowReadiness.status,\n\t\t\t\treason: workflowReadiness.reason,\n\t\t\t\tblockers: workflowReadiness.blockers,\n\t\t\t\tprimaryWorkflowId: workflowReadiness.primaryWorkflowId,\n\t\t\t\tpassedWorkflowRows: workflowReadiness.passedWorkflowRows,\n\t\t\t\tmissingWorkflowRows: workflowReadiness.missingWorkflowRows,\n\t\t\t\tfailedWorkflowRows: workflowReadiness.failedWorkflowRows,\n\t\t\t\tsampleDataReady: workflowReadiness.sampleDataReady,\n\t\t\t\treleaseBlockers: workflowReadiness.releaseBlockers,\n\t\t\t\tworkflowProofFingerprint: workflowReadiness.workflowProofFingerprint,\n\t\t\t\tartifactFingerprint: workflowReadiness.artifactFingerprint,\n\t\t\t\tproofFreshness: workflowReadiness.proofFreshness\n\t\t\t}\n\t\t}\n\t});\n}\n\nexport function buildAssistantAIRunFromEvidence(input: AssistantAIRunAdapterInput): AIRun {\n\tconst conversation = input.conversation || {};\n\tconst events: AIRunEvent[] = [];\n\tconst sourceIds: Record<string, string> = {};\n\taddSourceId(sourceIds, 'runId', input.runId);\n\taddSourceId(sourceIds, 'requestId', input.requestId);\n\taddSourceId(sourceIds, 'messageId', input.messageId);\n\taddSourceId(sourceIds, 'conversationId', conversation._id || conversation.id || conversation.conversationId);\n\taddSourceId(sourceIds, 'userId', conversation.userId || conversation.ownerId);\n\n\tfor (const message of asArray<Record<string, any>>(input.messages)) {\n\t\tpushEvent(events, {\n\t\t\ttype: 'assistant_message',\n\t\t\tcategory: cleanText(message.role || message.authorRole || message.type, 160),\n\t\t\tmessage: cleanText(message.content || message.text || message.message || message.summary, 1800),\n\t\t\trecordedAt: eventDate(message),\n\t\t\tmetadata: {\n\t\t\t\tid: message._id || message.id,\n\t\t\t\trole: message.role,\n\t\t\t\tmodel: message.model || message?.usage?.model\n\t\t\t}\n\t\t});\n\t}\n\tfor (const report of asArray<Record<string, any>>(input.issueReports)) {\n\t\tpushEvent(events, {\n\t\t\ttype: 'human_intervention',\n\t\t\tcategory: cleanText(report.category || report.status || 'issue_report', 160),\n\t\t\tmessage: cleanText(report.summary || report.description || report.message || report.title, 1800),\n\t\t\trecordedAt: eventDate(report),\n\t\t\tmetadata: {\n\t\t\t\tid: report._id || report.id,\n\t\t\t\tstatus: report.status,\n\t\t\t\tseverity: report.severity\n\t\t\t}\n\t\t});\n\t}\n\tconst cost = collectUsageEvents(asArray<Record<string, any>>(input.usageLedger), events);\n\tconst answerQuality = assistantQualityObject(input);\n\tfor (const execution of assistantQueryExecutions(answerQuality).slice(0, 40)) {\n\t\tconst status = cleanText(execution.status || execution.queryStatus || execution.query_status || execution.resultStatus || execution.result_status, 120);\n\t\tconst toolName = cleanText(execution.tool || execution.toolName || execution.tool_name || execution.type || 'query', 160);\n\t\tconst collection = cleanText(execution.collection || execution.collectionName || execution.collection_name, 240);\n\t\tpushEvent(events, {\n\t\t\ttype: 'assistant_query',\n\t\t\tcategory: status || toolName,\n\t\t\tmessage: cleanText(execution.summary || execution.message || `${toolName}${collection ? ` ${collection}` : ''}`, 1200),\n\t\t\tartifactPaths: cleanStringList([\n\t\t\t\texecution.artifactPath,\n\t\t\t\texecution.artifact_path,\n\t\t\t\texecution.path,\n\t\t\t\t...asArray(execution.artifactPaths),\n\t\t\t\t...asArray(execution.artifact_paths)\n\t\t\t], 20, 500),\n\t\t\trecordedAt: eventDate(execution),\n\t\t\tmetadata: {\n\t\t\t\tid: execution.id || execution._id || execution.ref,\n\t\t\t\ttool: toolName,\n\t\t\t\tstatus,\n\t\t\t\tcollection,\n\t\t\t\tresultCount: execution.resultCount ?? execution.result_count ?? execution.count,\n\t\t\t\tqueryStatus: execution.queryStatus || execution.query_status,\n\t\t\t\tlegalQueryShape: execution.legalQueryShape ?? execution.legal_query_shape\n\t\t\t}\n\t\t});\n\t}\n\tconst answerQualityDecision = evaluateAssistantAnswerQuality({\n\t\tanswerQuality,\n\t\tcorrectnessChecks: input.correctnessChecks,\n\t\tnow: input.now\n\t});\n\tconst answerQualityGate = assistantAnswerQualityGate(answerQualityDecision, input.now);\n\tpushEvent(events, {\n\t\ttype: 'assistant_message',\n\t\tcategory: 'assistant_answer_quality',\n\t\tmessage: answerQualityGate.reason,\n\t\tartifactPaths: answerQualityGate.evidenceRefs,\n\t\trecordedAt: answerQualityGate.recordedAt,\n\t\tmetadata: answerQualityGate.metadata\n\t});\n\tconst correctnessChecks = asArray<Record<string, any>>(input.correctnessChecks);\n\tconst hasPassedCorrectnessCheck = correctnessChecks.some((check) => /^(pass|passed|success|ok)$/i.test(cleanText(check.status || (check.passed === true ? 'pass' : ''), 80)));\n\tconst correctnessEvidence = {\n\t\tbusinessAssertions: [\n\t\t\t...correctnessChecks.map((check) => ({\n\t\t\t\tassertion: check.assertion || check.name || check.case || 'assistant correctness check',\n\t\t\t\tstatus: check.status || statusFromBoolean(check.passed),\n\t\t\t\texpected: check.expected,\n\t\t\t\tobserved: check.observed || check.actual,\n\t\t\t\tdataProof: check.dataProof || check.proof,\n\t\t\t\tartifactPaths: check.artifactPaths,\n\t\t\t\tmessage: check.message || check.reason,\n\t\t\t\tmetadata: check.metadata,\n\t\t\t\trecordedAt: eventDate(check)\n\t\t\t})),\n\t\t\t...(answerQualityDecision.ready && !hasPassedCorrectnessCheck ? [{\n\t\t\t\tassertion: 'Assistant answer quality gate passed.',\n\t\t\t\tstatus: 'pass',\n\t\t\t\texpected: 'Correct dates, legal query shape, query result classification, cited evidence, confidence, and next action.',\n\t\t\t\tobserved: answerQualityDecision.reason,\n\t\t\t\tdataProof: answerQualityDecision.evidenceRefs.concat(answerQualityDecision.citationRefs).join(', '),\n\t\t\t\tartifactPaths: answerQualityDecision.evidenceRefs,\n\t\t\t\tmessage: answerQualityDecision.reason,\n\t\t\t\tmetadata: {\n\t\t\t\t\tanswerQualityStatus: answerQualityDecision.status,\n\t\t\t\t\tqueryStatus: answerQualityDecision.queryStatus,\n\t\t\t\t\tdateWindowRequired: answerQualityDecision.dateWindowRequired,\n\t\t\t\t\tdateWindowPresent: answerQualityDecision.dateWindowPresent,\n\t\t\t\t\tdateWindow: answerQualityDecision.dateWindow\n\t\t\t\t}\n\t\t\t}] : [])\n\t\t]\n\t};\n\tconst qa = applyAssistantAnswerQualityGate(buildQaFromEvidence(correctnessEvidence, input.now), answerQualityDecision, input.now);\n\tconst failedReports = asArray<Record<string, any>>(input.issueReports)\n\t\t.filter((report) => /open|new|fail|bug|wrong|incorrect|error/i.test(`${report.status || ''} ${report.category || ''} ${report.summary || ''}`));\n\n\treturn buildAIRun({\n\t\tid: cleanText(input.runId, 240) || undefined,\n\t\tsource: 'ai_assistant',\n\t\tsourceIds,\n\t\ttitle: firstText(conversation, ['title', 'subject', 'summary']) || 'AI assistant conversation',\n\t\tstatus: firstText(conversation, ['status', 'state']),\n\t\tphase: firstText(conversation, ['phase']),\n\t\tstartedAt: dateValue(conversation, ['startedAt', 'createdAt']),\n\t\tcompletedAt: dateValue(conversation, ['completedAt', 'closedAt', 'updatedAt']),\n\t\tevents,\n\t\tqa,\n\t\tcost,\n\t\trejected: failedReports.length > 0 || conversation.rejected === true,\n\t\tmanualHandoff: conversation.manualHandoff === true,\n\t\tstopped: conversation.stopped === true,\n\t\texplicitAccepted: conversation.accepted === true,\n\t\tterminal: /complete|closed|resolved|done|failed|rejected/i.test(`${conversation.status || ''}`),\n\t\tnow: input.now,\n\t\tmetadata: {\n\t\t\tissueReportCount: asArray(input.issueReports).length,\n\t\t\tcorrectnessCheckCount: correctnessChecks.length,\n\t\t\tanswerQuality: {\n\t\t\t\tready: answerQualityDecision.ready,\n\t\t\t\tstatus: answerQualityDecision.status,\n\t\t\t\tqueryStatus: answerQualityDecision.queryStatus,\n\t\t\t\tconfidenceLevel: answerQualityDecision.confidenceLevel,\n\t\t\t\tdateBasis: answerQualityDecision.dateBasis,\n\t\t\t\texpectedCurrentDate: answerQualityDecision.expectedCurrentDate,\n\t\t\t\tdateWindowRequired: answerQualityDecision.dateWindowRequired,\n\t\t\t\tdateWindowPresent: answerQualityDecision.dateWindowPresent,\n\t\t\t\tdateWindow: answerQualityDecision.dateWindow,\n\t\t\t\tnoDataConfirmed: answerQualityDecision.noDataConfirmed,\n\t\t\t\tlegalQueryShape: answerQualityDecision.legalQueryShape,\n\t\t\t\tcitationRefs: answerQualityDecision.citationRefs,\n\t\t\t\tqueryEvidenceRequired: answerQualityDecision.queryEvidenceRequired,\n\t\t\t\tqueryEvidencePresent: answerQualityDecision.queryEvidencePresent,\n\t\t\t\tqueryEvidenceRefs: answerQualityDecision.queryEvidenceRefs,\n\t\t\t\tqueryExecutionCount: answerQualityDecision.queryExecutionCount,\n\t\t\t\tnextActions: answerQualityDecision.nextActions,\n\t\t\t\tblockers: answerQualityDecision.blockers\n\t\t\t}\n\t\t}\n\t});\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/util/ai-run-evidence-adapters.ts"],"names":[],"mappings":"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","file":"ai-run-evidence-adapters.js","sourcesContent":["import {\n\tAIRun,\n\tAIRunCost,\n\tAIRunEvent,\n\tAIRunGateResult,\n\tAIQaArtifact,\n\tAIQaBusinessAssertion,\n\tAIQaCompileResult,\n\tAIQaInfraCheck,\n\tAIQaRun,\n\tAIQaRouteProbe,\n\tbuildAIRun,\n\tbuildAIRunCost,\n\tbuildAIQaRun,\n\tnormalizeOpenAIUsageRowsForCosting\n} from './ai-run-evidence';\nimport {\n\tevaluateResolveIOAICoderWorkflowProofReadiness,\n\tResolveIOAICoderWorkflowProofReadiness\n} from './aicoder-runner-v6';\nimport {\n\tdecideResolveIOAIManagerPolicy,\n\tResolveIOAIManagerFailureRecord,\n\tvalidateResolveIOAIManagerHotfixEvidence\n} from './ai-runner-manager-policy';\n\nexport interface SupportAIRunAdapterInput {\n\tticket?: Record<string, any>;\n\tjob?: Record<string, any>;\n\tversions?: Array<Record<string, any>>;\n\tbuildPlans?: Array<Record<string, any>>;\n\taiJobs?: Array<Record<string, any>>;\n\ttaskEvents?: Array<Record<string, any>>;\n\tusageLedger?: Array<Record<string, any>>;\n\tcommits?: Array<Record<string, any>>;\n\tqaEvidence?: Record<string, any>;\n\tnow?: Date | string;\n}\n\nexport interface AICoderAIRunAdapterInput {\n\tapp?: Record<string, any>;\n\tjob?: Record<string, any>;\n\tlogs?: Array<Record<string, any>>;\n\tusageLedger?: Array<Record<string, any>>;\n\tcommits?: Array<Record<string, any>>;\n\tqaEvidence?: Record<string, any>;\n\tnow?: Date | string;\n}\n\nexport interface AssistantAIRunAdapterInput {\n\trunId?: string;\n\trequestId?: string;\n\tmessageId?: string;\n\tconversation?: Record<string, any>;\n\tmessages?: Array<Record<string, any>>;\n\tissueReports?: Array<Record<string, any>>;\n\tusageLedger?: Array<Record<string, any>>;\n\tcorrectnessChecks?: Array<Record<string, any>>;\n\tanswerQuality?: Record<string, any>;\n\tnow?: Date | string;\n}\n\nexport type AssistantAnswerQualityStatus =\n\t| 'ready'\n\t| 'missing_data_source'\n\t| 'date_incorrect'\n\t| 'missing_date_window'\n\t| 'illegal_query_shape'\n\t| 'missing_query_proof'\n\t| 'query_error'\n\t| 'permission_error'\n\t| 'no_data_unverified'\n\t| 'missing_citations'\n\t| 'low_confidence'\n\t| 'missing_next_action'\n\t| 'incorrect'\n\t| 'blocked';\n\nexport interface AssistantAnswerQualityInput {\n\tanswerQuality?: Record<string, any>;\n\tcorrectnessChecks?: Array<Record<string, any>>;\n\tnow?: Date | string;\n}\n\nexport interface AssistantAnswerQualityDecision {\n\tready: boolean;\n\tstatus: AssistantAnswerQualityStatus;\n\treason: string;\n\tblockers: string[];\n\tqueryStatus: 'ok' | 'no_data' | 'query_error' | 'permission_error' | 'unknown';\n\tconfidenceLevel: 'high' | 'medium' | 'low' | 'unknown';\n\tdateBasis?: string;\n\texpectedCurrentDate?: string;\n\tdateWindowRequired: boolean;\n\tdateWindowPresent: boolean;\n\tdateWindow?: {\n\t\tstartDate?: string;\n\t\tendDate?: string;\n\t\tmode?: string;\n\t\tmonths?: number;\n\t};\n\tnoDataConfirmed: boolean;\n\tlegalQueryShape: boolean;\n\tcitationRefs: string[];\n\tqueryEvidenceRequired: boolean;\n\tqueryEvidencePresent: boolean;\n\tqueryEvidenceRefs: string[];\n\tqueryExecutionCount: number;\n\tnextActions: string[];\n\tevidenceRefs: string[];\n\tfailedChecks: string[];\n\trecordedAt: string;\n}\n\nfunction cleanText(value: any, max = 1000): string {\n\treturn String(value || '').replace(/\\s+/g, ' ').trim().slice(0, max);\n}\n\nfunction idText(value: any, max = 160): string | undefined {\n\tconst normalized = cleanText(value, max);\n\treturn normalized || undefined;\n}\n\nfunction asArray<T = any>(value: any): T[] {\n\treturn Array.isArray(value) ? value : [];\n}\n\nfunction cleanStringList(value: any, limit = 40, max = 500): string[] {\n\treturn asArray<any>(value)\n\t\t.map((entry) => cleanText(entry, max))\n\t\t.filter(Boolean)\n\t\t.slice(0, limit);\n}\n\nfunction plainObject(value: any): Record<string, any> {\n\treturn value && typeof value === 'object' && !Array.isArray(value) ? value : {};\n}\n\nfunction firstText(source: Record<string, any> | undefined, fields: string[], max = 1000): string | undefined {\n\tfor (const field of fields) {\n\t\tconst value = source?.[field];\n\t\tconst normalized = idText(value, max);\n\t\tif (normalized) {\n\t\t\treturn normalized;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction dateValue(source: Record<string, any> | undefined, fields: string[]): Date | string | undefined {\n\tfor (const field of fields) {\n\t\tconst value = source?.[field];\n\t\tif (value) {\n\t\t\treturn value;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction addSourceId(sourceIds: Record<string, string>, key: string, value: any): void {\n\tconst normalized = idText(value);\n\tif (normalized) {\n\t\tsourceIds[key] = normalized;\n\t}\n}\n\nfunction pushEvent(events: AIRunEvent[], event: AIRunEvent): void {\n\tconst message = cleanText(event.message, 1800);\n\tconst metadata = event.metadata || {};\n\tif (!message && !Object.keys(metadata).length && !event.artifactPaths?.length) {\n\t\treturn;\n\t}\n\tevents.push({\n\t\t...event,\n\t\tmessage,\n\t\tartifactPaths: asArray<string>(event.artifactPaths).filter(Boolean).slice(0, 20)\n\t});\n}\n\nfunction eventDate(record: Record<string, any>): Date | string | undefined {\n\treturn dateValue(record, ['recordedAt', 'createdAt', 'updatedAt', 'timestamp', 'time', 'date']);\n}\n\nfunction normalizeManagerFailureRecord(value: any, fallback: Partial<ResolveIOAIManagerFailureRecord> = {}): ResolveIOAIManagerFailureRecord | undefined {\n\tconst entry = plainObject(value);\n\tif (!Object.keys(entry).length && !Object.keys(fallback).length) {\n\t\treturn undefined;\n\t}\n\tconst blocker = cleanText(entry.blocker || entry.reason || entry.summary || entry.message || fallback.blocker || fallback.summary, 1200);\n\tconst failureClass = cleanText(entry.failureClass || entry.failure_class || entry.class || fallback.failureClass, 120);\n\tconst evidenceHash = cleanText(entry.evidenceHash || entry.evidence_hash || entry.hash || fallback.evidenceHash, 180);\n\tconst blockerFingerprint = cleanText(entry.blockerFingerprint || entry.blocker_fingerprint || fallback.blockerFingerprint, 180);\n\tconst lane = cleanText(entry.lane || fallback.lane || 'support', 80);\n\tconst stepType = cleanText(entry.stepType || entry.step_type || entry.type || fallback.stepType || 'support_step', 80);\n\tconst outcome = cleanText(entry.outcome || entry.status || entry.result || fallback.outcome || 'needs_repair', 80);\n\tif (!blocker && !failureClass && !evidenceHash && !blockerFingerprint) {\n\t\treturn undefined;\n\t}\n\treturn {\n\t\tlane,\n\t\tstepType,\n\t\toutcome,\n\t\tfailureClass: failureClass || undefined,\n\t\tblocker: blocker || undefined,\n\t\tsummary: cleanText(entry.summary || entry.message || fallback.summary, 1200) || undefined,\n\t\tblockerFingerprint: blockerFingerprint || undefined,\n\t\tevidenceHash: evidenceHash || undefined,\n\t\tchangedFiles: cleanStringList(entry.changedFiles || entry.changed_files || fallback.changedFiles, 80, 500),\n\t\tartifactPaths: cleanStringList(entry.artifactPaths || entry.artifact_paths || entry.artifacts || fallback.artifactPaths, 80, 500)\n\t};\n}\n\nfunction supportManagerFailureRecords(job: Record<string, any>, evidence: Record<string, any>): ResolveIOAIManagerFailureRecord[] {\n\tconst records: ResolveIOAIManagerFailureRecord[] = [];\n\tconst pushRecord = (value: any, fallback: Partial<ResolveIOAIManagerFailureRecord> = {}): void => {\n\t\tconst record = normalizeManagerFailureRecord(value, fallback);\n\t\tif (record) {\n\t\t\trecords.push(record);\n\t\t}\n\t};\n\tfor (const entry of asArray<any>(job.supportV5StepHistory || job.support_v5_step_history || evidence.supportV5StepHistory || evidence.support_v5_step_history)) {\n\t\tpushRecord(entry);\n\t}\n\tfor (const entry of asArray<any>(job.supportV5FailureFingerprints || job.support_v5_failure_fingerprints || evidence.supportV5FailureFingerprints || evidence.support_v5_failure_fingerprints)) {\n\t\tconst fingerprint = plainObject(entry);\n\t\tconst count = Math.max(1, Math.min(8, Number(fingerprint.count || fingerprint.repeatedCount || fingerprint.repeated_count || 1) || 1));\n\t\tconst fallback = {\n\t\t\tlane: cleanText(fingerprint.lane || 'support', 80),\n\t\t\tstepType: cleanText(fingerprint.stepType || fingerprint.step_type || 'support_step', 80),\n\t\t\toutcome: cleanText(fingerprint.outcome || 'needs_repair', 80),\n\t\t\tfailureClass: cleanText(fingerprint.failureClass || fingerprint.failure_class || fingerprint.class, 120),\n\t\t\tblocker: cleanText(fingerprint.blocker || fingerprint.reason || fingerprint.summary, 1200),\n\t\t\tblockerFingerprint: cleanText(fingerprint.blockerFingerprint || fingerprint.blocker_fingerprint, 180),\n\t\t\tevidenceHash: cleanText(fingerprint.evidenceHash || fingerprint.evidence_hash, 180)\n\t\t};\n\t\tfor (let index = 0; index < count; index += 1) {\n\t\t\tpushRecord(fingerprint, fallback);\n\t\t}\n\t}\n\tconst currentFailure = evidenceObject(\n\t\tjob.supportV5CurrentFailure,\n\t\tjob.support_v5_current_failure,\n\t\tjob.supportV5RecoveryCurrent,\n\t\tjob.support_v5_recovery_current,\n\t\tevidence.currentFailure,\n\t\tevidence.current_failure\n\t);\n\tpushRecord(currentFailure);\n\treturn records.slice(-80);\n}\n\nfunction managerNoBlindLoopGateFromHistory(\n\thistory: ResolveIOAIManagerFailureRecord[],\n\tbudgetSource: Record<string, any>,\n\tnow?: Date | string\n): AIRunGateResult | undefined {\n\tif (!history.length) {\n\t\treturn undefined;\n\t}\n\tconst budget = plainObject(budgetSource);\n\tconst maxSameFailureRepeats = Math.max(1, Number(budget.maxRepeatedNoProgress || budget.max_repeated_no_progress || budget.maxSameFailureRepeats || budget.max_same_failure_repeats || 3) || 3);\n\tconst decision = decideResolveIOAIManagerPolicy({\n\t\thistory,\n\t\tmaxSameFailureRepeats\n\t});\n\tconst parksRun = /^(park_repeated_failure|park_ping_pong|manual_handoff)$/.test(decision.action);\n\tconst status: AIRunGateResult['status'] = parksRun\n\t\t? 'blocked'\n\t\t: decision.action === 'retry_infra'\n\t\t\t? 'warn'\n\t\t\t: 'pass';\n\treturn {\n\t\tkey: 'manager_no_blind_loop_policy',\n\t\tlabel: 'No-blind-loop manager policy',\n\t\tstatus,\n\t\treason: decision.reason,\n\t\tevidenceRefs: cleanStringList(decision.recoveryAction.requiredArtifacts, 20, 500),\n\t\trecordedAt: isoNow(now),\n\t\tmetadata: {\n\t\t\taction: decision.action,\n\t\t\tfailureClass: decision.failureClass,\n\t\t\tblockerFingerprint: decision.blockerFingerprint,\n\t\t\tevidenceHash: decision.evidenceHash,\n\t\t\tsameFailureCount: decision.sameFailureCount,\n\t\t\tpingPongCount: decision.pingPongCount,\n\t\t\tnewEvidence: decision.newEvidence,\n\t\t\tmaterialEvidence: decision.materialEvidence,\n\t\t\tevidenceStrength: decision.evidenceStrength,\n\t\t\tevidenceSignals: decision.evidenceSignals,\n\t\t\tloopBudgetShouldReset: decision.loopBudgetShouldReset,\n\t\t\tproductRepairFailure: decision.productRepairFailure,\n\t\t\trecoveryClass: decision.recoveryPlan.recoveryClass,\n\t\t\tallowedAction: decision.recoveryPlan.allowedAction,\n\t\t\tdispatchAction: decision.recoveryAction.allowedDispatchAction,\n\t\t\tevidenceOnly: decision.recoveryAction.evidenceOnly,\n\t\t\tproductRepairAllowed: decision.recoveryAction.productRepairAllowed,\n\t\t\texpensiveModelAllowed: decision.recoveryAction.expensiveModelAllowed,\n\t\t\tcostCeilingUsd: decision.recoveryAction.costCeilingUsd,\n\t\t\trequiresNewEvidence: decision.recoveryAction.retryPolicy?.requireNewEvidence === true,\n\t\t\tnextCommands: decision.recoveryAction.nextCommands,\n\t\t\trequiredEvidence: decision.recoveryAction.requiredArtifacts,\n\t\t\tforbiddenActions: decision.recoveryPlan.forbiddenActions\n\t\t}\n\t};\n}\n\nfunction supportManagerNoBlindLoopGate(\n\tjob: Record<string, any>,\n\tevidence: Record<string, any>,\n\tnow?: Date | string\n): AIRunGateResult | undefined {\n\treturn managerNoBlindLoopGateFromHistory(\n\t\tsupportManagerFailureRecords(job, evidence),\n\t\tjob.supportV5Budget || job.support_v5_budget || evidence.supportV5Budget || evidence.support_v5_budget,\n\t\tnow\n\t);\n}\n\nfunction aicoderManagerFailureRecords(\n\tapp: Record<string, any>,\n\tjob: Record<string, any>,\n\tevidence: Record<string, any>\n): ResolveIOAIManagerFailureRecord[] {\n\tconst records: ResolveIOAIManagerFailureRecord[] = [];\n\tconst pushRecord = (value: any, fallback: Partial<ResolveIOAIManagerFailureRecord> = {}): void => {\n\t\tconst record = normalizeManagerFailureRecord(value, {\n\t\t\tlane: 'aicoder',\n\t\t\tstepType: 'workflow_step',\n\t\t\t...fallback\n\t\t});\n\t\tif (record) {\n\t\t\trecords.push(record);\n\t\t}\n\t};\n\tconst historySources = [\n\t\tjob.aicoderV6StepHistory,\n\t\tjob.aiCoderV6StepHistory,\n\t\tjob.aicoder_v6_step_history,\n\t\tjob.ai_coder_v6_step_history,\n\t\tjob.workflowStepHistory,\n\t\tjob.workflow_step_history,\n\t\tjob.stepHistory,\n\t\tjob.step_history,\n\t\tjob.managerFailureHistory,\n\t\tjob.manager_failure_history,\n\t\tapp.aicoderV6StepHistory,\n\t\tapp.aiCoderV6StepHistory,\n\t\tapp.aicoder_v6_step_history,\n\t\tapp.ai_coder_v6_step_history,\n\t\tapp.workflowStepHistory,\n\t\tapp.workflow_step_history,\n\t\tevidence.aicoderV6StepHistory,\n\t\tevidence.aiCoderV6StepHistory,\n\t\tevidence.aicoder_v6_step_history,\n\t\tevidence.ai_coder_v6_step_history,\n\t\tevidence.workflowStepHistory,\n\t\tevidence.workflow_step_history,\n\t\tevidence.stepHistory,\n\t\tevidence.step_history,\n\t\tevidence.managerFailureHistory,\n\t\tevidence.manager_failure_history\n\t];\n\tfor (const source of historySources) {\n\t\tfor (const entry of asArray<any>(source)) {\n\t\t\tpushRecord(entry);\n\t\t}\n\t}\n\tconst fingerprintSources = [\n\t\tjob.aicoderV6FailureFingerprints,\n\t\tjob.aiCoderV6FailureFingerprints,\n\t\tjob.aicoder_v6_failure_fingerprints,\n\t\tjob.ai_coder_v6_failure_fingerprints,\n\t\tjob.workflowFailureFingerprints,\n\t\tjob.workflow_failure_fingerprints,\n\t\tjob.failureFingerprints,\n\t\tjob.failure_fingerprints,\n\t\tapp.aicoderV6FailureFingerprints,\n\t\tapp.aiCoderV6FailureFingerprints,\n\t\tapp.aicoder_v6_failure_fingerprints,\n\t\tapp.ai_coder_v6_failure_fingerprints,\n\t\tevidence.aicoderV6FailureFingerprints,\n\t\tevidence.aiCoderV6FailureFingerprints,\n\t\tevidence.aicoder_v6_failure_fingerprints,\n\t\tevidence.ai_coder_v6_failure_fingerprints,\n\t\tevidence.workflowFailureFingerprints,\n\t\tevidence.workflow_failure_fingerprints,\n\t\tevidence.failureFingerprints,\n\t\tevidence.failure_fingerprints\n\t];\n\tfor (const source of fingerprintSources) {\n\t\tfor (const entry of asArray<any>(source)) {\n\t\t\tconst fingerprint = plainObject(entry);\n\t\t\tconst count = Math.max(1, Math.min(8, Number(fingerprint.count || fingerprint.repeatedCount || fingerprint.repeated_count || 1) || 1));\n\t\t\tconst fallback = {\n\t\t\t\tlane: cleanText(fingerprint.lane || 'aicoder', 80),\n\t\t\t\tstepType: cleanText(fingerprint.stepType || fingerprint.step_type || 'workflow_step', 80),\n\t\t\t\toutcome: cleanText(fingerprint.outcome || 'needs_repair', 80),\n\t\t\t\tfailureClass: cleanText(fingerprint.failureClass || fingerprint.failure_class || fingerprint.class, 120),\n\t\t\t\tblocker: cleanText(fingerprint.blocker || fingerprint.reason || fingerprint.summary, 1200),\n\t\t\t\tblockerFingerprint: cleanText(fingerprint.blockerFingerprint || fingerprint.blocker_fingerprint, 180),\n\t\t\t\tevidenceHash: cleanText(fingerprint.evidenceHash || fingerprint.evidence_hash, 180)\n\t\t\t};\n\t\t\tfor (let index = 0; index < count; index += 1) {\n\t\t\t\tpushRecord(fingerprint, fallback);\n\t\t\t}\n\t\t}\n\t}\n\tconst currentFailure = evidenceObject(\n\t\tjob.aicoderV6CurrentFailure,\n\t\tjob.aiCoderV6CurrentFailure,\n\t\tjob.aicoder_v6_current_failure,\n\t\tjob.ai_coder_v6_current_failure,\n\t\tjob.workflowCurrentFailure,\n\t\tjob.workflow_current_failure,\n\t\tjob.currentFailure,\n\t\tjob.current_failure,\n\t\tevidence.aicoderV6CurrentFailure,\n\t\tevidence.aiCoderV6CurrentFailure,\n\t\tevidence.aicoder_v6_current_failure,\n\t\tevidence.ai_coder_v6_current_failure,\n\t\tevidence.workflowCurrentFailure,\n\t\tevidence.workflow_current_failure,\n\t\tevidence.currentFailure,\n\t\tevidence.current_failure\n\t);\n\tpushRecord(currentFailure);\n\treturn records.slice(-80);\n}\n\nfunction aicoderManagerNoBlindLoopGate(\n\tapp: Record<string, any>,\n\tjob: Record<string, any>,\n\tevidence: Record<string, any>,\n\tnow?: Date | string\n): AIRunGateResult | undefined {\n\treturn managerNoBlindLoopGateFromHistory(\n\t\taicoderManagerFailureRecords(app, job, evidence),\n\t\tjob.aicoderV6Budget\n\t\t\t|| job.aiCoderV6Budget\n\t\t\t|| job.aicoder_v6_budget\n\t\t\t|| job.ai_coder_v6_budget\n\t\t\t|| evidence.aicoderV6Budget\n\t\t\t|| evidence.aiCoderV6Budget\n\t\t\t|| evidence.aicoder_v6_budget\n\t\t\t|| evidence.ai_coder_v6_budget\n\t\t\t|| app.aicoderV6Budget\n\t\t\t|| app.aiCoderV6Budget\n\t\t\t|| app.aicoder_v6_budget\n\t\t\t|| app.ai_coder_v6_budget\n\t\t\t|| job.budget\n\t\t\t|| evidence.budget,\n\t\tnow\n\t);\n}\n\nfunction managerNoBlindLoopMetadata(gate: AIRunGateResult | undefined): Record<string, any> | undefined {\n\tif (!gate) {\n\t\treturn undefined;\n\t}\n\treturn {\n\t\taction: cleanText(gate.metadata?.action, 120),\n\t\tstatus: gate.status,\n\t\tfailureClass: cleanText(gate.metadata?.failureClass, 120),\n\t\tsameFailureCount: Number(gate.metadata?.sameFailureCount || 0),\n\t\tpingPongCount: Number(gate.metadata?.pingPongCount || 0),\n\t\tnewEvidence: gate.metadata?.newEvidence === true,\n\t\tmaterialEvidence: gate.metadata?.materialEvidence === true,\n\t\tevidenceStrength: cleanText(gate.metadata?.evidenceStrength, 120),\n\t\tloopBudgetShouldReset: gate.metadata?.loopBudgetShouldReset === true,\n\t\tdispatchAction: cleanText(gate.metadata?.dispatchAction, 160),\n\t\tproductRepairAllowed: gate.metadata?.productRepairAllowed === true,\n\t\texpensiveModelAllowed: gate.metadata?.expensiveModelAllowed === true,\n\t\tproductRepairFailure: gate.metadata?.productRepairFailure === true,\n\t\trequiresNewEvidence: gate.metadata?.requiresNewEvidence === true\n\t};\n}\n\nfunction hotfixEvidenceCandidates(...sources: any[]): Record<string, any>[] {\n\tconst result: Record<string, any>[] = [];\n\tconst seen = new Set<string>();\n\tconst pushCandidate = (value: any): void => {\n\t\tif (Array.isArray(value)) {\n\t\t\tfor (const entry of value) {\n\t\t\t\tpushCandidate(entry);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn;\n\t\t}\n\t\tconst nestedValues = [\n\t\t\tvalue.hotfixEvidence,\n\t\t\tvalue.hotfix_evidence,\n\t\t\tvalue.releaseHotfixEvidence,\n\t\t\tvalue.release_hotfix_evidence,\n\t\t\tvalue.managerHotfixEvidence,\n\t\t\tvalue.manager_hotfix_evidence,\n\t\t\tvalue.backendHotfixEvidence,\n\t\t\tvalue.backend_hotfix_evidence\n\t\t].filter(Boolean);\n\t\tif (nestedValues.length) {\n\t\t\tfor (const nestedValue of nestedValues) {\n\t\t\t\tpushCandidate(nestedValue);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tif (!(value.channel || value.hotfixChannel || value.hotfix_channel)) {\n\t\t\treturn;\n\t\t}\n\t\tconst key = JSON.stringify({\n\t\t\tchannel: value.channel || value.hotfixChannel || value.hotfix_channel,\n\t\t\thost: value.target?.host || value.host,\n\t\t\tpath: value.target?.path || value.path || value.remotePath || value.remote_path,\n\t\t\tchecksum: value.remoteChecksumAfter || value.remote_checksum_after || value.remoteChecksum || value.remote_checksum\n\t\t});\n\t\tif (seen.has(key)) {\n\t\t\treturn;\n\t\t}\n\t\tseen.add(key);\n\t\tresult.push(value);\n\t};\n\tfor (const source of sources) {\n\t\tpushCandidate(source);\n\t}\n\treturn result;\n}\n\nfunction hotfixEvidenceArtifactPaths(evidence: Record<string, any>, normalized: Record<string, any> | undefined): string[] {\n\treturn [\n\t\tnormalized?.compiledArtifactPath,\n\t\tnormalized?.builtDistPath,\n\t\tnormalized?.target?.artifactPath,\n\t\tevidence.compiledArtifactPath,\n\t\tevidence.compiled_artifact_path,\n\t\tevidence.builtDistPath,\n\t\tevidence.built_dist_path,\n\t\tevidence.artifactPath,\n\t\tevidence.artifact_path\n\t].map((entry) => cleanText(entry, 500)).filter(Boolean).slice(0, 8);\n}\n\nfunction hotfixEvidenceGate(\n\tevidence: Record<string, any>,\n\tnow?: Date | string\n): AIRunGateResult | undefined {\n\tconst validation = validateResolveIOAIManagerHotfixEvidence(evidence);\n\tif (!validation.normalized && validation.status === 'missing') {\n\t\treturn undefined;\n\t}\n\tconst status: AIRunGateResult['status'] = validation.valid\n\t\t? (validation.fullDeployAllowed ? 'warn' : 'pass')\n\t\t: validation.status === 'blocked'\n\t\t\t? 'blocked'\n\t\t\t: 'fail';\n\tconst reason = validation.valid\n\t\t? validation.fullDeployAllowed\n\t\t\t? 'Hotfix evidence allows exactly one full deploy after force/new-artifact proof.'\n\t\t\t: 'Hotfix evidence is sufficient; rerun the smallest release gate before continuing.'\n\t\t: validation.blockers.join('; ');\n\treturn {\n\t\tkey: 'hotfix_evidence',\n\t\tlabel: 'Hotfix evidence',\n\t\tstatus,\n\t\treason,\n\t\tevidenceRefs: hotfixEvidenceArtifactPaths(evidence, validation.normalized as any),\n\t\trecordedAt: isoNow(now || validation.normalized?.recordedAt),\n\t\tmetadata: {\n\t\t\tchannel: validation.channel,\n\t\t\tnextAction: validation.nextAction,\n\t\t\tfullDeployAllowed: validation.fullDeployAllowed,\n\t\t\tfullDeployBlocked: validation.fullDeployBlocked,\n\t\t\thotfixSatisfied: validation.hotfixSatisfied,\n\t\t\tblockers: validation.blockers,\n\t\t\tgithubCommitGuard: validation.githubCommitGuard,\n\t\t\ttarget: validation.normalized?.target\n\t\t}\n\t};\n}\n\nfunction hotfixCommitProofGate(\n\tevidence: Record<string, any>,\n\tnow?: Date | string\n): AIRunGateResult | undefined {\n\tconst validation = validateResolveIOAIManagerHotfixEvidence(evidence);\n\tconst guard = validation.githubCommitGuard;\n\tif (!guard.required) {\n\t\treturn undefined;\n\t}\n\tconst status: AIRunGateResult['status'] = guard.passed\n\t\t? 'pass'\n\t\t: guard.status === 'invalid'\n\t\t\t? 'fail'\n\t\t\t: 'blocked';\n\treturn {\n\t\tkey: 'hotfix_commit_proof',\n\t\tlabel: 'Hotfix GitHub commit proof',\n\t\tstatus,\n\t\treason: guard.passed\n\t\t\t? 'Hotfix has matching sourceCommitSha, GitHub commit URL, and passed gitPushStatus/gitCommitStatus.'\n\t\t\t: (guard.blockers.join('; ') || 'Manager hotfix is blocked until sourceCommitSha, githubCommitUrl, and passed gitPushStatus prove the hotfix is pushed to GitHub.'),\n\t\tevidenceRefs: cleanStringList([guard.githubCommitUrl], 1, 500),\n\t\trecordedAt: isoNow(now || validation.normalized?.recordedAt),\n\t\tmetadata: {\n\t\t\tchannel: guard.channel || validation.channel,\n\t\t\tstatus: guard.status,\n\t\t\tpassed: guard.passed,\n\t\t\tmanagerMustCommitBeforeHotfix: guard.managerMustCommitBeforeHotfix,\n\t\t\tsourceCommitSha: guard.sourceCommitSha,\n\t\t\tgithubCommitUrl: guard.githubCommitUrl,\n\t\t\tgithubCommitSha: guard.githubCommitSha,\n\t\t\tgitCommitStatus: guard.gitCommitStatus,\n\t\t\tgitPushStatus: guard.gitPushStatus,\n\t\t\tblockers: guard.blockers,\n\t\t\tnextCommands: guard.nextCommands,\n\t\t\trequiredEvidence: guard.requiredEvidence\n\t\t}\n\t};\n}\n\nfunction collectHotfixEvidenceEvents(\n\tsources: any[],\n\tevents: AIRunEvent[],\n\tgates: AIRunGateResult[],\n\tnow?: Date | string\n): void {\n\tfor (const evidence of hotfixEvidenceCandidates(...sources)) {\n\t\tconst validation = validateResolveIOAIManagerHotfixEvidence(evidence);\n\t\tif (!validation.normalized && validation.status === 'missing') {\n\t\t\tcontinue;\n\t\t}\n\t\tconst artifactPaths = hotfixEvidenceArtifactPaths(evidence, validation.normalized as any);\n\t\tpushEvent(events, {\n\t\t\ttype: 'hotfix',\n\t\t\tcategory: validation.channel || 'hotfix',\n\t\t\tmessage: validation.valid\n\t\t\t\t? `Hotfix evidence recorded for ${validation.channel}.`\n\t\t\t\t: `Incomplete hotfix evidence for ${validation.channel || 'unknown channel'}.`,\n\t\t\tartifactPaths,\n\t\t\trecordedAt: validation.normalized?.recordedAt || eventDate(evidence),\n\t\t\tmetadata: {\n\t\t\t\tstatus: validation.status,\n\t\t\t\tnextAction: validation.nextAction,\n\t\t\t\tfullDeployAllowed: validation.fullDeployAllowed,\n\t\t\t\tfullDeployBlocked: validation.fullDeployBlocked,\n\t\t\t\thotfixSatisfied: validation.hotfixSatisfied,\n\t\t\t\tblockers: validation.blockers,\n\t\t\t\tgithubCommitGuard: validation.githubCommitGuard,\n\t\t\t\ttarget: validation.normalized?.target\n\t\t\t}\n\t\t});\n\t\tconst gate = hotfixEvidenceGate(evidence, now);\n\t\tif (gate) {\n\t\t\tgates.push(gate);\n\t\t}\n\t\tconst commitProofGate = hotfixCommitProofGate(evidence, now);\n\t\tif (commitProofGate) {\n\t\t\tgates.push(commitProofGate);\n\t\t\tpushEvent(events, {\n\t\t\t\ttype: 'log',\n\t\t\t\tcategory: 'hotfix_commit_proof',\n\t\t\t\tmessage: commitProofGate.reason,\n\t\t\t\tartifactPaths: commitProofGate.evidenceRefs,\n\t\t\t\trecordedAt: commitProofGate.recordedAt,\n\t\t\t\tmetadata: commitProofGate.metadata\n\t\t\t});\n\t\t}\n\t}\n}\n\nfunction collectUsageEvents(entries: Array<Record<string, any>>, events: AIRunEvent[]): AIRunCost | undefined {\n\tif (!entries.length) {\n\t\treturn undefined;\n\t}\n\tconst normalizedEntries = normalizeOpenAIUsageRowsForCosting(entries);\n\tfor (const entry of normalizedEntries) {\n\t\tpushEvent(events, {\n\t\t\ttype: 'usage',\n\t\t\tcategory: cleanText(entry.category || entry.kind || entry.phase, 160) || 'usage',\n\t\t\tmessage: cleanText(entry.summary || entry.description || entry.model || 'Model usage recorded.', 800),\n\t\t\trecordedAt: eventDate(entry),\n\t\t\tmetadata: {\n\t\t\t\tmodel: entry.model,\n\t\t\t\tinputTokens: entry.inputTokens ?? entry.input_tokens,\n\t\t\t\toutputTokens: entry.outputTokens ?? entry.output_tokens,\n\t\t\t\ttotalTokens: entry.totalTokens ?? entry.total_tokens,\n\t\t\t\testimatedUsd: entry.estimatedUsd ?? entry.cost_estimate,\n\t\t\t\tusageSource: entry.usage_source ?? entry.usageSource,\n\t\t\t\tusageSurface: entry.usage_surface ?? entry.usageSurface,\n\t\t\t\tusagePhase: entry.usage_phase ?? entry.usagePhase,\n\t\t\t\tcostBasis: entry.cost_basis ?? entry.costBasis,\n\t\t\t\tisManual: entry.is_manual ?? entry.isManual,\n\t\t\t\tisUntracked: entry.is_untracked ?? entry.isUntracked,\n\t\t\t\tuntrackedReason: entry.untracked_reason ?? entry.untrackedReason\n\t\t\t}\n\t\t});\n\t}\n\treturn buildAIRunCost(entries);\n}\n\nfunction collectCommitEvents(commits: Array<Record<string, any>>, events: AIRunEvent[]): void {\n\tfor (const commit of commits.slice(0, 80)) {\n\t\tpushEvent(events, {\n\t\t\ttype: 'git_commit',\n\t\t\tmessage: cleanText(commit.message || commit.subject || commit.title || commit.hash || commit.sha, 1200),\n\t\t\trecordedAt: eventDate(commit),\n\t\t\tmetadata: {\n\t\t\t\tsha: commit.sha || commit.hash,\n\t\t\t\tbranch: commit.branch,\n\t\t\t\tauthor: commit.author\n\t\t\t}\n\t\t});\n\t}\n}\n\nfunction statusFromBoolean(value: any, fallback?: string): string | undefined {\n\tif (value === true) {\n\t\treturn 'pass';\n\t}\n\tif (value === false) {\n\t\treturn 'fail';\n\t}\n\treturn fallback;\n}\n\nfunction collectArtifacts(evidence: Record<string, any> | undefined): AIQaArtifact[] {\n\tconst artifacts: AIQaArtifact[] = [];\n\tfor (const entry of asArray<any>(evidence?.artifacts)) {\n\t\tartifacts.push({\n\t\t\ttype: entry.type || 'other',\n\t\t\tpath: cleanText(entry.path || entry.file || entry.artifactPath, 500),\n\t\t\turl: cleanText(entry.url, 500),\n\t\t\ttitle: cleanText(entry.title || entry.name, 300),\n\t\t\tcaption: cleanText(entry.caption || entry.message, 800),\n\t\t\tmetadata: entry.metadata\n\t\t});\n\t}\n\tconst screenshots = asArray<any>(evidence?.screenshots || evidence?.qaScreenshots || evidence?.browserScreenshots);\n\tfor (const screenshot of screenshots.slice(0, 40)) {\n\t\tif (typeof screenshot === 'string') {\n\t\t\tartifacts.push({ type: 'screenshot', path: screenshot });\n\t\t} else {\n\t\t\tartifacts.push({\n\t\t\t\ttype: 'screenshot',\n\t\t\t\tpath: cleanText(screenshot.path || screenshot.file, 500),\n\t\t\t\turl: cleanText(screenshot.url, 500),\n\t\t\t\ttitle: cleanText(screenshot.title || screenshot.route, 300),\n\t\t\t\tcaption: cleanText(screenshot.caption || screenshot.message, 800),\n\t\t\t\tmetadata: screenshot.metadata\n\t\t\t});\n\t\t}\n\t}\n\tconst artifactRefs = [\n\t\t...asArray<any>(evidence?.artifactPaths),\n\t\t...asArray<any>(evidence?.artifact_paths),\n\t\t...asArray<any>(evidence?.runnerEvidenceArtifacts),\n\t\t...asArray<any>(evidence?.runner_evidence_artifacts),\n\t\t...asArray<any>(evidence?.supportQaArtifacts),\n\t\t...asArray<any>(evidence?.support_qa_artifacts),\n\t\t...asArray<any>(evidence?.qa_artifacts)\n\t];\n\tfor (const entry of artifactRefs.slice(0, 60)) {\n\t\tif (typeof entry === 'string') {\n\t\t\tartifacts.push({ type: 'other', path: cleanText(entry, 500) });\n\t\t}\n\t\telse if (entry && typeof entry === 'object') {\n\t\t\tartifacts.push({\n\t\t\t\ttype: entry.type || 'other',\n\t\t\t\tpath: cleanText(entry.path || entry.file || entry.artifactPath || entry.artifact_path, 500),\n\t\t\t\turl: cleanText(entry.url, 500),\n\t\t\t\ttitle: cleanText(entry.title || entry.name || entry.label, 300),\n\t\t\t\tcaption: cleanText(entry.caption || entry.message || entry.summary, 800),\n\t\t\t\tmetadata: entry.metadata\n\t\t\t});\n\t\t}\n\t}\n\treturn artifacts;\n}\n\nfunction collectInfraChecks(evidence: Record<string, any> | undefined): AIQaInfraCheck[] {\n\tconst checks: AIQaInfraCheck[] = [];\n\tfor (const entry of asArray<any>(evidence?.infraChecks || evidence?.preflightChecks)) {\n\t\tchecks.push({\n\t\t\tname: cleanText(entry.name || entry.check || entry.key, 160) || 'infra_check',\n\t\t\tstatus: entry.status || statusFromBoolean(entry.passed),\n\t\t\tmessage: cleanText(entry.message || entry.error || entry.reason, 1000),\n\t\t\tpath: cleanText(entry.path, 500),\n\t\t\tdurationMs: Number(entry.durationMs ?? entry.duration_ms) || undefined,\n\t\t\tmetadata: entry.metadata,\n\t\t\tcheckedAt: eventDate(entry)\n\t\t});\n\t}\n\tif (evidence?.preflightStatus) {\n\t\tchecks.push({\n\t\t\tname: 'qa_preflight',\n\t\t\tstatus: evidence.preflightStatus,\n\t\t\tmessage: cleanText(evidence.preflightMessage || evidence.preflightReason, 1000),\n\t\t\tpath: cleanText(evidence.preflightArtifactPath || evidence.preflightPath, 500)\n\t\t});\n\t}\n\treturn checks;\n}\n\nfunction collectCompileResult(evidence: Record<string, any> | undefined): AIQaCompileResult | undefined {\n\tconst build = evidence?.compile || evidence?.build || evidence?.buildEvidence || evidence?.buildResult;\n\tif (!build && evidence?.compileStatus === undefined && evidence?.buildStatus === undefined) {\n\t\treturn undefined;\n\t}\n\tconst status = build?.status\n\t\t|| evidence?.compileStatus\n\t\t|| evidence?.buildStatus\n\t\t|| statusFromBoolean(build?.passed ?? build?.allExpectedPassed ?? evidence?.buildPassed);\n\treturn {\n\t\tstatus,\n\t\tcommand: cleanText(build?.command || evidence?.buildCommand, 500),\n\t\tartifactPath: cleanText(build?.artifactPath || build?.logPath || evidence?.buildLogPath, 500),\n\t\tmessage: cleanText(build?.message || build?.error || evidence?.buildMessage, 1000),\n\t\tdurationMs: Number(build?.durationMs ?? build?.duration_ms) || undefined,\n\t\tstaleEvidence: build?.staleEvidence === true || evidence?.staleBuildEvidence === true,\n\t\trecordedAt: eventDate(build || evidence || {})\n\t};\n}\n\nfunction collectRouteProbes(evidence: Record<string, any> | undefined): AIQaRouteProbe[] {\n\tconst probes: AIQaRouteProbe[] = [];\n\tconst rows = [\n\t\t...asArray<any>(evidence?.routeProbes),\n\t\t...asArray<any>(evidence?.route_probes),\n\t\t...asArray<any>(evidence?.routes),\n\t\t...asArray<any>(evidence?.browserRoutes),\n\t\t...asArray<any>(evidence?.browser_routes),\n\t\t...asArray<any>(evidence?.workflowProbes),\n\t\t...asArray<any>(evidence?.workflow_probes)\n\t];\n\tconst directProbe = plainObject(evidence?.routeProbe || evidence?.route_probe || evidence?.workflowProbe || evidence?.workflow_probe);\n\tif (Object.keys(directProbe).length) {\n\t\trows.push(directProbe);\n\t}\n\tfor (const entry of rows) {\n\t\tprobes.push({\n\t\t\troute: cleanText(entry.route || entry.path || entry.url, 500) || '/',\n\t\t\tstatus: entry.status || statusFromBoolean(entry.passed),\n\t\t\tscreenshot: cleanText(entry.screenshot || entry.screenshotPath, 500),\n\t\t\tcaption: cleanText(entry.caption || entry.message, 1000),\n\t\t\tshellOnly: entry.shellOnly === true,\n\t\t\tauthenticated: entry.authenticated === true,\n\t\t\tconsoleErrors: asArray<string>(entry.consoleErrors),\n\t\t\tnetworkErrors: asArray<string>(entry.networkErrors),\n\t\t\tmessage: cleanText(entry.message || entry.error, 1000),\n\t\t\trecordedAt: eventDate(entry)\n\t\t});\n\t}\n\tconst screenshots = asArray<any>(evidence?.screenshots || evidence?.qaScreenshots || evidence?.browserScreenshots);\n\tfor (const screenshot of screenshots.slice(0, 20)) {\n\t\tif (typeof screenshot === 'string') {\n\t\t\tprobes.push({ route: '/', status: 'pass', screenshot, caption: 'Historical browser screenshot recorded.' });\n\t\t} else if (screenshot.route || screenshot.path || screenshot.url || screenshot.screenshot || screenshot.file) {\n\t\t\tprobes.push({\n\t\t\t\troute: cleanText(screenshot.route || screenshot.url || screenshot.path, 500) || '/',\n\t\t\t\tstatus: screenshot.status || statusFromBoolean(screenshot.passed, 'pass'),\n\t\t\t\tscreenshot: cleanText(screenshot.screenshot || screenshot.screenshotPath || screenshot.file || screenshot.path, 500),\n\t\t\t\tcaption: cleanText(screenshot.caption || screenshot.message, 1000),\n\t\t\t\tshellOnly: screenshot.shellOnly === true,\n\t\t\t\tauthenticated: screenshot.authenticated === true,\n\t\t\t\trecordedAt: eventDate(screenshot)\n\t\t\t});\n\t\t}\n\t}\n\treturn probes;\n}\n\nfunction collectBusinessAssertions(evidence: Record<string, any> | undefined): AIQaBusinessAssertion[] {\n\tconst assertions: AIQaBusinessAssertion[] = [];\n\tconst rows = [\n\t\t...asArray<any>(evidence?.businessAssertions),\n\t\t...asArray<any>(evidence?.business_assertions),\n\t\t...asArray<any>(evidence?.workflowAssertions),\n\t\t...asArray<any>(evidence?.workflow_assertions),\n\t\t...asArray<any>(evidence?.assertions),\n\t\t...asArray<any>(evidence?.qaRows),\n\t\t...asArray<any>(evidence?.qa_rows),\n\t\t...asArray<any>(evidence?.rows),\n\t\t...asArray<any>(evidence?.supportQaAssertions),\n\t\t...asArray<any>(evidence?.support_qa_assertions),\n\t\t...asArray<any>(evidence?.aiQaBusinessAssertions),\n\t\t...asArray<any>(evidence?.ai_qa_business_assertions)\n\t];\n\tfor (const entry of rows) {\n\t\tassertions.push({\n\t\t\tassertion: cleanText(entry.assertion || entry.name || entry.label || entry.workflow || entry.expected, 1000) || 'business assertion',\n\t\t\tstatus: entry.status || entry.outcome || entry.result || statusFromBoolean(entry.passed),\n\t\t\tworkflow: cleanText(entry.workflow || entry.workflowName || entry.workflow_name, 400),\n\t\t\troute: cleanText(entry.route || entry.url, 500),\n\t\t\taction: cleanText(entry.action || entry.action_under_test || entry.actionUnderTest, 500),\n\t\t\texpected: cleanText(entry.expected || entry.expected_business_state_change || entry.expectedBusinessStateChange, 1000),\n\t\t\tobserved: cleanText(entry.observed || entry.actual || entry.after || entry.after_state || entry.afterState, 1000),\n\t\t\tdataProof: cleanText(entry.dataProof || entry.data_proof || entry.domProof || entry.dom_proof || entry.proof || entry.summary, 1400),\n\t\t\tmongoDelta: plainObject(entry.mongoDelta || entry.mongo_delta),\n\t\t\tartifactPaths: cleanStringList(entry.artifactPaths || entry.artifact_paths || entry.artifacts || entry.screenshots || (entry.screenshot ? [entry.screenshot] : []), 30, 500),\n\t\t\tmessage: cleanText(entry.message || entry.error || entry.reason, 1000),\n\t\t\trecordedAt: eventDate(entry),\n\t\t\tmetadata: {\n\t\t\t\t...plainObject(entry.metadata),\n\t\t\t\t...(entry.acceptanceBlocked === true || entry.acceptance_blocked === true ? { acceptanceBlocked: true } : {}),\n\t\t\t\t...(entry.routeOnly === true || entry.route_only === true ? { routeOnly: true } : {})\n\t\t\t}\n\t\t});\n\t}\n\tif (!assertions.length && evidence?.qaRunOutcome === 'business_assertion_passed') {\n\t\tassertions.push({\n\t\t\tassertion: cleanText(evidence.aiRunOutcomeReason || evidence.reason || 'Historical business assertion passed.', 1000),\n\t\t\tstatus: 'pass',\n\t\t\tdataProof: cleanText(evidence.aiRunOutcomeReason || evidence.reason, 1400)\n\t\t});\n\t}\n\tif (!assertions.length && evidence?.qaRunOutcome === 'business_assertion_failed') {\n\t\tassertions.push({\n\t\t\tassertion: cleanText(evidence.aiRunOutcomeReason || evidence.reason || 'Historical business assertion failed.', 1000),\n\t\t\tstatus: 'fail',\n\t\t\tobserved: cleanText(evidence.aiRunOutcomeReason || evidence.reason, 1000)\n\t\t});\n\t}\n\treturn assertions;\n}\n\nfunction buildQaFromEvidence(evidence: Record<string, any> | undefined, now?: Date | string): AIQaRun {\n\treturn buildAIQaRun({\n\t\tinfraChecks: collectInfraChecks(evidence),\n\t\tcompile: collectCompileResult(evidence),\n\t\trouteProbes: collectRouteProbes(evidence),\n\t\tbusinessAssertions: collectBusinessAssertions(evidence),\n\t\tartifacts: collectArtifacts(evidence),\n\t\tnow\n\t});\n}\n\nfunction isoNow(value?: Date | string): string {\n\tif (value instanceof Date) {\n\t\treturn value.toISOString();\n\t}\n\tif (value) {\n\t\tconst parsed = new Date(value);\n\t\tif (!Number.isNaN(parsed.getTime())) {\n\t\t\treturn parsed.toISOString();\n\t\t}\n\t}\n\treturn new Date().toISOString();\n}\n\nfunction normalizeMatchText(value: any): string {\n\treturn cleanText(value, 3000)\n\t\t.toLowerCase()\n\t\t.replace(/[^a-z0-9]+/g, ' ')\n\t\t.replace(/\\s+/g, ' ')\n\t\t.trim();\n}\n\nfunction importantTokens(value: any): Set<string> {\n\tconst stopWords = new Set([\n\t\t'the', 'and', 'that', 'with', 'from', 'after', 'before', 'when', 'then', 'this', 'must',\n\t\t'should', 'will', 'only', 'into', 'have', 'has', 'are', 'was', 'were', 'been'\n\t]);\n\treturn new Set(normalizeMatchText(value).split(' ')\n\t\t.filter((token) => token.length >= 4 && !stopWords.has(token)));\n}\n\nfunction businessAssertionPassed(assertion: AIQaBusinessAssertion): boolean {\n\treturn /^(pass|passed|success|ok|done)$/i.test(cleanText(assertion.status, 40));\n}\n\nfunction supportAssertionMatchesDiagnosisProof(assertion: AIQaBusinessAssertion, proofPlan: Record<string, any>): boolean {\n\tconst metadata = assertion.metadata || {};\n\tif (metadata.diagnosisProofPlanMatched === true || metadata.proofPlanMatched === true || metadata.supportDiagnosisProof === true) {\n\t\treturn true;\n\t}\n\tconst requiredBusinessAssertion = proofPlan.business_assertion || proofPlan.businessAssertion;\n\tconst proofParts = [\n\t\trequiredBusinessAssertion,\n\t\tproofPlan.after,\n\t\tproofPlan.data_assertion || proofPlan.dataAssertion,\n\t\tproofPlan.artifact_expectation || proofPlan.artifactExpectation\n\t].map((part) => normalizeMatchText(part)).filter((part) => part.length >= 16);\n\tif (!proofParts.length) {\n\t\treturn true;\n\t}\n\tconst assertionText = normalizeMatchText([\n\t\tassertion.assertion,\n\t\tassertion.workflow,\n\t\tassertion.action,\n\t\tassertion.expected,\n\t\tassertion.observed,\n\t\tassertion.dataProof,\n\t\tassertion.message\n\t].filter(Boolean).join(' '));\n\tif (proofParts.some((part) => assertionText.includes(part))) {\n\t\treturn true;\n\t}\n\tconst proofTokens = importantTokens([\n\t\trequiredBusinessAssertion,\n\t\tproofPlan.after,\n\t\tproofPlan.data_assertion || proofPlan.dataAssertion\n\t].filter(Boolean).join(' '));\n\tconst assertionTokens = importantTokens(assertionText);\n\tif (!proofTokens.size) {\n\t\treturn true;\n\t}\n\tlet overlap = 0;\n\tfor (const token of proofTokens) {\n\t\tif (assertionTokens.has(token)) {\n\t\t\toverlap += 1;\n\t\t}\n\t}\n\treturn overlap >= Math.min(4, Math.max(3, Math.ceil(proofTokens.size * 0.45)));\n}\n\nfunction supportDiagnosisProofGateResult(diagnosisGate: Record<string, any>, now?: Date | string): AIRunGateResult {\n\tconst proofPlan = diagnosisGate.proof_plan || diagnosisGate.proofPlan || {};\n\treturn {\n\t\tkey: 'support_diagnosis_business_proof',\n\t\tlabel: 'Diagnosis proof plan',\n\t\tstatus: 'blocked',\n\t\treason: 'Support business assertion did not map to the diagnosis proof_plan. Route proof or generic workflow proof cannot accept the ticket.',\n\t\tevidenceRefs: [],\n\t\trecordedAt: isoNow(now),\n\t\tmetadata: {\n\t\t\tissueClass: cleanText(diagnosisGate.issue_class || diagnosisGate.issueClass, 120),\n\t\t\trequiredBusinessAssertion: cleanText(proofPlan.business_assertion || proofPlan.businessAssertion, 1000),\n\t\t\trequiredAfter: cleanText(proofPlan.after, 1000),\n\t\t\trequiredDataAssertion: cleanText(proofPlan.data_assertion || proofPlan.dataAssertion, 1000)\n\t\t}\n\t};\n}\n\nconst SUPPORT_ROOT_CAUSE_ENTRY_REQUIRED_FIELDS = [\n\t'issue_case',\n\t'issue_class',\n\t'accepted_hypothesis',\n\t'rejected_alternatives',\n\t'failing_path',\n\t'owner_files',\n\t'proof_plan',\n\t'evidence'\n];\n\nconst SUPPORT_ROOT_CAUSE_ENTRY_ISSUE_CLASSES = [\n\t'no_op_submit',\n\t'missing_wrong_data',\n\t'filter_query_mismatch',\n\t'invoice_pdf_export',\n\t'upload_import',\n\t'route_auth_hydration',\n\t'slow_query_performance'\n];\n\nfunction supportRootCauseEntryContractGate(contract: Record<string, any>, now?: Date | string): AIRunGateResult | undefined {\n\tif (!contract || !Object.keys(contract).length) {\n\t\treturn undefined;\n\t}\n\tconst requiredOutput = plainObject(contract.required_output || contract.requiredOutput);\n\tconst ownerPolicy = plainObject(contract.owner_file_policy || contract.ownerFilePolicy);\n\tconst businessProofPolicy = plainObject(contract.business_proof_policy || contract.businessProofPolicy);\n\tconst failurePolicy = plainObject(contract.failure_policy || contract.failurePolicy);\n\tconst probes = asArray<Record<string, any>>(contract.issue_class_probes || contract.issueClassProbes);\n\tconst requiredFields = cleanStringList(requiredOutput.required_fields || requiredOutput.requiredFields, 30, 160);\n\tconst issueClasses = probes.map((probe) => cleanText(probe.issue_class || probe.issueClass, 120)).filter(Boolean);\n\tconst missingRequiredFields = SUPPORT_ROOT_CAUSE_ENTRY_REQUIRED_FIELDS.filter((field) => !requiredFields.includes(field));\n\tconst missingIssueClasses = SUPPORT_ROOT_CAUSE_ENTRY_ISSUE_CLASSES.filter((issueClass) => !issueClasses.includes(issueClass));\n\tconst blockers: string[] = [];\n\tif (!cleanText(contract.contract_id || contract.contractId, 160)) {\n\t\tblockers.push('Root-cause entry contract is missing contract_id.');\n\t}\n\tif (cleanText(requiredOutput.object_key || requiredOutput.objectKey, 120) !== 'support_diagnosis_gate') {\n\t\tblockers.push('Root-cause entry contract must require support_diagnosis_gate output.');\n\t}\n\tif (missingRequiredFields.length) {\n\t\tblockers.push(`Root-cause entry contract missing required output fields: ${missingRequiredFields.join(', ')}.`);\n\t}\n\tconst ownerFileMax = Number(ownerPolicy.max_files || ownerPolicy.maxFiles || 0);\n\tif (!Number.isFinite(ownerFileMax) || ownerFileMax <= 0 || ownerFileMax > 12) {\n\t\tblockers.push('Root-cause entry contract must cap owner_files to a small exact file set.');\n\t}\n\tif (ownerPolicy.edits_outside_owner_files_require_revised_diagnosis !== true && ownerPolicy.editsOutsideOwnerFilesRequireRevisedDiagnosis !== true) {\n\t\tblockers.push('Root-cause entry contract must require revised diagnosis before edits outside owner_files.');\n\t}\n\tif (businessProofPolicy.requires_aiqa_business_assertion !== true && businessProofPolicy.requiresAiqaBusinessAssertion !== true) {\n\t\tblockers.push('Root-cause entry contract must require AIQaBusinessAssertion business proof.');\n\t}\n\tif (businessProofPolicy.route_load_screenshot_scorecard_model_claim_not_acceptance !== true && businessProofPolicy.routeLoadScreenshotScorecardModelClaimNotAcceptance !== true) {\n\t\tblockers.push('Root-cause entry contract must reject route-load/screenshot/scorecard/model-claim acceptance.');\n\t}\n\tif (failurePolicy.repeated_failure_without_new_evidence_parks_run !== true && failurePolicy.repeatedFailureWithoutNewEvidenceParksRun !== true) {\n\t\tblockers.push('Root-cause entry contract must park repeated failures without new evidence.');\n\t}\n\tif (missingIssueClasses.length) {\n\t\tblockers.push(`Root-cause entry contract missing issue-class probes: ${missingIssueClasses.join(', ')}.`);\n\t}\n\tconst status: AIRunGateResult['status'] = blockers.length ? 'fail' : 'pass';\n\treturn {\n\t\tkey: 'support_root_cause_entry_contract',\n\t\tlabel: 'Root-cause entry contract',\n\t\tstatus,\n\t\treason: blockers.length\n\t\t\t? blockers.join(' ')\n\t\t\t: 'Support run has a structured root-cause-first entry contract with issue-class probes, owner-file policy, and business-proof policy.',\n\t\tevidenceRefs: cleanStringList(businessProofPolicy.required_artifacts || businessProofPolicy.requiredArtifacts, 20, 500),\n\t\trecordedAt: isoNow(now),\n\t\tmetadata: {\n\t\t\tcontractId: cleanText(contract.contract_id || contract.contractId, 160),\n\t\t\tversion: cleanText(contract.version, 120),\n\t\t\tstatus: cleanText(contract.status, 120),\n\t\t\trequiredOutputKey: cleanText(requiredOutput.object_key || requiredOutput.objectKey, 120),\n\t\t\trequiredFields,\n\t\t\tmissingRequiredFields,\n\t\t\townerFileMax,\n\t\t\trequiresRevisedDiagnosisForOutOfScopeEdits: ownerPolicy.edits_outside_owner_files_require_revised_diagnosis === true || ownerPolicy.editsOutsideOwnerFilesRequireRevisedDiagnosis === true,\n\t\t\trequiresBusinessAssertion: businessProofPolicy.requires_aiqa_business_assertion === true || businessProofPolicy.requiresAiqaBusinessAssertion === true,\n\t\t\trouteOnlyAcceptanceRejected: businessProofPolicy.route_load_screenshot_scorecard_model_claim_not_acceptance === true || businessProofPolicy.routeLoadScreenshotScorecardModelClaimNotAcceptance === true,\n\t\t\tissueClassProbeCount: issueClasses.length,\n\t\t\tissueClasses,\n\t\t\tmissingIssueClasses\n\t\t}\n\t};\n}\n\nfunction applySupportDiagnosisProofGate(qa: AIQaRun, diagnosisGate: Record<string, any>, now?: Date | string): AIQaRun {\n\tconst proofPlan = diagnosisGate.proof_plan || diagnosisGate.proofPlan || {};\n\tconst requiredBusinessAssertion = cleanText(proofPlan.business_assertion || proofPlan.businessAssertion, 1000);\n\tconst requiredAfter = cleanText(proofPlan.after, 1000);\n\tif (!Object.keys(proofPlan).length || (!requiredBusinessAssertion && !requiredAfter)) {\n\t\treturn qa;\n\t}\n\tconst passedAssertions = qa.businessAssertions.filter(businessAssertionPassed);\n\tif (!passedAssertions.length) {\n\t\treturn qa;\n\t}\n\tif (passedAssertions.some((assertion) => supportAssertionMatchesDiagnosisProof(assertion, proofPlan))) {\n\t\treturn qa;\n\t}\n\tconst gate = supportDiagnosisProofGateResult(diagnosisGate, now);\n\treturn {\n\t\t...qa,\n\t\toutcome: qa.routeProbes.some((probe) => /^(pass|passed|success|ok|done)$/i.test(cleanText(probe.status, 40)))\n\t\t\t? 'route_only_pass'\n\t\t\t: 'incomplete',\n\t\tgateResults: [\n\t\t\t...qa.gateResults.filter((existing) => !(existing.key === 'qa_business_assertion' && existing.status === 'pass')),\n\t\t\tgate\n\t\t]\n\t};\n}\n\nfunction evidenceObject(...values: any[]): Record<string, any> {\n\tfor (const value of values) {\n\t\tif (value && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\treturn value;\n\t\t}\n\t}\n\treturn {};\n}\n\nfunction mergeEvidenceRecords(...values: any[]): Record<string, any> {\n\tconst merged: Record<string, any> = {};\n\tfor (const value of values) {\n\t\tconst source = plainObject(value);\n\t\tfor (const [key, entry] of Object.entries(source)) {\n\t\t\tif (entry === undefined || entry === null || entry === '') {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (Array.isArray(entry)) {\n\t\t\t\tmerged[key] = [...asArray(merged[key]), ...entry];\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (plainObject(entry) === entry && plainObject(merged[key]) === merged[key]) {\n\t\t\t\tmerged[key] = { ...merged[key], ...entry };\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tmerged[key] = entry;\n\t\t}\n\t}\n\treturn merged;\n}\n\nfunction buildSupportQaEvidence(input: SupportAIRunAdapterInput): Record<string, any> {\n\tconst job = input.job || {};\n\tconst ticket = input.ticket || {};\n\tconst qaCursor = plainObject(job.supportQaValidationCursor || job.support_qa_validation_cursor);\n\tconst autonomousDecision = plainObject(job.supportV5AutonomousDecision || job.support_v5_autonomous_decision);\n\tconst businessProofReadiness = plainObject(\n\t\tautonomousDecision.businessProofReadiness\n\t\t|| autonomousDecision.business_proof_readiness\n\t\t|| job.businessProofReadiness\n\t\t|| job.business_proof_readiness\n\t);\n\tconst customerReplyPolicy = plainObject(\n\t\tautonomousDecision.customerReplyPolicy\n\t\t|| autonomousDecision.customer_reply_policy\n\t\t|| job.customerReplyPolicy\n\t\t|| job.customer_reply_policy\n\t);\n\tconst humanReviewPacket = plainObject(\n\t\tautonomousDecision.humanReviewPacket\n\t\t|| autonomousDecision.human_review_packet\n\t\t|| customerReplyPolicy.humanReviewPacket\n\t\t|| customerReplyPolicy.human_review_packet\n\t\t|| job.humanReviewPacket\n\t\t|| job.human_review_packet\n\t);\n\tconst evidence = mergeEvidenceRecords(\n\t\tqaCursor,\n\t\tjob.qaEvidence,\n\t\tjob.qa_evidence,\n\t\tticket.qaEvidence,\n\t\tticket.qa_evidence,\n\t\tinput.qaEvidence\n\t);\n\tevidence.supportQaAssertions = [\n\t\t...asArray(job.supportQaAssertions),\n\t\t...asArray(job.support_qa_assertions),\n\t\t...asArray(evidence.supportQaAssertions)\n\t];\n\tevidence.aiQaBusinessAssertions = [\n\t\t...asArray(job.aiQaBusinessAssertions),\n\t\t...asArray(job.ai_qa_business_assertions),\n\t\t...asArray(evidence.aiQaBusinessAssertions)\n\t];\n\tevidence.runnerEvidenceArtifacts = [\n\t\t...asArray(job.runnerEvidenceArtifacts),\n\t\t...asArray(job.runner_evidence_artifacts),\n\t\t...asArray(evidence.runnerEvidenceArtifacts)\n\t];\n\tevidence.supportQaArtifacts = [\n\t\t...asArray(job.supportQaArtifacts),\n\t\t...asArray(job.support_qa_artifacts),\n\t\t...asArray(job.qa_artifacts),\n\t\t...asArray(evidence.supportQaArtifacts)\n\t];\n\tif (Object.keys(businessProofReadiness).length) {\n\t\tevidence.businessProofReadiness = businessProofReadiness;\n\t}\n\tif (Object.keys(customerReplyPolicy).length) {\n\t\tevidence.customerReplyPolicy = {\n\t\t\t...customerReplyPolicy,\n\t\t\t...(Object.keys(humanReviewPacket).length ? { humanReviewPacket } : {})\n\t\t};\n\t}\n\telse if (Object.keys(humanReviewPacket).length) {\n\t\tevidence.customerReplyPolicy = { humanReviewPacket };\n\t}\n\treturn evidence;\n}\n\nfunction supportBusinessProofReadinessGate(\n\treadiness: Record<string, any>,\n\tnow?: Date | string\n): AIRunGateResult | undefined {\n\tif (!readiness || !Object.keys(readiness).length) {\n\t\treturn undefined;\n\t}\n\tconst ready = readiness.ready === true;\n\tconst readinessStatus = cleanText(readiness.status, 120).toLowerCase();\n\tconst blockers = cleanStringList(readiness.blockers, 20, 500);\n\tconst artifactPaths = cleanStringList(readiness.artifactPaths || readiness.artifact_paths, 40, 500);\n\tconst proofFingerprint = cleanText(readiness.proofFingerprint || readiness.proof_fingerprint, 160);\n\tconst artifactFingerprint = cleanText(readiness.artifactFingerprint || readiness.artifact_fingerprint, 160);\n\tconst proofFreshness = cleanText(readiness.proofFreshness || readiness.proof_freshness, 120);\n\tconst status: AIRunGateResult['status'] = ready\n\t\t? 'pass'\n\t\t: /fail|failed/.test(readinessStatus)\n\t\t\t? 'fail'\n\t\t\t: /missing|route_only|blocked|weak|stale|incomplete/.test(readinessStatus)\n\t\t\t\t? 'blocked'\n\t\t\t\t: 'warn';\n\treturn {\n\t\tkey: 'support_business_proof_readiness',\n\t\tlabel: 'Support business proof readiness',\n\t\tstatus,\n\t\treason: cleanText(readiness.reason || blockers.join('; ') || readinessStatus || 'Support business proof readiness recorded.', 1200),\n\t\tevidenceRefs: artifactPaths,\n\t\trecordedAt: isoNow(now || readiness.recordedAt || readiness.recorded_at),\n\t\tmetadata: {\n\t\t\tready,\n\t\t\tstatus: readinessStatus,\n\t\t\tblockers,\n\t\t\trequiredEvidence: cleanStringList(readiness.requiredEvidence || readiness.required_evidence, 20, 500),\n\t\t\tproofFingerprint,\n\t\t\tartifactFingerprint,\n\t\t\tproofFreshness\n\t\t}\n\t};\n}\n\nfunction supportCustomerReplyPolicyGate(\n\tpolicy: Record<string, any>,\n\tnow?: Date | string\n): AIRunGateResult | undefined {\n\tif (!policy || !Object.keys(policy).length) {\n\t\treturn undefined;\n\t}\n\tconst action = cleanText(policy.action, 120);\n\tconst safety = cleanText(policy.safety, 120);\n\tconst reason = cleanText(policy.reason, 1200);\n\tconst canDraft = policy.canDraftCustomerReply === true || policy.can_draft_customer_reply === true;\n\tconst canSend = policy.canSendCustomerReply === true || policy.can_send_customer_reply === true;\n\tconst reviewPacket = plainObject(policy.humanReviewPacket || policy.human_review_packet);\n\tconst reviewType = cleanText(reviewPacket.reviewType || reviewPacket.review_type, 160);\n\tconst evidenceRefs = cleanStringList(reviewPacket.evidenceRefs || reviewPacket.evidence_refs, 40, 500);\n\tconst blockers = cleanStringList(policy.blockers || reviewPacket.blockers, 20, 500);\n\tconst gateStatus: AIRunGateResult['status'] = canSend\n\t\t? 'blocked'\n\t\t: action === 'draft_resolution_reply' && canDraft\n\t\t\t? 'warn'\n\t\t\t: action === 'ask_clarification' && canDraft\n\t\t\t\t? 'warn'\n\t\t\t\t: 'blocked';\n\treturn {\n\t\tkey: 'support_customer_reply_policy',\n\t\tlabel: 'Support customer reply policy',\n\t\tstatus: gateStatus,\n\t\treason: reason || action || 'Support customer reply policy recorded.',\n\t\tevidenceRefs,\n\t\trecordedAt: isoNow(now || policy.recordedAt || policy.recorded_at || reviewPacket.createdAt || reviewPacket.created_at),\n\t\tmetadata: {\n\t\t\taction,\n\t\t\tsafety,\n\t\t\tcanDraftCustomerReply: canDraft,\n\t\t\tcanSendCustomerReply: canSend,\n\t\t\tconfidenceLevel: cleanText(policy.confidenceLevel || policy.confidence_level, 120),\n\t\t\treviewType,\n\t\t\tprimaryAction: cleanText(reviewPacket.primaryAction || reviewPacket.primary_action, 160),\n\t\t\trequiresHumanApproval: reviewPacket.requiresHumanApproval !== false && reviewPacket.requires_human_approval !== false,\n\t\t\tquestionPresent: !!cleanText(policy.clarificationQuestion || policy.clarification_question || reviewPacket.question, 1000),\n\t\t\tblockers\n\t\t}\n\t};\n}\n\nfunction firstNonEmptyText(values: any[], max = 1000): string | undefined {\n\tfor (const value of values) {\n\t\tconst normalized = idText(value, max);\n\t\tif (normalized) {\n\t\t\treturn normalized;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction buildAICoderQaEvidence(input: AICoderAIRunAdapterInput): Record<string, any> {\n\tconst app = input.app || {};\n\tconst job = input.job || {};\n\tconst workflowMemory = plainObject(\n\t\tjob.aiCoderV6WorkflowMemory\n\t\t|| job.ai_coder_v6_workflow_memory\n\t\t|| app.aiCoderV6WorkflowMemory\n\t\t|| app.ai_coder_v6_workflow_memory\n\t);\n\tconst evidence = mergeEvidenceRecords(\n\t\tjob.qaEvidence,\n\t\tjob.qa_evidence,\n\t\tapp.qaEvidence,\n\t\tapp.qa_evidence,\n\t\tinput.qaEvidence\n\t);\n\tevidence.workflowQaRows = [\n\t\t...asArray(workflowMemory.workflowQaRows),\n\t\t...asArray(workflowMemory.workflow_qa_rows),\n\t\t...asArray(job.workflowQaRows),\n\t\t...asArray(job.workflow_qa_rows),\n\t\t...asArray(app.workflowQaRows),\n\t\t...asArray(app.workflow_qa_rows),\n\t\t...asArray(evidence.workflowQaRows),\n\t\t...asArray(evidence.workflow_qa_rows)\n\t];\n\tevidence.businessAssertions = [\n\t\t...asArray(job.aiQaBusinessAssertions),\n\t\t...asArray(job.ai_qa_business_assertions),\n\t\t...asArray(job.businessAssertions),\n\t\t...asArray(job.business_assertions),\n\t\t...asArray(app.businessAssertions),\n\t\t...asArray(app.business_assertions),\n\t\t...asArray(evidence.businessAssertions),\n\t\t...asArray(evidence.business_assertions)\n\t];\n\tevidence.routeProbes = [\n\t\t...asArray(job.workflowProbes),\n\t\t...asArray(job.workflow_probes),\n\t\t...asArray(evidence.routeProbes),\n\t\t...asArray(evidence.route_probes)\n\t];\n\tevidence.artifactPaths = [\n\t\t...asArray(workflowMemory.businessProofArtifacts),\n\t\t...asArray(workflowMemory.business_proof_artifacts),\n\t\t...asArray(job.artifactPaths),\n\t\t...asArray(job.artifact_paths),\n\t\t...asArray(app.artifactPaths),\n\t\t...asArray(app.artifact_paths),\n\t\t...asArray(evidence.artifactPaths),\n\t\t...asArray(evidence.artifact_paths)\n\t];\n\tevidence.journeyContract = evidence.journeyContract\n\t\t|| evidence.journey_contract\n\t\t|| job.journeyContract\n\t\t|| job.journey_contract\n\t\t|| app.journeyContract\n\t\t|| app.journey_contract\n\t\t|| workflowMemory.journeyContract\n\t\t|| workflowMemory.journey_contract;\n\tevidence.journeyContractMarkdown = evidence.journeyContractMarkdown\n\t\t|| evidence.journey_contract_markdown\n\t\t|| job.journeyContractMarkdown\n\t\t|| job.journey_contract_markdown\n\t\t|| app.journeyContractMarkdown\n\t\t|| app.journey_contract_markdown;\n\tevidence.deployStatus = firstNonEmptyText([\n\t\tevidence.deployStatus,\n\t\tevidence.deploy_status,\n\t\tjob.deployStatus,\n\t\tjob.deploy_status,\n\t\tjob.testDeployStatus,\n\t\tjob.test_deploy_status,\n\t\tapp.deployStatus,\n\t\tapp.deploy_status\n\t], 160);\n\tevidence.publishStatus = firstNonEmptyText([\n\t\tevidence.publishStatus,\n\t\tevidence.publish_status,\n\t\tevidence.pullRequestStatus,\n\t\tevidence.pull_request_status,\n\t\tjob.publishStatus,\n\t\tjob.publish_status,\n\t\tjob.pullRequestStatus,\n\t\tjob.pull_request_status,\n\t\tapp.publishStatus,\n\t\tapp.publish_status\n\t], 160);\n\tevidence.sampleDataStatus = firstNonEmptyText([\n\t\tevidence.sampleDataStatus,\n\t\tevidence.sample_data_status,\n\t\tjob.sampleDataStatus,\n\t\tjob.sample_data_status,\n\t\tapp.sampleDataStatus,\n\t\tapp.sample_data_status\n\t], 160) || statusFromBoolean(evidence.sampleDataReady ?? evidence.hasSampleData ?? job.sampleDataReady ?? app.sampleDataReady);\n\treturn evidence;\n}\n\nfunction normalizeAICoderWorkflowProofReadiness(\n\tvalue: Record<string, any>,\n\tnow?: Date | string\n): ResolveIOAICoderWorkflowProofReadiness | undefined {\n\tif (!value || !Object.keys(value).length) {\n\t\treturn undefined;\n\t}\n\tconst ready = value.ready === true;\n\tconst status = cleanText(value.status, 120) || (ready ? 'ready' : 'blocked');\n\treturn {\n\t\tready,\n\t\tstatus: status as ResolveIOAICoderWorkflowProofReadiness['status'],\n\t\treason: cleanText(value.reason || value.summary || status, 1200),\n\t\tblockers: cleanStringList(value.blockers, 40, 500),\n\t\tjourneyContractValid: value.journeyContractValid === true || value.journey_contract_valid === true,\n\t\tprimaryWorkflowId: cleanText(value.primaryWorkflowId || value.primary_workflow_id, 200),\n\t\tpassedWorkflowRows: cleanStringList(value.passedWorkflowRows || value.passed_workflow_rows, 80, 300),\n\t\tmissingWorkflowRows: cleanStringList(value.missingWorkflowRows || value.missing_workflow_rows, 80, 300),\n\t\tfailedWorkflowRows: cleanStringList(value.failedWorkflowRows || value.failed_workflow_rows, 80, 300),\n\t\tpassedBusinessAssertions: cleanStringList(value.passedBusinessAssertions || value.passed_business_assertions, 80, 500),\n\t\trouteOnly: value.routeOnly === true || value.route_only === true,\n\t\tscorecardOnly: value.scorecardOnly === true || value.scorecard_only === true,\n\t\tsampleDataReady: value.sampleDataReady === true || value.sample_data_ready === true,\n\t\treleaseBlockers: cleanStringList(value.releaseBlockers || value.release_blockers, 40, 500),\n\t\tartifactPaths: cleanStringList(value.artifactPaths || value.artifact_paths, 80, 500),\n\t\tworkflowProofFingerprint: cleanText(value.workflowProofFingerprint || value.workflow_proof_fingerprint, 200),\n\t\tartifactFingerprint: cleanText(value.artifactFingerprint || value.artifact_fingerprint, 200),\n\t\tproofFreshness: cleanText(value.proofFreshness || value.proof_freshness, 80) as ResolveIOAICoderWorkflowProofReadiness['proofFreshness'],\n\t\tnextAction: cleanText(value.nextAction || value.next_action, 1000),\n\t\tevaluatedAt: isoNow(now || value.evaluatedAt || value.evaluated_at || value.recordedAt || value.recorded_at)\n\t};\n}\n\nfunction aicoderWorkflowProofReadinessGate(\n\treadiness: ResolveIOAICoderWorkflowProofReadiness,\n\tnow?: Date | string\n): AIRunGateResult {\n\tconst status: AIRunGateResult['status'] = readiness.ready\n\t\t? 'pass'\n\t\t: readiness.status === 'release_blocked' || readiness.status === 'journey_invalid' || readiness.status === 'sample_data_missing'\n\t\t\t? 'fail'\n\t\t\t: 'blocked';\n\treturn {\n\t\tkey: 'aicoder_workflow_proof_readiness',\n\t\tlabel: 'AICoder workflow proof readiness',\n\t\tstatus,\n\t\treason: readiness.reason || readiness.blockers.join('; ') || readiness.status,\n\t\tevidenceRefs: readiness.artifactPaths,\n\t\trecordedAt: isoNow(now || readiness.evaluatedAt),\n\t\tmetadata: {\n\t\t\tready: readiness.ready,\n\t\t\tstatus: readiness.status,\n\t\t\tprimaryWorkflowId: readiness.primaryWorkflowId,\n\t\t\tjourneyContractValid: readiness.journeyContractValid,\n\t\t\tblockers: readiness.blockers,\n\t\t\tpassedWorkflowRows: readiness.passedWorkflowRows,\n\t\t\tmissingWorkflowRows: readiness.missingWorkflowRows,\n\t\t\tfailedWorkflowRows: readiness.failedWorkflowRows,\n\t\t\tpassedBusinessAssertions: readiness.passedBusinessAssertions,\n\t\t\trouteOnly: readiness.routeOnly,\n\t\t\tscorecardOnly: readiness.scorecardOnly,\n\t\t\tsampleDataReady: readiness.sampleDataReady,\n\t\t\treleaseBlockers: readiness.releaseBlockers,\n\t\t\tworkflowProofFingerprint: readiness.workflowProofFingerprint,\n\t\t\tartifactFingerprint: readiness.artifactFingerprint,\n\t\t\tproofFreshness: readiness.proofFreshness,\n\t\t\tnextAction: readiness.nextAction\n\t\t}\n\t};\n}\n\nfunction adapterStatusPassed(value: any): boolean {\n\tconst normalized = cleanText(value, 120).toLowerCase();\n\treturn !!normalized && /(pass|passed|success|succeeded|ok|done|complete|completed|ready|saved|published|deployed)/i.test(normalized);\n}\n\nfunction applyAICoderWorkflowProofGate(\n\tqa: AIQaRun,\n\treadiness: ResolveIOAICoderWorkflowProofReadiness,\n\tnow?: Date | string\n): AIQaRun {\n\tif (\n\t\treadiness.ready\n\t\t|| readiness.status === 'release_blocked'\n\t\t|| qa.outcome === 'infra_failed'\n\t\t|| qa.outcome === 'compile_failed'\n\t\t|| qa.outcome === 'route_failed'\n\t\t|| qa.outcome === 'business_assertion_failed'\n\t) {\n\t\treturn qa;\n\t}\n\tconst gate = aicoderWorkflowProofReadinessGate(readiness, now);\n\treturn {\n\t\t...qa,\n\t\toutcome: qa.routeProbes.some((probe) => adapterStatusPassed(probe.status))\n\t\t\t? 'route_only_pass'\n\t\t\t: 'incomplete',\n\t\tgateResults: [\n\t\t\t...qa.gateResults.filter((existing) => !(existing.key === 'qa_business_assertion' && existing.status === 'pass')),\n\t\t\tgate\n\t\t]\n\t};\n}\n\nfunction assistantQualityObject(input: AssistantAIRunAdapterInput): Record<string, any> {\n\tconst conversation = input.conversation || {};\n\tconst latestAssistantMessage = [...asArray<Record<string, any>>(input.messages)]\n\t\t.reverse()\n\t\t.find((message) => /assistant/i.test(cleanText(message.role || message.authorRole || message.type, 80)));\n\treturn plainObject(\n\t\tinput.answerQuality\n\t\t|| conversation.answerQuality\n\t\t|| conversation.answer_quality\n\t\t|| conversation.assistantAnswerQuality\n\t\t|| conversation.assistant_answer_quality\n\t\t|| latestAssistantMessage?.answerQuality\n\t\t|| latestAssistantMessage?.answer_quality\n\t\t|| latestAssistantMessage?.metadata?.answerQuality\n\t\t|| latestAssistantMessage?.metadata?.answer_quality\n\t);\n}\n\nfunction assistantConfidenceLevel(value: any): AssistantAnswerQualityDecision['confidenceLevel'] {\n\tconst normalized = cleanText(value?.level || value?.confidenceLevel || value?.confidence_level || value, 80).toLowerCase();\n\tif (/^high$/.test(normalized)) {\n\t\treturn 'high';\n\t}\n\tif (/^medium$/.test(normalized)) {\n\t\treturn 'medium';\n\t}\n\tif (/^low$/.test(normalized)) {\n\t\treturn 'low';\n\t}\n\treturn 'unknown';\n}\n\nfunction assistantQueryStatus(value: any): AssistantAnswerQualityDecision['queryStatus'] {\n\tconst normalized = cleanText(value?.status || value?.queryStatus || value?.query_status || value, 120).toLowerCase().replace(/[\\s-]+/g, '_');\n\tif (/^(ok|success|answered|data_found|data)$/.test(normalized)) {\n\t\treturn 'ok';\n\t}\n\tif (/^(no_data|no_results|empty|not_found)$/.test(normalized)) {\n\t\treturn 'no_data';\n\t}\n\tif (/^(query_error|mongo_error|error|failed)$/.test(normalized)) {\n\t\treturn 'query_error';\n\t}\n\tif (/^(permission_error|permission_denied|forbidden|unauthorized)$/.test(normalized)) {\n\t\treturn 'permission_error';\n\t}\n\treturn 'unknown';\n}\n\nfunction asObjectList(value: any): Record<string, any>[] {\n\treturn asArray<Record<string, any>>(value).filter((entry) => entry && typeof entry === 'object' && !Array.isArray(entry));\n}\n\nfunction assistantEvidenceRefs(quality: Record<string, any>): string[] {\n\treturn cleanStringList([\n\t\t...asArray(quality.evidenceRefs),\n\t\t...asArray(quality.evidence_refs),\n\t\t...asArray(quality.citationRefs),\n\t\t...asArray(quality.citation_refs),\n\t\t...asArray(quality.artifactPaths),\n\t\t...asArray(quality.artifact_paths),\n\t\t...asObjectList(quality.citations).map((citation) => citation.path || citation.url || citation.id || citation.ref),\n\t\t...asObjectList(quality.evidence).map((entry) => entry.path || entry.url || entry.id || entry.ref)\n\t], 80, 500);\n}\n\nfunction assistantCitationRefs(quality: Record<string, any>): string[] {\n\treturn cleanStringList([\n\t\t...asArray(quality.citationRefs),\n\t\t...asArray(quality.citation_refs),\n\t\t...asObjectList(quality.citations).map((citation) => citation.path || citation.url || citation.id || citation.ref),\n\t\t...asObjectList(quality.evidence).map((entry) => entry.citation || entry.ref || entry.path || entry.url)\n\t], 80, 500);\n}\n\nfunction assistantQueryExecutions(quality: Record<string, any>): Record<string, any>[] {\n\tconst queryExecution = plainObject(quality.queryExecution || quality.query_execution);\n\tconst toolResult = plainObject(quality.toolResult || quality.tool_result);\n\treturn [\n\t\t...asObjectList(quality.queryExecutions),\n\t\t...asObjectList(quality.query_executions),\n\t\t...asObjectList(quality.dataQueries),\n\t\t...asObjectList(quality.data_queries),\n\t\t...asObjectList(quality.toolResults),\n\t\t...asObjectList(quality.tool_results),\n\t\t...asObjectList(quality.mongoReads),\n\t\t...asObjectList(quality.mongo_reads),\n\t\t...asObjectList(quality.mongoAggregations),\n\t\t...asObjectList(quality.mongo_aggregations),\n\t\t...(Object.keys(queryExecution).length ? [queryExecution] : []),\n\t\t...(Object.keys(toolResult).length ? [toolResult] : [])\n\t].filter((entry) => Object.keys(entry).length);\n}\n\nfunction assistantQueryEvidenceRefs(quality: Record<string, any>, executions = assistantQueryExecutions(quality)): string[] {\n\treturn cleanStringList([\n\t\t...asArray(quality.queryEvidenceRefs),\n\t\t...asArray(quality.query_evidence_refs),\n\t\t...asArray(quality.toolResultRefs),\n\t\t...asArray(quality.tool_result_refs),\n\t\t...asArray(quality.queryResultRefs),\n\t\t...asArray(quality.query_result_refs),\n\t\t...executions.map((execution) => {\n\t\t\treturn execution.id\n\t\t\t\t|| execution._id\n\t\t\t\t|| execution.ref\n\t\t\t\t|| execution.toolResultId\n\t\t\t\t|| execution.tool_result_id\n\t\t\t\t|| execution.toolCallId\n\t\t\t\t|| execution.tool_call_id\n\t\t\t\t|| execution.artifactPath\n\t\t\t\t|| execution.artifact_path\n\t\t\t\t|| execution.path\n\t\t\t\t|| execution.url;\n\t\t})\n\t], 80, 500);\n}\n\nfunction assistantNextActions(quality: Record<string, any>): string[] {\n\treturn cleanStringList([\n\t\t...asArray(quality.nextActions),\n\t\t...asArray(quality.next_actions),\n\t\t...asArray(quality.recommendedActions),\n\t\t...asArray(quality.recommended_actions)\n\t], 20, 500);\n}\n\nfunction normalizedIsoDay(value: any): string {\n\tif (!value) {\n\t\treturn '';\n\t}\n\tconst date = value instanceof Date ? value : new Date(value);\n\tif (!Number.isFinite(date.getTime())) {\n\t\treturn cleanText(value, 40).slice(0, 10);\n\t}\n\treturn date.toISOString().slice(0, 10);\n}\n\nfunction assistantDateWindowObject(quality: Record<string, any>): Record<string, any> {\n\tconst dateWindow = plainObject(quality.dateWindow || quality.date_window);\n\tconst nestedWindow = plainObject(quality.verification?.metrics?.window || quality.metrics?.window);\n\treturn Object.keys(dateWindow).length ? dateWindow : nestedWindow;\n}\n\nfunction collectMongoProjectionObjects(value: any, result: Record<string, any>[] = []): Record<string, any>[] {\n\tif (!value || typeof value !== 'object') {\n\t\treturn result;\n\t}\n\tif (Array.isArray(value)) {\n\t\tfor (const entry of value) {\n\t\t\tcollectMongoProjectionObjects(entry, result);\n\t\t}\n\t\treturn result;\n\t}\n\tif (value.projection && typeof value.projection === 'object' && !Array.isArray(value.projection)) {\n\t\tresult.push(value.projection);\n\t}\n\tif (value.options && typeof value.options === 'object' && !Array.isArray(value.options) && value.options.projection) {\n\t\tcollectMongoProjectionObjects({ projection: value.options.projection }, result);\n\t}\n\tif (value.query && typeof value.query === 'object') {\n\t\tcollectMongoProjectionObjects(value.query, result);\n\t}\n\tif (value.mongoQuery && typeof value.mongoQuery === 'object') {\n\t\tcollectMongoProjectionObjects(value.mongoQuery, result);\n\t}\n\tif (value.mongo_query && typeof value.mongo_query === 'object') {\n\t\tcollectMongoProjectionObjects(value.mongo_query, result);\n\t}\n\treturn result;\n}\n\nfunction projectionHasPositionalOperator(projection: Record<string, any>): boolean {\n\treturn Object.keys(projection || {}).some((key) => /\\.(?:\\$|\\$\\[)|\\.\\$$/.test(key));\n}\n\nfunction assistantQueryShapeLegal(quality: Record<string, any>): boolean {\n\tif (quality.legalQueryShape === true || quality.legal_query_shape === true) {\n\t\treturn true;\n\t}\n\tif (quality.legalQueryShape === false || quality.legal_query_shape === false || quality.illegalQueryShape === true || quality.illegal_query_shape === true) {\n\t\treturn false;\n\t}\n\tconst queryShape = plainObject(quality.queryShape || quality.query_shape);\n\tif (queryShape.legal === true || queryShape.status === 'pass') {\n\t\treturn true;\n\t}\n\tif (queryShape.legal === false || queryShape.status === 'fail') {\n\t\treturn false;\n\t}\n\tconst projections = collectMongoProjectionObjects(quality);\n\tif (projections.some(projectionHasPositionalOperator)) {\n\t\treturn false;\n\t}\n\treturn true;\n}\n\nfunction assistantCorrectnessFailed(checks: Array<Record<string, any>>): string[] {\n\treturn checks\n\t\t.filter((check) => {\n\t\t\tconst status = cleanText(check.status || (check.passed === true ? 'pass' : check.passed === false ? 'fail' : ''), 80).toLowerCase();\n\t\t\treturn /^(fail|failed|blocked|incorrect|wrong|error)$/.test(status);\n\t\t})\n\t\t.map((check) => cleanText(check.assertion || check.name || check.case || check.reason || 'assistant correctness check failed', 300))\n\t\t.slice(0, 20);\n}\n\nexport function evaluateAssistantAnswerQuality(input: AssistantAnswerQualityInput = {}): AssistantAnswerQualityDecision {\n\tconst quality = plainObject(input.answerQuality);\n\tconst now = isoNow(input.now);\n\tconst correctnessChecks = asArray<Record<string, any>>(input.correctnessChecks);\n\tconst failedChecks = assistantCorrectnessFailed(correctnessChecks);\n\tconst queryStatus = assistantQueryStatus(quality.queryStatus || quality.query_status || quality.queryResult || quality.query_result);\n\tconst confidenceLevel = assistantConfidenceLevel(quality.confidence || quality.confidenceLevel || quality.confidence_level);\n\tconst evidenceRefs = assistantEvidenceRefs(quality);\n\tconst citationRefs = assistantCitationRefs(quality);\n\tconst queryExecutions = assistantQueryExecutions(quality);\n\tconst queryEvidenceRefs = assistantQueryEvidenceRefs(quality, queryExecutions);\n\tconst nextActions = assistantNextActions(quality);\n\tconst requiresCurrentDate = quality.requiresCurrentDate === true || quality.requires_current_date === true;\n\tconst dateWindowRequired = quality.requiresDateWindow === true\n\t\t|| quality.requires_date_window === true\n\t\t|| quality.dateWindowRequired === true\n\t\t|| quality.date_window_required === true;\n\tconst requiresCitations = quality.requiresCitations !== false && quality.requires_citations !== false;\n\tconst requiresNextAction = quality.requiresNextAction !== false && quality.requires_next_action !== false;\n\tconst dateWindow = assistantDateWindowObject(quality);\n\tconst dateWindowStart = cleanText(dateWindow.startDate || dateWindow.start_date || dateWindow.start, 80);\n\tconst dateWindowEnd = cleanText(dateWindow.endDate || dateWindow.end_date || dateWindow.end, 80);\n\tconst dateWindowPresent = !!dateWindowStart && !!dateWindowEnd;\n\tconst dateBasis = cleanText(\n\t\tquality.currentDateUsed\n\t\t|| quality.current_date_used\n\t\t|| quality.dateBasis\n\t\t|| quality.date_basis\n\t\t|| quality.dateWindow?.basisDate\n\t\t|| quality.date_window?.basis_date,\n\t\t80\n\t);\n\tconst expectedCurrentDate = cleanText(quality.expectedCurrentDate || quality.expected_current_date, 80)\n\t\t|| normalizedIsoDay(input.now);\n\tconst noDataConfirmed = quality.noDataConfirmed === true\n\t\t|| quality.no_data_confirmed === true\n\t\t|| quality.confirmedNoData === true\n\t\t|| quality.confirmed_no_data === true;\n\tconst legalQueryShape = assistantQueryShapeLegal(quality);\n\tconst queryEvidenceRequired = quality.requiresQueryEvidence !== false\n\t\t&& quality.requires_query_evidence !== false\n\t\t&& (queryStatus === 'ok' || queryStatus === 'no_data');\n\tconst queryEvidencePresent = queryExecutions.length > 0 || queryEvidenceRefs.length > 0;\n\tconst blockers: string[] = [];\n\tlet status: AssistantAnswerQualityStatus = 'ready';\n\tlet reason = 'Assistant answer has structured data evidence, legal query shape, citations, confidence, and next action.';\n\tif (!Object.keys(quality).length) {\n\t\tstatus = 'missing_data_source';\n\t\tblockers.push('Assistant answerQuality evidence is missing.');\n\t\treason = 'Assistant answer cannot be accepted without structured answerQuality evidence.';\n\t}\n\telse if (failedChecks.length) {\n\t\tstatus = 'incorrect';\n\t\tblockers.push(...failedChecks);\n\t\treason = 'Assistant correctness checks failed.';\n\t}\n\telse if (queryStatus === 'permission_error') {\n\t\tstatus = 'permission_error';\n\t\tblockers.push('Assistant data query was blocked by permission or authorization.');\n\t\treason = 'Assistant must report permission-error state and avoid claiming no data or success.';\n\t}\n\telse if (queryStatus === 'query_error') {\n\t\tstatus = 'query_error';\n\t\tblockers.push('Assistant data query failed.');\n\t\treason = 'Assistant must report query-error state and avoid claiming no data or success.';\n\t}\n\telse if (!legalQueryShape) {\n\t\tstatus = 'illegal_query_shape';\n\t\tblockers.push('Assistant query shape is illegal or uses an unsafe Mongo projection shape.');\n\t\treason = 'Assistant must use legal Mongo query/projection shapes before answering.';\n\t}\n\telse if (requiresCurrentDate && (!dateBasis || normalizedIsoDay(dateBasis) !== normalizedIsoDay(expectedCurrentDate))) {\n\t\tstatus = 'date_incorrect';\n\t\tblockers.push(`Expected current date ${normalizedIsoDay(expectedCurrentDate) || expectedCurrentDate}, got ${dateBasis || 'missing date basis'}.`);\n\t\treason = 'Assistant answer did not prove it used the actual current date.';\n\t}\n\telse if (dateWindowRequired && !dateWindowPresent) {\n\t\tstatus = 'missing_date_window';\n\t\tblockers.push('Assistant dated answer did not record concrete date-window start and end evidence.');\n\t\treason = 'Assistant dated answers must record the exact query date window used.';\n\t}\n\telse if (queryStatus === 'unknown') {\n\t\tstatus = 'missing_data_source';\n\t\tblockers.push('Assistant answer did not record queryStatus ok/no_data/query_error/permission_error.');\n\t\treason = 'Assistant answer must classify data access result before acceptance.';\n\t}\n\telse if (queryStatus === 'no_data' && !noDataConfirmed) {\n\t\tstatus = 'no_data_unverified';\n\t\tblockers.push('No-data answer was not confirmed by a probe or query evidence.');\n\t\treason = 'Assistant no-data answers require explicit noDataConfirmed evidence.';\n\t}\n\telse if (queryEvidenceRequired && !queryEvidencePresent) {\n\t\tstatus = 'missing_query_proof';\n\t\tblockers.push('Assistant data answer did not record a structured query execution, tool result, or query evidence reference.');\n\t\treason = 'Assistant answers from system data require structured query/tool execution proof before acceptance.';\n\t}\n\telse if (requiresCitations && !citationRefs.length && !evidenceRefs.length) {\n\t\tstatus = 'missing_citations';\n\t\tblockers.push('Assistant answer has no cited evidence or artifact reference.');\n\t\treason = 'Assistant answer must cite system data evidence.';\n\t}\n\telse if (confidenceLevel === 'low' || confidenceLevel === 'unknown') {\n\t\tstatus = 'low_confidence';\n\t\tblockers.push('Assistant answer confidence is low or unknown.');\n\t\treason = 'Assistant answer requires recorded medium/high confidence.';\n\t}\n\telse if (requiresNextAction && !nextActions.length) {\n\t\tstatus = 'missing_next_action';\n\t\tblockers.push('Assistant answer did not record next actions.');\n\t\treason = 'Assistant answer must provide a next action or explicit no-action state.';\n\t}\n\treturn {\n\t\tready: status === 'ready',\n\t\tstatus,\n\t\treason,\n\t\tblockers,\n\t\tqueryStatus,\n\t\tconfidenceLevel,\n\t\tdateBasis: dateBasis || undefined,\n\t\texpectedCurrentDate: expectedCurrentDate || undefined,\n\t\tdateWindowRequired,\n\t\tdateWindowPresent,\n\t\tdateWindow: dateWindowPresent ? {\n\t\t\tstartDate: dateWindowStart,\n\t\t\tendDate: dateWindowEnd,\n\t\t\tmode: cleanText(dateWindow.mode || dateWindow.type, 80) || undefined,\n\t\t\tmonths: typeof dateWindow.months === 'number' ? dateWindow.months : undefined\n\t\t} : undefined,\n\t\tnoDataConfirmed,\n\t\tlegalQueryShape,\n\t\tcitationRefs,\n\t\tqueryEvidenceRequired,\n\t\tqueryEvidencePresent,\n\t\tqueryEvidenceRefs,\n\t\tqueryExecutionCount: queryExecutions.length,\n\t\tnextActions,\n\t\tevidenceRefs,\n\t\tfailedChecks,\n\t\trecordedAt: now\n\t};\n}\n\nfunction assistantAnswerQualityGate(\n\tdecision: AssistantAnswerQualityDecision,\n\tnow?: Date | string\n): AIRunGateResult {\n\tconst status: AIRunGateResult['status'] = decision.ready\n\t\t? 'pass'\n\t\t: /incorrect|date_incorrect|missing_date_window|illegal_query_shape/.test(decision.status)\n\t\t\t? 'fail'\n\t\t\t: 'blocked';\n\treturn {\n\t\tkey: 'assistant_answer_quality',\n\t\tlabel: 'Assistant answer quality',\n\t\tstatus,\n\t\treason: decision.reason,\n\t\tevidenceRefs: decision.evidenceRefs.length ? decision.evidenceRefs : decision.citationRefs,\n\t\trecordedAt: isoNow(now || decision.recordedAt),\n\t\tmetadata: {\n\t\t\tready: decision.ready,\n\t\t\tstatus: decision.status,\n\t\t\tqueryStatus: decision.queryStatus,\n\t\t\tconfidenceLevel: decision.confidenceLevel,\n\t\t\tdateBasis: decision.dateBasis,\n\t\t\texpectedCurrentDate: decision.expectedCurrentDate,\n\t\t\tdateWindowRequired: decision.dateWindowRequired,\n\t\t\tdateWindowPresent: decision.dateWindowPresent,\n\t\t\tdateWindow: decision.dateWindow,\n\t\t\tnoDataConfirmed: decision.noDataConfirmed,\n\t\t\tlegalQueryShape: decision.legalQueryShape,\n\t\t\tcitationRefs: decision.citationRefs,\n\t\t\tqueryEvidenceRequired: decision.queryEvidenceRequired,\n\t\t\tqueryEvidencePresent: decision.queryEvidencePresent,\n\t\t\tqueryEvidenceRefs: decision.queryEvidenceRefs,\n\t\t\tqueryExecutionCount: decision.queryExecutionCount,\n\t\t\tnextActions: decision.nextActions,\n\t\t\tblockers: decision.blockers,\n\t\t\tfailedChecks: decision.failedChecks\n\t\t}\n\t};\n}\n\nfunction applyAssistantAnswerQualityGate(\n\tqa: AIQaRun,\n\tdecision: AssistantAnswerQualityDecision,\n\tnow?: Date | string\n): AIQaRun {\n\tconst gate = assistantAnswerQualityGate(decision, now);\n\tif (decision.ready) {\n\t\treturn {\n\t\t\t...qa,\n\t\t\tgateResults: [...qa.gateResults, gate]\n\t\t};\n\t}\n\treturn {\n\t\t...qa,\n\t\toutcome: /incorrect|date_incorrect|missing_date_window|illegal_query_shape/.test(decision.status)\n\t\t\t? 'business_assertion_failed'\n\t\t\t: 'incomplete',\n\t\tgateResults: [\n\t\t\t...qa.gateResults.filter((existing) => !(existing.key === 'qa_business_assertion' && existing.status === 'pass')),\n\t\t\tgate\n\t\t]\n\t};\n}\n\nexport function buildSupportAIRunFromEvidence(input: SupportAIRunAdapterInput): AIRun {\n\tconst ticket = input.ticket || {};\n\tconst job = input.job || {};\n\tconst evidence = buildSupportQaEvidence(input);\n\tconst events: AIRunEvent[] = [];\n\tconst gates: AIRunGateResult[] = [];\n\tconst sourceIds: Record<string, string> = {};\n\taddSourceId(sourceIds, 'ticketId', ticket._id || ticket.id || job.ticketId || job.supportTicketId);\n\taddSourceId(sourceIds, 'ticketNumber', ticket.ticketNumber || ticket.number || job.ticketNumber);\n\taddSourceId(sourceIds, 'jobId', job._id || job.id || job.jobId);\n\taddSourceId(sourceIds, 'buildPlanId', job.buildPlanId || ticket.buildPlanId);\n\n\tfor (const event of asArray<Record<string, any>>(input.taskEvents)) {\n\t\tpushEvent(events, {\n\t\t\ttype: event.type === 'human_intervention' ? 'human_intervention' : 'log',\n\t\t\tcategory: cleanText(event.category || event.phase || event.type, 160),\n\t\t\tmessage: cleanText(event.message || event.summary || event.text || event.title, 1800),\n\t\t\trecordedAt: eventDate(event),\n\t\t\tmetadata: {\n\t\t\t\tstatus: event.status,\n\t\t\t\tphase: event.phase,\n\t\t\t\ttaskId: event.taskId || event._id || event.id\n\t\t\t}\n\t\t});\n\t}\n\tfor (const aiJob of asArray<Record<string, any>>(input.aiJobs)) {\n\t\tpushEvent(events, {\n\t\t\ttype: aiJob.model ? 'model_call' : 'log',\n\t\t\tcategory: cleanText(aiJob.category || aiJob.phase || aiJob.runner, 160),\n\t\t\tmessage: cleanText(aiJob.summary || aiJob.promptSummary || aiJob.status || aiJob.phase, 1800),\n\t\t\trecordedAt: eventDate(aiJob),\n\t\t\tmetadata: {\n\t\t\t\tid: aiJob._id || aiJob.id,\n\t\t\t\tmodel: aiJob.model,\n\t\t\t\tstatus: aiJob.status,\n\t\t\t\tphase: aiJob.phase\n\t\t\t}\n\t\t});\n\t}\n\tcollectCommitEvents(asArray<Record<string, any>>(input.commits), events);\n\tcollectHotfixEvidenceEvents([job, ticket, evidence, input.qaEvidence], events, gates, input.now);\n\tconst noBlindLoopGate = supportManagerNoBlindLoopGate(job, evidence, input.now);\n\tif (noBlindLoopGate) {\n\t\tgates.push(noBlindLoopGate);\n\t\tpushEvent(events, {\n\t\t\ttype: 'log',\n\t\t\tcategory: 'manager_no_blind_loop_policy',\n\t\t\tmessage: noBlindLoopGate.reason,\n\t\t\tartifactPaths: noBlindLoopGate.evidenceRefs,\n\t\t\trecordedAt: noBlindLoopGate.recordedAt,\n\t\t\tmetadata: noBlindLoopGate.metadata\n\t\t});\n\t}\n\tconst businessProofReadiness = plainObject(evidence.businessProofReadiness || evidence.business_proof_readiness);\n\tconst businessProofReadinessGate = supportBusinessProofReadinessGate(businessProofReadiness, input.now);\n\tif (businessProofReadinessGate) {\n\t\tgates.push(businessProofReadinessGate);\n\t\tpushEvent(events, {\n\t\t\ttype: 'qa_business_assertion',\n\t\t\tcategory: 'support_business_proof_readiness',\n\t\t\tmessage: businessProofReadinessGate.reason,\n\t\t\tartifactPaths: businessProofReadinessGate.evidenceRefs,\n\t\t\trecordedAt: businessProofReadinessGate.recordedAt,\n\t\t\tmetadata: businessProofReadinessGate.metadata\n\t\t});\n\t}\n\tconst customerReplyPolicy = plainObject(evidence.customerReplyPolicy || evidence.customer_reply_policy);\n\tconst customerReplyPolicyGate = supportCustomerReplyPolicyGate(customerReplyPolicy, input.now);\n\tif (customerReplyPolicyGate) {\n\t\tgates.push(customerReplyPolicyGate);\n\t\tpushEvent(events, {\n\t\t\ttype: 'human_intervention',\n\t\t\tcategory: 'support_customer_reply_policy',\n\t\t\tmessage: customerReplyPolicyGate.reason,\n\t\t\tartifactPaths: customerReplyPolicyGate.evidenceRefs,\n\t\t\trecordedAt: customerReplyPolicyGate.recordedAt,\n\t\t\tmetadata: customerReplyPolicyGate.metadata\n\t\t});\n\t}\n\tconst ticketAutomation = plainObject(ticket.automation);\n\tconst ticketManagerState = plainObject(ticketAutomation.manager || ticket.manager);\n\tconst rootCauseEntryContract = evidenceObject(\n\t\tjob.supportRootCauseEntryContract,\n\t\tjob.support_root_cause_entry_contract,\n\t\tjob.rootCauseEntryContract,\n\t\tticket.supportRootCauseEntryContract,\n\t\tticket.rootCauseEntryContract,\n\t\tticketManagerState.root_cause_entry_contract,\n\t\tticketManagerState.rootCauseEntryContract,\n\t\tevidence.rootCauseEntryContract,\n\t\tevidence.root_cause_entry_contract\n\t);\n\tconst rootCauseEntryContractGate = supportRootCauseEntryContractGate(rootCauseEntryContract, input.now);\n\tif (rootCauseEntryContractGate) {\n\t\tgates.push(rootCauseEntryContractGate);\n\t\tpushEvent(events, {\n\t\t\ttype: 'log',\n\t\t\tcategory: 'support_root_cause_entry_contract',\n\t\t\tmessage: rootCauseEntryContractGate.reason,\n\t\t\tartifactPaths: rootCauseEntryContractGate.evidenceRefs,\n\t\t\trecordedAt: rootCauseEntryContractGate.recordedAt,\n\t\t\tmetadata: rootCauseEntryContractGate.metadata\n\t\t});\n\t}\n\tconst cost = collectUsageEvents(asArray<Record<string, any>>(input.usageLedger), events);\n\n\tconst diagnosisGate = evidenceObject(\n\t\tjob.supportV5DiagnosisGate,\n\t\tjob.support_v5_diagnosis_gate,\n\t\tjob.diagnosisGate,\n\t\tticket.supportV5DiagnosisGate,\n\t\tticket.diagnosisGate,\n\t\tevidence.diagnosisGate,\n\t\tevidence.supportV5DiagnosisGate\n\t);\n\tconst qa = applySupportDiagnosisProofGate(buildQaFromEvidence(evidence, input.now), diagnosisGate, input.now);\n\tconst diagnosisOwnerFiles = asArray<string>(diagnosisGate.owner_files || diagnosisGate.ownerFiles);\n\tconst diagnosisIssueClass = cleanText(diagnosisGate.issue_class || diagnosisGate.issueClass, 120);\n\tif (Object.keys(diagnosisGate).length) {\n\t\tpushEvent(events, {\n\t\t\ttype: 'log',\n\t\t\tcategory: 'diagnosis_gate',\n\t\t\tmessage: cleanText(diagnosisGate.accepted_hypothesis?.statement || diagnosisGate.acceptedHypothesis?.statement || diagnosisGate.summary || 'Support diagnosis gate recorded.', 1800),\n\t\t\tmetadata: {\n\t\t\t\tstatus: diagnosisGate.status,\n\t\t\t\tissueClass: diagnosisIssueClass,\n\t\t\t\townerFiles: diagnosisOwnerFiles\n\t\t\t}\n\t\t});\n\t}\n\treturn buildAIRun({\n\t\tsource: 'support_ticket',\n\t\tsourceIds,\n\t\ttitle: firstText(ticket, ['title', 'subject', 'summary']) || firstText(job, ['title', 'summary']),\n\t\tstatus: firstText(job, ['status', 'state']) || firstText(ticket, ['status', 'state']),\n\t\tphase: firstText(job, ['phase', 'runnerPhase']),\n\t\tstartedAt: dateValue(job, ['startedAt', 'createdAt']) || dateValue(ticket, ['createdAt']),\n\t\tcompletedAt: dateValue(job, ['completedAt', 'finishedAt', 'updatedAt']),\n\t\tevents,\n\t\tgates,\n\t\tqa,\n\t\tcost,\n\t\tscorecardPassed: evidence.scorecardPassed === true || evidence.scorecardStatus === 'pass',\n\t\tdeployStatus: evidence.deployStatus,\n\t\tpublishStatus: evidence.publishStatus,\n\t\tsampleDataStatus: evidence.sampleDataStatus,\n\t\tmanualHandoff: evidence.manualHandoff === true || job.manualHandoff === true,\n\t\tstopped: evidence.stopped === true || job.stopped === true,\n\t\trejected: evidence.rejected === true,\n\t\texplicitAccepted: evidence.explicitAccepted === true || ticket.accepted === true,\n\t\tterminal: /complete|closed|resolved|done|failed|rejected/i.test(`${job.status || ''} ${ticket.status || ''}`),\n\t\tnow: input.now,\n\t\tmetadata: {\n\t\t\tversionCount: asArray(input.versions).length,\n\t\t\tbuildPlanCount: asArray(input.buildPlans).length,\n\t\t\tmanagerNoBlindLoopPolicy: managerNoBlindLoopMetadata(noBlindLoopGate),\n\t\t\trootCauseEntryContract: Object.keys(rootCauseEntryContract).length ? {\n\t\t\t\tcontractId: cleanText(rootCauseEntryContract.contract_id || rootCauseEntryContract.contractId, 160),\n\t\t\t\tversion: cleanText(rootCauseEntryContract.version, 120),\n\t\t\t\tstatus: cleanText(rootCauseEntryContract.status, 120),\n\t\t\t\tissueClassProbeCount: asArray(rootCauseEntryContract.issue_class_probes || rootCauseEntryContract.issueClassProbes).length,\n\t\t\t\townerFileMax: Number(rootCauseEntryContract.owner_file_policy?.max_files || rootCauseEntryContract.ownerFilePolicy?.maxFiles || 0) || 0,\n\t\t\t\trequiresBusinessAssertion: rootCauseEntryContract.business_proof_policy?.requires_aiqa_business_assertion === true\n\t\t\t\t\t|| rootCauseEntryContract.businessProofPolicy?.requiresAiqaBusinessAssertion === true\n\t\t\t} : undefined,\n\t\t\tdiagnosis: Object.keys(diagnosisGate).length ? {\n\t\t\t\tstatus: cleanText(diagnosisGate.status, 80),\n\t\t\t\tissueClass: diagnosisIssueClass,\n\t\t\t\townerFiles: diagnosisOwnerFiles,\n\t\t\t\tacceptedHypothesis: cleanText(diagnosisGate.accepted_hypothesis?.statement || diagnosisGate.acceptedHypothesis?.statement, 1000),\n\t\t\t\tproofPlan: diagnosisGate.proof_plan || diagnosisGate.proofPlan\n\t\t\t} : undefined,\n\t\t\tbusinessProofReadiness: Object.keys(businessProofReadiness).length ? {\n\t\t\t\tready: businessProofReadiness.ready === true,\n\t\t\t\tstatus: cleanText(businessProofReadiness.status, 120),\n\t\t\t\treason: cleanText(businessProofReadiness.reason, 1000),\n\t\t\t\tblockers: cleanStringList(businessProofReadiness.blockers, 20, 500)\n\t\t\t} : undefined,\n\t\t\tcustomerReplyPolicy: Object.keys(customerReplyPolicy).length ? {\n\t\t\t\taction: cleanText(customerReplyPolicy.action, 120),\n\t\t\t\tsafety: cleanText(customerReplyPolicy.safety, 120),\n\t\t\t\tcanDraftCustomerReply: customerReplyPolicy.canDraftCustomerReply === true || customerReplyPolicy.can_draft_customer_reply === true,\n\t\t\t\tcanSendCustomerReply: customerReplyPolicy.canSendCustomerReply === true || customerReplyPolicy.can_send_customer_reply === true,\n\t\t\t\treason: cleanText(customerReplyPolicy.reason, 1000),\n\t\t\t\treviewType: cleanText(\n\t\t\t\t\tcustomerReplyPolicy.humanReviewPacket?.reviewType\n\t\t\t\t\t|| customerReplyPolicy.human_review_packet?.review_type\n\t\t\t\t\t|| customerReplyPolicy.human_review_packet?.reviewType,\n\t\t\t\t\t160\n\t\t\t\t),\n\t\t\t\tprimaryAction: cleanText(\n\t\t\t\t\tcustomerReplyPolicy.humanReviewPacket?.primaryAction\n\t\t\t\t\t|| customerReplyPolicy.human_review_packet?.primary_action\n\t\t\t\t\t|| customerReplyPolicy.human_review_packet?.primaryAction,\n\t\t\t\t\t160\n\t\t\t\t)\n\t\t\t} : undefined\n\t\t}\n\t});\n}\n\nexport function buildAICoderAIRunFromEvidence(input: AICoderAIRunAdapterInput): AIRun {\n\tconst app = input.app || {};\n\tconst job = input.job || {};\n\tconst evidence = buildAICoderQaEvidence(input);\n\tconst events: AIRunEvent[] = [];\n\tconst gates: AIRunGateResult[] = [];\n\tconst sourceIds: Record<string, string> = {};\n\taddSourceId(sourceIds, 'appId', app._id || app.id || job.appId || job.aicoderAppId);\n\taddSourceId(sourceIds, 'jobId', job._id || job.id || job.jobId);\n\taddSourceId(sourceIds, 'domain', app.domain || app.customDomain || job.domain);\n\n\tfor (const log of asArray<Record<string, any>>(input.logs)) {\n\t\tpushEvent(events, {\n\t\t\ttype: log.type === 'scorecard' ? 'scorecard' : 'log',\n\t\t\tcategory: cleanText(log.category || log.phase || log.level, 160),\n\t\t\tmessage: cleanText(log.message || log.summary || log.text || log.title, 1800),\n\t\t\tartifactPaths: asArray<string>(log.artifactPaths || log.artifacts),\n\t\t\trecordedAt: eventDate(log),\n\t\t\tmetadata: {\n\t\t\t\tstatus: log.status,\n\t\t\t\tlevel: log.level,\n\t\t\t\tscore: log.score\n\t\t\t}\n\t\t});\n\t}\n\tcollectCommitEvents(asArray<Record<string, any>>(input.commits), events);\n\tcollectHotfixEvidenceEvents([job, app, evidence, input.qaEvidence], events, gates, input.now);\n\tconst noBlindLoopGate = aicoderManagerNoBlindLoopGate(app, job, evidence, input.now);\n\tif (noBlindLoopGate) {\n\t\tgates.push(noBlindLoopGate);\n\t\tpushEvent(events, {\n\t\t\ttype: 'log',\n\t\t\tcategory: 'manager_no_blind_loop_policy',\n\t\t\tmessage: noBlindLoopGate.reason,\n\t\t\tartifactPaths: noBlindLoopGate.evidenceRefs,\n\t\t\trecordedAt: noBlindLoopGate.recordedAt,\n\t\t\tmetadata: noBlindLoopGate.metadata\n\t\t});\n\t}\n\tconst cost = collectUsageEvents(asArray<Record<string, any>>(input.usageLedger), events);\n\tconst scorecardPassed = evidence.scorecardPassed === true\n\t\t|| evidence.scorecardStatus === 'pass'\n\t\t|| (Number(evidence.score ?? evidence.qualityScore ?? 0) >= Number(evidence.scoreThreshold ?? job.scoreThreshold ?? 90));\n\tconst explicitWorkflowReadiness = normalizeAICoderWorkflowProofReadiness(plainObject(\n\t\tevidence.workflowProofReadiness\n\t\t|| evidence.workflow_proof_readiness\n\t\t|| evidence.aicoderWorkflowProofReadiness\n\t\t|| evidence.aicoder_workflow_proof_readiness\n\t\t|| job.workflowProofReadiness\n\t\t|| job.workflow_proof_readiness\n\t\t|| job.aicoderWorkflowProofReadiness\n\t\t|| job.aicoder_workflow_proof_readiness\n\t), input.now);\n\tconst workflowReadiness = explicitWorkflowReadiness || evaluateResolveIOAICoderWorkflowProofReadiness({\n\t\tjourneyContract: evidence.journeyContract,\n\t\tjourneyContractMarkdown: evidence.journeyContractMarkdown,\n\t\tworkflowQaRows: asArray(evidence.workflowQaRows || evidence.workflow_qa_rows),\n\t\tbusinessAssertions: [\n\t\t\t...asArray(evidence.businessAssertions),\n\t\t\t...asArray(evidence.business_assertions),\n\t\t\t...asArray(evidence.workflowAssertions),\n\t\t\t...asArray(evidence.workflow_assertions)\n\t\t],\n\t\trouteProbes: [\n\t\t\t...asArray(evidence.routeProbes),\n\t\t\t...asArray(evidence.route_probes),\n\t\t\t...asArray(evidence.workflowProbes),\n\t\t\t...asArray(evidence.workflow_probes)\n\t\t],\n\t\tartifactPaths: [\n\t\t\t...asArray(evidence.artifactPaths),\n\t\t\t...asArray(evidence.artifact_paths)\n\t\t],\n\t\tscorecardPassed,\n\t\tdeployStatus: evidence.deployStatus,\n\t\tpublishStatus: evidence.publishStatus,\n\t\tsampleDataStatus: evidence.sampleDataStatus,\n\t\tpreviousWorkflowProofFingerprint: firstNonEmptyText([\n\t\t\tevidence.previousWorkflowProofFingerprint,\n\t\t\tevidence.previous_workflow_proof_fingerprint,\n\t\t\tjob.previousWorkflowProofFingerprint,\n\t\t\tjob.previous_workflow_proof_fingerprint,\n\t\t\tapp.previousWorkflowProofFingerprint,\n\t\t\tapp.previous_workflow_proof_fingerprint\n\t\t], 200),\n\t\tpreviousArtifactFingerprint: firstNonEmptyText([\n\t\t\tevidence.previousArtifactFingerprint,\n\t\t\tevidence.previous_artifact_fingerprint,\n\t\t\tjob.previousArtifactFingerprint,\n\t\t\tjob.previous_artifact_fingerprint,\n\t\t\tapp.previousArtifactFingerprint,\n\t\t\tapp.previous_artifact_fingerprint\n\t\t], 200),\n\t\tpreviousWorkflowProofFingerprints: [\n\t\t\t...asArray(evidence.previousWorkflowProofFingerprints),\n\t\t\t...asArray(evidence.previous_workflow_proof_fingerprints),\n\t\t\t...asArray(job.previousWorkflowProofFingerprints),\n\t\t\t...asArray(job.previous_workflow_proof_fingerprints),\n\t\t\t...asArray(app.previousWorkflowProofFingerprints),\n\t\t\t...asArray(app.previous_workflow_proof_fingerprints)\n\t\t],\n\t\tpreviousArtifactFingerprints: [\n\t\t\t...asArray(evidence.previousArtifactFingerprints),\n\t\t\t...asArray(evidence.previous_artifact_fingerprints),\n\t\t\t...asArray(job.previousArtifactFingerprints),\n\t\t\t...asArray(job.previous_artifact_fingerprints),\n\t\t\t...asArray(app.previousArtifactFingerprints),\n\t\t\t...asArray(app.previous_artifact_fingerprints)\n\t\t],\n\t\tnow: input.now\n\t});\n\tconst workflowReadinessGate = aicoderWorkflowProofReadinessGate(workflowReadiness, input.now);\n\tgates.push(workflowReadinessGate);\n\tpushEvent(events, {\n\t\ttype: 'qa_business_assertion',\n\t\tcategory: 'aicoder_workflow_proof_readiness',\n\t\tmessage: workflowReadinessGate.reason,\n\t\tartifactPaths: workflowReadinessGate.evidenceRefs,\n\t\trecordedAt: workflowReadinessGate.recordedAt,\n\t\tmetadata: workflowReadinessGate.metadata\n\t});\n\tconst qa = applyAICoderWorkflowProofGate(buildQaFromEvidence(evidence, input.now), workflowReadiness, input.now);\n\n\treturn buildAIRun({\n\t\tsource: 'aicoder_app',\n\t\tsourceIds,\n\t\ttitle: firstText(app, ['name', 'title']) || firstText(job, ['appName', 'title', 'goal']),\n\t\tstatus: firstText(job, ['status', 'state']) || firstText(app, ['status', 'state']),\n\t\tphase: firstText(job, ['phase', 'runnerPhase']),\n\t\tstartedAt: dateValue(job, ['startedAt', 'createdAt']) || dateValue(app, ['createdAt']),\n\t\tcompletedAt: dateValue(job, ['completedAt', 'finishedAt', 'updatedAt']),\n\t\tevents,\n\t\tgates,\n\t\tqa,\n\t\tcost,\n\t\tscorecardPassed,\n\t\tdeployStatus: evidence.deployStatus || statusFromBoolean(evidence.deployReady),\n\t\tpublishStatus: evidence.publishStatus || evidence.pullRequestStatus,\n\t\tsampleDataStatus: evidence.sampleDataStatus || statusFromBoolean(evidence.sampleDataReady ?? evidence.hasSampleData),\n\t\tmanualHandoff: evidence.manualHandoff === true || job.manualHandoff === true,\n\t\tstopped: evidence.stopped === true || job.stopped === true,\n\t\trejected: evidence.rejected === true,\n\t\texplicitAccepted: evidence.explicitAccepted === true || app.accepted === true,\n\t\tterminal: /complete|closed|resolved|done|failed|rejected/i.test(`${job.status || ''} ${job.phase || ''}`),\n\t\tnow: input.now,\n\t\tmetadata: {\n\t\t\tdomain: app.domain || app.customDomain || job.domain,\n\t\t\twowScore: evidence.wowScore ?? job.wowScore,\n\t\t\tscore: evidence.score ?? evidence.qualityScore,\n\t\t\tmanagerNoBlindLoopPolicy: managerNoBlindLoopMetadata(noBlindLoopGate),\n\t\t\tworkflowProofReadiness: {\n\t\t\t\tready: workflowReadiness.ready,\n\t\t\t\tstatus: workflowReadiness.status,\n\t\t\t\treason: workflowReadiness.reason,\n\t\t\t\tblockers: workflowReadiness.blockers,\n\t\t\t\tprimaryWorkflowId: workflowReadiness.primaryWorkflowId,\n\t\t\t\tpassedWorkflowRows: workflowReadiness.passedWorkflowRows,\n\t\t\t\tmissingWorkflowRows: workflowReadiness.missingWorkflowRows,\n\t\t\t\tfailedWorkflowRows: workflowReadiness.failedWorkflowRows,\n\t\t\t\tsampleDataReady: workflowReadiness.sampleDataReady,\n\t\t\t\treleaseBlockers: workflowReadiness.releaseBlockers,\n\t\t\t\tworkflowProofFingerprint: workflowReadiness.workflowProofFingerprint,\n\t\t\t\tartifactFingerprint: workflowReadiness.artifactFingerprint,\n\t\t\t\tproofFreshness: workflowReadiness.proofFreshness\n\t\t\t}\n\t\t}\n\t});\n}\n\nexport function buildAssistantAIRunFromEvidence(input: AssistantAIRunAdapterInput): AIRun {\n\tconst conversation = input.conversation || {};\n\tconst events: AIRunEvent[] = [];\n\tconst sourceIds: Record<string, string> = {};\n\taddSourceId(sourceIds, 'runId', input.runId);\n\taddSourceId(sourceIds, 'requestId', input.requestId);\n\taddSourceId(sourceIds, 'messageId', input.messageId);\n\taddSourceId(sourceIds, 'conversationId', conversation._id || conversation.id || conversation.conversationId);\n\taddSourceId(sourceIds, 'userId', conversation.userId || conversation.ownerId);\n\n\tfor (const message of asArray<Record<string, any>>(input.messages)) {\n\t\tpushEvent(events, {\n\t\t\ttype: 'assistant_message',\n\t\t\tcategory: cleanText(message.role || message.authorRole || message.type, 160),\n\t\t\tmessage: cleanText(message.content || message.text || message.message || message.summary, 1800),\n\t\t\trecordedAt: eventDate(message),\n\t\t\tmetadata: {\n\t\t\t\tid: message._id || message.id,\n\t\t\t\trole: message.role,\n\t\t\t\tmodel: message.model || message?.usage?.model\n\t\t\t}\n\t\t});\n\t}\n\tfor (const report of asArray<Record<string, any>>(input.issueReports)) {\n\t\tpushEvent(events, {\n\t\t\ttype: 'human_intervention',\n\t\t\tcategory: cleanText(report.category || report.status || 'issue_report', 160),\n\t\t\tmessage: cleanText(report.summary || report.description || report.message || report.title, 1800),\n\t\t\trecordedAt: eventDate(report),\n\t\t\tmetadata: {\n\t\t\t\tid: report._id || report.id,\n\t\t\t\tstatus: report.status,\n\t\t\t\tseverity: report.severity\n\t\t\t}\n\t\t});\n\t}\n\tconst cost = collectUsageEvents(asArray<Record<string, any>>(input.usageLedger), events);\n\tconst answerQuality = assistantQualityObject(input);\n\tfor (const execution of assistantQueryExecutions(answerQuality).slice(0, 40)) {\n\t\tconst status = cleanText(execution.status || execution.queryStatus || execution.query_status || execution.resultStatus || execution.result_status, 120);\n\t\tconst toolName = cleanText(execution.tool || execution.toolName || execution.tool_name || execution.type || 'query', 160);\n\t\tconst collection = cleanText(execution.collection || execution.collectionName || execution.collection_name, 240);\n\t\tpushEvent(events, {\n\t\t\ttype: 'assistant_query',\n\t\t\tcategory: status || toolName,\n\t\t\tmessage: cleanText(execution.summary || execution.message || `${toolName}${collection ? ` ${collection}` : ''}`, 1200),\n\t\t\tartifactPaths: cleanStringList([\n\t\t\t\texecution.artifactPath,\n\t\t\t\texecution.artifact_path,\n\t\t\t\texecution.path,\n\t\t\t\t...asArray(execution.artifactPaths),\n\t\t\t\t...asArray(execution.artifact_paths)\n\t\t\t], 20, 500),\n\t\t\trecordedAt: eventDate(execution),\n\t\t\tmetadata: {\n\t\t\t\tid: execution.id || execution._id || execution.ref,\n\t\t\t\ttool: toolName,\n\t\t\t\tstatus,\n\t\t\t\tcollection,\n\t\t\t\tresultCount: execution.resultCount ?? execution.result_count ?? execution.count,\n\t\t\t\tqueryStatus: execution.queryStatus || execution.query_status,\n\t\t\t\tlegalQueryShape: execution.legalQueryShape ?? execution.legal_query_shape\n\t\t\t}\n\t\t});\n\t}\n\tconst answerQualityDecision = evaluateAssistantAnswerQuality({\n\t\tanswerQuality,\n\t\tcorrectnessChecks: input.correctnessChecks,\n\t\tnow: input.now\n\t});\n\tconst answerQualityGate = assistantAnswerQualityGate(answerQualityDecision, input.now);\n\tpushEvent(events, {\n\t\ttype: 'assistant_message',\n\t\tcategory: 'assistant_answer_quality',\n\t\tmessage: answerQualityGate.reason,\n\t\tartifactPaths: answerQualityGate.evidenceRefs,\n\t\trecordedAt: answerQualityGate.recordedAt,\n\t\tmetadata: answerQualityGate.metadata\n\t});\n\tconst correctnessChecks = asArray<Record<string, any>>(input.correctnessChecks);\n\tconst hasPassedCorrectnessCheck = correctnessChecks.some((check) => /^(pass|passed|success|ok)$/i.test(cleanText(check.status || (check.passed === true ? 'pass' : ''), 80)));\n\tconst correctnessEvidence = {\n\t\tbusinessAssertions: [\n\t\t\t...correctnessChecks.map((check) => ({\n\t\t\t\tassertion: check.assertion || check.name || check.case || 'assistant correctness check',\n\t\t\t\tstatus: check.status || statusFromBoolean(check.passed),\n\t\t\t\texpected: check.expected,\n\t\t\t\tobserved: check.observed || check.actual,\n\t\t\t\tdataProof: check.dataProof || check.proof,\n\t\t\t\tartifactPaths: check.artifactPaths,\n\t\t\t\tmessage: check.message || check.reason,\n\t\t\t\tmetadata: check.metadata,\n\t\t\t\trecordedAt: eventDate(check)\n\t\t\t})),\n\t\t\t...(answerQualityDecision.ready && !hasPassedCorrectnessCheck ? [{\n\t\t\t\tassertion: 'Assistant answer quality gate passed.',\n\t\t\t\tstatus: 'pass',\n\t\t\t\texpected: 'Correct dates, legal query shape, query result classification, cited evidence, confidence, and next action.',\n\t\t\t\tobserved: answerQualityDecision.reason,\n\t\t\t\tdataProof: answerQualityDecision.evidenceRefs.concat(answerQualityDecision.citationRefs).join(', '),\n\t\t\t\tartifactPaths: answerQualityDecision.evidenceRefs,\n\t\t\t\tmessage: answerQualityDecision.reason,\n\t\t\t\tmetadata: {\n\t\t\t\t\tanswerQualityStatus: answerQualityDecision.status,\n\t\t\t\t\tqueryStatus: answerQualityDecision.queryStatus,\n\t\t\t\t\tdateWindowRequired: answerQualityDecision.dateWindowRequired,\n\t\t\t\t\tdateWindowPresent: answerQualityDecision.dateWindowPresent,\n\t\t\t\t\tdateWindow: answerQualityDecision.dateWindow\n\t\t\t\t}\n\t\t\t}] : [])\n\t\t]\n\t};\n\tconst qa = applyAssistantAnswerQualityGate(buildQaFromEvidence(correctnessEvidence, input.now), answerQualityDecision, input.now);\n\tconst failedReports = asArray<Record<string, any>>(input.issueReports)\n\t\t.filter((report) => /open|new|fail|bug|wrong|incorrect|error/i.test(`${report.status || ''} ${report.category || ''} ${report.summary || ''}`));\n\n\treturn buildAIRun({\n\t\tid: cleanText(input.runId, 240) || undefined,\n\t\tsource: 'ai_assistant',\n\t\tsourceIds,\n\t\ttitle: firstText(conversation, ['title', 'subject', 'summary']) || 'AI assistant conversation',\n\t\tstatus: firstText(conversation, ['status', 'state']),\n\t\tphase: firstText(conversation, ['phase']),\n\t\tstartedAt: dateValue(conversation, ['startedAt', 'createdAt']),\n\t\tcompletedAt: dateValue(conversation, ['completedAt', 'closedAt', 'updatedAt']),\n\t\tevents,\n\t\tqa,\n\t\tcost,\n\t\trejected: failedReports.length > 0 || conversation.rejected === true,\n\t\tmanualHandoff: conversation.manualHandoff === true,\n\t\tstopped: conversation.stopped === true,\n\t\texplicitAccepted: conversation.accepted === true,\n\t\tterminal: /complete|closed|resolved|done|failed|rejected/i.test(`${conversation.status || ''}`),\n\t\tnow: input.now,\n\t\tmetadata: {\n\t\t\tissueReportCount: asArray(input.issueReports).length,\n\t\t\tcorrectnessCheckCount: correctnessChecks.length,\n\t\t\tanswerQuality: {\n\t\t\t\tready: answerQualityDecision.ready,\n\t\t\t\tstatus: answerQualityDecision.status,\n\t\t\t\tqueryStatus: answerQualityDecision.queryStatus,\n\t\t\t\tconfidenceLevel: answerQualityDecision.confidenceLevel,\n\t\t\t\tdateBasis: answerQualityDecision.dateBasis,\n\t\t\t\texpectedCurrentDate: answerQualityDecision.expectedCurrentDate,\n\t\t\t\tdateWindowRequired: answerQualityDecision.dateWindowRequired,\n\t\t\t\tdateWindowPresent: answerQualityDecision.dateWindowPresent,\n\t\t\t\tdateWindow: answerQualityDecision.dateWindow,\n\t\t\t\tnoDataConfirmed: answerQualityDecision.noDataConfirmed,\n\t\t\t\tlegalQueryShape: answerQualityDecision.legalQueryShape,\n\t\t\t\tcitationRefs: answerQualityDecision.citationRefs,\n\t\t\t\tqueryEvidenceRequired: answerQualityDecision.queryEvidenceRequired,\n\t\t\t\tqueryEvidencePresent: answerQualityDecision.queryEvidencePresent,\n\t\t\t\tqueryEvidenceRefs: answerQualityDecision.queryEvidenceRefs,\n\t\t\t\tqueryExecutionCount: answerQualityDecision.queryExecutionCount,\n\t\t\t\tnextActions: answerQualityDecision.nextActions,\n\t\t\t\tblockers: answerQualityDecision.blockers\n\t\t\t}\n\t\t}\n\t});\n}\n"]}
|