/**
* Resolution — input and output schemas (Std 2 + Std 11).
*
* Input: Normalization's records + the cumulative unresolved-issues
* list (propagated by the orchestrator).
* Output: resolved dataset OR escalation package.
*/
import { z } from 'zod';
import { normalizedRecordSchema } from '../normalization/schema.js';
import { unresolvedIssueSchema } from '../../../types.js';
export const resolutionInputSchema = z.object({
records: z.array(normalizedRecordSchema),
unresolvedIssues: z.array(unresolvedIssueSchema),
});
export type ResolutionInput = z.infer<typeof resolutionInputSchema>;
export const resolvedRecordSchema = normalizedRecordSchema.extend({
resolutionAction: z.enum([
'pass-through',
'rule-applied',
'duplicate-merged',
'contradiction-resolved',
'escalated',
]),
resolutionNotes: z.array(z.string()),
});
export type ResolvedRecord = z.infer<typeof resolvedRecordSchema>;
export const learnedRuleSchema = z.object({
key: z.string(),
value: z.string(),
});
export type LearnedRule = z.infer<typeof learnedRuleSchema>;
export const resolutionOutputSchema = z.object({
records: z.array(resolvedRecordSchema),
stillUnresolved: z.array(unresolvedIssueSchema),
learnedRules: z.array(learnedRuleSchema),
});
export type ResolutionOutput = z.infer<typeof resolutionOutputSchema>;