Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 2x | import { WorkOrderTriage } from '@app/contracts';
export interface TriageInput {
title: string;
description: string;
priority: string;
}
/**
* Boundary between the domain and the LLM provider, mirroring the
* NotificationSender pattern: the consumer depends on this abstraction, tests
* substitute it, and swapping providers touches exactly one class.
*
* `null` means "no classification available" (missing key, API failure,
* refusal) — triage is advisory, so absence is a valid outcome, not an error.
*/
export abstract class TriageClassifier {
abstract classify(input: TriageInput): Promise<WorkOrderTriage | null>;
}
|