/** * Source Descriptors — PEAT-B1 * * Declarative policy mapping from SourceKind to default TriageDecision. * This is pure data — no I/O, no plugin imports. * * Each descriptor defines: * - kind: the SourceKind it describes * - defaultDecision: the default triage decision * - reason: why this default was chosen * - nextAction: what should happen when this decision is applied * - canUpgrade: whether the plugin adapter may upgrade the decision * (e.g., rulehost_block can be upgraded to 'admit' for unsafe actions) * * ERR checklist: * - ERR-002: Every descriptor carries reason + nextAction. * - ERR-005: Descriptors are data, not assumptions about callers. */ import type { SourceKind, TriageDecision } from './types.js'; export interface SourceDescriptor { readonly kind: SourceKind; readonly defaultDecision: TriageDecision; readonly reason: string; readonly nextAction: string; /** * Whether the plugin adapter may upgrade this decision. * When true, the adapter can override defaultDecision based on context * (e.g., isUnsafeHighConfidence for rulehost_block). */ readonly canUpgrade: boolean; } /** * Source kind descriptors. Order does not matter — lookup is by kind. * * Design rationale per docs/product/PRODUCT_IDENTITY.md and ADR-0014: * - PD owns owner-relevant behavior evidence, not tool repair. * - Manual/owner-reported pain has highest confidence. * - Tool failures are infrastructure noise (OpenClaw's job, not PD's). * - Empathy-inferred frustration must never silently create diagnosis. * - GFI alone cannot trigger diagnosis (it's a session health metric). */ export declare const SOURCE_DESCRIPTORS: ReadonlyMap; /** * Get the source descriptor for a given kind. * Returns undefined if the kind is not registered (caller should treat as 'unknown'). */ export declare function getSourceDescriptor(kind: SourceKind): SourceDescriptor | undefined; //# sourceMappingURL=source-descriptors.d.ts.map