import type { PainIngressV1Payload, PainIngressReport, IngressEvidenceEntry } from './pain-ingress-payload.js'; import type { PainProvenance } from './admission-gate.js'; export { SENTINEL_SESSION_IDS, isSentinelSessionId, parsePainIngressReport, validateOriginCorrelationInvariant, } from './pain-ingress-payload.js'; export type { PainOrigin, PainCorrelation, IngressEvidenceEntry, PainEvidenceBundle, PainEvidenceUnavailableReason, PainIngressReport, PainIngressParseResult, PainIngressV1Payload, } from './pain-ingress-payload.js'; /** * The legacy write-side shape handed to PainToPrincipleService. Derived by * the ingress — callers do not assemble provenance/evidence themselves. */ export interface LegacyPainSubmission { painId: string; painType: PainIngressReport['painType']; source: string; reason: string; score?: number; sessionId?: string; agentId?: string; traceId?: string; provenance: PainProvenance; hostKind?: 'openclaw' | 'codex'; evidence: IngressEvidenceEntry[]; /** Versioned rev-2 facts persisted beside the legacy top-level fields. */ painIngress: PainIngressV1Payload; } export type PainIngressDecision = { action: 'submit'; legacy: LegacyPainSubmission; painIngress: PainIngressV1Payload; warnings: string[]; reasonCode?: undefined; } | { /** Explicit degradation: submission is still allowed (honest empty evidence + warning). */ action: 'degrade'; reasonCode: string; warning: string; nextAction: string; legacy: LegacyPainSubmission; painIngress: PainIngressV1Payload; } | { action: 'refuse'; reasonCode: string; warning: string; nextAction: string; } | { /** * Automatic signal without binding/evidence — no LLM, no diagnostic * task. `legacy` still carries the derived (empty-evidence) submission * shape so host funnels can keep their observability projection via * the bridge's empty-evidence short-circuit (SPEC §12.2.1/§12.2.2). */ action: 'observation_only'; reasonCode: string; note: string; legacy: LegacyPainSubmission; painIngress: PainIngressV1Payload; }; /** * Decide the pre-LLM action for a validated report, per SPEC §8.2. Pure — * no I/O, no persistence, no identity minting. */ export declare function evaluatePainIngress(report: PainIngressReport): PainIngressDecision; //# sourceMappingURL=pain-ingress.d.ts.map