/** * FullTrace quality contract and schema hardening (PRI-190). * * Defines the structured payload contract for source execution traces * consumed by `context-payload.ts` (schema re-export and validation). * No runtime trace-refinement consumer exists since PRI-770 removed the * TraceRefiner chain; remaining references are type/schema-level. * * Key invariants: * - sourceTaskId / sourcePainId / sourceRunIds provide traceability * - timeline is a structured array, not a string blob * - sourceRefs explicitly record task/run/artifact/event references * - ambiguityNotes preserves PRI-189 missing/mismatch/ambiguous diagnostics * - sanitizationNotes records every redaction action * - capturedAt is an ISO timestamp * - All unknown input is runtime-validated (no `as` casts on untrusted JSON) * * This module is pure logic — zero I/O, no filesystem/path/process imports, no plugin deps. */ import { type Static } from '@sinclair/typebox'; export declare const TRACE_EVENT_KINDS: readonly ['tool_call', 'tool_result', 'assistant_message', 'user_message', 'system_event', 'unknown']; export type TraceEventKind = (typeof TRACE_EVENT_KINDS)[number]; export declare const TraceEventKindSchema: import("@sinclair/typebox").TUnion[]>; export declare const SOURCE_REF_KINDS: readonly ['task', 'run', 'artifact', 'event']; export type SourceRefKind = (typeof SOURCE_REF_KINDS)[number]; export declare const SourceRefKindSchema: import("@sinclair/typebox").TUnion[]>; export declare const TraceSourceRefSchema: import("@sinclair/typebox").TObject<{ kind: import("@sinclair/typebox").TUnion[]>; id: import("@sinclair/typebox").TString; }>; export type TraceSourceRef = Static; export declare const TraceTimelineEntrySchema: import("@sinclair/typebox").TObject<{ at: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>; kind: import("@sinclair/typebox").TUnion[]>; summary: import("@sinclair/typebox").TString; rawPreview: import("@sinclair/typebox").TOptional; metadata: import("@sinclair/typebox").TOptional>; }>; export type TraceTimelineEntry = Static; export declare const FullTracePayloadV2Schema: import("@sinclair/typebox").TObject<{ sourceTaskId: import("@sinclair/typebox").TString; sourcePainId: import("@sinclair/typebox").TString; sourceRunIds: import("@sinclair/typebox").TArray; capturedAt: import("@sinclair/typebox").TString; sourceRefs: import("@sinclair/typebox").TArray[]>; id: import("@sinclair/typebox").TString; }>>; timeline: import("@sinclair/typebox").TArray; kind: import("@sinclair/typebox").TUnion[]>; summary: import("@sinclair/typebox").TString; rawPreview: import("@sinclair/typebox").TOptional; metadata: import("@sinclair/typebox").TOptional>; }>>; ambiguityNotes: import("@sinclair/typebox").TArray; sanitizationNotes: import("@sinclair/typebox").TArray; }>; export type FullTracePayloadV2 = Static; export interface FullTraceValidationResult { valid: boolean; errors: string[]; } export declare function validateFullTracePayload(input: unknown): FullTraceValidationResult; export interface SanitizeFullTraceResult { payload: FullTracePayloadV2; sanitizationNotes: string[]; } export declare function sanitizeFullTracePayload(input: FullTracePayloadV2): SanitizeFullTraceResult; export interface RunRecordLike { runId: string; inputPayload?: string; outputPayload?: string; startedAt: string; endedAt?: string; executionStatus: string; } export declare function buildFullTraceTimeline(runs: readonly RunRecordLike[]): TraceTimelineEntry[]; export declare function buildSourceRefs(sourceTaskId: string, sourceRunIds: string[]): TraceSourceRef[]; export declare function checkFullTracePayloadSchema(input: unknown): boolean; //# sourceMappingURL=full-trace-contract.d.ts.map